@trigger.dev/core 4.5.16 → 4.6.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/schemas/eventFilter.d.ts +27 -105
- package/dist/commonjs/schemas/eventFilter.js +38 -38
- package/dist/commonjs/schemas/eventFilter.js.map +1 -1
- package/dist/commonjs/schemas/json.d.ts +3 -3
- package/dist/commonjs/schemas/json.js +20 -12
- package/dist/commonjs/schemas/json.js.map +1 -1
- package/dist/commonjs/v3/apiClient/core.d.ts +14 -14
- package/dist/commonjs/v3/apiClient/core.js +39 -18
- package/dist/commonjs/v3/apiClient/core.js.map +1 -1
- package/dist/commonjs/v3/apiClient/encodeTaskIdForPath.d.ts +6 -0
- package/dist/commonjs/v3/apiClient/encodeTaskIdForPath.js +20 -0
- package/dist/commonjs/v3/apiClient/encodeTaskIdForPath.js.map +1 -0
- package/dist/commonjs/v3/apiClient/index.d.ts +82 -184
- package/dist/commonjs/v3/apiClient/index.js +27 -8
- package/dist/commonjs/v3/apiClient/index.js.map +1 -1
- package/dist/commonjs/v3/apiClient/stream.d.ts +4 -4
- package/dist/commonjs/v3/apiClient/stream.js.map +1 -1
- package/dist/commonjs/v3/errors.d.ts +5 -4
- package/dist/commonjs/v3/errors.js.map +1 -1
- package/dist/commonjs/v3/index.d.ts +1 -1
- package/dist/commonjs/v3/index.js.map +1 -1
- package/dist/commonjs/v3/realtimeStreams/sessionStreamInstance.js +3 -0
- package/dist/commonjs/v3/realtimeStreams/sessionStreamInstance.js.map +1 -1
- package/dist/commonjs/v3/realtimeStreams/streamsWriterV1.js +3 -0
- package/dist/commonjs/v3/realtimeStreams/streamsWriterV1.js.map +1 -1
- package/dist/commonjs/v3/realtimeStreams/streamsWriterV2.js +4 -0
- package/dist/commonjs/v3/realtimeStreams/streamsWriterV2.js.map +1 -1
- package/dist/commonjs/v3/runEngineWorker/supervisor/http.d.ts +25 -114
- package/dist/commonjs/v3/runEngineWorker/supervisor/http.js +5 -12
- package/dist/commonjs/v3/runEngineWorker/supervisor/http.js.map +1 -1
- package/dist/commonjs/v3/runEngineWorker/supervisor/schemas.d.ts +594 -4187
- package/dist/commonjs/v3/runEngineWorker/supervisor/schemas.js +84 -67
- package/dist/commonjs/v3/runEngineWorker/supervisor/schemas.js.map +1 -1
- package/dist/commonjs/v3/runEngineWorker/supervisor/types.d.ts +2 -0
- package/dist/commonjs/v3/runEngineWorker/workload/http.d.ts +15 -110
- package/dist/commonjs/v3/runEngineWorker/workload/http.js +8 -16
- package/dist/commonjs/v3/runEngineWorker/workload/http.js.map +1 -1
- package/dist/commonjs/v3/runEngineWorker/workload/schemas.d.ts +465 -3624
- package/dist/commonjs/v3/runEngineWorker/workload/schemas.js +10 -9
- package/dist/commonjs/v3/runEngineWorker/workload/schemas.js.map +1 -1
- package/dist/commonjs/v3/schemas/api.d.ts +1869 -12681
- package/dist/commonjs/v3/schemas/api.js +1023 -943
- package/dist/commonjs/v3/schemas/api.js.map +1 -1
- package/dist/commonjs/v3/schemas/build.d.ts +645 -9115
- package/dist/commonjs/v3/schemas/build.js +71 -71
- package/dist/commonjs/v3/schemas/build.js.map +1 -1
- package/dist/commonjs/v3/schemas/checkpoints.d.ts +121 -461
- package/dist/commonjs/v3/schemas/checkpoints.js +11 -11
- package/dist/commonjs/v3/schemas/checkpoints.js.map +1 -1
- package/dist/commonjs/v3/schemas/common.d.ts +1018 -6499
- package/dist/commonjs/v3/schemas/common.js +225 -218
- package/dist/commonjs/v3/schemas/common.js.map +1 -1
- package/dist/commonjs/v3/schemas/config.d.ts +3 -9
- package/dist/commonjs/v3/schemas/config.js +4 -4
- package/dist/commonjs/v3/schemas/config.js.map +1 -1
- package/dist/commonjs/v3/schemas/errors.d.ts +42 -173
- package/dist/commonjs/v3/schemas/errors.js +44 -44
- package/dist/commonjs/v3/schemas/errors.js.map +1 -1
- package/dist/commonjs/v3/schemas/eventFilter.d.ts +23 -91
- package/dist/commonjs/v3/schemas/eventFilter.js +35 -35
- package/dist/commonjs/v3/schemas/eventFilter.js.map +1 -1
- package/dist/commonjs/v3/schemas/fetch.d.ts +119 -415
- package/dist/commonjs/v3/schemas/fetch.js +17 -14
- package/dist/commonjs/v3/schemas/fetch.js.map +1 -1
- package/dist/commonjs/v3/schemas/messages.d.ts +603 -7438
- package/dist/commonjs/v3/schemas/messages.js +50 -50
- package/dist/commonjs/v3/schemas/messages.js.map +1 -1
- package/dist/commonjs/v3/schemas/openTelemetry.d.ts +50 -401
- package/dist/commonjs/v3/schemas/openTelemetry.js +32 -32
- package/dist/commonjs/v3/schemas/openTelemetry.js.map +1 -1
- package/dist/commonjs/v3/schemas/query.d.ts +51 -273
- package/dist/commonjs/v3/schemas/query.js +41 -40
- package/dist/commonjs/v3/schemas/query.js.map +1 -1
- package/dist/commonjs/v3/schemas/queues.d.ts +29 -100
- package/dist/commonjs/v3/schemas/queues.js +22 -22
- package/dist/commonjs/v3/schemas/queues.js.map +1 -1
- package/dist/commonjs/v3/schemas/reports.d.ts +150 -692
- package/dist/commonjs/v3/schemas/reports.js +55 -55
- package/dist/commonjs/v3/schemas/reports.js.map +1 -1
- package/dist/commonjs/v3/schemas/resources.d.ts +533 -5985
- package/dist/commonjs/v3/schemas/resources.js +49 -49
- package/dist/commonjs/v3/schemas/resources.js.map +1 -1
- package/dist/commonjs/v3/schemas/runEngine.d.ts +467 -1822
- package/dist/commonjs/v3/schemas/runEngine.js +113 -109
- package/dist/commonjs/v3/schemas/runEngine.js.map +1 -1
- package/dist/commonjs/v3/schemas/scheduleWindow.d.ts +2 -2
- package/dist/commonjs/v3/schemas/scheduleWindow.js +3 -3
- package/dist/commonjs/v3/schemas/scheduleWindow.js.map +1 -1
- package/dist/commonjs/v3/schemas/schemas.d.ts +788 -7456
- package/dist/commonjs/v3/schemas/schemas.js +133 -132
- package/dist/commonjs/v3/schemas/schemas.js.map +1 -1
- package/dist/commonjs/v3/schemas/snapshotRoute.d.ts +33 -0
- package/dist/commonjs/v3/schemas/snapshotRoute.js +33 -0
- package/dist/commonjs/v3/schemas/snapshotRoute.js.map +1 -0
- package/dist/commonjs/v3/schemas/style.d.ts +24 -86
- package/dist/commonjs/v3/schemas/style.js +12 -12
- package/dist/commonjs/v3/schemas/style.js.map +1 -1
- package/dist/commonjs/v3/schemas/tokens.d.ts +5 -31
- package/dist/commonjs/v3/schemas/tokens.js +10 -10
- package/dist/commonjs/v3/schemas/tokens.js.map +1 -1
- package/dist/commonjs/v3/schemas/warmStart.d.ts +2 -8
- package/dist/commonjs/v3/schemas/warmStart.js +4 -4
- package/dist/commonjs/v3/schemas/warmStart.js.map +1 -1
- package/dist/commonjs/v3/schemas/webhookApi.d.ts +75 -249
- package/dist/commonjs/v3/schemas/webhookApi.js +41 -41
- package/dist/commonjs/v3/schemas/webhookApi.js.map +1 -1
- package/dist/commonjs/v3/schemas/webhookConfig.d.ts +473 -3309
- package/dist/commonjs/v3/schemas/webhookConfig.js +79 -78
- package/dist/commonjs/v3/schemas/webhookConfig.js.map +1 -1
- package/dist/commonjs/v3/schemas/webhookFilter.d.ts +16 -4
- package/dist/commonjs/v3/schemas/webhookFilter.js +16 -16
- package/dist/commonjs/v3/schemas/webhookFilter.js.map +1 -1
- package/dist/commonjs/v3/schemas/webhooks.d.ts +247 -2055
- package/dist/commonjs/v3/schemas/webhooks.js +116 -115
- package/dist/commonjs/v3/schemas/webhooks.js.map +1 -1
- package/dist/commonjs/v3/serverOnly/httpServer.d.ts +19 -8
- package/dist/commonjs/v3/serverOnly/httpServer.js +6 -3
- package/dist/commonjs/v3/serverOnly/httpServer.js.map +1 -1
- package/dist/commonjs/v3/sessionStreams/chatSnapshot.d.ts +163 -16
- package/dist/commonjs/v3/sessionStreams/chatSnapshot.js +332 -8
- package/dist/commonjs/v3/sessionStreams/chatSnapshot.js.map +1 -1
- package/dist/commonjs/v3/sessionStreams/router.d.ts +39 -1
- package/dist/commonjs/v3/sessionStreams/router.js +62 -0
- package/dist/commonjs/v3/sessionStreams/router.js.map +1 -1
- package/dist/commonjs/v3/sessionStreams/wireProtocol.d.ts +15 -0
- package/dist/commonjs/v3/sessionStreams/wireProtocol.js +16 -1
- package/dist/commonjs/v3/sessionStreams/wireProtocol.js.map +1 -1
- package/dist/commonjs/v3/test/test-session-stream-manager.js +5 -1
- package/dist/commonjs/v3/test/test-session-stream-manager.js.map +1 -1
- package/dist/commonjs/v3/types/schemas.d.ts +21 -1
- package/dist/commonjs/v3/types/schemas.js +2 -1
- package/dist/commonjs/v3/types/schemas.js.map +1 -1
- package/dist/commonjs/v3/types/tools.d.ts +16 -5
- package/dist/commonjs/v3/types/tools.js +2 -2
- package/dist/commonjs/v3/types/tools.js.map +1 -1
- package/dist/commonjs/v3/utils/ioSerialization.js +3 -3
- package/dist/commonjs/v3/utils/ioSerialization.js.map +1 -1
- package/dist/commonjs/v3/utils/zod.d.ts +8 -0
- package/dist/commonjs/v3/utils/zod.js +8 -0
- package/dist/commonjs/v3/utils/zod.js.map +1 -0
- package/dist/commonjs/v3/workloadDeploymentToken.d.ts +2 -21
- package/dist/commonjs/v3/workloadDeploymentToken.js +10 -10
- package/dist/commonjs/v3/workloadDeploymentToken.js.map +1 -1
- package/dist/commonjs/v3/zodIpc.d.ts +6 -6
- package/dist/commonjs/v3/zodIpc.js +20 -18
- package/dist/commonjs/v3/zodIpc.js.map +1 -1
- package/dist/commonjs/v3/zodMessageHandler.d.ts +14 -21
- package/dist/commonjs/v3/zodMessageHandler.js +20 -7
- package/dist/commonjs/v3/zodMessageHandler.js.map +1 -1
- package/dist/commonjs/v3/zodSocket.d.ts +11 -11
- package/dist/commonjs/v3/zodSocket.js +9 -8
- package/dist/commonjs/v3/zodSocket.js.map +1 -1
- package/dist/commonjs/version.js +1 -1
- package/dist/esm/schemas/eventFilter.d.ts +27 -105
- package/dist/esm/schemas/eventFilter.js +2 -2
- package/dist/esm/schemas/eventFilter.js.map +1 -1
- package/dist/esm/schemas/json.d.ts +3 -3
- package/dist/esm/schemas/json.js +11 -3
- package/dist/esm/schemas/json.js.map +1 -1
- package/dist/esm/v3/apiClient/core.d.ts +14 -14
- package/dist/esm/v3/apiClient/core.js +38 -17
- package/dist/esm/v3/apiClient/core.js.map +1 -1
- package/dist/esm/v3/apiClient/encodeTaskIdForPath.d.ts +6 -0
- package/dist/esm/v3/apiClient/encodeTaskIdForPath.js +17 -0
- package/dist/esm/v3/apiClient/encodeTaskIdForPath.js.map +1 -0
- package/dist/esm/v3/apiClient/index.d.ts +82 -184
- package/dist/esm/v3/apiClient/index.js +22 -4
- package/dist/esm/v3/apiClient/index.js.map +1 -1
- package/dist/esm/v3/apiClient/stream.d.ts +4 -4
- package/dist/esm/v3/apiClient/stream.js.map +1 -1
- package/dist/esm/v3/errors.d.ts +5 -4
- package/dist/esm/v3/errors.js.map +1 -1
- package/dist/esm/v3/index.d.ts +1 -1
- package/dist/esm/v3/index.js.map +1 -1
- package/dist/esm/v3/realtimeStreams/sessionStreamInstance.js +3 -0
- package/dist/esm/v3/realtimeStreams/sessionStreamInstance.js.map +1 -1
- package/dist/esm/v3/realtimeStreams/streamsWriterV1.js +3 -0
- package/dist/esm/v3/realtimeStreams/streamsWriterV1.js.map +1 -1
- package/dist/esm/v3/realtimeStreams/streamsWriterV2.js +4 -0
- package/dist/esm/v3/realtimeStreams/streamsWriterV2.js.map +1 -1
- package/dist/esm/v3/runEngineWorker/supervisor/http.d.ts +25 -114
- package/dist/esm/v3/runEngineWorker/supervisor/http.js +4 -11
- package/dist/esm/v3/runEngineWorker/supervisor/http.js.map +1 -1
- package/dist/esm/v3/runEngineWorker/supervisor/schemas.d.ts +594 -4187
- package/dist/esm/v3/runEngineWorker/supervisor/schemas.js +22 -5
- package/dist/esm/v3/runEngineWorker/supervisor/schemas.js.map +1 -1
- package/dist/esm/v3/runEngineWorker/supervisor/types.d.ts +2 -0
- package/dist/esm/v3/runEngineWorker/workload/http.d.ts +15 -110
- package/dist/esm/v3/runEngineWorker/workload/http.js +8 -16
- package/dist/esm/v3/runEngineWorker/workload/http.js.map +1 -1
- package/dist/esm/v3/runEngineWorker/workload/schemas.d.ts +465 -3624
- package/dist/esm/v3/runEngineWorker/workload/schemas.js +5 -4
- package/dist/esm/v3/runEngineWorker/workload/schemas.js.map +1 -1
- package/dist/esm/v3/schemas/api.d.ts +1869 -12681
- package/dist/esm/v3/schemas/api.js +115 -35
- package/dist/esm/v3/schemas/api.js.map +1 -1
- package/dist/esm/v3/schemas/build.d.ts +645 -9115
- package/dist/esm/v3/schemas/build.js +10 -10
- package/dist/esm/v3/schemas/build.js.map +1 -1
- package/dist/esm/v3/schemas/checkpoints.d.ts +121 -461
- package/dist/esm/v3/schemas/checkpoints.js +1 -1
- package/dist/esm/v3/schemas/checkpoints.js.map +1 -1
- package/dist/esm/v3/schemas/common.d.ts +1018 -6499
- package/dist/esm/v3/schemas/common.js +17 -10
- package/dist/esm/v3/schemas/common.js.map +1 -1
- package/dist/esm/v3/schemas/config.d.ts +3 -9
- package/dist/esm/v3/schemas/config.js +1 -1
- package/dist/esm/v3/schemas/config.js.map +1 -1
- package/dist/esm/v3/schemas/errors.d.ts +42 -173
- package/dist/esm/v3/schemas/errors.js +1 -1
- package/dist/esm/v3/schemas/errors.js.map +1 -1
- package/dist/esm/v3/schemas/eventFilter.d.ts +23 -91
- package/dist/esm/v3/schemas/eventFilter.js +2 -2
- package/dist/esm/v3/schemas/eventFilter.js.map +1 -1
- package/dist/esm/v3/schemas/fetch.d.ts +119 -415
- package/dist/esm/v3/schemas/fetch.js +6 -3
- package/dist/esm/v3/schemas/fetch.js.map +1 -1
- package/dist/esm/v3/schemas/messages.d.ts +603 -7438
- package/dist/esm/v3/schemas/messages.js +3 -3
- package/dist/esm/v3/schemas/messages.js.map +1 -1
- package/dist/esm/v3/schemas/openTelemetry.d.ts +50 -401
- package/dist/esm/v3/schemas/openTelemetry.js +2 -2
- package/dist/esm/v3/schemas/openTelemetry.js.map +1 -1
- package/dist/esm/v3/schemas/query.d.ts +51 -273
- package/dist/esm/v3/schemas/query.js +4 -3
- package/dist/esm/v3/schemas/query.js.map +1 -1
- package/dist/esm/v3/schemas/queues.d.ts +29 -100
- package/dist/esm/v3/schemas/queues.js +1 -1
- package/dist/esm/v3/schemas/queues.js.map +1 -1
- package/dist/esm/v3/schemas/reports.d.ts +150 -692
- package/dist/esm/v3/schemas/reports.js +5 -5
- package/dist/esm/v3/schemas/reports.js.map +1 -1
- package/dist/esm/v3/schemas/resources.d.ts +533 -5985
- package/dist/esm/v3/schemas/resources.js +3 -3
- package/dist/esm/v3/schemas/resources.js.map +1 -1
- package/dist/esm/v3/schemas/runEngine.d.ts +467 -1822
- package/dist/esm/v3/schemas/runEngine.js +11 -3
- package/dist/esm/v3/schemas/runEngine.js.map +1 -1
- package/dist/esm/v3/schemas/scheduleWindow.d.ts +2 -2
- package/dist/esm/v3/schemas/scheduleWindow.js +1 -1
- package/dist/esm/v3/schemas/scheduleWindow.js.map +1 -1
- package/dist/esm/v3/schemas/schemas.d.ts +788 -7456
- package/dist/esm/v3/schemas/schemas.js +11 -10
- package/dist/esm/v3/schemas/schemas.js.map +1 -1
- package/dist/esm/v3/schemas/snapshotRoute.d.ts +33 -0
- package/dist/esm/v3/schemas/snapshotRoute.js +30 -0
- package/dist/esm/v3/schemas/snapshotRoute.js.map +1 -0
- package/dist/esm/v3/schemas/style.d.ts +24 -86
- package/dist/esm/v3/schemas/style.js +1 -1
- package/dist/esm/v3/schemas/style.js.map +1 -1
- package/dist/esm/v3/schemas/tokens.d.ts +5 -31
- package/dist/esm/v3/schemas/tokens.js +1 -1
- package/dist/esm/v3/schemas/tokens.js.map +1 -1
- package/dist/esm/v3/schemas/warmStart.d.ts +2 -8
- package/dist/esm/v3/schemas/warmStart.js +1 -1
- package/dist/esm/v3/schemas/warmStart.js.map +1 -1
- package/dist/esm/v3/schemas/webhookApi.d.ts +75 -249
- package/dist/esm/v3/schemas/webhookApi.js +2 -2
- package/dist/esm/v3/schemas/webhookApi.js.map +1 -1
- package/dist/esm/v3/schemas/webhookConfig.d.ts +473 -3309
- package/dist/esm/v3/schemas/webhookConfig.js +10 -9
- package/dist/esm/v3/schemas/webhookConfig.js.map +1 -1
- package/dist/esm/v3/schemas/webhookFilter.d.ts +16 -4
- package/dist/esm/v3/schemas/webhookFilter.js +1 -1
- package/dist/esm/v3/schemas/webhookFilter.js.map +1 -1
- package/dist/esm/v3/schemas/webhooks.d.ts +247 -2055
- package/dist/esm/v3/schemas/webhooks.js +3 -2
- package/dist/esm/v3/schemas/webhooks.js.map +1 -1
- package/dist/esm/v3/serverOnly/httpServer.d.ts +19 -8
- package/dist/esm/v3/serverOnly/httpServer.js +5 -2
- package/dist/esm/v3/serverOnly/httpServer.js.map +1 -1
- package/dist/esm/v3/sessionStreams/chatSnapshot.d.ts +163 -16
- package/dist/esm/v3/sessionStreams/chatSnapshot.js +318 -2
- package/dist/esm/v3/sessionStreams/chatSnapshot.js.map +1 -1
- package/dist/esm/v3/sessionStreams/router.d.ts +39 -1
- package/dist/esm/v3/sessionStreams/router.js +62 -0
- package/dist/esm/v3/sessionStreams/router.js.map +1 -1
- package/dist/esm/v3/sessionStreams/wireProtocol.d.ts +15 -0
- package/dist/esm/v3/sessionStreams/wireProtocol.js +15 -0
- package/dist/esm/v3/sessionStreams/wireProtocol.js.map +1 -1
- package/dist/esm/v3/test/test-session-stream-manager.js +5 -1
- package/dist/esm/v3/test/test-session-stream-manager.js.map +1 -1
- package/dist/esm/v3/types/schemas.d.ts +21 -1
- package/dist/esm/v3/types/schemas.js +2 -1
- package/dist/esm/v3/types/schemas.js.map +1 -1
- package/dist/esm/v3/types/tools.d.ts +16 -5
- package/dist/esm/v3/types/tools.js +2 -2
- package/dist/esm/v3/types/tools.js.map +1 -1
- package/dist/esm/v3/utils/ioSerialization.js +1 -1
- package/dist/esm/v3/utils/ioSerialization.js.map +1 -1
- package/dist/esm/v3/utils/zod.d.ts +8 -0
- package/dist/esm/v3/utils/zod.js +5 -0
- package/dist/esm/v3/utils/zod.js.map +1 -0
- package/dist/esm/v3/workloadDeploymentToken.d.ts +2 -21
- package/dist/esm/v3/workloadDeploymentToken.js +1 -1
- package/dist/esm/v3/workloadDeploymentToken.js.map +1 -1
- package/dist/esm/v3/zodIpc.d.ts +6 -6
- package/dist/esm/v3/zodIpc.js +5 -3
- package/dist/esm/v3/zodIpc.js.map +1 -1
- package/dist/esm/v3/zodMessageHandler.d.ts +14 -21
- package/dist/esm/v3/zodMessageHandler.js +16 -3
- package/dist/esm/v3/zodMessageHandler.js.map +1 -1
- package/dist/esm/v3/zodSocket.d.ts +11 -11
- package/dist/esm/v3/zodSocket.js +3 -2
- package/dist/esm/v3/zodSocket.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/package.json +7 -3
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* The `version` field is a forward-compat lever: readers that don't
|
|
17
17
|
* recognise a version silently fall back to no-snapshot behaviour.
|
|
18
18
|
*/
|
|
19
|
-
import { z } from "zod";
|
|
19
|
+
import { z } from "zod/v4";
|
|
20
20
|
/**
|
|
21
21
|
* Zod schema for `ChatSnapshotV1` with the message shape kept opaque
|
|
22
22
|
* (`unknown[]`). The agent runtime types messages strictly via the
|
|
@@ -25,11 +25,103 @@ import { z } from "zod";
|
|
|
25
25
|
*/
|
|
26
26
|
export const ChatSnapshotV1Schema = z.object({
|
|
27
27
|
version: z.literal(1),
|
|
28
|
-
savedAt: z.number(),
|
|
28
|
+
savedAt: z.number().optional(),
|
|
29
29
|
messages: z.array(z.unknown()),
|
|
30
30
|
lastOutEventId: z.string().optional(),
|
|
31
31
|
lastInEventId: z.string().optional(),
|
|
32
32
|
});
|
|
33
|
+
export const TranscriptSnapshotV2Schema = z.object({
|
|
34
|
+
version: z.literal(2),
|
|
35
|
+
savedAt: z.number().optional(),
|
|
36
|
+
messages: z.array(z.object({
|
|
37
|
+
id: z.string(),
|
|
38
|
+
final: z.boolean(),
|
|
39
|
+
message: z.unknown(),
|
|
40
|
+
})),
|
|
41
|
+
state: z.unknown().nullable(),
|
|
42
|
+
lastOutEventId: z.string().optional(),
|
|
43
|
+
lastInEventId: z.string().optional(),
|
|
44
|
+
});
|
|
45
|
+
/**
|
|
46
|
+
* Parse a fetched snapshot blob of any known version into the version 2
|
|
47
|
+
* shape. A version 1 blob is upgraded in memory: every message becomes a
|
|
48
|
+
* `final: true` entry keyed by its `id` and `state` is `null`. In both
|
|
49
|
+
* versions, entries without a non-empty string `id` or a non-null object
|
|
50
|
+
* `message` are dropped; a version 2 entry whose `message.id` disagrees with
|
|
51
|
+
* the envelope `id` is dropped too, since a reader keys by one and renders by
|
|
52
|
+
* the other. A caller never sees an entry it would crash on or mis-order.
|
|
53
|
+
* A missing `savedAt` defaults to `0` rather than rejecting the whole blob:
|
|
54
|
+
* the field only orders snapshot history before live chunks, and dropping a
|
|
55
|
+
* whole conversation over an absent timestamp is the wrong failure mode.
|
|
56
|
+
* Returns `undefined` for an unknown version or a body that is not a
|
|
57
|
+
* snapshot; callers treat that as "no snapshot".
|
|
58
|
+
*/
|
|
59
|
+
export function parseTranscriptSnapshot(input) {
|
|
60
|
+
const v2 = TranscriptSnapshotV2Schema.safeParse(input);
|
|
61
|
+
if (v2.success) {
|
|
62
|
+
const messages = [];
|
|
63
|
+
for (const entry of v2.data.messages) {
|
|
64
|
+
if (entry.id.length === 0)
|
|
65
|
+
continue;
|
|
66
|
+
if (typeof entry.message !== "object" || entry.message === null)
|
|
67
|
+
continue;
|
|
68
|
+
if (entry.message.id !== entry.id)
|
|
69
|
+
continue;
|
|
70
|
+
messages.push({ id: entry.id, final: entry.final, message: entry.message });
|
|
71
|
+
}
|
|
72
|
+
return {
|
|
73
|
+
version: 2,
|
|
74
|
+
savedAt: v2.data.savedAt ?? 0,
|
|
75
|
+
messages,
|
|
76
|
+
state: v2.data.state ?? null,
|
|
77
|
+
lastOutEventId: v2.data.lastOutEventId,
|
|
78
|
+
lastInEventId: v2.data.lastInEventId,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
const v1 = ChatSnapshotV1Schema.safeParse(input);
|
|
82
|
+
if (v1.success) {
|
|
83
|
+
const messages = [];
|
|
84
|
+
for (const raw of v1.data.messages) {
|
|
85
|
+
const id = raw?.id;
|
|
86
|
+
if (typeof id !== "string" || id.length === 0)
|
|
87
|
+
continue;
|
|
88
|
+
messages.push({ id, final: true, message: raw });
|
|
89
|
+
}
|
|
90
|
+
return {
|
|
91
|
+
version: 2,
|
|
92
|
+
savedAt: v1.data.savedAt ?? 0,
|
|
93
|
+
messages,
|
|
94
|
+
state: null,
|
|
95
|
+
lastOutEventId: v1.data.lastOutEventId,
|
|
96
|
+
lastInEventId: v1.data.lastInEventId,
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
return undefined;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Select one page of transcript entries, newest last. `before` keeps only the
|
|
103
|
+
* entries ordered before that id, and yields an empty page when the transcript
|
|
104
|
+
* no longer holds that id; `limit` keeps the last that many. A
|
|
105
|
+
* non-positive `limit` is treated as no limit (every entry, no cursor), so a
|
|
106
|
+
* caller cannot mistake an empty page for the end of the transcript. The
|
|
107
|
+
* returned `nextCursor` is the id to pass as `before` for the previous page,
|
|
108
|
+
* absent when there is no earlier page.
|
|
109
|
+
*/
|
|
110
|
+
export function pageTranscriptEntries(all, opts) {
|
|
111
|
+
let entries = all;
|
|
112
|
+
if (opts?.before !== undefined) {
|
|
113
|
+
const idx = entries.findIndex((e) => e.id === opts.before);
|
|
114
|
+
if (idx === -1)
|
|
115
|
+
return { entries: [], nextCursor: undefined };
|
|
116
|
+
entries = entries.slice(0, idx);
|
|
117
|
+
}
|
|
118
|
+
let nextCursor;
|
|
119
|
+
if (opts?.limit !== undefined && opts.limit > 0 && entries.length > opts.limit) {
|
|
120
|
+
entries = entries.slice(entries.length - opts.limit);
|
|
121
|
+
nextCursor = entries[0]?.id;
|
|
122
|
+
}
|
|
123
|
+
return { entries, nextCursor };
|
|
124
|
+
}
|
|
33
125
|
/**
|
|
34
126
|
* S3 key suffix for a session's snapshot blob. The webapp's presigned
|
|
35
127
|
* URL routes prefix this with `packets/{projectRef}/{envSlug}/`.
|
|
@@ -37,4 +129,228 @@ export const ChatSnapshotV1Schema = z.object({
|
|
|
37
129
|
export function chatSnapshotKeySuffix(sessionId) {
|
|
38
130
|
return `sessions/${sessionId}/snapshot.json`;
|
|
39
131
|
}
|
|
132
|
+
/**
|
|
133
|
+
* Byte length of the fixed trailer that ends a version 2 blob:
|
|
134
|
+
* `#tt2:` + 16 zero-padded digits + `\n`. Fixed width so a reader can fetch
|
|
135
|
+
* exactly this many bytes from the end of the object and learn where the
|
|
136
|
+
* footer starts without a second guess.
|
|
137
|
+
*/
|
|
138
|
+
export const TRANSCRIPT_TRAILER_BYTES = 22;
|
|
139
|
+
/**
|
|
140
|
+
* Media type a version 2 blob is stored under. Object stores return this on a
|
|
141
|
+
* ranged read, so a reader learns the format from the response it already made
|
|
142
|
+
* instead of inferring it from the bytes.
|
|
143
|
+
*/
|
|
144
|
+
export const TRANSCRIPT_BLOB_CONTENT_TYPE = "application/vnd.trigger.transcript+ndjson";
|
|
145
|
+
const TRAILER_PREFIX = "#tt2:";
|
|
146
|
+
const V2_LINE_PREFIX = '{"v":2';
|
|
147
|
+
function utf8Length(value) {
|
|
148
|
+
return new TextEncoder().encode(value).length;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Serialize a snapshot to the version 2 blob format: a header line carrying
|
|
152
|
+
* the cursors and the private runtime `state`, one JSON entry per line, an
|
|
153
|
+
* entry-index footer line, and the fixed trailer.
|
|
154
|
+
*
|
|
155
|
+
* The header holds `state`, so a reader that fetches only the end of the
|
|
156
|
+
* object to serve a transcript page cannot receive the model lane even by
|
|
157
|
+
* accident.
|
|
158
|
+
*/
|
|
159
|
+
export function serializeTranscriptSnapshot(snapshot) {
|
|
160
|
+
const header = JSON.stringify({
|
|
161
|
+
v: 2,
|
|
162
|
+
savedAt: snapshot.savedAt,
|
|
163
|
+
lastOutEventId: snapshot.lastOutEventId,
|
|
164
|
+
lastInEventId: snapshot.lastInEventId,
|
|
165
|
+
state: snapshot.state ?? null,
|
|
166
|
+
});
|
|
167
|
+
const ids = [];
|
|
168
|
+
const offsets = [];
|
|
169
|
+
const lines = [];
|
|
170
|
+
let cursor = utf8Length(header) + 1;
|
|
171
|
+
for (const entry of snapshot.messages) {
|
|
172
|
+
const line = JSON.stringify({ id: entry.id, final: entry.final, message: entry.message });
|
|
173
|
+
ids.push(entry.id);
|
|
174
|
+
offsets.push(cursor);
|
|
175
|
+
lines.push(line);
|
|
176
|
+
cursor += utf8Length(line) + 1;
|
|
177
|
+
}
|
|
178
|
+
offsets.push(cursor);
|
|
179
|
+
const footer = JSON.stringify({
|
|
180
|
+
ids,
|
|
181
|
+
offsets,
|
|
182
|
+
savedAt: snapshot.savedAt,
|
|
183
|
+
lastOutEventId: snapshot.lastOutEventId,
|
|
184
|
+
lastInEventId: snapshot.lastInEventId,
|
|
185
|
+
});
|
|
186
|
+
const trailer = `${TRAILER_PREFIX}${String(utf8Length(footer)).padStart(16, "0")}\n`;
|
|
187
|
+
return `${header}\n${lines.map((line) => `${line}\n`).join("")}${footer}\n${trailer}`;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Read the fixed trailer from the last {@link TRANSCRIPT_TRAILER_BYTES} bytes
|
|
191
|
+
* of a version 2 blob. Returns the footer line's byte length, or `undefined`
|
|
192
|
+
* when the bytes are not a trailer (a version 1 blob, or a truncated write).
|
|
193
|
+
*/
|
|
194
|
+
export function readTranscriptTrailer(trailer) {
|
|
195
|
+
if (!trailer.startsWith(TRAILER_PREFIX) || trailer.length !== TRANSCRIPT_TRAILER_BYTES) {
|
|
196
|
+
return undefined;
|
|
197
|
+
}
|
|
198
|
+
const digits = trailer.slice(TRAILER_PREFIX.length, TRANSCRIPT_TRAILER_BYTES - 1);
|
|
199
|
+
if (!/^\d{16}$/.test(digits))
|
|
200
|
+
return undefined;
|
|
201
|
+
const footerLength = Number(digits);
|
|
202
|
+
return Number.isSafeInteger(footerLength) && footerLength >= 0 ? { footerLength } : undefined;
|
|
203
|
+
}
|
|
204
|
+
/** Parse a version 2 footer line into its entry index. */
|
|
205
|
+
export function parseTranscriptFooter(line) {
|
|
206
|
+
let parsed;
|
|
207
|
+
try {
|
|
208
|
+
parsed = JSON.parse(line);
|
|
209
|
+
}
|
|
210
|
+
catch {
|
|
211
|
+
return undefined;
|
|
212
|
+
}
|
|
213
|
+
if (!parsed || typeof parsed !== "object")
|
|
214
|
+
return undefined;
|
|
215
|
+
const { ids, offsets } = parsed;
|
|
216
|
+
if (!Array.isArray(ids) || !Array.isArray(offsets))
|
|
217
|
+
return undefined;
|
|
218
|
+
if (offsets.length !== ids.length + 1)
|
|
219
|
+
return undefined;
|
|
220
|
+
if (!ids.every((id) => typeof id === "string"))
|
|
221
|
+
return undefined;
|
|
222
|
+
if (!offsets.every((offset) => typeof offset === "number" && Number.isSafeInteger(offset))) {
|
|
223
|
+
return undefined;
|
|
224
|
+
}
|
|
225
|
+
// Offsets must strictly increase. Every entry is a non-empty JSON line plus a
|
|
226
|
+
// newline, so consecutive offsets always differ; equal or descending ones mean
|
|
227
|
+
// corrupt metadata. Accepting equality would hand the reader a zero-length
|
|
228
|
+
// window, which decodes to no entry at all and drops a message from the page
|
|
229
|
+
// while the cursor advances past it, instead of declining here so the caller
|
|
230
|
+
// takes the whole-object fallback.
|
|
231
|
+
const numeric = offsets;
|
|
232
|
+
if (numeric[0] < 0)
|
|
233
|
+
return undefined;
|
|
234
|
+
for (let i = 1; i < numeric.length; i++) {
|
|
235
|
+
if (numeric[i] <= numeric[i - 1])
|
|
236
|
+
return undefined;
|
|
237
|
+
}
|
|
238
|
+
const { savedAt, lastOutEventId, lastInEventId } = parsed;
|
|
239
|
+
return {
|
|
240
|
+
ids: ids,
|
|
241
|
+
offsets: offsets,
|
|
242
|
+
savedAt: typeof savedAt === "number" ? savedAt : undefined,
|
|
243
|
+
lastOutEventId: typeof lastOutEventId === "string" ? lastOutEventId : undefined,
|
|
244
|
+
lastInEventId: typeof lastInEventId === "string" ? lastInEventId : undefined,
|
|
245
|
+
};
|
|
246
|
+
}
|
|
247
|
+
export function planTranscriptPage(footer, opts) {
|
|
248
|
+
let endIndex = footer.ids.length;
|
|
249
|
+
if (opts?.before !== undefined) {
|
|
250
|
+
const idx = footer.ids.indexOf(opts.before);
|
|
251
|
+
if (idx === -1)
|
|
252
|
+
return undefined;
|
|
253
|
+
endIndex = idx;
|
|
254
|
+
}
|
|
255
|
+
const limit = opts?.limit !== undefined && opts.limit > 0 ? opts.limit : undefined;
|
|
256
|
+
let startIndex = 0;
|
|
257
|
+
let nextCursor;
|
|
258
|
+
if (limit !== undefined && endIndex > limit) {
|
|
259
|
+
startIndex = endIndex - limit;
|
|
260
|
+
nextCursor = footer.ids[startIndex];
|
|
261
|
+
}
|
|
262
|
+
if (endIndex <= startIndex)
|
|
263
|
+
return undefined;
|
|
264
|
+
return {
|
|
265
|
+
start: footer.offsets[startIndex],
|
|
266
|
+
end: footer.offsets[endIndex],
|
|
267
|
+
ids: footer.ids.slice(startIndex, endIndex),
|
|
268
|
+
nextCursor,
|
|
269
|
+
startIndex,
|
|
270
|
+
totalEntries: footer.ids.length,
|
|
271
|
+
};
|
|
272
|
+
}
|
|
273
|
+
function parseEntryLine(line) {
|
|
274
|
+
let parsed;
|
|
275
|
+
try {
|
|
276
|
+
parsed = JSON.parse(line);
|
|
277
|
+
}
|
|
278
|
+
catch {
|
|
279
|
+
return undefined;
|
|
280
|
+
}
|
|
281
|
+
if (!parsed || typeof parsed !== "object")
|
|
282
|
+
return undefined;
|
|
283
|
+
const { id, final, message } = parsed;
|
|
284
|
+
if (typeof id !== "string" || id.length === 0)
|
|
285
|
+
return undefined;
|
|
286
|
+
if (typeof message !== "object" || message === null)
|
|
287
|
+
return undefined;
|
|
288
|
+
if (message.id !== id)
|
|
289
|
+
return undefined;
|
|
290
|
+
return { id, final: final === true, message: message };
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* Parse a run of whole entry lines, e.g. the byte window
|
|
294
|
+
* {@link planTranscriptPage} selected. Malformed lines are dropped, matching
|
|
295
|
+
* {@link parseTranscriptSnapshot}: a caller never sees an entry it would crash
|
|
296
|
+
* on or mis-order.
|
|
297
|
+
*/
|
|
298
|
+
export function parseTranscriptEntryLines(text) {
|
|
299
|
+
const entries = [];
|
|
300
|
+
for (const line of text.split("\n")) {
|
|
301
|
+
if (line.length === 0)
|
|
302
|
+
continue;
|
|
303
|
+
const entry = parseEntryLine(line);
|
|
304
|
+
if (entry)
|
|
305
|
+
entries.push(entry);
|
|
306
|
+
}
|
|
307
|
+
return entries;
|
|
308
|
+
}
|
|
309
|
+
/**
|
|
310
|
+
* Parse a whole fetched blob of any known format. Version 2 is the line-based
|
|
311
|
+
* format {@link serializeTranscriptSnapshot} writes; anything else is handed to
|
|
312
|
+
* {@link parseTranscriptSnapshot}, which still reads the version 1 blobs
|
|
313
|
+
* written by released SDKs.
|
|
314
|
+
*/
|
|
315
|
+
export function parseTranscriptBlob(text) {
|
|
316
|
+
if (!text.startsWith(V2_LINE_PREFIX)) {
|
|
317
|
+
let parsed;
|
|
318
|
+
try {
|
|
319
|
+
parsed = JSON.parse(text);
|
|
320
|
+
}
|
|
321
|
+
catch {
|
|
322
|
+
return undefined;
|
|
323
|
+
}
|
|
324
|
+
return parseTranscriptSnapshot(parsed);
|
|
325
|
+
}
|
|
326
|
+
const newline = text.indexOf("\n");
|
|
327
|
+
if (newline === -1)
|
|
328
|
+
return undefined;
|
|
329
|
+
let header;
|
|
330
|
+
try {
|
|
331
|
+
header = JSON.parse(text.slice(0, newline));
|
|
332
|
+
}
|
|
333
|
+
catch {
|
|
334
|
+
return undefined;
|
|
335
|
+
}
|
|
336
|
+
const { savedAt, lastOutEventId, lastInEventId, state } = (header ?? {});
|
|
337
|
+
const trailerStart = text.length - TRANSCRIPT_TRAILER_BYTES;
|
|
338
|
+
const trailer = trailerStart >= 0 ? readTranscriptTrailer(text.slice(trailerStart)) : undefined;
|
|
339
|
+
let body = text.slice(newline + 1);
|
|
340
|
+
if (trailer) {
|
|
341
|
+
// Drop the footer line and the trailer; the entries are everything between
|
|
342
|
+
// the header and them.
|
|
343
|
+
const footerLine = text.lastIndexOf("\n", trailerStart - 2);
|
|
344
|
+
if (footerLine > newline)
|
|
345
|
+
body = text.slice(newline + 1, footerLine + 1);
|
|
346
|
+
}
|
|
347
|
+
return {
|
|
348
|
+
version: 2,
|
|
349
|
+
savedAt: typeof savedAt === "number" ? savedAt : 0,
|
|
350
|
+
messages: parseTranscriptEntryLines(body),
|
|
351
|
+
state: state ?? null,
|
|
352
|
+
lastOutEventId: typeof lastOutEventId === "string" ? lastOutEventId : undefined,
|
|
353
|
+
lastInEventId: typeof lastInEventId === "string" ? lastInEventId : undefined,
|
|
354
|
+
};
|
|
355
|
+
}
|
|
40
356
|
//# sourceMappingURL=chatSnapshot.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chatSnapshot.js","sourceRoot":"","sources":["../../../../src/v3/sessionStreams/chatSnapshot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAmBxB;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACrB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAC9B,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACrC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACrC,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,SAAiB;IACrD,OAAO,YAAY,SAAS,gBAAgB,CAAC;AAC/C,CAAC"}
|
|
1
|
+
{"version":3,"file":"chatSnapshot.js","sourceRoot":"","sources":["../../../../src/v3/sessionStreams/chatSnapshot.ts"],"names":[],"mappings":"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"}
|
|
@@ -57,7 +57,14 @@ export type RouterDropReason =
|
|
|
57
57
|
*/
|
|
58
58
|
| "replayed"
|
|
59
59
|
/** An `at-arrival` record with no handler attached right now. */
|
|
60
|
-
| "no-handler"
|
|
60
|
+
| "no-handler"
|
|
61
|
+
/**
|
|
62
|
+
* A record the boot took responsibility for over HTTP (see
|
|
63
|
+
* {@link SessionChannelRouter.markRecovered}). It is dropped however late the
|
|
64
|
+
* live tail re-delivers it, so a recovered message is never also answered as
|
|
65
|
+
* a router turn.
|
|
66
|
+
*/
|
|
67
|
+
| "recovered";
|
|
61
68
|
export type RouterDecision =
|
|
62
69
|
/** Handed to a consumer that was already waiting, or to a live handler. */
|
|
63
70
|
{
|
|
@@ -127,6 +134,37 @@ export declare class SessionChannelRouter {
|
|
|
127
134
|
restore(checkpoint: RouterCheckpoint): void;
|
|
128
135
|
/** Where a boot should subscribe from: just past this sequence. */
|
|
129
136
|
resumeFrom(): number | undefined;
|
|
137
|
+
/**
|
|
138
|
+
* Declare the sequences a continuation boot already read over HTTP and took
|
|
139
|
+
* responsibility for dispatching itself, so the live tail's re-read of the
|
|
140
|
+
* same records does not answer them a second time.
|
|
141
|
+
*
|
|
142
|
+
* Two effects, deliberately separate:
|
|
143
|
+
*
|
|
144
|
+
* - Every claimed sequence is dropped in {@link ingest} however late it
|
|
145
|
+
* arrives (`"recovered"`), so a record the boot owns never also becomes a
|
|
146
|
+
* router turn. This survives the boot settling it — the boot owns its
|
|
147
|
+
* disposition for the whole run, and the tail may re-deliver at any time.
|
|
148
|
+
* - Each claimed sequence is also *owed*: it holds the resume floor exactly
|
|
149
|
+
* like a queued record would, until the boot {@link settleRecovered}s it.
|
|
150
|
+
* Suppressing the second delivery without this would let a turn boundary
|
|
151
|
+
* publish a floor past a message the boot has not answered yet, turning a
|
|
152
|
+
* duplicate into a dropped message.
|
|
153
|
+
*
|
|
154
|
+
* `#highestSeq` is advanced over the contiguous run of claimed sequences from
|
|
155
|
+
* the current high water, so once every claim is settled the floor can move
|
|
156
|
+
* past them even if the tail never re-delivers (a silent tail then degrades
|
|
157
|
+
* to a duplicate, never a loss). The advance stops at the first gap so a
|
|
158
|
+
* record the boot left for the router is never skipped.
|
|
159
|
+
*/
|
|
160
|
+
markRecovered(seqNums: Iterable<number>): void;
|
|
161
|
+
/**
|
|
162
|
+
* Release a claimed sequence's hold on the resume floor once the boot has
|
|
163
|
+
* decided its disposition (dispatched it as a turn, folded it into the seed
|
|
164
|
+
* chain, or deliberately dropped it). It stays claimed, so a late tail
|
|
165
|
+
* re-delivery is still dropped rather than answered again.
|
|
166
|
+
*/
|
|
167
|
+
settleRecovered(seqNum: number): void;
|
|
130
168
|
/**
|
|
131
169
|
* Classify one record and act on it. The record's destination is decided
|
|
132
170
|
* here, once, and never by whichever consumer happens to be waiting.
|
|
@@ -53,6 +53,8 @@ export class SessionChannelRouter {
|
|
|
53
53
|
#highestSeq;
|
|
54
54
|
#resumeFrom;
|
|
55
55
|
#appliedThrough;
|
|
56
|
+
#claimed = new Set();
|
|
57
|
+
#owed = new Set();
|
|
56
58
|
#onDrop;
|
|
57
59
|
constructor(table, options) {
|
|
58
60
|
this.table = table;
|
|
@@ -94,6 +96,57 @@ export class SessionChannelRouter {
|
|
|
94
96
|
resumeFrom() {
|
|
95
97
|
return this.#resumeFrom;
|
|
96
98
|
}
|
|
99
|
+
/**
|
|
100
|
+
* Declare the sequences a continuation boot already read over HTTP and took
|
|
101
|
+
* responsibility for dispatching itself, so the live tail's re-read of the
|
|
102
|
+
* same records does not answer them a second time.
|
|
103
|
+
*
|
|
104
|
+
* Two effects, deliberately separate:
|
|
105
|
+
*
|
|
106
|
+
* - Every claimed sequence is dropped in {@link ingest} however late it
|
|
107
|
+
* arrives (`"recovered"`), so a record the boot owns never also becomes a
|
|
108
|
+
* router turn. This survives the boot settling it — the boot owns its
|
|
109
|
+
* disposition for the whole run, and the tail may re-deliver at any time.
|
|
110
|
+
* - Each claimed sequence is also *owed*: it holds the resume floor exactly
|
|
111
|
+
* like a queued record would, until the boot {@link settleRecovered}s it.
|
|
112
|
+
* Suppressing the second delivery without this would let a turn boundary
|
|
113
|
+
* publish a floor past a message the boot has not answered yet, turning a
|
|
114
|
+
* duplicate into a dropped message.
|
|
115
|
+
*
|
|
116
|
+
* `#highestSeq` is advanced over the contiguous run of claimed sequences from
|
|
117
|
+
* the current high water, so once every claim is settled the floor can move
|
|
118
|
+
* past them even if the tail never re-delivers (a silent tail then degrades
|
|
119
|
+
* to a duplicate, never a loss). The advance stops at the first gap so a
|
|
120
|
+
* record the boot left for the router is never skipped.
|
|
121
|
+
*/
|
|
122
|
+
markRecovered(seqNums) {
|
|
123
|
+
const nums = [...seqNums].filter((n) => Number.isFinite(n)).sort((a, b) => a - b);
|
|
124
|
+
if (nums.length === 0)
|
|
125
|
+
return;
|
|
126
|
+
for (const n of nums) {
|
|
127
|
+
this.#claimed.add(n);
|
|
128
|
+
this.#owed.add(n);
|
|
129
|
+
}
|
|
130
|
+
let base = this.#highestSeq ?? nums[0] - 1;
|
|
131
|
+
while (this.#claimed.has(base + 1))
|
|
132
|
+
base++;
|
|
133
|
+
if (this.#highestSeq === undefined || base > this.#highestSeq) {
|
|
134
|
+
this.#highestSeq = base;
|
|
135
|
+
}
|
|
136
|
+
const maxClaimed = nums[nums.length - 1];
|
|
137
|
+
if (this.#appliedThrough === undefined || maxClaimed > this.#appliedThrough) {
|
|
138
|
+
this.#appliedThrough = maxClaimed;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Release a claimed sequence's hold on the resume floor once the boot has
|
|
143
|
+
* decided its disposition (dispatched it as a turn, folded it into the seed
|
|
144
|
+
* chain, or deliberately dropped it). It stays claimed, so a late tail
|
|
145
|
+
* re-delivery is still dropped rather than answered again.
|
|
146
|
+
*/
|
|
147
|
+
settleRecovered(seqNum) {
|
|
148
|
+
this.#owed.delete(seqNum);
|
|
149
|
+
}
|
|
97
150
|
/**
|
|
98
151
|
* Classify one record and act on it. The record's destination is decided
|
|
99
152
|
* here, once, and never by whichever consumer happens to be waiting.
|
|
@@ -109,6 +162,9 @@ export class SessionChannelRouter {
|
|
|
109
162
|
this.#highestSeq = record.seqNum;
|
|
110
163
|
}
|
|
111
164
|
}
|
|
165
|
+
if (this.#claimed.has(record.seqNum)) {
|
|
166
|
+
return this.#drop(record, "recovered");
|
|
167
|
+
}
|
|
112
168
|
const kind = this.#kindOf(record.data);
|
|
113
169
|
if (kind === undefined) {
|
|
114
170
|
return this.#drop(record, "malformed");
|
|
@@ -195,6 +251,10 @@ export class SessionChannelRouter {
|
|
|
195
251
|
if (pending !== undefined)
|
|
196
252
|
earliestPending = Math.min(earliestPending, pending);
|
|
197
253
|
}
|
|
254
|
+
for (const owed of this.#owed) {
|
|
255
|
+
if (owed < earliestPending)
|
|
256
|
+
earliestPending = owed;
|
|
257
|
+
}
|
|
198
258
|
if (earliestPending === Infinity)
|
|
199
259
|
return this.#highestSeq;
|
|
200
260
|
const floor = Math.min(this.#highestSeq, earliestPending - 1);
|
|
@@ -393,6 +453,8 @@ export class SessionChannelRouter {
|
|
|
393
453
|
this.#highestSeq = undefined;
|
|
394
454
|
this.#resumeFrom = undefined;
|
|
395
455
|
this.#appliedThrough = undefined;
|
|
456
|
+
this.#claimed.clear();
|
|
457
|
+
this.#owed.clear();
|
|
396
458
|
}
|
|
397
459
|
}
|
|
398
460
|
//# sourceMappingURL=router.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../../../src/v3/sessionStreams/router.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../../../src/v3/sessionStreams/router.ts"],"names":[],"mappings":"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"}
|
|
@@ -46,9 +46,24 @@ export declare const SESSION_IN_EVENT_ID_HEADER: "session-in-event-id";
|
|
|
46
46
|
* boot this bound tells the run which control records it has already seen.
|
|
47
47
|
*/
|
|
48
48
|
export declare const SESSION_IN_CONSUMED_ID_HEADER: "session-in-consumed-id";
|
|
49
|
+
/**
|
|
50
|
+
* Header marking a session as closed. Carried by the `session-closed` control
|
|
51
|
+
* record, and also stamped on a `turn-complete` record when the close was
|
|
52
|
+
* decided before that turn ended — readers terminate their stream on
|
|
53
|
+
* turn-complete, so that is the last moment a live client can be told.
|
|
54
|
+
*/
|
|
55
|
+
export declare const SESSION_CLOSED_HEADER: "session-closed";
|
|
56
|
+
/**
|
|
57
|
+
* Header on `session-closed` records carrying the reason the session was
|
|
58
|
+
* closed, as supplied to `chat.close({ reason })` / `sessions.close()`.
|
|
59
|
+
* Omitted when no reason was given.
|
|
60
|
+
*/
|
|
61
|
+
export declare const SESSION_CLOSED_REASON_HEADER: "session-closed-reason";
|
|
49
62
|
export declare const TRIGGER_CONTROL_SUBTYPE: {
|
|
50
63
|
readonly TURN_COMPLETE: "turn-complete";
|
|
51
64
|
readonly UPGRADE_REQUIRED: "upgrade-required";
|
|
65
|
+
readonly SESSION_CLOSED: "session-closed";
|
|
66
|
+
readonly PENDING_VERSION: "pending-version";
|
|
52
67
|
};
|
|
53
68
|
export type TriggerControlSubtype = (typeof TRIGGER_CONTROL_SUBTYPE)[keyof typeof TRIGGER_CONTROL_SUBTYPE];
|
|
54
69
|
/** Read a single header value by name. Returns the first match. */
|
|
@@ -46,9 +46,24 @@ export const SESSION_IN_EVENT_ID_HEADER = "session-in-event-id";
|
|
|
46
46
|
* boot this bound tells the run which control records it has already seen.
|
|
47
47
|
*/
|
|
48
48
|
export const SESSION_IN_CONSUMED_ID_HEADER = "session-in-consumed-id";
|
|
49
|
+
/**
|
|
50
|
+
* Header marking a session as closed. Carried by the `session-closed` control
|
|
51
|
+
* record, and also stamped on a `turn-complete` record when the close was
|
|
52
|
+
* decided before that turn ended — readers terminate their stream on
|
|
53
|
+
* turn-complete, so that is the last moment a live client can be told.
|
|
54
|
+
*/
|
|
55
|
+
export const SESSION_CLOSED_HEADER = "session-closed";
|
|
56
|
+
/**
|
|
57
|
+
* Header on `session-closed` records carrying the reason the session was
|
|
58
|
+
* closed, as supplied to `chat.close({ reason })` / `sessions.close()`.
|
|
59
|
+
* Omitted when no reason was given.
|
|
60
|
+
*/
|
|
61
|
+
export const SESSION_CLOSED_REASON_HEADER = "session-closed-reason";
|
|
49
62
|
export const TRIGGER_CONTROL_SUBTYPE = {
|
|
50
63
|
TURN_COMPLETE: "turn-complete",
|
|
51
64
|
UPGRADE_REQUIRED: "upgrade-required",
|
|
65
|
+
SESSION_CLOSED: "session-closed",
|
|
66
|
+
PENDING_VERSION: "pending-version",
|
|
52
67
|
};
|
|
53
68
|
/** Read a single header value by name. Returns the first match. */
|
|
54
69
|
export function headerValue(headers, name) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wireProtocol.js","sourceRoot":"","sources":["../../../../src/v3/sessionStreams/wireProtocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,2EAA2E;AAC3E,MAAM,CAAC,MAAM,sBAAsB,GAAG,iBAA0B,CAAC;AAEjE,iFAAiF;AACjF,MAAM,CAAC,MAAM,0BAA0B,GAAG,qBAA8B,CAAC;AAEzE,8EAA8E;AAC9E,MAAM,CAAC,MAAM,kCAAkC,GAAG,eAAwB,CAAC;AAE3E;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,qBAA8B,CAAC;AAEzE;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,wBAAiC,CAAC;AAE/E,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,aAAa,EAAE,eAAe;IAC9B,gBAAgB,EAAE,kBAAkB;
|
|
1
|
+
{"version":3,"file":"wireProtocol.js","sourceRoot":"","sources":["../../../../src/v3/sessionStreams/wireProtocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,2EAA2E;AAC3E,MAAM,CAAC,MAAM,sBAAsB,GAAG,iBAA0B,CAAC;AAEjE,iFAAiF;AACjF,MAAM,CAAC,MAAM,0BAA0B,GAAG,qBAA8B,CAAC;AAEzE,8EAA8E;AAC9E,MAAM,CAAC,MAAM,kCAAkC,GAAG,eAAwB,CAAC;AAE3E;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,qBAA8B,CAAC;AAEzE;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,wBAAiC,CAAC;AAE/E;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,gBAAyB,CAAC;AAE/D;;;;GAIG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,uBAAgC,CAAC;AAE7E,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,aAAa,EAAE,eAAe;IAC9B,gBAAgB,EAAE,kBAAkB;IACpC,cAAc,EAAE,gBAAgB;IAChC,eAAe,EAAE,iBAAiB;CAC1B,CAAC;AAKX,mEAAmE;AACnE,MAAM,UAAU,WAAW,CACzB,OAA6D,EAC7D,IAAY;IAEZ,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAC5B,OAA6D;IAE7D,OAAO,WAAW,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC;AACtD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAA6D;IAE7D,OAAO,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;AAClC,CAAC"}
|
|
@@ -156,7 +156,11 @@ export class TestSessionStreamManager {
|
|
|
156
156
|
return this.seqNums.get(keyFor(sessionId, io));
|
|
157
157
|
}
|
|
158
158
|
setLastSeqNum(sessionId, io, seqNum) {
|
|
159
|
-
|
|
159
|
+
const key = keyFor(sessionId, io);
|
|
160
|
+
const current = this.seqNums.get(key);
|
|
161
|
+
if (current === undefined || seqNum > current) {
|
|
162
|
+
this.seqNums.set(key, seqNum);
|
|
163
|
+
}
|
|
160
164
|
}
|
|
161
165
|
consumeRecord(sessionId, io, seqNum) {
|
|
162
166
|
const key = keyFor(sessionId, io);
|