@db3.ai/app 0.1.0-beta.1
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/LICENSE +31 -0
- package/README.md +241 -0
- package/agent-instructions.md +69 -0
- package/bin/db3-agents.mjs +140 -0
- package/bin/db3.mjs +11 -0
- package/dist/ai/AIErrors.d.ts +33 -0
- package/dist/ai/AIErrors.js +43 -0
- package/dist/ai/AIFailover.d.ts +25 -0
- package/dist/ai/AIFailover.js +96 -0
- package/dist/ai/AIProviders.d.ts +35 -0
- package/dist/ai/AIProviders.js +197 -0
- package/dist/ai/AIQuotaDeferredError.d.ts +19 -0
- package/dist/ai/AIQuotaDeferredError.js +25 -0
- package/dist/ai/AIRateLimiter.d.ts +103 -0
- package/dist/ai/AIRateLimiter.js +690 -0
- package/dist/ai/Agent.d.ts +633 -0
- package/dist/ai/Agent.js +2976 -0
- package/dist/ai/AgentHistory.d.ts +11 -0
- package/dist/ai/AgentHistory.js +495 -0
- package/dist/ai/AgentRunJob.d.ts +21 -0
- package/dist/ai/AgentRunJob.js +53 -0
- package/dist/ai/Ai.d.ts +375 -0
- package/dist/ai/Ai.js +1771 -0
- package/dist/ai/AiConversation.d.ts +17 -0
- package/dist/ai/AiConversation.js +38 -0
- package/dist/ai/AiExecutionContext.d.ts +7 -0
- package/dist/ai/AiExecutionContext.js +16 -0
- package/dist/ai/AiMessage.d.ts +43 -0
- package/dist/ai/AiMessage.js +105 -0
- package/dist/ai/AiRateLimitBucket.d.ts +69 -0
- package/dist/ai/AiRateLimitBucket.js +138 -0
- package/dist/ai/AiRateLimitReservation.d.ts +56 -0
- package/dist/ai/AiRateLimitReservation.js +101 -0
- package/dist/ai/AiRequest.d.ts +78 -0
- package/dist/ai/AiRequest.js +384 -0
- package/dist/ai/Estimates.d.ts +26 -0
- package/dist/ai/Estimates.js +34 -0
- package/dist/ai/Models.d.ts +88 -0
- package/dist/ai/Models.js +328 -0
- package/dist/ai/OpenAIProviderError.d.ts +30 -0
- package/dist/ai/OpenAIProviderError.js +77 -0
- package/dist/ai/OpenAIQuotaRetry.d.ts +27 -0
- package/dist/ai/OpenAIQuotaRetry.js +144 -0
- package/dist/ai/ProviderCosts.d.ts +55 -0
- package/dist/ai/ProviderCosts.js +108 -0
- package/dist/ai/ResponsesProviderCall.d.ts +13 -0
- package/dist/ai/ResponsesProviderCall.js +29 -0
- package/dist/ai/agentCitations.d.ts +27 -0
- package/dist/ai/agentCitations.js +153 -0
- package/dist/ai/contracts/AI.d.ts +347 -0
- package/dist/ai/contracts/AI.js +13 -0
- package/dist/ai/contracts/Agent.d.ts +476 -0
- package/dist/ai/contracts/Agent.js +1 -0
- package/dist/ai/contracts/AiRequestRunCostSummary.d.ts +31 -0
- package/dist/ai/contracts/AiRequestRunCostSummary.js +1 -0
- package/dist/ai/contracts/Pricing.d.ts +88 -0
- package/dist/ai/contracts/Pricing.js +1 -0
- package/dist/ai/contracts/Providers.d.ts +68 -0
- package/dist/ai/contracts/Providers.js +1 -0
- package/dist/ai/contracts/QuotaRetry.d.ts +38 -0
- package/dist/ai/contracts/QuotaRetry.js +1 -0
- package/dist/ai/contracts/RateLimits.d.ts +45 -0
- package/dist/ai/contracts/RateLimits.js +1 -0
- package/dist/ai/contracts/ResponsesProviderCall.d.ts +28 -0
- package/dist/ai/contracts/ResponsesProviderCall.js +1 -0
- package/dist/ai/contracts/index.d.ts +8 -0
- package/dist/ai/contracts/index.js +8 -0
- package/dist/ai/index.d.ts +27 -0
- package/dist/ai/index.js +27 -0
- package/dist/ai/registry.d.ts +28 -0
- package/dist/ai/registry.js +49 -0
- package/dist/ai/sdkNodeCompatibility.d.ts +76 -0
- package/dist/ai/toolCallRecovery.d.ts +16 -0
- package/dist/ai/toolCallRecovery.js +71 -0
- package/dist/ai/toolHelpers.d.ts +65 -0
- package/dist/ai/toolHelpers.js +106 -0
- package/dist/auth/Auth.d.ts +641 -0
- package/dist/auth/Auth.js +927 -0
- package/dist/auth/AuthProvider.d.ts +104 -0
- package/dist/auth/AuthProvider.js +185 -0
- package/dist/auth/AuthToken.d.ts +123 -0
- package/dist/auth/AuthToken.js +156 -0
- package/dist/auth/PasswordResetToken.d.ts +33 -0
- package/dist/auth/PasswordResetToken.js +64 -0
- package/dist/auth/UserIdentity.d.ts +46 -0
- package/dist/auth/UserIdentity.js +72 -0
- package/dist/auth/contracts/AuthProviderDriver.d.ts +94 -0
- package/dist/auth/contracts/AuthProviderDriver.js +1 -0
- package/dist/auth/contracts/index.d.ts +1 -0
- package/dist/auth/contracts/index.js +1 -0
- package/dist/auth/index.d.ts +8 -0
- package/dist/auth/index.js +8 -0
- package/dist/auth/passwordHash.d.ts +26 -0
- package/dist/auth/passwordHash.js +96 -0
- package/dist/auth/providers/GoogleAuthProvider.d.ts +135 -0
- package/dist/auth/providers/GoogleAuthProvider.js +305 -0
- package/dist/auth/providers/PasswordAuthProvider.d.ts +115 -0
- package/dist/auth/providers/PasswordAuthProvider.js +195 -0
- package/dist/auth/providers/index.d.ts +3 -0
- package/dist/auth/providers/index.js +3 -0
- package/dist/auth/providers/resolveAuthProviders.d.ts +29 -0
- package/dist/auth/providers/resolveAuthProviders.js +111 -0
- package/dist/cache/Cache.d.ts +67 -0
- package/dist/cache/Cache.js +115 -0
- package/dist/cache/contracts/CacheDriver.d.ts +10 -0
- package/dist/cache/contracts/CacheDriver.js +1 -0
- package/dist/cache/contracts/CacheOperations.d.ts +26 -0
- package/dist/cache/contracts/CacheOperations.js +1 -0
- package/dist/cache/contracts/CacheOptions.d.ts +51 -0
- package/dist/cache/contracts/CacheOptions.js +1 -0
- package/dist/cache/contracts/CacheRepository.d.ts +45 -0
- package/dist/cache/contracts/CacheRepository.js +1 -0
- package/dist/cache/contracts/index.d.ts +4 -0
- package/dist/cache/contracts/index.js +4 -0
- package/dist/cache/drivers/CacheManagerDriver.d.ts +55 -0
- package/dist/cache/drivers/CacheManagerDriver.js +68 -0
- package/dist/cache/drivers/createCacheDriver.d.ts +8 -0
- package/dist/cache/drivers/createCacheDriver.js +147 -0
- package/dist/cache/index.d.ts +2 -0
- package/dist/cache/index.js +2 -0
- package/dist/cli/Cli.d.ts +17 -0
- package/dist/cli/Cli.js +120 -0
- package/dist/cli/commands/repl.d.ts +9 -0
- package/dist/cli/commands/repl.js +27 -0
- package/dist/cli/contracts/CliCommand.d.ts +30 -0
- package/dist/cli/contracts/CliCommand.js +1 -0
- package/dist/cli/contracts/CliConfig.d.ts +9 -0
- package/dist/cli/contracts/CliConfig.js +1 -0
- package/dist/cli/contracts/CliOptions.d.ts +13 -0
- package/dist/cli/contracts/CliOptions.js +1 -0
- package/dist/cli/contracts/CommandDefinition.d.ts +18 -0
- package/dist/cli/contracts/CommandDefinition.js +1 -0
- package/dist/cli/contracts/ReplOptions.d.ts +11 -0
- package/dist/cli/contracts/ReplOptions.js +1 -0
- package/dist/cli/contracts/index.d.ts +5 -0
- package/dist/cli/contracts/index.js +1 -0
- package/dist/cli/defineCommand.d.ts +10 -0
- package/dist/cli/defineCommand.js +25 -0
- package/dist/cli/index.d.ts +5 -0
- package/dist/cli/index.js +5 -0
- package/dist/cli/runDb3.d.ts +11 -0
- package/dist/cli/runDb3.js +70 -0
- package/dist/cli/runRepl.d.ts +12 -0
- package/dist/cli/runRepl.js +54 -0
- package/dist/config/Config.d.ts +48 -0
- package/dist/config/Config.js +80 -0
- package/dist/config/env.d.ts +26 -0
- package/dist/config/env.js +117 -0
- package/dist/config/index.d.ts +2 -0
- package/dist/config/index.js +2 -0
- package/dist/db/ActiveProjection.d.ts +90 -0
- package/dist/db/ActiveProjection.js +134 -0
- package/dist/db/ActiveQueryBuilder.d.ts +268 -0
- package/dist/db/ActiveQueryBuilder.js +621 -0
- package/dist/db/ActiveRecord.d.ts +483 -0
- package/dist/db/ActiveRecord.js +765 -0
- package/dist/db/Database.d.ts +277 -0
- package/dist/db/Database.js +827 -0
- package/dist/db/FieldType.d.ts +540 -0
- package/dist/db/FieldType.js +706 -0
- package/dist/db/SoftDeletes.d.ts +30 -0
- package/dist/db/SoftDeletes.js +93 -0
- package/dist/db/commands/check.d.ts +6 -0
- package/dist/db/commands/check.js +8 -0
- package/dist/db/commands/index.d.ts +6 -0
- package/dist/db/commands/index.js +17 -0
- package/dist/db/commands/makeMigration.d.ts +7 -0
- package/dist/db/commands/makeMigration.js +9 -0
- package/dist/db/commands/migrate.d.ts +6 -0
- package/dist/db/commands/migrate.js +8 -0
- package/dist/db/connection.d.ts +10 -0
- package/dist/db/connection.js +55 -0
- package/dist/db/contracts/ActiveRecordDefinition.d.ts +64 -0
- package/dist/db/contracts/ActiveRecordDefinition.js +1 -0
- package/dist/db/contracts/DatabaseBackup.d.ts +7 -0
- package/dist/db/contracts/DatabaseBackup.js +1 -0
- package/dist/db/contracts/DatabaseMigrationsConfig.d.ts +9 -0
- package/dist/db/contracts/DatabaseMigrationsConfig.js +1 -0
- package/dist/db/contracts/index.d.ts +3 -0
- package/dist/db/contracts/index.js +3 -0
- package/dist/db/dialects/columnTypes.d.ts +20 -0
- package/dist/db/dialects/columnTypes.js +67 -0
- package/dist/db/dialects/index.d.ts +6 -0
- package/dist/db/dialects/index.js +6 -0
- package/dist/db/dialects/mariadb.d.ts +7 -0
- package/dist/db/dialects/mariadb.js +35 -0
- package/dist/db/dialects/mysql.d.ts +14 -0
- package/dist/db/dialects/mysql.js +203 -0
- package/dist/db/dialects/postgres.d.ts +5 -0
- package/dist/db/dialects/postgres.js +106 -0
- package/dist/db/dialects/resolveDialect.d.ts +14 -0
- package/dist/db/dialects/resolveDialect.js +57 -0
- package/dist/db/dialects/types.d.ts +44 -0
- package/dist/db/dialects/types.js +1 -0
- package/dist/db/errors.d.ts +15 -0
- package/dist/db/errors.js +20 -0
- package/dist/db/fields/BooleanField.d.ts +29 -0
- package/dist/db/fields/BooleanField.js +89 -0
- package/dist/db/fields/CharUuidField.d.ts +29 -0
- package/dist/db/fields/CharUuidField.js +63 -0
- package/dist/db/fields/ChoiceStringField.d.ts +25 -0
- package/dist/db/fields/ChoiceStringField.js +58 -0
- package/dist/db/fields/DecimalField.d.ts +20 -0
- package/dist/db/fields/DecimalField.js +105 -0
- package/dist/db/fields/EmailField.d.ts +31 -0
- package/dist/db/fields/EmailField.js +52 -0
- package/dist/db/fields/EncryptedJsonField.d.ts +82 -0
- package/dist/db/fields/EncryptedJsonField.js +169 -0
- package/dist/db/fields/IntegerField.d.ts +35 -0
- package/dist/db/fields/IntegerField.js +139 -0
- package/dist/db/fields/JsonField.d.ts +40 -0
- package/dist/db/fields/JsonField.js +79 -0
- package/dist/db/fields/JsonStringField.d.ts +21 -0
- package/dist/db/fields/JsonStringField.js +41 -0
- package/dist/db/fields/LinkField.d.ts +180 -0
- package/dist/db/fields/LinkField.js +359 -0
- package/dist/db/fields/PasswordField.d.ts +93 -0
- package/dist/db/fields/PasswordField.js +180 -0
- package/dist/db/fields/StringField.d.ts +43 -0
- package/dist/db/fields/StringField.js +102 -0
- package/dist/db/fields/StringListField.d.ts +54 -0
- package/dist/db/fields/StringListField.js +124 -0
- package/dist/db/fields/TextField.d.ts +25 -0
- package/dist/db/fields/TextField.js +44 -0
- package/dist/db/fields/TimestampField.d.ts +47 -0
- package/dist/db/fields/TimestampField.js +97 -0
- package/dist/db/fields/UlidField.d.ts +69 -0
- package/dist/db/fields/UlidField.js +114 -0
- package/dist/db/fields/UrlField.d.ts +30 -0
- package/dist/db/fields/UrlField.js +61 -0
- package/dist/db/fields/VectorField.d.ts +64 -0
- package/dist/db/fields/VectorField.js +180 -0
- package/dist/db/fields/createField.d.ts +2 -0
- package/dist/db/fields/createField.js +13 -0
- package/dist/db/fields/field.d.ts +36 -0
- package/dist/db/fields/field.js +101 -0
- package/dist/db/fields/index.d.ts +18 -0
- package/dist/db/fields/index.js +18 -0
- package/dist/db/fields/resolveFields.d.ts +17 -0
- package/dist/db/fields/resolveFields.js +38 -0
- package/dist/db/index.d.ts +13 -0
- package/dist/db/index.js +13 -0
- package/dist/db/migrations/DatabaseMigrationManager.d.ts +57 -0
- package/dist/db/migrations/DatabaseMigrationManager.js +589 -0
- package/dist/db/migrations/DatabaseSchemaInspector.d.ts +19 -0
- package/dist/db/migrations/DatabaseSchemaInspector.js +384 -0
- package/dist/db/migrations/KnexMigrationRenderer.d.ts +11 -0
- package/dist/db/migrations/KnexMigrationRenderer.js +390 -0
- package/dist/db/migrations/ModelSchemaCollector.d.ts +29 -0
- package/dist/db/migrations/ModelSchemaCollector.js +183 -0
- package/dist/db/migrations/SchemaDiffer.d.ts +13 -0
- package/dist/db/migrations/SchemaDiffer.js +427 -0
- package/dist/db/migrations/SchemaNames.d.ts +27 -0
- package/dist/db/migrations/SchemaNames.js +46 -0
- package/dist/db/migrations/SchemaSnapshotSerializer.d.ts +30 -0
- package/dist/db/migrations/SchemaSnapshotSerializer.js +49 -0
- package/dist/db/migrations/contracts/DatabaseMigration.d.ts +118 -0
- package/dist/db/migrations/contracts/DatabaseMigration.js +1 -0
- package/dist/db/migrations/contracts/SchemaChange.d.ts +83 -0
- package/dist/db/migrations/contracts/SchemaChange.js +1 -0
- package/dist/db/migrations/contracts/SchemaSnapshot.d.ts +94 -0
- package/dist/db/migrations/contracts/SchemaSnapshot.js +1 -0
- package/dist/db/migrations/contracts/index.d.ts +3 -0
- package/dist/db/migrations/contracts/index.js +3 -0
- package/dist/db/migrations/errors.d.ts +35 -0
- package/dist/db/migrations/errors.js +45 -0
- package/dist/db/migrations/index.d.ts +10 -0
- package/dist/db/migrations/index.js +10 -0
- package/dist/db/migrations/promoteDestructiveSchemaChanges.d.ts +19 -0
- package/dist/db/migrations/promoteDestructiveSchemaChanges.js +102 -0
- package/dist/db/queryMonitor.d.ts +142 -0
- package/dist/db/queryMonitor.js +357 -0
- package/dist/db/sqlErrors.d.ts +11 -0
- package/dist/db/sqlErrors.js +17 -0
- package/dist/db/test/db.d.ts +11 -0
- package/dist/db/test/db.js +109 -0
- package/dist/devtools/HttpEventDispatcher.d.ts +19 -0
- package/dist/devtools/HttpEventDispatcher.js +180 -0
- package/dist/devtools/contracts/DevtoolsEventDispatcher.d.ts +53 -0
- package/dist/devtools/contracts/DevtoolsEventDispatcher.js +1 -0
- package/dist/devtools/contracts/index.d.ts +1 -0
- package/dist/devtools/contracts/index.js +1 -0
- package/dist/devtools/environment.d.ts +10 -0
- package/dist/devtools/environment.js +14 -0
- package/dist/devtools/index.d.ts +3 -0
- package/dist/devtools/index.js +3 -0
- package/dist/events/Events.d.ts +70 -0
- package/dist/events/Events.js +126 -0
- package/dist/events/contracts/EventConstructor.d.ts +12 -0
- package/dist/events/contracts/EventConstructor.js +1 -0
- package/dist/events/contracts/EventListener.d.ts +6 -0
- package/dist/events/contracts/EventListener.js +1 -0
- package/dist/events/contracts/EventUnsubscribe.d.ts +4 -0
- package/dist/events/contracts/EventUnsubscribe.js +1 -0
- package/dist/events/contracts/index.d.ts +3 -0
- package/dist/events/contracts/index.js +3 -0
- package/dist/events/index.d.ts +2 -0
- package/dist/events/index.js +2 -0
- package/dist/flows/FlowBlockRegistry.d.ts +39 -0
- package/dist/flows/FlowBlockRegistry.js +66 -0
- package/dist/flows/FlowCompiler.d.ts +26 -0
- package/dist/flows/FlowCompiler.js +488 -0
- package/dist/flows/FlowDefinitionError.d.ts +21 -0
- package/dist/flows/FlowDefinitionError.js +16 -0
- package/dist/flows/FlowStepJob.d.ts +28 -0
- package/dist/flows/FlowStepJob.js +31 -0
- package/dist/flows/FlowValueValidator.d.ts +32 -0
- package/dist/flows/FlowValueValidator.js +105 -0
- package/dist/flows/Flows.d.ts +102 -0
- package/dist/flows/Flows.js +871 -0
- package/dist/flows/blocks/FlowInput.d.ts +10 -0
- package/dist/flows/blocks/FlowInput.js +29 -0
- package/dist/flows/blocks/FlowOutput.d.ts +10 -0
- package/dist/flows/blocks/FlowOutput.js +29 -0
- package/dist/flows/blocks/Subflow.d.ts +10 -0
- package/dist/flows/blocks/Subflow.js +21 -0
- package/dist/flows/blocks/index.d.ts +6 -0
- package/dist/flows/blocks/index.js +8 -0
- package/dist/flows/constants.d.ts +55 -0
- package/dist/flows/constants.js +47 -0
- package/dist/flows/contracts/FlowBlock.d.ts +64 -0
- package/dist/flows/contracts/FlowBlock.js +1 -0
- package/dist/flows/contracts/FlowCompiler.d.ts +30 -0
- package/dist/flows/contracts/FlowCompiler.js +1 -0
- package/dist/flows/contracts/FlowDefinition.d.ts +118 -0
- package/dist/flows/contracts/FlowDefinition.js +1 -0
- package/dist/flows/contracts/FlowDefinitionStore.d.ts +47 -0
- package/dist/flows/contracts/FlowDefinitionStore.js +1 -0
- package/dist/flows/contracts/FlowRun.d.ts +40 -0
- package/dist/flows/contracts/FlowRun.js +1 -0
- package/dist/flows/contracts/FlowValue.d.ts +49 -0
- package/dist/flows/contracts/FlowValue.js +1 -0
- package/dist/flows/contracts/FlowsService.d.ts +37 -0
- package/dist/flows/contracts/FlowsService.js +1 -0
- package/dist/flows/contracts/index.d.ts +7 -0
- package/dist/flows/contracts/index.js +7 -0
- package/dist/flows/defineBlock.d.ts +18 -0
- package/dist/flows/defineBlock.js +19 -0
- package/dist/flows/drivers/FileFlowDefinitionStore.d.ts +53 -0
- package/dist/flows/drivers/FileFlowDefinitionStore.js +313 -0
- package/dist/flows/drivers/index.d.ts +1 -0
- package/dist/flows/drivers/index.js +1 -0
- package/dist/flows/errors.d.ts +8 -0
- package/dist/flows/errors.js +19 -0
- package/dist/flows/index.d.ts +13 -0
- package/dist/flows/index.js +13 -0
- package/dist/flows/models/FlowRun.d.ts +55 -0
- package/dist/flows/models/FlowRun.js +126 -0
- package/dist/flows/models/FlowRunEvent.d.ts +41 -0
- package/dist/flows/models/FlowRunEvent.js +85 -0
- package/dist/flows/models/FlowStepRun.d.ts +56 -0
- package/dist/flows/models/FlowStepRun.js +137 -0
- package/dist/flows/models/index.d.ts +10 -0
- package/dist/flows/models/index.js +14 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.js +16 -0
- package/dist/logging/Log.d.ts +66 -0
- package/dist/logging/Log.js +79 -0
- package/dist/logging/contracts/HttpExchange.d.ts +50 -0
- package/dist/logging/contracts/HttpExchange.js +1 -0
- package/dist/logging/contracts/Logger.d.ts +41 -0
- package/dist/logging/contracts/Logger.js +1 -0
- package/dist/logging/contracts/LoggerDriver.d.ts +16 -0
- package/dist/logging/contracts/LoggerDriver.js +1 -0
- package/dist/logging/contracts/LoggingOptions.d.ts +49 -0
- package/dist/logging/contracts/LoggingOptions.js +1 -0
- package/dist/logging/contracts/index.d.ts +4 -0
- package/dist/logging/contracts/index.js +4 -0
- package/dist/logging/drivers/PinoLoggerDriver.d.ts +24 -0
- package/dist/logging/drivers/PinoLoggerDriver.js +291 -0
- package/dist/logging/drivers/index.d.ts +1 -0
- package/dist/logging/drivers/index.js +1 -0
- package/dist/logging/index.d.ts +3 -0
- package/dist/logging/index.js +3 -0
- package/dist/logging/transports/DevtoolsLogTransport.d.ts +35 -0
- package/dist/logging/transports/DevtoolsLogTransport.js +96 -0
- package/dist/mail/Mail.d.ts +62 -0
- package/dist/mail/Mail.js +98 -0
- package/dist/mail/index.d.ts +4 -0
- package/dist/mail/index.js +4 -0
- package/dist/mail/transports/FileMailTransport.d.ts +12 -0
- package/dist/mail/transports/FileMailTransport.js +41 -0
- package/dist/mail/transports/MailgunTransport.d.ts +22 -0
- package/dist/mail/transports/MailgunTransport.js +57 -0
- package/dist/mail/transports/ResendTransport.d.ts +14 -0
- package/dist/mail/transports/ResendTransport.js +55 -0
- package/dist/media/MediaFile.d.ts +48 -0
- package/dist/media/MediaFile.js +104 -0
- package/dist/media/MediaItem.d.ts +47 -0
- package/dist/media/MediaItem.js +106 -0
- package/dist/media/MediaLibrary.d.ts +42 -0
- package/dist/media/MediaLibrary.js +94 -0
- package/dist/media/MediaManager.d.ts +159 -0
- package/dist/media/MediaManager.js +754 -0
- package/dist/media/constants.d.ts +27 -0
- package/dist/media/constants.js +19 -0
- package/dist/media/contracts/MediaOptions.d.ts +8 -0
- package/dist/media/contracts/MediaOptions.js +1 -0
- package/dist/media/contracts/index.d.ts +1 -0
- package/dist/media/contracts/index.js +1 -0
- package/dist/media/image/ImageReconstructionError.d.ts +15 -0
- package/dist/media/image/ImageReconstructionError.js +18 -0
- package/dist/media/image/ImageVariantRenderer.d.ts +44 -0
- package/dist/media/image/ImageVariantRenderer.js +337 -0
- package/dist/media/image/ImageVariantRequest.d.ts +28 -0
- package/dist/media/image/ImageVariantRequest.js +55 -0
- package/dist/media/image/contracts/ImageProcessor.d.ts +46 -0
- package/dist/media/image/contracts/ImageProcessor.js +1 -0
- package/dist/media/image/contracts/ImageVariant.d.ts +31 -0
- package/dist/media/image/contracts/ImageVariant.js +7 -0
- package/dist/media/image/contracts/ImageVariantCacheOptions.d.ts +20 -0
- package/dist/media/image/contracts/ImageVariantCacheOptions.js +1 -0
- package/dist/media/image/contracts/index.d.ts +3 -0
- package/dist/media/image/contracts/index.js +3 -0
- package/dist/media/image/index.d.ts +5 -0
- package/dist/media/image/index.js +5 -0
- package/dist/media/image/processors/SharpImageProcessor.d.ts +25 -0
- package/dist/media/image/processors/SharpImageProcessor.js +112 -0
- package/dist/media/image/processors/index.d.ts +1 -0
- package/dist/media/image/processors/index.js +1 -0
- package/dist/media/index.d.ts +8 -0
- package/dist/media/index.js +8 -0
- package/dist/media/types.d.ts +129 -0
- package/dist/media/types.js +1 -0
- package/dist/queue/FailedJob.d.ts +31 -0
- package/dist/queue/FailedJob.js +41 -0
- package/dist/queue/Queue.d.ts +208 -0
- package/dist/queue/Queue.js +685 -0
- package/dist/queue/QueueEvents.d.ts +31 -0
- package/dist/queue/QueueEvents.js +49 -0
- package/dist/queue/QueueRetryLaterError.d.ts +23 -0
- package/dist/queue/QueueRetryLaterError.js +34 -0
- package/dist/queue/QueueWorker.d.ts +72 -0
- package/dist/queue/QueueWorker.js +236 -0
- package/dist/queue/QueueableJob.d.ts +109 -0
- package/dist/queue/QueueableJob.js +137 -0
- package/dist/queue/QueuedJob.d.ts +31 -0
- package/dist/queue/QueuedJob.js +52 -0
- package/dist/queue/RetryPolicy.d.ts +51 -0
- package/dist/queue/RetryPolicy.js +84 -0
- package/dist/queue/commands/index.d.ts +4 -0
- package/dist/queue/commands/index.js +11 -0
- package/dist/queue/commands/makeJob.d.ts +7 -0
- package/dist/queue/commands/makeJob.js +9 -0
- package/dist/queue/console.d.ts +60 -0
- package/dist/queue/console.js +348 -0
- package/dist/queue/contracts/CreateJob.d.ts +12 -0
- package/dist/queue/contracts/CreateJob.js +1 -0
- package/dist/queue/contracts/QueueDriver.d.ts +122 -0
- package/dist/queue/contracts/QueueDriver.js +1 -0
- package/dist/queue/contracts/QueueEvents.d.ts +61 -0
- package/dist/queue/contracts/QueueEvents.js +1 -0
- package/dist/queue/contracts/QueuePayload.d.ts +136 -0
- package/dist/queue/contracts/QueuePayload.js +1 -0
- package/dist/queue/contracts/QueueRetry.d.ts +43 -0
- package/dist/queue/contracts/QueueRetry.js +1 -0
- package/dist/queue/contracts/QueueService.d.ts +199 -0
- package/dist/queue/contracts/QueueService.js +1 -0
- package/dist/queue/contracts/QueueWorkerLifecycle.d.ts +65 -0
- package/dist/queue/contracts/QueueWorkerLifecycle.js +1 -0
- package/dist/queue/contracts/QueueableJob.d.ts +50 -0
- package/dist/queue/contracts/QueueableJob.js +1 -0
- package/dist/queue/contracts/RedisQueueDriver.d.ts +37 -0
- package/dist/queue/contracts/RedisQueueDriver.js +1 -0
- package/dist/queue/contracts/index.d.ts +9 -0
- package/dist/queue/contracts/index.js +9 -0
- package/dist/queue/createJob.d.ts +18 -0
- package/dist/queue/createJob.js +52 -0
- package/dist/queue/drivers/DatabaseQueueDriver.d.ts +83 -0
- package/dist/queue/drivers/DatabaseQueueDriver.js +393 -0
- package/dist/queue/drivers/RedisQueueDriver.d.ts +102 -0
- package/dist/queue/drivers/RedisQueueDriver.js +641 -0
- package/dist/queue/index.d.ts +13 -0
- package/dist/queue/index.js +13 -0
- package/dist/queue/queueMonitor.d.ts +133 -0
- package/dist/queue/queueMonitor.js +238 -0
- package/dist/scheduler/ScheduledCall.d.ts +25 -0
- package/dist/scheduler/ScheduledCall.js +31 -0
- package/dist/scheduler/ScheduledEvent.d.ts +74 -0
- package/dist/scheduler/ScheduledEvent.js +115 -0
- package/dist/scheduler/ScheduledJob.d.ts +34 -0
- package/dist/scheduler/ScheduledJob.js +50 -0
- package/dist/scheduler/ScheduledOccurrence.d.ts +74 -0
- package/dist/scheduler/ScheduledOccurrence.js +194 -0
- package/dist/scheduler/ScheduledOccurrenceRecorder.d.ts +34 -0
- package/dist/scheduler/ScheduledOccurrenceRecorder.js +106 -0
- package/dist/scheduler/Scheduler.d.ts +76 -0
- package/dist/scheduler/Scheduler.js +186 -0
- package/dist/scheduler/SchedulerWorker.d.ts +37 -0
- package/dist/scheduler/SchedulerWorker.js +119 -0
- package/dist/scheduler/console.d.ts +18 -0
- package/dist/scheduler/console.js +288 -0
- package/dist/scheduler/constants.d.ts +13 -0
- package/dist/scheduler/constants.js +23 -0
- package/dist/scheduler/contracts/Scheduler.d.ts +104 -0
- package/dist/scheduler/contracts/Scheduler.js +1 -0
- package/dist/scheduler/contracts/SchedulerConsole.d.ts +37 -0
- package/dist/scheduler/contracts/SchedulerConsole.js +1 -0
- package/dist/scheduler/contracts/SchedulerWorker.d.ts +18 -0
- package/dist/scheduler/contracts/SchedulerWorker.js +1 -0
- package/dist/scheduler/contracts/index.d.ts +3 -0
- package/dist/scheduler/contracts/index.js +3 -0
- package/dist/scheduler/index.d.ts +9 -0
- package/dist/scheduler/index.js +9 -0
- package/dist/scheduler/scheduleTime.d.ts +30 -0
- package/dist/scheduler/scheduleTime.js +64 -0
- package/dist/security/Security.d.ts +60 -0
- package/dist/security/Security.js +252 -0
- package/dist/security/SecurityError.d.ts +13 -0
- package/dist/security/SecurityError.js +16 -0
- package/dist/security/contracts/SecurityOptions.d.ts +17 -0
- package/dist/security/contracts/SecurityOptions.js +1 -0
- package/dist/security/contracts/SecurityPayload.d.ts +13 -0
- package/dist/security/contracts/SecurityPayload.js +1 -0
- package/dist/security/contracts/index.d.ts +2 -0
- package/dist/security/contracts/index.js +2 -0
- package/dist/security/ensureAppKey.d.ts +16 -0
- package/dist/security/ensureAppKey.js +69 -0
- package/dist/security/index.d.ts +4 -0
- package/dist/security/index.js +4 -0
- package/dist/serialization/Serializable.d.ts +17 -0
- package/dist/serialization/Serializable.js +1 -0
- package/dist/serialization/SerializationError.d.ts +40 -0
- package/dist/serialization/SerializationError.js +42 -0
- package/dist/serialization/SerializationRegistry.d.ts +76 -0
- package/dist/serialization/SerializationRegistry.js +153 -0
- package/dist/serialization/SerializationRegistryError.d.ts +18 -0
- package/dist/serialization/SerializationRegistryError.js +18 -0
- package/dist/serialization/Serializer.d.ts +37 -0
- package/dist/serialization/Serializer.js +477 -0
- package/dist/serialization/contracts/SerializableClass.d.ts +20 -0
- package/dist/serialization/contracts/SerializableClass.js +1 -0
- package/dist/serialization/contracts/SerializedValue.d.ts +59 -0
- package/dist/serialization/contracts/SerializedValue.js +19 -0
- package/dist/serialization/contracts/SerializerOptions.d.ts +17 -0
- package/dist/serialization/contracts/SerializerOptions.js +1 -0
- package/dist/serialization/contracts/SerializerService.d.ts +26 -0
- package/dist/serialization/contracts/SerializerService.js +1 -0
- package/dist/serialization/contracts/index.d.ts +4 -0
- package/dist/serialization/contracts/index.js +4 -0
- package/dist/serialization/index.d.ts +6 -0
- package/dist/serialization/index.js +6 -0
- package/dist/server/App.d.ts +141 -0
- package/dist/server/App.js +225 -0
- package/dist/server/RequestContext.d.ts +42 -0
- package/dist/server/RequestContext.js +95 -0
- package/dist/server/appContext.d.ts +34 -0
- package/dist/server/appContext.js +42 -0
- package/dist/server/index.d.ts +3 -0
- package/dist/server/index.js +3 -0
- package/dist/ssr/constants.d.ts +6 -0
- package/dist/ssr/constants.js +6 -0
- package/dist/ssr/contracts/DocumentHead.d.ts +32 -0
- package/dist/ssr/contracts/DocumentHead.js +1 -0
- package/dist/ssr/contracts/SsrRenderContext.d.ts +23 -0
- package/dist/ssr/contracts/SsrRenderContext.js +1 -0
- package/dist/ssr/contracts/SsrRenderResult.d.ts +21 -0
- package/dist/ssr/contracts/SsrRenderResult.js +1 -0
- package/dist/ssr/contracts/SsrRenderer.d.ts +9 -0
- package/dist/ssr/contracts/SsrRenderer.js +1 -0
- package/dist/ssr/contracts/SsrRequest.d.ts +16 -0
- package/dist/ssr/contracts/SsrRequest.js +1 -0
- package/dist/ssr/contracts/index.d.ts +5 -0
- package/dist/ssr/contracts/index.js +1 -0
- package/dist/ssr/createSsrRenderContext.d.ts +9 -0
- package/dist/ssr/createSsrRenderContext.js +20 -0
- package/dist/ssr/fastify/contracts/FastifySsrOptions.d.ts +21 -0
- package/dist/ssr/fastify/contracts/FastifySsrOptions.js +1 -0
- package/dist/ssr/fastify/contracts/index.d.ts +1 -0
- package/dist/ssr/fastify/contracts/index.js +1 -0
- package/dist/ssr/fastify/fastifySsr.d.ts +25 -0
- package/dist/ssr/fastify/fastifySsr.js +89 -0
- package/dist/ssr/fastify/index.d.ts +2 -0
- package/dist/ssr/fastify/index.js +1 -0
- package/dist/ssr/index.d.ts +6 -0
- package/dist/ssr/index.js +5 -0
- package/dist/ssr/renderDocumentHead.d.ts +8 -0
- package/dist/ssr/renderDocumentHead.js +62 -0
- package/dist/ssr/renderSsrDocument.d.ts +14 -0
- package/dist/ssr/renderSsrDocument.js +28 -0
- package/dist/ssr/serializeSsrState.d.ts +10 -0
- package/dist/ssr/serializeSsrState.js +18 -0
- package/dist/ssr/vite/contracts/ViteSsrOptions.d.ts +45 -0
- package/dist/ssr/vite/contracts/ViteSsrOptions.js +1 -0
- package/dist/ssr/vite/contracts/index.d.ts +1 -0
- package/dist/ssr/vite/contracts/index.js +1 -0
- package/dist/ssr/vite/fastifyViteSsr.d.ts +24 -0
- package/dist/ssr/vite/fastifyViteSsr.js +213 -0
- package/dist/ssr/vite/index.d.ts +4 -0
- package/dist/ssr/vite/index.js +2 -0
- package/dist/ssr/vite/viteSsrManifest.d.ts +16 -0
- package/dist/ssr/vite/viteSsrManifest.js +63 -0
- package/dist/storage/Storage.d.ts +244 -0
- package/dist/storage/Storage.js +348 -0
- package/dist/storage/contents.d.ts +8 -0
- package/dist/storage/contents.js +18 -0
- package/dist/storage/contracts/StorageListing.d.ts +50 -0
- package/dist/storage/contracts/StorageListing.js +1 -0
- package/dist/storage/contracts/index.d.ts +1 -0
- package/dist/storage/contracts/index.js +1 -0
- package/dist/storage/drivers/FlystorageDisk.d.ts +185 -0
- package/dist/storage/drivers/FlystorageDisk.js +250 -0
- package/dist/storage/drivers/FlystorageListing.d.ts +27 -0
- package/dist/storage/drivers/FlystorageListing.js +69 -0
- package/dist/storage/drivers/LocalStorageDisk.d.ts +25 -0
- package/dist/storage/drivers/LocalStorageDisk.js +38 -0
- package/dist/storage/drivers/S3StorageDisk.d.ts +17 -0
- package/dist/storage/drivers/S3StorageDisk.js +102 -0
- package/dist/storage/drivers/index.d.ts +3 -0
- package/dist/storage/drivers/index.js +3 -0
- package/dist/storage/index.d.ts +7 -0
- package/dist/storage/index.js +7 -0
- package/dist/storage/mime.d.ts +7 -0
- package/dist/storage/mime.js +28 -0
- package/dist/storage/path.d.ts +22 -0
- package/dist/storage/path.js +61 -0
- package/dist/storage/types.d.ts +218 -0
- package/dist/storage/types.js +1 -0
- package/dist/url/UrlGenerator.d.ts +32 -0
- package/dist/url/UrlGenerator.js +61 -0
- package/dist/url/contracts/UrlGeneratorOptions.d.ts +13 -0
- package/dist/url/contracts/UrlGeneratorOptions.js +1 -0
- package/dist/url/contracts/index.d.ts +1 -0
- package/dist/url/contracts/index.js +1 -0
- package/dist/url/index.d.ts +2 -0
- package/dist/url/index.js +2 -0
- package/dist/validation/index.d.ts +28 -0
- package/dist/validation/index.js +260 -0
- package/package.json +290 -0
- package/src/ai/AIErrors.ts +46 -0
- package/src/ai/AIFailover.ts +101 -0
- package/src/ai/AIProviders.ts +228 -0
- package/src/ai/AIQuotaDeferredError.ts +26 -0
- package/src/ai/AIRateLimiter.ts +880 -0
- package/src/ai/Agent.ts +3630 -0
- package/src/ai/AgentHistory.ts +576 -0
- package/src/ai/AgentRunJob.ts +65 -0
- package/src/ai/Ai.ts +2176 -0
- package/src/ai/AiConversation.ts +49 -0
- package/src/ai/AiExecutionContext.ts +19 -0
- package/src/ai/AiMessage.ts +131 -0
- package/src/ai/AiRateLimitBucket.ts +163 -0
- package/src/ai/AiRateLimitReservation.ts +117 -0
- package/src/ai/AiRequest.ts +466 -0
- package/src/ai/Estimates.ts +36 -0
- package/src/ai/Models.ts +373 -0
- package/src/ai/OpenAIProviderError.ts +98 -0
- package/src/ai/OpenAIQuotaRetry.ts +183 -0
- package/src/ai/ProviderCosts.ts +156 -0
- package/src/ai/README.md +187 -0
- package/src/ai/ResponsesProviderCall.ts +34 -0
- package/src/ai/agentCitations.ts +186 -0
- package/src/ai/contracts/AI.ts +380 -0
- package/src/ai/contracts/Agent.ts +539 -0
- package/src/ai/contracts/AiRequestRunCostSummary.ts +31 -0
- package/src/ai/contracts/Pricing.ts +95 -0
- package/src/ai/contracts/Providers.ts +73 -0
- package/src/ai/contracts/QuotaRetry.ts +39 -0
- package/src/ai/contracts/RateLimits.ts +49 -0
- package/src/ai/contracts/ResponsesProviderCall.ts +30 -0
- package/src/ai/contracts/index.ts +8 -0
- package/src/ai/examples/Conversation.ts +12 -0
- package/src/ai/examples/HelpAgent.ts +27 -0
- package/src/ai/examples/createHelpImage.ts +13 -0
- package/src/ai/index.ts +27 -0
- package/src/ai/registry.ts +70 -0
- package/src/ai/sdkNodeCompatibility.d.ts +76 -0
- package/src/ai/toolCallRecovery.ts +82 -0
- package/src/ai/toolHelpers.ts +145 -0
- package/src/auth/Auth.ts +1422 -0
- package/src/auth/AuthProvider.ts +251 -0
- package/src/auth/AuthToken.ts +239 -0
- package/src/auth/PasswordResetToken.ts +93 -0
- package/src/auth/README.md +396 -0
- package/src/auth/UserIdentity.ts +112 -0
- package/src/auth/contracts/AuthProviderDriver.ts +114 -0
- package/src/auth/contracts/index.ts +1 -0
- package/src/auth/examples/runPasswordAuth.ts +45 -0
- package/src/auth/index.ts +8 -0
- package/src/auth/passwordHash.ts +160 -0
- package/src/auth/providers/GoogleAuthProvider.ts +470 -0
- package/src/auth/providers/PasswordAuthProvider.ts +256 -0
- package/src/auth/providers/index.ts +3 -0
- package/src/auth/providers/resolveAuthProviders.ts +166 -0
- package/src/cache/Cache.ts +151 -0
- package/src/cache/README.md +137 -0
- package/src/cache/contracts/CacheDriver.ts +11 -0
- package/src/cache/contracts/CacheOperations.ts +28 -0
- package/src/cache/contracts/CacheOptions.ts +56 -0
- package/src/cache/contracts/CacheRepository.ts +62 -0
- package/src/cache/contracts/index.ts +4 -0
- package/src/cache/drivers/CacheManagerDriver.ts +84 -0
- package/src/cache/drivers/createCacheDriver.ts +191 -0
- package/src/cache/examples/runNoteCache.ts +37 -0
- package/src/cache/index.ts +2 -0
- package/src/cli/Cli.ts +110 -0
- package/src/cli/README.md +164 -0
- package/src/cli/commands/repl.ts +29 -0
- package/src/cli/contracts/CliCommand.ts +33 -0
- package/src/cli/contracts/CliConfig.ts +10 -0
- package/src/cli/contracts/CliOptions.ts +13 -0
- package/src/cli/contracts/CommandDefinition.ts +19 -0
- package/src/cli/contracts/ReplOptions.ts +11 -0
- package/src/cli/contracts/index.ts +5 -0
- package/src/cli/defineCommand.ts +25 -0
- package/src/cli/index.ts +5 -0
- package/src/cli/runDb3.ts +63 -0
- package/src/cli/runRepl.ts +55 -0
- package/src/config/Config.ts +110 -0
- package/src/config/README.md +142 -0
- package/src/config/env.ts +164 -0
- package/src/config/examples/loadNotesConfig.ts +29 -0
- package/src/config/examples/runConfig.ts +40 -0
- package/src/config/index.ts +2 -0
- package/src/db/ActiveProjection.ts +311 -0
- package/src/db/ActiveQueryBuilder.ts +831 -0
- package/src/db/ActiveRecord.ts +1317 -0
- package/src/db/Database.ts +1283 -0
- package/src/db/FieldType.ts +1243 -0
- package/src/db/README.md +508 -0
- package/src/db/SoftDeletes.ts +158 -0
- package/src/db/commands/check.ts +10 -0
- package/src/db/commands/index.ts +19 -0
- package/src/db/commands/makeMigration.ts +11 -0
- package/src/db/commands/migrate.ts +10 -0
- package/src/db/connection.ts +68 -0
- package/src/db/contracts/ActiveRecordDefinition.ts +69 -0
- package/src/db/contracts/DatabaseBackup.ts +7 -0
- package/src/db/contracts/DatabaseMigrationsConfig.ts +10 -0
- package/src/db/contracts/index.ts +3 -0
- package/src/db/dialects/columnTypes.ts +103 -0
- package/src/db/dialects/index.ts +6 -0
- package/src/db/dialects/mariadb.ts +51 -0
- package/src/db/dialects/mysql.ts +277 -0
- package/src/db/dialects/postgres.ts +143 -0
- package/src/db/dialects/resolveDialect.ts +88 -0
- package/src/db/dialects/types.ts +59 -0
- package/src/db/errors.ts +22 -0
- package/src/db/examples/DefinedUser.ts +20 -0
- package/src/db/examples/FieldNote.ts +27 -0
- package/src/db/examples/KnowledgeNote.ts +29 -0
- package/src/db/examples/NoteCodeField.ts +9 -0
- package/src/db/examples/createNotesTogether.ts +24 -0
- package/src/db/examples/outputs/workspace-notes.json +9 -0
- package/src/db/examples/runFieldNotes.ts +51 -0
- package/src/db/examples/runNoteMigrations.ts +64 -0
- package/src/db/examples/runWorkspaceNotes.ts +86 -0
- package/src/db/examples/workspaceNotes.ts +57 -0
- package/src/db/fields/BooleanField.ts +128 -0
- package/src/db/fields/CharUuidField.ts +91 -0
- package/src/db/fields/ChoiceStringField.ts +97 -0
- package/src/db/fields/DecimalField.ts +157 -0
- package/src/db/fields/EmailField.ts +79 -0
- package/src/db/fields/EncryptedJsonField.ts +211 -0
- package/src/db/fields/IntegerField.ts +200 -0
- package/src/db/fields/JsonField.ts +108 -0
- package/src/db/fields/JsonStringField.ts +63 -0
- package/src/db/fields/LinkField.ts +502 -0
- package/src/db/fields/PasswordField.ts +294 -0
- package/src/db/fields/StringField.ts +154 -0
- package/src/db/fields/StringListField.ts +179 -0
- package/src/db/fields/TextField.ts +71 -0
- package/src/db/fields/TimestampField.ts +164 -0
- package/src/db/fields/UlidField.ts +189 -0
- package/src/db/fields/UrlField.ts +97 -0
- package/src/db/fields/VectorField.ts +266 -0
- package/src/db/fields/createField.ts +22 -0
- package/src/db/fields/field.ts +209 -0
- package/src/db/fields/index.ts +76 -0
- package/src/db/fields/resolveFields.ts +69 -0
- package/src/db/index.ts +13 -0
- package/src/db/migrations/DatabaseMigrationManager.ts +756 -0
- package/src/db/migrations/DatabaseSchemaInspector.ts +541 -0
- package/src/db/migrations/KnexMigrationRenderer.ts +490 -0
- package/src/db/migrations/ModelSchemaCollector.ts +240 -0
- package/src/db/migrations/SchemaDiffer.ts +541 -0
- package/src/db/migrations/SchemaNames.ts +62 -0
- package/src/db/migrations/SchemaSnapshotSerializer.ts +59 -0
- package/src/db/migrations/contracts/DatabaseMigration.ts +143 -0
- package/src/db/migrations/contracts/SchemaChange.ts +113 -0
- package/src/db/migrations/contracts/SchemaSnapshot.ts +122 -0
- package/src/db/migrations/contracts/index.ts +3 -0
- package/src/db/migrations/errors.ts +45 -0
- package/src/db/migrations/index.ts +10 -0
- package/src/db/migrations/promoteDestructiveSchemaChanges.ts +120 -0
- package/src/db/queryMonitor.ts +549 -0
- package/src/db/sqlErrors.ts +36 -0
- package/src/db/test/db.ts +159 -0
- package/src/devtools/HttpEventDispatcher.ts +214 -0
- package/src/devtools/contracts/DevtoolsEventDispatcher.ts +57 -0
- package/src/devtools/contracts/index.ts +1 -0
- package/src/devtools/environment.ts +18 -0
- package/src/devtools/index.ts +3 -0
- package/src/events/Events.ts +165 -0
- package/src/events/README.md +106 -0
- package/src/events/contracts/EventConstructor.ts +12 -0
- package/src/events/contracts/EventListener.ts +8 -0
- package/src/events/contracts/EventUnsubscribe.ts +4 -0
- package/src/events/contracts/index.ts +3 -0
- package/src/events/examples/NoteSaved.ts +9 -0
- package/src/events/examples/runNoteEvents.ts +31 -0
- package/src/events/index.ts +2 -0
- package/src/flows/FlowBlockRegistry.ts +79 -0
- package/src/flows/FlowCompiler.ts +624 -0
- package/src/flows/FlowDefinitionError.ts +24 -0
- package/src/flows/FlowStepJob.ts +54 -0
- package/src/flows/FlowValueValidator.ts +120 -0
- package/src/flows/Flows.ts +1118 -0
- package/src/flows/README.md +144 -0
- package/src/flows/blocks/FlowInput.ts +32 -0
- package/src/flows/blocks/FlowOutput.ts +32 -0
- package/src/flows/blocks/Subflow.ts +24 -0
- package/src/flows/blocks/index.ts +11 -0
- package/src/flows/constants.ts +62 -0
- package/src/flows/contracts/FlowBlock.ts +73 -0
- package/src/flows/contracts/FlowCompiler.ts +32 -0
- package/src/flows/contracts/FlowDefinition.ts +126 -0
- package/src/flows/contracts/FlowDefinitionStore.ts +52 -0
- package/src/flows/contracts/FlowRun.ts +44 -0
- package/src/flows/contracts/FlowValue.ts +54 -0
- package/src/flows/contracts/FlowsService.ts +39 -0
- package/src/flows/contracts/index.ts +7 -0
- package/src/flows/defineBlock.ts +25 -0
- package/src/flows/drivers/FileFlowDefinitionStore.ts +372 -0
- package/src/flows/drivers/index.ts +1 -0
- package/src/flows/errors.ts +22 -0
- package/src/flows/examples/FlowExampleApp.ts +15 -0
- package/src/flows/examples/createTextFlow.ts +14 -0
- package/src/flows/examples/normalizeTextBlock.ts +15 -0
- package/src/flows/examples/runTextFlow.ts +46 -0
- package/src/flows/examples/uppercaseTextBlock.ts +11 -0
- package/src/flows/index.ts +13 -0
- package/src/flows/models/FlowRun.ts +164 -0
- package/src/flows/models/FlowRunEvent.ts +108 -0
- package/src/flows/models/FlowStepRun.ts +176 -0
- package/src/flows/models/index.ts +16 -0
- package/src/index.ts +40 -0
- package/src/logging/Log.ts +100 -0
- package/src/logging/README.md +139 -0
- package/src/logging/contracts/HttpExchange.ts +53 -0
- package/src/logging/contracts/Logger.ts +45 -0
- package/src/logging/contracts/LoggerDriver.ts +19 -0
- package/src/logging/contracts/LoggingOptions.ts +51 -0
- package/src/logging/contracts/index.ts +4 -0
- package/src/logging/drivers/PinoLoggerDriver.ts +376 -0
- package/src/logging/drivers/index.ts +1 -0
- package/src/logging/examples/runNoteLogs.ts +38 -0
- package/src/logging/index.ts +3 -0
- package/src/logging/transports/DevtoolsLogTransport.ts +142 -0
- package/src/mail/Mail.ts +188 -0
- package/src/mail/README.md +206 -0
- package/src/mail/examples/runMailPreview.ts +44 -0
- package/src/mail/examples/welcomeMessage.ts +26 -0
- package/src/mail/index.ts +4 -0
- package/src/mail/transports/FileMailTransport.ts +58 -0
- package/src/mail/transports/MailgunTransport.ts +85 -0
- package/src/mail/transports/ResendTransport.ts +80 -0
- package/src/media/MediaFile.ts +132 -0
- package/src/media/MediaItem.ts +132 -0
- package/src/media/MediaLibrary.ts +117 -0
- package/src/media/MediaManager.ts +874 -0
- package/src/media/README.md +358 -0
- package/src/media/constants.ts +31 -0
- package/src/media/contracts/MediaOptions.ts +9 -0
- package/src/media/contracts/index.ts +1 -0
- package/src/media/examples/createPrivateFileServer.ts +55 -0
- package/src/media/examples/runPrivateFiles.ts +45 -0
- package/src/media/examples/runProjectMedia.ts +46 -0
- package/src/media/image/ImageReconstructionError.ts +18 -0
- package/src/media/image/ImageVariantRenderer.ts +386 -0
- package/src/media/image/ImageVariantRequest.ts +65 -0
- package/src/media/image/contracts/ImageProcessor.ts +53 -0
- package/src/media/image/contracts/ImageVariant.ts +37 -0
- package/src/media/image/contracts/ImageVariantCacheOptions.ts +21 -0
- package/src/media/image/contracts/index.ts +3 -0
- package/src/media/image/index.ts +5 -0
- package/src/media/image/processors/SharpImageProcessor.ts +121 -0
- package/src/media/image/processors/index.ts +1 -0
- package/src/media/index.ts +8 -0
- package/src/media/types.ts +168 -0
- package/src/queue/FailedJob.ts +58 -0
- package/src/queue/Queue.ts +938 -0
- package/src/queue/QueueEvents.ts +57 -0
- package/src/queue/QueueRetryLaterError.ts +40 -0
- package/src/queue/QueueWorker.ts +296 -0
- package/src/queue/QueueableJob.ts +167 -0
- package/src/queue/QueuedJob.ts +69 -0
- package/src/queue/README.md +368 -0
- package/src/queue/RetryPolicy.ts +129 -0
- package/src/queue/commands/index.ts +13 -0
- package/src/queue/commands/makeJob.ts +11 -0
- package/src/queue/console.ts +518 -0
- package/src/queue/contracts/CreateJob.ts +13 -0
- package/src/queue/contracts/QueueDriver.ts +135 -0
- package/src/queue/contracts/QueueEvents.ts +77 -0
- package/src/queue/contracts/QueuePayload.ts +150 -0
- package/src/queue/contracts/QueueRetry.ts +47 -0
- package/src/queue/contracts/QueueService.ts +219 -0
- package/src/queue/contracts/QueueWorkerLifecycle.ts +71 -0
- package/src/queue/contracts/QueueableJob.ts +56 -0
- package/src/queue/contracts/RedisQueueDriver.ts +37 -0
- package/src/queue/contracts/index.ts +9 -0
- package/src/queue/createJob.ts +54 -0
- package/src/queue/drivers/DatabaseQueueDriver.ts +449 -0
- package/src/queue/drivers/RedisQueueDriver.ts +733 -0
- package/src/queue/examples/DeferredReportJob.ts +25 -0
- package/src/queue/examples/GenerateReportJob.ts +37 -0
- package/src/queue/examples/WriteReportJob.ts +37 -0
- package/src/queue/examples/createAndProcessReportJob.ts +29 -0
- package/src/queue/examples/dispatchReportWorkflows.ts +40 -0
- package/src/queue/examples/manageReportRetries.ts +47 -0
- package/src/queue/examples/outputs/create-and-process-report-job.json +6 -0
- package/src/queue/examples/outputs/dispatch-report-workflows.json +14 -0
- package/src/queue/examples/outputs/manage-report-retries.json +24 -0
- package/src/queue/examples/outputs/queue-reports.json +11 -0
- package/src/queue/examples/reportConsole.ts +47 -0
- package/src/queue/examples/runBackpressure.ts +27 -0
- package/src/queue/examples/runQueueReports.ts +80 -0
- package/src/queue/examples/runQueueWorkflows.ts +43 -0
- package/src/queue/index.ts +13 -0
- package/src/queue/queueMonitor.ts +368 -0
- package/src/scheduler/README.md +139 -0
- package/src/scheduler/ScheduledCall.ts +36 -0
- package/src/scheduler/ScheduledEvent.ts +149 -0
- package/src/scheduler/ScheduledJob.ts +58 -0
- package/src/scheduler/ScheduledOccurrence.ts +250 -0
- package/src/scheduler/ScheduledOccurrenceRecorder.ts +125 -0
- package/src/scheduler/Scheduler.ts +225 -0
- package/src/scheduler/SchedulerWorker.ts +151 -0
- package/src/scheduler/console.ts +368 -0
- package/src/scheduler/constants.ts +27 -0
- package/src/scheduler/contracts/Scheduler.ts +123 -0
- package/src/scheduler/contracts/SchedulerConsole.ts +40 -0
- package/src/scheduler/contracts/SchedulerWorker.ts +23 -0
- package/src/scheduler/contracts/index.ts +3 -0
- package/src/scheduler/examples/RecoverableSummaryJob.ts +18 -0
- package/src/scheduler/examples/WriteDailySummaryJob.ts +17 -0
- package/src/scheduler/examples/registerDailySummary.ts +13 -0
- package/src/scheduler/examples/runDailySummary.ts +46 -0
- package/src/scheduler/examples/runScheduledReplay.ts +60 -0
- package/src/scheduler/index.ts +9 -0
- package/src/scheduler/scheduleTime.ts +78 -0
- package/src/security/README.md +130 -0
- package/src/security/Security.ts +346 -0
- package/src/security/SecurityError.ts +16 -0
- package/src/security/contracts/SecurityOptions.ts +20 -0
- package/src/security/contracts/SecurityPayload.ts +14 -0
- package/src/security/contracts/index.ts +2 -0
- package/src/security/ensureAppKey.ts +82 -0
- package/src/security/examples/runSecretRoundTrip.ts +42 -0
- package/src/security/index.ts +4 -0
- package/src/serialization/README.md +169 -0
- package/src/serialization/Serializable.ts +17 -0
- package/src/serialization/SerializationError.ts +91 -0
- package/src/serialization/SerializationRegistry.ts +208 -0
- package/src/serialization/SerializationRegistryError.ts +24 -0
- package/src/serialization/Serializer.ts +793 -0
- package/src/serialization/contracts/SerializableClass.ts +26 -0
- package/src/serialization/contracts/SerializedValue.ts +71 -0
- package/src/serialization/contracts/SerializerOptions.ts +19 -0
- package/src/serialization/contracts/SerializerService.ts +29 -0
- package/src/serialization/contracts/index.ts +4 -0
- package/src/serialization/examples/ExportRequest.ts +25 -0
- package/src/serialization/examples/runExportSerialization.ts +24 -0
- package/src/serialization/index.ts +6 -0
- package/src/server/App.ts +326 -0
- package/src/server/README.md +219 -0
- package/src/server/RequestContext.ts +122 -0
- package/src/server/appContext.ts +59 -0
- package/src/server/examples/createFirstServer.ts +25 -0
- package/src/server/examples/startFirstServer.ts +19 -0
- package/src/server/index.ts +16 -0
- package/src/ssr/README.md +158 -0
- package/src/ssr/constants.ts +8 -0
- package/src/ssr/contracts/DocumentHead.ts +35 -0
- package/src/ssr/contracts/SsrRenderContext.ts +25 -0
- package/src/ssr/contracts/SsrRenderResult.ts +23 -0
- package/src/ssr/contracts/SsrRenderer.ts +12 -0
- package/src/ssr/contracts/SsrRequest.ts +17 -0
- package/src/ssr/contracts/index.ts +19 -0
- package/src/ssr/createSsrRenderContext.ts +25 -0
- package/src/ssr/examples/createPublicPageServer.ts +32 -0
- package/src/ssr/examples/runPublicPages.ts +25 -0
- package/src/ssr/fastify/contracts/FastifySsrOptions.ts +24 -0
- package/src/ssr/fastify/contracts/index.ts +5 -0
- package/src/ssr/fastify/fastifySsr.ts +110 -0
- package/src/ssr/fastify/index.ts +2 -0
- package/src/ssr/index.ts +10 -0
- package/src/ssr/renderDocumentHead.ts +72 -0
- package/src/ssr/renderSsrDocument.ts +35 -0
- package/src/ssr/serializeSsrState.ts +19 -0
- package/src/ssr/vite/contracts/ViteSsrOptions.ts +52 -0
- package/src/ssr/vite/contracts/index.ts +6 -0
- package/src/ssr/vite/fastifyViteSsr.ts +279 -0
- package/src/ssr/vite/index.ts +4 -0
- package/src/ssr/vite/viteSsrManifest.ts +92 -0
- package/src/storage/README.md +310 -0
- package/src/storage/Storage.ts +392 -0
- package/src/storage/contents.ts +23 -0
- package/src/storage/contracts/StorageListing.ts +55 -0
- package/src/storage/contracts/index.ts +1 -0
- package/src/storage/drivers/FlystorageDisk.ts +295 -0
- package/src/storage/drivers/FlystorageListing.ts +78 -0
- package/src/storage/drivers/LocalStorageDisk.ts +45 -0
- package/src/storage/drivers/S3StorageDisk.ts +114 -0
- package/src/storage/drivers/index.ts +3 -0
- package/src/storage/examples/runStorage.ts +37 -0
- package/src/storage/examples/runStreamExport.ts +41 -0
- package/src/storage/examples/writeCsvExport.ts +45 -0
- package/src/storage/index.ts +7 -0
- package/src/storage/mime.ts +30 -0
- package/src/storage/path.ts +76 -0
- package/src/storage/types.ts +251 -0
- package/src/url/README.md +41 -0
- package/src/url/UrlGenerator.ts +72 -0
- package/src/url/contracts/UrlGeneratorOptions.ts +14 -0
- package/src/url/contracts/index.ts +1 -0
- package/src/url/examples/runApplicationLinks.ts +33 -0
- package/src/url/index.ts +2 -0
- package/src/validation/README.md +433 -0
- package/src/validation/examples/runNoteValidation.ts +18 -0
- package/src/validation/examples/validateNoteInput.ts +31 -0
- package/src/validation/index.ts +398 -0
- package/templates/AGENTS.md +15 -0
|
@@ -0,0 +1,384 @@
|
|
|
1
|
+
import { ActiveRecord } from '@db3.ai/app/db/ActiveRecord';
|
|
2
|
+
import { AiConversation } from './AiConversation.js';
|
|
3
|
+
import { AiRateLimitBucket } from './AiRateLimitBucket.js';
|
|
4
|
+
export const AI_REQUEST_STATUS = {
|
|
5
|
+
pending: 'pending',
|
|
6
|
+
completed: 'completed',
|
|
7
|
+
failed: 'failed',
|
|
8
|
+
};
|
|
9
|
+
/** Auditable provider request with recursive usage and cost reporting. */
|
|
10
|
+
export class AiRequest extends ActiveRecord {
|
|
11
|
+
static table = 'ai_requests';
|
|
12
|
+
static primaryKey = 'id';
|
|
13
|
+
static comment = 'Audit log of AI provider requests and responses, used for debugging generated analysis and content features.';
|
|
14
|
+
static STATES = AI_REQUEST_STATUS;
|
|
15
|
+
/**
|
|
16
|
+
* Totals one root request and every recursively linked descendant exactly once.
|
|
17
|
+
*
|
|
18
|
+
* The self-referencing relationship supports image generation, embeddings,
|
|
19
|
+
* and future nested agent runs without relying on conversation or timestamp
|
|
20
|
+
* heuristics.
|
|
21
|
+
*
|
|
22
|
+
* @param rootAiRequestId - Root request id for the run.
|
|
23
|
+
* @returns Recursive request-tree cost summary, or null when the root is absent.
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* const cost = await AiRequest.runCostSummary(articleAiRequestId);
|
|
27
|
+
* console.log(cost?.totalCostUSD);
|
|
28
|
+
*/
|
|
29
|
+
static async runCostSummary(rootAiRequestId) {
|
|
30
|
+
if (!rootAiRequestId)
|
|
31
|
+
return null;
|
|
32
|
+
const root = await this.find(rootAiRequestId);
|
|
33
|
+
if (!root?.id)
|
|
34
|
+
return null;
|
|
35
|
+
return (await this.runCostSummaries([root])).get(String(root.id)) ?? null;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Totals multiple known root requests and their descendants in one batched walk.
|
|
39
|
+
*
|
|
40
|
+
* @param roots - Root request records to aggregate.
|
|
41
|
+
* @returns Cost summaries keyed by root request id.
|
|
42
|
+
*/
|
|
43
|
+
static async runCostSummaries(roots) {
|
|
44
|
+
const requestsByRootId = new Map();
|
|
45
|
+
const rootIdByRequestId = new Map();
|
|
46
|
+
const seenIds = new Set();
|
|
47
|
+
let parentIds = [];
|
|
48
|
+
for (const root of roots) {
|
|
49
|
+
const rootId = root.id ? String(root.id) : null;
|
|
50
|
+
if (!rootId || seenIds.has(rootId))
|
|
51
|
+
continue;
|
|
52
|
+
seenIds.add(rootId);
|
|
53
|
+
parentIds.push(rootId);
|
|
54
|
+
rootIdByRequestId.set(rootId, rootId);
|
|
55
|
+
requestsByRootId.set(rootId, [root]);
|
|
56
|
+
}
|
|
57
|
+
while (parentIds.length > 0) {
|
|
58
|
+
const children = await this.query()
|
|
59
|
+
.whereIn('parentAiRequest', parentIds)
|
|
60
|
+
.all();
|
|
61
|
+
const nextParentIds = [];
|
|
62
|
+
for (const child of children) {
|
|
63
|
+
const childId = child.id ? String(child.id) : null;
|
|
64
|
+
const parentId = entityRefId(child.parentAiRequest);
|
|
65
|
+
const rootId = parentId ? rootIdByRequestId.get(parentId) : null;
|
|
66
|
+
if (!childId || !rootId || seenIds.has(childId))
|
|
67
|
+
continue;
|
|
68
|
+
seenIds.add(childId);
|
|
69
|
+
nextParentIds.push(childId);
|
|
70
|
+
rootIdByRequestId.set(childId, rootId);
|
|
71
|
+
requestsByRootId.get(rootId)?.push(child);
|
|
72
|
+
}
|
|
73
|
+
parentIds = nextParentIds;
|
|
74
|
+
}
|
|
75
|
+
return new Map([...requestsByRootId.entries()].map(([rootId, requests]) => [
|
|
76
|
+
rootId,
|
|
77
|
+
AiRequest.#summarizeRequestTree(rootId, requests),
|
|
78
|
+
]));
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Builds a run-cost summary from a resolved request tree.
|
|
82
|
+
*
|
|
83
|
+
* @param rootAiRequestId - Root request id.
|
|
84
|
+
* @param requests - Root request followed by its unique descendants.
|
|
85
|
+
* @returns Cost totals rounded to the persisted cost precision.
|
|
86
|
+
*/
|
|
87
|
+
static #summarizeRequestTree(rootAiRequestId, requests) {
|
|
88
|
+
const root = requests[0];
|
|
89
|
+
const rootCostUSD = requestKnownCost(root);
|
|
90
|
+
const childCostUSD = requests
|
|
91
|
+
.slice(1)
|
|
92
|
+
.reduce((total, request) => total + requestKnownCost(request), 0);
|
|
93
|
+
return {
|
|
94
|
+
rootAiRequestId,
|
|
95
|
+
requestCount: requests.length,
|
|
96
|
+
providerRequestCount: requests.reduce((total, request) => total + requestProviderRequestCount(request), 0),
|
|
97
|
+
inputTokens: requests.reduce((total, request) => total + requestTokenCount(request.inputTokens), 0),
|
|
98
|
+
outputTokens: requests.reduce((total, request) => total + requestTokenCount(request.outputTokens), 0),
|
|
99
|
+
totalTokens: requests.reduce((total, request) => total + requestTokenCount(request.totalTokens), 0),
|
|
100
|
+
reasoningTokens: requests.reduce((total, request) => total + requestTokenCount(request.reasoningTokens), 0),
|
|
101
|
+
cachedTokens: requests.reduce((total, request) => total + requestTokenCount(request.cachedTokens), 0),
|
|
102
|
+
cacheWriteTokens: requests.reduce((total, request) => total + requestTokenCount(request.cacheWriteTokens), 0),
|
|
103
|
+
rootCostUSD: roundCost(rootCostUSD),
|
|
104
|
+
childCostUSD: roundCost(childCostUSD),
|
|
105
|
+
totalCostUSD: roundCost(rootCostUSD + childCostUSD),
|
|
106
|
+
unpricedRequestCount: requests.filter(request => !validRequestCost(request.costUSD)).length,
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
/** Defines the durable request, response, rate-limit and measured usage fields. */
|
|
110
|
+
static fields(field) {
|
|
111
|
+
return {
|
|
112
|
+
id: field.ulid({
|
|
113
|
+
comment: 'Stable id for this AI request/response log entry.',
|
|
114
|
+
}),
|
|
115
|
+
conversation: field.link(() => AiConversation, {
|
|
116
|
+
column: 'conversation_id',
|
|
117
|
+
required: false,
|
|
118
|
+
onDelete: 'SET NULL',
|
|
119
|
+
index: true,
|
|
120
|
+
comment: 'AI conversation that groups this provider request with normalized messages.',
|
|
121
|
+
}),
|
|
122
|
+
parentAiRequest: field.link(() => AiRequest, {
|
|
123
|
+
column: 'parent_ai_request_id',
|
|
124
|
+
required: false,
|
|
125
|
+
onDelete: 'SET NULL',
|
|
126
|
+
index: true,
|
|
127
|
+
comment: 'Immediate parent AI request that caused this request, used to total nested run costs without double counting.',
|
|
128
|
+
}),
|
|
129
|
+
user: field.string({ column: 'user_id', index: true }),
|
|
130
|
+
scope: field.string({ column: 'scope_id', index: true }),
|
|
131
|
+
provider: field.string({
|
|
132
|
+
required: false,
|
|
133
|
+
default: 'openai',
|
|
134
|
+
index: true,
|
|
135
|
+
comment: 'AI provider used for this request.',
|
|
136
|
+
}),
|
|
137
|
+
model: field.string({
|
|
138
|
+
required: false,
|
|
139
|
+
index: true,
|
|
140
|
+
comment: 'AI model used for this request.',
|
|
141
|
+
}),
|
|
142
|
+
operation: field.string({
|
|
143
|
+
required: false,
|
|
144
|
+
default: 'responses.create',
|
|
145
|
+
index: true,
|
|
146
|
+
comment: 'Provider operation used for this request.',
|
|
147
|
+
}),
|
|
148
|
+
status: field.choice({
|
|
149
|
+
required: true,
|
|
150
|
+
choices: Object.values(AI_REQUEST_STATUS),
|
|
151
|
+
default: AI_REQUEST_STATUS.pending,
|
|
152
|
+
comment: 'Status of this request.',
|
|
153
|
+
}),
|
|
154
|
+
request: field.jsonString({
|
|
155
|
+
required: true,
|
|
156
|
+
comment: 'Serialized request payload sent to the AI provider.',
|
|
157
|
+
}),
|
|
158
|
+
response: field.jsonString({
|
|
159
|
+
required: false,
|
|
160
|
+
comment: 'Serialized response payload returned by the AI provider.',
|
|
161
|
+
}),
|
|
162
|
+
providerRequestId: field.string({
|
|
163
|
+
column: 'provider_request_id',
|
|
164
|
+
required: false,
|
|
165
|
+
index: true,
|
|
166
|
+
comment: 'Provider request id used for API troubleshooting.',
|
|
167
|
+
}),
|
|
168
|
+
providerProcessingMs: field.integer({
|
|
169
|
+
column: 'provider_processing_ms',
|
|
170
|
+
required: false,
|
|
171
|
+
unsigned: true,
|
|
172
|
+
comment: 'Provider-reported processing duration in milliseconds.',
|
|
173
|
+
}),
|
|
174
|
+
rateLimitBucket: field.link(() => AiRateLimitBucket, {
|
|
175
|
+
column: 'rate_limit_bucket_id',
|
|
176
|
+
required: false,
|
|
177
|
+
onDelete: 'SET NULL',
|
|
178
|
+
index: true,
|
|
179
|
+
comment: 'Current-state rate-limit bucket used for this provider request; per-request headers live in rate_limit_snapshot.',
|
|
180
|
+
}),
|
|
181
|
+
rateLimitSnapshot: field.jsonString({
|
|
182
|
+
column: 'rate_limit_snapshot',
|
|
183
|
+
required: false,
|
|
184
|
+
comment: 'Parsed provider rate-limit headers captured for this request as an audit snapshot.',
|
|
185
|
+
}),
|
|
186
|
+
inputTokens: field.integer({
|
|
187
|
+
column: 'input_tokens',
|
|
188
|
+
required: false,
|
|
189
|
+
unsigned: true,
|
|
190
|
+
comment: 'Number of input tokens used for this request.',
|
|
191
|
+
}),
|
|
192
|
+
outputTokens: field.integer({
|
|
193
|
+
column: 'output_tokens',
|
|
194
|
+
required: false,
|
|
195
|
+
unsigned: true,
|
|
196
|
+
comment: 'Number of output tokens used for this request.',
|
|
197
|
+
}),
|
|
198
|
+
totalTokens: field.integer({
|
|
199
|
+
column: 'total_tokens',
|
|
200
|
+
required: false,
|
|
201
|
+
unsigned: true,
|
|
202
|
+
comment: 'Total tokens used for this request, when reported by the provider.',
|
|
203
|
+
}),
|
|
204
|
+
reasoningTokens: field.integer({
|
|
205
|
+
column: 'reasoning_tokens',
|
|
206
|
+
required: false,
|
|
207
|
+
unsigned: true,
|
|
208
|
+
comment: 'Reasoning output tokens reported by the provider, when available.',
|
|
209
|
+
}),
|
|
210
|
+
cachedTokens: field.integer({
|
|
211
|
+
column: 'cached_tokens',
|
|
212
|
+
required: false,
|
|
213
|
+
unsigned: true,
|
|
214
|
+
comment: 'Cached input tokens reported by the provider, when available.',
|
|
215
|
+
}),
|
|
216
|
+
cacheWriteTokens: field.integer({
|
|
217
|
+
column: 'cache_write_tokens',
|
|
218
|
+
required: false,
|
|
219
|
+
unsigned: true,
|
|
220
|
+
comment: 'Input tokens written into a billable provider prompt cache, when reported.',
|
|
221
|
+
}),
|
|
222
|
+
costUSD: field.decimal({
|
|
223
|
+
column: 'cost_usd',
|
|
224
|
+
required: false,
|
|
225
|
+
precision: 14,
|
|
226
|
+
scale: 8,
|
|
227
|
+
comment: 'Complete computed cost of this request in USD; null when any chargeable dimension is unpriced.',
|
|
228
|
+
}),
|
|
229
|
+
knownCostUSD: field.decimal({
|
|
230
|
+
column: 'known_cost_usd',
|
|
231
|
+
required: false,
|
|
232
|
+
precision: 14,
|
|
233
|
+
scale: 8,
|
|
234
|
+
comment: 'Known provider-cost subtotal in USD, including priced portions of an incompletely priced request.',
|
|
235
|
+
}),
|
|
236
|
+
durationMs: field.integer({
|
|
237
|
+
column: 'duration_ms',
|
|
238
|
+
required: false,
|
|
239
|
+
unsigned: true,
|
|
240
|
+
comment: 'Duration of this request in milliseconds.',
|
|
241
|
+
}),
|
|
242
|
+
errorCode: field.string({
|
|
243
|
+
column: 'error_code',
|
|
244
|
+
required: false,
|
|
245
|
+
comment: 'Error code for this request.',
|
|
246
|
+
}),
|
|
247
|
+
errorMessage: field.text({
|
|
248
|
+
column: 'error_message',
|
|
249
|
+
required: false,
|
|
250
|
+
comment: 'Error message for this request.',
|
|
251
|
+
}),
|
|
252
|
+
startedAt: field.timestamp({
|
|
253
|
+
column: 'started_at',
|
|
254
|
+
required: false,
|
|
255
|
+
default: () => new Date(),
|
|
256
|
+
comment: 'Time this request was started.',
|
|
257
|
+
}),
|
|
258
|
+
completedAt: field.timestamp({
|
|
259
|
+
column: 'completed_at',
|
|
260
|
+
required: false,
|
|
261
|
+
comment: 'Time this request was completed.',
|
|
262
|
+
}),
|
|
263
|
+
metadata: field.jsonString({
|
|
264
|
+
required: false,
|
|
265
|
+
comment: 'Structured application metadata for this request.',
|
|
266
|
+
}),
|
|
267
|
+
createdAt: field.timestamp({
|
|
268
|
+
column: 'created_at',
|
|
269
|
+
auto: 'create',
|
|
270
|
+
}),
|
|
271
|
+
updatedAt: field.timestamp({
|
|
272
|
+
column: 'updated_at',
|
|
273
|
+
auto: 'update',
|
|
274
|
+
}),
|
|
275
|
+
};
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* Reads a linked record id from an ActiveRecord entity reference.
|
|
280
|
+
*
|
|
281
|
+
* @param value - Entity reference or raw relation value.
|
|
282
|
+
* @returns Linked id, or null when unavailable.
|
|
283
|
+
*/
|
|
284
|
+
function entityRefId(value) {
|
|
285
|
+
if (typeof value === 'string')
|
|
286
|
+
return value;
|
|
287
|
+
if (!value || typeof value !== 'object')
|
|
288
|
+
return null;
|
|
289
|
+
const id = value.id;
|
|
290
|
+
return id === null || id === undefined ? null : String(id);
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* Checks whether a persisted request cost is safe to include in a run total.
|
|
294
|
+
*
|
|
295
|
+
* @param value - Persisted decimal value from an AI request.
|
|
296
|
+
* @returns True when the value is finite and non-negative.
|
|
297
|
+
*/
|
|
298
|
+
function validRequestCost(value) {
|
|
299
|
+
const cost = Number(value);
|
|
300
|
+
return value !== null && value !== undefined && Number.isFinite(cost) && cost >= 0;
|
|
301
|
+
}
|
|
302
|
+
/**
|
|
303
|
+
* Converts a persisted request cost into a safe numeric value.
|
|
304
|
+
*
|
|
305
|
+
* @param value - Persisted decimal value from an AI request.
|
|
306
|
+
* @returns Numeric cost, or zero when the request is unpriced.
|
|
307
|
+
*/
|
|
308
|
+
function requestCost(value) {
|
|
309
|
+
return validRequestCost(value) ? Number(value) : 0;
|
|
310
|
+
}
|
|
311
|
+
/**
|
|
312
|
+
* Returns every priced portion known for one request.
|
|
313
|
+
*
|
|
314
|
+
* Completed hosted tools without a local pricing rule intentionally leave the
|
|
315
|
+
* persisted request cost null. Agent responses still retain their priced model
|
|
316
|
+
* and hosted-tool subtotal, so run reports can show a meaningful lower bound
|
|
317
|
+
* instead of dropping known spend from the total.
|
|
318
|
+
*
|
|
319
|
+
* @param request - Tracked provider request.
|
|
320
|
+
* @returns Complete persisted cost or the known agent-cost subtotal.
|
|
321
|
+
*/
|
|
322
|
+
function requestKnownCost(request) {
|
|
323
|
+
if (!request)
|
|
324
|
+
return 0;
|
|
325
|
+
if (validRequestCost(request.knownCostUSD))
|
|
326
|
+
return Number(request.knownCostUSD);
|
|
327
|
+
if (validRequestCost(request.costUSD))
|
|
328
|
+
return Number(request.costUSD);
|
|
329
|
+
const response = recordValue(request.response);
|
|
330
|
+
const cost = recordValue(response?.cost);
|
|
331
|
+
const modelCostUSD = requestCost(cost?.modelCostUSD);
|
|
332
|
+
const hostedToolCostUSD = requestCost(cost?.hostedToolCostUSD);
|
|
333
|
+
return roundCost(modelCostUSD + hostedToolCostUSD);
|
|
334
|
+
}
|
|
335
|
+
/**
|
|
336
|
+
* Returns the number of provider operations represented by one tracked row.
|
|
337
|
+
*
|
|
338
|
+
* Agent rows aggregate several Responses API calls into one audit record. Other
|
|
339
|
+
* provider rows represent one operation and therefore default to one.
|
|
340
|
+
*
|
|
341
|
+
* @param request - Tracked provider request.
|
|
342
|
+
* @returns Non-negative provider-operation count.
|
|
343
|
+
*/
|
|
344
|
+
function requestProviderRequestCount(request) {
|
|
345
|
+
if (request.operation === 'agents.run.queue' || request.operation === 'agents.run.stream') {
|
|
346
|
+
return 0;
|
|
347
|
+
}
|
|
348
|
+
const metadata = recordValue(request.metadata);
|
|
349
|
+
if (metadata?.providerStarted === false)
|
|
350
|
+
return 0;
|
|
351
|
+
const response = recordValue(request.response);
|
|
352
|
+
const usage = recordValue(response?.usage);
|
|
353
|
+
const requests = Number(usage?.requests);
|
|
354
|
+
return Number.isInteger(requests) && requests >= 0 ? requests : 1;
|
|
355
|
+
}
|
|
356
|
+
/**
|
|
357
|
+
* Converts a persisted token count into a safe aggregate value.
|
|
358
|
+
*
|
|
359
|
+
* @param value - Persisted token count.
|
|
360
|
+
* @returns Non-negative whole token count, or zero when unavailable.
|
|
361
|
+
*/
|
|
362
|
+
function requestTokenCount(value) {
|
|
363
|
+
return typeof value === 'number' && Number.isInteger(value) && value >= 0 ? value : 0;
|
|
364
|
+
}
|
|
365
|
+
/**
|
|
366
|
+
* Narrows an unknown JSON value to an object.
|
|
367
|
+
*
|
|
368
|
+
* @param value - Persisted JSON value.
|
|
369
|
+
* @returns Object value, or null for primitives and arrays.
|
|
370
|
+
*/
|
|
371
|
+
function recordValue(value) {
|
|
372
|
+
return value && typeof value === 'object' && !Array.isArray(value)
|
|
373
|
+
? value
|
|
374
|
+
: null;
|
|
375
|
+
}
|
|
376
|
+
/**
|
|
377
|
+
* Rounds an aggregated cost to the precision stored by `ai_requests.cost_usd`.
|
|
378
|
+
*
|
|
379
|
+
* @param value - Cost value to round.
|
|
380
|
+
* @returns Cost rounded to eight decimal places.
|
|
381
|
+
*/
|
|
382
|
+
function roundCost(value) {
|
|
383
|
+
return Math.round(value * 100_000_000) / 100_000_000;
|
|
384
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Estimates provider tokens from source text before exact usage is available.
|
|
3
|
+
*
|
|
4
|
+
* Character length is preferable to visible word count when the full provider
|
|
5
|
+
* input is available because markup, JSON, and punctuation also consume tokens.
|
|
6
|
+
*
|
|
7
|
+
* @param value - Complete text that will be sent to the provider.
|
|
8
|
+
* @returns Conservative non-zero token estimate.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* const inputTokens = estimateTokensFromText(`${instructions}\n${prompt}`);
|
|
12
|
+
*/
|
|
13
|
+
export declare function estimateTokensFromText(value: string): number;
|
|
14
|
+
/**
|
|
15
|
+
* Estimates provider tokens when only a word count is available.
|
|
16
|
+
*
|
|
17
|
+
* The estimate assumes approximately 0.75 English words per token. Callers
|
|
18
|
+
* with the complete source text should use `estimateTokensFromText(...)`.
|
|
19
|
+
*
|
|
20
|
+
* @param wordCount - Number of words in the source content.
|
|
21
|
+
* @returns Approximate token count, or zero for an invalid/non-positive count.
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* const inputTokens = estimateTokensFromWords(article.wordCount);
|
|
25
|
+
*/
|
|
26
|
+
export declare function estimateTokensFromWords(wordCount: number): number;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
const APPROXIMATE_CHARACTERS_PER_TOKEN = 4;
|
|
2
|
+
const APPROXIMATE_WORDS_PER_TOKEN = 0.75;
|
|
3
|
+
/**
|
|
4
|
+
* Estimates provider tokens from source text before exact usage is available.
|
|
5
|
+
*
|
|
6
|
+
* Character length is preferable to visible word count when the full provider
|
|
7
|
+
* input is available because markup, JSON, and punctuation also consume tokens.
|
|
8
|
+
*
|
|
9
|
+
* @param value - Complete text that will be sent to the provider.
|
|
10
|
+
* @returns Conservative non-zero token estimate.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* const inputTokens = estimateTokensFromText(`${instructions}\n${prompt}`);
|
|
14
|
+
*/
|
|
15
|
+
export function estimateTokensFromText(value) {
|
|
16
|
+
return Math.max(1, Math.ceil(value.length / APPROXIMATE_CHARACTERS_PER_TOKEN));
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Estimates provider tokens when only a word count is available.
|
|
20
|
+
*
|
|
21
|
+
* The estimate assumes approximately 0.75 English words per token. Callers
|
|
22
|
+
* with the complete source text should use `estimateTokensFromText(...)`.
|
|
23
|
+
*
|
|
24
|
+
* @param wordCount - Number of words in the source content.
|
|
25
|
+
* @returns Approximate token count, or zero for an invalid/non-positive count.
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* const inputTokens = estimateTokensFromWords(article.wordCount);
|
|
29
|
+
*/
|
|
30
|
+
export function estimateTokensFromWords(wordCount) {
|
|
31
|
+
if (!Number.isFinite(wordCount) || wordCount <= 0)
|
|
32
|
+
return 0;
|
|
33
|
+
return Math.ceil(wordCount / APPROXIMATE_WORDS_PER_TOKEN);
|
|
34
|
+
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import type { AIModelPricing, AIImageModelPricing, AIRequestCostUsage, AIRequestCostUsageEntry, AIImageRequestCostUsage, AIHostedToolUsage, AIHostedToolCost } from './contracts/Pricing.js';
|
|
2
|
+
export type { AIModelPricing, AIImageModelPricing, AIRequestCostUsage, AIRequestCostUsageEntry, AIImageRequestCostUsage, AIHostedToolUsage, AIHostedToolCost } from './contracts/Pricing.js';
|
|
3
|
+
/**
|
|
4
|
+
* OpenAI Standard processing prices in USD, verified on 2026-09-11.
|
|
5
|
+
*
|
|
6
|
+
* Used to estimate request cost at write time; stored historical costs are not
|
|
7
|
+
* recalculated. Excludes regional processing surcharges and other service tiers.
|
|
8
|
+
*
|
|
9
|
+
* @see https://developers.openai.com/api/docs/pricing
|
|
10
|
+
*/
|
|
11
|
+
export declare const AI_MODEL_PRICING: Record<string, AIModelPricing>;
|
|
12
|
+
/**
|
|
13
|
+
* OpenAI Standard image token prices in USD, verified on 2026-09-11.
|
|
14
|
+
*
|
|
15
|
+
* Flare and GPT Image 2 share token rates, but may consume different token
|
|
16
|
+
* counts for the same size and quality. Estimate costs from reported usage.
|
|
17
|
+
*
|
|
18
|
+
* @see https://developers.openai.com/api/docs/pricing
|
|
19
|
+
*/
|
|
20
|
+
export declare const AI_IMAGE_MODEL_PRICING: Record<string, AIImageModelPricing>;
|
|
21
|
+
/**
|
|
22
|
+
* Hardcoded per-call pricing for hosted provider tools that do not create their
|
|
23
|
+
* own AI request row.
|
|
24
|
+
*/
|
|
25
|
+
export declare const AI_HOSTED_TOOL_PRICING_USD: Record<string, number>;
|
|
26
|
+
/**
|
|
27
|
+
* Calculates an estimated USD cost from normalized usage and model pricing.
|
|
28
|
+
*
|
|
29
|
+
* Unknown models and incomplete paid token dimensions return null so callers do
|
|
30
|
+
* not persist misleading costs. Input-only models can omit output tokens.
|
|
31
|
+
*
|
|
32
|
+
* @param model - Provider model used by the request.
|
|
33
|
+
* @param usage - Normalized token counts from the provider response.
|
|
34
|
+
* @returns Rounded USD cost, or null when cost cannot be computed.
|
|
35
|
+
*/
|
|
36
|
+
export declare function calculateAIRequestCostUSD(model: string, usage: AIRequestCostUsage): number | null;
|
|
37
|
+
/**
|
|
38
|
+
* Calculates aggregate model cost from the individual requests in an agent run.
|
|
39
|
+
*
|
|
40
|
+
* Per-request calculation is required because long-context pricing applies to
|
|
41
|
+
* an individual prompt rather than to the run's aggregate input-token total.
|
|
42
|
+
*
|
|
43
|
+
* @param model - Provider model used for each request entry.
|
|
44
|
+
* @param entries - Individual request usage entries reported by the Agents SDK.
|
|
45
|
+
* @returns Combined model cost, or null when any request cannot be priced.
|
|
46
|
+
*/
|
|
47
|
+
export declare function calculateAIRequestEntriesCostUSD(model: string, entries: AIRequestCostUsageEntry[]): number | null;
|
|
48
|
+
/**
|
|
49
|
+
* Calculates an estimated image generation USD cost from provider usage.
|
|
50
|
+
*
|
|
51
|
+
* Unknown models and incomplete token modality details return null so callers
|
|
52
|
+
* do not persist misleading image costs.
|
|
53
|
+
*
|
|
54
|
+
* @param model - Provider image model used by the request.
|
|
55
|
+
* @param usage - Normalized image token counts from the provider response.
|
|
56
|
+
* @returns Rounded USD cost, or null when cost cannot be computed.
|
|
57
|
+
*/
|
|
58
|
+
export declare function calculateAIImageRequestCostUSD(model: string, usage: AIImageRequestCostUsage): number | null;
|
|
59
|
+
/**
|
|
60
|
+
* Calculates hosted provider-tool fees from normalized billable call counts.
|
|
61
|
+
*
|
|
62
|
+
* Unknown tool names are excluded from this numeric subtotal. Use
|
|
63
|
+
* `calculateAIHostedToolCost(...)` when the caller must distinguish a complete
|
|
64
|
+
* cost from a subtotal with unpriced tools.
|
|
65
|
+
*
|
|
66
|
+
* @param usage - Billable hosted-tool call counts by normalized tool name.
|
|
67
|
+
* @returns Hosted-tool cost rounded to the request-cost precision.
|
|
68
|
+
*/
|
|
69
|
+
export declare function calculateAIHostedToolCostUSD(usage: AIHostedToolUsage): number;
|
|
70
|
+
/**
|
|
71
|
+
* Separates priced hosted-tool fees from completed hosted tools whose provider
|
|
72
|
+
* pricing is not yet represented locally.
|
|
73
|
+
*
|
|
74
|
+
* @param usage - Billable hosted-tool call counts by normalized tool name.
|
|
75
|
+
* @returns Known tool-fee subtotal and usage that prevents a complete estimate.
|
|
76
|
+
*/
|
|
77
|
+
export declare function calculateAIHostedToolCost(usage: AIHostedToolUsage): AIHostedToolCost;
|
|
78
|
+
/**
|
|
79
|
+
* Adds provider token cost and hosted-tool fees for one tracked request.
|
|
80
|
+
*
|
|
81
|
+
* A missing token-model price keeps the request unpriced rather than persisting
|
|
82
|
+
* a partial hosted-tool-only total.
|
|
83
|
+
*
|
|
84
|
+
* @param modelCostUSD - Token cost calculated for the model request.
|
|
85
|
+
* @param hostedToolCostUSD - Hosted provider-tool fees incurred during the request.
|
|
86
|
+
* @returns Combined request cost, or null when the model cost is unavailable.
|
|
87
|
+
*/
|
|
88
|
+
export declare function combineAIRequestCostUSD(modelCostUSD: number | null, hostedToolCostUSD: number): number | null;
|