Governed substrate for autonomous agents: scoped identity (passports), audited actions, MCP workspace. Infra IPs and secrets redacted for public release.
96 lines
3.4 KiB
Dart
96 lines
3.4 KiB
Dart
/// GOD Frame app configuration constants.
|
|
class AppConfig {
|
|
AppConfig._();
|
|
|
|
/// Default CRM backend URL (production).
|
|
static const String defaultBaseUrl = 'https://crm.hltrn.cc';
|
|
|
|
/// Development CRM backend URL.
|
|
static const String devBaseUrl = 'https://devcrm.hltrn.cc';
|
|
|
|
/// API version prefix.
|
|
static const String apiPrefix = '/api/v3';
|
|
|
|
/// Frame Noa endpoint path.
|
|
static const String frameNoaPath = '/frame/noa';
|
|
|
|
/// Auth endpoint paths.
|
|
static const String loginPath = '/auth/login';
|
|
static const String logoutPath = '/auth/logout';
|
|
static const String mePath = '/auth/me';
|
|
static const String refreshPath = '/auth/refresh';
|
|
|
|
/// Google OAuth endpoint paths.
|
|
static const String googleTokenPath = '/auth/google/token';
|
|
static const String googleConfigPath = '/auth/google/config';
|
|
static const String googleMobileAuthUrlPath = '/auth/google/mobile-auth-url';
|
|
|
|
/// Google Web Client ID — used by native Google Sign-In to get access_token.
|
|
/// This is the Web client ID from Google Cloud Console, NOT Android client ID.
|
|
static const String googleWebClientId =
|
|
'791263961317-ejnp56q23s45dsrkvps0eo094aiva1sk.apps.googleusercontent.com';
|
|
|
|
/// Chat endpoint paths.
|
|
static const String conversationsPath = '/chat/conversations';
|
|
|
|
/// AI conversations path (supports PUT for title update).
|
|
static const String aiConversationsPath = '/ai/conversations';
|
|
|
|
/// Spaces endpoint path.
|
|
static const String spacesPath = '/spaces';
|
|
|
|
/// File upload path.
|
|
static const String uploadPath = '/files/upload';
|
|
|
|
/// Tickets path.
|
|
static const String ticketsPath = '/tickets';
|
|
|
|
/// Projects path.
|
|
static const String projectsPath = '/projects';
|
|
|
|
/// Tables path (generic table listing).
|
|
static const String tablesPath = '/tables';
|
|
|
|
/// Rows path template (append /{tableId}/rows).
|
|
static const String rowsPathTemplate = '/tables';
|
|
|
|
/// Agents table (for @mentions).
|
|
static const String agentsTablePath = '/tables/1784/rows';
|
|
|
|
/// Users/contacts path.
|
|
static const String usersPath = '/users';
|
|
|
|
/// Secure storage keys.
|
|
static const String tokenKey = 'jwt_token';
|
|
static const String refreshTokenKey = 'refresh_token';
|
|
static const String serverUrlKey = 'server_url';
|
|
static const String pairedDeviceKey = 'paired_frame_uuid';
|
|
|
|
/// BLE constants for Brilliant Frame.
|
|
static const String frameServiceUuid = '7a230001-5475-a6a4-654c-8431f6ad49c4';
|
|
static const String frameTxUuid = '7a230002-5475-a6a4-654c-8431f6ad49c4';
|
|
static const String frameRxUuid = '7a230003-5475-a6a4-654c-8431f6ad49c4';
|
|
|
|
/// Frame display dimensions.
|
|
static const int frameDisplayWidth = 640;
|
|
static const int frameDisplayHeight = 400;
|
|
|
|
/// Audio capture settings.
|
|
static const int audioSampleRate = 8000;
|
|
static const int audioBitDepth = 8;
|
|
|
|
/// Request timeouts.
|
|
static const Duration connectTimeout = Duration(seconds: 15);
|
|
static const Duration receiveTimeout = Duration(seconds: 60);
|
|
static const Duration bleTimeout = Duration(seconds: 30);
|
|
|
|
/// BLE keepalive interval — send hold every N seconds to prevent Frame sleep.
|
|
/// Frame glasses disconnect after ~10-15s of no BLE activity.
|
|
static const Duration bleKeepaliveInterval = Duration(seconds: 5);
|
|
|
|
/// Max message history sent with Frame requests.
|
|
static const int maxFrameHistory = 10;
|
|
|
|
/// Max file upload size (10 MB).
|
|
static const int maxUploadSize = 10 * 1024 * 1024;
|
|
}
|