@stigmer/react 0.0.52 → 0.0.54

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 (160) hide show
  1. package/deployment-mode.d.ts +35 -0
  2. package/deployment-mode.d.ts.map +1 -0
  3. package/deployment-mode.js +41 -0
  4. package/deployment-mode.js.map +1 -0
  5. package/execution/ApprovalCard.d.ts +8 -6
  6. package/execution/ApprovalCard.d.ts.map +1 -1
  7. package/execution/ApprovalCard.js +34 -96
  8. package/execution/ApprovalCard.js.map +1 -1
  9. package/execution/ArtifactCard.d.ts +11 -1
  10. package/execution/ArtifactCard.d.ts.map +1 -1
  11. package/execution/ArtifactCard.js +22 -3
  12. package/execution/ArtifactCard.js.map +1 -1
  13. package/execution/ArtifactPreviewModal.d.ts.map +1 -1
  14. package/execution/ArtifactPreviewModal.js +1 -1
  15. package/execution/ArtifactPreviewModal.js.map +1 -1
  16. package/execution/ArtifactsWidget.d.ts +26 -19
  17. package/execution/ArtifactsWidget.d.ts.map +1 -1
  18. package/execution/ArtifactsWidget.js +24 -26
  19. package/execution/ArtifactsWidget.js.map +1 -1
  20. package/execution/McpToolDetail.d.ts +48 -0
  21. package/execution/McpToolDetail.d.ts.map +1 -0
  22. package/execution/McpToolDetail.js +159 -0
  23. package/execution/McpToolDetail.js.map +1 -0
  24. package/execution/MessageThread.d.ts +10 -1
  25. package/execution/MessageThread.d.ts.map +1 -1
  26. package/execution/MessageThread.js +19 -17
  27. package/execution/MessageThread.js.map +1 -1
  28. package/execution/SandboxContext.d.ts +32 -0
  29. package/execution/SandboxContext.d.ts.map +1 -0
  30. package/execution/SandboxContext.js +26 -0
  31. package/execution/SandboxContext.js.map +1 -0
  32. package/execution/ToolArgsView.d.ts +41 -0
  33. package/execution/ToolArgsView.d.ts.map +1 -0
  34. package/execution/ToolArgsView.js +134 -0
  35. package/execution/ToolArgsView.js.map +1 -0
  36. package/execution/ToolCallDetail.d.ts +11 -4
  37. package/execution/ToolCallDetail.d.ts.map +1 -1
  38. package/execution/ToolCallDetail.js +32 -101
  39. package/execution/ToolCallDetail.js.map +1 -1
  40. package/execution/ToolCallGroup.d.ts.map +1 -1
  41. package/execution/ToolCallGroup.js +3 -2
  42. package/execution/ToolCallGroup.js.map +1 -1
  43. package/execution/ToolCallItem.d.ts +2 -0
  44. package/execution/ToolCallItem.d.ts.map +1 -1
  45. package/execution/ToolCallItem.js +13 -3
  46. package/execution/ToolCallItem.js.map +1 -1
  47. package/execution/WriteBackCard.d.ts +34 -0
  48. package/execution/WriteBackCard.d.ts.map +1 -0
  49. package/execution/WriteBackCard.js +75 -0
  50. package/execution/WriteBackCard.js.map +1 -0
  51. package/execution/WriteBacksWidget.d.ts +49 -0
  52. package/execution/WriteBacksWidget.d.ts.map +1 -0
  53. package/execution/WriteBacksWidget.js +44 -0
  54. package/execution/WriteBacksWidget.js.map +1 -0
  55. package/execution/__tests__/file-path-resolver.test.d.ts +2 -0
  56. package/execution/__tests__/file-path-resolver.test.d.ts.map +1 -0
  57. package/execution/__tests__/file-path-resolver.test.js +180 -0
  58. package/execution/__tests__/file-path-resolver.test.js.map +1 -0
  59. package/execution/file-path-resolver.d.ts +3 -3
  60. package/execution/file-path-resolver.d.ts.map +1 -1
  61. package/execution/file-path-resolver.js +23 -12
  62. package/execution/file-path-resolver.js.map +1 -1
  63. package/execution/index.d.ts +16 -1
  64. package/execution/index.d.ts.map +1 -1
  65. package/execution/index.js +9 -1
  66. package/execution/index.js.map +1 -1
  67. package/execution/sandbox-path-normalizer.d.ts +46 -0
  68. package/execution/sandbox-path-normalizer.d.ts.map +1 -0
  69. package/execution/sandbox-path-normalizer.js +73 -0
  70. package/execution/sandbox-path-normalizer.js.map +1 -0
  71. package/execution/tool-categories.d.ts +35 -8
  72. package/execution/tool-categories.d.ts.map +1 -1
  73. package/execution/tool-categories.js +76 -10
  74. package/execution/tool-categories.js.map +1 -1
  75. package/execution/tool-rendering-primitives.d.ts +61 -0
  76. package/execution/tool-rendering-primitives.d.ts.map +1 -0
  77. package/execution/tool-rendering-primitives.js +106 -0
  78. package/execution/tool-rendering-primitives.js.map +1 -0
  79. package/execution/useArtifactContent.d.ts +5 -1
  80. package/execution/useArtifactContent.d.ts.map +1 -1
  81. package/execution/useArtifactContent.js +6 -2
  82. package/execution/useArtifactContent.js.map +1 -1
  83. package/execution/useWorkspaceWriteBacks.d.ts +40 -0
  84. package/execution/useWorkspaceWriteBacks.d.ts.map +1 -0
  85. package/execution/useWorkspaceWriteBacks.js +41 -0
  86. package/execution/useWorkspaceWriteBacks.js.map +1 -0
  87. package/github/GitHubRepoPicker.d.ts +5 -2
  88. package/github/GitHubRepoPicker.d.ts.map +1 -1
  89. package/github/GitHubRepoPicker.js +133 -36
  90. package/github/GitHubRepoPicker.js.map +1 -1
  91. package/github/index.d.ts +1 -0
  92. package/github/index.d.ts.map +1 -1
  93. package/github/index.js +1 -0
  94. package/github/index.js.map +1 -1
  95. package/github/useGitHubSearch.d.ts +20 -0
  96. package/github/useGitHubSearch.d.ts.map +1 -0
  97. package/github/useGitHubSearch.js +127 -0
  98. package/github/useGitHubSearch.js.map +1 -0
  99. package/index.d.ts +9 -6
  100. package/index.d.ts.map +1 -1
  101. package/index.js +7 -3
  102. package/index.js.map +1 -1
  103. package/internal/CloudFeatureNotice.d.ts +19 -0
  104. package/internal/CloudFeatureNotice.d.ts.map +1 -0
  105. package/internal/CloudFeatureNotice.js +21 -0
  106. package/internal/CloudFeatureNotice.js.map +1 -0
  107. package/mcp-server/McpServerDetailView.d.ts +15 -1
  108. package/mcp-server/McpServerDetailView.d.ts.map +1 -1
  109. package/mcp-server/McpServerDetailView.js +11 -3
  110. package/mcp-server/McpServerDetailView.js.map +1 -1
  111. package/package.json +4 -4
  112. package/provider.d.ts +14 -2
  113. package/provider.d.ts.map +1 -1
  114. package/provider.js +3 -2
  115. package/provider.js.map +1 -1
  116. package/session/index.d.ts +4 -0
  117. package/session/index.d.ts.map +1 -1
  118. package/session/index.js +2 -0
  119. package/session/index.js.map +1 -1
  120. package/session/useSessionArtifacts.d.ts +73 -0
  121. package/session/useSessionArtifacts.d.ts.map +1 -0
  122. package/session/useSessionArtifacts.js +95 -0
  123. package/session/useSessionArtifacts.js.map +1 -0
  124. package/session/useSessionWriteBacks.d.ts +56 -0
  125. package/session/useSessionWriteBacks.d.ts.map +1 -0
  126. package/session/useSessionWriteBacks.js +56 -0
  127. package/session/useSessionWriteBacks.js.map +1 -0
  128. package/src/deployment-mode.ts +46 -0
  129. package/src/execution/ApprovalCard.tsx +130 -283
  130. package/src/execution/ArtifactCard.tsx +40 -0
  131. package/src/execution/ArtifactPreviewModal.tsx +2 -0
  132. package/src/execution/ArtifactsWidget.tsx +51 -43
  133. package/src/execution/McpToolDetail.tsx +283 -0
  134. package/src/execution/MessageThread.tsx +18 -0
  135. package/src/execution/SandboxContext.ts +47 -0
  136. package/src/execution/ToolArgsView.tsx +279 -0
  137. package/src/execution/ToolCallDetail.tsx +54 -220
  138. package/src/execution/ToolCallGroup.tsx +3 -2
  139. package/src/execution/ToolCallItem.tsx +21 -3
  140. package/src/execution/WriteBackCard.tsx +210 -0
  141. package/src/execution/WriteBacksWidget.tsx +82 -0
  142. package/src/execution/__tests__/file-path-resolver.test.ts +295 -0
  143. package/src/execution/file-path-resolver.ts +24 -12
  144. package/src/execution/index.ts +38 -0
  145. package/src/execution/sandbox-path-normalizer.ts +80 -0
  146. package/src/execution/tool-categories.ts +89 -9
  147. package/src/execution/tool-rendering-primitives.tsx +253 -0
  148. package/src/execution/useArtifactContent.ts +6 -1
  149. package/src/execution/useWorkspaceWriteBacks.ts +56 -0
  150. package/src/github/GitHubRepoPicker.tsx +413 -108
  151. package/src/github/index.ts +5 -0
  152. package/src/github/useGitHubSearch.ts +162 -0
  153. package/src/index.ts +27 -0
  154. package/src/internal/CloudFeatureNotice.tsx +60 -0
  155. package/src/mcp-server/McpServerDetailView.tsx +24 -2
  156. package/src/provider.tsx +18 -2
  157. package/src/session/index.ts +12 -0
  158. package/src/session/useSessionArtifacts.ts +143 -0
  159. package/src/session/useSessionWriteBacks.ts +94 -0
  160. package/styles.css +1 -1
@@ -0,0 +1,41 @@
1
+ export interface ToolArgsViewProps {
2
+ /**
3
+ * Raw tool name as it appears on the ToolCall or PendingApproval.
4
+ * Used for category resolution and MCP metadata display.
5
+ */
6
+ readonly toolName: string;
7
+ /**
8
+ * Parsed tool arguments — either from `ToolCall.args` or
9
+ * `JSON.parse(PendingApproval.argsPreview)`.
10
+ */
11
+ readonly args: Record<string, unknown> | null;
12
+ /** MCP server slug for MCP tool classification and metadata. */
13
+ readonly mcpServerSlug?: string;
14
+ readonly className?: string;
15
+ }
16
+ /**
17
+ * Unified tool-arguments renderer used by both {@link ApprovalCard}
18
+ * (pre-execution) and {@link ToolCallDetail} (post-execution).
19
+ *
20
+ * Resolves the tool category from `toolName` + `mcpServerSlug`,
21
+ * extracts the relevant primary argument, and dispatches to the
22
+ * appropriate category-specific view:
23
+ *
24
+ * - **Shell** — terminal-style command block
25
+ * - **File (read/write/edit/delete)** — file icon + path + optional content
26
+ * - **Search / List** — pattern display
27
+ * - **MCP** — metadata row + scalar key-value grid + collapsible JSON
28
+ * - **Generic / Unknown** — formatted JSON args
29
+ *
30
+ * @example
31
+ * ```tsx
32
+ * // In approval card (from argsPreview string):
33
+ * const args = JSON.parse(pendingApproval.argsPreview);
34
+ * <ToolArgsView toolName={toolName} args={args} mcpServerSlug={slug} />
35
+ *
36
+ * // In detail view (from ToolCall):
37
+ * <ToolArgsView toolName={tc.name} args={tc.args} mcpServerSlug={tc.mcpServerSlug} />
38
+ * ```
39
+ */
40
+ export declare function ToolArgsView({ toolName, args, mcpServerSlug, className, }: ToolArgsViewProps): import("react/jsx-runtime").JSX.Element;
41
+ //# sourceMappingURL=ToolArgsView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolArgsView.d.ts","sourceRoot":"","sources":["../../src/execution/ToolArgsView.tsx"],"names":[],"mappings":"AAsBA,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC9C,gEAAgE;IAChE,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,IAAI,EACJ,aAAa,EACb,SAAS,GACV,EAAE,iBAAiB,2CAsBnB"}
@@ -0,0 +1,134 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useMemo } from "react";
4
+ import { cn } from "@stigmer/theme";
5
+ import { resolveToolCategory, } from "./tool-categories";
6
+ import { FilePathLink } from "./FilePathLink";
7
+ import { McpArgsView, McpMetadataRow } from "./McpToolDetail";
8
+ import { useSandboxNormalize } from "./SandboxContext";
9
+ import { CollapsibleCode, FilePathIcon, formatJson, } from "./tool-rendering-primitives";
10
+ /**
11
+ * Unified tool-arguments renderer used by both {@link ApprovalCard}
12
+ * (pre-execution) and {@link ToolCallDetail} (post-execution).
13
+ *
14
+ * Resolves the tool category from `toolName` + `mcpServerSlug`,
15
+ * extracts the relevant primary argument, and dispatches to the
16
+ * appropriate category-specific view:
17
+ *
18
+ * - **Shell** — terminal-style command block
19
+ * - **File (read/write/edit/delete)** — file icon + path + optional content
20
+ * - **Search / List** — pattern display
21
+ * - **MCP** — metadata row + scalar key-value grid + collapsible JSON
22
+ * - **Generic / Unknown** — formatted JSON args
23
+ *
24
+ * @example
25
+ * ```tsx
26
+ * // In approval card (from argsPreview string):
27
+ * const args = JSON.parse(pendingApproval.argsPreview);
28
+ * <ToolArgsView toolName={toolName} args={args} mcpServerSlug={slug} />
29
+ *
30
+ * // In detail view (from ToolCall):
31
+ * <ToolArgsView toolName={tc.name} args={tc.args} mcpServerSlug={tc.mcpServerSlug} />
32
+ * ```
33
+ */
34
+ export function ToolArgsView({ toolName, args, mcpServerSlug, className, }) {
35
+ const categoryInfo = useMemo(() => resolveToolCategory(toolName, mcpServerSlug), [toolName, mcpServerSlug]);
36
+ const primaryArg = useMemo(() => extractPrimaryArgValue(args, categoryInfo), [args, categoryInfo]);
37
+ return (_jsx("div", { className: cn("text-xs", className), children: _jsx(CategoryArgsDispatch, { category: categoryInfo.category, toolName: toolName, args: args, primaryArg: primaryArg, mcpServerSlug: mcpServerSlug }) }));
38
+ }
39
+ // ---------------------------------------------------------------------------
40
+ // Dispatch
41
+ // ---------------------------------------------------------------------------
42
+ function CategoryArgsDispatch({ category, toolName, args, primaryArg, mcpServerSlug, }) {
43
+ switch (category) {
44
+ case "shell":
45
+ return primaryArg ? _jsx(ShellArgsView, { command: primaryArg }) : null;
46
+ case "read":
47
+ case "write":
48
+ case "edit":
49
+ case "delete":
50
+ return primaryArg ? (_jsx(FileArgsView, { path: primaryArg, category: category, args: args })) : null;
51
+ case "search":
52
+ case "list":
53
+ return primaryArg ? _jsx(SearchArgsView, { pattern: primaryArg }) : null;
54
+ case "mcp":
55
+ return (_jsx(McpArgsPreview, { toolName: toolName, args: args, mcpServerSlug: mcpServerSlug ?? "" }));
56
+ default:
57
+ return args && Object.keys(args).length > 0 ? (_jsx(GenericArgsView, { args: args })) : null;
58
+ }
59
+ }
60
+ // ---------------------------------------------------------------------------
61
+ // Category-specific views
62
+ // ---------------------------------------------------------------------------
63
+ function ShellArgsView({ command }) {
64
+ const normalize = useSandboxNormalize();
65
+ return (_jsx("div", { className: "rounded-md border border-border bg-[var(--stgm-terminal-bg,#1a1a2e)] p-2.5", children: _jsxs("pre", { className: "whitespace-pre-wrap break-words font-mono text-xs text-[var(--stgm-terminal-fg,#e0e0e0)]", children: [_jsxs("span", { className: "select-none text-[var(--stgm-terminal-prompt,#6b7280)]", children: ["$", " "] }), normalize(command)] }) }));
66
+ }
67
+ function FileArgsView({ path, category, args, }) {
68
+ const writeContent = useMemo(() => {
69
+ if (category !== "write" && category !== "edit")
70
+ return null;
71
+ if (!args)
72
+ return null;
73
+ return extractWriteContentFromArgs(args);
74
+ }, [category, args]);
75
+ return (_jsxs("div", { className: "space-y-1.5", children: [_jsxs("div", { className: "flex items-center gap-1.5 text-xs", children: [_jsx(FilePathIcon, {}), _jsx(FilePathLink, { path: path, className: "text-xs" })] }), writeContent && (_jsx(CollapsibleCode, { label: "Content", content: writeContent }))] }));
76
+ }
77
+ function SearchArgsView({ pattern }) {
78
+ return (_jsxs("div", { className: "flex items-center gap-1.5 text-xs", children: [_jsx("span", { className: "text-muted-foreground", children: "Pattern:" }), _jsx("code", { className: "rounded bg-muted px-1.5 py-0.5 font-mono text-foreground", children: pattern })] }));
79
+ }
80
+ function McpArgsPreview({ toolName, args, mcpServerSlug, }) {
81
+ return (_jsxs("div", { className: "space-y-2", children: [_jsx(McpMetadataRow, { mcpServerSlug: mcpServerSlug, toolName: toolName, duration: null }), args && Object.keys(args).length > 0 && _jsx(McpArgsView, { args: args })] }));
82
+ }
83
+ function GenericArgsView({ args }) {
84
+ return (_jsx(CollapsibleCode, { label: "Arguments", content: formatJson(args) }));
85
+ }
86
+ // ---------------------------------------------------------------------------
87
+ // Utilities
88
+ // ---------------------------------------------------------------------------
89
+ const WRITE_CONTENT_FIELDS = [
90
+ "contents",
91
+ "content",
92
+ "file_content",
93
+ "new_text",
94
+ "new_string",
95
+ "replacement",
96
+ ];
97
+ function extractWriteContentFromArgs(args) {
98
+ for (const field of WRITE_CONTENT_FIELDS) {
99
+ const val = args[field];
100
+ if (typeof val === "string" && val.length > 0)
101
+ return val;
102
+ }
103
+ return null;
104
+ }
105
+ function extractPrimaryArgValue(args, info) {
106
+ if (!args)
107
+ return null;
108
+ const tryField = (field) => {
109
+ const val = args[field];
110
+ if (typeof val === "string" && val.length > 0)
111
+ return val;
112
+ return null;
113
+ };
114
+ if (info.primaryArgField) {
115
+ const v = tryField(info.primaryArgField);
116
+ if (v)
117
+ return v;
118
+ }
119
+ for (const fb of info.fallbackArgFields) {
120
+ const v = tryField(fb);
121
+ if (v)
122
+ return v;
123
+ }
124
+ if (info.category === "unknown" || info.category === "mcp") {
125
+ const keys = Object.keys(args);
126
+ if (keys.length > 0) {
127
+ const val = args[keys[0]];
128
+ if (typeof val === "string")
129
+ return val;
130
+ }
131
+ }
132
+ return null;
133
+ }
134
+ //# sourceMappingURL=ToolArgsView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolArgsView.js","sourceRoot":"","sources":["../../src/execution/ToolArgsView.tsx"],"names":[],"mappings":"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"}
@@ -7,11 +7,18 @@ export interface ToolCallDetailProps {
7
7
  * Renders the detail panel for a single tool call with
8
8
  * category-specific visual treatments.
9
9
  *
10
- * - **Shell tools**: terminal-style code block for command + output
11
- * - **File tools (read/write/edit)**: file path header + content block
12
- * - **Search tools (grep/glob)**: pattern header + results list
10
+ * Arguments are rendered through the shared {@link ToolArgsView}
11
+ * dispatch (same component used by {@link ApprovalCard}), ensuring
12
+ * visual parity between pre-execution approval previews and
13
+ * post-execution detail views. Result/output sections are layered
14
+ * on top by this component.
15
+ *
16
+ * - **Shell tools**: terminal-style command + output
17
+ * - **File tools (read/write/edit/delete)**: file path + content + result
18
+ * - **Search tools (grep/glob)**: pattern + results
13
19
  * - **Think**: muted italic thought block
14
- * - **Unknown/MCP tools**: generic args + result JSON rendering
20
+ * - **MCP tools**: structured args + parsed result via {@link McpToolDetail}
21
+ * - **Unknown tools**: generic args + result JSON rendering
15
22
  *
16
23
  * Used inside {@link ToolCallItem} when expanded, but also
17
24
  * independently importable by platform builders who compose
@@ -1 +1 @@
1
- {"version":3,"file":"ToolCallDetail.d.ts","sourceRoot":"","sources":["../../src/execution/ToolCallDetail.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iEAAiE,CAAC;AAMhG,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAID;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,mBAAmB,2CAkB1E;AAqXD;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB,MAAM,GAAG,IAAI,CAiBf"}
1
+ {"version":3,"file":"ToolCallDetail.d.ts","sourceRoot":"","sources":["../../src/execution/ToolCallDetail.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iEAAiE,CAAC;AAahG,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,mBAAmB,2CAkB1E;AAoMD;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB,MAAM,GAAG,IAAI,CAiBf"}
@@ -1,20 +1,28 @@
1
1
  "use client";
2
2
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
- import { useState } from "react";
4
3
  import { ToolCallStatus } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
5
4
  import { cn } from "@stigmer/theme";
6
- import { resolveToolCategory, extractPrimaryArg } from "./tool-categories";
7
- import { FilePathLink } from "./FilePathLink";
8
- const TRUNCATION_LINE_LIMIT = 10;
5
+ import { resolveToolCategory } from "./tool-categories";
6
+ import { McpToolDetail } from "./McpToolDetail";
7
+ import { useSandboxNormalize } from "./SandboxContext";
8
+ import { ToolArgsView } from "./ToolArgsView";
9
+ import { CollapsibleCode, CollapsiblePre, formatResult, } from "./tool-rendering-primitives";
9
10
  /**
10
11
  * Renders the detail panel for a single tool call with
11
12
  * category-specific visual treatments.
12
13
  *
13
- * - **Shell tools**: terminal-style code block for command + output
14
- * - **File tools (read/write/edit)**: file path header + content block
15
- * - **Search tools (grep/glob)**: pattern header + results list
14
+ * Arguments are rendered through the shared {@link ToolArgsView}
15
+ * dispatch (same component used by {@link ApprovalCard}), ensuring
16
+ * visual parity between pre-execution approval previews and
17
+ * post-execution detail views. Result/output sections are layered
18
+ * on top by this component.
19
+ *
20
+ * - **Shell tools**: terminal-style command + output
21
+ * - **File tools (read/write/edit/delete)**: file path + content + result
22
+ * - **Search tools (grep/glob)**: pattern + results
16
23
  * - **Think**: muted italic thought block
17
- * - **Unknown/MCP tools**: generic args + result JSON rendering
24
+ * - **MCP tools**: structured args + parsed result via {@link McpToolDetail}
25
+ * - **Unknown tools**: generic args + result JSON rendering
18
26
  *
19
27
  * Used inside {@link ToolCallItem} when expanded, but also
20
28
  * independently importable by platform builders who compose
@@ -26,12 +34,18 @@ const TRUNCATION_LINE_LIMIT = 10;
26
34
  * ```
27
35
  */
28
36
  export function ToolCallDetail({ toolCall, className }) {
29
- const category = resolveToolCategory(toolCall.name);
37
+ const category = resolveToolCategory(toolCall.name, toolCall.mcpServerSlug);
30
38
  const isFailed = toolCall.status === ToolCallStatus.TOOL_CALL_FAILED;
31
39
  return (_jsxs("div", { className: cn("space-y-2 text-xs", className), children: [_jsx(CategoryRenderer, { toolCall: toolCall, categoryName: category.category }), isFailed && toolCall.error && (_jsxs("div", { className: "space-y-1", children: [_jsx("span", { className: "font-medium text-destructive", children: "Error" }), _jsx("pre", { className: "whitespace-pre-wrap break-words rounded-md border border-destructive/20 bg-destructive/5 p-2 font-mono text-destructive", children: toolCall.error })] }))] }));
32
40
  }
33
41
  // ---------------------------------------------------------------------------
34
42
  // Category-specific renderers
43
+ //
44
+ // Each renderer composes:
45
+ // MetadataRow (duration, slug) + ToolArgsView (shared args) + result section
46
+ //
47
+ // Think and MCP have fully custom rendering that doesn't fit the
48
+ // MetadataRow + ToolArgsView + Result pattern.
35
49
  // ---------------------------------------------------------------------------
36
50
  function CategoryRenderer({ toolCall, categoryName, }) {
37
51
  switch (categoryName) {
@@ -50,70 +64,38 @@ function CategoryRenderer({ toolCall, categoryName, }) {
50
64
  return _jsx(SearchToolDetail, { toolCall: toolCall });
51
65
  case "think":
52
66
  return _jsx(ThinkToolDetail, { toolCall: toolCall });
67
+ case "mcp":
68
+ return _jsx(McpToolDetail, { toolCall: toolCall });
53
69
  default:
54
70
  return _jsx(GenericToolDetail, { toolCall: toolCall });
55
71
  }
56
72
  }
57
- /**
58
- * Terminal-style rendering for shell/execute tools.
59
- * Shows the command in a dark terminal block and output below.
60
- */
61
73
  function ShellToolDetail({ toolCall }) {
62
- const command = extractPrimaryArg(toolCall);
63
74
  const duration = formatDuration(toolCall.startedAt, toolCall.completedAt);
64
- return (_jsxs(_Fragment, { children: [_jsx(MetadataRow, { toolCall: toolCall, duration: duration }), command && (_jsxs("div", { className: "space-y-1", children: [_jsx("span", { className: "font-medium text-muted-foreground", children: "Command" }), _jsx("div", { className: "rounded-md border border-border bg-[var(--stgm-terminal-bg,#1a1a2e)] p-2.5", children: _jsxs("pre", { className: "whitespace-pre-wrap break-words font-mono text-[var(--stgm-terminal-fg,#e0e0e0)]", children: [_jsx("span", { className: "select-none text-[var(--stgm-terminal-prompt,#6b7280)]", children: "$ " }), command] }) })] })), toolCall.result && (_jsxs("div", { className: "space-y-1", children: [_jsx("span", { className: "font-medium text-muted-foreground", children: "Output" }), _jsx("div", { className: "rounded-md border border-border bg-[var(--stgm-terminal-bg,#1a1a2e)] p-2.5", children: _jsx(CollapsiblePre, { content: toolCall.result, className: "text-[var(--stgm-terminal-fg,#e0e0e0)]" }) })] }))] }));
75
+ const normalize = useSandboxNormalize();
76
+ return (_jsxs(_Fragment, { children: [_jsx(MetadataRow, { toolCall: toolCall, duration: duration }), _jsx(ToolArgsView, { toolName: toolCall.name, args: toolCall.args, mcpServerSlug: toolCall.mcpServerSlug }), toolCall.result && (_jsxs("div", { className: "space-y-1", children: [_jsx("span", { className: "font-medium text-muted-foreground", children: "Output" }), _jsx("div", { className: "rounded-md border border-border bg-[var(--stgm-terminal-bg,#1a1a2e)] p-2.5", children: _jsx(CollapsiblePre, { content: normalize(toolCall.result), className: "text-[var(--stgm-terminal-fg,#e0e0e0)]" }) })] }))] }));
65
77
  }
66
78
  /**
67
- * File-oriented rendering for read/write/edit/delete tools.
68
- *
69
- * For **read** mode: shows only the metadata row and a clickable
70
- * path. Content is intentionally omitted — the Read tool's purpose
71
- * is for the *agent* to consume the file, and the content is either
72
- * truncated, omitted, or simply noise for the user. The clickable
73
- * path provides direct access to the source file.
74
- *
75
- * For **write/edit/delete** modes: shows the clickable path followed
76
- * by the content block (what was written/edited) and any result
77
- * confirmation.
79
+ * For **read**: metadata + path only (content is noise for the user).
80
+ * For **write/edit/delete**: metadata + path + content (via ToolArgsView) + result.
78
81
  */
79
82
  function FileToolDetail({ toolCall, mode, }) {
80
- const filePath = extractPrimaryArg(toolCall);
81
83
  const duration = formatDuration(toolCall.startedAt, toolCall.completedAt);
82
- if (mode === "read") {
83
- return (_jsxs(_Fragment, { children: [_jsx(MetadataRow, { toolCall: toolCall, duration: duration }), filePath && (_jsxs("div", { className: "flex items-center gap-1.5", children: [_jsx(FilePathIcon, {}), _jsx(FilePathLink, { path: filePath, className: "text-xs" })] }))] }));
84
- }
85
- const contentFromArgs = mode === "write" || mode === "edit"
86
- ? extractWriteContent(toolCall)
87
- : null;
88
- const displayContent = contentFromArgs || toolCall.result;
89
- return (_jsxs(_Fragment, { children: [_jsx(MetadataRow, { toolCall: toolCall, duration: duration }), filePath && (_jsxs("div", { className: "flex items-center gap-1.5", children: [_jsx(FilePathIcon, {}), _jsx(FilePathLink, { path: filePath, className: "text-xs" })] })), displayContent && (_jsx(CollapsibleCode, { label: mode === "delete" ? "Result" : "Content", content: formatResult(displayContent) })), contentFromArgs && toolCall.result && (_jsx(CollapsibleCode, { label: "Result", content: formatResult(toolCall.result) }))] }));
84
+ return (_jsxs(_Fragment, { children: [_jsx(MetadataRow, { toolCall: toolCall, duration: duration }), _jsx(ToolArgsView, { toolName: toolCall.name, args: toolCall.args, mcpServerSlug: toolCall.mcpServerSlug }), mode !== "read" && toolCall.result && (_jsx(CollapsibleCode, { label: "Result", content: formatResult(toolCall.result) }))] }));
90
85
  }
91
- /**
92
- * Search/discovery rendering for grep, glob, list tools.
93
- * Shows search pattern/path and results.
94
- */
95
86
  function SearchToolDetail({ toolCall }) {
96
- const pattern = extractPrimaryArg(toolCall);
97
87
  const duration = formatDuration(toolCall.startedAt, toolCall.completedAt);
98
- return (_jsxs(_Fragment, { children: [_jsx(MetadataRow, { toolCall: toolCall, duration: duration }), pattern && (_jsxs("div", { className: "flex items-center gap-1.5", children: [_jsx("span", { className: "font-medium text-muted-foreground", children: "Pattern:" }), _jsx("span", { className: "font-mono text-foreground", children: pattern })] })), toolCall.result && (_jsx(CollapsibleCode, { label: "Results", content: formatResult(toolCall.result) }))] }));
88
+ return (_jsxs(_Fragment, { children: [_jsx(MetadataRow, { toolCall: toolCall, duration: duration }), _jsx(ToolArgsView, { toolName: toolCall.name, args: toolCall.args, mcpServerSlug: toolCall.mcpServerSlug }), toolCall.result && (_jsx(CollapsibleCode, { label: "Results", content: formatResult(toolCall.result) }))] }));
99
89
  }
100
- /**
101
- * Thought rendering. Muted, italic presentation distinct from
102
- * regular tool output.
103
- */
104
90
  function ThinkToolDetail({ toolCall }) {
105
91
  const thought = toolCall.args?.["thought"] || toolCall.result;
106
92
  if (!thought)
107
93
  return null;
108
94
  return (_jsx("div", { className: "rounded-md border border-border/50 bg-muted/20 p-3", children: _jsx(CollapsiblePre, { content: thought, className: "italic text-muted-foreground whitespace-pre-wrap" }) }));
109
95
  }
110
- /**
111
- * Fallback rendering for unknown/MCP tools. Preserves the original
112
- * generic args + result JSON display.
113
- */
114
96
  function GenericToolDetail({ toolCall }) {
115
97
  const duration = formatDuration(toolCall.startedAt, toolCall.completedAt);
116
- return (_jsxs(_Fragment, { children: [_jsx(MetadataRow, { toolCall: toolCall, duration: duration }), toolCall.args && Object.keys(toolCall.args).length > 0 && (_jsx(CollapsibleCode, { label: "Arguments", content: formatJson(toolCall.args) })), toolCall.result && (_jsx(CollapsibleCode, { label: "Result", content: formatResult(toolCall.result) }))] }));
98
+ return (_jsxs(_Fragment, { children: [_jsx(MetadataRow, { toolCall: toolCall, duration: duration }), _jsx(ToolArgsView, { toolName: toolCall.name, args: toolCall.args, mcpServerSlug: toolCall.mcpServerSlug }), toolCall.result && (_jsx(CollapsibleCode, { label: "Result", content: formatResult(toolCall.result) }))] }));
117
99
  }
118
100
  // ---------------------------------------------------------------------------
119
101
  // Shared sub-components
@@ -124,60 +106,9 @@ function MetadataRow({ toolCall, duration, }) {
124
106
  return null;
125
107
  return (_jsxs("div", { className: "flex flex-wrap items-center gap-x-3 gap-y-1 text-muted-foreground", children: [toolCall.mcpServerSlug && (_jsx("span", { className: "rounded bg-muted px-1.5 py-0.5 font-mono", children: toolCall.mcpServerSlug })), duration && _jsx("span", { children: duration })] }));
126
108
  }
127
- function CollapsibleCode({ label, content, }) {
128
- const lines = content.split("\n");
129
- const needsTruncation = lines.length > TRUNCATION_LINE_LIMIT;
130
- const [isExpanded, setIsExpanded] = useState(false);
131
- const displayContent = needsTruncation && !isExpanded
132
- ? lines.slice(0, TRUNCATION_LINE_LIMIT).join("\n") + "\n\u2026"
133
- : content;
134
- return (_jsxs("div", { className: "space-y-1", children: [_jsx("span", { className: "font-medium text-muted-foreground", children: label }), _jsx("pre", { className: "max-h-80 overflow-auto whitespace-pre-wrap break-words rounded-md border border-border bg-muted/40 p-2 font-mono text-foreground", children: displayContent }), needsTruncation && (_jsx("button", { type: "button", onClick: () => setIsExpanded((v) => !v), className: "text-primary hover:text-primary/80 text-xs font-medium transition-colors", children: isExpanded
135
- ? "Show less"
136
- : `Show all ${lines.length} lines` }))] }));
137
- }
138
- function CollapsiblePre({ content, className, }) {
139
- const lines = content.split("\n");
140
- const needsTruncation = lines.length > TRUNCATION_LINE_LIMIT;
141
- const [isExpanded, setIsExpanded] = useState(false);
142
- const displayContent = needsTruncation && !isExpanded
143
- ? lines.slice(0, TRUNCATION_LINE_LIMIT).join("\n") + "\n\u2026"
144
- : content;
145
- return (_jsxs(_Fragment, { children: [_jsx("pre", { className: cn("whitespace-pre-wrap break-words font-mono", className), children: displayContent }), needsTruncation && (_jsx("button", { type: "button", onClick: () => setIsExpanded((v) => !v), className: "mt-1 text-primary hover:text-primary/80 text-xs font-medium transition-colors", children: isExpanded ? "Show less" : `Show all ${lines.length} lines` }))] }));
146
- }
147
- function FilePathIcon() {
148
- return (_jsxs("svg", { width: "10", height: "10", viewBox: "0 0 12 12", fill: "none", stroke: "currentColor", strokeWidth: "1.2", strokeLinecap: "round", strokeLinejoin: "round", className: "shrink-0 text-muted-foreground", "aria-hidden": "true", children: [_jsx("path", { d: "M7 1H3C2.45 1 2 1.45 2 2V10C2 10.55 2.45 11 3 11H9C9.55 11 10 10.55 10 10V4L7 1Z" }), _jsx("path", { d: "M7 1V4H10" })] }));
149
- }
150
109
  // ---------------------------------------------------------------------------
151
110
  // Utilities
152
111
  // ---------------------------------------------------------------------------
153
- function extractWriteContent(toolCall) {
154
- if (!toolCall.args)
155
- return null;
156
- const fields = ["contents", "content", "file_content", "new_text", "new_string", "replacement"];
157
- for (const field of fields) {
158
- const val = toolCall.args[field];
159
- if (typeof val === "string" && val.length > 0)
160
- return val;
161
- }
162
- return null;
163
- }
164
- function formatJson(obj) {
165
- try {
166
- return JSON.stringify(obj, null, 2);
167
- }
168
- catch {
169
- return String(obj);
170
- }
171
- }
172
- function formatResult(result) {
173
- try {
174
- const parsed = JSON.parse(result);
175
- return JSON.stringify(parsed, null, 2);
176
- }
177
- catch {
178
- return result;
179
- }
180
- }
181
112
  /**
182
113
  * Returns a human-readable duration string from two ISO 8601
183
114
  * timestamps. Returns `null` when either timestamp is empty or
@@ -1 +1 @@
1
- {"version":3,"file":"ToolCallDetail.js","sourceRoot":"","sources":["../../src/execution/ToolCallDetail.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ToolCallDetail.js","sourceRoot":"","sources":["../../src/execution/ToolCallDetail.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ToolCallGroup.d.ts","sourceRoot":"","sources":["../../src/execution/ToolCallGroup.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iEAAiE,CAAC;AAChG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kEAAkE,CAAC;AAS1G,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,SAAS,EAAE,SAAS,QAAQ,EAAE,CAAC;IACxC;;;;;OAKG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAC3D;;;;OAIG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,QAAQ,EAAE,KAAK,MAAM,CAAC;IACpE;;OAEG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAgGD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,aAAa,CAAC,EAC5B,SAAS,EACT,kBAAkB,EAClB,aAAa,EACb,eAAuB,EACvB,SAAS,GACV,EAAE,kBAAkB,kDAwFpB"}
1
+ {"version":3,"file":"ToolCallGroup.d.ts","sourceRoot":"","sources":["../../src/execution/ToolCallGroup.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iEAAiE,CAAC;AAChG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kEAAkE,CAAC;AAS1G,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,SAAS,EAAE,SAAS,QAAQ,EAAE,CAAC;IACxC;;;;;OAKG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAC3D;;;;OAIG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,QAAQ,EAAE,KAAK,MAAM,CAAC;IACpE;;OAEG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAiGD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,aAAa,CAAC,EAC5B,SAAS,EACT,kBAAkB,EAClB,aAAa,EACb,eAAuB,EACvB,SAAS,GACV,EAAE,kBAAkB,kDAwFpB"}
@@ -51,8 +51,9 @@ function deriveAggregateStatus(toolCalls) {
51
51
  }
52
52
  function defaultFormatSummary(toolCalls, status) {
53
53
  if (toolCalls.length === 1) {
54
- const cat = resolveToolCategory(toolCalls[0].name);
55
- const primary = extractPrimaryArg(toolCalls[0]);
54
+ const tc = toolCalls[0];
55
+ const cat = resolveToolCategory(tc.name, tc.mcpServerSlug);
56
+ const primary = extractPrimaryArg(tc);
56
57
  if (primary) {
57
58
  const truncated = primary.length > 60 ? primary.slice(0, 57) + "\u2026" : primary;
58
59
  return `${cat.label}: ${truncated}`;
@@ -1 +1 @@
1
- {"version":3,"file":"ToolCallGroup.js","sourceRoot":"","sources":["../../src/execution/ToolCallGroup.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ToolCallGroup.js","sourceRoot":"","sources":["../../src/execution/ToolCallGroup.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import type { ToolCall } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/message_pb";
2
2
  import type { SubAgentExecution } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/subagent_pb";
3
+ import { type ToolCategory } from "./tool-categories";
3
4
  export interface ToolCallItemProps {
4
5
  readonly toolCall: ToolCall;
5
6
  /**
@@ -36,4 +37,5 @@ export interface ToolCallItemProps {
36
37
  * ```
37
38
  */
38
39
  export declare function ToolCallItem({ toolCall, subAgentExecution, defaultExpanded, className, }: ToolCallItemProps): import("react/jsx-runtime").JSX.Element;
40
+ export declare const CATEGORY_ICON: Record<ToolCategory, () => React.JSX.Element>;
39
41
  //# sourceMappingURL=ToolCallItem.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ToolCallItem.d.ts","sourceRoot":"","sources":["../../src/execution/ToolCallItem.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iEAAiE,CAAC;AAChG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kEAAkE,CAAC;AAe1G,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACtD;;OAEG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,iBAAiB,EACjB,eAAuB,EACvB,SAAS,GACV,EAAE,iBAAiB,2CAmInB"}
1
+ {"version":3,"file":"ToolCallItem.d.ts","sourceRoot":"","sources":["../../src/execution/ToolCallItem.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iEAAiE,CAAC;AAChG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kEAAkE,CAAC;AAS1G,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,mBAAmB,CAAC;AAG3B,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACtD;;OAEG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,iBAAiB,EACjB,eAAuB,EACvB,SAAS,GACV,EAAE,iBAAiB,2CAwInB;AAkED,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,OAAO,CAYvE,CAAC"}
@@ -7,6 +7,7 @@ import { ToolCallDetail, formatDuration } from "./ToolCallDetail";
7
7
  import { SubAgentSection } from "./SubAgentSection";
8
8
  import { FilePathLink } from "./FilePathLink";
9
9
  import { resolveToolCategory, extractPrimaryArg, } from "./tool-categories";
10
+ import { useSandboxNormalize } from "./SandboxContext";
10
11
  /**
11
12
  * Renders a single tool call as a row in the tool call group.
12
13
  *
@@ -34,12 +35,13 @@ export function ToolCallItem({ toolCall, subAgentExecution, defaultExpanded = fa
34
35
  const StatusIcon = STATUS_ICON[status];
35
36
  const duration = formatDuration(toolCall.startedAt, toolCall.completedAt);
36
37
  const isSubAgent = subAgentExecution != null;
37
- const categoryInfo = resolveToolCategory(toolCall.name);
38
+ const categoryInfo = resolveToolCategory(toolCall.name, toolCall.mcpServerSlug);
38
39
  const CategoryIcon = CATEGORY_ICON[categoryInfo.category];
39
40
  const primaryArg = extractPrimaryArg(toolCall);
40
41
  const displayLabel = isSubAgent
41
42
  ? subAgentExecution.subject || subAgentExecution.name || categoryInfo.label
42
43
  : categoryInfo.label;
44
+ const normalize = useSandboxNormalize();
43
45
  const approvalBadge = getApprovalBadge(toolCall);
44
46
  // Completed/skipped Read items are non-expandable — the clickable
45
47
  // path in the row is the complete information. Failed reads remain
@@ -52,7 +54,11 @@ export function ToolCallItem({ toolCall, subAgentExecution, defaultExpanded = fa
52
54
  if (isNonExpandableRead) {
53
55
  return (_jsx("div", { className: cn("border-b border-border/50 last:border-b-0", className), children: _jsxs("div", { className: "flex w-full items-center gap-2 px-2.5 py-1.5 text-xs", children: [_jsx("span", { className: "shrink-0 text-muted-foreground", "aria-hidden": "true", children: _jsx(CategoryIcon, {}) }), _jsxs("span", { className: "min-w-0 flex-1 flex items-center gap-1.5 overflow-hidden", children: [_jsx("span", { className: "shrink-0 font-medium text-foreground", children: displayLabel }), primaryArg && (_jsx(FilePathLink, { path: primaryArg, className: "min-w-0 text-xs" }))] }), trailingContent] }) }));
54
56
  }
55
- const displaySubtitle = isSubAgent ? null : primaryArg;
57
+ const displaySubtitle = isSubAgent
58
+ ? null
59
+ : categoryInfo.category === "shell" && primaryArg
60
+ ? normalize(primaryArg)
61
+ : primaryArg;
56
62
  return (_jsxs("div", { className: cn("border-b border-border/50 last:border-b-0", className), children: [_jsxs("button", { type: "button", "aria-expanded": expanded, onClick: () => setExpanded((v) => !v), className: cn("flex w-full items-center gap-2 px-2.5 py-1.5 text-left text-xs transition-colors", "hover:bg-muted/50", expanded && "bg-muted/30"), children: [_jsx("span", { className: "shrink-0 text-muted-foreground", "aria-hidden": "true", children: _jsx(CategoryIcon, {}) }), _jsxs("span", { className: "min-w-0 flex-1 flex items-baseline gap-1.5 overflow-hidden", children: [_jsx("span", { className: "shrink-0 font-medium text-foreground", children: displayLabel }), displaySubtitle && (_jsx("span", { className: "min-w-0 truncate text-muted-foreground font-mono", children: displaySubtitle }))] }), trailingContent, _jsx(ChevronIcon, { expanded: expanded })] }), expanded && (_jsx("div", { className: "px-2.5 pb-2.5 pt-1", children: isSubAgent ? (_jsx(SubAgentSection, { subAgentExecution: subAgentExecution })) : (_jsx(ToolCallDetail, { toolCall: toolCall })) }))] }));
57
63
  }
58
64
  function getApprovalBadge(toolCall) {
@@ -99,7 +105,7 @@ const STATUS_COLOR = {
99
105
  // ---------------------------------------------------------------------------
100
106
  // Category-specific icons (inline SVG, SDK pattern)
101
107
  // ---------------------------------------------------------------------------
102
- const CATEGORY_ICON = {
108
+ export const CATEGORY_ICON = {
103
109
  shell: TerminalIcon,
104
110
  read: FileIcon,
105
111
  write: FilePenIcon,
@@ -109,6 +115,7 @@ const CATEGORY_ICON = {
109
115
  list: FolderIcon,
110
116
  think: BrainIcon,
111
117
  "sub-agent": BotIcon,
118
+ mcp: McpPlugIcon,
112
119
  unknown: WrenchIcon,
113
120
  };
114
121
  function TerminalIcon() {
@@ -138,6 +145,9 @@ function BotIcon() {
138
145
  function WrenchIcon() {
139
146
  return (_jsx("svg", { width: "12", height: "12", viewBox: "0 0 12 12", fill: "none", stroke: "currentColor", strokeWidth: "1.2", strokeLinecap: "round", strokeLinejoin: "round", children: _jsx("path", { d: "M8.5 2C7.67 2 7 2.67 7 3.5C7 3.78 7.08 4.04 7.22 4.26L3.74 7.74C3.52 7.6 3.27 7.5 3 7.5C2.17 7.5 1.5 8.17 1.5 9C1.5 9.83 2.17 10.5 3 10.5C3.83 10.5 4.5 9.83 4.5 9C4.5 8.73 4.4 8.48 4.26 8.26L7.74 4.78C7.96 4.92 8.22 5 8.5 5C9.33 5 10 4.33 10 3.5C10 3.22 9.92 2.96 9.78 2.74L8.5 4L7.5 3L8.76 1.72C8.54 1.58 8.28 1.5 8 1.5" }) }));
140
147
  }
148
+ function McpPlugIcon() {
149
+ return (_jsxs("svg", { width: "12", height: "12", viewBox: "0 0 12 12", fill: "none", stroke: "currentColor", strokeWidth: "1.2", strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("path", { d: "M4 1.5V4" }), _jsx("path", { d: "M8 1.5V4" }), _jsx("path", { d: "M2.5 4H9.5V6.5C9.5 8.43 7.93 10 6 10C4.07 10 2.5 8.43 2.5 6.5V4Z" }), _jsx("path", { d: "M6 10V11" })] }));
150
+ }
141
151
  // ---------------------------------------------------------------------------
142
152
  // Status icons
143
153
  // ---------------------------------------------------------------------------