@db3.ai/app 0.1.0-beta.1 → 0.1.0-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +68 -9
- package/agent-instructions.md +76 -0
- package/dist/ai/AIErrors.d.ts +7 -1
- package/dist/ai/AIErrors.js +8 -1
- package/dist/ai/AIFailover.d.ts +10 -0
- package/dist/ai/AIFailover.js +3 -2
- package/dist/ai/AIProviderAdmission.d.ts +101 -0
- package/dist/ai/AIProviderAdmission.js +336 -0
- package/dist/ai/AIRateLimiter.d.ts +11 -2
- package/dist/ai/AIRateLimiter.js +125 -10
- package/dist/ai/AIRequestTrackingError.d.ts +22 -0
- package/dist/ai/AIRequestTrackingError.js +33 -0
- package/dist/ai/Agent.d.ts +7 -7
- package/dist/ai/Agent.js +84 -56
- package/dist/ai/Ai.d.ts +11 -3
- package/dist/ai/Ai.js +94 -44
- package/dist/ai/OpenAIProviderError.js +1 -1
- package/dist/ai/ProviderSseObserver.d.ts +19 -0
- package/dist/ai/ProviderSseObserver.js +98 -0
- package/dist/ai/aiServiceTier.d.ts +5 -0
- package/dist/ai/aiServiceTier.js +14 -0
- package/dist/ai/chunkEmbeddingText.d.ts +14 -0
- package/dist/ai/chunkEmbeddingText.js +147 -0
- package/dist/ai/contracts/AI.d.ts +16 -0
- package/dist/ai/contracts/AIRequestErrorDiagnostics.d.ts +12 -0
- package/dist/ai/contracts/AIRequestErrorDiagnostics.js +1 -0
- package/dist/ai/contracts/AIServiceTier.d.ts +2 -0
- package/dist/ai/contracts/AIServiceTier.js +1 -0
- package/dist/ai/contracts/Agent.d.ts +3 -0
- package/dist/ai/contracts/EmbeddingTextChunk.d.ts +25 -0
- package/dist/ai/contracts/EmbeddingTextChunk.js +1 -0
- package/dist/ai/contracts/Pricing.d.ts +7 -1
- package/dist/ai/contracts/Providers.d.ts +2 -0
- package/dist/ai/contracts/index.d.ts +2 -0
- package/dist/ai/contracts/index.js +1 -0
- package/dist/ai/index.d.ts +8 -2
- package/dist/ai/index.js +5 -2
- package/dist/ai/{Models.d.ts → modelPricing.d.ts} +2 -2
- package/dist/ai/{Models.js → modelPricing.js} +38 -4
- package/dist/apps/AppInstallation.d.ts +21 -0
- package/dist/apps/AppInstallation.js +16 -0
- package/dist/apps/AppRouteError.d.ts +6 -0
- package/dist/apps/AppRouteError.js +10 -0
- package/dist/apps/AppService.d.ts +24 -0
- package/dist/apps/AppService.js +21 -0
- package/dist/apps/Apps.d.ts +59 -0
- package/dist/apps/Apps.js +566 -0
- package/dist/apps/appsPlugin.d.ts +3 -0
- package/dist/apps/appsPlugin.js +36 -0
- package/dist/apps/commands/disableApp.d.ts +2 -0
- package/dist/apps/commands/disableApp.js +5 -0
- package/dist/apps/commands/enableApp.d.ts +2 -0
- package/dist/apps/commands/enableApp.js +5 -0
- package/dist/apps/commands/index.d.ts +10 -0
- package/dist/apps/commands/index.js +27 -0
- package/dist/apps/commands/installApp.d.ts +2 -0
- package/dist/apps/commands/installApp.js +5 -0
- package/dist/apps/commands/listApps.d.ts +2 -0
- package/dist/apps/commands/listApps.js +5 -0
- package/dist/apps/commands/makeAppMigration.d.ts +2 -0
- package/dist/apps/commands/makeAppMigration.js +9 -0
- package/dist/apps/commands/rollbackApp.d.ts +2 -0
- package/dist/apps/commands/rollbackApp.js +5 -0
- package/dist/apps/commands/uninstallApp.d.ts +2 -0
- package/dist/apps/commands/uninstallApp.js +5 -0
- package/dist/apps/contracts/AppAction.d.ts +2 -0
- package/dist/apps/contracts/AppAction.js +1 -0
- package/dist/apps/contracts/AppDefinition.d.ts +45 -0
- package/dist/apps/contracts/AppDefinition.js +1 -0
- package/dist/apps/contracts/AppDescription.d.ts +32 -0
- package/dist/apps/contracts/AppDescription.js +1 -0
- package/dist/apps/contracts/AppManifest.d.ts +30 -0
- package/dist/apps/contracts/AppManifest.js +1 -0
- package/dist/apps/contracts/AppNavigation.d.ts +9 -0
- package/dist/apps/contracts/AppNavigation.js +1 -0
- package/dist/apps/contracts/AppNavigationBadge.d.ts +6 -0
- package/dist/apps/contracts/AppNavigationBadge.js +1 -0
- package/dist/apps/contracts/AppNavigationContext.d.ts +8 -0
- package/dist/apps/contracts/AppNavigationContext.js +1 -0
- package/dist/apps/contracts/AppNavigationResult.d.ts +12 -0
- package/dist/apps/contracts/AppNavigationResult.js +1 -0
- package/dist/apps/contracts/AppRoute.d.ts +19 -0
- package/dist/apps/contracts/AppRoute.js +1 -0
- package/dist/apps/contracts/DiscoveredApp.d.ts +10 -0
- package/dist/apps/contracts/DiscoveredApp.js +1 -0
- package/dist/apps/contracts/InstalledApps.d.ts +3 -0
- package/dist/apps/contracts/InstalledApps.js +1 -0
- package/dist/apps/contracts/index.d.ts +11 -0
- package/dist/apps/contracts/index.js +1 -0
- package/dist/apps/defineApp.d.ts +7 -0
- package/dist/apps/defineApp.js +8 -0
- package/dist/apps/discoverApps.d.ts +3 -0
- package/dist/apps/discoverApps.js +62 -0
- package/dist/apps/fastify.d.ts +1 -0
- package/dist/apps/fastify.js +1 -0
- package/dist/apps/index.d.ts +7 -0
- package/dist/apps/index.js +7 -0
- package/dist/apps/normalizeAppNavigation.d.ts +3 -0
- package/dist/apps/normalizeAppNavigation.js +30 -0
- package/dist/apps/registerAppRoutes.d.ts +6 -0
- package/dist/apps/registerAppRoutes.js +52 -0
- package/dist/apps/validateAppDefinitions.d.ts +3 -0
- package/dist/apps/validateAppDefinitions.js +65 -0
- package/dist/apps/vite.d.ts +1 -0
- package/dist/apps/vite.js +1 -0
- package/dist/apps/writeAppTypes.d.ts +2 -0
- package/dist/apps/writeAppTypes.js +13 -0
- package/dist/auth/Auth.d.ts +18 -0
- package/dist/auth/Auth.js +89 -13
- package/dist/auth/PasswordLoginAttempt.d.ts +50 -0
- package/dist/auth/PasswordLoginAttempt.js +60 -0
- package/dist/auth/PasswordSuspendedError.d.ts +10 -0
- package/dist/auth/PasswordSuspendedError.js +13 -0
- package/dist/auth/contracts/PasswordAuthProviderOptions.d.ts +26 -0
- package/dist/auth/contracts/PasswordAuthProviderOptions.js +1 -0
- package/dist/auth/contracts/PasswordSuspension.d.ts +7 -0
- package/dist/auth/contracts/PasswordSuspension.js +1 -0
- package/dist/auth/contracts/PasswordSuspensionOptions.d.ts +10 -0
- package/dist/auth/contracts/PasswordSuspensionOptions.js +1 -0
- package/dist/auth/contracts/index.d.ts +3 -0
- package/dist/auth/contracts/index.js +3 -0
- package/dist/auth/index.d.ts +2 -0
- package/dist/auth/index.js +2 -0
- package/dist/auth/providers/PasswordAuthProvider.d.ts +19 -23
- package/dist/auth/providers/PasswordAuthProvider.js +96 -8
- package/dist/auth/providers/resolveAuthProviders.js +1 -0
- package/dist/cli/Cli.d.ts +2 -0
- package/dist/cli/Cli.js +8 -0
- package/dist/cli/commands/repl.js +2 -1
- package/dist/cli/contracts/CliCommand.d.ts +2 -0
- package/dist/cli/contracts/CliCommandInfo.d.ts +12 -0
- package/dist/cli/contracts/CliCommandInfo.js +1 -0
- package/dist/cli/contracts/index.d.ts +1 -0
- package/dist/cli/index.d.ts +1 -0
- package/dist/cli/index.js +1 -0
- package/dist/cli/listDb3Commands.d.ts +8 -0
- package/dist/cli/listDb3Commands.js +10 -0
- package/dist/cli/runDb3.d.ts +3 -6
- package/dist/cli/runDb3.js +5 -59
- package/dist/cli/withDb3Cli.d.ts +4 -0
- package/dist/cli/withDb3Cli.js +60 -0
- package/dist/db/ActiveQueryBuilder.d.ts +8 -0
- package/dist/db/ActiveQueryBuilder.js +11 -0
- package/dist/db/ActiveRecord.d.ts +6 -0
- package/dist/db/ActiveRecord.js +8 -0
- package/dist/db/connection.js +14 -2
- package/dist/db/fields/TimestampField.d.ts +1 -1
- package/dist/db/fields/TimestampField.js +7 -12
- package/dist/db/migrations/DatabaseMigrationManager.d.ts +3 -1
- package/dist/db/migrations/DatabaseMigrationManager.js +9 -3
- package/dist/db/migrations/contracts/DatabaseMigration.d.ts +7 -0
- package/dist/db/migrations/index.d.ts +1 -1
- package/dist/db/migrations/index.js +1 -1
- package/dist/db/migrations/{KnexMigrationRenderer.d.ts → renderKnexMigration.d.ts} +4 -3
- package/dist/db/migrations/{KnexMigrationRenderer.js → renderKnexMigration.js} +7 -6
- package/dist/flows/FlowCompiler.js +1 -1
- package/dist/flows/Flows.js +1 -1
- package/dist/flows/index.d.ts +1 -1
- package/dist/flows/index.js +1 -1
- package/dist/health/Health.d.ts +41 -0
- package/dist/health/Health.js +153 -0
- package/dist/health/contracts/Health.d.ts +36 -0
- package/dist/health/contracts/Health.js +1 -0
- package/dist/health/contracts/HealthHttp.d.ts +15 -0
- package/dist/health/contracts/HealthHttp.js +1 -0
- package/dist/health/contracts/index.d.ts +2 -0
- package/dist/health/contracts/index.js +1 -0
- package/dist/health/databaseHealthCheck.d.ts +15 -0
- package/dist/health/databaseHealthCheck.js +18 -0
- package/dist/health/fastify.d.ts +13 -0
- package/dist/health/fastify.js +44 -0
- package/dist/health/index.d.ts +3 -0
- package/dist/health/index.js +2 -0
- package/dist/in-app/InApp.d.ts +33 -0
- package/dist/in-app/InApp.js +191 -0
- package/dist/in-app/InAppError.d.ts +6 -0
- package/dist/in-app/InAppError.js +10 -0
- package/dist/in-app/InAppRecord.d.ts +36 -0
- package/dist/in-app/InAppRecord.js +24 -0
- package/dist/in-app/contracts/InAppInbox.d.ts +45 -0
- package/dist/in-app/contracts/InAppInbox.js +1 -0
- package/dist/in-app/contracts/InAppMessage.d.ts +22 -0
- package/dist/in-app/contracts/InAppMessage.js +1 -0
- package/dist/in-app/contracts/InAppScope.d.ts +17 -0
- package/dist/in-app/contracts/InAppScope.js +1 -0
- package/dist/in-app/contracts/index.d.ts +3 -0
- package/dist/in-app/contracts/index.js +3 -0
- package/dist/in-app/index.d.ts +4 -0
- package/dist/in-app/index.js +4 -0
- package/dist/in-app/validation.d.ts +21 -0
- package/dist/in-app/validation.js +50 -0
- package/dist/index.d.ts +2 -14
- package/dist/index.js +2 -5
- package/dist/logging/DevelopmentConsole.d.ts +42 -0
- package/dist/logging/DevelopmentConsole.js +162 -0
- package/dist/logging/Log.d.ts +3 -1
- package/dist/logging/Log.js +5 -2
- package/dist/logging/PrettyLogFormatter.d.ts +16 -0
- package/dist/logging/PrettyLogFormatter.js +151 -0
- package/dist/logging/acquireDevelopmentConsole.d.ts +6 -0
- package/dist/logging/acquireDevelopmentConsole.js +21 -0
- package/dist/logging/contracts/DevelopmentConsoleOptions.d.ts +16 -0
- package/dist/logging/contracts/DevelopmentConsoleOptions.js +1 -0
- package/dist/logging/contracts/EmailLogOptions.d.ts +8 -0
- package/dist/logging/contracts/EmailLogOptions.js +1 -0
- package/dist/logging/contracts/HttpExchangeMonitorOptions.d.ts +12 -0
- package/dist/logging/contracts/HttpExchangeMonitorOptions.js +1 -0
- package/dist/logging/contracts/LogTransportOptions.d.ts +19 -0
- package/dist/logging/contracts/LogTransportOptions.js +1 -0
- package/dist/logging/contracts/LoggingOptions.d.ts +12 -1
- package/dist/logging/contracts/index.d.ts +4 -0
- package/dist/logging/contracts/index.js +4 -0
- package/dist/logging/drivers/PinoLoggerDriver.d.ts +3 -1
- package/dist/logging/drivers/PinoLoggerDriver.js +75 -16
- package/dist/logging/formatLogEmail.d.ts +4 -0
- package/dist/logging/formatLogEmail.js +21 -0
- package/dist/logging/highlightQueueMessage.d.ts +11 -0
- package/dist/logging/highlightQueueMessage.js +36 -0
- package/dist/logging/httpBodyCapture.d.ts +24 -0
- package/dist/logging/httpBodyCapture.js +321 -0
- package/dist/logging/index.d.ts +2 -0
- package/dist/logging/index.js +2 -0
- package/dist/logging/redactLogEmail.d.ts +2 -0
- package/dist/logging/redactLogEmail.js +12 -0
- package/dist/logging/registerHttpExchangeMonitor.d.ts +10 -0
- package/dist/logging/registerHttpExchangeMonitor.js +43 -0
- package/dist/logging/transports/EmailLogTransport.d.ts +18 -0
- package/dist/logging/transports/EmailLogTransport.js +47 -0
- package/dist/mail/Mail.d.ts +2 -0
- package/dist/mail/Mail.js +3 -0
- package/dist/mail/MailDeliveryError.d.ts +9 -0
- package/dist/mail/MailDeliveryError.js +16 -0
- package/dist/mail/index.d.ts +1 -0
- package/dist/mail/index.js +1 -0
- package/dist/mail/transports/MailgunTransport.js +2 -0
- package/dist/mail/transports/ResendTransport.d.ts +3 -2
- package/dist/mail/transports/ResendTransport.js +22 -14
- package/dist/media/MediaManager.d.ts +4 -2
- package/dist/media/MediaManager.js +40 -8
- package/dist/network/BlockedUrlError.d.ts +16 -0
- package/dist/network/BlockedUrlError.js +19 -0
- package/dist/network/assertPublicUrl.d.ts +22 -0
- package/dist/network/assertPublicUrl.js +67 -0
- package/dist/network/contracts/GuardedFetch.d.ts +35 -0
- package/dist/network/contracts/GuardedFetch.js +1 -0
- package/dist/network/contracts/PublicUrlOptions.d.ts +17 -0
- package/dist/network/contracts/PublicUrlOptions.js +1 -0
- package/dist/network/contracts/index.d.ts +2 -0
- package/dist/network/contracts/index.js +2 -0
- package/dist/network/guardedFetch.d.ts +29 -0
- package/dist/network/guardedFetch.js +133 -0
- package/dist/network/index.d.ts +6 -0
- package/dist/network/index.js +6 -0
- package/dist/network/playwright/GuardedBrowserProxy.d.ts +32 -0
- package/dist/network/playwright/GuardedBrowserProxy.js +172 -0
- package/dist/network/playwright/contracts/GuardedBrowserContextOptions.d.ts +37 -0
- package/dist/network/playwright/contracts/GuardedBrowserContextOptions.js +1 -0
- package/dist/network/playwright/contracts/index.d.ts +1 -0
- package/dist/network/playwright/contracts/index.js +1 -0
- package/dist/network/playwright/index.d.ts +2 -0
- package/dist/network/playwright/index.js +2 -0
- package/dist/network/playwright/newGuardedBrowserContext.d.ts +21 -0
- package/dist/network/playwright/newGuardedBrowserContext.js +86 -0
- package/dist/network/privateNetworkAddresses.d.ts +44 -0
- package/dist/network/privateNetworkAddresses.js +157 -0
- package/dist/network/publicAddressLookup.d.ts +26 -0
- package/dist/network/publicAddressLookup.js +42 -0
- package/dist/notifications/Notifications.d.ts +27 -0
- package/dist/notifications/Notifications.js +99 -0
- package/dist/notifications/contracts/Notification.d.ts +56 -0
- package/dist/notifications/contracts/Notification.js +1 -0
- package/dist/notifications/contracts/NotificationDelivery.d.ts +11 -0
- package/dist/notifications/contracts/NotificationDelivery.js +1 -0
- package/dist/notifications/contracts/index.d.ts +2 -0
- package/dist/notifications/contracts/index.js +2 -0
- package/dist/notifications/index.d.ts +2 -0
- package/dist/notifications/index.js +2 -0
- package/dist/queue/JobRunAttempt.d.ts +16 -0
- package/dist/queue/JobRunAttempt.js +17 -0
- package/dist/queue/JobRunEvent.d.ts +15 -0
- package/dist/queue/JobRunEvent.js +16 -0
- package/dist/queue/JobRunStoppedError.d.ts +6 -0
- package/dist/queue/JobRunStoppedError.js +10 -0
- package/dist/queue/Queue.d.ts +19 -4
- package/dist/queue/Queue.js +122 -9
- package/dist/queue/QueueTerminalError.d.ts +9 -0
- package/dist/queue/QueueTerminalError.js +12 -0
- package/dist/queue/QueueWorker.d.ts +12 -5
- package/dist/queue/QueueWorker.js +94 -9
- package/dist/queue/QueueWorkerReporter.d.ts +17 -0
- package/dist/queue/QueueWorkerReporter.js +71 -0
- package/dist/queue/QueueableJob.d.ts +2 -2
- package/dist/queue/RunnableJob.d.ts +78 -0
- package/dist/queue/RunnableJob.js +284 -0
- package/dist/queue/console.d.ts +8 -0
- package/dist/queue/console.js +53 -19
- package/dist/queue/contracts/QueueDriver.d.ts +8 -0
- package/dist/queue/contracts/QueueJobRunner.d.ts +4 -0
- package/dist/queue/contracts/QueueJobRunner.js +1 -0
- package/dist/queue/contracts/QueuePayload.d.ts +1 -1
- package/dist/queue/contracts/QueueSelection.d.ts +11 -0
- package/dist/queue/contracts/QueueSelection.js +1 -0
- package/dist/queue/contracts/QueueService.d.ts +18 -4
- package/dist/queue/contracts/QueueWorkerLifecycle.d.ts +2 -2
- package/dist/queue/contracts/QueueWorkerSnapshot.d.ts +14 -0
- package/dist/queue/contracts/QueueWorkerSnapshot.js +1 -0
- package/dist/queue/contracts/QueueableJob.d.ts +7 -3
- package/dist/queue/contracts/QueueableJobContract.d.ts +12 -0
- package/dist/queue/contracts/QueueableJobContract.js +1 -0
- package/dist/queue/contracts/index.d.ts +4 -0
- package/dist/queue/contracts/index.js +2 -0
- package/dist/queue/drivers/DatabaseQueueDriver.d.ts +4 -0
- package/dist/queue/drivers/DatabaseQueueDriver.js +27 -3
- package/dist/queue/drivers/RedisQueueDriver.d.ts +7 -0
- package/dist/queue/drivers/RedisQueueDriver.js +37 -0
- package/dist/queue/index.d.ts +5 -0
- package/dist/queue/index.js +5 -0
- package/dist/queue/jobEnvelopeHasPrefix.d.ts +3 -0
- package/dist/queue/jobEnvelopeHasPrefix.js +4 -0
- package/dist/scheduler/ScheduledEvent.d.ts +8 -4
- package/dist/scheduler/ScheduledEvent.js +17 -3
- package/dist/scheduler/ScheduledJob.d.ts +1 -1
- package/dist/scheduler/Scheduler.d.ts +5 -0
- package/dist/scheduler/Scheduler.js +92 -28
- package/dist/scheduler/SchedulerCheckpointRecord.d.ts +16 -0
- package/dist/scheduler/SchedulerCheckpointRecord.js +53 -0
- package/dist/scheduler/SchedulerWorker.d.ts +3 -5
- package/dist/scheduler/SchedulerWorker.js +58 -14
- package/dist/scheduler/console.js +3 -1
- package/dist/scheduler/contracts/Schedule.d.ts +19 -0
- package/dist/scheduler/contracts/Schedule.js +1 -0
- package/dist/scheduler/contracts/Scheduler.d.ts +18 -6
- package/dist/scheduler/contracts/SchedulerCheckpoint.d.ts +23 -0
- package/dist/scheduler/contracts/SchedulerCheckpoint.js +1 -0
- package/dist/scheduler/contracts/SchedulerConsole.d.ts +5 -0
- package/dist/scheduler/contracts/SchedulerWorker.d.ts +6 -1
- package/dist/scheduler/contracts/index.d.ts +2 -0
- package/dist/scheduler/contracts/index.js +2 -0
- package/dist/scheduler/index.d.ts +1 -0
- package/dist/scheduler/index.js +1 -0
- package/dist/server/App.d.ts +36 -4
- package/dist/server/App.js +57 -7
- package/dist/server/contracts/HttpErrorHandlerOptions.d.ts +29 -0
- package/dist/server/contracts/HttpErrorHandlerOptions.js +1 -0
- package/dist/server/contracts/index.d.ts +1 -0
- package/dist/server/contracts/index.js +1 -0
- package/dist/server/index.d.ts +4 -0
- package/dist/server/index.js +4 -0
- package/dist/server/publicServerErrorMessage.d.ts +11 -0
- package/dist/server/publicServerErrorMessage.js +16 -0
- package/dist/server/registerBrowserJsonFormatting.d.ts +16 -0
- package/dist/server/registerBrowserJsonFormatting.js +100 -0
- package/dist/server/registerHttpErrorHandler.d.ts +20 -0
- package/dist/server/registerHttpErrorHandler.js +93 -0
- package/dist/ssr/vite/contracts/ViteSsrOptions.d.ts +2 -0
- package/dist/ssr/vite/fastifyViteSsr.js +4 -3
- package/dist/storage/drivers/FlystorageDisk.js +2 -2
- package/dist/storage/index.d.ts +2 -2
- package/dist/storage/index.js +2 -2
- package/dist/websocket/WebSocketChannels.d.ts +18 -0
- package/dist/websocket/WebSocketChannels.js +129 -0
- package/dist/websocket/WebSocketConnection.d.ts +25 -0
- package/dist/websocket/WebSocketConnection.js +244 -0
- package/dist/websocket/WebSockets.d.ts +41 -0
- package/dist/websocket/WebSockets.js +194 -0
- package/dist/websocket/client/WebSocketClient.d.ts +21 -0
- package/dist/websocket/client/WebSocketClient.js +230 -0
- package/dist/websocket/client/index.d.ts +3 -0
- package/dist/websocket/client/index.js +1 -0
- package/dist/websocket/contracts/WebSocketChannel.d.ts +20 -0
- package/dist/websocket/contracts/WebSocketChannel.js +1 -0
- package/dist/websocket/contracts/WebSocketClient.d.ts +45 -0
- package/dist/websocket/contracts/WebSocketClient.js +1 -0
- package/dist/websocket/contracts/WebSocketEndpoint.d.ts +43 -0
- package/dist/websocket/contracts/WebSocketEndpoint.js +1 -0
- package/dist/websocket/contracts/WebSocketOptions.d.ts +48 -0
- package/dist/websocket/contracts/WebSocketOptions.js +1 -0
- package/dist/websocket/contracts/WebSocketPresence.d.ts +6 -0
- package/dist/websocket/contracts/WebSocketPresence.js +1 -0
- package/dist/websocket/contracts/WebSocketServiceOptions.d.ts +12 -0
- package/dist/websocket/contracts/WebSocketServiceOptions.js +1 -0
- package/dist/websocket/contracts/index.d.ts +6 -0
- package/dist/websocket/contracts/index.js +1 -0
- package/dist/websocket/defineChannel.d.ts +8 -0
- package/dist/websocket/defineChannel.js +13 -0
- package/dist/websocket/defineWebSocket.d.ts +14 -0
- package/dist/websocket/defineWebSocket.js +4 -0
- package/dist/websocket/fastify.d.ts +11 -0
- package/dist/websocket/fastify.js +38 -0
- package/dist/websocket/index.d.ts +5 -0
- package/dist/websocket/index.js +4 -0
- package/package.json +108 -7
- package/src/ai/AIErrors.ts +10 -0
- package/src/ai/AIFailover.ts +3 -2
- package/src/ai/AIProviderAdmission.ts +329 -0
- package/src/ai/AIRateLimiter.ts +134 -10
- package/src/ai/AIRequestTrackingError.ts +37 -0
- package/src/ai/Agent.ts +85 -71
- package/src/ai/Ai.ts +104 -48
- package/src/ai/OpenAIProviderError.ts +1 -1
- package/src/ai/ProviderSseObserver.ts +89 -0
- package/src/ai/README.md +216 -11
- package/src/ai/aiServiceTier.ts +14 -0
- package/src/ai/chunkEmbeddingText.ts +137 -0
- package/src/ai/contracts/AI.ts +17 -0
- package/src/ai/contracts/AIRequestErrorDiagnostics.ts +12 -0
- package/src/ai/contracts/AIServiceTier.ts +2 -0
- package/src/ai/contracts/Agent.ts +3 -0
- package/src/ai/contracts/EmbeddingTextChunk.ts +26 -0
- package/src/ai/contracts/Pricing.ts +7 -1
- package/src/ai/contracts/Providers.ts +2 -0
- package/src/ai/contracts/index.ts +2 -0
- package/src/ai/examples/prepareDocumentEmbeddings.ts +20 -0
- package/src/ai/index.ts +9 -2
- package/src/ai/{Models.ts → modelPricing.ts} +37 -4
- package/src/apps/AppInstallation.ts +25 -0
- package/src/apps/AppRouteError.ts +8 -0
- package/src/apps/AppService.ts +30 -0
- package/src/apps/Apps.ts +508 -0
- package/src/apps/README.md +354 -0
- package/src/apps/appsPlugin.ts +34 -0
- package/src/apps/commands/disableApp.ts +6 -0
- package/src/apps/commands/enableApp.ts +6 -0
- package/src/apps/commands/index.ts +29 -0
- package/src/apps/commands/installApp.ts +6 -0
- package/src/apps/commands/listApps.ts +6 -0
- package/src/apps/commands/makeAppMigration.ts +9 -0
- package/src/apps/commands/rollbackApp.ts +6 -0
- package/src/apps/commands/uninstallApp.ts +6 -0
- package/src/apps/contracts/AppAction.ts +2 -0
- package/src/apps/contracts/AppDefinition.ts +49 -0
- package/src/apps/contracts/AppDescription.ts +27 -0
- package/src/apps/contracts/AppManifest.ts +32 -0
- package/src/apps/contracts/AppNavigation.ts +10 -0
- package/src/apps/contracts/AppNavigationBadge.ts +6 -0
- package/src/apps/contracts/AppNavigationContext.ts +6 -0
- package/src/apps/contracts/AppNavigationResult.ts +9 -0
- package/src/apps/contracts/AppRoute.ts +18 -0
- package/src/apps/contracts/DiscoveredApp.ts +11 -0
- package/src/apps/contracts/InstalledApps.ts +2 -0
- package/src/apps/contracts/index.ts +11 -0
- package/src/apps/defineApp.ts +10 -0
- package/src/apps/discoverApps.ts +56 -0
- package/src/apps/fastify.ts +1 -0
- package/src/apps/index.ts +7 -0
- package/src/apps/normalizeAppNavigation.ts +29 -0
- package/src/apps/registerAppRoutes.ts +48 -0
- package/src/apps/validateAppDefinitions.ts +52 -0
- package/src/apps/vite.ts +1 -0
- package/src/apps/writeAppTypes.ts +14 -0
- package/src/auth/Auth.ts +89 -23
- package/src/auth/PasswordLoginAttempt.ts +72 -0
- package/src/auth/PasswordSuspendedError.ts +13 -0
- package/src/auth/README.md +94 -4
- package/src/auth/contracts/PasswordAuthProviderOptions.ts +30 -0
- package/src/auth/contracts/PasswordSuspension.ts +7 -0
- package/src/auth/contracts/PasswordSuspensionOptions.ts +10 -0
- package/src/auth/contracts/index.ts +3 -0
- package/src/auth/examples/runPasswordAuth.ts +6 -6
- package/src/auth/index.ts +2 -0
- package/src/auth/providers/PasswordAuthProvider.ts +96 -30
- package/src/auth/providers/resolveAuthProviders.ts +1 -0
- package/src/cli/Cli.ts +9 -0
- package/src/cli/README.md +19 -0
- package/src/cli/commands/repl.ts +2 -1
- package/src/cli/contracts/CliCommand.ts +2 -0
- package/src/cli/contracts/CliCommandInfo.ts +13 -0
- package/src/cli/contracts/index.ts +1 -0
- package/src/cli/index.ts +1 -0
- package/src/cli/listDb3Commands.ts +12 -0
- package/src/cli/runDb3.ts +5 -51
- package/src/cli/withDb3Cli.ts +55 -0
- package/src/db/ActiveQueryBuilder.ts +12 -0
- package/src/db/ActiveRecord.ts +9 -0
- package/src/db/README.md +45 -1
- package/src/db/connection.ts +12 -1
- package/src/db/examples/FieldNote.ts +7 -13
- package/src/db/examples/KnowledgeNote.ts +7 -13
- package/src/db/examples/runNoteMigrations.ts +11 -11
- package/src/db/fields/TimestampField.ts +8 -17
- package/src/db/migrations/DatabaseMigrationManager.ts +12 -4
- package/src/db/migrations/contracts/DatabaseMigration.ts +9 -0
- package/src/db/migrations/index.ts +1 -1
- package/src/db/migrations/{KnexMigrationRenderer.ts → renderKnexMigration.ts} +8 -14
- package/src/flows/FlowCompiler.ts +1 -1
- package/src/flows/Flows.ts +1 -1
- package/src/flows/index.ts +1 -1
- package/src/health/Health.ts +163 -0
- package/src/health/README.md +46 -0
- package/src/health/contracts/Health.ts +47 -0
- package/src/health/contracts/HealthHttp.ts +19 -0
- package/src/health/contracts/index.ts +2 -0
- package/src/health/databaseHealthCheck.ts +21 -0
- package/src/health/fastify.ts +49 -0
- package/src/health/index.ts +3 -0
- package/src/in-app/InApp.ts +173 -0
- package/src/in-app/InAppError.ts +8 -0
- package/src/in-app/InAppRecord.ts +41 -0
- package/src/in-app/README.md +193 -0
- package/src/in-app/contracts/InAppInbox.ts +51 -0
- package/src/in-app/contracts/InAppMessage.ts +19 -0
- package/src/in-app/contracts/InAppScope.ts +12 -0
- package/src/in-app/contracts/index.ts +3 -0
- package/src/in-app/examples/sendReportReady.ts +14 -0
- package/src/in-app/index.ts +4 -0
- package/src/in-app/validation.ts +49 -0
- package/src/index.ts +2 -22
- package/src/logging/DevelopmentConsole.ts +154 -0
- package/src/logging/Log.ts +5 -2
- package/src/logging/PrettyLogFormatter.ts +165 -0
- package/src/logging/README.md +52 -109
- package/src/logging/acquireDevelopmentConsole.ts +19 -0
- package/src/logging/contracts/DevelopmentConsoleOptions.ts +13 -0
- package/src/logging/contracts/EmailLogOptions.ts +9 -0
- package/src/logging/contracts/HttpExchangeMonitorOptions.ts +13 -0
- package/src/logging/contracts/LogTransportOptions.ts +10 -0
- package/src/logging/contracts/LoggingOptions.ts +12 -1
- package/src/logging/contracts/index.ts +4 -0
- package/src/logging/development/README.md +88 -0
- package/src/logging/drivers/PinoLoggerDriver.ts +72 -20
- package/src/logging/examples/runDevelopmentLogs.ts +36 -0
- package/src/logging/formatLogEmail.ts +24 -0
- package/src/logging/highlightQueueMessage.ts +38 -0
- package/src/logging/httpBodyCapture.ts +393 -0
- package/src/logging/index.ts +2 -0
- package/src/logging/redactLogEmail.ts +12 -0
- package/src/logging/registerHttpExchangeMonitor.ts +45 -0
- package/src/logging/transports/EmailLogTransport.ts +46 -0
- package/src/mail/Mail.ts +5 -0
- package/src/mail/MailDeliveryError.ts +8 -0
- package/src/mail/README.md +11 -1
- package/src/mail/index.ts +1 -0
- package/src/mail/transports/MailgunTransport.ts +2 -0
- package/src/mail/transports/ResendTransport.ts +24 -22
- package/src/media/MediaManager.ts +31 -10
- package/src/media/README.md +4 -0
- package/src/media/examples/runPrivateFiles.ts +2 -2
- package/src/network/BlockedUrlError.ts +19 -0
- package/src/network/README.md +133 -0
- package/src/network/assertPublicUrl.ts +77 -0
- package/src/network/contracts/GuardedFetch.ts +40 -0
- package/src/network/contracts/PublicUrlOptions.ts +17 -0
- package/src/network/contracts/index.ts +2 -0
- package/src/network/examples/runGuardedFetch.ts +35 -0
- package/src/network/guardedFetch.ts +150 -0
- package/src/network/index.ts +6 -0
- package/src/network/playwright/GuardedBrowserProxy.ts +172 -0
- package/src/network/playwright/contracts/GuardedBrowserContextOptions.ts +43 -0
- package/src/network/playwright/contracts/index.ts +1 -0
- package/src/network/playwright/index.ts +2 -0
- package/src/network/playwright/newGuardedBrowserContext.ts +74 -0
- package/src/network/privateNetworkAddresses.ts +166 -0
- package/src/network/publicAddressLookup.ts +49 -0
- package/src/notifications/Notifications.ts +105 -0
- package/src/notifications/README.md +59 -0
- package/src/notifications/contracts/Notification.ts +65 -0
- package/src/notifications/contracts/NotificationDelivery.ts +11 -0
- package/src/notifications/contracts/index.ts +2 -0
- package/src/notifications/examples/ReportReadyNotification.ts +31 -0
- package/src/notifications/index.ts +2 -0
- package/src/queue/JobRunAttempt.ts +17 -0
- package/src/queue/JobRunEvent.ts +16 -0
- package/src/queue/JobRunStoppedError.ts +8 -0
- package/src/queue/Queue.ts +112 -11
- package/src/queue/QueueTerminalError.ts +12 -0
- package/src/queue/QueueWorker.ts +86 -7
- package/src/queue/QueueWorkerReporter.ts +59 -0
- package/src/queue/QueueableJob.ts +2 -2
- package/src/queue/README.md +142 -1
- package/src/queue/RunnableJob.ts +272 -0
- package/src/queue/console.ts +54 -21
- package/src/queue/contracts/QueueDriver.ts +9 -0
- package/src/queue/contracts/QueueJobRunner.ts +4 -0
- package/src/queue/contracts/QueuePayload.ts +1 -1
- package/src/queue/contracts/QueueSelection.ts +11 -0
- package/src/queue/contracts/QueueService.ts +19 -4
- package/src/queue/contracts/QueueWorkerLifecycle.ts +2 -2
- package/src/queue/contracts/QueueWorkerSnapshot.ts +15 -0
- package/src/queue/contracts/QueueableJob.ts +7 -3
- package/src/queue/contracts/QueueableJobContract.ts +13 -0
- package/src/queue/contracts/index.ts +6 -0
- package/src/queue/drivers/DatabaseQueueDriver.ts +25 -3
- package/src/queue/drivers/RedisQueueDriver.ts +36 -0
- package/src/queue/examples/runQueueSelection.ts +34 -0
- package/src/queue/index.ts +7 -0
- package/src/queue/jobEnvelopeHasPrefix.ts +6 -0
- package/src/scheduler/README.md +50 -9
- package/src/scheduler/ScheduledEvent.ts +20 -5
- package/src/scheduler/ScheduledJob.ts +1 -1
- package/src/scheduler/Scheduler.ts +73 -27
- package/src/scheduler/SchedulerCheckpointRecord.ts +51 -0
- package/src/scheduler/SchedulerWorker.ts +54 -19
- package/src/scheduler/console.ts +3 -1
- package/src/scheduler/contracts/Schedule.ts +22 -0
- package/src/scheduler/contracts/Scheduler.ts +21 -6
- package/src/scheduler/contracts/SchedulerCheckpoint.ts +23 -0
- package/src/scheduler/contracts/SchedulerConsole.ts +5 -0
- package/src/scheduler/contracts/SchedulerWorker.ts +6 -1
- package/src/scheduler/contracts/index.ts +2 -0
- package/src/scheduler/examples/runSchedulerWindow.ts +54 -0
- package/src/scheduler/index.ts +1 -0
- package/src/server/App.ts +73 -10
- package/src/server/README.md +95 -2
- package/src/server/contracts/HttpErrorHandlerOptions.ts +29 -0
- package/src/server/contracts/index.ts +1 -0
- package/src/server/examples/createFirstServer.ts +5 -3
- package/src/server/index.ts +4 -0
- package/src/server/publicServerErrorMessage.ts +17 -0
- package/src/server/registerBrowserJsonFormatting.ts +94 -0
- package/src/server/registerHttpErrorHandler.ts +96 -0
- package/src/ssr/README.md +6 -0
- package/src/ssr/vite/contracts/ViteSsrOptions.ts +2 -0
- package/src/ssr/vite/fastifyViteSsr.ts +4 -3
- package/src/storage/drivers/FlystorageDisk.ts +2 -2
- package/src/storage/index.ts +2 -2
- package/src/websocket/README.md +458 -0
- package/src/websocket/WebSocketChannels.ts +99 -0
- package/src/websocket/WebSocketConnection.ts +162 -0
- package/src/websocket/WebSockets.ts +157 -0
- package/src/websocket/client/WebSocketClient.ts +188 -0
- package/src/websocket/client/index.ts +3 -0
- package/src/websocket/contracts/WebSocketChannel.ts +23 -0
- package/src/websocket/contracts/WebSocketClient.ts +48 -0
- package/src/websocket/contracts/WebSocketEndpoint.ts +46 -0
- package/src/websocket/contracts/WebSocketOptions.ts +50 -0
- package/src/websocket/contracts/WebSocketPresence.ts +6 -0
- package/src/websocket/contracts/WebSocketServiceOptions.ts +12 -0
- package/src/websocket/contracts/index.ts +6 -0
- package/src/websocket/defineChannel.ts +14 -0
- package/src/websocket/defineWebSocket.ts +15 -0
- package/src/websocket/examples/board/LiveBoard.ts +97 -0
- package/src/websocket/examples/board/SummarizeBoardJob.ts +52 -0
- package/src/websocket/examples/board/boardSnapshot.ts +16 -0
- package/src/websocket/examples/board/createBoardClient.ts +43 -0
- package/src/websocket/examples/board/createBoardStore.ts +58 -0
- package/src/websocket/examples/board/registerBoardRoutes.ts +31 -0
- package/src/websocket/examples/createChannelSync.ts +66 -0
- package/src/websocket/examples/deploymentEndpoint.ts +13 -0
- package/src/websocket/examples/deploymentSnapshot.ts +36 -0
- package/src/websocket/examples/resourceChannels.ts +18 -0
- package/src/websocket/examples/userEndpoint.ts +27 -0
- package/src/websocket/fastify.ts +39 -0
- package/src/websocket/index.ts +5 -0
- package/templates/AGENTS.md +33 -2
- /package/dist/flows/{FlowValueValidator.d.ts → flowValueValidator.d.ts} +0 -0
- /package/dist/flows/{FlowValueValidator.js → flowValueValidator.js} +0 -0
- /package/dist/storage/{mime.d.ts → mimeTypeFromPath.d.ts} +0 -0
- /package/dist/storage/{mime.js → mimeTypeFromPath.js} +0 -0
- /package/dist/storage/{contents.d.ts → storageContentsToBuffer.d.ts} +0 -0
- /package/dist/storage/{contents.js → storageContentsToBuffer.js} +0 -0
- /package/src/flows/{FlowValueValidator.ts → flowValueValidator.ts} +0 -0
- /package/src/storage/{mime.ts → mimeTypeFromPath.ts} +0 -0
- /package/src/storage/{contents.ts → storageContentsToBuffer.ts} +0 -0
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export type { WebSocketContext, WebSocketClosed, WebSocketEndpoint } from './WebSocketEndpoint.js';
|
|
2
|
+
export type { WebSocketOptions, WebSocketLimits } from './WebSocketOptions.js';
|
|
3
|
+
export type { WebSocketPresence } from './WebSocketPresence.js';
|
|
4
|
+
export type { ClientSocket, WebSocketClientOptions, WebSocketClientState, WebSocketClientChannel } from './WebSocketClient.js';
|
|
5
|
+
export type { WebSocketChannelContext, WebSocketChannelDefinition, WebSocketChannelPublisher } from './WebSocketChannel.js';
|
|
6
|
+
export type { WebSocketServiceOptions } from './WebSocketServiceOptions.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { WebSocketChannelDefinition } from './contracts/WebSocketChannel.js';
|
|
2
|
+
/**
|
|
3
|
+
* Defines a private resource channel with an explicit application access policy.
|
|
4
|
+
* @param pattern - Colon-delimited name with optional {parameter} segments.
|
|
5
|
+
* @param options - Access check using the freshly authenticated user and resource parameters.
|
|
6
|
+
* @returns A definition to include in an endpoint's channels array.
|
|
7
|
+
*/
|
|
8
|
+
export declare function defineChannel(pattern: string, options: Omit<WebSocketChannelDefinition, 'pattern'>): WebSocketChannelDefinition;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Defines a private resource channel with an explicit application access policy.
|
|
3
|
+
* @param pattern - Colon-delimited name with optional {parameter} segments.
|
|
4
|
+
* @param options - Access check using the freshly authenticated user and resource parameters.
|
|
5
|
+
* @returns A definition to include in an endpoint's channels array.
|
|
6
|
+
*/
|
|
7
|
+
export function defineChannel(pattern, options) {
|
|
8
|
+
const segments = pattern.split(':');
|
|
9
|
+
const parameters = segments.filter(segment => segment.startsWith('{'));
|
|
10
|
+
if (pattern.length > 256 || !segments.every(segment => /^[a-zA-Z0-9_.-]+$/.test(segment) || /^\{[a-zA-Z][a-zA-Z0-9_]*\}$/.test(segment)) || new Set(parameters).size !== parameters.length || typeof options.authorize !== 'function')
|
|
11
|
+
throw new Error('Invalid channel definition.');
|
|
12
|
+
return Object.freeze({ pattern, authorize: options.authorize });
|
|
13
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { WebSocketEndpoint } from './contracts/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Defines controller actions while inferring the validated message type.
|
|
4
|
+
* @param endpoint - Application-owned authorization, validation and lifecycle actions.
|
|
5
|
+
* @returns The same definition for registration against an exact URL path.
|
|
6
|
+
* @example defineWebSocket({ open: async ({ send }) => { await send({ ready: true }); } });
|
|
7
|
+
*/
|
|
8
|
+
export declare function defineWebSocket<TMessage = unknown>(endpoint: WebSocketEndpoint<TMessage, null> & {
|
|
9
|
+
auth: 'public';
|
|
10
|
+
}): WebSocketEndpoint<TMessage, null> & {
|
|
11
|
+
auth: 'public';
|
|
12
|
+
};
|
|
13
|
+
/** Defines an authenticated endpoint; omitted auth always requires a valid session. */
|
|
14
|
+
export declare function defineWebSocket<TMessage = unknown>(endpoint: WebSocketEndpoint<TMessage>): WebSocketEndpoint<TMessage>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { FastifyInstance } from 'fastify';
|
|
2
|
+
import type { App } from '../server/App.js';
|
|
3
|
+
import type { WebSocketOptions } from './contracts/index.js';
|
|
4
|
+
/**
|
|
5
|
+
* Registers authenticated controller endpoints and closes upgraded sockets before Fastify drains HTTP.
|
|
6
|
+
* @param server - Fastify server before listen(). HTTP route hooks do not authorize upgrades.
|
|
7
|
+
* @param options - Application, exact origins, endpoints and optional limits.
|
|
8
|
+
*/
|
|
9
|
+
export declare function registerWebSockets(server: FastifyInstance, options: WebSocketOptions & {
|
|
10
|
+
app: App;
|
|
11
|
+
}): void;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { createHash, timingSafeEqual } from 'node:crypto';
|
|
2
|
+
/**
|
|
3
|
+
* Registers authenticated controller endpoints and closes upgraded sockets before Fastify drains HTTP.
|
|
4
|
+
* @param server - Fastify server before listen(). HTTP route hooks do not authorize upgrades.
|
|
5
|
+
* @param options - Application, exact origins, endpoints and optional limits.
|
|
6
|
+
*/
|
|
7
|
+
export function registerWebSockets(server, options) {
|
|
8
|
+
options.app.webSockets.mount(server.server, options);
|
|
9
|
+
if (options.publish) {
|
|
10
|
+
const { path, token } = options.publish;
|
|
11
|
+
if (!/^\/[A-Za-z0-9/_-]+$/.test(path) || path.startsWith('//'))
|
|
12
|
+
throw new Error('Invalid WebSocket publishing path.');
|
|
13
|
+
if (!/^[A-Za-z0-9_-]{32,256}$/.test(token))
|
|
14
|
+
throw new Error('WebSocket publish token must contain 32 to 256 URL-safe characters.');
|
|
15
|
+
const expected = createHash('sha256').update(`Bearer ${token}`).digest();
|
|
16
|
+
server.post(path, {
|
|
17
|
+
bodyLimit: 65536,
|
|
18
|
+
/** Service credentials are checked before parsing a body; browser/session credentials never authorize publication. */
|
|
19
|
+
onRequest: async (request, reply) => {
|
|
20
|
+
const supplied = createHash('sha256').update(request.headers.authorization ?? '').digest();
|
|
21
|
+
if (request.headers.origin !== undefined || !timingSafeEqual(expected, supplied))
|
|
22
|
+
return reply.code(401).send({ error: 'Unauthorized' });
|
|
23
|
+
},
|
|
24
|
+
schema: { body: {
|
|
25
|
+
type: 'object', required: ['channel', 'event'], additionalProperties: false,
|
|
26
|
+
properties: {
|
|
27
|
+
channel: { type: 'string', maxLength: 256, pattern: '^[a-zA-Z0-9_.-]+(:[a-zA-Z0-9_.-]+)*$' },
|
|
28
|
+
event: { type: 'string', minLength: 1, maxLength: 256 }, data: {},
|
|
29
|
+
},
|
|
30
|
+
} },
|
|
31
|
+
}, async (request, reply) => {
|
|
32
|
+
// Deliver locally, never call the outbound HTTP publisher or relay recursively.
|
|
33
|
+
await options.app.requestContext.run(() => options.app.webSockets.channels.publishEvent(request.body.channel, request.body.event, request.body.data));
|
|
34
|
+
return reply.code(204).send();
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
server.addHook('preClose', async () => { await options.app.webSockets.close(); });
|
|
38
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@db3.ai/app",
|
|
3
|
-
"version": "0.1.0-beta.
|
|
3
|
+
"version": "0.1.0-beta.4",
|
|
4
4
|
"description": "A typed backend application framework with service-owned runtime modules and behavioural contracts.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -22,6 +22,26 @@
|
|
|
22
22
|
"db3": "bin/db3.mjs"
|
|
23
23
|
},
|
|
24
24
|
"exports": {
|
|
25
|
+
"./apps": {
|
|
26
|
+
"types": "./dist/apps/index.d.ts",
|
|
27
|
+
"import": "./dist/apps/index.js",
|
|
28
|
+
"default": "./dist/apps/index.js"
|
|
29
|
+
},
|
|
30
|
+
"./apps/contracts": {
|
|
31
|
+
"types": "./dist/apps/contracts/index.d.ts",
|
|
32
|
+
"import": "./dist/apps/contracts/index.js",
|
|
33
|
+
"default": "./dist/apps/contracts/index.js"
|
|
34
|
+
},
|
|
35
|
+
"./apps/fastify": {
|
|
36
|
+
"types": "./dist/apps/fastify.d.ts",
|
|
37
|
+
"import": "./dist/apps/fastify.js",
|
|
38
|
+
"default": "./dist/apps/fastify.js"
|
|
39
|
+
},
|
|
40
|
+
"./apps/commands": {
|
|
41
|
+
"types": "./dist/apps/commands/index.d.ts",
|
|
42
|
+
"import": "./dist/apps/commands/index.js",
|
|
43
|
+
"default": "./dist/apps/commands/index.js"
|
|
44
|
+
},
|
|
25
45
|
"./ai": {
|
|
26
46
|
"types": "./dist/ai/index.d.ts",
|
|
27
47
|
"import": "./dist/ai/index.js",
|
|
@@ -133,6 +153,16 @@
|
|
|
133
153
|
"import": "./dist/events/index.js",
|
|
134
154
|
"default": "./dist/events/index.js"
|
|
135
155
|
},
|
|
156
|
+
"./health": {
|
|
157
|
+
"types": "./dist/health/index.d.ts",
|
|
158
|
+
"import": "./dist/health/index.js",
|
|
159
|
+
"default": "./dist/health/index.js"
|
|
160
|
+
},
|
|
161
|
+
"./health/fastify": {
|
|
162
|
+
"types": "./dist/health/fastify.d.ts",
|
|
163
|
+
"import": "./dist/health/fastify.js",
|
|
164
|
+
"default": "./dist/health/fastify.js"
|
|
165
|
+
},
|
|
136
166
|
"./flows": {
|
|
137
167
|
"types": "./dist/flows/index.d.ts",
|
|
138
168
|
"import": "./dist/flows/index.js",
|
|
@@ -148,6 +178,16 @@
|
|
|
148
178
|
"import": "./dist/url/index.js",
|
|
149
179
|
"default": "./dist/url/index.js"
|
|
150
180
|
},
|
|
181
|
+
"./in-app": {
|
|
182
|
+
"types": "./dist/in-app/index.d.ts",
|
|
183
|
+
"import": "./dist/in-app/index.js",
|
|
184
|
+
"default": "./dist/in-app/index.js"
|
|
185
|
+
},
|
|
186
|
+
"./in-app/contracts": {
|
|
187
|
+
"types": "./dist/in-app/contracts/index.d.ts",
|
|
188
|
+
"import": "./dist/in-app/contracts/index.js",
|
|
189
|
+
"default": "./dist/in-app/contracts/index.js"
|
|
190
|
+
},
|
|
151
191
|
"./mail": {
|
|
152
192
|
"types": "./dist/mail/index.d.ts",
|
|
153
193
|
"import": "./dist/mail/index.js",
|
|
@@ -158,6 +198,16 @@
|
|
|
158
198
|
"import": "./dist/logging/index.js",
|
|
159
199
|
"default": "./dist/logging/index.js"
|
|
160
200
|
},
|
|
201
|
+
"./network": {
|
|
202
|
+
"types": "./dist/network/index.d.ts",
|
|
203
|
+
"import": "./dist/network/index.js",
|
|
204
|
+
"default": "./dist/network/index.js"
|
|
205
|
+
},
|
|
206
|
+
"./network/playwright": {
|
|
207
|
+
"types": "./dist/network/playwright/index.d.ts",
|
|
208
|
+
"import": "./dist/network/playwright/index.js",
|
|
209
|
+
"default": "./dist/network/playwright/index.js"
|
|
210
|
+
},
|
|
161
211
|
"./media": {
|
|
162
212
|
"types": "./dist/media/index.d.ts",
|
|
163
213
|
"import": "./dist/media/index.js",
|
|
@@ -168,6 +218,16 @@
|
|
|
168
218
|
"import": "./dist/media/image/index.js",
|
|
169
219
|
"default": "./dist/media/image/index.js"
|
|
170
220
|
},
|
|
221
|
+
"./notifications": {
|
|
222
|
+
"types": "./dist/notifications/index.d.ts",
|
|
223
|
+
"import": "./dist/notifications/index.js",
|
|
224
|
+
"default": "./dist/notifications/index.js"
|
|
225
|
+
},
|
|
226
|
+
"./notifications/contracts": {
|
|
227
|
+
"types": "./dist/notifications/contracts/index.d.ts",
|
|
228
|
+
"import": "./dist/notifications/contracts/index.js",
|
|
229
|
+
"default": "./dist/notifications/contracts/index.js"
|
|
230
|
+
},
|
|
171
231
|
"./queue": {
|
|
172
232
|
"types": "./dist/queue/index.d.ts",
|
|
173
233
|
"import": "./dist/queue/index.js",
|
|
@@ -198,6 +258,11 @@
|
|
|
198
258
|
"import": "./dist/server/index.js",
|
|
199
259
|
"default": "./dist/server/index.js"
|
|
200
260
|
},
|
|
261
|
+
"./server/browser-json": {
|
|
262
|
+
"types": "./dist/server/registerBrowserJsonFormatting.d.ts",
|
|
263
|
+
"import": "./dist/server/registerBrowserJsonFormatting.js",
|
|
264
|
+
"default": "./dist/server/registerBrowserJsonFormatting.js"
|
|
265
|
+
},
|
|
201
266
|
"./ssr": {
|
|
202
267
|
"types": "./dist/ssr/index.d.ts",
|
|
203
268
|
"import": "./dist/ssr/index.js",
|
|
@@ -222,35 +287,65 @@
|
|
|
222
287
|
"types": "./dist/validation/index.d.ts",
|
|
223
288
|
"import": "./dist/validation/index.js",
|
|
224
289
|
"default": "./dist/validation/index.js"
|
|
290
|
+
},
|
|
291
|
+
"./websocket": {
|
|
292
|
+
"types": "./dist/websocket/index.d.ts",
|
|
293
|
+
"import": "./dist/websocket/index.js",
|
|
294
|
+
"default": "./dist/websocket/index.js"
|
|
295
|
+
},
|
|
296
|
+
"./websocket/fastify": {
|
|
297
|
+
"types": "./dist/websocket/fastify.d.ts",
|
|
298
|
+
"import": "./dist/websocket/fastify.js",
|
|
299
|
+
"default": "./dist/websocket/fastify.js"
|
|
300
|
+
},
|
|
301
|
+
"./websocket/client": {
|
|
302
|
+
"types": "./dist/websocket/client/index.d.ts",
|
|
303
|
+
"import": "./dist/websocket/client/index.js",
|
|
304
|
+
"default": "./dist/websocket/client/index.js"
|
|
305
|
+
},
|
|
306
|
+
"./websocket/contracts": {
|
|
307
|
+
"types": "./dist/websocket/contracts/index.d.ts",
|
|
308
|
+
"import": "./dist/websocket/contracts/index.js",
|
|
309
|
+
"default": "./dist/websocket/contracts/index.js"
|
|
310
|
+
},
|
|
311
|
+
"./apps/vite": {
|
|
312
|
+
"types": "./dist/apps/vite.d.ts",
|
|
313
|
+
"import": "./dist/apps/vite.js",
|
|
314
|
+
"default": "./dist/apps/vite.js"
|
|
225
315
|
}
|
|
226
316
|
},
|
|
227
317
|
"dependencies": {
|
|
228
|
-
"tsx": "^4.22.4",
|
|
229
|
-
"openai": "^6.44.0",
|
|
230
318
|
"@aws-sdk/client-s3": "^3.1077.0",
|
|
319
|
+
"@db3.ai/pure": "0.1.0-beta.4",
|
|
231
320
|
"@flystorage/aws-s3": "^1.2.0",
|
|
232
321
|
"@flystorage/file-storage": "^1.2.2",
|
|
233
322
|
"@flystorage/local-fs": "^1.2.0",
|
|
234
323
|
"@keyv/redis": "^5.1.6",
|
|
235
|
-
"@
|
|
324
|
+
"@openai/agents": "0.12.1",
|
|
236
325
|
"@redis/client": "^6.1.0",
|
|
326
|
+
"@types/ws": "^8.18.1",
|
|
237
327
|
"cache-manager": "^7.2.9",
|
|
238
328
|
"cacheable": "^2.5.0",
|
|
239
329
|
"dotenv": "^17.4.2",
|
|
330
|
+
"js-tiktoken": "^1.0.21",
|
|
240
331
|
"knex": "^3.2.10",
|
|
241
332
|
"mysql2": "^3.22.5",
|
|
333
|
+
"openai": "^6.44.0",
|
|
242
334
|
"pino": "^10.3.1",
|
|
243
335
|
"pino-abstract-transport": "^3.0.0",
|
|
244
336
|
"sharp": "^0.35.4",
|
|
245
337
|
"thread-stream": "^4.0.0",
|
|
246
|
-
"
|
|
247
|
-
"
|
|
338
|
+
"tsx": "^4.22.4",
|
|
339
|
+
"undici": "^7.29.1",
|
|
340
|
+
"ws": "^8.21.0",
|
|
341
|
+
"zod": "^4.4.3"
|
|
248
342
|
},
|
|
249
343
|
"peerDependencies": {
|
|
250
344
|
"@fastify/middie": "^9.3.3",
|
|
251
345
|
"@fastify/static": "^10.1.3",
|
|
252
346
|
"fastify": "^5.11.3",
|
|
253
|
-
"vite": "^8.2.1"
|
|
347
|
+
"vite": "^8.2.1",
|
|
348
|
+
"playwright": "^1.61.1"
|
|
254
349
|
},
|
|
255
350
|
"peerDependenciesMeta": {
|
|
256
351
|
"@fastify/middie": {
|
|
@@ -264,8 +359,14 @@
|
|
|
264
359
|
},
|
|
265
360
|
"vite": {
|
|
266
361
|
"optional": true
|
|
362
|
+
},
|
|
363
|
+
"playwright": {
|
|
364
|
+
"optional": true
|
|
267
365
|
}
|
|
268
366
|
},
|
|
367
|
+
"bugs": {
|
|
368
|
+
"url": "https://github.com/db3ai/framework/issues"
|
|
369
|
+
},
|
|
269
370
|
"main": "./dist/index.js",
|
|
270
371
|
"types": "./dist/index.d.ts",
|
|
271
372
|
"files": [
|
package/src/ai/AIErrors.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { AIRequestErrorDiagnostics } from './contracts/AIRequestErrorDiagnostics.js';
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
4
|
* Raised when an AI operation needs provider credentials but none are configured.
|
|
3
5
|
*/
|
|
@@ -13,18 +15,26 @@ export class AIConfigurationError extends Error {
|
|
|
13
15
|
* Raised when the provider rejects a request or returns a payload without text.
|
|
14
16
|
*/
|
|
15
17
|
export class AIRequestError extends Error {
|
|
18
|
+
/** HTTP response status; null when no provider response was received. */
|
|
19
|
+
readonly status: number | null;
|
|
20
|
+
/** Provider request identifier for support correlation, when supplied. */
|
|
21
|
+
readonly requestId: string | null;
|
|
16
22
|
/**
|
|
17
23
|
* Creates a provider request failure.
|
|
18
24
|
*
|
|
19
25
|
* @param message - Human-readable provider failure message.
|
|
20
26
|
* @param code - Stable provider error code, when supplied.
|
|
27
|
+
* @param diagnostics - Response status and support identifier without the payload.
|
|
21
28
|
*/
|
|
22
29
|
constructor(
|
|
23
30
|
message = 'The AI provider did not return a valid response.',
|
|
24
31
|
readonly code: string | null = null,
|
|
32
|
+
diagnostics: AIRequestErrorDiagnostics = {},
|
|
25
33
|
) {
|
|
26
34
|
super(message);
|
|
27
35
|
this.name = 'AIRequestError';
|
|
36
|
+
this.status = diagnostics.status ?? null;
|
|
37
|
+
this.requestId = diagnostics.requestId ?? null;
|
|
28
38
|
}
|
|
29
39
|
}
|
|
30
40
|
|
package/src/ai/AIFailover.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { AIProviderDeferredError, AIProviderStoppedError } from './AIProviderAdmission';
|
|
1
2
|
import { AIRateLimitDeferredError } from './AIRateLimiter.js';
|
|
2
3
|
import { openAIProviderError, isOpenAIQuotaError } from './OpenAIProviderError.js';
|
|
3
4
|
|
|
@@ -68,7 +69,7 @@ export function isFailoverableResponse(status: number, payload: unknown): boolea
|
|
|
68
69
|
* @returns True when the next provider in the chain should be attempted.
|
|
69
70
|
*/
|
|
70
71
|
export function isFailoverableFailure(error: unknown): boolean {
|
|
71
|
-
if (error instanceof AIRateLimitDeferredError) return true;
|
|
72
|
+
if (error instanceof AIRateLimitDeferredError || error instanceof AIProviderDeferredError || error instanceof AIProviderStoppedError) return true;
|
|
72
73
|
if (isNetworkFailure(error)) return true;
|
|
73
74
|
|
|
74
75
|
const details = openAIProviderError(error);
|
|
@@ -88,7 +89,7 @@ export function isFailoverableFailure(error: unknown): boolean {
|
|
|
88
89
|
* @param error - Unknown thrown value.
|
|
89
90
|
* @returns True when the failure happened before a provider response arrived.
|
|
90
91
|
*/
|
|
91
|
-
function isNetworkFailure(error: unknown, depth = 0): boolean {
|
|
92
|
+
export function isNetworkFailure(error: unknown, depth = 0): boolean {
|
|
92
93
|
if ((!(error instanceof Error) && !(error instanceof DOMException)) || depth > 4) return false;
|
|
93
94
|
if (NETWORK_ERROR_NAMES.has(error.name)) return true;
|
|
94
95
|
if (error instanceof TypeError && error.message.includes('fetch failed')) return true;
|