@assistant-ui/react-ag-ui 0.0.29 → 0.0.31

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 (33) hide show
  1. package/README.md +41 -0
  2. package/dist/index.d.ts +2 -1
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/runtime/AgUiThreadRuntimeCore.d.ts +11 -0
  5. package/dist/runtime/AgUiThreadRuntimeCore.d.ts.map +1 -1
  6. package/dist/runtime/AgUiThreadRuntimeCore.js +186 -12
  7. package/dist/runtime/AgUiThreadRuntimeCore.js.map +1 -1
  8. package/dist/runtime/adapter/run-aggregator.d.ts +18 -5
  9. package/dist/runtime/adapter/run-aggregator.d.ts.map +1 -1
  10. package/dist/runtime/adapter/run-aggregator.js +134 -39
  11. package/dist/runtime/adapter/run-aggregator.js.map +1 -1
  12. package/dist/runtime/adapter/subscriber.d.ts +5 -0
  13. package/dist/runtime/adapter/subscriber.d.ts.map +1 -1
  14. package/dist/runtime/adapter/subscriber.js +55 -36
  15. package/dist/runtime/adapter/subscriber.js.map +1 -1
  16. package/dist/runtime/event-parser.d.ts +5 -1
  17. package/dist/runtime/event-parser.d.ts.map +1 -1
  18. package/dist/runtime/event-parser.js +48 -2
  19. package/dist/runtime/event-parser.js.map +1 -1
  20. package/dist/runtime/types.d.ts +22 -0
  21. package/dist/runtime/types.d.ts.map +1 -1
  22. package/dist/useAgUiRuntime.d.ts +6 -2
  23. package/dist/useAgUiRuntime.d.ts.map +1 -1
  24. package/dist/useAgUiRuntime.js +7 -1
  25. package/dist/useAgUiRuntime.js.map +1 -1
  26. package/package.json +4 -4
  27. package/src/index.ts +5 -0
  28. package/src/runtime/AgUiThreadRuntimeCore.ts +251 -11
  29. package/src/runtime/adapter/run-aggregator.ts +168 -44
  30. package/src/runtime/adapter/subscriber.ts +53 -43
  31. package/src/runtime/event-parser.ts +64 -3
  32. package/src/runtime/types.ts +31 -1
  33. package/src/useAgUiRuntime.ts +23 -3
@@ -1 +1 @@
1
- {"version":3,"file":"event-parser.js","sourceRoot":"","sources":["../../src/runtime/event-parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"event-parser.js","sourceRoot":"","sources":["../../src/runtime/event-parser.ts"],"names":[],"mappings":"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"}
@@ -35,12 +35,34 @@ export type UseAgUiRuntimeOptions = {
35
35
  onCancel?: () => void;
36
36
  adapters?: UseAgUiRuntimeAdapters;
37
37
  };
38
+ export type AgUiInterruptReason = "tool_call" | "input_required" | "confirmation" | (string & {});
39
+ export type AgUiInterrupt = {
40
+ id: string;
41
+ reason: AgUiInterruptReason;
42
+ message?: string;
43
+ toolCallId?: string;
44
+ responseSchema?: Record<string, unknown>;
45
+ expiresAt?: string;
46
+ metadata?: Record<string, unknown>;
47
+ };
48
+ export type AgUiResumeEntry = {
49
+ interruptId: string;
50
+ status: "resolved" | "cancelled";
51
+ payload?: unknown;
52
+ };
53
+ export type AgUiRunFinishedOutcome = {
54
+ type: "success";
55
+ } | {
56
+ type: "interrupt";
57
+ interrupts: AgUiInterrupt[];
58
+ };
38
59
  export type AgUiEvent = {
39
60
  type: "RUN_STARTED";
40
61
  runId: string;
41
62
  } | {
42
63
  type: "RUN_FINISHED";
43
64
  runId: string;
65
+ outcome?: AgUiRunFinishedOutcome;
44
66
  } | {
45
67
  type: "RUN_CANCELLED";
46
68
  runId?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/runtime/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/runtime/types.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,8 @@
1
1
  import type { AssistantRuntime } from "@assistant-ui/core";
2
- import type { UseAgUiRuntimeOptions } from "./runtime/types.js";
3
- export declare function useAgUiRuntime(options: UseAgUiRuntimeOptions): AssistantRuntime;
2
+ import type { AgUiInterrupt, AgUiResumeEntry, UseAgUiRuntimeOptions } from "./runtime/types.js";
3
+ export type AgUiAssistantRuntime = AssistantRuntime & {
4
+ unstable_getPendingInterrupts: () => readonly AgUiInterrupt[];
5
+ unstable_submitInterruptResponses: (responses: readonly AgUiResumeEntry[]) => Promise<void>;
6
+ };
7
+ export declare function useAgUiRuntime(options: UseAgUiRuntimeOptions): AgUiAssistantRuntime;
4
8
  //# sourceMappingURL=useAgUiRuntime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAgUiRuntime.d.ts","sourceRoot":"","sources":["../src/useAgUiRuntime.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,gBAAgB,EAIjB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,KAAK,EAAE,qBAAqB,EAAE,2BAAwB;AAG7D,wBAAgB,cAAc,CAC5B,OAAO,EAAE,qBAAqB,GAC7B,gBAAgB,CAwKlB"}
1
+ {"version":3,"file":"useAgUiRuntime.d.ts","sourceRoot":"","sources":["../src/useAgUiRuntime.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,gBAAgB,EAIjB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,KAAK,EACV,aAAa,EACb,eAAe,EACf,qBAAqB,EACtB,2BAAwB;AAGzB,MAAM,MAAM,oBAAoB,GAAG,gBAAgB,GAAG;IACpD,6BAA6B,EAAE,MAAM,SAAS,aAAa,EAAE,CAAC;IAC9D,iCAAiC,EAAE,CACjC,SAAS,EAAE,SAAS,eAAe,EAAE,KAClC,OAAO,CAAC,IAAI,CAAC,CAAC;CACpB,CAAC;AAEF,wBAAgB,cAAc,CAC5B,OAAO,EAAE,qBAAqB,GAC7B,oBAAoB,CAiLtB"}
@@ -126,7 +126,13 @@ export function useAgUiRuntime(options) {
126
126
  // _version is intentionally included to trigger re-computation when core state changes via notifyUpdate
127
127
  // toolInvocations intentionally excluded: abort/resume use refs internally and work with stale captures
128
128
  [adapterAdapters, core, _version, hasExecutingTools]);
129
- const runtime = useExternalStoreRuntime(store);
129
+ const baseRuntime = useExternalStoreRuntime(store);
130
+ const runtime = useMemo(() => {
131
+ const wrapper = Object.create(baseRuntime);
132
+ wrapper.unstable_getPendingInterrupts = () => core.getPendingInterrupts()?.interrupts ?? [];
133
+ wrapper.unstable_submitInterruptResponses = (responses) => core.submitInterruptResponses(responses);
134
+ return wrapper;
135
+ }, [baseRuntime, core]);
130
136
  useEffect(() => {
131
137
  core.attachRuntime(runtime);
132
138
  return () => {
@@ -1 +1 @@
1
- {"version":3,"file":"useAgUiRuntime.js","sourceRoot":"","sources":["../src/useAgUiRuntime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useAgUiRuntime.js","sourceRoot":"","sources":["../src/useAgUiRuntime.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@assistant-ui/react-ag-ui",
3
- "version": "0.0.29",
3
+ "version": "0.0.31",
4
4
  "description": "AG-UI protocol adapter for assistant-ui",
5
5
  "keywords": [
6
6
  "ag-ui",
@@ -30,8 +30,8 @@
30
30
  "sideEffects": false,
31
31
  "dependencies": {
32
32
  "@ag-ui/client": "^0.0.53",
33
- "@assistant-ui/core": "^0.2.0",
34
- "assistant-stream": "^0.3.13"
33
+ "@assistant-ui/core": "^0.2.3",
34
+ "assistant-stream": "^0.3.15"
35
35
  },
36
36
  "peerDependencies": {
37
37
  "@types/react": "*",
@@ -47,7 +47,7 @@
47
47
  "react": "^19.2.5",
48
48
  "vitest": "^4.1.5",
49
49
  "zod": "^4.4.3",
50
- "@assistant-ui/x-buildutils": "0.0.7"
50
+ "@assistant-ui/x-buildutils": "0.0.8"
51
51
  },
52
52
  "publishConfig": {
53
53
  "access": "public",
package/src/index.ts CHANGED
@@ -1,5 +1,10 @@
1
1
  export { useAgUiRuntime } from "./useAgUiRuntime";
2
+ export type { AgUiAssistantRuntime } from "./useAgUiRuntime";
2
3
  export type {
4
+ AgUiInterrupt,
5
+ AgUiInterruptReason,
6
+ AgUiResumeEntry,
7
+ AgUiRunFinishedOutcome,
3
8
  UseAgUiRuntimeOptions,
4
9
  UseAgUiRuntimeAdapters,
5
10
  UseAgUiThreadListAdapter,
@@ -1,6 +1,11 @@
1
1
  "use client";
2
2
 
3
- import { generateId, fromThreadMessageLike } from "@assistant-ui/core/internal";
3
+ import {
4
+ generateId,
5
+ generateOptimisticId,
6
+ isOptimisticId,
7
+ fromThreadMessageLike,
8
+ } from "@assistant-ui/core/internal";
4
9
  import type {
5
10
  AddToolResultOptions,
6
11
  AppendMessage,
@@ -13,9 +18,13 @@ import type {
13
18
  } from "@assistant-ui/core";
14
19
  import type { HttpAgent } from "@ag-ui/client";
15
20
  import type { Logger } from "./logger";
16
- import type { AgUiEvent } from "./types";
21
+ import type { AgUiEvent, AgUiInterrupt, AgUiResumeEntry } from "./types";
17
22
  import type { ReadonlyJSONValue } from "assistant-stream/utils";
18
- import { RunAggregator } from "./adapter/run-aggregator";
23
+ import {
24
+ AG_UI_METADATA_NAMESPACE,
25
+ type AgUiCustomMetadata,
26
+ RunAggregator,
27
+ } from "./adapter/run-aggregator";
19
28
  import {
20
29
  fromAgUiMessages,
21
30
  toAgUiMessages,
@@ -23,6 +32,8 @@ import {
23
32
  } from "./adapter/conversions";
24
33
  import { createAgUiSubscriber } from "./adapter/subscriber";
25
34
 
35
+ const symbolResumeShim = Symbol("agui-resume-shim");
36
+
26
37
  type RunConfig = NonNullable<AppendMessage["runConfig"]>;
27
38
  type ResumeRunConfig = {
28
39
  parentId: string | null;
@@ -72,6 +83,7 @@ export class AgUiThreadRuntimeCore {
72
83
  this.onCancel = options.onCancel;
73
84
  this.history = options.history;
74
85
  this.notifyUpdate = options.notifyUpdate;
86
+ this.installResumeShim();
75
87
  }
76
88
 
77
89
  updateOptions(options: Omit<CoreOptions, "notifyUpdate">) {
@@ -81,6 +93,7 @@ export class AgUiThreadRuntimeCore {
81
93
  this.onError = options.onError;
82
94
  this.onCancel = options.onCancel;
83
95
  this.history = options.history;
96
+ this.installResumeShim();
84
97
  }
85
98
 
86
99
  attachRuntime(runtime: AssistantRuntime) {
@@ -143,6 +156,7 @@ export class AgUiThreadRuntimeCore {
143
156
 
144
157
  async append(message: AppendMessage): Promise<void> {
145
158
  const startRun = message.startRun ?? message.role === "user";
159
+ if (startRun) this.assertNoPendingInterrupts();
146
160
  if (message.sourceId) {
147
161
  this.messages = this.messages.filter(
148
162
  (entry) => entry.id !== message.sourceId,
@@ -167,6 +181,7 @@ export class AgUiThreadRuntimeCore {
167
181
  parentId: string | null,
168
182
  config: { runConfig?: RunConfig } = {},
169
183
  ): Promise<void> {
184
+ this.assertNoPendingInterrupts();
170
185
  this.resetHead(parentId);
171
186
  this.notifyUpdate();
172
187
  await this.startRun(parentId, config.runConfig);
@@ -178,6 +193,7 @@ export class AgUiThreadRuntimeCore {
178
193
  }
179
194
 
180
195
  async resume(config: ResumeRunConfig): Promise<void> {
196
+ this.assertNoPendingInterrupts();
181
197
  if (config.stream) {
182
198
  this.logger.debug?.(
183
199
  "[agui] resume stream is not supported, falling back to regular run",
@@ -189,6 +205,143 @@ export class AgUiThreadRuntimeCore {
189
205
  );
190
206
  }
191
207
 
208
+ private assertNoPendingInterrupts(): void {
209
+ if (!this.getPendingInterrupts()) return;
210
+ throw new Error(
211
+ "[agui] cannot start a new run while interrupts are pending; resolve them with submitInterruptResponses()",
212
+ );
213
+ }
214
+
215
+ getPendingInterrupts(): {
216
+ messageId: string;
217
+ interrupts: readonly AgUiInterrupt[];
218
+ } | null {
219
+ const assistant = this.messages.findLast((m) => m.role === "assistant") as
220
+ | ThreadAssistantMessage
221
+ | undefined;
222
+ if (
223
+ !assistant ||
224
+ assistant.status?.type !== "requires-action" ||
225
+ assistant.status.reason !== "interrupt"
226
+ ) {
227
+ return null;
228
+ }
229
+ const stored = (
230
+ assistant.metadata.custom[AG_UI_METADATA_NAMESPACE] as
231
+ | AgUiCustomMetadata
232
+ | undefined
233
+ )?.interrupts;
234
+ if (!stored?.length) return null;
235
+ return { messageId: assistant.id, interrupts: stored };
236
+ }
237
+
238
+ async submitInterruptResponses(
239
+ responses: readonly AgUiResumeEntry[],
240
+ ): Promise<void> {
241
+ const pending = this.getPendingInterrupts();
242
+ if (!pending) {
243
+ throw new Error(
244
+ "[agui] submitInterruptResponses: no pending interrupts on this thread",
245
+ );
246
+ }
247
+
248
+ const responsesById = new Map<string, AgUiResumeEntry>();
249
+ for (const entry of responses) {
250
+ if (!entry || typeof entry.interruptId !== "string") {
251
+ throw new Error(
252
+ "[agui] submitInterruptResponses: every entry must have an interruptId",
253
+ );
254
+ }
255
+ if (entry.status !== "resolved" && entry.status !== "cancelled") {
256
+ throw new Error(
257
+ `[agui] submitInterruptResponses: invalid status "${entry.status}" for interrupt ${entry.interruptId}`,
258
+ );
259
+ }
260
+ if (responsesById.has(entry.interruptId)) {
261
+ throw new Error(
262
+ `[agui] submitInterruptResponses: duplicate response for interrupt ${entry.interruptId}`,
263
+ );
264
+ }
265
+ responsesById.set(entry.interruptId, entry);
266
+ }
267
+
268
+ const openIds = pending.interrupts.map((i) => i.id);
269
+ const missing = openIds.filter((id) => !responsesById.has(id));
270
+ if (missing.length > 0) {
271
+ throw new Error(
272
+ `[agui] submitInterruptResponses: missing responses for open interrupts: ${missing.join(", ")}`,
273
+ );
274
+ }
275
+ const known = new Set(openIds);
276
+ const unknownIds = [...responsesById.keys()].filter((id) => !known.has(id));
277
+ if (unknownIds.length > 0) {
278
+ throw new Error(
279
+ `[agui] submitInterruptResponses: unknown interrupt ids: ${unknownIds.join(", ")}`,
280
+ );
281
+ }
282
+
283
+ const now = Date.now();
284
+ for (const interrupt of pending.interrupts) {
285
+ if (!interrupt.expiresAt) continue;
286
+ const expiry = new Date(interrupt.expiresAt).getTime();
287
+ if (Number.isNaN(expiry)) {
288
+ throw new Error(
289
+ `[agui] submitInterruptResponses: interrupt ${interrupt.id} has malformed expiresAt "${interrupt.expiresAt}"`,
290
+ );
291
+ }
292
+ if (expiry <= now) {
293
+ throw new Error(
294
+ `[agui] submitInterruptResponses: interrupt ${interrupt.id} expired at ${interrupt.expiresAt}`,
295
+ );
296
+ }
297
+ }
298
+
299
+ const resume: AgUiResumeEntry[] = openIds.map(
300
+ (id) => responsesById.get(id)!,
301
+ );
302
+
303
+ if (this.isRunningFlag) {
304
+ throw new Error(
305
+ "[agui] submitInterruptResponses: a run is already in progress",
306
+ );
307
+ }
308
+
309
+ this.clearPendingInterrupts(pending.messageId);
310
+ await this.startRun(pending.messageId, this.lastRunConfig, resume);
311
+ }
312
+
313
+ private clearPendingInterrupts(messageId: string): void {
314
+ let touched = false;
315
+ this.messages = this.messages.map((message) => {
316
+ if (message.id !== messageId || message.role !== "assistant")
317
+ return message;
318
+ const assistant = message as ThreadAssistantMessage;
319
+ if (
320
+ assistant.status?.type !== "requires-action" ||
321
+ assistant.status.reason !== "interrupt"
322
+ ) {
323
+ return assistant;
324
+ }
325
+ touched = true;
326
+ const aguiMeta = assistant.metadata.custom[AG_UI_METADATA_NAMESPACE] as
327
+ | AgUiCustomMetadata
328
+ | undefined;
329
+ const { interrupts: _drop, ...restAgui } = aguiMeta ?? {};
330
+ const newCustom = { ...assistant.metadata.custom };
331
+ if (Object.keys(restAgui).length > 0) {
332
+ newCustom[AG_UI_METADATA_NAMESPACE] = restAgui;
333
+ } else {
334
+ delete newCustom[AG_UI_METADATA_NAMESPACE];
335
+ }
336
+ return {
337
+ ...assistant,
338
+ status: { type: "complete" as const, reason: "unknown" as const },
339
+ metadata: { ...assistant.metadata, custom: newCustom },
340
+ };
341
+ });
342
+ if (touched) this.notifyUpdate();
343
+ }
344
+
192
345
  findMessageIdForToolCall(toolCallId: string): string | undefined {
193
346
  let fallbackMessageId: string | undefined;
194
347
  for (let index = this.messages.length - 1; index >= 0; index--) {
@@ -288,6 +441,7 @@ export class AgUiThreadRuntimeCore {
288
441
  private async startRun(
289
442
  parentId: string | null,
290
443
  runConfig?: RunConfig,
444
+ resume?: AgUiResumeEntry[],
291
445
  ): Promise<void> {
292
446
  const normalizedRunConfig = runConfig ?? {};
293
447
  this.lastRunConfig = normalizedRunConfig;
@@ -300,6 +454,7 @@ export class AgUiThreadRuntimeCore {
300
454
  runId,
301
455
  normalizedRunConfig,
302
456
  historicalMessages,
457
+ resume,
303
458
  );
304
459
  const assistantParentId = parentId ?? this.messages.at(-1)?.id ?? null;
305
460
  let assistantMessageId: string | undefined;
@@ -314,7 +469,18 @@ export class AgUiThreadRuntimeCore {
314
469
  const aggregator = new RunAggregator({
315
470
  showThinking: this.showThinking,
316
471
  logger: this.logger,
317
- emit: (update) => this.updateAssistantMessage(ensureAssistant(), update),
472
+ emit: (update) => {
473
+ const resolved = this.updateAssistantMessage(ensureAssistant(), update);
474
+ if (resolved !== assistantMessageId) {
475
+ assistantMessageId = resolved;
476
+ }
477
+ },
478
+ onServerMessageId: (serverId) => {
479
+ const placeholder = ensureAssistant();
480
+ if (placeholder === serverId) return;
481
+ this.reassignAssistantId(placeholder, serverId);
482
+ assistantMessageId = serverId;
483
+ },
318
484
  });
319
485
  const dispatch = (event: AgUiEvent) => this.handleEvent(aggregator, event);
320
486
 
@@ -335,6 +501,7 @@ export class AgUiThreadRuntimeCore {
335
501
  const subscriber = createAgUiSubscriber({
336
502
  dispatch,
337
503
  runId,
504
+ logger: this.logger,
338
505
  onRunFailed: (error) => {
339
506
  this.pendingError = error;
340
507
  this.onError?.(error);
@@ -348,6 +515,7 @@ export class AgUiThreadRuntimeCore {
348
515
  try {
349
516
  (this.agent as any).messages = input.messages;
350
517
  (this.agent as any).threadId = input.threadId;
518
+ (this.agent as any).state = input.state ?? null;
351
519
  } catch {
352
520
  // ignore
353
521
  }
@@ -376,6 +544,7 @@ export class AgUiThreadRuntimeCore {
376
544
  runId: string,
377
545
  runConfig: RunConfig | undefined,
378
546
  historyMessages: readonly ThreadMessage[] | undefined,
547
+ resume?: AgUiResumeEntry[],
379
548
  ) {
380
549
  const threadId = this.agent.threadId || "main";
381
550
  const messages = toAgUiMessages(historyMessages ?? this.messages);
@@ -394,6 +563,28 @@ export class AgUiThreadRuntimeCore {
394
563
  ...(context?.config ?? {}),
395
564
  ...(runConfig?.custom ? { runConfig: runConfig.custom } : {}),
396
565
  },
566
+ ...(resume !== undefined ? { resume } : {}),
567
+ };
568
+ }
569
+
570
+ private installResumeShim(): void {
571
+ const agent = this.agent as any;
572
+ if (agent[symbolResumeShim]) return;
573
+ agent[symbolResumeShim] = true;
574
+ const onInstance = Object.hasOwn(agent, "prepareRunAgentInput");
575
+ const original = onInstance
576
+ ? agent.prepareRunAgentInput
577
+ : Object.getPrototypeOf(agent)?.prepareRunAgentInput;
578
+ if (typeof original !== "function") return;
579
+ agent.prepareRunAgentInput = function (
580
+ this: unknown,
581
+ params: { resume?: unknown } | undefined,
582
+ ) {
583
+ const input = original.call(this, params);
584
+ if (params?.resume !== undefined && input && typeof input === "object") {
585
+ return { ...(input as object), resume: params.resume };
586
+ }
587
+ return input;
397
588
  };
398
589
  }
399
590
 
@@ -410,7 +601,7 @@ export class AgUiThreadRuntimeCore {
410
601
  }
411
602
 
412
603
  private insertAssistantPlaceholder(): string {
413
- const id = generateId();
604
+ const id = generateOptimisticId();
414
605
  const assistant: ThreadAssistantMessage = {
415
606
  id,
416
607
  role: "assistant",
@@ -430,10 +621,43 @@ export class AgUiThreadRuntimeCore {
430
621
  return id;
431
622
  }
432
623
 
624
+ private reassignAssistantId(oldId: string, newId: string): void {
625
+ if (oldId === newId) return;
626
+
627
+ const collidesWithExisting = this.messages.some((m) => m.id === newId);
628
+
629
+ if (collidesWithExisting) {
630
+ this.logger.debug?.(
631
+ "[agui] reassignAssistantId: server id already present in messages, dropping placeholder",
632
+ { oldId, newId },
633
+ );
634
+ this.messages = this.messages.filter((m) => m.id !== oldId);
635
+ } else {
636
+ this.messages = this.messages.map((m) =>
637
+ m.id === oldId ? { ...m, id: newId } : m,
638
+ );
639
+ }
640
+
641
+ const pendingParent = this.assistantHistoryParents.get(oldId);
642
+ if (pendingParent !== undefined) {
643
+ this.assistantHistoryParents.delete(oldId);
644
+ if (!this.assistantHistoryParents.has(newId)) {
645
+ this.assistantHistoryParents.set(newId, pendingParent);
646
+ }
647
+ }
648
+
649
+ if (this.recordedHistoryIds.has(oldId)) {
650
+ this.recordedHistoryIds.delete(oldId);
651
+ this.recordedHistoryIds.add(newId);
652
+ }
653
+
654
+ this.notifyUpdate();
655
+ }
656
+
433
657
  private updateAssistantMessage(
434
658
  messageId: string,
435
659
  update: ChatModelRunResult,
436
- ) {
660
+ ): string {
437
661
  let touched = false;
438
662
  let latestStatus: MessageStatus | undefined;
439
663
  this.messages = this.messages.map((message) => {
@@ -453,12 +677,22 @@ export class AgUiThreadRuntimeCore {
453
677
  metadata,
454
678
  };
455
679
  });
456
- if (touched) {
680
+ if (!touched) return messageId;
681
+
682
+ let resolvedMessageId = messageId;
683
+ const isSettled =
684
+ latestStatus !== undefined && latestStatus.type !== "running";
685
+ if (isSettled && isOptimisticId(messageId)) {
686
+ const stableId = generateId();
687
+ this.reassignAssistantId(messageId, stableId);
688
+ resolvedMessageId = stableId;
689
+ } else {
457
690
  this.notifyUpdate();
458
- if (this.isTerminalStatus(latestStatus)) {
459
- this.persistAssistantHistory(messageId);
460
- }
461
691
  }
692
+ if (this.isPersistableStatus(latestStatus)) {
693
+ this.persistAssistantHistory(resolvedMessageId);
694
+ }
695
+ return resolvedMessageId;
462
696
  }
463
697
 
464
698
  private mergeAssistantMetadata(
@@ -482,6 +716,7 @@ export class AgUiThreadRuntimeCore {
482
716
  unstable_annotations: annotations,
483
717
  unstable_data: data,
484
718
  steps,
719
+ ...(incoming.timing ? { timing: incoming.timing } : {}),
485
720
  custom: incoming.custom
486
721
  ? { ...current.custom, ...incoming.custom }
487
722
  : current.custom,
@@ -558,6 +793,11 @@ export class AgUiThreadRuntimeCore {
558
793
  return status?.type === "complete" || status?.type === "incomplete";
559
794
  }
560
795
 
796
+ private isPersistableStatus(status?: MessageStatus): boolean {
797
+ if (this.isTerminalStatus(status)) return true;
798
+ return status?.type === "requires-action" && status.reason === "interrupt";
799
+ }
800
+
561
801
  private recordHistoryEntry(parentId: string | null, message: ThreadMessage) {
562
802
  this.appendHistoryItem(parentId, message);
563
803
  }
@@ -576,7 +816,7 @@ export class AgUiThreadRuntimeCore {
576
816
  if (parentId === undefined) return;
577
817
  const message = this.messages.find((m) => m.id === messageId);
578
818
  if (!message || message.role !== "assistant") return;
579
- if (!this.isTerminalStatus(message.status)) return;
819
+ if (!this.isPersistableStatus(message.status)) return;
580
820
  this.assistantHistoryParents.delete(messageId);
581
821
  this.appendHistoryItem(parentId, message);
582
822
  }