@agent-native/toolkit 0.198.4 → 0.198.6

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 (96) hide show
  1. package/dist/app/agentkit/react/components.d.ts +6 -3
  2. package/dist/app/agentkit/react/components.d.ts.map +1 -1
  3. package/dist/app/agentkit/react/components.js +98 -68
  4. package/dist/app/agentkit/react/components.js.map +1 -1
  5. package/dist/app/agentkit/react/styles.css +36 -24
  6. package/dist/app/chat/AgentKitAssistantChat.d.ts.map +1 -1
  7. package/dist/app/chat/AgentKitAssistantChat.js +32 -15
  8. package/dist/app/chat/AgentKitAssistantChat.js.map +1 -1
  9. package/dist/app/chat/AgentPanel.d.ts +1 -1
  10. package/dist/app/chat/AgentPanel.d.ts.map +1 -1
  11. package/dist/app/chat/AgentPanel.js +11 -38
  12. package/dist/app/chat/AgentPanel.js.map +1 -1
  13. package/dist/app/chat/AgentSidebar.d.ts.map +1 -1
  14. package/dist/app/chat/AgentSidebar.js +3 -11
  15. package/dist/app/chat/AgentSidebar.js.map +1 -1
  16. package/dist/app/chat/chat/tool-call-display.d.ts +2 -1
  17. package/dist/app/chat/chat/tool-call-display.d.ts.map +1 -1
  18. package/dist/app/chat/chat/tool-call-display.js +83 -55
  19. package/dist/app/chat/chat/tool-call-display.js.map +1 -1
  20. package/dist/app/i18n/catalogs/ar-SA.d.ts.map +1 -1
  21. package/dist/app/i18n/catalogs/ar-SA.js +1 -0
  22. package/dist/app/i18n/catalogs/ar-SA.js.map +1 -1
  23. package/dist/app/i18n/catalogs/de-DE.d.ts.map +1 -1
  24. package/dist/app/i18n/catalogs/de-DE.js +1 -0
  25. package/dist/app/i18n/catalogs/de-DE.js.map +1 -1
  26. package/dist/app/i18n/catalogs/en-US.d.ts +1 -0
  27. package/dist/app/i18n/catalogs/en-US.d.ts.map +1 -1
  28. package/dist/app/i18n/catalogs/en-US.js +1 -0
  29. package/dist/app/i18n/catalogs/en-US.js.map +1 -1
  30. package/dist/app/i18n/catalogs/es-ES.d.ts.map +1 -1
  31. package/dist/app/i18n/catalogs/es-ES.js +1 -0
  32. package/dist/app/i18n/catalogs/es-ES.js.map +1 -1
  33. package/dist/app/i18n/catalogs/fr-FR.d.ts.map +1 -1
  34. package/dist/app/i18n/catalogs/fr-FR.js +1 -0
  35. package/dist/app/i18n/catalogs/fr-FR.js.map +1 -1
  36. package/dist/app/i18n/catalogs/hi-IN.d.ts.map +1 -1
  37. package/dist/app/i18n/catalogs/hi-IN.js +1 -0
  38. package/dist/app/i18n/catalogs/hi-IN.js.map +1 -1
  39. package/dist/app/i18n/catalogs/ja-JP.d.ts.map +1 -1
  40. package/dist/app/i18n/catalogs/ja-JP.js +1 -0
  41. package/dist/app/i18n/catalogs/ja-JP.js.map +1 -1
  42. package/dist/app/i18n/catalogs/ko-KR.d.ts.map +1 -1
  43. package/dist/app/i18n/catalogs/ko-KR.js +1 -0
  44. package/dist/app/i18n/catalogs/ko-KR.js.map +1 -1
  45. package/dist/app/i18n/catalogs/pt-BR.d.ts.map +1 -1
  46. package/dist/app/i18n/catalogs/pt-BR.js +1 -0
  47. package/dist/app/i18n/catalogs/pt-BR.js.map +1 -1
  48. package/dist/app/i18n/catalogs/zh-CN.d.ts.map +1 -1
  49. package/dist/app/i18n/catalogs/zh-CN.js +1 -0
  50. package/dist/app/i18n/catalogs/zh-CN.js.map +1 -1
  51. package/dist/app/i18n/catalogs/zh-TW.d.ts.map +1 -1
  52. package/dist/app/i18n/catalogs/zh-TW.js +1 -0
  53. package/dist/app/i18n/catalogs/zh-TW.js.map +1 -1
  54. package/dist/composer/PromptComposer.d.ts +3 -0
  55. package/dist/composer/PromptComposer.d.ts.map +1 -1
  56. package/dist/composer/PromptComposer.js +2 -2
  57. package/dist/composer/PromptComposer.js.map +1 -1
  58. package/dist/composer/TiptapComposer.d.ts +4 -1
  59. package/dist/composer/TiptapComposer.d.ts.map +1 -1
  60. package/dist/composer/TiptapComposer.js +32 -25
  61. package/dist/composer/TiptapComposer.js.map +1 -1
  62. package/dist/ui/sonner.js +1 -1
  63. package/dist/ui/sonner.js.map +1 -1
  64. package/package.json +3 -3
  65. package/src/app/agentkit/react/components.interaction.spec.tsx +93 -0
  66. package/src/app/agentkit/react/components.spec.tsx +1 -2
  67. package/src/app/agentkit/react/components.tsx +185 -132
  68. package/src/app/agentkit/react/composer-context.spec.tsx +7 -0
  69. package/src/app/agentkit/react/lifecycle.spec.tsx +556 -39
  70. package/src/app/agentkit/react/styles.css +36 -24
  71. package/src/app/chat/AgentKitAssistantChat.spec.tsx +60 -1
  72. package/src/app/chat/AgentKitAssistantChat.tsx +45 -14
  73. package/src/app/chat/AgentPanel.overlay.spec.tsx +28 -4
  74. package/src/app/chat/AgentPanel.tsx +51 -168
  75. package/src/app/chat/AgentSidebar.spec.tsx +19 -19
  76. package/src/app/chat/AgentSidebar.tsx +59 -94
  77. package/src/app/chat/chat/tool-call-display.spec.tsx +371 -15
  78. package/src/app/chat/chat/tool-call-display.tsx +154 -80
  79. package/src/app/i18n/catalogs/ar-SA.ts +1 -0
  80. package/src/app/i18n/catalogs/de-DE.ts +1 -0
  81. package/src/app/i18n/catalogs/en-US.ts +1 -0
  82. package/src/app/i18n/catalogs/es-ES.ts +1 -0
  83. package/src/app/i18n/catalogs/fr-FR.ts +1 -0
  84. package/src/app/i18n/catalogs/hi-IN.ts +1 -0
  85. package/src/app/i18n/catalogs/ja-JP.ts +1 -0
  86. package/src/app/i18n/catalogs/ko-KR.ts +1 -0
  87. package/src/app/i18n/catalogs/pt-BR.ts +1 -0
  88. package/src/app/i18n/catalogs/zh-CN.ts +1 -0
  89. package/src/app/i18n/catalogs/zh-TW.ts +1 -0
  90. package/src/app-shell/sidebar-overflow.spec.tsx +2 -1
  91. package/src/composer/PromptComposer.context.spec.tsx +28 -15
  92. package/src/composer/PromptComposer.tsx +7 -0
  93. package/src/composer/TiptapComposer.spec.ts +40 -6
  94. package/src/composer/TiptapComposer.tsx +89 -89
  95. package/src/ui/sonner.spec.ts +15 -0
  96. package/src/ui/sonner.tsx +1 -1
@@ -40,11 +40,12 @@ export declare function formatAgentKitDuration(ms: number, units?: {
40
40
  minute?: string;
41
41
  second?: string;
42
42
  }): string;
43
- export declare function AgentActivityGroup({ runId, afterSequence, throughSequence, excludeAgentActivities, }: {
43
+ export declare function AgentActivityGroup({ runId, afterSequence, throughSequence, excludeAgentActivities, isCurrentSegment, }: {
44
44
  runId?: RunId;
45
45
  afterSequence?: number;
46
46
  throughSequence?: number;
47
47
  excludeAgentActivities?: boolean;
48
+ isCurrentSegment?: boolean;
48
49
  }): import("react").JSX.Element | null;
49
50
  export declare function AgentCollaborationFeed({ runId, afterSequence, throughSequence, }: AgentEventRange): import("react").JSX.Element | null;
50
51
  export declare function AgentTaskItem({ value: task, threadId, }: AgentKitRenderProps<AgentTask>): import("react").JSX.Element;
@@ -73,7 +74,7 @@ export declare function AgentMessageActions({ value: message, threadId, }: Agent
73
74
  export declare function AgentMessageView({ value: message, threadId, }: AgentKitRenderProps<AgentMessage>): import("react").JSX.Element | null;
74
75
  export declare function AgentRunFailure({ error, runId, threadId, }: AgentRunFailureRenderProps): import("react").JSX.Element;
75
76
  export declare function AgentConnectionErrorView({ error, threadId, recover, recovering, recoveryError, }: AgentConnectionErrorRenderProps): import("react").JSX.Element;
76
- export interface AgentKitComposerProps extends Omit<Pick<PromptComposerProps, "slashCommands" | "slashSkills" | "includeDefaultSlashCommands" | "includeDefaultSlashSkills" | "onSlashCommand" | "plusMenuMode" | "voiceEnabled" | "autoFocus" | "disabled" | "submissionDisabled" | "onDisabledClick" | "initialText" | "initialTextKey" | "layoutVariant" | "availableModels" | "modelListLoading" | "selectedModel" | "selectedEngine" | "selectedEffort" | "placeholder" | "onConnectProvider" | "onConnectLocalRuntime" | "imageModelMenu" | "onModelChange" | "onEffortChange" | "availableAgents" | "selectedAgent" | "agentOnly" | "onAgentChange" | "onModelSelectorOpenChange" | "modelStatusChecksEnabled" | "requireAgentEngine" | "attachmentsEnabled" | "onAttachmentRequest" | "contextButtonTooltipDisabled" | "onTextChange" | "contextItems" | "onRemoveContextItem" | "onInspectContextItem" | "onRetryContextItem" | "contextMenuItems" | "attachmentAdapter" | "inlineTextAttachments" | "extraActionButton" | "onSubmit" | "onBeforeSubmit" | "onAttachmentError" | "interceptBuildRequestsForBuilder" | "planModeDisabled" | "planModeDisabledReason" | "stopButton">, "onSubmit"> {
77
+ export interface AgentKitComposerProps extends Omit<Pick<PromptComposerProps, "slashCommands" | "slashSkills" | "includeDefaultSlashCommands" | "includeDefaultSlashSkills" | "onSlashCommand" | "plusMenuMode" | "voiceEnabled" | "autoFocus" | "disabled" | "submissionDisabled" | "onDisabledClick" | "initialText" | "initialTextKey" | "layoutVariant" | "availableModels" | "modelListLoading" | "selectedModel" | "selectedEngine" | "selectedEffort" | "placeholder" | "onConnectProvider" | "onConnectLocalRuntime" | "imageModelMenu" | "onModelChange" | "onEffortChange" | "availableAgents" | "selectedAgent" | "agentOnly" | "onAgentChange" | "onModelSelectorOpenChange" | "modelStatusChecksEnabled" | "requireAgentEngine" | "attachmentsEnabled" | "onAttachmentRequest" | "contextButtonTooltipDisabled" | "onTextChange" | "contextItems" | "onRemoveContextItem" | "onInspectContextItem" | "onRetryContextItem" | "contextMenuItems" | "attachmentAdapter" | "inlineTextAttachments" | "extraActionButton" | "onSubmit" | "onBeforeSubmit" | "onSubmissionPendingChange" | "onAttachmentError" | "interceptBuildRequestsForBuilder" | "planModeDisabled" | "planModeDisabledReason" | "stopButton">, "onSubmit"> {
77
78
  /** Override the default AgentKit submit path when the host owns send options. */
78
79
  onSubmit?: PromptComposerProps["onSubmit"];
79
80
  beforeSend?: (submission: AgentKitComposerSubmission) => void | Promise<void>;
@@ -82,6 +83,8 @@ export interface AgentKitComposerProps extends Omit<Pick<PromptComposerProps, "s
82
83
  };
83
84
  threadId?: string;
84
85
  className?: string;
86
+ /** The host transcript renders its own accessible submission status. */
87
+ announcePendingSubmission?: boolean;
85
88
  queueWhileRunning?: boolean;
86
89
  showModelSelector?: boolean;
87
90
  /** Controlled execution mode for agent-native act/plan workflows. */
@@ -93,7 +96,7 @@ export interface AgentKitComposerProps extends Omit<Pick<PromptComposerProps, "s
93
96
  /** Shared host toolbar controls shown above the composer. */
94
97
  toolbarSlot?: ReactNode;
95
98
  }
96
- export declare function AgentKitComposer({ threadId: requestedThreadId, className, queueWhileRunning, showModelSelector, slashCommands, slashSkills, includeDefaultSlashCommands, includeDefaultSlashSkills, onSlashCommand, plusMenuMode, voiceEnabled, autoFocus, mode, defaultMode, onModeChange, toolbarSlot, disabled, submissionDisabled, onDisabledClick, placeholder, initialText, initialTextKey, layoutVariant, availableModels, modelListLoading, selectedModel, selectedEngine, selectedEffort, onConnectProvider, onConnectLocalRuntime, imageModelMenu, onModelChange, onEffortChange, availableAgents, selectedAgent, agentOnly, onAgentChange, onModelSelectorOpenChange, modelStatusChecksEnabled, requireAgentEngine, attachmentsEnabled, onAttachmentRequest, contextButtonTooltipDisabled, onTextChange, composerRef: hostComposerRef, contextItems, onRemoveContextItem, extraActionButton, onSubmit: onSubmitOverride, onBeforeSubmit, onAttachmentError, interceptBuildRequestsForBuilder, planModeDisabled, planModeDisabledReason, stopButton, onInspectContextItem, onRetryContextItem, contextMenuItems, attachmentAdapter, inlineTextAttachments, beforeSend, }: AgentKitComposerProps): import("react").JSX.Element;
99
+ export declare function AgentKitComposer({ threadId: requestedThreadId, className, announcePendingSubmission, queueWhileRunning, showModelSelector, slashCommands, slashSkills, includeDefaultSlashCommands, includeDefaultSlashSkills, onSlashCommand, plusMenuMode, voiceEnabled, autoFocus, mode, defaultMode, onModeChange, toolbarSlot, disabled, submissionDisabled, onDisabledClick, placeholder, initialText, initialTextKey, layoutVariant, availableModels, modelListLoading, selectedModel, selectedEngine, selectedEffort, onConnectProvider, onConnectLocalRuntime, imageModelMenu, onModelChange, onEffortChange, availableAgents, selectedAgent, agentOnly, onAgentChange, onModelSelectorOpenChange, modelStatusChecksEnabled, requireAgentEngine, attachmentsEnabled, onAttachmentRequest, contextButtonTooltipDisabled, onTextChange, composerRef: hostComposerRef, contextItems, onRemoveContextItem, extraActionButton, onSubmit: onSubmitOverride, onBeforeSubmit, onSubmissionPendingChange, onAttachmentError, interceptBuildRequestsForBuilder, planModeDisabled, planModeDisabledReason, stopButton, onInspectContextItem, onRetryContextItem, contextMenuItems, attachmentAdapter, inlineTextAttachments, beforeSend, }: AgentKitComposerProps): import("react").JSX.Element;
97
100
  export interface AgentKitChatProps {
98
101
  title?: ReactNode;
99
102
  toolbar?: ReactNode;
@@ -1 +1 @@
1
- {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../../../src/app/agentkit/react/components.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../../../src/app/agentkit/react/components.tsx"],"names":[],"mappings":"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"}
@@ -331,7 +331,25 @@ function RepeatedActivityCluster({ activities, threadId, }) {
331
331
  setOpen((current) => !current);
332
332
  }, children: [_jsx(ActivitySourceIcon, { activity: activity, threadId: threadId }), agent && AgentRenderer ? (_jsx(AgentRenderer, { value: agent, threadId: threadId })) : activity.agentId ? (_jsx(AgentIdentityChip, { id: activity.agentId, name: activity.agentId })) : null, _jsx("span", { className: "agentkit-activity-label", children: activity.label }), activity.object ? (_jsx(ObjectRenderer, { value: activity.object, threadId: threadId })) : null, !activity.object && activity.source ? (_jsx(ObjectRenderer, { value: activity.source, threadId: threadId })) : null, _jsxs("span", { className: "agentkit-activity-cluster-count", children: ["\u00D7", activities.length] }), _jsx(IconChevronRight, { "aria-hidden": "true", className: "agentkit-icon agentkit-disclosure-icon", "data-open": open ? "true" : "false" })] }), _jsx("div", { className: "agentkit-activity-cluster-items", children: activities.map((item) => (_jsx(AgentActivityItem, { value: item, threadId: threadId }, item.id))) })] }));
333
333
  }
334
+ function formatToolDiagnostic(value) {
335
+ if (value === undefined)
336
+ return undefined;
337
+ if (typeof value === "string")
338
+ return value || undefined;
339
+ try {
340
+ return JSON.stringify(value, null, 2) ?? String(value);
341
+ }
342
+ catch {
343
+ return String(value);
344
+ }
345
+ }
334
346
  function toolToActivity(tool) {
347
+ const failed = tool.status === "failed";
348
+ const errorMessage = failed
349
+ ? ((tool.error?.message?.trim() ? tool.error.message : undefined) ??
350
+ formatToolDiagnostic(tool.output) ??
351
+ formatToolDiagnostic(tool.error?.details))
352
+ : undefined;
335
353
  return {
336
354
  id: tool.id,
337
355
  kind: inferAgentActivityKind(tool.name),
@@ -341,11 +359,16 @@ function toolToActivity(tool) {
341
359
  : tool.status === "running"
342
360
  ? "running"
343
361
  : tool.status,
344
- detail: typeof tool.output === "string"
345
- ? tool.output
346
- : typeof tool.input === "string"
347
- ? tool.input
348
- : undefined,
362
+ detail: failed
363
+ ? undefined
364
+ : typeof tool.output === "string"
365
+ ? tool.output
366
+ : typeof tool.input === "string"
367
+ ? tool.input
368
+ : undefined,
369
+ summary: failed && errorMessage
370
+ ? [{ type: "text", text: errorMessage }]
371
+ : undefined,
349
372
  };
350
373
  }
351
374
  function sequenceInRange(sequence, { afterSequence, throughSequence }) {
@@ -436,7 +459,7 @@ function messageEventHasVisibleAssistantOutput(event, assistantMessageIds) {
436
459
  return true;
437
460
  }));
438
461
  }
439
- export function AgentActivityGroup({ runId, afterSequence, throughSequence, excludeAgentActivities = false, }) {
462
+ export function AgentActivityGroup({ runId, afterSequence, throughSequence, excludeAgentActivities = false, isCurrentSegment = true, }) {
440
463
  const { threadId, slots, registry, labels } = useAgentKit();
441
464
  const thread = useAgentThread();
442
465
  const runEvents = runId
@@ -523,7 +546,7 @@ export function AgentActivityGroup({ runId, afterSequence, throughSequence, excl
523
546
  });
524
547
  const durableToolResultIds = new Set(durableToolResults.map(({ tool }) => tool.id));
525
548
  const activityItems = items.filter((activity) => !durableToolResultIds.has(activity.id));
526
- const latestActivity = activityItems.reduce((current, activity) => {
549
+ const latestRunningActivity = items.reduce((current, activity) => {
527
550
  if (activity.status !== "running")
528
551
  return current;
529
552
  if (!current)
@@ -552,33 +575,32 @@ export function AgentActivityGroup({ runId, afterSequence, throughSequence, excl
552
575
  const durationMs = Number.isFinite(startedAt) && Number.isFinite(completedAt)
553
576
  ? Math.max(0, completedAt - startedAt)
554
577
  : undefined;
555
- const activelyWorking = throughSequence === undefined &&
556
- (run === undefined ? running : run.status === "running");
557
- const currentActivity = activelyWorking ? latestActivity : undefined;
558
- const visiblyRunning = throughSequence === undefined && activelyWorking && running;
559
- const [elapsedAt, setElapsedAt] = useState();
560
- useEffect(() => {
561
- if (!activelyWorking || !Number.isFinite(startedAt))
562
- return;
563
- const update = () => setElapsedAt(Date.now());
564
- update();
565
- const interval = globalThis.setInterval(update, 1_000);
566
- return () => globalThis.clearInterval(interval);
567
- }, [activelyWorking, startedAt]);
568
- const activeDurationMs = activelyWorking && elapsedAt !== undefined && Number.isFinite(startedAt)
569
- ? Math.max(0, elapsedAt - startedAt)
570
- : undefined;
571
- const completedRunSummary = throughSequence !== undefined ||
572
- (items.length > 0 && !running) ||
573
- runEvents.some((event) => event.runId === runId &&
574
- (event.type === "run.completed" ||
575
- event.type === "run.failed" ||
576
- event.type === "run.cancelled")) ||
577
- (afterSequence === undefined &&
578
- run !== undefined &&
579
- ["completed", "failed", "cancelled"].includes(run.status));
580
- if (items.length === 0)
578
+ const hasTerminalRunEvent = runEvents.some((event) => event.runId === runId &&
579
+ (event.type === "run.completed" ||
580
+ event.type === "run.failed" ||
581
+ event.type === "run.cancelled"));
582
+ const activelyWorking = isCurrentSegment &&
583
+ (run ? run.status === "running" : running && !hasTerminalRunEvent);
584
+ const completedRunSummary = !activelyWorking &&
585
+ (throughSequence !== undefined ||
586
+ (items.length > 0 && !running) ||
587
+ hasTerminalRunEvent ||
588
+ (afterSequence === undefined &&
589
+ run !== undefined &&
590
+ ["completed", "failed", "cancelled"].includes(run.status)));
591
+ if (items.length === 0 && !activelyWorking)
581
592
  return null;
593
+ const currentActivity = activelyWorking
594
+ ? (latestRunningActivity ?? {
595
+ id: `thinking:${runId ?? thread.id}`,
596
+ kind: "model",
597
+ label: labels.reasoning,
598
+ status: "running",
599
+ })
600
+ : undefined;
601
+ const currentActivityLabel = currentActivity?.label === "Contacting model"
602
+ ? labels.reasoning
603
+ : currentActivity?.label;
582
604
  const displayGroups = new Map(ACTIVITY_BUCKET_ORDER.map((bucket) => [bucket, []]));
583
605
  const clusterIdentity = (activity) => {
584
606
  const tool = toolMap.get(activity.id);
@@ -604,7 +626,8 @@ export function AgentActivityGroup({ runId, afterSequence, throughSequence, excl
604
626
  bucketGroups.push([activity]);
605
627
  }
606
628
  }
607
- const hasExpandableActivity = ACTIVITY_BUCKET_ORDER.some((bucket) => displayGroups.get(bucket).length > 0);
629
+ const hasExpandableActivity = ACTIVITY_BUCKET_ORDER.some((bucket) => (!completedRunSummary || bucket !== "thinking") &&
630
+ displayGroups.get(bucket).length > 0);
608
631
  const activityBucketLabels = {
609
632
  thinking: "Thinking",
610
633
  research: "Research",
@@ -618,19 +641,16 @@ export function AgentActivityGroup({ runId, afterSequence, throughSequence, excl
618
641
  second: labels.durationSecondShort,
619
642
  });
620
643
  const summaryLabel = activelyWorking
621
- ? activeDurationMs !== undefined && activeDurationMs >= 1_000
622
- ? labels.workingFor.replace("{{duration}}", formatDuration(activeDurationMs))
623
- : labels.working
644
+ ? ""
624
645
  : completedRunSummary
625
646
  ? durationMs !== undefined && durationMs >= 1_000
626
647
  ? labels.workedFor.replace("{{duration}}", formatDuration(durationMs))
627
648
  : labels.worked
628
649
  : labels.activities;
629
- return (_jsxs(_Fragment, { children: [items
630
- .filter((activity) => activity.status === "failed")
631
- .map((activity) => (_jsxs("div", { className: "agentkit-run-failure", role: "alert", children: [_jsx(IconAlertCircle, { "aria-hidden": "true", className: "agentkit-icon" }), _jsxs("div", { className: "agentkit-run-failure-copy", children: [_jsx("strong", { children: activity.label }), _jsx("span", { children: toolMap.get(activity.id)?.error?.message ??
632
- activity.detail ??
633
- labels.error })] })] }, activity.id))), durableToolResults.length ? (_jsx("div", { "data-agentkit-tool-results": "true", children: durableToolResults.map(({ tool, Renderer }) => (_jsx(Renderer, { value: tool, threadId: threadId }, tool.id))) })) : null, hasExpandableActivity ? (_jsx(AgentWorkDisclosure, { label: summaryLabel, running: visiblyRunning, current: currentActivity ? (_jsxs("span", { className: "agentkit-activities-current", "data-running": "true", "data-agentkit-current-activity": "true", "aria-live": "polite", children: [_jsx(ActivitySourceIcon, { activity: currentActivity, threadId: threadId, compact: true }), _jsx("span", { className: "agentkit-activities-current-label", children: currentActivity.label })] })) : null, children: _jsx("div", { className: "agentkit-activities-list", children: ACTIVITY_BUCKET_ORDER.map((bucket) => {
650
+ const visiblyRunning = activelyWorking;
651
+ return (_jsxs(_Fragment, { children: [durableToolResults.length ? (_jsx("div", { "data-agentkit-tool-results": "true", children: durableToolResults.map(({ tool, Renderer }) => (_jsx(Renderer, { value: tool, threadId: threadId }, tool.id))) })) : null, hasExpandableActivity || activelyWorking ? (_jsx(AgentWorkDisclosure, { label: summaryLabel, running: visiblyRunning, expandable: hasExpandableActivity, current: currentActivity ? (_jsxs("span", { className: "agentkit-activities-current", "data-running": "true", "data-agentkit-current-activity": "true", "aria-live": "polite", children: [_jsx(ActivitySourceIcon, { activity: currentActivity, threadId: threadId, compact: true }), _jsx("span", { className: "agentkit-activities-current-label agent-running-shimmer", children: currentActivityLabel })] })) : null, children: _jsx("div", { className: "agentkit-activities-list", children: ACTIVITY_BUCKET_ORDER.map((bucket) => {
652
+ if (completedRunSummary && bucket === "thinking")
653
+ return null;
634
654
  const groups = displayGroups.get(bucket);
635
655
  if (groups.length === 0)
636
656
  return null;
@@ -656,14 +676,16 @@ export function AgentActivityGroup({ runId, afterSequence, throughSequence, excl
656
676
  AgentActivityItem;
657
677
  return (_jsx(Renderer, { value: activity, threadId: threadId }, activity.id));
658
678
  }) })] }, bucket));
659
- }) }) })) : (_jsxs("div", { className: "agentkit-activities-static", children: [_jsx("span", { className: "agentkit-activities-label", children: summaryLabel }), currentActivity ? (_jsxs("span", { className: "agentkit-activities-current", "data-running": "true", "data-agentkit-current-activity": "true", "aria-live": "polite", children: [_jsx(ActivitySourceIcon, { activity: currentActivity, threadId: threadId, compact: true }), _jsx("span", { className: "agentkit-activities-current-label", children: currentActivity.label })] })) : null] }))] }));
679
+ }) }) })) : (_jsxs("div", { className: "agentkit-activities-static", children: [summaryLabel ? (_jsx("span", { className: "agentkit-activities-label", children: summaryLabel })) : null, currentActivity ? (_jsxs("span", { className: "agentkit-activities-current", "data-running": "true", "data-agentkit-current-activity": "true", "aria-live": "polite", children: [_jsx(ActivitySourceIcon, { activity: currentActivity, threadId: threadId, compact: true }), _jsx("span", { className: "agentkit-activities-current-label agent-running-shimmer", children: currentActivityLabel })] })) : null] }))] }));
660
680
  }
661
- function AgentWorkDisclosure({ label, running, current, children, }) {
681
+ function AgentWorkDisclosure({ label, running, expandable = true, current, children, }) {
662
682
  const [open, setOpen] = useState(false);
663
- return (_jsxs("details", { className: "agentkit-activities", "data-running": running ? "true" : undefined, open: open, children: [_jsxs("summary", { className: "agentkit-activities-summary", onClick: (event) => {
683
+ return (_jsxs("details", { className: "agentkit-activities", "data-running": running ? "true" : undefined, "data-expandable": expandable ? "true" : "false", open: open, children: [_jsxs("summary", { className: "agentkit-activities-summary", "aria-disabled": !expandable, onClick: (event) => {
664
684
  event.preventDefault();
685
+ if (!expandable)
686
+ return;
665
687
  setOpen((value) => !value);
666
- }, children: [_jsxs("span", { className: "agentkit-activities-heading", children: [_jsx("span", { className: "agentkit-activities-label", children: label }), _jsx(IconChevronRight, { "aria-hidden": "true", className: "agentkit-icon agentkit-summary-chevron" })] }), current] }), children] }));
688
+ }, children: [_jsxs("span", { className: "agentkit-activities-summary-content", children: [label ? (_jsx("span", { className: "agentkit-activities-heading", children: _jsx("span", { className: "agentkit-activities-label", children: label }) })) : null, current] }), _jsx(IconChevronRight, { "aria-hidden": "true", className: "agentkit-icon agentkit-summary-chevron" })] }), children] }));
667
689
  }
668
690
  function AgentReasoningParts({ message, threadId, active, }) {
669
691
  return message.parts.map((part, index) => part.type === "reasoning" &&
@@ -677,9 +699,8 @@ const ACTIVITY_BUCKET_ORDER = [
677
699
  "other",
678
700
  ];
679
701
  function activityBucketForKind(kind) {
680
- if (kind === "reasoning" || kind === "model" || kind === "status") {
702
+ if (kind === "reasoning")
681
703
  return "thinking";
682
- }
683
704
  if (kind === "search" || kind === "read")
684
705
  return "research";
685
706
  if (kind === "write" ||
@@ -1171,6 +1192,7 @@ export function AgentMessageActions({ value: message, threadId, }) {
1171
1192
  const [actionsMenuOpen, setActionsMenuOpen] = useState(false);
1172
1193
  const requestIdCopiedTimer = useRef(null);
1173
1194
  const requestId = useMemo(() => resolveAgentMessageRequestId(message, thread.events), [message, thread.events]);
1195
+ const hasMessageMenuActions = Boolean(requestId || (forkingCapability.visible && onThreadForked));
1174
1196
  const runId = useMemo(() => resolveAgentMessageRunId(message, thread.events), [message, thread.events]);
1175
1197
  const messageSeq = thread.messages.findIndex((item) => item.id === message.id);
1176
1198
  useEffect(() => () => {
@@ -1271,7 +1293,7 @@ export function AgentMessageActions({ value: message, threadId, }) {
1271
1293
  requestIdAction.error ??
1272
1294
  forkAction.error ??
1273
1295
  regenerateAction.error;
1274
- return (_jsxs("div", { className: "agentkit-message-actions", "data-role": message.role, children: [message.role === "assistant" ? (_jsxs(_Fragment, { children: [_jsxs("div", { className: "agentkit-message-actions-leading", children: [_jsx(IconButton, { label: copied ? labels.copied : labels.copy, icon: copied ? (_jsx(IconCircleCheck, { "aria-hidden": "true" })) : (_jsx(IconCopy, { "aria-hidden": "true" })), size: "compact", pending: copyAction.pending, onPress: () => void copyAction.execute().catch(() => undefined) }), feedbackCapability.visible ? (_jsxs(_Fragment, { children: [_jsx(IconButton, { label: labels.positiveFeedback, icon: _jsx(IconThumbUp, { "aria-hidden": "true" }), size: "compact", "aria-pressed": feedback === "positive", pending: feedbackAction.pending && feedback === "positive", disabled: feedbackAction.pending || !feedbackCapability.enabled, title: feedbackCapability.reason, onPress: () => void updateFeedback("positive") }), _jsx(Popover, { open: feedbackReasonOpen, onOpenChange: (open) => {
1296
+ return (_jsxs("div", { className: "agentkit-message-actions", "data-role": message.role, "data-streaming": message.status === "streaming" ? "true" : undefined, children: [message.role === "assistant" ? (_jsxs(_Fragment, { children: [_jsxs("div", { className: "agentkit-message-actions-leading", children: [_jsx(IconButton, { label: copied ? labels.copied : labels.copy, icon: copied ? (_jsx(IconCircleCheck, { "aria-hidden": "true" })) : (_jsx(IconCopy, { "aria-hidden": "true" })), size: "compact", pending: copyAction.pending, onPress: () => void copyAction.execute().catch(() => undefined) }), feedbackCapability.visible ? (_jsxs(_Fragment, { children: [_jsx(IconButton, { label: labels.positiveFeedback, icon: _jsx(IconThumbUp, { "aria-hidden": "true" }), size: "compact", "aria-pressed": feedback === "positive", pending: feedbackAction.pending && feedback === "positive", disabled: feedbackAction.pending || !feedbackCapability.enabled, title: feedbackCapability.reason, onPress: () => void updateFeedback("positive") }), _jsx(Popover, { open: feedbackReasonOpen, onOpenChange: (open) => {
1275
1297
  setFeedbackReasonOpen(open);
1276
1298
  if (open)
1277
1299
  setFeedbackReasonSubmitted(false);
@@ -1297,21 +1319,23 @@ export function AgentMessageActions({ value: message, threadId, }) {
1297
1319
  new Date(message.createdAt).toLocaleTimeString([], {
1298
1320
  hour: "numeric",
1299
1321
  minute: "2-digit",
1300
- }) })) : null, slots.messageActionsTrailing ? (_jsx(slots.messageActionsTrailing, { value: message, threadId: threadId })) : null, _jsx(Menu, { open: actionsMenuOpen, onOpenChange: (open) => {
1322
+ }) })) : null, slots.messageActionsTrailing ? (_jsx(slots.messageActionsTrailing, { value: message, threadId: threadId })) : null, hasMessageMenuActions ? (_jsx(Menu, { open: actionsMenuOpen, onOpenChange: (open) => {
1301
1323
  setActionsMenuOpen(open);
1302
1324
  if (!open)
1303
1325
  setRequestIdCopied(false);
1304
1326
  }, placement: "bottom", align: "end", className: "agentkit-message-menu w-48", trigger: _jsx(IconButton, { label: labels.messageActions, icon: _jsx(IconDotsVertical, { "aria-hidden": "true" }), size: "compact", "aria-expanded": actionsMenuOpen, title: labels.messageActions }), items: [
1305
- {
1306
- id: "copy-request-id",
1307
- label: requestIdCopied
1308
- ? labels.copied
1309
- : requestId
1310
- ? labels.copyRequestId
1311
- : labels.requestIdUnavailable,
1312
- icon: requestIdCopied ? (_jsx(IconCircleCheck, { size: 14, "aria-hidden": "true" })) : (_jsx(IconId, { size: 14, "aria-hidden": "true" })),
1313
- disabled: !requestId || requestIdAction.pending,
1314
- },
1327
+ ...(requestId
1328
+ ? [
1329
+ {
1330
+ id: "copy-request-id",
1331
+ label: requestIdCopied
1332
+ ? labels.copied
1333
+ : labels.copyRequestId,
1334
+ icon: requestIdCopied ? (_jsx(IconCircleCheck, { size: 14, "aria-hidden": "true" })) : (_jsx(IconId, { size: 14, "aria-hidden": "true" })),
1335
+ disabled: requestIdAction.pending,
1336
+ },
1337
+ ]
1338
+ : []),
1315
1339
  ...(forkingCapability.visible && onThreadForked
1316
1340
  ? [
1317
1341
  {
@@ -1329,7 +1353,7 @@ export function AgentMessageActions({ value: message, threadId, }) {
1329
1353
  else if (id === "fork-chat") {
1330
1354
  void forkAction.execute().catch(() => undefined);
1331
1355
  }
1332
- } })] })] })) : (_jsxs(_Fragment, { children: [_jsxs("div", { className: "agentkit-message-actions-leading", children: [_jsx(IconButton, { label: copied ? labels.copied : labels.copy, icon: copied ? (_jsx(IconCircleCheck, { "aria-hidden": "true" })) : (_jsx(IconCopy, { "aria-hidden": "true" })), size: "compact", pending: copyAction.pending, onPress: () => void copyAction.execute().catch(() => undefined) }), editContext?.enabled &&
1356
+ } })) : null] })] })) : (_jsxs(_Fragment, { children: [_jsxs("div", { className: "agentkit-message-actions-leading", children: [_jsx(IconButton, { label: copied ? labels.copied : labels.copy, icon: copied ? (_jsx(IconCircleCheck, { "aria-hidden": "true" })) : (_jsx(IconCopy, { "aria-hidden": "true" })), size: "compact", pending: copyAction.pending, onPress: () => void copyAction.execute().catch(() => undefined) }), editContext?.enabled &&
1333
1357
  forkingCapability.visible &&
1334
1358
  text.trim() ? (_jsx(IconButton, { label: labels.editMessage, icon: _jsx(IconPencil, { "aria-hidden": "true" }), size: "compact", disabled: hasActiveAgentRuns(thread) || !forkingCapability.enabled, title: forkingCapability.reason, "aria-pressed": editContext.message?.id === message.id, onPress: () => editContext.setMessage(message) })) : null] }), _jsx("div", { className: "agentkit-message-actions-trailing", children: message.createdAt ? (_jsx("time", { dateTime: message.createdAt, children: labels.formatTimestamp?.(message.createdAt) ??
1335
1359
  new Date(message.createdAt).toLocaleTimeString([], {
@@ -1366,7 +1390,7 @@ export function AgentConnectionErrorView({ error, threadId, recover, recovering,
1366
1390
  function hasActiveRuns(thread) {
1367
1391
  return hasActiveAgentRuns(thread);
1368
1392
  }
1369
- export function AgentKitComposer({ threadId: requestedThreadId, className, queueWhileRunning = true, showModelSelector = true, slashCommands, slashSkills, includeDefaultSlashCommands, includeDefaultSlashSkills, onSlashCommand, plusMenuMode, voiceEnabled = false, autoFocus = true, mode, defaultMode = "act", onModeChange, toolbarSlot, disabled, submissionDisabled, onDisabledClick, placeholder, initialText, initialTextKey, layoutVariant, availableModels, modelListLoading, selectedModel, selectedEngine, selectedEffort, onConnectProvider, onConnectLocalRuntime, imageModelMenu, onModelChange, onEffortChange, availableAgents, selectedAgent, agentOnly, onAgentChange, onModelSelectorOpenChange, modelStatusChecksEnabled, requireAgentEngine, attachmentsEnabled, onAttachmentRequest, contextButtonTooltipDisabled, onTextChange, composerRef: hostComposerRef, contextItems, onRemoveContextItem, extraActionButton, onSubmit: onSubmitOverride, onBeforeSubmit, onAttachmentError, interceptBuildRequestsForBuilder, planModeDisabled, planModeDisabledReason, stopButton, onInspectContextItem, onRetryContextItem, contextMenuItems, attachmentAdapter, inlineTextAttachments, beforeSend, }) {
1393
+ export function AgentKitComposer({ threadId: requestedThreadId, className, announcePendingSubmission = true, queueWhileRunning = true, showModelSelector = true, slashCommands, slashSkills, includeDefaultSlashCommands, includeDefaultSlashSkills, onSlashCommand, plusMenuMode, voiceEnabled = false, autoFocus = true, mode, defaultMode = "act", onModeChange, toolbarSlot, disabled, submissionDisabled, onDisabledClick, placeholder, initialText, initialTextKey, layoutVariant, availableModels, modelListLoading, selectedModel, selectedEngine, selectedEffort, onConnectProvider, onConnectLocalRuntime, imageModelMenu, onModelChange, onEffortChange, availableAgents, selectedAgent, agentOnly, onAgentChange, onModelSelectorOpenChange, modelStatusChecksEnabled, requireAgentEngine, attachmentsEnabled, onAttachmentRequest, contextButtonTooltipDisabled, onTextChange, composerRef: hostComposerRef, contextItems, onRemoveContextItem, extraActionButton, onSubmit: onSubmitOverride, onBeforeSubmit, onSubmissionPendingChange, onAttachmentError, interceptBuildRequestsForBuilder, planModeDisabled, planModeDisabledReason, stopButton, onInspectContextItem, onRetryContextItem, contextMenuItems, attachmentAdapter, inlineTextAttachments, beforeSend, }) {
1370
1394
  const { threadId: contextThreadId, controller, labels, onThreadForked, registerComposerFocus, slots, } = useAgentKit();
1371
1395
  const editContext = useContext(AgentMessageEditContext);
1372
1396
  const editingMessage = editContext?.message ?? null;
@@ -1400,6 +1424,12 @@ export function AgentKitComposer({ threadId: requestedThreadId, className, queue
1400
1424
  const thread = useAgentThread(threadId);
1401
1425
  const command = useAgentKitMutation((execute) => execute(), threadId);
1402
1426
  const submissionBlocked = Boolean(submissionDisabled) || command.pending;
1427
+ const [submissionPending, setSubmissionPending] = useState(false);
1428
+ const handleSubmissionPendingChange = useCallback((pending) => {
1429
+ setSubmissionPending(pending);
1430
+ onSubmissionPendingChange?.(pending);
1431
+ }, [onSubmissionPendingChange]);
1432
+ const suggestionSubmitBlocked = submissionBlocked || submissionPending;
1403
1433
  const localComposerRef = useRef(null);
1404
1434
  const composerRef = hostComposerRef ?? localComposerRef;
1405
1435
  const selectedSuggestionRef = useRef(undefined);
@@ -1668,7 +1698,7 @@ export function AgentKitComposer({ threadId: requestedThreadId, className, queue
1668
1698
  .finally(focusComposer);
1669
1699
  const selectSuggestion = (suggestion) => {
1670
1700
  if (disabled ||
1671
- submissionBlocked ||
1701
+ suggestionSubmitBlocked ||
1672
1702
  !suggestionsCapability.enabled ||
1673
1703
  selectedSuggestionRef.current ||
1674
1704
  !isCurrentAgentSuggestion(controller.getThread(threadId), suggestion))
@@ -1689,7 +1719,7 @@ export function AgentKitComposer({ threadId: requestedThreadId, className, queue
1689
1719
  const Queue = slots.queue;
1690
1720
  const Suggestions = slots.suggestions;
1691
1721
  const suggestions = selectAgentSuggestions(thread);
1692
- return (_jsxs("div", { className: `agentkit-composer-stack ${className ?? ""}`, children: [queueCapability.visible ? (Queue ? (_jsx(Queue, { items: thread.queuedMessages, threadId: threadId, active: active, pending: command.pending || Boolean(disabled), onSteer: steerQueued, onRemove: removeQueued })) : (_jsx(MessageQueueDrawer, { variant: "recessed", items: thread.queuedMessages.map((message) => ({
1722
+ return (_jsxs("div", { className: `agentkit-composer-stack ${className ?? ""}`, children: [announcePendingSubmission && submissionPending ? (_jsx("span", { className: "agentkit-visually-hidden", role: "status", "aria-live": "polite", children: labels.activityBuckets?.thinking ?? "Thinking" })) : null, queueCapability.visible ? (Queue ? (_jsx(Queue, { items: thread.queuedMessages, threadId: threadId, active: active, pending: command.pending || Boolean(disabled), onSteer: steerQueued, onRemove: removeQueued })) : (_jsx(MessageQueueDrawer, { variant: "recessed", items: thread.queuedMessages.map((message) => ({
1693
1723
  id: message.id,
1694
1724
  text: message.text,
1695
1725
  images: (message.attachments ?? []).flatMap((attachment) => {
@@ -1730,10 +1760,10 @@ export function AgentKitComposer({ threadId: requestedThreadId, className, queue
1730
1760
  : undefined }))) : null, suggestionsCapability.enabled &&
1731
1761
  !disabled &&
1732
1762
  !editingMessage &&
1733
- suggestions.length ? (Suggestions ? (_jsx(Suggestions, { suggestions: suggestions, threadId: threadId, pending: submissionBlocked, onSelect: selectSuggestion })) : (_jsx(AgentSuggestionBar, { suggestions: suggestions.map((suggestion) => ({
1763
+ suggestions.length ? (Suggestions ? (_jsx(Suggestions, { suggestions: suggestions, threadId: threadId, pending: suggestionSubmitBlocked, onSelect: selectSuggestion })) : (_jsx(AgentSuggestionBar, { suggestions: suggestions.map((suggestion) => ({
1734
1764
  ...suggestion,
1735
- disabled: submissionBlocked || Boolean(disabled),
1736
- })), ariaLabel: labels.suggestions, onSelect: selectSuggestion, className: "agentkit-suggestions" }))) : null, _jsx(PromptComposer, { contextItems: contextItems, onRemoveContextItem: onRemoveContextItem, onInspectContextItem: onInspectContextItem, onRetryContextItem: onRetryContextItem, contextMenuItems: contextMenuItems, attachmentAdapter: attachmentAdapter, inlineTextAttachments: inlineTextAttachments, rootClassName: "agentkit-composer", draftScope: `agentkit:${threadId}${editingMessage ? `:edit:${editingMessage.id}` : ""}`, ariaLabel: labels.composerLabel, placeholder: placeholder ?? labels.composerPlaceholder, disabled: disabled, submissionDisabled: submissionBlocked, onDisabledClick: onDisabledClick, onConnectProvider: onConnectProvider, onConnectLocalRuntime: onConnectLocalRuntime, imageModelMenu: imageModelMenu, autoFocus: autoFocus, composerRef: composerRef, submitting: command.pending, willQueue: active && queueWhileRunning && canQueue, showModelSelector: showModelSelector && canSelectModel, availableModels: availableModels, modelListLoading: modelListLoading, selectedModel: selectedModel, selectedEngine: selectedEngine, selectedEffort: selectedEffort, onModelChange: onModelChange, onEffortChange: onEffortChange, availableAgents: availableAgents, selectedAgent: selectedAgent, agentOnly: agentOnly, onAgentChange: onAgentChange, onModelSelectorOpenChange: onModelSelectorOpenChange, modelStatusChecksEnabled: modelStatusChecksEnabled, requireAgentEngine: requireAgentEngine, layoutVariant: layoutVariant, toolbarSlot: composerToolbarSlot, initialText: composerInitialText, initialTextKey: composerInitialTextKey, onTextChange: onTextChange, extraActionButton: extraActionButton, onBeforeSubmit: onBeforeSubmit, getSubmitFailureDraftScope: getSubmitFailureDraftScope, onAttachmentError: reportAttachmentError, interceptBuildRequestsForBuilder: interceptBuildRequestsForBuilder, planModeDisabled: planModeDisabled, planModeDisabledReason: planModeDisabledReason, stopButton: stopButton, attachmentsEnabled: canUpload, onAttachmentRequest: onAttachmentRequest, contextButtonTooltipDisabled: contextButtonTooltipDisabled, slashCommands: slashCommands, slashSkills: slashSkills, includeDefaultSlashCommands: includeDefaultSlashCommands ?? false, includeDefaultSlashSkills: includeDefaultSlashSkills ?? false, onSlashCommand: onSlashCommand, plusMenuMode: plusMenuMode ?? "full", voiceEnabled: voiceEnabled, execMode: executionMode === "plan" ? "plan" : "build", onExecModeChange: (nextMode) => {
1765
+ disabled: suggestionSubmitBlocked || Boolean(disabled),
1766
+ })), ariaLabel: labels.suggestions, onSelect: selectSuggestion, className: "agentkit-suggestions" }))) : null, _jsx(PromptComposer, { contextItems: contextItems, onRemoveContextItem: onRemoveContextItem, onInspectContextItem: onInspectContextItem, onRetryContextItem: onRetryContextItem, contextMenuItems: contextMenuItems, attachmentAdapter: attachmentAdapter, inlineTextAttachments: inlineTextAttachments, rootClassName: "agentkit-composer", draftScope: `agentkit:${threadId}${editingMessage ? `:edit:${editingMessage.id}` : ""}`, ariaLabel: labels.composerLabel, placeholder: placeholder ?? labels.composerPlaceholder, disabled: disabled, submissionDisabled: submissionBlocked, onDisabledClick: onDisabledClick, onConnectProvider: onConnectProvider, onConnectLocalRuntime: onConnectLocalRuntime, imageModelMenu: imageModelMenu, autoFocus: autoFocus, composerRef: composerRef, willQueue: active && queueWhileRunning && canQueue, showModelSelector: showModelSelector && canSelectModel, availableModels: availableModels, modelListLoading: modelListLoading, selectedModel: selectedModel, selectedEngine: selectedEngine, selectedEffort: selectedEffort, onModelChange: onModelChange, onEffortChange: onEffortChange, availableAgents: availableAgents, selectedAgent: selectedAgent, agentOnly: agentOnly, onAgentChange: onAgentChange, onModelSelectorOpenChange: onModelSelectorOpenChange, modelStatusChecksEnabled: modelStatusChecksEnabled, requireAgentEngine: requireAgentEngine, layoutVariant: layoutVariant, toolbarSlot: composerToolbarSlot, initialText: composerInitialText, initialTextKey: composerInitialTextKey, onTextChange: onTextChange, extraActionButton: extraActionButton, sendButtonDisabled: submissionPending, onBeforeSubmit: onBeforeSubmit, onSubmissionPendingChange: handleSubmissionPendingChange, getSubmitFailureDraftScope: getSubmitFailureDraftScope, clearOnSubmitImmediately: true, onAttachmentError: reportAttachmentError, interceptBuildRequestsForBuilder: interceptBuildRequestsForBuilder, planModeDisabled: planModeDisabled, planModeDisabledReason: planModeDisabledReason, stopButton: stopButton, attachmentsEnabled: canUpload, onAttachmentRequest: onAttachmentRequest, contextButtonTooltipDisabled: contextButtonTooltipDisabled, slashCommands: slashCommands, slashSkills: slashSkills, includeDefaultSlashCommands: includeDefaultSlashCommands ?? false, includeDefaultSlashSkills: includeDefaultSlashSkills ?? false, onSlashCommand: onSlashCommand, plusMenuMode: plusMenuMode ?? "full", voiceEnabled: voiceEnabled, execMode: executionMode === "plan" ? "plan" : "build", onExecModeChange: (nextMode) => {
1737
1767
  const next = nextMode === "plan" ? "plan" : "act";
1738
1768
  if (mode === undefined)
1739
1769
  setUncontrolledMode(next);
@@ -2086,7 +2116,7 @@ export function AgentKitChat({ title, toolbar, composer = true, composerProps, h
2086
2116
  const error = failedRuns.get(runId);
2087
2117
  return error ? (_jsx(RunFailure, { error: error, runId: runId, threadId: threadId })) : null;
2088
2118
  };
2089
- const renderRunWork = ({ runId, anchor, afterSequence, throughSequence, }) => (_jsxs(AgentKitSurfaceBoundary, { surface: "activity", resetKey: `${runId}:${anchor}:${thread.events.length}`, children: [_jsx(AgentCollaborationFeed, { runId: runId, afterSequence: afterSequence, throughSequence: throughSequence }), _jsx(AgentTaskGroup, { runId: runId, afterSequence: afterSequence, throughSequence: throughSequence }), _jsx(AgentActivityGroup, { runId: runId, afterSequence: afterSequence, throughSequence: throughSequence, excludeAgentActivities: true })] }, `run-work:${threadId}:${runId}:${anchor}`));
2119
+ const renderRunWork = ({ runId, anchor, afterSequence, throughSequence, }) => (_jsxs(AgentKitSurfaceBoundary, { surface: "activity", resetKey: `${runId}:${anchor}:${thread.events.length}`, children: [_jsx(AgentCollaborationFeed, { runId: runId, afterSequence: afterSequence, throughSequence: throughSequence }), _jsx(AgentTaskGroup, { runId: runId, afterSequence: afterSequence, throughSequence: throughSequence }), _jsx(AgentActivityGroup, { runId: runId, afterSequence: afterSequence, throughSequence: throughSequence, excludeAgentActivities: true, isCurrentSegment: throughSequence === undefined })] }, `run-work:${threadId}:${runId}:${anchor}`));
2090
2120
  const transcriptItems = [];
2091
2121
  const previousAssistantByRun = new Map();
2092
2122
  for (const message of thread.messages) {