@trigger.dev/sdk 0.0.0-python-preview-20250226140121 → 0.0.0-rc-4-8-0-20261021151928
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 +29 -9
- package/dist/commonjs/imports/ai-runtime-cjs.cjs.map +1 -0
- package/dist/commonjs/imports/ai-runtime.d.ts +1 -0
- package/dist/commonjs/imports/ai-runtime.js +31 -0
- package/dist/commonjs/imports/uncrypto.js +4 -4
- package/dist/commonjs/package.json +2 -1
- package/dist/commonjs/v3/agentSkillsRuntime.d.ts +28 -0
- package/dist/commonjs/v3/agentSkillsRuntime.js +173 -0
- package/dist/commonjs/v3/agentSkillsRuntime.js.map +1 -0
- package/dist/commonjs/v3/ai-shared.d.ts +156 -0
- package/dist/commonjs/v3/ai-shared.js +215 -0
- package/dist/commonjs/v3/ai-shared.js.map +1 -0
- package/dist/commonjs/v3/ai.d.ts +4225 -0
- package/dist/commonjs/v3/ai.js +11569 -0
- package/dist/commonjs/v3/ai.js.map +1 -0
- package/dist/commonjs/v3/aiAutoTelemetry.d.ts +2 -0
- package/dist/commonjs/v3/aiAutoTelemetry.js +81 -0
- package/dist/commonjs/v3/aiAutoTelemetry.js.map +1 -0
- package/dist/commonjs/v3/auth.d.ts +71 -10
- package/dist/commonjs/v3/auth.js +85 -19
- package/dist/commonjs/v3/auth.js.map +1 -1
- package/dist/commonjs/v3/batch.d.ts +3 -3
- package/dist/commonjs/v3/batch.js.map +1 -1
- package/dist/commonjs/v3/cache.js.map +1 -1
- package/dist/commonjs/v3/chat-client.d.ts +324 -0
- package/dist/commonjs/v3/chat-client.js +774 -0
- package/dist/commonjs/v3/chat-client.js.map +1 -0
- package/dist/commonjs/v3/chat-react.d.ts +244 -0
- package/dist/commonjs/v3/chat-react.js +463 -0
- package/dist/commonjs/v3/chat-react.js.map +1 -0
- package/dist/commonjs/v3/chat-server.d.ts +350 -0
- package/dist/commonjs/v3/chat-server.js +965 -0
- package/dist/commonjs/v3/chat-server.js.map +1 -0
- package/dist/commonjs/v3/chat-tab-coordinator.d.ts +65 -0
- package/dist/commonjs/v3/chat-tab-coordinator.js +235 -0
- package/dist/commonjs/v3/chat-tab-coordinator.js.map +1 -0
- package/dist/commonjs/v3/chat.d.ts +792 -0
- package/dist/commonjs/v3/chat.js +1662 -0
- package/dist/commonjs/v3/chat.js.map +1 -0
- package/dist/commonjs/v3/chatRouteWait.d.ts +21 -0
- package/dist/commonjs/v3/chatRouteWait.js +43 -0
- package/dist/commonjs/v3/chatRouteWait.js.map +1 -0
- package/dist/commonjs/v3/chatSnapshotIo.d.ts +2 -0
- package/dist/commonjs/v3/chatSnapshotIo.js +173 -0
- package/dist/commonjs/v3/chatSnapshotIo.js.map +1 -0
- package/dist/commonjs/v3/chatVersionSkew.d.ts +12 -0
- package/dist/commonjs/v3/chatVersionSkew.js +30 -0
- package/dist/commonjs/v3/chatVersionSkew.js.map +1 -0
- package/dist/commonjs/v3/compactionResponse.d.ts +9 -0
- package/dist/commonjs/v3/compactionResponse.js +37 -0
- package/dist/commonjs/v3/compactionResponse.js.map +1 -0
- package/dist/commonjs/v3/concurrency-shared.d.ts +13 -0
- package/dist/commonjs/v3/concurrency-shared.js +35 -0
- package/dist/commonjs/v3/concurrency-shared.js.map +1 -0
- package/dist/commonjs/v3/concurrencyLimits.d.ts +103 -0
- package/dist/commonjs/v3/concurrencyLimits.js +134 -0
- package/dist/commonjs/v3/concurrencyLimits.js.map +1 -0
- package/dist/commonjs/v3/config.js.map +1 -1
- package/dist/commonjs/v3/deployments.d.ts +25 -0
- package/dist/commonjs/v3/deployments.js +37 -0
- package/dist/commonjs/v3/deployments.js.map +1 -0
- package/dist/commonjs/v3/envvars.d.ts +5 -5
- package/dist/commonjs/v3/envvars.js.map +1 -1
- package/dist/commonjs/v3/externalDeploymentId.d.ts +23 -0
- package/dist/commonjs/v3/externalDeploymentId.js +43 -0
- package/dist/commonjs/v3/externalDeploymentId.js.map +1 -0
- package/dist/commonjs/v3/heartbeats.d.ts +37 -0
- package/dist/commonjs/v3/heartbeats.js +45 -0
- package/dist/commonjs/v3/heartbeats.js.map +1 -0
- package/dist/commonjs/v3/hooks.d.ts +26 -0
- package/dist/commonjs/v3/hooks.js +79 -0
- package/dist/commonjs/v3/hooks.js.map +1 -0
- package/dist/commonjs/v3/idempotencyKeys.d.ts +2 -1
- package/dist/commonjs/v3/idempotencyKeys.js +1 -0
- package/dist/commonjs/v3/idempotencyKeys.js.map +1 -1
- package/dist/commonjs/v3/index.d.ts +20 -5
- package/dist/commonjs/v3/index.js +56 -20
- package/dist/commonjs/v3/index.js.map +1 -1
- package/dist/commonjs/v3/locals.d.ts +3 -0
- package/dist/commonjs/v3/locals.js +6 -0
- package/dist/commonjs/v3/locals.js.map +1 -0
- package/dist/commonjs/v3/managedChatResponse.d.ts +44 -0
- package/dist/commonjs/v3/managedChatResponse.js +221 -0
- package/dist/commonjs/v3/managedChatResponse.js.map +1 -0
- package/dist/commonjs/v3/metadata.d.ts +5 -2
- package/dist/commonjs/v3/metadata.js +8 -1
- package/dist/commonjs/v3/metadata.js.map +1 -1
- package/dist/commonjs/v3/modelFileDownload.d.ts +10 -0
- package/dist/commonjs/v3/modelFileDownload.js +164 -0
- package/dist/commonjs/v3/modelFileDownload.js.map +1 -0
- package/dist/commonjs/v3/otel.d.ts +4 -0
- package/dist/commonjs/v3/otel.js +12 -0
- package/dist/commonjs/v3/otel.js.map +1 -0
- package/dist/commonjs/v3/prompt.d.ts +38 -0
- package/dist/commonjs/v3/prompt.js +146 -0
- package/dist/commonjs/v3/prompt.js.map +1 -0
- package/dist/commonjs/v3/promptManagement.d.ts +26 -0
- package/dist/commonjs/v3/promptManagement.js +180 -0
- package/dist/commonjs/v3/promptManagement.js.map +1 -0
- package/dist/commonjs/v3/prompts.d.ts +3 -0
- package/dist/commonjs/v3/prompts.js +15 -0
- package/dist/commonjs/v3/prompts.js.map +1 -0
- package/dist/commonjs/v3/query.d.ts +545 -0
- package/dist/commonjs/v3/query.js +163 -0
- package/dist/commonjs/v3/query.js.map +1 -0
- package/dist/commonjs/v3/queues.d.ts +107 -0
- package/dist/commonjs/v3/queues.js +225 -0
- package/dist/commonjs/v3/queues.js.map +1 -0
- package/dist/commonjs/v3/retry.d.ts +6 -2
- package/dist/commonjs/v3/retry.js +34 -23
- package/dist/commonjs/v3/retry.js.map +1 -1
- package/dist/commonjs/v3/runs.d.ts +182 -101
- package/dist/commonjs/v3/runs.js +99 -5
- package/dist/commonjs/v3/runs.js.map +1 -1
- package/dist/commonjs/v3/schedules/api.d.ts +8 -1
- package/dist/commonjs/v3/schedules/index.d.ts +29 -9
- package/dist/commonjs/v3/schedules/index.js +5 -1
- package/dist/commonjs/v3/schedules/index.js.map +1 -1
- package/dist/commonjs/v3/schemas.d.ts +1 -0
- package/dist/commonjs/{integrations.js → v3/schemas.js} +1 -1
- package/dist/commonjs/v3/schemas.js.map +1 -0
- package/dist/commonjs/v3/sessionTracing.d.ts +7 -0
- package/dist/commonjs/v3/sessionTracing.js +44 -0
- package/dist/commonjs/v3/sessionTracing.js.map +1 -0
- package/dist/commonjs/v3/sessions.d.ts +268 -0
- package/dist/commonjs/v3/sessions.js +776 -0
- package/dist/commonjs/v3/sessions.js.map +1 -0
- package/dist/commonjs/v3/shared.d.ts +129 -24
- package/dist/commonjs/v3/shared.js +1527 -689
- package/dist/commonjs/v3/shared.js.map +1 -1
- package/dist/commonjs/v3/skill.d.ts +99 -0
- package/dist/commonjs/v3/skill.js +165 -0
- package/dist/commonjs/v3/skill.js.map +1 -0
- package/dist/commonjs/v3/skills.d.ts +2 -0
- package/dist/commonjs/v3/skills.js +6 -0
- package/dist/commonjs/v3/skills.js.map +1 -0
- package/dist/commonjs/v3/steeringContext.d.ts +41 -0
- package/dist/commonjs/v3/steeringContext.js +118 -0
- package/dist/commonjs/v3/steeringContext.js.map +1 -0
- package/dist/commonjs/v3/streams.d.ts +298 -0
- package/dist/commonjs/v3/streams.js +584 -0
- package/dist/commonjs/v3/streams.js.map +1 -0
- package/dist/commonjs/v3/tasks.d.ts +19 -4
- package/dist/commonjs/v3/tasks.js +15 -1
- package/dist/commonjs/v3/tasks.js.map +1 -1
- package/dist/commonjs/v3/test/index.d.ts +5 -0
- package/dist/commonjs/v3/test/index.js +23 -0
- package/dist/commonjs/v3/test/index.js.map +1 -0
- package/dist/commonjs/v3/test/mock-channel-connector.d.ts +172 -0
- package/dist/commonjs/v3/test/mock-channel-connector.js +173 -0
- package/dist/commonjs/v3/test/mock-channel-connector.js.map +1 -0
- package/dist/commonjs/v3/test/mock-chat-agent.d.ts +388 -0
- package/dist/commonjs/v3/test/mock-chat-agent.js +689 -0
- package/dist/commonjs/v3/test/mock-chat-agent.js.map +1 -0
- package/dist/commonjs/v3/test/setup-catalog.d.ts +1 -0
- package/dist/commonjs/v3/test/setup-catalog.js +18 -0
- package/dist/commonjs/v3/test/setup-catalog.js.map +1 -0
- package/dist/commonjs/v3/test/test-session-handle.d.ts +24 -0
- package/dist/commonjs/v3/test/test-session-handle.js +271 -0
- package/dist/commonjs/v3/test/test-session-handle.js.map +1 -0
- package/dist/commonjs/v3/test/transcript-storage-tests.d.ts +40 -0
- package/dist/commonjs/v3/test/transcript-storage-tests.js +258 -0
- package/dist/commonjs/v3/test/transcript-storage-tests.js.map +1 -0
- package/dist/commonjs/v3/toolResultOrder.d.ts +15 -0
- package/dist/commonjs/v3/toolResultOrder.js +58 -0
- package/dist/commonjs/v3/toolResultOrder.js.map +1 -0
- package/dist/commonjs/v3/transcriptStorage.d.ts +307 -0
- package/dist/commonjs/v3/transcriptStorage.js +445 -0
- package/dist/commonjs/v3/transcriptStorage.js.map +1 -0
- package/dist/commonjs/v3/triggerClient.d.ts +45 -0
- package/dist/commonjs/v3/triggerClient.js +114 -0
- package/dist/commonjs/v3/triggerClient.js.map +1 -0
- package/dist/commonjs/v3/uiMessageChunks.d.ts +1 -0
- package/dist/commonjs/v3/uiMessageChunks.js +119 -0
- package/dist/commonjs/v3/uiMessageChunks.js.map +1 -0
- package/dist/commonjs/v3/usage.js +7 -6
- package/dist/commonjs/v3/usage.js.map +1 -1
- package/dist/commonjs/v3/wait.d.ts +218 -3
- package/dist/commonjs/v3/wait.js +433 -7
- package/dist/commonjs/v3/wait.js.map +1 -1
- package/dist/commonjs/v3/waitUntil.js.map +1 -1
- package/dist/commonjs/v3/webhookWaiters.d.ts +80 -0
- package/dist/commonjs/v3/webhookWaiters.js +156 -0
- package/dist/commonjs/v3/webhookWaiters.js.map +1 -0
- package/dist/commonjs/v3/webhooks.d.ts +192 -2
- package/dist/commonjs/v3/webhooks.js +340 -2
- package/dist/commonjs/v3/webhooks.js.map +1 -1
- package/dist/commonjs/version.js +1 -1
- package/dist/esm/imports/ai-runtime.d.ts +2 -0
- package/dist/esm/imports/ai-runtime.js +16 -0
- package/dist/esm/imports/ai-runtime.js.map +1 -0
- package/dist/esm/package.json +2 -1
- package/dist/esm/v3/agentSkillsRuntime.d.ts +28 -0
- package/dist/esm/v3/agentSkillsRuntime.js +136 -0
- package/dist/esm/v3/agentSkillsRuntime.js.map +1 -0
- package/dist/esm/v3/ai-shared.d.ts +156 -0
- package/dist/esm/v3/ai-shared.js +208 -0
- package/dist/esm/v3/ai-shared.js.map +1 -0
- package/dist/esm/v3/ai.d.ts +4225 -0
- package/dist/esm/v3/ai.js +11550 -0
- package/dist/esm/v3/ai.js.map +1 -0
- package/dist/esm/v3/aiAutoTelemetry.d.ts +2 -0
- package/dist/esm/v3/aiAutoTelemetry.js +78 -0
- package/dist/esm/v3/aiAutoTelemetry.js.map +1 -0
- package/dist/esm/v3/auth.d.ts +71 -10
- package/dist/esm/v3/auth.js +83 -17
- package/dist/esm/v3/auth.js.map +1 -1
- package/dist/esm/v3/batch.d.ts +3 -3
- package/dist/esm/v3/batch.js +2 -2
- package/dist/esm/v3/batch.js.map +1 -1
- package/dist/esm/v3/chat-client.d.ts +324 -0
- package/dist/esm/v3/chat-client.js +769 -0
- package/dist/esm/v3/chat-client.js.map +1 -0
- package/dist/esm/v3/chat-react.d.ts +244 -0
- package/dist/esm/v3/chat-react.js +455 -0
- package/dist/esm/v3/chat-react.js.map +1 -0
- package/dist/esm/v3/chat-server.d.ts +350 -0
- package/dist/esm/v3/chat-server.js +962 -0
- package/dist/esm/v3/chat-server.js.map +1 -0
- package/dist/esm/v3/chat-tab-coordinator.d.ts +65 -0
- package/dist/esm/v3/chat-tab-coordinator.js +231 -0
- package/dist/esm/v3/chat-tab-coordinator.js.map +1 -0
- package/dist/esm/v3/chat.d.ts +792 -0
- package/dist/esm/v3/chat.js +1655 -0
- package/dist/esm/v3/chat.js.map +1 -0
- package/dist/esm/v3/chatRouteWait.d.ts +21 -0
- package/dist/esm/v3/chatRouteWait.js +40 -0
- package/dist/esm/v3/chatRouteWait.js.map +1 -0
- package/dist/esm/v3/chatSnapshotIo.d.ts +2 -0
- package/dist/esm/v3/chatSnapshotIo.js +165 -0
- package/dist/esm/v3/chatSnapshotIo.js.map +1 -0
- package/dist/esm/v3/chatVersionSkew.d.ts +12 -0
- package/dist/esm/v3/chatVersionSkew.js +27 -0
- package/dist/esm/v3/chatVersionSkew.js.map +1 -0
- package/dist/esm/v3/compactionResponse.d.ts +9 -0
- package/dist/esm/v3/compactionResponse.js +34 -0
- package/dist/esm/v3/compactionResponse.js.map +1 -0
- package/dist/esm/v3/concurrency-shared.d.ts +13 -0
- package/dist/esm/v3/concurrency-shared.js +31 -0
- package/dist/esm/v3/concurrency-shared.js.map +1 -0
- package/dist/esm/v3/concurrencyLimits.d.ts +103 -0
- package/dist/esm/v3/concurrencyLimits.js +126 -0
- package/dist/esm/v3/concurrencyLimits.js.map +1 -0
- package/dist/esm/v3/deployments.d.ts +25 -0
- package/dist/esm/v3/deployments.js +34 -0
- package/dist/esm/v3/deployments.js.map +1 -0
- package/dist/esm/v3/envvars.d.ts +5 -5
- package/dist/esm/v3/envvars.js.map +1 -1
- package/dist/esm/v3/externalDeploymentId.d.ts +23 -0
- package/dist/esm/v3/externalDeploymentId.js +38 -0
- package/dist/esm/v3/externalDeploymentId.js.map +1 -0
- package/dist/esm/v3/heartbeats.d.ts +37 -0
- package/dist/esm/v3/heartbeats.js +42 -0
- package/dist/esm/v3/heartbeats.js.map +1 -0
- package/dist/esm/v3/hooks.d.ts +26 -0
- package/dist/esm/v3/hooks.js +66 -0
- package/dist/esm/v3/hooks.js.map +1 -0
- package/dist/esm/v3/idempotencyKeys.d.ts +2 -1
- package/dist/esm/v3/idempotencyKeys.js +2 -1
- package/dist/esm/v3/idempotencyKeys.js.map +1 -1
- package/dist/esm/v3/index.d.ts +20 -5
- package/dist/esm/v3/index.js +16 -2
- package/dist/esm/v3/index.js.map +1 -1
- package/dist/esm/v3/locals.d.ts +3 -0
- package/dist/esm/v3/locals.js +3 -0
- package/dist/esm/v3/locals.js.map +1 -0
- package/dist/esm/v3/managedChatResponse.d.ts +44 -0
- package/dist/esm/v3/managedChatResponse.js +216 -0
- package/dist/esm/v3/managedChatResponse.js.map +1 -0
- package/dist/esm/v3/metadata.d.ts +5 -2
- package/dist/esm/v3/metadata.js +8 -1
- package/dist/esm/v3/metadata.js.map +1 -1
- package/dist/esm/v3/modelFileDownload.d.ts +10 -0
- package/dist/esm/v3/modelFileDownload.js +161 -0
- package/dist/esm/v3/modelFileDownload.js.map +1 -0
- package/dist/esm/v3/otel.d.ts +4 -0
- package/dist/esm/v3/otel.js +9 -0
- package/dist/esm/v3/otel.js.map +1 -0
- package/dist/esm/v3/prompt.d.ts +38 -0
- package/dist/esm/v3/prompt.js +143 -0
- package/dist/esm/v3/prompt.js.map +1 -0
- package/dist/esm/v3/promptManagement.d.ts +26 -0
- package/dist/esm/v3/promptManagement.js +170 -0
- package/dist/esm/v3/promptManagement.js.map +1 -0
- package/dist/esm/v3/prompts.d.ts +3 -0
- package/dist/esm/v3/prompts.js +3 -0
- package/dist/esm/v3/prompts.js.map +1 -0
- package/dist/esm/v3/query.d.ts +545 -0
- package/dist/esm/v3/query.js +160 -0
- package/dist/esm/v3/query.js.map +1 -0
- package/dist/esm/v3/queues.d.ts +107 -0
- package/dist/esm/v3/queues.js +217 -0
- package/dist/esm/v3/queues.js.map +1 -0
- package/dist/esm/v3/retry.d.ts +6 -2
- package/dist/esm/v3/retry.js +27 -19
- package/dist/esm/v3/retry.js.map +1 -1
- package/dist/esm/v3/runs.d.ts +179 -98
- package/dist/esm/v3/runs.js +99 -5
- package/dist/esm/v3/runs.js.map +1 -1
- package/dist/esm/v3/schedules/api.d.ts +8 -1
- package/dist/esm/v3/schedules/index.d.ts +29 -9
- package/dist/esm/v3/schedules/index.js +6 -2
- package/dist/esm/v3/schedules/index.js.map +1 -1
- package/dist/esm/v3/schemas.d.ts +1 -0
- package/dist/esm/v3/schemas.js +2 -0
- package/dist/esm/v3/schemas.js.map +1 -0
- package/dist/esm/v3/sessionTracing.d.ts +7 -0
- package/dist/esm/v3/sessionTracing.js +40 -0
- package/dist/esm/v3/sessionTracing.js.map +1 -0
- package/dist/esm/v3/sessions.d.ts +268 -0
- package/dist/esm/v3/sessions.js +767 -0
- package/dist/esm/v3/sessions.js.map +1 -0
- package/dist/esm/v3/shared.d.ts +129 -24
- package/dist/esm/v3/shared.js +1521 -688
- package/dist/esm/v3/shared.js.map +1 -1
- package/dist/esm/v3/skill.d.ts +99 -0
- package/dist/esm/v3/skill.js +128 -0
- package/dist/esm/v3/skill.js.map +1 -0
- package/dist/esm/v3/skills.d.ts +2 -0
- package/dist/esm/v3/skills.js +2 -0
- package/dist/esm/v3/skills.js.map +1 -0
- package/dist/esm/v3/steeringContext.d.ts +41 -0
- package/dist/esm/v3/steeringContext.js +113 -0
- package/dist/esm/v3/steeringContext.js.map +1 -0
- package/dist/esm/v3/streams.d.ts +298 -0
- package/dist/esm/v3/streams.js +580 -0
- package/dist/esm/v3/streams.js.map +1 -0
- package/dist/esm/v3/tasks.d.ts +19 -4
- package/dist/esm/v3/tasks.js +16 -2
- package/dist/esm/v3/tasks.js.map +1 -1
- package/dist/esm/v3/test/index.d.ts +5 -0
- package/dist/esm/v3/test/index.js +15 -0
- package/dist/esm/v3/test/index.js.map +1 -0
- package/dist/esm/v3/test/mock-channel-connector.d.ts +172 -0
- package/dist/esm/v3/test/mock-channel-connector.js +170 -0
- package/dist/esm/v3/test/mock-channel-connector.js.map +1 -0
- package/dist/esm/v3/test/mock-chat-agent.d.ts +388 -0
- package/dist/esm/v3/test/mock-chat-agent.js +685 -0
- package/dist/esm/v3/test/mock-chat-agent.js.map +1 -0
- package/dist/esm/v3/test/setup-catalog.d.ts +1 -0
- package/dist/esm/v3/test/setup-catalog.js +16 -0
- package/dist/esm/v3/test/setup-catalog.js.map +1 -0
- package/dist/esm/v3/test/test-session-handle.d.ts +24 -0
- package/dist/esm/v3/test/test-session-handle.js +268 -0
- package/dist/esm/v3/test/test-session-handle.js.map +1 -0
- package/dist/esm/v3/test/transcript-storage-tests.d.ts +40 -0
- package/dist/esm/v3/test/transcript-storage-tests.js +255 -0
- package/dist/esm/v3/test/transcript-storage-tests.js.map +1 -0
- package/dist/esm/v3/toolResultOrder.d.ts +15 -0
- package/dist/esm/v3/toolResultOrder.js +55 -0
- package/dist/esm/v3/toolResultOrder.js.map +1 -0
- package/dist/esm/v3/transcriptStorage.d.ts +307 -0
- package/dist/esm/v3/transcriptStorage.js +431 -0
- package/dist/esm/v3/transcriptStorage.js.map +1 -0
- package/dist/esm/v3/triggerClient.d.ts +45 -0
- package/dist/esm/v3/triggerClient.js +77 -0
- package/dist/esm/v3/triggerClient.js.map +1 -0
- package/dist/esm/v3/uiMessageChunks.d.ts +1 -0
- package/dist/esm/v3/uiMessageChunks.js +116 -0
- package/dist/esm/v3/uiMessageChunks.js.map +1 -0
- package/dist/esm/v3/usage.js +7 -6
- package/dist/esm/v3/usage.js.map +1 -1
- package/dist/esm/v3/wait.d.ts +218 -3
- package/dist/esm/v3/wait.js +431 -7
- package/dist/esm/v3/wait.js.map +1 -1
- package/dist/esm/v3/webhookWaiters.d.ts +80 -0
- package/dist/esm/v3/webhookWaiters.js +149 -0
- package/dist/esm/v3/webhookWaiters.js.map +1 -0
- package/dist/esm/v3/webhooks.d.ts +192 -2
- package/dist/esm/v3/webhooks.js +336 -2
- package/dist/esm/v3/webhooks.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/docs/ai/observability.mdx +174 -0
- package/docs/ai/prompts.mdx +426 -0
- package/docs/ai-chat/actions.mdx +148 -0
- package/docs/ai-chat/anatomy.mdx +87 -0
- package/docs/ai-chat/backend.mdx +933 -0
- package/docs/ai-chat/background-injection.mdx +320 -0
- package/docs/ai-chat/changelog.mdx +958 -0
- package/docs/ai-chat/chat-local.mdx +170 -0
- package/docs/ai-chat/client-protocol.mdx +1091 -0
- package/docs/ai-chat/compaction.mdx +413 -0
- package/docs/ai-chat/custom-agents.mdx +545 -0
- package/docs/ai-chat/error-handling.mdx +379 -0
- package/docs/ai-chat/fast-starts.mdx +764 -0
- package/docs/ai-chat/frontend.mdx +634 -0
- package/docs/ai-chat/how-it-works.mdx +226 -0
- package/docs/ai-chat/lifecycle-hooks.mdx +532 -0
- package/docs/ai-chat/mcp.mdx +97 -0
- package/docs/ai-chat/migrating-from-a-route-handler.mdx +594 -0
- package/docs/ai-chat/migrating-from-hydrate-messages.mdx +299 -0
- package/docs/ai-chat/overview.mdx +86 -0
- package/docs/ai-chat/patterns/branching-conversations.mdx +145 -0
- package/docs/ai-chat/patterns/code-sandbox.mdx +122 -0
- package/docs/ai-chat/patterns/database-persistence.mdx +425 -0
- package/docs/ai-chat/patterns/human-in-the-loop.mdx +281 -0
- package/docs/ai-chat/patterns/large-payloads.mdx +165 -0
- package/docs/ai-chat/patterns/native-compaction.mdx +310 -0
- package/docs/ai-chat/patterns/oom-resilience.mdx +116 -0
- package/docs/ai-chat/patterns/persistence-and-replay.mdx +218 -0
- package/docs/ai-chat/patterns/recovery-boot.mdx +233 -0
- package/docs/ai-chat/patterns/redacting-telemetry.mdx +117 -0
- package/docs/ai-chat/patterns/skills.mdx +214 -0
- package/docs/ai-chat/patterns/sub-agents.mdx +412 -0
- package/docs/ai-chat/patterns/tool-result-auditing.mdx +145 -0
- package/docs/ai-chat/patterns/trusted-edge-signals.mdx +333 -0
- package/docs/ai-chat/patterns/version-upgrades.mdx +261 -0
- package/docs/ai-chat/pending-messages.mdx +363 -0
- package/docs/ai-chat/prompt-caching.mdx +204 -0
- package/docs/ai-chat/quick-start.mdx +163 -0
- package/docs/ai-chat/reference.mdx +1071 -0
- package/docs/ai-chat/server-chat.mdx +259 -0
- package/docs/ai-chat/sessions.mdx +334 -0
- package/docs/ai-chat/side-channels.mdx +172 -0
- package/docs/ai-chat/testing.mdx +691 -0
- package/docs/ai-chat/tools.mdx +192 -0
- package/docs/ai-chat/transcript-storage.mdx +247 -0
- package/docs/ai-chat/types.mdx +242 -0
- package/docs/ai-chat/upgrade-guide.mdx +511 -0
- package/docs/apikeys.mdx +170 -0
- package/docs/billing-limits.mdx +73 -0
- package/docs/building-with-ai.mdx +261 -0
- package/docs/bulk-actions.mdx +77 -0
- package/docs/changelog.mdx +6 -0
- package/docs/cli-deploy-commands.mdx +9 -0
- package/docs/cli-dev-commands.mdx +9 -0
- package/docs/cli-env-commands.mdx +115 -0
- package/docs/cli-init-commands.mdx +84 -0
- package/docs/cli-introduction.mdx +25 -0
- package/docs/cli-list-profiles-commands.mdx +42 -0
- package/docs/cli-login-commands.mdx +53 -0
- package/docs/cli-logout-commands.mdx +33 -0
- package/docs/cli-preview-archive.mdx +59 -0
- package/docs/cli-projects-commands.mdx +74 -0
- package/docs/cli-promote-commands.mdx +9 -0
- package/docs/cli-runs-commands.mdx +95 -0
- package/docs/cli-switch.mdx +43 -0
- package/docs/cli-tasks-commands.mdx +95 -0
- package/docs/cli-update-commands.mdx +48 -0
- package/docs/cli-whoami-commands.mdx +45 -0
- package/docs/community.mdx +6 -0
- package/docs/concurrency.mdx +416 -0
- package/docs/config/config-file.mdx +662 -0
- package/docs/config/extensions/additionalFiles.mdx +38 -0
- package/docs/config/extensions/additionalPackages.mdx +40 -0
- package/docs/config/extensions/aptGet.mdx +34 -0
- package/docs/config/extensions/audioWaveform.mdx +23 -0
- package/docs/config/extensions/custom.mdx +393 -0
- package/docs/config/extensions/emitDecoratorMetadata.mdx +52 -0
- package/docs/config/extensions/esbuildPlugin.mdx +31 -0
- package/docs/config/extensions/ffmpeg.mdx +45 -0
- package/docs/config/extensions/lightpanda.mdx +56 -0
- package/docs/config/extensions/overview.mdx +69 -0
- package/docs/config/extensions/playwright.mdx +195 -0
- package/docs/config/extensions/prismaExtension.mdx +1013 -0
- package/docs/config/extensions/puppeteer.mdx +28 -0
- package/docs/config/extensions/pythonExtension.mdx +190 -0
- package/docs/config/extensions/syncEnvVars.mdx +330 -0
- package/docs/context.mdx +235 -0
- package/docs/database-connections.mdx +213 -0
- package/docs/deploy-environment-variables.mdx +466 -0
- package/docs/deployment/atomic-deployment.mdx +470 -0
- package/docs/deployment/dev-branches.mdx +92 -0
- package/docs/deployment/overview.mdx +260 -0
- package/docs/deployment/preview-branches.mdx +227 -0
- package/docs/errors-retrying.mdx +383 -0
- package/docs/github-actions.mdx +260 -0
- package/docs/github-integration.mdx +148 -0
- package/docs/github-repo.mdx +8 -0
- package/docs/help-email.mdx +6 -0
- package/docs/help-slack.mdx +12 -0
- package/docs/hidden-tasks.mdx +56 -0
- package/docs/how-it-works.mdx +454 -0
- package/docs/how-to-reduce-your-spend.mdx +211 -0
- package/docs/idempotency.mdx +542 -0
- package/docs/introduction.mdx +135 -0
- package/docs/limits.mdx +284 -0
- package/docs/logging.mdx +195 -0
- package/docs/machines.mdx +952 -0
- package/docs/manual-setup.mdx +632 -0
- package/docs/mcp-agent-rules.mdx +41 -0
- package/docs/mcp-introduction.mdx +386 -0
- package/docs/mcp-tools.mdx +425 -0
- package/docs/migrating-from-v3.mdx +332 -0
- package/docs/observability/dashboards.mdx +166 -0
- package/docs/observability/query.mdx +614 -0
- package/docs/open-source-contributing.mdx +16 -0
- package/docs/private-networking/aws-console-setup.mdx +304 -0
- package/docs/private-networking/overview.mdx +144 -0
- package/docs/private-networking/troubleshooting.mdx +78 -0
- package/docs/queues.mdx +271 -0
- package/docs/quick-start.mdx +60 -0
- package/docs/realtime/auth.mdx +228 -0
- package/docs/realtime/backend/input-streams.mdx +159 -0
- package/docs/realtime/backend/overview.mdx +45 -0
- package/docs/realtime/backend/streams.mdx +433 -0
- package/docs/realtime/backend/subscribe.mdx +225 -0
- package/docs/realtime/how-it-works.mdx +94 -0
- package/docs/realtime/overview.mdx +63 -0
- package/docs/realtime/react-hooks/overview.mdx +73 -0
- package/docs/realtime/react-hooks/session-stream.mdx +126 -0
- package/docs/realtime/react-hooks/streams.mdx +517 -0
- package/docs/realtime/react-hooks/subscribe.mdx +690 -0
- package/docs/realtime/react-hooks/swr.mdx +87 -0
- package/docs/realtime/react-hooks/triggering.mdx +194 -0
- package/docs/realtime/react-hooks/use-wait-token.mdx +34 -0
- package/docs/realtime/run-object.mdx +197 -0
- package/docs/replaying.mdx +97 -0
- package/docs/reports.mdx +159 -0
- package/docs/request-feature.mdx +6 -0
- package/docs/roadmap.mdx +6 -0
- package/docs/run-tests.mdx +21 -0
- package/docs/run-usage.mdx +113 -0
- package/docs/runs/bulk-actions.mdx +183 -0
- package/docs/runs/heartbeats.mdx +38 -0
- package/docs/runs/list-best-practices.mdx +234 -0
- package/docs/runs/max-duration.mdx +143 -0
- package/docs/runs/metadata.mdx +731 -0
- package/docs/runs/priority.mdx +8 -0
- package/docs/runs.mdx +406 -0
- package/docs/self-hosting/docker.mdx +512 -0
- package/docs/self-hosting/env/supervisor.mdx +78 -0
- package/docs/self-hosting/env/webapp.mdx +305 -0
- package/docs/self-hosting/kubernetes.mdx +725 -0
- package/docs/self-hosting/overview.mdx +145 -0
- package/docs/self-hosting/security.mdx +67 -0
- package/docs/skills.mdx +85 -0
- package/docs/tags.mdx +126 -0
- package/docs/tasks/overview.mdx +695 -0
- package/docs/tasks/scheduled.mdx +479 -0
- package/docs/tasks/schemaTask.mdx +413 -0
- package/docs/tasks/streams.mdx +887 -0
- package/docs/triggering.mdx +1340 -0
- package/docs/troubleshooting-alerts.mdx +607 -0
- package/docs/troubleshooting-debugging-in-vscode.mdx +9 -0
- package/docs/troubleshooting-github-issues.mdx +6 -0
- package/docs/troubleshooting-uptime-status.mdx +7 -0
- package/docs/troubleshooting-zod.mdx +158 -0
- package/docs/troubleshooting.mdx +414 -0
- package/docs/upgrading-packages.mdx +80 -0
- package/docs/vercel-integration.mdx +250 -0
- package/docs/versioning.mdx +58 -0
- package/docs/video-walkthrough.mdx +23 -0
- package/docs/wait-for-token.mdx +540 -0
- package/docs/wait-for.mdx +42 -0
- package/docs/wait-until.mdx +53 -0
- package/docs/wait.mdx +18 -0
- package/docs/webhooks/channels.mdx +154 -0
- package/docs/webhooks/connect.mdx +91 -0
- package/docs/webhooks/deliveries.mdx +99 -0
- package/docs/webhooks/filters.mdx +146 -0
- package/docs/webhooks/human-in-the-loop.mdx +158 -0
- package/docs/webhooks/linear.mdx +186 -0
- package/docs/webhooks/overview.mdx +115 -0
- package/docs/webhooks/session-routing.mdx +141 -0
- package/docs/webhooks/slack.mdx +393 -0
- package/docs/webhooks/sources.mdx +250 -0
- package/docs/webhooks/waiters.mdx +190 -0
- package/docs/writing-tasks-introduction.mdx +34 -0
- package/package.json +143 -42
- package/skills/trigger-authoring-chat-agent/SKILL.md +308 -0
- package/skills/trigger-authoring-tasks/SKILL.md +254 -0
- package/skills/trigger-chat-agent-advanced/SKILL.md +403 -0
- package/skills/trigger-cost-savings/SKILL.md +116 -0
- package/skills/trigger-realtime-and-frontend/SKILL.md +276 -0
- package/dist/commonjs/apiClient.d.ts +0 -727
- package/dist/commonjs/apiClient.js +0 -692
- package/dist/commonjs/apiClient.js.map +0 -1
- package/dist/commonjs/concurrencyLimit.d.ts +0 -10
- package/dist/commonjs/concurrencyLimit.js +0 -17
- package/dist/commonjs/concurrencyLimit.js.map +0 -1
- package/dist/commonjs/errors.d.ts +0 -66
- package/dist/commonjs/errors.js +0 -109
- package/dist/commonjs/errors.js.map +0 -1
- package/dist/commonjs/httpEndpoint.d.ts +0 -87
- package/dist/commonjs/httpEndpoint.js +0 -130
- package/dist/commonjs/httpEndpoint.js.map +0 -1
- package/dist/commonjs/index.d.ts +0 -23
- package/dist/commonjs/index.js +0 -55
- package/dist/commonjs/index.js.map +0 -1
- package/dist/commonjs/integrations.d.ts +0 -11
- package/dist/commonjs/integrations.js.map +0 -1
- package/dist/commonjs/io.d.ts +0 -441
- package/dist/commonjs/io.js +0 -1165
- package/dist/commonjs/io.js.map +0 -1
- package/dist/commonjs/ioWithIntegrations.d.ts +0 -4
- package/dist/commonjs/ioWithIntegrations.js +0 -32
- package/dist/commonjs/ioWithIntegrations.js.map +0 -1
- package/dist/commonjs/job.d.ts +0 -96
- package/dist/commonjs/job.js +0 -210
- package/dist/commonjs/job.js.map +0 -1
- package/dist/commonjs/retry.d.ts +0 -20
- package/dist/commonjs/retry.js +0 -22
- package/dist/commonjs/retry.js.map +0 -1
- package/dist/commonjs/runLocalStorage.d.ts +0 -8
- package/dist/commonjs/runLocalStorage.js +0 -6
- package/dist/commonjs/runLocalStorage.js.map +0 -1
- package/dist/commonjs/security.d.ts +0 -18
- package/dist/commonjs/security.js +0 -41
- package/dist/commonjs/security.js.map +0 -1
- package/dist/commonjs/status.d.ts +0 -19
- package/dist/commonjs/status.js +0 -38
- package/dist/commonjs/status.js.map +0 -1
- package/dist/commonjs/store/keyValueStore.d.ts +0 -17
- package/dist/commonjs/store/keyValueStore.js +0 -138
- package/dist/commonjs/store/keyValueStore.js.map +0 -1
- package/dist/commonjs/store/keyValueStoreClient.d.ts +0 -19
- package/dist/commonjs/store/keyValueStoreClient.js +0 -65
- package/dist/commonjs/store/keyValueStoreClient.js.map +0 -1
- package/dist/commonjs/triggerClient.d.ts +0 -290
- package/dist/commonjs/triggerClient.js +0 -1366
- package/dist/commonjs/triggerClient.js.map +0 -1
- package/dist/commonjs/triggers/dynamic.d.ts +0 -56
- package/dist/commonjs/triggers/dynamic.js +0 -97
- package/dist/commonjs/triggers/dynamic.js.map +0 -1
- package/dist/commonjs/triggers/eventTrigger.d.ts +0 -58
- package/dist/commonjs/triggers/eventTrigger.js +0 -69
- package/dist/commonjs/triggers/eventTrigger.js.map +0 -1
- package/dist/commonjs/triggers/externalSource.d.ts +0 -148
- package/dist/commonjs/triggers/externalSource.js +0 -106
- package/dist/commonjs/triggers/externalSource.js.map +0 -1
- package/dist/commonjs/triggers/invokeTrigger.d.ts +0 -39
- package/dist/commonjs/triggers/invokeTrigger.js +0 -58
- package/dist/commonjs/triggers/invokeTrigger.js.map +0 -1
- package/dist/commonjs/triggers/notifications.d.ts +0 -111
- package/dist/commonjs/triggers/notifications.js +0 -101
- package/dist/commonjs/triggers/notifications.js.map +0 -1
- package/dist/commonjs/triggers/scheduled.d.ts +0 -145
- package/dist/commonjs/triggers/scheduled.js +0 -208
- package/dist/commonjs/triggers/scheduled.js.map +0 -1
- package/dist/commonjs/triggers/webhook.d.ts +0 -143
- package/dist/commonjs/triggers/webhook.js +0 -133
- package/dist/commonjs/triggers/webhook.js.map +0 -1
- package/dist/commonjs/typed-emitter.d.ts +0 -37
- package/dist/commonjs/typed-emitter.js +0 -3
- package/dist/commonjs/typed-emitter.js.map +0 -1
- package/dist/commonjs/types.d.ts +0 -204
- package/dist/commonjs/types.js +0 -23
- package/dist/commonjs/types.js.map +0 -1
- package/dist/commonjs/utils/formatSchemaErrors.d.ts +0 -3
- package/dist/commonjs/utils/formatSchemaErrors.js +0 -10
- package/dist/commonjs/utils/formatSchemaErrors.js.map +0 -1
- package/dist/commonjs/utils/typedAsyncLocalStorage.d.ts +0 -6
- package/dist/commonjs/utils/typedAsyncLocalStorage.js +0 -18
- package/dist/commonjs/utils/typedAsyncLocalStorage.js.map +0 -1
- package/dist/commonjs/utils.d.ts +0 -1
- package/dist/commonjs/utils.js +0 -11
- package/dist/commonjs/utils.js.map +0 -1
- package/dist/esm/apiClient.d.ts +0 -727
- package/dist/esm/apiClient.js +0 -687
- package/dist/esm/apiClient.js.map +0 -1
- package/dist/esm/concurrencyLimit.d.ts +0 -10
- package/dist/esm/concurrencyLimit.js +0 -13
- package/dist/esm/concurrencyLimit.js.map +0 -1
- package/dist/esm/errors.d.ts +0 -66
- package/dist/esm/errors.js +0 -95
- package/dist/esm/errors.js.map +0 -1
- package/dist/esm/httpEndpoint.d.ts +0 -87
- package/dist/esm/httpEndpoint.js +0 -125
- package/dist/esm/httpEndpoint.js.map +0 -1
- package/dist/esm/index.d.ts +0 -23
- package/dist/esm/index.js +0 -35
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/integrations.d.ts +0 -11
- package/dist/esm/integrations.js +0 -2
- package/dist/esm/integrations.js.map +0 -1
- package/dist/esm/io.d.ts +0 -441
- package/dist/esm/io.js +0 -1159
- package/dist/esm/io.js.map +0 -1
- package/dist/esm/ioWithIntegrations.d.ts +0 -4
- package/dist/esm/ioWithIntegrations.js +0 -29
- package/dist/esm/ioWithIntegrations.js.map +0 -1
- package/dist/esm/job.d.ts +0 -96
- package/dist/esm/job.js +0 -206
- package/dist/esm/job.js.map +0 -1
- package/dist/esm/retry.d.ts +0 -20
- package/dist/esm/retry.js +0 -19
- package/dist/esm/retry.js.map +0 -1
- package/dist/esm/runLocalStorage.d.ts +0 -8
- package/dist/esm/runLocalStorage.js +0 -3
- package/dist/esm/runLocalStorage.js.map +0 -1
- package/dist/esm/security.d.ts +0 -18
- package/dist/esm/security.js +0 -34
- package/dist/esm/security.js.map +0 -1
- package/dist/esm/status.d.ts +0 -19
- package/dist/esm/status.js +0 -34
- package/dist/esm/status.js.map +0 -1
- package/dist/esm/store/keyValueStore.d.ts +0 -17
- package/dist/esm/store/keyValueStore.js +0 -134
- package/dist/esm/store/keyValueStore.js.map +0 -1
- package/dist/esm/store/keyValueStoreClient.d.ts +0 -19
- package/dist/esm/store/keyValueStoreClient.js +0 -61
- package/dist/esm/store/keyValueStoreClient.js.map +0 -1
- package/dist/esm/triggerClient.d.ts +0 -288
- package/dist/esm/triggerClient.js +0 -1359
- package/dist/esm/triggerClient.js.map +0 -1
- package/dist/esm/triggers/dynamic.d.ts +0 -56
- package/dist/esm/triggers/dynamic.js +0 -93
- package/dist/esm/triggers/dynamic.js.map +0 -1
- package/dist/esm/triggers/eventTrigger.d.ts +0 -58
- package/dist/esm/triggers/eventTrigger.js +0 -64
- package/dist/esm/triggers/eventTrigger.js.map +0 -1
- package/dist/esm/triggers/externalSource.d.ts +0 -148
- package/dist/esm/triggers/externalSource.js +0 -100
- package/dist/esm/triggers/externalSource.js.map +0 -1
- package/dist/esm/triggers/invokeTrigger.d.ts +0 -39
- package/dist/esm/triggers/invokeTrigger.js +0 -53
- package/dist/esm/triggers/invokeTrigger.js.map +0 -1
- package/dist/esm/triggers/notifications.d.ts +0 -111
- package/dist/esm/triggers/notifications.js +0 -94
- package/dist/esm/triggers/notifications.js.map +0 -1
- package/dist/esm/triggers/scheduled.d.ts +0 -145
- package/dist/esm/triggers/scheduled.js +0 -197
- package/dist/esm/triggers/scheduled.js.map +0 -1
- package/dist/esm/triggers/webhook.d.ts +0 -143
- package/dist/esm/triggers/webhook.js +0 -128
- package/dist/esm/triggers/webhook.js.map +0 -1
- package/dist/esm/typed-emitter.d.ts +0 -37
- package/dist/esm/typed-emitter.js +0 -2
- package/dist/esm/typed-emitter.js.map +0 -1
- package/dist/esm/types.d.ts +0 -204
- package/dist/esm/types.js +0 -19
- package/dist/esm/types.js.map +0 -1
- package/dist/esm/utils/formatSchemaErrors.d.ts +0 -3
- package/dist/esm/utils/formatSchemaErrors.js +0 -7
- package/dist/esm/utils/formatSchemaErrors.js.map +0 -1
- package/dist/esm/utils/typedAsyncLocalStorage.d.ts +0 -6
- package/dist/esm/utils/typedAsyncLocalStorage.js +0 -14
- package/dist/esm/utils/typedAsyncLocalStorage.js.map +0 -1
- package/dist/esm/utils.d.ts +0 -1
- package/dist/esm/utils.js +0 -8
- package/dist/esm/utils.js.map +0 -1
|
@@ -0,0 +1,511 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Upgrade Guide: prerelease → Sessions-as-run-manager"
|
|
3
|
+
sidebarTitle: "Sessions Upgrade Guide"
|
|
4
|
+
description: "Migrating chat.agent code from the prerelease API to the Sessions-as-run-manager release."
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
This guide is for customers who tried `chat.agent` during the prerelease period.
|
|
8
|
+
The public surface of `chat.agent({...})`, `useTriggerChatTransport`,
|
|
9
|
+
`AgentChat`, `chat.defer`, and `chat.history` is largely
|
|
10
|
+
unchanged — but the transport's auth callbacks and the server-side helpers
|
|
11
|
+
that feed them were reshaped, so most prerelease apps need a small wiring
|
|
12
|
+
update.
|
|
13
|
+
|
|
14
|
+
## TL;DR
|
|
15
|
+
|
|
16
|
+
<CodeGroup>
|
|
17
|
+
|
|
18
|
+
```ts before.ts
|
|
19
|
+
// Single accessToken callback, dispatches on purpose
|
|
20
|
+
accessToken: async ({ chatId, purpose }) => {
|
|
21
|
+
if (purpose === "trigger") {
|
|
22
|
+
return chat.createAccessToken<typeof myChat>("my-chat");
|
|
23
|
+
}
|
|
24
|
+
// purpose === "preload" — same call, same trigger token
|
|
25
|
+
return chat.createAccessToken<typeof myChat>("my-chat");
|
|
26
|
+
};
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
```ts after.ts
|
|
30
|
+
// Two callbacks: pure refresh + server action that creates the session
|
|
31
|
+
accessToken: ({ chatId }) => mintChatAccessToken(chatId),
|
|
32
|
+
startSession: ({ chatId, clientData }) =>
|
|
33
|
+
startChatSession({ chatId, clientData }),
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
</CodeGroup>
|
|
37
|
+
|
|
38
|
+
What changed:
|
|
39
|
+
|
|
40
|
+
- `accessToken` is now a **pure session-PAT mint** — called only on 401/403
|
|
41
|
+
to refresh. It must return a token scoped to the session, not a
|
|
42
|
+
`trigger:tasks` JWT.
|
|
43
|
+
- `startSession` is a **new callback** that wraps a server action calling
|
|
44
|
+
`chat.createStartSessionAction(taskId)`. The transport invokes it on
|
|
45
|
+
`transport.preload(chatId)` and lazily on the first `sendMessage` for
|
|
46
|
+
any chatId without a cached PAT.
|
|
47
|
+
- `ChatSession` persistable state drops `runId` — store only
|
|
48
|
+
`{publicAccessToken, lastEventId?}`.
|
|
49
|
+
- Per-call options on `transport.preload(chatId, ...)` are gone. Trigger
|
|
50
|
+
config (machine, idleTimeoutInSeconds, tags, queue, maxAttempts) lives
|
|
51
|
+
server-side in `chat.createStartSessionAction(taskId, options)`.
|
|
52
|
+
|
|
53
|
+
<Note>
|
|
54
|
+
The architectural shift is that `chat.agent` no longer rolls its own
|
|
55
|
+
per-run streams. It runs on top of a durable **Session** row that owns
|
|
56
|
+
its current run, persists across run lifecycles, and orchestrates
|
|
57
|
+
upgrades server-side. The customer-facing surface is similar; the wire
|
|
58
|
+
path beneath it changed completely.
|
|
59
|
+
</Note>
|
|
60
|
+
|
|
61
|
+
## Step 1: Replace your access-token server action with two server actions
|
|
62
|
+
|
|
63
|
+
The old pattern was a single helper that minted a trigger token:
|
|
64
|
+
|
|
65
|
+
```ts app/actions.ts (before)
|
|
66
|
+
"use server";
|
|
67
|
+
|
|
68
|
+
import { chat } from "@trigger.dev/sdk/ai";
|
|
69
|
+
import type { myChat } from "@/trigger/chat";
|
|
70
|
+
|
|
71
|
+
export const getChatToken = () =>
|
|
72
|
+
chat.createAccessToken<typeof myChat>("my-chat");
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Replace with two helpers — one for session creation, one for PAT refresh:
|
|
76
|
+
|
|
77
|
+
```ts app/actions.ts (after)
|
|
78
|
+
"use server";
|
|
79
|
+
|
|
80
|
+
import { auth } from "@trigger.dev/sdk";
|
|
81
|
+
import { chat } from "@trigger.dev/sdk/ai";
|
|
82
|
+
|
|
83
|
+
// Server-side wrapper for session creation. Idempotent on (env, chatId).
|
|
84
|
+
// The customer's server is the only entry point that creates Session rows;
|
|
85
|
+
// the browser never holds a `trigger:tasks` JWT.
|
|
86
|
+
export const startChatSession = chat.createStartSessionAction("my-chat");
|
|
87
|
+
|
|
88
|
+
// Pure session-PAT mint for the transport's 401/403 retry path.
|
|
89
|
+
export async function mintChatAccessToken(chatId: string) {
|
|
90
|
+
return auth.createPublicToken({
|
|
91
|
+
scopes: {
|
|
92
|
+
read: { sessions: chatId },
|
|
93
|
+
write: { sessions: chatId },
|
|
94
|
+
},
|
|
95
|
+
expirationTime: "1h",
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
`chat.createStartSessionAction(taskId)` returns a server action that:
|
|
101
|
+
|
|
102
|
+
1. Creates the Session row for `chatId` (idempotent on the
|
|
103
|
+
`(env, externalId)` unique pair).
|
|
104
|
+
2. Triggers the agent task's first run with
|
|
105
|
+
`basePayload: {messages: [], trigger: "preload"}` defaults plus any
|
|
106
|
+
overrides you pass.
|
|
107
|
+
3. Returns `{sessionId, runId, publicAccessToken}` to the browser.
|
|
108
|
+
|
|
109
|
+
## Step 2: Update the transport wiring
|
|
110
|
+
|
|
111
|
+
The transport now takes two callbacks instead of one:
|
|
112
|
+
|
|
113
|
+
```tsx app/components/chat.tsx (after)
|
|
114
|
+
"use client";
|
|
115
|
+
|
|
116
|
+
import { useChat } from "@ai-sdk/react";
|
|
117
|
+
import { useTriggerChatTransport } from "@trigger.dev/sdk/chat/react";
|
|
118
|
+
import type { myChat } from "@/trigger/chat";
|
|
119
|
+
import { mintChatAccessToken, startChatSession } from "@/app/actions";
|
|
120
|
+
|
|
121
|
+
export function Chat() {
|
|
122
|
+
const transport = useTriggerChatTransport<typeof myChat>({
|
|
123
|
+
task: "my-chat",
|
|
124
|
+
accessToken: ({ chatId }) => mintChatAccessToken(chatId),
|
|
125
|
+
startSession: ({ chatId, clientData }) =>
|
|
126
|
+
startChatSession({ chatId, clientData }),
|
|
127
|
+
});
|
|
128
|
+
|
|
129
|
+
const { messages, sendMessage, status } = useChat({ transport });
|
|
130
|
+
// ...
|
|
131
|
+
}
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
The transport calls them in two distinct flows:
|
|
135
|
+
|
|
136
|
+
| Trigger | Callback fired |
|
|
137
|
+
|---|---|
|
|
138
|
+
| `transport.preload(chatId)` | `startSession` |
|
|
139
|
+
| First `sendMessage` for a chatId with no cached PAT | `startSession` (auto) |
|
|
140
|
+
| Any 401/403 from `.in/append`, `.out` SSE, or `end-and-continue` | `accessToken` |
|
|
141
|
+
| Page hydrates with `sessions: { [chatId]: ... }` | Neither (uses hydrated PAT) |
|
|
142
|
+
|
|
143
|
+
`startSession` is deduped via an in-flight promise — concurrent
|
|
144
|
+
`preload` + `sendMessage` calls converge to one server action invocation.
|
|
145
|
+
|
|
146
|
+
## Step 3: Drop transport-level trigger config
|
|
147
|
+
|
|
148
|
+
The prerelease transport accepted `triggerConfig`, `triggerOptions`, and
|
|
149
|
+
per-call options on `preload`. All of that moved server-side:
|
|
150
|
+
|
|
151
|
+
```ts before
|
|
152
|
+
const transport = useTriggerChatTransport({
|
|
153
|
+
task: "my-chat",
|
|
154
|
+
accessToken: getChatToken,
|
|
155
|
+
triggerConfig: { basePayload: { /* ... */ } },
|
|
156
|
+
triggerOptions: { tags: [...], machine: "small-1x", maxAttempts: 3 },
|
|
157
|
+
});
|
|
158
|
+
|
|
159
|
+
transport.preload(chatId, { idleTimeoutInSeconds: 60, metadata: { ... } });
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
```ts after
|
|
163
|
+
// Trigger config now lives in chat.createStartSessionAction
|
|
164
|
+
export const startChatSession = chat.createStartSessionAction("my-chat", {
|
|
165
|
+
triggerConfig: {
|
|
166
|
+
machine: "small-1x",
|
|
167
|
+
maxAttempts: 3,
|
|
168
|
+
tags: ["my-tag"],
|
|
169
|
+
idleTimeoutInSeconds: 60,
|
|
170
|
+
},
|
|
171
|
+
});
|
|
172
|
+
|
|
173
|
+
// Browser side
|
|
174
|
+
const transport = useTriggerChatTransport<typeof myChat>({
|
|
175
|
+
task: "my-chat",
|
|
176
|
+
accessToken: ({ chatId }) => mintChatAccessToken(chatId),
|
|
177
|
+
startSession: ({ chatId, clientData }) =>
|
|
178
|
+
startChatSession({ chatId, clientData }),
|
|
179
|
+
});
|
|
180
|
+
|
|
181
|
+
transport.preload(chatId); // no second arg
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
For metadata that varies per chat, use `clientData` on the transport (see
|
|
185
|
+
the next step) — it's typed and threaded through `startSession` automatically.
|
|
186
|
+
|
|
187
|
+
## Step 4: Use `clientData` for typed payload metadata
|
|
188
|
+
|
|
189
|
+
If your agent uses `withClientData({schema})`, the transport's `clientData`
|
|
190
|
+
option is now the canonical place to set it. The same value:
|
|
191
|
+
|
|
192
|
+
- Is passed to your `startSession` callback as `params.clientData`, where
|
|
193
|
+
you forward it into `chat.createStartSessionAction`'s
|
|
194
|
+
`triggerConfig.basePayload.metadata`. The agent's first run sees it in
|
|
195
|
+
`payload.metadata` (visible to `onPreload` / `onChatStart`).
|
|
196
|
+
- Merges into per-turn `metadata` on every `.in/append` chunk
|
|
197
|
+
(visible to `onTurnStart` / inside `run` via `turn.clientData`).
|
|
198
|
+
|
|
199
|
+
```tsx
|
|
200
|
+
const transport = useTriggerChatTransport<typeof myChat>({
|
|
201
|
+
task: "my-chat",
|
|
202
|
+
accessToken: ({ chatId }) => mintChatAccessToken(chatId),
|
|
203
|
+
startSession: ({ chatId, clientData }) =>
|
|
204
|
+
startChatSession({ chatId, clientData }),
|
|
205
|
+
clientData: {
|
|
206
|
+
userId: currentUser.id,
|
|
207
|
+
plan: currentUser.plan,
|
|
208
|
+
},
|
|
209
|
+
});
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
The `clientData` value is live-updated when the option changes (the hook
|
|
213
|
+
calls `setClientData` under the hood), so dynamic values work without
|
|
214
|
+
reconstructing the transport.
|
|
215
|
+
|
|
216
|
+
<Tip>
|
|
217
|
+
Server-side authorization can still override or augment the
|
|
218
|
+
browser-claimed `clientData` inside `startSession` — never trust the
|
|
219
|
+
browser's identity claim. A typical pattern: the server action looks up
|
|
220
|
+
the user from the request session, then merges the trusted server fields
|
|
221
|
+
on top of `params.clientData`.
|
|
222
|
+
</Tip>
|
|
223
|
+
|
|
224
|
+
## Step 5: Update your `ChatSession` persistence
|
|
225
|
+
|
|
226
|
+
If you persist session state across page loads, drop the `runId` field:
|
|
227
|
+
|
|
228
|
+
```ts before
|
|
229
|
+
type ChatSession = {
|
|
230
|
+
runId: string;
|
|
231
|
+
publicAccessToken: string;
|
|
232
|
+
lastEventId?: string;
|
|
233
|
+
};
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
```ts after
|
|
237
|
+
type ChatSession = {
|
|
238
|
+
publicAccessToken: string;
|
|
239
|
+
lastEventId?: string;
|
|
240
|
+
};
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
If your DB has a `runId` column, you can drop it (the transport doesn't
|
|
244
|
+
read it) or keep it for telemetry. The current run ID lives on the
|
|
245
|
+
Session row server-side now.
|
|
246
|
+
|
|
247
|
+
Hydration on page reload is unchanged:
|
|
248
|
+
|
|
249
|
+
```tsx
|
|
250
|
+
const transport = useTriggerChatTransport<typeof myChat>({
|
|
251
|
+
// ...
|
|
252
|
+
sessions: persistedSession
|
|
253
|
+
? { [chatId]: persistedSession }
|
|
254
|
+
: {},
|
|
255
|
+
});
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
## `chat.requestUpgrade()`: same call, faster handoff
|
|
259
|
+
|
|
260
|
+
Calling `chat.requestUpgrade()` inside `onTurnStart` /
|
|
261
|
+
`onValidateMessages` still ends the current run so the next message starts
|
|
262
|
+
on the latest version. What changed is the mechanism:
|
|
263
|
+
|
|
264
|
+
- **Before:** the agent emitted a `trigger:upgrade-required` chunk on
|
|
265
|
+
`.out`; the transport consumed it browser-side and triggered a new run.
|
|
266
|
+
- **After:** the agent calls `endAndContinueSession` server-to-server;
|
|
267
|
+
the webapp triggers a new run and atomically swaps `Session.currentRunId`
|
|
268
|
+
via optimistic locking. The browser's existing SSE subscription keeps
|
|
269
|
+
receiving chunks across the swap — no transport-side bookkeeping.
|
|
270
|
+
|
|
271
|
+
The new run is recorded in a `SessionRun` audit row with
|
|
272
|
+
`reason: "upgrade"` for dashboard provenance.
|
|
273
|
+
|
|
274
|
+
## Hitting raw URLs
|
|
275
|
+
|
|
276
|
+
If your code talks to the realtime API directly instead of going through
|
|
277
|
+
the SDK, the URL shapes changed:
|
|
278
|
+
|
|
279
|
+
| Before | After |
|
|
280
|
+
|---|---|
|
|
281
|
+
| `GET /realtime/v1/streams/{runId}/chat` | `GET /realtime/v1/sessions/{chatId}/out` |
|
|
282
|
+
| `POST /realtime/v1/streams/{runId}/{target}/chat-messages/append` | `POST /realtime/v1/sessions/{chatId}/in/append` (body: `{kind: "message", payload}`) |
|
|
283
|
+
| `POST /realtime/v1/streams/{runId}/{target}/chat-stop/append` | `POST /realtime/v1/sessions/{chatId}/in/append` (body: `{kind: "stop"}`) |
|
|
284
|
+
|
|
285
|
+
The session-scoped PAT
|
|
286
|
+
(`read:sessions:{chatId} + write:sessions:{chatId}`) authorizes both the
|
|
287
|
+
externalId form (`/sessions/my-chat-id/...`) and the friendlyId form
|
|
288
|
+
(`/sessions/session_abc.../...`). The transport always uses the
|
|
289
|
+
externalId form; the friendlyId form is available for dashboard tooling
|
|
290
|
+
and direct API consumers.
|
|
291
|
+
|
|
292
|
+
## What didn't change
|
|
293
|
+
|
|
294
|
+
- `chat.agent({...})` definition — `id`, `idleTimeoutInSeconds`,
|
|
295
|
+
`clientDataSchema`, `actionSchema`, `hydrateMessages`, `onPreload`,
|
|
296
|
+
`onChatStart`, `onValidateMessages`, `onTurnStart`, `onTurnComplete`,
|
|
297
|
+
`onChatSuspend`, `run`. All callbacks have the same signature and
|
|
298
|
+
fire at the same lifecycle points.
|
|
299
|
+
- `onAction` is still defined the same way, but its semantics changed
|
|
300
|
+
in the [May 6 prerelease](/ai-chat/changelog) — actions are no longer
|
|
301
|
+
turns. To answer after an action's edit, return `chat.turn()`; returning
|
|
302
|
+
a `StreamTextResult` is no longer supported.
|
|
303
|
+
- `chat.customAgent({...})` and the `chat.createSession(payload, ...)`
|
|
304
|
+
helper for building a session loop manually inside a custom agent.
|
|
305
|
+
- `chat.defer` (deferred work) and `chat.history` (imperative history
|
|
306
|
+
mutations from inside `onAction`).
|
|
307
|
+
- `AgentChat` (server-side chat client) — `agent`, `id`, `clientData`,
|
|
308
|
+
`session`, `onTriggered`, `onTurnComplete`, `sendMessage`, `text()`.
|
|
309
|
+
- `useTriggerChatTransport` React semantics (created once, kept in a
|
|
310
|
+
ref, callbacks updated under the hood).
|
|
311
|
+
- Multi-tab coordination (`multiTab: true`),
|
|
312
|
+
[pending messages / steering](/ai-chat/pending-messages),
|
|
313
|
+
[background injection](/ai-chat/background-injection),
|
|
314
|
+
[compaction](/ai-chat/compaction).
|
|
315
|
+
- Per-turn `metadata` flowing through
|
|
316
|
+
`sendMessage({ text }, { metadata })` to `turn.metadata` server-side.
|
|
317
|
+
|
|
318
|
+
## Verifying the migration
|
|
319
|
+
|
|
320
|
+
After updating, the smoke check is the same as before: send a message,
|
|
321
|
+
confirm the assistant streams a response, reload mid-stream, confirm
|
|
322
|
+
resume.
|
|
323
|
+
|
|
324
|
+
A few new things worth verifying once you've cut over:
|
|
325
|
+
|
|
326
|
+
- **Eager preload.** Click the button (or call `transport.preload(id)`
|
|
327
|
+
programmatically) — your `startSession` callback should fire and a
|
|
328
|
+
Session row + first run should be created before you send a message.
|
|
329
|
+
- **Idle-timeout continuation.** Wait past the agent's
|
|
330
|
+
`idleTimeoutInSeconds` so the run exits, then send another message —
|
|
331
|
+
the transport's `.in/append` should boot a new run on the same
|
|
332
|
+
Session, with a `SessionRun` row of `reason: "continuation"`.
|
|
333
|
+
- **PAT refresh.** Force a stale PAT in your DB (corrupt the signature)
|
|
334
|
+
and reload — the first request should 401, your `accessToken`
|
|
335
|
+
callback should fire, and the retry should succeed.
|
|
336
|
+
|
|
337
|
+
If any of those misfire, check that:
|
|
338
|
+
|
|
339
|
+
- Your `accessToken` callback returns a token minted via
|
|
340
|
+
`auth.createPublicToken({ scopes: { read: { sessions: chatId }, write: { sessions: chatId } } })`, **not**
|
|
341
|
+
`chat.createAccessToken` or `auth.createTriggerPublicToken`. The
|
|
342
|
+
transport rejects trigger tokens now.
|
|
343
|
+
- Your `startSession` callback returns
|
|
344
|
+
`{publicAccessToken: string}` — the result of
|
|
345
|
+
`chat.createStartSessionAction(taskId)({chatId, ...})` already has
|
|
346
|
+
this shape.
|
|
347
|
+
- You haven't left a stale `getStartToken` option on the transport;
|
|
348
|
+
it's not part of `TriggerChatTransportOptions` anymore.
|
|
349
|
+
|
|
350
|
+
## v4.5 wire format change
|
|
351
|
+
|
|
352
|
+
A second migration lands on top of the Sessions release. v4.5 removes the full-history wire payload — clients now ship at most one new `UIMessage` per `.in/append`, and the agent rebuilds prior history from a durable JSON snapshot in object storage plus a replay of the `session.out` tail.
|
|
353
|
+
|
|
354
|
+
If you use the built-in `TriggerChatTransport` / `AgentChat` and don't reach into the wire shape directly, **most apps need no changes** — the change is below the customer-facing surface. Customers who built custom transports, hit `/realtime/v1/sessions/{id}/in/append` directly, or rely on specific behaviors of `hydrateMessages` / `onChatStart` should read this section.
|
|
355
|
+
|
|
356
|
+
### Why the change
|
|
357
|
+
|
|
358
|
+
Long chats with heavy tool results were hitting the realtime API's 512 KiB body cap on `/in/append` once the accumulated `UIMessage[]` history (which the wire shipped in full on every send) crossed the limit. The 413 surfaced as a CORS error in browsers and stalled chats around turn 10–30 with tool use.
|
|
359
|
+
|
|
360
|
+
The wire is now **delta-only**: each `.in/append` carries at most one new `UIMessage`. The agent rebuilds prior history at run boot. The 512 KiB ceiling stops being pressure — typical payloads are a few KB regardless of chat length.
|
|
361
|
+
|
|
362
|
+
### Object-store configuration
|
|
363
|
+
|
|
364
|
+
Snapshot read/write uses Trigger.dev's existing object-store infrastructure — the same presigned-URL routes used for large payloads. Set the standard `OBJECT_STORE_*` env vars on your webapp deployment if you haven't already; MinIO and S3-compatible stores work via `OBJECT_STORE_DEFAULT_PROTOCOL`.
|
|
365
|
+
|
|
366
|
+
| Env var | Purpose |
|
|
367
|
+
|---|---|
|
|
368
|
+
| `OBJECT_STORE_BASE_URL` | Endpoint URL (S3, MinIO, R2, etc.) |
|
|
369
|
+
| `OBJECT_STORE_ACCESS_KEY_ID` | Access key |
|
|
370
|
+
| `OBJECT_STORE_SECRET_ACCESS_KEY` | Secret key |
|
|
371
|
+
| `OBJECT_STORE_DEFAULT_PROTOCOL` | `s3` (default), `minio`, etc. |
|
|
372
|
+
|
|
373
|
+
Snapshots are written under `packets/{projectRef}/{envSlug}/sessions/{sessionId}/snapshot.json`. Each snapshot is small (typically tens of KB) and overwritten every turn — no append-only growth.
|
|
374
|
+
|
|
375
|
+
<Warning>
|
|
376
|
+
**No object store + no `hydrateMessages` = conversations don't survive run boundaries.** With neither piece of state, a continuation boots empty and the agent can't reconstruct prior turns. Either configure an object store or register `hydrateMessages`. The runtime logs a warning at agent registration time when both are missing.
|
|
377
|
+
</Warning>
|
|
378
|
+
|
|
379
|
+
### Custom transports
|
|
380
|
+
|
|
381
|
+
If you've built your own transport (Slack bot, CLI, native app) against the [Client Protocol](/ai-chat/client-protocol), the `ChatTaskWirePayload` shape changed:
|
|
382
|
+
|
|
383
|
+
```ts before
|
|
384
|
+
type ChatTaskWirePayload = {
|
|
385
|
+
messages: UIMessage[]; // full history
|
|
386
|
+
chatId: string;
|
|
387
|
+
trigger: "submit-message" | "regenerate-message" | "preload" | "close" | "action";
|
|
388
|
+
// ...
|
|
389
|
+
};
|
|
390
|
+
```
|
|
391
|
+
|
|
392
|
+
```ts after
|
|
393
|
+
type ChatTaskWirePayload = {
|
|
394
|
+
message?: UIMessage; // singular, optional
|
|
395
|
+
headStartMessages?: UIMessage[]; // chat.headStart only, "handover-prepare"
|
|
396
|
+
chatId: string;
|
|
397
|
+
trigger:
|
|
398
|
+
| "submit-message"
|
|
399
|
+
| "regenerate-message"
|
|
400
|
+
| "preload"
|
|
401
|
+
| "close"
|
|
402
|
+
| "action"
|
|
403
|
+
| "handover-prepare";
|
|
404
|
+
// ...
|
|
405
|
+
};
|
|
406
|
+
```
|
|
407
|
+
|
|
408
|
+
What to send per trigger:
|
|
409
|
+
|
|
410
|
+
| Trigger | What to put in the payload |
|
|
411
|
+
|---|---|
|
|
412
|
+
| `submit-message` | The new user message (or a tool-approval-responded assistant message) in `message` |
|
|
413
|
+
| `regenerate-message` | No `message` — the agent trims its own tail |
|
|
414
|
+
| `preload` / `close` / `action` | No `message` |
|
|
415
|
+
| `handover-prepare` (head-start only) | Full prior history in `headStartMessages` (route handler — not on `/in/append`) |
|
|
416
|
+
|
|
417
|
+
The full wire breakdown is in the rewritten [Client Protocol](/ai-chat/client-protocol).
|
|
418
|
+
|
|
419
|
+
### `hydrateMessages` consumers
|
|
420
|
+
|
|
421
|
+
The hook signature is unchanged. Two behavior tightenings worth knowing:
|
|
422
|
+
|
|
423
|
+
1. **`incomingMessages` is now consistently 0-or-1-length.** Previously some triggers (`regenerate-message`, continuation) shipped full history; now all triggers ship at most one. If you assumed `incomingMessages` could contain multiple messages and acted on them as a batch, the loop now runs zero or one times. Patterns like the one below work the same — they just iterate fewer messages:
|
|
424
|
+
|
|
425
|
+
```ts
|
|
426
|
+
hydrateMessages: async ({ incomingMessages }) => {
|
|
427
|
+
for (const msg of incomingMessages) { // 0-or-1 iterations
|
|
428
|
+
for (const r of chat.history.extractNewToolResults(msg)) {
|
|
429
|
+
await auditLog.record({ id: r.toolCallId, output: r.output });
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
return await db.getMessages(chatId);
|
|
433
|
+
}
|
|
434
|
+
```
|
|
435
|
+
|
|
436
|
+
2. **Registering `hydrateMessages` short-circuits snapshot+replay.** The runtime trusts your hook to be the source of truth, so it doesn't read or write the JSON snapshot or replay `session.out`. Zero object-store traffic. Trade-off: you own persistence end-to-end.
|
|
437
|
+
|
|
438
|
+
### `onChatStart` is now once-per-chat
|
|
439
|
+
|
|
440
|
+
`onChatStart` no longer fires on continuation runs (post-`endRun`, post-waitpoint-timeout, post-`chat.requestUpgrade`, post-cancel, post-crash) or on OOM-retry attempts. It fires **exactly once per chat**, on the very first user message of the chat's lifetime. The `continuation` and `previousRunId` fields on `ChatStartEvent` are now `@deprecated` (always `false` / `undefined` when the hook fires).
|
|
441
|
+
|
|
442
|
+
This makes once-per-chat setup code (create the Chat DB row, mint chat-scoped resources) safe to write without continuation gates. Drop any `if (continuation) return;` checks from `onChatStart`:
|
|
443
|
+
|
|
444
|
+
```ts before
|
|
445
|
+
onChatStart: async ({ continuation, chatId, clientData }) => {
|
|
446
|
+
if (continuation) return; // ❌ no longer needed — fires only on first message ever
|
|
447
|
+
await db.chat.create({ /* ... */ });
|
|
448
|
+
}
|
|
449
|
+
```
|
|
450
|
+
|
|
451
|
+
```ts after
|
|
452
|
+
onChatStart: async ({ chatId, clientData }) => {
|
|
453
|
+
await db.chat.create({ /* ... */ }); // ✅ guaranteed first-message-of-chat
|
|
454
|
+
}
|
|
455
|
+
```
|
|
456
|
+
|
|
457
|
+
If you need per-turn setup that **does** run on continuations, move it to [`onTurnStart`](/ai-chat/lifecycle-hooks#onturnstart) — that hook still fires on every turn, including the first turn of a continuation run.
|
|
458
|
+
|
|
459
|
+
### Move `chat.local` init from `onChatStart` to `onBoot`
|
|
460
|
+
|
|
461
|
+
Because `onChatStart` no longer fires on continuation runs, **`chat.local`** state initialized there will be missing when a continuation run starts — `run()` then crashes with `"chat.local can only be modified after initialization"`. The fix is to move per-process initialization to the new [`onBoot`](/ai-chat/lifecycle-hooks#onboot) hook, which fires once per worker boot (initial, preloaded, AND continuation):
|
|
462
|
+
|
|
463
|
+
```ts before
|
|
464
|
+
const userContext = chat.local<{ name: string; plan: string }>({ id: "userContext" });
|
|
465
|
+
|
|
466
|
+
onChatStart: async ({ clientData }) => {
|
|
467
|
+
const user = await db.user.findUnique({ where: { id: clientData.userId } });
|
|
468
|
+
userContext.init({ name: user.name, plan: user.plan }); // ❌ never runs on continuation
|
|
469
|
+
}
|
|
470
|
+
```
|
|
471
|
+
|
|
472
|
+
```ts after
|
|
473
|
+
const userContext = chat.local<{ name: string; plan: string }>({ id: "userContext" });
|
|
474
|
+
|
|
475
|
+
onBoot: async ({ clientData }) => {
|
|
476
|
+
const user = await db.user.findUnique({ where: { id: clientData.userId } });
|
|
477
|
+
userContext.init({ name: user.name, plan: user.plan }); // ✅ runs on every fresh worker
|
|
478
|
+
}
|
|
479
|
+
```
|
|
480
|
+
|
|
481
|
+
Anything else that's per-process (DB connection pools, sandbox handles, in-memory caches) belongs in `onBoot` for the same reason. Branch on `continuation` inside `onBoot` if you need to re-load state from your DB on takeover.
|
|
482
|
+
|
|
483
|
+
### Client-side `setMessages` doesn't round-trip
|
|
484
|
+
|
|
485
|
+
The new wire makes one thing explicit that was implicit before: **mutating `useChat()`'s messages on the client doesn't change the agent's history.** Full-history mutations were silently overwritten by the wire's accumulator before this release; now they aren't even shipped.
|
|
486
|
+
|
|
487
|
+
For history compaction, summarization, or branch-swap, mutate the agent's accumulator inside `onTurnStart` using [`chat.setMessages()`](/ai-chat/backend) or [`chat.history.set()`](/ai-chat/backend#chat-history). The client's `useChat` will reconcile against the next `session.out` payload.
|
|
488
|
+
|
|
489
|
+
### Verifying the v4.5 migration
|
|
490
|
+
|
|
491
|
+
After updating, the smoke check is the same as for v4.4:
|
|
492
|
+
|
|
493
|
+
- Send a message, confirm the assistant streams a response.
|
|
494
|
+
- Reload mid-stream, confirm resume.
|
|
495
|
+
- Send 30+ turns with tool calls — `.in/append` body sizes stay under ~5 KB the entire time. (Pre-change baseline: payloads grew past 512 KB around turn 10-30.)
|
|
496
|
+
- Idle out a run, send another message — the new run reads the snapshot, replays the tail, and continues seamlessly.
|
|
497
|
+
|
|
498
|
+
If continuations boot empty:
|
|
499
|
+
|
|
500
|
+
- Confirm `OBJECT_STORE_*` env vars are set on the webapp.
|
|
501
|
+
- Confirm the bucket key `packets/{projectRef}/{envSlug}/sessions/{sessionId}/snapshot.json` exists after a successful turn.
|
|
502
|
+
- Or — register `hydrateMessages` and let your DB be the source of truth.
|
|
503
|
+
|
|
504
|
+
## Reference
|
|
505
|
+
|
|
506
|
+
- [TriggerChatTransport options](/ai-chat/reference#triggerchattransport-options)
|
|
507
|
+
- [`chat.createStartSessionAction`](/ai-chat/reference)
|
|
508
|
+
- [Backend setup](/ai-chat/backend)
|
|
509
|
+
- [Frontend setup](/ai-chat/frontend)
|
|
510
|
+
- [Client Protocol](/ai-chat/client-protocol) — wire format reference
|
|
511
|
+
- [Persistence and replay](/ai-chat/patterns/persistence-and-replay) — snapshot model end-to-end
|
package/docs/apikeys.mdx
ADDED
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "API keys"
|
|
3
|
+
description: "Authenticate backend requests with environment-specific API keys."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
**API keys authenticate backend requests to a specific Trigger.dev project and environment.** Each environment can have multiple keys, with optional scopes and restrictions attached.
|
|
7
|
+
|
|
8
|
+
<Warning>
|
|
9
|
+
API keys grant access to your Trigger.dev environment. Store them in a secret manager or backend
|
|
10
|
+
environment variable, never commit them to source control, and never expose them in frontend code.
|
|
11
|
+
</Warning>
|
|
12
|
+
|
|
13
|
+
## Create an API key
|
|
14
|
+
|
|
15
|
+
Create a separate named key for each service or integration that accesses Trigger.dev.
|
|
16
|
+
|
|
17
|
+
API keys belong to one environment. A Development key cannot access Production, and a Production key cannot access Staging. Every team member has their own Development environment, so create local-development keys in your own environment.
|
|
18
|
+
|
|
19
|
+
<Note>
|
|
20
|
+
Creating and revoking keys requires permission to manage API keys for the selected environment.
|
|
21
|
+
The dashboard disables these actions when your role does not have permission.
|
|
22
|
+
</Note>
|
|
23
|
+
|
|
24
|
+
<Steps titleSize="h3">
|
|
25
|
+
<Step title="Open the API keys page">
|
|
26
|
+
Select the project and environment the integration needs to access, then open [**API keys**](https://cloud.trigger.dev/_/apikeys).
|
|
27
|
+
</Step>
|
|
28
|
+
<Step title="Create the key">
|
|
29
|
+
Click **New API key**, enter a descriptive name, and optionally set an expiration date. Names can
|
|
30
|
+
contain up to 64 characters.
|
|
31
|
+
</Step>
|
|
32
|
+
<Step title="Choose its access">
|
|
33
|
+
Select the narrowest access preset that supports the integration. For task-aware presets, choose
|
|
34
|
+
all tasks or up to 10 task identifiers.
|
|
35
|
+
</Step>
|
|
36
|
+
<Step title="Copy and store the secret">
|
|
37
|
+
Copy the key into your secret manager or backend environment. Trigger.dev shows the complete
|
|
38
|
+
value only once.
|
|
39
|
+
</Step>
|
|
40
|
+
</Steps>
|
|
41
|
+
|
|
42
|
+
## Configure the SDK
|
|
43
|
+
|
|
44
|
+
Set `TRIGGER_SECRET_KEY` in your backend environment. The SDK reads it automatically for operations such as triggering tasks and retrieving runs.
|
|
45
|
+
|
|
46
|
+
```bash .env
|
|
47
|
+
TRIGGER_SECRET_KEY="tr_prod_sk_…"
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
To configure the SDK in code, pass the key to `configure`:
|
|
51
|
+
|
|
52
|
+
```ts Your backend code
|
|
53
|
+
import { configure, tasks } from "@trigger.dev/sdk";
|
|
54
|
+
import type { sendEmail } from "./trigger/send-email";
|
|
55
|
+
|
|
56
|
+
configure({
|
|
57
|
+
secretKey: process.env.TRIGGER_SECRET_KEY,
|
|
58
|
+
previewBranch: "my-branch", // Only needed for preview branches
|
|
59
|
+
baseURL: "https://mytrigger.example.com", // Optional
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
await tasks.trigger<typeof sendEmail>("send-email", {
|
|
63
|
+
to: "user@example.com",
|
|
64
|
+
});
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
If you self-host Trigger.dev, set `TRIGGER_API_URL` or pass `baseURL` to `configure`:
|
|
68
|
+
|
|
69
|
+
```bash .env
|
|
70
|
+
TRIGGER_SECRET_KEY="tr_prod_sk_…"
|
|
71
|
+
TRIGGER_API_URL="https://trigger.example.com"
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
The default API URL is `https://api.trigger.dev`.
|
|
75
|
+
|
|
76
|
+
## Access presets
|
|
77
|
+
|
|
78
|
+
Access presets define what a key can do. On the Free and Hobby plans only the **No restrictions** preset is available. All other presets require the Pro or Enterprise plan.
|
|
79
|
+
|
|
80
|
+
| Preset | Access |
|
|
81
|
+
| --- | --- |
|
|
82
|
+
| **Trigger only** | Trigger runs and batches for all or selected tasks. Trigger responses include scoped public access tokens for the runs and batches they create |
|
|
83
|
+
| **Task operator** | Trigger all or selected tasks and inspect or operate on their runs |
|
|
84
|
+
| **Observer** | Read runs, tasks, batches, logs, traces, queues, errors, and webhooks |
|
|
85
|
+
| **Operator** | Observe and operate on runs, queues, errors, and webhooks, and trigger tasks |
|
|
86
|
+
| **Webhooks only** | Read and write [webhooks](/webhooks/overview). Replaying deliveries that trigger tasks and creating webhook waiters require task or waitpoint scopes |
|
|
87
|
+
| **Waitpoints only** | Create, list, and retrieve [waitpoint tokens](/wait-for-token). No task or run access |
|
|
88
|
+
| **Deploy only** | Deploy versions, sync environment variables, and manage Preview branches |
|
|
89
|
+
| **Variables only** | Read and write environment variables in this environment |
|
|
90
|
+
| **No restrictions** | Full access to the environment |
|
|
91
|
+
|
|
92
|
+
**Trigger only** and **Task operator** can be restricted to selected tasks, up to 10 tasks per key. Task restrictions use task identifiers, such as `send-email`. A request involving multiple tasks — such as a batch trigger — succeeds only when the key can access every task in the request, so a task-restricted key can batch-trigger only its selected tasks.
|
|
93
|
+
|
|
94
|
+
## Deploy with an API key
|
|
95
|
+
|
|
96
|
+
Set a key in `TRIGGER_ACCESS_TOKEN` to authenticate `trigger deploy` without logging in.
|
|
97
|
+
|
|
98
|
+
<CodeGroup>
|
|
99
|
+
|
|
100
|
+
```bash npm
|
|
101
|
+
TRIGGER_ACCESS_TOKEN="tr_prod_sk_…" npx trigger.dev@latest deploy --env prod
|
|
102
|
+
```
|
|
103
|
+
</CodeGroup>
|
|
104
|
+
|
|
105
|
+
The key must belong to the target environment. Use a Production key with `--env prod`, a Staging key with `--env staging`, or a key from the Preview environment with `--env preview`. If you leave out `--env`, the CLI deploys to the key's environment, and a `--env` that doesn't match the key is an error. A Preview deployment key can create and archive Preview branches and sync their environment variables.
|
|
106
|
+
|
|
107
|
+
<Note>
|
|
108
|
+
The deploy CLI reads environment API keys from `TRIGGER_ACCESS_TOKEN`, not
|
|
109
|
+
`TRIGGER_SECRET_KEY`. Setting an API key in `TRIGGER_ACCESS_TOKEN` takes precedence over a saved
|
|
110
|
+
CLI login.
|
|
111
|
+
</Note>
|
|
112
|
+
|
|
113
|
+
## Expire and revoke keys
|
|
114
|
+
|
|
115
|
+
Set an expiration date when creating a key if the integration only needs temporary access. An expired key stops authenticating automatically.
|
|
116
|
+
|
|
117
|
+
Revoking a key takes effect immediately and cannot be reversed. Requests using the key fail, and the key can no longer create public access tokens. Create a replacement before revoking a key when you need to rotate it without interrupting the integration.
|
|
118
|
+
|
|
119
|
+
Removing a team member does not revoke keys they created. Review and revoke their keys separately when their access changes.
|
|
120
|
+
|
|
121
|
+
## Create public access tokens
|
|
122
|
+
|
|
123
|
+
API keys can be used to create scoped [Public Access Tokens](/realtime/auth) using `auth.createPublicToken()`.
|
|
124
|
+
|
|
125
|
+
Use `@trigger.dev/sdk` version 4.5.8 or later to create public tokens with environment API keys. Public tokens have the following restrictions:
|
|
126
|
+
|
|
127
|
+
- The token must request at least one scope.
|
|
128
|
+
- Its scopes cannot exceed the key's access.
|
|
129
|
+
- Its expiration cannot exceed 30 days (the default is 15 minutes).
|
|
130
|
+
|
|
131
|
+
<Note>
|
|
132
|
+
Revoking or expiring an API key does not revoke tokens it already created. Those tokens remain valid until their own expiration.
|
|
133
|
+
</Note>
|
|
134
|
+
|
|
135
|
+
## Target Preview and Development branches
|
|
136
|
+
|
|
137
|
+
Preview and named Development branches use their parent environment's keys. Select the branch by setting `TRIGGER_PREVIEW_BRANCH` alongside the environment key:
|
|
138
|
+
|
|
139
|
+
```bash .env
|
|
140
|
+
TRIGGER_SECRET_KEY="tr_preview_sk_…"
|
|
141
|
+
TRIGGER_PREVIEW_BRANCH="feature/new-checkout"
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
The SDK sends the branch automatically. When calling the API directly, send the same value in the `x-trigger-branch` header.
|
|
145
|
+
|
|
146
|
+
## Self-hosting
|
|
147
|
+
|
|
148
|
+
Self-hosted installations support multiple keys with **No restrictions**. The restricted access presets are available in Trigger.dev Cloud.
|
|
149
|
+
|
|
150
|
+
Keep your instance and SDK current before creating keys. Calling a public-token API with a key on a server that does not support server-minted tokens returns an upgrade error. Upgrade the instance before creating public tokens with an environment API key.
|
|
151
|
+
|
|
152
|
+
## Security recommendations
|
|
153
|
+
|
|
154
|
+
- Create one key per service or integration instead of sharing keys.
|
|
155
|
+
- Choose the narrowest access preset and task selection that supports the integration.
|
|
156
|
+
- Store keys in a secret manager and inject them as backend environment variables.
|
|
157
|
+
- Set expiration dates for temporary integrations and deployment credentials.
|
|
158
|
+
- Revoke keys when an integration or team member no longer needs access.
|
|
159
|
+
- Never put an API key in frontend code. Use scoped [Public Access Tokens](/realtime/auth) for client-side access.
|
|
160
|
+
|
|
161
|
+
## Next steps
|
|
162
|
+
|
|
163
|
+
<CardGroup cols={2}>
|
|
164
|
+
<Card title="Trigger tasks" icon="bolt" href="/triggering">
|
|
165
|
+
Trigger tasks from your backend with an environment API key.
|
|
166
|
+
</Card>
|
|
167
|
+
<Card title="Realtime authentication" icon="key" href="/realtime/auth">
|
|
168
|
+
Create scoped public tokens for frontend and realtime access.
|
|
169
|
+
</Card>
|
|
170
|
+
</CardGroup>
|