@tutti-os/agent-gui 0.0.215 → 0.0.217

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/README.md +9 -5
  2. package/dist/{agentFileMentionContracts-BeBex-Sf.d.ts → AgentMentionSearchContracts-y1_u9cPi.d.ts} +73 -1
  3. package/dist/{AgentRichTextReadonly-56TZAJ47.js → AgentRichTextReadonly-WZHUIARR.js} +7 -7
  4. package/dist/agent-conversation/index.d.ts +0 -2
  5. package/dist/agent-conversation/index.js +9 -9
  6. package/dist/agent-gui.d.ts +14 -8
  7. package/dist/agent-gui.js +23 -22
  8. package/dist/agent-message-center/index.d.ts +1 -2
  9. package/dist/agent-message-center/index.js +6 -6
  10. package/dist/app/renderer/agentactivity.css +93 -93
  11. package/dist/{chunk-KVFBUOKZ.js → chunk-2QF3RBR4.js} +4 -4
  12. package/dist/{chunk-XERDRMSF.js → chunk-44OCOBJS.js} +9 -11
  13. package/dist/chunk-44OCOBJS.js.map +1 -0
  14. package/dist/chunk-6GX57XB5.js +135 -0
  15. package/dist/chunk-6GX57XB5.js.map +1 -0
  16. package/dist/{chunk-AQ7CRDGX.js → chunk-FS7EMOVD.js} +8 -14
  17. package/dist/chunk-FS7EMOVD.js.map +1 -0
  18. package/dist/{chunk-ISC67YBJ.js → chunk-G2KRK7Z5.js} +44 -18
  19. package/dist/chunk-G2KRK7Z5.js.map +1 -0
  20. package/dist/{chunk-YTU6IUO2.js → chunk-GDLM6FLK.js} +123 -184
  21. package/dist/chunk-GDLM6FLK.js.map +1 -0
  22. package/dist/{chunk-BYHNJQYH.js → chunk-GLVENTN6.js} +2 -2
  23. package/dist/{chunk-2HYADTQP.js → chunk-JQOQETPN.js} +5 -5
  24. package/dist/{chunk-YBIT37P5.js → chunk-M6WEFXPL.js} +2 -2
  25. package/dist/{chunk-AD2RTSMS.js → chunk-N2M4B3G3.js} +2 -2
  26. package/dist/{chunk-MWAUXAD2.js → chunk-NXQGAXIE.js} +8 -8
  27. package/dist/{chunk-GUD5NOHO.js → chunk-O4QFGCLU.js} +44 -189
  28. package/dist/chunk-O4QFGCLU.js.map +1 -0
  29. package/dist/{chunk-KNSLQO52.js → chunk-PPAV2TB4.js} +7 -13
  30. package/dist/chunk-PPAV2TB4.js.map +1 -0
  31. package/dist/{chunk-4CHBM3G3.js → chunk-SUVMLCED.js} +5 -5
  32. package/dist/{chunk-JOUEYIV3.js → chunk-TKECUCUW.js} +863 -946
  33. package/dist/chunk-TKECUCUW.js.map +1 -0
  34. package/dist/{chunk-QVLEP54U.js → chunk-ZXEICU6J.js} +5 -3
  35. package/dist/chunk-ZXEICU6J.js.map +1 -0
  36. package/dist/context-mention-palette/index.d.ts +3 -3
  37. package/dist/context-mention-palette/index.js +12 -12
  38. package/dist/{contribution-DfeuQHH6.d.ts → contribution-D4lcOjSU.d.ts} +2 -14
  39. package/dist/headerLayout-CP4ujEbo.d.ts +14 -0
  40. package/dist/i18n/index.d.ts +4 -2
  41. package/dist/i18n/index.js +2 -2
  42. package/dist/index.d.ts +77 -53
  43. package/dist/index.js +46 -39
  44. package/dist/index.js.map +1 -1
  45. package/dist/layout.d.ts +7 -0
  46. package/dist/layout.js +9 -0
  47. package/dist/layout.js.map +1 -0
  48. package/dist/mention-search.d.ts +6 -73
  49. package/dist/mention-search.js +8 -8
  50. package/dist/workbench/browser-element-context/index.js +2 -2
  51. package/dist/workbench/contribution.d.ts +1 -1
  52. package/dist/workbench/contribution.js +7 -8
  53. package/dist/workbench/index.d.ts +5 -3
  54. package/dist/workbench/index.js +10 -11
  55. package/dist/workbench/launch.js +2 -2
  56. package/dist/workbench/sessionTitle.js +2 -2
  57. package/dist/workbench/tool-sidebar/index.d.ts +14 -13
  58. package/dist/workbench/tool-sidebar/index.js +66 -55
  59. package/dist/workbench/tool-sidebar/index.js.map +1 -1
  60. package/package.json +23 -16
  61. package/dist/chunk-AQ7CRDGX.js.map +0 -1
  62. package/dist/chunk-GUD5NOHO.js.map +0 -1
  63. package/dist/chunk-ISC67YBJ.js.map +0 -1
  64. package/dist/chunk-JOUEYIV3.js.map +0 -1
  65. package/dist/chunk-KNSLQO52.js.map +0 -1
  66. package/dist/chunk-QVLEP54U.js.map +0 -1
  67. package/dist/chunk-XERDRMSF.js.map +0 -1
  68. package/dist/chunk-YTU6IUO2.js.map +0 -1
  69. /package/dist/{AgentRichTextReadonly-56TZAJ47.js.map → AgentRichTextReadonly-WZHUIARR.js.map} +0 -0
  70. /package/dist/{chunk-KVFBUOKZ.js.map → chunk-2QF3RBR4.js.map} +0 -0
  71. /package/dist/{chunk-BYHNJQYH.js.map → chunk-GLVENTN6.js.map} +0 -0
  72. /package/dist/{chunk-2HYADTQP.js.map → chunk-JQOQETPN.js.map} +0 -0
  73. /package/dist/{chunk-YBIT37P5.js.map → chunk-M6WEFXPL.js.map} +0 -0
  74. /package/dist/{chunk-AD2RTSMS.js.map → chunk-N2M4B3G3.js.map} +0 -0
  75. /package/dist/{chunk-MWAUXAD2.js.map → chunk-NXQGAXIE.js.map} +0 -0
  76. /package/dist/{chunk-4CHBM3G3.js.map → chunk-SUVMLCED.js.map} +0 -0
@@ -2,7 +2,26 @@ import {
2
2
  AgentRichTextReadonly,
3
3
  promptForProviderSkills,
4
4
  skillTriggerForPrefix
5
- } from "./chunk-MWAUXAD2.js";
5
+ } from "./chunk-NXQGAXIE.js";
6
+ import {
7
+ AgentGUIConversation_styles_default,
8
+ AgentMessageMarkdown,
9
+ CustomScrollArea,
10
+ MessageSquareMoreIcon,
11
+ ZoomableImage,
12
+ extractAgentMcpToolTarget,
13
+ extractExitPlanKeepPlanningOptionId,
14
+ extractExitPlanModeOptions,
15
+ isExitPlanSwitchModeInput,
16
+ normalizeAgentApprovalPurpose,
17
+ normalizeAskUserQuestions,
18
+ resolveWorkspaceFileLinkAction,
19
+ resolveWorkspaceFilePathCandidate,
20
+ resolveWorkspaceLinkAction
21
+ } from "./chunk-PPAV2TB4.js";
22
+ import {
23
+ cn
24
+ } from "./chunk-LQMIEH4C.js";
6
25
  import {
7
26
  classifyRecoverableAgentMessage,
8
27
  resolveAgentErrorPresentation,
@@ -18,7 +37,7 @@ import {
18
37
  agentPromptFileBlocks,
19
38
  agentPromptPastedTextBlocks,
20
39
  materializeAgentComposerFileMentions
21
- } from "./chunk-2HYADTQP.js";
40
+ } from "./chunk-JQOQETPN.js";
22
41
  import {
23
42
  extractImageGenerationPreview,
24
43
  isImageGenerationToolCall,
@@ -27,34 +46,11 @@ import {
27
46
  resolveImageGenerationPreviewSrc,
28
47
  stripImagePayloadData
29
48
  } from "./chunk-JDVP33S5.js";
30
- import {
31
- AGENT_PASTED_TEXT_BLOCK_KIND,
32
- AGENT_PASTED_TEXT_MENTION_KIND
33
- } from "./chunk-FGLQZ6I4.js";
34
- import {
35
- AgentGUIConversation_styles_default,
36
- AgentMessageMarkdown,
37
- CustomScrollArea,
38
- MessageSquareMoreIcon,
39
- ZoomableImage,
40
- extractAgentMcpToolTarget,
41
- extractExitPlanKeepPlanningOptionId,
42
- extractExitPlanModeOptions,
43
- isExitPlanSwitchModeInput,
44
- normalizeAgentApprovalPurpose,
45
- normalizeAskUserQuestions,
46
- resolveWorkspaceFileLinkAction,
47
- resolveWorkspaceFilePathCandidate,
48
- resolveWorkspaceLinkAction
49
- } from "./chunk-KNSLQO52.js";
50
- import {
51
- cn
52
- } from "./chunk-LQMIEH4C.js";
53
49
  import {
54
50
  useOptionalAgentActivityRuntime,
55
51
  useOptionalAgentHostApi,
56
52
  workspaceAgentProviderLabel
57
- } from "./chunk-YBIT37P5.js";
53
+ } from "./chunk-M6WEFXPL.js";
58
54
  import {
59
55
  fileChangeCountFromChanges,
60
56
  fileChangeEntriesFromChanges,
@@ -64,10 +60,14 @@ import {
64
60
  getActiveUiLanguage,
65
61
  translate,
66
62
  useTranslation
67
- } from "./chunk-BYHNJQYH.js";
63
+ } from "./chunk-GLVENTN6.js";
68
64
  import {
69
65
  normalizeAgentTitleText
70
66
  } from "./chunk-MIJXEELH.js";
67
+ import {
68
+ AGENT_PASTED_TEXT_BLOCK_KIND,
69
+ AGENT_PASTED_TEXT_MENTION_KIND
70
+ } from "./chunk-FGLQZ6I4.js";
71
71
 
72
72
  // shared/workspaceAgentSystemNoticeSemantics.ts
73
73
  function resolveWorkspaceAgentNoticeCommandSemantics(input) {
@@ -5605,7 +5605,7 @@ import {
5605
5605
  memo as memo4,
5606
5606
  useCallback as useCallback15,
5607
5607
  useLayoutEffect as useLayoutEffect4,
5608
- useMemo as useMemo8,
5608
+ useMemo as useMemo9,
5609
5609
  useRef as useRef13,
5610
5610
  useState as useState25
5611
5611
  } from "react";
@@ -6067,8 +6067,7 @@ function AgentCollaborationRow({
6067
6067
  workspaceRoot,
6068
6068
  basePath,
6069
6069
  onLinkAction,
6070
- workspaceAppIcons,
6071
- previewMode = false
6070
+ workspaceAppIcons
6072
6071
  }) {
6073
6072
  "use memo";
6074
6073
  const agentHostApi = useOptionalAgentHostApi();
@@ -6079,7 +6078,7 @@ function AgentCollaborationRow({
6079
6078
  const adoption = localAdoption ?? collaboration.adoption;
6080
6079
  const resultText = collaboration.resultText?.trim() ?? "";
6081
6080
  const canSubmitAdoption = Boolean(
6082
- runtime?.setCollaborationAdoption && collaboration.workspaceId && collaboration.agentSessionId && !previewMode
6081
+ runtime?.setCollaborationAdoption && collaboration.workspaceId && collaboration.agentSessionId
6083
6082
  );
6084
6083
  const showAdoptionControls = (collaboration.mode === "consult" || collaboration.mode === "delegate") && adoption !== "not_applicable" && collaboration.status === "completed" && canSubmitAdoption;
6085
6084
  const submitAdoption = useCallback2(
@@ -6243,8 +6242,7 @@ function AgentCollaborationRow({
6243
6242
  source: "agent-markdown"
6244
6243
  },
6245
6244
  workspaceAppIcons,
6246
- enableImageZoom: true,
6247
- previewMode
6245
+ enableImageZoom: true
6248
6246
  }
6249
6247
  )
6250
6248
  }
@@ -9512,11 +9510,7 @@ function lineClassName(line) {
9512
9510
  }
9513
9511
 
9514
9512
  // shared/agentConversation/components/tool-renderers/agentToolContentShared.tsx
9515
- import {
9516
- createContext as createContext2,
9517
- useContext as useContext2,
9518
- useState as useState8
9519
- } from "react";
9513
+ import { useState as useState8 } from "react";
9520
9514
  import { ChevronDown as ChevronDown4, ChevronRight as ChevronRight3 } from "lucide-react";
9521
9515
 
9522
9516
  // shared/agentConversation/components/tool-renderers/AgentReadContent.tsx
@@ -9611,14 +9605,6 @@ function languageForPath3(path) {
9611
9605
 
9612
9606
  // shared/agentConversation/components/tool-renderers/agentToolContentShared.tsx
9613
9607
  import { jsx as jsx24, jsxs as jsxs15 } from "react/jsx-runtime";
9614
- var AgentToolPreviewModeContext = createContext2(false);
9615
- function AgentToolPreviewModeProvider({
9616
- children,
9617
- previewMode
9618
- }) {
9619
- "use memo";
9620
- return /* @__PURE__ */ jsx24(AgentToolPreviewModeContext.Provider, { value: previewMode, children });
9621
- }
9622
9608
  function ToolSection({
9623
9609
  title,
9624
9610
  children
@@ -9635,12 +9621,9 @@ function ToolSection({
9635
9621
  function ToolMarkdownBlock({
9636
9622
  content,
9637
9623
  onLinkClick,
9638
- collapsible = false,
9639
- previewMode
9624
+ collapsible = false
9640
9625
  }) {
9641
9626
  "use memo";
9642
- const contextPreviewMode = useContext2(AgentToolPreviewModeContext);
9643
- const effectivePreviewMode = previewMode ?? contextPreviewMode;
9644
9627
  const normalized = content.trim();
9645
9628
  if (!normalized) {
9646
9629
  return null;
@@ -9652,7 +9635,6 @@ function ToolMarkdownBlock({
9652
9635
  onLinkClick,
9653
9636
  collapsible,
9654
9637
  enableImageZoom: true,
9655
- previewMode: effectivePreviewMode,
9656
9638
  className: "workspace-agents-status-panel__detail-tool-markdown [&_ol]:text-[var(--text-secondary)] [&_ul]:text-[var(--text-secondary)]"
9657
9639
  }
9658
9640
  );
@@ -11090,11 +11072,10 @@ function AgentWriteContent({
11090
11072
  import { jsx as jsx44 } from "react/jsx-runtime";
11091
11073
  function AgentExpandedToolContent({
11092
11074
  call,
11093
- onLinkClick,
11094
- previewMode = false
11075
+ onLinkClick
11095
11076
  }) {
11096
11077
  "use memo";
11097
- const props = { call, onLinkClick, previewMode };
11078
+ const props = { call, onLinkClick };
11098
11079
  let content;
11099
11080
  switch (call.rendererKind) {
11100
11081
  case "approval":
@@ -11152,7 +11133,7 @@ function AgentExpandedToolContent({
11152
11133
  if (!content) {
11153
11134
  return null;
11154
11135
  }
11155
- return /* @__PURE__ */ jsx44(AgentToolPreviewModeProvider, { previewMode, children: content });
11136
+ return content;
11156
11137
  }
11157
11138
 
11158
11139
  // shared/agentConversation/components/AgentAskUserQuestionCard.tsx
@@ -11160,7 +11141,6 @@ import { jsx as jsx45, jsxs as jsxs31 } from "react/jsx-runtime";
11160
11141
  function AgentAskUserQuestionCard({
11161
11142
  call,
11162
11143
  onLinkClick,
11163
- previewMode = false,
11164
11144
  defaultExpanded,
11165
11145
  nonCollapsible
11166
11146
  }) {
@@ -11181,22 +11161,8 @@ function AgentAskUserQuestionCard({
11181
11161
  }
11182
11162
  ) : /* @__PURE__ */ jsx45("div", { className: "workspace-agents-status-panel__detail-tool-row-head", children: /* @__PURE__ */ jsx45(AgentToolCallHeader, { call, expanded: false, hasDetail: false }) }),
11183
11163
  !hasDetail && call.summary ? /* @__PURE__ */ jsx45("div", { className: "workspace-agents-status-panel__detail-tool-summary", children: call.summary }) : null,
11184
- hasDetail && pinned ? /* @__PURE__ */ jsx45(
11185
- AgentExpandedToolContent,
11186
- {
11187
- call,
11188
- onLinkClick,
11189
- previewMode
11190
- }
11191
- ) : null,
11192
- hasDetail && !pinned ? /* @__PURE__ */ jsx45(CollapsibleReveal, { expanded, children: /* @__PURE__ */ jsx45(
11193
- AgentExpandedToolContent,
11194
- {
11195
- call,
11196
- onLinkClick,
11197
- previewMode
11198
- }
11199
- ) }) : null
11164
+ hasDetail && pinned ? /* @__PURE__ */ jsx45(AgentExpandedToolContent, { call, onLinkClick }) : null,
11165
+ hasDetail && !pinned ? /* @__PURE__ */ jsx45(CollapsibleReveal, { expanded, children: /* @__PURE__ */ jsx45(AgentExpandedToolContent, { call, onLinkClick }) }) : null
11200
11166
  ] });
11201
11167
  }
11202
11168
 
@@ -11204,22 +11170,14 @@ function AgentAskUserQuestionCard({
11204
11170
  import { jsx as jsx46, jsxs as jsxs32 } from "react/jsx-runtime";
11205
11171
  function AgentEnterPlanModeCard({
11206
11172
  call,
11207
- onLinkClick,
11208
- previewMode = false
11173
+ onLinkClick
11209
11174
  }) {
11210
11175
  "use memo";
11211
11176
  const hasDetail = hasAgentToolContent(call);
11212
11177
  return /* @__PURE__ */ jsxs32("div", { className: "workspace-agents-status-panel__detail-tool-row workspace-agents-status-panel__detail-tool-row--plan-enter", children: [
11213
11178
  /* @__PURE__ */ jsx46("div", { className: "workspace-agents-status-panel__detail-tool-row-head", children: /* @__PURE__ */ jsx46(AgentToolCallHeader, { call, expanded: false, hasDetail: false }) }),
11214
11179
  !hasDetail && call.summary ? /* @__PURE__ */ jsx46("div", { className: "workspace-agents-status-panel__detail-tool-summary", children: call.summary }) : null,
11215
- hasDetail ? /* @__PURE__ */ jsx46(
11216
- AgentExpandedToolContent,
11217
- {
11218
- call,
11219
- onLinkClick,
11220
- previewMode
11221
- }
11222
- ) : null
11180
+ hasDetail ? /* @__PURE__ */ jsx46(AgentExpandedToolContent, { call, onLinkClick }) : null
11223
11181
  ] });
11224
11182
  }
11225
11183
 
@@ -11227,22 +11185,14 @@ function AgentEnterPlanModeCard({
11227
11185
  import { jsx as jsx47, jsxs as jsxs33 } from "react/jsx-runtime";
11228
11186
  function AgentExitPlanModeCard({
11229
11187
  call,
11230
- onLinkClick,
11231
- previewMode = false
11188
+ onLinkClick
11232
11189
  }) {
11233
11190
  "use memo";
11234
11191
  const hasDetail = hasAgentToolContent(call);
11235
11192
  return /* @__PURE__ */ jsxs33("div", { className: "workspace-agents-status-panel__detail-tool-row workspace-agents-status-panel__detail-tool-row--plan-exit", children: [
11236
11193
  /* @__PURE__ */ jsx47("div", { className: "workspace-agents-status-panel__detail-tool-row-head", children: /* @__PURE__ */ jsx47(AgentToolCallHeader, { call, expanded: false, hasDetail: false }) }),
11237
11194
  !hasDetail && call.summary ? /* @__PURE__ */ jsx47("div", { className: "workspace-agents-status-panel__detail-tool-summary", children: call.summary }) : null,
11238
- hasDetail ? /* @__PURE__ */ jsx47(
11239
- AgentExpandedToolContent,
11240
- {
11241
- call,
11242
- onLinkClick,
11243
- previewMode
11244
- }
11245
- ) : null
11195
+ hasDetail ? /* @__PURE__ */ jsx47(AgentExpandedToolContent, { call, onLinkClick }) : null
11246
11196
  ] });
11247
11197
  }
11248
11198
 
@@ -11454,8 +11404,7 @@ import { jsx as jsx49, jsxs as jsxs35 } from "react/jsx-runtime";
11454
11404
  function WorkspaceAgentSessionThinkingDisclosure({
11455
11405
  thinking,
11456
11406
  label,
11457
- onLinkClick,
11458
- previewMode = false
11407
+ onLinkClick
11459
11408
  }) {
11460
11409
  "use memo";
11461
11410
  const [expanded, setExpanded] = useState12(false);
@@ -11524,8 +11473,7 @@ function WorkspaceAgentSessionThinkingDisclosure({
11524
11473
  content: thinking.body,
11525
11474
  onLinkClick,
11526
11475
  className: "text-[11px] text-[var(--text-secondary)] opacity-92 [&_p]:mb-1",
11527
- enableImageZoom: true,
11528
- previewMode
11476
+ enableImageZoom: true
11529
11477
  }
11530
11478
  ) }) })
11531
11479
  ] });
@@ -11606,7 +11554,6 @@ function AgentThinkingDisclosure({
11606
11554
  thinking,
11607
11555
  label,
11608
11556
  onLinkClick,
11609
- previewMode = false,
11610
11557
  showRawTimelineJson = false,
11611
11558
  rawTimelineJsonLabel = ""
11612
11559
  }) {
@@ -11617,8 +11564,7 @@ function AgentThinkingDisclosure({
11617
11564
  {
11618
11565
  thinking,
11619
11566
  label,
11620
- onLinkClick,
11621
- previewMode
11567
+ onLinkClick
11622
11568
  }
11623
11569
  ),
11624
11570
  showRawTimelineJson && rawTimelineJsonLabel ? /* @__PURE__ */ jsx51(
@@ -11637,7 +11583,6 @@ import { jsx as jsx52, jsxs as jsxs38 } from "react/jsx-runtime";
11637
11583
  function AgentTaskCallCard({
11638
11584
  call,
11639
11585
  onLinkClick,
11640
- previewMode = false,
11641
11586
  defaultExpanded,
11642
11587
  nonCollapsible
11643
11588
  }) {
@@ -11660,22 +11605,8 @@ function AgentTaskCallCard({
11660
11605
  }
11661
11606
  ) : /* @__PURE__ */ jsx52("div", { className: "workspace-agents-status-panel__detail-tool-row-head", children: /* @__PURE__ */ jsx52(AgentToolCallHeader, { call, expanded: false, hasDetail: false }) }),
11662
11607
  !hasDetail && call.summary ? /* @__PURE__ */ jsx52("div", { className: "workspace-agents-status-panel__detail-tool-summary", children: call.summary }) : null,
11663
- hasDetail && pinned ? /* @__PURE__ */ jsx52(
11664
- AgentExpandedToolContent,
11665
- {
11666
- call,
11667
- onLinkClick,
11668
- previewMode
11669
- }
11670
- ) : null,
11671
- hasDetail && !pinned ? /* @__PURE__ */ jsx52(CollapsibleReveal, { expanded, children: /* @__PURE__ */ jsx52(
11672
- AgentExpandedToolContent,
11673
- {
11674
- call,
11675
- onLinkClick,
11676
- previewMode
11677
- }
11678
- ) }) : null
11608
+ hasDetail && pinned ? /* @__PURE__ */ jsx52(AgentExpandedToolContent, { call, onLinkClick }) : null,
11609
+ hasDetail && !pinned ? /* @__PURE__ */ jsx52(CollapsibleReveal, { expanded, children: /* @__PURE__ */ jsx52(AgentExpandedToolContent, { call, onLinkClick }) }) : null
11679
11610
  ] });
11680
11611
  }
11681
11612
  function taskCallAriaLabel(call) {
@@ -11915,7 +11846,6 @@ import { jsx as jsx55, jsxs as jsxs40 } from "react/jsx-runtime";
11915
11846
  function AgentToolCallCard({
11916
11847
  call,
11917
11848
  onLinkClick,
11918
- previewMode = false,
11919
11849
  defaultExpanded = false,
11920
11850
  nonCollapsible = false,
11921
11851
  variantClassName
@@ -11944,22 +11874,8 @@ function AgentToolCallCard({
11944
11874
  children: /* @__PURE__ */ jsx55(AgentToolCallHeader, { call, expanded, hasDetail: true })
11945
11875
  }
11946
11876
  ) : /* @__PURE__ */ jsx55("div", { className: "workspace-agents-status-panel__detail-tool-row-head", children: /* @__PURE__ */ jsx55(AgentToolCallHeader, { call, expanded: false, hasDetail: false }) }),
11947
- hasDetail && nonCollapsible ? /* @__PURE__ */ jsx55(
11948
- AgentExpandedToolContent,
11949
- {
11950
- call,
11951
- onLinkClick,
11952
- previewMode
11953
- }
11954
- ) : null,
11955
- hasDetail && !nonCollapsible ? /* @__PURE__ */ jsx55(CollapsibleReveal, { expanded, children: /* @__PURE__ */ jsx55(
11956
- AgentExpandedToolContent,
11957
- {
11958
- call,
11959
- onLinkClick,
11960
- previewMode
11961
- }
11962
- ) }) : null
11877
+ hasDetail && nonCollapsible ? /* @__PURE__ */ jsx55(AgentExpandedToolContent, { call, onLinkClick }) : null,
11878
+ hasDetail && !nonCollapsible ? /* @__PURE__ */ jsx55(CollapsibleReveal, { expanded, children: /* @__PURE__ */ jsx55(AgentExpandedToolContent, { call, onLinkClick }) }) : null
11963
11879
  ]
11964
11880
  }
11965
11881
  );
@@ -11979,7 +11895,6 @@ var AgentToolGroupRow = memo2(function AgentToolGroupRow2({
11979
11895
  label,
11980
11896
  thinkingLabel,
11981
11897
  onLinkClick,
11982
- previewMode = false,
11983
11898
  expanded,
11984
11899
  expansionKey,
11985
11900
  onExpandedChange,
@@ -12004,7 +11919,6 @@ var AgentToolGroupRow = memo2(function AgentToolGroupRow2({
12004
11919
  return renderToolCard(
12005
11920
  singleCall,
12006
11921
  onLinkClick,
12007
- previewMode,
12008
11922
  showRawTimelineJson,
12009
11923
  rawTimelineJsonLabel
12010
11924
  );
@@ -12056,7 +11970,6 @@ var AgentToolGroupRow = memo2(function AgentToolGroupRow2({
12056
11970
  thinking: entry.thinking,
12057
11971
  label: thinkingLabel,
12058
11972
  onLinkClick,
12059
- previewMode,
12060
11973
  showRawTimelineJson,
12061
11974
  rawTimelineJsonLabel
12062
11975
  }
@@ -12070,7 +11983,6 @@ var AgentToolGroupRow = memo2(function AgentToolGroupRow2({
12070
11983
  children: renderToolCard(
12071
11984
  entry.call,
12072
11985
  onLinkClick,
12073
- previewMode,
12074
11986
  showRawTimelineJson,
12075
11987
  rawTimelineJsonLabel
12076
11988
  )
@@ -12100,8 +12012,8 @@ function ToolGroupLabel({ label }) {
12100
12012
  function renderToolCountLabel(label) {
12101
12013
  return /* @__PURE__ */ jsx56("span", { className: "workspace-agents-status-panel__detail-tool-count-primary", children: label });
12102
12014
  }
12103
- function renderToolCard(call, onLinkClick, previewMode = false, showRawTimelineJson = false, rawTimelineJsonLabel = "") {
12104
- const props = { call, onLinkClick, previewMode };
12015
+ function renderToolCard(call, onLinkClick, showRawTimelineJson = false, rawTimelineJsonLabel = "") {
12016
+ const props = { call, onLinkClick };
12105
12017
  if (call.task?.subAgents?.length) {
12106
12018
  return /* @__PURE__ */ jsx56(AgentSubAgentCards, { call, onLinkClick });
12107
12019
  }
@@ -12492,10 +12404,10 @@ function AgentMessageBlock({
12492
12404
  provider,
12493
12405
  availableSkills,
12494
12406
  workspaceAppIcons,
12495
- previewMode = false,
12496
12407
  showRawTimelineJson = false,
12497
12408
  rawTimelineJsonLabel = "",
12498
- participantPresentation
12409
+ participantPresentation,
12410
+ showParticipantHeader = true
12499
12411
  }) {
12500
12412
  "use memo";
12501
12413
  const agentHostApi = useOptionalAgentHostApi();
@@ -12542,7 +12454,6 @@ function AgentMessageBlock({
12542
12454
  thinking,
12543
12455
  label: thinkingLabel,
12544
12456
  onLinkClick: handleLinkClick,
12545
- previewMode,
12546
12457
  showRawTimelineJson,
12547
12458
  rawTimelineJsonLabel
12548
12459
  },
@@ -12555,7 +12466,6 @@ function AgentMessageBlock({
12555
12466
  label: toolCallsLabel,
12556
12467
  thinkingLabel,
12557
12468
  onLinkClick: handleLinkClick,
12558
- previewMode,
12559
12469
  showRawTimelineJson,
12560
12470
  rawTimelineJsonLabel
12561
12471
  },
@@ -12602,8 +12512,7 @@ function AgentMessageBlock({
12602
12512
  workspaceRoot,
12603
12513
  basePath,
12604
12514
  onLinkAction,
12605
- workspaceAppIcons,
12606
- previewMode
12515
+ workspaceAppIcons
12607
12516
  }
12608
12517
  ) : message.contentKind === "plan" ? /* @__PURE__ */ jsx61(
12609
12518
  AgentPlanCardMessage,
@@ -12612,8 +12521,7 @@ function AgentMessageBlock({
12612
12521
  workspaceRoot,
12613
12522
  basePath,
12614
12523
  onLinkAction,
12615
- workspaceAppIcons,
12616
- previewMode
12524
+ workspaceAppIcons
12617
12525
  }
12618
12526
  ) : /* @__PURE__ */ jsx61(
12619
12527
  AgentMessageMarkdown,
@@ -12629,7 +12537,6 @@ function AgentMessageBlock({
12629
12537
  },
12630
12538
  workspaceAppIcons,
12631
12539
  enableImageZoom: true,
12632
- previewMode,
12633
12540
  streaming: message.statusKind === "working"
12634
12541
  }
12635
12542
  );
@@ -12666,7 +12573,7 @@ function AgentMessageBlock({
12666
12573
  return /* @__PURE__ */ jsx61(Fragment6, { children: content }, message.id);
12667
12574
  });
12668
12575
  const enabledParticipantPresentation = participantPresentation?.enabled === true ? participantPresentation : null;
12669
- const showParticipant = enabledParticipantPresentation !== null && row.messages.length > 0;
12576
+ const showParticipant = enabledParticipantPresentation !== null && showParticipantHeader && row.messages.length > 0;
12670
12577
  return /* @__PURE__ */ jsxs43(
12671
12578
  "div",
12672
12579
  {
@@ -12961,8 +12868,7 @@ function AgentPlanCardMessage({
12961
12868
  workspaceRoot,
12962
12869
  basePath,
12963
12870
  onLinkAction,
12964
- workspaceAppIcons,
12965
- previewMode = false
12871
+ workspaceAppIcons
12966
12872
  }) {
12967
12873
  "use memo";
12968
12874
  return /* @__PURE__ */ jsx61(AgentPlanCard, { copyText: message.body, children: /* @__PURE__ */ jsx61(
@@ -12977,8 +12883,7 @@ function AgentPlanCardMessage({
12977
12883
  source: "agent-markdown"
12978
12884
  },
12979
12885
  workspaceAppIcons,
12980
- enableImageZoom: true,
12981
- previewMode
12886
+ enableImageZoom: true
12982
12887
  }
12983
12888
  ) });
12984
12889
  }
@@ -13817,9 +13722,9 @@ var AgentTranscriptItemView = memo3(function AgentTranscriptItemView2({
13817
13722
  provider,
13818
13723
  availableSkills,
13819
13724
  workspaceAppIcons,
13820
- previewMode = false,
13821
13725
  showRawTimelineJson = false,
13822
13726
  participantPresentation,
13727
+ showParticipantHeader,
13823
13728
  toolGroupExpanded,
13824
13729
  toolGroupExpansionKey,
13825
13730
  onToolGroupExpandedChange
@@ -13863,12 +13768,12 @@ var AgentTranscriptItemView = memo3(function AgentTranscriptItemView2({
13863
13768
  provider,
13864
13769
  availableSkills,
13865
13770
  workspaceAppIcons,
13866
- previewMode,
13867
13771
  thinkingLabel: labels.thinkingLabel,
13868
13772
  toolCallsLabel: labels.toolCallsLabel,
13869
13773
  showRawTimelineJson,
13870
13774
  rawTimelineJsonLabel: labels.rawTimelineJson,
13871
- participantPresentation
13775
+ participantPresentation,
13776
+ showParticipantHeader
13872
13777
  }
13873
13778
  );
13874
13779
  case "tool-group":
@@ -13879,7 +13784,6 @@ var AgentTranscriptItemView = memo3(function AgentTranscriptItemView2({
13879
13784
  label: labels.toolCallsLabel,
13880
13785
  thinkingLabel: labels.thinkingLabel,
13881
13786
  onLinkClick: handleLinkClick,
13882
- previewMode,
13883
13787
  showRawTimelineJson,
13884
13788
  rawTimelineJsonLabel: labels.rawTimelineJson,
13885
13789
  expanded: row.grouped ? toolGroupExpanded : void 0,
@@ -13895,8 +13799,7 @@ var AgentTranscriptItemView = memo3(function AgentTranscriptItemView2({
13895
13799
  workspaceRoot,
13896
13800
  basePath,
13897
13801
  label: labels.turnSummary,
13898
- onLinkAction,
13899
- previewMode
13802
+ onLinkAction
13900
13803
  }
13901
13804
  );
13902
13805
  case "processing":
@@ -13906,14 +13809,14 @@ var AgentTranscriptItemView = memo3(function AgentTranscriptItemView2({
13906
13809
 
13907
13810
  // shared/agentConversation/components/AgentTurnDisclosureContext.tsx
13908
13811
  import {
13909
- createContext as createContext3,
13812
+ createContext as createContext2,
13910
13813
  useCallback as useCallback11,
13911
- useContext as useContext3,
13814
+ useContext as useContext2,
13912
13815
  useMemo as useMemo6,
13913
13816
  useState as useState22
13914
13817
  } from "react";
13915
13818
  import { jsx as jsx66 } from "react/jsx-runtime";
13916
- var AgentTurnDisclosureContext = createContext3(null);
13819
+ var AgentTurnDisclosureContext = createContext2(null);
13917
13820
  function AgentTurnDisclosureProvider({
13918
13821
  children
13919
13822
  }) {
@@ -13921,7 +13824,7 @@ function AgentTurnDisclosureProvider({
13921
13824
  return /* @__PURE__ */ jsx66(AgentTurnDisclosureContext.Provider, { value: store, children });
13922
13825
  }
13923
13826
  function useAgentTurnDisclosureStore() {
13924
- const contextStore = useContext3(AgentTurnDisclosureContext);
13827
+ const contextStore = useContext2(AgentTurnDisclosureContext);
13925
13828
  const localStore = useAgentTurnDisclosureStoreState();
13926
13829
  return contextStore ?? localStore;
13927
13830
  }
@@ -13944,6 +13847,34 @@ import { Button as Button2 } from "@tutti-os/ui-system/components";
13944
13847
  import { ChevronDownIcon } from "@tutti-os/ui-system/icons";
13945
13848
 
13946
13849
  // shared/agentConversation/components/agentTurnWorkSectionModel.ts
13850
+ function findParticipantHeaderRenderKeys(groups, rowKeys, modelByGroupKey) {
13851
+ const headerKeys = /* @__PURE__ */ new Set();
13852
+ for (const group of groups) {
13853
+ const model = modelByGroupKey.get(group.key);
13854
+ const renderedRows = model ? model.collapseEligible ? [
13855
+ ...model.leadingRows,
13856
+ ...model.sections.flatMap(
13857
+ (section) => section.kind === "visible" ? section.rows : []
13858
+ ),
13859
+ ...model.sections.flatMap(
13860
+ (section) => section.kind === "work" ? section.rows : []
13861
+ )
13862
+ ] : [
13863
+ ...model.leadingRows,
13864
+ ...model.sections.flatMap((section) => section.rows)
13865
+ ] : group.rows;
13866
+ const seenSpeakers = /* @__PURE__ */ new Set();
13867
+ for (const entry of renderedRows) {
13868
+ const row = entry.row;
13869
+ if (row.kind !== "message" || row.messages.length === 0 || seenSpeakers.has(row.speaker)) {
13870
+ continue;
13871
+ }
13872
+ seenSpeakers.add(row.speaker);
13873
+ headerKeys.add(entry.renderKey ?? rowKeys[entry.rowIndex] ?? row.id);
13874
+ }
13875
+ }
13876
+ return headerKeys;
13877
+ }
13947
13878
  function resolveAgentTurnTiming(turn, isActiveTurn, submittedAtUnixMs) {
13948
13879
  if (!turn || !Number.isFinite(turn.startedAtUnixMs)) {
13949
13880
  return null;
@@ -14487,7 +14418,7 @@ import {
14487
14418
  } from "react";
14488
14419
 
14489
14420
  // shared/agentConversation/components/agentTranscriptModel.ts
14490
- import { useLayoutEffect as useLayoutEffect2, useRef as useRef9 } from "react";
14421
+ import { useLayoutEffect as useLayoutEffect2, useMemo as useMemo7, useRef as useRef9 } from "react";
14491
14422
  function useEnteringTranscriptRows(rowKeys) {
14492
14423
  const previousKeysRef = useRef9(null);
14493
14424
  const previousKeys = previousKeysRef.current;
@@ -14667,6 +14598,12 @@ function attachLeadingToolRowsToFollowingMessages(rows) {
14667
14598
  result.push(...pendingToolRows);
14668
14599
  return result;
14669
14600
  }
14601
+ function useAgentTranscriptDisplayRows(rows, participantHeadersEnabled) {
14602
+ return useMemo7(() => {
14603
+ const displayRows = participantHeadersEnabled ? attachLeadingToolRowsToFollowingMessages(rows) : rows;
14604
+ return { rows: displayRows, rowKeys: displayRows.map(transcriptRowKey) };
14605
+ }, [rows, participantHeadersEnabled]);
14606
+ }
14670
14607
 
14671
14608
  // shared/agentConversation/components/AgentMessageLocatorRail.tsx
14672
14609
  import { jsx as jsx68, jsxs as jsxs47 } from "react/jsx-runtime";
@@ -15284,12 +15221,12 @@ function useTurnDisclosureMotion() {
15284
15221
  import {
15285
15222
  useCallback as useCallback14,
15286
15223
  useImperativeHandle as useImperativeHandle6,
15287
- useMemo as useMemo7,
15224
+ useMemo as useMemo8,
15288
15225
  useRef as useRef12
15289
15226
  } from "react";
15290
15227
  import { jsx as jsx69 } from "react/jsx-runtime";
15291
15228
  function useAgentTranscriptTurnAttachments(input) {
15292
- const projection = useMemo7(() => {
15229
+ const projection = useMemo8(() => {
15293
15230
  const lastGroupIndexByTurnId = /* @__PURE__ */ new Map();
15294
15231
  input.turnGroups.forEach((group, groupIndex) => {
15295
15232
  if (group.turnId) lastGroupIndexByTurnId.set(group.turnId, groupIndex);
@@ -15456,7 +15393,7 @@ function areAgentTranscriptViewPropsEqual(previous, next) {
15456
15393
  return transcriptConversationRenderInputEquals(
15457
15394
  previous.conversation,
15458
15395
  next.conversation
15459
- ) && previous.onLinkAction === next.onLinkAction && previous.onAuthLogin === next.onAuthLogin && previous.availableSkills === next.availableSkills && previous.workspaceAppIcons === next.workspaceAppIcons && previous.turnAttachments === next.turnAttachments && previous.turnAttachmentLocatorRef === next.turnAttachmentLocatorRef && previous.onTurnAttachmentVisibilityChange === next.onTurnAttachmentVisibilityChange && previous.previewMode === next.previewMode && previous.showRawTimelineJson === next.showRawTimelineJson && participantPresentationEqual(
15396
+ ) && previous.onLinkAction === next.onLinkAction && previous.onAuthLogin === next.onAuthLogin && previous.availableSkills === next.availableSkills && previous.workspaceAppIcons === next.workspaceAppIcons && previous.turnAttachments === next.turnAttachments && previous.turnAttachmentLocatorRef === next.turnAttachmentLocatorRef && previous.onTurnAttachmentVisibilityChange === next.onTurnAttachmentVisibilityChange && previous.showRawTimelineJson === next.showRawTimelineJson && participantPresentationEqual(
15460
15397
  previous.participantPresentation,
15461
15398
  next.participantPresentation
15462
15399
  ) && transcriptLabelsEqual(previous.labels, next.labels);
@@ -15470,7 +15407,6 @@ var AgentTranscriptView = memo4(function AgentTranscriptView2({
15470
15407
  onAuthLogin,
15471
15408
  availableSkills,
15472
15409
  workspaceAppIcons,
15473
- previewMode = false,
15474
15410
  showRawTimelineJson = false,
15475
15411
  participantPresentation,
15476
15412
  labels
@@ -15482,21 +15418,21 @@ var AgentTranscriptView = memo4(function AgentTranscriptView2({
15482
15418
  const virtualizerHostRef = useRef13(null);
15483
15419
  const [virtualScrollElement, setVirtualScrollElement] = useState25(null);
15484
15420
  const participantHeadersEnabled = participantPresentation?.enabled === true;
15485
- const transcriptRowSet = useMemo8(() => {
15486
- const rows = participantHeadersEnabled ? attachLeadingToolRowsToFollowingMessages(conversation.rows) : conversation.rows;
15487
- return { rows, rowKeys: rows.map(transcriptRowKey) };
15488
- }, [conversation.rows, participantHeadersEnabled]);
15421
+ const transcriptRowSet = useAgentTranscriptDisplayRows(
15422
+ conversation.rows,
15423
+ participantHeadersEnabled
15424
+ );
15489
15425
  const displayRows = transcriptRowSet.rows;
15490
15426
  const rowKeys = transcriptRowSet.rowKeys;
15491
- const turnGroups = useMemo8(
15427
+ const turnGroups = useMemo9(
15492
15428
  () => buildAgentTranscriptTurnGroups(displayRows, rowKeys),
15493
15429
  [displayRows, rowKeys]
15494
15430
  );
15495
- const turnGroupIndexByRowIndex = useMemo8(
15431
+ const turnGroupIndexByRowIndex = useMemo9(
15496
15432
  () => buildTurnGroupIndexByRowIndex(turnGroups),
15497
15433
  [turnGroups]
15498
15434
  );
15499
- const userMessageLocatorItems = useMemo8(
15435
+ const userMessageLocatorItems = useMemo9(
15500
15436
  () => buildUserMessageLocatorItems(
15501
15437
  displayRows,
15502
15438
  rowKeys,
@@ -15519,13 +15455,13 @@ var AgentTranscriptView = memo4(function AgentTranscriptView2({
15519
15455
  },
15520
15456
  []
15521
15457
  );
15522
- const turnIndexById = useMemo8(
15458
+ const turnIndexById = useMemo9(
15523
15459
  () => new Map(
15524
15460
  conversation.sourceDetail.turns.map((turn, index) => [turn.id, index])
15525
15461
  ),
15526
15462
  [conversation.sourceDetail.turns]
15527
15463
  );
15528
- const dividerRowIndexes = useMemo8(
15464
+ const dividerRowIndexes = useMemo9(
15529
15465
  () => participantHeadersEnabled ? findParticipantTurnDividerRowIndexes(displayRows) : findTurnDividerRowIndexes(turnIndexById, displayRows),
15530
15466
  [displayRows, turnIndexById, participantHeadersEnabled]
15531
15467
  );
@@ -15551,10 +15487,15 @@ var AgentTranscriptView = memo4(function AgentTranscriptView2({
15551
15487
  ];
15552
15488
  })
15553
15489
  );
15490
+ const participantHeaderRenderKeys = participantHeadersEnabled ? findParticipantHeaderRenderKeys(
15491
+ turnGroups,
15492
+ rowKeys,
15493
+ turnWorkSectionModelByKey
15494
+ ) : null;
15554
15495
  const basePath = conversation.sourceDetail.cwd;
15555
15496
  const workspaceRoot = conversation.workspaceRoot;
15556
15497
  const provider = conversation.activity.agentProvider;
15557
- const shouldVirtualize = useMemo8(
15498
+ const shouldVirtualize = useMemo9(
15558
15499
  () => assessAgentTranscriptComplexity(turnGroups).shouldVirtualize,
15559
15500
  [turnGroups]
15560
15501
  );
@@ -15639,9 +15580,9 @@ var AgentTranscriptView = memo4(function AgentTranscriptView2({
15639
15580
  provider,
15640
15581
  availableSkills,
15641
15582
  workspaceAppIcons,
15642
- previewMode,
15643
15583
  showRawTimelineJson,
15644
15584
  participantPresentation,
15585
+ showParticipantHeader: participantHeaderRenderKeys?.has(rowKey) ?? false,
15645
15586
  toolGroupExpanded: row.kind === "tool-group" ? expandedToolRows[rowKey] === true : void 0,
15646
15587
  toolGroupExpansionKey: row.kind === "tool-group" ? rowKey : void 0,
15647
15588
  onToolGroupExpandedChange: handleToolGroupExpandedChange
@@ -15785,7 +15726,6 @@ var AgentConversationFlow = memo5(function AgentConversationFlow2({
15785
15726
  onAuthLogin,
15786
15727
  availableSkills,
15787
15728
  workspaceAppIcons,
15788
- previewMode = false,
15789
15729
  showRawTimelineJson = false,
15790
15730
  participantPresentation,
15791
15731
  labels
@@ -15808,7 +15748,6 @@ var AgentConversationFlow = memo5(function AgentConversationFlow2({
15808
15748
  onAuthLogin,
15809
15749
  availableSkills,
15810
15750
  workspaceAppIcons,
15811
- previewMode,
15812
15751
  labels,
15813
15752
  showRawTimelineJson,
15814
15753
  participantPresentation
@@ -15819,14 +15758,14 @@ var AgentConversationFlow = memo5(function AgentConversationFlow2({
15819
15758
  });
15820
15759
 
15821
15760
  // shared/agentConversation/projection/useProjectedAgentConversation.ts
15822
- import { useMemo as useMemo9, useRef as useRef14 } from "react";
15761
+ import { useMemo as useMemo10, useRef as useRef14 } from "react";
15823
15762
  function useProjectedAgentConversation({
15824
15763
  conversation,
15825
15764
  detail,
15826
15765
  avoidGroupingEdits = false
15827
15766
  }) {
15828
15767
  const previousConversationRef = useRef14(null);
15829
- return useMemo9(() => {
15768
+ return useMemo10(() => {
15830
15769
  if (!conversation && !detail) {
15831
15770
  previousConversationRef.current = null;
15832
15771
  return null;
@@ -15885,4 +15824,4 @@ export {
15885
15824
  AgentConversationFlow,
15886
15825
  useProjectedAgentConversation
15887
15826
  };
15888
- //# sourceMappingURL=chunk-YTU6IUO2.js.map
15827
+ //# sourceMappingURL=chunk-GDLM6FLK.js.map