@tutti-os/agent-gui 0.0.95 → 0.0.96

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 (110) hide show
  1. package/README.md +38 -6
  2. package/dist/{AgentGUI-CwBLYtv-.d.ts → AgentGUI-DWdvUV4x.d.ts} +64 -18
  3. package/dist/agent-conversation/index.d.ts +3 -2
  4. package/dist/agent-conversation/index.js +10 -9
  5. package/dist/agent-conversation/index.js.map +1 -1
  6. package/dist/agent-env/index.js +1 -1
  7. package/dist/agent-gui.d.ts +5 -5
  8. package/dist/agent-gui.js +26 -26
  9. package/dist/agent-message-center/index.d.ts +14 -3
  10. package/dist/agent-message-center/index.js +182 -47
  11. package/dist/agent-message-center/index.js.map +1 -1
  12. package/dist/{agentFileMentionContracts-Czvz6YMI.d.ts → agentFileMentionContracts-58IjMU-u.d.ts} +1 -0
  13. package/dist/{agentGuiNodeTypes-DppADPHW.d.ts → agentGuiNodeTypes-B9X4aWfv.d.ts} +30 -18
  14. package/dist/agents.d.ts +1 -1
  15. package/dist/agents.js +1 -1
  16. package/dist/app/renderer/agentactivity.css +150 -3
  17. package/dist/{chunk-C5FV4UGI.js → chunk-2HJEOO7W.js} +14 -6
  18. package/dist/chunk-2HJEOO7W.js.map +1 -0
  19. package/dist/{chunk-BFNJKTDV.js → chunk-3XXBDYAI.js} +11 -16
  20. package/dist/chunk-3XXBDYAI.js.map +1 -0
  21. package/dist/{chunk-YE25HN6T.js → chunk-3Y3F7CS5.js} +17 -25
  22. package/dist/chunk-3Y3F7CS5.js.map +1 -0
  23. package/dist/{chunk-CRO2MV2Y.js → chunk-4PQPJ5OY.js} +21 -116
  24. package/dist/chunk-4PQPJ5OY.js.map +1 -0
  25. package/dist/{chunk-R2EWECUP.js → chunk-7BXWPI4F.js} +17 -2
  26. package/dist/{chunk-R2EWECUP.js.map → chunk-7BXWPI4F.js.map} +1 -1
  27. package/dist/{chunk-LQVXBT65.js → chunk-AGT7MUTV.js} +9 -9
  28. package/dist/{chunk-LQVXBT65.js.map → chunk-AGT7MUTV.js.map} +1 -1
  29. package/dist/{chunk-O6W72SEP.js → chunk-C35SNDVZ.js} +4 -1
  30. package/dist/chunk-C35SNDVZ.js.map +1 -0
  31. package/dist/{chunk-BIHBXWK5.js → chunk-E4HQUTM3.js} +2 -2
  32. package/dist/{chunk-NX3CZJXW.js → chunk-H5F3QSCF.js} +2 -2
  33. package/dist/{chunk-WEDMAVX2.js → chunk-IYEXLOUE.js} +3 -6
  34. package/dist/chunk-IYEXLOUE.js.map +1 -0
  35. package/dist/{chunk-3R2D4E57.js → chunk-JKIZA7EJ.js} +933 -844
  36. package/dist/chunk-JKIZA7EJ.js.map +1 -0
  37. package/dist/{chunk-UQJPV6HP.js → chunk-L3GMMGRS.js} +8 -6
  38. package/dist/chunk-L3GMMGRS.js.map +1 -0
  39. package/dist/{chunk-KAL4XZMA.js → chunk-MASXZENX.js} +1 -1
  40. package/dist/chunk-MASXZENX.js.map +1 -0
  41. package/dist/{chunk-7PFDA2HQ.js → chunk-O3Q5SIJH.js} +3 -3
  42. package/dist/{chunk-NITOD7WF.js → chunk-QVBF5BN5.js} +2 -2
  43. package/dist/{chunk-7RDD3EWP.js → chunk-RE4AXS27.js} +24 -15
  44. package/dist/chunk-RE4AXS27.js.map +1 -0
  45. package/dist/{chunk-NJAZ7LQM.js → chunk-TVIGLNNI.js} +3 -3
  46. package/dist/{chunk-VF22EG3F.js → chunk-UHBCM6RO.js} +1 -1
  47. package/dist/chunk-UHBCM6RO.js.map +1 -0
  48. package/dist/{chunk-AOS2VWU6.js → chunk-W6WAGPMD.js} +33 -3
  49. package/dist/chunk-W6WAGPMD.js.map +1 -0
  50. package/dist/{chunk-RY6GIO3K.js → chunk-WKSFPJHZ.js} +5010 -3656
  51. package/dist/chunk-WKSFPJHZ.js.map +1 -0
  52. package/dist/{chunk-JX2SIXNL.js → chunk-WMNS4MAQ.js} +8 -7
  53. package/dist/{chunk-JX2SIXNL.js.map → chunk-WMNS4MAQ.js.map} +1 -1
  54. package/dist/{chunk-XMO45GKA.js → chunk-XPFHJMZP.js} +14 -4
  55. package/dist/chunk-XPFHJMZP.js.map +1 -0
  56. package/dist/chunk-YMXYBG7U.js +12 -0
  57. package/dist/chunk-YMXYBG7U.js.map +1 -0
  58. package/dist/context-mention-palette/index.d.ts +1 -1
  59. package/dist/context-mention-palette/index.js +14 -14
  60. package/dist/custom-mention.d.ts +2 -4
  61. package/dist/dock-icons.d.ts +2 -4
  62. package/dist/i18n/index.d.ts +30 -0
  63. package/dist/i18n/index.js +2 -2
  64. package/dist/index.d.ts +14 -12
  65. package/dist/index.js +34 -30
  66. package/dist/index.js.map +1 -1
  67. package/dist/mention-search.d.ts +1 -1
  68. package/dist/mention-search.js +11 -11
  69. package/dist/pastedTextKinds-D-XuInaS.d.ts +4 -0
  70. package/dist/startup-shell.d.ts +8 -0
  71. package/dist/startup-shell.js +184 -0
  72. package/dist/startup-shell.js.map +1 -0
  73. package/dist/{types-DX2bxgB8.d.ts → types-CnT8rNUI.d.ts} +16 -5
  74. package/dist/workbench/contribution.d.ts +3 -2
  75. package/dist/workbench/contribution.js +6 -6
  76. package/dist/workbench/index.d.ts +4 -4
  77. package/dist/workbench/index.js +14 -16
  78. package/dist/workbench/launch.d.ts +2 -2
  79. package/dist/workbench/launch.js +3 -3
  80. package/dist/workbench/providerCatalog.d.ts +2 -2
  81. package/dist/workbench/providerCatalog.js +1 -1
  82. package/dist/workbench/sessionTitle.d.ts +8 -12
  83. package/dist/workbench/sessionTitle.js +5 -7
  84. package/dist/workbench/state.js +2 -2
  85. package/dist/workbench/types.d.ts +2 -1
  86. package/dist/workbench/types.js +1 -1
  87. package/dist/workspace-agent-generated-files.js +6 -6
  88. package/package.json +19 -12
  89. package/dist/chunk-3R2D4E57.js.map +0 -1
  90. package/dist/chunk-7J4K6WKB.js +0 -66
  91. package/dist/chunk-7J4K6WKB.js.map +0 -1
  92. package/dist/chunk-7RDD3EWP.js.map +0 -1
  93. package/dist/chunk-AOS2VWU6.js.map +0 -1
  94. package/dist/chunk-BFNJKTDV.js.map +0 -1
  95. package/dist/chunk-C5FV4UGI.js.map +0 -1
  96. package/dist/chunk-CRO2MV2Y.js.map +0 -1
  97. package/dist/chunk-KAL4XZMA.js.map +0 -1
  98. package/dist/chunk-O6W72SEP.js.map +0 -1
  99. package/dist/chunk-RY6GIO3K.js.map +0 -1
  100. package/dist/chunk-UQJPV6HP.js.map +0 -1
  101. package/dist/chunk-VF22EG3F.js.map +0 -1
  102. package/dist/chunk-WEDMAVX2.js.map +0 -1
  103. package/dist/chunk-XMO45GKA.js.map +0 -1
  104. package/dist/chunk-YE25HN6T.js.map +0 -1
  105. package/dist/uiSettings-BQS9r2eo.d.ts +0 -6
  106. /package/dist/{chunk-BIHBXWK5.js.map → chunk-E4HQUTM3.js.map} +0 -0
  107. /package/dist/{chunk-NX3CZJXW.js.map → chunk-H5F3QSCF.js.map} +0 -0
  108. /package/dist/{chunk-7PFDA2HQ.js.map → chunk-O3Q5SIJH.js.map} +0 -0
  109. /package/dist/{chunk-NITOD7WF.js.map → chunk-QVBF5BN5.js.map} +0 -0
  110. /package/dist/{chunk-NJAZ7LQM.js.map → chunk-TVIGLNNI.js.map} +0 -0
@@ -1,8 +1,9 @@
1
1
  import {
2
2
  classifyFailedAgentMessage,
3
+ isProviderPlanLimitMessage,
3
4
  openAgentEnvPanel,
4
5
  resolveAgentErrorPresentation
5
- } from "./chunk-R2EWECUP.js";
6
+ } from "./chunk-7BXWPI4F.js";
6
7
  import {
7
8
  AGENT_PASTED_TEXT_BLOCK_KIND,
8
9
  AGENT_PASTED_TEXT_MENTION_KIND
@@ -14,7 +15,7 @@ import {
14
15
  formatAgentMentionMarkdown,
15
16
  mentionItemToAttrs,
16
17
  parseAgentMentionMarkdown
17
- } from "./chunk-7PFDA2HQ.js";
18
+ } from "./chunk-O3Q5SIJH.js";
18
19
  import {
19
20
  fileChangeCountFromChanges,
20
21
  fileChangeEntriesFromChanges,
@@ -38,18 +39,21 @@ import {
38
39
  resolveWorkspaceFilePathCandidate,
39
40
  resolveWorkspaceLinkAction,
40
41
  useAgentTargetPresentations
41
- } from "./chunk-C5FV4UGI.js";
42
+ } from "./chunk-2HJEOO7W.js";
42
43
  import {
43
44
  useOptionalAgentActivityRuntime,
44
45
  useOptionalAgentHostApi
45
- } from "./chunk-KAL4XZMA.js";
46
+ } from "./chunk-MASXZENX.js";
46
47
  import {
47
48
  workspaceAgentProviderLabel
48
- } from "./chunk-NX3CZJXW.js";
49
+ } from "./chunk-H5F3QSCF.js";
50
+ import {
51
+ normalizeAgentTitleText
52
+ } from "./chunk-GCBDIQDX.js";
49
53
  import {
50
54
  getActiveUiLanguage,
51
55
  translate
52
- } from "./chunk-BIHBXWK5.js";
56
+ } from "./chunk-E4HQUTM3.js";
53
57
 
54
58
  // shared/imageGenerationTool.ts
55
59
  var KNOWN_IMAGE_GENERATION_TOOL_NAMES = /* @__PURE__ */ new Set([
@@ -3654,12 +3658,77 @@ function pastedTextMentionMarkdown(item, index) {
3654
3658
  }
3655
3659
  var MAX_AGENT_COMPOSER_DRAFT_IMAGES = 8;
3656
3660
  function emptyAgentComposerDraft() {
3657
- return { prompt: "", images: [], files: [] };
3661
+ return [{ type: "text", text: "" }];
3662
+ }
3663
+ function snapshotAgentComposerDraft(draft) {
3664
+ const [textBlock, ...attachmentBlocks] = draft;
3665
+ return [{ ...textBlock }, ...attachmentBlocks.map((block) => ({ ...block }))];
3666
+ }
3667
+ function agentComposerDraftPrompt(draft) {
3668
+ return draft[0].text;
3669
+ }
3670
+ function agentComposerDraftImages(draft) {
3671
+ return draft.filter(
3672
+ (block) => block.type === "image"
3673
+ ).map(({ type: _type, ...image }) => image);
3674
+ }
3675
+ function agentComposerDraftFiles(draft) {
3676
+ return draft.filter(
3677
+ (block) => block.type === "file" && block.kind === "file"
3678
+ ).map(({ type: _type, kind: _kind, text: _text, ...file }) => file);
3679
+ }
3680
+ function agentComposerDraftLargeTexts(draft) {
3681
+ return draft.filter(
3682
+ (block) => block.type === "file" && block.kind === AGENT_PASTED_TEXT_BLOCK_KIND
3683
+ ).map(({ type: _type, kind: _kind, ...item }) => item);
3684
+ }
3685
+ var attachmentProjectionByDraft = /* @__PURE__ */ new WeakMap();
3686
+ function agentComposerDraftAttachmentProjection(draft) {
3687
+ const cached = attachmentProjectionByDraft.get(draft);
3688
+ if (cached) return cached;
3689
+ const projection = {
3690
+ images: agentComposerDraftImages(draft),
3691
+ files: agentComposerDraftFiles(draft),
3692
+ largeTexts: agentComposerDraftLargeTexts(draft)
3693
+ };
3694
+ attachmentProjectionByDraft.set(draft, projection);
3695
+ return projection;
3696
+ }
3697
+ function buildAgentComposerDraft(input) {
3698
+ return [
3699
+ { type: "text", text: input.prompt },
3700
+ ...(input.images ?? []).map((image) => ({
3701
+ type: "image",
3702
+ ...image
3703
+ })),
3704
+ ...(input.files ?? []).map((file) => ({
3705
+ type: "file",
3706
+ kind: "file",
3707
+ ...file
3708
+ })),
3709
+ ...(input.largeTexts ?? []).map(
3710
+ (item) => ({
3711
+ type: "file",
3712
+ kind: AGENT_PASTED_TEXT_BLOCK_KIND,
3713
+ ...item
3714
+ })
3715
+ )
3716
+ ];
3717
+ }
3718
+ function updateAgentComposerDraft(draft, update) {
3719
+ return buildAgentComposerDraft({
3720
+ prompt: update.prompt ?? agentComposerDraftPrompt(draft),
3721
+ images: update.images ?? agentComposerDraftImages(draft),
3722
+ files: update.files ?? agentComposerDraftFiles(draft),
3723
+ largeTexts: update.largeTexts ?? agentComposerDraftLargeTexts(draft)
3724
+ });
3658
3725
  }
3659
3726
  function agentComposerDraftHasContent(draft) {
3660
- return draft.prompt.trim() !== "" || draft.images.length > 0 || (draft.files?.length ?? 0) > 0 || (draft.largeTexts?.some(
3661
- (item) => item.text.trim() !== "" || Boolean(item.path)
3662
- ) ?? false);
3727
+ return draft.some((block) => {
3728
+ if (block.type === "text") return block.text.trim() !== "";
3729
+ if (block.type === "image") return true;
3730
+ return block.kind === "file" ? true : block.text.trim() !== "" || Boolean(block.path);
3731
+ });
3663
3732
  }
3664
3733
  function normalizeAgentPromptContentBlocks(content) {
3665
3734
  const result = [];
@@ -3743,7 +3812,7 @@ function agentPromptContentToComposerDraft(content, idPrefix) {
3743
3812
  const largeTexts = agentPromptPastedTextBlocks(normalizedContent).map(
3744
3813
  (block) => agentPromptPastedTextBlockToDraftLargeText(block)
3745
3814
  );
3746
- return {
3815
+ return buildAgentComposerDraft({
3747
3816
  prompt: agentPromptContentDisplayText(normalizedContent),
3748
3817
  images: agentPromptContentImageBlocks(normalizedContent).slice(0, MAX_AGENT_COMPOSER_DRAFT_IMAGES).map(
3749
3818
  (image, index) => agentPromptImageBlockToDraftImage(image, idPrefix, index)
@@ -3751,8 +3820,8 @@ function agentPromptContentToComposerDraft(content, idPrefix) {
3751
3820
  files: agentPromptFileBlocks(normalizedContent).map(
3752
3821
  (file, index) => agentPromptFileBlockToDraftFile(file, idPrefix, index)
3753
3822
  ),
3754
- ...largeTexts.length > 0 ? { largeTexts } : {}
3755
- };
3823
+ largeTexts
3824
+ });
3756
3825
  }
3757
3826
  function agentPromptPastedTextBlockToDraftLargeText(block) {
3758
3827
  return {
@@ -3765,7 +3834,7 @@ function agentPromptPastedTextBlockToDraftLargeText(block) {
3765
3834
  }
3766
3835
  function agentComposerDraftToPromptContent(input) {
3767
3836
  const prompt = promptForProviderSkills({
3768
- prompt: input.draft.prompt,
3837
+ prompt: agentComposerDraftPrompt(input.draft),
3769
3838
  skills: input.skills
3770
3839
  });
3771
3840
  return normalizeAgentPromptContentBlocks([
@@ -3774,14 +3843,14 @@ function agentComposerDraftToPromptContent(input) {
3774
3843
  prompt,
3775
3844
  skills: input.skills
3776
3845
  }),
3777
- ...input.draft.images.slice(0, MAX_AGENT_COMPOSER_DRAFT_IMAGES).filter((image) => !image.uploading && !image.uploadError).map((image) => ({
3846
+ ...agentComposerDraftImages(input.draft).slice(0, MAX_AGENT_COMPOSER_DRAFT_IMAGES).filter((image) => !image.uploading && !image.uploadError).map((image) => ({
3778
3847
  type: "image",
3779
3848
  mimeType: image.mimeType,
3780
3849
  ...image.attachmentId ? { attachmentId: image.attachmentId } : {},
3781
3850
  ...image.url ? { url: image.url } : image.path ? { path: image.path } : { data: image.data },
3782
3851
  name: image.name
3783
3852
  })),
3784
- ...(input.draft.files ?? []).filter((file) => !file.uploading && !file.uploadError).map((file) => ({
3853
+ ...agentComposerDraftFiles(input.draft).filter((file) => !file.uploading && !file.uploadError).map((file) => ({
3785
3854
  type: "file",
3786
3855
  ...file.mimeType ? { mimeType: file.mimeType } : {},
3787
3856
  ...file.path ? { path: file.path } : {},
@@ -3791,25 +3860,17 @@ function agentComposerDraftToPromptContent(input) {
3791
3860
  name: file.name,
3792
3861
  kind: "file"
3793
3862
  })),
3794
- ...largeTextPromptContent(input.draft.largeTexts ?? [])
3863
+ ...largeTextPromptContent(agentComposerDraftLargeTexts(input.draft))
3795
3864
  ]);
3796
3865
  }
3797
- function agentComposerDraftSubmittedText(draft) {
3798
- return agentPromptContentDisplayText(
3799
- normalizeAgentPromptContentBlocks([
3800
- ...textPromptContent(draft.prompt),
3801
- ...largeTextPromptContent(draft.largeTexts ?? [])
3802
- ])
3803
- );
3804
- }
3805
3866
  function agentComposerDraftDisplayPrompt(draft) {
3806
- const largeTexts = draft.largeTexts?.filter(
3867
+ const largeTexts = agentComposerDraftLargeTexts(draft).filter(
3807
3868
  (item) => Boolean(item.path) && !item.uploading && !item.uploadError
3808
3869
  );
3809
- if (!largeTexts?.length) {
3870
+ if (!largeTexts.length) {
3810
3871
  return void 0;
3811
3872
  }
3812
- const parts = [draft.prompt.trim()].filter(Boolean);
3873
+ const parts = [agentComposerDraftPrompt(draft).trim()].filter(Boolean);
3813
3874
  parts.push(
3814
3875
  ...largeTexts.map((item, index) => pastedTextMentionMarkdown(item, index)).filter(Boolean)
3815
3876
  );
@@ -4544,7 +4605,8 @@ function normalizedFilePath(value, options = {}) {
4544
4605
  }
4545
4606
  return resolveWorkspaceFilePathCandidate({
4546
4607
  path,
4547
- workspaceRoot: options.workspaceRoot
4608
+ workspaceRoot: options.workspaceRoot,
4609
+ basePath: options.defaultCwd
4548
4610
  }) ? path : null;
4549
4611
  }
4550
4612
  function isIgnoredFilePath(path) {
@@ -4854,7 +4916,8 @@ function normalizedActivityFilePath(value, options) {
4854
4916
  const path = value?.trim() ?? "";
4855
4917
  return path && !isStructuredPayloadPath(path) && !isIgnoredFilePath(path) && resolveWorkspaceFilePathCandidate({
4856
4918
  path,
4857
- workspaceRoot: options.workspaceRoot
4919
+ workspaceRoot: options.workspaceRoot,
4920
+ basePath: options.defaultCwd
4858
4921
  }) ? path : null;
4859
4922
  }
4860
4923
  function projectAgentTurnSummaryRowForTurn(turn, options = {}) {
@@ -5369,6 +5432,7 @@ function projectAgentConversationVM(detail, options = {}) {
5369
5432
  if (shouldShowTurnSummaryForTurn(detail, index)) {
5370
5433
  rows.push(
5371
5434
  ...projectAgentTurnSummaryRowForTurn(turn, {
5435
+ defaultCwd: detail.cwd,
5372
5436
  workspaceRoot: detail.workspaceRoot
5373
5437
  })
5374
5438
  );
@@ -5750,7 +5814,7 @@ import {
5750
5814
  useLayoutEffect as useLayoutEffect4,
5751
5815
  useMemo as useMemo6,
5752
5816
  useRef as useRef10,
5753
- useState as useState20
5817
+ useState as useState21
5754
5818
  } from "react";
5755
5819
  import { useVirtualizer } from "@tanstack/react-virtual";
5756
5820
 
@@ -5777,51 +5841,10 @@ import {
5777
5841
  Fragment as Fragment2,
5778
5842
  useCallback as useCallback4,
5779
5843
  useEffect as useEffect5,
5780
- useState as useState6
5844
+ useState as useState7
5781
5845
  } from "react";
5782
- import { ChevronRight as ChevronRight3 } from "lucide-react";
5783
5846
  import { CheckIcon, CopyIcon } from "@tutti-os/ui-system/icons";
5784
5847
 
5785
- // app/renderer/components/ui/button.tsx
5786
- import * as React from "react";
5787
- import { Button as UISystemButton, buttonVariants } from "@tutti-os/ui-system";
5788
- import { jsx as jsx2 } from "react/jsx-runtime";
5789
- function resolveButtonSize(size) {
5790
- switch (size) {
5791
- case "mini":
5792
- return "xs";
5793
- case "md":
5794
- return "default";
5795
- case "max":
5796
- return "lg";
5797
- case "iconClose":
5798
- return "icon-sm";
5799
- default:
5800
- return size;
5801
- }
5802
- }
5803
- function resolveButtonClassName(size, className) {
5804
- if (size !== "iconClose") {
5805
- return className;
5806
- }
5807
- return cn(
5808
- "h-[28px] w-[28px] min-h-[28px] min-w-[28px] shrink-0 rounded-[4px] p-0 [&_svg]:size-[14px]",
5809
- className
5810
- );
5811
- }
5812
- var Button = React.forwardRef(
5813
- ({ className, size, ...props }, ref) => /* @__PURE__ */ jsx2(
5814
- UISystemButton,
5815
- {
5816
- ref,
5817
- className: resolveButtonClassName(size, className),
5818
- size: resolveButtonSize(size),
5819
- ...props
5820
- }
5821
- )
5822
- );
5823
- Button.displayName = "Button";
5824
-
5825
5848
  // shared/errors/appError.ts
5826
5849
  function createMessageMap() {
5827
5850
  return {
@@ -6005,7 +6028,7 @@ function formatAgentMessageTimestamp(unix, language = getActiveUiLanguage(), now
6005
6028
  // shared/agentConversation/components/AgentPlanCard.tsx
6006
6029
  import { useCallback, useRef, useState } from "react";
6007
6030
  import { Check, ChevronDown, ChevronUp, Copy, ListChecks } from "lucide-react";
6008
- import { jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
6031
+ import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
6009
6032
  var COLLAPSED_MAX_HEIGHT_PX = 220;
6010
6033
  function AgentPlanCard({
6011
6034
  title,
@@ -6034,7 +6057,7 @@ function AgentPlanCard({
6034
6057
  className: "box-border w-full min-w-0 rounded-[8px] border border-[var(--tutti-purple-border)] bg-[var(--tutti-purple-bg)] p-3",
6035
6058
  children: [
6036
6059
  /* @__PURE__ */ jsxs2("div", { className: "mb-2 flex items-center gap-1.5", children: [
6037
- /* @__PURE__ */ jsx3(
6060
+ /* @__PURE__ */ jsx2(
6038
6061
  ListChecks,
6039
6062
  {
6040
6063
  size: 14,
@@ -6043,7 +6066,7 @@ function AgentPlanCard({
6043
6066
  className: "shrink-0 text-[var(--text-secondary)]"
6044
6067
  }
6045
6068
  ),
6046
- /* @__PURE__ */ jsx3(
6069
+ /* @__PURE__ */ jsx2(
6047
6070
  "span",
6048
6071
  {
6049
6072
  "data-testid": "agent-plan-card-title",
@@ -6051,7 +6074,7 @@ function AgentPlanCard({
6051
6074
  children: title ?? translate("agentHost.agentGui.planCardTitle")
6052
6075
  }
6053
6076
  ),
6054
- /* @__PURE__ */ jsx3(
6077
+ /* @__PURE__ */ jsx2(
6055
6078
  "button",
6056
6079
  {
6057
6080
  type: "button",
@@ -6060,10 +6083,10 @@ function AgentPlanCard({
6060
6083
  "aria-label": translate("agentHost.agentGui.planCardCopy"),
6061
6084
  title: translate("agentHost.agentGui.planCardCopy"),
6062
6085
  onClick: handleCopy,
6063
- children: copied ? /* @__PURE__ */ jsx3(Check, { size: 14, strokeWidth: 2, "aria-hidden": "true" }) : /* @__PURE__ */ jsx3(Copy, { size: 14, strokeWidth: 2, "aria-hidden": "true" })
6086
+ children: copied ? /* @__PURE__ */ jsx2(Check, { size: 14, strokeWidth: 2, "aria-hidden": "true" }) : /* @__PURE__ */ jsx2(Copy, { size: 14, strokeWidth: 2, "aria-hidden": "true" })
6064
6087
  }
6065
6088
  ),
6066
- /* @__PURE__ */ jsx3(
6089
+ /* @__PURE__ */ jsx2(
6067
6090
  "button",
6068
6091
  {
6069
6092
  type: "button",
@@ -6077,12 +6100,12 @@ function AgentPlanCard({
6077
6100
  collapsed ? "agentHost.agentGui.planCardExpand" : "agentHost.agentGui.planCardCollapse"
6078
6101
  ),
6079
6102
  onClick: () => setCollapsed((value) => !value),
6080
- children: collapsed ? /* @__PURE__ */ jsx3(ChevronDown, { size: 15, strokeWidth: 2, "aria-hidden": "true" }) : /* @__PURE__ */ jsx3(ChevronUp, { size: 15, strokeWidth: 2, "aria-hidden": "true" })
6103
+ children: collapsed ? /* @__PURE__ */ jsx2(ChevronDown, { size: 15, strokeWidth: 2, "aria-hidden": "true" }) : /* @__PURE__ */ jsx2(ChevronUp, { size: 15, strokeWidth: 2, "aria-hidden": "true" })
6081
6104
  }
6082
6105
  )
6083
6106
  ] }),
6084
6107
  /* @__PURE__ */ jsxs2("div", { className: "relative", children: [
6085
- /* @__PURE__ */ jsx3(
6108
+ /* @__PURE__ */ jsx2(
6086
6109
  "div",
6087
6110
  {
6088
6111
  "data-testid": "agent-plan-card-body",
@@ -6091,7 +6114,7 @@ function AgentPlanCard({
6091
6114
  children
6092
6115
  }
6093
6116
  ),
6094
- collapsed ? /* @__PURE__ */ jsx3("div", { className: "pointer-events-none absolute inset-x-0 bottom-0 flex justify-center bg-gradient-to-t from-[var(--tutti-purple-bg)] via-[color-mix(in_srgb,var(--tutti-purple-bg)_70%,transparent)] to-transparent pt-8 pb-1", children: /* @__PURE__ */ jsx3(
6117
+ collapsed ? /* @__PURE__ */ jsx2("div", { className: "pointer-events-none absolute inset-x-0 bottom-0 flex justify-center bg-gradient-to-t from-[var(--tutti-purple-bg)] via-[color-mix(in_srgb,var(--tutti-purple-bg)_70%,transparent)] to-transparent pt-8 pb-1", children: /* @__PURE__ */ jsx2(
6095
6118
  "button",
6096
6119
  {
6097
6120
  type: "button",
@@ -6574,7 +6597,7 @@ function createAgentRichTextReadonlyExtensions(skillTokenOptions, capabilityToke
6574
6597
  }
6575
6598
 
6576
6599
  // shared/AgentRichTextReadonly.tsx
6577
- import { jsx as jsx4 } from "react/jsx-runtime";
6600
+ import { jsx as jsx3 } from "react/jsx-runtime";
6578
6601
  var EMPTY_WORKSPACE_APP_ICONS = [];
6579
6602
  function AgentRichTextReadonly({
6580
6603
  value,
@@ -6654,7 +6677,7 @@ function AgentRichTextReadonly({
6654
6677
  workspaceAppIcons
6655
6678
  ]);
6656
6679
  if (!editor) {
6657
- return /* @__PURE__ */ jsx4(
6680
+ return /* @__PURE__ */ jsx3(
6658
6681
  "div",
6659
6682
  {
6660
6683
  className,
@@ -6662,12 +6685,12 @@ function AgentRichTextReadonly({
6662
6685
  }
6663
6686
  );
6664
6687
  }
6665
- return /* @__PURE__ */ jsx4(
6688
+ return /* @__PURE__ */ jsx3(
6666
6689
  "div",
6667
6690
  {
6668
6691
  className,
6669
6692
  "data-agent-mention-only": isMentionOnly ? "true" : void 0,
6670
- children: /* @__PURE__ */ jsx4(EditorContent, { editor })
6693
+ children: /* @__PURE__ */ jsx3(EditorContent, { editor })
6671
6694
  }
6672
6695
  );
6673
6696
  }
@@ -6776,6 +6799,10 @@ function hydrateAgentTargetMentionPresentations(node, agentTargets) {
6776
6799
  };
6777
6800
  }
6778
6801
 
6802
+ // shared/agentConversation/components/AgentMessageDetailsDisclosure.tsx
6803
+ import { useState as useState3 } from "react";
6804
+ import { ChevronRight } from "lucide-react";
6805
+
6779
6806
  // shared/agentConversation/components/CollapsibleReveal.tsx
6780
6807
  import {
6781
6808
  useCallback as useCallback2,
@@ -6784,7 +6811,7 @@ import {
6784
6811
  useRef as useRef2,
6785
6812
  useState as useState2
6786
6813
  } from "react";
6787
- import { jsx as jsx5 } from "react/jsx-runtime";
6814
+ import { jsx as jsx4 } from "react/jsx-runtime";
6788
6815
  function CollapsibleReveal({
6789
6816
  expanded,
6790
6817
  children,
@@ -6924,7 +6951,7 @@ function CollapsibleReveal({
6924
6951
  }
6925
6952
  };
6926
6953
  const rootStyle = { height };
6927
- return /* @__PURE__ */ jsx5(
6954
+ return /* @__PURE__ */ jsx4(
6928
6955
  "div",
6929
6956
  {
6930
6957
  ref: rootRef,
@@ -6933,14 +6960,219 @@ function CollapsibleReveal({
6933
6960
  "aria-hidden": visible ? void 0 : true,
6934
6961
  style: rootStyle,
6935
6962
  onTransitionEnd: handleTransitionEnd,
6936
- children: /* @__PURE__ */ jsx5("div", { ref: innerRef, className: "agent-collapsible-reveal__inner", children })
6963
+ children: /* @__PURE__ */ jsx4("div", { ref: innerRef, className: "agent-collapsible-reveal__inner", children })
6964
+ }
6965
+ );
6966
+ }
6967
+
6968
+ // shared/agentConversation/components/AgentMessageDetailsDisclosure.tsx
6969
+ import { jsx as jsx5, jsxs as jsxs3 } from "react/jsx-runtime";
6970
+ function AgentMessageDetailsDisclosure({
6971
+ detail,
6972
+ className = "",
6973
+ label
6974
+ }) {
6975
+ "use memo";
6976
+ const [expanded, setExpanded] = useState3(false);
6977
+ return /* @__PURE__ */ jsxs3("div", { className: `${className} text-[11px] text-[var(--state-danger)]`, children: [
6978
+ /* @__PURE__ */ jsxs3(
6979
+ "button",
6980
+ {
6981
+ type: "button",
6982
+ className: "inline-flex w-fit max-w-full min-w-0 cursor-pointer select-none items-center gap-1.5 border-0 bg-transparent p-0 text-left font-[inherit] text-[inherit] transition-colors duration-150 hover:text-[var(--state-danger-hover)]",
6983
+ "aria-expanded": expanded,
6984
+ onClick: () => setExpanded((value) => !value),
6985
+ children: [
6986
+ label ?? translate("agentHost.agentGui.visibleErrorDetails"),
6987
+ /* @__PURE__ */ jsx5(
6988
+ ChevronRight,
6989
+ {
6990
+ size: 12,
6991
+ strokeWidth: 2.2,
6992
+ "aria-hidden": "true",
6993
+ className: "shrink-0 text-[var(--state-danger)]",
6994
+ style: {
6995
+ transform: expanded ? "rotate(90deg)" : "rotate(0deg)",
6996
+ transformOrigin: "center",
6997
+ transition: "transform 200ms cubic-bezier(0.22, 1.18, 0.36, 1)",
6998
+ willChange: "transform"
6999
+ }
7000
+ }
7001
+ )
7002
+ ]
7003
+ }
7004
+ ),
7005
+ /* @__PURE__ */ jsx5(CollapsibleReveal, { expanded, preMountOnIdle: true, children: /* @__PURE__ */ jsx5("pre", { className: "mt-2 max-h-[220px] overflow-auto whitespace-pre-wrap break-words rounded-[6px] bg-[var(--on-danger)] px-3 py-2 font-[var(--tsh-font-mono)] text-[11px] leading-5 text-[var(--state-danger)]", children: detail }) })
7006
+ ] });
7007
+ }
7008
+
7009
+ // app/renderer/components/ui/button.tsx
7010
+ import * as React from "react";
7011
+ import { Button as UISystemButton, buttonVariants } from "@tutti-os/ui-system";
7012
+ import { jsx as jsx6 } from "react/jsx-runtime";
7013
+ function resolveButtonSize(size) {
7014
+ switch (size) {
7015
+ case "mini":
7016
+ return "xs";
7017
+ case "md":
7018
+ return "default";
7019
+ case "max":
7020
+ return "lg";
7021
+ case "iconClose":
7022
+ return "icon-sm";
7023
+ default:
7024
+ return size;
7025
+ }
7026
+ }
7027
+ function resolveButtonClassName(size, className) {
7028
+ if (size !== "iconClose") {
7029
+ return className;
7030
+ }
7031
+ return cn(
7032
+ "h-[28px] w-[28px] min-h-[28px] min-w-[28px] shrink-0 rounded-[4px] p-0 [&_svg]:size-[14px]",
7033
+ className
7034
+ );
7035
+ }
7036
+ var Button = React.forwardRef(
7037
+ ({ className, size, ...props }, ref) => /* @__PURE__ */ jsx6(
7038
+ UISystemButton,
7039
+ {
7040
+ ref,
7041
+ className: resolveButtonClassName(size, className),
7042
+ size: resolveButtonSize(size),
7043
+ ...props
7044
+ }
7045
+ )
7046
+ );
7047
+ Button.displayName = "Button";
7048
+
7049
+ // shared/agentConversation/components/AgentVisibleErrorMessage.tsx
7050
+ import { jsx as jsx7, jsxs as jsxs4 } from "react/jsx-runtime";
7051
+ var PLAN_LIMIT_WARNING_CLASS_NAME = "border-[color-mix(in_srgb,var(--state-warning)_14%,transparent)] bg-[color-mix(in_srgb,var(--background-fronted)_100%,var(--state-warning)_6%)]";
7052
+ function recoverVisibleErrorFromFailedMessage(message, provider) {
7053
+ const code = classifyFailedAgentMessage(message.body);
7054
+ if (!code) {
7055
+ return null;
7056
+ }
7057
+ return {
7058
+ ...message,
7059
+ visibleError: {
7060
+ code,
7061
+ phase: null,
7062
+ provider: provider ?? null,
7063
+ detail: message.body,
7064
+ retryable: null
7065
+ }
7066
+ };
7067
+ }
7068
+ function AgentVisibleErrorMessage({
7069
+ message,
7070
+ onExternalLink
7071
+ }) {
7072
+ "use memo";
7073
+ const error = message.visibleError;
7074
+ const detail = error?.detail?.trim() ?? "";
7075
+ const providerLabel = workspaceAgentProviderLabel(
7076
+ error?.provider ?? "unknown"
7077
+ );
7078
+ const presentation = resolveAgentErrorPresentation(error?.code);
7079
+ const headline = presentation?.messageKey ? translate(presentation.messageKey, { provider: providerLabel }) : visibleErrorTitle(message);
7080
+ const focus = presentation?.focus ?? null;
7081
+ const actionKey = presentation?.actionKey ?? null;
7082
+ const externalUrl = presentation?.externalUrl ?? null;
7083
+ const hint = visibleErrorHint(message);
7084
+ const isPlanOrQuotaLimit = error?.code === "quota_or_rate_limit";
7085
+ const toneClassName = isPlanOrQuotaLimit ? PLAN_LIMIT_WARNING_CLASS_NAME : "border-[var(--on-danger-hover)] bg-[var(--on-danger)] text-[var(--state-danger)]";
7086
+ const displayHeadline = isPlanOrQuotaLimit && isProviderPlanLimitMessage(detail) ? detail : headline;
7087
+ return /* @__PURE__ */ jsx7(
7088
+ "section",
7089
+ {
7090
+ role: isPlanOrQuotaLimit ? "status" : "alert",
7091
+ className: `box-border w-full min-w-0 rounded-[8px] border p-3 text-[13px] leading-5 text-[var(--text-primary)] ${toneClassName}`,
7092
+ children: /* @__PURE__ */ jsxs4("div", { className: "flex min-w-0 items-start gap-3", children: [
7093
+ /* @__PURE__ */ jsxs4("div", { className: "min-w-0 flex-1", children: [
7094
+ /* @__PURE__ */ jsx7("div", { className: "font-medium text-[var(--text-primary)]", children: displayHeadline }),
7095
+ hint ? /* @__PURE__ */ jsx7("div", { className: "mt-1 text-[11px] text-[var(--text-secondary)]", children: hint }) : null,
7096
+ detail && displayHeadline !== detail ? /* @__PURE__ */ jsx7(
7097
+ AgentMessageDetailsDisclosure,
7098
+ {
7099
+ detail,
7100
+ className: "mt-1",
7101
+ label: translate("agentHost.agentGui.visibleErrorRawDetails")
7102
+ }
7103
+ ) : null
7104
+ ] }),
7105
+ actionKey && (focus || externalUrl && onExternalLink) ? /* @__PURE__ */ jsx7(
7106
+ Button,
7107
+ {
7108
+ type: "button",
7109
+ variant: "ghost",
7110
+ size: "sm",
7111
+ className: "mt-0.5 shrink-0",
7112
+ onClick: () => {
7113
+ if (externalUrl) {
7114
+ onExternalLink?.(externalUrl);
7115
+ return;
7116
+ }
7117
+ if (focus) {
7118
+ openAgentEnvPanel({
7119
+ provider: error?.provider ?? null,
7120
+ focus
7121
+ });
7122
+ }
7123
+ },
7124
+ children: translate(actionKey)
7125
+ }
7126
+ ) : null
7127
+ ] })
7128
+ }
7129
+ );
7130
+ }
7131
+ function visibleErrorTitle(message) {
7132
+ const error = message.visibleError;
7133
+ const provider = workspaceAgentProviderLabel(error?.provider ?? "unknown");
7134
+ switch (error?.code) {
7135
+ case "auth_required":
7136
+ return translate("agentHost.agentGui.visibleErrorAuthRequired", {
7137
+ provider
7138
+ });
7139
+ case "request_timed_out":
7140
+ return translate("agentHost.agentGui.visibleErrorRequestTimedOut", {
7141
+ provider
7142
+ });
7143
+ case "runtime_unavailable":
7144
+ return translate("agentHost.agentGui.visibleErrorRuntimeUnavailable", {
7145
+ provider
7146
+ });
7147
+ case "quota_or_rate_limit":
7148
+ return translate("agentHost.agentGui.visibleErrorQuotaOrRateLimit", {
7149
+ provider
7150
+ });
7151
+ default:
7152
+ if (error?.phase === "start") {
7153
+ return translate("agentHost.agentGui.visibleErrorStartFailed", {
7154
+ provider
7155
+ });
7156
+ }
7157
+ return message.body || translate("agentHost.agentGui.visibleErrorRequestFailed", { provider });
7158
+ }
7159
+ }
7160
+ function visibleErrorHint(message) {
7161
+ const error = message.visibleError;
7162
+ if (error?.code !== "auth_required") {
7163
+ return null;
7164
+ }
7165
+ return translate(
7166
+ "agentHost.agentGui.visibleErrorAuthRequiredLocalAgentHint",
7167
+ {
7168
+ provider: workspaceAgentProviderLabel(error.provider ?? "unknown")
6937
7169
  }
6938
7170
  );
6939
7171
  }
6940
7172
 
6941
7173
  // shared/WorkspaceAgentSessionThinkingDisclosure.tsx
6942
- import { useState as useState3 } from "react";
6943
- import { ChevronDown as ChevronDown2, ChevronRight } from "lucide-react";
7174
+ import { useState as useState4 } from "react";
7175
+ import { ChevronDown as ChevronDown2, ChevronRight as ChevronRight2 } from "lucide-react";
6944
7176
 
6945
7177
  // app/renderer/components/icons/BrainIcon.tsx
6946
7178
  import {
@@ -6955,7 +7187,7 @@ import {
6955
7187
  useAnimation,
6956
7188
  useReducedMotion
6957
7189
  } from "framer-motion";
6958
- import { jsx as jsx6, jsxs as jsxs3 } from "react/jsx-runtime";
7190
+ import { jsx as jsx8, jsxs as jsxs5 } from "react/jsx-runtime";
6959
7191
  var brainTransition = {
6960
7192
  duration: 1.4,
6961
7193
  repeat: Number.POSITIVE_INFINITY,
@@ -7049,14 +7281,14 @@ var BrainIcon = forwardRef2(
7049
7281
  },
7050
7282
  [onMouseLeave, stopAnimation]
7051
7283
  );
7052
- return /* @__PURE__ */ jsx6(
7284
+ return /* @__PURE__ */ jsx8(
7053
7285
  "div",
7054
7286
  {
7055
7287
  className: cn("inline-flex items-center justify-center", className),
7056
7288
  onMouseEnter: handleMouseEnter,
7057
7289
  onMouseLeave: handleMouseLeave,
7058
7290
  ...props,
7059
- children: /* @__PURE__ */ jsxs3(
7291
+ children: /* @__PURE__ */ jsxs5(
7060
7292
  motion.svg,
7061
7293
  {
7062
7294
  animate: controls,
@@ -7081,7 +7313,7 @@ var BrainIcon = forwardRef2(
7081
7313
  width: size,
7082
7314
  xmlns: "http://www.w3.org/2000/svg",
7083
7315
  children: [
7084
- /* @__PURE__ */ jsx6(
7316
+ /* @__PURE__ */ jsx8(
7085
7317
  motion.path,
7086
7318
  {
7087
7319
  animate: controls,
@@ -7089,7 +7321,7 @@ var BrainIcon = forwardRef2(
7089
7321
  variants: BRAIN_STEM_VARIANTS
7090
7322
  }
7091
7323
  ),
7092
- /* @__PURE__ */ jsx6(
7324
+ /* @__PURE__ */ jsx8(
7093
7325
  motion.path,
7094
7326
  {
7095
7327
  animate: controls,
@@ -7097,7 +7329,7 @@ var BrainIcon = forwardRef2(
7097
7329
  variants: BRAIN_SIDE_VARIANTS
7098
7330
  }
7099
7331
  ),
7100
- /* @__PURE__ */ jsx6(
7332
+ /* @__PURE__ */ jsx8(
7101
7333
  motion.path,
7102
7334
  {
7103
7335
  animate: controls,
@@ -7105,7 +7337,7 @@ var BrainIcon = forwardRef2(
7105
7337
  variants: BRAIN_TOP_ARC_VARIANTS
7106
7338
  }
7107
7339
  ),
7108
- /* @__PURE__ */ jsx6(
7340
+ /* @__PURE__ */ jsx8(
7109
7341
  motion.path,
7110
7342
  {
7111
7343
  animate: controls,
@@ -7113,8 +7345,8 @@ var BrainIcon = forwardRef2(
7113
7345
  variants: BRAIN_TOP_ARC_VARIANTS
7114
7346
  }
7115
7347
  ),
7116
- /* @__PURE__ */ jsx6("path", { d: "M17.997 5.125a4 4 0 0 1 2.526 5.77" }),
7117
- /* @__PURE__ */ jsx6(
7348
+ /* @__PURE__ */ jsx8("path", { d: "M17.997 5.125a4 4 0 0 1 2.526 5.77" }),
7349
+ /* @__PURE__ */ jsx8(
7118
7350
  motion.path,
7119
7351
  {
7120
7352
  animate: controls,
@@ -7122,8 +7354,8 @@ var BrainIcon = forwardRef2(
7122
7354
  variants: BRAIN_LOWER_ARC_VARIANTS
7123
7355
  }
7124
7356
  ),
7125
- /* @__PURE__ */ jsx6("path", { d: "M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517" }),
7126
- /* @__PURE__ */ jsx6(
7357
+ /* @__PURE__ */ jsx8("path", { d: "M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517" }),
7358
+ /* @__PURE__ */ jsx8(
7127
7359
  motion.path,
7128
7360
  {
7129
7361
  animate: controls,
@@ -7131,7 +7363,7 @@ var BrainIcon = forwardRef2(
7131
7363
  variants: BRAIN_LOWER_ARC_VARIANTS
7132
7364
  }
7133
7365
  ),
7134
- /* @__PURE__ */ jsx6("path", { d: "M6.003 5.125a4 4 0 0 0-2.526 5.77" })
7366
+ /* @__PURE__ */ jsx8("path", { d: "M6.003 5.125a4 4 0 0 0-2.526 5.77" })
7135
7367
  ]
7136
7368
  }
7137
7369
  )
@@ -7142,10 +7374,10 @@ var BrainIcon = forwardRef2(
7142
7374
  BrainIcon.displayName = "BrainIcon";
7143
7375
 
7144
7376
  // shared/toolActivityKindIcons.tsx
7145
- import { jsx as jsx7 } from "react/jsx-runtime";
7377
+ import { jsx as jsx9 } from "react/jsx-runtime";
7146
7378
  function IconProductDoc(props) {
7147
7379
  "use memo";
7148
- return /* @__PURE__ */ jsx7(
7380
+ return /* @__PURE__ */ jsx9(
7149
7381
  "svg",
7150
7382
  {
7151
7383
  viewBox: "0 0 24 24",
@@ -7153,7 +7385,7 @@ function IconProductDoc(props) {
7153
7385
  xmlns: "http://www.w3.org/2000/svg",
7154
7386
  "aria-hidden": true,
7155
7387
  ...props,
7156
- children: /* @__PURE__ */ jsx7(
7388
+ children: /* @__PURE__ */ jsx9(
7157
7389
  "path",
7158
7390
  {
7159
7391
  d: "M14.04 1.00098C14.4743 1.00553 14.9042 1.09245 15.3057 1.25879C15.7193 1.43022 16.0949 1.68198 16.4111 1.99902L19.9971 5.58496L20.1133 5.70605C20.3773 5.99585 20.5896 6.32951 20.7402 6.69238C20.9122 7.1067 21.0005 7.55143 21 8V20C21 20.7957 20.6837 21.5585 20.1211 22.1211C19.5585 22.6837 18.7957 23 18 23H6C5.20435 23 4.44152 22.6837 3.87891 22.1211C3.3163 21.5585 3 20.7957 3 20V4C3 3.20435 3.3163 2.44151 3.87891 1.87891C4.44152 1.3163 5.20435 1 6 1H14C14.0134 1 14.0268 1.00045 14.04 1.00098ZM6 3C5.73478 3 5.4805 3.10543 5.29297 3.29297C5.10543 3.4805 5 3.73478 5 4V20C5 20.2652 5.10543 20.5195 5.29297 20.707C5.48051 20.8946 5.73478 21 6 21H18C18.2652 21 18.5195 20.8946 18.707 20.707C18.8946 20.5195 19 20.2652 19 20V9H15C14.4696 9 13.961 8.78913 13.5859 8.41406C13.2109 8.03899 13 7.53043 13 7V3H6ZM16 16C16.5523 16 17 16.4477 17 17C17 17.5523 16.5523 18 16 18H8C7.44772 18 7 17.5523 7 17C7 16.4477 7.44772 16 8 16H16ZM16 12C16.5523 12 17 12.4477 17 13C17 13.5523 16.5523 14 16 14H8C7.44772 14 7 13.5523 7 13C7 12.4477 7.44772 12 8 12H16ZM10 8C10.5523 8 11 8.44772 11 9C11 9.55229 10.5523 10 10 10H8C7.44772 10 7 9.55229 7 9C7 8.44772 7.44772 8 8 8H10ZM15 7H18.584L15 3.41602V7Z",
@@ -7165,7 +7397,7 @@ function IconProductDoc(props) {
7165
7397
  }
7166
7398
  function IconBuild(props) {
7167
7399
  "use memo";
7168
- return /* @__PURE__ */ jsx7(
7400
+ return /* @__PURE__ */ jsx9(
7169
7401
  "svg",
7170
7402
  {
7171
7403
  viewBox: "0 0 24 24",
@@ -7173,7 +7405,7 @@ function IconBuild(props) {
7173
7405
  xmlns: "http://www.w3.org/2000/svg",
7174
7406
  "aria-hidden": true,
7175
7407
  ...props,
7176
- children: /* @__PURE__ */ jsx7(
7408
+ children: /* @__PURE__ */ jsx9(
7177
7409
  "path",
7178
7410
  {
7179
7411
  d: "M12.5166 2C14.3722 2.0005 16.1516 2.73783 17.4639 4.0498L19.1211 5.70703L19.3203 5.92676C19.7578 6.46048 19.9999 7.13198 20 7.82812V8.17188L20.0049 8.27051C20.0276 8.49945 20.1288 8.71482 20.293 8.87891L21.5303 10.1162C21.9083 9.9151 22.3885 9.97443 22.707 10.293C23.0976 10.6835 23.0976 11.3165 22.707 11.707L18.707 15.707C18.3165 16.0976 17.6835 16.0976 17.293 15.707C16.9744 15.3885 16.9151 14.9083 17.1162 14.5303L15.8789 13.293C15.7431 13.1571 15.5715 13.0672 15.3867 13.0264L6.33398 22.0801C6.0442 22.3699 5.69992 22.5999 5.32129 22.7568C4.94266 22.9137 4.53679 22.995 4.12695 22.9951C3.29924 22.9952 2.50538 22.6661 1.91992 22.0811C1.3344 21.4957 1.00502 20.701 1.00488 19.873C1.00487 19.0453 1.33373 18.2514 1.91895 17.666L11 8.58496V8.48535C10.9999 7.1596 10.4734 5.88777 9.53613 4.9502L8.29297 3.70703C8.00697 3.42103 7.92139 2.99086 8.07617 2.61719C8.23098 2.24359 8.59558 2 9 2H12.5166ZM3.33301 19.0801C3.12284 19.2904 3.00487 19.5757 3.00488 19.873C3.00493 20.1705 3.12359 20.4557 3.33398 20.666C3.54437 20.8763 3.82951 20.9952 4.12695 20.9951C4.27409 20.9951 4.41972 20.9655 4.55566 20.9092C4.69174 20.8528 4.81578 20.7702 4.91992 20.666L13.0859 12.5L11.499 10.9131L3.33301 19.0801ZM11.3721 4C12.4187 5.2535 12.9999 6.83919 13 8.48535V9.58594L14.4141 11H15.1719C15.9674 11.0002 16.7305 11.3164 17.293 11.8789L18.5 13.0859L20.0859 11.5L18.8789 10.293C18.3164 9.73051 18.0002 8.96738 18 8.17188V7.82812C17.9999 7.56296 17.8946 7.30857 17.707 7.12109L16.0498 5.46387C15.1124 4.52677 13.8411 4.00028 12.5156 4H11.3721Z",
@@ -7185,7 +7417,7 @@ function IconBuild(props) {
7185
7417
  }
7186
7418
  function IconBrush(props) {
7187
7419
  "use memo";
7188
- return /* @__PURE__ */ jsx7(
7420
+ return /* @__PURE__ */ jsx9(
7189
7421
  "svg",
7190
7422
  {
7191
7423
  viewBox: "0 0 24 24",
@@ -7193,7 +7425,7 @@ function IconBrush(props) {
7193
7425
  xmlns: "http://www.w3.org/2000/svg",
7194
7426
  "aria-hidden": true,
7195
7427
  ...props,
7196
- children: /* @__PURE__ */ jsx7(
7428
+ children: /* @__PURE__ */ jsx9(
7197
7429
  "path",
7198
7430
  {
7199
7431
  d: "M19.1816 1C20.1944 1.00019 21.1658 1.40292 21.8818 2.11914C22.5976 2.83537 23.0001 3.8067 23 4.81934C22.9998 5.7688 22.6461 6.68243 22.0117 7.38281L21.8808 7.51953L19.79 9.60937C19.7641 9.6428 19.7377 9.67636 19.707 9.70703C19.6763 9.7377 19.6428 9.76419 19.6093 9.79004L8.53414 20.8682L8.53317 20.8691C8.1855 21.2156 7.75766 21.4724 7.28805 21.6152H7.28707L2.93454 22.9355L2.93161 22.9365C2.67255 23.0143 2.39705 23.02 2.13473 22.9541C1.87235 22.8881 1.63194 22.7526 1.44039 22.5615C1.24885 22.3703 1.11234 22.1296 1.04586 21.8672C0.979582 21.605 0.985166 21.3294 1.06246 21.0703L1.06442 21.0664L2.38473 16.7139L2.38571 16.7109C2.52986 16.2409 2.78761 15.813 3.13571 15.4658L14.2089 4.38867C14.2346 4.35552 14.2625 4.32341 14.2929 4.29297C14.3234 4.26252 14.3555 4.23468 14.3886 4.20898L16.4804 2.11816C17.1967 1.40209 18.1688 0.999896 19.1816 1ZM4.54879 16.8818L4.54782 16.8828C4.43196 16.9985 4.34581 17.1413 4.29782 17.2978L3.24899 20.749L6.70602 19.7012L6.82028 19.6592C6.93185 19.6097 7.0341 19.5397 7.12106 19.4531L17.5791 8.99316L15.0068 6.4209L4.54879 16.8818ZM19.1816 3C18.6995 2.99996 18.2366 3.19147 17.8955 3.53223L16.4209 5.00683L18.9931 7.5791L20.4668 6.10547L20.5879 5.97168C20.8529 5.64823 20.9998 5.24116 21 4.81934C21 4.33701 20.8077 3.87434 20.4668 3.5332C20.1258 3.19221 19.6638 3.00019 19.1816 3Z",
@@ -7205,7 +7437,7 @@ function IconBrush(props) {
7205
7437
  }
7206
7438
  function IconNetwork(props) {
7207
7439
  "use memo";
7208
- return /* @__PURE__ */ jsx7(
7440
+ return /* @__PURE__ */ jsx9(
7209
7441
  "svg",
7210
7442
  {
7211
7443
  viewBox: "0 0 24 24",
@@ -7213,7 +7445,7 @@ function IconNetwork(props) {
7213
7445
  xmlns: "http://www.w3.org/2000/svg",
7214
7446
  "aria-hidden": true,
7215
7447
  ...props,
7216
- children: /* @__PURE__ */ jsx7(
7448
+ children: /* @__PURE__ */ jsx9(
7217
7449
  "path",
7218
7450
  {
7219
7451
  d: "M12 1C18.0751 1 23 5.92487 23 12C23 18.0751 18.0751 23 12 23C5.92487 23 1 18.0751 1 12C1 5.92487 5.92487 1 12 1ZM3.05664 13C3.46745 16.7156 6.13893 19.7477 9.66602 20.6924C8.12455 18.4164 7.21164 15.7616 7.0332 13H3.05664ZM16.9668 13C16.7883 15.7618 15.8747 18.4163 14.333 20.6924C17.8605 19.748 20.5325 16.7159 20.9434 13H16.9668ZM9.04004 13C9.24354 15.738 10.2754 18.3489 12 20.4834C13.7246 18.3489 14.7565 15.738 14.96 13H9.04004ZM9.66602 3.30664C6.13881 4.25125 3.46746 7.28435 3.05664 11H7.0332C7.21166 8.23812 8.12427 5.58281 9.66602 3.30664ZM12 3.51562C10.2751 5.65021 9.24348 8.26166 9.04004 11H14.96C14.7565 8.26166 13.7249 5.65021 12 3.51562ZM14.333 3.30664C15.8749 5.58292 16.7883 8.23793 16.9668 11H20.9434C20.5325 7.28403 17.8607 4.25097 14.333 3.30664Z",
@@ -7225,7 +7457,7 @@ function IconNetwork(props) {
7225
7457
  }
7226
7458
  function IconCapability(props) {
7227
7459
  "use memo";
7228
- return /* @__PURE__ */ jsx7(
7460
+ return /* @__PURE__ */ jsx9(
7229
7461
  "svg",
7230
7462
  {
7231
7463
  viewBox: "0 0 24 24",
@@ -7233,7 +7465,7 @@ function IconCapability(props) {
7233
7465
  xmlns: "http://www.w3.org/2000/svg",
7234
7466
  "aria-hidden": true,
7235
7467
  ...props,
7236
- children: /* @__PURE__ */ jsx7(
7468
+ children: /* @__PURE__ */ jsx9(
7237
7469
  "path",
7238
7470
  {
7239
7471
  d: "M9.9994 1C11.0602 1 12.0784 1.42185 12.8285 2.17188C13.5784 2.92198 13.9994 3.93932 13.9994 5C13.9994 5.79565 13.6831 6.55849 13.1205 7.12109C12.5579 7.68352 11.7949 8 10.9994 8C10.7316 7.99997 10.4793 7.97795 10.2416 7.93555C10.1632 8.06833 10.0871 8.26075 10.0209 8.53906C9.88898 9.09327 9.84537 9.79653 9.81483 10.6309C9.79404 11.1989 9.77711 11.8293 9.72987 12.4463C9.97013 12.3481 10.2169 12.2638 10.4691 12.1973C10.9061 12.0821 11.3533 12.0166 11.8021 12.002C12.3709 11.0149 13.211 10.2051 14.2299 9.6748C15.4546 9.03749 16.8622 8.84264 18.2142 9.12207C19.5664 9.40164 20.781 10.1391 21.6527 11.21C22.5243 12.2808 23 13.6193 22.9994 15C22.9994 19.6358 18.3055 23 12.9994 23C10.8986 23 8.78485 22.7894 6.89588 22.3604C5.0205 21.9343 3.29732 21.2773 2.03358 20.3418L2.0326 20.3408C1.29831 19.7958 0.992816 18.9434 1.00917 18.1553C1.06353 15.4363 1.21559 11.2582 2.32655 7.74219C2.88372 5.97897 3.7061 4.30115 4.94764 3.05469C6.21544 1.78207 7.88237 1.00014 9.9994 1ZM9.9994 3C8.43065 3.00014 7.26908 3.55883 6.36463 4.4668C5.4339 5.40127 4.73903 6.74579 4.23378 8.34473C3.34681 11.1518 3.11601 14.4956 3.03553 17.1191L3.00819 18.1963C3.00256 18.4674 3.107 18.6472 3.22401 18.7344L3.4076 18.8652C4.35656 19.5118 5.71073 20.0394 7.33827 20.4092C9.06058 20.8004 11.0238 21 12.9994 21C17.5463 21 20.791 18.2751 20.9896 15.29L20.9994 15C20.9998 14.0795 20.683 13.1866 20.1019 12.4727C19.5209 11.7589 18.7112 11.2665 17.8099 11.0801C16.9085 10.8938 15.9692 11.0243 15.1527 11.4492C14.7154 11.6769 14.3294 11.9838 14.0072 12.3477C14.5766 12.55 15.115 12.8355 15.601 13.2002C16.0421 13.5316 16.1311 14.1581 15.8002 14.5996C15.4687 15.0413 14.8415 15.1312 14.3998 14.7998C13.9171 14.4376 13.3582 14.189 12.766 14.0732C12.6241 14.0455 12.4807 14.0259 12.3373 14.0137C12.323 14.0126 12.3087 14.0114 12.2943 14.0098C11.8533 13.977 11.4086 14.0176 10.9789 14.1309C10.3955 14.2848 9.85404 14.5693 9.39588 14.9619C9.18332 15.1441 8.99158 15.3483 8.82264 15.5693C8.81507 15.5797 8.80788 15.5903 8.80018 15.6006C8.79478 15.6078 8.78816 15.6141 8.7826 15.6211C8.60462 15.862 8.45397 16.1231 8.33338 16.3994C8.11263 16.9055 7.52309 17.1365 7.01698 16.916C6.51076 16.6952 6.27858 16.1058 6.4994 15.5996C6.68858 15.166 6.92793 14.7579 7.21131 14.3828C7.42382 14.0896 7.58136 13.6141 7.67518 12.9092C7.76955 12.2 7.78452 11.4136 7.81581 10.5586C7.84563 9.7437 7.89048 8.84999 8.0746 8.07617C8.16126 7.71213 8.28971 7.32979 8.48866 6.97559C8.3626 6.8338 8.25388 6.68808 8.16053 6.54395C7.86057 6.08046 7.99311 5.46035 8.45643 5.16016C8.91985 4.86043 9.53908 4.99291 9.83924 5.45605C9.96076 5.64373 10.0773 5.7612 10.2152 5.83984C10.3527 5.91812 10.5849 5.99992 10.9994 6C11.2645 6 11.5189 5.89438 11.7064 5.70703C11.894 5.51949 11.9994 5.26522 11.9994 5C11.9994 4.46957 11.7885 3.96101 11.4135 3.58594C11.0384 3.21105 10.5297 3 9.9994 3Z",
@@ -7245,7 +7477,7 @@ function IconCapability(props) {
7245
7477
  }
7246
7478
  function IconTask(props) {
7247
7479
  "use memo";
7248
- return /* @__PURE__ */ jsx7(
7480
+ return /* @__PURE__ */ jsx9(
7249
7481
  "svg",
7250
7482
  {
7251
7483
  viewBox: "0 0 24 24",
@@ -7253,7 +7485,7 @@ function IconTask(props) {
7253
7485
  xmlns: "http://www.w3.org/2000/svg",
7254
7486
  "aria-hidden": true,
7255
7487
  ...props,
7256
- children: /* @__PURE__ */ jsx7(
7488
+ children: /* @__PURE__ */ jsx9(
7257
7489
  "path",
7258
7490
  {
7259
7491
  d: "M8.29297 14.793C8.68349 14.4025 9.31651 14.4025 9.70703 14.793C10.0976 15.1835 10.0976 15.8166 9.70703 16.2071L5.70703 20.2071C5.31651 20.5976 4.68349 20.5976 4.29297 20.2071L2.29297 18.2071C1.90244 17.8166 1.90244 17.1836 2.29297 16.793C2.68349 16.4025 3.31651 16.4025 3.70703 16.793L5 18.086L8.29297 14.793ZM21 18.0001C21.5523 18.0001 22 18.4478 22 19.0001C22 19.5524 21.5523 20.0001 21 20.0001H13C12.4477 20.0001 12 19.5524 12 19.0001C12 18.4478 12.4477 18.0001 13 18.0001H21ZM21 11C21.5523 11 22 11.4478 22 12C22 12.5523 21.5523 13 21 13H13C12.4477 13 12 12.5523 12 12C12 11.4478 12.4477 11 13 11H21ZM8 3.5C9.10457 3.5 10 4.39543 10 5.50001V9.50003C10 10.6046 9.10457 11.5 8 11.5H4C2.89543 11.5 2 10.6046 2 9.50003V5.50001C2 4.39543 2.89543 3.5 4 3.5H8ZM4 9.50003H8V5.50001H4V9.50003ZM21 4C21.5523 4 22 4.44772 22 5.00001C22 5.55229 21.5523 6.00001 21 6.00001H13C12.4477 6.00001 12 5.55229 12 5.00001C12 4.44772 12.4477 4 13 4H21Z",
@@ -7265,7 +7497,7 @@ function IconTask(props) {
7265
7497
  }
7266
7498
  function IconThinking(props) {
7267
7499
  "use memo";
7268
- return /* @__PURE__ */ jsx7(
7500
+ return /* @__PURE__ */ jsx9(
7269
7501
  "svg",
7270
7502
  {
7271
7503
  viewBox: "0 0 24 24",
@@ -7273,7 +7505,7 @@ function IconThinking(props) {
7273
7505
  xmlns: "http://www.w3.org/2000/svg",
7274
7506
  "aria-hidden": true,
7275
7507
  ...props,
7276
- children: /* @__PURE__ */ jsx7(
7508
+ children: /* @__PURE__ */ jsx9(
7277
7509
  "path",
7278
7510
  {
7279
7511
  d: "M14.2196 1.07688C14.8213 0.957197 15.4424 0.977694 16.035 1.13645C16.6276 1.29523 17.1763 1.5884 17.6375 1.99289C18.0986 2.39735 18.4604 2.90282 18.6952 3.46945C18.8188 3.76806 18.9045 4.07981 18.953 4.39719C19.4186 4.59467 19.8537 4.86066 20.2411 5.19016C20.8188 5.68166 21.2767 6.29905 21.5809 6.99387C21.885 7.6887 22.0276 8.44402 21.9969 9.20188C21.9767 9.69961 21.8801 10.1897 21.7157 10.657C22.0929 11.0764 22.4002 11.5585 22.619 12.0866C23.0401 13.1034 23.1137 14.2306 22.8289 15.2937C22.5441 16.3567 21.9169 17.2965 21.0438 17.9665C21.0288 17.978 21.013 17.9884 20.9979 17.9997C20.9973 18.4648 20.9337 18.9287 20.8045 19.3777C20.6156 20.0344 20.2945 20.646 19.8602 21.1736C19.4258 21.7011 18.8873 22.1344 18.2791 22.446C17.6712 22.7574 17.0057 22.9408 16.3241 22.9851C15.6421 23.0293 14.9577 22.9332 14.3143 22.7029C13.6711 22.4725 13.0816 22.1131 12.5828 21.6462C12.3689 21.4459 12.1747 21.2263 11.9998 20.9929C11.825 21.2262 11.6308 21.4459 11.4168 21.6462C10.918 22.1131 10.3286 22.4725 9.68539 22.7029C9.042 22.9332 8.35756 23.0293 7.67562 22.9851C6.99397 22.9408 6.32852 22.7574 5.72054 22.446C5.11231 22.1344 4.57383 21.7012 4.13949 21.1736C3.70518 20.6459 3.38408 20.0344 3.19515 19.3777C3.06602 18.9287 3.00239 18.4648 3.00179 17.9997C2.98677 17.9885 2.9708 17.978 2.95589 17.9665C2.08287 17.2965 1.4546 16.3567 1.16976 15.2937C0.885081 14.2307 0.959612 13.1033 1.3807 12.0866C1.59937 11.5587 1.90602 11.0763 2.28304 10.657C2.1187 10.1898 2.023 9.69947 2.00277 9.20188C1.97203 8.44402 2.11464 7.68869 2.41879 6.99387C2.723 6.29902 3.1809 5.68168 3.75863 5.19016C4.14595 4.86066 4.58112 4.59469 5.04671 4.39719C5.09514 4.07979 5.18087 3.76807 5.30453 3.46945C5.53925 2.90278 5.90106 2.39737 6.36214 1.99289C6.82342 1.58835 7.37206 1.29526 7.96468 1.13645C8.55726 0.977667 9.17842 0.957222 9.78011 1.07688C10.3818 1.19657 10.9487 1.45244 11.4354 1.8259C11.6413 1.98391 11.8293 2.16269 11.9998 2.35617C12.1704 2.16264 12.3583 1.98395 12.5643 1.8259C13.051 1.4524 13.6178 1.19659 14.2196 1.07688ZM9.39046 3.03781C9.08963 2.978 8.77853 2.9887 8.48226 3.06809C8.18611 3.14746 7.91204 3.29371 7.68148 3.49582C7.45094 3.69801 7.26958 3.95083 7.15218 4.2341C7.03482 4.51747 6.98371 4.82453 7.00375 5.13059C7.02381 5.43655 7.11416 5.73416 7.26742 5.99973C7.54355 6.47794 7.38032 7.08972 6.90218 7.36594C6.42391 7.64207 5.81213 7.47799 5.53597 6.99973C5.4474 6.8463 5.37072 6.68703 5.30355 6.52414C5.21761 6.58295 5.13419 6.64582 5.05453 6.71359C4.70797 7.00847 4.43333 7.3788 4.25082 7.79563C4.06831 8.21252 3.98337 8.66611 4.00179 9.12082C4.00751 9.2611 4.02461 9.40046 4.04964 9.53781C4.37718 9.55443 4.68985 9.73089 4.86605 10.0359C5.14206 10.5141 4.97805 11.1259 4.49984 11.4021C3.92803 11.7323 3.48104 12.2422 3.22836 12.8523C2.9758 13.4622 2.93159 14.1384 3.10238 14.7761C3.27327 15.4139 3.6499 15.9776 4.17367 16.3796C4.6975 16.7816 5.33955 16.9996 5.99984 16.9997C6.55196 16.9998 6.99969 17.4476 6.99984 17.9997C6.99982 18.5519 6.55202 18.9996 5.99984 18.9997C5.71286 18.9997 5.42816 18.9739 5.14828 18.9255C5.26423 19.2812 5.44532 19.6127 5.68343 19.9021C5.94396 20.2185 6.26688 20.4788 6.63168 20.6657C6.99658 20.8527 7.39637 20.9634 7.8055 20.99C8.21465 21.0165 8.62555 20.9582 9.01156 20.82C9.39738 20.6818 9.75142 20.4663 10.0506 20.1863C10.3499 19.9061 10.5885 19.5671 10.7518 19.1911C10.8947 18.862 10.9773 18.5097 10.9959 18.1521L10.9998 17.9988V13.0798C10.4898 13.4758 9.90763 13.7763 9.28011 13.9597C8.75012 14.1144 8.1948 13.81 8.03988 13.28C7.88534 12.7501 8.18971 12.1947 8.71957 12.0398C9.37716 11.8475 9.95497 11.4472 10.3661 10.8991C10.7771 10.351 10.9994 9.68388 10.9998 8.99875V4.99973C10.9998 4.69303 10.9294 4.39004 10.7938 4.11496C10.6581 3.83995 10.4609 3.5995 10.2176 3.41281C9.97436 3.22619 9.69116 3.09768 9.39046 3.03781ZM15.5174 3.06809C15.2211 2.98873 14.91 2.97797 14.6092 3.03781C14.3085 3.09771 14.0253 3.22615 13.7821 3.41281C13.5388 3.59953 13.3416 3.83991 13.2059 4.11496C13.0703 4.39004 12.9999 4.69303 12.9998 4.99973V8.99875C13.0003 9.68382 13.2227 10.351 13.6336 10.8991C14.0447 11.4472 14.6226 11.8474 15.2801 12.0398C15.81 12.1947 16.1144 12.7501 15.9598 13.28C15.8049 13.81 15.2496 14.1144 14.7196 13.9597C14.0921 13.7762 13.5098 13.4759 12.9998 13.0798V17.9988L13.0037 18.1521C13.0224 18.5097 13.1049 18.862 13.2479 19.1911C13.4112 19.5671 13.6498 19.9061 13.9491 20.1863C14.2483 20.4664 14.6023 20.6818 14.9881 20.82C15.3741 20.9583 15.785 21.0165 16.1942 20.99C16.6033 20.9634 17.0031 20.8527 17.368 20.6657C17.7328 20.4788 18.0557 20.2185 18.3162 19.9021C18.5543 19.6128 18.7345 19.2811 18.8504 18.9255C18.5709 18.9738 18.2865 18.9997 17.9998 18.9997C17.4476 18.9996 16.9999 18.552 16.9998 17.9997C17 17.4476 17.4477 16.9998 17.9998 16.9997C18.6602 16.9997 19.3021 16.7816 19.826 16.3796C20.3498 15.9776 20.7264 15.4139 20.8973 14.7761C21.0681 14.1384 21.0239 13.4622 20.7713 12.8523C20.5186 12.2423 20.0716 11.7323 19.4998 11.4021C19.0217 11.1259 18.8576 10.5141 19.1336 10.0359C19.3098 9.73087 19.6226 9.55356 19.95 9.53684C19.975 9.39977 19.9922 9.2608 19.9979 9.12082C20.0163 8.6661 19.9314 8.21252 19.7489 7.79563C19.5664 7.37884 19.2917 7.00845 18.9452 6.71359C18.8653 6.64564 18.7813 6.58308 18.6952 6.52414C18.628 6.68692 18.5522 6.84641 18.4637 6.99973C18.1875 7.47801 17.5758 7.64211 17.0975 7.36594C16.6195 7.08967 16.4562 6.47789 16.7323 5.99973C16.8856 5.73413 16.9759 5.4366 16.9959 5.13059C17.016 4.82452 16.9649 4.51748 16.8475 4.2341C16.7301 3.95087 16.5487 3.69799 16.3182 3.49582C16.0876 3.29376 15.8135 3.14743 15.5174 3.06809Z",
@@ -7285,7 +7517,7 @@ function IconThinking(props) {
7285
7517
  }
7286
7518
  function IconWebScrape(props) {
7287
7519
  "use memo";
7288
- return /* @__PURE__ */ jsx7(
7520
+ return /* @__PURE__ */ jsx9(
7289
7521
  "svg",
7290
7522
  {
7291
7523
  viewBox: "0 0 24 24",
@@ -7293,7 +7525,7 @@ function IconWebScrape(props) {
7293
7525
  xmlns: "http://www.w3.org/2000/svg",
7294
7526
  "aria-hidden": true,
7295
7527
  ...props,
7296
- children: /* @__PURE__ */ jsx7(
7528
+ children: /* @__PURE__ */ jsx9(
7297
7529
  "path",
7298
7530
  {
7299
7531
  d: "M19 3C20.6569 3 22 4.34315 22 6V18L21.9961 18.1543C21.9184 19.6883 20.6883 20.9184 19.1543 20.9961L19 21H5L4.8457 20.9961C3.31166 20.9184 2.08163 19.6883 2.00391 18.1543L2 18V6C2 4.34315 3.34315 3 5 3H19ZM4 18C4 18.5523 4.44772 19 5 19H19C19.5523 19 20 18.5523 20 18V9H4V18ZM14.5 15C14.7761 15 15 15.2239 15 15.5V16.5C15 16.7761 14.7761 17 14.5 17H6.5C6.22386 17 6 16.7761 6 16.5V15.5C6 15.2239 6.22386 15 6.5 15H14.5ZM9.5 11C9.77614 11 10 11.2239 10 11.5V12.5C10 12.7761 9.77614 13 9.5 13H6.5C6.22386 13 6 12.7761 6 12.5V11.5C6 11.2239 6.22386 11 6.5 11H9.5ZM5 5C4.44772 5 4 5.44772 4 6V7H6V5H5ZM12 7H20V6C20 5.44771 19.5523 5 19 5H12V7ZM8 7H10V5H8V7Z",
@@ -7305,7 +7537,7 @@ function IconWebScrape(props) {
7305
7537
  }
7306
7538
  function IconChat(props) {
7307
7539
  "use memo";
7308
- return /* @__PURE__ */ jsx7(
7540
+ return /* @__PURE__ */ jsx9(
7309
7541
  "svg",
7310
7542
  {
7311
7543
  viewBox: "0 0 24 24",
@@ -7313,7 +7545,7 @@ function IconChat(props) {
7313
7545
  xmlns: "http://www.w3.org/2000/svg",
7314
7546
  "aria-hidden": true,
7315
7547
  ...props,
7316
- children: /* @__PURE__ */ jsx7(
7548
+ children: /* @__PURE__ */ jsx9(
7317
7549
  "path",
7318
7550
  {
7319
7551
  d: "M12 1C12.5523 1 13 1.44772 13 2V5H18C18.7956 5 19.5585 5.3163 20.1211 5.87891C20.6837 6.44151 21 7.20435 21 8V11H22C22.5523 11 23 11.4477 23 12C23 12.5523 22.5523 13 22 13H21V16C21 16.7957 20.6837 17.5585 20.1211 18.1211C19.5585 18.6837 18.7957 19 18 19H8.82812C8.56296 19.0001 8.30857 19.1054 8.12109 19.293L5.91895 21.4951C5.6799 21.7341 5.37545 21.8969 5.04395 21.9629C4.71233 22.0288 4.36805 21.9956 4.05566 21.8662C3.74327 21.7368 3.47598 21.5174 3.28809 21.2363C3.10019 20.9552 3.00004 20.6243 3 20.2861V13H2C1.44772 13 1 12.5523 1 12C1 11.4477 1.44772 11 2 11H3V8C3 7.20435 3.3163 6.44152 3.87891 5.87891C4.44152 5.3163 5.20435 5 6 5H11V3H8C7.44772 3 7 2.55228 7 2C7 1.44772 7.44772 1 8 1H12ZM6 7C5.73478 7 5.4805 7.10543 5.29297 7.29297C5.10543 7.4805 5 7.73478 5 8V19.5859L6.70703 17.8789L6.92676 17.6797C7.46048 17.2422 8.13198 17.0001 8.82812 17H18C18.2652 17 18.5195 16.8946 18.707 16.707C18.8946 16.5195 19 16.2652 19 16V8C19 7.73478 18.8946 7.48051 18.707 7.29297C18.5195 7.10543 18.2652 7 18 7H6ZM9 10C9.55229 10 10 10.4477 10 11V13C10 13.5523 9.55229 14 9 14C8.44772 14 8 13.5523 8 13V11C8 10.4477 8.44772 10 9 10ZM15 10C15.5523 10 16 10.4477 16 11V13C16 13.5523 15.5523 14 15 14C14.4477 14 14 13.5523 14 13V11C14 10.4477 14.4477 10 15 10Z",
@@ -7325,7 +7557,7 @@ function IconChat(props) {
7325
7557
  }
7326
7558
  function IconImageGeneration(props) {
7327
7559
  "use memo";
7328
- return /* @__PURE__ */ jsx7(
7560
+ return /* @__PURE__ */ jsx9(
7329
7561
  "svg",
7330
7562
  {
7331
7563
  viewBox: "0 0 24 24",
@@ -7333,7 +7565,7 @@ function IconImageGeneration(props) {
7333
7565
  xmlns: "http://www.w3.org/2000/svg",
7334
7566
  "aria-hidden": true,
7335
7567
  ...props,
7336
- children: /* @__PURE__ */ jsx7(
7568
+ children: /* @__PURE__ */ jsx9(
7337
7569
  "path",
7338
7570
  {
7339
7571
  d: "M14.04 1.00098C14.4743 1.00553 14.9042 1.09245 15.3057 1.25879C15.7193 1.43022 16.0949 1.68198 16.4111 1.99902L19.9971 5.58496L20.1133 5.70605C20.3773 5.99585 20.5896 6.32951 20.7402 6.69238C20.9122 7.1067 21.0005 7.55143 21 8V20C21 20.7957 20.6837 21.5585 20.1211 22.1211C19.5585 22.6837 18.7957 23 18 23H6C5.20435 23 4.44152 22.6837 3.87891 22.1211C3.3163 21.5585 3 20.7957 3 20V4C3 3.20435 3.3163 2.44151 3.87891 1.87891C4.44152 1.3163 5.20435 1 6 1H14C14.0134 1 14.0268 1.00045 14.04 1.00098ZM17 15.998C16.6261 15.998 16.2673 16.1468 16.0029 16.4111L11.4141 21H18C18.2652 21 18.5195 20.8946 18.707 20.707C18.8946 20.5195 19 20.2652 19 20V17.4141L17.9971 16.4111C17.7327 16.1468 17.3739 15.998 17 15.998ZM6 3C5.73478 3 5.4805 3.10543 5.29297 3.29297C5.10543 3.4805 5 3.73478 5 4V20C5 20.2652 5.10543 20.5195 5.29297 20.707C5.48051 20.8946 5.73478 21 6 21H8.58594L14.5889 14.9971C15.2283 14.3577 16.0957 13.998 17 13.998C17.7229 13.998 18.4218 14.2286 19 14.6475V9H15C14.4696 9 13.961 8.78913 13.5859 8.41406C13.2109 8.03899 13 7.53043 13 7V3H6ZM10 9C11.6569 9 13 10.3431 13 12C13 13.6569 11.6569 15 10 15C8.34315 15 7 13.6569 7 12C7 10.3431 8.34315 9 10 9ZM10 11C9.44772 11 9 11.4477 9 12C9 12.5523 9.44772 13 10 13C10.5523 13 11 12.5523 11 12C11 11.4477 10.5523 11 10 11ZM15 7H18.584L15 3.41602V7Z",
@@ -7371,7 +7603,7 @@ function ToolActivityKindIcon({
7371
7603
  }) {
7372
7604
  "use memo";
7373
7605
  const Icon = kind ? TOOL_ACTIVITY_KIND_ICONS[kind] : IconCapability;
7374
- return /* @__PURE__ */ jsx7(Icon, { ...props });
7606
+ return /* @__PURE__ */ jsx9(Icon, { ...props });
7375
7607
  }
7376
7608
  function ToolNameIcon({
7377
7609
  toolName,
@@ -7385,34 +7617,34 @@ function ToolNameIcon({
7385
7617
  case "generatingimage":
7386
7618
  case "imagegenerate":
7387
7619
  case "imagegenerator":
7388
- return /* @__PURE__ */ jsx7(IconImageGeneration, { ...props });
7620
+ return /* @__PURE__ */ jsx9(IconImageGeneration, { ...props });
7389
7621
  case "read":
7390
7622
  case "readfile":
7391
7623
  case "glob":
7392
- return /* @__PURE__ */ jsx7(IconProductDoc, { ...props });
7624
+ return /* @__PURE__ */ jsx9(IconProductDoc, { ...props });
7393
7625
  case "write":
7394
7626
  case "writefile":
7395
7627
  case "edit":
7396
7628
  case "editfile":
7397
7629
  case "multiedit":
7398
- return /* @__PURE__ */ jsx7(IconBrush, { ...props });
7630
+ return /* @__PURE__ */ jsx9(IconBrush, { ...props });
7399
7631
  case "bash":
7400
7632
  case "shell":
7401
7633
  case "exec":
7402
7634
  case "execcommand":
7403
7635
  case "grep":
7404
- return /* @__PURE__ */ jsx7(IconBuild, { ...props });
7636
+ return /* @__PURE__ */ jsx9(IconBuild, { ...props });
7405
7637
  case "writestdin":
7406
- return /* @__PURE__ */ jsx7(IconBrush, { ...props });
7638
+ return /* @__PURE__ */ jsx9(IconBrush, { ...props });
7407
7639
  case "websearch":
7408
7640
  case "webfetch":
7409
- return /* @__PURE__ */ jsx7(IconNetwork, { ...props });
7641
+ return /* @__PURE__ */ jsx9(IconNetwork, { ...props });
7410
7642
  case "todowrite":
7411
- return /* @__PURE__ */ jsx7(IconTask, { ...props });
7643
+ return /* @__PURE__ */ jsx9(IconTask, { ...props });
7412
7644
  case "think":
7413
- return /* @__PURE__ */ jsx7(IconThinking, { ...props });
7645
+ return /* @__PURE__ */ jsx9(IconThinking, { ...props });
7414
7646
  default:
7415
- return /* @__PURE__ */ jsx7(IconCapability, { ...props });
7647
+ return /* @__PURE__ */ jsx9(IconCapability, { ...props });
7416
7648
  }
7417
7649
  }
7418
7650
  function normalizeToolName6(value) {
@@ -7420,7 +7652,7 @@ function normalizeToolName6(value) {
7420
7652
  }
7421
7653
 
7422
7654
  // shared/WorkspaceAgentSessionThinkingDisclosure.tsx
7423
- import { jsx as jsx8, jsxs as jsxs4 } from "react/jsx-runtime";
7655
+ import { jsx as jsx10, jsxs as jsxs6 } from "react/jsx-runtime";
7424
7656
  function WorkspaceAgentSessionThinkingDisclosure({
7425
7657
  thinking,
7426
7658
  label,
@@ -7428,11 +7660,11 @@ function WorkspaceAgentSessionThinkingDisclosure({
7428
7660
  previewMode = false
7429
7661
  }) {
7430
7662
  "use memo";
7431
- const [expanded, setExpanded] = useState3(false);
7663
+ const [expanded, setExpanded] = useState4(false);
7432
7664
  const isActive = thinking.statusKind === "working" || thinking.statusKind === "waiting";
7433
7665
  const statusLabel = thinking.statusKind === "working" ? null : thinkingStatusLabel(thinking.statusKind);
7434
- return /* @__PURE__ */ jsxs4("div", { className: "workspace-agents-status-panel__detail-thinking-disclosure flex w-full min-w-0 flex-col items-start gap-[7px]", children: [
7435
- /* @__PURE__ */ jsxs4(
7666
+ return /* @__PURE__ */ jsxs6("div", { className: "workspace-agents-status-panel__detail-thinking-disclosure flex w-full min-w-0 flex-col items-start gap-[7px]", children: [
7667
+ /* @__PURE__ */ jsxs6(
7436
7668
  "button",
7437
7669
  {
7438
7670
  type: "button",
@@ -7446,7 +7678,7 @@ function WorkspaceAgentSessionThinkingDisclosure({
7446
7678
  setExpanded((value) => !value);
7447
7679
  },
7448
7680
  children: [
7449
- isActive ? /* @__PURE__ */ jsx8(
7681
+ isActive ? /* @__PURE__ */ jsx10(
7450
7682
  BrainIcon,
7451
7683
  {
7452
7684
  size: 16,
@@ -7454,7 +7686,7 @@ function WorkspaceAgentSessionThinkingDisclosure({
7454
7686
  "aria-hidden": "true",
7455
7687
  className: "tsh-inline-scanlight-icon shrink-0 opacity-[0.86]"
7456
7688
  }
7457
- ) : /* @__PURE__ */ jsx8(
7689
+ ) : /* @__PURE__ */ jsx10(
7458
7690
  ToolActivityKindIcon,
7459
7691
  {
7460
7692
  kind: "thinking",
@@ -7463,12 +7695,12 @@ function WorkspaceAgentSessionThinkingDisclosure({
7463
7695
  className: "tsh-inline-scanlight-icon shrink-0 opacity-[0.72]"
7464
7696
  }
7465
7697
  ),
7466
- /* @__PURE__ */ jsxs4("span", { className: isActive ? "tsh-inline-scanlight-line" : void 0, children: [
7467
- /* @__PURE__ */ jsx8("span", { className: "font-semibold", children: label }),
7468
- statusLabel ? /* @__PURE__ */ jsx8("span", { className: "ml-1.5", children: formatInlineStatusLabel(statusLabel) }) : null,
7469
- isActive ? /* @__PURE__ */ jsx8(LoadingEllipsis, {}) : null
7698
+ /* @__PURE__ */ jsxs6("span", { className: isActive ? "tsh-inline-scanlight-line" : void 0, children: [
7699
+ /* @__PURE__ */ jsx10("span", { className: "font-semibold", children: label }),
7700
+ statusLabel ? /* @__PURE__ */ jsx10("span", { className: "ml-1.5", children: formatInlineStatusLabel(statusLabel) }) : null,
7701
+ isActive ? /* @__PURE__ */ jsx10(LoadingEllipsis, {}) : null
7470
7702
  ] }),
7471
- expanded ? /* @__PURE__ */ jsx8(
7703
+ expanded ? /* @__PURE__ */ jsx10(
7472
7704
  ChevronDown2,
7473
7705
  {
7474
7706
  size: 12,
@@ -7476,8 +7708,8 @@ function WorkspaceAgentSessionThinkingDisclosure({
7476
7708
  "aria-hidden": "true",
7477
7709
  className: "shrink-0 text-[var(--text-tertiary)] opacity-0 transition-opacity duration-150 group-hover/thinking-disclosure:opacity-100 group-focus-visible/thinking-disclosure:opacity-100"
7478
7710
  }
7479
- ) : /* @__PURE__ */ jsx8(
7480
- ChevronRight,
7711
+ ) : /* @__PURE__ */ jsx10(
7712
+ ChevronRight2,
7481
7713
  {
7482
7714
  size: 12,
7483
7715
  strokeWidth: 2.2,
@@ -7488,7 +7720,7 @@ function WorkspaceAgentSessionThinkingDisclosure({
7488
7720
  ]
7489
7721
  }
7490
7722
  ),
7491
- /* @__PURE__ */ jsx8(CollapsibleReveal, { expanded, className: "w-full", children: /* @__PURE__ */ jsx8("div", { className: "box-border w-full min-w-0 rounded-[6px] bg-[var(--transparency-block)] p-3", children: /* @__PURE__ */ jsx8(
7723
+ /* @__PURE__ */ jsx10(CollapsibleReveal, { expanded, className: "w-full", children: /* @__PURE__ */ jsx10("div", { className: "box-border w-full min-w-0 rounded-[6px] bg-[var(--transparency-block)] p-3", children: /* @__PURE__ */ jsx10(
7492
7724
  AgentMessageMarkdown,
7493
7725
  {
7494
7726
  content: thinking.body,
@@ -7502,10 +7734,10 @@ function WorkspaceAgentSessionThinkingDisclosure({
7502
7734
  }
7503
7735
  function LoadingEllipsis() {
7504
7736
  "use memo";
7505
- return /* @__PURE__ */ jsxs4("span", { className: "tsh-inline-loading-ellipsis", "aria-hidden": "true", children: [
7506
- /* @__PURE__ */ jsx8("span", {}),
7507
- /* @__PURE__ */ jsx8("span", {}),
7508
- /* @__PURE__ */ jsx8("span", {})
7737
+ return /* @__PURE__ */ jsxs6("span", { className: "tsh-inline-loading-ellipsis", "aria-hidden": "true", children: [
7738
+ /* @__PURE__ */ jsx10("span", {}),
7739
+ /* @__PURE__ */ jsx10("span", {}),
7740
+ /* @__PURE__ */ jsx10("span", {})
7509
7741
  ] });
7510
7742
  }
7511
7743
  function thinkingStatusLabel(statusKind) {
@@ -7529,21 +7761,21 @@ function formatInlineStatusLabel(label) {
7529
7761
  }
7530
7762
 
7531
7763
  // shared/agentConversation/components/RawTimelineJsonDisclosure.tsx
7532
- import { useState as useState4 } from "react";
7533
- import { ChevronDown as ChevronDown3, ChevronRight as ChevronRight2 } from "lucide-react";
7534
- import { jsx as jsx9, jsxs as jsxs5 } from "react/jsx-runtime";
7764
+ import { useState as useState5 } from "react";
7765
+ import { ChevronDown as ChevronDown3, ChevronRight as ChevronRight3 } from "lucide-react";
7766
+ import { jsx as jsx11, jsxs as jsxs7 } from "react/jsx-runtime";
7535
7767
  function RawTimelineJsonDisclosure({
7536
7768
  items,
7537
7769
  label
7538
7770
  }) {
7539
7771
  "use memo";
7540
- const [expanded, setExpanded] = useState4(false);
7772
+ const [expanded, setExpanded] = useState5(false);
7541
7773
  const json = rawTimelineJson(items);
7542
7774
  if (!json) {
7543
7775
  return null;
7544
7776
  }
7545
- return /* @__PURE__ */ jsxs5("div", { className: "mt-2 rounded-md border border-[color:color-mix(in_srgb,var(--state-danger)_18%,transparent)] bg-[color:color-mix(in_srgb,var(--background-fronted)_92%,var(--state-danger))] px-2 py-1.5 text-[11px] text-[var(--state-danger)]", children: [
7546
- /* @__PURE__ */ jsxs5(
7777
+ return /* @__PURE__ */ jsxs7("div", { className: "mt-2 rounded-md border border-[color:color-mix(in_srgb,var(--state-danger)_18%,transparent)] bg-[color:color-mix(in_srgb,var(--background-fronted)_92%,var(--state-danger))] px-2 py-1.5 text-[11px] text-[var(--state-danger)]", children: [
7778
+ /* @__PURE__ */ jsxs7(
7547
7779
  "button",
7548
7780
  {
7549
7781
  type: "button",
@@ -7551,12 +7783,12 @@ function RawTimelineJsonDisclosure({
7551
7783
  "aria-expanded": expanded,
7552
7784
  onClick: () => setExpanded((value) => !value),
7553
7785
  children: [
7554
- expanded ? /* @__PURE__ */ jsx9(ChevronDown3, { size: 13, strokeWidth: 2.2, "aria-hidden": true }) : /* @__PURE__ */ jsx9(ChevronRight2, { size: 13, strokeWidth: 2.2, "aria-hidden": true }),
7555
- /* @__PURE__ */ jsx9("span", { children: label })
7786
+ expanded ? /* @__PURE__ */ jsx11(ChevronDown3, { size: 13, strokeWidth: 2.2, "aria-hidden": true }) : /* @__PURE__ */ jsx11(ChevronRight3, { size: 13, strokeWidth: 2.2, "aria-hidden": true }),
7787
+ /* @__PURE__ */ jsx11("span", { children: label })
7556
7788
  ]
7557
7789
  }
7558
7790
  ),
7559
- /* @__PURE__ */ jsx9(CollapsibleReveal, { expanded, preMountOnIdle: true, children: /* @__PURE__ */ jsx9("pre", { className: "mt-2 max-h-[320px] overflow-auto whitespace-pre-wrap break-words rounded-md border border-[var(--line-2)] bg-[var(--background-fronted)] px-3 py-2 font-mono text-[11px] leading-5 text-[var(--text-primary)]", children: /* @__PURE__ */ jsx9("code", { children: json }) }) })
7791
+ /* @__PURE__ */ jsx11(CollapsibleReveal, { expanded, preMountOnIdle: true, children: /* @__PURE__ */ jsx11("pre", { className: "mt-2 max-h-[320px] overflow-auto whitespace-pre-wrap break-words rounded-md border border-[var(--line-2)] bg-[var(--background-fronted)] px-3 py-2 font-mono text-[11px] leading-5 text-[var(--text-primary)]", children: /* @__PURE__ */ jsx11("code", { children: json }) }) })
7560
7792
  ] });
7561
7793
  }
7562
7794
  function rawTimelineJson(items) {
@@ -7571,7 +7803,7 @@ function rawTimelineJson(items) {
7571
7803
  }
7572
7804
 
7573
7805
  // shared/agentConversation/components/AgentThinkingDisclosure.tsx
7574
- import { Fragment, jsx as jsx10, jsxs as jsxs6 } from "react/jsx-runtime";
7806
+ import { Fragment, jsx as jsx12, jsxs as jsxs8 } from "react/jsx-runtime";
7575
7807
  function AgentThinkingDisclosure({
7576
7808
  thinking,
7577
7809
  label,
@@ -7581,8 +7813,8 @@ function AgentThinkingDisclosure({
7581
7813
  rawTimelineJsonLabel = ""
7582
7814
  }) {
7583
7815
  "use memo";
7584
- return /* @__PURE__ */ jsxs6(Fragment, { children: [
7585
- /* @__PURE__ */ jsx10(
7816
+ return /* @__PURE__ */ jsxs8(Fragment, { children: [
7817
+ /* @__PURE__ */ jsx12(
7586
7818
  WorkspaceAgentSessionThinkingDisclosure,
7587
7819
  {
7588
7820
  thinking,
@@ -7591,7 +7823,7 @@ function AgentThinkingDisclosure({
7591
7823
  previewMode
7592
7824
  }
7593
7825
  ),
7594
- showRawTimelineJson && rawTimelineJsonLabel ? /* @__PURE__ */ jsx10(
7826
+ showRawTimelineJson && rawTimelineJsonLabel ? /* @__PURE__ */ jsx12(
7595
7827
  RawTimelineJsonDisclosure,
7596
7828
  {
7597
7829
  items: thinking.sourceTimelineItems,
@@ -7603,7 +7835,7 @@ function AgentThinkingDisclosure({
7603
7835
 
7604
7836
  // contexts/workspace/presentation/renderer/components/shared/CanvasNodeGhostIconButton.tsx
7605
7837
  import { forwardRef as forwardRef3 } from "react";
7606
- import { jsx as jsx11 } from "react/jsx-runtime";
7838
+ import { jsx as jsx13 } from "react/jsx-runtime";
7607
7839
  var CanvasNodeGhostIconButton = forwardRef3(function CanvasNodeGhostIconButton2({
7608
7840
  className,
7609
7841
  children,
@@ -7614,7 +7846,7 @@ var CanvasNodeGhostIconButton = forwardRef3(function CanvasNodeGhostIconButton2(
7614
7846
  ...rest
7615
7847
  }, ref) {
7616
7848
  "use memo";
7617
- return /* @__PURE__ */ jsx11(
7849
+ return /* @__PURE__ */ jsx13(
7618
7850
  "button",
7619
7851
  {
7620
7852
  ref,
@@ -7648,9 +7880,9 @@ var CanvasNodeGhostIconButton = forwardRef3(function CanvasNodeGhostIconButton2(
7648
7880
  });
7649
7881
 
7650
7882
  // shared/agentConversation/components/AgentMessageImages.tsx
7651
- import { useEffect as useEffect4, useMemo, useState as useState5 } from "react";
7883
+ import { useEffect as useEffect4, useMemo, useState as useState6 } from "react";
7652
7884
  import { LoaderCircle } from "lucide-react";
7653
- import { jsx as jsx12 } from "react/jsx-runtime";
7885
+ import { jsx as jsx14 } from "react/jsx-runtime";
7654
7886
  function AgentUserImageGrid({
7655
7887
  message
7656
7888
  }) {
@@ -7659,7 +7891,7 @@ function AgentUserImageGrid({
7659
7891
  const { loadingIds, sources } = useAgentMessageImageSources(images);
7660
7892
  const columnCount = Math.min(Math.max(images.length, 1), 4);
7661
7893
  const thumbnailWidth = images.length === 1 ? "160px" : "80px";
7662
- return /* @__PURE__ */ jsx12(
7894
+ return /* @__PURE__ */ jsx14(
7663
7895
  "div",
7664
7896
  {
7665
7897
  className: AgentGUIConversation_styles_default.userImageGrid,
@@ -7669,7 +7901,7 @@ function AgentUserImageGrid({
7669
7901
  children: images.map((image) => {
7670
7902
  const src = sources.get(image.id) ?? imageSourceUrl(image);
7671
7903
  const loading = !src && loadingIds.has(image.id);
7672
- return /* @__PURE__ */ jsx12("div", { className: AgentGUIConversation_styles_default.userImageThumbnail, children: src ? /* @__PURE__ */ jsx12(
7904
+ return /* @__PURE__ */ jsx14("div", { className: AgentGUIConversation_styles_default.userImageThumbnail, children: src ? /* @__PURE__ */ jsx14(
7673
7905
  ZoomableImage,
7674
7906
  {
7675
7907
  src,
@@ -7678,12 +7910,12 @@ function AgentUserImageGrid({
7678
7910
  draggable: false,
7679
7911
  downloadName: image.name?.trim() || "image.png"
7680
7912
  }
7681
- ) : loading ? /* @__PURE__ */ jsx12(
7913
+ ) : loading ? /* @__PURE__ */ jsx14(
7682
7914
  "div",
7683
7915
  {
7684
7916
  className: "flex h-20 w-full items-center justify-center bg-[color-mix(in_srgb,var(--text-primary)_6%,transparent)]",
7685
7917
  "data-testid": "agent-gui-message-image-loading",
7686
- children: /* @__PURE__ */ jsx12(
7918
+ children: /* @__PURE__ */ jsx14(
7687
7919
  LoaderCircle,
7688
7920
  {
7689
7921
  "aria-hidden": "true",
@@ -7692,15 +7924,15 @@ function AgentUserImageGrid({
7692
7924
  }
7693
7925
  )
7694
7926
  }
7695
- ) : /* @__PURE__ */ jsx12("div", { className: "h-20 w-full animate-pulse bg-[color-mix(in_srgb,var(--text-primary)_8%,transparent)]" }) }, image.id);
7927
+ ) : /* @__PURE__ */ jsx14("div", { className: "h-20 w-full animate-pulse bg-[color-mix(in_srgb,var(--text-primary)_8%,transparent)]" }) }, image.id);
7696
7928
  })
7697
7929
  }
7698
7930
  );
7699
7931
  }
7700
7932
  function useAgentMessageImageSources(images) {
7701
7933
  const runtime = useOptionalAgentActivityRuntime();
7702
- const [sources, setSources] = useState5(() => /* @__PURE__ */ new Map());
7703
- const [loadingIds, setLoadingIds] = useState5(() => /* @__PURE__ */ new Set());
7934
+ const [sources, setSources] = useState6(() => /* @__PURE__ */ new Map());
7935
+ const [loadingIds, setLoadingIds] = useState6(() => /* @__PURE__ */ new Set());
7704
7936
  const missingImages = useMemo(
7705
7937
  () => images.filter(
7706
7938
  (image) => !imageSourceUrl(image) && !sources.has(image.id) && image.workspaceId && image.agentSessionId && (image.attachmentId || image.path)
@@ -7764,7 +7996,7 @@ function imageSourceUrl(image) {
7764
7996
  }
7765
7997
 
7766
7998
  // shared/agentConversation/components/AgentMessageBlock.tsx
7767
- import { jsx as jsx13, jsxs as jsxs7 } from "react/jsx-runtime";
7999
+ import { jsx as jsx15, jsxs as jsxs9 } from "react/jsx-runtime";
7768
8000
  var MESSAGE_COPY_FEEDBACK_MS = 1400;
7769
8001
  var CONTEXT_COMPACTION_NOTICE_TITLE = "Context compacted.";
7770
8002
  var CONTEXT_COMPACTION_IN_PROGRESS_TITLE = "Compacting context.";
@@ -7825,7 +8057,7 @@ function AgentMessageBlock({
7825
8057
  },
7826
8058
  [agentHostApi]
7827
8059
  );
7828
- const thinkingContent = !isUser ? row.thinking.map((thinking) => /* @__PURE__ */ jsx13(
8060
+ const thinkingContent = !isUser ? row.thinking.map((thinking) => /* @__PURE__ */ jsx15(
7829
8061
  AgentThinkingDisclosure,
7830
8062
  {
7831
8063
  thinking,
@@ -7837,14 +8069,14 @@ function AgentMessageBlock({
7837
8069
  },
7838
8070
  thinking.id
7839
8071
  )) : null;
7840
- return /* @__PURE__ */ jsxs7(
8072
+ return /* @__PURE__ */ jsxs9(
7841
8073
  "div",
7842
8074
  {
7843
8075
  className: isUser ? AgentGUIConversation_styles_default.userMessageFlow : AgentGUIConversation_styles_default.assistantMessageFlow,
7844
8076
  children: [
7845
8077
  thinkingContent,
7846
8078
  row.messages.map((message) => {
7847
- const rawTimelineJson2 = showRawTimelineJson && rawTimelineJsonLabel && (message.sourceTimelineItems?.length ?? 0) > 0 ? /* @__PURE__ */ jsx13(
8079
+ const rawTimelineJson2 = showRawTimelineJson && rawTimelineJsonLabel && (message.sourceTimelineItems?.length ?? 0) > 0 ? /* @__PURE__ */ jsx15(
7848
8080
  RawTimelineJsonDisclosure,
7849
8081
  {
7850
8082
  items: message.sourceTimelineItems,
@@ -7852,7 +8084,7 @@ function AgentMessageBlock({
7852
8084
  }
7853
8085
  ) : null;
7854
8086
  const recoveredError = !isUser && !message.visibleError && message.statusKind === "failed" ? recoverVisibleErrorFromFailedMessage(message, provider) : null;
7855
- const content = isUser && message.contentKind === "image-grid" ? /* @__PURE__ */ jsx13(AgentUserImageGrid, { message }) : isUser ? /* @__PURE__ */ jsx13(
8087
+ const content = isUser && message.contentKind === "image-grid" ? /* @__PURE__ */ jsx15(AgentUserImageGrid, { message }) : isUser ? /* @__PURE__ */ jsx15(
7856
8088
  AgentRichTextReadonly,
7857
8089
  {
7858
8090
  value: message.body,
@@ -7862,21 +8094,21 @@ function AgentMessageBlock({
7862
8094
  availableSkills,
7863
8095
  workspaceAppIcons
7864
8096
  }
7865
- ) : message.visibleError ? /* @__PURE__ */ jsx13(
8097
+ ) : message.visibleError ? /* @__PURE__ */ jsx15(
7866
8098
  AgentVisibleErrorMessage,
7867
8099
  {
7868
8100
  message,
7869
8101
  onAuthLogin,
7870
8102
  onExternalLink: handleLinkClick
7871
8103
  }
7872
- ) : recoveredError ? /* @__PURE__ */ jsx13(
8104
+ ) : recoveredError ? /* @__PURE__ */ jsx15(
7873
8105
  AgentVisibleErrorMessage,
7874
8106
  {
7875
8107
  message: recoveredError,
7876
8108
  onAuthLogin,
7877
8109
  onExternalLink: handleLinkClick
7878
8110
  }
7879
- ) : message.systemNotice ? /* @__PURE__ */ jsx13(AgentSystemNoticeMessage, { message }) : message.contentKind === "plan" ? /* @__PURE__ */ jsx13(
8111
+ ) : message.systemNotice ? /* @__PURE__ */ jsx15(AgentSystemNoticeMessage, { message }) : message.contentKind === "plan" ? /* @__PURE__ */ jsx15(
7880
8112
  AgentPlanCardMessage,
7881
8113
  {
7882
8114
  message,
@@ -7886,7 +8118,7 @@ function AgentMessageBlock({
7886
8118
  workspaceAppIcons,
7887
8119
  previewMode
7888
8120
  }
7889
- ) : /* @__PURE__ */ jsx13(
8121
+ ) : /* @__PURE__ */ jsx15(
7890
8122
  AgentMessageMarkdown,
7891
8123
  {
7892
8124
  content: message.body,
@@ -7905,7 +8137,7 @@ function AgentMessageBlock({
7905
8137
  }
7906
8138
  );
7907
8139
  if (rawTimelineJson2) {
7908
- return /* @__PURE__ */ jsxs7(
8140
+ return /* @__PURE__ */ jsxs9(
7909
8141
  AgentCopyableMessageGroup,
7910
8142
  {
7911
8143
  copyText: message.copyText ?? null,
@@ -7922,7 +8154,7 @@ function AgentMessageBlock({
7922
8154
  }
7923
8155
  const copyText = message.copyText ?? null;
7924
8156
  if (copyText) {
7925
- return /* @__PURE__ */ jsx13(
8157
+ return /* @__PURE__ */ jsx15(
7926
8158
  AgentCopyableMessageGroup,
7927
8159
  {
7928
8160
  copyText,
@@ -7934,7 +8166,7 @@ function AgentMessageBlock({
7934
8166
  message.id
7935
8167
  );
7936
8168
  }
7937
- return /* @__PURE__ */ jsx13(Fragment2, { children: content }, message.id);
8169
+ return /* @__PURE__ */ jsx15(Fragment2, { children: content }, message.id);
7938
8170
  })
7939
8171
  ]
7940
8172
  }
@@ -7949,11 +8181,11 @@ function AgentCopyableMessageGroup({
7949
8181
  }) {
7950
8182
  "use memo";
7951
8183
  const timestamp = formatAgentMessageTimestamp(occurredAtUnixMs);
7952
- return /* @__PURE__ */ jsxs7("div", { className: AgentGUIConversation_styles_default.messageGroup, "data-agent-message-speaker": speaker, children: [
8184
+ return /* @__PURE__ */ jsxs9("div", { className: AgentGUIConversation_styles_default.messageGroup, "data-agent-message-speaker": speaker, children: [
7953
8185
  children,
7954
- timestamp || copyText ? /* @__PURE__ */ jsxs7("div", { className: AgentGUIConversation_styles_default.messageFooter, children: [
7955
- timestamp ? /* @__PURE__ */ jsx13("span", { className: AgentGUIConversation_styles_default.messageTimestamp, children: timestamp }) : null,
7956
- copyText ? /* @__PURE__ */ jsx13(
8186
+ timestamp || copyText ? /* @__PURE__ */ jsxs9("div", { className: AgentGUIConversation_styles_default.messageFooter, children: [
8187
+ timestamp ? /* @__PURE__ */ jsx15("span", { className: AgentGUIConversation_styles_default.messageTimestamp, children: timestamp }) : null,
8188
+ copyText ? /* @__PURE__ */ jsx15(
7957
8189
  AgentMessageCopyButton,
7958
8190
  {
7959
8191
  copyText,
@@ -7968,7 +8200,7 @@ function AgentMessageCopyButton({
7968
8200
  onCopyMessageText
7969
8201
  }) {
7970
8202
  "use memo";
7971
- const [copied, setCopied] = useState6(false);
8203
+ const [copied, setCopied] = useState7(false);
7972
8204
  useEffect5(() => {
7973
8205
  if (!copied) {
7974
8206
  return;
@@ -7984,14 +8216,14 @@ function AgentMessageCopyButton({
7984
8216
  }
7985
8217
  }, [copyText, onCopyMessageText]);
7986
8218
  const label = copied ? translate("agentHost.agentGui.messageCopied") : translate("agentHost.agentGui.copyMessage");
7987
- return /* @__PURE__ */ jsx13(
8219
+ return /* @__PURE__ */ jsx15(
7988
8220
  CanvasNodeGhostIconButton,
7989
8221
  {
7990
8222
  className: AgentGUIConversation_styles_default.messageCopyButton,
7991
8223
  "aria-label": label,
7992
8224
  "data-copied": copied ? "true" : "false",
7993
8225
  onClick: handleClick,
7994
- children: copied ? /* @__PURE__ */ jsx13(CheckIcon, { width: 14, height: 14, "aria-hidden": "true" }) : /* @__PURE__ */ jsx13(CopyIcon, { width: 14, height: 14, "aria-hidden": "true" })
8226
+ children: copied ? /* @__PURE__ */ jsx15(CheckIcon, { width: 14, height: 14, "aria-hidden": "true" }) : /* @__PURE__ */ jsx15(CopyIcon, { width: 14, height: 14, "aria-hidden": "true" })
7995
8227
  }
7996
8228
  );
7997
8229
  }
@@ -8004,7 +8236,7 @@ function AgentSystemNoticeMessage({
8004
8236
  const title = systemNoticeTitle(message);
8005
8237
  if (notice?.noticeKind === "transport_retry") {
8006
8238
  const retryText = transportRetryNoticeText(message);
8007
- return /* @__PURE__ */ jsx13(
8239
+ return /* @__PURE__ */ jsx15(
8008
8240
  "div",
8009
8241
  {
8010
8242
  role: "status",
@@ -8014,7 +8246,7 @@ function AgentSystemNoticeMessage({
8014
8246
  );
8015
8247
  }
8016
8248
  if (isContextCompactionProgressNotice(message, title)) {
8017
- return /* @__PURE__ */ jsx13(
8249
+ return /* @__PURE__ */ jsx15(
8018
8250
  ContextCompactionProgressDivider,
8019
8251
  {
8020
8252
  startedAtUnixMs: message.occurredAtUnixMs
@@ -8022,7 +8254,7 @@ function AgentSystemNoticeMessage({
8022
8254
  );
8023
8255
  }
8024
8256
  if (isContextCompactionNotice(message, title)) {
8025
- return /* @__PURE__ */ jsx13(
8257
+ return /* @__PURE__ */ jsx15(
8026
8258
  ContextCompactionDivider,
8027
8259
  {
8028
8260
  text: translate("agentHost.agentGui.contextCompactionCompleted")
@@ -8030,7 +8262,7 @@ function AgentSystemNoticeMessage({
8030
8262
  );
8031
8263
  }
8032
8264
  if (isContextCompactionInterruptedNotice(message, title)) {
8033
- return /* @__PURE__ */ jsx13(
8265
+ return /* @__PURE__ */ jsx15(
8034
8266
  ContextCompactionDivider,
8035
8267
  {
8036
8268
  text: translate("agentHost.agentGui.contextCompactionInterrupted")
@@ -8039,14 +8271,14 @@ function AgentSystemNoticeMessage({
8039
8271
  }
8040
8272
  const isStatusNotice = systemNoticeIsStatus(message);
8041
8273
  const noticeToneClassName = systemNoticeToneClassName(message);
8042
- return /* @__PURE__ */ jsx13(
8274
+ return /* @__PURE__ */ jsx15(
8043
8275
  "section",
8044
8276
  {
8045
8277
  role: isStatusNotice ? "status" : void 0,
8046
8278
  className: `box-border w-full min-w-0 rounded-[8px] border p-3 text-[13px] leading-5 text-[var(--text-primary)] ${noticeToneClassName}`,
8047
- children: /* @__PURE__ */ jsxs7("div", { className: "min-w-0", children: [
8048
- /* @__PURE__ */ jsx13("div", { className: "font-medium text-[var(--text-primary)]", children: title }),
8049
- detail ? /* @__PURE__ */ jsx13(AgentMessageDetailsDisclosure, { detail, className: "mt-1" }) : null
8279
+ children: /* @__PURE__ */ jsxs9("div", { className: "min-w-0", children: [
8280
+ /* @__PURE__ */ jsx15("div", { className: "font-medium text-[var(--text-primary)]", children: title }),
8281
+ detail ? /* @__PURE__ */ jsx15(AgentMessageDetailsDisclosure, { detail, className: "mt-1" }) : null
8050
8282
  ] })
8051
8283
  }
8052
8284
  );
@@ -8097,21 +8329,21 @@ function isContextCompactionInterruptedNotice(message, title) {
8097
8329
  }
8098
8330
  function ContextCompactionDivider({ text }) {
8099
8331
  "use memo";
8100
- return /* @__PURE__ */ jsxs7(
8332
+ return /* @__PURE__ */ jsxs9(
8101
8333
  "div",
8102
8334
  {
8103
8335
  role: "status",
8104
8336
  className: "box-border flex w-full min-w-0 items-center gap-3 py-2 text-[12px] leading-4 text-[var(--text-secondary)]",
8105
8337
  children: [
8106
- /* @__PURE__ */ jsx13(
8338
+ /* @__PURE__ */ jsx15(
8107
8339
  "span",
8108
8340
  {
8109
8341
  "aria-hidden": "true",
8110
8342
  className: "h-px min-w-4 flex-1 bg-[var(--line-1)]"
8111
8343
  }
8112
8344
  ),
8113
- /* @__PURE__ */ jsx13("span", { className: "shrink-0 whitespace-nowrap", children: text }),
8114
- /* @__PURE__ */ jsx13(
8345
+ /* @__PURE__ */ jsx15("span", { className: "shrink-0 whitespace-nowrap", children: text }),
8346
+ /* @__PURE__ */ jsx15(
8115
8347
  "span",
8116
8348
  {
8117
8349
  "aria-hidden": "true",
@@ -8129,10 +8361,10 @@ function ContextCompactionProgressDivider({
8129
8361
  const elapsedSeconds = useElapsedSeconds(startedAtUnixMs);
8130
8362
  const label = translate("agentHost.agentGui.contextCompactionInProgress");
8131
8363
  const text = elapsedSeconds === null ? label : `${label} \xB7 ${formatElapsedSeconds(elapsedSeconds)}`;
8132
- return /* @__PURE__ */ jsx13(ContextCompactionDivider, { text });
8364
+ return /* @__PURE__ */ jsx15(ContextCompactionDivider, { text });
8133
8365
  }
8134
8366
  function useElapsedSeconds(startUnixMs) {
8135
- const [nowUnixMs, setNowUnixMs] = useState6(() => Date.now());
8367
+ const [nowUnixMs, setNowUnixMs] = useState7(() => Date.now());
8136
8368
  useEffect5(() => {
8137
8369
  if (startUnixMs === null) {
8138
8370
  return;
@@ -8160,7 +8392,7 @@ function AgentPlanCardMessage({
8160
8392
  previewMode = false
8161
8393
  }) {
8162
8394
  "use memo";
8163
- return /* @__PURE__ */ jsx13(AgentPlanCard, { copyText: message.body, children: /* @__PURE__ */ jsx13(
8395
+ return /* @__PURE__ */ jsx15(AgentPlanCard, { copyText: message.body, children: /* @__PURE__ */ jsx15(
8164
8396
  AgentMessageMarkdown,
8165
8397
  {
8166
8398
  content: message.body,
@@ -8199,177 +8431,22 @@ function systemNoticeTitle(message) {
8199
8431
  return notice?.title || message.body || translate("agentHost.agentGui.systemNoticeDefault");
8200
8432
  }
8201
8433
  }
8202
- function recoverVisibleErrorFromFailedMessage(message, provider) {
8203
- const code = classifyFailedAgentMessage(message.body);
8204
- if (!code) {
8205
- return null;
8206
- }
8207
- return {
8208
- ...message,
8209
- visibleError: {
8210
- code,
8211
- phase: null,
8212
- provider: provider ?? null,
8213
- detail: message.body,
8214
- retryable: null
8215
- }
8216
- };
8217
- }
8218
- function AgentVisibleErrorMessage({
8219
- message,
8220
- onExternalLink
8221
- }) {
8222
- "use memo";
8223
- const error = message.visibleError;
8224
- const detail = error?.detail?.trim() ?? "";
8225
- const providerLabel = workspaceAgentProviderLabel(
8226
- error?.provider ?? "unknown"
8227
- );
8228
- const presentation = resolveAgentErrorPresentation(error?.code);
8229
- const headline = presentation?.messageKey ? translate(presentation.messageKey, { provider: providerLabel }) : visibleErrorTitle(message);
8230
- const focus = presentation?.focus ?? null;
8231
- const actionKey = presentation?.actionKey ?? null;
8232
- const externalUrl = presentation?.externalUrl ?? null;
8233
- const hint = visibleErrorHint(message);
8234
- return /* @__PURE__ */ jsx13(
8235
- "section",
8236
- {
8237
- role: "alert",
8238
- className: "box-border w-full min-w-0 rounded-[8px] border border-[var(--on-danger-hover)] bg-[var(--on-danger)] p-3 text-[13px] leading-5 text-[var(--state-danger)]",
8239
- children: /* @__PURE__ */ jsxs7("div", { className: "flex min-w-0 items-start gap-3", children: [
8240
- /* @__PURE__ */ jsxs7("div", { className: "min-w-0 flex-1", children: [
8241
- /* @__PURE__ */ jsx13("div", { className: "font-medium text-[var(--text-primary)]", children: headline }),
8242
- hint ? /* @__PURE__ */ jsx13("div", { className: "mt-1 text-[11px] text-[var(--text-secondary)]", children: hint }) : null,
8243
- detail ? /* @__PURE__ */ jsx13(
8244
- AgentMessageDetailsDisclosure,
8245
- {
8246
- detail,
8247
- className: "mt-1",
8248
- label: translate("agentHost.agentGui.visibleErrorRawDetails")
8249
- }
8250
- ) : null
8251
- ] }),
8252
- actionKey && (focus || externalUrl && onExternalLink) ? /* @__PURE__ */ jsx13(
8253
- Button,
8254
- {
8255
- type: "button",
8256
- variant: "ghost",
8257
- size: "sm",
8258
- className: "mt-0.5 shrink-0",
8259
- onClick: () => {
8260
- if (externalUrl) {
8261
- onExternalLink?.(externalUrl);
8262
- return;
8263
- }
8264
- if (focus) {
8265
- openAgentEnvPanel({
8266
- provider: error?.provider ?? null,
8267
- focus
8268
- });
8269
- }
8270
- },
8271
- children: translate(actionKey)
8272
- }
8273
- ) : null
8274
- ] })
8275
- }
8276
- );
8277
- }
8278
- function AgentMessageDetailsDisclosure({
8279
- detail,
8280
- className = "",
8281
- label
8282
- }) {
8283
- "use memo";
8284
- const [expanded, setExpanded] = useState6(false);
8285
- return /* @__PURE__ */ jsxs7("div", { className: `${className} text-[11px] text-[var(--state-danger)]`, children: [
8286
- /* @__PURE__ */ jsxs7(
8287
- "button",
8288
- {
8289
- type: "button",
8290
- className: "inline-flex w-fit max-w-full min-w-0 cursor-pointer select-none items-center gap-1.5 border-0 bg-transparent p-0 text-left font-[inherit] text-[inherit] transition-colors duration-150 hover:text-[var(--state-danger-hover)]",
8291
- "aria-expanded": expanded,
8292
- onClick: () => setExpanded((value) => !value),
8293
- children: [
8294
- label ?? translate("agentHost.agentGui.visibleErrorDetails"),
8295
- /* @__PURE__ */ jsx13(
8296
- ChevronRight3,
8297
- {
8298
- size: 12,
8299
- strokeWidth: 2.2,
8300
- "aria-hidden": "true",
8301
- className: "shrink-0 text-[var(--state-danger)]",
8302
- style: {
8303
- transform: expanded ? "rotate(90deg)" : "rotate(0deg)",
8304
- transformOrigin: "center",
8305
- transition: "transform 200ms cubic-bezier(0.22, 1.18, 0.36, 1)",
8306
- willChange: "transform"
8307
- }
8308
- }
8309
- )
8310
- ]
8311
- }
8312
- ),
8313
- /* @__PURE__ */ jsx13(CollapsibleReveal, { expanded, preMountOnIdle: true, children: /* @__PURE__ */ jsx13("pre", { className: "mt-2 max-h-[220px] overflow-auto whitespace-pre-wrap break-words rounded-[6px] bg-[var(--on-danger)] px-3 py-2 font-[var(--tsh-font-mono)] text-[11px] leading-5 text-[var(--state-danger)]", children: detail }) })
8314
- ] });
8315
- }
8316
- function visibleErrorTitle(message) {
8317
- const error = message.visibleError;
8318
- const provider = workspaceAgentProviderLabel(error?.provider ?? "unknown");
8319
- switch (error?.code) {
8320
- case "auth_required":
8321
- return translate("agentHost.agentGui.visibleErrorAuthRequired", {
8322
- provider
8323
- });
8324
- case "request_timed_out":
8325
- return translate("agentHost.agentGui.visibleErrorRequestTimedOut", {
8326
- provider
8327
- });
8328
- case "runtime_unavailable":
8329
- return translate("agentHost.agentGui.visibleErrorRuntimeUnavailable", {
8330
- provider
8331
- });
8332
- case "quota_or_rate_limit":
8333
- return translate("agentHost.agentGui.visibleErrorQuotaOrRateLimit", {
8334
- provider
8335
- });
8336
- default:
8337
- if (error?.phase === "start") {
8338
- return translate("agentHost.agentGui.visibleErrorStartFailed", {
8339
- provider
8340
- });
8341
- }
8342
- return message.body || translate("agentHost.agentGui.visibleErrorRequestFailed", { provider });
8343
- }
8344
- }
8345
- function visibleErrorHint(message) {
8346
- const error = message.visibleError;
8347
- if (error?.code !== "auth_required") {
8348
- return null;
8349
- }
8350
- return translate(
8351
- "agentHost.agentGui.visibleErrorAuthRequiredLocalAgentHint",
8352
- {
8353
- provider: workspaceAgentProviderLabel(error.provider ?? "unknown")
8354
- }
8355
- );
8356
- }
8357
8434
 
8358
8435
  // shared/agentConversation/components/AgentProcessingRow.tsx
8359
- import { jsx as jsx14, jsxs as jsxs8 } from "react/jsx-runtime";
8436
+ import { jsx as jsx16, jsxs as jsxs10 } from "react/jsx-runtime";
8360
8437
  function AgentProcessingRow({
8361
8438
  row,
8362
8439
  label
8363
8440
  }) {
8364
8441
  "use memo";
8365
- return /* @__PURE__ */ jsx14(
8442
+ return /* @__PURE__ */ jsx16(
8366
8443
  "div",
8367
8444
  {
8368
8445
  "data-row-id": row.id,
8369
8446
  className: "workspace-agents-status-panel__detail-processing inline-flex items-center gap-1.5",
8370
- children: /* @__PURE__ */ jsxs8("span", { className: "inline-flex min-w-0 items-center gap-1 font-semibold", children: [
8371
- /* @__PURE__ */ jsx14("span", { children: processingLabel(row, label) }),
8372
- /* @__PURE__ */ jsx14(LoadingEllipsis2, {})
8447
+ children: /* @__PURE__ */ jsxs10("span", { className: "inline-flex min-w-0 items-center gap-1 font-semibold", children: [
8448
+ /* @__PURE__ */ jsx16("span", { children: processingLabel(row, label) }),
8449
+ /* @__PURE__ */ jsx16(LoadingEllipsis2, {})
8373
8450
  ] })
8374
8451
  }
8375
8452
  );
@@ -8382,26 +8459,26 @@ function processingLabel(row, fallback) {
8382
8459
  }
8383
8460
  function LoadingEllipsis2() {
8384
8461
  "use memo";
8385
- return /* @__PURE__ */ jsxs8(
8462
+ return /* @__PURE__ */ jsxs10(
8386
8463
  "span",
8387
8464
  {
8388
8465
  className: "tsh-inline-loading-ellipsis tsh-inline-loading-ellipsis--entry-timing",
8389
8466
  "aria-hidden": "true",
8390
8467
  children: [
8391
- /* @__PURE__ */ jsx14("span", {}),
8392
- /* @__PURE__ */ jsx14("span", {}),
8393
- /* @__PURE__ */ jsx14("span", {})
8468
+ /* @__PURE__ */ jsx16("span", {}),
8469
+ /* @__PURE__ */ jsx16("span", {}),
8470
+ /* @__PURE__ */ jsx16("span", {})
8394
8471
  ]
8395
8472
  }
8396
8473
  );
8397
8474
  }
8398
8475
 
8399
8476
  // shared/agentConversation/components/AgentToolGroupRow.tsx
8400
- import { memo as memo2, useState as useState17 } from "react";
8477
+ import { memo as memo2, useState as useState18 } from "react";
8401
8478
  import { ChevronDown as ChevronDown7, ChevronRight as ChevronRight7 } from "lucide-react";
8402
8479
 
8403
8480
  // shared/agentConversation/components/AgentAskUserQuestionCard.tsx
8404
- import { useState as useState13 } from "react";
8481
+ import { useState as useState14 } from "react";
8405
8482
 
8406
8483
  // shared/agentConversation/components/AgentToolCallHeader.tsx
8407
8484
  import { AlertCircle, ChevronDown as ChevronDown4, ChevronRight as ChevronRight4 } from "lucide-react";
@@ -8419,7 +8496,7 @@ import {
8419
8496
  useAnimation as useAnimation2,
8420
8497
  useReducedMotion as useReducedMotion2
8421
8498
  } from "framer-motion";
8422
- import { jsx as jsx15, jsxs as jsxs9 } from "react/jsx-runtime";
8499
+ import { jsx as jsx17, jsxs as jsxs11 } from "react/jsx-runtime";
8423
8500
  var PEN_VARIANTS = {
8424
8501
  normal: {
8425
8502
  rotate: 0,
@@ -8519,14 +8596,14 @@ var FilePenLineIcon = forwardRef4(
8519
8596
  },
8520
8597
  [onMouseLeave, stopAnimation]
8521
8598
  );
8522
- return /* @__PURE__ */ jsx15(
8599
+ return /* @__PURE__ */ jsx17(
8523
8600
  "div",
8524
8601
  {
8525
8602
  className: cn("inline-flex items-center justify-center", className),
8526
8603
  onMouseEnter: handleMouseEnter,
8527
8604
  onMouseLeave: handleMouseLeave,
8528
8605
  ...props,
8529
- children: /* @__PURE__ */ jsxs9(
8606
+ children: /* @__PURE__ */ jsxs11(
8530
8607
  "svg",
8531
8608
  {
8532
8609
  fill: "none",
@@ -8539,8 +8616,8 @@ var FilePenLineIcon = forwardRef4(
8539
8616
  width: size,
8540
8617
  xmlns: "http://www.w3.org/2000/svg",
8541
8618
  children: [
8542
- /* @__PURE__ */ jsx15("path", { d: "m18 5-2.414-2.414A2 2 0 0 0 14.172 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2" }),
8543
- /* @__PURE__ */ jsx15(
8619
+ /* @__PURE__ */ jsx17("path", { d: "m18 5-2.414-2.414A2 2 0 0 0 14.172 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2" }),
8620
+ /* @__PURE__ */ jsx17(
8544
8621
  motion2.path,
8545
8622
  {
8546
8623
  animate: controls,
@@ -8549,7 +8626,7 @@ var FilePenLineIcon = forwardRef4(
8549
8626
  variants: PEN_VARIANTS
8550
8627
  }
8551
8628
  ),
8552
- /* @__PURE__ */ jsx15(
8629
+ /* @__PURE__ */ jsx17(
8553
8630
  motion2.path,
8554
8631
  {
8555
8632
  animate: controls,
@@ -8580,7 +8657,7 @@ import {
8580
8657
  useAnimation as useAnimation3,
8581
8658
  useReducedMotion as useReducedMotion3
8582
8659
  } from "framer-motion";
8583
- import { jsx as jsx16, jsxs as jsxs10 } from "react/jsx-runtime";
8660
+ import { jsx as jsx18, jsxs as jsxs12 } from "react/jsx-runtime";
8584
8661
  var FILE_TEXT_LINE_VARIANTS = {
8585
8662
  normal: {
8586
8663
  pathLength: 1,
@@ -8662,14 +8739,14 @@ var FileTextIcon = forwardRef5(
8662
8739
  },
8663
8740
  [onMouseLeave, stopAnimation]
8664
8741
  );
8665
- return /* @__PURE__ */ jsx16(
8742
+ return /* @__PURE__ */ jsx18(
8666
8743
  "div",
8667
8744
  {
8668
8745
  className: cn("inline-flex items-center justify-center", className),
8669
8746
  onMouseEnter: handleMouseEnter,
8670
8747
  onMouseLeave: handleMouseLeave,
8671
8748
  ...props,
8672
- children: /* @__PURE__ */ jsxs10(
8749
+ children: /* @__PURE__ */ jsxs12(
8673
8750
  motion3.svg,
8674
8751
  {
8675
8752
  animate: controls,
@@ -8703,9 +8780,9 @@ var FileTextIcon = forwardRef5(
8703
8780
  width: size,
8704
8781
  xmlns: "http://www.w3.org/2000/svg",
8705
8782
  children: [
8706
- /* @__PURE__ */ jsx16("path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z" }),
8707
- /* @__PURE__ */ jsx16("path", { d: "M14 2v4a2 2 0 0 0 2 2h4" }),
8708
- /* @__PURE__ */ jsx16(
8783
+ /* @__PURE__ */ jsx18("path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z" }),
8784
+ /* @__PURE__ */ jsx18("path", { d: "M14 2v4a2 2 0 0 0 2 2h4" }),
8785
+ /* @__PURE__ */ jsx18(
8709
8786
  motion3.path,
8710
8787
  {
8711
8788
  animate: controls,
@@ -8714,7 +8791,7 @@ var FileTextIcon = forwardRef5(
8714
8791
  variants: FILE_TEXT_LINE_VARIANTS
8715
8792
  }
8716
8793
  ),
8717
- /* @__PURE__ */ jsx16(
8794
+ /* @__PURE__ */ jsx18(
8718
8795
  motion3.path,
8719
8796
  {
8720
8797
  animate: controls,
@@ -8723,7 +8800,7 @@ var FileTextIcon = forwardRef5(
8723
8800
  variants: FILE_TEXT_LINE_VARIANTS
8724
8801
  }
8725
8802
  ),
8726
- /* @__PURE__ */ jsx16(
8803
+ /* @__PURE__ */ jsx18(
8727
8804
  motion3.path,
8728
8805
  {
8729
8806
  animate: controls,
@@ -8754,7 +8831,7 @@ import {
8754
8831
  useAnimation as useAnimation4,
8755
8832
  useReducedMotion as useReducedMotion4
8756
8833
  } from "framer-motion";
8757
- import { jsx as jsx17, jsxs as jsxs11 } from "react/jsx-runtime";
8834
+ import { jsx as jsx19, jsxs as jsxs13 } from "react/jsx-runtime";
8758
8835
  var HAMMER_VARIANTS = {
8759
8836
  normal: {
8760
8837
  rotate: 0,
@@ -8837,14 +8914,14 @@ var HammerIcon = forwardRef6(
8837
8914
  },
8838
8915
  [onMouseLeave, stopAnimation]
8839
8916
  );
8840
- return /* @__PURE__ */ jsx17(
8917
+ return /* @__PURE__ */ jsx19(
8841
8918
  "div",
8842
8919
  {
8843
8920
  className: cn("inline-flex items-center justify-center", className),
8844
8921
  onMouseEnter: handleMouseEnter,
8845
8922
  onMouseLeave: handleMouseLeave,
8846
8923
  ...props,
8847
- children: /* @__PURE__ */ jsxs11(
8924
+ children: /* @__PURE__ */ jsxs13(
8848
8925
  motion4.svg,
8849
8926
  {
8850
8927
  animate: controls,
@@ -8861,9 +8938,9 @@ var HammerIcon = forwardRef6(
8861
8938
  width: size,
8862
8939
  xmlns: "http://www.w3.org/2000/svg",
8863
8940
  children: [
8864
- /* @__PURE__ */ jsx17("path", { d: "m15 12-9.373 9.373a1 1 0 0 1-3.001-3L12 9" }),
8865
- /* @__PURE__ */ jsx17("path", { d: "m18 15 4-4" }),
8866
- /* @__PURE__ */ jsx17("path", { d: "m21.5 11.5-1.914-1.914A2 2 0 0 1 19 8.172v-.344a2 2 0 0 0-.586-1.414l-1.657-1.657A6 6 0 0 0 12.516 3H9l1.243 1.243A6 6 0 0 1 12 8.485V10l2 2h1.172a2 2 0 0 1 1.414.586L18.5 14.5" })
8941
+ /* @__PURE__ */ jsx19("path", { d: "m15 12-9.373 9.373a1 1 0 0 1-3.001-3L12 9" }),
8942
+ /* @__PURE__ */ jsx19("path", { d: "m18 15 4-4" }),
8943
+ /* @__PURE__ */ jsx19("path", { d: "m21.5 11.5-1.914-1.914A2 2 0 0 1 19 8.172v-.344a2 2 0 0 0-.586-1.414l-1.657-1.657A6 6 0 0 0 12.516 3H9l1.243 1.243A6 6 0 0 1 12 8.485V10l2 2h1.172a2 2 0 0 1 1.414.586L18.5 14.5" })
8867
8944
  ]
8868
8945
  }
8869
8946
  )
@@ -8874,17 +8951,17 @@ var HammerIcon = forwardRef6(
8874
8951
  HammerIcon.displayName = "HammerIcon";
8875
8952
 
8876
8953
  // app/renderer/components/icons/ToolsLinedIcon.tsx
8877
- import { jsx as jsx18 } from "react/jsx-runtime";
8954
+ import { jsx as jsx20 } from "react/jsx-runtime";
8878
8955
  function ToolsLinedIcon(props) {
8879
8956
  "use memo";
8880
- return /* @__PURE__ */ jsx18(
8957
+ return /* @__PURE__ */ jsx20(
8881
8958
  "svg",
8882
8959
  {
8883
8960
  viewBox: "0 0 24 24",
8884
8961
  fill: "none",
8885
8962
  xmlns: "http://www.w3.org/2000/svg",
8886
8963
  ...props,
8887
- children: /* @__PURE__ */ jsx18(
8964
+ children: /* @__PURE__ */ jsx20(
8888
8965
  "path",
8889
8966
  {
8890
8967
  d: "M12.5166 2C14.3722 2.0005 16.1516 2.73783 17.4639 4.0498L19.1211 5.70703L19.3203 5.92676C19.7578 6.46048 19.9999 7.13198 20 7.82812V8.17188L20.0049 8.27051C20.0276 8.49945 20.1288 8.71482 20.293 8.87891L21.5303 10.1162C21.9083 9.9151 22.3885 9.97443 22.707 10.293C23.0976 10.6835 23.0976 11.3165 22.707 11.707L18.707 15.707C18.3165 16.0976 17.6835 16.0976 17.293 15.707C16.9744 15.3885 16.9151 14.9083 17.1162 14.5303L15.8789 13.293C15.7431 13.1571 15.5715 13.0672 15.3867 13.0264L6.33398 22.0801C6.0442 22.3699 5.69992 22.5999 5.32129 22.7568C4.94266 22.9137 4.53679 22.995 4.12695 22.9951C3.29924 22.9952 2.50538 22.6661 1.91992 22.0811C1.3344 21.4957 1.00502 20.701 1.00488 19.873C1.00487 19.0453 1.33373 18.2514 1.91895 17.666L11 8.58496V8.48535C10.9999 7.1596 10.4734 5.88777 9.53613 4.9502L8.29297 3.70703C8.00697 3.42103 7.92139 2.99086 8.07617 2.61719C8.23098 2.24359 8.59558 2 9 2H12.5166ZM3.33301 19.0801C3.12284 19.2904 3.00487 19.5757 3.00488 19.873C3.00493 20.1705 3.12359 20.4557 3.33398 20.666C3.54437 20.8763 3.82951 20.9952 4.12695 20.9951C4.27409 20.9951 4.41972 20.9655 4.55566 20.9092C4.69174 20.8528 4.81578 20.7702 4.91992 20.666L13.0859 12.5L11.499 10.9131L3.33301 19.0801ZM11.3721 4C12.4187 5.2535 12.9999 6.83919 13 8.48535V9.58594L14.4141 11H15.1719C15.9674 11.0002 16.7305 11.3164 17.293 11.8789L18.5 13.0859L20.0859 11.5L18.8789 10.293C18.3164 9.73051 18.0002 8.96738 18 8.17188V7.82812C17.9999 7.56296 17.8946 7.30857 17.707 7.12109L16.0498 5.46387C15.1124 4.52677 13.8411 4.00028 12.5156 4H11.3721Z",
@@ -8896,10 +8973,10 @@ function ToolsLinedIcon(props) {
8896
8973
  }
8897
8974
 
8898
8975
  // app/renderer/components/icons/WriteLinedIcon.tsx
8899
- import { jsx as jsx19 } from "react/jsx-runtime";
8976
+ import { jsx as jsx21 } from "react/jsx-runtime";
8900
8977
  function WriteLinedIcon(props) {
8901
8978
  "use memo";
8902
- return /* @__PURE__ */ jsx19(
8979
+ return /* @__PURE__ */ jsx21(
8903
8980
  "svg",
8904
8981
  {
8905
8982
  xmlns: "http://www.w3.org/2000/svg",
@@ -8907,7 +8984,7 @@ function WriteLinedIcon(props) {
8907
8984
  fill: "none",
8908
8985
  "aria-hidden": true,
8909
8986
  ...props,
8910
- children: /* @__PURE__ */ jsx19(
8987
+ children: /* @__PURE__ */ jsx21(
8911
8988
  "path",
8912
8989
  {
8913
8990
  fill: "currentColor",
@@ -10069,7 +10146,7 @@ function locationPaths(value) {
10069
10146
  }
10070
10147
 
10071
10148
  // shared/agentConversation/components/AgentToolCallHeader.tsx
10072
- import { jsx as jsx20, jsxs as jsxs12 } from "react/jsx-runtime";
10149
+ import { jsx as jsx22, jsxs as jsxs14 } from "react/jsx-runtime";
10073
10150
  var TOOL_ROW_ICON_SIZE = 16;
10074
10151
  function AgentToolCallHeader({
10075
10152
  call,
@@ -10080,7 +10157,7 @@ function AgentToolCallHeader({
10080
10157
  const diffStats = diffStatsForCall(call);
10081
10158
  const isActive = call.statusKind === "working" || call.statusKind === "waiting";
10082
10159
  const isFailed = call.statusKind === "failed" || isFailedStatus(call.status);
10083
- return /* @__PURE__ */ jsxs12(
10160
+ return /* @__PURE__ */ jsxs14(
10084
10161
  "div",
10085
10162
  {
10086
10163
  "data-active": isActive ? "true" : void 0,
@@ -10089,14 +10166,14 @@ function AgentToolCallHeader({
10089
10166
  isActive ? "tsh-inline-scanlight-group" : ""
10090
10167
  ].filter(Boolean).join(" "),
10091
10168
  children: [
10092
- /* @__PURE__ */ jsx20("div", { className: "workspace-agents-status-panel__detail-tool-row-icon tsh-inline-scanlight-icon", children: isFailed ? /* @__PURE__ */ jsx20(
10169
+ /* @__PURE__ */ jsx22("div", { className: "workspace-agents-status-panel__detail-tool-row-icon tsh-inline-scanlight-icon", children: isFailed ? /* @__PURE__ */ jsx22(
10093
10170
  AlertCircle,
10094
10171
  {
10095
10172
  size: TOOL_ROW_ICON_SIZE,
10096
10173
  strokeWidth: 2,
10097
10174
  "aria-hidden": "true"
10098
10175
  }
10099
- ) : isActive && isFileReadTool(call.toolName) ? /* @__PURE__ */ jsx20(
10176
+ ) : isActive && isFileReadTool(call.toolName) ? /* @__PURE__ */ jsx22(
10100
10177
  FileTextIcon,
10101
10178
  {
10102
10179
  size: TOOL_ROW_ICON_SIZE,
@@ -10105,7 +10182,7 @@ function AgentToolCallHeader({
10105
10182
  className: "text-current",
10106
10183
  "data-testid": "agent-tool-read-loading-icon"
10107
10184
  }
10108
- ) : isActive && isFileWriteTool(call.toolName) ? /* @__PURE__ */ jsx20(
10185
+ ) : isActive && isFileWriteTool(call.toolName) ? /* @__PURE__ */ jsx22(
10109
10186
  FilePenLineIcon,
10110
10187
  {
10111
10188
  size: TOOL_ROW_ICON_SIZE,
@@ -10114,7 +10191,7 @@ function AgentToolCallHeader({
10114
10191
  className: "text-current",
10115
10192
  "data-testid": "agent-tool-write-loading-icon"
10116
10193
  }
10117
- ) : isActive && isFileEditTool(call.toolName) ? /* @__PURE__ */ jsx20(
10194
+ ) : isActive && isFileEditTool(call.toolName) ? /* @__PURE__ */ jsx22(
10118
10195
  FileTextIcon,
10119
10196
  {
10120
10197
  size: TOOL_ROW_ICON_SIZE,
@@ -10123,7 +10200,7 @@ function AgentToolCallHeader({
10123
10200
  className: "text-current",
10124
10201
  "data-testid": "agent-tool-edit-loading-icon"
10125
10202
  }
10126
- ) : isActive && isStdinWriteTool(call.toolName) ? /* @__PURE__ */ jsx20(
10203
+ ) : isActive && isStdinWriteTool(call.toolName) ? /* @__PURE__ */ jsx22(
10127
10204
  WriteLinedIcon,
10128
10205
  {
10129
10206
  width: TOOL_ROW_ICON_SIZE,
@@ -10135,7 +10212,7 @@ function AgentToolCallHeader({
10135
10212
  ) : isImageGenerationToolCall({
10136
10213
  toolName: call.toolName,
10137
10214
  displayName: call.name
10138
- }) ? /* @__PURE__ */ jsx20(
10215
+ }) ? /* @__PURE__ */ jsx22(
10139
10216
  ToolNameIcon,
10140
10217
  {
10141
10218
  toolName: call.toolName ?? call.name,
@@ -10145,7 +10222,7 @@ function AgentToolCallHeader({
10145
10222
  className: "text-current",
10146
10223
  "data-testid": isActive ? "agent-tool-image-generation-loading-icon" : "agent-tool-image-generation-icon"
10147
10224
  }
10148
- ) : isWebTool(call.toolName) ? /* @__PURE__ */ jsx20(
10225
+ ) : isWebTool(call.toolName) ? /* @__PURE__ */ jsx22(
10149
10226
  ToolNameIcon,
10150
10227
  {
10151
10228
  toolName: call.toolName,
@@ -10155,7 +10232,7 @@ function AgentToolCallHeader({
10155
10232
  className: "text-current",
10156
10233
  "data-testid": isActive ? "agent-tool-web-loading-icon" : "agent-tool-web-icon"
10157
10234
  }
10158
- ) : isFileReadTool(call.toolName) ? /* @__PURE__ */ jsx20(
10235
+ ) : isFileReadTool(call.toolName) ? /* @__PURE__ */ jsx22(
10159
10236
  ToolNameIcon,
10160
10237
  {
10161
10238
  toolName: call.toolName,
@@ -10165,7 +10242,7 @@ function AgentToolCallHeader({
10165
10242
  className: "text-current",
10166
10243
  "data-testid": "agent-tool-read-icon"
10167
10244
  }
10168
- ) : call.statusKind === "working" || call.statusKind === "waiting" ? /* @__PURE__ */ jsx20(
10245
+ ) : call.statusKind === "working" || call.statusKind === "waiting" ? /* @__PURE__ */ jsx22(
10169
10246
  HammerIcon,
10170
10247
  {
10171
10248
  size: TOOL_ROW_ICON_SIZE,
@@ -10174,7 +10251,7 @@ function AgentToolCallHeader({
10174
10251
  className: "text-current",
10175
10252
  "data-testid": "agent-tool-call-loading-icon"
10176
10253
  }
10177
- ) : /* @__PURE__ */ jsx20(
10254
+ ) : /* @__PURE__ */ jsx22(
10178
10255
  ToolsLinedIcon,
10179
10256
  {
10180
10257
  width: TOOL_ROW_ICON_SIZE,
@@ -10182,7 +10259,7 @@ function AgentToolCallHeader({
10182
10259
  "aria-hidden": "true"
10183
10260
  }
10184
10261
  ) }),
10185
- /* @__PURE__ */ jsxs12(
10262
+ /* @__PURE__ */ jsxs14(
10186
10263
  "div",
10187
10264
  {
10188
10265
  className: [
@@ -10190,15 +10267,15 @@ function AgentToolCallHeader({
10190
10267
  isActive ? "tsh-inline-scanlight-line" : ""
10191
10268
  ].filter(Boolean).join(" "),
10192
10269
  children: [
10193
- /* @__PURE__ */ jsx20("strong", { className: "workspace-agents-status-panel__detail-tool-row-title", children: formatInlineTitleLabel(call.name) }),
10194
- call.status ? /* @__PURE__ */ jsx20("span", { className: "workspace-agents-status-panel__detail-tool-status", children: formatInlineStatusLabel2(call.status) }) : null,
10195
- isActive ? /* @__PURE__ */ jsx20(LoadingEllipsis3, {}) : null,
10196
- diffStats ? /* @__PURE__ */ jsxs12("span", { className: "workspace-agents-status-panel__detail-tool-diff-stats", children: [
10197
- diffStats.added > 0 ? /* @__PURE__ */ jsxs12("span", { className: "workspace-agents-status-panel__detail-tool-diff-added", children: [
10270
+ /* @__PURE__ */ jsx22("strong", { className: "workspace-agents-status-panel__detail-tool-row-title", children: formatInlineTitleLabel(call.name) }),
10271
+ call.status ? /* @__PURE__ */ jsx22("span", { className: "workspace-agents-status-panel__detail-tool-status", children: formatInlineStatusLabel2(call.status) }) : null,
10272
+ isActive ? /* @__PURE__ */ jsx22(LoadingEllipsis3, {}) : null,
10273
+ diffStats ? /* @__PURE__ */ jsxs14("span", { className: "workspace-agents-status-panel__detail-tool-diff-stats", children: [
10274
+ diffStats.added > 0 ? /* @__PURE__ */ jsxs14("span", { className: "workspace-agents-status-panel__detail-tool-diff-added", children: [
10198
10275
  "+",
10199
10276
  diffStats.added
10200
10277
  ] }) : null,
10201
- diffStats.removed > 0 ? /* @__PURE__ */ jsxs12("span", { className: "workspace-agents-status-panel__detail-tool-diff-removed", children: [
10278
+ diffStats.removed > 0 ? /* @__PURE__ */ jsxs14("span", { className: "workspace-agents-status-panel__detail-tool-diff-removed", children: [
10202
10279
  "-",
10203
10280
  diffStats.removed
10204
10281
  ] }) : null
@@ -10206,7 +10283,7 @@ function AgentToolCallHeader({
10206
10283
  ]
10207
10284
  }
10208
10285
  ),
10209
- hasDetail ? expanded ? /* @__PURE__ */ jsx20(
10286
+ hasDetail ? expanded ? /* @__PURE__ */ jsx22(
10210
10287
  ChevronDown4,
10211
10288
  {
10212
10289
  size: 12,
@@ -10214,7 +10291,7 @@ function AgentToolCallHeader({
10214
10291
  "aria-hidden": "true",
10215
10292
  className: "workspace-agents-status-panel__detail-tool-row-chevron"
10216
10293
  }
10217
- ) : /* @__PURE__ */ jsx20(
10294
+ ) : /* @__PURE__ */ jsx22(
10218
10295
  ChevronRight4,
10219
10296
  {
10220
10297
  size: 12,
@@ -10252,10 +10329,10 @@ function formatInlineTitleLabel(label) {
10252
10329
  }
10253
10330
  function LoadingEllipsis3() {
10254
10331
  "use memo";
10255
- return /* @__PURE__ */ jsxs12("span", { className: "tsh-inline-loading-ellipsis", "aria-hidden": "true", children: [
10256
- /* @__PURE__ */ jsx20("span", {}),
10257
- /* @__PURE__ */ jsx20("span", {}),
10258
- /* @__PURE__ */ jsx20("span", {})
10332
+ return /* @__PURE__ */ jsxs14("span", { className: "tsh-inline-loading-ellipsis", "aria-hidden": "true", children: [
10333
+ /* @__PURE__ */ jsx22("span", {}),
10334
+ /* @__PURE__ */ jsx22("span", {}),
10335
+ /* @__PURE__ */ jsx22("span", {})
10259
10336
  ] });
10260
10337
  }
10261
10338
  function diffStatsForCall(call) {
@@ -10325,10 +10402,10 @@ function normalizeToolName8(value) {
10325
10402
  }
10326
10403
 
10327
10404
  // shared/agentConversation/components/tool-renderers/code/AgentCodeBlock.tsx
10328
- import { useMemo as useMemo2, useState as useState7 } from "react";
10405
+ import { useMemo as useMemo2, useState as useState8 } from "react";
10329
10406
 
10330
10407
  // shared/agentConversation/components/tool-renderers/AgentPathTailLabel.tsx
10331
- import { jsx as jsx21, jsxs as jsxs13 } from "react/jsx-runtime";
10408
+ import { jsx as jsx23, jsxs as jsxs15 } from "react/jsx-runtime";
10332
10409
  function AgentPathTailLabel({
10333
10410
  path,
10334
10411
  fallback,
@@ -10338,23 +10415,23 @@ function AgentPathTailLabel({
10338
10415
  const label = path?.trim() || fallback;
10339
10416
  const parts = splitPathTail(label);
10340
10417
  if (!parts) {
10341
- return /* @__PURE__ */ jsx21(
10418
+ return /* @__PURE__ */ jsx23(
10342
10419
  "span",
10343
10420
  {
10344
10421
  className: `agent-path-tail-label ${className ?? ""}`,
10345
10422
  title: path ?? void 0,
10346
- children: /* @__PURE__ */ jsx21("span", { className: "agent-path-tail-label__file", children: label })
10423
+ children: /* @__PURE__ */ jsx23("span", { className: "agent-path-tail-label__file", children: label })
10347
10424
  }
10348
10425
  );
10349
10426
  }
10350
- return /* @__PURE__ */ jsxs13(
10427
+ return /* @__PURE__ */ jsxs15(
10351
10428
  "span",
10352
10429
  {
10353
10430
  className: `agent-path-tail-label ${className ?? ""}`,
10354
10431
  title: path ?? void 0,
10355
10432
  children: [
10356
- /* @__PURE__ */ jsx21("span", { className: "agent-path-tail-label__directory", children: parts.directory }),
10357
- /* @__PURE__ */ jsx21("span", { className: "agent-path-tail-label__file", children: parts.fileName })
10433
+ /* @__PURE__ */ jsx23("span", { className: "agent-path-tail-label__directory", children: parts.directory }),
10434
+ /* @__PURE__ */ jsx23("span", { className: "agent-path-tail-label__file", children: parts.fileName })
10358
10435
  ]
10359
10436
  }
10360
10437
  );
@@ -10373,7 +10450,7 @@ function splitPathTail(value) {
10373
10450
  }
10374
10451
 
10375
10452
  // shared/agentConversation/components/tool-renderers/code/AgentCodeBlock.tsx
10376
- import { Fragment as Fragment3, jsx as jsx22, jsxs as jsxs14 } from "react/jsx-runtime";
10453
+ import { Fragment as Fragment3, jsx as jsx24, jsxs as jsxs16 } from "react/jsx-runtime";
10377
10454
  var MAX_VISIBLE_LINES = 120;
10378
10455
  function AgentCodeBlock({
10379
10456
  path,
@@ -10384,7 +10461,7 @@ function AgentCodeBlock({
10384
10461
  flat = false
10385
10462
  }) {
10386
10463
  "use memo";
10387
- const [expanded, setExpanded] = useState7(false);
10464
+ const [expanded, setExpanded] = useState8(false);
10388
10465
  const normalized = content.trimEnd();
10389
10466
  const lines = useMemo2(
10390
10467
  () => normalized ? normalized.split("\n") : [],
@@ -10408,7 +10485,7 @@ function AgentCodeBlock({
10408
10485
  if (!normalized) {
10409
10486
  return null;
10410
10487
  }
10411
- const disclosureButton = collapsible && lineCount > MAX_VISIBLE_LINES ? /* @__PURE__ */ jsx22(
10488
+ const disclosureButton = collapsible && lineCount > MAX_VISIBLE_LINES ? /* @__PURE__ */ jsx24(
10412
10489
  "button",
10413
10490
  {
10414
10491
  type: "button",
@@ -10419,13 +10496,13 @@ function AgentCodeBlock({
10419
10496
  })
10420
10497
  }
10421
10498
  ) : null;
10422
- return /* @__PURE__ */ jsx22(
10499
+ return /* @__PURE__ */ jsx24(
10423
10500
  "div",
10424
10501
  {
10425
10502
  className: `workspace-agents-status-panel__detail-tool-code overflow-hidden rounded-[8px] border border-[var(--line-2)] bg-[var(--background-panel)] ${flat ? "workspace-agents-status-panel__detail-tool-code--flat" : ""}`,
10426
- children: flat ? /* @__PURE__ */ jsxs14(Fragment3, { children: [
10427
- showHeader ? /* @__PURE__ */ jsxs14("div", { className: "flex items-center justify-between gap-3 border-b border-[var(--line-2)] bg-[var(--transparency-block)] px-3 py-1.5 text-[11px]", children: [
10428
- /* @__PURE__ */ jsx22(
10503
+ children: flat ? /* @__PURE__ */ jsxs16(Fragment3, { children: [
10504
+ showHeader ? /* @__PURE__ */ jsxs16("div", { className: "flex items-center justify-between gap-3 border-b border-[var(--line-2)] bg-[var(--transparency-block)] px-3 py-1.5 text-[11px]", children: [
10505
+ /* @__PURE__ */ jsx24(
10429
10506
  "span",
10430
10507
  {
10431
10508
  className: "truncate font-[var(--tsh-font-mono)] text-[var(--text-secondary)]",
@@ -10433,28 +10510,28 @@ function AgentCodeBlock({
10433
10510
  children: fileLabel
10434
10511
  }
10435
10512
  ),
10436
- /* @__PURE__ */ jsxs14("span", { className: "shrink-0 font-semibold text-[var(--state-success)]", children: [
10513
+ /* @__PURE__ */ jsxs16("span", { className: "shrink-0 font-semibold text-[var(--state-success)]", children: [
10437
10514
  "+",
10438
10515
  addedCount
10439
10516
  ] })
10440
10517
  ] }) : null,
10441
- /* @__PURE__ */ jsxs14("div", { className: "workspace-agents-status-panel__detail-scroll-region max-h-[240px] overflow-auto bg-[var(--background-panel)]", children: [
10442
- visibleLines.map((line) => /* @__PURE__ */ jsxs14(
10518
+ /* @__PURE__ */ jsxs16("div", { className: "workspace-agents-status-panel__detail-scroll-region max-h-[240px] overflow-auto bg-[var(--background-panel)]", children: [
10519
+ visibleLines.map((line) => /* @__PURE__ */ jsxs16(
10443
10520
  "div",
10444
10521
  {
10445
10522
  className: "grid grid-cols-[56px_minmax(0,1fr)] border-l-[3px] border-l-[var(--state-success)] font-[var(--tsh-font-mono)] text-[11px] leading-6",
10446
10523
  children: [
10447
- /* @__PURE__ */ jsx22("div", { className: "select-none px-2.5 text-right text-[color:color-mix(in_srgb,var(--state-success)_90%,transparent)]", children: line.lineNumber }),
10448
- /* @__PURE__ */ jsx22("pre", { className: "m-0 overflow-x-auto px-3 py-0 text-[var(--text-primary)]", children: /* @__PURE__ */ jsx22("code", { children: line.line || " " }) })
10524
+ /* @__PURE__ */ jsx24("div", { className: "select-none px-2.5 text-right text-[color:color-mix(in_srgb,var(--state-success)_90%,transparent)]", children: line.lineNumber }),
10525
+ /* @__PURE__ */ jsx24("pre", { className: "m-0 overflow-x-auto px-3 py-0 text-[var(--text-primary)]", children: /* @__PURE__ */ jsx24("code", { children: line.line || " " }) })
10449
10526
  ]
10450
10527
  },
10451
10528
  line.key
10452
10529
  )),
10453
10530
  disclosureButton
10454
10531
  ] })
10455
- ] }) : /* @__PURE__ */ jsxs14(Fragment3, { children: [
10456
- showHeader ? /* @__PURE__ */ jsxs14("div", { className: "flex items-center justify-between gap-3 border-b border-[var(--line-2)] bg-[var(--transparency-block)] px-3 py-1.5 text-[11px] text-[var(--text-secondary)]", children: [
10457
- /* @__PURE__ */ jsx22(
10532
+ ] }) : /* @__PURE__ */ jsxs16(Fragment3, { children: [
10533
+ showHeader ? /* @__PURE__ */ jsxs16("div", { className: "flex items-center justify-between gap-3 border-b border-[var(--line-2)] bg-[var(--transparency-block)] px-3 py-1.5 text-[11px] text-[var(--text-secondary)]", children: [
10534
+ /* @__PURE__ */ jsx24(
10458
10535
  AgentPathTailLabel,
10459
10536
  {
10460
10537
  path,
@@ -10462,13 +10539,13 @@ function AgentCodeBlock({
10462
10539
  className: "font-[var(--tsh-font-mono)]"
10463
10540
  }
10464
10541
  ),
10465
- /* @__PURE__ */ jsxs14("span", { className: "shrink-0", children: [
10542
+ /* @__PURE__ */ jsxs16("span", { className: "shrink-0", children: [
10466
10543
  language ? `${language} \xB7 ` : "",
10467
10544
  lineCount,
10468
10545
  " lines"
10469
10546
  ] })
10470
10547
  ] }) : null,
10471
- /* @__PURE__ */ jsx22("pre", { className: "workspace-agents-status-panel__detail-scroll-region max-h-[200px] overflow-auto px-3 py-2 text-[11px] leading-5 text-[var(--text-primary)]", children: /* @__PURE__ */ jsx22("code", { children: visibleContent }) }),
10548
+ /* @__PURE__ */ jsx24("pre", { className: "workspace-agents-status-panel__detail-scroll-region max-h-[200px] overflow-auto px-3 py-2 text-[11px] leading-5 text-[var(--text-primary)]", children: /* @__PURE__ */ jsx24("code", { children: visibleContent }) }),
10472
10549
  disclosureButton
10473
10550
  ] })
10474
10551
  }
@@ -10502,7 +10579,7 @@ import {
10502
10579
  useAnimation as useAnimation5,
10503
10580
  useReducedMotion as useReducedMotion5
10504
10581
  } from "framer-motion";
10505
- import { jsx as jsx23, jsxs as jsxs15 } from "react/jsx-runtime";
10582
+ import { jsx as jsx25, jsxs as jsxs17 } from "react/jsx-runtime";
10506
10583
  var ATOM_ICON_ANIMATION_DURATION = 0.75;
10507
10584
  var ATOM_ICON_REPEAT_DELAY = 1.5;
10508
10585
  var PATH_VARIANTS = {
@@ -10594,14 +10671,14 @@ var AtomIcon = forwardRef7(
10594
10671
  },
10595
10672
  [onMouseLeave, stopAnimation]
10596
10673
  );
10597
- return /* @__PURE__ */ jsx23(
10674
+ return /* @__PURE__ */ jsx25(
10598
10675
  "div",
10599
10676
  {
10600
10677
  className: cn("inline-flex items-center justify-center", className),
10601
10678
  onMouseEnter: handleMouseEnter,
10602
10679
  onMouseLeave: handleMouseLeave,
10603
10680
  ...props,
10604
- children: /* @__PURE__ */ jsxs15(
10681
+ children: /* @__PURE__ */ jsxs17(
10605
10682
  "svg",
10606
10683
  {
10607
10684
  fill: "none",
@@ -10614,7 +10691,7 @@ var AtomIcon = forwardRef7(
10614
10691
  width: size,
10615
10692
  xmlns: "http://www.w3.org/2000/svg",
10616
10693
  children: [
10617
- /* @__PURE__ */ jsx23(
10694
+ /* @__PURE__ */ jsx25(
10618
10695
  motion5.circle,
10619
10696
  {
10620
10697
  animate: controls,
@@ -10625,7 +10702,7 @@ var AtomIcon = forwardRef7(
10625
10702
  variants: PATH_VARIANTS
10626
10703
  }
10627
10704
  ),
10628
- /* @__PURE__ */ jsx23(
10705
+ /* @__PURE__ */ jsx25(
10629
10706
  motion5.path,
10630
10707
  {
10631
10708
  animate: controls,
@@ -10634,7 +10711,7 @@ var AtomIcon = forwardRef7(
10634
10711
  variants: PATH_VARIANTS
10635
10712
  }
10636
10713
  ),
10637
- /* @__PURE__ */ jsx23(
10714
+ /* @__PURE__ */ jsx25(
10638
10715
  motion5.path,
10639
10716
  {
10640
10717
  animate: controls,
@@ -10653,7 +10730,7 @@ var AtomIcon = forwardRef7(
10653
10730
  AtomIcon.displayName = "AtomIcon";
10654
10731
 
10655
10732
  // shared/agentConversation/components/tool-renderers/file-diff/AgentMonacoDiffViewer.tsx
10656
- import { jsx as jsx24, jsxs as jsxs16 } from "react/jsx-runtime";
10733
+ import { jsx as jsx26, jsxs as jsxs18 } from "react/jsx-runtime";
10657
10734
  var MonacoDiffEditor = lazy(async () => {
10658
10735
  const module = await import("@monaco-editor/react");
10659
10736
  return { default: module.DiffEditor };
@@ -10666,17 +10743,17 @@ function AgentMonacoDiffViewer({
10666
10743
  showHeader = true
10667
10744
  }) {
10668
10745
  "use memo";
10669
- return /* @__PURE__ */ jsxs16(
10746
+ return /* @__PURE__ */ jsxs18(
10670
10747
  "div",
10671
10748
  {
10672
10749
  className: `overflow-hidden rounded-[8px] border border-[var(--line-2)] bg-[var(--background-panel)] ${flat ? "workspace-agents-status-panel__detail-tool-monaco--flat" : ""}`,
10673
10750
  children: [
10674
- showHeader ? /* @__PURE__ */ jsx24(
10751
+ showHeader ? /* @__PURE__ */ jsx26(
10675
10752
  "div",
10676
10753
  {
10677
10754
  className: "border-b border-[var(--line-2)] bg-[var(--transparency-block)] px-3 py-1.5 text-[11px] text-[var(--text-secondary)]",
10678
10755
  "data-agent-diff-header": "true",
10679
- children: /* @__PURE__ */ jsx24(
10756
+ children: /* @__PURE__ */ jsx26(
10680
10757
  AgentPathTailLabel,
10681
10758
  {
10682
10759
  path,
@@ -10686,11 +10763,11 @@ function AgentMonacoDiffViewer({
10686
10763
  )
10687
10764
  }
10688
10765
  ) : null,
10689
- /* @__PURE__ */ jsx24("div", { className: "h-[220px] bg-[var(--background-panel)]", children: /* @__PURE__ */ jsx24(
10766
+ /* @__PURE__ */ jsx26("div", { className: "h-[220px] bg-[var(--background-panel)]", children: /* @__PURE__ */ jsx26(
10690
10767
  Suspense,
10691
10768
  {
10692
- fallback: /* @__PURE__ */ jsxs16("div", { className: "flex items-center gap-1.5 px-3 py-2.5 text-[11px] text-[var(--text-secondary)]", children: [
10693
- /* @__PURE__ */ jsx24(
10769
+ fallback: /* @__PURE__ */ jsxs18("div", { className: "flex items-center gap-1.5 px-3 py-2.5 text-[11px] text-[var(--text-secondary)]", children: [
10770
+ /* @__PURE__ */ jsx26(
10694
10771
  AtomIcon,
10695
10772
  {
10696
10773
  size: 14,
@@ -10699,9 +10776,9 @@ function AgentMonacoDiffViewer({
10699
10776
  className: "shrink-0"
10700
10777
  }
10701
10778
  ),
10702
- /* @__PURE__ */ jsx24("span", { children: translate("agentHost.agentTool.details.loadingDiff") })
10779
+ /* @__PURE__ */ jsx26("span", { children: translate("agentHost.agentTool.details.loadingDiff") })
10703
10780
  ] }),
10704
- children: /* @__PURE__ */ jsx24(
10781
+ children: /* @__PURE__ */ jsx26(
10705
10782
  MonacoDiffEditor,
10706
10783
  {
10707
10784
  original: oldValue,
@@ -10744,10 +10821,10 @@ function languageForPath2(path) {
10744
10821
  }
10745
10822
 
10746
10823
  // shared/agentConversation/components/tool-renderers/file-diff/AgentUnifiedPatchViewer.tsx
10747
- import { useMemo as useMemo3, useState as useState8 } from "react";
10824
+ import { useMemo as useMemo3, useState as useState9 } from "react";
10748
10825
 
10749
10826
  // shared/agentConversation/components/tool-renderers/AgentToolScrollArea.tsx
10750
- import { jsx as jsx25 } from "react/jsx-runtime";
10827
+ import { jsx as jsx27 } from "react/jsx-runtime";
10751
10828
  function AgentToolScrollArea({
10752
10829
  children,
10753
10830
  className,
@@ -10756,7 +10833,7 @@ function AgentToolScrollArea({
10756
10833
  ...props
10757
10834
  }) {
10758
10835
  "use memo";
10759
- return /* @__PURE__ */ jsx25(
10836
+ return /* @__PURE__ */ jsx27(
10760
10837
  CustomScrollArea,
10761
10838
  {
10762
10839
  className: cn(
@@ -10860,7 +10937,7 @@ function parseAgentUnifiedDiffStats(diffText) {
10860
10937
  }
10861
10938
 
10862
10939
  // shared/agentConversation/components/tool-renderers/file-diff/AgentUnifiedPatchViewer.tsx
10863
- import { Fragment as Fragment4, jsx as jsx26, jsxs as jsxs17 } from "react/jsx-runtime";
10940
+ import { Fragment as Fragment4, jsx as jsx28, jsxs as jsxs19 } from "react/jsx-runtime";
10864
10941
  var MAX_VISIBLE_LINES2 = 120;
10865
10942
  function AgentUnifiedPatchViewer({
10866
10943
  path,
@@ -10871,7 +10948,7 @@ function AgentUnifiedPatchViewer({
10871
10948
  flat = false
10872
10949
  }) {
10873
10950
  "use memo";
10874
- const [expanded, setExpanded] = useState8(false);
10951
+ const [expanded, setExpanded] = useState9(false);
10875
10952
  const normalized = diffText.trimEnd();
10876
10953
  const lines = useMemo3(
10877
10954
  () => normalized ? visiblePatchLines(normalized, compact) : [],
@@ -10906,7 +10983,7 @@ function AgentUnifiedPatchViewer({
10906
10983
  if (!normalized) {
10907
10984
  return null;
10908
10985
  }
10909
- const disclosureButton = collapsible && lines.length > MAX_VISIBLE_LINES2 ? /* @__PURE__ */ jsx26(
10986
+ const disclosureButton = collapsible && lines.length > MAX_VISIBLE_LINES2 ? /* @__PURE__ */ jsx28(
10910
10987
  "button",
10911
10988
  {
10912
10989
  type: "button",
@@ -10917,18 +10994,18 @@ function AgentUnifiedPatchViewer({
10917
10994
  })
10918
10995
  }
10919
10996
  ) : null;
10920
- return /* @__PURE__ */ jsx26(
10997
+ return /* @__PURE__ */ jsx28(
10921
10998
  "div",
10922
10999
  {
10923
11000
  className: `workspace-agents-status-panel__detail-tool-diff overflow-hidden rounded-[8px] border border-[var(--line-2)] bg-[var(--background-panel)] ${flat ? "workspace-agents-status-panel__detail-tool-diff--flat" : ""}`,
10924
- children: flat ? /* @__PURE__ */ jsxs17(Fragment4, { children: [
10925
- showHeader ? /* @__PURE__ */ jsxs17(
11001
+ children: flat ? /* @__PURE__ */ jsxs19(Fragment4, { children: [
11002
+ showHeader ? /* @__PURE__ */ jsxs19(
10926
11003
  "div",
10927
11004
  {
10928
11005
  className: "flex items-center justify-between gap-3 border-b border-[var(--line-2)] bg-[var(--transparency-block)] px-3 py-1.5 text-[11px]",
10929
11006
  "data-agent-diff-header": "true",
10930
11007
  children: [
10931
- /* @__PURE__ */ jsx26(
11008
+ /* @__PURE__ */ jsx28(
10932
11009
  "span",
10933
11010
  {
10934
11011
  className: "truncate font-[var(--tsh-font-mono)] text-[var(--text-secondary)]",
@@ -10936,12 +11013,12 @@ function AgentUnifiedPatchViewer({
10936
11013
  children: fileLabel
10937
11014
  }
10938
11015
  ),
10939
- /* @__PURE__ */ jsxs17("span", { className: "inline-flex items-center gap-2 text-[11px] font-semibold", children: [
10940
- /* @__PURE__ */ jsxs17("span", { className: "text-[var(--state-success)]", children: [
11016
+ /* @__PURE__ */ jsxs19("span", { className: "inline-flex items-center gap-2 text-[11px] font-semibold", children: [
11017
+ /* @__PURE__ */ jsxs19("span", { className: "text-[var(--state-success)]", children: [
10941
11018
  "+",
10942
11019
  stats.added
10943
11020
  ] }),
10944
- /* @__PURE__ */ jsxs17("span", { className: "text-[var(--state-danger)]", children: [
11021
+ /* @__PURE__ */ jsxs19("span", { className: "text-[var(--state-danger)]", children: [
10945
11022
  "-",
10946
11023
  stats.removed
10947
11024
  ] })
@@ -10949,20 +11026,20 @@ function AgentUnifiedPatchViewer({
10949
11026
  ]
10950
11027
  }
10951
11028
  ) : null,
10952
- /* @__PURE__ */ jsxs17(AgentToolScrollArea, { viewportClassName: "agent-tool-diff__viewport", children: [
10953
- visibleDiffLines.map(({ key, line }) => /* @__PURE__ */ jsxs17("div", { className: flatLineClassName(line.kind), children: [
10954
- /* @__PURE__ */ jsx26("div", { className: "select-none px-2.5 text-right text-[var(--text-tertiary)]", children: line.newLineNumber ?? line.oldLineNumber ?? "" }),
10955
- /* @__PURE__ */ jsx26("pre", { className: "m-0 overflow-x-auto px-3 py-0 text-[var(--text-primary)]", children: /* @__PURE__ */ jsx26("code", { children: line.text || " " }) })
11029
+ /* @__PURE__ */ jsxs19(AgentToolScrollArea, { viewportClassName: "agent-tool-diff__viewport", children: [
11030
+ visibleDiffLines.map(({ key, line }) => /* @__PURE__ */ jsxs19("div", { className: flatLineClassName(line.kind), children: [
11031
+ /* @__PURE__ */ jsx28("div", { className: "select-none px-2.5 text-right text-[var(--text-tertiary)]", children: line.newLineNumber ?? line.oldLineNumber ?? "" }),
11032
+ /* @__PURE__ */ jsx28("pre", { className: "m-0 overflow-x-auto px-3 py-0 text-[var(--text-primary)]", children: /* @__PURE__ */ jsx28("code", { children: line.text || " " }) })
10956
11033
  ] }, key)),
10957
11034
  disclosureButton
10958
11035
  ] })
10959
- ] }) : /* @__PURE__ */ jsxs17(Fragment4, { children: [
10960
- showHeader ? /* @__PURE__ */ jsx26(
11036
+ ] }) : /* @__PURE__ */ jsxs19(Fragment4, { children: [
11037
+ showHeader ? /* @__PURE__ */ jsx28(
10961
11038
  "div",
10962
11039
  {
10963
11040
  className: "border-b border-[var(--line-2)] bg-[var(--transparency-block)] px-3 py-1.5 text-[11px] text-[var(--text-secondary)]",
10964
11041
  "data-agent-diff-header": "true",
10965
- children: /* @__PURE__ */ jsx26(
11042
+ children: /* @__PURE__ */ jsx28(
10966
11043
  AgentPathTailLabel,
10967
11044
  {
10968
11045
  path,
@@ -10972,7 +11049,7 @@ function AgentUnifiedPatchViewer({
10972
11049
  )
10973
11050
  }
10974
11051
  ) : null,
10975
- /* @__PURE__ */ jsx26(AgentToolScrollArea, { viewportClassName: "agent-tool-diff__viewport px-4 py-3 text-[11px] leading-5", children: visibleLines.map(({ key, line }) => /* @__PURE__ */ jsx26("div", { className: lineClassName(line), children: line || " " }, key)) }),
11052
+ /* @__PURE__ */ jsx28(AgentToolScrollArea, { viewportClassName: "agent-tool-diff__viewport px-4 py-3 text-[11px] leading-5", children: visibleLines.map(({ key, line }) => /* @__PURE__ */ jsx28("div", { className: lineClassName(line), children: line || " " }, key)) }),
10976
11053
  disclosureButton
10977
11054
  ] })
10978
11055
  }
@@ -11029,12 +11106,12 @@ function lineClassName(line) {
11029
11106
  import {
11030
11107
  createContext,
11031
11108
  useContext,
11032
- useState as useState9
11109
+ useState as useState10
11033
11110
  } from "react";
11034
11111
  import { ChevronDown as ChevronDown5, ChevronRight as ChevronRight5 } from "lucide-react";
11035
11112
 
11036
11113
  // shared/agentConversation/components/tool-renderers/AgentReadContent.tsx
11037
- import { jsx as jsx27, jsxs as jsxs18 } from "react/jsx-runtime";
11114
+ import { jsx as jsx29, jsxs as jsxs20 } from "react/jsx-runtime";
11038
11115
  function AgentReadContent({
11039
11116
  call
11040
11117
  }) {
@@ -11044,15 +11121,15 @@ function AgentReadContent({
11044
11121
  const outputText = stringValue10(call.output?.text) ?? stringValue10(call.output?.output) ?? contentText2(call.output?.content) ?? stringValue10(call.output?.aggregated_output) ?? stringValue10(call.output?.formatted_output) ?? stringValue10(call.output?.stdout) ?? (!file ? call.summary.trim() || null : null);
11045
11122
  const fileLineRange = fileRange(file);
11046
11123
  const fileTotalLines = numericValue(file?.totalLines);
11047
- return /* @__PURE__ */ jsx27("div", { className: "workspace-agents-status-panel__detail-tool-body workspace-agents-status-panel__detail-tool-body--plain", children: outputText ? /* @__PURE__ */ jsx27(
11124
+ return /* @__PURE__ */ jsx29("div", { className: "workspace-agents-status-panel__detail-tool-body workspace-agents-status-panel__detail-tool-body--plain", children: outputText ? /* @__PURE__ */ jsx29(
11048
11125
  AgentCodeBlock,
11049
11126
  {
11050
11127
  path,
11051
11128
  content: outputText,
11052
11129
  language: languageForPath3(path)
11053
11130
  }
11054
- ) : path || fileLineRange || fileTotalLines !== null ? /* @__PURE__ */ jsxs18("div", { className: "rounded-[8px] border border-[var(--line-2)] bg-[var(--background-panel)] px-3 py-2", children: [
11055
- path ? /* @__PURE__ */ jsx27(
11131
+ ) : path || fileLineRange || fileTotalLines !== null ? /* @__PURE__ */ jsxs20("div", { className: "rounded-[8px] border border-[var(--line-2)] bg-[var(--background-panel)] px-3 py-2", children: [
11132
+ path ? /* @__PURE__ */ jsx29(
11056
11133
  AgentPathTailLabel,
11057
11134
  {
11058
11135
  path,
@@ -11060,7 +11137,7 @@ function AgentReadContent({
11060
11137
  className: "font-[var(--tsh-font-mono)] text-[11px] text-[var(--text-secondary)]"
11061
11138
  }
11062
11139
  ) : null,
11063
- fileLineRange || fileTotalLines !== null ? /* @__PURE__ */ jsx27("div", { className: "mt-1 text-[11px] text-[var(--text-secondary)]", children: [
11140
+ fileLineRange || fileTotalLines !== null ? /* @__PURE__ */ jsx29("div", { className: "mt-1 text-[11px] text-[var(--text-secondary)]", children: [
11064
11141
  fileLineRange,
11065
11142
  fileTotalLines !== null ? `${fileTotalLines} lines` : null
11066
11143
  ].filter((value) => Boolean(value)).join(" \xB7 ") }) : null
@@ -11124,14 +11201,14 @@ function languageForPath3(path) {
11124
11201
  }
11125
11202
 
11126
11203
  // shared/agentConversation/components/tool-renderers/agentToolContentShared.tsx
11127
- import { jsx as jsx28, jsxs as jsxs19 } from "react/jsx-runtime";
11204
+ import { jsx as jsx30, jsxs as jsxs21 } from "react/jsx-runtime";
11128
11205
  var AgentToolPreviewModeContext = createContext(false);
11129
11206
  function AgentToolPreviewModeProvider({
11130
11207
  children,
11131
11208
  previewMode
11132
11209
  }) {
11133
11210
  "use memo";
11134
- return /* @__PURE__ */ jsx28(AgentToolPreviewModeContext.Provider, { value: previewMode, children });
11211
+ return /* @__PURE__ */ jsx30(AgentToolPreviewModeContext.Provider, { value: previewMode, children });
11135
11212
  }
11136
11213
  function ToolSection({
11137
11214
  title,
@@ -11141,8 +11218,8 @@ function ToolSection({
11141
11218
  if (!children) {
11142
11219
  return null;
11143
11220
  }
11144
- return /* @__PURE__ */ jsxs19("section", { className: "workspace-agents-status-panel__detail-tool-section-block", children: [
11145
- /* @__PURE__ */ jsx28("div", { className: "workspace-agents-status-panel__detail-tool-section-title", children: title }),
11221
+ return /* @__PURE__ */ jsxs21("section", { className: "workspace-agents-status-panel__detail-tool-section-block", children: [
11222
+ /* @__PURE__ */ jsx30("div", { className: "workspace-agents-status-panel__detail-tool-section-title", children: title }),
11146
11223
  children
11147
11224
  ] });
11148
11225
  }
@@ -11159,7 +11236,7 @@ function ToolMarkdownBlock({
11159
11236
  if (!normalized) {
11160
11237
  return null;
11161
11238
  }
11162
- return /* @__PURE__ */ jsx28(
11239
+ return /* @__PURE__ */ jsx30(
11163
11240
  AgentMessageMarkdown,
11164
11241
  {
11165
11242
  content: normalized,
@@ -11222,8 +11299,8 @@ function AgentDefaultToolContent({
11222
11299
  if (sections.length === 0 && !rawPayload) {
11223
11300
  return null;
11224
11301
  }
11225
- return /* @__PURE__ */ jsxs19("div", { className: "workspace-agents-status-panel__detail-tool-body", children: [
11226
- sections.map((section) => /* @__PURE__ */ jsx28(ToolSection, { title: section.title, children: /* @__PURE__ */ jsx28(
11302
+ return /* @__PURE__ */ jsxs21("div", { className: "workspace-agents-status-panel__detail-tool-body", children: [
11303
+ sections.map((section) => /* @__PURE__ */ jsx30(ToolSection, { title: section.title, children: /* @__PURE__ */ jsx30(
11227
11304
  ToolMarkdownBlock,
11228
11305
  {
11229
11306
  content: section.content,
@@ -11231,7 +11308,7 @@ function AgentDefaultToolContent({
11231
11308
  collapsible: section.collapsible
11232
11309
  }
11233
11310
  ) }, section.key)),
11234
- /* @__PURE__ */ jsx28(RawPayloadSection, { payload: rawPayload })
11311
+ /* @__PURE__ */ jsx30(RawPayloadSection, { payload: rawPayload })
11235
11312
  ] });
11236
11313
  }
11237
11314
  function hasAgentToolContent(call) {
@@ -11353,13 +11430,13 @@ function RawPayloadSection({
11353
11430
  payload
11354
11431
  }) {
11355
11432
  "use memo";
11356
- const [expanded, setExpanded] = useState9(false);
11433
+ const [expanded, setExpanded] = useState10(false);
11357
11434
  const rawJson = rawPayloadJson(payload);
11358
11435
  if (!rawJson) {
11359
11436
  return null;
11360
11437
  }
11361
- return /* @__PURE__ */ jsxs19("div", { className: "workspace-agents-status-panel__detail-tool-raw", children: [
11362
- /* @__PURE__ */ jsxs19(
11438
+ return /* @__PURE__ */ jsxs21("div", { className: "workspace-agents-status-panel__detail-tool-raw", children: [
11439
+ /* @__PURE__ */ jsxs21(
11363
11440
  "button",
11364
11441
  {
11365
11442
  type: "button",
@@ -11367,8 +11444,8 @@ function RawPayloadSection({
11367
11444
  "aria-expanded": expanded,
11368
11445
  onClick: () => setExpanded((value) => !value),
11369
11446
  children: [
11370
- /* @__PURE__ */ jsx28("span", { children: translate("agentHost.agentTool.details.rawPayload") }),
11371
- expanded ? /* @__PURE__ */ jsx28(
11447
+ /* @__PURE__ */ jsx30("span", { children: translate("agentHost.agentTool.details.rawPayload") }),
11448
+ expanded ? /* @__PURE__ */ jsx30(
11372
11449
  ChevronDown5,
11373
11450
  {
11374
11451
  size: 12,
@@ -11376,7 +11453,7 @@ function RawPayloadSection({
11376
11453
  "aria-hidden": "true",
11377
11454
  className: "shrink-0 opacity-0 transition-opacity duration-150 group-hover/raw-payload:opacity-100 group-focus-visible/raw-payload:opacity-100"
11378
11455
  }
11379
- ) : /* @__PURE__ */ jsx28(
11456
+ ) : /* @__PURE__ */ jsx30(
11380
11457
  ChevronRight5,
11381
11458
  {
11382
11459
  size: 12,
@@ -11388,7 +11465,7 @@ function RawPayloadSection({
11388
11465
  ]
11389
11466
  }
11390
11467
  ),
11391
- /* @__PURE__ */ jsx28(CollapsibleReveal, { expanded, preMountOnIdle: true, children: /* @__PURE__ */ jsx28("pre", { className: "workspace-agents-status-panel__detail-scroll-region mt-2 max-h-[320px] overflow-auto rounded-[8px] border border-[var(--line-2)] bg-[var(--transparency-block)] px-3 py-2 text-[11px] leading-[1.45] text-[var(--text-secondary)]", children: /* @__PURE__ */ jsx28("code", { children: rawJson }) }) })
11468
+ /* @__PURE__ */ jsx30(CollapsibleReveal, { expanded, preMountOnIdle: true, children: /* @__PURE__ */ jsx30("pre", { className: "workspace-agents-status-panel__detail-scroll-region mt-2 max-h-[320px] overflow-auto rounded-[8px] border border-[var(--line-2)] bg-[var(--transparency-block)] px-3 py-2 text-[11px] leading-[1.45] text-[var(--text-secondary)]", children: /* @__PURE__ */ jsx30("code", { children: rawJson }) }) })
11392
11469
  ] });
11393
11470
  }
11394
11471
  function rawPayloadFromCall(call) {
@@ -11436,7 +11513,7 @@ function normalizeToolSectionContent(value) {
11436
11513
  }
11437
11514
 
11438
11515
  // shared/agentConversation/components/tool-renderers/AgentEditContent.tsx
11439
- import { jsx as jsx29, jsxs as jsxs20 } from "react/jsx-runtime";
11516
+ import { jsx as jsx31, jsxs as jsxs22 } from "react/jsx-runtime";
11440
11517
  function AgentEditContent({
11441
11518
  call,
11442
11519
  onLinkClick
@@ -11456,9 +11533,9 @@ function AgentEditContent({
11456
11533
  if (!hasRenderableContent) {
11457
11534
  return null;
11458
11535
  }
11459
- return /* @__PURE__ */ jsxs20("div", { className: "workspace-agents-status-panel__detail-tool-body workspace-agents-status-panel__detail-tool-body--flat", children: [
11460
- path && files.length === 0 ? /* @__PURE__ */ jsx29(ToolMarkdownBlock, { content: path, onLinkClick }) : null,
11461
- patchFiles.map((candidate) => /* @__PURE__ */ jsx29(
11536
+ return /* @__PURE__ */ jsxs22("div", { className: "workspace-agents-status-panel__detail-tool-body workspace-agents-status-panel__detail-tool-body--flat", children: [
11537
+ path && files.length === 0 ? /* @__PURE__ */ jsx31(ToolMarkdownBlock, { content: path, onLinkClick }) : null,
11538
+ patchFiles.map((candidate) => /* @__PURE__ */ jsx31(
11462
11539
  AgentUnifiedPatchViewer,
11463
11540
  {
11464
11541
  path: candidate.path,
@@ -11468,7 +11545,7 @@ function AgentEditContent({
11468
11545
  },
11469
11546
  `patch:${candidate.path}`
11470
11547
  )),
11471
- diffFiles.map((candidate) => /* @__PURE__ */ jsx29(
11548
+ diffFiles.map((candidate) => /* @__PURE__ */ jsx31(
11472
11549
  AgentMonacoDiffViewer,
11473
11550
  {
11474
11551
  path: candidate.path,
@@ -11478,7 +11555,7 @@ function AgentEditContent({
11478
11555
  },
11479
11556
  `diff:${candidate.path}`
11480
11557
  )),
11481
- contentFiles.map((candidate) => /* @__PURE__ */ jsx29(
11558
+ contentFiles.map((candidate) => /* @__PURE__ */ jsx31(
11482
11559
  AgentCodeBlock,
11483
11560
  {
11484
11561
  path: candidate.path,
@@ -11493,7 +11570,7 @@ function AgentEditContent({
11493
11570
  }
11494
11571
 
11495
11572
  // shared/agentConversation/components/tool-renderers/AgentWebFetchContent.tsx
11496
- import { jsx as jsx30, jsxs as jsxs21 } from "react/jsx-runtime";
11573
+ import { jsx as jsx32, jsxs as jsxs23 } from "react/jsx-runtime";
11497
11574
  function AgentWebFetchContent({
11498
11575
  call,
11499
11576
  onLinkClick
@@ -11518,15 +11595,15 @@ ${web.url}` : web.url;
11518
11595
  if (!web.url && !visibleContent && !errorText) {
11519
11596
  return null;
11520
11597
  }
11521
- return /* @__PURE__ */ jsxs21("div", { className: "workspace-agents-status-panel__detail-tool-body", children: [
11522
- web.url ? /* @__PURE__ */ jsx30(ToolSection, { title: translate("agentHost.agentTool.details.url"), children: /* @__PURE__ */ jsx30(
11598
+ return /* @__PURE__ */ jsxs23("div", { className: "workspace-agents-status-panel__detail-tool-body", children: [
11599
+ web.url ? /* @__PURE__ */ jsx32(ToolSection, { title: translate("agentHost.agentTool.details.url"), children: /* @__PURE__ */ jsx32(
11523
11600
  ToolMarkdownBlock,
11524
11601
  {
11525
11602
  content: urlText ?? "",
11526
11603
  onLinkClick
11527
11604
  }
11528
11605
  ) }) : null,
11529
- visibleContent ? /* @__PURE__ */ jsx30(ToolSection, { title: translate("agentHost.agentTool.details.content"), children: /* @__PURE__ */ jsx30(
11606
+ visibleContent ? /* @__PURE__ */ jsx32(ToolSection, { title: translate("agentHost.agentTool.details.content"), children: /* @__PURE__ */ jsx32(
11530
11607
  ToolMarkdownBlock,
11531
11608
  {
11532
11609
  content: visibleContent,
@@ -11534,8 +11611,8 @@ ${web.url}` : web.url;
11534
11611
  collapsible: true
11535
11612
  }
11536
11613
  ) }) : null,
11537
- web.isTruncated ? /* @__PURE__ */ jsx30("div", { className: "text-[10px] italic text-[var(--text-tertiary)]", children: translate("agentHost.agentTool.details.contentTruncated") }) : null,
11538
- errorText ? /* @__PURE__ */ jsx30(ToolSection, { title: translate("agentHost.agentTool.details.error"), children: /* @__PURE__ */ jsx30(
11614
+ web.isTruncated ? /* @__PURE__ */ jsx32("div", { className: "text-[10px] italic text-[var(--text-tertiary)]", children: translate("agentHost.agentTool.details.contentTruncated") }) : null,
11615
+ errorText ? /* @__PURE__ */ jsx32(ToolSection, { title: translate("agentHost.agentTool.details.error"), children: /* @__PURE__ */ jsx32(
11539
11616
  ToolMarkdownBlock,
11540
11617
  {
11541
11618
  content: errorText,
@@ -11547,7 +11624,7 @@ ${web.url}` : web.url;
11547
11624
  }
11548
11625
 
11549
11626
  // shared/agentConversation/components/tool-renderers/AgentWebSearchContent.tsx
11550
- import { jsx as jsx31, jsxs as jsxs22 } from "react/jsx-runtime";
11627
+ import { jsx as jsx33, jsxs as jsxs24 } from "react/jsx-runtime";
11551
11628
  var MAX_SUMMARY_LENGTH = 3e3;
11552
11629
  function AgentWebSearchContent({
11553
11630
  call,
@@ -11571,9 +11648,9 @@ function AgentWebSearchContent({
11571
11648
  if (!hasRenderableContent) {
11572
11649
  return null;
11573
11650
  }
11574
- return /* @__PURE__ */ jsxs22("div", { className: "workspace-agents-status-panel__detail-tool-body", children: [
11575
- queryText ? /* @__PURE__ */ jsx31(ToolSection, { title: translate("agentHost.agentTool.details.query"), children: /* @__PURE__ */ jsx31(ToolMarkdownBlock, { content: queryText, onLinkClick }) }) : null,
11576
- links.length > 0 ? /* @__PURE__ */ jsx31(ToolSection, { title: translate("agentHost.agentTool.details.results"), children: /* @__PURE__ */ jsx31("div", { className: "workspace-agents-status-panel__detail-tool-result-list overflow-hidden rounded-[8px] border border-[var(--line-2)] bg-[var(--transparency-block)]", children: links.map((link, index) => /* @__PURE__ */ jsxs22(
11651
+ return /* @__PURE__ */ jsxs24("div", { className: "workspace-agents-status-panel__detail-tool-body", children: [
11652
+ queryText ? /* @__PURE__ */ jsx33(ToolSection, { title: translate("agentHost.agentTool.details.query"), children: /* @__PURE__ */ jsx33(ToolMarkdownBlock, { content: queryText, onLinkClick }) }) : null,
11653
+ links.length > 0 ? /* @__PURE__ */ jsx33(ToolSection, { title: translate("agentHost.agentTool.details.results"), children: /* @__PURE__ */ jsx33("div", { className: "workspace-agents-status-panel__detail-tool-result-list overflow-hidden rounded-[8px] border border-[var(--line-2)] bg-[var(--transparency-block)]", children: links.map((link, index) => /* @__PURE__ */ jsxs24(
11577
11654
  "a",
11578
11655
  {
11579
11656
  href: link.url,
@@ -11581,13 +11658,13 @@ function AgentWebSearchContent({
11581
11658
  rel: "noreferrer",
11582
11659
  className: `flex items-center gap-3 px-3 py-2 text-[11px] ${index > 0 ? "border-t border-[var(--line-2)]" : ""}`,
11583
11660
  children: [
11584
- /* @__PURE__ */ jsx31("span", { className: "w-[120px] shrink-0 truncate text-[11px] text-[var(--text-tertiary)]", children: link.domain }),
11585
- /* @__PURE__ */ jsx31("span", { className: "truncate text-[var(--text-primary)]", children: link.title })
11661
+ /* @__PURE__ */ jsx33("span", { className: "w-[120px] shrink-0 truncate text-[11px] text-[var(--text-tertiary)]", children: link.domain }),
11662
+ /* @__PURE__ */ jsx33("span", { className: "truncate text-[var(--text-primary)]", children: link.title })
11586
11663
  ]
11587
11664
  },
11588
11665
  `${link.url}:${link.title}`
11589
11666
  )) }) }) : null,
11590
- visibleSummary ? /* @__PURE__ */ jsx31(ToolSection, { title: translate("agentHost.agentTool.details.output"), children: /* @__PURE__ */ jsx31(
11667
+ visibleSummary ? /* @__PURE__ */ jsx33(ToolSection, { title: translate("agentHost.agentTool.details.output"), children: /* @__PURE__ */ jsx33(
11591
11668
  ToolMarkdownBlock,
11592
11669
  {
11593
11670
  content: visibleSummary,
@@ -11595,8 +11672,8 @@ function AgentWebSearchContent({
11595
11672
  collapsible: true
11596
11673
  }
11597
11674
  ) }) : null,
11598
- summary && summary.length > MAX_SUMMARY_LENGTH ? /* @__PURE__ */ jsx31("div", { className: "text-[10px] italic text-[var(--text-tertiary)]", children: translate("agentHost.agentTool.details.summaryTruncated") }) : null,
11599
- web.error ? /* @__PURE__ */ jsx31(ToolSection, { title: translate("agentHost.agentTool.details.error"), children: /* @__PURE__ */ jsx31(
11675
+ summary && summary.length > MAX_SUMMARY_LENGTH ? /* @__PURE__ */ jsx33("div", { className: "text-[10px] italic text-[var(--text-tertiary)]", children: translate("agentHost.agentTool.details.summaryTruncated") }) : null,
11676
+ web.error ? /* @__PURE__ */ jsx33(ToolSection, { title: translate("agentHost.agentTool.details.error"), children: /* @__PURE__ */ jsx33(
11600
11677
  ToolMarkdownBlock,
11601
11678
  {
11602
11679
  content: web.error,
@@ -11689,7 +11766,7 @@ function domainForUrl2(url) {
11689
11766
  }
11690
11767
 
11691
11768
  // shared/agentConversation/components/tool-renderers/AgentApprovalContent.tsx
11692
- import { jsx as jsx32 } from "react/jsx-runtime";
11769
+ import { jsx as jsx34 } from "react/jsx-runtime";
11693
11770
  function AgentApprovalContent({
11694
11771
  call,
11695
11772
  onLinkClick
@@ -11702,14 +11779,14 @@ function AgentApprovalContent({
11702
11779
  if (previewCall) {
11703
11780
  switch (previewCall.rendererKind) {
11704
11781
  case "web-fetch":
11705
- return /* @__PURE__ */ jsx32(AgentWebFetchContent, { call: previewCall, onLinkClick });
11782
+ return /* @__PURE__ */ jsx34(AgentWebFetchContent, { call: previewCall, onLinkClick });
11706
11783
  case "web-search":
11707
- return /* @__PURE__ */ jsx32(AgentWebSearchContent, { call: previewCall, onLinkClick });
11784
+ return /* @__PURE__ */ jsx34(AgentWebSearchContent, { call: previewCall, onLinkClick });
11708
11785
  default:
11709
- return /* @__PURE__ */ jsx32(AgentEditContent, { call: previewCall, onLinkClick });
11786
+ return /* @__PURE__ */ jsx34(AgentEditContent, { call: previewCall, onLinkClick });
11710
11787
  }
11711
11788
  }
11712
- return /* @__PURE__ */ jsx32("div", { className: "workspace-agents-status-panel__detail-tool-body", children: /* @__PURE__ */ jsx32(ToolMarkdownBlock, { content: call.summary }) });
11789
+ return /* @__PURE__ */ jsx34("div", { className: "workspace-agents-status-panel__detail-tool-body", children: /* @__PURE__ */ jsx34(ToolMarkdownBlock, { content: call.summary }) });
11713
11790
  }
11714
11791
  function approvalPreviewKindFor(normalizedKind) {
11715
11792
  switch (normalizedKind) {
@@ -11780,7 +11857,7 @@ function normalizeToolKind(value) {
11780
11857
  }
11781
11858
 
11782
11859
  // shared/agentConversation/components/tool-renderers/AgentAskUserQuestionContent.tsx
11783
- import { jsx as jsx33, jsxs as jsxs23 } from "react/jsx-runtime";
11860
+ import { jsx as jsx35, jsxs as jsxs25 } from "react/jsx-runtime";
11784
11861
  function AgentAskUserQuestionContent({
11785
11862
  call
11786
11863
  }) {
@@ -11789,31 +11866,31 @@ function AgentAskUserQuestionContent({
11789
11866
  if (questions.length === 0) {
11790
11867
  return null;
11791
11868
  }
11792
- return /* @__PURE__ */ jsx33("div", { className: "workspace-agents-status-panel__detail-tool-body", children: /* @__PURE__ */ jsx33(ToolSection, { title: translate("agentHost.agentTool.details.questions"), children: /* @__PURE__ */ jsx33("div", { className: "workspace-agents-status-panel__detail-tool-stack", children: questions.map((question) => {
11869
+ return /* @__PURE__ */ jsx35("div", { className: "workspace-agents-status-panel__detail-tool-body", children: /* @__PURE__ */ jsx35(ToolSection, { title: translate("agentHost.agentTool.details.questions"), children: /* @__PURE__ */ jsx35("div", { className: "workspace-agents-status-panel__detail-tool-stack", children: questions.map((question) => {
11793
11870
  const body = question.question || question.header || translate("agentHost.agentTool.details.questionFallback");
11794
11871
  const answer = formatAnswer(question.answer);
11795
11872
  const questionKey = question.id.trim() || `${question.header}:${question.question}:${question.options.map((option) => option.label).join("|")}`;
11796
- return /* @__PURE__ */ jsxs23(
11873
+ return /* @__PURE__ */ jsxs25(
11797
11874
  "div",
11798
11875
  {
11799
11876
  className: "workspace-agents-status-panel__detail-tool-stack-item",
11800
11877
  children: [
11801
- /* @__PURE__ */ jsx33("div", { className: "workspace-agents-status-panel__detail-tool-question", children: body }),
11802
- question.options.length > 0 ? /* @__PURE__ */ jsx33("div", { className: "workspace-agents-status-panel__detail-tool-stack", children: question.options.map((option) => /* @__PURE__ */ jsxs23(
11878
+ /* @__PURE__ */ jsx35("div", { className: "workspace-agents-status-panel__detail-tool-question", children: body }),
11879
+ question.options.length > 0 ? /* @__PURE__ */ jsx35("div", { className: "workspace-agents-status-panel__detail-tool-stack", children: question.options.map((option) => /* @__PURE__ */ jsxs25(
11803
11880
  "div",
11804
11881
  {
11805
11882
  className: "workspace-agents-status-panel__detail-tool-stack-item",
11806
11883
  children: [
11807
- /* @__PURE__ */ jsx33("div", { className: "workspace-agents-status-panel__detail-tool-summary", children: option.label }),
11808
- option.description ? /* @__PURE__ */ jsx33("div", { className: "workspace-agents-status-panel__detail-tool-answer workspace-agents-status-panel__detail-tool-answer--muted", children: option.description }) : null
11884
+ /* @__PURE__ */ jsx35("div", { className: "workspace-agents-status-panel__detail-tool-summary", children: option.label }),
11885
+ option.description ? /* @__PURE__ */ jsx35("div", { className: "workspace-agents-status-panel__detail-tool-answer workspace-agents-status-panel__detail-tool-answer--muted", children: option.description }) : null
11809
11886
  ]
11810
11887
  },
11811
11888
  `${questionKey}-option-${option.label}:${option.description}`
11812
11889
  )) }) : null,
11813
- answer ? /* @__PURE__ */ jsx33("div", { className: "workspace-agents-status-panel__detail-tool-answer", children: translate("agentHost.agentTool.details.answerPrefix", {
11890
+ answer ? /* @__PURE__ */ jsx35("div", { className: "workspace-agents-status-panel__detail-tool-answer", children: translate("agentHost.agentTool.details.answerPrefix", {
11814
11891
  answer
11815
- }) }) : /* @__PURE__ */ jsxs23("div", { className: "workspace-agents-status-panel__detail-tool-answer workspace-agents-status-panel__detail-tool-answer--muted inline-flex items-center gap-1.5", children: [
11816
- /* @__PURE__ */ jsx33(
11892
+ }) }) : /* @__PURE__ */ jsxs25("div", { className: "workspace-agents-status-panel__detail-tool-answer workspace-agents-status-panel__detail-tool-answer--muted inline-flex items-center gap-1.5", children: [
11893
+ /* @__PURE__ */ jsx35(
11817
11894
  MessageSquareMoreIcon,
11818
11895
  {
11819
11896
  size: 14,
@@ -11838,8 +11915,8 @@ function formatAnswer(answer) {
11838
11915
  }
11839
11916
 
11840
11917
  // shared/agentConversation/components/tool-renderers/terminal/AgentTerminalBlock.tsx
11841
- import { useMemo as useMemo4, useState as useState10 } from "react";
11842
- import { jsx as jsx34, jsxs as jsxs24 } from "react/jsx-runtime";
11918
+ import { useMemo as useMemo4, useState as useState11 } from "react";
11919
+ import { jsx as jsx36, jsxs as jsxs26 } from "react/jsx-runtime";
11843
11920
  var MAX_OUTPUT_LINES = 200;
11844
11921
  function AgentTerminalBlock({
11845
11922
  command,
@@ -11848,7 +11925,7 @@ function AgentTerminalBlock({
11848
11925
  status
11849
11926
  }) {
11850
11927
  "use memo";
11851
- const [expanded, setExpanded] = useState10(false);
11928
+ const [expanded, setExpanded] = useState11(false);
11852
11929
  const outputText = useMemo4(
11853
11930
  () => [stdout, stderr].filter(Boolean).join("\n"),
11854
11931
  [stdout, stderr]
@@ -11861,7 +11938,7 @@ function AgentTerminalBlock({
11861
11938
  const visibleOutput = truncated ? outputLines.slice(0, MAX_OUTPUT_LINES).join("\n") : outputText;
11862
11939
  const failed = status === "failed";
11863
11940
  const hasOutput = Boolean(visibleOutput);
11864
- const disclosureButton = outputLines.length > MAX_OUTPUT_LINES ? /* @__PURE__ */ jsx34(
11941
+ const disclosureButton = outputLines.length > MAX_OUTPUT_LINES ? /* @__PURE__ */ jsx36(
11865
11942
  "button",
11866
11943
  {
11867
11944
  type: "button",
@@ -11870,15 +11947,15 @@ function AgentTerminalBlock({
11870
11947
  children: expanded ? "Collapse output" : `Show full output (${outputLines.length} lines)`
11871
11948
  }
11872
11949
  ) : null;
11873
- return /* @__PURE__ */ jsxs24("div", { className: "workspace-agents-status-panel__detail-tool-terminal overflow-hidden rounded-[8px] border border-[var(--line-2)] bg-[var(--background-panel)]", children: [
11874
- command ? /* @__PURE__ */ jsxs24(
11950
+ return /* @__PURE__ */ jsxs26("div", { className: "workspace-agents-status-panel__detail-tool-terminal overflow-hidden rounded-[8px] border border-[var(--line-2)] bg-[var(--background-panel)]", children: [
11951
+ command ? /* @__PURE__ */ jsxs26(
11875
11952
  "div",
11876
11953
  {
11877
11954
  className: `flex min-w-0 items-center gap-3 px-3 text-[11px] text-[var(--text-secondary)] ${hasOutput ? "border-b border-[var(--line-2)] bg-[var(--transparency-block)] py-1.5" : "bg-[var(--transparency-block)] py-2"}`,
11878
11955
  "data-agent-terminal-command-row": "true",
11879
11956
  children: [
11880
- /* @__PURE__ */ jsx34("span", { className: "shrink-0 font-semibold text-[var(--tutti-purple)]", children: "$" }),
11881
- /* @__PURE__ */ jsx34(
11957
+ /* @__PURE__ */ jsx36("span", { className: "shrink-0 font-semibold text-[var(--tutti-purple)]", children: "$" }),
11958
+ /* @__PURE__ */ jsx36(
11882
11959
  "span",
11883
11960
  {
11884
11961
  className: "min-w-0 flex-1 whitespace-pre-wrap [overflow-wrap:anywhere]",
@@ -11889,13 +11966,13 @@ function AgentTerminalBlock({
11889
11966
  ]
11890
11967
  }
11891
11968
  ) : null,
11892
- hasOutput ? /* @__PURE__ */ jsxs24(
11969
+ hasOutput ? /* @__PURE__ */ jsxs26(
11893
11970
  AgentToolScrollArea,
11894
11971
  {
11895
11972
  maxHeightClassName: "max-h-[160px]",
11896
11973
  viewportClassName: `px-3 py-2 text-[11px] leading-5 ${failed ? "text-[var(--state-danger)]" : "text-[var(--text-primary)]"}`,
11897
11974
  children: [
11898
- /* @__PURE__ */ jsx34("pre", { className: "m-0 min-w-0 max-w-full whitespace-pre-wrap [overflow-wrap:anywhere]", children: /* @__PURE__ */ jsx34("code", { children: visibleOutput }) }),
11975
+ /* @__PURE__ */ jsx36("pre", { className: "m-0 min-w-0 max-w-full whitespace-pre-wrap [overflow-wrap:anywhere]", children: /* @__PURE__ */ jsx36("code", { children: visibleOutput }) }),
11899
11976
  disclosureButton
11900
11977
  ]
11901
11978
  }
@@ -11904,14 +11981,14 @@ function AgentTerminalBlock({
11904
11981
  }
11905
11982
 
11906
11983
  // shared/agentConversation/components/tool-renderers/AgentBashContent.tsx
11907
- import { jsx as jsx35 } from "react/jsx-runtime";
11984
+ import { jsx as jsx37 } from "react/jsx-runtime";
11908
11985
  function AgentBashContent({
11909
11986
  call
11910
11987
  }) {
11911
11988
  "use memo";
11912
11989
  const commandData = getCommandRenderData(call);
11913
11990
  const fallbackErrorText = commandData.status === "failed" && !commandData.stdout && !commandData.stderr ? stringValue10(call.error?.message) : null;
11914
- return /* @__PURE__ */ jsx35("div", { className: "workspace-agents-status-panel__detail-tool-body workspace-agents-status-panel__detail-tool-body--plain", children: /* @__PURE__ */ jsx35(
11991
+ return /* @__PURE__ */ jsx37("div", { className: "workspace-agents-status-panel__detail-tool-body workspace-agents-status-panel__detail-tool-body--plain", children: /* @__PURE__ */ jsx37(
11915
11992
  AgentTerminalBlock,
11916
11993
  {
11917
11994
  command: commandData.command,
@@ -11925,9 +12002,9 @@ function AgentBashContent({
11925
12002
  }
11926
12003
 
11927
12004
  // shared/agentConversation/components/tool-renderers/AgentImageGenerationContent.tsx
11928
- import { useEffect as useEffect10, useState as useState11 } from "react";
12005
+ import { useEffect as useEffect10, useState as useState12 } from "react";
11929
12006
  import { resolveWorkspaceImageMimeType } from "@tutti-os/workspace-file-manager/services";
11930
- import { jsx as jsx36, jsxs as jsxs25 } from "react/jsx-runtime";
12007
+ import { jsx as jsx38, jsxs as jsxs27 } from "react/jsx-runtime";
11931
12008
  function AgentImageGenerationContent({
11932
12009
  call,
11933
12010
  onLinkClick
@@ -11937,8 +12014,8 @@ function AgentImageGenerationContent({
11937
12014
  if (!image.prompt && !image.imageUri) {
11938
12015
  return null;
11939
12016
  }
11940
- return /* @__PURE__ */ jsxs25("div", { className: "workspace-agents-status-panel__detail-tool-body", children: [
11941
- image.prompt ? /* @__PURE__ */ jsx36(ToolSection, { title: translate("agentHost.agentTool.details.input"), children: /* @__PURE__ */ jsx36(
12017
+ return /* @__PURE__ */ jsxs27("div", { className: "workspace-agents-status-panel__detail-tool-body", children: [
12018
+ image.prompt ? /* @__PURE__ */ jsx38(ToolSection, { title: translate("agentHost.agentTool.details.input"), children: /* @__PURE__ */ jsx38(
11942
12019
  ToolMarkdownBlock,
11943
12020
  {
11944
12021
  content: image.prompt,
@@ -11946,7 +12023,7 @@ function AgentImageGenerationContent({
11946
12023
  collapsible: true
11947
12024
  }
11948
12025
  ) }) : null,
11949
- image.imageUri ? /* @__PURE__ */ jsx36(
12026
+ image.imageUri ? /* @__PURE__ */ jsx38(
11950
12027
  ImageGenerationPreview,
11951
12028
  {
11952
12029
  uri: image.imageUri,
@@ -11963,7 +12040,7 @@ function ImageGenerationPreview({
11963
12040
  const agentHostApi = useOptionalAgentHostApi();
11964
12041
  const localPath = isLocalImagePath(uri) ? uri.trim() : null;
11965
12042
  const readWorkspaceImage = localPath ? agentHostApi?.workspace?.readFile : void 0;
11966
- const [src, setSrc] = useState11(
12043
+ const [src, setSrc] = useState12(
11967
12044
  () => !localPath ? resolveImageGenerationPreviewSrc(uri) : null
11968
12045
  );
11969
12046
  useEffect10(() => {
@@ -12011,7 +12088,7 @@ function ImageGenerationPreview({
12011
12088
  if (!src) {
12012
12089
  return null;
12013
12090
  }
12014
- return /* @__PURE__ */ jsx36(ToolSection, { title: translate("agentHost.agentTool.details.output"), children: /* @__PURE__ */ jsx36(
12091
+ return /* @__PURE__ */ jsx38(ToolSection, { title: translate("agentHost.agentTool.details.output"), children: /* @__PURE__ */ jsx38(
12015
12092
  ZoomableImage,
12016
12093
  {
12017
12094
  alt: translate("agentHost.agentTool.details.imagePreviewAlt"),
@@ -12164,47 +12241,47 @@ function firstString6(...values) {
12164
12241
  }
12165
12242
 
12166
12243
  // shared/agentConversation/components/tool-renderers/mcp-renderers/agentAtlassianRenderers.tsx
12167
- import { jsx as jsx37, jsxs as jsxs26 } from "react/jsx-runtime";
12244
+ import { jsx as jsx39, jsxs as jsxs28 } from "react/jsx-runtime";
12168
12245
  function renderAtlassianMcp(payload) {
12169
12246
  const items = parsedItems(payload.structured);
12170
12247
  if (items.length > 0) {
12171
- return /* @__PURE__ */ jsx37("div", { className: "workspace-agents-status-panel__detail-tool-result-list overflow-hidden rounded-[8px] border border-[var(--line-2)] bg-[var(--transparency-block)]", children: items.map((item, index) => /* @__PURE__ */ jsxs26(
12248
+ return /* @__PURE__ */ jsx39("div", { className: "workspace-agents-status-panel__detail-tool-result-list overflow-hidden rounded-[8px] border border-[var(--line-2)] bg-[var(--transparency-block)]", children: items.map((item, index) => /* @__PURE__ */ jsxs28(
12172
12249
  "div",
12173
12250
  {
12174
12251
  className: `px-3 py-2 ${index > 0 ? "border-t border-[var(--line-2)]" : ""}`,
12175
12252
  children: [
12176
- /* @__PURE__ */ jsx37("div", { className: "text-[11px] font-semibold text-[var(--text-primary)]", children: itemPrimaryText(item) ?? translate("agentHost.agentTool.details.mcpItem", {
12253
+ /* @__PURE__ */ jsx39("div", { className: "text-[11px] font-semibold text-[var(--text-primary)]", children: itemPrimaryText(item) ?? translate("agentHost.agentTool.details.mcpItem", {
12177
12254
  index: index + 1
12178
12255
  }) }),
12179
- itemSecondaryText(item) ? /* @__PURE__ */ jsx37("div", { className: "text-[11px] text-[var(--text-tertiary)]", children: itemSecondaryText(item) }) : null
12256
+ itemSecondaryText(item) ? /* @__PURE__ */ jsx39("div", { className: "text-[11px] text-[var(--text-tertiary)]", children: itemSecondaryText(item) }) : null
12180
12257
  ]
12181
12258
  },
12182
12259
  `${itemPrimaryText(item) ?? "item"}::${itemSecondaryText(item) ?? ""}`
12183
12260
  )) });
12184
12261
  }
12185
- return payload.text ? /* @__PURE__ */ jsx37(ToolMarkdownBlock, { content: payload.text, collapsible: true }) : null;
12262
+ return payload.text ? /* @__PURE__ */ jsx39(ToolMarkdownBlock, { content: payload.text, collapsible: true }) : null;
12186
12263
  }
12187
12264
 
12188
12265
  // shared/agentConversation/components/tool-renderers/mcp-renderers/agentContext7Renderers.tsx
12189
- import { jsx as jsx38, jsxs as jsxs27 } from "react/jsx-runtime";
12266
+ import { jsx as jsx40, jsxs as jsxs29 } from "react/jsx-runtime";
12190
12267
  function renderContext7Mcp(payload) {
12191
12268
  const items = parsedItems(payload.structured);
12192
12269
  if (items.length > 0) {
12193
- return /* @__PURE__ */ jsx38("div", { className: "workspace-agents-status-panel__detail-tool-result-list overflow-hidden rounded-[8px] border border-[var(--line-2)] bg-[var(--transparency-block)]", children: items.map((item, index) => /* @__PURE__ */ jsxs27(
12270
+ return /* @__PURE__ */ jsx40("div", { className: "workspace-agents-status-panel__detail-tool-result-list overflow-hidden rounded-[8px] border border-[var(--line-2)] bg-[var(--transparency-block)]", children: items.map((item, index) => /* @__PURE__ */ jsxs29(
12194
12271
  "div",
12195
12272
  {
12196
12273
  className: `px-3 py-2 ${index > 0 ? "border-t border-[var(--line-2)]" : ""}`,
12197
12274
  children: [
12198
- /* @__PURE__ */ jsx38("div", { className: "text-[11px] font-semibold text-[var(--text-primary)]", children: itemPrimaryText(item) ?? translate("agentHost.agentTool.details.mcpDoc", {
12275
+ /* @__PURE__ */ jsx40("div", { className: "text-[11px] font-semibold text-[var(--text-primary)]", children: itemPrimaryText(item) ?? translate("agentHost.agentTool.details.mcpDoc", {
12199
12276
  index: index + 1
12200
12277
  }) }),
12201
- itemSecondaryText(item) ? /* @__PURE__ */ jsx38("div", { className: "text-[11px] text-[var(--text-tertiary)]", children: itemSecondaryText(item) }) : null
12278
+ itemSecondaryText(item) ? /* @__PURE__ */ jsx40("div", { className: "text-[11px] text-[var(--text-tertiary)]", children: itemSecondaryText(item) }) : null
12202
12279
  ]
12203
12280
  },
12204
12281
  `${itemPrimaryText(item) ?? "doc"}::${itemSecondaryText(item) ?? ""}`
12205
12282
  )) });
12206
12283
  }
12207
- return payload.text ? /* @__PURE__ */ jsx38(ToolMarkdownBlock, { content: payload.text, collapsible: true }) : null;
12284
+ return payload.text ? /* @__PURE__ */ jsx40(ToolMarkdownBlock, { content: payload.text, collapsible: true }) : null;
12208
12285
  }
12209
12286
 
12210
12287
  // shared/agentConversation/components/tool-renderers/mcp-renderers/agentMcpRendererRegistry.tsx
@@ -12220,7 +12297,7 @@ function renderRegisteredMcp(payload) {
12220
12297
  }
12221
12298
 
12222
12299
  // shared/agentConversation/components/tool-renderers/AgentMcpToolContent.tsx
12223
- import { jsx as jsx39, jsxs as jsxs28 } from "react/jsx-runtime";
12300
+ import { jsx as jsx41, jsxs as jsxs30 } from "react/jsx-runtime";
12224
12301
  function AgentMcpToolContent({
12225
12302
  call,
12226
12303
  onLinkClick
@@ -12232,8 +12309,8 @@ function AgentMcpToolContent({
12232
12309
  payload.text,
12233
12310
  payload.inputSummary
12234
12311
  );
12235
- return /* @__PURE__ */ jsxs28("div", { className: "workspace-agents-status-panel__detail-tool-body", children: [
12236
- payload.server || payload.tool ? /* @__PURE__ */ jsx39(ToolSection, { title: translate("agentHost.agentTool.details.mcp"), children: /* @__PURE__ */ jsx39(
12312
+ return /* @__PURE__ */ jsxs30("div", { className: "workspace-agents-status-panel__detail-tool-body", children: [
12313
+ payload.server || payload.tool ? /* @__PURE__ */ jsx41(ToolSection, { title: translate("agentHost.agentTool.details.mcp"), children: /* @__PURE__ */ jsx41(
12237
12314
  ToolMarkdownBlock,
12238
12315
  {
12239
12316
  content: [
@@ -12243,14 +12320,14 @@ function AgentMcpToolContent({
12243
12320
  onLinkClick
12244
12321
  }
12245
12322
  ) }) : null,
12246
- payload.inputSummary ? /* @__PURE__ */ jsx39(ToolSection, { title: translate("agentHost.agentTool.details.input"), children: /* @__PURE__ */ jsx39(
12323
+ payload.inputSummary ? /* @__PURE__ */ jsx41(ToolSection, { title: translate("agentHost.agentTool.details.input"), children: /* @__PURE__ */ jsx41(
12247
12324
  ToolMarkdownBlock,
12248
12325
  {
12249
12326
  content: payload.inputSummary,
12250
12327
  onLinkClick
12251
12328
  }
12252
12329
  ) }) : null,
12253
- specialized ? /* @__PURE__ */ jsx39(ToolSection, { title: translate("agentHost.agentTool.details.output"), children: specialized }) : visibleText ? /* @__PURE__ */ jsx39(ToolSection, { title: translate("agentHost.agentTool.details.output"), children: /* @__PURE__ */ jsx39(
12330
+ specialized ? /* @__PURE__ */ jsx41(ToolSection, { title: translate("agentHost.agentTool.details.output"), children: specialized }) : visibleText ? /* @__PURE__ */ jsx41(ToolSection, { title: translate("agentHost.agentTool.details.output"), children: /* @__PURE__ */ jsx41(
12254
12331
  ToolMarkdownBlock,
12255
12332
  {
12256
12333
  content: visibleText,
@@ -12258,12 +12335,12 @@ function AgentMcpToolContent({
12258
12335
  collapsible: true
12259
12336
  }
12260
12337
  ) }) : null,
12261
- /* @__PURE__ */ jsx39(RawPayloadSection, { payload: call.payload ?? payload.structured })
12338
+ /* @__PURE__ */ jsx41(RawPayloadSection, { payload: call.payload ?? payload.structured })
12262
12339
  ] });
12263
12340
  }
12264
12341
 
12265
12342
  // shared/agentConversation/components/tool-renderers/AgentPlanModeContent.tsx
12266
- import { jsx as jsx40 } from "react/jsx-runtime";
12343
+ import { jsx as jsx42 } from "react/jsx-runtime";
12267
12344
  function AgentPlanModeContent({
12268
12345
  call,
12269
12346
  onLinkClick
@@ -12274,7 +12351,7 @@ function AgentPlanModeContent({
12274
12351
  if (!planMode.enterText) {
12275
12352
  return null;
12276
12353
  }
12277
- return /* @__PURE__ */ jsx40("div", { className: "rounded-[8px] bg-[var(--transparency-block)] px-3 py-2 text-[11px] text-[var(--text-secondary)]", children: /* @__PURE__ */ jsx40(
12354
+ return /* @__PURE__ */ jsx42("div", { className: "rounded-[8px] bg-[var(--transparency-block)] px-3 py-2 text-[11px] text-[var(--text-secondary)]", children: /* @__PURE__ */ jsx42(
12278
12355
  ToolMarkdownBlock,
12279
12356
  {
12280
12357
  content: planMode.enterText,
@@ -12285,18 +12362,18 @@ function AgentPlanModeContent({
12285
12362
  if (!planMode.plan) {
12286
12363
  return null;
12287
12364
  }
12288
- return /* @__PURE__ */ jsx40(
12365
+ return /* @__PURE__ */ jsx42(
12289
12366
  AgentPlanCard,
12290
12367
  {
12291
12368
  title: planMode.fileName ?? void 0,
12292
12369
  copyText: planMode.plan,
12293
- children: /* @__PURE__ */ jsx40(ToolMarkdownBlock, { content: planMode.plan, onLinkClick })
12370
+ children: /* @__PURE__ */ jsx42(ToolMarkdownBlock, { content: planMode.plan, onLinkClick })
12294
12371
  }
12295
12372
  );
12296
12373
  }
12297
12374
 
12298
12375
  // shared/agentConversation/components/tool-renderers/AgentSearchContent.tsx
12299
- import { jsx as jsx41, jsxs as jsxs29 } from "react/jsx-runtime";
12376
+ import { jsx as jsx43, jsxs as jsxs31 } from "react/jsx-runtime";
12300
12377
  function AgentSearchContent({
12301
12378
  call,
12302
12379
  onLinkClick
@@ -12312,9 +12389,9 @@ ${translate("agentHost.agentTool.details.scope")}: ${search.scope}`.trim() : sea
12312
12389
  visibleOutput.split("\n").filter(Boolean),
12313
12390
  "line"
12314
12391
  );
12315
- return /* @__PURE__ */ jsxs29("div", { className: "workspace-agents-status-panel__detail-tool-body", children: [
12316
- queryText ? /* @__PURE__ */ jsx41(ToolSection, { title: translate("agentHost.agentTool.details.query"), children: /* @__PURE__ */ jsx41(ToolMarkdownBlock, { content: queryText, onLinkClick }) }) : null,
12317
- (search.mode === "files_with_matches" || search.mode === "list_files") && search.files.length > 0 ? /* @__PURE__ */ jsx41(ToolSection, { title: translate("agentHost.agentTool.details.results"), children: /* @__PURE__ */ jsx41("div", { className: "workspace-agents-status-panel__detail-tool-result-list overflow-hidden rounded-[8px] border border-[var(--line-2)] bg-[var(--transparency-block)]", children: resultFiles.map(({ key, value: file, isFirst }) => /* @__PURE__ */ jsx41(
12392
+ return /* @__PURE__ */ jsxs31("div", { className: "workspace-agents-status-panel__detail-tool-body", children: [
12393
+ queryText ? /* @__PURE__ */ jsx43(ToolSection, { title: translate("agentHost.agentTool.details.query"), children: /* @__PURE__ */ jsx43(ToolMarkdownBlock, { content: queryText, onLinkClick }) }) : null,
12394
+ (search.mode === "files_with_matches" || search.mode === "list_files") && search.files.length > 0 ? /* @__PURE__ */ jsx43(ToolSection, { title: translate("agentHost.agentTool.details.results"), children: /* @__PURE__ */ jsx43("div", { className: "workspace-agents-status-panel__detail-tool-result-list overflow-hidden rounded-[8px] border border-[var(--line-2)] bg-[var(--transparency-block)]", children: resultFiles.map(({ key, value: file, isFirst }) => /* @__PURE__ */ jsx43(
12318
12395
  "div",
12319
12396
  {
12320
12397
  className: `px-3 py-2 font-[var(--tsh-font-mono)] text-[11px] text-[var(--text-primary)] ${isFirst ? "" : "border-t border-[var(--line-2)]"}`,
@@ -12322,7 +12399,7 @@ ${translate("agentHost.agentTool.details.scope")}: ${search.scope}`.trim() : sea
12322
12399
  },
12323
12400
  key
12324
12401
  )) }) }) : null,
12325
- search.mode === "content" && visibleOutput ? /* @__PURE__ */ jsx41(ToolSection, { title: translate("agentHost.agentTool.details.output"), children: /* @__PURE__ */ jsx41("pre", { className: "max-h-[320px] overflow-auto rounded-[8px] border border-[var(--line-2)] bg-[var(--transparency-block)] px-3 py-2 text-[11px] leading-5 text-[var(--text-primary)]", children: outputLines.map(({ key, value: line }) => /* @__PURE__ */ jsx41(
12402
+ search.mode === "content" && visibleOutput ? /* @__PURE__ */ jsx43(ToolSection, { title: translate("agentHost.agentTool.details.output"), children: /* @__PURE__ */ jsx43("pre", { className: "max-h-[320px] overflow-auto rounded-[8px] border border-[var(--line-2)] bg-[var(--transparency-block)] px-3 py-2 text-[11px] leading-5 text-[var(--text-primary)]", children: outputLines.map(({ key, value: line }) => /* @__PURE__ */ jsx43(
12326
12403
  "div",
12327
12404
  {
12328
12405
  className: line.includes(":") ? "text-[var(--text-primary)]" : "text-[var(--text-tertiary)]",
@@ -12330,9 +12407,9 @@ ${translate("agentHost.agentTool.details.scope")}: ${search.scope}`.trim() : sea
12330
12407
  },
12331
12408
  key
12332
12409
  )) }) }) : null,
12333
- search.mode === "count" ? /* @__PURE__ */ jsx41(ToolSection, { title: translate("agentHost.agentTool.details.results"), children: /* @__PURE__ */ jsx41("div", { className: "inline-flex rounded-full border border-[var(--line-2)] bg-[var(--transparency-block)] px-2.5 py-1 text-[11px] text-[var(--text-tertiary)]", children: search.output || "0" }) }) : null,
12334
- (search.mode === "files_with_matches" || search.mode === "list_files" || search.mode === "count") && search.files.length === 0 && !visibleOutput && !search.error ? /* @__PURE__ */ jsx41(ToolSection, { title: translate("agentHost.agentTool.details.results"), children: /* @__PURE__ */ jsx41("div", { className: "text-[11px] italic text-[var(--text-tertiary)]", children: translate("agentHost.agentTool.details.noMatches") }) }) : null,
12335
- search.mode === "unknown" && visibleOutput ? /* @__PURE__ */ jsx41(ToolSection, { title: translate("agentHost.agentTool.details.output"), children: /* @__PURE__ */ jsx41(
12410
+ search.mode === "count" ? /* @__PURE__ */ jsx43(ToolSection, { title: translate("agentHost.agentTool.details.results"), children: /* @__PURE__ */ jsx43("div", { className: "inline-flex rounded-full border border-[var(--line-2)] bg-[var(--transparency-block)] px-2.5 py-1 text-[11px] text-[var(--text-tertiary)]", children: search.output || "0" }) }) : null,
12411
+ (search.mode === "files_with_matches" || search.mode === "list_files" || search.mode === "count") && search.files.length === 0 && !visibleOutput && !search.error ? /* @__PURE__ */ jsx43(ToolSection, { title: translate("agentHost.agentTool.details.results"), children: /* @__PURE__ */ jsx43("div", { className: "text-[11px] italic text-[var(--text-tertiary)]", children: translate("agentHost.agentTool.details.noMatches") }) }) : null,
12412
+ search.mode === "unknown" && visibleOutput ? /* @__PURE__ */ jsx43(ToolSection, { title: translate("agentHost.agentTool.details.output"), children: /* @__PURE__ */ jsx43(
12336
12413
  ToolMarkdownBlock,
12337
12414
  {
12338
12415
  content: visibleOutput,
@@ -12340,7 +12417,7 @@ ${translate("agentHost.agentTool.details.scope")}: ${search.scope}`.trim() : sea
12340
12417
  collapsible: true
12341
12418
  }
12342
12419
  ) }) : null,
12343
- search.error ? /* @__PURE__ */ jsx41(ToolSection, { title: translate("agentHost.agentTool.details.error"), children: /* @__PURE__ */ jsx41(
12420
+ search.error ? /* @__PURE__ */ jsx43(ToolSection, { title: translate("agentHost.agentTool.details.error"), children: /* @__PURE__ */ jsx43(
12344
12421
  ToolMarkdownBlock,
12345
12422
  {
12346
12423
  content: search.error,
@@ -12368,7 +12445,7 @@ function withStableOccurrenceKeys(values, prefix) {
12368
12445
  }
12369
12446
 
12370
12447
  // shared/agentConversation/components/tool-renderers/AgentSkillContent.tsx
12371
- import { jsx as jsx42, jsxs as jsxs30 } from "react/jsx-runtime";
12448
+ import { jsx as jsx44, jsxs as jsxs32 } from "react/jsx-runtime";
12372
12449
  function AgentSkillContent({
12373
12450
  call,
12374
12451
  onLinkClick
@@ -12378,8 +12455,8 @@ function AgentSkillContent({
12378
12455
  if (!skill.skill && !skill.statusText) {
12379
12456
  return null;
12380
12457
  }
12381
- return /* @__PURE__ */ jsxs30("div", { className: "workspace-agents-status-panel__detail-tool-body", children: [
12382
- skill.skill ? /* @__PURE__ */ jsx42(ToolSection, { title: translate("agentHost.agentTool.details.skill"), children: /* @__PURE__ */ jsx42(
12458
+ return /* @__PURE__ */ jsxs32("div", { className: "workspace-agents-status-panel__detail-tool-body", children: [
12459
+ skill.skill ? /* @__PURE__ */ jsx44(ToolSection, { title: translate("agentHost.agentTool.details.skill"), children: /* @__PURE__ */ jsx44(
12383
12460
  ToolMarkdownBlock,
12384
12461
  {
12385
12462
  content: skill.args ? `${skill.skill}
@@ -12388,31 +12465,31 @@ ${skill.args}` : skill.skill,
12388
12465
  onLinkClick
12389
12466
  }
12390
12467
  ) }) : null,
12391
- skill.statusText ? /* @__PURE__ */ jsx42("div", { className: "text-[10px] text-[var(--text-tertiary)]", children: skill.statusText }) : null
12468
+ skill.statusText ? /* @__PURE__ */ jsx44("div", { className: "text-[10px] text-[var(--text-tertiary)]", children: skill.statusText }) : null
12392
12469
  ] });
12393
12470
  }
12394
12471
 
12395
12472
  // shared/agentConversation/components/AgentTaskStepList.tsx
12396
- import { useState as useState12 } from "react";
12397
- import { jsx as jsx43, jsxs as jsxs31 } from "react/jsx-runtime";
12473
+ import { useState as useState13 } from "react";
12474
+ import { jsx as jsx45, jsxs as jsxs33 } from "react/jsx-runtime";
12398
12475
  function AgentTaskStepList({
12399
12476
  steps,
12400
12477
  onLinkClick
12401
12478
  }) {
12402
12479
  "use memo";
12403
- return /* @__PURE__ */ jsx43("div", { className: "workspace-agents-status-panel__detail-tool-stack", children: steps.map((step) => /* @__PURE__ */ jsx43(AgentTaskStepRow, { step, onLinkClick }, step.id)) });
12480
+ return /* @__PURE__ */ jsx45("div", { className: "workspace-agents-status-panel__detail-tool-stack", children: steps.map((step) => /* @__PURE__ */ jsx45(AgentTaskStepRow, { step, onLinkClick }, step.id)) });
12404
12481
  }
12405
12482
  function AgentTaskStepRow({
12406
12483
  step,
12407
12484
  onLinkClick
12408
12485
  }) {
12409
12486
  "use memo";
12410
- const [expanded, setExpanded] = useState12(false);
12487
+ const [expanded, setExpanded] = useState13(false);
12411
12488
  const call = step.tool ?? projectTaskStepCall(step);
12412
12489
  const hasDetail = hasAgentToolContent(call);
12413
12490
  const ariaLabel = taskStepAriaLabel(call);
12414
- return /* @__PURE__ */ jsxs31("div", { className: "workspace-agents-status-panel__detail-tool-row", children: [
12415
- hasDetail ? /* @__PURE__ */ jsx43(
12491
+ return /* @__PURE__ */ jsxs33("div", { className: "workspace-agents-status-panel__detail-tool-row", children: [
12492
+ hasDetail ? /* @__PURE__ */ jsx45(
12416
12493
  "button",
12417
12494
  {
12418
12495
  type: "button",
@@ -12420,11 +12497,11 @@ function AgentTaskStepRow({
12420
12497
  "aria-expanded": expanded,
12421
12498
  "aria-label": ariaLabel,
12422
12499
  onClick: () => setExpanded((value) => !value),
12423
- children: /* @__PURE__ */ jsx43(AgentToolCallHeader, { call, expanded, hasDetail: true })
12500
+ children: /* @__PURE__ */ jsx45(AgentToolCallHeader, { call, expanded, hasDetail: true })
12424
12501
  }
12425
- ) : /* @__PURE__ */ jsx43("div", { className: "workspace-agents-status-panel__detail-tool-row-head", children: /* @__PURE__ */ jsx43(AgentToolCallHeader, { call, expanded: false, hasDetail: false }) }),
12426
- !hasDetail && step.summary ? /* @__PURE__ */ jsx43("div", { className: "workspace-agents-status-panel__detail-tool-summary", children: step.summary }) : null,
12427
- hasDetail && expanded ? /* @__PURE__ */ jsx43(AgentExpandedToolContent, { call, onLinkClick }) : null
12502
+ ) : /* @__PURE__ */ jsx45("div", { className: "workspace-agents-status-panel__detail-tool-row-head", children: /* @__PURE__ */ jsx45(AgentToolCallHeader, { call, expanded: false, hasDetail: false }) }),
12503
+ !hasDetail && step.summary ? /* @__PURE__ */ jsx45("div", { className: "workspace-agents-status-panel__detail-tool-summary", children: step.summary }) : null,
12504
+ hasDetail && expanded ? /* @__PURE__ */ jsx45(AgentExpandedToolContent, { call, onLinkClick }) : null
12428
12505
  ] });
12429
12506
  }
12430
12507
  function taskStepAriaLabel(call) {
@@ -12455,7 +12532,7 @@ function projectTaskStepCall(step) {
12455
12532
  }
12456
12533
 
12457
12534
  // shared/agentConversation/components/tool-renderers/AgentTaskContent.tsx
12458
- import { jsx as jsx44, jsxs as jsxs32 } from "react/jsx-runtime";
12535
+ import { jsx as jsx46, jsxs as jsxs34 } from "react/jsx-runtime";
12459
12536
  function AgentTaskContent({
12460
12537
  call,
12461
12538
  onLinkClick
@@ -12463,29 +12540,29 @@ function AgentTaskContent({
12463
12540
  "use memo";
12464
12541
  const task = getTaskRenderData(call);
12465
12542
  const failureMarkdown = task.errorMarkdown ?? (isFailedTaskStatus(call.statusKind, task.status, call.status) ? translate("agentHost.agentTool.details.missingFailureDetails") : null);
12466
- return /* @__PURE__ */ jsxs32("div", { className: "workspace-agents-status-panel__detail-tool-body", children: [
12467
- /* @__PURE__ */ jsxs32("div", { className: "workspace-agents-status-panel__detail-tool-answer", children: [
12468
- /* @__PURE__ */ jsx44("strong", { children: task.title }),
12469
- task.status ? /* @__PURE__ */ jsxs32("span", { className: "workspace-agents-status-panel__detail-tool-answer--muted", children: [
12543
+ return /* @__PURE__ */ jsxs34("div", { className: "workspace-agents-status-panel__detail-tool-body", children: [
12544
+ /* @__PURE__ */ jsxs34("div", { className: "workspace-agents-status-panel__detail-tool-answer", children: [
12545
+ /* @__PURE__ */ jsx46("strong", { children: task.title }),
12546
+ task.status ? /* @__PURE__ */ jsxs34("span", { className: "workspace-agents-status-panel__detail-tool-answer--muted", children: [
12470
12547
  " \xB7 ",
12471
12548
  task.status
12472
12549
  ] }) : null,
12473
- task.durationText ? /* @__PURE__ */ jsxs32("span", { className: "workspace-agents-status-panel__detail-tool-answer--muted", children: [
12550
+ task.durationText ? /* @__PURE__ */ jsxs34("span", { className: "workspace-agents-status-panel__detail-tool-answer--muted", children: [
12474
12551
  " \xB7 ",
12475
12552
  task.durationText
12476
12553
  ] }) : null
12477
12554
  ] }),
12478
- task.status === "running" && task.latestStepSummary ? /* @__PURE__ */ jsx44(ToolSection, { title: translate("agentHost.agentTool.details.summary"), children: /* @__PURE__ */ jsx44("div", { className: "workspace-agents-status-panel__detail-tool-answer workspace-agents-status-panel__detail-tool-answer--muted", children: task.latestStepSummary }) }) : null,
12479
- task.prompt ? /* @__PURE__ */ jsx44(ToolSection, { title: translate("agentHost.agentTool.details.prompt"), children: /* @__PURE__ */ jsx44(ToolMarkdownBlock, { content: task.prompt, onLinkClick }) }) : null,
12480
- task.childSessionId ? /* @__PURE__ */ jsx44(
12555
+ task.status === "running" && task.latestStepSummary ? /* @__PURE__ */ jsx46(ToolSection, { title: translate("agentHost.agentTool.details.summary"), children: /* @__PURE__ */ jsx46("div", { className: "workspace-agents-status-panel__detail-tool-answer workspace-agents-status-panel__detail-tool-answer--muted", children: task.latestStepSummary }) }) : null,
12556
+ task.prompt ? /* @__PURE__ */ jsx46(ToolSection, { title: translate("agentHost.agentTool.details.prompt"), children: /* @__PURE__ */ jsx46(ToolMarkdownBlock, { content: task.prompt, onLinkClick }) }) : null,
12557
+ task.childSessionId ? /* @__PURE__ */ jsx46(
12481
12558
  ToolSection,
12482
12559
  {
12483
12560
  title: translate("agentHost.agentTool.details.delegateSession"),
12484
- children: /* @__PURE__ */ jsx44("div", { className: "workspace-agents-status-panel__detail-tool-answer", children: task.childSessionId })
12561
+ children: /* @__PURE__ */ jsx46("div", { className: "workspace-agents-status-panel__detail-tool-answer", children: task.childSessionId })
12485
12562
  }
12486
12563
  ) : null,
12487
- task.steps.length > 0 ? /* @__PURE__ */ jsx44(ToolSection, { title: translate("agentHost.agentTool.details.steps"), children: /* @__PURE__ */ jsx44(AgentTaskStepList, { steps: task.steps, onLinkClick }) }) : null,
12488
- task.resultMarkdown ? /* @__PURE__ */ jsx44(ToolSection, { title: translate("agentHost.agentTool.details.output"), children: /* @__PURE__ */ jsx44(
12564
+ task.steps.length > 0 ? /* @__PURE__ */ jsx46(ToolSection, { title: translate("agentHost.agentTool.details.steps"), children: /* @__PURE__ */ jsx46(AgentTaskStepList, { steps: task.steps, onLinkClick }) }) : null,
12565
+ task.resultMarkdown ? /* @__PURE__ */ jsx46(ToolSection, { title: translate("agentHost.agentTool.details.output"), children: /* @__PURE__ */ jsx46(
12489
12566
  ToolMarkdownBlock,
12490
12567
  {
12491
12568
  content: task.resultMarkdown,
@@ -12493,7 +12570,7 @@ function AgentTaskContent({
12493
12570
  collapsible: true
12494
12571
  }
12495
12572
  ) }) : null,
12496
- failureMarkdown ? /* @__PURE__ */ jsx44(ToolSection, { title: translate("agentHost.agentTool.details.error"), children: /* @__PURE__ */ jsx44(
12573
+ failureMarkdown ? /* @__PURE__ */ jsx46(ToolSection, { title: translate("agentHost.agentTool.details.error"), children: /* @__PURE__ */ jsx46(
12497
12574
  ToolMarkdownBlock,
12498
12575
  {
12499
12576
  content: failureMarkdown,
@@ -12512,7 +12589,7 @@ function isFailedTaskStatus(...values) {
12512
12589
 
12513
12590
  // shared/agentConversation/components/tool-renderers/AgentTodoWriteContent.tsx
12514
12591
  import { CheckCircle2, Circle } from "lucide-react";
12515
- import { jsx as jsx45, jsxs as jsxs33 } from "react/jsx-runtime";
12592
+ import { jsx as jsx47, jsxs as jsxs35 } from "react/jsx-runtime";
12516
12593
  function AgentTodoWriteContent({
12517
12594
  call
12518
12595
  }) {
@@ -12521,13 +12598,13 @@ function AgentTodoWriteContent({
12521
12598
  if (todos.length === 0) {
12522
12599
  return null;
12523
12600
  }
12524
- return /* @__PURE__ */ jsx45("div", { className: "workspace-agents-status-panel__detail-tool-body", children: /* @__PURE__ */ jsx45(ToolSection, { title: translate("agentHost.agentTool.details.todos"), children: /* @__PURE__ */ jsx45("div", { className: "space-y-1", children: todos.map((todo) => /* @__PURE__ */ jsxs33(
12601
+ return /* @__PURE__ */ jsx47("div", { className: "workspace-agents-status-panel__detail-tool-body", children: /* @__PURE__ */ jsx47(ToolSection, { title: translate("agentHost.agentTool.details.todos"), children: /* @__PURE__ */ jsx47("div", { className: "space-y-1", children: todos.map((todo) => /* @__PURE__ */ jsxs35(
12525
12602
  "div",
12526
12603
  {
12527
12604
  className: "flex items-start gap-2 rounded-[8px] px-1 py-0.5 text-[11px]",
12528
12605
  children: [
12529
- /* @__PURE__ */ jsx45("div", { className: "mt-[1px] shrink-0", children: iconForStatus(todo.status) }),
12530
- /* @__PURE__ */ jsx45("span", { className: contentClassName(todo.status), children: todo.content })
12606
+ /* @__PURE__ */ jsx47("div", { className: "mt-[1px] shrink-0", children: iconForStatus(todo.status) }),
12607
+ /* @__PURE__ */ jsx47("span", { className: contentClassName(todo.status), children: todo.content })
12531
12608
  ]
12532
12609
  },
12533
12610
  `${todo.content}:${todo.status ?? "pending"}`
@@ -12536,7 +12613,7 @@ function AgentTodoWriteContent({
12536
12613
  function iconForStatus(status) {
12537
12614
  switch (status) {
12538
12615
  case "completed":
12539
- return /* @__PURE__ */ jsx45(
12616
+ return /* @__PURE__ */ jsx47(
12540
12617
  CheckCircle2,
12541
12618
  {
12542
12619
  size: 14,
@@ -12545,7 +12622,7 @@ function iconForStatus(status) {
12545
12622
  }
12546
12623
  );
12547
12624
  case "in_progress":
12548
- return /* @__PURE__ */ jsx45(
12625
+ return /* @__PURE__ */ jsx47(
12549
12626
  AtomIcon,
12550
12627
  {
12551
12628
  size: 14,
@@ -12555,7 +12632,7 @@ function iconForStatus(status) {
12555
12632
  }
12556
12633
  );
12557
12634
  default:
12558
- return /* @__PURE__ */ jsx45(
12635
+ return /* @__PURE__ */ jsx47(
12559
12636
  Circle,
12560
12637
  {
12561
12638
  size: 14,
@@ -12577,7 +12654,7 @@ function contentClassName(status) {
12577
12654
  }
12578
12655
 
12579
12656
  // shared/agentConversation/components/tool-renderers/AgentToolSearchContent.tsx
12580
- import { jsx as jsx46, jsxs as jsxs34 } from "react/jsx-runtime";
12657
+ import { jsx as jsx48, jsxs as jsxs36 } from "react/jsx-runtime";
12581
12658
  function AgentToolSearchContent({
12582
12659
  call
12583
12660
  }) {
@@ -12586,8 +12663,8 @@ function AgentToolSearchContent({
12586
12663
  if (!toolSearch.query && toolSearch.matches.length === 0) {
12587
12664
  return null;
12588
12665
  }
12589
- return /* @__PURE__ */ jsxs34("div", { className: "workspace-agents-status-panel__detail-tool-body", children: [
12590
- toolSearch.displayQuery ? /* @__PURE__ */ jsx46(ToolSection, { title: translate("agentHost.agentTool.details.query"), children: /* @__PURE__ */ jsx46(
12666
+ return /* @__PURE__ */ jsxs36("div", { className: "workspace-agents-status-panel__detail-tool-body", children: [
12667
+ toolSearch.displayQuery ? /* @__PURE__ */ jsx48(ToolSection, { title: translate("agentHost.agentTool.details.query"), children: /* @__PURE__ */ jsx48(
12591
12668
  ToolMarkdownBlock,
12592
12669
  {
12593
12670
  content: `${toolSearch.displayQuery}
@@ -12595,7 +12672,7 @@ function AgentToolSearchContent({
12595
12672
  ${toolSearch.mode}`
12596
12673
  }
12597
12674
  ) }) : null,
12598
- toolSearch.matches.length > 0 ? /* @__PURE__ */ jsx46(ToolSection, { title: translate("agentHost.agentTool.details.results"), children: /* @__PURE__ */ jsx46("div", { className: "workspace-agents-status-panel__detail-tool-result-list overflow-hidden rounded-[8px] border border-[var(--line-2)] bg-[var(--transparency-block)]", children: toolSearch.matches.map((match, index) => /* @__PURE__ */ jsx46(
12675
+ toolSearch.matches.length > 0 ? /* @__PURE__ */ jsx48(ToolSection, { title: translate("agentHost.agentTool.details.results"), children: /* @__PURE__ */ jsx48("div", { className: "workspace-agents-status-panel__detail-tool-result-list overflow-hidden rounded-[8px] border border-[var(--line-2)] bg-[var(--transparency-block)]", children: toolSearch.matches.map((match, index) => /* @__PURE__ */ jsx48(
12599
12676
  "div",
12600
12677
  {
12601
12678
  className: `px-3 py-2 font-[var(--tsh-font-mono)] text-[11px] text-[var(--text-primary)] ${index > 0 ? "border-t border-[var(--line-2)]" : ""}`,
@@ -12603,8 +12680,8 @@ ${toolSearch.mode}`
12603
12680
  },
12604
12681
  match
12605
12682
  )) }) }) : null,
12606
- toolSearch.matches.length === 0 ? /* @__PURE__ */ jsx46("div", { className: "text-[11px] italic text-[var(--text-tertiary)]", children: translate("agentHost.agentTool.details.noMatchingTools") }) : null,
12607
- typeof toolSearch.totalDeferredTools === "number" ? /* @__PURE__ */ jsx46("div", { className: "text-[10px] text-[var(--text-tertiary)]", children: translate("agentHost.agentTool.details.loadedAvailable", {
12683
+ toolSearch.matches.length === 0 ? /* @__PURE__ */ jsx48("div", { className: "text-[11px] italic text-[var(--text-tertiary)]", children: translate("agentHost.agentTool.details.noMatchingTools") }) : null,
12684
+ typeof toolSearch.totalDeferredTools === "number" ? /* @__PURE__ */ jsx48("div", { className: "text-[10px] text-[var(--text-tertiary)]", children: translate("agentHost.agentTool.details.loadedAvailable", {
12608
12685
  loaded: toolSearch.matches.length,
12609
12686
  available: toolSearch.totalDeferredTools
12610
12687
  }) }) : null
@@ -12612,7 +12689,7 @@ ${toolSearch.mode}`
12612
12689
  }
12613
12690
 
12614
12691
  // shared/agentConversation/components/tool-renderers/AgentWriteContent.tsx
12615
- import { jsx as jsx47, jsxs as jsxs35 } from "react/jsx-runtime";
12692
+ import { jsx as jsx49, jsxs as jsxs37 } from "react/jsx-runtime";
12616
12693
  function AgentWriteContent({
12617
12694
  call,
12618
12695
  onLinkClick
@@ -12632,9 +12709,9 @@ function AgentWriteContent({
12632
12709
  if (!hasRenderableContent) {
12633
12710
  return null;
12634
12711
  }
12635
- return /* @__PURE__ */ jsxs35("div", { className: "workspace-agents-status-panel__detail-tool-body workspace-agents-status-panel__detail-tool-body--flat", children: [
12636
- path && files.length === 0 ? /* @__PURE__ */ jsx47(ToolMarkdownBlock, { content: path, onLinkClick }) : null,
12637
- patchFiles.map((candidate) => /* @__PURE__ */ jsx47(
12712
+ return /* @__PURE__ */ jsxs37("div", { className: "workspace-agents-status-panel__detail-tool-body workspace-agents-status-panel__detail-tool-body--flat", children: [
12713
+ path && files.length === 0 ? /* @__PURE__ */ jsx49(ToolMarkdownBlock, { content: path, onLinkClick }) : null,
12714
+ patchFiles.map((candidate) => /* @__PURE__ */ jsx49(
12638
12715
  AgentUnifiedPatchViewer,
12639
12716
  {
12640
12717
  path: candidate.path,
@@ -12645,7 +12722,7 @@ function AgentWriteContent({
12645
12722
  },
12646
12723
  `patch:${candidate.path}`
12647
12724
  )),
12648
- contentFiles.map((candidate) => /* @__PURE__ */ jsx47(
12725
+ contentFiles.map((candidate) => /* @__PURE__ */ jsx49(
12649
12726
  AgentCodeBlock,
12650
12727
  {
12651
12728
  path: candidate.path,
@@ -12656,7 +12733,7 @@ function AgentWriteContent({
12656
12733
  },
12657
12734
  `content:${candidate.path}`
12658
12735
  )),
12659
- fallbackContent ? /* @__PURE__ */ jsx47(
12736
+ fallbackContent ? /* @__PURE__ */ jsx49(
12660
12737
  AgentCodeBlock,
12661
12738
  {
12662
12739
  path,
@@ -12670,7 +12747,7 @@ function AgentWriteContent({
12670
12747
  }
12671
12748
 
12672
12749
  // shared/agentConversation/components/tool-renderers/AgentExpandedToolContent.tsx
12673
- import { jsx as jsx48 } from "react/jsx-runtime";
12750
+ import { jsx as jsx50 } from "react/jsx-runtime";
12674
12751
  function AgentExpandedToolContent({
12675
12752
  call,
12676
12753
  onLinkClick,
@@ -12681,65 +12758,65 @@ function AgentExpandedToolContent({
12681
12758
  let content;
12682
12759
  switch (call.rendererKind) {
12683
12760
  case "approval":
12684
- content = /* @__PURE__ */ jsx48(AgentApprovalContent, { ...props });
12761
+ content = /* @__PURE__ */ jsx50(AgentApprovalContent, { ...props });
12685
12762
  break;
12686
12763
  case "plan-enter":
12687
12764
  case "plan-exit":
12688
- content = /* @__PURE__ */ jsx48(AgentPlanModeContent, { ...props });
12765
+ content = /* @__PURE__ */ jsx50(AgentPlanModeContent, { ...props });
12689
12766
  break;
12690
12767
  case "ask-user":
12691
- content = /* @__PURE__ */ jsx48(AgentAskUserQuestionContent, { ...props });
12768
+ content = /* @__PURE__ */ jsx50(AgentAskUserQuestionContent, { ...props });
12692
12769
  break;
12693
12770
  case "task":
12694
- content = /* @__PURE__ */ jsx48(AgentTaskContent, { ...props });
12771
+ content = /* @__PURE__ */ jsx50(AgentTaskContent, { ...props });
12695
12772
  break;
12696
12773
  case "read":
12697
- content = /* @__PURE__ */ jsx48(AgentReadContent, { ...props });
12774
+ content = /* @__PURE__ */ jsx50(AgentReadContent, { ...props });
12698
12775
  break;
12699
12776
  case "write":
12700
- content = /* @__PURE__ */ jsx48(AgentWriteContent, { ...props });
12777
+ content = /* @__PURE__ */ jsx50(AgentWriteContent, { ...props });
12701
12778
  break;
12702
12779
  case "edit":
12703
- content = /* @__PURE__ */ jsx48(AgentEditContent, { ...props });
12780
+ content = /* @__PURE__ */ jsx50(AgentEditContent, { ...props });
12704
12781
  break;
12705
12782
  case "bash":
12706
- content = /* @__PURE__ */ jsx48(AgentBashContent, { ...props });
12783
+ content = /* @__PURE__ */ jsx50(AgentBashContent, { ...props });
12707
12784
  break;
12708
12785
  case "search":
12709
- content = /* @__PURE__ */ jsx48(AgentSearchContent, { ...props });
12786
+ content = /* @__PURE__ */ jsx50(AgentSearchContent, { ...props });
12710
12787
  break;
12711
12788
  case "web-search":
12712
- content = /* @__PURE__ */ jsx48(AgentWebSearchContent, { ...props });
12789
+ content = /* @__PURE__ */ jsx50(AgentWebSearchContent, { ...props });
12713
12790
  break;
12714
12791
  case "web-fetch":
12715
- content = /* @__PURE__ */ jsx48(AgentWebFetchContent, { ...props });
12792
+ content = /* @__PURE__ */ jsx50(AgentWebFetchContent, { ...props });
12716
12793
  break;
12717
12794
  case "image-generation":
12718
- content = /* @__PURE__ */ jsx48(AgentImageGenerationContent, { ...props });
12795
+ content = /* @__PURE__ */ jsx50(AgentImageGenerationContent, { ...props });
12719
12796
  break;
12720
12797
  case "todo-write":
12721
- content = /* @__PURE__ */ jsx48(AgentTodoWriteContent, { ...props });
12798
+ content = /* @__PURE__ */ jsx50(AgentTodoWriteContent, { ...props });
12722
12799
  break;
12723
12800
  case "tool-search":
12724
- content = /* @__PURE__ */ jsx48(AgentToolSearchContent, { ...props });
12801
+ content = /* @__PURE__ */ jsx50(AgentToolSearchContent, { ...props });
12725
12802
  break;
12726
12803
  case "skill":
12727
- content = /* @__PURE__ */ jsx48(AgentSkillContent, { ...props });
12804
+ content = /* @__PURE__ */ jsx50(AgentSkillContent, { ...props });
12728
12805
  break;
12729
12806
  case "mcp":
12730
- content = /* @__PURE__ */ jsx48(AgentMcpToolContent, { ...props });
12807
+ content = /* @__PURE__ */ jsx50(AgentMcpToolContent, { ...props });
12731
12808
  break;
12732
12809
  default:
12733
- content = /* @__PURE__ */ jsx48(AgentDefaultToolContent, { ...props });
12810
+ content = /* @__PURE__ */ jsx50(AgentDefaultToolContent, { ...props });
12734
12811
  }
12735
12812
  if (!content) {
12736
12813
  return null;
12737
12814
  }
12738
- return /* @__PURE__ */ jsx48(AgentToolPreviewModeProvider, { previewMode, children: content });
12815
+ return /* @__PURE__ */ jsx50(AgentToolPreviewModeProvider, { previewMode, children: content });
12739
12816
  }
12740
12817
 
12741
12818
  // shared/agentConversation/components/AgentAskUserQuestionCard.tsx
12742
- import { jsx as jsx49, jsxs as jsxs36 } from "react/jsx-runtime";
12819
+ import { jsx as jsx51, jsxs as jsxs38 } from "react/jsx-runtime";
12743
12820
  function AgentAskUserQuestionCard({
12744
12821
  call,
12745
12822
  onLinkClick,
@@ -12751,20 +12828,20 @@ function AgentAskUserQuestionCard({
12751
12828
  const waitingInput = (call.askUserQuestion?.status ?? call.status ?? "").trim().toLowerCase() === "waiting_input";
12752
12829
  const hasDetail = hasAgentToolContent(call);
12753
12830
  const pinned = nonCollapsible ?? waitingInput;
12754
- const [expanded, setExpanded] = useState13(defaultExpanded ?? waitingInput);
12755
- return /* @__PURE__ */ jsxs36("div", { className: "workspace-agents-status-panel__detail-tool-row workspace-agents-status-panel__detail-tool-row--ask-user", children: [
12756
- hasDetail && !pinned ? /* @__PURE__ */ jsx49(
12831
+ const [expanded, setExpanded] = useState14(defaultExpanded ?? waitingInput);
12832
+ return /* @__PURE__ */ jsxs38("div", { className: "workspace-agents-status-panel__detail-tool-row workspace-agents-status-panel__detail-tool-row--ask-user", children: [
12833
+ hasDetail && !pinned ? /* @__PURE__ */ jsx51(
12757
12834
  "button",
12758
12835
  {
12759
12836
  type: "button",
12760
12837
  className: "workspace-agents-status-panel__detail-tool-row-head workspace-agents-status-panel__detail-tool-row-head--button",
12761
12838
  "aria-expanded": expanded,
12762
12839
  onClick: () => setExpanded((value) => !value),
12763
- children: /* @__PURE__ */ jsx49(AgentToolCallHeader, { call, expanded, hasDetail: true })
12840
+ children: /* @__PURE__ */ jsx51(AgentToolCallHeader, { call, expanded, hasDetail: true })
12764
12841
  }
12765
- ) : /* @__PURE__ */ jsx49("div", { className: "workspace-agents-status-panel__detail-tool-row-head", children: /* @__PURE__ */ jsx49(AgentToolCallHeader, { call, expanded: false, hasDetail: false }) }),
12766
- !hasDetail && call.summary ? /* @__PURE__ */ jsx49("div", { className: "workspace-agents-status-panel__detail-tool-summary", children: call.summary }) : null,
12767
- hasDetail && pinned ? /* @__PURE__ */ jsx49(
12842
+ ) : /* @__PURE__ */ jsx51("div", { className: "workspace-agents-status-panel__detail-tool-row-head", children: /* @__PURE__ */ jsx51(AgentToolCallHeader, { call, expanded: false, hasDetail: false }) }),
12843
+ !hasDetail && call.summary ? /* @__PURE__ */ jsx51("div", { className: "workspace-agents-status-panel__detail-tool-summary", children: call.summary }) : null,
12844
+ hasDetail && pinned ? /* @__PURE__ */ jsx51(
12768
12845
  AgentExpandedToolContent,
12769
12846
  {
12770
12847
  call,
@@ -12772,7 +12849,7 @@ function AgentAskUserQuestionCard({
12772
12849
  previewMode
12773
12850
  }
12774
12851
  ) : null,
12775
- hasDetail && !pinned ? /* @__PURE__ */ jsx49(CollapsibleReveal, { expanded, children: /* @__PURE__ */ jsx49(
12852
+ hasDetail && !pinned ? /* @__PURE__ */ jsx51(CollapsibleReveal, { expanded, children: /* @__PURE__ */ jsx51(
12776
12853
  AgentExpandedToolContent,
12777
12854
  {
12778
12855
  call,
@@ -12784,7 +12861,7 @@ function AgentAskUserQuestionCard({
12784
12861
  }
12785
12862
 
12786
12863
  // shared/agentConversation/components/AgentEnterPlanModeCard.tsx
12787
- import { jsx as jsx50, jsxs as jsxs37 } from "react/jsx-runtime";
12864
+ import { jsx as jsx52, jsxs as jsxs39 } from "react/jsx-runtime";
12788
12865
  function AgentEnterPlanModeCard({
12789
12866
  call,
12790
12867
  onLinkClick,
@@ -12792,10 +12869,10 @@ function AgentEnterPlanModeCard({
12792
12869
  }) {
12793
12870
  "use memo";
12794
12871
  const hasDetail = hasAgentToolContent(call);
12795
- return /* @__PURE__ */ jsxs37("div", { className: "workspace-agents-status-panel__detail-tool-row workspace-agents-status-panel__detail-tool-row--plan-enter", children: [
12796
- /* @__PURE__ */ jsx50("div", { className: "workspace-agents-status-panel__detail-tool-row-head", children: /* @__PURE__ */ jsx50(AgentToolCallHeader, { call, expanded: false, hasDetail: false }) }),
12797
- !hasDetail && call.summary ? /* @__PURE__ */ jsx50("div", { className: "workspace-agents-status-panel__detail-tool-summary", children: call.summary }) : null,
12798
- hasDetail ? /* @__PURE__ */ jsx50(
12872
+ return /* @__PURE__ */ jsxs39("div", { className: "workspace-agents-status-panel__detail-tool-row workspace-agents-status-panel__detail-tool-row--plan-enter", children: [
12873
+ /* @__PURE__ */ jsx52("div", { className: "workspace-agents-status-panel__detail-tool-row-head", children: /* @__PURE__ */ jsx52(AgentToolCallHeader, { call, expanded: false, hasDetail: false }) }),
12874
+ !hasDetail && call.summary ? /* @__PURE__ */ jsx52("div", { className: "workspace-agents-status-panel__detail-tool-summary", children: call.summary }) : null,
12875
+ hasDetail ? /* @__PURE__ */ jsx52(
12799
12876
  AgentExpandedToolContent,
12800
12877
  {
12801
12878
  call,
@@ -12807,7 +12884,7 @@ function AgentEnterPlanModeCard({
12807
12884
  }
12808
12885
 
12809
12886
  // shared/agentConversation/components/AgentExitPlanModeCard.tsx
12810
- import { jsx as jsx51, jsxs as jsxs38 } from "react/jsx-runtime";
12887
+ import { jsx as jsx53, jsxs as jsxs40 } from "react/jsx-runtime";
12811
12888
  function AgentExitPlanModeCard({
12812
12889
  call,
12813
12890
  onLinkClick,
@@ -12815,10 +12892,10 @@ function AgentExitPlanModeCard({
12815
12892
  }) {
12816
12893
  "use memo";
12817
12894
  const hasDetail = hasAgentToolContent(call);
12818
- return /* @__PURE__ */ jsxs38("div", { className: "workspace-agents-status-panel__detail-tool-row workspace-agents-status-panel__detail-tool-row--plan-exit", children: [
12819
- /* @__PURE__ */ jsx51("div", { className: "workspace-agents-status-panel__detail-tool-row-head", children: /* @__PURE__ */ jsx51(AgentToolCallHeader, { call, expanded: false, hasDetail: false }) }),
12820
- !hasDetail && call.summary ? /* @__PURE__ */ jsx51("div", { className: "workspace-agents-status-panel__detail-tool-summary", children: call.summary }) : null,
12821
- hasDetail ? /* @__PURE__ */ jsx51(
12895
+ return /* @__PURE__ */ jsxs40("div", { className: "workspace-agents-status-panel__detail-tool-row workspace-agents-status-panel__detail-tool-row--plan-exit", children: [
12896
+ /* @__PURE__ */ jsx53("div", { className: "workspace-agents-status-panel__detail-tool-row-head", children: /* @__PURE__ */ jsx53(AgentToolCallHeader, { call, expanded: false, hasDetail: false }) }),
12897
+ !hasDetail && call.summary ? /* @__PURE__ */ jsx53("div", { className: "workspace-agents-status-panel__detail-tool-summary", children: call.summary }) : null,
12898
+ hasDetail ? /* @__PURE__ */ jsx53(
12822
12899
  AgentExpandedToolContent,
12823
12900
  {
12824
12901
  call,
@@ -12830,8 +12907,8 @@ function AgentExitPlanModeCard({
12830
12907
  }
12831
12908
 
12832
12909
  // shared/agentConversation/components/AgentTaskCallCard.tsx
12833
- import { useState as useState14 } from "react";
12834
- import { jsx as jsx52, jsxs as jsxs39 } from "react/jsx-runtime";
12910
+ import { useState as useState15 } from "react";
12911
+ import { jsx as jsx54, jsxs as jsxs41 } from "react/jsx-runtime";
12835
12912
  function AgentTaskCallCard({
12836
12913
  call,
12837
12914
  onLinkClick,
@@ -12843,10 +12920,10 @@ function AgentTaskCallCard({
12843
12920
  const running = (call.task?.status ?? call.status ?? "").trim().toLowerCase() === "running";
12844
12921
  const hasDetail = hasAgentToolContent(call);
12845
12922
  const pinned = nonCollapsible ?? running;
12846
- const [expanded, setExpanded] = useState14(defaultExpanded ?? running);
12923
+ const [expanded, setExpanded] = useState15(defaultExpanded ?? running);
12847
12924
  const ariaLabel = taskCallAriaLabel(call);
12848
- return /* @__PURE__ */ jsxs39("div", { className: "workspace-agents-status-panel__detail-tool-row workspace-agents-status-panel__detail-tool-row--task", children: [
12849
- hasDetail && !pinned ? /* @__PURE__ */ jsx52(
12925
+ return /* @__PURE__ */ jsxs41("div", { className: "workspace-agents-status-panel__detail-tool-row workspace-agents-status-panel__detail-tool-row--task", children: [
12926
+ hasDetail && !pinned ? /* @__PURE__ */ jsx54(
12850
12927
  "button",
12851
12928
  {
12852
12929
  type: "button",
@@ -12854,11 +12931,11 @@ function AgentTaskCallCard({
12854
12931
  "aria-expanded": expanded,
12855
12932
  "aria-label": ariaLabel,
12856
12933
  onClick: () => setExpanded((value) => !value),
12857
- children: /* @__PURE__ */ jsx52(AgentToolCallHeader, { call, expanded, hasDetail: true })
12934
+ children: /* @__PURE__ */ jsx54(AgentToolCallHeader, { call, expanded, hasDetail: true })
12858
12935
  }
12859
- ) : /* @__PURE__ */ jsx52("div", { className: "workspace-agents-status-panel__detail-tool-row-head", children: /* @__PURE__ */ jsx52(AgentToolCallHeader, { call, expanded: false, hasDetail: false }) }),
12860
- !hasDetail && call.summary ? /* @__PURE__ */ jsx52("div", { className: "workspace-agents-status-panel__detail-tool-summary", children: call.summary }) : null,
12861
- hasDetail && pinned ? /* @__PURE__ */ jsx52(
12936
+ ) : /* @__PURE__ */ jsx54("div", { className: "workspace-agents-status-panel__detail-tool-row-head", children: /* @__PURE__ */ jsx54(AgentToolCallHeader, { call, expanded: false, hasDetail: false }) }),
12937
+ !hasDetail && call.summary ? /* @__PURE__ */ jsx54("div", { className: "workspace-agents-status-panel__detail-tool-summary", children: call.summary }) : null,
12938
+ hasDetail && pinned ? /* @__PURE__ */ jsx54(
12862
12939
  AgentExpandedToolContent,
12863
12940
  {
12864
12941
  call,
@@ -12866,7 +12943,7 @@ function AgentTaskCallCard({
12866
12943
  previewMode
12867
12944
  }
12868
12945
  ) : null,
12869
- hasDetail && !pinned ? /* @__PURE__ */ jsx52(CollapsibleReveal, { expanded, children: /* @__PURE__ */ jsx52(
12946
+ hasDetail && !pinned ? /* @__PURE__ */ jsx54(CollapsibleReveal, { expanded, children: /* @__PURE__ */ jsx54(
12870
12947
  AgentExpandedToolContent,
12871
12948
  {
12872
12949
  call,
@@ -12885,21 +12962,21 @@ function taskCallAriaLabel(call) {
12885
12962
  }
12886
12963
 
12887
12964
  // shared/agentConversation/components/AgentSubAgentCards.tsx
12888
- import { memo, useEffect as useEffect11, useState as useState15 } from "react";
12965
+ import { memo, useEffect as useEffect11, useState as useState16 } from "react";
12889
12966
  import { AlertCircle as AlertCircle2, ChevronDown as ChevronDown6, ChevronRight as ChevronRight6 } from "lucide-react";
12890
12967
 
12891
12968
  // app/renderer/components/icons/AgentLinedIcon.tsx
12892
- import { jsx as jsx53 } from "react/jsx-runtime";
12969
+ import { jsx as jsx55 } from "react/jsx-runtime";
12893
12970
  function AgentLinedIcon(props) {
12894
12971
  "use memo";
12895
- return /* @__PURE__ */ jsx53(
12972
+ return /* @__PURE__ */ jsx55(
12896
12973
  "svg",
12897
12974
  {
12898
12975
  viewBox: "0 0 24 24",
12899
12976
  fill: "none",
12900
12977
  xmlns: "http://www.w3.org/2000/svg",
12901
12978
  ...props,
12902
- children: /* @__PURE__ */ jsx53(
12979
+ children: /* @__PURE__ */ jsx55(
12903
12980
  "path",
12904
12981
  {
12905
12982
  d: "M12 3C12.5523 3 13 3.44772 13 4V7H18C19.6569 7 21 8.34315 21 10V13H22C22.5523 13 23 13.4477 23 14C23 14.5523 22.5523 15 22 15H21V18C21 19.6569 19.6569 21 18 21H6C4.34315 21 3 19.6569 3 18V15H2C1.44772 15 1 14.5523 1 14C1 13.4477 1.44772 13 2 13H3V10C3 8.34315 4.34315 7 6 7H11V5H8C7.44772 5 7 4.55228 7 4C7 3.44772 7.44772 3 8 3H12ZM6 9C5.44772 9 5 9.44772 5 10V18C5 18.5523 5.44772 19 6 19H18C18.5523 19 19 18.5523 19 18V10C19 9.44772 18.5523 9 18 9H6ZM9 12C9.55229 12 10 12.4477 10 13V15C10 15.5523 9.55229 16 9 16C8.44772 16 8 15.5523 8 15V13C8 12.4477 8.44772 12 9 12ZM15 12C15.5523 12 16 12.4477 16 13V15C16 15.5523 15.5523 16 15 16C14.4477 16 14 15.5523 14 15V13C14 12.4477 14.4477 12 15 12Z",
@@ -12911,7 +12988,7 @@ function AgentLinedIcon(props) {
12911
12988
  }
12912
12989
 
12913
12990
  // shared/agentConversation/components/AgentSubAgentCards.tsx
12914
- import { Fragment as Fragment5, jsx as jsx54, jsxs as jsxs40 } from "react/jsx-runtime";
12991
+ import { Fragment as Fragment5, jsx as jsx56, jsxs as jsxs42 } from "react/jsx-runtime";
12915
12992
  function AgentSubAgentCards({
12916
12993
  call,
12917
12994
  onLinkClick
@@ -12921,7 +12998,7 @@ function AgentSubAgentCards({
12921
12998
  if (subAgents.length === 0) {
12922
12999
  return null;
12923
13000
  }
12924
- return /* @__PURE__ */ jsx54(Fragment5, { children: subAgents.map((subAgent) => /* @__PURE__ */ jsx54(
13001
+ return /* @__PURE__ */ jsx56(Fragment5, { children: subAgents.map((subAgent) => /* @__PURE__ */ jsx56(
12925
13002
  AgentSubAgentCard,
12926
13003
  {
12927
13004
  subAgent,
@@ -12942,14 +13019,14 @@ function AgentSubAgentCardImpl({
12942
13019
  onLinkClick
12943
13020
  }) {
12944
13021
  "use memo";
12945
- const [expanded, setExpanded] = useState15(subAgent.status === "running");
12946
- return /* @__PURE__ */ jsxs40(
13022
+ const [expanded, setExpanded] = useState16(subAgent.status === "running");
13023
+ return /* @__PURE__ */ jsxs42(
12947
13024
  "div",
12948
13025
  {
12949
13026
  className: "workspace-agents-status-panel__detail-tool-row workspace-agents-status-panel__detail-tool-row--subagent",
12950
13027
  "data-status": subAgent.status,
12951
13028
  children: [
12952
- /* @__PURE__ */ jsx54(
13029
+ /* @__PURE__ */ jsx56(
12953
13030
  "button",
12954
13031
  {
12955
13032
  type: "button",
@@ -12957,10 +13034,10 @@ function AgentSubAgentCardImpl({
12957
13034
  "aria-expanded": expanded,
12958
13035
  "aria-label": subAgentAriaLabel(subAgent),
12959
13036
  onClick: () => setExpanded((value) => !value),
12960
- children: /* @__PURE__ */ jsx54(SubAgentHeader, { subAgent, expanded })
13037
+ children: /* @__PURE__ */ jsx56(SubAgentHeader, { subAgent, expanded })
12961
13038
  }
12962
13039
  ),
12963
- /* @__PURE__ */ jsx54(CollapsibleReveal, { expanded, children: /* @__PURE__ */ jsx54("div", { className: "workspace-agents-status-panel__detail-subagent-reveal", children: /* @__PURE__ */ jsx54(SubAgentBody, { subAgent, onLinkClick }) }) })
13040
+ /* @__PURE__ */ jsx56(CollapsibleReveal, { expanded, children: /* @__PURE__ */ jsx56("div", { className: "workspace-agents-status-panel__detail-subagent-reveal", children: /* @__PURE__ */ jsx56(SubAgentBody, { subAgent, onLinkClick }) }) })
12964
13041
  ]
12965
13042
  }
12966
13043
  );
@@ -12975,7 +13052,7 @@ function SubAgentHeader({
12975
13052
  const runningNowUnixMs = useRunningSubAgentNowUnixMs(subAgent);
12976
13053
  const elapsedText = subAgentElapsedText(subAgent, runningNowUnixMs);
12977
13054
  const nameText = subAgentNameText(subAgent);
12978
- return /* @__PURE__ */ jsxs40(
13055
+ return /* @__PURE__ */ jsxs42(
12979
13056
  "div",
12980
13057
  {
12981
13058
  "data-active": running ? "true" : void 0,
@@ -12984,16 +13061,16 @@ function SubAgentHeader({
12984
13061
  running ? "tsh-inline-scanlight-group" : ""
12985
13062
  ].filter(Boolean).join(" "),
12986
13063
  children: [
12987
- /* @__PURE__ */ jsx54("div", { className: "workspace-agents-status-panel__detail-tool-row-icon tsh-inline-scanlight-icon", children: subAgent.status === "failed" ? /* @__PURE__ */ jsx54(AlertCircle2, { size: 16, strokeWidth: 2, "aria-hidden": "true" }) : /* @__PURE__ */ jsx54(AgentLinedIcon, { width: 16, height: 16, "aria-hidden": "true" }) }),
12988
- /* @__PURE__ */ jsxs40("div", { className: "workspace-agents-status-panel__detail-tool-row-text", children: [
12989
- /* @__PURE__ */ jsx54("strong", { className: "workspace-agents-status-panel__detail-tool-row-title", children: translate("agentHost.agentTool.details.subAgentFallbackName") }),
12990
- nameText ? /* @__PURE__ */ jsx54("span", { className: "workspace-agents-status-panel__detail-subagent-name", children: nameText }) : null,
12991
- /* @__PURE__ */ jsxs40("span", { className: "workspace-agents-status-panel__detail-tool-status", children: [
13064
+ /* @__PURE__ */ jsx56("div", { className: "workspace-agents-status-panel__detail-tool-row-icon tsh-inline-scanlight-icon", children: subAgent.status === "failed" ? /* @__PURE__ */ jsx56(AlertCircle2, { size: 16, strokeWidth: 2, "aria-hidden": "true" }) : /* @__PURE__ */ jsx56(AgentLinedIcon, { width: 16, height: 16, "aria-hidden": "true" }) }),
13065
+ /* @__PURE__ */ jsxs42("div", { className: "workspace-agents-status-panel__detail-tool-row-text", children: [
13066
+ /* @__PURE__ */ jsx56("strong", { className: "workspace-agents-status-panel__detail-tool-row-title", children: translate("agentHost.agentTool.details.subAgentFallbackName") }),
13067
+ nameText ? /* @__PURE__ */ jsx56("span", { className: "workspace-agents-status-panel__detail-subagent-name", children: nameText }) : null,
13068
+ /* @__PURE__ */ jsxs42("span", { className: "workspace-agents-status-panel__detail-tool-status", children: [
12992
13069
  elapsedText ? `${elapsedText} \xB7 ` : "",
12993
13070
  statusLabel
12994
13071
  ] })
12995
13072
  ] }),
12996
- expanded ? /* @__PURE__ */ jsx54(
13073
+ expanded ? /* @__PURE__ */ jsx56(
12997
13074
  ChevronDown6,
12998
13075
  {
12999
13076
  size: 12,
@@ -13001,7 +13078,7 @@ function SubAgentHeader({
13001
13078
  "aria-hidden": "true",
13002
13079
  className: "workspace-agents-status-panel__detail-tool-row-chevron"
13003
13080
  }
13004
- ) : /* @__PURE__ */ jsx54(
13081
+ ) : /* @__PURE__ */ jsx56(
13005
13082
  ChevronRight6,
13006
13083
  {
13007
13084
  size: 12,
@@ -13018,9 +13095,9 @@ function SubAgentBody({
13018
13095
  subAgent
13019
13096
  }) {
13020
13097
  "use memo";
13021
- return /* @__PURE__ */ jsx54("div", { className: "workspace-agents-status-panel__detail-tool-body workspace-agents-status-panel__detail-tool-body--plain", children: /* @__PURE__ */ jsxs40("div", { className: "workspace-agents-status-panel__detail-subagent-terminal", children: [
13022
- subAgent.task ? /* @__PURE__ */ jsx54("div", { className: "workspace-agents-status-panel__detail-subagent-task-strip", children: subAgent.task }) : null,
13023
- /* @__PURE__ */ jsx54(SubAgentProgress, { subAgent })
13098
+ return /* @__PURE__ */ jsx56("div", { className: "workspace-agents-status-panel__detail-tool-body workspace-agents-status-panel__detail-tool-body--plain", children: /* @__PURE__ */ jsxs42("div", { className: "workspace-agents-status-panel__detail-subagent-terminal", children: [
13099
+ subAgent.task ? /* @__PURE__ */ jsx56("div", { className: "workspace-agents-status-panel__detail-subagent-task-strip", children: subAgent.task }) : null,
13100
+ /* @__PURE__ */ jsx56(SubAgentProgress, { subAgent })
13024
13101
  ] }) });
13025
13102
  }
13026
13103
  function SubAgentProgress({
@@ -13030,7 +13107,7 @@ function SubAgentProgress({
13030
13107
  const text = subAgent.failureDetail ?? subAgent.latestActivity ?? translate(
13031
13108
  subAgent.queued ? "agentHost.agentTool.details.subAgentQueued" : "agentHost.agentTool.details.subAgentStarting"
13032
13109
  );
13033
- return /* @__PURE__ */ jsx54(
13110
+ return /* @__PURE__ */ jsx56(
13034
13111
  "div",
13035
13112
  {
13036
13113
  className: `workspace-agents-status-panel__detail-subagent-activity workspace-agents-status-panel__detail-subagent-activity--in-terminal${subAgent.failureDetail ? " workspace-agents-status-panel__detail-subagent-activity--failure" : ""}`,
@@ -13069,7 +13146,7 @@ function isSubAgentActivelyRunning(subAgent) {
13069
13146
  }
13070
13147
  function useRunningSubAgentNowUnixMs(subAgent) {
13071
13148
  const shouldTick = isSubAgentActivelyRunning(subAgent) && typeof subAgent.startedAtUnixMs === "number";
13072
- const [nowUnixMs, setNowUnixMs] = useState15(
13149
+ const [nowUnixMs, setNowUnixMs] = useState16(
13073
13150
  () => shouldTick ? Date.now() : null
13074
13151
  );
13075
13152
  useEffect11(() => {
@@ -13099,8 +13176,8 @@ function subAgentElapsedText(subAgent, runningNowUnixMs) {
13099
13176
  }
13100
13177
 
13101
13178
  // shared/agentConversation/components/AgentToolCallCard.tsx
13102
- import { useState as useState16 } from "react";
13103
- import { jsx as jsx55, jsxs as jsxs41 } from "react/jsx-runtime";
13179
+ import { useState as useState17 } from "react";
13180
+ import { jsx as jsx57, jsxs as jsxs43 } from "react/jsx-runtime";
13104
13181
  function AgentToolCallCard({
13105
13182
  call,
13106
13183
  onLinkClick,
@@ -13110,11 +13187,11 @@ function AgentToolCallCard({
13110
13187
  variantClassName
13111
13188
  }) {
13112
13189
  "use memo";
13113
- const [expanded, setExpanded] = useState16(defaultExpanded);
13190
+ const [expanded, setExpanded] = useState17(defaultExpanded);
13114
13191
  const hasDetail = hasAgentToolContent(call);
13115
13192
  const canCollapse = hasDetail && !nonCollapsible;
13116
13193
  const ariaLabel = toolCallAriaLabel(call);
13117
- return /* @__PURE__ */ jsxs41(
13194
+ return /* @__PURE__ */ jsxs43(
13118
13195
  "div",
13119
13196
  {
13120
13197
  className: [
@@ -13122,7 +13199,7 @@ function AgentToolCallCard({
13122
13199
  variantClassName ?? ""
13123
13200
  ].filter(Boolean).join(" "),
13124
13201
  children: [
13125
- canCollapse ? /* @__PURE__ */ jsx55(
13202
+ canCollapse ? /* @__PURE__ */ jsx57(
13126
13203
  "button",
13127
13204
  {
13128
13205
  type: "button",
@@ -13130,10 +13207,10 @@ function AgentToolCallCard({
13130
13207
  "aria-expanded": expanded,
13131
13208
  "aria-label": ariaLabel,
13132
13209
  onClick: () => setExpanded((value) => !value),
13133
- children: /* @__PURE__ */ jsx55(AgentToolCallHeader, { call, expanded, hasDetail: true })
13210
+ children: /* @__PURE__ */ jsx57(AgentToolCallHeader, { call, expanded, hasDetail: true })
13134
13211
  }
13135
- ) : /* @__PURE__ */ jsx55("div", { className: "workspace-agents-status-panel__detail-tool-row-head", children: /* @__PURE__ */ jsx55(AgentToolCallHeader, { call, expanded: false, hasDetail: false }) }),
13136
- hasDetail && nonCollapsible ? /* @__PURE__ */ jsx55(
13212
+ ) : /* @__PURE__ */ jsx57("div", { className: "workspace-agents-status-panel__detail-tool-row-head", children: /* @__PURE__ */ jsx57(AgentToolCallHeader, { call, expanded: false, hasDetail: false }) }),
13213
+ hasDetail && nonCollapsible ? /* @__PURE__ */ jsx57(
13137
13214
  AgentExpandedToolContent,
13138
13215
  {
13139
13216
  call,
@@ -13141,7 +13218,7 @@ function AgentToolCallCard({
13141
13218
  previewMode
13142
13219
  }
13143
13220
  ) : null,
13144
- hasDetail && !nonCollapsible ? /* @__PURE__ */ jsx55(CollapsibleReveal, { expanded, children: /* @__PURE__ */ jsx55(
13221
+ hasDetail && !nonCollapsible ? /* @__PURE__ */ jsx57(CollapsibleReveal, { expanded, children: /* @__PURE__ */ jsx57(
13145
13222
  AgentExpandedToolContent,
13146
13223
  {
13147
13224
  call,
@@ -13162,7 +13239,7 @@ function toolCallAriaLabel(call) {
13162
13239
  }
13163
13240
 
13164
13241
  // shared/agentConversation/components/AgentToolGroupRow.tsx
13165
- import { Fragment as Fragment6, jsx as jsx56, jsxs as jsxs42 } from "react/jsx-runtime";
13242
+ import { Fragment as Fragment6, jsx as jsx58, jsxs as jsxs44 } from "react/jsx-runtime";
13166
13243
  var AgentToolGroupRow = memo2(function AgentToolGroupRow2({
13167
13244
  row,
13168
13245
  label,
@@ -13176,7 +13253,7 @@ var AgentToolGroupRow = memo2(function AgentToolGroupRow2({
13176
13253
  rawTimelineJsonLabel = ""
13177
13254
  }) {
13178
13255
  "use memo";
13179
- const [localExpanded, setLocalExpanded] = useState17(false);
13256
+ const [localExpanded, setLocalExpanded] = useState18(false);
13180
13257
  const hasDetail = hasGroupDetail(row);
13181
13258
  const isExpanded = hasDetail && (expanded ?? localExpanded);
13182
13259
  const setNextExpanded = (nextExpanded) => {
@@ -13198,13 +13275,13 @@ var AgentToolGroupRow = memo2(function AgentToolGroupRow2({
13198
13275
  rawTimelineJsonLabel
13199
13276
  );
13200
13277
  }
13201
- return /* @__PURE__ */ jsxs42(
13278
+ return /* @__PURE__ */ jsxs44(
13202
13279
  "div",
13203
13280
  {
13204
13281
  className: "workspace-agents-status-panel__detail-tool-section",
13205
13282
  "data-tool-group-expanded": isExpanded ? "true" : void 0,
13206
13283
  children: [
13207
- hasDetail ? /* @__PURE__ */ jsxs42(
13284
+ hasDetail ? /* @__PURE__ */ jsxs44(
13208
13285
  "button",
13209
13286
  {
13210
13287
  type: "button",
@@ -13213,8 +13290,8 @@ var AgentToolGroupRow = memo2(function AgentToolGroupRow2({
13213
13290
  "aria-label": groupLabel,
13214
13291
  onClick: () => setNextExpanded(!isExpanded),
13215
13292
  children: [
13216
- /* @__PURE__ */ jsx56(ToolGroupLabel, { label: groupLabel }),
13217
- isExpanded ? /* @__PURE__ */ jsx56(
13293
+ /* @__PURE__ */ jsx58(ToolGroupLabel, { label: groupLabel }),
13294
+ isExpanded ? /* @__PURE__ */ jsx58(
13218
13295
  ChevronDown7,
13219
13296
  {
13220
13297
  size: 12,
@@ -13222,7 +13299,7 @@ var AgentToolGroupRow = memo2(function AgentToolGroupRow2({
13222
13299
  "aria-hidden": "true",
13223
13300
  className: "workspace-agents-status-panel__detail-tool-count-chevron"
13224
13301
  }
13225
- ) : /* @__PURE__ */ jsx56(
13302
+ ) : /* @__PURE__ */ jsx58(
13226
13303
  ChevronRight7,
13227
13304
  {
13228
13305
  size: 12,
@@ -13233,13 +13310,13 @@ var AgentToolGroupRow = memo2(function AgentToolGroupRow2({
13233
13310
  )
13234
13311
  ]
13235
13312
  }
13236
- ) : /* @__PURE__ */ jsx56("div", { className: "workspace-agents-status-panel__detail-tool-count", children: /* @__PURE__ */ jsx56(ToolGroupLabel, { label: groupLabel }) }),
13237
- hasDetail ? /* @__PURE__ */ jsx56(CollapsibleReveal, { expanded: isExpanded, children: /* @__PURE__ */ jsx56("div", { className: "workspace-agents-status-panel__detail-tool-list", children: row.entries.map(
13238
- (entry) => entry.kind === "thinking" ? /* @__PURE__ */ jsx56(
13313
+ ) : /* @__PURE__ */ jsx58("div", { className: "workspace-agents-status-panel__detail-tool-count", children: /* @__PURE__ */ jsx58(ToolGroupLabel, { label: groupLabel }) }),
13314
+ hasDetail ? /* @__PURE__ */ jsx58(CollapsibleReveal, { expanded: isExpanded, children: /* @__PURE__ */ jsx58("div", { className: "workspace-agents-status-panel__detail-tool-list", children: row.entries.map(
13315
+ (entry) => entry.kind === "thinking" ? /* @__PURE__ */ jsx58(
13239
13316
  "div",
13240
13317
  {
13241
13318
  className: "workspace-agents-status-panel__detail-tool-list-item workspace-agents-status-panel__detail-tool-row",
13242
- children: /* @__PURE__ */ jsx56(
13319
+ children: /* @__PURE__ */ jsx58(
13243
13320
  AgentThinkingDisclosure,
13244
13321
  {
13245
13322
  thinking: entry.thinking,
@@ -13252,7 +13329,7 @@ var AgentToolGroupRow = memo2(function AgentToolGroupRow2({
13252
13329
  )
13253
13330
  },
13254
13331
  entry.thinking.id
13255
- ) : /* @__PURE__ */ jsx56(
13332
+ ) : /* @__PURE__ */ jsx58(
13256
13333
  "div",
13257
13334
  {
13258
13335
  className: "workspace-agents-status-panel__detail-tool-list-item",
@@ -13273,8 +13350,8 @@ var AgentToolGroupRow = memo2(function AgentToolGroupRow2({
13273
13350
  });
13274
13351
  function ToolGroupLabel({ label }) {
13275
13352
  "use memo";
13276
- return /* @__PURE__ */ jsxs42(Fragment6, { children: [
13277
- /* @__PURE__ */ jsx56(
13353
+ return /* @__PURE__ */ jsxs44(Fragment6, { children: [
13354
+ /* @__PURE__ */ jsx58(
13278
13355
  ToolActivityKindIcon,
13279
13356
  {
13280
13357
  kind: "update_todos",
@@ -13283,7 +13360,7 @@ function ToolGroupLabel({ label }) {
13283
13360
  className: "workspace-agents-status-panel__detail-tool-count-icon"
13284
13361
  }
13285
13362
  ),
13286
- /* @__PURE__ */ jsx56("span", { className: "workspace-agents-status-panel__detail-tool-count-label", children: renderToolCountLabel(label) })
13363
+ /* @__PURE__ */ jsx58("span", { className: "workspace-agents-status-panel__detail-tool-count-label", children: renderToolCountLabel(label) })
13287
13364
  ] });
13288
13365
  }
13289
13366
  function hasGroupDetail(row) {
@@ -13296,11 +13373,11 @@ function renderToolCountLabel(label) {
13296
13373
  const primary = statusMatch?.[1];
13297
13374
  const status = statusMatch?.[2];
13298
13375
  if (!primary || !status) {
13299
- return /* @__PURE__ */ jsx56("span", { className: "workspace-agents-status-panel__detail-tool-count-primary", children: label });
13376
+ return /* @__PURE__ */ jsx58("span", { className: "workspace-agents-status-panel__detail-tool-count-primary", children: label });
13300
13377
  }
13301
- return /* @__PURE__ */ jsxs42(Fragment6, { children: [
13302
- /* @__PURE__ */ jsx56("span", { className: "workspace-agents-status-panel__detail-tool-count-primary", children: primary }),
13303
- /* @__PURE__ */ jsx56("span", { className: "workspace-agents-status-panel__detail-tool-count-status", children: formatInlineStatusLabel3(status) })
13378
+ return /* @__PURE__ */ jsxs44(Fragment6, { children: [
13379
+ /* @__PURE__ */ jsx58("span", { className: "workspace-agents-status-panel__detail-tool-count-primary", children: primary }),
13380
+ /* @__PURE__ */ jsx58("span", { className: "workspace-agents-status-panel__detail-tool-count-status", children: formatInlineStatusLabel3(status) })
13304
13381
  ] });
13305
13382
  }
13306
13383
  function formatInlineStatusLabel3(label) {
@@ -13309,28 +13386,28 @@ function formatInlineStatusLabel3(label) {
13309
13386
  function renderToolCard(call, onLinkClick, previewMode = false, showRawTimelineJson = false, rawTimelineJsonLabel = "") {
13310
13387
  const props = { call, onLinkClick, previewMode };
13311
13388
  if (call.task?.subAgents?.length) {
13312
- return /* @__PURE__ */ jsx56(AgentSubAgentCards, { call, onLinkClick });
13389
+ return /* @__PURE__ */ jsx58(AgentSubAgentCards, { call, onLinkClick });
13313
13390
  }
13314
13391
  let card;
13315
13392
  switch (call.rendererKind) {
13316
13393
  case "plan-enter":
13317
- card = /* @__PURE__ */ jsx56(AgentEnterPlanModeCard, { ...props });
13394
+ card = /* @__PURE__ */ jsx58(AgentEnterPlanModeCard, { ...props });
13318
13395
  break;
13319
13396
  case "plan-exit":
13320
- card = /* @__PURE__ */ jsx56(AgentExitPlanModeCard, { ...props });
13397
+ card = /* @__PURE__ */ jsx58(AgentExitPlanModeCard, { ...props });
13321
13398
  break;
13322
13399
  case "ask-user":
13323
- card = /* @__PURE__ */ jsx56(AgentAskUserQuestionCard, { ...props });
13400
+ card = /* @__PURE__ */ jsx58(AgentAskUserQuestionCard, { ...props });
13324
13401
  break;
13325
13402
  case "task":
13326
- card = /* @__PURE__ */ jsx56(AgentTaskCallCard, { ...props });
13403
+ card = /* @__PURE__ */ jsx58(AgentTaskCallCard, { ...props });
13327
13404
  break;
13328
13405
  default:
13329
- card = /* @__PURE__ */ jsx56(AgentToolCallCard, { ...props });
13406
+ card = /* @__PURE__ */ jsx58(AgentToolCallCard, { ...props });
13330
13407
  }
13331
- return /* @__PURE__ */ jsxs42(Fragment6, { children: [
13408
+ return /* @__PURE__ */ jsxs44(Fragment6, { children: [
13332
13409
  card,
13333
- showRawTimelineJson && rawTimelineJsonLabel ? /* @__PURE__ */ jsx56(
13410
+ showRawTimelineJson && rawTimelineJsonLabel ? /* @__PURE__ */ jsx58(
13334
13411
  RawTimelineJsonDisclosure,
13335
13412
  {
13336
13413
  items: call.sourceTimelineItems,
@@ -13341,7 +13418,7 @@ function renderToolCard(call, onLinkClick, previewMode = false, showRawTimelineJ
13341
13418
  }
13342
13419
 
13343
13420
  // shared/agentConversation/components/AgentTurnSummaryRow.tsx
13344
- import { useEffect as useEffect12, useMemo as useMemo5, useState as useState18 } from "react";
13421
+ import { useEffect as useEffect12, useMemo as useMemo5, useState as useState19 } from "react";
13345
13422
  import {
13346
13423
  ChevronDown as ChevronDown8,
13347
13424
  ChevronRight as ChevronRight8,
@@ -13358,10 +13435,10 @@ import {
13358
13435
  } from "@tutti-os/ui-system";
13359
13436
 
13360
13437
  // app/renderer/components/icons/DirectLinedIcon.tsx
13361
- import { jsx as jsx57 } from "react/jsx-runtime";
13438
+ import { jsx as jsx59 } from "react/jsx-runtime";
13362
13439
  function DirectLinedIcon(props) {
13363
13440
  "use memo";
13364
- return /* @__PURE__ */ jsx57(
13441
+ return /* @__PURE__ */ jsx59(
13365
13442
  "svg",
13366
13443
  {
13367
13444
  xmlns: "http://www.w3.org/2000/svg",
@@ -13371,7 +13448,7 @@ function DirectLinedIcon(props) {
13371
13448
  "data-nexight-chrome-glyph": "fill",
13372
13449
  "data-tutti-chrome-glyph": "fill",
13373
13450
  ...props,
13374
- children: /* @__PURE__ */ jsx57(
13451
+ children: /* @__PURE__ */ jsx59(
13375
13452
  "path",
13376
13453
  {
13377
13454
  fill: "currentColor",
@@ -13572,20 +13649,21 @@ function isInsideOrEqualPatchPath(path, root) {
13572
13649
  }
13573
13650
 
13574
13651
  // shared/agentConversation/components/AgentTurnSummaryRow.tsx
13575
- import { jsx as jsx58, jsxs as jsxs43 } from "react/jsx-runtime";
13652
+ import { jsx as jsx60, jsxs as jsxs45 } from "react/jsx-runtime";
13576
13653
  function AgentTurnSummaryRow({
13577
13654
  row,
13578
13655
  workspaceRoot,
13656
+ basePath,
13579
13657
  onLinkAction
13580
13658
  }) {
13581
13659
  "use memo";
13582
- const [expandedFiles, setExpandedFiles] = useState18(
13660
+ const [expandedFiles, setExpandedFiles] = useState19(
13583
13661
  {}
13584
13662
  );
13585
- const [showAllFiles, setShowAllFiles] = useState18(false);
13586
- const [patchAction, setPatchAction] = useState18("undo");
13587
- const [patchPending, setPatchPending] = useState18(false);
13588
- const [patchSupportState, setPatchSupportState] = useState18(null);
13663
+ const [showAllFiles, setShowAllFiles] = useState19(false);
13664
+ const [patchAction, setPatchAction] = useState19("undo");
13665
+ const [patchPending, setPatchPending] = useState19(false);
13666
+ const [patchSupportState, setPatchSupportState] = useState19(null);
13589
13667
  const agentHostApi = useOptionalAgentHostApi();
13590
13668
  const aggregateStats = useMemo5(
13591
13669
  () => summarizeRowDiff(row.files),
@@ -13714,29 +13792,29 @@ function AgentTurnSummaryRow({
13714
13792
  }
13715
13793
  }
13716
13794
  };
13717
- return /* @__PURE__ */ jsx58("section", { className: "workspace-agents-status-panel__detail-turn-summary", children: /* @__PURE__ */ jsxs43("div", { className: "agent-turn-summary-card w-full overflow-hidden rounded-[8px] text-[var(--text-primary)]", children: [
13718
- /* @__PURE__ */ jsxs43("div", { className: "flex items-center gap-3 px-4 py-3", children: [
13719
- /* @__PURE__ */ jsx58("div", { className: "min-w-0 flex-1", children: /* @__PURE__ */ jsxs43("div", { className: "flex min-w-0 items-center gap-3", children: [
13720
- /* @__PURE__ */ jsx58("div", { className: "min-w-0 text-[15px] font-semibold leading-5 tracking-[0] text-[var(--text-primary)]", children: translate("agentHost.agentGui.turnSummaryFilesChanged", {
13795
+ return /* @__PURE__ */ jsx60("section", { className: "workspace-agents-status-panel__detail-turn-summary", children: /* @__PURE__ */ jsxs45("div", { className: "agent-turn-summary-card w-full overflow-hidden rounded-[8px] text-[var(--text-primary)]", children: [
13796
+ /* @__PURE__ */ jsxs45("div", { className: "flex items-center gap-3 px-4 py-3", children: [
13797
+ /* @__PURE__ */ jsx60("div", { className: "min-w-0 flex-1", children: /* @__PURE__ */ jsxs45("div", { className: "flex min-w-0 items-center gap-3", children: [
13798
+ /* @__PURE__ */ jsx60("div", { className: "min-w-0 text-[15px] font-semibold leading-5 tracking-[0] text-[var(--text-primary)]", children: translate("agentHost.agentGui.turnSummaryFilesChanged", {
13721
13799
  count: row.fileCount
13722
13800
  }) }),
13723
- /* @__PURE__ */ jsxs43("div", { className: "inline-flex shrink-0 items-center gap-2.5 text-[11px] font-semibold", children: [
13724
- aggregateStats.added > 0 ? /* @__PURE__ */ jsxs43("span", { className: "workspace-agents-status-panel__detail-tool-diff-added", children: [
13801
+ /* @__PURE__ */ jsxs45("div", { className: "inline-flex shrink-0 items-center gap-2.5 text-[11px] font-semibold", children: [
13802
+ aggregateStats.added > 0 ? /* @__PURE__ */ jsxs45("span", { className: "workspace-agents-status-panel__detail-tool-diff-added", children: [
13725
13803
  "+",
13726
13804
  aggregateStats.added
13727
13805
  ] }) : null,
13728
- aggregateStats.removed > 0 ? /* @__PURE__ */ jsxs43("span", { className: "workspace-agents-status-panel__detail-tool-diff-removed", children: [
13806
+ aggregateStats.removed > 0 ? /* @__PURE__ */ jsxs45("span", { className: "workspace-agents-status-panel__detail-tool-diff-removed", children: [
13729
13807
  "-",
13730
13808
  aggregateStats.removed
13731
13809
  ] }) : null
13732
13810
  ] })
13733
13811
  ] }) }),
13734
- canRenderPatchButton ? /* @__PURE__ */ jsx58(TooltipProvider, { delayDuration: 200, children: /* @__PURE__ */ jsxs43(Tooltip, { children: [
13735
- /* @__PURE__ */ jsx58(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx58(
13812
+ canRenderPatchButton ? /* @__PURE__ */ jsx60(TooltipProvider, { delayDuration: 200, children: /* @__PURE__ */ jsxs45(Tooltip, { children: [
13813
+ /* @__PURE__ */ jsx60(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx60(
13736
13814
  "span",
13737
13815
  {
13738
13816
  className: `inline-flex shrink-0 ${isPatchActionDisabled ? "cursor-not-allowed" : ""}`,
13739
- children: /* @__PURE__ */ jsxs43(
13817
+ children: /* @__PURE__ */ jsxs45(
13740
13818
  CanvasNodeGhostIconButton,
13741
13819
  {
13742
13820
  "aria-label": patchActionLabel,
@@ -13744,7 +13822,7 @@ function AgentTurnSummaryRow({
13744
13822
  disabled: isPatchActionDisabled,
13745
13823
  onClick: handlePatchAction,
13746
13824
  children: [
13747
- patchPending || isPatchSupportChecking ? /* @__PURE__ */ jsx58(
13825
+ patchPending || isPatchSupportChecking ? /* @__PURE__ */ jsx60(
13748
13826
  LoaderCircle2,
13749
13827
  {
13750
13828
  width: 14,
@@ -13752,7 +13830,7 @@ function AgentTurnSummaryRow({
13752
13830
  "aria-hidden": "true",
13753
13831
  className: "animate-spin text-[var(--text-secondary)]"
13754
13832
  }
13755
- ) : patchAction === "undo" ? /* @__PURE__ */ jsx58(
13833
+ ) : patchAction === "undo" ? /* @__PURE__ */ jsx60(
13756
13834
  Undo2,
13757
13835
  {
13758
13836
  width: 14,
@@ -13760,7 +13838,7 @@ function AgentTurnSummaryRow({
13760
13838
  "aria-hidden": "true",
13761
13839
  className: "text-[var(--text-secondary)]"
13762
13840
  }
13763
- ) : /* @__PURE__ */ jsx58(
13841
+ ) : /* @__PURE__ */ jsx60(
13764
13842
  Redo2,
13765
13843
  {
13766
13844
  width: 14,
@@ -13769,23 +13847,24 @@ function AgentTurnSummaryRow({
13769
13847
  className: "text-[var(--text-secondary)]"
13770
13848
  }
13771
13849
  ),
13772
- /* @__PURE__ */ jsx58("span", { children: patchActionLabel })
13850
+ /* @__PURE__ */ jsx60("span", { children: patchActionLabel })
13773
13851
  ]
13774
13852
  }
13775
13853
  )
13776
13854
  }
13777
13855
  ) }),
13778
- patchDisabledReason ? /* @__PURE__ */ jsx58(TooltipContent, { className: "max-w-[260px] whitespace-normal text-left", children: patchDisabledReason }) : null
13856
+ patchDisabledReason ? /* @__PURE__ */ jsx60(TooltipContent, { className: "max-w-[260px] whitespace-normal text-left", children: patchDisabledReason }) : null
13779
13857
  ] }) }) : null
13780
13858
  ] }),
13781
- /* @__PURE__ */ jsxs43("div", { className: "agent-turn-summary-card__list", children: [
13859
+ /* @__PURE__ */ jsxs45("div", { className: "agent-turn-summary-card__list", children: [
13782
13860
  visibleFiles.map((file) => {
13783
13861
  const key = `${file.path}:${file.messageId}`;
13784
- return /* @__PURE__ */ jsx58(
13862
+ return /* @__PURE__ */ jsx60(
13785
13863
  TurnSummaryFileCard,
13786
13864
  {
13787
13865
  file,
13788
13866
  workspaceRoot,
13867
+ basePath,
13789
13868
  expanded: Boolean(expandedFiles[key]),
13790
13869
  onLinkAction,
13791
13870
  onToggle: () => setExpandedFiles((current) => ({
@@ -13796,13 +13875,14 @@ function AgentTurnSummaryRow({
13796
13875
  key
13797
13876
  );
13798
13877
  }),
13799
- hiddenFileCount > 0 ? /* @__PURE__ */ jsx58(CollapsibleReveal, { expanded: showAllFiles, preMountOnIdle: true, children: /* @__PURE__ */ jsx58("div", { className: "agent-turn-summary-card__overflow-list", children: hiddenFiles.map((file) => {
13878
+ hiddenFileCount > 0 ? /* @__PURE__ */ jsx60(CollapsibleReveal, { expanded: showAllFiles, preMountOnIdle: true, children: /* @__PURE__ */ jsx60("div", { className: "agent-turn-summary-card__overflow-list", children: hiddenFiles.map((file) => {
13800
13879
  const key = `${file.path}:${file.messageId}`;
13801
- return /* @__PURE__ */ jsx58(
13880
+ return /* @__PURE__ */ jsx60(
13802
13881
  TurnSummaryFileCard,
13803
13882
  {
13804
13883
  file,
13805
13884
  workspaceRoot,
13885
+ basePath,
13806
13886
  expanded: Boolean(expandedFiles[key]),
13807
13887
  onLinkAction,
13808
13888
  onToggle: () => setExpandedFiles((current) => ({
@@ -13813,28 +13893,28 @@ function AgentTurnSummaryRow({
13813
13893
  key
13814
13894
  );
13815
13895
  }) }) }) : null,
13816
- hiddenFileCount > 0 && !showAllFiles ? /* @__PURE__ */ jsxs43(
13896
+ hiddenFileCount > 0 && !showAllFiles ? /* @__PURE__ */ jsxs45(
13817
13897
  "button",
13818
13898
  {
13819
13899
  type: "button",
13820
13900
  className: "agent-turn-summary-card__toggle-more flex w-full items-center gap-2 px-4 py-2.5 text-left text-[11px] font-semibold transition-colors",
13821
13901
  onClick: () => setShowAllFiles(true),
13822
13902
  children: [
13823
- /* @__PURE__ */ jsx58("span", { children: translate("agentHost.agentGui.turnSummaryShowMoreFiles", {
13903
+ /* @__PURE__ */ jsx60("span", { children: translate("agentHost.agentGui.turnSummaryShowMoreFiles", {
13824
13904
  count: hiddenFileCount
13825
13905
  }) }),
13826
- /* @__PURE__ */ jsx58(ChevronDown8, { size: 16, strokeWidth: 2.2, "aria-hidden": "true" })
13906
+ /* @__PURE__ */ jsx60(ChevronDown8, { size: 16, strokeWidth: 2.2, "aria-hidden": "true" })
13827
13907
  ]
13828
13908
  }
13829
- ) : hiddenFileCount > 0 ? /* @__PURE__ */ jsxs43(
13909
+ ) : hiddenFileCount > 0 ? /* @__PURE__ */ jsxs45(
13830
13910
  "button",
13831
13911
  {
13832
13912
  type: "button",
13833
13913
  className: "agent-turn-summary-card__toggle-more flex w-full items-center gap-2 px-4 py-2.5 text-left text-[11px] font-semibold transition-colors",
13834
13914
  onClick: () => setShowAllFiles(false),
13835
13915
  children: [
13836
- /* @__PURE__ */ jsx58("span", { children: translate("agentHost.agentGui.turnSummaryShowFewerFiles") }),
13837
- /* @__PURE__ */ jsx58(
13916
+ /* @__PURE__ */ jsx60("span", { children: translate("agentHost.agentGui.turnSummaryShowFewerFiles") }),
13917
+ /* @__PURE__ */ jsx60(
13838
13918
  ChevronRight8,
13839
13919
  {
13840
13920
  size: 16,
@@ -13852,6 +13932,7 @@ function AgentTurnSummaryRow({
13852
13932
  function TurnSummaryFileCard({
13853
13933
  file,
13854
13934
  workspaceRoot,
13935
+ basePath,
13855
13936
  expanded,
13856
13937
  onLinkAction,
13857
13938
  onToggle
@@ -13860,15 +13941,16 @@ function TurnSummaryFileCard({
13860
13941
  const action = resolveWorkspaceFileLinkAction({
13861
13942
  path: file.path,
13862
13943
  workspaceRoot,
13944
+ basePath,
13863
13945
  source: "agent-file-change"
13864
13946
  });
13865
13947
  const canOpen = Boolean(action && onLinkAction);
13866
13948
  const stats = summarizeFileDiff(file);
13867
13949
  const preview = filePreview(file);
13868
- return /* @__PURE__ */ jsxs43("div", { className: "agent-turn-summary-card__file", children: [
13869
- /* @__PURE__ */ jsxs43("div", { className: "agent-turn-summary-card__file-row flex min-w-0 items-center gap-2.5 overflow-hidden px-4 py-2.5", children: [
13870
- /* @__PURE__ */ jsxs43("div", { className: "flex min-w-0 flex-1 items-center gap-2.5", children: [
13871
- /* @__PURE__ */ jsxs43(
13950
+ return /* @__PURE__ */ jsxs45("div", { className: "agent-turn-summary-card__file", children: [
13951
+ /* @__PURE__ */ jsxs45("div", { className: "agent-turn-summary-card__file-row flex min-w-0 items-center gap-2.5 overflow-hidden px-4 py-2.5", children: [
13952
+ /* @__PURE__ */ jsxs45("div", { className: "flex min-w-0 flex-1 items-center gap-2.5", children: [
13953
+ /* @__PURE__ */ jsxs45(
13872
13954
  "button",
13873
13955
  {
13874
13956
  type: "button",
@@ -13876,21 +13958,21 @@ function TurnSummaryFileCard({
13876
13958
  "aria-expanded": expanded,
13877
13959
  onClick: onToggle,
13878
13960
  children: [
13879
- /* @__PURE__ */ jsx58("div", { className: "min-w-0 flex-1 overflow-hidden", children: /* @__PURE__ */ jsxs43(
13961
+ /* @__PURE__ */ jsx60("div", { className: "min-w-0 flex-1 overflow-hidden", children: /* @__PURE__ */ jsxs45(
13880
13962
  "span",
13881
13963
  {
13882
13964
  className: `agent-turn-summary-card__path flex min-w-0 max-w-full overflow-hidden whitespace-nowrap text-[13px] font-medium leading-5 text-[var(--text-secondary)] ${file.changeType === "deleted" ? "line-through" : ""}`,
13883
13965
  title: file.path,
13884
13966
  children: [
13885
- file.directory ? /* @__PURE__ */ jsxs43("span", { className: "agent-turn-summary-card__path-directory", children: [
13967
+ file.directory ? /* @__PURE__ */ jsxs45("span", { className: "agent-turn-summary-card__path-directory", children: [
13886
13968
  file.directory,
13887
13969
  "/"
13888
13970
  ] }) : null,
13889
- /* @__PURE__ */ jsx58("span", { className: "agent-turn-summary-card__path-file", children: file.fileName })
13971
+ /* @__PURE__ */ jsx60("span", { className: "agent-turn-summary-card__path-file", children: file.fileName })
13890
13972
  ]
13891
13973
  }
13892
13974
  ) }),
13893
- /* @__PURE__ */ jsx58("span", { className: "shrink-0 text-[var(--text-tertiary)] opacity-0 transition-opacity group-hover/file-toggle:opacity-100 group-focus-visible/file-toggle:opacity-100", children: /* @__PURE__ */ jsx58(
13975
+ /* @__PURE__ */ jsx60("span", { className: "shrink-0 text-[var(--text-tertiary)] opacity-0 transition-opacity group-hover/file-toggle:opacity-100 group-focus-visible/file-toggle:opacity-100", children: /* @__PURE__ */ jsx60(
13894
13976
  ChevronRight8,
13895
13977
  {
13896
13978
  size: 14,
@@ -13902,18 +13984,18 @@ function TurnSummaryFileCard({
13902
13984
  ]
13903
13985
  }
13904
13986
  ),
13905
- /* @__PURE__ */ jsxs43("span", { className: "ml-auto inline-flex shrink-0 items-center gap-2 text-[11px] font-semibold", children: [
13906
- stats.added > 0 ? /* @__PURE__ */ jsxs43("span", { className: "workspace-agents-status-panel__detail-tool-diff-added", children: [
13987
+ /* @__PURE__ */ jsxs45("span", { className: "ml-auto inline-flex shrink-0 items-center gap-2 text-[11px] font-semibold", children: [
13988
+ stats.added > 0 ? /* @__PURE__ */ jsxs45("span", { className: "workspace-agents-status-panel__detail-tool-diff-added", children: [
13907
13989
  "+",
13908
13990
  stats.added
13909
13991
  ] }) : null,
13910
- stats.removed > 0 ? /* @__PURE__ */ jsxs43("span", { className: "workspace-agents-status-panel__detail-tool-diff-removed", children: [
13992
+ stats.removed > 0 ? /* @__PURE__ */ jsxs45("span", { className: "workspace-agents-status-panel__detail-tool-diff-removed", children: [
13911
13993
  "-",
13912
13994
  stats.removed
13913
13995
  ] }) : null
13914
13996
  ] })
13915
13997
  ] }),
13916
- canOpen ? /* @__PURE__ */ jsx58(
13998
+ canOpen ? /* @__PURE__ */ jsx60(
13917
13999
  CanvasNodeGhostIconButton,
13918
14000
  {
13919
14001
  "aria-label": translate(
@@ -13925,7 +14007,7 @@ function TurnSummaryFileCard({
13925
14007
  onClick: () => {
13926
14008
  onLinkAction?.(action);
13927
14009
  },
13928
- children: /* @__PURE__ */ jsx58(
14010
+ children: /* @__PURE__ */ jsx60(
13929
14011
  DirectLinedIcon,
13930
14012
  {
13931
14013
  width: 14,
@@ -13937,12 +14019,12 @@ function TurnSummaryFileCard({
13937
14019
  }
13938
14020
  ) : null
13939
14021
  ] }),
13940
- preview ? /* @__PURE__ */ jsx58(CollapsibleReveal, { expanded, preMountOnIdle: true, children: /* @__PURE__ */ jsx58("div", { className: "agent-turn-summary-card__preview rounded-none px-4 pb-3 pt-2", children: preview }) }) : null
14022
+ preview ? /* @__PURE__ */ jsx60(CollapsibleReveal, { expanded, preMountOnIdle: true, children: /* @__PURE__ */ jsx60("div", { className: "agent-turn-summary-card__preview rounded-none px-4 pb-3 pt-2", children: preview }) }) : null
13941
14023
  ] });
13942
14024
  }
13943
14025
  function filePreview(file) {
13944
14026
  if (file.changeType === "created" && file.content?.trim()) {
13945
- return /* @__PURE__ */ jsx58(
14027
+ return /* @__PURE__ */ jsx60(
13946
14028
  AgentCodeBlock,
13947
14029
  {
13948
14030
  path: file.path,
@@ -13954,7 +14036,7 @@ function filePreview(file) {
13954
14036
  );
13955
14037
  }
13956
14038
  if (file.unifiedDiff?.trim()) {
13957
- return /* @__PURE__ */ jsx58(
14039
+ return /* @__PURE__ */ jsx60(
13958
14040
  AgentUnifiedPatchViewer,
13959
14041
  {
13960
14042
  path: file.path,
@@ -13965,7 +14047,7 @@ function filePreview(file) {
13965
14047
  );
13966
14048
  }
13967
14049
  if (file.changeType === "created" && file.newString?.trim()) {
13968
- return /* @__PURE__ */ jsx58(
14050
+ return /* @__PURE__ */ jsx60(
13969
14051
  AgentCodeBlock,
13970
14052
  {
13971
14053
  path: file.path,
@@ -13977,7 +14059,7 @@ function filePreview(file) {
13977
14059
  );
13978
14060
  }
13979
14061
  if (file.oldString?.trim() || file.newString?.trim()) {
13980
- return /* @__PURE__ */ jsx58(
14062
+ return /* @__PURE__ */ jsx60(
13981
14063
  AgentMonacoDiffViewer,
13982
14064
  {
13983
14065
  path: file.path,
@@ -13989,7 +14071,7 @@ function filePreview(file) {
13989
14071
  );
13990
14072
  }
13991
14073
  if (file.content?.trim()) {
13992
- return /* @__PURE__ */ jsx58(
14074
+ return /* @__PURE__ */ jsx60(
13993
14075
  AgentCodeBlock,
13994
14076
  {
13995
14077
  path: file.path,
@@ -14081,7 +14163,7 @@ function summarizeFileDiff(file) {
14081
14163
  }
14082
14164
 
14083
14165
  // shared/agentConversation/components/AgentTranscriptItemView.tsx
14084
- import { jsx as jsx59 } from "react/jsx-runtime";
14166
+ import { jsx as jsx61 } from "react/jsx-runtime";
14085
14167
  var AgentTranscriptItemView = memo3(function AgentTranscriptItemView2({
14086
14168
  workspaceRoot,
14087
14169
  basePath,
@@ -14115,7 +14197,7 @@ var AgentTranscriptItemView = memo3(function AgentTranscriptItemView2({
14115
14197
  );
14116
14198
  switch (row.kind) {
14117
14199
  case "message":
14118
- return /* @__PURE__ */ jsx59(
14200
+ return /* @__PURE__ */ jsx61(
14119
14201
  AgentMessageBlock,
14120
14202
  {
14121
14203
  workspaceRoot,
@@ -14133,7 +14215,7 @@ var AgentTranscriptItemView = memo3(function AgentTranscriptItemView2({
14133
14215
  }
14134
14216
  );
14135
14217
  case "tool-group":
14136
- return /* @__PURE__ */ jsx59(
14218
+ return /* @__PURE__ */ jsx61(
14137
14219
  AgentToolGroupRow,
14138
14220
  {
14139
14221
  row,
@@ -14149,18 +14231,19 @@ var AgentTranscriptItemView = memo3(function AgentTranscriptItemView2({
14149
14231
  }
14150
14232
  );
14151
14233
  case "turn-summary":
14152
- return /* @__PURE__ */ jsx59(
14234
+ return /* @__PURE__ */ jsx61(
14153
14235
  AgentTurnSummaryRow,
14154
14236
  {
14155
14237
  row,
14156
14238
  workspaceRoot,
14239
+ basePath,
14157
14240
  label: labels.turnSummary,
14158
14241
  onLinkAction,
14159
14242
  previewMode
14160
14243
  }
14161
14244
  );
14162
14245
  case "processing":
14163
- return /* @__PURE__ */ jsx59(AgentProcessingRow, { row, label: labels.processing });
14246
+ return /* @__PURE__ */ jsx61(AgentProcessingRow, { row, label: labels.processing });
14164
14247
  }
14165
14248
  });
14166
14249
 
@@ -14285,7 +14368,7 @@ import {
14285
14368
  useEffect as useEffect13,
14286
14369
  useLayoutEffect as useLayoutEffect3,
14287
14370
  useRef as useRef9,
14288
- useState as useState19
14371
+ useState as useState20
14289
14372
  } from "react";
14290
14373
 
14291
14374
  // shared/agentConversation/components/agentTranscriptModel.ts
@@ -14385,7 +14468,7 @@ function summarizeUserMessageRow(row) {
14385
14468
  );
14386
14469
  }
14387
14470
  function normalizeLocatorSummary(value) {
14388
- return value.replace(/\s+/g, " ").trim();
14471
+ return normalizeAgentTitleText(value);
14389
14472
  }
14390
14473
  function escapeCssString(value) {
14391
14474
  return value.replace(/["\\]/g, "\\$&");
@@ -14409,7 +14492,7 @@ function findTurnDividerRowIndexes(turnIndexById, rows) {
14409
14492
  }
14410
14493
 
14411
14494
  // shared/agentConversation/components/AgentMessageLocatorRail.tsx
14412
- import { jsx as jsx60, jsxs as jsxs44 } from "react/jsx-runtime";
14495
+ import { jsx as jsx62, jsxs as jsxs46 } from "react/jsx-runtime";
14413
14496
  var AGENT_MESSAGE_LOCATOR_PANEL_FADE_MS = 160;
14414
14497
  var AGENT_MESSAGE_LOCATOR_ITEM_SPACING_PX = 30;
14415
14498
  var AGENT_MESSAGE_LOCATOR_HIT_SIZE_PX = 36;
@@ -14424,13 +14507,13 @@ function AgentMessageLocatorRail({
14424
14507
  const locatorRef = useRef9(null);
14425
14508
  const locatorViewportRef = useRef9(null);
14426
14509
  const closePanelTimeoutRef = useRef9(null);
14427
- const [isPanelOpen, setIsPanelOpen] = useState19(false);
14428
- const [shouldRenderPanel, setShouldRenderPanel] = useState19(false);
14429
- const [activeKey, setActiveKey] = useState19(null);
14430
- const [selectedKey, setSelectedKey] = useState19(null);
14510
+ const [isPanelOpen, setIsPanelOpen] = useState20(false);
14511
+ const [shouldRenderPanel, setShouldRenderPanel] = useState20(false);
14512
+ const [activeKey, setActiveKey] = useState20(null);
14513
+ const [selectedKey, setSelectedKey] = useState20(null);
14431
14514
  const previousAgentResponseByKeyRef = useRef9(null);
14432
- const [unreadAgentResponseKeys, setUnreadAgentResponseKeys] = useState19(/* @__PURE__ */ new Set());
14433
- const [visibleFrame, setVisibleFrame] = useState19(null);
14515
+ const [unreadAgentResponseKeys, setUnreadAgentResponseKeys] = useState20(/* @__PURE__ */ new Set());
14516
+ const [visibleFrame, setVisibleFrame] = useState20(null);
14434
14517
  useEffect13(() => {
14435
14518
  if (isPanelOpen) {
14436
14519
  setShouldRenderPanel(true);
@@ -14657,7 +14740,7 @@ function AgentMessageLocatorRail({
14657
14740
  }
14658
14741
  closePanelNow();
14659
14742
  };
14660
- return /* @__PURE__ */ jsxs44(
14743
+ return /* @__PURE__ */ jsxs46(
14661
14744
  "nav",
14662
14745
  {
14663
14746
  ref: locatorRef,
@@ -14677,7 +14760,7 @@ function AgentMessageLocatorRail({
14677
14760
  } : {}
14678
14761
  },
14679
14762
  children: [
14680
- /* @__PURE__ */ jsx60(
14763
+ /* @__PURE__ */ jsx62(
14681
14764
  "div",
14682
14765
  {
14683
14766
  ref: locatorViewportRef,
@@ -14685,7 +14768,7 @@ function AgentMessageLocatorRail({
14685
14768
  "data-testid": "agent-message-locator-viewport",
14686
14769
  onClick: handleViewportClick,
14687
14770
  onMouseMove: handleViewportMouseMove,
14688
- children: /* @__PURE__ */ jsxs44(
14771
+ children: /* @__PURE__ */ jsxs46(
14689
14772
  "div",
14690
14773
  {
14691
14774
  className: "agent-gui-message-locator__content",
@@ -14693,18 +14776,18 @@ function AgentMessageLocatorRail({
14693
14776
  "--agent-message-locator-height": `${railHeight}px`
14694
14777
  },
14695
14778
  children: [
14696
- items.slice(0, -1).map((item, index) => /* @__PURE__ */ jsx60(
14779
+ items.slice(0, -1).map((item, index) => /* @__PURE__ */ jsx62(
14697
14780
  "div",
14698
14781
  {
14699
14782
  className: "agent-gui-message-locator__track-segment",
14700
14783
  style: {
14701
- "--agent-message-locator-segment-position": `${index * AGENT_MESSAGE_LOCATOR_ITEM_SPACING_PX + AGENT_MESSAGE_LOCATOR_HIT_SIZE_PX}px`
14784
+ "--agent-message-locator-segment-position": `${AGENT_MESSAGE_LOCATOR_HIT_SIZE_PX / 2 + (index + 0.5) * AGENT_MESSAGE_LOCATOR_ITEM_SPACING_PX}px`
14702
14785
  },
14703
14786
  "aria-hidden": "true"
14704
14787
  },
14705
14788
  `segment:${item.key}`
14706
14789
  )),
14707
- items.map((item, index) => /* @__PURE__ */ jsx60(
14790
+ items.map((item, index) => /* @__PURE__ */ jsx62(
14708
14791
  "button",
14709
14792
  {
14710
14793
  type: "button",
@@ -14719,7 +14802,7 @@ function AgentMessageLocatorRail({
14719
14802
  onClick: () => handleLocateItem(item),
14720
14803
  onFocus: () => setActiveKey(item.key),
14721
14804
  onMouseEnter: () => setActiveKey(item.key),
14722
- children: /* @__PURE__ */ jsx60(
14805
+ children: /* @__PURE__ */ jsx62(
14723
14806
  "span",
14724
14807
  {
14725
14808
  className: "agent-gui-message-locator__dot",
@@ -14734,7 +14817,7 @@ function AgentMessageLocatorRail({
14734
14817
  )
14735
14818
  }
14736
14819
  ),
14737
- shouldRenderPanel ? /* @__PURE__ */ jsx60(
14820
+ shouldRenderPanel ? /* @__PURE__ */ jsx62(
14738
14821
  "div",
14739
14822
  {
14740
14823
  className: "agent-gui-message-locator__panel",
@@ -14744,7 +14827,7 @@ function AgentMessageLocatorRail({
14744
14827
  onMouseEnter: openPanel,
14745
14828
  onMouseLeave: closePanelSoon,
14746
14829
  onWheel: containMessageLocatorPanelWheel,
14747
- children: items.map((item) => /* @__PURE__ */ jsx60(
14830
+ children: items.map((item) => /* @__PURE__ */ jsx62(
14748
14831
  "button",
14749
14832
  {
14750
14833
  type: "button",
@@ -14753,7 +14836,7 @@ function AgentMessageLocatorRail({
14753
14836
  onClick: () => handleLocateItem(item),
14754
14837
  onFocus: () => setActiveKey(item.key),
14755
14838
  onMouseEnter: () => setActiveKey(item.key),
14756
- children: /* @__PURE__ */ jsx60("span", { className: "agent-gui-message-locator__panel-item-text", children: item.summary })
14839
+ children: /* @__PURE__ */ jsx62("span", { className: "agent-gui-message-locator__panel-item-text", children: item.summary })
14757
14840
  },
14758
14841
  `panel:${item.key}`
14759
14842
  ))
@@ -14896,7 +14979,7 @@ function selectMessageLocatorItemAtViewportCenter(scrollParent, items) {
14896
14979
  }
14897
14980
 
14898
14981
  // shared/agentConversation/components/AgentTranscriptView.tsx
14899
- import { Fragment as Fragment8, jsx as jsx61, jsxs as jsxs45 } from "react/jsx-runtime";
14982
+ import { Fragment as Fragment8, jsx as jsx63, jsxs as jsxs47 } from "react/jsx-runtime";
14900
14983
  var AGENT_TRANSCRIPT_VIRTUALIZATION_OVERSCAN = 6;
14901
14984
  var AGENT_TRANSCRIPT_ESTIMATED_TURN_HEIGHT_PX = 280;
14902
14985
  var AGENT_TRANSCRIPT_TURN_GAP_PX = 12;
@@ -14930,9 +15013,9 @@ var AgentTranscriptView = memo4(function AgentTranscriptView2({
14930
15013
  labels
14931
15014
  }) {
14932
15015
  "use memo";
14933
- const [expandedToolRows, setExpandedToolRows] = useState20({});
15016
+ const [expandedToolRows, setExpandedToolRows] = useState21({});
14934
15017
  const virtualizerHostRef = useRef10(null);
14935
- const [virtualScrollElement, setVirtualScrollElement] = useState20(null);
15018
+ const [virtualScrollElement, setVirtualScrollElement] = useState21(null);
14936
15019
  const rowKeys = useMemo6(
14937
15020
  () => conversation.rows.map(transcriptRowKey),
14938
15021
  [conversation.rows]
@@ -15033,8 +15116,8 @@ var AgentTranscriptView = memo4(function AgentTranscriptView2({
15033
15116
  const rowKey = rowKeys[rowIndex] ?? transcriptRowKey(row);
15034
15117
  const showTurnDivider = dividerRowIndexes.has(rowIndex);
15035
15118
  const shouldAnimateEnter = row.kind !== "processing" && enteringRowKeys.has(rowKey);
15036
- return /* @__PURE__ */ jsxs45(Fragment7, { children: [
15037
- showTurnDivider ? /* @__PURE__ */ jsx61(
15119
+ return /* @__PURE__ */ jsxs47(Fragment7, { children: [
15120
+ showTurnDivider ? /* @__PURE__ */ jsx63(
15038
15121
  "div",
15039
15122
  {
15040
15123
  className: "h-px w-full flex-none bg-[var(--line-2,var(--tutti-line-2))]",
@@ -15042,7 +15125,7 @@ var AgentTranscriptView = memo4(function AgentTranscriptView2({
15042
15125
  "aria-hidden": "true"
15043
15126
  }
15044
15127
  ) : null,
15045
- /* @__PURE__ */ jsx61(
15128
+ /* @__PURE__ */ jsx63(
15046
15129
  "div",
15047
15130
  {
15048
15131
  className: "agent-gui-transcript-row",
@@ -15050,7 +15133,7 @@ var AgentTranscriptView = memo4(function AgentTranscriptView2({
15050
15133
  "data-agent-transcript-row-kind": row.kind,
15051
15134
  "data-agent-transcript-row-index": rowIndex,
15052
15135
  "data-agent-transcript-row-enter": shouldAnimateEnter ? "true" : void 0,
15053
- children: /* @__PURE__ */ jsx61(
15136
+ children: /* @__PURE__ */ jsx63(
15054
15137
  AgentTranscriptItemView,
15055
15138
  {
15056
15139
  workspaceRoot,
@@ -15085,8 +15168,8 @@ var AgentTranscriptView = memo4(function AgentTranscriptView2({
15085
15168
  AGENT_TRANSCRIPT_FALLBACK_TURN_COUNT
15086
15169
  ) + fallbackIndex) * AGENT_TRANSCRIPT_ESTIMATED_TURN_HEIGHT_PX
15087
15170
  })) : rowVirtualizer.getVirtualItems();
15088
- return /* @__PURE__ */ jsxs45(Fragment8, { children: [
15089
- /* @__PURE__ */ jsx61(
15171
+ return /* @__PURE__ */ jsxs47(Fragment8, { children: [
15172
+ /* @__PURE__ */ jsx63(
15090
15173
  AgentMessageLocatorRail,
15091
15174
  {
15092
15175
  items: userMessageLocatorItems,
@@ -15094,7 +15177,7 @@ var AgentTranscriptView = memo4(function AgentTranscriptView2({
15094
15177
  onLocate: handleLocateUserMessage
15095
15178
  }
15096
15179
  ),
15097
- /* @__PURE__ */ jsx61(
15180
+ /* @__PURE__ */ jsx63(
15098
15181
  "div",
15099
15182
  {
15100
15183
  ref: virtualizerHostRef,
@@ -15106,7 +15189,7 @@ var AgentTranscriptView = memo4(function AgentTranscriptView2({
15106
15189
  if (!group) {
15107
15190
  return null;
15108
15191
  }
15109
- return /* @__PURE__ */ jsx61(
15192
+ return /* @__PURE__ */ jsx63(
15110
15193
  "div",
15111
15194
  {
15112
15195
  ref: rowVirtualizer.measureElement,
@@ -15128,8 +15211,8 @@ var AgentTranscriptView = memo4(function AgentTranscriptView2({
15128
15211
  )
15129
15212
  ] });
15130
15213
  }
15131
- return /* @__PURE__ */ jsxs45(Fragment8, { children: [
15132
- /* @__PURE__ */ jsx61(
15214
+ return /* @__PURE__ */ jsxs47(Fragment8, { children: [
15215
+ /* @__PURE__ */ jsx63(
15133
15216
  AgentMessageLocatorRail,
15134
15217
  {
15135
15218
  items: userMessageLocatorItems,
@@ -15143,7 +15226,7 @@ var AgentTranscriptView = memo4(function AgentTranscriptView2({
15143
15226
 
15144
15227
  // shared/agentConversation/components/AgentConversationFlow.tsx
15145
15228
  import { memo as memo5 } from "react";
15146
- import { Fragment as Fragment9, jsx as jsx62 } from "react/jsx-runtime";
15229
+ import { Fragment as Fragment9, jsx as jsx64 } from "react/jsx-runtime";
15147
15230
  var AgentConversationFlow = memo5(function AgentConversationFlow2({
15148
15231
  conversation,
15149
15232
  isLoading,
@@ -15160,12 +15243,12 @@ var AgentConversationFlow = memo5(function AgentConversationFlow2({
15160
15243
  }) {
15161
15244
  "use memo";
15162
15245
  if (isLoading) {
15163
- return /* @__PURE__ */ jsx62(AgentTranscriptSkeleton, { label: loadingLabel, testId: loadingTestId });
15246
+ return /* @__PURE__ */ jsx64(AgentTranscriptSkeleton, { label: loadingLabel, testId: loadingTestId });
15164
15247
  }
15165
15248
  if (!conversation || conversation.rows.length === 0) {
15166
- return /* @__PURE__ */ jsx62(Fragment9, { children: empty });
15249
+ return /* @__PURE__ */ jsx64(Fragment9, { children: empty });
15167
15250
  }
15168
- return /* @__PURE__ */ jsx62(
15251
+ return /* @__PURE__ */ jsx64(
15169
15252
  AgentTranscriptView,
15170
15253
  {
15171
15254
  conversation,
@@ -15220,6 +15303,14 @@ export {
15220
15303
  pastedTextPreview,
15221
15304
  MAX_AGENT_COMPOSER_DRAFT_IMAGES,
15222
15305
  emptyAgentComposerDraft,
15306
+ snapshotAgentComposerDraft,
15307
+ agentComposerDraftPrompt,
15308
+ agentComposerDraftImages,
15309
+ agentComposerDraftFiles,
15310
+ agentComposerDraftLargeTexts,
15311
+ agentComposerDraftAttachmentProjection,
15312
+ buildAgentComposerDraft,
15313
+ updateAgentComposerDraft,
15223
15314
  agentComposerDraftHasContent,
15224
15315
  normalizeAgentPromptContentBlocks,
15225
15316
  agentPromptContentDisplayText,
@@ -15227,10 +15318,8 @@ export {
15227
15318
  agentPromptContentImageBlocks,
15228
15319
  agentPromptContentToComposerDraft,
15229
15320
  agentComposerDraftToPromptContent,
15230
- agentComposerDraftSubmittedText,
15231
15321
  agentComposerDraftDisplayPrompt,
15232
15322
  textPromptContent,
15233
- isPastedTextPromptBlock,
15234
15323
  materializePastedTextInstructions,
15235
15324
  projectAgentConversationVM,
15236
15325
  reconcileProjectedAgentConversationVM,
@@ -15246,4 +15335,4 @@ export {
15246
15335
  AgentConversationFlow,
15247
15336
  useProjectedAgentConversation
15248
15337
  };
15249
- //# sourceMappingURL=chunk-3R2D4E57.js.map
15338
+ //# sourceMappingURL=chunk-JKIZA7EJ.js.map