@tutti-os/agent-gui 0.0.104 → 0.0.105

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 (81) hide show
  1. package/dist/{AgentGUI-DQ9gVoXh.d.ts → AgentGUI-Do6py-T_.d.ts} +10 -5
  2. package/dist/AgentRichTextReadonly-F6PHC5SX.js +18 -0
  3. package/dist/AgentRichTextReadonly-F6PHC5SX.js.map +1 -0
  4. package/dist/agent-conversation/index.d.ts +3 -3
  5. package/dist/agent-conversation/index.js +11 -7
  6. package/dist/agent-conversation/index.js.map +1 -1
  7. package/dist/agent-gui.d.ts +4 -4
  8. package/dist/agent-gui.js +18 -14
  9. package/dist/agent-message-center/index.d.ts +1 -1
  10. package/dist/agent-message-center/index.js +13 -9
  11. package/dist/agent-message-center/index.js.map +1 -1
  12. package/dist/{agentConversationVM-CkcYM5Wg.d.ts → agentConversationVM-Bf3Zv3iI.d.ts} +9 -1
  13. package/dist/{agentFileMentionContracts-58IjMU-u.d.ts → agentFileMentionContracts-B70VnPWO.d.ts} +2 -0
  14. package/dist/{agentGuiNodeTypes-B9vcvjmR.d.ts → agentGuiNodeTypes-DbgQBiYz.d.ts} +4 -1
  15. package/dist/app/renderer/agentactivity.css +99 -0
  16. package/dist/{chunk-FJ4W2VC5.js → chunk-4ZWV57MF.js} +42 -10
  17. package/dist/chunk-4ZWV57MF.js.map +1 -0
  18. package/dist/{chunk-VAB7EIL5.js → chunk-6R7GHXRQ.js} +12 -6
  19. package/dist/chunk-6R7GHXRQ.js.map +1 -0
  20. package/dist/{chunk-TPV2SV6L.js → chunk-7MPN2JGL.js} +122 -154
  21. package/dist/chunk-7MPN2JGL.js.map +1 -0
  22. package/dist/{chunk-5X7YDOC6.js → chunk-D2JUDUYY.js} +1 -1
  23. package/dist/chunk-D2JUDUYY.js.map +1 -0
  24. package/dist/{chunk-HLVC4NNL.js → chunk-IR2CL2X2.js} +721 -1280
  25. package/dist/chunk-IR2CL2X2.js.map +1 -0
  26. package/dist/{chunk-NOXQOGT5.js → chunk-J2HG7UCP.js} +46 -22
  27. package/dist/chunk-J2HG7UCP.js.map +1 -0
  28. package/dist/{chunk-747L443E.js → chunk-JG7HGKZL.js} +595 -61
  29. package/dist/chunk-JG7HGKZL.js.map +1 -0
  30. package/dist/chunk-KPMQGPYU.js +43 -0
  31. package/dist/chunk-KPMQGPYU.js.map +1 -0
  32. package/dist/{chunk-OFSDOID4.js → chunk-LDZ6C3YV.js} +3 -39
  33. package/dist/chunk-LDZ6C3YV.js.map +1 -0
  34. package/dist/{chunk-7N524ZK7.js → chunk-N3HTEYLZ.js} +1308 -936
  35. package/dist/chunk-N3HTEYLZ.js.map +1 -0
  36. package/dist/{chunk-MUPZPISC.js → chunk-N4WVVCNI.js} +2 -2
  37. package/dist/{chunk-F5LFPORI.js → chunk-OWW7CU4U.js} +2 -2
  38. package/dist/chunk-SN6UYX54.js +42 -0
  39. package/dist/chunk-SN6UYX54.js.map +1 -0
  40. package/dist/{chunk-SKCLZXSW.js → chunk-TKBEVCHG.js} +5 -1
  41. package/dist/chunk-TKBEVCHG.js.map +1 -0
  42. package/dist/chunk-UFIEUC3Y.js +755 -0
  43. package/dist/chunk-UFIEUC3Y.js.map +1 -0
  44. package/dist/{chunk-AKKDP2LI.js → chunk-V5ROOS2O.js} +124 -2
  45. package/dist/chunk-V5ROOS2O.js.map +1 -0
  46. package/dist/chunk-XJ34OIEQ.js +18 -0
  47. package/dist/chunk-XJ34OIEQ.js.map +1 -0
  48. package/dist/{chunk-QI3JAO4J.js → chunk-ZSJBCZUH.js} +54 -7
  49. package/dist/chunk-ZSJBCZUH.js.map +1 -0
  50. package/dist/context-mention-palette/index.d.ts +1 -1
  51. package/dist/context-mention-palette/index.js +10 -8
  52. package/dist/{contribution-CTVBPN0R.d.ts → contribution-C6K5YfJ7.d.ts} +1 -0
  53. package/dist/custom-mention.d.ts +6 -0
  54. package/dist/custom-mention.js +1 -1
  55. package/dist/i18n/index.d.ts +4 -0
  56. package/dist/i18n/index.js +2 -2
  57. package/dist/index.d.ts +6 -6
  58. package/dist/index.js +18 -14
  59. package/dist/index.js.map +1 -1
  60. package/dist/mention-search.d.ts +42 -6
  61. package/dist/mention-search.js +8 -6
  62. package/dist/workbench/contribution.d.ts +1 -1
  63. package/dist/workbench/contribution.js +3 -3
  64. package/dist/workbench/index.d.ts +3 -2
  65. package/dist/workbench/index.js +3 -3
  66. package/dist/workbench/sessionTitle.js +2 -2
  67. package/package.json +12 -12
  68. package/dist/chunk-5X7YDOC6.js.map +0 -1
  69. package/dist/chunk-747L443E.js.map +0 -1
  70. package/dist/chunk-7N524ZK7.js.map +0 -1
  71. package/dist/chunk-AKKDP2LI.js.map +0 -1
  72. package/dist/chunk-FJ4W2VC5.js.map +0 -1
  73. package/dist/chunk-HLVC4NNL.js.map +0 -1
  74. package/dist/chunk-NOXQOGT5.js.map +0 -1
  75. package/dist/chunk-OFSDOID4.js.map +0 -1
  76. package/dist/chunk-QI3JAO4J.js.map +0 -1
  77. package/dist/chunk-SKCLZXSW.js.map +0 -1
  78. package/dist/chunk-TPV2SV6L.js.map +0 -1
  79. package/dist/chunk-VAB7EIL5.js.map +0 -1
  80. /package/dist/{chunk-MUPZPISC.js.map → chunk-N4WVVCNI.js.map} +0 -0
  81. /package/dist/{chunk-F5LFPORI.js.map → chunk-OWW7CU4U.js.map} +0 -0
@@ -1,3 +1,8 @@
1
+ import {
2
+ AgentRichTextReadonly,
3
+ promptForProviderSkills,
4
+ skillTriggerForPrefix
5
+ } from "./chunk-UFIEUC3Y.js";
1
6
  import {
2
7
  classifyFailedAgentMessage,
3
8
  isProviderPlanLimitMessage,
@@ -9,37 +14,31 @@ import {
9
14
  AGENT_PASTED_TEXT_MENTION_KIND
10
15
  } from "./chunk-FGLQZ6I4.js";
11
16
  import {
12
- AGENT_RICH_TEXT_CARET_ANCHOR,
13
- attrsToMentionItem,
14
- createAgentFileMentionExtension,
15
- formatAgentMentionMarkdown,
16
- isWorkspaceAgentSyntheticControlMessage,
17
- mentionItemToAttrs,
18
- parseAgentMentionMarkdown
19
- } from "./chunk-NOXQOGT5.js";
17
+ isWorkspaceAgentSyntheticControlMessage
18
+ } from "./chunk-XJ34OIEQ.js";
20
19
  import {
21
20
  AgentGUIConversation_styles_default,
22
21
  AgentMessageMarkdown,
23
22
  CustomScrollArea,
24
23
  MessageSquareMoreIcon,
25
24
  ZoomableImage,
26
- cn,
27
25
  extractAgentMcpToolTarget,
28
26
  extractExitPlanKeepPlanningOptionId,
29
27
  extractExitPlanModeOptions,
30
28
  isExitPlanSwitchModeInput,
31
29
  normalizeAskUserQuestions,
32
- resolveAgentTargetPresentation,
33
30
  resolveWorkspaceFileLinkAction,
34
31
  resolveWorkspaceFilePathCandidate,
35
- resolveWorkspaceLinkAction,
36
- useAgentTargetPresentations
37
- } from "./chunk-TPV2SV6L.js";
32
+ resolveWorkspaceLinkAction
33
+ } from "./chunk-7MPN2JGL.js";
34
+ import {
35
+ cn
36
+ } from "./chunk-KPMQGPYU.js";
38
37
  import {
39
38
  useOptionalAgentActivityRuntime,
40
39
  useOptionalAgentHostApi,
41
40
  workspaceAgentProviderLabel
42
- } from "./chunk-OFSDOID4.js";
41
+ } from "./chunk-LDZ6C3YV.js";
43
42
  import {
44
43
  fileChangeCountFromChanges,
45
44
  fileChangeEntriesFromChanges,
@@ -51,7 +50,7 @@ import {
51
50
  import {
52
51
  getActiveUiLanguage,
53
52
  translate
54
- } from "./chunk-F5LFPORI.js";
53
+ } from "./chunk-OWW7CU4U.js";
55
54
 
56
55
  // shared/imageGenerationTool.ts
57
56
  var KNOWN_IMAGE_GENERATION_TOOL_NAMES = /* @__PURE__ */ new Set([
@@ -1500,6 +1499,95 @@ function normalizeStatusToken(value) {
1500
1499
  return (value ?? "").trim().toLowerCase().replace(/[\s-]+/g, "_");
1501
1500
  }
1502
1501
 
1502
+ // shared/workspaceAgentSystemNoticeSemantics.ts
1503
+ function resolveWorkspaceAgentNoticeCommandSemantics(input) {
1504
+ const semanticCommand = noticeCommand(input.messageSemantics?.noticeCommand);
1505
+ const semanticCommandStatus = noticeCommandStatus(
1506
+ input.messageSemantics?.noticeCommandStatus
1507
+ );
1508
+ const payloadCommand = noticeCommand(
1509
+ recordString(input.payload, "noticeCommand")
1510
+ );
1511
+ const payloadCommandStatus = noticeCommandStatus(
1512
+ recordString(input.payload, "noticeCommandStatus")
1513
+ );
1514
+ const command = semanticCommand ?? payloadCommand;
1515
+ const commandStatus = semanticCommandStatus ?? payloadCommandStatus;
1516
+ if (command && commandStatus) {
1517
+ return { command, commandStatus };
1518
+ }
1519
+ const source = recordString(input.payload, "source");
1520
+ const hasCompactIdentity = source === "compact" || /^(?:claude-sdk:compact:|compaction:)/u.test(input.eventId?.trim() ?? "");
1521
+ if (!hasCompactIdentity) {
1522
+ return null;
1523
+ }
1524
+ const legacyCompactStatus = compactTitleStatus(recordString(input.payload, "title"), input.status) ?? (source === "compact" ? compactStreamStatus(input.status) : null);
1525
+ if (!legacyCompactStatus) {
1526
+ return null;
1527
+ }
1528
+ return {
1529
+ command: "compact",
1530
+ commandStatus: legacyCompactStatus
1531
+ };
1532
+ }
1533
+ function noticeCommand(value) {
1534
+ switch (value) {
1535
+ case "compact":
1536
+ case "review":
1537
+ case "undo":
1538
+ case "goal":
1539
+ return value;
1540
+ default:
1541
+ return null;
1542
+ }
1543
+ }
1544
+ function noticeCommandStatus(value) {
1545
+ switch (value) {
1546
+ case "running":
1547
+ case "completed":
1548
+ case "failed":
1549
+ case "canceled":
1550
+ return value;
1551
+ default:
1552
+ return null;
1553
+ }
1554
+ }
1555
+ function compactTitleStatus(title, status) {
1556
+ switch (title) {
1557
+ case "Compacting context.":
1558
+ return "running";
1559
+ case "Context compacted.":
1560
+ return "completed";
1561
+ case "Context compaction interrupted.":
1562
+ return compactStreamStatus(status) === "canceled" ? "canceled" : "failed";
1563
+ default:
1564
+ return null;
1565
+ }
1566
+ }
1567
+ function compactStreamStatus(status) {
1568
+ switch (status?.trim().toLowerCase()) {
1569
+ case "completed":
1570
+ case "complete":
1571
+ case "done":
1572
+ case "success":
1573
+ case "succeeded":
1574
+ return "completed";
1575
+ case "failed":
1576
+ case "error":
1577
+ return "failed";
1578
+ case "canceled":
1579
+ case "cancelled":
1580
+ case "stopped":
1581
+ return "canceled";
1582
+ default:
1583
+ return "running";
1584
+ }
1585
+ }
1586
+ function recordString(record, key) {
1587
+ const value = record?.[key];
1588
+ return typeof value === "string" && value.trim() ? value.trim() : null;
1589
+ }
1590
+
1503
1591
  // shared/workspaceAgentTimelineProjectionHelpers.ts
1504
1592
  function delegatedToolStepFromCall(call) {
1505
1593
  const payload = normalizedPayload(call.payload ?? void 0);
@@ -1618,13 +1706,25 @@ function visibleErrorFromPayload(payload) {
1618
1706
  retryable: booleanRecordValue(payload, "retryable")
1619
1707
  };
1620
1708
  }
1621
- function systemNoticeFromPayload(payload) {
1622
- if (stringRecordValue5(payload, "kind") !== "agent_system_notice") return null;
1709
+ function systemNoticeFromPayload(payload, context) {
1710
+ const commandSemantics = resolveWorkspaceAgentNoticeCommandSemantics({
1711
+ eventId: context.eventId,
1712
+ messageSemantics: context.messageSemantics,
1713
+ payload,
1714
+ status: context.status
1715
+ });
1716
+ if (stringRecordValue5(payload, "kind") !== "agent_system_notice" && !commandSemantics) {
1717
+ return null;
1718
+ }
1623
1719
  const source = stringRecordValue5(payload, "source");
1624
1720
  return {
1625
1721
  noticeKind: stringRecordValue5(payload, "noticeKind"),
1626
1722
  severity: stringRecordValue5(payload, "severity"),
1627
1723
  ...source ? { source } : {},
1724
+ ...commandSemantics ? {
1725
+ command: commandSemantics.command,
1726
+ commandStatus: commandSemantics.commandStatus
1727
+ } : {},
1628
1728
  title: stringRecordValue5(payload, "title"),
1629
1729
  detail: stringRecordValue5(payload, "detail"),
1630
1730
  retryable: booleanRecordValue(payload, "retryable")
@@ -1816,7 +1916,7 @@ function buildCanonicalWorkspaceAgentDetailView({
1816
1916
  if (role === "agent" && body) {
1817
1917
  const payload = normalizedPayload(item.payload);
1818
1918
  const visibleError = visibleErrorFromPayload(payload);
1819
- const systemNotice = systemNoticeFromPayload(payload);
1919
+ const systemNotice = systemNoticeFromPayload(payload, item);
1820
1920
  const status = firstPresentString5(
1821
1921
  item.status,
1822
1922
  stringRecordValue5(payload, "status")
@@ -2563,6 +2663,27 @@ function stringValue2(value) {
2563
2663
  return typeof value === "string" && value.trim() ? value.trim() : null;
2564
2664
  }
2565
2665
 
2666
+ // shared/agentConversation/projection/agentTranscriptPresentation.ts
2667
+ function resolveAgentTranscriptPresentationKind(notice) {
2668
+ if (notice?.command !== "compact") {
2669
+ return "content";
2670
+ }
2671
+ if (notice.commandStatus === "running") {
2672
+ return "specific-progress";
2673
+ }
2674
+ if (notice.commandStatus === "completed" || notice.commandStatus === "failed" || notice.commandStatus === "canceled") {
2675
+ return "turn-boundary";
2676
+ }
2677
+ return "content";
2678
+ }
2679
+ function agentTranscriptRowHasPresentationKind(row, presentationKind) {
2680
+ return Boolean(
2681
+ row?.kind === "message" && row.messages.some(
2682
+ (message) => message.presentationKind === presentationKind
2683
+ )
2684
+ );
2685
+ }
2686
+
2566
2687
  // shared/agentConversation/projection/agentApprovalProjection.ts
2567
2688
  function projectAgentApprovalItem(call, input, output) {
2568
2689
  const callType = normalizeToken(call.callType);
@@ -3060,62 +3181,6 @@ function normalizeStandardACPEnvelope(value) {
3060
3181
 
3061
3182
  // agent-gui/agentGuiNode/model/agentComposerDraft.ts
3062
3183
  import { createRichTextMentionMarkdown } from "@tutti-os/ui-rich-text/core";
3063
-
3064
- // agent-gui/agentGuiNode/model/agentSkillOptions.ts
3065
- function skillTriggerForPrefix(skill, prefix) {
3066
- const trigger = skill.trigger.trim();
3067
- if (!trigger) {
3068
- return "";
3069
- }
3070
- if (prefix === void 0 || trigger.startsWith(prefix)) {
3071
- return trigger;
3072
- }
3073
- if (trigger.startsWith("$") || trigger.startsWith("/")) {
3074
- return `${prefix}${trigger.slice(1)}`;
3075
- }
3076
- return `${prefix}${trigger}`;
3077
- }
3078
- function labelForProviderSkill(skill, prefix) {
3079
- return stripSkillTriggerPrefix(skillTriggerForPrefix(skill, prefix));
3080
- }
3081
- function promptForProviderSkills(input) {
3082
- let prompt = input.prompt;
3083
- for (const skill of input.skills) {
3084
- if (!skill.invocation) {
3085
- continue;
3086
- }
3087
- const nativePrefix = skill.invocation === "promptItem" ? "$" : "/";
3088
- const nativeTrigger = skillTriggerForPrefix(skill, nativePrefix);
3089
- const aliasPrefix = nativePrefix === "$" ? "/" : "$";
3090
- const aliasTrigger = skillTriggerForPrefix(skill, aliasPrefix);
3091
- if (!nativeTrigger || !aliasTrigger || nativeTrigger === aliasTrigger) {
3092
- continue;
3093
- }
3094
- prompt = replaceSkillTriggerToken(prompt, aliasTrigger, nativeTrigger);
3095
- }
3096
- return prompt;
3097
- }
3098
- function skillDescriptionForDisplay(description) {
3099
- const line = description?.split(/\r?\n/).map((part) => part.trim()).find((part) => part !== "");
3100
- return line || void 0;
3101
- }
3102
- function replaceSkillTriggerToken(prompt, from, to) {
3103
- return prompt.replace(
3104
- new RegExp(`(^|\\s)${escapeRegExp(from)}(?=$|\\s)`, "g"),
3105
- (_match, separator) => `${separator}${to}`
3106
- );
3107
- }
3108
- function escapeRegExp(value) {
3109
- return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
3110
- }
3111
- function stripSkillTriggerPrefix(trigger) {
3112
- if (trigger.startsWith("$") || trigger.startsWith("/")) {
3113
- return trigger.slice(1);
3114
- }
3115
- return trigger;
3116
- }
3117
-
3118
- // agent-gui/agentGuiNode/model/agentComposerDraft.ts
3119
3184
  var PASTED_TEXT_MENTION_PREVIEW_MAX_CHARS = 10;
3120
3185
  function pastedTextPreview(text) {
3121
3186
  const collapsed = text.replace(/\s+/g, " ").trim().replace(/[[\]()]/g, "");
@@ -3349,19 +3414,39 @@ function agentComposerDraftToPromptContent(input) {
3349
3414
  ...largeTextPromptContent(agentComposerDraftLargeTexts(input.draft))
3350
3415
  ]);
3351
3416
  }
3417
+ function agentComposerDraftSubmittedText(draft) {
3418
+ return agentPromptContentDisplayText(
3419
+ normalizeAgentPromptContentBlocks([
3420
+ ...textPromptContent(agentComposerDraftPrompt(draft)),
3421
+ ...largeTextPromptContent(agentComposerDraftLargeTexts(draft))
3422
+ ])
3423
+ );
3424
+ }
3352
3425
  function agentComposerDraftDisplayPrompt(draft) {
3426
+ const prompt = agentComposerDraftPrompt(draft).trim();
3353
3427
  const largeTexts = agentComposerDraftLargeTexts(draft).filter(
3354
3428
  (item) => Boolean(item.path) && !item.uploading && !item.uploadError
3355
3429
  );
3356
3430
  if (!largeTexts.length) {
3357
- return void 0;
3431
+ return prompt.includes("](mention://") ? prompt : void 0;
3358
3432
  }
3359
- const parts = [agentComposerDraftPrompt(draft).trim()].filter(Boolean);
3433
+ const parts = [prompt].filter(Boolean);
3360
3434
  parts.push(
3361
3435
  ...largeTexts.map((item, index) => pastedTextMentionMarkdown(item, index)).filter(Boolean)
3362
3436
  );
3363
3437
  return parts.join("\n");
3364
3438
  }
3439
+ function projectAgentComposerDraftSubmission(input) {
3440
+ const content = agentComposerDraftToPromptContent(input);
3441
+ const explicitDisplayPrompt = agentComposerDraftDisplayPrompt(input.draft);
3442
+ const visibleText = agentComposerDraftSubmittedText(input.draft);
3443
+ const runtimeText = agentPromptContentDisplayText(content);
3444
+ const displayPrompt = explicitDisplayPrompt ?? (visibleText !== runtimeText ? visibleText : void 0);
3445
+ return {
3446
+ content,
3447
+ ...displayPrompt ? { displayPrompt } : {}
3448
+ };
3449
+ }
3365
3450
  function agentPromptFileBlocks(content) {
3366
3451
  return normalizeAgentPromptContentBlocks(content).filter(
3367
3452
  (block) => block.type === "file" && !isPastedTextPromptBlock(block) && (typeof block.path === "string" || typeof block.hostPath === "string")
@@ -3395,9 +3480,9 @@ function promptItemBlocksForProviderSkills(input) {
3395
3480
  return result;
3396
3481
  }
3397
3482
  function promptHasTrigger(prompt, trigger) {
3398
- return new RegExp(`(^|\\s)${escapeRegExp2(trigger)}(?=$|\\s)`).test(prompt);
3483
+ return new RegExp(`(^|\\s)${escapeRegExp(trigger)}(?=$|\\s)`).test(prompt);
3399
3484
  }
3400
- function escapeRegExp2(value) {
3485
+ function escapeRegExp(value) {
3401
3486
  return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
3402
3487
  }
3403
3488
  function textPromptContent(prompt) {
@@ -3540,6 +3625,7 @@ function projectUserMessageContentParts(message, turnId, workspaceId) {
3540
3625
  id: `${message.id}:images:0`,
3541
3626
  turnId,
3542
3627
  body: "",
3628
+ presentationKind: "content",
3543
3629
  contentKind: "image-grid",
3544
3630
  images: imageBlocks.map((image, index) => ({
3545
3631
  id: `${message.id}:image:${index}`,
@@ -3563,6 +3649,7 @@ function projectUserMessageContentParts(message, turnId, workspaceId) {
3563
3649
  id: `${message.id}:text:${index}`,
3564
3650
  turnId,
3565
3651
  body: block.text,
3652
+ presentationKind: "content",
3566
3653
  contentKind: "text",
3567
3654
  occurredAtUnixMs: message.occurredAtUnixMs ?? null,
3568
3655
  sourceTimelineItems: message.sourceTimelineItems
@@ -3576,6 +3663,7 @@ function textPart(message, turnId) {
3576
3663
  id: message.id,
3577
3664
  turnId,
3578
3665
  body: message.body,
3666
+ presentationKind: "content",
3579
3667
  contentKind: "text",
3580
3668
  occurredAtUnixMs: message.occurredAtUnixMs ?? null,
3581
3669
  sourceTimelineItems: message.sourceTimelineItems
@@ -3740,6 +3828,9 @@ function projectMessage(message, turnId) {
3740
3828
  id: message.id,
3741
3829
  turnId: message.turnId ?? turnId,
3742
3830
  body: message.body,
3831
+ presentationKind: resolveAgentTranscriptPresentationKind(
3832
+ message.systemNotice ?? null
3833
+ ),
3743
3834
  statusKind: message.statusKind ?? null,
3744
3835
  occurredAtUnixMs: message.occurredAtUnixMs ?? null,
3745
3836
  visibleError: message.visibleError ?? null,
@@ -3875,10 +3966,10 @@ function projectAgentProcessingRow(detail, rows) {
3875
3966
  if (!detail.showProcessingIndicator) {
3876
3967
  return null;
3877
3968
  }
3878
- if (hasSpecificProgressRow(rows)) {
3969
+ const turnId = detail.turns.at(-1)?.id ?? null;
3970
+ if (turnId && hasSpecificProgressRow(rows, turnId)) {
3879
3971
  return null;
3880
3972
  }
3881
- const turnId = detail.turns.at(-1)?.id ?? null;
3882
3973
  return {
3883
3974
  kind: "processing",
3884
3975
  id: `processing:${turnId ?? "session"}`,
@@ -3886,12 +3977,12 @@ function projectAgentProcessingRow(detail, rows) {
3886
3977
  occurredAtUnixMs: detail.session.updatedAtUnixMs ?? detail.session.createdAtUnixMs ?? null
3887
3978
  };
3888
3979
  }
3889
- function hasSpecificProgressRow(rows) {
3980
+ function hasSpecificProgressRow(rows, activeTurnId) {
3890
3981
  return rows.some((row) => {
3891
- if (row.kind !== "tool-group") {
3982
+ if (row.turnId !== activeTurnId) {
3892
3983
  return false;
3893
3984
  }
3894
- return row.calls.some(
3985
+ return agentTranscriptRowHasPresentationKind(row, "specific-progress") || row.kind === "tool-group" && row.calls.some(
3895
3986
  (call) => call.statusKind === "working" || call.statusKind === "waiting"
3896
3987
  );
3897
3988
  });
@@ -4939,7 +5030,9 @@ function projectAgentConversationVM(detail, options = {}) {
4939
5030
  dropCodexRuntimeDiagnosticNotices(
4940
5031
  dropRedundantErrorWarningNotices(
4941
5032
  mergeAdjacentAssistantMessageRows(
4942
- mergeAdjacentTransportRetryNoticeRows(rows)
5033
+ dropRedundantCompactFailureEchoRows(
5034
+ mergeAdjacentTransportRetryNoticeRows(rows)
5035
+ )
4943
5036
  )
4944
5037
  )
4945
5038
  ),
@@ -4954,6 +5047,27 @@ function projectAgentConversationVM(detail, options = {}) {
4954
5047
  rows: normalizedRows
4955
5048
  };
4956
5049
  }
5050
+ function dropRedundantCompactFailureEchoRows(rows) {
5051
+ const filtered = [];
5052
+ for (const row of rows) {
5053
+ const previous = filtered.at(-1);
5054
+ if (isSingleCompactFailureNoticeRow(previous) && isSinglePlainAssistantMessageRow(row) && previous.turnId === row.turnId && previous.messages[0]?.systemNotice?.detail?.trim() === row.messages[0]?.body.trim()) {
5055
+ continue;
5056
+ }
5057
+ filtered.push(row);
5058
+ }
5059
+ return filtered;
5060
+ }
5061
+ function isSingleCompactFailureNoticeRow(row) {
5062
+ if (!row || row.kind !== "message" || row.speaker !== "assistant" || row.thinking.length > 0 || row.messages.length !== 1) {
5063
+ return false;
5064
+ }
5065
+ const notice = row.messages[0]?.systemNotice;
5066
+ return notice?.command === "compact" && notice.commandStatus === "failed" && Boolean(notice.detail?.trim());
5067
+ }
5068
+ function isSinglePlainAssistantMessageRow(row) {
5069
+ return row.kind === "message" && row.speaker === "assistant" && row.thinking.length === 0 && row.messages.length === 1 && !row.messages[0]?.visibleError && !row.messages[0]?.systemNotice;
5070
+ }
4957
5071
  function reconcileProjectedAgentConversationVM(previous, next) {
4958
5072
  if (!previous) {
4959
5073
  return next;
@@ -5333,7 +5447,7 @@ function resolveAgentConversationLinkAction({
5333
5447
  import {
5334
5448
  Fragment as Fragment2,
5335
5449
  useCallback as useCallback4,
5336
- useEffect as useEffect5,
5450
+ useEffect as useEffect4,
5337
5451
  useState as useState7
5338
5452
  } from "react";
5339
5453
  import { CheckIcon, CopyIcon } from "@tutti-os/ui-system/icons";
@@ -5623,678 +5737,6 @@ function AgentPlanCard({
5623
5737
  );
5624
5738
  }
5625
5739
 
5626
- // shared/AgentRichTextReadonly.tsx
5627
- import { useEffect } from "react";
5628
- import { EditorContent, useEditor } from "@tiptap/react";
5629
-
5630
- // agent-gui/agentGuiNode/agentRichText/agentSkillTokenExtension.ts
5631
- import { mergeAttributes, Node as Node2 } from "@tiptap/core";
5632
- function createAgentSkillTokenExtension(options = {}) {
5633
- return Node2.create({
5634
- name: "agentSkillToken",
5635
- group: "inline",
5636
- inline: true,
5637
- atom: true,
5638
- selectable: true,
5639
- addOptions() {
5640
- return options;
5641
- },
5642
- addAttributes() {
5643
- return {
5644
- label: { default: "" },
5645
- name: { default: "" },
5646
- trigger: { default: "" }
5647
- };
5648
- },
5649
- parseHTML() {
5650
- return [{ tag: "span[data-agent-skill-token]" }];
5651
- },
5652
- renderHTML({ HTMLAttributes }) {
5653
- const attrs = attrsToSkillTokenAttrs(HTMLAttributes);
5654
- const displayLabel = skillTokenDisplayLabel(attrs);
5655
- return [
5656
- "span",
5657
- mergeAttributes(HTMLAttributes, {
5658
- "aria-label": attrs.label,
5659
- contenteditable: "false",
5660
- "data-agent-skill-token": "true",
5661
- "data-agent-skill-trigger": attrs.trigger,
5662
- "data-agent-mention-kind": "skill",
5663
- class: "tsh-agent-object-token tsh-agent-object-token--entity"
5664
- }),
5665
- [
5666
- "span",
5667
- {
5668
- class: "tsh-agent-object-token__kind",
5669
- "aria-hidden": "true"
5670
- },
5671
- [
5672
- "span",
5673
- {
5674
- class: "tsh-agent-object-token__kind-icon",
5675
- "aria-hidden": "true"
5676
- },
5677
- ""
5678
- ]
5679
- ],
5680
- ["span", { class: "tsh-agent-object-token__main" }, displayLabel]
5681
- ];
5682
- },
5683
- renderText({ node }) {
5684
- return attrsToSkillTokenAttrs(node.attrs ?? {}).trigger;
5685
- }
5686
- });
5687
- }
5688
- function parseAgentSkillToken(text, start, skills = []) {
5689
- if (!isSkillTokenBoundary(text[start - 1] ?? "")) {
5690
- return null;
5691
- }
5692
- for (const candidate of skillTokenCandidates(skills)) {
5693
- if (!text.startsWith(candidate.trigger, start)) {
5694
- continue;
5695
- }
5696
- const end = start + candidate.trigger.length;
5697
- if (!isSkillTokenBoundary(text[end] ?? "")) {
5698
- continue;
5699
- }
5700
- return {
5701
- attrs: candidate,
5702
- end
5703
- };
5704
- }
5705
- return null;
5706
- }
5707
- function skillTokenCandidates(skills) {
5708
- const candidates = /* @__PURE__ */ new Map();
5709
- for (const skill of skills) {
5710
- for (const prefix of ["$", "/"]) {
5711
- const trigger = skillTriggerForPrefix(skill, prefix);
5712
- if (!trigger || candidates.has(trigger)) {
5713
- continue;
5714
- }
5715
- candidates.set(trigger, {
5716
- label: labelForProviderSkill(skill, prefix),
5717
- name: skill.name.trim(),
5718
- trigger
5719
- });
5720
- }
5721
- }
5722
- return [...candidates.values()].sort(
5723
- (left, right) => right.trigger.length - left.trigger.length
5724
- );
5725
- }
5726
- function isSkillTokenBoundary(value) {
5727
- return value === "" || value === " " || value === "\n" || value === " ";
5728
- }
5729
- function attrsToSkillTokenAttrs(attrs) {
5730
- return {
5731
- label: typeof attrs.label === "string" ? attrs.label : "",
5732
- name: typeof attrs.name === "string" ? attrs.name : "",
5733
- trigger: typeof attrs.trigger === "string" ? attrs.trigger : ""
5734
- };
5735
- }
5736
- function skillTokenDisplayLabel(attrs) {
5737
- const label = attrs.label.trim() || attrs.trigger.trim();
5738
- if (!label || label.startsWith("/") || label.startsWith("$")) {
5739
- return label;
5740
- }
5741
- return `/${label}`;
5742
- }
5743
-
5744
- // agent-gui/agentGuiNode/agentRichText/agentCapabilityTokenExtension.ts
5745
- import { mergeAttributes as mergeAttributes2, Node as Node3 } from "@tiptap/core";
5746
- function createAgentCapabilityTokenExtension(options = {}) {
5747
- return Node3.create({
5748
- name: "agentCapabilityToken",
5749
- group: "inline",
5750
- inline: true,
5751
- atom: true,
5752
- selectable: true,
5753
- addOptions() {
5754
- return options;
5755
- },
5756
- addAttributes() {
5757
- return {
5758
- capability: { default: "" },
5759
- label: { default: "" },
5760
- name: { default: "" },
5761
- trigger: { default: "" }
5762
- };
5763
- },
5764
- parseHTML() {
5765
- return [{ tag: "span[data-agent-capability-token]" }];
5766
- },
5767
- renderHTML({ HTMLAttributes }) {
5768
- const attrs = attrsToCapabilityTokenAttrs(HTMLAttributes);
5769
- const displayLabel = capabilityTokenDisplayLabel(attrs);
5770
- return [
5771
- "span",
5772
- mergeAttributes2(HTMLAttributes, {
5773
- "aria-label": attrs.label,
5774
- contenteditable: "false",
5775
- "data-agent-capability-token": "true",
5776
- "data-agent-capability-trigger": attrs.trigger,
5777
- "data-agent-mention-kind": "capability",
5778
- class: "tsh-agent-object-token tsh-agent-object-token--entity"
5779
- }),
5780
- [
5781
- "span",
5782
- {
5783
- class: "tsh-agent-object-token__kind",
5784
- "aria-hidden": "true"
5785
- },
5786
- [
5787
- "span",
5788
- {
5789
- class: "tsh-agent-object-token__kind-icon",
5790
- "aria-hidden": "true"
5791
- },
5792
- ""
5793
- ]
5794
- ],
5795
- ["span", { class: "tsh-agent-object-token__main" }, displayLabel]
5796
- ];
5797
- },
5798
- renderText({ node }) {
5799
- return attrsToCapabilityTokenAttrs(node.attrs ?? {}).trigger;
5800
- }
5801
- });
5802
- }
5803
- function parseAgentCapabilityToken(text, start, capabilities = []) {
5804
- if (!isCapabilityTokenBoundary(text[start - 1] ?? "")) {
5805
- return null;
5806
- }
5807
- for (const candidate of capabilityTokenCandidates(capabilities)) {
5808
- if (!text.startsWith(candidate.trigger, start)) {
5809
- continue;
5810
- }
5811
- const end = start + candidate.trigger.length;
5812
- if (!isCapabilityTokenBoundary(text[end] ?? "")) {
5813
- continue;
5814
- }
5815
- return {
5816
- attrs: candidate,
5817
- end
5818
- };
5819
- }
5820
- return null;
5821
- }
5822
- function capabilityTokenCandidates(capabilities) {
5823
- const candidates = /* @__PURE__ */ new Map();
5824
- for (const capability of capabilities) {
5825
- const trigger = capability.trigger.trim();
5826
- if (!trigger || candidates.has(trigger)) {
5827
- continue;
5828
- }
5829
- candidates.set(trigger, {
5830
- capability: capability.capability.trim(),
5831
- label: capability.label.trim(),
5832
- name: capability.name.trim(),
5833
- trigger
5834
- });
5835
- }
5836
- return [...candidates.values()].sort(
5837
- (left, right) => right.trigger.length - left.trigger.length
5838
- );
5839
- }
5840
- function isCapabilityTokenBoundary(value) {
5841
- return value === "" || value === " " || value === "\n" || value === " ";
5842
- }
5843
- function attrsToCapabilityTokenAttrs(attrs) {
5844
- return {
5845
- capability: typeof attrs.capability === "string" ? attrs.capability : "",
5846
- label: typeof attrs.label === "string" ? attrs.label : "",
5847
- name: typeof attrs.name === "string" ? attrs.name : "",
5848
- trigger: typeof attrs.trigger === "string" ? attrs.trigger : ""
5849
- };
5850
- }
5851
- function capabilityTokenDisplayLabel(attrs) {
5852
- const label = attrs.label.trim() || attrs.trigger.trim();
5853
- if (!label || label.startsWith("/") || label.startsWith("$")) {
5854
- return label;
5855
- }
5856
- return `/${label}`;
5857
- }
5858
-
5859
- // agent-gui/agentGuiNode/agentRichText/agentRichTextDocument.ts
5860
- function createEmptyDocument() {
5861
- return {
5862
- type: "doc",
5863
- content: [{ type: "paragraph" }]
5864
- };
5865
- }
5866
- function isVisualLineStart(content) {
5867
- return content.length === 0 || content.at(-1)?.type === "hardBreak";
5868
- }
5869
- function createParagraphFromText(text, options = {}) {
5870
- const content = [];
5871
- let index = 0;
5872
- let textBuffer = "";
5873
- const flushTextBuffer = () => {
5874
- if (textBuffer.length === 0) {
5875
- return;
5876
- }
5877
- content.push({ type: "text", text: textBuffer });
5878
- textBuffer = "";
5879
- };
5880
- while (index < text.length) {
5881
- const current = text[index];
5882
- if (current === "\n") {
5883
- flushTextBuffer();
5884
- content.push({ type: "hardBreak" });
5885
- index += 1;
5886
- continue;
5887
- }
5888
- const parsedMention = parseAgentMentionMarkdown(text, index);
5889
- if (parsedMention) {
5890
- flushTextBuffer();
5891
- if (isVisualLineStart(content)) {
5892
- content.push({ type: "text", text: AGENT_RICH_TEXT_CARET_ANCHOR });
5893
- }
5894
- content.push({
5895
- type: "agentFileMention",
5896
- // 转成规范 node attrs(如 workspace-reference 的 source/groupId/fileCount),
5897
- // 否则只读回显里的 reference chip 拿不到文件数 → 不显示「N 个文件」角标。
5898
- attrs: mentionItemToAttrs(parsedMention.item)
5899
- });
5900
- index = parsedMention.end;
5901
- continue;
5902
- }
5903
- const parsedCapabilityToken = parseAgentCapabilityToken(
5904
- text,
5905
- index,
5906
- options.capabilities
5907
- );
5908
- if (parsedCapabilityToken) {
5909
- flushTextBuffer();
5910
- content.push({
5911
- type: "agentCapabilityToken",
5912
- attrs: parsedCapabilityToken.attrs
5913
- });
5914
- index = parsedCapabilityToken.end;
5915
- continue;
5916
- }
5917
- const parsedSkillToken = parseAgentSkillToken(text, index, options.skills);
5918
- if (parsedSkillToken) {
5919
- flushTextBuffer();
5920
- content.push({
5921
- type: "agentSkillToken",
5922
- attrs: parsedSkillToken.attrs
5923
- });
5924
- index = parsedSkillToken.end;
5925
- continue;
5926
- }
5927
- textBuffer += current;
5928
- index += 1;
5929
- }
5930
- flushTextBuffer();
5931
- return content.length > 0 ? { type: "paragraph", content } : { type: "paragraph" };
5932
- }
5933
- function plainTextToAgentRichTextDoc(text, options = {}) {
5934
- if (text.length === 0) {
5935
- return createEmptyDocument();
5936
- }
5937
- const normalized = text.replace(/\r\n?/g, "\n");
5938
- return {
5939
- type: "doc",
5940
- content: [createParagraphFromText(normalized, options)]
5941
- };
5942
- }
5943
- function plainTextToAgentRichTextInlineContent(text, options = {}) {
5944
- const paragraph = createParagraphFromText(
5945
- text.replace(/\r\n?/g, "\n"),
5946
- options
5947
- );
5948
- return paragraph.content ?? [];
5949
- }
5950
- function agentRichTextDocToPromptText(doc) {
5951
- if (doc.type !== "doc") {
5952
- return nodeToPromptText(doc);
5953
- }
5954
- return agentRichTextContentToPromptText(doc.content ?? []);
5955
- }
5956
- function editorToPromptText(editor) {
5957
- return agentRichTextDocToPromptText(editor.getJSON());
5958
- }
5959
- function agentRichTextContentToPromptText(content) {
5960
- if (content.length === 0) {
5961
- return "";
5962
- }
5963
- const separator = content.some((node) => isBlockPromptNode(node)) ? "\n" : "";
5964
- return content.map((node) => nodeToPromptText(node)).join(separator);
5965
- }
5966
- function isBlockPromptNode(node) {
5967
- return node.type === "doc" || node.type === "paragraph";
5968
- }
5969
- function nodeToPromptText(node) {
5970
- if (node.type === "text") {
5971
- return (node.text ?? "").replaceAll(AGENT_RICH_TEXT_CARET_ANCHOR, "");
5972
- }
5973
- if (node.type === "agentFileMention") {
5974
- return formatAgentMentionMarkdown(attrsToMentionItem(node.attrs ?? {}));
5975
- }
5976
- if (node.type === "agentSkillToken") {
5977
- return typeof node.attrs?.trigger === "string" ? node.attrs.trigger : "";
5978
- }
5979
- if (node.type === "agentCapabilityToken") {
5980
- return typeof node.attrs?.trigger === "string" ? node.attrs.trigger : "";
5981
- }
5982
- if (node.type === "hardBreak") {
5983
- return "\n";
5984
- }
5985
- if (!node.content || node.content.length === 0) {
5986
- return "";
5987
- }
5988
- return node.content.map((child) => nodeToPromptText(child)).join("");
5989
- }
5990
-
5991
- // agent-gui/agentGuiNode/agentRichText/agentRichTextExtensions.ts
5992
- import { Extension } from "@tiptap/core";
5993
- import { NodeSelection, TextSelection } from "@tiptap/pm/state";
5994
- import { Plugin } from "@tiptap/pm/state";
5995
- import StarterKit from "@tiptap/starter-kit";
5996
- function createAgentPromptStarterKit() {
5997
- return StarterKit.configure({
5998
- blockquote: false,
5999
- bold: false,
6000
- bulletList: false,
6001
- code: false,
6002
- codeBlock: false,
6003
- dropcursor: false,
6004
- gapcursor: false,
6005
- heading: false,
6006
- horizontalRule: false,
6007
- italic: false,
6008
- link: false,
6009
- listItem: false,
6010
- listKeymap: false,
6011
- orderedList: false,
6012
- strike: false,
6013
- trailingNode: false,
6014
- underline: false
6015
- });
6016
- }
6017
- function createAgentTokenKeyboardExtension() {
6018
- return Extension.create({
6019
- name: "agentTokenKeyboard",
6020
- addProseMirrorPlugins() {
6021
- return [
6022
- new Plugin({
6023
- props: {
6024
- handleKeyDown(view, event) {
6025
- if (event.key !== "Backspace" && event.key !== "ArrowLeft") {
6026
- return false;
6027
- }
6028
- const { doc, selection } = view.state;
6029
- if (selection instanceof NodeSelection && isSelectableAgentToken(selection.node)) {
6030
- event.preventDefault();
6031
- if (event.key === "ArrowLeft") {
6032
- view.dispatch(
6033
- view.state.tr.setSelection(
6034
- TextSelection.create(doc, selection.from)
6035
- )
6036
- );
6037
- } else {
6038
- view.dispatch(
6039
- view.state.tr.delete(selection.from, selection.to)
6040
- );
6041
- }
6042
- return true;
6043
- }
6044
- if (!selection.empty) {
6045
- return false;
6046
- }
6047
- const nodeBefore = selection.$from.nodeBefore;
6048
- if (!nodeBefore || !isSelectableAgentToken(nodeBefore)) {
6049
- return false;
6050
- }
6051
- event.preventDefault();
6052
- view.dispatch(
6053
- view.state.tr.setSelection(
6054
- NodeSelection.create(
6055
- doc,
6056
- selection.from - nodeBefore.nodeSize
6057
- )
6058
- )
6059
- );
6060
- return true;
6061
- }
6062
- }
6063
- })
6064
- ];
6065
- }
6066
- });
6067
- }
6068
- function isSelectableAgentToken(node) {
6069
- return node?.type.name === "agentSkillToken" || node?.type.name === "agentCapabilityToken";
6070
- }
6071
- function createAgentRichTextInputExtensions(fileMentionOptions, skillTokenOptions, capabilityTokenOptions) {
6072
- return [
6073
- createAgentTokenKeyboardExtension(),
6074
- createAgentPromptStarterKit(),
6075
- createAgentFileMentionExtension(fileMentionOptions),
6076
- createAgentCapabilityTokenExtension(capabilityTokenOptions),
6077
- createAgentSkillTokenExtension(skillTokenOptions)
6078
- ];
6079
- }
6080
- function createAgentRichTextReadonlyExtensions(skillTokenOptions, capabilityTokenOptions) {
6081
- return [
6082
- createAgentPromptStarterKit(),
6083
- createAgentFileMentionExtension({
6084
- enableSuggestions: false,
6085
- renderAsLink: true
6086
- }),
6087
- createAgentCapabilityTokenExtension(capabilityTokenOptions),
6088
- createAgentSkillTokenExtension(skillTokenOptions)
6089
- ];
6090
- }
6091
-
6092
- // shared/AgentRichTextReadonly.tsx
6093
- import { jsx as jsx3 } from "react/jsx-runtime";
6094
- var EMPTY_WORKSPACE_APP_ICONS = [];
6095
- function AgentRichTextReadonly({
6096
- value,
6097
- className,
6098
- editorClassName,
6099
- onLinkClick,
6100
- availableSkills = [],
6101
- workspaceAppIcons = EMPTY_WORKSPACE_APP_ICONS,
6102
- agentTargets
6103
- }) {
6104
- "use memo";
6105
- const contextAgentTargets = useAgentTargetPresentations();
6106
- const effectiveAgentTargets = agentTargets ?? contextAgentTargets;
6107
- const contentDoc = plainTextToAgentRichTextDocWithMentionPresentations(
6108
- value,
6109
- availableSkills,
6110
- workspaceAppIcons,
6111
- effectiveAgentTargets
6112
- );
6113
- const isMentionOnly = isMentionOnlyRichTextDoc(contentDoc);
6114
- const editor = useEditor({
6115
- // AgentGUI is client-only. Deferring editor creation leaves every user
6116
- // message blank for one commit, then changes each transcript turn's
6117
- // measured height when TipTap mounts.
6118
- immediatelyRender: true,
6119
- editable: false,
6120
- extensions: createAgentRichTextReadonlyExtensions({
6121
- skills: availableSkills
6122
- }),
6123
- content: contentDoc,
6124
- editorProps: {
6125
- attributes: {
6126
- class: cn(
6127
- editorClassName,
6128
- "max-w-full overflow-x-hidden overflow-y-auto whitespace-pre-wrap break-words [overflow-wrap:anywhere] [&_p]:m-0 [&_p]:min-h-[1.45em] [&_a[data-agent-file-mention=true]]:cursor-pointer [&_[data-agent-file-mention=true]]:overflow-hidden"
6129
- )
6130
- },
6131
- handleDOMEvents: {
6132
- click: (_view, event) => {
6133
- if (!onLinkClick || !(event.target instanceof Element)) {
6134
- return false;
6135
- }
6136
- const mention = event.target.closest(
6137
- '[data-agent-file-mention="true"]'
6138
- );
6139
- if (!(mention instanceof HTMLElement)) {
6140
- return false;
6141
- }
6142
- const href = mention instanceof HTMLAnchorElement ? mention.getAttribute("href") || "" : mention.getAttribute("data-agent-mention-href") || "";
6143
- if (!href) {
6144
- return false;
6145
- }
6146
- event.preventDefault();
6147
- event.stopPropagation();
6148
- onLinkClick(href);
6149
- return true;
6150
- }
6151
- }
6152
- }
6153
- });
6154
- useEffect(() => {
6155
- if (!editor || editor.isDestroyed) {
6156
- return;
6157
- }
6158
- const nextDoc = plainTextToAgentRichTextDocWithMentionPresentations(
6159
- value,
6160
- availableSkills,
6161
- workspaceAppIcons,
6162
- effectiveAgentTargets
6163
- );
6164
- if (JSON.stringify(editor.getJSON()) === JSON.stringify(nextDoc)) {
6165
- return;
6166
- }
6167
- editor.commands.setContent(nextDoc, { emitUpdate: false });
6168
- }, [
6169
- availableSkills,
6170
- effectiveAgentTargets,
6171
- editor,
6172
- value,
6173
- workspaceAppIcons
6174
- ]);
6175
- if (!editor) {
6176
- return /* @__PURE__ */ jsx3(
6177
- "div",
6178
- {
6179
- className,
6180
- "data-agent-mention-only": isMentionOnly ? "true" : void 0
6181
- }
6182
- );
6183
- }
6184
- return /* @__PURE__ */ jsx3(
6185
- "div",
6186
- {
6187
- className,
6188
- "data-agent-mention-only": isMentionOnly ? "true" : void 0,
6189
- children: /* @__PURE__ */ jsx3(EditorContent, { editor })
6190
- }
6191
- );
6192
- }
6193
- function isMentionOnlyRichTextDoc(doc) {
6194
- if (doc.type !== "doc") {
6195
- return false;
6196
- }
6197
- const blocks = doc.content ?? [];
6198
- if (blocks.length !== 1) {
6199
- return false;
6200
- }
6201
- const paragraph = blocks[0];
6202
- if (paragraph?.type !== "paragraph") {
6203
- return false;
6204
- }
6205
- const inlineContent = (paragraph.content ?? []).filter(
6206
- (node) => !(node.type === "text" && (node.text ?? "").replaceAll(AGENT_RICH_TEXT_CARET_ANCHOR, "").length === 0)
6207
- );
6208
- return inlineContent.length === 1 && inlineContent[0]?.type === "agentFileMention";
6209
- }
6210
- function plainTextToAgentRichTextDocWithMentionPresentations(value, availableSkills, workspaceAppIcons, agentTargets) {
6211
- let doc = plainTextToAgentRichTextDoc(value, { skills: availableSkills });
6212
- if (workspaceAppIcons.length > 0) {
6213
- doc = hydrateWorkspaceAppMentionIcons(doc, workspaceAppIcons);
6214
- }
6215
- if (agentTargets.length > 0) {
6216
- doc = hydrateAgentTargetMentionPresentations(doc, agentTargets);
6217
- }
6218
- return doc;
6219
- }
6220
- function hydrateWorkspaceAppMentionIcons(node, workspaceAppIcons) {
6221
- const nextContent = node.content?.map(
6222
- (child) => hydrateWorkspaceAppMentionIcons(child, workspaceAppIcons)
6223
- );
6224
- if (node.type !== "agentFileMention") {
6225
- return nextContent ? { ...node, content: nextContent } : node;
6226
- }
6227
- const attrs = node.attrs ?? {};
6228
- const kind = typeof attrs.kind === "string" ? attrs.kind : "";
6229
- const isWorkspaceAppMention = kind === "workspace-app";
6230
- const isAppWorkspaceReferenceMention = kind === "workspace-reference" && attrs.source === "app";
6231
- if (!isWorkspaceAppMention && !isAppWorkspaceReferenceMention) {
6232
- return nextContent ? { ...node, content: nextContent } : node;
6233
- }
6234
- const workspaceId = typeof attrs.workspaceId === "string" ? attrs.workspaceId.trim() : "";
6235
- const appId = isWorkspaceAppMention && typeof attrs.appId === "string" ? attrs.appId.trim() : typeof attrs.targetId === "string" ? attrs.targetId.trim() : "";
6236
- const iconUrl = resolveWorkspaceAppIconUrl({
6237
- appId,
6238
- workspaceId,
6239
- workspaceAppIcons
6240
- });
6241
- if (!iconUrl) {
6242
- return nextContent ? { ...node, content: nextContent } : node;
6243
- }
6244
- return {
6245
- ...node,
6246
- attrs: {
6247
- ...node.attrs,
6248
- iconUrl
6249
- },
6250
- ...nextContent ? { content: nextContent } : {}
6251
- };
6252
- }
6253
- function resolveWorkspaceAppIconUrl(input) {
6254
- if (!input.appId) {
6255
- return void 0;
6256
- }
6257
- const exactMatch = input.workspaceAppIcons.find(
6258
- (icon) => icon.appId.trim() === input.appId && (icon.workspaceId?.trim() ?? "") === input.workspaceId && icon.iconUrl?.trim()
6259
- );
6260
- const fallbackMatch = input.workspaceAppIcons.find(
6261
- (icon) => icon.appId.trim() === input.appId && icon.iconUrl?.trim()
6262
- );
6263
- return exactMatch?.iconUrl?.trim() || fallbackMatch?.iconUrl?.trim() || void 0;
6264
- }
6265
- function hydrateAgentTargetMentionPresentations(node, agentTargets) {
6266
- const nextContent = node.content?.map(
6267
- (child) => hydrateAgentTargetMentionPresentations(child, agentTargets)
6268
- );
6269
- if (node.type !== "agentFileMention") {
6270
- return nextContent ? { ...node, content: nextContent } : node;
6271
- }
6272
- const attrs = node.attrs ?? {};
6273
- if (attrs.kind !== "agent-target") {
6274
- return nextContent ? { ...node, content: nextContent } : node;
6275
- }
6276
- const agentTargetId = typeof attrs.targetId === "string" ? attrs.targetId.trim() : "";
6277
- const workspaceId = typeof attrs.workspaceId === "string" ? attrs.workspaceId.trim() : "";
6278
- const target = resolveAgentTargetPresentation({
6279
- agentTargetId,
6280
- agentTargets,
6281
- workspaceId
6282
- });
6283
- if (!target) {
6284
- return nextContent ? { ...node, content: nextContent } : node;
6285
- }
6286
- return {
6287
- ...node,
6288
- attrs: {
6289
- ...node.attrs,
6290
- agentProviderId: target.provider?.trim() ?? "",
6291
- iconUrl: target.iconUrl?.trim() ?? "",
6292
- name: target.name?.trim() || attrs.name
6293
- },
6294
- ...nextContent ? { content: nextContent } : {}
6295
- };
6296
- }
6297
-
6298
5740
  // shared/agentConversation/components/AgentMessageDetailsDisclosure.tsx
6299
5741
  import { useState as useState3 } from "react";
6300
5742
  import { ChevronRight } from "lucide-react";
@@ -6302,12 +5744,12 @@ import { ChevronRight } from "lucide-react";
6302
5744
  // shared/agentConversation/components/CollapsibleReveal.tsx
6303
5745
  import {
6304
5746
  useCallback as useCallback2,
6305
- useEffect as useEffect2,
5747
+ useEffect,
6306
5748
  useLayoutEffect,
6307
5749
  useRef as useRef2,
6308
5750
  useState as useState2
6309
5751
  } from "react";
6310
- import { jsx as jsx4 } from "react/jsx-runtime";
5752
+ import { jsx as jsx3 } from "react/jsx-runtime";
6311
5753
  function CollapsibleReveal({
6312
5754
  expanded,
6313
5755
  children,
@@ -6340,7 +5782,7 @@ function CollapsibleReveal({
6340
5782
  });
6341
5783
  return () => cancelAnimationFrame(animationFrame);
6342
5784
  }, [expanded, mounted, preMountOnIdle]);
6343
- useEffect2(() => {
5785
+ useEffect(() => {
6344
5786
  if (!preMountOnIdle || mounted || expanded) {
6345
5787
  return void 0;
6346
5788
  }
@@ -6447,7 +5889,7 @@ function CollapsibleReveal({
6447
5889
  }
6448
5890
  };
6449
5891
  const rootStyle = { height };
6450
- return /* @__PURE__ */ jsx4(
5892
+ return /* @__PURE__ */ jsx3(
6451
5893
  "div",
6452
5894
  {
6453
5895
  ref: rootRef,
@@ -6456,13 +5898,13 @@ function CollapsibleReveal({
6456
5898
  "aria-hidden": visible ? void 0 : true,
6457
5899
  style: rootStyle,
6458
5900
  onTransitionEnd: handleTransitionEnd,
6459
- children: /* @__PURE__ */ jsx4("div", { ref: innerRef, className: "agent-collapsible-reveal__inner", children })
5901
+ children: /* @__PURE__ */ jsx3("div", { ref: innerRef, className: "agent-collapsible-reveal__inner", children })
6460
5902
  }
6461
5903
  );
6462
5904
  }
6463
5905
 
6464
5906
  // shared/agentConversation/components/AgentMessageDetailsDisclosure.tsx
6465
- import { jsx as jsx5, jsxs as jsxs3 } from "react/jsx-runtime";
5907
+ import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
6466
5908
  function AgentMessageDetailsDisclosure({
6467
5909
  detail,
6468
5910
  className = "",
@@ -6480,7 +5922,7 @@ function AgentMessageDetailsDisclosure({
6480
5922
  onClick: () => setExpanded((value) => !value),
6481
5923
  children: [
6482
5924
  label ?? translate("agentHost.agentGui.visibleErrorDetails"),
6483
- /* @__PURE__ */ jsx5(
5925
+ /* @__PURE__ */ jsx4(
6484
5926
  ChevronRight,
6485
5927
  {
6486
5928
  size: 12,
@@ -6498,14 +5940,14 @@ function AgentMessageDetailsDisclosure({
6498
5940
  ]
6499
5941
  }
6500
5942
  ),
6501
- /* @__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 }) })
5943
+ /* @__PURE__ */ jsx4(CollapsibleReveal, { expanded, preMountOnIdle: true, children: /* @__PURE__ */ jsx4("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 }) })
6502
5944
  ] });
6503
5945
  }
6504
5946
 
6505
5947
  // app/renderer/components/ui/button.tsx
6506
5948
  import * as React from "react";
6507
5949
  import { Button as UISystemButton, buttonVariants } from "@tutti-os/ui-system";
6508
- import { jsx as jsx6 } from "react/jsx-runtime";
5950
+ import { jsx as jsx5 } from "react/jsx-runtime";
6509
5951
  function resolveButtonSize(size) {
6510
5952
  switch (size) {
6511
5953
  case "mini":
@@ -6530,7 +5972,7 @@ function resolveButtonClassName(size, className) {
6530
5972
  );
6531
5973
  }
6532
5974
  var Button = React.forwardRef(
6533
- ({ className, size, ...props }, ref) => /* @__PURE__ */ jsx6(
5975
+ ({ className, size, ...props }, ref) => /* @__PURE__ */ jsx5(
6534
5976
  UISystemButton,
6535
5977
  {
6536
5978
  ref,
@@ -6543,7 +5985,7 @@ var Button = React.forwardRef(
6543
5985
  Button.displayName = "Button";
6544
5986
 
6545
5987
  // shared/agentConversation/components/AgentVisibleErrorMessage.tsx
6546
- import { jsx as jsx7, jsxs as jsxs4 } from "react/jsx-runtime";
5988
+ import { jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
6547
5989
  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%)]";
6548
5990
  function recoverVisibleErrorFromFailedMessage(message, provider) {
6549
5991
  const code = classifyFailedAgentMessage(message.body);
@@ -6580,16 +6022,16 @@ function AgentVisibleErrorMessage({
6580
6022
  const isPlanOrQuotaLimit = error?.code === "quota_or_rate_limit";
6581
6023
  const toneClassName = isPlanOrQuotaLimit ? PLAN_LIMIT_WARNING_CLASS_NAME : "border-[var(--on-danger-hover)] bg-[var(--on-danger)] text-[var(--state-danger)]";
6582
6024
  const displayHeadline = isPlanOrQuotaLimit && isProviderPlanLimitMessage(detail) ? detail : headline;
6583
- return /* @__PURE__ */ jsx7(
6025
+ return /* @__PURE__ */ jsx6(
6584
6026
  "section",
6585
6027
  {
6586
6028
  role: isPlanOrQuotaLimit ? "status" : "alert",
6587
6029
  className: `box-border w-full min-w-0 rounded-[8px] border p-3 text-[13px] leading-5 text-[var(--text-primary)] ${toneClassName}`,
6588
6030
  children: /* @__PURE__ */ jsxs4("div", { className: "flex min-w-0 items-start gap-3", children: [
6589
6031
  /* @__PURE__ */ jsxs4("div", { className: "min-w-0 flex-1", children: [
6590
- /* @__PURE__ */ jsx7("div", { className: "font-medium text-[var(--text-primary)]", children: displayHeadline }),
6591
- hint ? /* @__PURE__ */ jsx7("div", { className: "mt-1 text-[11px] text-[var(--text-secondary)]", children: hint }) : null,
6592
- detail && displayHeadline !== detail ? /* @__PURE__ */ jsx7(
6032
+ /* @__PURE__ */ jsx6("div", { className: "font-medium text-[var(--text-primary)]", children: displayHeadline }),
6033
+ hint ? /* @__PURE__ */ jsx6("div", { className: "mt-1 text-[11px] text-[var(--text-secondary)]", children: hint }) : null,
6034
+ detail && displayHeadline !== detail ? /* @__PURE__ */ jsx6(
6593
6035
  AgentMessageDetailsDisclosure,
6594
6036
  {
6595
6037
  detail,
@@ -6598,7 +6040,7 @@ function AgentVisibleErrorMessage({
6598
6040
  }
6599
6041
  ) : null
6600
6042
  ] }),
6601
- actionKey && (focus || externalUrl && onExternalLink) ? /* @__PURE__ */ jsx7(
6043
+ actionKey && (focus || externalUrl && onExternalLink) ? /* @__PURE__ */ jsx6(
6602
6044
  Button,
6603
6045
  {
6604
6046
  type: "button",
@@ -6674,7 +6116,7 @@ import { ChevronDown as ChevronDown2, ChevronRight as ChevronRight2 } from "luci
6674
6116
  import {
6675
6117
  forwardRef as forwardRef2,
6676
6118
  useCallback as useCallback3,
6677
- useEffect as useEffect3,
6119
+ useEffect as useEffect2,
6678
6120
  useImperativeHandle,
6679
6121
  useRef as useRef3
6680
6122
  } from "react";
@@ -6683,7 +6125,7 @@ import {
6683
6125
  useAnimation,
6684
6126
  useReducedMotion
6685
6127
  } from "framer-motion";
6686
- import { jsx as jsx8, jsxs as jsxs5 } from "react/jsx-runtime";
6128
+ import { jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
6687
6129
  var brainTransition = {
6688
6130
  duration: 1.4,
6689
6131
  repeat: Number.POSITIVE_INFINITY,
@@ -6750,7 +6192,7 @@ var BrainIcon = forwardRef2(
6750
6192
  stopAnimation
6751
6193
  };
6752
6194
  });
6753
- useEffect3(() => {
6195
+ useEffect2(() => {
6754
6196
  if (active) {
6755
6197
  startAnimation();
6756
6198
  return;
@@ -6777,7 +6219,7 @@ var BrainIcon = forwardRef2(
6777
6219
  },
6778
6220
  [onMouseLeave, stopAnimation]
6779
6221
  );
6780
- return /* @__PURE__ */ jsx8(
6222
+ return /* @__PURE__ */ jsx7(
6781
6223
  "div",
6782
6224
  {
6783
6225
  className: cn("inline-flex items-center justify-center", className),
@@ -6809,7 +6251,7 @@ var BrainIcon = forwardRef2(
6809
6251
  width: size,
6810
6252
  xmlns: "http://www.w3.org/2000/svg",
6811
6253
  children: [
6812
- /* @__PURE__ */ jsx8(
6254
+ /* @__PURE__ */ jsx7(
6813
6255
  motion.path,
6814
6256
  {
6815
6257
  animate: controls,
@@ -6817,7 +6259,7 @@ var BrainIcon = forwardRef2(
6817
6259
  variants: BRAIN_STEM_VARIANTS
6818
6260
  }
6819
6261
  ),
6820
- /* @__PURE__ */ jsx8(
6262
+ /* @__PURE__ */ jsx7(
6821
6263
  motion.path,
6822
6264
  {
6823
6265
  animate: controls,
@@ -6825,7 +6267,7 @@ var BrainIcon = forwardRef2(
6825
6267
  variants: BRAIN_SIDE_VARIANTS
6826
6268
  }
6827
6269
  ),
6828
- /* @__PURE__ */ jsx8(
6270
+ /* @__PURE__ */ jsx7(
6829
6271
  motion.path,
6830
6272
  {
6831
6273
  animate: controls,
@@ -6833,7 +6275,7 @@ var BrainIcon = forwardRef2(
6833
6275
  variants: BRAIN_TOP_ARC_VARIANTS
6834
6276
  }
6835
6277
  ),
6836
- /* @__PURE__ */ jsx8(
6278
+ /* @__PURE__ */ jsx7(
6837
6279
  motion.path,
6838
6280
  {
6839
6281
  animate: controls,
@@ -6841,8 +6283,8 @@ var BrainIcon = forwardRef2(
6841
6283
  variants: BRAIN_TOP_ARC_VARIANTS
6842
6284
  }
6843
6285
  ),
6844
- /* @__PURE__ */ jsx8("path", { d: "M17.997 5.125a4 4 0 0 1 2.526 5.77" }),
6845
- /* @__PURE__ */ jsx8(
6286
+ /* @__PURE__ */ jsx7("path", { d: "M17.997 5.125a4 4 0 0 1 2.526 5.77" }),
6287
+ /* @__PURE__ */ jsx7(
6846
6288
  motion.path,
6847
6289
  {
6848
6290
  animate: controls,
@@ -6850,8 +6292,8 @@ var BrainIcon = forwardRef2(
6850
6292
  variants: BRAIN_LOWER_ARC_VARIANTS
6851
6293
  }
6852
6294
  ),
6853
- /* @__PURE__ */ jsx8("path", { d: "M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517" }),
6854
- /* @__PURE__ */ jsx8(
6295
+ /* @__PURE__ */ jsx7("path", { d: "M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517" }),
6296
+ /* @__PURE__ */ jsx7(
6855
6297
  motion.path,
6856
6298
  {
6857
6299
  animate: controls,
@@ -6859,7 +6301,7 @@ var BrainIcon = forwardRef2(
6859
6301
  variants: BRAIN_LOWER_ARC_VARIANTS
6860
6302
  }
6861
6303
  ),
6862
- /* @__PURE__ */ jsx8("path", { d: "M6.003 5.125a4 4 0 0 0-2.526 5.77" })
6304
+ /* @__PURE__ */ jsx7("path", { d: "M6.003 5.125a4 4 0 0 0-2.526 5.77" })
6863
6305
  ]
6864
6306
  }
6865
6307
  )
@@ -6870,10 +6312,10 @@ var BrainIcon = forwardRef2(
6870
6312
  BrainIcon.displayName = "BrainIcon";
6871
6313
 
6872
6314
  // shared/toolActivityKindIcons.tsx
6873
- import { jsx as jsx9 } from "react/jsx-runtime";
6315
+ import { jsx as jsx8 } from "react/jsx-runtime";
6874
6316
  function IconProductDoc(props) {
6875
6317
  "use memo";
6876
- return /* @__PURE__ */ jsx9(
6318
+ return /* @__PURE__ */ jsx8(
6877
6319
  "svg",
6878
6320
  {
6879
6321
  viewBox: "0 0 24 24",
@@ -6881,7 +6323,7 @@ function IconProductDoc(props) {
6881
6323
  xmlns: "http://www.w3.org/2000/svg",
6882
6324
  "aria-hidden": true,
6883
6325
  ...props,
6884
- children: /* @__PURE__ */ jsx9(
6326
+ children: /* @__PURE__ */ jsx8(
6885
6327
  "path",
6886
6328
  {
6887
6329
  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",
@@ -6893,7 +6335,7 @@ function IconProductDoc(props) {
6893
6335
  }
6894
6336
  function IconBuild(props) {
6895
6337
  "use memo";
6896
- return /* @__PURE__ */ jsx9(
6338
+ return /* @__PURE__ */ jsx8(
6897
6339
  "svg",
6898
6340
  {
6899
6341
  viewBox: "0 0 24 24",
@@ -6901,7 +6343,7 @@ function IconBuild(props) {
6901
6343
  xmlns: "http://www.w3.org/2000/svg",
6902
6344
  "aria-hidden": true,
6903
6345
  ...props,
6904
- children: /* @__PURE__ */ jsx9(
6346
+ children: /* @__PURE__ */ jsx8(
6905
6347
  "path",
6906
6348
  {
6907
6349
  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",
@@ -6913,7 +6355,7 @@ function IconBuild(props) {
6913
6355
  }
6914
6356
  function IconBrush(props) {
6915
6357
  "use memo";
6916
- return /* @__PURE__ */ jsx9(
6358
+ return /* @__PURE__ */ jsx8(
6917
6359
  "svg",
6918
6360
  {
6919
6361
  viewBox: "0 0 24 24",
@@ -6921,7 +6363,7 @@ function IconBrush(props) {
6921
6363
  xmlns: "http://www.w3.org/2000/svg",
6922
6364
  "aria-hidden": true,
6923
6365
  ...props,
6924
- children: /* @__PURE__ */ jsx9(
6366
+ children: /* @__PURE__ */ jsx8(
6925
6367
  "path",
6926
6368
  {
6927
6369
  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",
@@ -6933,7 +6375,7 @@ function IconBrush(props) {
6933
6375
  }
6934
6376
  function IconNetwork(props) {
6935
6377
  "use memo";
6936
- return /* @__PURE__ */ jsx9(
6378
+ return /* @__PURE__ */ jsx8(
6937
6379
  "svg",
6938
6380
  {
6939
6381
  viewBox: "0 0 24 24",
@@ -6941,7 +6383,7 @@ function IconNetwork(props) {
6941
6383
  xmlns: "http://www.w3.org/2000/svg",
6942
6384
  "aria-hidden": true,
6943
6385
  ...props,
6944
- children: /* @__PURE__ */ jsx9(
6386
+ children: /* @__PURE__ */ jsx8(
6945
6387
  "path",
6946
6388
  {
6947
6389
  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",
@@ -6953,7 +6395,7 @@ function IconNetwork(props) {
6953
6395
  }
6954
6396
  function IconCapability(props) {
6955
6397
  "use memo";
6956
- return /* @__PURE__ */ jsx9(
6398
+ return /* @__PURE__ */ jsx8(
6957
6399
  "svg",
6958
6400
  {
6959
6401
  viewBox: "0 0 24 24",
@@ -6961,7 +6403,7 @@ function IconCapability(props) {
6961
6403
  xmlns: "http://www.w3.org/2000/svg",
6962
6404
  "aria-hidden": true,
6963
6405
  ...props,
6964
- children: /* @__PURE__ */ jsx9(
6406
+ children: /* @__PURE__ */ jsx8(
6965
6407
  "path",
6966
6408
  {
6967
6409
  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",
@@ -6973,7 +6415,7 @@ function IconCapability(props) {
6973
6415
  }
6974
6416
  function IconTask(props) {
6975
6417
  "use memo";
6976
- return /* @__PURE__ */ jsx9(
6418
+ return /* @__PURE__ */ jsx8(
6977
6419
  "svg",
6978
6420
  {
6979
6421
  viewBox: "0 0 24 24",
@@ -6981,7 +6423,7 @@ function IconTask(props) {
6981
6423
  xmlns: "http://www.w3.org/2000/svg",
6982
6424
  "aria-hidden": true,
6983
6425
  ...props,
6984
- children: /* @__PURE__ */ jsx9(
6426
+ children: /* @__PURE__ */ jsx8(
6985
6427
  "path",
6986
6428
  {
6987
6429
  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",
@@ -6993,7 +6435,7 @@ function IconTask(props) {
6993
6435
  }
6994
6436
  function IconThinking(props) {
6995
6437
  "use memo";
6996
- return /* @__PURE__ */ jsx9(
6438
+ return /* @__PURE__ */ jsx8(
6997
6439
  "svg",
6998
6440
  {
6999
6441
  viewBox: "0 0 24 24",
@@ -7001,7 +6443,7 @@ function IconThinking(props) {
7001
6443
  xmlns: "http://www.w3.org/2000/svg",
7002
6444
  "aria-hidden": true,
7003
6445
  ...props,
7004
- children: /* @__PURE__ */ jsx9(
6446
+ children: /* @__PURE__ */ jsx8(
7005
6447
  "path",
7006
6448
  {
7007
6449
  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",
@@ -7013,7 +6455,7 @@ function IconThinking(props) {
7013
6455
  }
7014
6456
  function IconWebScrape(props) {
7015
6457
  "use memo";
7016
- return /* @__PURE__ */ jsx9(
6458
+ return /* @__PURE__ */ jsx8(
7017
6459
  "svg",
7018
6460
  {
7019
6461
  viewBox: "0 0 24 24",
@@ -7021,7 +6463,7 @@ function IconWebScrape(props) {
7021
6463
  xmlns: "http://www.w3.org/2000/svg",
7022
6464
  "aria-hidden": true,
7023
6465
  ...props,
7024
- children: /* @__PURE__ */ jsx9(
6466
+ children: /* @__PURE__ */ jsx8(
7025
6467
  "path",
7026
6468
  {
7027
6469
  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",
@@ -7033,7 +6475,7 @@ function IconWebScrape(props) {
7033
6475
  }
7034
6476
  function IconChat(props) {
7035
6477
  "use memo";
7036
- return /* @__PURE__ */ jsx9(
6478
+ return /* @__PURE__ */ jsx8(
7037
6479
  "svg",
7038
6480
  {
7039
6481
  viewBox: "0 0 24 24",
@@ -7041,7 +6483,7 @@ function IconChat(props) {
7041
6483
  xmlns: "http://www.w3.org/2000/svg",
7042
6484
  "aria-hidden": true,
7043
6485
  ...props,
7044
- children: /* @__PURE__ */ jsx9(
6486
+ children: /* @__PURE__ */ jsx8(
7045
6487
  "path",
7046
6488
  {
7047
6489
  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",
@@ -7053,7 +6495,7 @@ function IconChat(props) {
7053
6495
  }
7054
6496
  function IconImageGeneration(props) {
7055
6497
  "use memo";
7056
- return /* @__PURE__ */ jsx9(
6498
+ return /* @__PURE__ */ jsx8(
7057
6499
  "svg",
7058
6500
  {
7059
6501
  viewBox: "0 0 24 24",
@@ -7061,7 +6503,7 @@ function IconImageGeneration(props) {
7061
6503
  xmlns: "http://www.w3.org/2000/svg",
7062
6504
  "aria-hidden": true,
7063
6505
  ...props,
7064
- children: /* @__PURE__ */ jsx9(
6506
+ children: /* @__PURE__ */ jsx8(
7065
6507
  "path",
7066
6508
  {
7067
6509
  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",
@@ -7099,7 +6541,7 @@ function ToolActivityKindIcon({
7099
6541
  }) {
7100
6542
  "use memo";
7101
6543
  const Icon = kind ? TOOL_ACTIVITY_KIND_ICONS[kind] : IconCapability;
7102
- return /* @__PURE__ */ jsx9(Icon, { ...props });
6544
+ return /* @__PURE__ */ jsx8(Icon, { ...props });
7103
6545
  }
7104
6546
  function ToolNameIcon({
7105
6547
  toolName,
@@ -7113,34 +6555,34 @@ function ToolNameIcon({
7113
6555
  case "generatingimage":
7114
6556
  case "imagegenerate":
7115
6557
  case "imagegenerator":
7116
- return /* @__PURE__ */ jsx9(IconImageGeneration, { ...props });
6558
+ return /* @__PURE__ */ jsx8(IconImageGeneration, { ...props });
7117
6559
  case "read":
7118
6560
  case "readfile":
7119
6561
  case "glob":
7120
- return /* @__PURE__ */ jsx9(IconProductDoc, { ...props });
6562
+ return /* @__PURE__ */ jsx8(IconProductDoc, { ...props });
7121
6563
  case "write":
7122
6564
  case "writefile":
7123
6565
  case "edit":
7124
6566
  case "editfile":
7125
6567
  case "multiedit":
7126
- return /* @__PURE__ */ jsx9(IconBrush, { ...props });
6568
+ return /* @__PURE__ */ jsx8(IconBrush, { ...props });
7127
6569
  case "bash":
7128
6570
  case "shell":
7129
6571
  case "exec":
7130
6572
  case "execcommand":
7131
6573
  case "grep":
7132
- return /* @__PURE__ */ jsx9(IconBuild, { ...props });
6574
+ return /* @__PURE__ */ jsx8(IconBuild, { ...props });
7133
6575
  case "writestdin":
7134
- return /* @__PURE__ */ jsx9(IconBrush, { ...props });
6576
+ return /* @__PURE__ */ jsx8(IconBrush, { ...props });
7135
6577
  case "websearch":
7136
6578
  case "webfetch":
7137
- return /* @__PURE__ */ jsx9(IconNetwork, { ...props });
6579
+ return /* @__PURE__ */ jsx8(IconNetwork, { ...props });
7138
6580
  case "todowrite":
7139
- return /* @__PURE__ */ jsx9(IconTask, { ...props });
6581
+ return /* @__PURE__ */ jsx8(IconTask, { ...props });
7140
6582
  case "think":
7141
- return /* @__PURE__ */ jsx9(IconThinking, { ...props });
6583
+ return /* @__PURE__ */ jsx8(IconThinking, { ...props });
7142
6584
  default:
7143
- return /* @__PURE__ */ jsx9(IconCapability, { ...props });
6585
+ return /* @__PURE__ */ jsx8(IconCapability, { ...props });
7144
6586
  }
7145
6587
  }
7146
6588
  function normalizeToolName6(value) {
@@ -7148,7 +6590,7 @@ function normalizeToolName6(value) {
7148
6590
  }
7149
6591
 
7150
6592
  // shared/WorkspaceAgentSessionThinkingDisclosure.tsx
7151
- import { jsx as jsx10, jsxs as jsxs6 } from "react/jsx-runtime";
6593
+ import { jsx as jsx9, jsxs as jsxs6 } from "react/jsx-runtime";
7152
6594
  function WorkspaceAgentSessionThinkingDisclosure({
7153
6595
  thinking,
7154
6596
  label,
@@ -7174,7 +6616,7 @@ function WorkspaceAgentSessionThinkingDisclosure({
7174
6616
  setExpanded((value) => !value);
7175
6617
  },
7176
6618
  children: [
7177
- isActive ? /* @__PURE__ */ jsx10(
6619
+ isActive ? /* @__PURE__ */ jsx9(
7178
6620
  BrainIcon,
7179
6621
  {
7180
6622
  size: 16,
@@ -7182,7 +6624,7 @@ function WorkspaceAgentSessionThinkingDisclosure({
7182
6624
  "aria-hidden": "true",
7183
6625
  className: "tsh-inline-scanlight-icon shrink-0 opacity-[0.86]"
7184
6626
  }
7185
- ) : /* @__PURE__ */ jsx10(
6627
+ ) : /* @__PURE__ */ jsx9(
7186
6628
  ToolActivityKindIcon,
7187
6629
  {
7188
6630
  kind: "thinking",
@@ -7192,11 +6634,11 @@ function WorkspaceAgentSessionThinkingDisclosure({
7192
6634
  }
7193
6635
  ),
7194
6636
  /* @__PURE__ */ jsxs6("span", { className: isActive ? "tsh-inline-scanlight-line" : void 0, children: [
7195
- /* @__PURE__ */ jsx10("span", { className: "font-semibold", children: label }),
7196
- statusLabel ? /* @__PURE__ */ jsx10("span", { className: "ml-1.5", children: formatInlineStatusLabel(statusLabel) }) : null,
7197
- isActive ? /* @__PURE__ */ jsx10(LoadingEllipsis, {}) : null
6637
+ /* @__PURE__ */ jsx9("span", { className: "font-semibold", children: label }),
6638
+ statusLabel ? /* @__PURE__ */ jsx9("span", { className: "ml-1.5", children: formatInlineStatusLabel(statusLabel) }) : null,
6639
+ isActive ? /* @__PURE__ */ jsx9(LoadingEllipsis, {}) : null
7198
6640
  ] }),
7199
- expanded ? /* @__PURE__ */ jsx10(
6641
+ expanded ? /* @__PURE__ */ jsx9(
7200
6642
  ChevronDown2,
7201
6643
  {
7202
6644
  size: 12,
@@ -7204,7 +6646,7 @@ function WorkspaceAgentSessionThinkingDisclosure({
7204
6646
  "aria-hidden": "true",
7205
6647
  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"
7206
6648
  }
7207
- ) : /* @__PURE__ */ jsx10(
6649
+ ) : /* @__PURE__ */ jsx9(
7208
6650
  ChevronRight2,
7209
6651
  {
7210
6652
  size: 12,
@@ -7216,7 +6658,7 @@ function WorkspaceAgentSessionThinkingDisclosure({
7216
6658
  ]
7217
6659
  }
7218
6660
  ),
7219
- /* @__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(
6661
+ /* @__PURE__ */ jsx9(CollapsibleReveal, { expanded, className: "w-full", children: /* @__PURE__ */ jsx9("div", { className: "box-border w-full min-w-0 rounded-[6px] bg-[var(--transparency-block)] p-3", children: /* @__PURE__ */ jsx9(
7220
6662
  AgentMessageMarkdown,
7221
6663
  {
7222
6664
  content: thinking.body,
@@ -7231,9 +6673,9 @@ function WorkspaceAgentSessionThinkingDisclosure({
7231
6673
  function LoadingEllipsis() {
7232
6674
  "use memo";
7233
6675
  return /* @__PURE__ */ jsxs6("span", { className: "tsh-inline-loading-ellipsis", "aria-hidden": "true", children: [
7234
- /* @__PURE__ */ jsx10("span", {}),
7235
- /* @__PURE__ */ jsx10("span", {}),
7236
- /* @__PURE__ */ jsx10("span", {})
6676
+ /* @__PURE__ */ jsx9("span", {}),
6677
+ /* @__PURE__ */ jsx9("span", {}),
6678
+ /* @__PURE__ */ jsx9("span", {})
7237
6679
  ] });
7238
6680
  }
7239
6681
  function thinkingStatusLabel(statusKind) {
@@ -7259,7 +6701,7 @@ function formatInlineStatusLabel(label) {
7259
6701
  // shared/agentConversation/components/RawTimelineJsonDisclosure.tsx
7260
6702
  import { useState as useState5 } from "react";
7261
6703
  import { ChevronDown as ChevronDown3, ChevronRight as ChevronRight3 } from "lucide-react";
7262
- import { jsx as jsx11, jsxs as jsxs7 } from "react/jsx-runtime";
6704
+ import { jsx as jsx10, jsxs as jsxs7 } from "react/jsx-runtime";
7263
6705
  function RawTimelineJsonDisclosure({
7264
6706
  items,
7265
6707
  label
@@ -7279,12 +6721,12 @@ function RawTimelineJsonDisclosure({
7279
6721
  "aria-expanded": expanded,
7280
6722
  onClick: () => setExpanded((value) => !value),
7281
6723
  children: [
7282
- expanded ? /* @__PURE__ */ jsx11(ChevronDown3, { size: 13, strokeWidth: 2.2, "aria-hidden": true }) : /* @__PURE__ */ jsx11(ChevronRight3, { size: 13, strokeWidth: 2.2, "aria-hidden": true }),
7283
- /* @__PURE__ */ jsx11("span", { children: label })
6724
+ expanded ? /* @__PURE__ */ jsx10(ChevronDown3, { size: 13, strokeWidth: 2.2, "aria-hidden": true }) : /* @__PURE__ */ jsx10(ChevronRight3, { size: 13, strokeWidth: 2.2, "aria-hidden": true }),
6725
+ /* @__PURE__ */ jsx10("span", { children: label })
7284
6726
  ]
7285
6727
  }
7286
6728
  ),
7287
- /* @__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 }) }) })
6729
+ /* @__PURE__ */ jsx10(CollapsibleReveal, { expanded, preMountOnIdle: true, children: /* @__PURE__ */ jsx10("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__ */ jsx10("code", { children: json }) }) })
7288
6730
  ] });
7289
6731
  }
7290
6732
  function rawTimelineJson(items) {
@@ -7299,7 +6741,7 @@ function rawTimelineJson(items) {
7299
6741
  }
7300
6742
 
7301
6743
  // shared/agentConversation/components/AgentThinkingDisclosure.tsx
7302
- import { Fragment, jsx as jsx12, jsxs as jsxs8 } from "react/jsx-runtime";
6744
+ import { Fragment, jsx as jsx11, jsxs as jsxs8 } from "react/jsx-runtime";
7303
6745
  function AgentThinkingDisclosure({
7304
6746
  thinking,
7305
6747
  label,
@@ -7310,7 +6752,7 @@ function AgentThinkingDisclosure({
7310
6752
  }) {
7311
6753
  "use memo";
7312
6754
  return /* @__PURE__ */ jsxs8(Fragment, { children: [
7313
- /* @__PURE__ */ jsx12(
6755
+ /* @__PURE__ */ jsx11(
7314
6756
  WorkspaceAgentSessionThinkingDisclosure,
7315
6757
  {
7316
6758
  thinking,
@@ -7319,7 +6761,7 @@ function AgentThinkingDisclosure({
7319
6761
  previewMode
7320
6762
  }
7321
6763
  ),
7322
- showRawTimelineJson && rawTimelineJsonLabel ? /* @__PURE__ */ jsx12(
6764
+ showRawTimelineJson && rawTimelineJsonLabel ? /* @__PURE__ */ jsx11(
7323
6765
  RawTimelineJsonDisclosure,
7324
6766
  {
7325
6767
  items: thinking.sourceTimelineItems,
@@ -7331,7 +6773,7 @@ function AgentThinkingDisclosure({
7331
6773
 
7332
6774
  // contexts/workspace/presentation/renderer/components/shared/CanvasNodeGhostIconButton.tsx
7333
6775
  import { forwardRef as forwardRef3 } from "react";
7334
- import { jsx as jsx13 } from "react/jsx-runtime";
6776
+ import { jsx as jsx12 } from "react/jsx-runtime";
7335
6777
  var CanvasNodeGhostIconButton = forwardRef3(function CanvasNodeGhostIconButton2({
7336
6778
  className,
7337
6779
  children,
@@ -7342,7 +6784,7 @@ var CanvasNodeGhostIconButton = forwardRef3(function CanvasNodeGhostIconButton2(
7342
6784
  ...rest
7343
6785
  }, ref) {
7344
6786
  "use memo";
7345
- return /* @__PURE__ */ jsx13(
6787
+ return /* @__PURE__ */ jsx12(
7346
6788
  "button",
7347
6789
  {
7348
6790
  ref,
@@ -7376,9 +6818,9 @@ var CanvasNodeGhostIconButton = forwardRef3(function CanvasNodeGhostIconButton2(
7376
6818
  });
7377
6819
 
7378
6820
  // shared/agentConversation/components/AgentMessageImages.tsx
7379
- import { useEffect as useEffect4, useMemo, useState as useState6 } from "react";
6821
+ import { useEffect as useEffect3, useMemo, useState as useState6 } from "react";
7380
6822
  import { LoaderCircle } from "lucide-react";
7381
- import { jsx as jsx14 } from "react/jsx-runtime";
6823
+ import { jsx as jsx13 } from "react/jsx-runtime";
7382
6824
  function AgentUserImageGrid({
7383
6825
  message
7384
6826
  }) {
@@ -7387,7 +6829,7 @@ function AgentUserImageGrid({
7387
6829
  const { loadingIds, sources } = useAgentMessageImageSources(images);
7388
6830
  const columnCount = Math.min(Math.max(images.length, 1), 4);
7389
6831
  const thumbnailWidth = images.length === 1 ? "160px" : "80px";
7390
- return /* @__PURE__ */ jsx14(
6832
+ return /* @__PURE__ */ jsx13(
7391
6833
  "div",
7392
6834
  {
7393
6835
  className: AgentGUIConversation_styles_default.userImageGrid,
@@ -7397,7 +6839,7 @@ function AgentUserImageGrid({
7397
6839
  children: images.map((image) => {
7398
6840
  const src = sources.get(image.id) ?? imageSourceUrl(image);
7399
6841
  const loading = !src && loadingIds.has(image.id);
7400
- return /* @__PURE__ */ jsx14("div", { className: AgentGUIConversation_styles_default.userImageThumbnail, children: src ? /* @__PURE__ */ jsx14(
6842
+ return /* @__PURE__ */ jsx13("div", { className: AgentGUIConversation_styles_default.userImageThumbnail, children: src ? /* @__PURE__ */ jsx13(
7401
6843
  ZoomableImage,
7402
6844
  {
7403
6845
  src,
@@ -7406,12 +6848,12 @@ function AgentUserImageGrid({
7406
6848
  draggable: false,
7407
6849
  downloadName: image.name?.trim() || "image.png"
7408
6850
  }
7409
- ) : loading ? /* @__PURE__ */ jsx14(
6851
+ ) : loading ? /* @__PURE__ */ jsx13(
7410
6852
  "div",
7411
6853
  {
7412
6854
  className: "flex h-20 w-full items-center justify-center bg-[color-mix(in_srgb,var(--text-primary)_6%,transparent)]",
7413
6855
  "data-testid": "agent-gui-message-image-loading",
7414
- children: /* @__PURE__ */ jsx14(
6856
+ children: /* @__PURE__ */ jsx13(
7415
6857
  LoaderCircle,
7416
6858
  {
7417
6859
  "aria-hidden": "true",
@@ -7420,7 +6862,7 @@ function AgentUserImageGrid({
7420
6862
  }
7421
6863
  )
7422
6864
  }
7423
- ) : /* @__PURE__ */ jsx14("div", { className: "h-20 w-full animate-pulse bg-[color-mix(in_srgb,var(--text-primary)_8%,transparent)]" }) }, image.id);
6865
+ ) : /* @__PURE__ */ jsx13("div", { className: "h-20 w-full animate-pulse bg-[color-mix(in_srgb,var(--text-primary)_8%,transparent)]" }) }, image.id);
7424
6866
  })
7425
6867
  }
7426
6868
  );
@@ -7435,7 +6877,7 @@ function useAgentMessageImageSources(images) {
7435
6877
  ),
7436
6878
  [images, sources]
7437
6879
  );
7438
- useEffect4(() => {
6880
+ useEffect3(() => {
7439
6881
  if (!runtime?.readSessionAttachment && !runtime?.readPromptAsset || missingImages.length === 0) {
7440
6882
  return;
7441
6883
  }
@@ -7492,11 +6934,8 @@ function imageSourceUrl(image) {
7492
6934
  }
7493
6935
 
7494
6936
  // shared/agentConversation/components/AgentMessageBlock.tsx
7495
- import { jsx as jsx15, jsxs as jsxs9 } from "react/jsx-runtime";
6937
+ import { jsx as jsx14, jsxs as jsxs9 } from "react/jsx-runtime";
7496
6938
  var MESSAGE_COPY_FEEDBACK_MS = 1400;
7497
- var CONTEXT_COMPACTION_NOTICE_TITLE = "Context compacted.";
7498
- var CONTEXT_COMPACTION_IN_PROGRESS_TITLE = "Compacting context.";
7499
- var CONTEXT_COMPACTION_INTERRUPTED_TITLE = "Context compaction interrupted.";
7500
6939
  var TRANSPORT_RETRY_PROGRESS_PATTERN = /\b(reconnect(?:ing)?(?:\s*(?:\.\.\.|…|[.。]+|:|-))?\s*\(?\d+\s*\/\s*\d+\)?)/i;
7501
6940
  var SYSTEM_NOTICE_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%)]";
7502
6941
  var SYSTEM_NOTICE_ERROR_CLASS_NAME = "border-[var(--on-danger-hover)] bg-[var(--on-danger)]";
@@ -7553,7 +6992,7 @@ function AgentMessageBlock({
7553
6992
  },
7554
6993
  [agentHostApi]
7555
6994
  );
7556
- const thinkingContent = !isUser ? row.thinking.map((thinking) => /* @__PURE__ */ jsx15(
6995
+ const thinkingContent = !isUser ? row.thinking.map((thinking) => /* @__PURE__ */ jsx14(
7557
6996
  AgentThinkingDisclosure,
7558
6997
  {
7559
6998
  thinking,
@@ -7572,7 +7011,7 @@ function AgentMessageBlock({
7572
7011
  children: [
7573
7012
  thinkingContent,
7574
7013
  row.messages.map((message) => {
7575
- const rawTimelineJson2 = showRawTimelineJson && rawTimelineJsonLabel && (message.sourceTimelineItems?.length ?? 0) > 0 ? /* @__PURE__ */ jsx15(
7014
+ const rawTimelineJson2 = showRawTimelineJson && rawTimelineJsonLabel && (message.sourceTimelineItems?.length ?? 0) > 0 ? /* @__PURE__ */ jsx14(
7576
7015
  RawTimelineJsonDisclosure,
7577
7016
  {
7578
7017
  items: message.sourceTimelineItems,
@@ -7580,7 +7019,7 @@ function AgentMessageBlock({
7580
7019
  }
7581
7020
  ) : null;
7582
7021
  const recoveredError = !isUser && !message.visibleError && message.statusKind === "failed" ? recoverVisibleErrorFromFailedMessage(message, provider) : null;
7583
- const content = isUser && message.contentKind === "image-grid" ? /* @__PURE__ */ jsx15(AgentUserImageGrid, { message }) : isUser ? /* @__PURE__ */ jsx15(
7022
+ const content = isUser && message.contentKind === "image-grid" ? /* @__PURE__ */ jsx14(AgentUserImageGrid, { message }) : isUser ? /* @__PURE__ */ jsx14(
7584
7023
  AgentRichTextReadonly,
7585
7024
  {
7586
7025
  value: message.body,
@@ -7590,21 +7029,21 @@ function AgentMessageBlock({
7590
7029
  availableSkills,
7591
7030
  workspaceAppIcons
7592
7031
  }
7593
- ) : message.visibleError ? /* @__PURE__ */ jsx15(
7032
+ ) : message.visibleError ? /* @__PURE__ */ jsx14(
7594
7033
  AgentVisibleErrorMessage,
7595
7034
  {
7596
7035
  message,
7597
7036
  onAuthLogin,
7598
7037
  onExternalLink: handleLinkClick
7599
7038
  }
7600
- ) : recoveredError ? /* @__PURE__ */ jsx15(
7039
+ ) : recoveredError ? /* @__PURE__ */ jsx14(
7601
7040
  AgentVisibleErrorMessage,
7602
7041
  {
7603
7042
  message: recoveredError,
7604
7043
  onAuthLogin,
7605
7044
  onExternalLink: handleLinkClick
7606
7045
  }
7607
- ) : message.systemNotice ? /* @__PURE__ */ jsx15(AgentSystemNoticeMessage, { message }) : message.contentKind === "plan" ? /* @__PURE__ */ jsx15(
7046
+ ) : message.systemNotice ? /* @__PURE__ */ jsx14(AgentSystemNoticeMessage, { message }) : message.contentKind === "plan" ? /* @__PURE__ */ jsx14(
7608
7047
  AgentPlanCardMessage,
7609
7048
  {
7610
7049
  message,
@@ -7614,7 +7053,7 @@ function AgentMessageBlock({
7614
7053
  workspaceAppIcons,
7615
7054
  previewMode
7616
7055
  }
7617
- ) : /* @__PURE__ */ jsx15(
7056
+ ) : /* @__PURE__ */ jsx14(
7618
7057
  AgentMessageMarkdown,
7619
7058
  {
7620
7059
  content: message.body,
@@ -7649,7 +7088,7 @@ function AgentMessageBlock({
7649
7088
  }
7650
7089
  const copyText = message.copyText ?? null;
7651
7090
  if (copyText) {
7652
- return /* @__PURE__ */ jsx15(
7091
+ return /* @__PURE__ */ jsx14(
7653
7092
  AgentCopyableMessageGroup,
7654
7093
  {
7655
7094
  copyText,
@@ -7661,7 +7100,7 @@ function AgentMessageBlock({
7661
7100
  message.id
7662
7101
  );
7663
7102
  }
7664
- return /* @__PURE__ */ jsx15(Fragment2, { children: content }, message.id);
7103
+ return /* @__PURE__ */ jsx14(Fragment2, { children: content }, message.id);
7665
7104
  })
7666
7105
  ]
7667
7106
  }
@@ -7679,8 +7118,8 @@ function AgentCopyableMessageGroup({
7679
7118
  return /* @__PURE__ */ jsxs9("div", { className: AgentGUIConversation_styles_default.messageGroup, "data-agent-message-speaker": speaker, children: [
7680
7119
  children,
7681
7120
  timestamp || copyText ? /* @__PURE__ */ jsxs9("div", { className: AgentGUIConversation_styles_default.messageFooter, children: [
7682
- timestamp ? /* @__PURE__ */ jsx15("span", { className: AgentGUIConversation_styles_default.messageTimestamp, children: timestamp }) : null,
7683
- copyText ? /* @__PURE__ */ jsx15(
7121
+ timestamp ? /* @__PURE__ */ jsx14("span", { className: AgentGUIConversation_styles_default.messageTimestamp, children: timestamp }) : null,
7122
+ copyText ? /* @__PURE__ */ jsx14(
7684
7123
  AgentMessageCopyButton,
7685
7124
  {
7686
7125
  copyText,
@@ -7696,7 +7135,7 @@ function AgentMessageCopyButton({
7696
7135
  }) {
7697
7136
  "use memo";
7698
7137
  const [copied, setCopied] = useState7(false);
7699
- useEffect5(() => {
7138
+ useEffect4(() => {
7700
7139
  if (!copied) {
7701
7140
  return;
7702
7141
  }
@@ -7711,14 +7150,14 @@ function AgentMessageCopyButton({
7711
7150
  }
7712
7151
  }, [copyText, onCopyMessageText]);
7713
7152
  const label = copied ? translate("agentHost.agentGui.messageCopied") : translate("agentHost.agentGui.copyMessage");
7714
- return /* @__PURE__ */ jsx15(
7153
+ return /* @__PURE__ */ jsx14(
7715
7154
  CanvasNodeGhostIconButton,
7716
7155
  {
7717
7156
  className: AgentGUIConversation_styles_default.messageCopyButton,
7718
7157
  "aria-label": label,
7719
7158
  "data-copied": copied ? "true" : "false",
7720
7159
  onClick: handleClick,
7721
- children: copied ? /* @__PURE__ */ jsx15(CheckIcon, { width: 14, height: 14, "aria-hidden": "true" }) : /* @__PURE__ */ jsx15(CopyIcon, { width: 14, height: 14, "aria-hidden": "true" })
7160
+ children: copied ? /* @__PURE__ */ jsx14(CheckIcon, { width: 14, height: 14, "aria-hidden": "true" }) : /* @__PURE__ */ jsx14(CopyIcon, { width: 14, height: 14, "aria-hidden": "true" })
7722
7161
  }
7723
7162
  );
7724
7163
  }
@@ -7731,7 +7170,7 @@ function AgentSystemNoticeMessage({
7731
7170
  const title = systemNoticeTitle(message);
7732
7171
  if (notice?.noticeKind === "transport_retry") {
7733
7172
  const retryText = transportRetryNoticeText(message);
7734
- return /* @__PURE__ */ jsx15(
7173
+ return /* @__PURE__ */ jsx14(
7735
7174
  "div",
7736
7175
  {
7737
7176
  role: "status",
@@ -7740,40 +7179,41 @@ function AgentSystemNoticeMessage({
7740
7179
  }
7741
7180
  );
7742
7181
  }
7743
- if (isContextCompactionProgressNotice(message, title)) {
7744
- return /* @__PURE__ */ jsx15(
7182
+ if (isContextCompactionProgressNotice(message)) {
7183
+ return /* @__PURE__ */ jsx14(
7745
7184
  ContextCompactionProgressDivider,
7746
7185
  {
7747
7186
  startedAtUnixMs: message.occurredAtUnixMs
7748
7187
  }
7749
7188
  );
7750
7189
  }
7751
- if (isContextCompactionNotice(message, title)) {
7752
- return /* @__PURE__ */ jsx15(
7190
+ if (isContextCompactionNotice(message)) {
7191
+ return /* @__PURE__ */ jsx14(
7753
7192
  ContextCompactionDivider,
7754
7193
  {
7755
7194
  text: translate("agentHost.agentGui.contextCompactionCompleted")
7756
7195
  }
7757
7196
  );
7758
7197
  }
7759
- if (isContextCompactionInterruptedNotice(message, title)) {
7760
- return /* @__PURE__ */ jsx15(
7198
+ if (isContextCompactionInterruptedNotice(message)) {
7199
+ return /* @__PURE__ */ jsx14(
7761
7200
  ContextCompactionDivider,
7762
7201
  {
7763
- text: translate("agentHost.agentGui.contextCompactionInterrupted")
7202
+ text: translate("agentHost.agentGui.contextCompactionInterrupted"),
7203
+ detail: detail || null
7764
7204
  }
7765
7205
  );
7766
7206
  }
7767
7207
  const isStatusNotice = systemNoticeIsStatus(message);
7768
7208
  const noticeToneClassName = systemNoticeToneClassName(message);
7769
- return /* @__PURE__ */ jsx15(
7209
+ return /* @__PURE__ */ jsx14(
7770
7210
  "section",
7771
7211
  {
7772
7212
  role: isStatusNotice ? "status" : void 0,
7773
7213
  className: `box-border w-full min-w-0 rounded-[8px] border p-3 text-[13px] leading-5 text-[var(--text-primary)] ${noticeToneClassName}`,
7774
7214
  children: /* @__PURE__ */ jsxs9("div", { className: "min-w-0", children: [
7775
- /* @__PURE__ */ jsx15("div", { className: "font-medium text-[var(--text-primary)]", children: title }),
7776
- detail ? /* @__PURE__ */ jsx15(AgentMessageDetailsDisclosure, { detail, className: "mt-1" }) : null
7215
+ /* @__PURE__ */ jsx14("div", { className: "font-medium text-[var(--text-primary)]", children: title }),
7216
+ detail ? /* @__PURE__ */ jsx14(AgentMessageDetailsDisclosure, { detail, className: "mt-1" }) : null
7777
7217
  ] })
7778
7218
  }
7779
7219
  );
@@ -7810,41 +7250,47 @@ function transportRetryProgressText(value) {
7810
7250
  const match = TRANSPORT_RETRY_PROGRESS_PATTERN.exec(value.trim());
7811
7251
  return match?.[1]?.replace(/\s+/g, " ").trim() || null;
7812
7252
  }
7813
- function isContextCompactionNotice(message, title) {
7253
+ function isContextCompactionNotice(message) {
7814
7254
  const notice = message.systemNotice;
7815
- return notice?.noticeKind === "system_notice" && (notice.detail?.trim() ?? "") === "" && title.trim() === CONTEXT_COMPACTION_NOTICE_TITLE;
7255
+ return notice?.command === "compact" && notice.commandStatus === "completed";
7816
7256
  }
7817
- function isContextCompactionProgressNotice(message, title) {
7257
+ function isContextCompactionProgressNotice(message) {
7818
7258
  const notice = message.systemNotice;
7819
- return notice?.noticeKind === "system_notice" && (notice.detail?.trim() ?? "") === "" && title.trim() === CONTEXT_COMPACTION_IN_PROGRESS_TITLE;
7259
+ return notice?.command === "compact" && notice.commandStatus === "running";
7820
7260
  }
7821
- function isContextCompactionInterruptedNotice(message, title) {
7261
+ function isContextCompactionInterruptedNotice(message) {
7822
7262
  const notice = message.systemNotice;
7823
- return notice?.noticeKind === "system_notice" && (notice.detail?.trim() ?? "") === "" && title.trim() === CONTEXT_COMPACTION_INTERRUPTED_TITLE;
7263
+ return notice?.command === "compact" && (notice.commandStatus === "failed" || notice.commandStatus === "canceled");
7824
7264
  }
7825
- function ContextCompactionDivider({ text }) {
7265
+ function ContextCompactionDivider({
7266
+ text,
7267
+ detail = null
7268
+ }) {
7826
7269
  "use memo";
7827
7270
  return /* @__PURE__ */ jsxs9(
7828
7271
  "div",
7829
7272
  {
7830
7273
  role: "status",
7831
- className: "box-border flex w-full min-w-0 items-center gap-3 py-2 text-[12px] leading-4 text-[var(--text-secondary)]",
7274
+ className: "box-border w-full min-w-0 py-2 text-[12px] leading-4 text-[var(--text-secondary)]",
7832
7275
  children: [
7833
- /* @__PURE__ */ jsx15(
7834
- "span",
7835
- {
7836
- "aria-hidden": "true",
7837
- className: "h-px min-w-4 flex-1 bg-[var(--line-1)]"
7838
- }
7839
- ),
7840
- /* @__PURE__ */ jsx15("span", { className: "shrink-0 whitespace-nowrap", children: text }),
7841
- /* @__PURE__ */ jsx15(
7842
- "span",
7843
- {
7844
- "aria-hidden": "true",
7845
- className: "h-px min-w-4 flex-1 bg-[var(--line-1)]"
7846
- }
7847
- )
7276
+ /* @__PURE__ */ jsxs9("div", { className: "flex min-w-0 items-center gap-3", children: [
7277
+ /* @__PURE__ */ jsx14(
7278
+ "span",
7279
+ {
7280
+ "aria-hidden": "true",
7281
+ className: "h-px min-w-4 flex-1 bg-[var(--line-1)]"
7282
+ }
7283
+ ),
7284
+ /* @__PURE__ */ jsx14("span", { className: "shrink-0 whitespace-nowrap", children: text }),
7285
+ /* @__PURE__ */ jsx14(
7286
+ "span",
7287
+ {
7288
+ "aria-hidden": "true",
7289
+ className: "h-px min-w-4 flex-1 bg-[var(--line-1)]"
7290
+ }
7291
+ )
7292
+ ] }),
7293
+ detail ? /* @__PURE__ */ jsx14("div", { className: "mt-1 min-w-0 whitespace-pre-wrap break-words text-center leading-5", children: detail }) : null
7848
7294
  ]
7849
7295
  }
7850
7296
  );
@@ -7856,11 +7302,11 @@ function ContextCompactionProgressDivider({
7856
7302
  const elapsedSeconds = useElapsedSeconds(startedAtUnixMs);
7857
7303
  const label = translate("agentHost.agentGui.contextCompactionInProgress");
7858
7304
  const text = elapsedSeconds === null ? label : `${label} \xB7 ${formatElapsedSeconds(elapsedSeconds)}`;
7859
- return /* @__PURE__ */ jsx15(ContextCompactionDivider, { text });
7305
+ return /* @__PURE__ */ jsx14(ContextCompactionDivider, { text });
7860
7306
  }
7861
7307
  function useElapsedSeconds(startUnixMs) {
7862
7308
  const [nowUnixMs, setNowUnixMs] = useState7(() => Date.now());
7863
- useEffect5(() => {
7309
+ useEffect4(() => {
7864
7310
  if (startUnixMs === null) {
7865
7311
  return;
7866
7312
  }
@@ -7887,7 +7333,7 @@ function AgentPlanCardMessage({
7887
7333
  previewMode = false
7888
7334
  }) {
7889
7335
  "use memo";
7890
- return /* @__PURE__ */ jsx15(AgentPlanCard, { copyText: message.body, children: /* @__PURE__ */ jsx15(
7336
+ return /* @__PURE__ */ jsx14(AgentPlanCard, { copyText: message.body, children: /* @__PURE__ */ jsx14(
7891
7337
  AgentMessageMarkdown,
7892
7338
  {
7893
7339
  content: message.body,
@@ -7927,20 +7373,20 @@ function systemNoticeTitle(message) {
7927
7373
  }
7928
7374
 
7929
7375
  // shared/agentConversation/components/AgentProcessingRow.tsx
7930
- import { jsx as jsx16, jsxs as jsxs10 } from "react/jsx-runtime";
7376
+ import { jsx as jsx15, jsxs as jsxs10 } from "react/jsx-runtime";
7931
7377
  function AgentProcessingRow({
7932
7378
  row,
7933
7379
  label
7934
7380
  }) {
7935
7381
  "use memo";
7936
- return /* @__PURE__ */ jsx16(
7382
+ return /* @__PURE__ */ jsx15(
7937
7383
  "div",
7938
7384
  {
7939
7385
  "data-row-id": row.id,
7940
7386
  className: "workspace-agents-status-panel__detail-processing inline-flex items-center gap-1.5",
7941
7387
  children: /* @__PURE__ */ jsxs10("span", { className: "inline-flex min-w-0 items-center gap-1 font-semibold", children: [
7942
- /* @__PURE__ */ jsx16("span", { children: processingLabel(row, label) }),
7943
- /* @__PURE__ */ jsx16(LoadingEllipsis2, {})
7388
+ /* @__PURE__ */ jsx15("span", { children: processingLabel(row, label) }),
7389
+ /* @__PURE__ */ jsx15(LoadingEllipsis2, {})
7944
7390
  ] })
7945
7391
  }
7946
7392
  );
@@ -7959,9 +7405,9 @@ function LoadingEllipsis2() {
7959
7405
  className: "tsh-inline-loading-ellipsis tsh-inline-loading-ellipsis--entry-timing",
7960
7406
  "aria-hidden": "true",
7961
7407
  children: [
7962
- /* @__PURE__ */ jsx16("span", {}),
7963
- /* @__PURE__ */ jsx16("span", {}),
7964
- /* @__PURE__ */ jsx16("span", {})
7408
+ /* @__PURE__ */ jsx15("span", {}),
7409
+ /* @__PURE__ */ jsx15("span", {}),
7410
+ /* @__PURE__ */ jsx15("span", {})
7965
7411
  ]
7966
7412
  }
7967
7413
  );
@@ -7981,7 +7427,7 @@ import { AlertCircle, ChevronDown as ChevronDown4, ChevronRight as ChevronRight4
7981
7427
  import {
7982
7428
  forwardRef as forwardRef4,
7983
7429
  useCallback as useCallback5,
7984
- useEffect as useEffect6,
7430
+ useEffect as useEffect5,
7985
7431
  useImperativeHandle as useImperativeHandle2,
7986
7432
  useRef as useRef4
7987
7433
  } from "react";
@@ -7990,7 +7436,7 @@ import {
7990
7436
  useAnimation as useAnimation2,
7991
7437
  useReducedMotion as useReducedMotion2
7992
7438
  } from "framer-motion";
7993
- import { jsx as jsx17, jsxs as jsxs11 } from "react/jsx-runtime";
7439
+ import { jsx as jsx16, jsxs as jsxs11 } from "react/jsx-runtime";
7994
7440
  var PEN_VARIANTS = {
7995
7441
  normal: {
7996
7442
  rotate: 0,
@@ -8063,7 +7509,7 @@ var FilePenLineIcon = forwardRef4(
8063
7509
  stopAnimation
8064
7510
  };
8065
7511
  });
8066
- useEffect6(() => {
7512
+ useEffect5(() => {
8067
7513
  if (active) {
8068
7514
  startAnimation();
8069
7515
  return;
@@ -8090,7 +7536,7 @@ var FilePenLineIcon = forwardRef4(
8090
7536
  },
8091
7537
  [onMouseLeave, stopAnimation]
8092
7538
  );
8093
- return /* @__PURE__ */ jsx17(
7539
+ return /* @__PURE__ */ jsx16(
8094
7540
  "div",
8095
7541
  {
8096
7542
  className: cn("inline-flex items-center justify-center", className),
@@ -8110,8 +7556,8 @@ var FilePenLineIcon = forwardRef4(
8110
7556
  width: size,
8111
7557
  xmlns: "http://www.w3.org/2000/svg",
8112
7558
  children: [
8113
- /* @__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" }),
8114
- /* @__PURE__ */ jsx17(
7559
+ /* @__PURE__ */ jsx16("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" }),
7560
+ /* @__PURE__ */ jsx16(
8115
7561
  motion2.path,
8116
7562
  {
8117
7563
  animate: controls,
@@ -8120,7 +7566,7 @@ var FilePenLineIcon = forwardRef4(
8120
7566
  variants: PEN_VARIANTS
8121
7567
  }
8122
7568
  ),
8123
- /* @__PURE__ */ jsx17(
7569
+ /* @__PURE__ */ jsx16(
8124
7570
  motion2.path,
8125
7571
  {
8126
7572
  animate: controls,
@@ -8142,7 +7588,7 @@ FilePenLineIcon.displayName = "FilePenLineIcon";
8142
7588
  import {
8143
7589
  forwardRef as forwardRef5,
8144
7590
  useCallback as useCallback6,
8145
- useEffect as useEffect7,
7591
+ useEffect as useEffect6,
8146
7592
  useImperativeHandle as useImperativeHandle3,
8147
7593
  useRef as useRef5
8148
7594
  } from "react";
@@ -8151,7 +7597,7 @@ import {
8151
7597
  useAnimation as useAnimation3,
8152
7598
  useReducedMotion as useReducedMotion3
8153
7599
  } from "framer-motion";
8154
- import { jsx as jsx18, jsxs as jsxs12 } from "react/jsx-runtime";
7600
+ import { jsx as jsx17, jsxs as jsxs12 } from "react/jsx-runtime";
8155
7601
  var FILE_TEXT_LINE_VARIANTS = {
8156
7602
  normal: {
8157
7603
  pathLength: 1,
@@ -8206,7 +7652,7 @@ var FileTextIcon = forwardRef5(
8206
7652
  stopAnimation
8207
7653
  };
8208
7654
  });
8209
- useEffect7(() => {
7655
+ useEffect6(() => {
8210
7656
  if (active) {
8211
7657
  startAnimation();
8212
7658
  return;
@@ -8233,7 +7679,7 @@ var FileTextIcon = forwardRef5(
8233
7679
  },
8234
7680
  [onMouseLeave, stopAnimation]
8235
7681
  );
8236
- return /* @__PURE__ */ jsx18(
7682
+ return /* @__PURE__ */ jsx17(
8237
7683
  "div",
8238
7684
  {
8239
7685
  className: cn("inline-flex items-center justify-center", className),
@@ -8274,9 +7720,9 @@ var FileTextIcon = forwardRef5(
8274
7720
  width: size,
8275
7721
  xmlns: "http://www.w3.org/2000/svg",
8276
7722
  children: [
8277
- /* @__PURE__ */ jsx18("path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z" }),
8278
- /* @__PURE__ */ jsx18("path", { d: "M14 2v4a2 2 0 0 0 2 2h4" }),
8279
- /* @__PURE__ */ jsx18(
7723
+ /* @__PURE__ */ jsx17("path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z" }),
7724
+ /* @__PURE__ */ jsx17("path", { d: "M14 2v4a2 2 0 0 0 2 2h4" }),
7725
+ /* @__PURE__ */ jsx17(
8280
7726
  motion3.path,
8281
7727
  {
8282
7728
  animate: controls,
@@ -8285,7 +7731,7 @@ var FileTextIcon = forwardRef5(
8285
7731
  variants: FILE_TEXT_LINE_VARIANTS
8286
7732
  }
8287
7733
  ),
8288
- /* @__PURE__ */ jsx18(
7734
+ /* @__PURE__ */ jsx17(
8289
7735
  motion3.path,
8290
7736
  {
8291
7737
  animate: controls,
@@ -8294,7 +7740,7 @@ var FileTextIcon = forwardRef5(
8294
7740
  variants: FILE_TEXT_LINE_VARIANTS
8295
7741
  }
8296
7742
  ),
8297
- /* @__PURE__ */ jsx18(
7743
+ /* @__PURE__ */ jsx17(
8298
7744
  motion3.path,
8299
7745
  {
8300
7746
  animate: controls,
@@ -8316,7 +7762,7 @@ FileTextIcon.displayName = "FileTextIcon";
8316
7762
  import {
8317
7763
  forwardRef as forwardRef6,
8318
7764
  useCallback as useCallback7,
8319
- useEffect as useEffect8,
7765
+ useEffect as useEffect7,
8320
7766
  useImperativeHandle as useImperativeHandle4,
8321
7767
  useRef as useRef6
8322
7768
  } from "react";
@@ -8325,7 +7771,7 @@ import {
8325
7771
  useAnimation as useAnimation4,
8326
7772
  useReducedMotion as useReducedMotion4
8327
7773
  } from "framer-motion";
8328
- import { jsx as jsx19, jsxs as jsxs13 } from "react/jsx-runtime";
7774
+ import { jsx as jsx18, jsxs as jsxs13 } from "react/jsx-runtime";
8329
7775
  var HAMMER_VARIANTS = {
8330
7776
  normal: {
8331
7777
  rotate: 0,
@@ -8381,7 +7827,7 @@ var HammerIcon = forwardRef6(
8381
7827
  stopAnimation
8382
7828
  };
8383
7829
  });
8384
- useEffect8(() => {
7830
+ useEffect7(() => {
8385
7831
  if (active) {
8386
7832
  startAnimation();
8387
7833
  return;
@@ -8408,7 +7854,7 @@ var HammerIcon = forwardRef6(
8408
7854
  },
8409
7855
  [onMouseLeave, stopAnimation]
8410
7856
  );
8411
- return /* @__PURE__ */ jsx19(
7857
+ return /* @__PURE__ */ jsx18(
8412
7858
  "div",
8413
7859
  {
8414
7860
  className: cn("inline-flex items-center justify-center", className),
@@ -8432,9 +7878,9 @@ var HammerIcon = forwardRef6(
8432
7878
  width: size,
8433
7879
  xmlns: "http://www.w3.org/2000/svg",
8434
7880
  children: [
8435
- /* @__PURE__ */ jsx19("path", { d: "m15 12-9.373 9.373a1 1 0 0 1-3.001-3L12 9" }),
8436
- /* @__PURE__ */ jsx19("path", { d: "m18 15 4-4" }),
8437
- /* @__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" })
7881
+ /* @__PURE__ */ jsx18("path", { d: "m15 12-9.373 9.373a1 1 0 0 1-3.001-3L12 9" }),
7882
+ /* @__PURE__ */ jsx18("path", { d: "m18 15 4-4" }),
7883
+ /* @__PURE__ */ jsx18("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" })
8438
7884
  ]
8439
7885
  }
8440
7886
  )
@@ -8445,17 +7891,17 @@ var HammerIcon = forwardRef6(
8445
7891
  HammerIcon.displayName = "HammerIcon";
8446
7892
 
8447
7893
  // app/renderer/components/icons/ToolsLinedIcon.tsx
8448
- import { jsx as jsx20 } from "react/jsx-runtime";
7894
+ import { jsx as jsx19 } from "react/jsx-runtime";
8449
7895
  function ToolsLinedIcon(props) {
8450
7896
  "use memo";
8451
- return /* @__PURE__ */ jsx20(
7897
+ return /* @__PURE__ */ jsx19(
8452
7898
  "svg",
8453
7899
  {
8454
7900
  viewBox: "0 0 24 24",
8455
7901
  fill: "none",
8456
7902
  xmlns: "http://www.w3.org/2000/svg",
8457
7903
  ...props,
8458
- children: /* @__PURE__ */ jsx20(
7904
+ children: /* @__PURE__ */ jsx19(
8459
7905
  "path",
8460
7906
  {
8461
7907
  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",
@@ -8467,10 +7913,10 @@ function ToolsLinedIcon(props) {
8467
7913
  }
8468
7914
 
8469
7915
  // app/renderer/components/icons/WriteLinedIcon.tsx
8470
- import { jsx as jsx21 } from "react/jsx-runtime";
7916
+ import { jsx as jsx20 } from "react/jsx-runtime";
8471
7917
  function WriteLinedIcon(props) {
8472
7918
  "use memo";
8473
- return /* @__PURE__ */ jsx21(
7919
+ return /* @__PURE__ */ jsx20(
8474
7920
  "svg",
8475
7921
  {
8476
7922
  xmlns: "http://www.w3.org/2000/svg",
@@ -8478,7 +7924,7 @@ function WriteLinedIcon(props) {
8478
7924
  fill: "none",
8479
7925
  "aria-hidden": true,
8480
7926
  ...props,
8481
- children: /* @__PURE__ */ jsx21(
7927
+ children: /* @__PURE__ */ jsx20(
8482
7928
  "path",
8483
7929
  {
8484
7930
  fill: "currentColor",
@@ -9640,7 +9086,7 @@ function locationPaths(value) {
9640
9086
  }
9641
9087
 
9642
9088
  // shared/agentConversation/components/AgentToolCallHeader.tsx
9643
- import { jsx as jsx22, jsxs as jsxs14 } from "react/jsx-runtime";
9089
+ import { jsx as jsx21, jsxs as jsxs14 } from "react/jsx-runtime";
9644
9090
  var TOOL_ROW_ICON_SIZE = 16;
9645
9091
  function AgentToolCallHeader({
9646
9092
  call,
@@ -9660,14 +9106,14 @@ function AgentToolCallHeader({
9660
9106
  isActive ? "tsh-inline-scanlight-group" : ""
9661
9107
  ].filter(Boolean).join(" "),
9662
9108
  children: [
9663
- /* @__PURE__ */ jsx22("div", { className: "workspace-agents-status-panel__detail-tool-row-icon tsh-inline-scanlight-icon", children: isFailed ? /* @__PURE__ */ jsx22(
9109
+ /* @__PURE__ */ jsx21("div", { className: "workspace-agents-status-panel__detail-tool-row-icon tsh-inline-scanlight-icon", children: isFailed ? /* @__PURE__ */ jsx21(
9664
9110
  AlertCircle,
9665
9111
  {
9666
9112
  size: TOOL_ROW_ICON_SIZE,
9667
9113
  strokeWidth: 2,
9668
9114
  "aria-hidden": "true"
9669
9115
  }
9670
- ) : isActive && isFileReadTool(call.toolName) ? /* @__PURE__ */ jsx22(
9116
+ ) : isActive && isFileReadTool(call.toolName) ? /* @__PURE__ */ jsx21(
9671
9117
  FileTextIcon,
9672
9118
  {
9673
9119
  size: TOOL_ROW_ICON_SIZE,
@@ -9676,7 +9122,7 @@ function AgentToolCallHeader({
9676
9122
  className: "text-current",
9677
9123
  "data-testid": "agent-tool-read-loading-icon"
9678
9124
  }
9679
- ) : isActive && isFileWriteTool(call.toolName) ? /* @__PURE__ */ jsx22(
9125
+ ) : isActive && isFileWriteTool(call.toolName) ? /* @__PURE__ */ jsx21(
9680
9126
  FilePenLineIcon,
9681
9127
  {
9682
9128
  size: TOOL_ROW_ICON_SIZE,
@@ -9685,7 +9131,7 @@ function AgentToolCallHeader({
9685
9131
  className: "text-current",
9686
9132
  "data-testid": "agent-tool-write-loading-icon"
9687
9133
  }
9688
- ) : isActive && isFileEditTool(call.toolName) ? /* @__PURE__ */ jsx22(
9134
+ ) : isActive && isFileEditTool(call.toolName) ? /* @__PURE__ */ jsx21(
9689
9135
  FileTextIcon,
9690
9136
  {
9691
9137
  size: TOOL_ROW_ICON_SIZE,
@@ -9694,7 +9140,7 @@ function AgentToolCallHeader({
9694
9140
  className: "text-current",
9695
9141
  "data-testid": "agent-tool-edit-loading-icon"
9696
9142
  }
9697
- ) : isActive && isStdinWriteTool(call.toolName) ? /* @__PURE__ */ jsx22(
9143
+ ) : isActive && isStdinWriteTool(call.toolName) ? /* @__PURE__ */ jsx21(
9698
9144
  WriteLinedIcon,
9699
9145
  {
9700
9146
  width: TOOL_ROW_ICON_SIZE,
@@ -9706,7 +9152,7 @@ function AgentToolCallHeader({
9706
9152
  ) : isImageGenerationToolCall({
9707
9153
  toolName: call.toolName,
9708
9154
  displayName: call.name
9709
- }) ? /* @__PURE__ */ jsx22(
9155
+ }) ? /* @__PURE__ */ jsx21(
9710
9156
  ToolNameIcon,
9711
9157
  {
9712
9158
  toolName: call.toolName ?? call.name,
@@ -9716,7 +9162,7 @@ function AgentToolCallHeader({
9716
9162
  className: "text-current",
9717
9163
  "data-testid": isActive ? "agent-tool-image-generation-loading-icon" : "agent-tool-image-generation-icon"
9718
9164
  }
9719
- ) : isWebTool(call.toolName) ? /* @__PURE__ */ jsx22(
9165
+ ) : isWebTool(call.toolName) ? /* @__PURE__ */ jsx21(
9720
9166
  ToolNameIcon,
9721
9167
  {
9722
9168
  toolName: call.toolName,
@@ -9726,7 +9172,7 @@ function AgentToolCallHeader({
9726
9172
  className: "text-current",
9727
9173
  "data-testid": isActive ? "agent-tool-web-loading-icon" : "agent-tool-web-icon"
9728
9174
  }
9729
- ) : isFileReadTool(call.toolName) ? /* @__PURE__ */ jsx22(
9175
+ ) : isFileReadTool(call.toolName) ? /* @__PURE__ */ jsx21(
9730
9176
  ToolNameIcon,
9731
9177
  {
9732
9178
  toolName: call.toolName,
@@ -9736,7 +9182,7 @@ function AgentToolCallHeader({
9736
9182
  className: "text-current",
9737
9183
  "data-testid": "agent-tool-read-icon"
9738
9184
  }
9739
- ) : call.statusKind === "working" || call.statusKind === "waiting" ? /* @__PURE__ */ jsx22(
9185
+ ) : call.statusKind === "working" || call.statusKind === "waiting" ? /* @__PURE__ */ jsx21(
9740
9186
  HammerIcon,
9741
9187
  {
9742
9188
  size: TOOL_ROW_ICON_SIZE,
@@ -9745,7 +9191,7 @@ function AgentToolCallHeader({
9745
9191
  className: "text-current",
9746
9192
  "data-testid": "agent-tool-call-loading-icon"
9747
9193
  }
9748
- ) : /* @__PURE__ */ jsx22(
9194
+ ) : /* @__PURE__ */ jsx21(
9749
9195
  ToolsLinedIcon,
9750
9196
  {
9751
9197
  width: TOOL_ROW_ICON_SIZE,
@@ -9761,9 +9207,9 @@ function AgentToolCallHeader({
9761
9207
  isActive ? "tsh-inline-scanlight-line" : ""
9762
9208
  ].filter(Boolean).join(" "),
9763
9209
  children: [
9764
- /* @__PURE__ */ jsx22("strong", { className: "workspace-agents-status-panel__detail-tool-row-title", children: formatInlineTitleLabel(call.name) }),
9765
- call.status ? /* @__PURE__ */ jsx22("span", { className: "workspace-agents-status-panel__detail-tool-status", children: formatInlineStatusLabel2(call.status) }) : null,
9766
- isActive ? /* @__PURE__ */ jsx22(LoadingEllipsis3, {}) : null,
9210
+ /* @__PURE__ */ jsx21("strong", { className: "workspace-agents-status-panel__detail-tool-row-title", children: formatInlineTitleLabel(call.name) }),
9211
+ call.status ? /* @__PURE__ */ jsx21("span", { className: "workspace-agents-status-panel__detail-tool-status", children: formatInlineStatusLabel2(call.status) }) : null,
9212
+ isActive ? /* @__PURE__ */ jsx21(LoadingEllipsis3, {}) : null,
9767
9213
  diffStats ? /* @__PURE__ */ jsxs14("span", { className: "workspace-agents-status-panel__detail-tool-diff-stats", children: [
9768
9214
  diffStats.added > 0 ? /* @__PURE__ */ jsxs14("span", { className: "workspace-agents-status-panel__detail-tool-diff-added", children: [
9769
9215
  "+",
@@ -9777,7 +9223,7 @@ function AgentToolCallHeader({
9777
9223
  ]
9778
9224
  }
9779
9225
  ),
9780
- hasDetail ? expanded ? /* @__PURE__ */ jsx22(
9226
+ hasDetail ? expanded ? /* @__PURE__ */ jsx21(
9781
9227
  ChevronDown4,
9782
9228
  {
9783
9229
  size: 12,
@@ -9785,7 +9231,7 @@ function AgentToolCallHeader({
9785
9231
  "aria-hidden": "true",
9786
9232
  className: "workspace-agents-status-panel__detail-tool-row-chevron"
9787
9233
  }
9788
- ) : /* @__PURE__ */ jsx22(
9234
+ ) : /* @__PURE__ */ jsx21(
9789
9235
  ChevronRight4,
9790
9236
  {
9791
9237
  size: 12,
@@ -9824,9 +9270,9 @@ function formatInlineTitleLabel(label) {
9824
9270
  function LoadingEllipsis3() {
9825
9271
  "use memo";
9826
9272
  return /* @__PURE__ */ jsxs14("span", { className: "tsh-inline-loading-ellipsis", "aria-hidden": "true", children: [
9827
- /* @__PURE__ */ jsx22("span", {}),
9828
- /* @__PURE__ */ jsx22("span", {}),
9829
- /* @__PURE__ */ jsx22("span", {})
9273
+ /* @__PURE__ */ jsx21("span", {}),
9274
+ /* @__PURE__ */ jsx21("span", {}),
9275
+ /* @__PURE__ */ jsx21("span", {})
9830
9276
  ] });
9831
9277
  }
9832
9278
  function diffStatsForCall(call) {
@@ -9899,7 +9345,7 @@ function normalizeToolName8(value) {
9899
9345
  import { useMemo as useMemo2, useState as useState8 } from "react";
9900
9346
 
9901
9347
  // shared/agentConversation/components/tool-renderers/AgentPathTailLabel.tsx
9902
- import { jsx as jsx23, jsxs as jsxs15 } from "react/jsx-runtime";
9348
+ import { jsx as jsx22, jsxs as jsxs15 } from "react/jsx-runtime";
9903
9349
  function AgentPathTailLabel({
9904
9350
  path,
9905
9351
  fallback,
@@ -9909,12 +9355,12 @@ function AgentPathTailLabel({
9909
9355
  const label = path?.trim() || fallback;
9910
9356
  const parts = splitPathTail(label);
9911
9357
  if (!parts) {
9912
- return /* @__PURE__ */ jsx23(
9358
+ return /* @__PURE__ */ jsx22(
9913
9359
  "span",
9914
9360
  {
9915
9361
  className: `agent-path-tail-label ${className ?? ""}`,
9916
9362
  title: path ?? void 0,
9917
- children: /* @__PURE__ */ jsx23("span", { className: "agent-path-tail-label__file", children: label })
9363
+ children: /* @__PURE__ */ jsx22("span", { className: "agent-path-tail-label__file", children: label })
9918
9364
  }
9919
9365
  );
9920
9366
  }
@@ -9924,8 +9370,8 @@ function AgentPathTailLabel({
9924
9370
  className: `agent-path-tail-label ${className ?? ""}`,
9925
9371
  title: path ?? void 0,
9926
9372
  children: [
9927
- /* @__PURE__ */ jsx23("span", { className: "agent-path-tail-label__directory", children: parts.directory }),
9928
- /* @__PURE__ */ jsx23("span", { className: "agent-path-tail-label__file", children: parts.fileName })
9373
+ /* @__PURE__ */ jsx22("span", { className: "agent-path-tail-label__directory", children: parts.directory }),
9374
+ /* @__PURE__ */ jsx22("span", { className: "agent-path-tail-label__file", children: parts.fileName })
9929
9375
  ]
9930
9376
  }
9931
9377
  );
@@ -9944,7 +9390,7 @@ function splitPathTail(value) {
9944
9390
  }
9945
9391
 
9946
9392
  // shared/agentConversation/components/tool-renderers/code/AgentCodeBlock.tsx
9947
- import { Fragment as Fragment3, jsx as jsx24, jsxs as jsxs16 } from "react/jsx-runtime";
9393
+ import { Fragment as Fragment3, jsx as jsx23, jsxs as jsxs16 } from "react/jsx-runtime";
9948
9394
  var MAX_VISIBLE_LINES = 120;
9949
9395
  function AgentCodeBlock({
9950
9396
  path,
@@ -9979,7 +9425,7 @@ function AgentCodeBlock({
9979
9425
  if (!normalized) {
9980
9426
  return null;
9981
9427
  }
9982
- const disclosureButton = collapsible && lineCount > MAX_VISIBLE_LINES ? /* @__PURE__ */ jsx24(
9428
+ const disclosureButton = collapsible && lineCount > MAX_VISIBLE_LINES ? /* @__PURE__ */ jsx23(
9983
9429
  "button",
9984
9430
  {
9985
9431
  type: "button",
@@ -9990,13 +9436,13 @@ function AgentCodeBlock({
9990
9436
  })
9991
9437
  }
9992
9438
  ) : null;
9993
- return /* @__PURE__ */ jsx24(
9439
+ return /* @__PURE__ */ jsx23(
9994
9440
  "div",
9995
9441
  {
9996
9442
  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" : ""}`,
9997
9443
  children: flat ? /* @__PURE__ */ jsxs16(Fragment3, { children: [
9998
9444
  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: [
9999
- /* @__PURE__ */ jsx24(
9445
+ /* @__PURE__ */ jsx23(
10000
9446
  "span",
10001
9447
  {
10002
9448
  className: "truncate font-[var(--tsh-font-mono)] text-[var(--text-secondary)]",
@@ -10015,8 +9461,8 @@ function AgentCodeBlock({
10015
9461
  {
10016
9462
  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",
10017
9463
  children: [
10018
- /* @__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 }),
10019
- /* @__PURE__ */ jsx24("pre", { className: "m-0 overflow-x-auto px-3 py-0 text-[var(--text-primary)]", children: /* @__PURE__ */ jsx24("code", { children: line.line || " " }) })
9464
+ /* @__PURE__ */ jsx23("div", { className: "select-none px-2.5 text-right text-[color:color-mix(in_srgb,var(--state-success)_90%,transparent)]", children: line.lineNumber }),
9465
+ /* @__PURE__ */ jsx23("pre", { className: "m-0 overflow-x-auto px-3 py-0 text-[var(--text-primary)]", children: /* @__PURE__ */ jsx23("code", { children: line.line || " " }) })
10020
9466
  ]
10021
9467
  },
10022
9468
  line.key
@@ -10025,7 +9471,7 @@ function AgentCodeBlock({
10025
9471
  ] })
10026
9472
  ] }) : /* @__PURE__ */ jsxs16(Fragment3, { children: [
10027
9473
  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: [
10028
- /* @__PURE__ */ jsx24(
9474
+ /* @__PURE__ */ jsx23(
10029
9475
  AgentPathTailLabel,
10030
9476
  {
10031
9477
  path,
@@ -10039,7 +9485,7 @@ function AgentCodeBlock({
10039
9485
  " lines"
10040
9486
  ] })
10041
9487
  ] }) : null,
10042
- /* @__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 }) }),
9488
+ /* @__PURE__ */ jsx23("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__ */ jsx23("code", { children: visibleContent }) }),
10043
9489
  disclosureButton
10044
9490
  ] })
10045
9491
  }
@@ -10064,7 +9510,7 @@ import { lazy, Suspense } from "react";
10064
9510
  import {
10065
9511
  forwardRef as forwardRef7,
10066
9512
  useCallback as useCallback8,
10067
- useEffect as useEffect9,
9513
+ useEffect as useEffect8,
10068
9514
  useImperativeHandle as useImperativeHandle5,
10069
9515
  useRef as useRef7
10070
9516
  } from "react";
@@ -10073,7 +9519,7 @@ import {
10073
9519
  useAnimation as useAnimation5,
10074
9520
  useReducedMotion as useReducedMotion5
10075
9521
  } from "framer-motion";
10076
- import { jsx as jsx25, jsxs as jsxs17 } from "react/jsx-runtime";
9522
+ import { jsx as jsx24, jsxs as jsxs17 } from "react/jsx-runtime";
10077
9523
  var ATOM_ICON_ANIMATION_DURATION = 0.75;
10078
9524
  var ATOM_ICON_REPEAT_DELAY = 1.5;
10079
9525
  var PATH_VARIANTS = {
@@ -10138,7 +9584,7 @@ var AtomIcon = forwardRef7(
10138
9584
  stopAnimation
10139
9585
  };
10140
9586
  });
10141
- useEffect9(() => {
9587
+ useEffect8(() => {
10142
9588
  if (active) {
10143
9589
  startAnimation();
10144
9590
  return;
@@ -10165,7 +9611,7 @@ var AtomIcon = forwardRef7(
10165
9611
  },
10166
9612
  [onMouseLeave, stopAnimation]
10167
9613
  );
10168
- return /* @__PURE__ */ jsx25(
9614
+ return /* @__PURE__ */ jsx24(
10169
9615
  "div",
10170
9616
  {
10171
9617
  className: cn("inline-flex items-center justify-center", className),
@@ -10185,7 +9631,7 @@ var AtomIcon = forwardRef7(
10185
9631
  width: size,
10186
9632
  xmlns: "http://www.w3.org/2000/svg",
10187
9633
  children: [
10188
- /* @__PURE__ */ jsx25(
9634
+ /* @__PURE__ */ jsx24(
10189
9635
  motion5.circle,
10190
9636
  {
10191
9637
  animate: controls,
@@ -10196,7 +9642,7 @@ var AtomIcon = forwardRef7(
10196
9642
  variants: PATH_VARIANTS
10197
9643
  }
10198
9644
  ),
10199
- /* @__PURE__ */ jsx25(
9645
+ /* @__PURE__ */ jsx24(
10200
9646
  motion5.path,
10201
9647
  {
10202
9648
  animate: controls,
@@ -10205,7 +9651,7 @@ var AtomIcon = forwardRef7(
10205
9651
  variants: PATH_VARIANTS
10206
9652
  }
10207
9653
  ),
10208
- /* @__PURE__ */ jsx25(
9654
+ /* @__PURE__ */ jsx24(
10209
9655
  motion5.path,
10210
9656
  {
10211
9657
  animate: controls,
@@ -10224,7 +9670,7 @@ var AtomIcon = forwardRef7(
10224
9670
  AtomIcon.displayName = "AtomIcon";
10225
9671
 
10226
9672
  // shared/agentConversation/components/tool-renderers/file-diff/AgentMonacoDiffViewer.tsx
10227
- import { jsx as jsx26, jsxs as jsxs18 } from "react/jsx-runtime";
9673
+ import { jsx as jsx25, jsxs as jsxs18 } from "react/jsx-runtime";
10228
9674
  var MonacoDiffEditor = lazy(async () => {
10229
9675
  const module = await import("@monaco-editor/react");
10230
9676
  return { default: module.DiffEditor };
@@ -10242,12 +9688,12 @@ function AgentMonacoDiffViewer({
10242
9688
  {
10243
9689
  className: `overflow-hidden rounded-[8px] border border-[var(--line-2)] bg-[var(--background-panel)] ${flat ? "workspace-agents-status-panel__detail-tool-monaco--flat" : ""}`,
10244
9690
  children: [
10245
- showHeader ? /* @__PURE__ */ jsx26(
9691
+ showHeader ? /* @__PURE__ */ jsx25(
10246
9692
  "div",
10247
9693
  {
10248
9694
  className: "border-b border-[var(--line-2)] bg-[var(--transparency-block)] px-3 py-1.5 text-[11px] text-[var(--text-secondary)]",
10249
9695
  "data-agent-diff-header": "true",
10250
- children: /* @__PURE__ */ jsx26(
9696
+ children: /* @__PURE__ */ jsx25(
10251
9697
  AgentPathTailLabel,
10252
9698
  {
10253
9699
  path,
@@ -10257,11 +9703,11 @@ function AgentMonacoDiffViewer({
10257
9703
  )
10258
9704
  }
10259
9705
  ) : null,
10260
- /* @__PURE__ */ jsx26("div", { className: "h-[220px] bg-[var(--background-panel)]", children: /* @__PURE__ */ jsx26(
9706
+ /* @__PURE__ */ jsx25("div", { className: "h-[220px] bg-[var(--background-panel)]", children: /* @__PURE__ */ jsx25(
10261
9707
  Suspense,
10262
9708
  {
10263
9709
  fallback: /* @__PURE__ */ jsxs18("div", { className: "flex items-center gap-1.5 px-3 py-2.5 text-[11px] text-[var(--text-secondary)]", children: [
10264
- /* @__PURE__ */ jsx26(
9710
+ /* @__PURE__ */ jsx25(
10265
9711
  AtomIcon,
10266
9712
  {
10267
9713
  size: 14,
@@ -10270,9 +9716,9 @@ function AgentMonacoDiffViewer({
10270
9716
  className: "shrink-0"
10271
9717
  }
10272
9718
  ),
10273
- /* @__PURE__ */ jsx26("span", { children: translate("agentHost.agentTool.details.loadingDiff") })
9719
+ /* @__PURE__ */ jsx25("span", { children: translate("agentHost.agentTool.details.loadingDiff") })
10274
9720
  ] }),
10275
- children: /* @__PURE__ */ jsx26(
9721
+ children: /* @__PURE__ */ jsx25(
10276
9722
  MonacoDiffEditor,
10277
9723
  {
10278
9724
  original: oldValue,
@@ -10318,7 +9764,7 @@ function languageForPath2(path) {
10318
9764
  import { useMemo as useMemo3, useState as useState9 } from "react";
10319
9765
 
10320
9766
  // shared/agentConversation/components/tool-renderers/AgentToolScrollArea.tsx
10321
- import { jsx as jsx27 } from "react/jsx-runtime";
9767
+ import { jsx as jsx26 } from "react/jsx-runtime";
10322
9768
  function AgentToolScrollArea({
10323
9769
  children,
10324
9770
  className,
@@ -10327,7 +9773,7 @@ function AgentToolScrollArea({
10327
9773
  ...props
10328
9774
  }) {
10329
9775
  "use memo";
10330
- return /* @__PURE__ */ jsx27(
9776
+ return /* @__PURE__ */ jsx26(
10331
9777
  CustomScrollArea,
10332
9778
  {
10333
9779
  className: cn(
@@ -10431,7 +9877,7 @@ function parseAgentUnifiedDiffStats(diffText) {
10431
9877
  }
10432
9878
 
10433
9879
  // shared/agentConversation/components/tool-renderers/file-diff/AgentUnifiedPatchViewer.tsx
10434
- import { Fragment as Fragment4, jsx as jsx28, jsxs as jsxs19 } from "react/jsx-runtime";
9880
+ import { Fragment as Fragment4, jsx as jsx27, jsxs as jsxs19 } from "react/jsx-runtime";
10435
9881
  var MAX_VISIBLE_LINES2 = 120;
10436
9882
  function AgentUnifiedPatchViewer({
10437
9883
  path,
@@ -10477,7 +9923,7 @@ function AgentUnifiedPatchViewer({
10477
9923
  if (!normalized) {
10478
9924
  return null;
10479
9925
  }
10480
- const disclosureButton = collapsible && lines.length > MAX_VISIBLE_LINES2 ? /* @__PURE__ */ jsx28(
9926
+ const disclosureButton = collapsible && lines.length > MAX_VISIBLE_LINES2 ? /* @__PURE__ */ jsx27(
10481
9927
  "button",
10482
9928
  {
10483
9929
  type: "button",
@@ -10488,7 +9934,7 @@ function AgentUnifiedPatchViewer({
10488
9934
  })
10489
9935
  }
10490
9936
  ) : null;
10491
- return /* @__PURE__ */ jsx28(
9937
+ return /* @__PURE__ */ jsx27(
10492
9938
  "div",
10493
9939
  {
10494
9940
  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" : ""}`,
@@ -10499,7 +9945,7 @@ function AgentUnifiedPatchViewer({
10499
9945
  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]",
10500
9946
  "data-agent-diff-header": "true",
10501
9947
  children: [
10502
- /* @__PURE__ */ jsx28(
9948
+ /* @__PURE__ */ jsx27(
10503
9949
  "span",
10504
9950
  {
10505
9951
  className: "truncate font-[var(--tsh-font-mono)] text-[var(--text-secondary)]",
@@ -10522,18 +9968,18 @@ function AgentUnifiedPatchViewer({
10522
9968
  ) : null,
10523
9969
  /* @__PURE__ */ jsxs19(AgentToolScrollArea, { viewportClassName: "agent-tool-diff__viewport", children: [
10524
9970
  visibleDiffLines.map(({ key, line }) => /* @__PURE__ */ jsxs19("div", { className: flatLineClassName(line.kind), children: [
10525
- /* @__PURE__ */ jsx28("div", { className: "select-none px-2.5 text-right text-[var(--text-tertiary)]", children: line.newLineNumber ?? line.oldLineNumber ?? "" }),
10526
- /* @__PURE__ */ jsx28("pre", { className: "m-0 overflow-x-auto px-3 py-0 text-[var(--text-primary)]", children: /* @__PURE__ */ jsx28("code", { children: line.text || " " }) })
9971
+ /* @__PURE__ */ jsx27("div", { className: "select-none px-2.5 text-right text-[var(--text-tertiary)]", children: line.newLineNumber ?? line.oldLineNumber ?? "" }),
9972
+ /* @__PURE__ */ jsx27("pre", { className: "m-0 overflow-x-auto px-3 py-0 text-[var(--text-primary)]", children: /* @__PURE__ */ jsx27("code", { children: line.text || " " }) })
10527
9973
  ] }, key)),
10528
9974
  disclosureButton
10529
9975
  ] })
10530
9976
  ] }) : /* @__PURE__ */ jsxs19(Fragment4, { children: [
10531
- showHeader ? /* @__PURE__ */ jsx28(
9977
+ showHeader ? /* @__PURE__ */ jsx27(
10532
9978
  "div",
10533
9979
  {
10534
9980
  className: "border-b border-[var(--line-2)] bg-[var(--transparency-block)] px-3 py-1.5 text-[11px] text-[var(--text-secondary)]",
10535
9981
  "data-agent-diff-header": "true",
10536
- children: /* @__PURE__ */ jsx28(
9982
+ children: /* @__PURE__ */ jsx27(
10537
9983
  AgentPathTailLabel,
10538
9984
  {
10539
9985
  path,
@@ -10543,7 +9989,7 @@ function AgentUnifiedPatchViewer({
10543
9989
  )
10544
9990
  }
10545
9991
  ) : null,
10546
- /* @__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)) }),
9992
+ /* @__PURE__ */ jsx27(AgentToolScrollArea, { viewportClassName: "agent-tool-diff__viewport px-4 py-3 text-[11px] leading-5", children: visibleLines.map(({ key, line }) => /* @__PURE__ */ jsx27("div", { className: lineClassName(line), children: line || " " }, key)) }),
10547
9993
  disclosureButton
10548
9994
  ] })
10549
9995
  }
@@ -10605,7 +10051,7 @@ import {
10605
10051
  import { ChevronDown as ChevronDown5, ChevronRight as ChevronRight5 } from "lucide-react";
10606
10052
 
10607
10053
  // shared/agentConversation/components/tool-renderers/AgentReadContent.tsx
10608
- import { jsx as jsx29, jsxs as jsxs20 } from "react/jsx-runtime";
10054
+ import { jsx as jsx28, jsxs as jsxs20 } from "react/jsx-runtime";
10609
10055
  function AgentReadContent({
10610
10056
  call
10611
10057
  }) {
@@ -10615,7 +10061,7 @@ function AgentReadContent({
10615
10061
  const outputText = stringValue9(call.output?.text) ?? stringValue9(call.output?.output) ?? contentText2(call.output?.content) ?? stringValue9(call.output?.aggregated_output) ?? stringValue9(call.output?.formatted_output) ?? stringValue9(call.output?.stdout) ?? (!file ? call.summary.trim() || null : null);
10616
10062
  const fileLineRange = fileRange(file);
10617
10063
  const fileTotalLines = numericValue(file?.totalLines);
10618
- return /* @__PURE__ */ jsx29("div", { className: "workspace-agents-status-panel__detail-tool-body workspace-agents-status-panel__detail-tool-body--plain", children: outputText ? /* @__PURE__ */ jsx29(
10064
+ return /* @__PURE__ */ jsx28("div", { className: "workspace-agents-status-panel__detail-tool-body workspace-agents-status-panel__detail-tool-body--plain", children: outputText ? /* @__PURE__ */ jsx28(
10619
10065
  AgentCodeBlock,
10620
10066
  {
10621
10067
  path,
@@ -10623,7 +10069,7 @@ function AgentReadContent({
10623
10069
  language: languageForPath3(path)
10624
10070
  }
10625
10071
  ) : path || fileLineRange || fileTotalLines !== null ? /* @__PURE__ */ jsxs20("div", { className: "rounded-[8px] border border-[var(--line-2)] bg-[var(--background-panel)] px-3 py-2", children: [
10626
- path ? /* @__PURE__ */ jsx29(
10072
+ path ? /* @__PURE__ */ jsx28(
10627
10073
  AgentPathTailLabel,
10628
10074
  {
10629
10075
  path,
@@ -10631,7 +10077,7 @@ function AgentReadContent({
10631
10077
  className: "font-[var(--tsh-font-mono)] text-[11px] text-[var(--text-secondary)]"
10632
10078
  }
10633
10079
  ) : null,
10634
- fileLineRange || fileTotalLines !== null ? /* @__PURE__ */ jsx29("div", { className: "mt-1 text-[11px] text-[var(--text-secondary)]", children: [
10080
+ fileLineRange || fileTotalLines !== null ? /* @__PURE__ */ jsx28("div", { className: "mt-1 text-[11px] text-[var(--text-secondary)]", children: [
10635
10081
  fileLineRange,
10636
10082
  fileTotalLines !== null ? `${fileTotalLines} lines` : null
10637
10083
  ].filter((value) => Boolean(value)).join(" \xB7 ") }) : null
@@ -10695,14 +10141,14 @@ function languageForPath3(path) {
10695
10141
  }
10696
10142
 
10697
10143
  // shared/agentConversation/components/tool-renderers/agentToolContentShared.tsx
10698
- import { jsx as jsx30, jsxs as jsxs21 } from "react/jsx-runtime";
10144
+ import { jsx as jsx29, jsxs as jsxs21 } from "react/jsx-runtime";
10699
10145
  var AgentToolPreviewModeContext = createContext(false);
10700
10146
  function AgentToolPreviewModeProvider({
10701
10147
  children,
10702
10148
  previewMode
10703
10149
  }) {
10704
10150
  "use memo";
10705
- return /* @__PURE__ */ jsx30(AgentToolPreviewModeContext.Provider, { value: previewMode, children });
10151
+ return /* @__PURE__ */ jsx29(AgentToolPreviewModeContext.Provider, { value: previewMode, children });
10706
10152
  }
10707
10153
  function ToolSection({
10708
10154
  title,
@@ -10713,7 +10159,7 @@ function ToolSection({
10713
10159
  return null;
10714
10160
  }
10715
10161
  return /* @__PURE__ */ jsxs21("section", { className: "workspace-agents-status-panel__detail-tool-section-block", children: [
10716
- /* @__PURE__ */ jsx30("div", { className: "workspace-agents-status-panel__detail-tool-section-title", children: title }),
10162
+ /* @__PURE__ */ jsx29("div", { className: "workspace-agents-status-panel__detail-tool-section-title", children: title }),
10717
10163
  children
10718
10164
  ] });
10719
10165
  }
@@ -10730,7 +10176,7 @@ function ToolMarkdownBlock({
10730
10176
  if (!normalized) {
10731
10177
  return null;
10732
10178
  }
10733
- return /* @__PURE__ */ jsx30(
10179
+ return /* @__PURE__ */ jsx29(
10734
10180
  AgentMessageMarkdown,
10735
10181
  {
10736
10182
  content: normalized,
@@ -10794,7 +10240,7 @@ function AgentDefaultToolContent({
10794
10240
  return null;
10795
10241
  }
10796
10242
  return /* @__PURE__ */ jsxs21("div", { className: "workspace-agents-status-panel__detail-tool-body", children: [
10797
- sections.map((section) => /* @__PURE__ */ jsx30(ToolSection, { title: section.title, children: /* @__PURE__ */ jsx30(
10243
+ sections.map((section) => /* @__PURE__ */ jsx29(ToolSection, { title: section.title, children: /* @__PURE__ */ jsx29(
10798
10244
  ToolMarkdownBlock,
10799
10245
  {
10800
10246
  content: section.content,
@@ -10802,7 +10248,7 @@ function AgentDefaultToolContent({
10802
10248
  collapsible: section.collapsible
10803
10249
  }
10804
10250
  ) }, section.key)),
10805
- /* @__PURE__ */ jsx30(RawPayloadSection, { payload: rawPayload })
10251
+ /* @__PURE__ */ jsx29(RawPayloadSection, { payload: rawPayload })
10806
10252
  ] });
10807
10253
  }
10808
10254
  function hasAgentToolContent(call) {
@@ -10938,8 +10384,8 @@ function RawPayloadSection({
10938
10384
  "aria-expanded": expanded,
10939
10385
  onClick: () => setExpanded((value) => !value),
10940
10386
  children: [
10941
- /* @__PURE__ */ jsx30("span", { children: translate("agentHost.agentTool.details.rawPayload") }),
10942
- expanded ? /* @__PURE__ */ jsx30(
10387
+ /* @__PURE__ */ jsx29("span", { children: translate("agentHost.agentTool.details.rawPayload") }),
10388
+ expanded ? /* @__PURE__ */ jsx29(
10943
10389
  ChevronDown5,
10944
10390
  {
10945
10391
  size: 12,
@@ -10947,7 +10393,7 @@ function RawPayloadSection({
10947
10393
  "aria-hidden": "true",
10948
10394
  className: "shrink-0 opacity-0 transition-opacity duration-150 group-hover/raw-payload:opacity-100 group-focus-visible/raw-payload:opacity-100"
10949
10395
  }
10950
- ) : /* @__PURE__ */ jsx30(
10396
+ ) : /* @__PURE__ */ jsx29(
10951
10397
  ChevronRight5,
10952
10398
  {
10953
10399
  size: 12,
@@ -10959,7 +10405,7 @@ function RawPayloadSection({
10959
10405
  ]
10960
10406
  }
10961
10407
  ),
10962
- /* @__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 }) }) })
10408
+ /* @__PURE__ */ jsx29(CollapsibleReveal, { expanded, preMountOnIdle: true, children: /* @__PURE__ */ jsx29("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__ */ jsx29("code", { children: rawJson }) }) })
10963
10409
  ] });
10964
10410
  }
10965
10411
  function rawPayloadFromCall(call) {
@@ -11007,7 +10453,7 @@ function normalizeToolSectionContent(value) {
11007
10453
  }
11008
10454
 
11009
10455
  // shared/agentConversation/components/tool-renderers/AgentEditContent.tsx
11010
- import { jsx as jsx31, jsxs as jsxs22 } from "react/jsx-runtime";
10456
+ import { jsx as jsx30, jsxs as jsxs22 } from "react/jsx-runtime";
11011
10457
  function AgentEditContent({
11012
10458
  call,
11013
10459
  onLinkClick
@@ -11028,8 +10474,8 @@ function AgentEditContent({
11028
10474
  return null;
11029
10475
  }
11030
10476
  return /* @__PURE__ */ jsxs22("div", { className: "workspace-agents-status-panel__detail-tool-body workspace-agents-status-panel__detail-tool-body--flat", children: [
11031
- path && files.length === 0 ? /* @__PURE__ */ jsx31(ToolMarkdownBlock, { content: path, onLinkClick }) : null,
11032
- patchFiles.map((candidate) => /* @__PURE__ */ jsx31(
10477
+ path && files.length === 0 ? /* @__PURE__ */ jsx30(ToolMarkdownBlock, { content: path, onLinkClick }) : null,
10478
+ patchFiles.map((candidate) => /* @__PURE__ */ jsx30(
11033
10479
  AgentUnifiedPatchViewer,
11034
10480
  {
11035
10481
  path: candidate.path,
@@ -11039,7 +10485,7 @@ function AgentEditContent({
11039
10485
  },
11040
10486
  `patch:${candidate.path}`
11041
10487
  )),
11042
- diffFiles.map((candidate) => /* @__PURE__ */ jsx31(
10488
+ diffFiles.map((candidate) => /* @__PURE__ */ jsx30(
11043
10489
  AgentMonacoDiffViewer,
11044
10490
  {
11045
10491
  path: candidate.path,
@@ -11049,7 +10495,7 @@ function AgentEditContent({
11049
10495
  },
11050
10496
  `diff:${candidate.path}`
11051
10497
  )),
11052
- contentFiles.map((candidate) => /* @__PURE__ */ jsx31(
10498
+ contentFiles.map((candidate) => /* @__PURE__ */ jsx30(
11053
10499
  AgentCodeBlock,
11054
10500
  {
11055
10501
  path: candidate.path,
@@ -11064,7 +10510,7 @@ function AgentEditContent({
11064
10510
  }
11065
10511
 
11066
10512
  // shared/agentConversation/components/tool-renderers/AgentWebFetchContent.tsx
11067
- import { jsx as jsx32, jsxs as jsxs23 } from "react/jsx-runtime";
10513
+ import { jsx as jsx31, jsxs as jsxs23 } from "react/jsx-runtime";
11068
10514
  function AgentWebFetchContent({
11069
10515
  call,
11070
10516
  onLinkClick
@@ -11090,14 +10536,14 @@ ${web.url}` : web.url;
11090
10536
  return null;
11091
10537
  }
11092
10538
  return /* @__PURE__ */ jsxs23("div", { className: "workspace-agents-status-panel__detail-tool-body", children: [
11093
- web.url ? /* @__PURE__ */ jsx32(ToolSection, { title: translate("agentHost.agentTool.details.url"), children: /* @__PURE__ */ jsx32(
10539
+ web.url ? /* @__PURE__ */ jsx31(ToolSection, { title: translate("agentHost.agentTool.details.url"), children: /* @__PURE__ */ jsx31(
11094
10540
  ToolMarkdownBlock,
11095
10541
  {
11096
10542
  content: urlText ?? "",
11097
10543
  onLinkClick
11098
10544
  }
11099
10545
  ) }) : null,
11100
- visibleContent ? /* @__PURE__ */ jsx32(ToolSection, { title: translate("agentHost.agentTool.details.content"), children: /* @__PURE__ */ jsx32(
10546
+ visibleContent ? /* @__PURE__ */ jsx31(ToolSection, { title: translate("agentHost.agentTool.details.content"), children: /* @__PURE__ */ jsx31(
11101
10547
  ToolMarkdownBlock,
11102
10548
  {
11103
10549
  content: visibleContent,
@@ -11105,8 +10551,8 @@ ${web.url}` : web.url;
11105
10551
  collapsible: true
11106
10552
  }
11107
10553
  ) }) : null,
11108
- web.isTruncated ? /* @__PURE__ */ jsx32("div", { className: "text-[10px] italic text-[var(--text-tertiary)]", children: translate("agentHost.agentTool.details.contentTruncated") }) : null,
11109
- errorText ? /* @__PURE__ */ jsx32(ToolSection, { title: translate("agentHost.agentTool.details.error"), children: /* @__PURE__ */ jsx32(
10554
+ web.isTruncated ? /* @__PURE__ */ jsx31("div", { className: "text-[10px] italic text-[var(--text-tertiary)]", children: translate("agentHost.agentTool.details.contentTruncated") }) : null,
10555
+ errorText ? /* @__PURE__ */ jsx31(ToolSection, { title: translate("agentHost.agentTool.details.error"), children: /* @__PURE__ */ jsx31(
11110
10556
  ToolMarkdownBlock,
11111
10557
  {
11112
10558
  content: errorText,
@@ -11118,7 +10564,7 @@ ${web.url}` : web.url;
11118
10564
  }
11119
10565
 
11120
10566
  // shared/agentConversation/components/tool-renderers/AgentWebSearchContent.tsx
11121
- import { jsx as jsx33, jsxs as jsxs24 } from "react/jsx-runtime";
10567
+ import { jsx as jsx32, jsxs as jsxs24 } from "react/jsx-runtime";
11122
10568
  var MAX_SUMMARY_LENGTH = 3e3;
11123
10569
  function AgentWebSearchContent({
11124
10570
  call,
@@ -11143,8 +10589,8 @@ function AgentWebSearchContent({
11143
10589
  return null;
11144
10590
  }
11145
10591
  return /* @__PURE__ */ jsxs24("div", { className: "workspace-agents-status-panel__detail-tool-body", children: [
11146
- queryText ? /* @__PURE__ */ jsx33(ToolSection, { title: translate("agentHost.agentTool.details.query"), children: /* @__PURE__ */ jsx33(ToolMarkdownBlock, { content: queryText, onLinkClick }) }) : null,
11147
- 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(
10592
+ queryText ? /* @__PURE__ */ jsx32(ToolSection, { title: translate("agentHost.agentTool.details.query"), children: /* @__PURE__ */ jsx32(ToolMarkdownBlock, { content: queryText, onLinkClick }) }) : null,
10593
+ links.length > 0 ? /* @__PURE__ */ jsx32(ToolSection, { title: translate("agentHost.agentTool.details.results"), children: /* @__PURE__ */ jsx32("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(
11148
10594
  "a",
11149
10595
  {
11150
10596
  href: link.url,
@@ -11152,13 +10598,13 @@ function AgentWebSearchContent({
11152
10598
  rel: "noreferrer",
11153
10599
  className: `flex items-center gap-3 px-3 py-2 text-[11px] ${index > 0 ? "border-t border-[var(--line-2)]" : ""}`,
11154
10600
  children: [
11155
- /* @__PURE__ */ jsx33("span", { className: "w-[120px] shrink-0 truncate text-[11px] text-[var(--text-tertiary)]", children: link.domain }),
11156
- /* @__PURE__ */ jsx33("span", { className: "truncate text-[var(--text-primary)]", children: link.title })
10601
+ /* @__PURE__ */ jsx32("span", { className: "w-[120px] shrink-0 truncate text-[11px] text-[var(--text-tertiary)]", children: link.domain }),
10602
+ /* @__PURE__ */ jsx32("span", { className: "truncate text-[var(--text-primary)]", children: link.title })
11157
10603
  ]
11158
10604
  },
11159
10605
  `${link.url}:${link.title}`
11160
10606
  )) }) }) : null,
11161
- visibleSummary ? /* @__PURE__ */ jsx33(ToolSection, { title: translate("agentHost.agentTool.details.output"), children: /* @__PURE__ */ jsx33(
10607
+ visibleSummary ? /* @__PURE__ */ jsx32(ToolSection, { title: translate("agentHost.agentTool.details.output"), children: /* @__PURE__ */ jsx32(
11162
10608
  ToolMarkdownBlock,
11163
10609
  {
11164
10610
  content: visibleSummary,
@@ -11166,8 +10612,8 @@ function AgentWebSearchContent({
11166
10612
  collapsible: true
11167
10613
  }
11168
10614
  ) }) : null,
11169
- summary && summary.length > MAX_SUMMARY_LENGTH ? /* @__PURE__ */ jsx33("div", { className: "text-[10px] italic text-[var(--text-tertiary)]", children: translate("agentHost.agentTool.details.summaryTruncated") }) : null,
11170
- web.error ? /* @__PURE__ */ jsx33(ToolSection, { title: translate("agentHost.agentTool.details.error"), children: /* @__PURE__ */ jsx33(
10615
+ summary && summary.length > MAX_SUMMARY_LENGTH ? /* @__PURE__ */ jsx32("div", { className: "text-[10px] italic text-[var(--text-tertiary)]", children: translate("agentHost.agentTool.details.summaryTruncated") }) : null,
10616
+ web.error ? /* @__PURE__ */ jsx32(ToolSection, { title: translate("agentHost.agentTool.details.error"), children: /* @__PURE__ */ jsx32(
11171
10617
  ToolMarkdownBlock,
11172
10618
  {
11173
10619
  content: web.error,
@@ -11260,7 +10706,7 @@ function domainForUrl2(url) {
11260
10706
  }
11261
10707
 
11262
10708
  // shared/agentConversation/components/tool-renderers/AgentApprovalContent.tsx
11263
- import { jsx as jsx34 } from "react/jsx-runtime";
10709
+ import { jsx as jsx33 } from "react/jsx-runtime";
11264
10710
  function AgentApprovalContent({
11265
10711
  call,
11266
10712
  onLinkClick
@@ -11273,14 +10719,14 @@ function AgentApprovalContent({
11273
10719
  if (previewCall) {
11274
10720
  switch (previewCall.rendererKind) {
11275
10721
  case "web-fetch":
11276
- return /* @__PURE__ */ jsx34(AgentWebFetchContent, { call: previewCall, onLinkClick });
10722
+ return /* @__PURE__ */ jsx33(AgentWebFetchContent, { call: previewCall, onLinkClick });
11277
10723
  case "web-search":
11278
- return /* @__PURE__ */ jsx34(AgentWebSearchContent, { call: previewCall, onLinkClick });
10724
+ return /* @__PURE__ */ jsx33(AgentWebSearchContent, { call: previewCall, onLinkClick });
11279
10725
  default:
11280
- return /* @__PURE__ */ jsx34(AgentEditContent, { call: previewCall, onLinkClick });
10726
+ return /* @__PURE__ */ jsx33(AgentEditContent, { call: previewCall, onLinkClick });
11281
10727
  }
11282
10728
  }
11283
- return /* @__PURE__ */ jsx34("div", { className: "workspace-agents-status-panel__detail-tool-body", children: /* @__PURE__ */ jsx34(ToolMarkdownBlock, { content: call.summary }) });
10729
+ return /* @__PURE__ */ jsx33("div", { className: "workspace-agents-status-panel__detail-tool-body", children: /* @__PURE__ */ jsx33(ToolMarkdownBlock, { content: call.summary }) });
11284
10730
  }
11285
10731
  function approvalPreviewKindFor(normalizedKind) {
11286
10732
  switch (normalizedKind) {
@@ -11351,7 +10797,7 @@ function normalizeToolKind(value) {
11351
10797
  }
11352
10798
 
11353
10799
  // shared/agentConversation/components/tool-renderers/AgentAskUserQuestionContent.tsx
11354
- import { jsx as jsx35, jsxs as jsxs25 } from "react/jsx-runtime";
10800
+ import { jsx as jsx34, jsxs as jsxs25 } from "react/jsx-runtime";
11355
10801
  function AgentAskUserQuestionContent({
11356
10802
  call,
11357
10803
  onLinkClick
@@ -11363,7 +10809,7 @@ function AgentAskUserQuestionContent({
11363
10809
  return null;
11364
10810
  }
11365
10811
  return /* @__PURE__ */ jsxs25("div", { className: "workspace-agents-status-panel__detail-tool-body", children: [
11366
- /* @__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) => {
10812
+ /* @__PURE__ */ jsx34(ToolSection, { title: translate("agentHost.agentTool.details.questions"), children: /* @__PURE__ */ jsx34("div", { className: "workspace-agents-status-panel__detail-tool-stack", children: questions.map((question) => {
11367
10813
  const body = question.question || question.header || translate("agentHost.agentTool.details.questionFallback");
11368
10814
  const answer = formatAnswer(question.answer);
11369
10815
  const questionKey = question.id.trim() || `${question.header}:${question.question}:${question.options.map((option) => option.label).join("|")}`;
@@ -11372,22 +10818,22 @@ function AgentAskUserQuestionContent({
11372
10818
  {
11373
10819
  className: "workspace-agents-status-panel__detail-tool-stack-item",
11374
10820
  children: [
11375
- /* @__PURE__ */ jsx35("div", { className: "workspace-agents-status-panel__detail-tool-question", children: body }),
11376
- question.options.length > 0 ? /* @__PURE__ */ jsx35("div", { className: "workspace-agents-status-panel__detail-tool-stack", children: question.options.map((option) => /* @__PURE__ */ jsxs25(
10821
+ /* @__PURE__ */ jsx34("div", { className: "workspace-agents-status-panel__detail-tool-question", children: body }),
10822
+ question.options.length > 0 ? /* @__PURE__ */ jsx34("div", { className: "workspace-agents-status-panel__detail-tool-stack", children: question.options.map((option) => /* @__PURE__ */ jsxs25(
11377
10823
  "div",
11378
10824
  {
11379
10825
  className: "workspace-agents-status-panel__detail-tool-stack-item",
11380
10826
  children: [
11381
- /* @__PURE__ */ jsx35("div", { className: "workspace-agents-status-panel__detail-tool-summary", children: option.label }),
11382
- 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
10827
+ /* @__PURE__ */ jsx34("div", { className: "workspace-agents-status-panel__detail-tool-summary", children: option.label }),
10828
+ option.description ? /* @__PURE__ */ jsx34("div", { className: "workspace-agents-status-panel__detail-tool-answer workspace-agents-status-panel__detail-tool-answer--muted", children: option.description }) : null
11383
10829
  ]
11384
10830
  },
11385
10831
  `${questionKey}-option-${option.label}:${option.description}`
11386
10832
  )) }) : null,
11387
- answer ? /* @__PURE__ */ jsx35("div", { className: "workspace-agents-status-panel__detail-tool-answer", children: translate("agentHost.agentTool.details.answerPrefix", {
10833
+ answer ? /* @__PURE__ */ jsx34("div", { className: "workspace-agents-status-panel__detail-tool-answer", children: translate("agentHost.agentTool.details.answerPrefix", {
11388
10834
  answer
11389
10835
  }) }) : /* @__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: [
11390
- /* @__PURE__ */ jsx35(
10836
+ /* @__PURE__ */ jsx34(
11391
10837
  MessageSquareMoreIcon,
11392
10838
  {
11393
10839
  size: 14,
@@ -11403,7 +10849,7 @@ function AgentAskUserQuestionContent({
11403
10849
  questionKey
11404
10850
  );
11405
10851
  }) }) }),
11406
- outputText ? /* @__PURE__ */ jsx35(ToolSection, { title: translate("agentHost.agentTool.details.output"), children: /* @__PURE__ */ jsx35(
10852
+ outputText ? /* @__PURE__ */ jsx34(ToolSection, { title: translate("agentHost.agentTool.details.output"), children: /* @__PURE__ */ jsx34(
11407
10853
  ToolMarkdownBlock,
11408
10854
  {
11409
10855
  content: outputText,
@@ -11425,7 +10871,7 @@ function stringValue10(value) {
11425
10871
 
11426
10872
  // shared/agentConversation/components/tool-renderers/terminal/AgentTerminalBlock.tsx
11427
10873
  import { useMemo as useMemo4, useState as useState11 } from "react";
11428
- import { jsx as jsx36, jsxs as jsxs26 } from "react/jsx-runtime";
10874
+ import { jsx as jsx35, jsxs as jsxs26 } from "react/jsx-runtime";
11429
10875
  var MAX_OUTPUT_LINES = 200;
11430
10876
  function AgentTerminalBlock({
11431
10877
  command,
@@ -11447,7 +10893,7 @@ function AgentTerminalBlock({
11447
10893
  const visibleOutput = truncated ? outputLines.slice(0, MAX_OUTPUT_LINES).join("\n") : outputText;
11448
10894
  const failed = status === "failed";
11449
10895
  const hasOutput = Boolean(visibleOutput);
11450
- const disclosureButton = outputLines.length > MAX_OUTPUT_LINES ? /* @__PURE__ */ jsx36(
10896
+ const disclosureButton = outputLines.length > MAX_OUTPUT_LINES ? /* @__PURE__ */ jsx35(
11451
10897
  "button",
11452
10898
  {
11453
10899
  type: "button",
@@ -11463,8 +10909,8 @@ function AgentTerminalBlock({
11463
10909
  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"}`,
11464
10910
  "data-agent-terminal-command-row": "true",
11465
10911
  children: [
11466
- /* @__PURE__ */ jsx36("span", { className: "shrink-0 font-semibold text-[var(--tutti-purple)]", children: "$" }),
11467
- /* @__PURE__ */ jsx36(
10912
+ /* @__PURE__ */ jsx35("span", { className: "shrink-0 font-semibold text-[var(--tutti-purple)]", children: "$" }),
10913
+ /* @__PURE__ */ jsx35(
11468
10914
  "span",
11469
10915
  {
11470
10916
  className: "min-w-0 flex-1 whitespace-pre-wrap [overflow-wrap:anywhere]",
@@ -11481,7 +10927,7 @@ function AgentTerminalBlock({
11481
10927
  maxHeightClassName: "max-h-[160px]",
11482
10928
  viewportClassName: `px-3 py-2 text-[11px] leading-5 ${failed ? "text-[var(--state-danger)]" : "text-[var(--text-primary)]"}`,
11483
10929
  children: [
11484
- /* @__PURE__ */ jsx36("pre", { className: "m-0 min-w-0 max-w-full whitespace-pre-wrap [overflow-wrap:anywhere]", children: /* @__PURE__ */ jsx36("code", { children: visibleOutput }) }),
10930
+ /* @__PURE__ */ jsx35("pre", { className: "m-0 min-w-0 max-w-full whitespace-pre-wrap [overflow-wrap:anywhere]", children: /* @__PURE__ */ jsx35("code", { children: visibleOutput }) }),
11485
10931
  disclosureButton
11486
10932
  ]
11487
10933
  }
@@ -11490,14 +10936,14 @@ function AgentTerminalBlock({
11490
10936
  }
11491
10937
 
11492
10938
  // shared/agentConversation/components/tool-renderers/AgentBashContent.tsx
11493
- import { jsx as jsx37 } from "react/jsx-runtime";
10939
+ import { jsx as jsx36 } from "react/jsx-runtime";
11494
10940
  function AgentBashContent({
11495
10941
  call
11496
10942
  }) {
11497
10943
  "use memo";
11498
10944
  const commandData = getCommandRenderData(call);
11499
10945
  const fallbackErrorText = commandData.status === "failed" && !commandData.stdout && !commandData.stderr ? stringValue9(call.error?.message) : null;
11500
- return /* @__PURE__ */ jsx37("div", { className: "workspace-agents-status-panel__detail-tool-body workspace-agents-status-panel__detail-tool-body--plain", children: /* @__PURE__ */ jsx37(
10946
+ return /* @__PURE__ */ jsx36("div", { className: "workspace-agents-status-panel__detail-tool-body workspace-agents-status-panel__detail-tool-body--plain", children: /* @__PURE__ */ jsx36(
11501
10947
  AgentTerminalBlock,
11502
10948
  {
11503
10949
  command: commandData.command,
@@ -11511,9 +10957,9 @@ function AgentBashContent({
11511
10957
  }
11512
10958
 
11513
10959
  // shared/agentConversation/components/tool-renderers/AgentImageGenerationContent.tsx
11514
- import { useEffect as useEffect10, useState as useState12 } from "react";
10960
+ import { useEffect as useEffect9, useState as useState12 } from "react";
11515
10961
  import { resolveWorkspaceImageMimeType } from "@tutti-os/workspace-file-manager/services";
11516
- import { jsx as jsx38, jsxs as jsxs27 } from "react/jsx-runtime";
10962
+ import { jsx as jsx37, jsxs as jsxs27 } from "react/jsx-runtime";
11517
10963
  function AgentImageGenerationContent({
11518
10964
  call,
11519
10965
  onLinkClick
@@ -11524,7 +10970,7 @@ function AgentImageGenerationContent({
11524
10970
  return null;
11525
10971
  }
11526
10972
  return /* @__PURE__ */ jsxs27("div", { className: "workspace-agents-status-panel__detail-tool-body", children: [
11527
- image.prompt ? /* @__PURE__ */ jsx38(ToolSection, { title: translate("agentHost.agentTool.details.input"), children: /* @__PURE__ */ jsx38(
10973
+ image.prompt ? /* @__PURE__ */ jsx37(ToolSection, { title: translate("agentHost.agentTool.details.input"), children: /* @__PURE__ */ jsx37(
11528
10974
  ToolMarkdownBlock,
11529
10975
  {
11530
10976
  content: image.prompt,
@@ -11532,7 +10978,7 @@ function AgentImageGenerationContent({
11532
10978
  collapsible: true
11533
10979
  }
11534
10980
  ) }) : null,
11535
- image.imageUri ? /* @__PURE__ */ jsx38(
10981
+ image.imageUri ? /* @__PURE__ */ jsx37(
11536
10982
  ImageGenerationPreview,
11537
10983
  {
11538
10984
  uri: image.imageUri,
@@ -11552,7 +10998,7 @@ function ImageGenerationPreview({
11552
10998
  const [src, setSrc] = useState12(
11553
10999
  () => !localPath ? resolveImageGenerationPreviewSrc(uri) : null
11554
11000
  );
11555
- useEffect10(() => {
11001
+ useEffect9(() => {
11556
11002
  if (!localPath || !readWorkspaceImage) {
11557
11003
  setSrc(resolveImageGenerationPreviewSrc(uri));
11558
11004
  return;
@@ -11597,7 +11043,7 @@ function ImageGenerationPreview({
11597
11043
  if (!src) {
11598
11044
  return null;
11599
11045
  }
11600
- return /* @__PURE__ */ jsx38(ToolSection, { title: translate("agentHost.agentTool.details.output"), children: /* @__PURE__ */ jsx38(
11046
+ return /* @__PURE__ */ jsx37(ToolSection, { title: translate("agentHost.agentTool.details.output"), children: /* @__PURE__ */ jsx37(
11601
11047
  ZoomableImage,
11602
11048
  {
11603
11049
  alt: translate("agentHost.agentTool.details.imagePreviewAlt"),
@@ -11750,47 +11196,47 @@ function firstString5(...values) {
11750
11196
  }
11751
11197
 
11752
11198
  // shared/agentConversation/components/tool-renderers/mcp-renderers/agentAtlassianRenderers.tsx
11753
- import { jsx as jsx39, jsxs as jsxs28 } from "react/jsx-runtime";
11199
+ import { jsx as jsx38, jsxs as jsxs28 } from "react/jsx-runtime";
11754
11200
  function renderAtlassianMcp(payload) {
11755
11201
  const items = parsedItems(payload.structured);
11756
11202
  if (items.length > 0) {
11757
- 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(
11203
+ 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__ */ jsxs28(
11758
11204
  "div",
11759
11205
  {
11760
11206
  className: `px-3 py-2 ${index > 0 ? "border-t border-[var(--line-2)]" : ""}`,
11761
11207
  children: [
11762
- /* @__PURE__ */ jsx39("div", { className: "text-[11px] font-semibold text-[var(--text-primary)]", children: itemPrimaryText(item) ?? translate("agentHost.agentTool.details.mcpItem", {
11208
+ /* @__PURE__ */ jsx38("div", { className: "text-[11px] font-semibold text-[var(--text-primary)]", children: itemPrimaryText(item) ?? translate("agentHost.agentTool.details.mcpItem", {
11763
11209
  index: index + 1
11764
11210
  }) }),
11765
- itemSecondaryText(item) ? /* @__PURE__ */ jsx39("div", { className: "text-[11px] text-[var(--text-tertiary)]", children: itemSecondaryText(item) }) : null
11211
+ itemSecondaryText(item) ? /* @__PURE__ */ jsx38("div", { className: "text-[11px] text-[var(--text-tertiary)]", children: itemSecondaryText(item) }) : null
11766
11212
  ]
11767
11213
  },
11768
11214
  `${itemPrimaryText(item) ?? "item"}::${itemSecondaryText(item) ?? ""}`
11769
11215
  )) });
11770
11216
  }
11771
- return payload.text ? /* @__PURE__ */ jsx39(ToolMarkdownBlock, { content: payload.text, collapsible: true }) : null;
11217
+ return payload.text ? /* @__PURE__ */ jsx38(ToolMarkdownBlock, { content: payload.text, collapsible: true }) : null;
11772
11218
  }
11773
11219
 
11774
11220
  // shared/agentConversation/components/tool-renderers/mcp-renderers/agentContext7Renderers.tsx
11775
- import { jsx as jsx40, jsxs as jsxs29 } from "react/jsx-runtime";
11221
+ import { jsx as jsx39, jsxs as jsxs29 } from "react/jsx-runtime";
11776
11222
  function renderContext7Mcp(payload) {
11777
11223
  const items = parsedItems(payload.structured);
11778
11224
  if (items.length > 0) {
11779
- 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(
11225
+ 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__ */ jsxs29(
11780
11226
  "div",
11781
11227
  {
11782
11228
  className: `px-3 py-2 ${index > 0 ? "border-t border-[var(--line-2)]" : ""}`,
11783
11229
  children: [
11784
- /* @__PURE__ */ jsx40("div", { className: "text-[11px] font-semibold text-[var(--text-primary)]", children: itemPrimaryText(item) ?? translate("agentHost.agentTool.details.mcpDoc", {
11230
+ /* @__PURE__ */ jsx39("div", { className: "text-[11px] font-semibold text-[var(--text-primary)]", children: itemPrimaryText(item) ?? translate("agentHost.agentTool.details.mcpDoc", {
11785
11231
  index: index + 1
11786
11232
  }) }),
11787
- itemSecondaryText(item) ? /* @__PURE__ */ jsx40("div", { className: "text-[11px] text-[var(--text-tertiary)]", children: itemSecondaryText(item) }) : null
11233
+ itemSecondaryText(item) ? /* @__PURE__ */ jsx39("div", { className: "text-[11px] text-[var(--text-tertiary)]", children: itemSecondaryText(item) }) : null
11788
11234
  ]
11789
11235
  },
11790
11236
  `${itemPrimaryText(item) ?? "doc"}::${itemSecondaryText(item) ?? ""}`
11791
11237
  )) });
11792
11238
  }
11793
- return payload.text ? /* @__PURE__ */ jsx40(ToolMarkdownBlock, { content: payload.text, collapsible: true }) : null;
11239
+ return payload.text ? /* @__PURE__ */ jsx39(ToolMarkdownBlock, { content: payload.text, collapsible: true }) : null;
11794
11240
  }
11795
11241
 
11796
11242
  // shared/agentConversation/components/tool-renderers/mcp-renderers/agentMcpRendererRegistry.tsx
@@ -11806,7 +11252,7 @@ function renderRegisteredMcp(payload) {
11806
11252
  }
11807
11253
 
11808
11254
  // shared/agentConversation/components/tool-renderers/AgentMcpToolContent.tsx
11809
- import { jsx as jsx41, jsxs as jsxs30 } from "react/jsx-runtime";
11255
+ import { jsx as jsx40, jsxs as jsxs30 } from "react/jsx-runtime";
11810
11256
  function AgentMcpToolContent({
11811
11257
  call,
11812
11258
  onLinkClick
@@ -11819,7 +11265,7 @@ function AgentMcpToolContent({
11819
11265
  payload.inputSummary
11820
11266
  );
11821
11267
  return /* @__PURE__ */ jsxs30("div", { className: "workspace-agents-status-panel__detail-tool-body", children: [
11822
- payload.server || payload.tool ? /* @__PURE__ */ jsx41(ToolSection, { title: translate("agentHost.agentTool.details.mcp"), children: /* @__PURE__ */ jsx41(
11268
+ payload.server || payload.tool ? /* @__PURE__ */ jsx40(ToolSection, { title: translate("agentHost.agentTool.details.mcp"), children: /* @__PURE__ */ jsx40(
11823
11269
  ToolMarkdownBlock,
11824
11270
  {
11825
11271
  content: [
@@ -11829,14 +11275,14 @@ function AgentMcpToolContent({
11829
11275
  onLinkClick
11830
11276
  }
11831
11277
  ) }) : null,
11832
- payload.inputSummary ? /* @__PURE__ */ jsx41(ToolSection, { title: translate("agentHost.agentTool.details.input"), children: /* @__PURE__ */ jsx41(
11278
+ payload.inputSummary ? /* @__PURE__ */ jsx40(ToolSection, { title: translate("agentHost.agentTool.details.input"), children: /* @__PURE__ */ jsx40(
11833
11279
  ToolMarkdownBlock,
11834
11280
  {
11835
11281
  content: payload.inputSummary,
11836
11282
  onLinkClick
11837
11283
  }
11838
11284
  ) }) : null,
11839
- 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(
11285
+ specialized ? /* @__PURE__ */ jsx40(ToolSection, { title: translate("agentHost.agentTool.details.output"), children: specialized }) : visibleText ? /* @__PURE__ */ jsx40(ToolSection, { title: translate("agentHost.agentTool.details.output"), children: /* @__PURE__ */ jsx40(
11840
11286
  ToolMarkdownBlock,
11841
11287
  {
11842
11288
  content: visibleText,
@@ -11844,12 +11290,12 @@ function AgentMcpToolContent({
11844
11290
  collapsible: true
11845
11291
  }
11846
11292
  ) }) : null,
11847
- /* @__PURE__ */ jsx41(RawPayloadSection, { payload: call.payload ?? payload.structured })
11293
+ /* @__PURE__ */ jsx40(RawPayloadSection, { payload: call.payload ?? payload.structured })
11848
11294
  ] });
11849
11295
  }
11850
11296
 
11851
11297
  // shared/agentConversation/components/tool-renderers/AgentPlanModeContent.tsx
11852
- import { jsx as jsx42 } from "react/jsx-runtime";
11298
+ import { jsx as jsx41 } from "react/jsx-runtime";
11853
11299
  function AgentPlanModeContent({
11854
11300
  call,
11855
11301
  onLinkClick
@@ -11860,7 +11306,7 @@ function AgentPlanModeContent({
11860
11306
  if (!planMode.enterText) {
11861
11307
  return null;
11862
11308
  }
11863
- return /* @__PURE__ */ jsx42("div", { className: "rounded-[8px] bg-[var(--transparency-block)] px-3 py-2 text-[11px] text-[var(--text-secondary)]", children: /* @__PURE__ */ jsx42(
11309
+ return /* @__PURE__ */ jsx41("div", { className: "rounded-[8px] bg-[var(--transparency-block)] px-3 py-2 text-[11px] text-[var(--text-secondary)]", children: /* @__PURE__ */ jsx41(
11864
11310
  ToolMarkdownBlock,
11865
11311
  {
11866
11312
  content: planMode.enterText,
@@ -11871,18 +11317,18 @@ function AgentPlanModeContent({
11871
11317
  if (!planMode.plan) {
11872
11318
  return null;
11873
11319
  }
11874
- return /* @__PURE__ */ jsx42(
11320
+ return /* @__PURE__ */ jsx41(
11875
11321
  AgentPlanCard,
11876
11322
  {
11877
11323
  title: planMode.fileName ?? void 0,
11878
11324
  copyText: planMode.plan,
11879
- children: /* @__PURE__ */ jsx42(ToolMarkdownBlock, { content: planMode.plan, onLinkClick })
11325
+ children: /* @__PURE__ */ jsx41(ToolMarkdownBlock, { content: planMode.plan, onLinkClick })
11880
11326
  }
11881
11327
  );
11882
11328
  }
11883
11329
 
11884
11330
  // shared/agentConversation/components/tool-renderers/AgentSearchContent.tsx
11885
- import { jsx as jsx43, jsxs as jsxs31 } from "react/jsx-runtime";
11331
+ import { jsx as jsx42, jsxs as jsxs31 } from "react/jsx-runtime";
11886
11332
  function AgentSearchContent({
11887
11333
  call,
11888
11334
  onLinkClick
@@ -11899,8 +11345,8 @@ ${translate("agentHost.agentTool.details.scope")}: ${search.scope}`.trim() : sea
11899
11345
  "line"
11900
11346
  );
11901
11347
  return /* @__PURE__ */ jsxs31("div", { className: "workspace-agents-status-panel__detail-tool-body", children: [
11902
- queryText ? /* @__PURE__ */ jsx43(ToolSection, { title: translate("agentHost.agentTool.details.query"), children: /* @__PURE__ */ jsx43(ToolMarkdownBlock, { content: queryText, onLinkClick }) }) : null,
11903
- (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(
11348
+ queryText ? /* @__PURE__ */ jsx42(ToolSection, { title: translate("agentHost.agentTool.details.query"), children: /* @__PURE__ */ jsx42(ToolMarkdownBlock, { content: queryText, onLinkClick }) }) : null,
11349
+ (search.mode === "files_with_matches" || search.mode === "list_files") && search.files.length > 0 ? /* @__PURE__ */ jsx42(ToolSection, { title: translate("agentHost.agentTool.details.results"), children: /* @__PURE__ */ jsx42("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__ */ jsx42(
11904
11350
  "div",
11905
11351
  {
11906
11352
  className: `px-3 py-2 font-[var(--tsh-font-mono)] text-[11px] text-[var(--text-primary)] ${isFirst ? "" : "border-t border-[var(--line-2)]"}`,
@@ -11908,7 +11354,7 @@ ${translate("agentHost.agentTool.details.scope")}: ${search.scope}`.trim() : sea
11908
11354
  },
11909
11355
  key
11910
11356
  )) }) }) : null,
11911
- 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(
11357
+ search.mode === "content" && visibleOutput ? /* @__PURE__ */ jsx42(ToolSection, { title: translate("agentHost.agentTool.details.output"), children: /* @__PURE__ */ jsx42("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__ */ jsx42(
11912
11358
  "div",
11913
11359
  {
11914
11360
  className: line.includes(":") ? "text-[var(--text-primary)]" : "text-[var(--text-tertiary)]",
@@ -11916,9 +11362,9 @@ ${translate("agentHost.agentTool.details.scope")}: ${search.scope}`.trim() : sea
11916
11362
  },
11917
11363
  key
11918
11364
  )) }) }) : null,
11919
- 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,
11920
- (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,
11921
- search.mode === "unknown" && visibleOutput ? /* @__PURE__ */ jsx43(ToolSection, { title: translate("agentHost.agentTool.details.output"), children: /* @__PURE__ */ jsx43(
11365
+ search.mode === "count" ? /* @__PURE__ */ jsx42(ToolSection, { title: translate("agentHost.agentTool.details.results"), children: /* @__PURE__ */ jsx42("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,
11366
+ (search.mode === "files_with_matches" || search.mode === "list_files" || search.mode === "count") && search.files.length === 0 && !visibleOutput && !search.error ? /* @__PURE__ */ jsx42(ToolSection, { title: translate("agentHost.agentTool.details.results"), children: /* @__PURE__ */ jsx42("div", { className: "text-[11px] italic text-[var(--text-tertiary)]", children: translate("agentHost.agentTool.details.noMatches") }) }) : null,
11367
+ search.mode === "unknown" && visibleOutput ? /* @__PURE__ */ jsx42(ToolSection, { title: translate("agentHost.agentTool.details.output"), children: /* @__PURE__ */ jsx42(
11922
11368
  ToolMarkdownBlock,
11923
11369
  {
11924
11370
  content: visibleOutput,
@@ -11926,7 +11372,7 @@ ${translate("agentHost.agentTool.details.scope")}: ${search.scope}`.trim() : sea
11926
11372
  collapsible: true
11927
11373
  }
11928
11374
  ) }) : null,
11929
- search.error ? /* @__PURE__ */ jsx43(ToolSection, { title: translate("agentHost.agentTool.details.error"), children: /* @__PURE__ */ jsx43(
11375
+ search.error ? /* @__PURE__ */ jsx42(ToolSection, { title: translate("agentHost.agentTool.details.error"), children: /* @__PURE__ */ jsx42(
11930
11376
  ToolMarkdownBlock,
11931
11377
  {
11932
11378
  content: search.error,
@@ -11954,7 +11400,7 @@ function withStableOccurrenceKeys(values, prefix) {
11954
11400
  }
11955
11401
 
11956
11402
  // shared/agentConversation/components/tool-renderers/AgentSkillContent.tsx
11957
- import { jsx as jsx44, jsxs as jsxs32 } from "react/jsx-runtime";
11403
+ import { jsx as jsx43, jsxs as jsxs32 } from "react/jsx-runtime";
11958
11404
  function AgentSkillContent({
11959
11405
  call,
11960
11406
  onLinkClick
@@ -11965,7 +11411,7 @@ function AgentSkillContent({
11965
11411
  return null;
11966
11412
  }
11967
11413
  return /* @__PURE__ */ jsxs32("div", { className: "workspace-agents-status-panel__detail-tool-body", children: [
11968
- skill.skill ? /* @__PURE__ */ jsx44(ToolSection, { title: translate("agentHost.agentTool.details.skill"), children: /* @__PURE__ */ jsx44(
11414
+ skill.skill ? /* @__PURE__ */ jsx43(ToolSection, { title: translate("agentHost.agentTool.details.skill"), children: /* @__PURE__ */ jsx43(
11969
11415
  ToolMarkdownBlock,
11970
11416
  {
11971
11417
  content: skill.args ? `${skill.skill}
@@ -11974,19 +11420,19 @@ ${skill.args}` : skill.skill,
11974
11420
  onLinkClick
11975
11421
  }
11976
11422
  ) }) : null,
11977
- skill.statusText ? /* @__PURE__ */ jsx44("div", { className: "text-[10px] text-[var(--text-tertiary)]", children: skill.statusText }) : null
11423
+ skill.statusText ? /* @__PURE__ */ jsx43("div", { className: "text-[10px] text-[var(--text-tertiary)]", children: skill.statusText }) : null
11978
11424
  ] });
11979
11425
  }
11980
11426
 
11981
11427
  // shared/agentConversation/components/AgentTaskStepList.tsx
11982
11428
  import { useState as useState13 } from "react";
11983
- import { jsx as jsx45, jsxs as jsxs33 } from "react/jsx-runtime";
11429
+ import { jsx as jsx44, jsxs as jsxs33 } from "react/jsx-runtime";
11984
11430
  function AgentTaskStepList({
11985
11431
  steps,
11986
11432
  onLinkClick
11987
11433
  }) {
11988
11434
  "use memo";
11989
- return /* @__PURE__ */ jsx45("div", { className: "workspace-agents-status-panel__detail-tool-stack", children: steps.map((step) => /* @__PURE__ */ jsx45(AgentTaskStepRow, { step, onLinkClick }, step.id)) });
11435
+ return /* @__PURE__ */ jsx44("div", { className: "workspace-agents-status-panel__detail-tool-stack", children: steps.map((step) => /* @__PURE__ */ jsx44(AgentTaskStepRow, { step, onLinkClick }, step.id)) });
11990
11436
  }
11991
11437
  function AgentTaskStepRow({
11992
11438
  step,
@@ -11998,7 +11444,7 @@ function AgentTaskStepRow({
11998
11444
  const hasDetail = hasAgentToolContent(call);
11999
11445
  const ariaLabel = taskStepAriaLabel(call);
12000
11446
  return /* @__PURE__ */ jsxs33("div", { className: "workspace-agents-status-panel__detail-tool-row", children: [
12001
- hasDetail ? /* @__PURE__ */ jsx45(
11447
+ hasDetail ? /* @__PURE__ */ jsx44(
12002
11448
  "button",
12003
11449
  {
12004
11450
  type: "button",
@@ -12006,11 +11452,11 @@ function AgentTaskStepRow({
12006
11452
  "aria-expanded": expanded,
12007
11453
  "aria-label": ariaLabel,
12008
11454
  onClick: () => setExpanded((value) => !value),
12009
- children: /* @__PURE__ */ jsx45(AgentToolCallHeader, { call, expanded, hasDetail: true })
11455
+ children: /* @__PURE__ */ jsx44(AgentToolCallHeader, { call, expanded, hasDetail: true })
12010
11456
  }
12011
- ) : /* @__PURE__ */ jsx45("div", { className: "workspace-agents-status-panel__detail-tool-row-head", children: /* @__PURE__ */ jsx45(AgentToolCallHeader, { call, expanded: false, hasDetail: false }) }),
12012
- !hasDetail && step.summary ? /* @__PURE__ */ jsx45("div", { className: "workspace-agents-status-panel__detail-tool-summary", children: step.summary }) : null,
12013
- hasDetail && expanded ? /* @__PURE__ */ jsx45(AgentExpandedToolContent, { call, onLinkClick }) : null
11457
+ ) : /* @__PURE__ */ jsx44("div", { className: "workspace-agents-status-panel__detail-tool-row-head", children: /* @__PURE__ */ jsx44(AgentToolCallHeader, { call, expanded: false, hasDetail: false }) }),
11458
+ !hasDetail && step.summary ? /* @__PURE__ */ jsx44("div", { className: "workspace-agents-status-panel__detail-tool-summary", children: step.summary }) : null,
11459
+ hasDetail && expanded ? /* @__PURE__ */ jsx44(AgentExpandedToolContent, { call, onLinkClick }) : null
12014
11460
  ] });
12015
11461
  }
12016
11462
  function taskStepAriaLabel(call) {
@@ -12041,7 +11487,7 @@ function projectTaskStepCall(step) {
12041
11487
  }
12042
11488
 
12043
11489
  // shared/agentConversation/components/tool-renderers/AgentTaskContent.tsx
12044
- import { jsx as jsx46, jsxs as jsxs34 } from "react/jsx-runtime";
11490
+ import { jsx as jsx45, jsxs as jsxs34 } from "react/jsx-runtime";
12045
11491
  function AgentTaskContent({
12046
11492
  call,
12047
11493
  onLinkClick
@@ -12051,7 +11497,7 @@ function AgentTaskContent({
12051
11497
  const failureMarkdown = task.errorMarkdown ?? (isFailedTaskStatus(call.statusKind, task.status, call.status) ? translate("agentHost.agentTool.details.missingFailureDetails") : null);
12052
11498
  return /* @__PURE__ */ jsxs34("div", { className: "workspace-agents-status-panel__detail-tool-body", children: [
12053
11499
  /* @__PURE__ */ jsxs34("div", { className: "workspace-agents-status-panel__detail-tool-answer", children: [
12054
- /* @__PURE__ */ jsx46("strong", { children: task.title }),
11500
+ /* @__PURE__ */ jsx45("strong", { children: task.title }),
12055
11501
  task.status ? /* @__PURE__ */ jsxs34("span", { className: "workspace-agents-status-panel__detail-tool-answer--muted", children: [
12056
11502
  " \xB7 ",
12057
11503
  task.status
@@ -12061,17 +11507,17 @@ function AgentTaskContent({
12061
11507
  task.durationText
12062
11508
  ] }) : null
12063
11509
  ] }),
12064
- 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,
12065
- task.prompt ? /* @__PURE__ */ jsx46(ToolSection, { title: translate("agentHost.agentTool.details.prompt"), children: /* @__PURE__ */ jsx46(ToolMarkdownBlock, { content: task.prompt, onLinkClick }) }) : null,
12066
- task.childSessionId ? /* @__PURE__ */ jsx46(
11510
+ task.status === "running" && task.latestStepSummary ? /* @__PURE__ */ jsx45(ToolSection, { title: translate("agentHost.agentTool.details.summary"), children: /* @__PURE__ */ jsx45("div", { className: "workspace-agents-status-panel__detail-tool-answer workspace-agents-status-panel__detail-tool-answer--muted", children: task.latestStepSummary }) }) : null,
11511
+ task.prompt ? /* @__PURE__ */ jsx45(ToolSection, { title: translate("agentHost.agentTool.details.prompt"), children: /* @__PURE__ */ jsx45(ToolMarkdownBlock, { content: task.prompt, onLinkClick }) }) : null,
11512
+ task.childSessionId ? /* @__PURE__ */ jsx45(
12067
11513
  ToolSection,
12068
11514
  {
12069
11515
  title: translate("agentHost.agentTool.details.delegateSession"),
12070
- children: /* @__PURE__ */ jsx46("div", { className: "workspace-agents-status-panel__detail-tool-answer", children: task.childSessionId })
11516
+ children: /* @__PURE__ */ jsx45("div", { className: "workspace-agents-status-panel__detail-tool-answer", children: task.childSessionId })
12071
11517
  }
12072
11518
  ) : null,
12073
- task.steps.length > 0 ? /* @__PURE__ */ jsx46(ToolSection, { title: translate("agentHost.agentTool.details.steps"), children: /* @__PURE__ */ jsx46(AgentTaskStepList, { steps: task.steps, onLinkClick }) }) : null,
12074
- task.resultMarkdown ? /* @__PURE__ */ jsx46(ToolSection, { title: translate("agentHost.agentTool.details.output"), children: /* @__PURE__ */ jsx46(
11519
+ task.steps.length > 0 ? /* @__PURE__ */ jsx45(ToolSection, { title: translate("agentHost.agentTool.details.steps"), children: /* @__PURE__ */ jsx45(AgentTaskStepList, { steps: task.steps, onLinkClick }) }) : null,
11520
+ task.resultMarkdown ? /* @__PURE__ */ jsx45(ToolSection, { title: translate("agentHost.agentTool.details.output"), children: /* @__PURE__ */ jsx45(
12075
11521
  ToolMarkdownBlock,
12076
11522
  {
12077
11523
  content: task.resultMarkdown,
@@ -12079,7 +11525,7 @@ function AgentTaskContent({
12079
11525
  collapsible: true
12080
11526
  }
12081
11527
  ) }) : null,
12082
- failureMarkdown ? /* @__PURE__ */ jsx46(ToolSection, { title: translate("agentHost.agentTool.details.error"), children: /* @__PURE__ */ jsx46(
11528
+ failureMarkdown ? /* @__PURE__ */ jsx45(ToolSection, { title: translate("agentHost.agentTool.details.error"), children: /* @__PURE__ */ jsx45(
12083
11529
  ToolMarkdownBlock,
12084
11530
  {
12085
11531
  content: failureMarkdown,
@@ -12098,7 +11544,7 @@ function isFailedTaskStatus(...values) {
12098
11544
 
12099
11545
  // shared/agentConversation/components/tool-renderers/AgentTodoWriteContent.tsx
12100
11546
  import { CheckCircle2, Circle } from "lucide-react";
12101
- import { jsx as jsx47, jsxs as jsxs35 } from "react/jsx-runtime";
11547
+ import { jsx as jsx46, jsxs as jsxs35 } from "react/jsx-runtime";
12102
11548
  function AgentTodoWriteContent({
12103
11549
  call
12104
11550
  }) {
@@ -12107,13 +11553,13 @@ function AgentTodoWriteContent({
12107
11553
  if (todos.length === 0) {
12108
11554
  return null;
12109
11555
  }
12110
- 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(
11556
+ return /* @__PURE__ */ jsx46("div", { className: "workspace-agents-status-panel__detail-tool-body", children: /* @__PURE__ */ jsx46(ToolSection, { title: translate("agentHost.agentTool.details.todos"), children: /* @__PURE__ */ jsx46("div", { className: "space-y-1", children: todos.map((todo) => /* @__PURE__ */ jsxs35(
12111
11557
  "div",
12112
11558
  {
12113
11559
  className: "flex items-start gap-2 rounded-[8px] px-1 py-0.5 text-[11px]",
12114
11560
  children: [
12115
- /* @__PURE__ */ jsx47("div", { className: "mt-[1px] shrink-0", children: iconForStatus(todo.status) }),
12116
- /* @__PURE__ */ jsx47("span", { className: contentClassName(todo.status), children: todo.content })
11561
+ /* @__PURE__ */ jsx46("div", { className: "mt-[1px] shrink-0", children: iconForStatus(todo.status) }),
11562
+ /* @__PURE__ */ jsx46("span", { className: contentClassName(todo.status), children: todo.content })
12117
11563
  ]
12118
11564
  },
12119
11565
  `${todo.content}:${todo.status ?? "pending"}`
@@ -12122,7 +11568,7 @@ function AgentTodoWriteContent({
12122
11568
  function iconForStatus(status) {
12123
11569
  switch (status) {
12124
11570
  case "completed":
12125
- return /* @__PURE__ */ jsx47(
11571
+ return /* @__PURE__ */ jsx46(
12126
11572
  CheckCircle2,
12127
11573
  {
12128
11574
  size: 14,
@@ -12131,7 +11577,7 @@ function iconForStatus(status) {
12131
11577
  }
12132
11578
  );
12133
11579
  case "in_progress":
12134
- return /* @__PURE__ */ jsx47(
11580
+ return /* @__PURE__ */ jsx46(
12135
11581
  AtomIcon,
12136
11582
  {
12137
11583
  size: 14,
@@ -12141,7 +11587,7 @@ function iconForStatus(status) {
12141
11587
  }
12142
11588
  );
12143
11589
  default:
12144
- return /* @__PURE__ */ jsx47(
11590
+ return /* @__PURE__ */ jsx46(
12145
11591
  Circle,
12146
11592
  {
12147
11593
  size: 14,
@@ -12163,7 +11609,7 @@ function contentClassName(status) {
12163
11609
  }
12164
11610
 
12165
11611
  // shared/agentConversation/components/tool-renderers/AgentToolSearchContent.tsx
12166
- import { jsx as jsx48, jsxs as jsxs36 } from "react/jsx-runtime";
11612
+ import { jsx as jsx47, jsxs as jsxs36 } from "react/jsx-runtime";
12167
11613
  function AgentToolSearchContent({
12168
11614
  call
12169
11615
  }) {
@@ -12173,7 +11619,7 @@ function AgentToolSearchContent({
12173
11619
  return null;
12174
11620
  }
12175
11621
  return /* @__PURE__ */ jsxs36("div", { className: "workspace-agents-status-panel__detail-tool-body", children: [
12176
- toolSearch.displayQuery ? /* @__PURE__ */ jsx48(ToolSection, { title: translate("agentHost.agentTool.details.query"), children: /* @__PURE__ */ jsx48(
11622
+ toolSearch.displayQuery ? /* @__PURE__ */ jsx47(ToolSection, { title: translate("agentHost.agentTool.details.query"), children: /* @__PURE__ */ jsx47(
12177
11623
  ToolMarkdownBlock,
12178
11624
  {
12179
11625
  content: `${toolSearch.displayQuery}
@@ -12181,7 +11627,7 @@ function AgentToolSearchContent({
12181
11627
  ${toolSearch.mode}`
12182
11628
  }
12183
11629
  ) }) : null,
12184
- 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(
11630
+ toolSearch.matches.length > 0 ? /* @__PURE__ */ jsx47(ToolSection, { title: translate("agentHost.agentTool.details.results"), children: /* @__PURE__ */ jsx47("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__ */ jsx47(
12185
11631
  "div",
12186
11632
  {
12187
11633
  className: `px-3 py-2 font-[var(--tsh-font-mono)] text-[11px] text-[var(--text-primary)] ${index > 0 ? "border-t border-[var(--line-2)]" : ""}`,
@@ -12189,8 +11635,8 @@ ${toolSearch.mode}`
12189
11635
  },
12190
11636
  match
12191
11637
  )) }) }) : null,
12192
- toolSearch.matches.length === 0 ? /* @__PURE__ */ jsx48("div", { className: "text-[11px] italic text-[var(--text-tertiary)]", children: translate("agentHost.agentTool.details.noMatchingTools") }) : null,
12193
- typeof toolSearch.totalDeferredTools === "number" ? /* @__PURE__ */ jsx48("div", { className: "text-[10px] text-[var(--text-tertiary)]", children: translate("agentHost.agentTool.details.loadedAvailable", {
11638
+ toolSearch.matches.length === 0 ? /* @__PURE__ */ jsx47("div", { className: "text-[11px] italic text-[var(--text-tertiary)]", children: translate("agentHost.agentTool.details.noMatchingTools") }) : null,
11639
+ typeof toolSearch.totalDeferredTools === "number" ? /* @__PURE__ */ jsx47("div", { className: "text-[10px] text-[var(--text-tertiary)]", children: translate("agentHost.agentTool.details.loadedAvailable", {
12194
11640
  loaded: toolSearch.matches.length,
12195
11641
  available: toolSearch.totalDeferredTools
12196
11642
  }) }) : null
@@ -12198,7 +11644,7 @@ ${toolSearch.mode}`
12198
11644
  }
12199
11645
 
12200
11646
  // shared/agentConversation/components/tool-renderers/AgentWriteContent.tsx
12201
- import { jsx as jsx49, jsxs as jsxs37 } from "react/jsx-runtime";
11647
+ import { jsx as jsx48, jsxs as jsxs37 } from "react/jsx-runtime";
12202
11648
  function AgentWriteContent({
12203
11649
  call,
12204
11650
  onLinkClick
@@ -12219,8 +11665,8 @@ function AgentWriteContent({
12219
11665
  return null;
12220
11666
  }
12221
11667
  return /* @__PURE__ */ jsxs37("div", { className: "workspace-agents-status-panel__detail-tool-body workspace-agents-status-panel__detail-tool-body--flat", children: [
12222
- path && files.length === 0 ? /* @__PURE__ */ jsx49(ToolMarkdownBlock, { content: path, onLinkClick }) : null,
12223
- patchFiles.map((candidate) => /* @__PURE__ */ jsx49(
11668
+ path && files.length === 0 ? /* @__PURE__ */ jsx48(ToolMarkdownBlock, { content: path, onLinkClick }) : null,
11669
+ patchFiles.map((candidate) => /* @__PURE__ */ jsx48(
12224
11670
  AgentUnifiedPatchViewer,
12225
11671
  {
12226
11672
  path: candidate.path,
@@ -12231,7 +11677,7 @@ function AgentWriteContent({
12231
11677
  },
12232
11678
  `patch:${candidate.path}`
12233
11679
  )),
12234
- contentFiles.map((candidate) => /* @__PURE__ */ jsx49(
11680
+ contentFiles.map((candidate) => /* @__PURE__ */ jsx48(
12235
11681
  AgentCodeBlock,
12236
11682
  {
12237
11683
  path: candidate.path,
@@ -12242,7 +11688,7 @@ function AgentWriteContent({
12242
11688
  },
12243
11689
  `content:${candidate.path}`
12244
11690
  )),
12245
- fallbackContent ? /* @__PURE__ */ jsx49(
11691
+ fallbackContent ? /* @__PURE__ */ jsx48(
12246
11692
  AgentCodeBlock,
12247
11693
  {
12248
11694
  path,
@@ -12256,7 +11702,7 @@ function AgentWriteContent({
12256
11702
  }
12257
11703
 
12258
11704
  // shared/agentConversation/components/tool-renderers/AgentExpandedToolContent.tsx
12259
- import { jsx as jsx50 } from "react/jsx-runtime";
11705
+ import { jsx as jsx49 } from "react/jsx-runtime";
12260
11706
  function AgentExpandedToolContent({
12261
11707
  call,
12262
11708
  onLinkClick,
@@ -12267,65 +11713,65 @@ function AgentExpandedToolContent({
12267
11713
  let content;
12268
11714
  switch (call.rendererKind) {
12269
11715
  case "approval":
12270
- content = /* @__PURE__ */ jsx50(AgentApprovalContent, { ...props });
11716
+ content = /* @__PURE__ */ jsx49(AgentApprovalContent, { ...props });
12271
11717
  break;
12272
11718
  case "plan-enter":
12273
11719
  case "plan-exit":
12274
- content = /* @__PURE__ */ jsx50(AgentPlanModeContent, { ...props });
11720
+ content = /* @__PURE__ */ jsx49(AgentPlanModeContent, { ...props });
12275
11721
  break;
12276
11722
  case "ask-user":
12277
- content = /* @__PURE__ */ jsx50(AgentAskUserQuestionContent, { ...props });
11723
+ content = /* @__PURE__ */ jsx49(AgentAskUserQuestionContent, { ...props });
12278
11724
  break;
12279
11725
  case "task":
12280
- content = /* @__PURE__ */ jsx50(AgentTaskContent, { ...props });
11726
+ content = /* @__PURE__ */ jsx49(AgentTaskContent, { ...props });
12281
11727
  break;
12282
11728
  case "read":
12283
- content = /* @__PURE__ */ jsx50(AgentReadContent, { ...props });
11729
+ content = /* @__PURE__ */ jsx49(AgentReadContent, { ...props });
12284
11730
  break;
12285
11731
  case "write":
12286
- content = /* @__PURE__ */ jsx50(AgentWriteContent, { ...props });
11732
+ content = /* @__PURE__ */ jsx49(AgentWriteContent, { ...props });
12287
11733
  break;
12288
11734
  case "edit":
12289
- content = /* @__PURE__ */ jsx50(AgentEditContent, { ...props });
11735
+ content = /* @__PURE__ */ jsx49(AgentEditContent, { ...props });
12290
11736
  break;
12291
11737
  case "bash":
12292
- content = /* @__PURE__ */ jsx50(AgentBashContent, { ...props });
11738
+ content = /* @__PURE__ */ jsx49(AgentBashContent, { ...props });
12293
11739
  break;
12294
11740
  case "search":
12295
- content = /* @__PURE__ */ jsx50(AgentSearchContent, { ...props });
11741
+ content = /* @__PURE__ */ jsx49(AgentSearchContent, { ...props });
12296
11742
  break;
12297
11743
  case "web-search":
12298
- content = /* @__PURE__ */ jsx50(AgentWebSearchContent, { ...props });
11744
+ content = /* @__PURE__ */ jsx49(AgentWebSearchContent, { ...props });
12299
11745
  break;
12300
11746
  case "web-fetch":
12301
- content = /* @__PURE__ */ jsx50(AgentWebFetchContent, { ...props });
11747
+ content = /* @__PURE__ */ jsx49(AgentWebFetchContent, { ...props });
12302
11748
  break;
12303
11749
  case "image-generation":
12304
- content = /* @__PURE__ */ jsx50(AgentImageGenerationContent, { ...props });
11750
+ content = /* @__PURE__ */ jsx49(AgentImageGenerationContent, { ...props });
12305
11751
  break;
12306
11752
  case "todo-write":
12307
- content = /* @__PURE__ */ jsx50(AgentTodoWriteContent, { ...props });
11753
+ content = /* @__PURE__ */ jsx49(AgentTodoWriteContent, { ...props });
12308
11754
  break;
12309
11755
  case "tool-search":
12310
- content = /* @__PURE__ */ jsx50(AgentToolSearchContent, { ...props });
11756
+ content = /* @__PURE__ */ jsx49(AgentToolSearchContent, { ...props });
12311
11757
  break;
12312
11758
  case "skill":
12313
- content = /* @__PURE__ */ jsx50(AgentSkillContent, { ...props });
11759
+ content = /* @__PURE__ */ jsx49(AgentSkillContent, { ...props });
12314
11760
  break;
12315
11761
  case "mcp":
12316
- content = /* @__PURE__ */ jsx50(AgentMcpToolContent, { ...props });
11762
+ content = /* @__PURE__ */ jsx49(AgentMcpToolContent, { ...props });
12317
11763
  break;
12318
11764
  default:
12319
- content = /* @__PURE__ */ jsx50(AgentDefaultToolContent, { ...props });
11765
+ content = /* @__PURE__ */ jsx49(AgentDefaultToolContent, { ...props });
12320
11766
  }
12321
11767
  if (!content) {
12322
11768
  return null;
12323
11769
  }
12324
- return /* @__PURE__ */ jsx50(AgentToolPreviewModeProvider, { previewMode, children: content });
11770
+ return /* @__PURE__ */ jsx49(AgentToolPreviewModeProvider, { previewMode, children: content });
12325
11771
  }
12326
11772
 
12327
11773
  // shared/agentConversation/components/AgentAskUserQuestionCard.tsx
12328
- import { jsx as jsx51, jsxs as jsxs38 } from "react/jsx-runtime";
11774
+ import { jsx as jsx50, jsxs as jsxs38 } from "react/jsx-runtime";
12329
11775
  function AgentAskUserQuestionCard({
12330
11776
  call,
12331
11777
  onLinkClick,
@@ -12339,18 +11785,18 @@ function AgentAskUserQuestionCard({
12339
11785
  const pinned = nonCollapsible ?? waitingInput;
12340
11786
  const [expanded, setExpanded] = useState14(defaultExpanded ?? waitingInput);
12341
11787
  return /* @__PURE__ */ jsxs38("div", { className: "workspace-agents-status-panel__detail-tool-row workspace-agents-status-panel__detail-tool-row--ask-user", children: [
12342
- hasDetail && !pinned ? /* @__PURE__ */ jsx51(
11788
+ hasDetail && !pinned ? /* @__PURE__ */ jsx50(
12343
11789
  "button",
12344
11790
  {
12345
11791
  type: "button",
12346
11792
  className: "workspace-agents-status-panel__detail-tool-row-head workspace-agents-status-panel__detail-tool-row-head--button",
12347
11793
  "aria-expanded": expanded,
12348
11794
  onClick: () => setExpanded((value) => !value),
12349
- children: /* @__PURE__ */ jsx51(AgentToolCallHeader, { call, expanded, hasDetail: true })
11795
+ children: /* @__PURE__ */ jsx50(AgentToolCallHeader, { call, expanded, hasDetail: true })
12350
11796
  }
12351
- ) : /* @__PURE__ */ jsx51("div", { className: "workspace-agents-status-panel__detail-tool-row-head", children: /* @__PURE__ */ jsx51(AgentToolCallHeader, { call, expanded: false, hasDetail: false }) }),
12352
- !hasDetail && call.summary ? /* @__PURE__ */ jsx51("div", { className: "workspace-agents-status-panel__detail-tool-summary", children: call.summary }) : null,
12353
- hasDetail && pinned ? /* @__PURE__ */ jsx51(
11797
+ ) : /* @__PURE__ */ jsx50("div", { className: "workspace-agents-status-panel__detail-tool-row-head", children: /* @__PURE__ */ jsx50(AgentToolCallHeader, { call, expanded: false, hasDetail: false }) }),
11798
+ !hasDetail && call.summary ? /* @__PURE__ */ jsx50("div", { className: "workspace-agents-status-panel__detail-tool-summary", children: call.summary }) : null,
11799
+ hasDetail && pinned ? /* @__PURE__ */ jsx50(
12354
11800
  AgentExpandedToolContent,
12355
11801
  {
12356
11802
  call,
@@ -12358,7 +11804,7 @@ function AgentAskUserQuestionCard({
12358
11804
  previewMode
12359
11805
  }
12360
11806
  ) : null,
12361
- hasDetail && !pinned ? /* @__PURE__ */ jsx51(CollapsibleReveal, { expanded, children: /* @__PURE__ */ jsx51(
11807
+ hasDetail && !pinned ? /* @__PURE__ */ jsx50(CollapsibleReveal, { expanded, children: /* @__PURE__ */ jsx50(
12362
11808
  AgentExpandedToolContent,
12363
11809
  {
12364
11810
  call,
@@ -12370,7 +11816,7 @@ function AgentAskUserQuestionCard({
12370
11816
  }
12371
11817
 
12372
11818
  // shared/agentConversation/components/AgentEnterPlanModeCard.tsx
12373
- import { jsx as jsx52, jsxs as jsxs39 } from "react/jsx-runtime";
11819
+ import { jsx as jsx51, jsxs as jsxs39 } from "react/jsx-runtime";
12374
11820
  function AgentEnterPlanModeCard({
12375
11821
  call,
12376
11822
  onLinkClick,
@@ -12379,9 +11825,9 @@ function AgentEnterPlanModeCard({
12379
11825
  "use memo";
12380
11826
  const hasDetail = hasAgentToolContent(call);
12381
11827
  return /* @__PURE__ */ jsxs39("div", { className: "workspace-agents-status-panel__detail-tool-row workspace-agents-status-panel__detail-tool-row--plan-enter", children: [
12382
- /* @__PURE__ */ jsx52("div", { className: "workspace-agents-status-panel__detail-tool-row-head", children: /* @__PURE__ */ jsx52(AgentToolCallHeader, { call, expanded: false, hasDetail: false }) }),
12383
- !hasDetail && call.summary ? /* @__PURE__ */ jsx52("div", { className: "workspace-agents-status-panel__detail-tool-summary", children: call.summary }) : null,
12384
- hasDetail ? /* @__PURE__ */ jsx52(
11828
+ /* @__PURE__ */ jsx51("div", { className: "workspace-agents-status-panel__detail-tool-row-head", children: /* @__PURE__ */ jsx51(AgentToolCallHeader, { call, expanded: false, hasDetail: false }) }),
11829
+ !hasDetail && call.summary ? /* @__PURE__ */ jsx51("div", { className: "workspace-agents-status-panel__detail-tool-summary", children: call.summary }) : null,
11830
+ hasDetail ? /* @__PURE__ */ jsx51(
12385
11831
  AgentExpandedToolContent,
12386
11832
  {
12387
11833
  call,
@@ -12393,7 +11839,7 @@ function AgentEnterPlanModeCard({
12393
11839
  }
12394
11840
 
12395
11841
  // shared/agentConversation/components/AgentExitPlanModeCard.tsx
12396
- import { jsx as jsx53, jsxs as jsxs40 } from "react/jsx-runtime";
11842
+ import { jsx as jsx52, jsxs as jsxs40 } from "react/jsx-runtime";
12397
11843
  function AgentExitPlanModeCard({
12398
11844
  call,
12399
11845
  onLinkClick,
@@ -12402,9 +11848,9 @@ function AgentExitPlanModeCard({
12402
11848
  "use memo";
12403
11849
  const hasDetail = hasAgentToolContent(call);
12404
11850
  return /* @__PURE__ */ jsxs40("div", { className: "workspace-agents-status-panel__detail-tool-row workspace-agents-status-panel__detail-tool-row--plan-exit", children: [
12405
- /* @__PURE__ */ jsx53("div", { className: "workspace-agents-status-panel__detail-tool-row-head", children: /* @__PURE__ */ jsx53(AgentToolCallHeader, { call, expanded: false, hasDetail: false }) }),
12406
- !hasDetail && call.summary ? /* @__PURE__ */ jsx53("div", { className: "workspace-agents-status-panel__detail-tool-summary", children: call.summary }) : null,
12407
- hasDetail ? /* @__PURE__ */ jsx53(
11851
+ /* @__PURE__ */ jsx52("div", { className: "workspace-agents-status-panel__detail-tool-row-head", children: /* @__PURE__ */ jsx52(AgentToolCallHeader, { call, expanded: false, hasDetail: false }) }),
11852
+ !hasDetail && call.summary ? /* @__PURE__ */ jsx52("div", { className: "workspace-agents-status-panel__detail-tool-summary", children: call.summary }) : null,
11853
+ hasDetail ? /* @__PURE__ */ jsx52(
12408
11854
  AgentExpandedToolContent,
12409
11855
  {
12410
11856
  call,
@@ -12417,7 +11863,7 @@ function AgentExitPlanModeCard({
12417
11863
 
12418
11864
  // shared/agentConversation/components/AgentTaskCallCard.tsx
12419
11865
  import { useState as useState15 } from "react";
12420
- import { jsx as jsx54, jsxs as jsxs41 } from "react/jsx-runtime";
11866
+ import { jsx as jsx53, jsxs as jsxs41 } from "react/jsx-runtime";
12421
11867
  function AgentTaskCallCard({
12422
11868
  call,
12423
11869
  onLinkClick,
@@ -12432,7 +11878,7 @@ function AgentTaskCallCard({
12432
11878
  const [expanded, setExpanded] = useState15(defaultExpanded ?? running);
12433
11879
  const ariaLabel = taskCallAriaLabel(call);
12434
11880
  return /* @__PURE__ */ jsxs41("div", { className: "workspace-agents-status-panel__detail-tool-row workspace-agents-status-panel__detail-tool-row--task", children: [
12435
- hasDetail && !pinned ? /* @__PURE__ */ jsx54(
11881
+ hasDetail && !pinned ? /* @__PURE__ */ jsx53(
12436
11882
  "button",
12437
11883
  {
12438
11884
  type: "button",
@@ -12440,11 +11886,11 @@ function AgentTaskCallCard({
12440
11886
  "aria-expanded": expanded,
12441
11887
  "aria-label": ariaLabel,
12442
11888
  onClick: () => setExpanded((value) => !value),
12443
- children: /* @__PURE__ */ jsx54(AgentToolCallHeader, { call, expanded, hasDetail: true })
11889
+ children: /* @__PURE__ */ jsx53(AgentToolCallHeader, { call, expanded, hasDetail: true })
12444
11890
  }
12445
- ) : /* @__PURE__ */ jsx54("div", { className: "workspace-agents-status-panel__detail-tool-row-head", children: /* @__PURE__ */ jsx54(AgentToolCallHeader, { call, expanded: false, hasDetail: false }) }),
12446
- !hasDetail && call.summary ? /* @__PURE__ */ jsx54("div", { className: "workspace-agents-status-panel__detail-tool-summary", children: call.summary }) : null,
12447
- hasDetail && pinned ? /* @__PURE__ */ jsx54(
11891
+ ) : /* @__PURE__ */ jsx53("div", { className: "workspace-agents-status-panel__detail-tool-row-head", children: /* @__PURE__ */ jsx53(AgentToolCallHeader, { call, expanded: false, hasDetail: false }) }),
11892
+ !hasDetail && call.summary ? /* @__PURE__ */ jsx53("div", { className: "workspace-agents-status-panel__detail-tool-summary", children: call.summary }) : null,
11893
+ hasDetail && pinned ? /* @__PURE__ */ jsx53(
12448
11894
  AgentExpandedToolContent,
12449
11895
  {
12450
11896
  call,
@@ -12452,7 +11898,7 @@ function AgentTaskCallCard({
12452
11898
  previewMode
12453
11899
  }
12454
11900
  ) : null,
12455
- hasDetail && !pinned ? /* @__PURE__ */ jsx54(CollapsibleReveal, { expanded, children: /* @__PURE__ */ jsx54(
11901
+ hasDetail && !pinned ? /* @__PURE__ */ jsx53(CollapsibleReveal, { expanded, children: /* @__PURE__ */ jsx53(
12456
11902
  AgentExpandedToolContent,
12457
11903
  {
12458
11904
  call,
@@ -12471,21 +11917,21 @@ function taskCallAriaLabel(call) {
12471
11917
  }
12472
11918
 
12473
11919
  // shared/agentConversation/components/AgentSubAgentCards.tsx
12474
- import { memo, useEffect as useEffect11, useState as useState16 } from "react";
11920
+ import { memo, useEffect as useEffect10, useState as useState16 } from "react";
12475
11921
  import { AlertCircle as AlertCircle2, ChevronDown as ChevronDown6, ChevronRight as ChevronRight6 } from "lucide-react";
12476
11922
 
12477
11923
  // app/renderer/components/icons/AgentLinedIcon.tsx
12478
- import { jsx as jsx55 } from "react/jsx-runtime";
11924
+ import { jsx as jsx54 } from "react/jsx-runtime";
12479
11925
  function AgentLinedIcon(props) {
12480
11926
  "use memo";
12481
- return /* @__PURE__ */ jsx55(
11927
+ return /* @__PURE__ */ jsx54(
12482
11928
  "svg",
12483
11929
  {
12484
11930
  viewBox: "0 0 24 24",
12485
11931
  fill: "none",
12486
11932
  xmlns: "http://www.w3.org/2000/svg",
12487
11933
  ...props,
12488
- children: /* @__PURE__ */ jsx55(
11934
+ children: /* @__PURE__ */ jsx54(
12489
11935
  "path",
12490
11936
  {
12491
11937
  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",
@@ -12497,7 +11943,7 @@ function AgentLinedIcon(props) {
12497
11943
  }
12498
11944
 
12499
11945
  // shared/agentConversation/components/AgentSubAgentCards.tsx
12500
- import { Fragment as Fragment5, jsx as jsx56, jsxs as jsxs42 } from "react/jsx-runtime";
11946
+ import { Fragment as Fragment5, jsx as jsx55, jsxs as jsxs42 } from "react/jsx-runtime";
12501
11947
  function AgentSubAgentCards({
12502
11948
  call,
12503
11949
  onLinkClick
@@ -12507,7 +11953,7 @@ function AgentSubAgentCards({
12507
11953
  if (subAgents.length === 0) {
12508
11954
  return null;
12509
11955
  }
12510
- return /* @__PURE__ */ jsx56(Fragment5, { children: subAgents.map((subAgent) => /* @__PURE__ */ jsx56(
11956
+ return /* @__PURE__ */ jsx55(Fragment5, { children: subAgents.map((subAgent) => /* @__PURE__ */ jsx55(
12511
11957
  AgentSubAgentCard,
12512
11958
  {
12513
11959
  subAgent,
@@ -12535,7 +11981,7 @@ function AgentSubAgentCardImpl({
12535
11981
  className: "workspace-agents-status-panel__detail-tool-row workspace-agents-status-panel__detail-tool-row--subagent",
12536
11982
  "data-status": subAgent.status,
12537
11983
  children: [
12538
- /* @__PURE__ */ jsx56(
11984
+ /* @__PURE__ */ jsx55(
12539
11985
  "button",
12540
11986
  {
12541
11987
  type: "button",
@@ -12543,10 +11989,10 @@ function AgentSubAgentCardImpl({
12543
11989
  "aria-expanded": expanded,
12544
11990
  "aria-label": subAgentAriaLabel(subAgent),
12545
11991
  onClick: () => setExpanded((value) => !value),
12546
- children: /* @__PURE__ */ jsx56(SubAgentHeader, { subAgent, expanded })
11992
+ children: /* @__PURE__ */ jsx55(SubAgentHeader, { subAgent, expanded })
12547
11993
  }
12548
11994
  ),
12549
- /* @__PURE__ */ jsx56(CollapsibleReveal, { expanded, children: /* @__PURE__ */ jsx56("div", { className: "workspace-agents-status-panel__detail-subagent-reveal", children: /* @__PURE__ */ jsx56(SubAgentBody, { subAgent, onLinkClick }) }) })
11995
+ /* @__PURE__ */ jsx55(CollapsibleReveal, { expanded, children: /* @__PURE__ */ jsx55("div", { className: "workspace-agents-status-panel__detail-subagent-reveal", children: /* @__PURE__ */ jsx55(SubAgentBody, { subAgent, onLinkClick }) }) })
12550
11996
  ]
12551
11997
  }
12552
11998
  );
@@ -12570,16 +12016,16 @@ function SubAgentHeader({
12570
12016
  running ? "tsh-inline-scanlight-group" : ""
12571
12017
  ].filter(Boolean).join(" "),
12572
12018
  children: [
12573
- /* @__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" }) }),
12019
+ /* @__PURE__ */ jsx55("div", { className: "workspace-agents-status-panel__detail-tool-row-icon tsh-inline-scanlight-icon", children: subAgent.status === "failed" ? /* @__PURE__ */ jsx55(AlertCircle2, { size: 16, strokeWidth: 2, "aria-hidden": "true" }) : /* @__PURE__ */ jsx55(AgentLinedIcon, { width: 16, height: 16, "aria-hidden": "true" }) }),
12574
12020
  /* @__PURE__ */ jsxs42("div", { className: "workspace-agents-status-panel__detail-tool-row-text", children: [
12575
- /* @__PURE__ */ jsx56("strong", { className: "workspace-agents-status-panel__detail-tool-row-title", children: translate("agentHost.agentTool.details.subAgentFallbackName") }),
12576
- nameText ? /* @__PURE__ */ jsx56("span", { className: "workspace-agents-status-panel__detail-subagent-name", children: nameText }) : null,
12021
+ /* @__PURE__ */ jsx55("strong", { className: "workspace-agents-status-panel__detail-tool-row-title", children: translate("agentHost.agentTool.details.subAgentFallbackName") }),
12022
+ nameText ? /* @__PURE__ */ jsx55("span", { className: "workspace-agents-status-panel__detail-subagent-name", children: nameText }) : null,
12577
12023
  /* @__PURE__ */ jsxs42("span", { className: "workspace-agents-status-panel__detail-tool-status", children: [
12578
12024
  elapsedText ? `${elapsedText} \xB7 ` : "",
12579
12025
  statusLabel
12580
12026
  ] })
12581
12027
  ] }),
12582
- expanded ? /* @__PURE__ */ jsx56(
12028
+ expanded ? /* @__PURE__ */ jsx55(
12583
12029
  ChevronDown6,
12584
12030
  {
12585
12031
  size: 12,
@@ -12587,7 +12033,7 @@ function SubAgentHeader({
12587
12033
  "aria-hidden": "true",
12588
12034
  className: "workspace-agents-status-panel__detail-tool-row-chevron"
12589
12035
  }
12590
- ) : /* @__PURE__ */ jsx56(
12036
+ ) : /* @__PURE__ */ jsx55(
12591
12037
  ChevronRight6,
12592
12038
  {
12593
12039
  size: 12,
@@ -12605,10 +12051,10 @@ function SubAgentBody({
12605
12051
  onLinkClick
12606
12052
  }) {
12607
12053
  "use memo";
12608
- 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: [
12609
- subAgent.task ? /* @__PURE__ */ jsx56("div", { className: "workspace-agents-status-panel__detail-subagent-task-strip", children: subAgent.task }) : null,
12610
- /* @__PURE__ */ jsx56(SubAgentProgress, { subAgent }),
12611
- subAgent.childSessions.length > 0 ? /* @__PURE__ */ jsx56("div", { className: "workspace-agents-status-panel__detail-subagent-children", children: subAgent.childSessions.map((childSession) => /* @__PURE__ */ jsx56(
12054
+ return /* @__PURE__ */ jsx55("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: [
12055
+ subAgent.task ? /* @__PURE__ */ jsx55("div", { className: "workspace-agents-status-panel__detail-subagent-task-strip", children: subAgent.task }) : null,
12056
+ /* @__PURE__ */ jsx55(SubAgentProgress, { subAgent }),
12057
+ subAgent.childSessions.length > 0 ? /* @__PURE__ */ jsx55("div", { className: "workspace-agents-status-panel__detail-subagent-children", children: subAgent.childSessions.map((childSession) => /* @__PURE__ */ jsx55(
12612
12058
  AgentSubAgentCard,
12613
12059
  {
12614
12060
  subAgent: childSession,
@@ -12625,7 +12071,7 @@ function SubAgentProgress({
12625
12071
  const text = subAgent.failureDetail ?? subAgent.latestActivity ?? translate(
12626
12072
  subAgent.queued ? "agentHost.agentTool.details.subAgentQueued" : "agentHost.agentTool.details.subAgentStarting"
12627
12073
  );
12628
- return /* @__PURE__ */ jsx56(
12074
+ return /* @__PURE__ */ jsx55(
12629
12075
  "div",
12630
12076
  {
12631
12077
  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" : ""}`,
@@ -12667,7 +12113,7 @@ function useRunningSubAgentNowUnixMs(subAgent) {
12667
12113
  const [nowUnixMs, setNowUnixMs] = useState16(
12668
12114
  () => shouldTick ? Date.now() : null
12669
12115
  );
12670
- useEffect11(() => {
12116
+ useEffect10(() => {
12671
12117
  if (!shouldTick) {
12672
12118
  setNowUnixMs(null);
12673
12119
  return;
@@ -12695,7 +12141,7 @@ function subAgentElapsedText(subAgent, runningNowUnixMs) {
12695
12141
 
12696
12142
  // shared/agentConversation/components/AgentToolCallCard.tsx
12697
12143
  import { useState as useState17 } from "react";
12698
- import { jsx as jsx57, jsxs as jsxs43 } from "react/jsx-runtime";
12144
+ import { jsx as jsx56, jsxs as jsxs43 } from "react/jsx-runtime";
12699
12145
  function AgentToolCallCard({
12700
12146
  call,
12701
12147
  onLinkClick,
@@ -12717,7 +12163,7 @@ function AgentToolCallCard({
12717
12163
  variantClassName ?? ""
12718
12164
  ].filter(Boolean).join(" "),
12719
12165
  children: [
12720
- canCollapse ? /* @__PURE__ */ jsx57(
12166
+ canCollapse ? /* @__PURE__ */ jsx56(
12721
12167
  "button",
12722
12168
  {
12723
12169
  type: "button",
@@ -12725,10 +12171,10 @@ function AgentToolCallCard({
12725
12171
  "aria-expanded": expanded,
12726
12172
  "aria-label": ariaLabel,
12727
12173
  onClick: () => setExpanded((value) => !value),
12728
- children: /* @__PURE__ */ jsx57(AgentToolCallHeader, { call, expanded, hasDetail: true })
12174
+ children: /* @__PURE__ */ jsx56(AgentToolCallHeader, { call, expanded, hasDetail: true })
12729
12175
  }
12730
- ) : /* @__PURE__ */ jsx57("div", { className: "workspace-agents-status-panel__detail-tool-row-head", children: /* @__PURE__ */ jsx57(AgentToolCallHeader, { call, expanded: false, hasDetail: false }) }),
12731
- hasDetail && nonCollapsible ? /* @__PURE__ */ jsx57(
12176
+ ) : /* @__PURE__ */ jsx56("div", { className: "workspace-agents-status-panel__detail-tool-row-head", children: /* @__PURE__ */ jsx56(AgentToolCallHeader, { call, expanded: false, hasDetail: false }) }),
12177
+ hasDetail && nonCollapsible ? /* @__PURE__ */ jsx56(
12732
12178
  AgentExpandedToolContent,
12733
12179
  {
12734
12180
  call,
@@ -12736,7 +12182,7 @@ function AgentToolCallCard({
12736
12182
  previewMode
12737
12183
  }
12738
12184
  ) : null,
12739
- hasDetail && !nonCollapsible ? /* @__PURE__ */ jsx57(CollapsibleReveal, { expanded, children: /* @__PURE__ */ jsx57(
12185
+ hasDetail && !nonCollapsible ? /* @__PURE__ */ jsx56(CollapsibleReveal, { expanded, children: /* @__PURE__ */ jsx56(
12740
12186
  AgentExpandedToolContent,
12741
12187
  {
12742
12188
  call,
@@ -12757,7 +12203,7 @@ function toolCallAriaLabel(call) {
12757
12203
  }
12758
12204
 
12759
12205
  // shared/agentConversation/components/AgentToolGroupRow.tsx
12760
- import { Fragment as Fragment6, jsx as jsx58, jsxs as jsxs44 } from "react/jsx-runtime";
12206
+ import { Fragment as Fragment6, jsx as jsx57, jsxs as jsxs44 } from "react/jsx-runtime";
12761
12207
  var AgentToolGroupRow = memo2(function AgentToolGroupRow2({
12762
12208
  row,
12763
12209
  label,
@@ -12808,8 +12254,8 @@ var AgentToolGroupRow = memo2(function AgentToolGroupRow2({
12808
12254
  "aria-label": groupLabel,
12809
12255
  onClick: () => setNextExpanded(!isExpanded),
12810
12256
  children: [
12811
- /* @__PURE__ */ jsx58(ToolGroupLabel, { label: groupLabel }),
12812
- isExpanded ? /* @__PURE__ */ jsx58(
12257
+ /* @__PURE__ */ jsx57(ToolGroupLabel, { label: groupLabel }),
12258
+ isExpanded ? /* @__PURE__ */ jsx57(
12813
12259
  ChevronDown7,
12814
12260
  {
12815
12261
  size: 12,
@@ -12817,7 +12263,7 @@ var AgentToolGroupRow = memo2(function AgentToolGroupRow2({
12817
12263
  "aria-hidden": "true",
12818
12264
  className: "workspace-agents-status-panel__detail-tool-count-chevron"
12819
12265
  }
12820
- ) : /* @__PURE__ */ jsx58(
12266
+ ) : /* @__PURE__ */ jsx57(
12821
12267
  ChevronRight7,
12822
12268
  {
12823
12269
  size: 12,
@@ -12828,13 +12274,13 @@ var AgentToolGroupRow = memo2(function AgentToolGroupRow2({
12828
12274
  )
12829
12275
  ]
12830
12276
  }
12831
- ) : /* @__PURE__ */ jsx58("div", { className: "workspace-agents-status-panel__detail-tool-count", children: /* @__PURE__ */ jsx58(ToolGroupLabel, { label: groupLabel }) }),
12832
- hasDetail ? /* @__PURE__ */ jsx58(CollapsibleReveal, { expanded: isExpanded, children: /* @__PURE__ */ jsx58("div", { className: "workspace-agents-status-panel__detail-tool-list", children: row.entries.map(
12833
- (entry) => entry.kind === "thinking" ? /* @__PURE__ */ jsx58(
12277
+ ) : /* @__PURE__ */ jsx57("div", { className: "workspace-agents-status-panel__detail-tool-count", children: /* @__PURE__ */ jsx57(ToolGroupLabel, { label: groupLabel }) }),
12278
+ hasDetail ? /* @__PURE__ */ jsx57(CollapsibleReveal, { expanded: isExpanded, children: /* @__PURE__ */ jsx57("div", { className: "workspace-agents-status-panel__detail-tool-list", children: row.entries.map(
12279
+ (entry) => entry.kind === "thinking" ? /* @__PURE__ */ jsx57(
12834
12280
  "div",
12835
12281
  {
12836
12282
  className: "workspace-agents-status-panel__detail-tool-list-item workspace-agents-status-panel__detail-tool-row",
12837
- children: /* @__PURE__ */ jsx58(
12283
+ children: /* @__PURE__ */ jsx57(
12838
12284
  AgentThinkingDisclosure,
12839
12285
  {
12840
12286
  thinking: entry.thinking,
@@ -12847,7 +12293,7 @@ var AgentToolGroupRow = memo2(function AgentToolGroupRow2({
12847
12293
  )
12848
12294
  },
12849
12295
  entry.thinking.id
12850
- ) : /* @__PURE__ */ jsx58(
12296
+ ) : /* @__PURE__ */ jsx57(
12851
12297
  "div",
12852
12298
  {
12853
12299
  className: "workspace-agents-status-panel__detail-tool-list-item",
@@ -12869,7 +12315,7 @@ var AgentToolGroupRow = memo2(function AgentToolGroupRow2({
12869
12315
  function ToolGroupLabel({ label }) {
12870
12316
  "use memo";
12871
12317
  return /* @__PURE__ */ jsxs44(Fragment6, { children: [
12872
- /* @__PURE__ */ jsx58(
12318
+ /* @__PURE__ */ jsx57(
12873
12319
  ToolActivityKindIcon,
12874
12320
  {
12875
12321
  kind: "update_todos",
@@ -12878,37 +12324,37 @@ function ToolGroupLabel({ label }) {
12878
12324
  className: "workspace-agents-status-panel__detail-tool-count-icon"
12879
12325
  }
12880
12326
  ),
12881
- /* @__PURE__ */ jsx58("span", { className: "workspace-agents-status-panel__detail-tool-count-label", children: renderToolCountLabel(label) })
12327
+ /* @__PURE__ */ jsx57("span", { className: "workspace-agents-status-panel__detail-tool-count-label", children: renderToolCountLabel(label) })
12882
12328
  ] });
12883
12329
  }
12884
12330
  function renderToolCountLabel(label) {
12885
- return /* @__PURE__ */ jsx58("span", { className: "workspace-agents-status-panel__detail-tool-count-primary", children: label });
12331
+ return /* @__PURE__ */ jsx57("span", { className: "workspace-agents-status-panel__detail-tool-count-primary", children: label });
12886
12332
  }
12887
12333
  function renderToolCard(call, onLinkClick, previewMode = false, showRawTimelineJson = false, rawTimelineJsonLabel = "") {
12888
12334
  const props = { call, onLinkClick, previewMode };
12889
12335
  if (call.task?.subAgents?.length) {
12890
- return /* @__PURE__ */ jsx58(AgentSubAgentCards, { call, onLinkClick });
12336
+ return /* @__PURE__ */ jsx57(AgentSubAgentCards, { call, onLinkClick });
12891
12337
  }
12892
12338
  let card;
12893
12339
  switch (call.rendererKind) {
12894
12340
  case "plan-enter":
12895
- card = /* @__PURE__ */ jsx58(AgentEnterPlanModeCard, { ...props });
12341
+ card = /* @__PURE__ */ jsx57(AgentEnterPlanModeCard, { ...props });
12896
12342
  break;
12897
12343
  case "plan-exit":
12898
- card = /* @__PURE__ */ jsx58(AgentExitPlanModeCard, { ...props });
12344
+ card = /* @__PURE__ */ jsx57(AgentExitPlanModeCard, { ...props });
12899
12345
  break;
12900
12346
  case "ask-user":
12901
- card = /* @__PURE__ */ jsx58(AgentAskUserQuestionCard, { ...props });
12347
+ card = /* @__PURE__ */ jsx57(AgentAskUserQuestionCard, { ...props });
12902
12348
  break;
12903
12349
  case "task":
12904
- card = /* @__PURE__ */ jsx58(AgentTaskCallCard, { ...props });
12350
+ card = /* @__PURE__ */ jsx57(AgentTaskCallCard, { ...props });
12905
12351
  break;
12906
12352
  default:
12907
- card = /* @__PURE__ */ jsx58(AgentToolCallCard, { ...props });
12353
+ card = /* @__PURE__ */ jsx57(AgentToolCallCard, { ...props });
12908
12354
  }
12909
12355
  return /* @__PURE__ */ jsxs44(Fragment6, { children: [
12910
12356
  card,
12911
- showRawTimelineJson && rawTimelineJsonLabel ? /* @__PURE__ */ jsx58(
12357
+ showRawTimelineJson && rawTimelineJsonLabel ? /* @__PURE__ */ jsx57(
12912
12358
  RawTimelineJsonDisclosure,
12913
12359
  {
12914
12360
  items: call.sourceTimelineItems,
@@ -12919,7 +12365,7 @@ function renderToolCard(call, onLinkClick, previewMode = false, showRawTimelineJ
12919
12365
  }
12920
12366
 
12921
12367
  // shared/agentConversation/components/AgentTurnSummaryRow.tsx
12922
- import { useEffect as useEffect12, useMemo as useMemo5, useState as useState19 } from "react";
12368
+ import { useEffect as useEffect11, useMemo as useMemo5, useState as useState19 } from "react";
12923
12369
  import {
12924
12370
  ChevronDown as ChevronDown8,
12925
12371
  ChevronRight as ChevronRight8,
@@ -12936,10 +12382,10 @@ import {
12936
12382
  } from "@tutti-os/ui-system";
12937
12383
 
12938
12384
  // app/renderer/components/icons/DirectLinedIcon.tsx
12939
- import { jsx as jsx59 } from "react/jsx-runtime";
12385
+ import { jsx as jsx58 } from "react/jsx-runtime";
12940
12386
  function DirectLinedIcon(props) {
12941
12387
  "use memo";
12942
- return /* @__PURE__ */ jsx59(
12388
+ return /* @__PURE__ */ jsx58(
12943
12389
  "svg",
12944
12390
  {
12945
12391
  xmlns: "http://www.w3.org/2000/svg",
@@ -12949,7 +12395,7 @@ function DirectLinedIcon(props) {
12949
12395
  "data-nexight-chrome-glyph": "fill",
12950
12396
  "data-tutti-chrome-glyph": "fill",
12951
12397
  ...props,
12952
- children: /* @__PURE__ */ jsx59(
12398
+ children: /* @__PURE__ */ jsx58(
12953
12399
  "path",
12954
12400
  {
12955
12401
  fill: "currentColor",
@@ -13150,7 +12596,7 @@ function isInsideOrEqualPatchPath(path, root) {
13150
12596
  }
13151
12597
 
13152
12598
  // shared/agentConversation/components/AgentTurnSummaryRow.tsx
13153
- import { jsx as jsx60, jsxs as jsxs45 } from "react/jsx-runtime";
12599
+ import { jsx as jsx59, jsxs as jsxs45 } from "react/jsx-runtime";
13154
12600
  function AgentTurnSummaryRow({
13155
12601
  row,
13156
12602
  workspaceRoot,
@@ -13208,7 +12654,7 @@ function AgentTurnSummaryRow({
13208
12654
  );
13209
12655
  const patchSupportKey = patchSupportCwds.join("\n");
13210
12656
  const resolveGitPatchSupport = agentHostApi?.workspace.resolveGitPatchSupport;
13211
- useEffect12(() => {
12657
+ useEffect11(() => {
13212
12658
  if (!resolveGitPatchSupport || patchSupportCwds.length === 0) {
13213
12659
  setPatchSupportState(null);
13214
12660
  return;
@@ -13296,10 +12742,10 @@ function AgentTurnSummaryRow({
13296
12742
  }
13297
12743
  }
13298
12744
  };
13299
- 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: [
12745
+ return /* @__PURE__ */ jsx59("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: [
13300
12746
  /* @__PURE__ */ jsxs45("div", { className: "flex items-center gap-3 px-4 py-3", children: [
13301
- /* @__PURE__ */ jsx60("div", { className: "min-w-0 flex-1", children: /* @__PURE__ */ jsxs45("div", { className: "flex min-w-0 items-center gap-3", children: [
13302
- /* @__PURE__ */ jsx60("div", { className: "min-w-0 text-[15px] font-semibold leading-5 tracking-[0] text-[var(--text-primary)]", children: translate("agentHost.agentGui.turnSummaryFilesChanged", {
12747
+ /* @__PURE__ */ jsx59("div", { className: "min-w-0 flex-1", children: /* @__PURE__ */ jsxs45("div", { className: "flex min-w-0 items-center gap-3", children: [
12748
+ /* @__PURE__ */ jsx59("div", { className: "min-w-0 text-[15px] font-semibold leading-5 tracking-[0] text-[var(--text-primary)]", children: translate("agentHost.agentGui.turnSummaryFilesChanged", {
13303
12749
  count: row.fileCount
13304
12750
  }) }),
13305
12751
  /* @__PURE__ */ jsxs45("div", { className: "inline-flex shrink-0 items-center gap-2.5 text-[11px] font-semibold", children: [
@@ -13313,8 +12759,8 @@ function AgentTurnSummaryRow({
13313
12759
  ] }) : null
13314
12760
  ] })
13315
12761
  ] }) }),
13316
- canRenderPatchButton ? /* @__PURE__ */ jsx60(TooltipProvider, { delayDuration: 200, children: /* @__PURE__ */ jsxs45(Tooltip, { children: [
13317
- /* @__PURE__ */ jsx60(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx60(
12762
+ canRenderPatchButton ? /* @__PURE__ */ jsx59(TooltipProvider, { delayDuration: 200, children: /* @__PURE__ */ jsxs45(Tooltip, { children: [
12763
+ /* @__PURE__ */ jsx59(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx59(
13318
12764
  "span",
13319
12765
  {
13320
12766
  className: `inline-flex shrink-0 ${isPatchActionDisabled ? "cursor-not-allowed" : ""}`,
@@ -13326,7 +12772,7 @@ function AgentTurnSummaryRow({
13326
12772
  disabled: isPatchActionDisabled,
13327
12773
  onClick: handlePatchAction,
13328
12774
  children: [
13329
- patchPending || isPatchSupportChecking ? /* @__PURE__ */ jsx60(
12775
+ patchPending || isPatchSupportChecking ? /* @__PURE__ */ jsx59(
13330
12776
  LoaderCircle2,
13331
12777
  {
13332
12778
  width: 14,
@@ -13334,7 +12780,7 @@ function AgentTurnSummaryRow({
13334
12780
  "aria-hidden": "true",
13335
12781
  className: "animate-spin text-[var(--text-secondary)]"
13336
12782
  }
13337
- ) : patchAction === "undo" ? /* @__PURE__ */ jsx60(
12783
+ ) : patchAction === "undo" ? /* @__PURE__ */ jsx59(
13338
12784
  Undo2,
13339
12785
  {
13340
12786
  width: 14,
@@ -13342,7 +12788,7 @@ function AgentTurnSummaryRow({
13342
12788
  "aria-hidden": "true",
13343
12789
  className: "text-[var(--text-secondary)]"
13344
12790
  }
13345
- ) : /* @__PURE__ */ jsx60(
12791
+ ) : /* @__PURE__ */ jsx59(
13346
12792
  Redo2,
13347
12793
  {
13348
12794
  width: 14,
@@ -13351,19 +12797,19 @@ function AgentTurnSummaryRow({
13351
12797
  className: "text-[var(--text-secondary)]"
13352
12798
  }
13353
12799
  ),
13354
- /* @__PURE__ */ jsx60("span", { children: patchActionLabel })
12800
+ /* @__PURE__ */ jsx59("span", { children: patchActionLabel })
13355
12801
  ]
13356
12802
  }
13357
12803
  )
13358
12804
  }
13359
12805
  ) }),
13360
- patchDisabledReason ? /* @__PURE__ */ jsx60(TooltipContent, { className: "max-w-[260px] whitespace-normal text-left", children: patchDisabledReason }) : null
12806
+ patchDisabledReason ? /* @__PURE__ */ jsx59(TooltipContent, { className: "max-w-[260px] whitespace-normal text-left", children: patchDisabledReason }) : null
13361
12807
  ] }) }) : null
13362
12808
  ] }),
13363
12809
  /* @__PURE__ */ jsxs45("div", { className: "agent-turn-summary-card__list", children: [
13364
12810
  visibleFiles.map((file) => {
13365
12811
  const key = `${file.path}:${file.messageId}`;
13366
- return /* @__PURE__ */ jsx60(
12812
+ return /* @__PURE__ */ jsx59(
13367
12813
  TurnSummaryFileCard,
13368
12814
  {
13369
12815
  file,
@@ -13379,9 +12825,9 @@ function AgentTurnSummaryRow({
13379
12825
  key
13380
12826
  );
13381
12827
  }),
13382
- hiddenFileCount > 0 ? /* @__PURE__ */ jsx60(CollapsibleReveal, { expanded: showAllFiles, preMountOnIdle: true, children: /* @__PURE__ */ jsx60("div", { className: "agent-turn-summary-card__overflow-list", children: hiddenFiles.map((file) => {
12828
+ hiddenFileCount > 0 ? /* @__PURE__ */ jsx59(CollapsibleReveal, { expanded: showAllFiles, preMountOnIdle: true, children: /* @__PURE__ */ jsx59("div", { className: "agent-turn-summary-card__overflow-list", children: hiddenFiles.map((file) => {
13383
12829
  const key = `${file.path}:${file.messageId}`;
13384
- return /* @__PURE__ */ jsx60(
12830
+ return /* @__PURE__ */ jsx59(
13385
12831
  TurnSummaryFileCard,
13386
12832
  {
13387
12833
  file,
@@ -13404,10 +12850,10 @@ function AgentTurnSummaryRow({
13404
12850
  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",
13405
12851
  onClick: () => setShowAllFiles(true),
13406
12852
  children: [
13407
- /* @__PURE__ */ jsx60("span", { children: translate("agentHost.agentGui.turnSummaryShowMoreFiles", {
12853
+ /* @__PURE__ */ jsx59("span", { children: translate("agentHost.agentGui.turnSummaryShowMoreFiles", {
13408
12854
  count: hiddenFileCount
13409
12855
  }) }),
13410
- /* @__PURE__ */ jsx60(ChevronDown8, { size: 16, strokeWidth: 2.2, "aria-hidden": "true" })
12856
+ /* @__PURE__ */ jsx59(ChevronDown8, { size: 16, strokeWidth: 2.2, "aria-hidden": "true" })
13411
12857
  ]
13412
12858
  }
13413
12859
  ) : hiddenFileCount > 0 ? /* @__PURE__ */ jsxs45(
@@ -13417,8 +12863,8 @@ function AgentTurnSummaryRow({
13417
12863
  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",
13418
12864
  onClick: () => setShowAllFiles(false),
13419
12865
  children: [
13420
- /* @__PURE__ */ jsx60("span", { children: translate("agentHost.agentGui.turnSummaryShowFewerFiles") }),
13421
- /* @__PURE__ */ jsx60(
12866
+ /* @__PURE__ */ jsx59("span", { children: translate("agentHost.agentGui.turnSummaryShowFewerFiles") }),
12867
+ /* @__PURE__ */ jsx59(
13422
12868
  ChevronRight8,
13423
12869
  {
13424
12870
  size: 16,
@@ -13474,7 +12920,7 @@ function TurnSummaryFileCard({
13474
12920
  "aria-expanded": expanded,
13475
12921
  onClick: onToggle,
13476
12922
  children: [
13477
- /* @__PURE__ */ jsx60("div", { className: "min-w-0 flex-1 overflow-hidden", children: /* @__PURE__ */ jsxs45(
12923
+ /* @__PURE__ */ jsx59("div", { className: "min-w-0 flex-1 overflow-hidden", children: /* @__PURE__ */ jsxs45(
13478
12924
  "span",
13479
12925
  {
13480
12926
  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" : ""}`,
@@ -13484,11 +12930,11 @@ function TurnSummaryFileCard({
13484
12930
  file.directory,
13485
12931
  "/"
13486
12932
  ] }) : null,
13487
- /* @__PURE__ */ jsx60("span", { className: "agent-turn-summary-card__path-file", children: file.fileName })
12933
+ /* @__PURE__ */ jsx59("span", { className: "agent-turn-summary-card__path-file", children: file.fileName })
13488
12934
  ]
13489
12935
  }
13490
12936
  ) }),
13491
- /* @__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(
12937
+ /* @__PURE__ */ jsx59("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__ */ jsx59(
13492
12938
  ChevronRight8,
13493
12939
  {
13494
12940
  size: 14,
@@ -13511,7 +12957,7 @@ function TurnSummaryFileCard({
13511
12957
  ] }) : null
13512
12958
  ] })
13513
12959
  ] }),
13514
- canOpen ? /* @__PURE__ */ jsx60(
12960
+ canOpen ? /* @__PURE__ */ jsx59(
13515
12961
  CanvasNodeGhostIconButton,
13516
12962
  {
13517
12963
  "aria-label": translate(
@@ -13523,7 +12969,7 @@ function TurnSummaryFileCard({
13523
12969
  onClick: () => {
13524
12970
  onLinkAction?.(action);
13525
12971
  },
13526
- children: /* @__PURE__ */ jsx60(
12972
+ children: /* @__PURE__ */ jsx59(
13527
12973
  DirectLinedIcon,
13528
12974
  {
13529
12975
  width: 14,
@@ -13535,12 +12981,12 @@ function TurnSummaryFileCard({
13535
12981
  }
13536
12982
  ) : null
13537
12983
  ] }),
13538
- 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
12984
+ preview ? /* @__PURE__ */ jsx59(CollapsibleReveal, { expanded, preMountOnIdle: true, children: /* @__PURE__ */ jsx59("div", { className: "agent-turn-summary-card__preview rounded-none px-4 pb-3 pt-2", children: preview }) }) : null
13539
12985
  ] });
13540
12986
  }
13541
12987
  function filePreview(file) {
13542
12988
  if (file.changeType === "created" && file.content?.trim()) {
13543
- return /* @__PURE__ */ jsx60(
12989
+ return /* @__PURE__ */ jsx59(
13544
12990
  AgentCodeBlock,
13545
12991
  {
13546
12992
  path: file.path,
@@ -13552,7 +12998,7 @@ function filePreview(file) {
13552
12998
  );
13553
12999
  }
13554
13000
  if (file.unifiedDiff?.trim()) {
13555
- return /* @__PURE__ */ jsx60(
13001
+ return /* @__PURE__ */ jsx59(
13556
13002
  AgentUnifiedPatchViewer,
13557
13003
  {
13558
13004
  path: file.path,
@@ -13563,7 +13009,7 @@ function filePreview(file) {
13563
13009
  );
13564
13010
  }
13565
13011
  if (file.changeType === "created" && file.newString?.trim()) {
13566
- return /* @__PURE__ */ jsx60(
13012
+ return /* @__PURE__ */ jsx59(
13567
13013
  AgentCodeBlock,
13568
13014
  {
13569
13015
  path: file.path,
@@ -13575,7 +13021,7 @@ function filePreview(file) {
13575
13021
  );
13576
13022
  }
13577
13023
  if (file.oldString?.trim() || file.newString?.trim()) {
13578
- return /* @__PURE__ */ jsx60(
13024
+ return /* @__PURE__ */ jsx59(
13579
13025
  AgentMonacoDiffViewer,
13580
13026
  {
13581
13027
  path: file.path,
@@ -13587,7 +13033,7 @@ function filePreview(file) {
13587
13033
  );
13588
13034
  }
13589
13035
  if (file.content?.trim()) {
13590
- return /* @__PURE__ */ jsx60(
13036
+ return /* @__PURE__ */ jsx59(
13591
13037
  AgentCodeBlock,
13592
13038
  {
13593
13039
  path: file.path,
@@ -13679,7 +13125,7 @@ function summarizeFileDiff(file) {
13679
13125
  }
13680
13126
 
13681
13127
  // shared/agentConversation/components/AgentTranscriptItemView.tsx
13682
- import { jsx as jsx61 } from "react/jsx-runtime";
13128
+ import { jsx as jsx60 } from "react/jsx-runtime";
13683
13129
  var AgentTranscriptItemView = memo3(function AgentTranscriptItemView2({
13684
13130
  workspaceRoot,
13685
13131
  basePath,
@@ -13713,7 +13159,7 @@ var AgentTranscriptItemView = memo3(function AgentTranscriptItemView2({
13713
13159
  );
13714
13160
  switch (row.kind) {
13715
13161
  case "message":
13716
- return /* @__PURE__ */ jsx61(
13162
+ return /* @__PURE__ */ jsx60(
13717
13163
  AgentMessageBlock,
13718
13164
  {
13719
13165
  workspaceRoot,
@@ -13731,7 +13177,7 @@ var AgentTranscriptItemView = memo3(function AgentTranscriptItemView2({
13731
13177
  }
13732
13178
  );
13733
13179
  case "tool-group":
13734
- return /* @__PURE__ */ jsx61(
13180
+ return /* @__PURE__ */ jsx60(
13735
13181
  AgentToolGroupRow,
13736
13182
  {
13737
13183
  row,
@@ -13747,7 +13193,7 @@ var AgentTranscriptItemView = memo3(function AgentTranscriptItemView2({
13747
13193
  }
13748
13194
  );
13749
13195
  case "turn-summary":
13750
- return /* @__PURE__ */ jsx61(
13196
+ return /* @__PURE__ */ jsx60(
13751
13197
  AgentTurnSummaryRow,
13752
13198
  {
13753
13199
  row,
@@ -13759,7 +13205,7 @@ var AgentTranscriptItemView = memo3(function AgentTranscriptItemView2({
13759
13205
  }
13760
13206
  );
13761
13207
  case "processing":
13762
- return /* @__PURE__ */ jsx61(AgentProcessingRow, { row, label: labels.processing });
13208
+ return /* @__PURE__ */ jsx60(AgentProcessingRow, { row, label: labels.processing });
13763
13209
  }
13764
13210
  });
13765
13211
 
@@ -13885,7 +13331,7 @@ function looksLikeTableSeparator(line) {
13885
13331
 
13886
13332
  // shared/agentConversation/components/AgentMessageLocatorRail.tsx
13887
13333
  import {
13888
- useEffect as useEffect13,
13334
+ useEffect as useEffect12,
13889
13335
  useLayoutEffect as useLayoutEffect3,
13890
13336
  useRef as useRef9,
13891
13337
  useState as useState20
@@ -14003,7 +13449,10 @@ function findTurnDividerRowIndexes(turnIndexById, rows) {
14003
13449
  }
14004
13450
  const turnIndex = turnIndexById.get(currentTurnId) ?? -1;
14005
13451
  const previousTurnId = rows[rowIndex - 1]?.turnId ?? null;
14006
- if (rowIndex > 0 && turnIndex > 0 && previousTurnId && previousTurnId !== currentTurnId && !previousTurnIds.has(currentTurnId)) {
13452
+ if (rowIndex > 0 && turnIndex > 0 && previousTurnId && previousTurnId !== currentTurnId && !agentTranscriptRowHasPresentationKind(
13453
+ rows[rowIndex - 1],
13454
+ "turn-boundary"
13455
+ ) && !previousTurnIds.has(currentTurnId)) {
14007
13456
  dividerRowIndexes.add(rowIndex);
14008
13457
  }
14009
13458
  previousTurnIds.add(currentTurnId);
@@ -14012,7 +13461,7 @@ function findTurnDividerRowIndexes(turnIndexById, rows) {
14012
13461
  }
14013
13462
 
14014
13463
  // shared/agentConversation/components/AgentMessageLocatorRail.tsx
14015
- import { jsx as jsx62, jsxs as jsxs46 } from "react/jsx-runtime";
13464
+ import { jsx as jsx61, jsxs as jsxs46 } from "react/jsx-runtime";
14016
13465
  var AGENT_MESSAGE_LOCATOR_PANEL_FADE_MS = 160;
14017
13466
  var AGENT_MESSAGE_LOCATOR_ITEM_SPACING_PX = 30;
14018
13467
  var AGENT_MESSAGE_LOCATOR_HIT_SIZE_PX = 36;
@@ -14034,7 +13483,7 @@ function AgentMessageLocatorRail({
14034
13483
  const previousAgentResponseByKeyRef = useRef9(null);
14035
13484
  const [unreadAgentResponseKeys, setUnreadAgentResponseKeys] = useState20(/* @__PURE__ */ new Set());
14036
13485
  const [visibleFrame, setVisibleFrame] = useState20(null);
14037
- useEffect13(() => {
13486
+ useEffect12(() => {
14038
13487
  if (isPanelOpen) {
14039
13488
  setShouldRenderPanel(true);
14040
13489
  return;
@@ -14045,7 +13494,7 @@ function AgentMessageLocatorRail({
14045
13494
  );
14046
13495
  return () => window.clearTimeout(timeout);
14047
13496
  }, [isPanelOpen]);
14048
- useEffect13(
13497
+ useEffect12(
14049
13498
  () => () => {
14050
13499
  if (closePanelTimeoutRef.current !== null) {
14051
13500
  window.clearTimeout(closePanelTimeoutRef.current);
@@ -14053,12 +13502,12 @@ function AgentMessageLocatorRail({
14053
13502
  },
14054
13503
  []
14055
13504
  );
14056
- useEffect13(() => {
13505
+ useEffect12(() => {
14057
13506
  if (selectedKey && !items.some((item) => item.key === selectedKey)) {
14058
13507
  setSelectedKey(null);
14059
13508
  }
14060
13509
  }, [items, selectedKey]);
14061
- useEffect13(() => {
13510
+ useEffect12(() => {
14062
13511
  const previousAgentResponseByKey = previousAgentResponseByKeyRef.current;
14063
13512
  const currentKeys = new Set(items.map((item) => item.key));
14064
13513
  setUnreadAgentResponseKeys((currentUnreadKeys) => {
@@ -14088,7 +13537,7 @@ function AgentMessageLocatorRail({
14088
13537
  items.map((item) => [item.key, item.hasAgentResponse])
14089
13538
  );
14090
13539
  }, [items, selectedKey]);
14091
- useEffect13(() => {
13540
+ useEffect12(() => {
14092
13541
  if (!selectedKey) {
14093
13542
  return;
14094
13543
  }
@@ -14133,7 +13582,7 @@ function AgentMessageLocatorRail({
14133
13582
  }
14134
13583
  };
14135
13584
  }, [items.length]);
14136
- useEffect13(() => {
13585
+ useEffect12(() => {
14137
13586
  const locator = locatorRef.current;
14138
13587
  const scrollParent = locator ? findMessageLocatorScrollParent(locator) : null;
14139
13588
  if (!scrollParent) {
@@ -14280,7 +13729,7 @@ function AgentMessageLocatorRail({
14280
13729
  } : {}
14281
13730
  },
14282
13731
  children: [
14283
- /* @__PURE__ */ jsx62(
13732
+ /* @__PURE__ */ jsx61(
14284
13733
  "div",
14285
13734
  {
14286
13735
  ref: locatorViewportRef,
@@ -14296,7 +13745,7 @@ function AgentMessageLocatorRail({
14296
13745
  "--agent-message-locator-height": `${railHeight}px`
14297
13746
  },
14298
13747
  children: [
14299
- items.slice(0, -1).map((item, index) => /* @__PURE__ */ jsx62(
13748
+ items.slice(0, -1).map((item, index) => /* @__PURE__ */ jsx61(
14300
13749
  "div",
14301
13750
  {
14302
13751
  className: "agent-gui-message-locator__track-segment",
@@ -14307,7 +13756,7 @@ function AgentMessageLocatorRail({
14307
13756
  },
14308
13757
  `segment:${item.key}`
14309
13758
  )),
14310
- items.map((item, index) => /* @__PURE__ */ jsx62(
13759
+ items.map((item, index) => /* @__PURE__ */ jsx61(
14311
13760
  "button",
14312
13761
  {
14313
13762
  type: "button",
@@ -14322,7 +13771,7 @@ function AgentMessageLocatorRail({
14322
13771
  onClick: () => handleLocateItem(item),
14323
13772
  onFocus: () => setActiveKey(item.key),
14324
13773
  onMouseEnter: () => setActiveKey(item.key),
14325
- children: /* @__PURE__ */ jsx62(
13774
+ children: /* @__PURE__ */ jsx61(
14326
13775
  "span",
14327
13776
  {
14328
13777
  className: "agent-gui-message-locator__dot",
@@ -14337,7 +13786,7 @@ function AgentMessageLocatorRail({
14337
13786
  )
14338
13787
  }
14339
13788
  ),
14340
- shouldRenderPanel ? /* @__PURE__ */ jsx62(
13789
+ shouldRenderPanel ? /* @__PURE__ */ jsx61(
14341
13790
  "div",
14342
13791
  {
14343
13792
  className: "agent-gui-message-locator__panel",
@@ -14347,7 +13796,7 @@ function AgentMessageLocatorRail({
14347
13796
  onMouseEnter: openPanel,
14348
13797
  onMouseLeave: closePanelSoon,
14349
13798
  onWheel: containMessageLocatorPanelWheel,
14350
- children: items.map((item) => /* @__PURE__ */ jsx62(
13799
+ children: items.map((item) => /* @__PURE__ */ jsx61(
14351
13800
  "button",
14352
13801
  {
14353
13802
  type: "button",
@@ -14356,7 +13805,7 @@ function AgentMessageLocatorRail({
14356
13805
  onClick: () => handleLocateItem(item),
14357
13806
  onFocus: () => setActiveKey(item.key),
14358
13807
  onMouseEnter: () => setActiveKey(item.key),
14359
- children: /* @__PURE__ */ jsx62("span", { className: "agent-gui-message-locator__panel-item-text", children: item.summary })
13808
+ children: /* @__PURE__ */ jsx61("span", { className: "agent-gui-message-locator__panel-item-text", children: item.summary })
14360
13809
  },
14361
13810
  `panel:${item.key}`
14362
13811
  ))
@@ -14499,7 +13948,7 @@ function selectMessageLocatorItemAtViewportCenter(scrollParent, items) {
14499
13948
  }
14500
13949
 
14501
13950
  // shared/agentConversation/components/AgentTranscriptView.tsx
14502
- import { Fragment as Fragment8, jsx as jsx63, jsxs as jsxs47 } from "react/jsx-runtime";
13951
+ import { Fragment as Fragment8, jsx as jsx62, jsxs as jsxs47 } from "react/jsx-runtime";
14503
13952
  var AGENT_TRANSCRIPT_VIRTUALIZATION_OVERSCAN = 6;
14504
13953
  var AGENT_TRANSCRIPT_ESTIMATED_TURN_HEIGHT_PX = 280;
14505
13954
  var AGENT_TRANSCRIPT_TURN_GAP_PX = 12;
@@ -14638,7 +14087,7 @@ var AgentTranscriptView = memo4(function AgentTranscriptView2({
14638
14087
  const showTurnDivider = dividerRowIndexes.has(rowIndex);
14639
14088
  const shouldAnimateEnter = row.kind !== "processing" && enteringRowKeys.has(rowKey);
14640
14089
  return /* @__PURE__ */ jsxs47(Fragment7, { children: [
14641
- showTurnDivider ? /* @__PURE__ */ jsx63(
14090
+ showTurnDivider ? /* @__PURE__ */ jsx62(
14642
14091
  "div",
14643
14092
  {
14644
14093
  className: "h-px w-full flex-none bg-[var(--line-2,var(--tutti-line-2))]",
@@ -14646,7 +14095,7 @@ var AgentTranscriptView = memo4(function AgentTranscriptView2({
14646
14095
  "aria-hidden": "true"
14647
14096
  }
14648
14097
  ) : null,
14649
- /* @__PURE__ */ jsx63(
14098
+ /* @__PURE__ */ jsx62(
14650
14099
  "div",
14651
14100
  {
14652
14101
  className: "agent-gui-transcript-row",
@@ -14654,7 +14103,7 @@ var AgentTranscriptView = memo4(function AgentTranscriptView2({
14654
14103
  "data-agent-transcript-row-kind": row.kind,
14655
14104
  "data-agent-transcript-row-index": rowIndex,
14656
14105
  "data-agent-transcript-row-enter": shouldAnimateEnter ? "true" : void 0,
14657
- children: /* @__PURE__ */ jsx63(
14106
+ children: /* @__PURE__ */ jsx62(
14658
14107
  AgentTranscriptItemView,
14659
14108
  {
14660
14109
  workspaceRoot,
@@ -14690,7 +14139,7 @@ var AgentTranscriptView = memo4(function AgentTranscriptView2({
14690
14139
  ) + fallbackIndex) * AGENT_TRANSCRIPT_ESTIMATED_TURN_HEIGHT_PX
14691
14140
  })) : rowVirtualizer.getVirtualItems();
14692
14141
  return /* @__PURE__ */ jsxs47(Fragment8, { children: [
14693
- /* @__PURE__ */ jsx63(
14142
+ /* @__PURE__ */ jsx62(
14694
14143
  AgentMessageLocatorRail,
14695
14144
  {
14696
14145
  items: userMessageLocatorItems,
@@ -14698,7 +14147,7 @@ var AgentTranscriptView = memo4(function AgentTranscriptView2({
14698
14147
  onLocate: handleLocateUserMessage
14699
14148
  }
14700
14149
  ),
14701
- /* @__PURE__ */ jsx63(
14150
+ /* @__PURE__ */ jsx62(
14702
14151
  "div",
14703
14152
  {
14704
14153
  ref: virtualizerHostRef,
@@ -14710,7 +14159,7 @@ var AgentTranscriptView = memo4(function AgentTranscriptView2({
14710
14159
  if (!group) {
14711
14160
  return null;
14712
14161
  }
14713
- return /* @__PURE__ */ jsx63(
14162
+ return /* @__PURE__ */ jsx62(
14714
14163
  "div",
14715
14164
  {
14716
14165
  ref: rowVirtualizer.measureElement,
@@ -14733,7 +14182,7 @@ var AgentTranscriptView = memo4(function AgentTranscriptView2({
14733
14182
  ] });
14734
14183
  }
14735
14184
  return /* @__PURE__ */ jsxs47(Fragment8, { children: [
14736
- /* @__PURE__ */ jsx63(
14185
+ /* @__PURE__ */ jsx62(
14737
14186
  AgentMessageLocatorRail,
14738
14187
  {
14739
14188
  items: userMessageLocatorItems,
@@ -14747,7 +14196,7 @@ var AgentTranscriptView = memo4(function AgentTranscriptView2({
14747
14196
 
14748
14197
  // shared/agentConversation/components/AgentConversationFlow.tsx
14749
14198
  import { memo as memo5 } from "react";
14750
- import { Fragment as Fragment9, jsx as jsx64 } from "react/jsx-runtime";
14199
+ import { Fragment as Fragment9, jsx as jsx63 } from "react/jsx-runtime";
14751
14200
  var AgentConversationFlow = memo5(function AgentConversationFlow2({
14752
14201
  conversation,
14753
14202
  isLoading,
@@ -14764,12 +14213,12 @@ var AgentConversationFlow = memo5(function AgentConversationFlow2({
14764
14213
  }) {
14765
14214
  "use memo";
14766
14215
  if (isLoading) {
14767
- return /* @__PURE__ */ jsx64(AgentTranscriptSkeleton, { label: loadingLabel, testId: loadingTestId });
14216
+ return /* @__PURE__ */ jsx63(AgentTranscriptSkeleton, { label: loadingLabel, testId: loadingTestId });
14768
14217
  }
14769
14218
  if (!conversation || conversation.rows.length === 0) {
14770
- return /* @__PURE__ */ jsx64(Fragment9, { children: empty });
14219
+ return /* @__PURE__ */ jsx63(Fragment9, { children: empty });
14771
14220
  }
14772
- return /* @__PURE__ */ jsx64(
14221
+ return /* @__PURE__ */ jsx63(
14773
14222
  AgentTranscriptView,
14774
14223
  {
14775
14224
  conversation,
@@ -14816,10 +14265,8 @@ export {
14816
14265
  Button,
14817
14266
  isWorkspaceAgentToolCallItem,
14818
14267
  resolveWorkspaceAgentToolName,
14268
+ resolveWorkspaceAgentNoticeCommandSemantics,
14819
14269
  buildWorkspaceAgentSessionDetailViewModel,
14820
- skillTriggerForPrefix,
14821
- labelForProviderSkill,
14822
- skillDescriptionForDisplay,
14823
14270
  pastedTextPreview,
14824
14271
  MAX_AGENT_COMPOSER_DRAFT_IMAGES,
14825
14272
  emptyAgentComposerDraft,
@@ -14837,22 +14284,16 @@ export {
14837
14284
  agentPromptContentHasImage,
14838
14285
  agentPromptContentImageBlocks,
14839
14286
  agentPromptContentToComposerDraft,
14840
- agentComposerDraftToPromptContent,
14841
- agentComposerDraftDisplayPrompt,
14287
+ projectAgentComposerDraftSubmission,
14842
14288
  textPromptContent,
14843
14289
  materializePastedTextInstructions,
14844
14290
  projectAgentConversationVM,
14845
14291
  reconcileProjectedAgentConversationVM,
14846
14292
  getAppErrorCode,
14847
14293
  toLocalShortDateTime,
14848
- createAgentRichTextInputExtensions,
14849
- plainTextToAgentRichTextDoc,
14850
- plainTextToAgentRichTextInlineContent,
14851
- editorToPromptText,
14852
- agentRichTextContentToPromptText,
14853
14294
  AgentTranscriptSkeleton,
14854
14295
  AgentTranscriptView,
14855
14296
  AgentConversationFlow,
14856
14297
  useProjectedAgentConversation
14857
14298
  };
14858
- //# sourceMappingURL=chunk-HLVC4NNL.js.map
14299
+ //# sourceMappingURL=chunk-IR2CL2X2.js.map