@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
package/dist/ai/Agent.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ import { AiConversation } from './AiConversation.js';
|
|
|
5
5
|
import { AiRequest } from './AiRequest.js';
|
|
6
6
|
import { type AIProviderSelection } from './index.js';
|
|
7
7
|
import type { AIUsageCharge } from './contracts/AI.js';
|
|
8
|
+
import type { AIServiceTier } from './contracts/AIServiceTier.js';
|
|
8
9
|
import type * as agent from './contracts/Agent.js';
|
|
9
10
|
/**
|
|
10
11
|
* Context passed into the complete provider-input builder.
|
|
@@ -20,7 +21,8 @@ export interface AgentInputContext {
|
|
|
20
21
|
*/
|
|
21
22
|
export declare abstract class Agent<TContext extends agent.BaseAgentContext = agent.BaseAgentContext> implements Serializable<TContext> {
|
|
22
23
|
protected readonly context: TContext;
|
|
23
|
-
|
|
24
|
+
/** Maximum model turns per run; null lets the agent finish without a turn ceiling. */
|
|
25
|
+
protected readonly maxTurns: number | null;
|
|
24
26
|
protected readonly maxPreviousMessages: number;
|
|
25
27
|
/** Provider reasoning effort used for every run of this agent. */
|
|
26
28
|
protected readonly reasoningEffort: agent.AgentReasoningEffort | null;
|
|
@@ -29,6 +31,8 @@ export declare abstract class Agent<TContext extends agent.BaseAgentContext = ag
|
|
|
29
31
|
protected readonly workflowName: string;
|
|
30
32
|
/** Optional agent-specific model. Omit to use the global `app().ai.model`. */
|
|
31
33
|
protected readonly model?: string;
|
|
34
|
+
/** OpenAI processing tier for this agent. Override to opt into local Flex experiments. */
|
|
35
|
+
protected readonly serviceTier: AIServiceTier;
|
|
32
36
|
private currentInput;
|
|
33
37
|
/**
|
|
34
38
|
* Creates a persisted agent runtime for the supplied app context.
|
|
@@ -401,6 +405,7 @@ export declare abstract class Agent<TContext extends agent.BaseAgentContext = ag
|
|
|
401
405
|
* @param rootState - Logical run root and shared conversation state.
|
|
402
406
|
* @param attempt - Provider and model selected for this execution.
|
|
403
407
|
* @param startedAtMs - Attempt start timestamp in milliseconds.
|
|
408
|
+
* @param serviceTier - Requested tier retained alongside this attempt.
|
|
404
409
|
* @returns Persistence state scoped to the new provider attempt.
|
|
405
410
|
*/
|
|
406
411
|
private startTrackedAttempt;
|
|
@@ -550,12 +555,7 @@ export declare abstract class Agent<TContext extends agent.BaseAgentContext = ag
|
|
|
550
555
|
* @returns Recursive usage, settled credits, and complete provider cost.
|
|
551
556
|
*/
|
|
552
557
|
private settleFinalizedTrackedRun;
|
|
553
|
-
/**
|
|
554
|
-
* Keeps a quota-blocked queued run pending and records its next retry.
|
|
555
|
-
*
|
|
556
|
-
* @param state - Active run persistence state.
|
|
557
|
-
* @param quotaRetry - Bounded exponential quota retry decision.
|
|
558
|
-
*/
|
|
558
|
+
/** Keeps unstarted queued work visibly pending on the shared account deadline. */
|
|
559
559
|
private deferTrackedRun;
|
|
560
560
|
/**
|
|
561
561
|
* Marks the tracked AI request as failed.
|
package/dist/ai/Agent.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { AIProviderDeferredError, AIProviderStoppedError } from './AIProviderAdmission.js';
|
|
1
2
|
import { aiExecutionContext } from './AiExecutionContext.js';
|
|
2
3
|
import { Agent as SdkAgent, Runner, generateTraceId } from '@openai/agents';
|
|
3
4
|
import { isQueueRetryLaterError } from '@db3.ai/app/queue';
|
|
@@ -5,12 +6,13 @@ import { agentMarkdownWithCitations, normalizedAgentCitations } from '@db3.ai/pu
|
|
|
5
6
|
import { app } from '../server/appContext.js';
|
|
6
7
|
import { AI_MESSAGE_ROLE, AI_MESSAGE_TOOL_STATE } from './AiMessage.js';
|
|
7
8
|
import { AI_REQUEST_STATUS } from './AiRequest.js';
|
|
8
|
-
import { AI_PROVIDER,
|
|
9
|
+
import { AI_PROVIDER, isFailoverableFailure, openAIProviderError, responsesRateLimitEndpoint, simulatedProviderOutage } from './index.js';
|
|
9
10
|
import { AIAllowanceExceededError } from './AIErrors.js';
|
|
10
11
|
import { estimateTokensFromText } from './Estimates.js';
|
|
11
|
-
import {
|
|
12
|
+
import { assertAIServiceTier, effectiveAIServiceTier } from './aiServiceTier.js';
|
|
13
|
+
import { calculateAIHostedToolCost, calculateAIRequestCostUSD, calculateAIRequestEntriesCostUSD, combineAIRequestCostUSD } from './modelPricing.js';
|
|
12
14
|
import { AgentRunJob } from './AgentRunJob.js';
|
|
13
|
-
import {
|
|
15
|
+
import { withoutOpenAIQuotaRetryMetadata } from './OpenAIQuotaRetry.js';
|
|
14
16
|
import { agentCitationFromStreamRecord, agentCitationsFromFinalModelResponse, rememberAgentCitation } from './agentCitations.js';
|
|
15
17
|
import { serializeQueuedAgent } from './registry.js';
|
|
16
18
|
import { agentToolResultFromStructuredOutput } from './toolHelpers.js';
|
|
@@ -20,6 +22,7 @@ import { INTERRUPTED_TOOL_CALL_MESSAGE, unresolvedToolCallIds } from './toolCall
|
|
|
20
22
|
*/
|
|
21
23
|
export class Agent {
|
|
22
24
|
context;
|
|
25
|
+
/** Maximum model turns per run; null lets the agent finish without a turn ceiling. */
|
|
23
26
|
maxTurns = 8;
|
|
24
27
|
maxPreviousMessages = 50;
|
|
25
28
|
/** Provider reasoning effort used for every run of this agent. */
|
|
@@ -29,6 +32,8 @@ export class Agent {
|
|
|
29
32
|
workflowName = this.constructor.name;
|
|
30
33
|
/** Optional agent-specific model. Omit to use the global `app().ai.model`. */
|
|
31
34
|
model;
|
|
35
|
+
/** OpenAI processing tier for this agent. Override to opt into local Flex experiments. */
|
|
36
|
+
serviceTier = 'default';
|
|
32
37
|
currentInput = null;
|
|
33
38
|
/**
|
|
34
39
|
* Creates a persisted agent runtime for the supplied app context.
|
|
@@ -224,17 +229,13 @@ export class Agent {
|
|
|
224
229
|
return await this.executePreparedRun(prepared, async () => { });
|
|
225
230
|
}
|
|
226
231
|
catch (error) {
|
|
227
|
-
if (
|
|
232
|
+
if (error instanceof AIProviderDeferredError) {
|
|
233
|
+
await this.deferTrackedRun(prepared.state, error);
|
|
228
234
|
throw error;
|
|
229
|
-
const quotaRetry = openAIQuotaRetryDecision(error, prepared.state.aiRequest);
|
|
230
|
-
if (quotaRetry && !quotaRetry.expired) {
|
|
231
|
-
await this.deferTrackedRun(prepared.state, quotaRetry);
|
|
232
|
-
throw new AIQuotaDeferredError(quotaRetry.delaySeconds, quotaRetry.retryAt, quotaRetry.retryUntil, quotaRetry.deferralCount, quotaRetry.message);
|
|
233
235
|
}
|
|
236
|
+
if (isQueueRetryLaterError(error))
|
|
237
|
+
throw error;
|
|
234
238
|
const providerError = openAIProviderError(error);
|
|
235
|
-
if (quotaRetry) {
|
|
236
|
-
prepared.state.aiRequest.metadata = withOpenAIQuotaRetryMetadata(prepared.state.aiRequest.metadata, quotaRetry.metadata);
|
|
237
|
-
}
|
|
238
239
|
await this.failTrackedRun(prepared.state, error instanceof Error ? error.message : `Unable to run ${this.agentName}.`, providerError.code);
|
|
239
240
|
throw error;
|
|
240
241
|
}
|
|
@@ -493,7 +494,7 @@ export class Agent {
|
|
|
493
494
|
input: invocation.input,
|
|
494
495
|
maxTurns: this.maxTurns,
|
|
495
496
|
model,
|
|
496
|
-
modelSettings: invocation.modelSettings,
|
|
497
|
+
modelSettings: modelSettingsForProvider(invocation.modelSettings, AI_PROVIDER.openai, this.serviceTier),
|
|
497
498
|
});
|
|
498
499
|
}
|
|
499
500
|
/**
|
|
@@ -664,6 +665,7 @@ export class Agent {
|
|
|
664
665
|
return {
|
|
665
666
|
message,
|
|
666
667
|
model,
|
|
668
|
+
serviceTier: this.serviceTier,
|
|
667
669
|
traceId,
|
|
668
670
|
previousMessages,
|
|
669
671
|
invocation,
|
|
@@ -688,6 +690,7 @@ export class Agent {
|
|
|
688
690
|
return {
|
|
689
691
|
message: payload.message,
|
|
690
692
|
model: payload.model,
|
|
693
|
+
serviceTier: payload.serviceTier ?? 'default',
|
|
691
694
|
traceId: payload.traceId,
|
|
692
695
|
previousMessages,
|
|
693
696
|
invocation,
|
|
@@ -721,6 +724,8 @@ export class Agent {
|
|
|
721
724
|
const instructions = invocation.instructions;
|
|
722
725
|
const modelInput = invocation.input;
|
|
723
726
|
const attempts = app().ai.resolveProviders(this.provider(), prepared.model);
|
|
727
|
+
for (const attempt of attempts)
|
|
728
|
+
assertAIServiceTier(attempt.provider, prepared.serviceTier);
|
|
724
729
|
const attemptFailures = [];
|
|
725
730
|
await this.attachPromptRequestPayload(state, {
|
|
726
731
|
instructions,
|
|
@@ -739,12 +744,14 @@ export class Agent {
|
|
|
739
744
|
const attemptStartMs = Date.now();
|
|
740
745
|
let rateLimitLease = null;
|
|
741
746
|
let sawStreamEvent = false;
|
|
747
|
+
let completedModelTurn = false;
|
|
742
748
|
let activeUsage = null;
|
|
743
749
|
let attemptState = null;
|
|
744
750
|
let attemptSettled = false;
|
|
745
751
|
let providerStarted = false;
|
|
752
|
+
const responsePricing = [];
|
|
746
753
|
try {
|
|
747
|
-
attemptState = await this.startTrackedAttempt(state, attempt, attemptStartMs);
|
|
754
|
+
attemptState = await this.startTrackedAttempt(state, attempt, attemptStartMs, prepared.serviceTier);
|
|
748
755
|
rateLimitLease = await this.acquireProviderCapacity(prepared, instructions, modelInput, attempt, attemptState);
|
|
749
756
|
const simulatedOutage = simulatedProviderOutage(attempt.provider);
|
|
750
757
|
if (simulatedOutage)
|
|
@@ -754,8 +761,20 @@ export class Agent {
|
|
|
754
761
|
providerStarted = true;
|
|
755
762
|
const runner = new Runner({
|
|
756
763
|
model: attempt.model,
|
|
757
|
-
modelProvider: app().ai.createAgentProvider(attempt, rateLimitLease),
|
|
758
|
-
modelSettings:
|
|
764
|
+
modelProvider: app().ai.createAgentProvider(attempt, rateLimitLease, prepared.serviceTier),
|
|
765
|
+
modelSettings: {
|
|
766
|
+
...modelSettingsForProvider(invocation.modelSettings, attempt.provider, prepared.serviceTier),
|
|
767
|
+
retry: {
|
|
768
|
+
maxRetries: 8,
|
|
769
|
+
/** Retains completed tools in this SDK run; never restarts the whole agent. */
|
|
770
|
+
policy: ({ error }) => {
|
|
771
|
+
if (!completedModelTurn)
|
|
772
|
+
return false;
|
|
773
|
+
const delayMs = app().ai.providerAdmission.requestRetryDelay(attempt, agentRateLimitError(error));
|
|
774
|
+
return delayMs === null ? false : { retry: true, delayMs };
|
|
775
|
+
},
|
|
776
|
+
},
|
|
777
|
+
},
|
|
759
778
|
tracingDisabled: process.env.OPENAI_AGENTS_TRACING_DISABLED === 'true',
|
|
760
779
|
traceIncludeSensitiveData: false,
|
|
761
780
|
workflowName: this.workflowName,
|
|
@@ -775,6 +794,14 @@ export class Agent {
|
|
|
775
794
|
let assistantText = '';
|
|
776
795
|
for await (const event of stream) {
|
|
777
796
|
sawStreamEvent = true;
|
|
797
|
+
if (event.type === 'raw_model_stream_event' && event.data.type === 'response_done') {
|
|
798
|
+
completedModelTurn = true;
|
|
799
|
+
const providerData = recordValue(event.data.response.providerData);
|
|
800
|
+
responsePricing.push({
|
|
801
|
+
...(typeof providerData?.model === 'string' ? { model: providerData.model } : {}),
|
|
802
|
+
serviceTier: effectiveAIServiceTier(providerData?.service_tier, prepared.serviceTier),
|
|
803
|
+
});
|
|
804
|
+
}
|
|
778
805
|
const streamEvent = await this.streamEventFromSdkEvent(executionState, event);
|
|
779
806
|
if (!streamEvent)
|
|
780
807
|
continue;
|
|
@@ -784,6 +811,9 @@ export class Agent {
|
|
|
784
811
|
await emit(streamEvent);
|
|
785
812
|
}
|
|
786
813
|
await stream.completed;
|
|
814
|
+
const streamFailure = app().ai.providerAdmission?.requestFailure(attempt, null);
|
|
815
|
+
if (streamFailure)
|
|
816
|
+
throw streamFailure;
|
|
787
817
|
const rawFinalOutput = this.finalOutputText(stream.finalOutput, assistantText);
|
|
788
818
|
const finalResponseCitations = agentCitationsFromFinalModelResponse(stream.rawResponses);
|
|
789
819
|
const citations = finalResponseCitations ?? normalizedAgentCitations(executionState.citations);
|
|
@@ -795,7 +825,7 @@ export class Agent {
|
|
|
795
825
|
citation,
|
|
796
826
|
});
|
|
797
827
|
}
|
|
798
|
-
await this.completeTrackedAttempt(executionState, activeUsage, stream.lastResponseId ?? null);
|
|
828
|
+
await this.completeTrackedAttempt(executionState, activeUsage, stream.lastResponseId ?? null, responsePricing);
|
|
799
829
|
attemptSettled = true;
|
|
800
830
|
const structuredOutput = this.structuredFinalOutput(stream.finalOutput);
|
|
801
831
|
const finalOutput = agentMarkdownWithCitations(rawFinalOutput, citations);
|
|
@@ -841,9 +871,14 @@ export class Agent {
|
|
|
841
871
|
});
|
|
842
872
|
}
|
|
843
873
|
catch (caught) {
|
|
844
|
-
const
|
|
874
|
+
const restored = agentRateLimitError(caught);
|
|
875
|
+
const failure = app().ai.providerAdmission?.requestFailure(attempt, restored) ?? restored;
|
|
876
|
+
// Restarting a turn after streamed output/tools can repeat completed work.
|
|
877
|
+
const error = failure instanceof AIProviderDeferredError && sawStreamEvent ? new AIProviderStoppedError('outage', failure.providerCode, { ...failure.diagnostics, stopStage: 'stream-output' }) : failure;
|
|
878
|
+
if (failure instanceof AIProviderDeferredError && error instanceof AIProviderStoppedError)
|
|
879
|
+
error.providerStarted = failure.providerStarted;
|
|
845
880
|
if (attemptState && !attemptSettled) {
|
|
846
|
-
await this.failTrackedAttempt(attemptState, activeUsage, providerStarted, error);
|
|
881
|
+
await this.failTrackedAttempt(attemptState, activeUsage, providerStarted, error, responsePricing);
|
|
847
882
|
}
|
|
848
883
|
// Failover is only safe before the SDK has streamed anything: once
|
|
849
884
|
// events arrive, tool calls and partial output may already be
|
|
@@ -880,9 +915,10 @@ export class Agent {
|
|
|
880
915
|
* @param rootState - Logical run root and shared conversation state.
|
|
881
916
|
* @param attempt - Provider and model selected for this execution.
|
|
882
917
|
* @param startedAtMs - Attempt start timestamp in milliseconds.
|
|
918
|
+
* @param serviceTier - Requested tier retained alongside this attempt.
|
|
883
919
|
* @returns Persistence state scoped to the new provider attempt.
|
|
884
920
|
*/
|
|
885
|
-
async startTrackedAttempt(rootState, attempt, startedAtMs) {
|
|
921
|
+
async startTrackedAttempt(rootState, attempt, startedAtMs, serviceTier) {
|
|
886
922
|
const aiRequest = await new (app().ai.models.request)({
|
|
887
923
|
conversation: rootState.conversation,
|
|
888
924
|
parentAiRequest: rootState.rootAiRequest,
|
|
@@ -893,6 +929,7 @@ export class Agent {
|
|
|
893
929
|
operation: 'agents.run.attempt',
|
|
894
930
|
status: AI_REQUEST_STATUS.pending,
|
|
895
931
|
request: {
|
|
932
|
+
serviceTier,
|
|
896
933
|
rootAiRequestId: rootState.rootAiRequest.id,
|
|
897
934
|
traceId: rootState.traceId,
|
|
898
935
|
},
|
|
@@ -923,10 +960,10 @@ export class Agent {
|
|
|
923
960
|
* @param sdkUsage - Complete Agents SDK usage for this attempt.
|
|
924
961
|
* @param lastResponseId - Last provider response id in the attempt.
|
|
925
962
|
*/
|
|
926
|
-
async completeTrackedAttempt(state, sdkUsage, lastResponseId) {
|
|
963
|
+
async completeTrackedAttempt(state, sdkUsage, lastResponseId, responsePricing) {
|
|
927
964
|
const usage = agentRunUsage(sdkUsage);
|
|
928
|
-
const requestUsageEntries = agentRequestCostUsageEntries(sdkUsage);
|
|
929
|
-
const cost = agentAttemptCost(state.aiRequest.provider, state.model, usage, requestUsageEntries, state.hostedToolUsage);
|
|
965
|
+
const requestUsageEntries = agentRequestCostUsageEntries(sdkUsage, responsePricing, recordValue(state.aiRequest.request)?.serviceTier);
|
|
966
|
+
const cost = agentAttemptCost(state.aiRequest.provider, state.model, usage, requestUsageEntries, state.hostedToolUsage, recordValue(state.aiRequest.request)?.serviceTier);
|
|
930
967
|
state.aiRequest.assign({
|
|
931
968
|
response: agentAttemptResponse(usage, requestUsageEntries, cost, state.hostedToolUsage, {
|
|
932
969
|
lastResponseId,
|
|
@@ -955,14 +992,14 @@ export class Agent {
|
|
|
955
992
|
* @param providerStarted - Whether execution crossed the provider boundary.
|
|
956
993
|
* @param error - Error that ended the attempt.
|
|
957
994
|
*/
|
|
958
|
-
async failTrackedAttempt(state, sdkUsage, providerStarted, error) {
|
|
995
|
+
async failTrackedAttempt(state, sdkUsage, providerStarted, error, responsePricing) {
|
|
959
996
|
const usage = sdkUsage ? agentRunUsage(sdkUsage) : emptyAgentRunUsage();
|
|
960
|
-
const requestUsageEntries = sdkUsage ? agentRequestCostUsageEntries(sdkUsage) : [];
|
|
997
|
+
const requestUsageEntries = sdkUsage ? agentRequestCostUsageEntries(sdkUsage, responsePricing, recordValue(state.aiRequest.request)?.serviceTier) : [];
|
|
961
998
|
const hasBillableUsage = sdkUsage
|
|
962
999
|
? hasBillableAgentAttemptUsage(sdkUsage, state.hostedToolUsage)
|
|
963
1000
|
: Object.values(state.hostedToolUsage).some(count => Number.isFinite(count) && count > 0);
|
|
964
1001
|
const cost = hasBillableUsage
|
|
965
|
-
? agentAttemptCost(state.aiRequest.provider, state.model, usage, requestUsageEntries, state.hostedToolUsage)
|
|
1002
|
+
? agentAttemptCost(state.aiRequest.provider, state.model, usage, requestUsageEntries, state.hostedToolUsage, recordValue(state.aiRequest.request)?.serviceTier)
|
|
966
1003
|
: emptyAgentAttemptCost(providerStarted);
|
|
967
1004
|
const message = error instanceof Error ? error.message : `Unable to run ${this.agentName}.`;
|
|
968
1005
|
state.aiRequest.assign({
|
|
@@ -1504,29 +1541,13 @@ export class Agent {
|
|
|
1504
1541
|
costUSD: run.unpricedRequestCount > 0 ? null : run.totalCostUSD,
|
|
1505
1542
|
};
|
|
1506
1543
|
}
|
|
1507
|
-
/**
|
|
1508
|
-
|
|
1509
|
-
|
|
1510
|
-
|
|
1511
|
-
* @param quotaRetry - Bounded exponential quota retry decision.
|
|
1512
|
-
*/
|
|
1513
|
-
async deferTrackedRun(state, quotaRetry) {
|
|
1514
|
-
state.aiRequest.assign({
|
|
1515
|
-
status: AI_REQUEST_STATUS.pending,
|
|
1516
|
-
completedAt: null,
|
|
1517
|
-
durationMs: null,
|
|
1518
|
-
errorCode: quotaRetry.code,
|
|
1519
|
-
errorMessage: quotaRetry.message,
|
|
1520
|
-
metadata: withOpenAIQuotaRetryMetadata(state.aiRequest.metadata, quotaRetry.metadata),
|
|
1521
|
-
});
|
|
1522
|
-
await state.aiRequest.save();
|
|
1523
|
-
await this.touchConversation(state, {
|
|
1524
|
-
lastTraceId: state.traceId,
|
|
1525
|
-
lastStatus: AI_REQUEST_STATUS.pending,
|
|
1526
|
-
lastError: quotaRetry.message,
|
|
1527
|
-
nextRetryAt: quotaRetry.retryAt.toISOString(),
|
|
1528
|
-
retryUntil: quotaRetry.retryUntil.toISOString(),
|
|
1544
|
+
/** Keeps unstarted queued work visibly pending on the shared account deadline. */
|
|
1545
|
+
async deferTrackedRun(state, error) {
|
|
1546
|
+
state.rootAiRequest.assign({ status: AI_REQUEST_STATUS.pending, completedAt: null, errorCode: 'ai_provider_deferred', errorMessage: error.message,
|
|
1547
|
+
metadata: { ...(state.rootAiRequest.metadata ?? {}), providerAdmission: { retryAt: error.retryAt.toISOString(), retryUntil: error.retryUntil.toISOString() } },
|
|
1529
1548
|
});
|
|
1549
|
+
await state.rootAiRequest.save();
|
|
1550
|
+
await this.touchConversation(state, { lastTraceId: state.traceId, lastStatus: AI_REQUEST_STATUS.pending, lastError: error.message, nextRetryAt: error.retryAt.toISOString(), retryUntil: error.retryUntil.toISOString() });
|
|
1530
1551
|
}
|
|
1531
1552
|
/**
|
|
1532
1553
|
* Marks the tracked AI request as failed.
|
|
@@ -1617,6 +1638,7 @@ export class Agent {
|
|
|
1617
1638
|
aiRequestId: prepared.state.aiRequest.id ? String(prepared.state.aiRequest.id) : null,
|
|
1618
1639
|
traceId: prepared.traceId,
|
|
1619
1640
|
model: prepared.model,
|
|
1641
|
+
serviceTier: prepared.serviceTier,
|
|
1620
1642
|
};
|
|
1621
1643
|
}
|
|
1622
1644
|
/**
|
|
@@ -1675,7 +1697,7 @@ function agentRateLimitError(error) {
|
|
|
1675
1697
|
const seen = new Set();
|
|
1676
1698
|
let current = error;
|
|
1677
1699
|
while (current instanceof Error && !seen.has(current)) {
|
|
1678
|
-
if (current instanceof
|
|
1700
|
+
if (isQueueRetryLaterError(current) || current instanceof AIProviderStoppedError)
|
|
1679
1701
|
return current;
|
|
1680
1702
|
seen.add(current);
|
|
1681
1703
|
current = current.cause;
|
|
@@ -2698,10 +2720,13 @@ function agentRunUsage(usage) {
|
|
|
2698
2720
|
* Normalizes the SDK's individual provider-request usage for accurate pricing.
|
|
2699
2721
|
*
|
|
2700
2722
|
* @param usage - Agents SDK aggregate usage object.
|
|
2723
|
+
* @param responsePricing - Terminal response metadata in SDK request order.
|
|
2724
|
+
* @param requestedTier - Saved selection used only for legacy Standard fallback.
|
|
2701
2725
|
* @returns Individual request entries with cached-input details preserved.
|
|
2702
2726
|
*/
|
|
2703
|
-
function agentRequestCostUsageEntries(usage) {
|
|
2704
|
-
return (usage.requestUsageEntries ?? []).map(entry => ({
|
|
2727
|
+
function agentRequestCostUsageEntries(usage, responsePricing, requestedTier) {
|
|
2728
|
+
return (usage.requestUsageEntries ?? []).map((entry, index) => ({
|
|
2729
|
+
...(responsePricing.length === usage.requestUsageEntries?.length ? responsePricing[index] : { serviceTier: effectiveAIServiceTier(undefined, requestedTier) }),
|
|
2705
2730
|
inputTokens: numberOrNull(entry.inputTokens),
|
|
2706
2731
|
outputTokens: numberOrNull(entry.outputTokens),
|
|
2707
2732
|
cachedTokens: tokenDetailValue(entry.inputTokensDetails, 'cached_tokens'),
|
|
@@ -2721,9 +2746,10 @@ function agentRequestCostUsageEntries(usage) {
|
|
|
2721
2746
|
* @param usage - Aggregate attempt usage.
|
|
2722
2747
|
* @param requestUsageEntries - Per-provider-request usage entries.
|
|
2723
2748
|
* @param hostedToolUsage - Completed hosted provider-tool calls.
|
|
2749
|
+
* @param requestedTier - Saved selection used for single-request Standard fallback.
|
|
2724
2750
|
* @returns Complete attempt cost and any unpriced dimensions.
|
|
2725
2751
|
*/
|
|
2726
|
-
function agentAttemptCost(provider, model, usage, requestUsageEntries, hostedToolUsage) {
|
|
2752
|
+
function agentAttemptCost(provider, model, usage, requestUsageEntries, hostedToolUsage, requestedTier) {
|
|
2727
2753
|
const usesPerRequestUsage = usage.requests > 0
|
|
2728
2754
|
&& requestUsageEntries.length === usage.requests;
|
|
2729
2755
|
const usesSingleRequestAggregate = usage.requests === 1
|
|
@@ -2732,7 +2758,7 @@ function agentAttemptCost(provider, model, usage, requestUsageEntries, hostedToo
|
|
|
2732
2758
|
? usesPerRequestUsage
|
|
2733
2759
|
? calculateAIRequestEntriesCostUSD(model, requestUsageEntries)
|
|
2734
2760
|
: usesSingleRequestAggregate
|
|
2735
|
-
? calculateAIRequestCostUSD(model, usage)
|
|
2761
|
+
? calculateAIRequestCostUSD(model, { ...usage, serviceTier: effectiveAIServiceTier(undefined, requestedTier) })
|
|
2736
2762
|
: null
|
|
2737
2763
|
: null;
|
|
2738
2764
|
const hostedToolCost = provider === AI_PROVIDER.openai
|
|
@@ -2834,20 +2860,22 @@ function emptyAgentRunUsage() {
|
|
|
2834
2860
|
};
|
|
2835
2861
|
}
|
|
2836
2862
|
/**
|
|
2837
|
-
* Applies
|
|
2863
|
+
* Applies the explicitly selected service tier only to direct OpenAI requests.
|
|
2838
2864
|
*
|
|
2839
2865
|
* @param settings - Agent-owned model settings.
|
|
2840
2866
|
* @param provider - Provider selected for the current attempt.
|
|
2841
|
-
* @
|
|
2867
|
+
* @param serviceTier - Explicit class selection, frozen in queued run payloads.
|
|
2868
|
+
* @returns Provider-safe settings with the selected OpenAI tier.
|
|
2842
2869
|
*/
|
|
2843
|
-
function modelSettingsForProvider(settings, provider) {
|
|
2870
|
+
function modelSettingsForProvider(settings, provider, serviceTier) {
|
|
2871
|
+
assertAIServiceTier(provider, serviceTier);
|
|
2844
2872
|
if (provider !== AI_PROVIDER.openai)
|
|
2845
2873
|
return settings;
|
|
2846
2874
|
return {
|
|
2847
2875
|
...settings,
|
|
2848
2876
|
providerData: {
|
|
2849
2877
|
...(settings.providerData ?? {}),
|
|
2850
|
-
service_tier:
|
|
2878
|
+
service_tier: serviceTier,
|
|
2851
2879
|
},
|
|
2852
2880
|
};
|
|
2853
2881
|
}
|
package/dist/ai/Ai.d.ts
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
/// <reference path="./sdkNodeCompatibility.d.ts" preserve="true" />
|
|
2
|
+
import type { GenerateEmbeddingOptions } from './contracts/AI.js';
|
|
3
|
+
import { AIProviderAdmission } from './AIProviderAdmission.js';
|
|
2
4
|
import { type ModelProvider } from '@openai/agents';
|
|
3
5
|
import { AI_PROVIDER } from './contracts/AI.js';
|
|
4
6
|
import { type AIProviderAttempt } from './AIProviders.js';
|
|
5
7
|
import { AIRateLimiter, type AIProviderResponseMetadata, type AIRateLimitLease } from './AIRateLimiter.js';
|
|
6
|
-
import type {
|
|
8
|
+
import type { AIServiceTier } from './contracts/AIServiceTier.js';
|
|
9
|
+
import type { AIAllowanceCheckInput, AIRecordIdentity, AIModels, AIConfig, AIOptions, AIProviderSelection, AIResponseLogOptions, GenerateEmbeddingResult, GenerateImageInput, GenerateImageOptions, GenerateImageResult, GenerateStructuredInput, GenerateTextInput, GenerateTextResult } from './contracts/AI.js';
|
|
7
10
|
/**
|
|
8
11
|
* Raised when exact provider usage could not be made durable after bounded retries.
|
|
9
12
|
*
|
|
@@ -38,6 +41,7 @@ export declare class Ai {
|
|
|
38
41
|
/** Logical ownership field used by this application. */
|
|
39
42
|
readonly scopeField: string;
|
|
40
43
|
private readonly rateLimiter;
|
|
44
|
+
readonly providerAdmission: AIProviderAdmission;
|
|
41
45
|
/**
|
|
42
46
|
* Create an AI service instance.
|
|
43
47
|
*
|
|
@@ -290,7 +294,7 @@ export declare class Ai {
|
|
|
290
294
|
* @param initialLease - Optional preflight reservation consumed by the first request.
|
|
291
295
|
* @returns SDK provider using the service's transport and rate-limit lifecycle.
|
|
292
296
|
*/
|
|
293
|
-
createAgentProvider(attempt: AIProviderAttempt, initialLease?: AIRateLimitLease | null): ModelProvider;
|
|
297
|
+
createAgentProvider(attempt: AIProviderAttempt, initialLease?: AIRateLimitLease | null, serviceTier?: AIServiceTier): ModelProvider;
|
|
294
298
|
/**
|
|
295
299
|
* Reserves each SDK model turn and observes headers before streaming or tool execution.
|
|
296
300
|
*
|
|
@@ -304,6 +308,10 @@ export declare class Ai {
|
|
|
304
308
|
* @returns Transport that maintains provider capacity and request diagnostics.
|
|
305
309
|
*/
|
|
306
310
|
private agentFetcher;
|
|
311
|
+
/** Resolves the account connection for OpenAI-only images and embeddings. */
|
|
312
|
+
private openAIAdmissionAttempt;
|
|
313
|
+
/** Resolves a tier-aware request timeout while respecting an explicit service override. */
|
|
314
|
+
private requestTimeoutMs;
|
|
307
315
|
/**
|
|
308
316
|
* Fetch implementation used by provider calls.
|
|
309
317
|
*/
|
|
@@ -368,7 +376,7 @@ export declare class Ai {
|
|
|
368
376
|
* @param options - Optional AI request logging context.
|
|
369
377
|
* @returns Embedding vector, model, and saved request id when tracking is enabled.
|
|
370
378
|
*/
|
|
371
|
-
generateEmbedding(input: string, model?: string, options?:
|
|
379
|
+
generateEmbedding(input: string, model?: string, options?: GenerateEmbeddingOptions): Promise<GenerateEmbeddingResult>;
|
|
372
380
|
}
|
|
373
381
|
export { AIAllowanceExceededError, AIConfigurationError, AIRequestError } from './AIErrors.js';
|
|
374
382
|
export { AI_PROVIDER };
|