@trigger.dev/core 4.4.6 → 4.5.0-rc.0
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/dist/commonjs/v3/apiClient/errors.d.ts +5 -0
- package/dist/commonjs/v3/apiClient/errors.js +12 -0
- package/dist/commonjs/v3/apiClient/errors.js.map +1 -1
- package/dist/commonjs/v3/apiClient/index.d.ts +208 -1
- package/dist/commonjs/v3/apiClient/index.js +204 -0
- package/dist/commonjs/v3/apiClient/index.js.map +1 -1
- package/dist/commonjs/v3/apiClient/runStream.d.ts +44 -0
- package/dist/commonjs/v3/apiClient/runStream.js +156 -22
- package/dist/commonjs/v3/apiClient/runStream.js.map +1 -1
- package/dist/commonjs/v3/apiClient/runStream.test.d.ts +1 -0
- package/dist/commonjs/v3/apiClient/runStream.test.js +511 -0
- package/dist/commonjs/v3/apiClient/runStream.test.js.map +1 -0
- package/dist/commonjs/v3/apiClient/types.d.ts +2 -0
- package/dist/commonjs/v3/auth/environment.d.ts +62 -0
- package/dist/commonjs/v3/auth/environment.js +20 -0
- package/dist/commonjs/v3/auth/environment.js.map +1 -0
- package/dist/commonjs/v3/errors.d.ts +7 -0
- package/dist/commonjs/v3/errors.js +22 -2
- package/dist/commonjs/v3/errors.js.map +1 -1
- package/dist/commonjs/v3/index.d.ts +2 -1
- package/dist/commonjs/v3/index.js +1 -0
- package/dist/commonjs/v3/index.js.map +1 -1
- package/dist/commonjs/v3/inputStreams/index.d.ts +3 -0
- package/dist/commonjs/v3/inputStreams/index.js +9 -0
- package/dist/commonjs/v3/inputStreams/index.js.map +1 -1
- package/dist/commonjs/v3/inputStreams/manager.d.ts +14 -0
- package/dist/commonjs/v3/inputStreams/manager.js +116 -4
- package/dist/commonjs/v3/inputStreams/manager.js.map +1 -1
- package/dist/commonjs/v3/inputStreams/noopManager.d.ts +3 -0
- package/dist/commonjs/v3/inputStreams/noopManager.js +3 -0
- package/dist/commonjs/v3/inputStreams/noopManager.js.map +1 -1
- package/dist/commonjs/v3/inputStreams/types.d.ts +19 -0
- package/dist/commonjs/v3/locals/manager.js.map +1 -1
- package/dist/commonjs/v3/locals/types.d.ts +18 -7
- package/dist/commonjs/v3/realtime-streams-api.d.ts +3 -0
- package/dist/commonjs/v3/realtime-streams-api.js +8 -1
- package/dist/commonjs/v3/realtime-streams-api.js.map +1 -1
- package/dist/commonjs/v3/realtimeStreams/index.d.ts +3 -0
- package/dist/commonjs/v3/realtimeStreams/index.js +11 -1
- package/dist/commonjs/v3/realtimeStreams/index.js.map +1 -1
- package/dist/commonjs/v3/realtimeStreams/manager.d.ts +11 -0
- package/dist/commonjs/v3/realtimeStreams/manager.js +58 -2
- package/dist/commonjs/v3/realtimeStreams/manager.js.map +1 -1
- package/dist/commonjs/v3/realtimeStreams/manager.test.d.ts +1 -0
- package/dist/commonjs/v3/realtimeStreams/manager.test.js +92 -0
- package/dist/commonjs/v3/realtimeStreams/manager.test.js.map +1 -0
- package/dist/commonjs/v3/realtimeStreams/noopManager.js +1 -1
- package/dist/commonjs/v3/realtimeStreams/noopManager.js.map +1 -1
- package/dist/commonjs/v3/realtimeStreams/sessionStreamInstance.d.ts +41 -0
- package/dist/commonjs/v3/realtimeStreams/sessionStreamInstance.js +77 -0
- package/dist/commonjs/v3/realtimeStreams/sessionStreamInstance.js.map +1 -0
- package/dist/commonjs/v3/realtimeStreams/sessionStreamOneshot.d.ts +45 -0
- package/dist/commonjs/v3/realtimeStreams/sessionStreamOneshot.js +83 -0
- package/dist/commonjs/v3/realtimeStreams/sessionStreamOneshot.js.map +1 -0
- package/dist/commonjs/v3/realtimeStreams/streamInstance.d.ts +14 -2
- package/dist/commonjs/v3/realtimeStreams/streamInstance.js +5 -2
- package/dist/commonjs/v3/realtimeStreams/streamInstance.js.map +1 -1
- package/dist/commonjs/v3/realtimeStreams/streamsWriterV1.d.ts +2 -2
- package/dist/commonjs/v3/realtimeStreams/streamsWriterV1.js +2 -1
- package/dist/commonjs/v3/realtimeStreams/streamsWriterV1.js.map +1 -1
- package/dist/commonjs/v3/realtimeStreams/streamsWriterV2.d.ts +23 -2
- package/dist/commonjs/v3/realtimeStreams/streamsWriterV2.js +57 -4
- package/dist/commonjs/v3/realtimeStreams/streamsWriterV2.js.map +1 -1
- package/dist/commonjs/v3/realtimeStreams/streamsWriterV2.test.d.ts +1 -0
- package/dist/commonjs/v3/realtimeStreams/streamsWriterV2.test.js +68 -0
- package/dist/commonjs/v3/realtimeStreams/streamsWriterV2.test.js.map +1 -0
- package/dist/commonjs/v3/realtimeStreams/types.d.ts +42 -3
- package/dist/commonjs/v3/resource-catalog/catalog.d.ts +4 -1
- package/dist/commonjs/v3/resource-catalog/index.d.ts +4 -1
- package/dist/commonjs/v3/resource-catalog/index.js +9 -0
- package/dist/commonjs/v3/resource-catalog/index.js.map +1 -1
- package/dist/commonjs/v3/resource-catalog/noopResourceCatalog.d.ts +4 -1
- package/dist/commonjs/v3/resource-catalog/noopResourceCatalog.js +9 -0
- package/dist/commonjs/v3/resource-catalog/noopResourceCatalog.js.map +1 -1
- package/dist/commonjs/v3/resource-catalog/standardResourceCatalog.d.ts +6 -1
- package/dist/commonjs/v3/resource-catalog/standardResourceCatalog.js +52 -4
- package/dist/commonjs/v3/resource-catalog/standardResourceCatalog.js.map +1 -1
- package/dist/commonjs/v3/runEngineWorker/supervisor/http.d.ts +2 -0
- package/dist/commonjs/v3/runEngineWorker/supervisor/schemas.d.ts +14 -0
- package/dist/commonjs/v3/runEngineWorker/workload/http.d.ts +1 -0
- package/dist/commonjs/v3/runEngineWorker/workload/schemas.d.ts +7 -0
- package/dist/commonjs/v3/schemas/api.d.ts +333 -0
- package/dist/commonjs/v3/schemas/api.js +82 -9
- package/dist/commonjs/v3/schemas/api.js.map +1 -1
- package/dist/commonjs/v3/schemas/build.d.ts +240 -0
- package/dist/commonjs/v3/schemas/build.js +3 -0
- package/dist/commonjs/v3/schemas/build.js.map +1 -1
- package/dist/commonjs/v3/schemas/checkpoints.d.ts +7 -0
- package/dist/commonjs/v3/schemas/idempotencyKey.test.d.ts +1 -0
- package/dist/commonjs/v3/schemas/idempotencyKey.test.js +143 -0
- package/dist/commonjs/v3/schemas/idempotencyKey.test.js.map +1 -0
- package/dist/commonjs/v3/schemas/messages.d.ts +160 -0
- package/dist/commonjs/v3/schemas/resources.d.ts +40 -0
- package/dist/commonjs/v3/schemas/resources.js +5 -1
- package/dist/commonjs/v3/schemas/resources.js.map +1 -1
- package/dist/commonjs/v3/schemas/runEngine.d.ts +12 -0
- package/dist/commonjs/v3/schemas/runEngine.js +3 -1
- package/dist/commonjs/v3/schemas/runEngine.js.map +1 -1
- package/dist/commonjs/v3/schemas/schemas.d.ts +59 -0
- package/dist/commonjs/v3/schemas/schemas.js +21 -1
- package/dist/commonjs/v3/schemas/schemas.js.map +1 -1
- package/dist/commonjs/v3/semanticInternalAttributes.d.ts +1 -0
- package/dist/commonjs/v3/semanticInternalAttributes.js +1 -0
- package/dist/commonjs/v3/semanticInternalAttributes.js.map +1 -1
- package/dist/commonjs/v3/session-streams-api.d.ts +5 -0
- package/dist/commonjs/v3/session-streams-api.js +25 -0
- package/dist/commonjs/v3/session-streams-api.js.map +1 -0
- package/dist/commonjs/v3/sessionStreams/chatSnapshot.d.ts +53 -0
- package/dist/commonjs/v3/sessionStreams/chatSnapshot.js +43 -0
- package/dist/commonjs/v3/sessionStreams/chatSnapshot.js.map +1 -0
- package/dist/commonjs/v3/sessionStreams/index.d.ts +24 -0
- package/dist/commonjs/v3/sessionStreams/index.js +64 -0
- package/dist/commonjs/v3/sessionStreams/index.js.map +1 -0
- package/dist/commonjs/v3/sessionStreams/manager.d.ts +54 -0
- package/dist/commonjs/v3/sessionStreams/manager.js +511 -0
- package/dist/commonjs/v3/sessionStreams/manager.js.map +1 -0
- package/dist/commonjs/v3/sessionStreams/manager.test.d.ts +1 -0
- package/dist/commonjs/v3/sessionStreams/manager.test.js +123 -0
- package/dist/commonjs/v3/sessionStreams/manager.test.js.map +1 -0
- package/dist/commonjs/v3/sessionStreams/noopManager.d.ts +20 -0
- package/dist/commonjs/v3/sessionStreams/noopManager.js +35 -0
- package/dist/commonjs/v3/sessionStreams/noopManager.js.map +1 -0
- package/dist/commonjs/v3/sessionStreams/types.d.ts +65 -0
- package/dist/commonjs/v3/sessionStreams/types.js +7 -0
- package/dist/commonjs/v3/sessionStreams/types.js.map +1 -0
- package/dist/commonjs/v3/sessionStreams/wireProtocol.d.ts +65 -0
- package/dist/commonjs/v3/sessionStreams/wireProtocol.js +72 -0
- package/dist/commonjs/v3/sessionStreams/wireProtocol.js.map +1 -0
- package/dist/commonjs/v3/taskContext/index.d.ts +4 -0
- package/dist/commonjs/v3/taskContext/index.js +18 -0
- package/dist/commonjs/v3/taskContext/index.js.map +1 -1
- package/dist/commonjs/v3/taskContext/index.test.d.ts +1 -0
- package/dist/commonjs/v3/taskContext/index.test.js +73 -0
- package/dist/commonjs/v3/taskContext/index.test.js.map +1 -0
- package/dist/commonjs/v3/taskContext/otelProcessors.js +11 -0
- package/dist/commonjs/v3/taskContext/otelProcessors.js.map +1 -1
- package/dist/commonjs/v3/test/index.d.ts +5 -0
- package/dist/commonjs/v3/test/index.js +14 -0
- package/dist/commonjs/v3/test/index.js.map +1 -0
- package/dist/commonjs/v3/test/mock-task-context.d.ts +123 -0
- package/dist/commonjs/v3/test/mock-task-context.js +193 -0
- package/dist/commonjs/v3/test/mock-task-context.js.map +1 -0
- package/dist/commonjs/v3/test/test-input-stream-manager.d.ts +46 -0
- package/dist/commonjs/v3/test/test-input-stream-manager.js +192 -0
- package/dist/commonjs/v3/test/test-input-stream-manager.js.map +1 -0
- package/dist/commonjs/v3/test/test-realtime-streams-manager.d.ts +40 -0
- package/dist/commonjs/v3/test/test-realtime-streams-manager.js +140 -0
- package/dist/commonjs/v3/test/test-realtime-streams-manager.js.map +1 -0
- package/dist/commonjs/v3/test/test-run-metadata-manager.d.ts +31 -0
- package/dist/commonjs/v3/test/test-run-metadata-manager.js +86 -0
- package/dist/commonjs/v3/test/test-run-metadata-manager.js.map +1 -0
- package/dist/commonjs/v3/test/test-session-stream-manager.d.ts +60 -0
- package/dist/commonjs/v3/test/test-session-stream-manager.js +247 -0
- package/dist/commonjs/v3/test/test-session-stream-manager.js.map +1 -0
- package/dist/commonjs/v3/types/tasks.d.ts +35 -0
- package/dist/commonjs/v3/utils/gitBranch.d.ts +2 -0
- package/dist/commonjs/v3/utils/gitBranch.js +46 -0
- package/dist/commonjs/v3/utils/gitBranch.js.map +1 -0
- package/dist/commonjs/v3/utils/globals.d.ts +2 -0
- package/dist/commonjs/v3/utils/globals.js.map +1 -1
- package/dist/commonjs/v3/utils/reconnectBackoff.d.ts +20 -0
- package/dist/commonjs/v3/utils/reconnectBackoff.js +29 -0
- package/dist/commonjs/v3/utils/reconnectBackoff.js.map +1 -0
- package/dist/commonjs/v3/utils/reconnectBackoff.test.d.ts +1 -0
- package/dist/commonjs/v3/utils/reconnectBackoff.test.js +76 -0
- package/dist/commonjs/v3/utils/reconnectBackoff.test.js.map +1 -0
- package/dist/commonjs/v3/workers/index.d.ts +1 -0
- package/dist/commonjs/v3/workers/index.js +3 -1
- package/dist/commonjs/v3/workers/index.js.map +1 -1
- package/dist/commonjs/v3/workers/taskExecutor.js +1 -0
- package/dist/commonjs/v3/workers/taskExecutor.js.map +1 -1
- package/dist/commonjs/version.js +1 -1
- package/dist/esm/v3/apiClient/errors.d.ts +5 -0
- package/dist/esm/v3/apiClient/errors.js +11 -0
- package/dist/esm/v3/apiClient/errors.js.map +1 -1
- package/dist/esm/v3/apiClient/index.d.ts +208 -1
- package/dist/esm/v3/apiClient/index.js +205 -1
- package/dist/esm/v3/apiClient/index.js.map +1 -1
- package/dist/esm/v3/apiClient/runStream.d.ts +44 -0
- package/dist/esm/v3/apiClient/runStream.js +157 -23
- package/dist/esm/v3/apiClient/runStream.js.map +1 -1
- package/dist/esm/v3/apiClient/runStream.test.d.ts +1 -0
- package/dist/esm/v3/apiClient/runStream.test.js +509 -0
- package/dist/esm/v3/apiClient/runStream.test.js.map +1 -0
- package/dist/esm/v3/apiClient/types.d.ts +2 -0
- package/dist/esm/v3/auth/environment.d.ts +62 -0
- package/dist/esm/v3/auth/environment.js +19 -0
- package/dist/esm/v3/auth/environment.js.map +1 -0
- package/dist/esm/v3/errors.d.ts +7 -0
- package/dist/esm/v3/errors.js +19 -1
- package/dist/esm/v3/errors.js.map +1 -1
- package/dist/esm/v3/index.d.ts +2 -1
- package/dist/esm/v3/index.js +1 -0
- package/dist/esm/v3/index.js.map +1 -1
- package/dist/esm/v3/inputStreams/index.d.ts +3 -0
- package/dist/esm/v3/inputStreams/index.js +9 -0
- package/dist/esm/v3/inputStreams/index.js.map +1 -1
- package/dist/esm/v3/inputStreams/manager.d.ts +14 -0
- package/dist/esm/v3/inputStreams/manager.js +116 -4
- package/dist/esm/v3/inputStreams/manager.js.map +1 -1
- package/dist/esm/v3/inputStreams/noopManager.d.ts +3 -0
- package/dist/esm/v3/inputStreams/noopManager.js +3 -0
- package/dist/esm/v3/inputStreams/noopManager.js.map +1 -1
- package/dist/esm/v3/inputStreams/types.d.ts +19 -0
- package/dist/esm/v3/locals/manager.js.map +1 -1
- package/dist/esm/v3/locals/types.d.ts +18 -7
- package/dist/esm/v3/realtime-streams-api.d.ts +3 -0
- package/dist/esm/v3/realtime-streams-api.js +2 -0
- package/dist/esm/v3/realtime-streams-api.js.map +1 -1
- package/dist/esm/v3/realtimeStreams/index.d.ts +3 -0
- package/dist/esm/v3/realtimeStreams/index.js +5 -0
- package/dist/esm/v3/realtimeStreams/index.js.map +1 -1
- package/dist/esm/v3/realtimeStreams/manager.d.ts +11 -0
- package/dist/esm/v3/realtimeStreams/manager.js +58 -2
- package/dist/esm/v3/realtimeStreams/manager.js.map +1 -1
- package/dist/esm/v3/realtimeStreams/manager.test.d.ts +1 -0
- package/dist/esm/v3/realtimeStreams/manager.test.js +90 -0
- package/dist/esm/v3/realtimeStreams/manager.test.js.map +1 -0
- package/dist/esm/v3/realtimeStreams/noopManager.js +1 -1
- package/dist/esm/v3/realtimeStreams/noopManager.js.map +1 -1
- package/dist/esm/v3/realtimeStreams/sessionStreamInstance.d.ts +41 -0
- package/dist/esm/v3/realtimeStreams/sessionStreamInstance.js +73 -0
- package/dist/esm/v3/realtimeStreams/sessionStreamInstance.js.map +1 -0
- package/dist/esm/v3/realtimeStreams/sessionStreamOneshot.d.ts +45 -0
- package/dist/esm/v3/realtimeStreams/sessionStreamOneshot.js +77 -0
- package/dist/esm/v3/realtimeStreams/sessionStreamOneshot.js.map +1 -0
- package/dist/esm/v3/realtimeStreams/streamInstance.d.ts +14 -2
- package/dist/esm/v3/realtimeStreams/streamInstance.js +5 -2
- package/dist/esm/v3/realtimeStreams/streamInstance.js.map +1 -1
- package/dist/esm/v3/realtimeStreams/streamsWriterV1.d.ts +2 -2
- package/dist/esm/v3/realtimeStreams/streamsWriterV1.js +2 -1
- package/dist/esm/v3/realtimeStreams/streamsWriterV1.js.map +1 -1
- package/dist/esm/v3/realtimeStreams/streamsWriterV2.d.ts +23 -2
- package/dist/esm/v3/realtimeStreams/streamsWriterV2.js +56 -4
- package/dist/esm/v3/realtimeStreams/streamsWriterV2.js.map +1 -1
- package/dist/esm/v3/realtimeStreams/streamsWriterV2.test.d.ts +1 -0
- package/dist/esm/v3/realtimeStreams/streamsWriterV2.test.js +66 -0
- package/dist/esm/v3/realtimeStreams/streamsWriterV2.test.js.map +1 -0
- package/dist/esm/v3/realtimeStreams/types.d.ts +42 -3
- package/dist/esm/v3/resource-catalog/catalog.d.ts +4 -1
- package/dist/esm/v3/resource-catalog/index.d.ts +4 -1
- package/dist/esm/v3/resource-catalog/index.js +9 -0
- package/dist/esm/v3/resource-catalog/index.js.map +1 -1
- package/dist/esm/v3/resource-catalog/noopResourceCatalog.d.ts +4 -1
- package/dist/esm/v3/resource-catalog/noopResourceCatalog.js +9 -0
- package/dist/esm/v3/resource-catalog/noopResourceCatalog.js.map +1 -1
- package/dist/esm/v3/resource-catalog/standardResourceCatalog.d.ts +6 -1
- package/dist/esm/v3/resource-catalog/standardResourceCatalog.js +52 -4
- package/dist/esm/v3/resource-catalog/standardResourceCatalog.js.map +1 -1
- package/dist/esm/v3/runEngineWorker/supervisor/http.d.ts +2 -0
- package/dist/esm/v3/runEngineWorker/supervisor/schemas.d.ts +14 -0
- package/dist/esm/v3/runEngineWorker/workload/http.d.ts +1 -0
- package/dist/esm/v3/runEngineWorker/workload/schemas.d.ts +7 -0
- package/dist/esm/v3/schemas/api.d.ts +333 -0
- package/dist/esm/v3/schemas/api.js +80 -7
- package/dist/esm/v3/schemas/api.js.map +1 -1
- package/dist/esm/v3/schemas/build.d.ts +240 -0
- package/dist/esm/v3/schemas/build.js +4 -1
- package/dist/esm/v3/schemas/build.js.map +1 -1
- package/dist/esm/v3/schemas/checkpoints.d.ts +7 -0
- package/dist/esm/v3/schemas/idempotencyKey.test.d.ts +1 -0
- package/dist/esm/v3/schemas/idempotencyKey.test.js +141 -0
- package/dist/esm/v3/schemas/idempotencyKey.test.js.map +1 -0
- package/dist/esm/v3/schemas/messages.d.ts +160 -0
- package/dist/esm/v3/schemas/resources.d.ts +40 -0
- package/dist/esm/v3/schemas/resources.js +4 -0
- package/dist/esm/v3/schemas/resources.js.map +1 -1
- package/dist/esm/v3/schemas/runEngine.d.ts +12 -0
- package/dist/esm/v3/schemas/runEngine.js +2 -0
- package/dist/esm/v3/schemas/runEngine.js.map +1 -1
- package/dist/esm/v3/schemas/schemas.d.ts +59 -0
- package/dist/esm/v3/schemas/schemas.js +20 -0
- package/dist/esm/v3/schemas/schemas.js.map +1 -1
- package/dist/esm/v3/semanticInternalAttributes.d.ts +1 -0
- package/dist/esm/v3/semanticInternalAttributes.js +1 -0
- package/dist/esm/v3/semanticInternalAttributes.js.map +1 -1
- package/dist/esm/v3/session-streams-api.d.ts +5 -0
- package/dist/esm/v3/session-streams-api.js +8 -0
- package/dist/esm/v3/session-streams-api.js.map +1 -0
- package/dist/esm/v3/sessionStreams/chatSnapshot.d.ts +53 -0
- package/dist/esm/v3/sessionStreams/chatSnapshot.js +39 -0
- package/dist/esm/v3/sessionStreams/chatSnapshot.js.map +1 -0
- package/dist/esm/v3/sessionStreams/index.d.ts +24 -0
- package/dist/esm/v3/sessionStreams/index.js +60 -0
- package/dist/esm/v3/sessionStreams/index.js.map +1 -0
- package/dist/esm/v3/sessionStreams/manager.d.ts +54 -0
- package/dist/esm/v3/sessionStreams/manager.js +507 -0
- package/dist/esm/v3/sessionStreams/manager.js.map +1 -0
- package/dist/esm/v3/sessionStreams/manager.test.d.ts +1 -0
- package/dist/esm/v3/sessionStreams/manager.test.js +121 -0
- package/dist/esm/v3/sessionStreams/manager.test.js.map +1 -0
- package/dist/esm/v3/sessionStreams/noopManager.d.ts +20 -0
- package/dist/esm/v3/sessionStreams/noopManager.js +31 -0
- package/dist/esm/v3/sessionStreams/noopManager.js.map +1 -0
- package/dist/esm/v3/sessionStreams/types.d.ts +65 -0
- package/dist/esm/v3/sessionStreams/types.js +8 -0
- package/dist/esm/v3/sessionStreams/types.js.map +1 -0
- package/dist/esm/v3/sessionStreams/wireProtocol.d.ts +65 -0
- package/dist/esm/v3/sessionStreams/wireProtocol.js +66 -0
- package/dist/esm/v3/sessionStreams/wireProtocol.js.map +1 -0
- package/dist/esm/v3/taskContext/index.d.ts +4 -0
- package/dist/esm/v3/taskContext/index.js +18 -0
- package/dist/esm/v3/taskContext/index.js.map +1 -1
- package/dist/esm/v3/taskContext/index.test.d.ts +1 -0
- package/dist/esm/v3/taskContext/index.test.js +71 -0
- package/dist/esm/v3/taskContext/index.test.js.map +1 -0
- package/dist/esm/v3/taskContext/otelProcessors.js +11 -0
- package/dist/esm/v3/taskContext/otelProcessors.js.map +1 -1
- package/dist/esm/v3/test/index.d.ts +5 -0
- package/dist/esm/v3/test/index.js +6 -0
- package/dist/esm/v3/test/index.js.map +1 -0
- package/dist/esm/v3/test/mock-task-context.d.ts +123 -0
- package/dist/esm/v3/test/mock-task-context.js +190 -0
- package/dist/esm/v3/test/mock-task-context.js.map +1 -0
- package/dist/esm/v3/test/test-input-stream-manager.d.ts +46 -0
- package/dist/esm/v3/test/test-input-stream-manager.js +188 -0
- package/dist/esm/v3/test/test-input-stream-manager.js.map +1 -0
- package/dist/esm/v3/test/test-realtime-streams-manager.d.ts +40 -0
- package/dist/esm/v3/test/test-realtime-streams-manager.js +136 -0
- package/dist/esm/v3/test/test-realtime-streams-manager.js.map +1 -0
- package/dist/esm/v3/test/test-run-metadata-manager.d.ts +31 -0
- package/dist/esm/v3/test/test-run-metadata-manager.js +82 -0
- package/dist/esm/v3/test/test-run-metadata-manager.js.map +1 -0
- package/dist/esm/v3/test/test-session-stream-manager.d.ts +60 -0
- package/dist/esm/v3/test/test-session-stream-manager.js +243 -0
- package/dist/esm/v3/test/test-session-stream-manager.js.map +1 -0
- package/dist/esm/v3/types/tasks.d.ts +35 -0
- package/dist/esm/v3/utils/gitBranch.d.ts +2 -0
- package/dist/esm/v3/utils/gitBranch.js +42 -0
- package/dist/esm/v3/utils/gitBranch.js.map +1 -0
- package/dist/esm/v3/utils/globals.d.ts +2 -0
- package/dist/esm/v3/utils/globals.js.map +1 -1
- package/dist/esm/v3/utils/reconnectBackoff.d.ts +20 -0
- package/dist/esm/v3/utils/reconnectBackoff.js +25 -0
- package/dist/esm/v3/utils/reconnectBackoff.js.map +1 -0
- package/dist/esm/v3/utils/reconnectBackoff.test.d.ts +1 -0
- package/dist/esm/v3/utils/reconnectBackoff.test.js +74 -0
- package/dist/esm/v3/utils/reconnectBackoff.test.js.map +1 -0
- package/dist/esm/v3/workers/index.d.ts +1 -0
- package/dist/esm/v3/workers/index.js +1 -0
- package/dist/esm/v3/workers/index.js.map +1 -1
- package/dist/esm/v3/workers/taskExecutor.js +2 -1
- package/dist/esm/v3/workers/taskExecutor.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/package.json +46 -1
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import type { ServerBackgroundWorker, TaskRunContext } from "../schemas/index.js";
|
|
2
|
+
import type { LocalsKey } from "../locals/types.js";
|
|
3
|
+
import type { SessionChannelIO } from "../sessionStreams/types.js";
|
|
4
|
+
/**
|
|
5
|
+
* Shallow-partial overrides applied on top of the default mock
|
|
6
|
+
* `TaskRunContext`. Each sub-object is a partial of its real shape —
|
|
7
|
+
* unset fields get sensible defaults.
|
|
8
|
+
*/
|
|
9
|
+
export type MockTaskRunContextOverrides = {
|
|
10
|
+
task?: Partial<TaskRunContext["task"]>;
|
|
11
|
+
attempt?: Partial<TaskRunContext["attempt"]>;
|
|
12
|
+
run?: Partial<TaskRunContext["run"]>;
|
|
13
|
+
machine?: Partial<TaskRunContext["machine"]>;
|
|
14
|
+
queue?: Partial<TaskRunContext["queue"]>;
|
|
15
|
+
environment?: Partial<TaskRunContext["environment"]>;
|
|
16
|
+
organization?: Partial<TaskRunContext["organization"]>;
|
|
17
|
+
project?: Partial<TaskRunContext["project"]>;
|
|
18
|
+
batch?: TaskRunContext["batch"];
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Options for overriding parts of the mock task context.
|
|
22
|
+
*/
|
|
23
|
+
export type MockTaskContextOptions = {
|
|
24
|
+
/** Overrides applied on top of the default mock `TaskRunContext`. */
|
|
25
|
+
ctx?: MockTaskRunContextOverrides;
|
|
26
|
+
/** Overrides applied on top of the default `ServerBackgroundWorker`. */
|
|
27
|
+
worker?: Partial<ServerBackgroundWorker>;
|
|
28
|
+
/** Whether this is a warm start. */
|
|
29
|
+
isWarmStart?: boolean;
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Drivers passed to the function running inside `runInMockTaskContext`.
|
|
33
|
+
*/
|
|
34
|
+
export type MockTaskContextDrivers = {
|
|
35
|
+
/** Push data into input streams — simulates realtime input from outside the task. */
|
|
36
|
+
inputs: {
|
|
37
|
+
/**
|
|
38
|
+
* Send `data` to the named input stream. Resolves when all `.on()`
|
|
39
|
+
* handlers have run.
|
|
40
|
+
*/
|
|
41
|
+
send(streamId: string, data: unknown): Promise<void>;
|
|
42
|
+
/** Resolve any pending `.once()` waiters with a timeout error. */
|
|
43
|
+
close(streamId: string): void;
|
|
44
|
+
};
|
|
45
|
+
/** Inspect chunks written to output (realtime) streams. */
|
|
46
|
+
outputs: {
|
|
47
|
+
/** All chunks for a given stream, in the order they were written. */
|
|
48
|
+
chunks<T = unknown>(streamId: string): T[];
|
|
49
|
+
/** All chunks across every stream, keyed by stream id. */
|
|
50
|
+
all(): Record<string, unknown[]>;
|
|
51
|
+
/** Clear chunks for one stream, or all streams if no id is provided. */
|
|
52
|
+
clear(streamId?: string): void;
|
|
53
|
+
/**
|
|
54
|
+
* Register a listener fired for every chunk written to any stream.
|
|
55
|
+
* Returns an unsubscribe function.
|
|
56
|
+
*/
|
|
57
|
+
onWrite(listener: (streamId: string, chunk: unknown) => void): () => void;
|
|
58
|
+
};
|
|
59
|
+
/** Read or seed locals for the run. */
|
|
60
|
+
locals: {
|
|
61
|
+
/** Read a local set by either the task or `set()` below. */
|
|
62
|
+
get<T>(key: LocalsKey<T>): T | undefined;
|
|
63
|
+
/**
|
|
64
|
+
* Pre-seed a local before the task runs. Use this for dependency
|
|
65
|
+
* injection — e.g. supply a test database client that the agent's
|
|
66
|
+
* hooks read via `locals.get()` instead of constructing the prod one.
|
|
67
|
+
*/
|
|
68
|
+
set<T>(key: LocalsKey<T>, value: T): void;
|
|
69
|
+
};
|
|
70
|
+
/**
|
|
71
|
+
* Session-scoped channel drivers. The `.in` side is backed by a
|
|
72
|
+
* {@link TestSessionStreamManager} installed as the `sessionStreams`
|
|
73
|
+
* global — so the task's `session.in.on/once/peek/waitWithIdleTimeout`
|
|
74
|
+
* calls receive records sent through this driver.
|
|
75
|
+
*/
|
|
76
|
+
sessions: {
|
|
77
|
+
in: {
|
|
78
|
+
/**
|
|
79
|
+
* Send a record onto `session.in` for the given session. Resolves
|
|
80
|
+
* pending `once()` waiters and fires all `on()` handlers.
|
|
81
|
+
*/
|
|
82
|
+
send(sessionId: string, data: unknown, io?: SessionChannelIO): Promise<void>;
|
|
83
|
+
/** Close pending `once()` waiters with a timeout error. */
|
|
84
|
+
close(sessionId: string, io?: SessionChannelIO): void;
|
|
85
|
+
};
|
|
86
|
+
};
|
|
87
|
+
/** The mock `TaskRunContext` assembled from defaults + user overrides. */
|
|
88
|
+
ctx: TaskRunContext;
|
|
89
|
+
};
|
|
90
|
+
/**
|
|
91
|
+
* Run a function inside a fully mocked task runtime context.
|
|
92
|
+
*
|
|
93
|
+
* Installs in-memory test managers for `locals`, `inputStreams`,
|
|
94
|
+
* `realtimeStreams`, `lifecycleHooks`, and `runtime`, sets a mock
|
|
95
|
+
* `TaskContext`, and tears everything down when the function returns.
|
|
96
|
+
*
|
|
97
|
+
* Inside the function, any code that reads from `locals`, `inputStreams`,
|
|
98
|
+
* `realtimeStreams`, or `taskContext.ctx` will see the mock context —
|
|
99
|
+
* so you can directly invoke the internal `run` function of any task
|
|
100
|
+
* (including `chat.agent`) without hitting the Trigger.dev runtime.
|
|
101
|
+
*
|
|
102
|
+
* @example
|
|
103
|
+
* ```ts
|
|
104
|
+
* import { runInMockTaskContext } from "@trigger.dev/core/v3/test";
|
|
105
|
+
*
|
|
106
|
+
* await runInMockTaskContext(
|
|
107
|
+
* async ({ inputs, outputs, ctx }) => {
|
|
108
|
+
* // Fire an input stream from the "outside"
|
|
109
|
+
* setTimeout(() => {
|
|
110
|
+
* inputs.send("chat-messages", { messages: [], chatId: "c1" });
|
|
111
|
+
* }, 0);
|
|
112
|
+
*
|
|
113
|
+
* // Run task code that reads from inputStreams.once(...)
|
|
114
|
+
* await myTask.fns.run(payload, { ctx, signal: new AbortController().signal });
|
|
115
|
+
*
|
|
116
|
+
* // Inspect chunks written to the output stream
|
|
117
|
+
* expect(outputs.chunks("chat")).toContainEqual({ type: "text-delta", delta: "hi" });
|
|
118
|
+
* },
|
|
119
|
+
* { ctx: { run: { id: "run_abc" } } }
|
|
120
|
+
* );
|
|
121
|
+
* ```
|
|
122
|
+
*/
|
|
123
|
+
export declare function runInMockTaskContext<T>(fn: (drivers: MockTaskContextDrivers) => T | Promise<T>, options?: MockTaskContextOptions): Promise<T>;
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
import { inputStreams } from "../input-streams-api.js";
|
|
2
|
+
import { realtimeStreams } from "../realtime-streams-api.js";
|
|
3
|
+
import { sessionStreams } from "../session-streams-api.js";
|
|
4
|
+
import { localsAPI } from "../locals-api.js";
|
|
5
|
+
import { runMetadata } from "../run-metadata-api.js";
|
|
6
|
+
import { taskContext } from "../task-context-api.js";
|
|
7
|
+
import { lifecycleHooks } from "../lifecycle-hooks-api.js";
|
|
8
|
+
import { runtime } from "../runtime-api.js";
|
|
9
|
+
import { StandardLocalsManager } from "../locals/manager.js";
|
|
10
|
+
import { StandardLifecycleHooksManager } from "../lifecycleHooks/manager.js";
|
|
11
|
+
import { NoopRuntimeManager } from "../runtime/noopRuntimeManager.js";
|
|
12
|
+
import { unregisterGlobal } from "../utils/globals.js";
|
|
13
|
+
import { TestInputStreamManager } from "./test-input-stream-manager.js";
|
|
14
|
+
import { TestRealtimeStreamsManager } from "./test-realtime-streams-manager.js";
|
|
15
|
+
import { TestRunMetadataManager } from "./test-run-metadata-manager.js";
|
|
16
|
+
import { TestSessionStreamManager } from "./test-session-stream-manager.js";
|
|
17
|
+
function defaultTaskRunContext(overrides) {
|
|
18
|
+
return {
|
|
19
|
+
task: {
|
|
20
|
+
id: "test-task",
|
|
21
|
+
filePath: "test-task.ts",
|
|
22
|
+
...overrides?.task,
|
|
23
|
+
},
|
|
24
|
+
attempt: {
|
|
25
|
+
number: 1,
|
|
26
|
+
startedAt: new Date(),
|
|
27
|
+
...overrides?.attempt,
|
|
28
|
+
},
|
|
29
|
+
run: {
|
|
30
|
+
id: "run_test",
|
|
31
|
+
tags: [],
|
|
32
|
+
isTest: false,
|
|
33
|
+
isReplay: false,
|
|
34
|
+
createdAt: new Date(),
|
|
35
|
+
startedAt: new Date(),
|
|
36
|
+
...overrides?.run,
|
|
37
|
+
},
|
|
38
|
+
machine: {
|
|
39
|
+
name: "micro",
|
|
40
|
+
cpu: 1,
|
|
41
|
+
memory: 0.5,
|
|
42
|
+
centsPerMs: 0,
|
|
43
|
+
...overrides?.machine,
|
|
44
|
+
},
|
|
45
|
+
queue: {
|
|
46
|
+
name: "test-queue",
|
|
47
|
+
id: "test-queue-id",
|
|
48
|
+
...overrides?.queue,
|
|
49
|
+
},
|
|
50
|
+
environment: {
|
|
51
|
+
id: "test-env-id",
|
|
52
|
+
slug: "test-env",
|
|
53
|
+
type: "DEVELOPMENT",
|
|
54
|
+
...overrides?.environment,
|
|
55
|
+
},
|
|
56
|
+
organization: {
|
|
57
|
+
id: "test-org-id",
|
|
58
|
+
slug: "test-org",
|
|
59
|
+
name: "Test Org",
|
|
60
|
+
...overrides?.organization,
|
|
61
|
+
},
|
|
62
|
+
project: {
|
|
63
|
+
id: "test-project-id",
|
|
64
|
+
ref: "test-project-ref",
|
|
65
|
+
slug: "test-project",
|
|
66
|
+
name: "Test Project",
|
|
67
|
+
...overrides?.project,
|
|
68
|
+
},
|
|
69
|
+
batch: overrides?.batch,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
function defaultWorker(overrides) {
|
|
73
|
+
return {
|
|
74
|
+
id: "test-worker-id",
|
|
75
|
+
version: "test-version",
|
|
76
|
+
contentHash: "test-content-hash",
|
|
77
|
+
engine: "V2",
|
|
78
|
+
...overrides,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Run a function inside a fully mocked task runtime context.
|
|
83
|
+
*
|
|
84
|
+
* Installs in-memory test managers for `locals`, `inputStreams`,
|
|
85
|
+
* `realtimeStreams`, `lifecycleHooks`, and `runtime`, sets a mock
|
|
86
|
+
* `TaskContext`, and tears everything down when the function returns.
|
|
87
|
+
*
|
|
88
|
+
* Inside the function, any code that reads from `locals`, `inputStreams`,
|
|
89
|
+
* `realtimeStreams`, or `taskContext.ctx` will see the mock context —
|
|
90
|
+
* so you can directly invoke the internal `run` function of any task
|
|
91
|
+
* (including `chat.agent`) without hitting the Trigger.dev runtime.
|
|
92
|
+
*
|
|
93
|
+
* @example
|
|
94
|
+
* ```ts
|
|
95
|
+
* import { runInMockTaskContext } from "@trigger.dev/core/v3/test";
|
|
96
|
+
*
|
|
97
|
+
* await runInMockTaskContext(
|
|
98
|
+
* async ({ inputs, outputs, ctx }) => {
|
|
99
|
+
* // Fire an input stream from the "outside"
|
|
100
|
+
* setTimeout(() => {
|
|
101
|
+
* inputs.send("chat-messages", { messages: [], chatId: "c1" });
|
|
102
|
+
* }, 0);
|
|
103
|
+
*
|
|
104
|
+
* // Run task code that reads from inputStreams.once(...)
|
|
105
|
+
* await myTask.fns.run(payload, { ctx, signal: new AbortController().signal });
|
|
106
|
+
*
|
|
107
|
+
* // Inspect chunks written to the output stream
|
|
108
|
+
* expect(outputs.chunks("chat")).toContainEqual({ type: "text-delta", delta: "hi" });
|
|
109
|
+
* },
|
|
110
|
+
* { ctx: { run: { id: "run_abc" } } }
|
|
111
|
+
* );
|
|
112
|
+
* ```
|
|
113
|
+
*/
|
|
114
|
+
export async function runInMockTaskContext(fn, options) {
|
|
115
|
+
const ctx = defaultTaskRunContext(options?.ctx);
|
|
116
|
+
const worker = defaultWorker(options?.worker);
|
|
117
|
+
const localsManager = new StandardLocalsManager();
|
|
118
|
+
const lifecycleManager = new StandardLifecycleHooksManager();
|
|
119
|
+
const runtimeManager = new NoopRuntimeManager();
|
|
120
|
+
const metadataManager = new TestRunMetadataManager();
|
|
121
|
+
const inputManager = new TestInputStreamManager();
|
|
122
|
+
const outputManager = new TestRealtimeStreamsManager();
|
|
123
|
+
const sessionStreamManager = new TestSessionStreamManager();
|
|
124
|
+
// Unregister any previously-installed managers so `setGlobal*` wins —
|
|
125
|
+
// `registerGlobal` returns false silently if an entry already exists.
|
|
126
|
+
unregisterGlobal("locals");
|
|
127
|
+
unregisterGlobal("lifecycle-hooks");
|
|
128
|
+
unregisterGlobal("runtime");
|
|
129
|
+
unregisterGlobal("run-metadata");
|
|
130
|
+
unregisterGlobal("input-streams");
|
|
131
|
+
unregisterGlobal("realtime-streams");
|
|
132
|
+
unregisterGlobal("session-streams");
|
|
133
|
+
unregisterGlobal("task-context");
|
|
134
|
+
localsAPI.setGlobalLocalsManager(localsManager);
|
|
135
|
+
lifecycleHooks.setGlobalLifecycleHooksManager(lifecycleManager);
|
|
136
|
+
runtime.setGlobalRuntimeManager(runtimeManager);
|
|
137
|
+
runMetadata.setGlobalManager(metadataManager);
|
|
138
|
+
inputStreams.setGlobalManager(inputManager);
|
|
139
|
+
realtimeStreams.setGlobalManager(outputManager);
|
|
140
|
+
sessionStreams.setGlobalManager(sessionStreamManager);
|
|
141
|
+
taskContext.setGlobalTaskContext({
|
|
142
|
+
ctx,
|
|
143
|
+
worker,
|
|
144
|
+
isWarmStart: options?.isWarmStart ?? false,
|
|
145
|
+
});
|
|
146
|
+
const drivers = {
|
|
147
|
+
inputs: {
|
|
148
|
+
send: (streamId, data) => inputManager.__sendFromTest(streamId, data),
|
|
149
|
+
close: (streamId) => inputManager.__closeFromTest(streamId),
|
|
150
|
+
},
|
|
151
|
+
outputs: {
|
|
152
|
+
chunks: (streamId) => outputManager.__chunksFromTest(streamId),
|
|
153
|
+
all: () => outputManager.__allChunksFromTest(),
|
|
154
|
+
clear: (streamId) => outputManager.__clearFromTest(streamId),
|
|
155
|
+
onWrite: (listener) => outputManager.onWrite(listener),
|
|
156
|
+
},
|
|
157
|
+
locals: {
|
|
158
|
+
get: (key) => localsManager.getLocal(key),
|
|
159
|
+
set: (key, value) => localsManager.setLocal(key, value),
|
|
160
|
+
},
|
|
161
|
+
sessions: {
|
|
162
|
+
in: {
|
|
163
|
+
send: (sessionId, data, io = "in") => sessionStreamManager.__sendFromTest(sessionId, io, data),
|
|
164
|
+
close: (sessionId, io = "in") => sessionStreamManager.__closeFromTest(sessionId, io),
|
|
165
|
+
},
|
|
166
|
+
},
|
|
167
|
+
ctx,
|
|
168
|
+
};
|
|
169
|
+
try {
|
|
170
|
+
return await fn(drivers);
|
|
171
|
+
}
|
|
172
|
+
finally {
|
|
173
|
+
localsAPI.disable();
|
|
174
|
+
lifecycleHooks.disable();
|
|
175
|
+
runtime.disable();
|
|
176
|
+
// taskContext.disable() only sets a flag — unregister the global so
|
|
177
|
+
// `taskContext.ctx` returns undefined after the harness returns.
|
|
178
|
+
unregisterGlobal("task-context");
|
|
179
|
+
unregisterGlobal("input-streams");
|
|
180
|
+
unregisterGlobal("realtime-streams");
|
|
181
|
+
unregisterGlobal("session-streams");
|
|
182
|
+
unregisterGlobal("run-metadata");
|
|
183
|
+
localsManager.reset();
|
|
184
|
+
inputManager.reset();
|
|
185
|
+
outputManager.reset();
|
|
186
|
+
sessionStreamManager.reset();
|
|
187
|
+
metadataManager.reset();
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
//# sourceMappingURL=mock-task-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mock-task-context.js","sourceRoot":"","sources":["../../../../src/v3/test/mock-task-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAIvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AA2F5E,SAAS,qBAAqB,CAAC,SAAuC;IACpE,OAAO;QACL,IAAI,EAAE;YACJ,EAAE,EAAE,WAAW;YACf,QAAQ,EAAE,cAAc;YACxB,GAAG,SAAS,EAAE,IAAI;SACnB;QACD,OAAO,EAAE;YACP,MAAM,EAAE,CAAC;YACT,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,GAAG,SAAS,EAAE,OAAO;SACtB;QACD,GAAG,EAAE;YACH,EAAE,EAAE,UAAU;YACd,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,GAAG,SAAS,EAAE,GAAG;SAClB;QACD,OAAO,EAAE;YACP,IAAI,EAAE,OAAO;YACb,GAAG,EAAE,CAAC;YACN,MAAM,EAAE,GAAG;YACX,UAAU,EAAE,CAAC;YACb,GAAG,SAAS,EAAE,OAAO;SACtB;QACD,KAAK,EAAE;YACL,IAAI,EAAE,YAAY;YAClB,EAAE,EAAE,eAAe;YACnB,GAAG,SAAS,EAAE,KAAK;SACpB;QACD,WAAW,EAAE;YACX,EAAE,EAAE,aAAa;YACjB,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,aAAa;YACnB,GAAG,SAAS,EAAE,WAAW;SAC1B;QACD,YAAY,EAAE;YACZ,EAAE,EAAE,aAAa;YACjB,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,UAAU;YAChB,GAAG,SAAS,EAAE,YAAY;SAC3B;QACD,OAAO,EAAE;YACP,EAAE,EAAE,iBAAiB;YACrB,GAAG,EAAE,kBAAkB;YACvB,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,cAAc;YACpB,GAAG,SAAS,EAAE,OAAO;SACtB;QACD,KAAK,EAAE,SAAS,EAAE,KAAK;KACxB,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,SAA2C;IAChE,OAAO;QACL,EAAE,EAAE,gBAAgB;QACpB,OAAO,EAAE,cAAc;QACvB,WAAW,EAAE,mBAAmB;QAChC,MAAM,EAAE,IAAI;QACZ,GAAG,SAAS;KACb,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,EAAuD,EACvD,OAAgC;IAEhC,MAAM,GAAG,GAAG,qBAAqB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAE9C,MAAM,aAAa,GAAG,IAAI,qBAAqB,EAAE,CAAC;IAClD,MAAM,gBAAgB,GAAG,IAAI,6BAA6B,EAAE,CAAC;IAC7D,MAAM,cAAc,GAAG,IAAI,kBAAkB,EAAE,CAAC;IAChD,MAAM,eAAe,GAAG,IAAI,sBAAsB,EAAE,CAAC;IACrD,MAAM,YAAY,GAAG,IAAI,sBAAsB,EAAE,CAAC;IAClD,MAAM,aAAa,GAAG,IAAI,0BAA0B,EAAE,CAAC;IACvD,MAAM,oBAAoB,GAAG,IAAI,wBAAwB,EAAE,CAAC;IAE5D,sEAAsE;IACtE,sEAAsE;IACtE,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC3B,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;IACpC,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAC5B,gBAAgB,CAAC,cAAc,CAAC,CAAC;IACjC,gBAAgB,CAAC,eAAe,CAAC,CAAC;IAClC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;IACrC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;IACpC,gBAAgB,CAAC,cAAc,CAAC,CAAC;IAEjC,SAAS,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAAC;IAChD,cAAc,CAAC,8BAA8B,CAAC,gBAAgB,CAAC,CAAC;IAChE,OAAO,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAAC;IAChD,WAAW,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;IAC9C,YAAY,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAC5C,eAAe,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAChD,cAAc,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;IACtD,WAAW,CAAC,oBAAoB,CAAC;QAC/B,GAAG;QACH,MAAM;QACN,WAAW,EAAE,OAAO,EAAE,WAAW,IAAI,KAAK;KAC3C,CAAC,CAAC;IAEH,MAAM,OAAO,GAA2B;QACtC,MAAM,EAAE;YACN,IAAI,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC;YACrE,KAAK,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,YAAY,CAAC,eAAe,CAAC,QAAQ,CAAC;SAC5D;QACD,OAAO,EAAE;YACP,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,aAAa,CAAC,gBAAgB,CAAC,QAAQ,CAAC;YAC9D,GAAG,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,mBAAmB,EAAE;YAC9C,KAAK,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,aAAa,CAAC,eAAe,CAAC,QAAQ,CAAC;YAC5D,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC;SACvD;QACD,MAAM,EAAE;YACN,GAAG,EAAE,CAAS,GAAsB,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC;YACpE,GAAG,EAAE,CAAS,GAAsB,EAAE,KAAa,EAAE,EAAE,CACrD,aAAa,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC;SACrC;QACD,QAAQ,EAAE;YACR,EAAE,EAAE;gBACF,IAAI,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,CACnC,oBAAoB,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,EAAE,IAAI,CAAC;gBAC1D,KAAK,EAAE,CAAC,SAAS,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,CAC9B,oBAAoB,CAAC,eAAe,CAAC,SAAS,EAAE,EAAE,CAAC;aACtD;SACF;QACD,GAAG;KACJ,CAAC;IAEF,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;YAAS,CAAC;QACT,SAAS,CAAC,OAAO,EAAE,CAAC;QACpB,cAAc,CAAC,OAAO,EAAE,CAAC;QACzB,OAAO,CAAC,OAAO,EAAE,CAAC;QAClB,oEAAoE;QACpE,iEAAiE;QACjE,gBAAgB,CAAC,cAAc,CAAC,CAAC;QACjC,gBAAgB,CAAC,eAAe,CAAC,CAAC;QAClC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;QACrC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;QACpC,gBAAgB,CAAC,cAAc,CAAC,CAAC;QACjC,aAAa,CAAC,KAAK,EAAE,CAAC;QACtB,YAAY,CAAC,KAAK,EAAE,CAAC;QACrB,aAAa,CAAC,KAAK,EAAE,CAAC;QACtB,oBAAoB,CAAC,KAAK,EAAE,CAAC;QAC7B,eAAe,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { InputStreamManager } from "../inputStreams/types.js";
|
|
2
|
+
import { InputStreamOncePromise } from "../inputStreams/types.js";
|
|
3
|
+
import type { InputStreamOnceOptions } from "../realtimeStreams/types.js";
|
|
4
|
+
type Handler = (data: unknown) => void | Promise<void>;
|
|
5
|
+
/**
|
|
6
|
+
* In-memory implementation of `InputStreamManager` for unit tests.
|
|
7
|
+
*
|
|
8
|
+
* Tests push data via the driver's `.send(streamId, data)` method. Any
|
|
9
|
+
* pending `.once()` waiters resolve immediately, and all `.on()` handlers
|
|
10
|
+
* fire synchronously (awaited if they return a promise).
|
|
11
|
+
*
|
|
12
|
+
* Use this alongside {@link runInMockTaskContext} — not directly.
|
|
13
|
+
*/
|
|
14
|
+
export declare class TestInputStreamManager implements InputStreamManager {
|
|
15
|
+
private handlers;
|
|
16
|
+
private onceWaiters;
|
|
17
|
+
private latest;
|
|
18
|
+
private lastSeqNums;
|
|
19
|
+
private pendingSends;
|
|
20
|
+
setRunId(_runId: string, _streamsVersion?: string): void;
|
|
21
|
+
on(streamId: string, handler: Handler): {
|
|
22
|
+
off: () => void;
|
|
23
|
+
};
|
|
24
|
+
once(streamId: string, options?: InputStreamOnceOptions): InputStreamOncePromise<unknown>;
|
|
25
|
+
peek(streamId: string): unknown | undefined;
|
|
26
|
+
lastSeqNum(streamId: string): number | undefined;
|
|
27
|
+
setLastSeqNum(streamId: string, seqNum: number): void;
|
|
28
|
+
shiftBuffer(_streamId: string): boolean;
|
|
29
|
+
disconnectStream(_streamId: string): void;
|
|
30
|
+
clearHandlers(): void;
|
|
31
|
+
reset(): void;
|
|
32
|
+
disconnect(): void;
|
|
33
|
+
connectTail(_runId: string, _fromSeq?: number): void;
|
|
34
|
+
/**
|
|
35
|
+
* Push data onto an input stream. Resolves pending `once()` waiters
|
|
36
|
+
* and fires all `on()` handlers (awaiting async handlers).
|
|
37
|
+
*/
|
|
38
|
+
__sendFromTest(streamId: string, data: unknown): Promise<void>;
|
|
39
|
+
/**
|
|
40
|
+
* Immediately resolve every pending `once()` waiter for a stream with a
|
|
41
|
+
* timeout error. Used to simulate closed streams (e.g. `exitAfterPreloadIdle`).
|
|
42
|
+
*/
|
|
43
|
+
__closeFromTest(streamId: string): void;
|
|
44
|
+
private removeWaiter;
|
|
45
|
+
}
|
|
46
|
+
export {};
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import { InputStreamOncePromise, InputStreamTimeoutError } from "../inputStreams/types.js";
|
|
2
|
+
/**
|
|
3
|
+
* In-memory implementation of `InputStreamManager` for unit tests.
|
|
4
|
+
*
|
|
5
|
+
* Tests push data via the driver's `.send(streamId, data)` method. Any
|
|
6
|
+
* pending `.once()` waiters resolve immediately, and all `.on()` handlers
|
|
7
|
+
* fire synchronously (awaited if they return a promise).
|
|
8
|
+
*
|
|
9
|
+
* Use this alongside {@link runInMockTaskContext} — not directly.
|
|
10
|
+
*/
|
|
11
|
+
export class TestInputStreamManager {
|
|
12
|
+
handlers = new Map();
|
|
13
|
+
onceWaiters = new Map();
|
|
14
|
+
latest = new Map();
|
|
15
|
+
lastSeqNums = new Map();
|
|
16
|
+
// Buffered sends that arrived before a `.once()` waiter was registered.
|
|
17
|
+
// `.once()` semantically means "wait for NEXT value" but tests often
|
|
18
|
+
// send data before the task has had a chance to reach the wait point.
|
|
19
|
+
// Buffering closes that race so the waiter picks up the pending send.
|
|
20
|
+
pendingSends = new Map();
|
|
21
|
+
setRunId(_runId, _streamsVersion) {
|
|
22
|
+
// No-op — the test driver tracks nothing about runs
|
|
23
|
+
}
|
|
24
|
+
on(streamId, handler) {
|
|
25
|
+
if (!this.handlers.has(streamId)) {
|
|
26
|
+
this.handlers.set(streamId, new Set());
|
|
27
|
+
}
|
|
28
|
+
this.handlers.get(streamId).add(handler);
|
|
29
|
+
return {
|
|
30
|
+
off: () => {
|
|
31
|
+
this.handlers.get(streamId)?.delete(handler);
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
once(streamId, options) {
|
|
36
|
+
return new InputStreamOncePromise((resolve) => {
|
|
37
|
+
if (options?.signal?.aborted) {
|
|
38
|
+
resolve({
|
|
39
|
+
ok: false,
|
|
40
|
+
error: new InputStreamTimeoutError(streamId, options.timeoutMs ?? 0),
|
|
41
|
+
});
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
// Pick up any buffered send that arrived before this waiter.
|
|
45
|
+
const buffered = this.pendingSends.get(streamId);
|
|
46
|
+
if (buffered && buffered.length > 0) {
|
|
47
|
+
const next = buffered.shift();
|
|
48
|
+
if (buffered.length === 0)
|
|
49
|
+
this.pendingSends.delete(streamId);
|
|
50
|
+
resolve({ ok: true, output: next });
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
const waiter = {
|
|
54
|
+
resolve,
|
|
55
|
+
signal: options?.signal,
|
|
56
|
+
};
|
|
57
|
+
if (options?.timeoutMs !== undefined) {
|
|
58
|
+
waiter.timer = setTimeout(() => {
|
|
59
|
+
this.removeWaiter(streamId, waiter);
|
|
60
|
+
resolve({
|
|
61
|
+
ok: false,
|
|
62
|
+
error: new InputStreamTimeoutError(streamId, options.timeoutMs),
|
|
63
|
+
});
|
|
64
|
+
}, options.timeoutMs);
|
|
65
|
+
}
|
|
66
|
+
if (options?.signal) {
|
|
67
|
+
const abortHandler = () => {
|
|
68
|
+
this.removeWaiter(streamId, waiter);
|
|
69
|
+
if (waiter.timer)
|
|
70
|
+
clearTimeout(waiter.timer);
|
|
71
|
+
resolve({
|
|
72
|
+
ok: false,
|
|
73
|
+
error: new InputStreamTimeoutError(streamId, options.timeoutMs ?? 0),
|
|
74
|
+
});
|
|
75
|
+
};
|
|
76
|
+
waiter.abortHandler = abortHandler;
|
|
77
|
+
options.signal.addEventListener("abort", abortHandler, { once: true });
|
|
78
|
+
}
|
|
79
|
+
if (!this.onceWaiters.has(streamId)) {
|
|
80
|
+
this.onceWaiters.set(streamId, []);
|
|
81
|
+
}
|
|
82
|
+
this.onceWaiters.get(streamId).push(waiter);
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
peek(streamId) {
|
|
86
|
+
return this.latest.get(streamId);
|
|
87
|
+
}
|
|
88
|
+
lastSeqNum(streamId) {
|
|
89
|
+
return this.lastSeqNums.get(streamId);
|
|
90
|
+
}
|
|
91
|
+
setLastSeqNum(streamId, seqNum) {
|
|
92
|
+
this.lastSeqNums.set(streamId, seqNum);
|
|
93
|
+
}
|
|
94
|
+
shiftBuffer(_streamId) {
|
|
95
|
+
return false;
|
|
96
|
+
}
|
|
97
|
+
disconnectStream(_streamId) { }
|
|
98
|
+
clearHandlers() {
|
|
99
|
+
this.handlers.clear();
|
|
100
|
+
}
|
|
101
|
+
reset() {
|
|
102
|
+
// Cancel any pending waiters to avoid dangling promises leaking between tests
|
|
103
|
+
for (const waiters of this.onceWaiters.values()) {
|
|
104
|
+
for (const w of waiters) {
|
|
105
|
+
if (w.timer)
|
|
106
|
+
clearTimeout(w.timer);
|
|
107
|
+
if (w.signal && w.abortHandler) {
|
|
108
|
+
w.signal.removeEventListener("abort", w.abortHandler);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
this.onceWaiters.clear();
|
|
113
|
+
this.handlers.clear();
|
|
114
|
+
this.latest.clear();
|
|
115
|
+
this.lastSeqNums.clear();
|
|
116
|
+
this.pendingSends.clear();
|
|
117
|
+
}
|
|
118
|
+
disconnect() {
|
|
119
|
+
this.reset();
|
|
120
|
+
}
|
|
121
|
+
connectTail(_runId, _fromSeq) { }
|
|
122
|
+
// ── Test driver API (not part of InputStreamManager interface) ──────────
|
|
123
|
+
/**
|
|
124
|
+
* Push data onto an input stream. Resolves pending `once()` waiters
|
|
125
|
+
* and fires all `on()` handlers (awaiting async handlers).
|
|
126
|
+
*/
|
|
127
|
+
async __sendFromTest(streamId, data) {
|
|
128
|
+
this.latest.set(streamId, data);
|
|
129
|
+
const waiters = this.onceWaiters.get(streamId);
|
|
130
|
+
const handlers = this.handlers.get(streamId);
|
|
131
|
+
const hasWaiters = waiters && waiters.length > 0;
|
|
132
|
+
const hasHandlers = handlers && handlers.size > 0;
|
|
133
|
+
// If nothing is listening yet, buffer so the next `.once()` call picks it up.
|
|
134
|
+
if (!hasWaiters && !hasHandlers) {
|
|
135
|
+
if (!this.pendingSends.has(streamId)) {
|
|
136
|
+
this.pendingSends.set(streamId, []);
|
|
137
|
+
}
|
|
138
|
+
this.pendingSends.get(streamId).push(data);
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
if (hasWaiters) {
|
|
142
|
+
// Drain every pending once() waiter — this mirrors the real manager's
|
|
143
|
+
// behavior where the stream tail delivers the same record to all listeners.
|
|
144
|
+
const pending = waiters.splice(0);
|
|
145
|
+
for (const w of pending) {
|
|
146
|
+
if (w.timer)
|
|
147
|
+
clearTimeout(w.timer);
|
|
148
|
+
if (w.signal && w.abortHandler) {
|
|
149
|
+
w.signal.removeEventListener("abort", w.abortHandler);
|
|
150
|
+
}
|
|
151
|
+
w.resolve({ ok: true, output: data });
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
if (hasHandlers) {
|
|
155
|
+
await Promise.all(Array.from(handlers).map((h) => Promise.resolve().then(() => h(data))));
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Immediately resolve every pending `once()` waiter for a stream with a
|
|
160
|
+
* timeout error. Used to simulate closed streams (e.g. `exitAfterPreloadIdle`).
|
|
161
|
+
*/
|
|
162
|
+
__closeFromTest(streamId) {
|
|
163
|
+
const waiters = this.onceWaiters.get(streamId);
|
|
164
|
+
if (!waiters)
|
|
165
|
+
return;
|
|
166
|
+
const pending = waiters.splice(0);
|
|
167
|
+
for (const w of pending) {
|
|
168
|
+
if (w.timer)
|
|
169
|
+
clearTimeout(w.timer);
|
|
170
|
+
if (w.signal && w.abortHandler) {
|
|
171
|
+
w.signal.removeEventListener("abort", w.abortHandler);
|
|
172
|
+
}
|
|
173
|
+
w.resolve({
|
|
174
|
+
ok: false,
|
|
175
|
+
error: new InputStreamTimeoutError(streamId, 0),
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
removeWaiter(streamId, waiter) {
|
|
180
|
+
const waiters = this.onceWaiters.get(streamId);
|
|
181
|
+
if (!waiters)
|
|
182
|
+
return;
|
|
183
|
+
const idx = waiters.indexOf(waiter);
|
|
184
|
+
if (idx >= 0)
|
|
185
|
+
waiters.splice(idx, 1);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
//# sourceMappingURL=test-input-stream-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-input-stream-manager.js","sourceRoot":"","sources":["../../../../src/v3/test/test-input-stream-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { RealtimeStreamInstance, RealtimeStreamOperationOptions, RealtimeStreamsManager } from "../realtimeStreams/types.js";
|
|
2
|
+
/**
|
|
3
|
+
* In-memory implementation of `RealtimeStreamsManager` for unit tests.
|
|
4
|
+
* Collects every chunk that tasks write via `pipe()` or `append()` into
|
|
5
|
+
* per-stream buffers that tests can inspect.
|
|
6
|
+
*
|
|
7
|
+
* Use this alongside {@link runInMockTaskContext} — not directly.
|
|
8
|
+
*/
|
|
9
|
+
type WriteListener = (key: string, chunk: unknown) => void;
|
|
10
|
+
export declare class TestRealtimeStreamsManager implements RealtimeStreamsManager {
|
|
11
|
+
private buffers;
|
|
12
|
+
private pipeWaits;
|
|
13
|
+
private writeListeners;
|
|
14
|
+
pipe<T>(key: string, source: AsyncIterable<T> | ReadableStream<T>, _options?: RealtimeStreamOperationOptions): RealtimeStreamInstance<T>;
|
|
15
|
+
append<TPart extends BodyInit>(key: string, part: TPart, _options?: RealtimeStreamOperationOptions): Promise<void>;
|
|
16
|
+
/**
|
|
17
|
+
* Register a listener fired for every chunk written to any stream.
|
|
18
|
+
* Returns an unsubscribe function.
|
|
19
|
+
*
|
|
20
|
+
* Intended for test harnesses that need to react to writes synchronously
|
|
21
|
+
* (e.g. resolving a "turn complete" latch).
|
|
22
|
+
*/
|
|
23
|
+
onWrite(listener: WriteListener): () => void;
|
|
24
|
+
private notify;
|
|
25
|
+
/**
|
|
26
|
+
* Return all chunks written to the given stream key in order of write.
|
|
27
|
+
*/
|
|
28
|
+
__chunksFromTest<T = unknown>(key: string): T[];
|
|
29
|
+
/**
|
|
30
|
+
* Return all chunks across every stream, keyed by stream id.
|
|
31
|
+
*/
|
|
32
|
+
__allChunksFromTest(): Record<string, unknown[]>;
|
|
33
|
+
/**
|
|
34
|
+
* Clear the buffer for a specific stream or all streams.
|
|
35
|
+
*/
|
|
36
|
+
__clearFromTest(key?: string): void;
|
|
37
|
+
reset(): void;
|
|
38
|
+
private getBuffer;
|
|
39
|
+
}
|
|
40
|
+
export {};
|