@trigger.dev/sdk 0.0.0-prerelease-streamfix-20260909094302 → 0.0.0-prerelease-20260909121655

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.
Files changed (142) hide show
  1. package/dist/commonjs/imports/ai-runtime-cjs.cjs.map +1 -1
  2. package/dist/commonjs/imports/ai-runtime.js +2 -0
  3. package/dist/commonjs/v3/ai-shared.d.ts +15 -0
  4. package/dist/commonjs/v3/ai-shared.js +35 -1
  5. package/dist/commonjs/v3/ai-shared.js.map +1 -1
  6. package/dist/commonjs/v3/ai.d.ts +275 -25
  7. package/dist/commonjs/v3/ai.js +1336 -340
  8. package/dist/commonjs/v3/ai.js.map +1 -1
  9. package/dist/commonjs/v3/chat-client.d.ts +11 -2
  10. package/dist/commonjs/v3/chat-client.js +227 -111
  11. package/dist/commonjs/v3/chat-client.js.map +1 -1
  12. package/dist/commonjs/v3/chat-react.d.ts +88 -0
  13. package/dist/commonjs/v3/chat-react.js +130 -1
  14. package/dist/commonjs/v3/chat-react.js.map +1 -1
  15. package/dist/commonjs/v3/chat-server.d.ts +42 -6
  16. package/dist/commonjs/v3/chat-server.js +52 -7
  17. package/dist/commonjs/v3/chat-server.js.map +1 -1
  18. package/dist/commonjs/v3/chat.d.ts +92 -10
  19. package/dist/commonjs/v3/chat.js +328 -73
  20. package/dist/commonjs/v3/chat.js.map +1 -1
  21. package/dist/commonjs/v3/chatSnapshotIo.d.ts +2 -0
  22. package/dist/commonjs/v3/chatSnapshotIo.js +174 -0
  23. package/dist/commonjs/v3/chatSnapshotIo.js.map +1 -0
  24. package/dist/commonjs/v3/chatVersionSkew.d.ts +12 -0
  25. package/dist/commonjs/v3/chatVersionSkew.js +30 -0
  26. package/dist/commonjs/v3/chatVersionSkew.js.map +1 -0
  27. package/dist/commonjs/v3/externalDeploymentId.d.ts +23 -0
  28. package/dist/commonjs/v3/externalDeploymentId.js +43 -0
  29. package/dist/commonjs/v3/externalDeploymentId.js.map +1 -0
  30. package/dist/commonjs/v3/sessions.d.ts +15 -2
  31. package/dist/commonjs/v3/sessions.js +12 -1
  32. package/dist/commonjs/v3/sessions.js.map +1 -1
  33. package/dist/commonjs/v3/shared.js +30 -36
  34. package/dist/commonjs/v3/shared.js.map +1 -1
  35. package/dist/commonjs/v3/test/index.d.ts +1 -0
  36. package/dist/commonjs/v3/test/index.js +3 -1
  37. package/dist/commonjs/v3/test/index.js.map +1 -1
  38. package/dist/commonjs/v3/test/mock-chat-agent.d.ts +47 -4
  39. package/dist/commonjs/v3/test/mock-chat-agent.js +116 -10
  40. package/dist/commonjs/v3/test/mock-chat-agent.js.map +1 -1
  41. package/dist/commonjs/v3/test/test-session-handle.js +6 -0
  42. package/dist/commonjs/v3/test/test-session-handle.js.map +1 -1
  43. package/dist/commonjs/v3/test/transcript-storage-tests.d.ts +40 -0
  44. package/dist/commonjs/v3/test/transcript-storage-tests.js +258 -0
  45. package/dist/commonjs/v3/test/transcript-storage-tests.js.map +1 -0
  46. package/dist/commonjs/v3/transcriptStorage.d.ts +224 -0
  47. package/dist/commonjs/v3/transcriptStorage.js +291 -0
  48. package/dist/commonjs/v3/transcriptStorage.js.map +1 -0
  49. package/dist/commonjs/version.js +1 -1
  50. package/dist/esm/imports/ai-runtime.d.ts +2 -2
  51. package/dist/esm/imports/ai-runtime.js +2 -2
  52. package/dist/esm/imports/ai-runtime.js.map +1 -1
  53. package/dist/esm/v3/ai-shared.d.ts +15 -0
  54. package/dist/esm/v3/ai-shared.js +33 -0
  55. package/dist/esm/v3/ai-shared.js.map +1 -1
  56. package/dist/esm/v3/ai.d.ts +275 -25
  57. package/dist/esm/v3/ai.js +1328 -337
  58. package/dist/esm/v3/ai.js.map +1 -1
  59. package/dist/esm/v3/chat-client.d.ts +11 -2
  60. package/dist/esm/v3/chat-client.js +228 -112
  61. package/dist/esm/v3/chat-client.js.map +1 -1
  62. package/dist/esm/v3/chat-react.d.ts +88 -0
  63. package/dist/esm/v3/chat-react.js +127 -1
  64. package/dist/esm/v3/chat-react.js.map +1 -1
  65. package/dist/esm/v3/chat-server.d.ts +42 -6
  66. package/dist/esm/v3/chat-server.js +53 -8
  67. package/dist/esm/v3/chat-server.js.map +1 -1
  68. package/dist/esm/v3/chat.d.ts +92 -10
  69. package/dist/esm/v3/chat.js +329 -74
  70. package/dist/esm/v3/chat.js.map +1 -1
  71. package/dist/esm/v3/chatSnapshotIo.d.ts +2 -0
  72. package/dist/esm/v3/chatSnapshotIo.js +166 -0
  73. package/dist/esm/v3/chatSnapshotIo.js.map +1 -0
  74. package/dist/esm/v3/chatVersionSkew.d.ts +12 -0
  75. package/dist/esm/v3/chatVersionSkew.js +27 -0
  76. package/dist/esm/v3/chatVersionSkew.js.map +1 -0
  77. package/dist/esm/v3/externalDeploymentId.d.ts +23 -0
  78. package/dist/esm/v3/externalDeploymentId.js +38 -0
  79. package/dist/esm/v3/externalDeploymentId.js.map +1 -0
  80. package/dist/esm/v3/sessions.d.ts +15 -2
  81. package/dist/esm/v3/sessions.js +11 -1
  82. package/dist/esm/v3/sessions.js.map +1 -1
  83. package/dist/esm/v3/shared.js +17 -23
  84. package/dist/esm/v3/shared.js.map +1 -1
  85. package/dist/esm/v3/test/index.d.ts +1 -0
  86. package/dist/esm/v3/test/index.js +1 -0
  87. package/dist/esm/v3/test/index.js.map +1 -1
  88. package/dist/esm/v3/test/mock-chat-agent.d.ts +47 -4
  89. package/dist/esm/v3/test/mock-chat-agent.js +118 -12
  90. package/dist/esm/v3/test/mock-chat-agent.js.map +1 -1
  91. package/dist/esm/v3/test/test-session-handle.js +6 -0
  92. package/dist/esm/v3/test/test-session-handle.js.map +1 -1
  93. package/dist/esm/v3/test/transcript-storage-tests.d.ts +40 -0
  94. package/dist/esm/v3/test/transcript-storage-tests.js +255 -0
  95. package/dist/esm/v3/test/transcript-storage-tests.js.map +1 -0
  96. package/dist/esm/v3/transcriptStorage.d.ts +224 -0
  97. package/dist/esm/v3/transcriptStorage.js +280 -0
  98. package/dist/esm/v3/transcriptStorage.js.map +1 -0
  99. package/dist/esm/version.js +1 -1
  100. package/docs/ai-chat/actions.mdx +55 -23
  101. package/docs/ai-chat/anatomy.mdx +3 -3
  102. package/docs/ai-chat/backend.mdx +125 -48
  103. package/docs/ai-chat/background-injection.mdx +69 -19
  104. package/docs/ai-chat/client-protocol.mdx +5 -4
  105. package/docs/ai-chat/compaction.mdx +13 -7
  106. package/docs/ai-chat/custom-agents.mdx +23 -0
  107. package/docs/ai-chat/fast-starts.mdx +27 -20
  108. package/docs/ai-chat/frontend.mdx +19 -14
  109. package/docs/ai-chat/lifecycle-hooks.mdx +6 -2
  110. package/docs/ai-chat/migrating-from-a-route-handler.mdx +16 -14
  111. package/docs/ai-chat/patterns/database-persistence.mdx +6 -2
  112. package/docs/ai-chat/patterns/native-compaction.mdx +310 -0
  113. package/docs/ai-chat/patterns/persistence-and-replay.mdx +34 -23
  114. package/docs/ai-chat/patterns/skills.mdx +7 -10
  115. package/docs/ai-chat/patterns/version-upgrades.mdx +79 -6
  116. package/docs/ai-chat/pending-messages.mdx +3 -3
  117. package/docs/ai-chat/prompt-caching.mdx +23 -25
  118. package/docs/ai-chat/quick-start.mdx +11 -11
  119. package/docs/ai-chat/reference.mdx +67 -9
  120. package/docs/ai-chat/sessions.mdx +6 -1
  121. package/docs/ai-chat/testing.mdx +2 -1
  122. package/docs/ai-chat/tools.mdx +18 -13
  123. package/docs/ai-chat/transcript-storage.mdx +233 -0
  124. package/docs/ai-chat/upgrade-guide.mdx +2 -2
  125. package/docs/apikeys.mdx +27 -45
  126. package/docs/config/extensions/syncEnvVars.mdx +6 -0
  127. package/docs/deploy-environment-variables.mdx +23 -2
  128. package/docs/deployment/overview.mdx +4 -8
  129. package/docs/deployment/preview-branches.mdx +4 -4
  130. package/docs/deployment/version-skew-protection.mdx +62 -0
  131. package/docs/manual-setup.mdx +7 -7
  132. package/docs/mcp-tools.mdx +9 -0
  133. package/docs/quick-start.mdx +3 -3
  134. package/docs/realtime/auth.mdx +1 -1
  135. package/docs/reports.mdx +157 -0
  136. package/docs/self-hosting/security.mdx +5 -0
  137. package/docs/tasks/scheduled.mdx +24 -0
  138. package/docs/triggering.mdx +1 -1
  139. package/docs/troubleshooting-zod.mdx +158 -0
  140. package/package.json +4 -4
  141. package/skills/trigger-authoring-chat-agent/SKILL.md +41 -29
  142. package/skills/trigger-chat-agent-advanced/SKILL.md +31 -12
@@ -1,6 +1,6 @@
1
- import { resourceCatalog } from "@trigger.dev/core/v3";
1
+ import { resourceCatalog, sessionStreams } from "@trigger.dev/core/v3";
2
2
  import { runInMockTaskContext } from "@trigger.dev/core/v3/test";
3
- import { __setSessionOpenImplForTests, __setSessionStartImplForTests } from "../sessions.js";
3
+ import { __setSessionCloseImplForTests, __setSessionOpenImplForTests, __setSessionStartImplForTests, } from "../sessions.js";
4
4
  import { __resetChatInputRouterForTests, __setReadChatSnapshotImplForTests, __setReplaySessionInTailImplForTests, __setReplaySessionOutTailImplForTests, __setWriteChatSnapshotImplForTests, } from "../ai.js";
5
5
  import { createTestSessionHandle } from "./test-session-handle.js";
6
6
  const CONTROL_CHUNK_TYPES = new Set(["trigger:turn-complete", "trigger:upgrade-required"]);
@@ -10,6 +10,15 @@ function isControlChunk(chunk) {
10
10
  const type = chunk.type;
11
11
  return typeof type === "string" && CONTROL_CHUNK_TYPES.has(type);
12
12
  }
13
+ /**
14
+ * Highest `session.in` seqNum any harness has produced for a session id,
15
+ * keyed by `sessionId`. Production `session.in` is a durable S2 stream whose
16
+ * seqNums are monotonic across the runs of a chat; a fresh in-memory manager
17
+ * per `mockChatAgent` would otherwise restart at 0, so a continuation's
18
+ * follow-up message would collide with the resume floor and be dropped. This
19
+ * survives the per-run manager reset so continuation runs stay monotonic.
20
+ */
21
+ const durableSessionInSeq = new Map();
13
22
  /**
14
23
  * Create an offline test harness for a `chat.agent` task.
15
24
  *
@@ -100,10 +109,10 @@ export function mockChatAgent(agent, options = {}) {
100
109
  let seededReplayChunks = [];
101
110
  let seededReplayPartial;
102
111
  let seededSessionInMessages = [];
112
+ const closeCalls = [];
113
+ let failCloseCalls = 0;
103
114
  __resetChatInputRouterForTests();
104
- __setReadChatSnapshotImplForTests((_id) => {
105
- return seededSnapshot;
106
- });
115
+ __setReadChatSnapshotImplForTests(() => seededSnapshot);
107
116
  __setWriteChatSnapshotImplForTests((_id, snapshot) => {
108
117
  lastWrittenSnapshot = snapshot;
109
118
  });
@@ -126,15 +135,10 @@ export function mockChatAgent(agent, options = {}) {
126
135
  partialRaw: seededReplayPartial,
127
136
  };
128
137
  });
129
- // session.in tail override: each seeded UIMessage becomes a
130
- // { message, metadata: undefined, seqNum: i+1 } entry. Mirrors the
131
- // seq-num pattern from the out-tail stub so cursor-advance logic is
132
- // exercised correctly. `metadata` is `undefined` for seeded users —
133
- // the boot path falls back to `payload.metadata` for those.
134
138
  __setReplaySessionInTailImplForTests(async () => {
135
139
  return seededSessionInMessages.map((message, i) => ({
136
140
  message,
137
- metadata: undefined,
141
+ metadata: clientData,
138
142
  seqNum: i + 1,
139
143
  }));
140
144
  });
@@ -146,6 +150,24 @@ export function mockChatAgent(agent, options = {}) {
146
150
  // so the suspend path resolves cleanly on `runSignal.abort()` without
147
151
  // touching the api client.
148
152
  __setSessionOpenImplForTests((id) => createTestSessionHandle(id, sessionOutState, () => runSignal?.signal));
153
+ // Record `sessions.close()` calls instead of reaching the control plane, so
154
+ // a test can assert the agent actually closed the row (and with what reason).
155
+ __setSessionCloseImplForTests((sessionIdOrExternalId, body) => {
156
+ closeCalls.push({
157
+ sessionId: sessionIdOrExternalId,
158
+ ...(body?.reason ? { reason: body.reason } : {}),
159
+ });
160
+ if (failCloseCalls > 0) {
161
+ failCloseCalls--;
162
+ throw new Error("mockChatAgent: sessions.close() failure injected by the test");
163
+ }
164
+ return {
165
+ id: sessionIdOrExternalId,
166
+ externalId: sessionIdOrExternalId,
167
+ closedAt: new Date().toISOString(),
168
+ closedReason: body?.reason ?? null,
169
+ };
170
+ });
149
171
  // Install the session start override so any test path that invokes
150
172
  // `sessions.start()` (typically through a server action shim like
151
173
  // `chat.createStartSessionAction`) becomes a no-op fixture instead of
@@ -196,7 +218,21 @@ export function mockChatAgent(agent, options = {}) {
196
218
  ...(options.previousRunId ? { previousRunId: options.previousRunId } : {}),
197
219
  ...(options.headStartMessages ? { headStartMessages: options.headStartMessages } : {}),
198
220
  };
199
- sendSessionInput = drivers.sessions.in.send;
221
+ const durableSeq = durableSessionInSeq.get(sessionId);
222
+ if (durableSeq !== undefined) {
223
+ sessionStreams.setLastSeqNum(sessionId, "in", durableSeq);
224
+ }
225
+ const rawSendSessionInput = drivers.sessions.in.send;
226
+ sendSessionInput = async (id, data, io, metadata) => {
227
+ await rawSendSessionInput(id, data, io, metadata);
228
+ const io2 = io ?? "in";
229
+ if (io2 === "in") {
230
+ const latest = sessionStreams.lastSeqNum(id, "in");
231
+ if (latest !== undefined) {
232
+ durableSessionInSeq.set(id, Math.max(durableSessionInSeq.get(id) ?? latest, latest));
233
+ }
234
+ }
235
+ };
200
236
  closeSessionInput = drivers.sessions.in.close;
201
237
  // Record every chunk written to session.out, detect turn-complete.
202
238
  const listener = (chunk) => {
@@ -258,6 +294,7 @@ export function mockChatAgent(agent, options = {}) {
258
294
  // Always clear the test overrides, even if the task threw.
259
295
  __setSessionOpenImplForTests(undefined);
260
296
  __setSessionStartImplForTests(undefined);
297
+ __setSessionCloseImplForTests(undefined);
261
298
  __setReadChatSnapshotImplForTests(undefined);
262
299
  __setWriteChatSnapshotImplForTests(undefined);
263
300
  __setReplaySessionOutTailImplForTests(undefined);
@@ -306,6 +343,33 @@ export function mockChatAgent(agent, options = {}) {
306
343
  metadata: clientData,
307
344
  });
308
345
  },
346
+ async sendPendingMessage(message) {
347
+ await harnessReady;
348
+ const seqBefore = sessionStreams.lastSeqNum(chatId, "in") ?? -1;
349
+ await sendSessionInput(sessionId, {
350
+ kind: "message",
351
+ payload: {
352
+ message,
353
+ chatId,
354
+ trigger: "submit-message",
355
+ metadata: clientData,
356
+ },
357
+ });
358
+ /**
359
+ * Wait for the record to be observable on the channel, not merely for the
360
+ * send call to return. A test that continues on the send alone is racing the
361
+ * append: the message can still be in flight when the step boundary runs, so
362
+ * the injection it was meant to trigger silently does not happen and the test
363
+ * passes while proving nothing.
364
+ */
365
+ const deadline = Date.now() + 5_000;
366
+ while ((sessionStreams.lastSeqNum(chatId, "in") ?? -1) <= seqBefore) {
367
+ if (Date.now() > deadline) {
368
+ throw new Error(`sendPendingMessage: append for ${message.id} never landed on session.in`);
369
+ }
370
+ await new Promise((resolve) => setTimeout(resolve, 5));
371
+ }
372
+ },
309
373
  async sendStop(message) {
310
374
  await harnessReady;
311
375
  await sendSessionInput(sessionId, { kind: "stop", message });
@@ -335,6 +399,39 @@ export function mockChatAgent(agent, options = {}) {
335
399
  new Promise((resolve) => setTimeout(resolve, 1000)),
336
400
  ]);
337
401
  },
402
+ async sendClose() {
403
+ await harnessReady;
404
+ await sendSessionInput(sessionId, {
405
+ kind: "message",
406
+ payload: {
407
+ chatId,
408
+ trigger: "close",
409
+ },
410
+ });
411
+ await harness.waitForExit();
412
+ },
413
+ async waitForExit(timeoutMs = 2000) {
414
+ let timer;
415
+ const timedOut = new Promise((resolve) => {
416
+ timer = setTimeout(() => resolve("timeout"), timeoutMs);
417
+ });
418
+ try {
419
+ const result = await Promise.race([taskFinished.catch(() => "done"), timedOut]);
420
+ if (result === "timeout") {
421
+ throw new Error(`mockChatAgent: run did not exit within ${timeoutMs}ms`);
422
+ }
423
+ }
424
+ finally {
425
+ if (timer)
426
+ clearTimeout(timer);
427
+ }
428
+ },
429
+ getCloseCalls() {
430
+ return [...closeCalls];
431
+ },
432
+ failNextCloseCalls(count) {
433
+ failCloseCalls = count;
434
+ },
338
435
  seedSnapshot(snapshot) {
339
436
  seededSnapshot = snapshot;
340
437
  },
@@ -346,6 +443,15 @@ export function mockChatAgent(agent, options = {}) {
346
443
  },
347
444
  seedSessionInTail(messages) {
348
445
  seededSessionInMessages = messages;
446
+ // The seeded tail occupies seqNums 1..n of the channel, so anything sent
447
+ // live afterwards has to continue above it.
448
+ if (messages.length > 0) {
449
+ sessionStreams.setLastSeqNum(sessionId, "in", messages.length);
450
+ }
451
+ },
452
+ async deliverSessionInAtSeq(message, seqNum) {
453
+ await harnessReady;
454
+ await sendSessionInput(sessionId, { kind: "message", payload: { chatId, trigger: "submit-message", message } }, "in", { seqNum });
349
455
  },
350
456
  getSnapshot() {
351
457
  return lastWrittenSnapshot;
@@ -1 +1 @@
1
- {"version":3,"file":"mock-chat-agent.js","sourceRoot":"","sources":["../../../../src/v3/test/mock-chat-agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mock-chat-agent.js","sourceRoot":"","sources":["../../../../src/v3/test/mock-chat-agent.ts"],"names":[],"mappings":"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"}
@@ -223,6 +223,12 @@ class TestSessionOutputChannel extends SessionOutputChannel {
223
223
  else if (name === "session-in-consumed-id") {
224
224
  synthetic.sessionInConsumedId = value;
225
225
  }
226
+ else if (name === "session-closed") {
227
+ synthetic.sessionClosed = value === "true";
228
+ }
229
+ else if (name === "session-closed-reason") {
230
+ synthetic.reason = value;
231
+ }
226
232
  }
227
233
  }
228
234
  notify(this.state, synthetic);
@@ -1 +1 @@
1
- {"version":3,"file":"test-session-handle.js","sourceRoot":"","sources":["../../../../src/v3/test/test-session-handle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test-session-handle.js","sourceRoot":"","sources":["../../../../src/v3/test/test-session-handle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import { type TranscriptStorage } from "../transcriptStorage.js";
2
+ type TestApi = {
3
+ describe: (name: string, fn: () => void) => void;
4
+ it: (name: string, fn: () => Promise<void> | void) => void;
5
+ expect: (actual: unknown) => {
6
+ toEqual: (expected: unknown) => void;
7
+ toBeNull: () => void;
8
+ toBeUndefined: () => void;
9
+ toBe: (expected: unknown) => void;
10
+ toHaveLength: (length: number) => void;
11
+ };
12
+ };
13
+ export type TranscriptStorageTestOptions = {
14
+ /**
15
+ * The test framework's `describe`, `it` and `expect`. Defaults to the
16
+ * globals a vitest or jest run with `globals: true` provides.
17
+ */
18
+ api?: TestApi;
19
+ /**
20
+ * A chat id the storage accepts. Each test appends a suffix so tests do
21
+ * not see each other's rows. Defaults to `"transcript-conformance"`.
22
+ */
23
+ chatId?: string;
24
+ /** The `clientData` the storage expects in every scope and context. */
25
+ clientData?: unknown;
26
+ };
27
+ /**
28
+ * The contract every `TranscriptStorage` has to meet, as a test suite. Point
29
+ * it at a factory for your storage and run it under vitest or jest:
30
+ *
31
+ * ```ts
32
+ * import { runTranscriptStorageTests } from "@trigger.dev/sdk/ai/test";
33
+ * runTranscriptStorageTests(() => myTranscriptStorage(testDatabaseUrl));
34
+ * ```
35
+ *
36
+ * The factory runs once per test. Return a fresh, empty storage, or one
37
+ * whose chats are isolated by the `chatId` option.
38
+ */
39
+ export declare function runTranscriptStorageTests<TClientData = unknown>(makeStorage: () => TranscriptStorage<TClientData> | Promise<TranscriptStorage<TClientData>>, options?: TranscriptStorageTestOptions): void;
40
+ export {};
@@ -0,0 +1,255 @@
1
+ import { emptyTranscriptState, reduceTranscriptChanges, } from "../transcriptStorage.js";
2
+ function message(id, text, role = "user") {
3
+ return { id, role, parts: [{ type: "text", text }] };
4
+ }
5
+ /**
6
+ * The contract every `TranscriptStorage` has to meet, as a test suite. Point
7
+ * it at a factory for your storage and run it under vitest or jest:
8
+ *
9
+ * ```ts
10
+ * import { runTranscriptStorageTests } from "@trigger.dev/sdk/ai/test";
11
+ * runTranscriptStorageTests(() => myTranscriptStorage(testDatabaseUrl));
12
+ * ```
13
+ *
14
+ * The factory runs once per test. Return a fresh, empty storage, or one
15
+ * whose chats are isolated by the `chatId` option.
16
+ */
17
+ export function runTranscriptStorageTests(makeStorage, options = {}) {
18
+ const globals = globalThis;
19
+ const api = options.api ?? {
20
+ describe: globals.describe,
21
+ it: globals.it,
22
+ expect: globals.expect,
23
+ };
24
+ if (!api.describe || !api.it || !api.expect) {
25
+ throw new Error("runTranscriptStorageTests: no test API found. Enable `globals: true` in your test " +
26
+ "config or pass `{ api: { describe, it, expect } }`.");
27
+ }
28
+ const { describe, it, expect } = api;
29
+ const baseChatId = options.chatId ?? "transcript-conformance";
30
+ const clientData = options.clientData;
31
+ const ctx = (chatId, turn = 0) => ({
32
+ chatId,
33
+ clientData,
34
+ turn,
35
+ trigger: "submit-message",
36
+ runId: "run_conformance",
37
+ ctx: {},
38
+ });
39
+ const scope = (chatId) => ({ chatId, clientData });
40
+ const ids = (messages) => messages.map((m) => m.id);
41
+ const expected = new WeakMap();
42
+ const save = async (storage, context, changeset) => {
43
+ let perChat = expected.get(storage);
44
+ if (!perChat) {
45
+ perChat = new Map();
46
+ expected.set(storage, perChat);
47
+ }
48
+ const transcript = reduceTranscriptChanges(perChat.get(context.chatId) ?? emptyTranscriptState(), changeset.changes);
49
+ perChat.set(context.chatId, transcript);
50
+ await storage.save(context, { ...changeset, transcript });
51
+ };
52
+ describe("TranscriptStorage conformance", () => {
53
+ it("loads an unknown chat as an empty transcript", async () => {
54
+ const storage = await makeStorage();
55
+ const loaded = await storage.load(scope(`${baseChatId}-empty`));
56
+ expect(loaded.messages).toEqual([]);
57
+ expect(loaded.state).toBeNull();
58
+ expect(loaded.nextCursor).toBeUndefined();
59
+ });
60
+ it("appends puts in changeset order and replaces a known id in place", async () => {
61
+ const storage = await makeStorage();
62
+ const chatId = `${baseChatId}-put`;
63
+ await save(storage, ctx(chatId), {
64
+ reason: "turn-complete",
65
+ changes: [
66
+ { op: "put", message: message("u1", "one") },
67
+ { op: "put", message: message("a1", "two", "assistant") },
68
+ { op: "put", message: message("u2", "three") },
69
+ ],
70
+ });
71
+ await save(storage, ctx(chatId, 1), {
72
+ reason: "turn-complete",
73
+ changes: [{ op: "put", message: message("a1", "two, edited", "assistant") }],
74
+ });
75
+ const loaded = await storage.load(scope(chatId));
76
+ expect(ids(loaded.messages)).toEqual(["u1", "a1", "u2"]);
77
+ expect(loaded.messages[1]).toEqual(message("a1", "two, edited", "assistant"));
78
+ });
79
+ it("removes by id and ignores an unknown id", async () => {
80
+ const storage = await makeStorage();
81
+ const chatId = `${baseChatId}-remove`;
82
+ await save(storage, ctx(chatId), {
83
+ reason: "turn-complete",
84
+ changes: [
85
+ { op: "put", message: message("u1", "one") },
86
+ { op: "put", message: message("a1", "two", "assistant") },
87
+ { op: "put", message: message("u2", "three") },
88
+ ],
89
+ });
90
+ await save(storage, ctx(chatId, 1), {
91
+ reason: "action",
92
+ changes: [
93
+ { op: "remove", id: "a1" },
94
+ { op: "remove", id: "never-existed" },
95
+ ],
96
+ });
97
+ expect(ids((await storage.load(scope(chatId))).messages)).toEqual(["u1", "u2"]);
98
+ });
99
+ it("truncates after an id and ignores an unknown id", async () => {
100
+ const storage = await makeStorage();
101
+ const chatId = `${baseChatId}-truncate`;
102
+ await save(storage, ctx(chatId), {
103
+ reason: "turn-complete",
104
+ changes: ["u1", "a1", "u2", "a2"].map((id) => ({
105
+ op: "put",
106
+ message: message(id, id),
107
+ })),
108
+ });
109
+ await save(storage, ctx(chatId, 1), {
110
+ reason: "action",
111
+ changes: [{ op: "truncateAfter", afterId: "never-existed" }],
112
+ });
113
+ expect((await storage.load(scope(chatId))).messages).toHaveLength(4);
114
+ await save(storage, ctx(chatId, 1), {
115
+ reason: "action",
116
+ changes: [{ op: "truncateAfter", afterId: "a1" }],
117
+ });
118
+ expect(ids((await storage.load(scope(chatId))).messages)).toEqual(["u1", "a1"]);
119
+ });
120
+ it("appends after a truncate at the end of the transcript", async () => {
121
+ const storage = await makeStorage();
122
+ const chatId = `${baseChatId}-truncate-append`;
123
+ await save(storage, ctx(chatId), {
124
+ reason: "turn-complete",
125
+ changes: ["u1", "a1", "u2", "a2"].map((id) => ({
126
+ op: "put",
127
+ message: message(id, id),
128
+ })),
129
+ });
130
+ await save(storage, ctx(chatId, 1), {
131
+ reason: "action",
132
+ changes: [
133
+ { op: "truncateAfter", afterId: "u2" },
134
+ { op: "put", message: message("a2b", "regenerated", "assistant") },
135
+ ],
136
+ });
137
+ expect(ids((await storage.load(scope(chatId))).messages)).toEqual(["u1", "a1", "u2", "a2b"]);
138
+ });
139
+ it("round-trips state and clears it with null", async () => {
140
+ const storage = await makeStorage();
141
+ const chatId = `${baseChatId}-state`;
142
+ await save(storage, ctx(chatId), {
143
+ reason: "turn-complete",
144
+ changes: [
145
+ { op: "put", message: message("u1", "one") },
146
+ { op: "state", value: { v: 1, summary: "so far" } },
147
+ ],
148
+ });
149
+ expect((await storage.load(scope(chatId))).state).toEqual({ v: 1, summary: "so far" });
150
+ await save(storage, ctx(chatId, 1), {
151
+ reason: "turn-complete",
152
+ changes: [{ op: "put", message: message("u2", "two") }],
153
+ });
154
+ expect((await storage.load(scope(chatId))).state).toEqual({ v: 1, summary: "so far" });
155
+ await save(storage, ctx(chatId, 2), {
156
+ reason: "action",
157
+ changes: [{ op: "state", value: null }],
158
+ });
159
+ expect((await storage.load(scope(chatId))).state).toBeNull();
160
+ });
161
+ it("keeps the latest cursors it was given", async () => {
162
+ const storage = await makeStorage();
163
+ const chatId = `${baseChatId}-cursors`;
164
+ await save(storage, ctx(chatId), {
165
+ reason: "turn-complete",
166
+ changes: [{ op: "put", message: message("u1", "one") }],
167
+ cursors: { lastOutEventId: "10", lastInEventId: "2" },
168
+ });
169
+ await save(storage, ctx(chatId, 1), {
170
+ reason: "turn-complete",
171
+ changes: [{ op: "put", message: message("u2", "two") }],
172
+ cursors: { lastOutEventId: "20", lastInEventId: "4" },
173
+ });
174
+ const loaded = await storage.load(scope(chatId));
175
+ expect(loaded.cursors?.lastOutEventId).toBe("20");
176
+ expect(loaded.cursors?.lastInEventId).toBe("4");
177
+ });
178
+ it("keeps a partial answer's non-final status when the storage reports it", async () => {
179
+ const storage = await makeStorage();
180
+ const chatId = `${baseChatId}-final`;
181
+ await save(storage, ctx(chatId), {
182
+ reason: "turn-error",
183
+ changes: [
184
+ { op: "put", message: message("u1", "one") },
185
+ { op: "put", message: message("a1", "partial", "assistant"), final: false },
186
+ ],
187
+ });
188
+ const partial = await storage.load(scope(chatId));
189
+ if (partial.nonFinalIds !== undefined) {
190
+ expect(partial.nonFinalIds).toEqual(["a1"]);
191
+ }
192
+ await save(storage, ctx(chatId, 1), {
193
+ reason: "turn-complete",
194
+ changes: [{ op: "put", message: message("a1", "the finished answer", "assistant") }],
195
+ });
196
+ const finalized = await storage.load(scope(chatId));
197
+ expect(ids(finalized.messages)).toEqual(["u1", "a1"]);
198
+ if (finalized.nonFinalIds !== undefined) {
199
+ expect(finalized.nonFinalIds).toEqual([]);
200
+ }
201
+ });
202
+ it("converges when the same changeset is saved twice", async () => {
203
+ const storage = await makeStorage();
204
+ const chatId = `${baseChatId}-replay`;
205
+ const changeset = {
206
+ reason: "turn-complete",
207
+ changes: [
208
+ { op: "put", message: message("u1", "one") },
209
+ { op: "put", message: message("a1", "two", "assistant") },
210
+ { op: "state", value: { v: 1 } },
211
+ ],
212
+ cursors: { lastOutEventId: "7" },
213
+ };
214
+ await save(storage, ctx(chatId), changeset);
215
+ await save(storage, ctx(chatId), changeset);
216
+ const loaded = await storage.load(scope(chatId));
217
+ expect(ids(loaded.messages)).toEqual(["u1", "a1"]);
218
+ expect(loaded.state).toEqual({ v: 1 });
219
+ });
220
+ it("pages from the most recent message backwards with limit and before", async () => {
221
+ const storage = await makeStorage();
222
+ const chatId = `${baseChatId}-paging`;
223
+ await save(storage, ctx(chatId), {
224
+ reason: "turn-complete",
225
+ changes: ["m1", "m2", "m3", "m4", "m5"].map((id) => ({
226
+ op: "put",
227
+ message: message(id, id),
228
+ })),
229
+ });
230
+ const last = await storage.load(scope(chatId), { limit: 2 });
231
+ expect(ids(last.messages)).toEqual(["m4", "m5"]);
232
+ expect(last.nextCursor).toBe("m4");
233
+ const middle = await storage.load(scope(chatId), { limit: 2, before: last.nextCursor });
234
+ expect(ids(middle.messages)).toEqual(["m2", "m3"]);
235
+ expect(middle.nextCursor).toBe("m2");
236
+ const first = await storage.load(scope(chatId), { limit: 2, before: middle.nextCursor });
237
+ expect(ids(first.messages)).toEqual(["m1"]);
238
+ expect(first.nextCursor).toBeUndefined();
239
+ });
240
+ it("keeps chats apart", async () => {
241
+ const storage = await makeStorage();
242
+ await save(storage, ctx(`${baseChatId}-a`), {
243
+ reason: "turn-complete",
244
+ changes: [{ op: "put", message: message("u1", "in a") }],
245
+ });
246
+ await save(storage, ctx(`${baseChatId}-b`), {
247
+ reason: "turn-complete",
248
+ changes: [{ op: "put", message: message("u1", "in b") }],
249
+ });
250
+ expect((await storage.load(scope(`${baseChatId}-a`))).messages[0]).toEqual(message("u1", "in a"));
251
+ expect((await storage.load(scope(`${baseChatId}-b`))).messages[0]).toEqual(message("u1", "in b"));
252
+ });
253
+ });
254
+ }
255
+ //# sourceMappingURL=transcript-storage-tests.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transcript-storage-tests.js","sourceRoot":"","sources":["../../../../src/v3/test/transcript-storage-tests.ts"],"names":[],"mappings":"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"}