@trigger.dev/sdk 0.0.0-prerelease-20260908122921 → 0.0.0-prerelease-20260909071038

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 (76) hide show
  1. package/dist/commonjs/v3/ai-shared.d.ts +15 -0
  2. package/dist/commonjs/v3/ai-shared.js +35 -1
  3. package/dist/commonjs/v3/ai-shared.js.map +1 -1
  4. package/dist/commonjs/v3/ai.d.ts +76 -9
  5. package/dist/commonjs/v3/ai.js +316 -222
  6. package/dist/commonjs/v3/ai.js.map +1 -1
  7. package/dist/commonjs/v3/chat-client.d.ts +8 -0
  8. package/dist/commonjs/v3/chat-client.js +199 -109
  9. package/dist/commonjs/v3/chat-client.js.map +1 -1
  10. package/dist/commonjs/v3/chat-react.d.ts +54 -0
  11. package/dist/commonjs/v3/chat-react.js +83 -0
  12. package/dist/commonjs/v3/chat-react.js.map +1 -1
  13. package/dist/commonjs/v3/chat.d.ts +11 -0
  14. package/dist/commonjs/v3/chat.js +36 -27
  15. package/dist/commonjs/v3/chat.js.map +1 -1
  16. package/dist/commonjs/v3/chatSnapshotIo.d.ts +2 -0
  17. package/dist/commonjs/v3/chatSnapshotIo.js +174 -0
  18. package/dist/commonjs/v3/chatSnapshotIo.js.map +1 -0
  19. package/dist/commonjs/v3/test/index.d.ts +1 -0
  20. package/dist/commonjs/v3/test/index.js +3 -1
  21. package/dist/commonjs/v3/test/index.js.map +1 -1
  22. package/dist/commonjs/v3/test/mock-chat-agent.d.ts +4 -4
  23. package/dist/commonjs/v3/test/mock-chat-agent.js +25 -4
  24. package/dist/commonjs/v3/test/mock-chat-agent.js.map +1 -1
  25. package/dist/commonjs/v3/test/transcript-storage-tests.d.ts +40 -0
  26. package/dist/commonjs/v3/test/transcript-storage-tests.js +258 -0
  27. package/dist/commonjs/v3/test/transcript-storage-tests.js.map +1 -0
  28. package/dist/commonjs/v3/transcriptStorage.d.ts +229 -0
  29. package/dist/commonjs/v3/transcriptStorage.js +321 -0
  30. package/dist/commonjs/v3/transcriptStorage.js.map +1 -0
  31. package/dist/commonjs/version.js +1 -1
  32. package/dist/esm/v3/ai-shared.d.ts +15 -0
  33. package/dist/esm/v3/ai-shared.js +33 -0
  34. package/dist/esm/v3/ai-shared.js.map +1 -1
  35. package/dist/esm/v3/ai.d.ts +76 -9
  36. package/dist/esm/v3/ai.js +306 -217
  37. package/dist/esm/v3/ai.js.map +1 -1
  38. package/dist/esm/v3/chat-client.d.ts +8 -0
  39. package/dist/esm/v3/chat-client.js +200 -110
  40. package/dist/esm/v3/chat-client.js.map +1 -1
  41. package/dist/esm/v3/chat-react.d.ts +54 -0
  42. package/dist/esm/v3/chat-react.js +81 -0
  43. package/dist/esm/v3/chat-react.js.map +1 -1
  44. package/dist/esm/v3/chat.d.ts +11 -0
  45. package/dist/esm/v3/chat.js +36 -27
  46. package/dist/esm/v3/chat.js.map +1 -1
  47. package/dist/esm/v3/chatSnapshotIo.d.ts +2 -0
  48. package/dist/esm/v3/chatSnapshotIo.js +166 -0
  49. package/dist/esm/v3/chatSnapshotIo.js.map +1 -0
  50. package/dist/esm/v3/test/index.d.ts +1 -0
  51. package/dist/esm/v3/test/index.js +1 -0
  52. package/dist/esm/v3/test/index.js.map +1 -1
  53. package/dist/esm/v3/test/mock-chat-agent.d.ts +4 -4
  54. package/dist/esm/v3/test/mock-chat-agent.js +25 -4
  55. package/dist/esm/v3/test/mock-chat-agent.js.map +1 -1
  56. package/dist/esm/v3/test/transcript-storage-tests.d.ts +40 -0
  57. package/dist/esm/v3/test/transcript-storage-tests.js +255 -0
  58. package/dist/esm/v3/test/transcript-storage-tests.js.map +1 -0
  59. package/dist/esm/v3/transcriptStorage.d.ts +229 -0
  60. package/dist/esm/v3/transcriptStorage.js +309 -0
  61. package/dist/esm/v3/transcriptStorage.js.map +1 -0
  62. package/dist/esm/version.js +1 -1
  63. package/docs/ai-chat/actions.mdx +2 -2
  64. package/docs/ai-chat/background-injection.mdx +2 -0
  65. package/docs/ai-chat/compaction.mdx +2 -0
  66. package/docs/ai-chat/frontend.mdx +2 -0
  67. package/docs/ai-chat/lifecycle-hooks.mdx +6 -2
  68. package/docs/ai-chat/patterns/database-persistence.mdx +6 -2
  69. package/docs/ai-chat/patterns/persistence-and-replay.mdx +34 -23
  70. package/docs/ai-chat/reference.mdx +56 -5
  71. package/docs/ai-chat/transcript-storage.mdx +233 -0
  72. package/docs/config/extensions/syncEnvVars.mdx +6 -0
  73. package/docs/deploy-environment-variables.mdx +23 -2
  74. package/package.json +2 -2
  75. package/skills/trigger-authoring-chat-agent/SKILL.md +3 -2
  76. package/skills/trigger-chat-agent-advanced/SKILL.md +5 -5
@@ -181,6 +181,14 @@ export declare class AgentChat<TAgent = unknown> {
181
181
  private readonly baseURLResolver;
182
182
  private readonly fetchOverride;
183
183
  private state;
184
+ /**
185
+ * Which subscription armed `skipToTurnComplete`, so only that stream ends at
186
+ * the gated boundary. A later stream reads the same boundary as stale history
187
+ * and keeps reading to its own turn. Deliberately not in `state`: a stop does
188
+ * not outlive the process that issued it.
189
+ */
190
+ private streamSeq;
191
+ private stoppedStreamId;
184
192
  constructor(options: AgentChatOptions<TAgent>);
185
193
  /** The conversation ID. */
186
194
  get id(): string;
@@ -168,6 +168,14 @@ class AgentChat {
168
168
  baseURLResolver;
169
169
  fetchOverride;
170
170
  state;
171
+ /**
172
+ * Which subscription armed `skipToTurnComplete`, so only that stream ends at
173
+ * the gated boundary. A later stream reads the same boundary as stale history
174
+ * and keeps reading to its own turn. Deliberately not in `state`: a stop does
175
+ * not outlive the process that issued it.
176
+ */
177
+ streamSeq = 0;
178
+ stoppedStreamId;
171
179
  constructor(options) {
172
180
  this.taskId = options.agent;
173
181
  this.chatId = options.id ?? crypto.randomUUID();
@@ -256,7 +264,7 @@ class AgentChat {
256
264
  metadata: this.clientData,
257
265
  };
258
266
  await this.appendInputChunk(serializeInputChunk({ kind: "message", payload }));
259
- return this.subscribeToSessionStream(options?.abortSignal);
267
+ return this.subscribeToSessionStream(options?.abortSignal, { resumeAfterEof: true });
260
268
  }
261
269
  /** Send a steering message during an active stream. */
262
270
  async steer(text) {
@@ -285,6 +293,7 @@ class AgentChat {
285
293
  if (!this.state.started)
286
294
  return;
287
295
  this.state.skipToTurnComplete = true;
296
+ this.stoppedStreamId = this.streamSeq;
288
297
  await this.appendInputChunk(serializeInputChunk({ kind: "stop" })).catch(() => { });
289
298
  }
290
299
  /**
@@ -357,7 +366,9 @@ class AgentChat {
357
366
  catch {
358
367
  throw new Error("Failed to send action. The session may have ended.");
359
368
  }
360
- const rawStream = this.subscribeToSessionStream(options?.abortSignal);
369
+ const rawStream = this.subscribeToSessionStream(options?.abortSignal, {
370
+ resumeAfterEof: true,
371
+ });
361
372
  return new ChatStream(rawStream);
362
373
  }
363
374
  /** Close the conversation — agent exits its loop gracefully. */
@@ -504,6 +515,12 @@ class AgentChat {
504
515
  }
505
516
  subscribeToSessionStream(abortSignal, options) {
506
517
  const state = this.state;
518
+ const streamId = ++this.streamSeq;
519
+ // A stop was outstanding when I subscribed and it isn't mine: my window
520
+ // replays the stopped turn's tail, so I drop records up to and including
521
+ // its boundary. Captured per subscription — the stopped stream is still
522
+ // live and may consume the shared seed before I reach that record.
523
+ let skipStaleBoundary = state.skipToTurnComplete === true && this.stoppedStreamId !== streamId;
507
524
  const accessToken = v3_1.apiClientManager.accessToken ?? "";
508
525
  const onTurnComplete = this.onTurnComplete;
509
526
  const chatId = this.chatId;
@@ -531,135 +548,208 @@ class AgentChat {
531
548
  const combinedSignal = abortSignal
532
549
  ? AbortSignal.any([abortSignal, internalAbort.signal])
533
550
  : internalAbort.signal;
534
- if (abortSignal) {
535
- abortSignal.addEventListener("abort", () => {
536
- if (options?.sendStopOnAbort !== false) {
537
- state.skipToTurnComplete = true;
538
- this.appendInputChunk(serializeInputChunk({ kind: "stop" })).catch(() => { });
539
- }
540
- internalAbort.abort();
541
- }, { once: true });
542
- }
551
+ // Detached once the stream ends (see the `finally` below): a caller reusing
552
+ // one signal across turns would otherwise stack listeners, and a late abort
553
+ // would post a stop that gates the next turn.
554
+ const onExternalAbort = () => {
555
+ if (options?.sendStopOnAbort !== false) {
556
+ state.skipToTurnComplete = true;
557
+ this.stoppedStreamId = streamId;
558
+ this.appendInputChunk(serializeInputChunk({ kind: "stop" })).catch(() => { });
559
+ }
560
+ internalAbort.abort();
561
+ };
562
+ abortSignal?.addEventListener("abort", onExternalAbort, { once: true });
543
563
  const streamUrl = `${this.resolveBaseURL("out")}/realtime/v1/sessions/${encodeURIComponent(chatId)}/out`;
544
564
  return new ReadableStream({
545
565
  start: async (controller) => {
546
- try {
547
- const subscription = new v3_1.SSEStreamSubscription(streamUrl, {
548
- headers: {
549
- Authorization: `Bearer ${accessToken}`,
550
- // Preview-env sessions are branch-scoped (see appendInputChunk).
551
- ...(v3_1.apiClientManager.branchName
552
- ? { "x-trigger-branch": v3_1.apiClientManager.branchName }
553
- : {}),
554
- ...(options?.peekSettled ? { "X-Peek-Settled": "1" } : {}),
555
- },
556
- signal: combinedSignal,
557
- timeoutInSeconds: this.streamTimeoutSeconds,
558
- lastEventId: state.lastEventId,
559
- fetchClient: sseFetchClient,
560
- });
561
- const sseStream = await subscription.subscribe();
562
- const reader = sseStream.getReader();
566
+ let eofResubscribes = 0;
567
+ let sawLiveTurn = false;
568
+ const closeController = () => {
563
569
  try {
564
- while (true) {
565
- const next = await reader.read();
566
- if (next.done) {
567
- controller.close();
568
- return;
569
- }
570
- if (combinedSignal.aborted) {
571
- internalAbort.abort();
572
- await reader.cancel();
573
- controller.close();
574
- return;
575
- }
576
- const value = next.value;
577
- if (value.id)
578
- state.lastEventId = value.id;
579
- // Trigger control records (turn-complete, upgrade-required)
580
- // route by header — see `client-protocol.mdx`. Their bodies
581
- // are empty; everything substantive is on `value.headers`.
582
- //
583
- // Cross-version bridge: an old agent SDK still writing
584
- // turn-complete / upgrade-required as `chunk.type` data
585
- // records would otherwise stall this loop. Fall back to
586
- // the legacy chunk-type form when no header is present
587
- // so the deploy-skew window between an `AgentChat`
588
- // consumer and a not-yet-redeployed agent doesn't hang.
589
- let controlValue = (0, v3_1.controlSubtype)(value.headers);
590
- if (!controlValue && value.chunk && typeof value.chunk === "object") {
591
- const chunk = value.chunk;
592
- if (chunk.type === "trigger:turn-complete") {
593
- controlValue = v3_1.TRIGGER_CONTROL_SUBTYPE.TURN_COMPLETE;
570
+ controller.close();
571
+ }
572
+ catch {
573
+ // Controller may already be closed
574
+ }
575
+ };
576
+ const openSubscription = () => new v3_1.SSEStreamSubscription(streamUrl, {
577
+ headers: {
578
+ Authorization: `Bearer ${accessToken}`,
579
+ // Preview-env sessions are branch-scoped (see appendInputChunk).
580
+ ...(v3_1.apiClientManager.branchName
581
+ ? { "x-trigger-branch": v3_1.apiClientManager.branchName }
582
+ : {}),
583
+ ...(options?.peekSettled ? { "X-Peek-Settled": "1" } : {}),
584
+ },
585
+ signal: combinedSignal,
586
+ timeoutInSeconds: this.streamTimeoutSeconds,
587
+ lastEventId: state.lastEventId,
588
+ fetchClient: sseFetchClient,
589
+ });
590
+ try {
591
+ while (true) {
592
+ const subscription = openSubscription();
593
+ const sseStream = await subscription.subscribe();
594
+ const reader = sseStream.getReader();
595
+ try {
596
+ while (true) {
597
+ const next = await reader.read();
598
+ if (next.done) {
599
+ break;
600
+ }
601
+ if (combinedSignal.aborted) {
602
+ internalAbort.abort();
603
+ await reader.cancel();
604
+ closeController();
605
+ return;
594
606
  }
595
- else if (chunk.type === "trigger:upgrade-required") {
596
- controlValue = v3_1.TRIGGER_CONTROL_SUBTYPE.UPGRADE_REQUIRED;
607
+ const value = next.value;
608
+ if (value.id)
609
+ state.lastEventId = value.id;
610
+ // Any record re-earns the resubscribe budget: a clean EOF is
611
+ // the normal end of every long-poll window, so a long turn
612
+ // spanning many windows must not exhaust it.
613
+ eofResubscribes = 0;
614
+ // Trigger control records (turn-complete, upgrade-required)
615
+ // route by header — see `client-protocol.mdx`. Their bodies
616
+ // are empty; everything substantive is on `value.headers`.
617
+ //
618
+ // Cross-version bridge: an old agent SDK still writing
619
+ // turn-complete / upgrade-required as `chunk.type` data
620
+ // records would otherwise stall this loop. Fall back to
621
+ // the legacy chunk-type form when no header is present
622
+ // so the deploy-skew window between an `AgentChat`
623
+ // consumer and a not-yet-redeployed agent doesn't hang.
624
+ let controlValue = (0, v3_1.controlSubtype)(value.headers);
625
+ if (!controlValue && value.chunk && typeof value.chunk === "object") {
626
+ const chunk = value.chunk;
627
+ if (chunk.type === "trigger:turn-complete") {
628
+ controlValue = v3_1.TRIGGER_CONTROL_SUBTYPE.TURN_COMPLETE;
629
+ }
630
+ else if (chunk.type === "trigger:upgrade-required") {
631
+ controlValue = v3_1.TRIGGER_CONTROL_SUBTYPE.UPGRADE_REQUIRED;
632
+ }
633
+ else if (typeof chunk.type === "string" && chunk.type.startsWith("trigger:")) {
634
+ // Future / unknown `trigger:*` legacy control type —
635
+ // drop so it doesn't leak as a UIMessageChunk.
636
+ continue;
637
+ }
597
638
  }
598
- else if (typeof chunk.type === "string" && chunk.type.startsWith("trigger:")) {
599
- // Future / unknown `trigger:*` legacy control type —
600
- // drop so it doesn't leak as a UIMessageChunk.
639
+ // Stale tail of a turn someone else stopped: swallow it and
640
+ // keep reading to my own turn.
641
+ if (skipStaleBoundary) {
642
+ if (controlValue === v3_1.TRIGGER_CONTROL_SUBTYPE.TURN_COMPLETE) {
643
+ skipStaleBoundary = false;
644
+ state.skipToTurnComplete = false;
645
+ }
601
646
  continue;
602
647
  }
603
- }
604
- if (state.skipToTurnComplete) {
605
- if (controlValue === v3_1.TRIGGER_CONTROL_SUBTYPE.TURN_COMPLETE) {
606
- state.skipToTurnComplete = false;
648
+ // I am the stopped stream, so this turn is over at its
649
+ // boundary: close rather than resume into windows it will
650
+ // never fill. Keyed on the id alone, so it holds however far
651
+ // the follow-up subscription has got.
652
+ if (this.stoppedStreamId === streamId) {
653
+ if (controlValue === v3_1.TRIGGER_CONTROL_SUBTYPE.TURN_COMPLETE) {
654
+ state.skipToTurnComplete = false;
655
+ this.stoppedStreamId = undefined;
656
+ internalAbort.abort();
657
+ closeController();
658
+ return;
659
+ }
660
+ continue;
607
661
  }
608
- continue;
609
- }
610
- if (controlValue === v3_1.TRIGGER_CONTROL_SUBTYPE.UPGRADE_REQUIRED) {
611
- // Server has already triggered the new run via
612
- // `end-and-continue`; v2's chunks arrive on the same
613
- // S2 stream. Filter the marker for cleanliness and
614
- // keep reading.
615
- continue;
616
- }
617
- if (controlValue === v3_1.TRIGGER_CONTROL_SUBTYPE.PENDING_VERSION) {
618
- continue;
619
- }
620
- if (controlValue === v3_1.TRIGGER_CONTROL_SUBTYPE.TURN_COMPLETE) {
621
- // Customer's callback may be async (e.g. persisting
622
- // lastEventId to a DB). Wrap so a rejected Promise
623
- // doesn't surface as an unhandled rejection — that
624
- // would crash Node under `--unhandled-rejections=throw`.
625
- Promise.resolve(onTurnComplete?.({
626
- chatId,
627
- lastEventId: state.lastEventId,
628
- })).catch(() => { });
629
- internalAbort.abort();
630
- try {
631
- controller.close();
662
+ // Both handover markers mean the turn carries on in a
663
+ // successor run, so they count as a live turn: its chunks
664
+ // may only arrive in a later window.
665
+ if (controlValue === v3_1.TRIGGER_CONTROL_SUBTYPE.UPGRADE_REQUIRED) {
666
+ // Server has already triggered the new run via
667
+ // `end-and-continue`; v2's chunks arrive on the same
668
+ // S2 stream. Filter the marker for cleanliness and
669
+ // keep reading.
670
+ sawLiveTurn = true;
671
+ continue;
672
+ }
673
+ if (controlValue === v3_1.TRIGGER_CONTROL_SUBTYPE.PENDING_VERSION) {
674
+ sawLiveTurn = true;
675
+ continue;
676
+ }
677
+ // A standalone session-closed record is written after
678
+ // turn-complete, so only a reconnect ever reads it. The
679
+ // conversation is over: end the stream, no stop, no error.
680
+ if (controlValue === v3_1.TRIGGER_CONTROL_SUBTYPE.SESSION_CLOSED) {
681
+ internalAbort.abort();
682
+ closeController();
683
+ return;
632
684
  }
633
- catch {
634
- // Controller may already be closed
685
+ if (controlValue === v3_1.TRIGGER_CONTROL_SUBTYPE.TURN_COMPLETE) {
686
+ // Customer's callback may be async (e.g. persisting
687
+ // lastEventId to a DB). Wrap so a rejected Promise
688
+ // doesn't surface as an unhandled rejection — that
689
+ // would crash Node under `--unhandled-rejections=throw`.
690
+ Promise.resolve(onTurnComplete?.({
691
+ chatId,
692
+ lastEventId: state.lastEventId,
693
+ })).catch(() => { });
694
+ internalAbort.abort();
695
+ closeController();
696
+ return;
635
697
  }
636
- return;
698
+ // Data record — `value.chunk` is the parsed UIMessageChunk
699
+ // (the SSE parser does the JSON envelope unwrap). Drop
700
+ // empty/malformed payloads defensively.
701
+ if (value.chunk == null)
702
+ continue;
703
+ // Parts and the handover markers above are the only evidence of
704
+ // a live turn. Unknown control records stay neutral: they are no
705
+ // reason for a reconnect to pin another long-poll window.
706
+ sawLiveTurn = true;
707
+ controller.enqueue(value.chunk);
637
708
  }
638
- // Data record — `value.chunk` is the parsed UIMessageChunk
639
- // (the SSE parser does the JSON envelope unwrap). Drop
640
- // empty/malformed payloads defensively.
641
- if (value.chunk == null)
642
- continue;
643
- controller.enqueue(value.chunk);
644
709
  }
645
- }
646
- catch (readError) {
710
+ catch (readError) {
711
+ reader.releaseLock();
712
+ throw readError;
713
+ }
647
714
  reader.releaseLock();
648
- throw readError;
715
+ // The body ended without a turn-complete. A turn is in flight
716
+ // either by construction (the send paths) or because records have
717
+ // already flowed on this stream — so unless the server says the
718
+ // session settled we lost the window mid-turn, and resubscribing
719
+ // from the last event id beats truncating the turn. A `reconnect()`
720
+ // that never saw a record can't tell a live turn from a dead
721
+ // session, so it closes rather than pin another long-poll window.
722
+ const turnInFlight = options?.resumeAfterEof || sawLiveTurn;
723
+ if (!turnInFlight || subscription.sessionSettled || combinedSignal.aborted) {
724
+ closeController();
725
+ return;
726
+ }
727
+ if (eofResubscribes >= ai_shared_js_1.MAX_EOF_RESUBSCRIBES) {
728
+ throw new Error("Chat stream ended before the turn completed (reconnect budget exhausted).");
729
+ }
730
+ eofResubscribes++;
731
+ await (0, ai_shared_js_1.waitBeforeEofResubscribe)(eofResubscribes, combinedSignal);
732
+ if (combinedSignal.aborted) {
733
+ closeController();
734
+ return;
735
+ }
649
736
  }
650
737
  }
651
738
  catch (error) {
652
739
  if (error instanceof Error && error.name === "AbortError") {
653
- try {
654
- controller.close();
655
- }
656
- catch {
657
- // Controller may already be closed
658
- }
740
+ closeController();
659
741
  return;
660
742
  }
661
743
  controller.error(error);
662
744
  }
745
+ finally {
746
+ abortSignal?.removeEventListener("abort", onExternalAbort);
747
+ }
748
+ },
749
+ // A consumer that stops reading must also stop the resubscribe loop —
750
+ // otherwise it keeps reopening a subscription nobody is draining.
751
+ cancel: () => {
752
+ internalAbort.abort();
663
753
  },
664
754
  });
665
755
  }
@@ -1 +1 @@
1
- {"version":3,"file":"chat-client.js","sourceRoot":"","sources":["../../../src/v3/chat-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat-client.js","sourceRoot":"","sources":["../../../src/v3/chat-client.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,60 @@ export type UseTriggerChatTransportOptions<TTask extends AnyTask = AnyTask> = Om
16
16
  };
17
17
  export type { InferChatUIMessage };
18
18
  export type { ChatTransportEvent, ChatTransportSendSource } from "./chat.js";
19
+ /** What a `chat.createLoadTranscriptAction` action returns, as `useLoadTranscript` reads it. */
20
+ export type LoadTranscriptResult<TUIMessage extends UIMessage = UIMessage> = {
21
+ messages: TUIMessage[];
22
+ cursors?: {
23
+ lastOutEventId?: string;
24
+ lastInEventId?: string;
25
+ };
26
+ nextCursor?: string;
27
+ };
28
+ export type UseLoadTranscriptOptions = {
29
+ /**
30
+ * When given, the transport's resume cursor for this chat is seeded from
31
+ * the loaded transcript, so the live subscription opens just past the
32
+ * persisted history instead of replaying it. Only applies once the
33
+ * transport knows the session (from `sessions` or after `start`).
34
+ */
35
+ transport?: TriggerChatTransport;
36
+ /** Page size passed to the action. */
37
+ limit?: number;
38
+ };
39
+ /**
40
+ * Move the transport's resume cursor for `chatId` to the transcript's
41
+ * `lastOutEventId`, so the live subscription opens just past the persisted
42
+ * history. Applied to the session now if it exists, otherwise held by the
43
+ * transport until the session is created, so a load that resolves before the
44
+ * session exists still moves the cursor. A no-op when the transcript carries
45
+ * no cursor. Returns whether a cursor was provided.
46
+ */
47
+ export declare function seedTranscriptCursor(transport: Pick<TriggerChatTransport, "seedResumeCursor">, chatId: string, cursors: {
48
+ lastOutEventId?: string;
49
+ } | undefined): boolean;
50
+ /**
51
+ * Load a conversation's history through a server action created with
52
+ * `chat.createLoadTranscriptAction`, for rendering before the chat connects.
53
+ *
54
+ * Re-runs when `chatId` changes. Pass `undefined` to load nothing.
55
+ *
56
+ * @example
57
+ * ```tsx
58
+ * const { messages, isLoading } = useLoadTranscript(chatId, loadTranscript, { transport });
59
+ * if (isLoading) return <Spinner />;
60
+ * return <ChatView chatId={chatId} initialMessages={messages} transport={transport} />;
61
+ * ```
62
+ */
63
+ export declare function useLoadTranscript<TUIMessage extends UIMessage = UIMessage>(chatId: string | undefined, load: (params: {
64
+ chatId: string;
65
+ limit?: number;
66
+ }) => Promise<LoadTranscriptResult<TUIMessage>>, options?: UseLoadTranscriptOptions): {
67
+ messages: TUIMessage[];
68
+ isLoading: boolean;
69
+ error: Error | undefined;
70
+ /** The id to pass as `before` to the action for the page before this one. */
71
+ nextCursor: string | undefined;
72
+ };
19
73
  /**
20
74
  * React hook that creates and memoizes a `TriggerChatTransport` instance.
21
75
  *
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  "use client";
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.seedTranscriptCursor = seedTranscriptCursor;
5
+ exports.useLoadTranscript = useLoadTranscript;
4
6
  exports.useTriggerChatTransport = useTriggerChatTransport;
5
7
  exports.useMultiTabChat = useMultiTabChat;
6
8
  exports.usePendingMessages = usePendingMessages;
@@ -30,6 +32,87 @@ exports.useChatActions = useChatActions;
30
32
  const react_1 = require("react");
31
33
  const chat_js_1 = require("./chat.js");
32
34
  const ai_shared_js_1 = require("./ai-shared.js");
35
+ /**
36
+ * Move the transport's resume cursor for `chatId` to the transcript's
37
+ * `lastOutEventId`, so the live subscription opens just past the persisted
38
+ * history. Applied to the session now if it exists, otherwise held by the
39
+ * transport until the session is created, so a load that resolves before the
40
+ * session exists still moves the cursor. A no-op when the transcript carries
41
+ * no cursor. Returns whether a cursor was provided.
42
+ */
43
+ function seedTranscriptCursor(transport, chatId, cursors) {
44
+ const lastEventId = cursors?.lastOutEventId;
45
+ if (!lastEventId)
46
+ return false;
47
+ transport.seedResumeCursor(chatId, lastEventId);
48
+ return true;
49
+ }
50
+ /**
51
+ * Load a conversation's history through a server action created with
52
+ * `chat.createLoadTranscriptAction`, for rendering before the chat connects.
53
+ *
54
+ * Re-runs when `chatId` changes. Pass `undefined` to load nothing.
55
+ *
56
+ * @example
57
+ * ```tsx
58
+ * const { messages, isLoading } = useLoadTranscript(chatId, loadTranscript, { transport });
59
+ * if (isLoading) return <Spinner />;
60
+ * return <ChatView chatId={chatId} initialMessages={messages} transport={transport} />;
61
+ * ```
62
+ */
63
+ function useLoadTranscript(chatId, load, options) {
64
+ const [state, setState] = (0, react_1.useState)({
65
+ chatId,
66
+ messages: [],
67
+ isLoading: chatId !== undefined,
68
+ error: undefined,
69
+ nextCursor: undefined,
70
+ });
71
+ const loadRef = (0, react_1.useRef)(load);
72
+ loadRef.current = load;
73
+ const transportRef = (0, react_1.useRef)(options?.transport);
74
+ transportRef.current = options?.transport;
75
+ const limit = options?.limit;
76
+ (0, react_1.useEffect)(() => {
77
+ if (chatId === undefined) {
78
+ setState({ chatId, messages: [], isLoading: false, error: undefined, nextCursor: undefined });
79
+ return;
80
+ }
81
+ let cancelled = false;
82
+ setState({ chatId, messages: [], isLoading: true, error: undefined, nextCursor: undefined });
83
+ loadRef
84
+ .current({ chatId, ...(limit !== undefined ? { limit } : {}) })
85
+ .then((result) => {
86
+ if (cancelled)
87
+ return;
88
+ if (transportRef.current) {
89
+ seedTranscriptCursor(transportRef.current, chatId, result.cursors);
90
+ }
91
+ setState({
92
+ chatId,
93
+ messages: result.messages,
94
+ isLoading: false,
95
+ error: undefined,
96
+ nextCursor: result.nextCursor,
97
+ });
98
+ })
99
+ .catch((cause) => {
100
+ if (cancelled)
101
+ return;
102
+ const error = cause instanceof Error ? cause : new Error(String(cause));
103
+ setState({ chatId, messages: [], isLoading: false, error, nextCursor: undefined });
104
+ });
105
+ return () => {
106
+ cancelled = true;
107
+ };
108
+ }, [chatId, limit]);
109
+ return {
110
+ messages: state.chatId === chatId ? state.messages : [],
111
+ isLoading: state.chatId === chatId ? state.isLoading : chatId !== undefined,
112
+ error: state.chatId === chatId ? state.error : undefined,
113
+ nextCursor: state.chatId === chatId ? state.nextCursor : undefined,
114
+ };
115
+ }
33
116
  /**
34
117
  * React hook that creates and memoizes a `TriggerChatTransport` instance.
35
118
  *