@stigmer/react 2.0.0 → 3.0.0

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 (705) hide show
  1. package/README.md +64 -2
  2. package/agent/AgentDetailView.d.ts +26 -1
  3. package/agent/AgentDetailView.d.ts.map +1 -1
  4. package/agent/AgentDetailView.js +9 -2
  5. package/agent/AgentDetailView.js.map +1 -1
  6. package/agent/useAgentSetup.d.ts +19 -0
  7. package/agent/useAgentSetup.d.ts.map +1 -1
  8. package/agent/useAgentSetup.js +15 -1
  9. package/agent/useAgentSetup.js.map +1 -1
  10. package/agent-instance/AgentInstanceDetailPanel.d.ts +26 -0
  11. package/agent-instance/AgentInstanceDetailPanel.d.ts.map +1 -0
  12. package/agent-instance/AgentInstanceDetailPanel.js +94 -0
  13. package/agent-instance/AgentInstanceDetailPanel.js.map +1 -0
  14. package/agent-instance/AgentInstanceEmptyState.d.ts +17 -0
  15. package/agent-instance/AgentInstanceEmptyState.d.ts.map +1 -0
  16. package/agent-instance/AgentInstanceEmptyState.js +21 -0
  17. package/agent-instance/AgentInstanceEmptyState.js.map +1 -0
  18. package/agent-instance/AgentInstanceList.d.ts +38 -0
  19. package/agent-instance/AgentInstanceList.d.ts.map +1 -0
  20. package/agent-instance/AgentInstanceList.js +75 -0
  21. package/agent-instance/AgentInstanceList.js.map +1 -0
  22. package/agent-instance/CreateAgentInstanceDialog.d.ts +24 -0
  23. package/agent-instance/CreateAgentInstanceDialog.d.ts.map +1 -0
  24. package/agent-instance/CreateAgentInstanceDialog.js +78 -0
  25. package/agent-instance/CreateAgentInstanceDialog.js.map +1 -0
  26. package/agent-instance/index.d.ts +14 -0
  27. package/agent-instance/index.d.ts.map +1 -1
  28. package/agent-instance/index.js +7 -0
  29. package/agent-instance/index.js.map +1 -1
  30. package/agent-instance/useAgentInstances.d.ts +34 -0
  31. package/agent-instance/useAgentInstances.d.ts.map +1 -0
  32. package/agent-instance/useAgentInstances.js +37 -0
  33. package/agent-instance/useAgentInstances.js.map +1 -0
  34. package/agent-instance/useDeleteAgentInstance.d.ts +42 -0
  35. package/agent-instance/useDeleteAgentInstance.d.ts.map +1 -0
  36. package/agent-instance/useDeleteAgentInstance.js +48 -0
  37. package/agent-instance/useDeleteAgentInstance.js.map +1 -0
  38. package/agent-instance/useUpdateAgentInstance.d.ts +36 -0
  39. package/agent-instance/useUpdateAgentInstance.d.ts.map +1 -0
  40. package/agent-instance/useUpdateAgentInstance.js +47 -0
  41. package/agent-instance/useUpdateAgentInstance.js.map +1 -0
  42. package/composer/SessionComposer.d.ts +18 -0
  43. package/composer/SessionComposer.d.ts.map +1 -1
  44. package/composer/SessionComposer.js +27 -3
  45. package/composer/SessionComposer.js.map +1 -1
  46. package/execution/ApprovalCard.d.ts.map +1 -1
  47. package/execution/ApprovalCard.js +6 -3
  48. package/execution/ApprovalCard.js.map +1 -1
  49. package/execution/MessageThread.d.ts +3 -0
  50. package/execution/MessageThread.d.ts.map +1 -1
  51. package/execution/MessageThread.js +12 -2
  52. package/execution/MessageThread.js.map +1 -1
  53. package/execution/PlanArtifactCard.d.ts +29 -0
  54. package/execution/PlanArtifactCard.d.ts.map +1 -0
  55. package/execution/PlanArtifactCard.js +59 -0
  56. package/execution/PlanArtifactCard.js.map +1 -0
  57. package/execution/ResultView.d.ts +24 -0
  58. package/execution/ResultView.d.ts.map +1 -0
  59. package/execution/ResultView.js +152 -0
  60. package/execution/ResultView.js.map +1 -0
  61. package/execution/SubAgentSection.js +1 -1
  62. package/execution/SubAgentSection.js.map +1 -1
  63. package/execution/ToolCallDetail.d.ts +13 -19
  64. package/execution/ToolCallDetail.d.ts.map +1 -1
  65. package/execution/ToolCallDetail.js +42 -70
  66. package/execution/ToolCallDetail.js.map +1 -1
  67. package/execution/ToolCallGroup.js +2 -2
  68. package/execution/ToolCallGroup.js.map +1 -1
  69. package/execution/ToolCallItem.d.ts.map +1 -1
  70. package/execution/ToolCallItem.js +13 -9
  71. package/execution/ToolCallItem.js.map +1 -1
  72. package/execution/index.d.ts +7 -1
  73. package/execution/index.d.ts.map +1 -1
  74. package/execution/index.js +4 -1
  75. package/execution/index.js.map +1 -1
  76. package/execution/tool-categories.d.ts +30 -21
  77. package/execution/tool-categories.d.ts.map +1 -1
  78. package/execution/tool-categories.js +57 -49
  79. package/execution/tool-categories.js.map +1 -1
  80. package/execution/tool-presenter.d.ts +60 -0
  81. package/execution/tool-presenter.d.ts.map +1 -0
  82. package/execution/tool-presenter.js +81 -0
  83. package/execution/tool-presenter.js.map +1 -0
  84. package/execution/useCreateAgentExecution.d.ts +9 -0
  85. package/execution/useCreateAgentExecution.d.ts.map +1 -1
  86. package/execution/useCreateAgentExecution.js +1 -0
  87. package/execution/useCreateAgentExecution.js.map +1 -1
  88. package/index.d.ts +6 -5
  89. package/index.d.ts.map +1 -1
  90. package/index.js +7 -4
  91. package/index.js.map +1 -1
  92. package/library/detect-plan-artifact.d.ts +26 -0
  93. package/library/detect-plan-artifact.d.ts.map +1 -0
  94. package/library/detect-plan-artifact.js +37 -0
  95. package/library/detect-plan-artifact.js.map +1 -0
  96. package/library/index.d.ts +1 -0
  97. package/library/index.d.ts.map +1 -1
  98. package/library/index.js +1 -0
  99. package/library/index.js.map +1 -1
  100. package/package.json +4 -4
  101. package/provider.d.ts +5 -3
  102. package/provider.d.ts.map +1 -1
  103. package/provider.js.map +1 -1
  104. package/runner-adapter.d.ts +19 -4
  105. package/runner-adapter.d.ts.map +1 -1
  106. package/runner-adapter.js.map +1 -1
  107. package/session/NewSessionViewer.d.ts +10 -1
  108. package/session/NewSessionViewer.d.ts.map +1 -1
  109. package/session/NewSessionViewer.js +2 -2
  110. package/session/NewSessionViewer.js.map +1 -1
  111. package/session/SessionViewer.d.ts.map +1 -1
  112. package/session/SessionViewer.js +17 -2
  113. package/session/SessionViewer.js.map +1 -1
  114. package/session/useCreateSession.d.ts.map +1 -1
  115. package/session/useCreateSession.js +4 -6
  116. package/session/useCreateSession.js.map +1 -1
  117. package/session/useLocalSessionWorker.d.ts +33 -0
  118. package/session/useLocalSessionWorker.d.ts.map +1 -0
  119. package/session/useLocalSessionWorker.js +65 -0
  120. package/session/useLocalSessionWorker.js.map +1 -0
  121. package/session/useNewSessionFlow.d.ts.map +1 -1
  122. package/session/useNewSessionFlow.js +22 -1
  123. package/session/useNewSessionFlow.js.map +1 -1
  124. package/session/useSessionConversation.d.ts +12 -0
  125. package/session/useSessionConversation.d.ts.map +1 -1
  126. package/session/useSessionConversation.js +11 -0
  127. package/session/useSessionConversation.js.map +1 -1
  128. package/session/useSessionPageFlow.d.ts +23 -0
  129. package/session/useSessionPageFlow.d.ts.map +1 -1
  130. package/session/useSessionPageFlow.js +21 -1
  131. package/session/useSessionPageFlow.js.map +1 -1
  132. package/src/__tests__/runner-adapter.test.tsx +14 -107
  133. package/src/agent/AgentDetailView.tsx +49 -1
  134. package/src/agent/__tests__/useAgentSetup.resolveToInstance.test.tsx +73 -0
  135. package/src/agent/useAgentSetup.ts +48 -1
  136. package/src/agent-instance/AgentInstanceDetailPanel.tsx +359 -0
  137. package/src/agent-instance/AgentInstanceEmptyState.tsx +87 -0
  138. package/src/agent-instance/AgentInstanceList.tsx +329 -0
  139. package/src/agent-instance/CreateAgentInstanceDialog.tsx +258 -0
  140. package/src/agent-instance/__tests__/agent-instance-hooks.test.tsx +213 -0
  141. package/src/agent-instance/index.ts +15 -0
  142. package/src/agent-instance/useAgentInstances.ts +66 -0
  143. package/src/agent-instance/useDeleteAgentInstance.ts +73 -0
  144. package/src/agent-instance/useUpdateAgentInstance.ts +67 -0
  145. package/src/composer/SessionComposer.tsx +54 -2
  146. package/src/execution/ApprovalCard.tsx +22 -3
  147. package/src/execution/MessageThread.tsx +27 -3
  148. package/src/execution/PlanArtifactCard.tsx +257 -0
  149. package/src/execution/ResultView.tsx +366 -0
  150. package/src/execution/SubAgentSection.tsx +5 -0
  151. package/src/execution/ToolCallDetail.tsx +72 -173
  152. package/src/execution/ToolCallGroup.tsx +2 -2
  153. package/src/execution/ToolCallItem.tsx +25 -12
  154. package/src/execution/__tests__/ApprovalCard.test.tsx +99 -0
  155. package/src/execution/__tests__/ResultView.test.tsx +95 -0
  156. package/src/execution/__tests__/subagent-thread-item.test.ts +153 -0
  157. package/src/execution/__tests__/tool-presenter.test.tsx +78 -0
  158. package/src/execution/index.ts +16 -0
  159. package/src/execution/tool-categories.ts +80 -66
  160. package/src/execution/tool-presenter.ts +118 -0
  161. package/src/execution/useCreateAgentExecution.ts +10 -0
  162. package/src/index.ts +32 -1
  163. package/src/library/__tests__/detect-plan-artifact.test.ts +75 -0
  164. package/src/library/detect-plan-artifact.ts +43 -0
  165. package/src/library/index.ts +6 -0
  166. package/src/provider.tsx +5 -3
  167. package/src/runner-adapter.ts +19 -4
  168. package/src/session/NewSessionViewer.tsx +11 -0
  169. package/src/session/SessionViewer.tsx +46 -2
  170. package/src/session/__tests__/group-sessions.test.ts +3 -5
  171. package/src/session/__tests__/useLocalSessionWorker.test.tsx +194 -0
  172. package/src/session/__tests__/useNewSessionFlow.test.tsx +80 -4
  173. package/src/session/__tests__/useSessionConversation.test.tsx +89 -0
  174. package/src/session/__tests__/useSessionPageFlow.autoApprove.test.tsx +149 -0
  175. package/src/session/useCreateSession.ts +4 -7
  176. package/src/session/useLocalSessionWorker.ts +73 -0
  177. package/src/session/useNewSessionFlow.ts +23 -1
  178. package/src/session/useSessionConversation.ts +18 -0
  179. package/src/session/useSessionPageFlow.ts +51 -1
  180. package/src/workflow/__tests__/useWorkflowExecution.test.tsx +2 -2
  181. package/styles.css +1 -1
  182. package/__tests__/hooks.test.d.ts +0 -2
  183. package/__tests__/hooks.test.d.ts.map +0 -1
  184. package/__tests__/hooks.test.js +0 -35
  185. package/__tests__/hooks.test.js.map +0 -1
  186. package/__tests__/runner-adapter.test.d.ts +0 -2
  187. package/__tests__/runner-adapter.test.d.ts.map +0 -1
  188. package/__tests__/runner-adapter.test.js +0 -153
  189. package/__tests__/runner-adapter.test.js.map +0 -1
  190. package/activity/__tests__/useRecentActivity-optimistic.test.d.ts +0 -2
  191. package/activity/__tests__/useRecentActivity-optimistic.test.d.ts.map +0 -1
  192. package/activity/__tests__/useRecentActivity-optimistic.test.js +0 -139
  193. package/activity/__tests__/useRecentActivity-optimistic.test.js.map +0 -1
  194. package/activity/__tests__/useRecentActivity.test.d.ts +0 -2
  195. package/activity/__tests__/useRecentActivity.test.d.ts.map +0 -1
  196. package/activity/__tests__/useRecentActivity.test.js +0 -107
  197. package/activity/__tests__/useRecentActivity.test.js.map +0 -1
  198. package/agent/__tests__/useAgent.test.d.ts +0 -2
  199. package/agent/__tests__/useAgent.test.d.ts.map +0 -1
  200. package/agent/__tests__/useAgent.test.js +0 -86
  201. package/agent/__tests__/useAgent.test.js.map +0 -1
  202. package/agent/__tests__/useDefaultAgent.test.d.ts +0 -2
  203. package/agent/__tests__/useDefaultAgent.test.d.ts.map +0 -1
  204. package/agent/__tests__/useDefaultAgent.test.js +0 -135
  205. package/agent/__tests__/useDefaultAgent.test.js.map +0 -1
  206. package/billing/__tests__/CreditLedgerTable.test.d.ts +0 -2
  207. package/billing/__tests__/CreditLedgerTable.test.d.ts.map +0 -1
  208. package/billing/__tests__/CreditLedgerTable.test.js +0 -74
  209. package/billing/__tests__/CreditLedgerTable.test.js.map +0 -1
  210. package/composer/__tests__/ComposerToolbar-directAction.test.d.ts +0 -2
  211. package/composer/__tests__/ComposerToolbar-directAction.test.d.ts.map +0 -1
  212. package/composer/__tests__/ComposerToolbar-directAction.test.js +0 -64
  213. package/composer/__tests__/ComposerToolbar-directAction.test.js.map +0 -1
  214. package/composer/__tests__/SessionComposer-contract.test.d.ts +0 -2
  215. package/composer/__tests__/SessionComposer-contract.test.d.ts.map +0 -1
  216. package/composer/__tests__/SessionComposer-contract.test.js +0 -87
  217. package/composer/__tests__/SessionComposer-contract.test.js.map +0 -1
  218. package/composer/__tests__/SessionComposer-fileref.test.d.ts +0 -2
  219. package/composer/__tests__/SessionComposer-fileref.test.d.ts.map +0 -1
  220. package/composer/__tests__/SessionComposer-fileref.test.js +0 -132
  221. package/composer/__tests__/SessionComposer-fileref.test.js.map +0 -1
  222. package/composer/__tests__/SessionComposer-memo.test.d.ts +0 -2
  223. package/composer/__tests__/SessionComposer-memo.test.d.ts.map +0 -1
  224. package/composer/__tests__/SessionComposer-memo.test.js +0 -28
  225. package/composer/__tests__/SessionComposer-memo.test.js.map +0 -1
  226. package/composer/__tests__/useComposer.test.d.ts +0 -2
  227. package/composer/__tests__/useComposer.test.d.ts.map +0 -1
  228. package/composer/__tests__/useComposer.test.js +0 -139
  229. package/composer/__tests__/useComposer.test.js.map +0 -1
  230. package/environment/__tests__/systemEnvVars.test.d.ts +0 -2
  231. package/environment/__tests__/systemEnvVars.test.d.ts.map +0 -1
  232. package/environment/__tests__/systemEnvVars.test.js +0 -76
  233. package/environment/__tests__/systemEnvVars.test.js.map +0 -1
  234. package/execution/__tests__/MessageThread.test.d.ts +0 -2
  235. package/execution/__tests__/MessageThread.test.d.ts.map +0 -1
  236. package/execution/__tests__/MessageThread.test.js +0 -164
  237. package/execution/__tests__/MessageThread.test.js.map +0 -1
  238. package/execution/__tests__/PlanCompletionCard.test.d.ts +0 -2
  239. package/execution/__tests__/PlanCompletionCard.test.d.ts.map +0 -1
  240. package/execution/__tests__/PlanCompletionCard.test.js +0 -53
  241. package/execution/__tests__/PlanCompletionCard.test.js.map +0 -1
  242. package/execution/__tests__/buildThreadItems-plan-completion.test.d.ts +0 -2
  243. package/execution/__tests__/buildThreadItems-plan-completion.test.d.ts.map +0 -1
  244. package/execution/__tests__/buildThreadItems-plan-completion.test.js +0 -137
  245. package/execution/__tests__/buildThreadItems-plan-completion.test.js.map +0 -1
  246. package/execution/__tests__/execution-phases.test.d.ts +0 -2
  247. package/execution/__tests__/execution-phases.test.d.ts.map +0 -1
  248. package/execution/__tests__/execution-phases.test.js +0 -25
  249. package/execution/__tests__/execution-phases.test.js.map +0 -1
  250. package/execution/__tests__/file-path-resolver.test.d.ts +0 -2
  251. package/execution/__tests__/file-path-resolver.test.d.ts.map +0 -1
  252. package/execution/__tests__/file-path-resolver.test.js +0 -180
  253. package/execution/__tests__/file-path-resolver.test.js.map +0 -1
  254. package/execution/__tests__/message-entry.test.d.ts +0 -2
  255. package/execution/__tests__/message-entry.test.d.ts.map +0 -1
  256. package/execution/__tests__/message-entry.test.js +0 -178
  257. package/execution/__tests__/message-entry.test.js.map +0 -1
  258. package/execution/__tests__/thread-keys.test.d.ts +0 -2
  259. package/execution/__tests__/thread-keys.test.d.ts.map +0 -1
  260. package/execution/__tests__/thread-keys.test.js +0 -462
  261. package/execution/__tests__/thread-keys.test.js.map +0 -1
  262. package/execution/__tests__/thread-memoization.test.d.ts +0 -2
  263. package/execution/__tests__/thread-memoization.test.d.ts.map +0 -1
  264. package/execution/__tests__/thread-memoization.test.js +0 -262
  265. package/execution/__tests__/thread-memoization.test.js.map +0 -1
  266. package/execution/__tests__/thread-skeleton.test.d.ts +0 -2
  267. package/execution/__tests__/thread-skeleton.test.d.ts.map +0 -1
  268. package/execution/__tests__/thread-skeleton.test.js +0 -35
  269. package/execution/__tests__/thread-skeleton.test.js.map +0 -1
  270. package/execution/__tests__/useContextWindow.test.d.ts +0 -2
  271. package/execution/__tests__/useContextWindow.test.d.ts.map +0 -1
  272. package/execution/__tests__/useContextWindow.test.js +0 -121
  273. package/execution/__tests__/useContextWindow.test.js.map +0 -1
  274. package/execution/__tests__/useExecutionStream.test.d.ts +0 -2
  275. package/execution/__tests__/useExecutionStream.test.d.ts.map +0 -1
  276. package/execution/__tests__/useExecutionStream.test.js +0 -253
  277. package/execution/__tests__/useExecutionStream.test.js.map +0 -1
  278. package/execution/__tests__/useSessionVariables-stability.test.d.ts +0 -2
  279. package/execution/__tests__/useSessionVariables-stability.test.d.ts.map +0 -1
  280. package/execution/__tests__/useSessionVariables-stability.test.js +0 -69
  281. package/execution/__tests__/useSessionVariables-stability.test.js.map +0 -1
  282. package/execution/__tests__/virtualized-thread.test.d.ts +0 -2
  283. package/execution/__tests__/virtualized-thread.test.d.ts.map +0 -1
  284. package/execution/__tests__/virtualized-thread.test.js +0 -274
  285. package/execution/__tests__/virtualized-thread.test.js.map +0 -1
  286. package/file-reference/__tests__/FileReferenceChipList.test.d.ts +0 -2
  287. package/file-reference/__tests__/FileReferenceChipList.test.d.ts.map +0 -1
  288. package/file-reference/__tests__/FileReferenceChipList.test.js +0 -48
  289. package/file-reference/__tests__/FileReferenceChipList.test.js.map +0 -1
  290. package/file-reference/__tests__/useFileReferences.test.d.ts +0 -2
  291. package/file-reference/__tests__/useFileReferences.test.d.ts.map +0 -1
  292. package/file-reference/__tests__/useFileReferences.test.js +0 -90
  293. package/file-reference/__tests__/useFileReferences.test.js.map +0 -1
  294. package/github/__tests__/parseGitUrl.test.d.ts +0 -2
  295. package/github/__tests__/parseGitUrl.test.d.ts.map +0 -1
  296. package/github/__tests__/parseGitUrl.test.js +0 -47
  297. package/github/__tests__/parseGitUrl.test.js.map +0 -1
  298. package/github/__tests__/useGitHubTreeLister.test.d.ts +0 -2
  299. package/github/__tests__/useGitHubTreeLister.test.d.ts.map +0 -1
  300. package/github/__tests__/useGitHubTreeLister.test.js +0 -112
  301. package/github/__tests__/useGitHubTreeLister.test.js.map +0 -1
  302. package/internal/__tests__/ResizableSplit.test.d.ts +0 -2
  303. package/internal/__tests__/ResizableSplit.test.d.ts.map +0 -1
  304. package/internal/__tests__/ResizableSplit.test.js +0 -118
  305. package/internal/__tests__/ResizableSplit.test.js.map +0 -1
  306. package/internal/__tests__/fetch-cache.test.d.ts +0 -2
  307. package/internal/__tests__/fetch-cache.test.d.ts.map +0 -1
  308. package/internal/__tests__/fetch-cache.test.js +0 -182
  309. package/internal/__tests__/fetch-cache.test.js.map +0 -1
  310. package/internal/__tests__/stream-controller.test.d.ts +0 -2
  311. package/internal/__tests__/stream-controller.test.d.ts.map +0 -1
  312. package/internal/__tests__/stream-controller.test.js +0 -327
  313. package/internal/__tests__/stream-controller.test.js.map +0 -1
  314. package/internal/__tests__/thread-animation.test.d.ts +0 -2
  315. package/internal/__tests__/thread-animation.test.d.ts.map +0 -1
  316. package/internal/__tests__/thread-animation.test.js +0 -79
  317. package/internal/__tests__/thread-animation.test.js.map +0 -1
  318. package/internal/__tests__/useAutoScroll.test.d.ts +0 -2
  319. package/internal/__tests__/useAutoScroll.test.d.ts.map +0 -1
  320. package/internal/__tests__/useAutoScroll.test.js +0 -188
  321. package/internal/__tests__/useAutoScroll.test.js.map +0 -1
  322. package/internal/__tests__/useFetch-cache.test.d.ts +0 -2
  323. package/internal/__tests__/useFetch-cache.test.d.ts.map +0 -1
  324. package/internal/__tests__/useFetch-cache.test.js +0 -137
  325. package/internal/__tests__/useFetch-cache.test.js.map +0 -1
  326. package/internal/__tests__/useFetch-identity-reset.test.d.ts +0 -2
  327. package/internal/__tests__/useFetch-identity-reset.test.d.ts.map +0 -1
  328. package/internal/__tests__/useFetch-identity-reset.test.js +0 -281
  329. package/internal/__tests__/useFetch-identity-reset.test.js.map +0 -1
  330. package/internal/__tests__/useFetch.test.d.ts +0 -2
  331. package/internal/__tests__/useFetch.test.d.ts.map +0 -1
  332. package/internal/__tests__/useFetch.test.js +0 -95
  333. package/internal/__tests__/useFetch.test.js.map +0 -1
  334. package/internal/dev/__tests__/use-key-stability.test.d.ts +0 -2
  335. package/internal/dev/__tests__/use-key-stability.test.d.ts.map +0 -1
  336. package/internal/dev/__tests__/use-key-stability.test.js +0 -72
  337. package/internal/dev/__tests__/use-key-stability.test.js.map +0 -1
  338. package/internal/dev/__tests__/use-render-tracer.test.d.ts +0 -2
  339. package/internal/dev/__tests__/use-render-tracer.test.d.ts.map +0 -1
  340. package/internal/dev/__tests__/use-render-tracer.test.js +0 -55
  341. package/internal/dev/__tests__/use-render-tracer.test.js.map +0 -1
  342. package/internal/file-tree/__tests__/FileTreeNode-drag.test.d.ts +0 -2
  343. package/internal/file-tree/__tests__/FileTreeNode-drag.test.d.ts.map +0 -1
  344. package/internal/file-tree/__tests__/FileTreeNode-drag.test.js +0 -55
  345. package/internal/file-tree/__tests__/FileTreeNode-drag.test.js.map +0 -1
  346. package/internal/file-tree/__tests__/buildFileTree.test.d.ts +0 -2
  347. package/internal/file-tree/__tests__/buildFileTree.test.d.ts.map +0 -1
  348. package/internal/file-tree/__tests__/buildFileTree.test.js +0 -102
  349. package/internal/file-tree/__tests__/buildFileTree.test.js.map +0 -1
  350. package/internal/file-tree/__tests__/filterFileTree.test.d.ts +0 -2
  351. package/internal/file-tree/__tests__/filterFileTree.test.d.ts.map +0 -1
  352. package/internal/file-tree/__tests__/filterFileTree.test.js +0 -120
  353. package/internal/file-tree/__tests__/filterFileTree.test.js.map +0 -1
  354. package/internal/store/__tests__/conversation-store.test.d.ts +0 -2
  355. package/internal/store/__tests__/conversation-store.test.d.ts.map +0 -1
  356. package/internal/store/__tests__/conversation-store.test.js +0 -200
  357. package/internal/store/__tests__/conversation-store.test.js.map +0 -1
  358. package/internal/store/__tests__/selection-store.test.d.ts +0 -2
  359. package/internal/store/__tests__/selection-store.test.d.ts.map +0 -1
  360. package/internal/store/__tests__/selection-store.test.js +0 -93
  361. package/internal/store/__tests__/selection-store.test.js.map +0 -1
  362. package/internal/store/__tests__/structural-share.test.d.ts +0 -2
  363. package/internal/store/__tests__/structural-share.test.d.ts.map +0 -1
  364. package/internal/store/__tests__/structural-share.test.js +0 -368
  365. package/internal/store/__tests__/structural-share.test.js.map +0 -1
  366. package/internal/store/__tests__/workflow-execution-event-store.test.d.ts +0 -2
  367. package/internal/store/__tests__/workflow-execution-event-store.test.d.ts.map +0 -1
  368. package/internal/store/__tests__/workflow-execution-event-store.test.js +0 -215
  369. package/internal/store/__tests__/workflow-execution-event-store.test.js.map +0 -1
  370. package/invitation/__tests__/useCreateInvitation.test.d.ts +0 -2
  371. package/invitation/__tests__/useCreateInvitation.test.d.ts.map +0 -1
  372. package/invitation/__tests__/useCreateInvitation.test.js +0 -152
  373. package/invitation/__tests__/useCreateInvitation.test.js.map +0 -1
  374. package/models/__tests__/HarnessSelector.test.d.ts +0 -2
  375. package/models/__tests__/HarnessSelector.test.d.ts.map +0 -1
  376. package/models/__tests__/HarnessSelector.test.js +0 -160
  377. package/models/__tests__/HarnessSelector.test.js.map +0 -1
  378. package/models/__tests__/harness.test.d.ts +0 -2
  379. package/models/__tests__/harness.test.d.ts.map +0 -1
  380. package/models/__tests__/harness.test.js +0 -50
  381. package/models/__tests__/harness.test.js.map +0 -1
  382. package/models/__tests__/useModelRegistry.test.d.ts +0 -2
  383. package/models/__tests__/useModelRegistry.test.d.ts.map +0 -1
  384. package/models/__tests__/useModelRegistry.test.js +0 -246
  385. package/models/__tests__/useModelRegistry.test.js.map +0 -1
  386. package/session/__tests__/execution-target.test.d.ts +0 -2
  387. package/session/__tests__/execution-target.test.d.ts.map +0 -1
  388. package/session/__tests__/execution-target.test.js +0 -34
  389. package/session/__tests__/execution-target.test.js.map +0 -1
  390. package/session/__tests__/group-sessions.test.d.ts +0 -2
  391. package/session/__tests__/group-sessions.test.d.ts.map +0 -1
  392. package/session/__tests__/group-sessions.test.js +0 -91
  393. package/session/__tests__/group-sessions.test.js.map +0 -1
  394. package/session/__tests__/session-spec-converters.test.d.ts +0 -2
  395. package/session/__tests__/session-spec-converters.test.d.ts.map +0 -1
  396. package/session/__tests__/session-spec-converters.test.js +0 -160
  397. package/session/__tests__/session-spec-converters.test.js.map +0 -1
  398. package/session/__tests__/useCreateSession.test.d.ts +0 -2
  399. package/session/__tests__/useCreateSession.test.d.ts.map +0 -1
  400. package/session/__tests__/useCreateSession.test.js +0 -228
  401. package/session/__tests__/useCreateSession.test.js.map +0 -1
  402. package/session/__tests__/useNewSessionFlow.test.d.ts +0 -2
  403. package/session/__tests__/useNewSessionFlow.test.d.ts.map +0 -1
  404. package/session/__tests__/useNewSessionFlow.test.js +0 -364
  405. package/session/__tests__/useNewSessionFlow.test.js.map +0 -1
  406. package/session/__tests__/usePersistedModel.test.d.ts +0 -2
  407. package/session/__tests__/usePersistedModel.test.d.ts.map +0 -1
  408. package/session/__tests__/usePersistedModel.test.js +0 -96
  409. package/session/__tests__/usePersistedModel.test.js.map +0 -1
  410. package/session/__tests__/useSession.test.d.ts +0 -2
  411. package/session/__tests__/useSession.test.d.ts.map +0 -1
  412. package/session/__tests__/useSession.test.js +0 -93
  413. package/session/__tests__/useSession.test.js.map +0 -1
  414. package/session/__tests__/useSessionConversation.test.d.ts +0 -2
  415. package/session/__tests__/useSessionConversation.test.d.ts.map +0 -1
  416. package/session/__tests__/useSessionConversation.test.js +0 -246
  417. package/session/__tests__/useSessionConversation.test.js.map +0 -1
  418. package/session/__tests__/useSessionList.test.d.ts +0 -2
  419. package/session/__tests__/useSessionList.test.d.ts.map +0 -1
  420. package/session/__tests__/useSessionList.test.js +0 -63
  421. package/session/__tests__/useSessionList.test.js.map +0 -1
  422. package/session/__tests__/useSessionUsage.test.d.ts +0 -2
  423. package/session/__tests__/useSessionUsage.test.d.ts.map +0 -1
  424. package/session/__tests__/useSessionUsage.test.js +0 -146
  425. package/session/__tests__/useSessionUsage.test.js.map +0 -1
  426. package/session/inspector/__tests__/useSessionInspector.test.d.ts +0 -2
  427. package/session/inspector/__tests__/useSessionInspector.test.d.ts.map +0 -1
  428. package/session/inspector/__tests__/useSessionInspector.test.js +0 -195
  429. package/session/inspector/__tests__/useSessionInspector.test.js.map +0 -1
  430. package/test/__tests__/samples.test.d.ts +0 -2
  431. package/test/__tests__/samples.test.d.ts.map +0 -1
  432. package/test/__tests__/samples.test.js +0 -152
  433. package/test/__tests__/samples.test.js.map +0 -1
  434. package/workflow/__tests__/ExecutionInspector.test.d.ts +0 -2
  435. package/workflow/__tests__/ExecutionInspector.test.d.ts.map +0 -1
  436. package/workflow/__tests__/ExecutionInspector.test.js +0 -91
  437. package/workflow/__tests__/ExecutionInspector.test.js.map +0 -1
  438. package/workflow/__tests__/WorkflowArchitectDialog.test.d.ts +0 -2
  439. package/workflow/__tests__/WorkflowArchitectDialog.test.d.ts.map +0 -1
  440. package/workflow/__tests__/WorkflowArchitectDialog.test.js +0 -126
  441. package/workflow/__tests__/WorkflowArchitectDialog.test.js.map +0 -1
  442. package/workflow/__tests__/WorkflowRefinePanel.test.d.ts +0 -2
  443. package/workflow/__tests__/WorkflowRefinePanel.test.d.ts.map +0 -1
  444. package/workflow/__tests__/WorkflowRefinePanel.test.js +0 -138
  445. package/workflow/__tests__/WorkflowRefinePanel.test.js.map +0 -1
  446. package/workflow/__tests__/WorkflowRepairCard.test.d.ts +0 -2
  447. package/workflow/__tests__/WorkflowRepairCard.test.d.ts.map +0 -1
  448. package/workflow/__tests__/WorkflowRepairCard.test.js +0 -158
  449. package/workflow/__tests__/WorkflowRepairCard.test.js.map +0 -1
  450. package/workflow/__tests__/WorkflowTaskApprovalCard.test.d.ts +0 -2
  451. package/workflow/__tests__/WorkflowTaskApprovalCard.test.d.ts.map +0 -1
  452. package/workflow/__tests__/WorkflowTaskApprovalCard.test.js +0 -221
  453. package/workflow/__tests__/WorkflowTaskApprovalCard.test.js.map +0 -1
  454. package/workflow/__tests__/WorkflowTaskApprovalSummary.test.d.ts +0 -2
  455. package/workflow/__tests__/WorkflowTaskApprovalSummary.test.d.ts.map +0 -1
  456. package/workflow/__tests__/WorkflowTaskApprovalSummary.test.js +0 -94
  457. package/workflow/__tests__/WorkflowTaskApprovalSummary.test.js.map +0 -1
  458. package/workflow/__tests__/agent-call-live-experience.test.d.ts +0 -11
  459. package/workflow/__tests__/agent-call-live-experience.test.d.ts.map +0 -1
  460. package/workflow/__tests__/agent-call-live-experience.test.js +0 -379
  461. package/workflow/__tests__/agent-call-live-experience.test.js.map +0 -1
  462. package/workflow/__tests__/branch-commands.test.d.ts +0 -2
  463. package/workflow/__tests__/branch-commands.test.d.ts.map +0 -1
  464. package/workflow/__tests__/branch-commands.test.js +0 -165
  465. package/workflow/__tests__/branch-commands.test.js.map +0 -1
  466. package/workflow/__tests__/caption-dimensions.test.d.ts +0 -2
  467. package/workflow/__tests__/caption-dimensions.test.d.ts.map +0 -1
  468. package/workflow/__tests__/caption-dimensions.test.js +0 -89
  469. package/workflow/__tests__/caption-dimensions.test.js.map +0 -1
  470. package/workflow/__tests__/clipboard.test.d.ts +0 -2
  471. package/workflow/__tests__/clipboard.test.d.ts.map +0 -1
  472. package/workflow/__tests__/clipboard.test.js +0 -172
  473. package/workflow/__tests__/clipboard.test.js.map +0 -1
  474. package/workflow/__tests__/cncf-yaml-to-graph.test.d.ts +0 -2
  475. package/workflow/__tests__/cncf-yaml-to-graph.test.d.ts.map +0 -1
  476. package/workflow/__tests__/cncf-yaml-to-graph.test.js +0 -479
  477. package/workflow/__tests__/cncf-yaml-to-graph.test.js.map +0 -1
  478. package/workflow/__tests__/context-menu-logic.test.d.ts +0 -2
  479. package/workflow/__tests__/context-menu-logic.test.d.ts.map +0 -1
  480. package/workflow/__tests__/context-menu-logic.test.js +0 -97
  481. package/workflow/__tests__/context-menu-logic.test.js.map +0 -1
  482. package/workflow/__tests__/derive-execution-overlays.test.d.ts +0 -2
  483. package/workflow/__tests__/derive-execution-overlays.test.d.ts.map +0 -1
  484. package/workflow/__tests__/derive-execution-overlays.test.js +0 -338
  485. package/workflow/__tests__/derive-execution-overlays.test.js.map +0 -1
  486. package/workflow/__tests__/derive-task-detail.test.d.ts +0 -2
  487. package/workflow/__tests__/derive-task-detail.test.d.ts.map +0 -1
  488. package/workflow/__tests__/derive-task-detail.test.js +0 -1035
  489. package/workflow/__tests__/derive-task-detail.test.js.map +0 -1
  490. package/workflow/__tests__/derive-waterfall-entries.test.d.ts +0 -2
  491. package/workflow/__tests__/derive-waterfall-entries.test.d.ts.map +0 -1
  492. package/workflow/__tests__/derive-waterfall-entries.test.js +0 -419
  493. package/workflow/__tests__/derive-waterfall-entries.test.js.map +0 -1
  494. package/workflow/__tests__/execution-graph.test.d.ts +0 -2
  495. package/workflow/__tests__/execution-graph.test.d.ts.map +0 -1
  496. package/workflow/__tests__/execution-graph.test.js +0 -251
  497. package/workflow/__tests__/execution-graph.test.js.map +0 -1
  498. package/workflow/__tests__/execution-inspector.test.d.ts +0 -2
  499. package/workflow/__tests__/execution-inspector.test.d.ts.map +0 -1
  500. package/workflow/__tests__/execution-inspector.test.js +0 -248
  501. package/workflow/__tests__/execution-inspector.test.js.map +0 -1
  502. package/workflow/__tests__/extract-workflow-yaml.test.d.ts +0 -2
  503. package/workflow/__tests__/extract-workflow-yaml.test.d.ts.map +0 -1
  504. package/workflow/__tests__/extract-workflow-yaml.test.js +0 -135
  505. package/workflow/__tests__/extract-workflow-yaml.test.js.map +0 -1
  506. package/workflow/__tests__/format-utils.test.d.ts +0 -2
  507. package/workflow/__tests__/format-utils.test.d.ts.map +0 -1
  508. package/workflow/__tests__/format-utils.test.js +0 -128
  509. package/workflow/__tests__/format-utils.test.js.map +0 -1
  510. package/workflow/__tests__/inspector-commands.test.d.ts +0 -2
  511. package/workflow/__tests__/inspector-commands.test.d.ts.map +0 -1
  512. package/workflow/__tests__/inspector-commands.test.js +0 -110
  513. package/workflow/__tests__/inspector-commands.test.js.map +0 -1
  514. package/workflow/__tests__/inspector-forms.test.d.ts +0 -2
  515. package/workflow/__tests__/inspector-forms.test.d.ts.map +0 -1
  516. package/workflow/__tests__/inspector-forms.test.js +0 -114
  517. package/workflow/__tests__/inspector-forms.test.js.map +0 -1
  518. package/workflow/__tests__/inspector-tabs.test.d.ts +0 -2
  519. package/workflow/__tests__/inspector-tabs.test.d.ts.map +0 -1
  520. package/workflow/__tests__/inspector-tabs.test.js +0 -81
  521. package/workflow/__tests__/inspector-tabs.test.js.map +0 -1
  522. package/workflow/__tests__/kind-metadata.test.d.ts +0 -2
  523. package/workflow/__tests__/kind-metadata.test.d.ts.map +0 -1
  524. package/workflow/__tests__/kind-metadata.test.js +0 -80
  525. package/workflow/__tests__/kind-metadata.test.js.map +0 -1
  526. package/workflow/__tests__/motion-preference.test.d.ts +0 -2
  527. package/workflow/__tests__/motion-preference.test.d.ts.map +0 -1
  528. package/workflow/__tests__/motion-preference.test.js +0 -42
  529. package/workflow/__tests__/motion-preference.test.js.map +0 -1
  530. package/workflow/__tests__/node-popover.test.d.ts +0 -2
  531. package/workflow/__tests__/node-popover.test.d.ts.map +0 -1
  532. package/workflow/__tests__/node-popover.test.js +0 -130
  533. package/workflow/__tests__/node-popover.test.js.map +0 -1
  534. package/workflow/__tests__/node-shell.test.d.ts +0 -2
  535. package/workflow/__tests__/node-shell.test.d.ts.map +0 -1
  536. package/workflow/__tests__/node-shell.test.js +0 -210
  537. package/workflow/__tests__/node-shell.test.js.map +0 -1
  538. package/workflow/__tests__/overview-graph.test.d.ts +0 -2
  539. package/workflow/__tests__/overview-graph.test.d.ts.map +0 -1
  540. package/workflow/__tests__/overview-graph.test.js +0 -83
  541. package/workflow/__tests__/overview-graph.test.js.map +0 -1
  542. package/workflow/__tests__/overview-summary.test.d.ts +0 -2
  543. package/workflow/__tests__/overview-summary.test.d.ts.map +0 -1
  544. package/workflow/__tests__/overview-summary.test.js +0 -73
  545. package/workflow/__tests__/overview-summary.test.js.map +0 -1
  546. package/workflow/__tests__/shortcut-registry.test.d.ts +0 -2
  547. package/workflow/__tests__/shortcut-registry.test.d.ts.map +0 -1
  548. package/workflow/__tests__/shortcut-registry.test.js +0 -111
  549. package/workflow/__tests__/shortcut-registry.test.js.map +0 -1
  550. package/workflow/__tests__/starter-workflow-yaml.test.d.ts +0 -2
  551. package/workflow/__tests__/starter-workflow-yaml.test.d.ts.map +0 -1
  552. package/workflow/__tests__/starter-workflow-yaml.test.js +0 -44
  553. package/workflow/__tests__/starter-workflow-yaml.test.js.map +0 -1
  554. package/workflow/__tests__/structured-data-viewer.test.d.ts +0 -2
  555. package/workflow/__tests__/structured-data-viewer.test.d.ts.map +0 -1
  556. package/workflow/__tests__/structured-data-viewer.test.js +0 -438
  557. package/workflow/__tests__/structured-data-viewer.test.js.map +0 -1
  558. package/workflow/__tests__/t09-branch-management.test.d.ts +0 -2
  559. package/workflow/__tests__/t09-branch-management.test.d.ts.map +0 -1
  560. package/workflow/__tests__/t09-branch-management.test.js +0 -433
  561. package/workflow/__tests__/t09-branch-management.test.js.map +0 -1
  562. package/workflow/__tests__/task-type-visual-registry.test.d.ts +0 -2
  563. package/workflow/__tests__/task-type-visual-registry.test.d.ts.map +0 -1
  564. package/workflow/__tests__/task-type-visual-registry.test.js +0 -99
  565. package/workflow/__tests__/task-type-visual-registry.test.js.map +0 -1
  566. package/workflow/__tests__/useActiveTaskName.test.d.ts +0 -2
  567. package/workflow/__tests__/useActiveTaskName.test.d.ts.map +0 -1
  568. package/workflow/__tests__/useActiveTaskName.test.js +0 -80
  569. package/workflow/__tests__/useActiveTaskName.test.js.map +0 -1
  570. package/workflow/__tests__/useDiagnoseExecutionFlow.test.d.ts +0 -2
  571. package/workflow/__tests__/useDiagnoseExecutionFlow.test.d.ts.map +0 -1
  572. package/workflow/__tests__/useDiagnoseExecutionFlow.test.js +0 -363
  573. package/workflow/__tests__/useDiagnoseExecutionFlow.test.js.map +0 -1
  574. package/workflow/__tests__/useExecutionAnnouncements.test.d.ts +0 -2
  575. package/workflow/__tests__/useExecutionAnnouncements.test.d.ts.map +0 -1
  576. package/workflow/__tests__/useExecutionAnnouncements.test.js +0 -85
  577. package/workflow/__tests__/useExecutionAnnouncements.test.js.map +0 -1
  578. package/workflow/__tests__/useFollowExecution.test.d.ts +0 -2
  579. package/workflow/__tests__/useFollowExecution.test.d.ts.map +0 -1
  580. package/workflow/__tests__/useFollowExecution.test.js +0 -130
  581. package/workflow/__tests__/useFollowExecution.test.js.map +0 -1
  582. package/workflow/__tests__/useRefineWorkflowFlow.test.d.ts +0 -2
  583. package/workflow/__tests__/useRefineWorkflowFlow.test.d.ts.map +0 -1
  584. package/workflow/__tests__/useRefineWorkflowFlow.test.js +0 -367
  585. package/workflow/__tests__/useRefineWorkflowFlow.test.js.map +0 -1
  586. package/workflow/__tests__/useRunWorkflowFlow.test.d.ts +0 -2
  587. package/workflow/__tests__/useRunWorkflowFlow.test.d.ts.map +0 -1
  588. package/workflow/__tests__/useRunWorkflowFlow.test.js +0 -385
  589. package/workflow/__tests__/useRunWorkflowFlow.test.js.map +0 -1
  590. package/workflow/__tests__/useWorkflowArchitectFlow.test.d.ts +0 -2
  591. package/workflow/__tests__/useWorkflowArchitectFlow.test.d.ts.map +0 -1
  592. package/workflow/__tests__/useWorkflowArchitectFlow.test.js +0 -376
  593. package/workflow/__tests__/useWorkflowArchitectFlow.test.js.map +0 -1
  594. package/workflow/__tests__/useWorkflowExecution.test.d.ts +0 -2
  595. package/workflow/__tests__/useWorkflowExecution.test.d.ts.map +0 -1
  596. package/workflow/__tests__/useWorkflowExecution.test.js +0 -229
  597. package/workflow/__tests__/useWorkflowExecution.test.js.map +0 -1
  598. package/workflow/__tests__/useWorkflowExecutionActions.test.d.ts +0 -2
  599. package/workflow/__tests__/useWorkflowExecutionActions.test.d.ts.map +0 -1
  600. package/workflow/__tests__/useWorkflowExecutionActions.test.js +0 -191
  601. package/workflow/__tests__/useWorkflowExecutionActions.test.js.map +0 -1
  602. package/workflow/__tests__/useWorkflowExecutionEventStream.test.d.ts +0 -2
  603. package/workflow/__tests__/useWorkflowExecutionEventStream.test.d.ts.map +0 -1
  604. package/workflow/__tests__/useWorkflowExecutionEventStream.test.js +0 -291
  605. package/workflow/__tests__/useWorkflowExecutionEventStream.test.js.map +0 -1
  606. package/workflow/__tests__/workflow-instance-hooks.test.d.ts +0 -2
  607. package/workflow/__tests__/workflow-instance-hooks.test.d.ts.map +0 -1
  608. package/workflow/__tests__/workflow-instance-hooks.test.js +0 -153
  609. package/workflow/__tests__/workflow-instance-hooks.test.js.map +0 -1
  610. package/workflow/__tests__/workflow-summary-panel.test.d.ts +0 -2
  611. package/workflow/__tests__/workflow-summary-panel.test.d.ts.map +0 -1
  612. package/workflow/__tests__/workflow-summary-panel.test.js +0 -85
  613. package/workflow/__tests__/workflow-summary-panel.test.js.map +0 -1
  614. package/workflow/__tests__/workflow-uses-trigger-input.test.d.ts +0 -2
  615. package/workflow/__tests__/workflow-uses-trigger-input.test.d.ts.map +0 -1
  616. package/workflow/__tests__/workflow-uses-trigger-input.test.js +0 -144
  617. package/workflow/__tests__/workflow-uses-trigger-input.test.js.map +0 -1
  618. package/workflow/__tests__/workflow-yaml-diff.test.d.ts +0 -2
  619. package/workflow/__tests__/workflow-yaml-diff.test.d.ts.map +0 -1
  620. package/workflow/__tests__/workflow-yaml-diff.test.js +0 -110
  621. package/workflow/__tests__/workflow-yaml-diff.test.js.map +0 -1
  622. package/workflow/diff/__tests__/build-diff-graph.test.d.ts +0 -2
  623. package/workflow/diff/__tests__/build-diff-graph.test.d.ts.map +0 -1
  624. package/workflow/diff/__tests__/build-diff-graph.test.js +0 -115
  625. package/workflow/diff/__tests__/build-diff-graph.test.js.map +0 -1
  626. package/workflow/diff/__tests__/graph-diff.test.d.ts +0 -2
  627. package/workflow/diff/__tests__/graph-diff.test.d.ts.map +0 -1
  628. package/workflow/diff/__tests__/graph-diff.test.js +0 -196
  629. package/workflow/diff/__tests__/graph-diff.test.js.map +0 -1
  630. package/workflow/execution-comparison/__tests__/derive-execution-comparison.test.d.ts +0 -2
  631. package/workflow/execution-comparison/__tests__/derive-execution-comparison.test.d.ts.map +0 -1
  632. package/workflow/execution-comparison/__tests__/derive-execution-comparison.test.js +0 -263
  633. package/workflow/execution-comparison/__tests__/derive-execution-comparison.test.js.map +0 -1
  634. package/workflow/execution-history/__tests__/derive-execution-row.test.d.ts +0 -2
  635. package/workflow/execution-history/__tests__/derive-execution-row.test.d.ts.map +0 -1
  636. package/workflow/execution-history/__tests__/derive-execution-row.test.js +0 -276
  637. package/workflow/execution-history/__tests__/derive-execution-row.test.js.map +0 -1
  638. package/workflow/execution-history/__tests__/derive-failure-analysis.test.d.ts +0 -2
  639. package/workflow/execution-history/__tests__/derive-failure-analysis.test.d.ts.map +0 -1
  640. package/workflow/execution-history/__tests__/derive-failure-analysis.test.js +0 -132
  641. package/workflow/execution-history/__tests__/derive-failure-analysis.test.js.map +0 -1
  642. package/workflow/layout/__tests__/dagre-layout-engine.test.d.ts +0 -2
  643. package/workflow/layout/__tests__/dagre-layout-engine.test.d.ts.map +0 -1
  644. package/workflow/layout/__tests__/dagre-layout-engine.test.js +0 -105
  645. package/workflow/layout/__tests__/dagre-layout-engine.test.js.map +0 -1
  646. package/workflow/layout/__tests__/layout-postprocessor.test.d.ts +0 -2
  647. package/workflow/layout/__tests__/layout-postprocessor.test.d.ts.map +0 -1
  648. package/workflow/layout/__tests__/layout-postprocessor.test.js +0 -123
  649. package/workflow/layout/__tests__/layout-postprocessor.test.js.map +0 -1
  650. package/workflow/layout/__tests__/port-assignment.test.d.ts +0 -2
  651. package/workflow/layout/__tests__/port-assignment.test.d.ts.map +0 -1
  652. package/workflow/layout/__tests__/port-assignment.test.js +0 -200
  653. package/workflow/layout/__tests__/port-assignment.test.js.map +0 -1
  654. package/workflow/layout/__tests__/registry-dimensions.test.d.ts +0 -2
  655. package/workflow/layout/__tests__/registry-dimensions.test.d.ts.map +0 -1
  656. package/workflow/layout/__tests__/registry-dimensions.test.js +0 -104
  657. package/workflow/layout/__tests__/registry-dimensions.test.js.map +0 -1
  658. package/workflow/layout/__tests__/useElkLayoutEngine.test.d.ts +0 -2
  659. package/workflow/layout/__tests__/useElkLayoutEngine.test.d.ts.map +0 -1
  660. package/workflow/layout/__tests__/useElkLayoutEngine.test.js +0 -106
  661. package/workflow/layout/__tests__/useElkLayoutEngine.test.js.map +0 -1
  662. package/workflow/layout/__tests__/workflow-preprocessor.test.d.ts +0 -2
  663. package/workflow/layout/__tests__/workflow-preprocessor.test.d.ts.map +0 -1
  664. package/workflow/layout/__tests__/workflow-preprocessor.test.js +0 -138
  665. package/workflow/layout/__tests__/workflow-preprocessor.test.js.map +0 -1
  666. package/workflow/picker/__tests__/compatibility.test.d.ts +0 -2
  667. package/workflow/picker/__tests__/compatibility.test.d.ts.map +0 -1
  668. package/workflow/picker/__tests__/compatibility.test.js +0 -93
  669. package/workflow/picker/__tests__/compatibility.test.js.map +0 -1
  670. package/workflow/picker/__tests__/insertion-context.test.d.ts +0 -2
  671. package/workflow/picker/__tests__/insertion-context.test.d.ts.map +0 -1
  672. package/workflow/picker/__tests__/insertion-context.test.js +0 -67
  673. package/workflow/picker/__tests__/insertion-context.test.js.map +0 -1
  674. package/workflow/picker/__tests__/recents.test.d.ts +0 -2
  675. package/workflow/picker/__tests__/recents.test.d.ts.map +0 -1
  676. package/workflow/picker/__tests__/recents.test.js +0 -81
  677. package/workflow/picker/__tests__/recents.test.js.map +0 -1
  678. package/workflow/picker/__tests__/suggestions.test.d.ts +0 -2
  679. package/workflow/picker/__tests__/suggestions.test.d.ts.map +0 -1
  680. package/workflow/picker/__tests__/suggestions.test.js +0 -111
  681. package/workflow/picker/__tests__/suggestions.test.js.map +0 -1
  682. package/workflow/templates/__tests__/derive-template-metadata.test.d.ts +0 -2
  683. package/workflow/templates/__tests__/derive-template-metadata.test.d.ts.map +0 -1
  684. package/workflow/templates/__tests__/derive-template-metadata.test.js +0 -317
  685. package/workflow/templates/__tests__/derive-template-metadata.test.js.map +0 -1
  686. package/workflow/templates/__tests__/workflow-template-gallery.test.d.ts +0 -2
  687. package/workflow/templates/__tests__/workflow-template-gallery.test.d.ts.map +0 -1
  688. package/workflow/templates/__tests__/workflow-template-gallery.test.js +0 -119
  689. package/workflow/templates/__tests__/workflow-template-gallery.test.js.map +0 -1
  690. package/workspace/__tests__/WorkspaceEditor-initialPanel.test.d.ts +0 -2
  691. package/workspace/__tests__/WorkspaceEditor-initialPanel.test.d.ts.map +0 -1
  692. package/workspace/__tests__/WorkspaceEditor-initialPanel.test.js +0 -82
  693. package/workspace/__tests__/WorkspaceEditor-initialPanel.test.js.map +0 -1
  694. package/workspace/__tests__/useWorkspaceEntries-stability.test.d.ts +0 -2
  695. package/workspace/__tests__/useWorkspaceEntries-stability.test.d.ts.map +0 -1
  696. package/workspace/__tests__/useWorkspaceEntries-stability.test.js +0 -57
  697. package/workspace/__tests__/useWorkspaceEntries-stability.test.js.map +0 -1
  698. package/workspace/__tests__/useWorkspaceFiles.test.d.ts +0 -2
  699. package/workspace/__tests__/useWorkspaceFiles.test.d.ts.map +0 -1
  700. package/workspace/__tests__/useWorkspaceFiles.test.js +0 -128
  701. package/workspace/__tests__/useWorkspaceFiles.test.js.map +0 -1
  702. package/workspace/__tests__/useWorkspaceSources.test.d.ts +0 -2
  703. package/workspace/__tests__/useWorkspaceSources.test.d.ts.map +0 -1
  704. package/workspace/__tests__/useWorkspaceSources.test.js +0 -98
  705. package/workspace/__tests__/useWorkspaceSources.test.js.map +0 -1
@@ -0,0 +1,257 @@
1
+ "use client";
2
+
3
+ import { memo, useCallback, useState } from "react";
4
+ import { cn } from "@stigmer/theme";
5
+ import type { ExecutionArtifact } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/artifact_pb";
6
+ import { useArtifactContent } from "./useArtifactContent";
7
+ import { ArtifactContentRenderer } from "./ArtifactContentRenderer";
8
+ import { formatArtifactSize } from "./artifact-utils";
9
+
10
+ /** Plans above this size are not inlined for preview — download instead. */
11
+ const MAX_PREVIEW_BYTES = 512 * 1024;
12
+
13
+ /** Props for {@link PlanArtifactCard}. */
14
+ export interface PlanArtifactCardProps {
15
+ /** Execution that produced the plan — used to fetch the plan content. */
16
+ readonly executionId: string;
17
+ /** The published `plan.md` artifact (from `findPlanArtifact`). */
18
+ readonly artifact: ExecutionArtifact;
19
+ /** Called when the user clicks "Implement". Hidden when omitted. */
20
+ readonly onImplement?: () => void;
21
+ /** Disables the Implement CTA (e.g., while an execution is active). */
22
+ readonly disabled?: boolean;
23
+ /** Additional CSS classes for the root element. */
24
+ readonly className?: string;
25
+ }
26
+
27
+ /**
28
+ * Reviewable card shown after a completed Plan-mode execution when the agent
29
+ * published a `plan.md` artifact.
30
+ *
31
+ * Unlike {@link PlanCompletionCard} (a bare Implement CTA), this card makes the
32
+ * plan a first-class, durable object: expand to review the rendered plan, copy
33
+ * it, download the `plan.md` file, or proceed to implement. The plan content is
34
+ * the single source of truth (the published artifact), fetched on demand via
35
+ * {@link useArtifactContent} rather than duplicated into component state.
36
+ *
37
+ * All visual properties flow through `--stgm-*` tokens; the component is
38
+ * self-contained and embeddable.
39
+ */
40
+ export const PlanArtifactCard = memo(function PlanArtifactCard({
41
+ executionId,
42
+ artifact,
43
+ onImplement,
44
+ disabled,
45
+ className,
46
+ }: PlanArtifactCardProps) {
47
+ const [expanded, setExpanded] = useState(false);
48
+ const [copied, setCopied] = useState(false);
49
+
50
+ // Plans are small markdown; fetch eagerly (within the size cap) so both the
51
+ // preview and Copy have content ready. contentHash invalidates the cache when
52
+ // the plan is re-published in the same execution.
53
+ const fetchable = Number(artifact.sizeBytes) < MAX_PREVIEW_BYTES;
54
+ const { content, contentType, isTruncated, isLoading } = useArtifactContent(
55
+ fetchable ? executionId : null,
56
+ fetchable ? artifact.storageKey : null,
57
+ undefined,
58
+ artifact.contentHash || undefined,
59
+ );
60
+
61
+ const handleCopy = useCallback(async () => {
62
+ if (!content) return;
63
+ try {
64
+ await navigator.clipboard.writeText(content);
65
+ setCopied(true);
66
+ setTimeout(() => setCopied(false), 1500);
67
+ } catch {
68
+ // Clipboard can be unavailable (insecure context / denied permission).
69
+ // Silently no-op: Download remains available as the durable fallback.
70
+ }
71
+ }, [content]);
72
+
73
+ return (
74
+ <div
75
+ role="region"
76
+ aria-label="Plan ready to review"
77
+ className={cn(
78
+ "mx-4 overflow-hidden rounded-md border border-border-muted bg-muted-faint",
79
+ className,
80
+ )}
81
+ >
82
+ {/* Header */}
83
+ <div className="flex items-center gap-3 px-3 py-2.5">
84
+ <PlanIcon />
85
+ <div className="min-w-0 flex-1">
86
+ <div className="text-xs font-medium text-foreground">
87
+ Plan ready to review
88
+ </div>
89
+ <div className="text-xs tabular-nums text-muted-foreground">
90
+ {artifact.name} · {formatArtifactSize(artifact.sizeBytes)}
91
+ </div>
92
+ </div>
93
+ {onImplement && (
94
+ <button
95
+ type="button"
96
+ disabled={disabled}
97
+ onClick={onImplement}
98
+ className={cn(
99
+ "inline-flex items-center gap-1.5 rounded-md px-3 py-1.5",
100
+ "text-xs font-medium transition-colors",
101
+ "bg-primary text-primary-foreground hover:bg-primary-hover",
102
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
103
+ "disabled:pointer-events-none disabled:opacity-50",
104
+ )}
105
+ >
106
+ <ImplementIcon />
107
+ Implement
108
+ </button>
109
+ )}
110
+ </div>
111
+
112
+ {/* Secondary actions */}
113
+ <div className="flex flex-wrap items-center gap-x-4 gap-y-1 border-t border-border-muted px-3 py-1.5">
114
+ <button
115
+ type="button"
116
+ aria-expanded={expanded}
117
+ onClick={() => setExpanded((v) => !v)}
118
+ className={cn(
119
+ "inline-flex items-center gap-1 text-xs font-medium text-primary transition-colors hover:text-primary-muted",
120
+ FOCUS_RING,
121
+ )}
122
+ >
123
+ <ChevronIcon expanded={expanded} />
124
+ {expanded ? "Hide plan" : "Review plan"}
125
+ </button>
126
+ <button
127
+ type="button"
128
+ onClick={handleCopy}
129
+ disabled={!content}
130
+ className={cn(
131
+ "text-xs font-medium text-muted-foreground transition-colors hover:text-foreground",
132
+ "disabled:pointer-events-none disabled:opacity-50",
133
+ FOCUS_RING,
134
+ )}
135
+ >
136
+ {copied ? "Copied" : "Copy"}
137
+ </button>
138
+ <a
139
+ href={artifact.downloadUrl}
140
+ download={artifact.name}
141
+ className={cn(
142
+ "inline-flex items-center gap-1 text-xs font-medium text-muted-foreground transition-colors hover:text-foreground",
143
+ FOCUS_RING,
144
+ )}
145
+ >
146
+ <DownloadIcon />
147
+ Download
148
+ </a>
149
+ </div>
150
+
151
+ {/* Expandable plan preview */}
152
+ {expanded && (
153
+ <div className="max-h-96 overflow-auto border-t border-border-muted px-3 py-2">
154
+ {!fetchable ? (
155
+ <p className="text-xs text-muted-foreground">
156
+ This plan is large — use Download to view the full file.
157
+ </p>
158
+ ) : isLoading ? (
159
+ <div className="h-4 w-40 animate-pulse rounded bg-muted" aria-hidden="true" />
160
+ ) : content ? (
161
+ <ArtifactContentRenderer
162
+ content={content}
163
+ fileName={artifact.name}
164
+ contentType={contentType}
165
+ isTruncated={isTruncated}
166
+ />
167
+ ) : (
168
+ <p className="text-xs text-muted-foreground">
169
+ Plan content is unavailable. Use Download to retrieve the file.
170
+ </p>
171
+ )}
172
+ </div>
173
+ )}
174
+ </div>
175
+ );
176
+ });
177
+
178
+ const FOCUS_RING =
179
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:rounded-sm";
180
+
181
+ function PlanIcon() {
182
+ return (
183
+ <svg
184
+ width="16"
185
+ height="16"
186
+ viewBox="0 0 16 16"
187
+ fill="none"
188
+ stroke="currentColor"
189
+ strokeWidth="1.5"
190
+ strokeLinecap="round"
191
+ strokeLinejoin="round"
192
+ className="shrink-0 text-muted-foreground-faint"
193
+ aria-hidden="true"
194
+ >
195
+ <path d="M3 4h10M3 8h7M3 12h8" />
196
+ <path d="M12.5 10.5l1.5 1.5-1.5 1.5" />
197
+ </svg>
198
+ );
199
+ }
200
+
201
+ function ImplementIcon() {
202
+ return (
203
+ <svg
204
+ width="12"
205
+ height="12"
206
+ viewBox="0 0 12 12"
207
+ fill="none"
208
+ stroke="currentColor"
209
+ strokeWidth="1.5"
210
+ strokeLinecap="round"
211
+ strokeLinejoin="round"
212
+ aria-hidden="true"
213
+ >
214
+ <path d="M2 6h8M7 3l3 3-3 3" />
215
+ </svg>
216
+ );
217
+ }
218
+
219
+ function DownloadIcon() {
220
+ return (
221
+ <svg
222
+ width="10"
223
+ height="10"
224
+ viewBox="0 0 12 12"
225
+ fill="none"
226
+ stroke="currentColor"
227
+ strokeWidth="1.5"
228
+ strokeLinecap="round"
229
+ strokeLinejoin="round"
230
+ className="shrink-0"
231
+ aria-hidden="true"
232
+ >
233
+ <path d="M6 1.5V8.5" />
234
+ <path d="M3 6L6 9L9 6" />
235
+ <path d="M2 10.5H10" />
236
+ </svg>
237
+ );
238
+ }
239
+
240
+ function ChevronIcon({ expanded }: { readonly expanded: boolean }) {
241
+ return (
242
+ <svg
243
+ width="10"
244
+ height="10"
245
+ viewBox="0 0 12 12"
246
+ fill="none"
247
+ stroke="currentColor"
248
+ strokeWidth="1.5"
249
+ strokeLinecap="round"
250
+ strokeLinejoin="round"
251
+ className={cn("shrink-0 transition-transform", expanded && "rotate-90")}
252
+ aria-hidden="true"
253
+ >
254
+ <path d="M4 2l4 4-4 4" />
255
+ </svg>
256
+ );
257
+ }
@@ -0,0 +1,366 @@
1
+ "use client";
2
+
3
+ // Renders a normalized ToolResultView (from @stigmer/sdk) with a semantic view
4
+ // per result type — diffs, terminals, search lists, file content, MCP content
5
+ // blocks — instead of a raw JSON dump. The json/text variants are the graceful
6
+ // fallbacks, so unknown tools are still readable.
7
+
8
+ import { useMemo } from "react";
9
+ import type {
10
+ ToolResultView,
11
+ ToolSearchMatch,
12
+ ToolContentBlock,
13
+ } from "@stigmer/sdk";
14
+ import { cn } from "@stigmer/theme";
15
+ import { computeDiff } from "../version-history/computeDiff";
16
+ import type { DiffHunk } from "../version-history/types";
17
+ import { CollapsibleCode, CollapsiblePre, formatJson } from "./tool-rendering-primitives";
18
+ import { FilePathLink } from "./FilePathLink";
19
+ import { useSandboxNormalize } from "./SandboxContext";
20
+
21
+ /** Props for {@link ResultView}. */
22
+ export interface ResultViewProps {
23
+ /** The normalized result view to render. */
24
+ readonly view: ToolResultView;
25
+ /** Additional CSS class names for the root container. */
26
+ readonly className?: string;
27
+ }
28
+
29
+ /**
30
+ * Renders a {@link ToolResultView} with a type-appropriate treatment.
31
+ *
32
+ * This is the presentation half of the tool-result pipeline: `@stigmer/sdk`'s
33
+ * `normalizeToolResult` turns an opaque result string into a typed view, and
34
+ * this component renders it. Importable on its own by platform builders who
35
+ * compose custom tool UIs.
36
+ */
37
+ export function ResultView({ view, className }: ResultViewProps) {
38
+ switch (view.type) {
39
+ case "diff":
40
+ return <DiffResultView view={view} className={className} />;
41
+ case "terminal":
42
+ return <TerminalResultView view={view} className={className} />;
43
+ case "search":
44
+ return <SearchResultView matches={view.matches} count={view.count} className={className} />;
45
+ case "list":
46
+ return <ListResultView entries={view.entries} count={view.count} className={className} />;
47
+ case "file":
48
+ return <FileResultView view={view} className={className} />;
49
+ case "contentBlocks":
50
+ return <ContentBlocksResultView blocks={view.blocks} className={className} />;
51
+ case "text":
52
+ return view.text ? <CollapsiblePre content={view.text} className={cn("text-foreground", className)} /> : null;
53
+ case "json":
54
+ return <CollapsibleCode label="Result" content={formatJson(view.value)} className={className} />;
55
+ case "error":
56
+ return <ErrorResultView message={view.message} className={className} />;
57
+ case "empty":
58
+ return null;
59
+ }
60
+ }
61
+
62
+ /**
63
+ * Returns a compact one-line summary fragment for a result view, suitable for a
64
+ * collapsed tool row (e.g. "+40 -0", "exit 1", "2 matches"). Returns null when
65
+ * there is nothing useful to summarize.
66
+ */
67
+ export function summarizeResultView(view: ToolResultView): string | null {
68
+ switch (view.type) {
69
+ case "diff": {
70
+ const stats = diffStats(view);
71
+ return stats ? `+${stats.added} -${stats.removed}` : null;
72
+ }
73
+ case "terminal":
74
+ return view.exitCode !== undefined && view.exitCode !== 0 ? `exit ${view.exitCode}` : null;
75
+ case "search":
76
+ return `${view.count} ${view.count === 1 ? "match" : "matches"}`;
77
+ case "list":
78
+ return `${view.count} ${view.count === 1 ? "item" : "items"}`;
79
+ default:
80
+ return null;
81
+ }
82
+ }
83
+
84
+ // ---------------------------------------------------------------------------
85
+ // Diff
86
+ // ---------------------------------------------------------------------------
87
+
88
+ type DiffView = Extract<ToolResultView, { type: "diff" }>;
89
+
90
+ interface DiffStats {
91
+ readonly added: number;
92
+ readonly removed: number;
93
+ }
94
+
95
+ function countHunks(hunks: readonly DiffHunk[]): DiffStats {
96
+ let added = 0;
97
+ let removed = 0;
98
+ for (const hunk of hunks) {
99
+ for (const line of hunk.lines) {
100
+ if (line.type === "added") added++;
101
+ else if (line.type === "removed") removed++;
102
+ }
103
+ }
104
+ return { added, removed };
105
+ }
106
+
107
+ // Used by the collapsed-row summary, where no precomputed hunks are available.
108
+ // Prefers the engine-provided counts (Cursor envelope) and only runs the diff
109
+ // algorithm for the native harness, which provides none.
110
+ function diffStats(view: DiffView): DiffStats | null {
111
+ if (view.linesAdded !== undefined || view.linesRemoved !== undefined) {
112
+ return { added: view.linesAdded ?? 0, removed: view.linesRemoved ?? 0 };
113
+ }
114
+ if (view.oldText !== undefined && view.newText !== undefined) {
115
+ return countHunks(computeDiff(view.oldText, view.newText));
116
+ }
117
+ return null;
118
+ }
119
+
120
+ function DiffResultView({ view, className }: { view: DiffView; className?: string }) {
121
+ // The native engine returns no diff, so we compute hunks from args (old/new).
122
+ // The Cursor envelope provides a ready unified-diff string we render directly.
123
+ const hunks = useMemo<readonly DiffHunk[]>(() => {
124
+ if (view.oldText !== undefined && view.newText !== undefined) {
125
+ return computeDiff(view.oldText, view.newText);
126
+ }
127
+ return [];
128
+ }, [view.oldText, view.newText]);
129
+
130
+ // Derive stats from the already-computed hunks instead of re-running the diff.
131
+ const stats = useMemo<DiffStats | null>(() => {
132
+ if (view.linesAdded !== undefined || view.linesRemoved !== undefined) {
133
+ return { added: view.linesAdded ?? 0, removed: view.linesRemoved ?? 0 };
134
+ }
135
+ return hunks.length > 0 ? countHunks(hunks) : null;
136
+ }, [view.linesAdded, view.linesRemoved, hunks]);
137
+
138
+ return (
139
+ <div className={cn("space-y-1", className)}>
140
+ <div className="flex items-center gap-2 text-muted-foreground">
141
+ {view.path && <FilePathLink path={view.path} className="text-xs" />}
142
+ {stats && (
143
+ <span className="shrink-0 tabular-nums text-xs">
144
+ <span className="text-success">+{stats.added}</span>{" "}
145
+ <span className="text-destructive">-{stats.removed}</span>
146
+ </span>
147
+ )}
148
+ </div>
149
+
150
+ {hunks.length > 0 ? (
151
+ <DiffHunks hunks={hunks} />
152
+ ) : view.unifiedDiff ? (
153
+ <UnifiedDiffText patch={view.unifiedDiff} />
154
+ ) : null}
155
+ </div>
156
+ );
157
+ }
158
+
159
+ function DiffHunks({ hunks }: { hunks: readonly DiffHunk[] }) {
160
+ return (
161
+ <div className="overflow-auto rounded-md border border-border bg-muted-subtle font-mono text-xs">
162
+ {hunks.map((hunk, hi) => (
163
+ <div key={hi} className="border-b border-border-muted last:border-b-0">
164
+ {hunk.lines.map((line, li) => (
165
+ <div
166
+ key={li}
167
+ className={cn(
168
+ "whitespace-pre-wrap break-words px-2 py-0.5",
169
+ line.type === "added" && "bg-success-subtle text-success",
170
+ line.type === "removed" && "bg-destructive-subtle text-destructive",
171
+ line.type === "context" && "text-muted-foreground",
172
+ )}
173
+ >
174
+ {/* Screen readers get the change type as words; sighted users get
175
+ the +/- sign and color. Never color-only. */}
176
+ {line.type !== "context" && (
177
+ <span className="sr-only">
178
+ {line.type === "added" ? "Added: " : "Removed: "}
179
+ </span>
180
+ )}
181
+ <span className="select-none" aria-hidden="true">
182
+ {line.type === "added" ? "+" : line.type === "removed" ? "-" : " "}
183
+ </span>
184
+ {line.content}
185
+ </div>
186
+ ))}
187
+ </div>
188
+ ))}
189
+ </div>
190
+ );
191
+ }
192
+
193
+ // Renders a raw unified-diff patch string (Cursor envelope) with +/- coloring.
194
+ function UnifiedDiffText({ patch }: { patch: string }) {
195
+ const lines = patch.split("\n");
196
+ return (
197
+ <pre className="max-h-80 overflow-auto whitespace-pre-wrap break-words rounded-md border border-border bg-muted-subtle p-2 font-mono text-xs">
198
+ {lines.map((line, i) => (
199
+ <div
200
+ key={i}
201
+ className={cn(
202
+ line.startsWith("+") && !line.startsWith("+++") && "text-success",
203
+ line.startsWith("-") && !line.startsWith("---") && "text-destructive",
204
+ line.startsWith("@@") && "text-primary",
205
+ )}
206
+ >
207
+ {line || " "}
208
+ </div>
209
+ ))}
210
+ </pre>
211
+ );
212
+ }
213
+
214
+ // ---------------------------------------------------------------------------
215
+ // Terminal
216
+ // ---------------------------------------------------------------------------
217
+
218
+ type TerminalView = Extract<ToolResultView, { type: "terminal" }>;
219
+
220
+ function TerminalResultView({ view, className }: { view: TerminalView; className?: string }) {
221
+ const normalize = useSandboxNormalize();
222
+ const failed = view.exitCode !== undefined && view.exitCode !== 0;
223
+
224
+ return (
225
+ <div className={cn("space-y-1", className)}>
226
+ <div className="flex items-center gap-2">
227
+ <span className="font-medium text-muted-foreground">Output</span>
228
+ {view.exitCode !== undefined && (
229
+ <span
230
+ className={cn(
231
+ "rounded px-1 py-0.5 text-[10px] font-medium leading-none tabular-nums",
232
+ failed ? "bg-destructive-subtle text-destructive" : "bg-success-subtle text-success",
233
+ )}
234
+ >
235
+ exit {view.exitCode}
236
+ </span>
237
+ )}
238
+ </div>
239
+ <div className="rounded-md border border-border bg-[var(--stgm-terminal-bg,#1a1a2e)] p-2.5">
240
+ {view.stdout && (
241
+ <CollapsiblePre
242
+ content={normalize(view.stdout)}
243
+ className="text-[var(--stgm-terminal-fg,#e0e0e0)]"
244
+ />
245
+ )}
246
+ {view.stderr && (
247
+ <CollapsiblePre
248
+ content={normalize(view.stderr)}
249
+ className="text-destructive"
250
+ />
251
+ )}
252
+ </div>
253
+ </div>
254
+ );
255
+ }
256
+
257
+ // ---------------------------------------------------------------------------
258
+ // Search / List
259
+ // ---------------------------------------------------------------------------
260
+
261
+ function SearchResultView({
262
+ matches,
263
+ count,
264
+ className,
265
+ }: {
266
+ matches: readonly ToolSearchMatch[];
267
+ count: number;
268
+ className?: string;
269
+ }) {
270
+ if (count === 0) {
271
+ return <p className={cn("text-xs text-muted-foreground", className)}>No matches</p>;
272
+ }
273
+ return (
274
+ <div className={cn("space-y-1", className)}>
275
+ <span className="font-medium text-muted-foreground">
276
+ {count} {count === 1 ? "match" : "matches"}
277
+ </span>
278
+ <div className="max-h-80 overflow-auto rounded-md border border-border bg-muted-subtle font-mono text-xs">
279
+ {matches.map((m, i) => (
280
+ <div key={i} className="whitespace-pre-wrap break-words border-b border-border-muted px-2 py-0.5 text-foreground last:border-b-0">
281
+ {m.file && <span className="text-primary">{m.file}{m.line !== undefined ? `:${m.line}` : ""} </span>}
282
+ <span className={m.file ? "text-muted-foreground" : "text-foreground"}>{m.text}</span>
283
+ </div>
284
+ ))}
285
+ </div>
286
+ </div>
287
+ );
288
+ }
289
+
290
+ function ListResultView({
291
+ entries,
292
+ count,
293
+ className,
294
+ }: {
295
+ entries: readonly string[];
296
+ count: number;
297
+ className?: string;
298
+ }) {
299
+ if (count === 0) {
300
+ return <p className={cn("text-xs text-muted-foreground", className)}>Empty</p>;
301
+ }
302
+ return (
303
+ <div className={cn("space-y-1", className)}>
304
+ <span className="font-medium text-muted-foreground">
305
+ {count} {count === 1 ? "item" : "items"}
306
+ </span>
307
+ <div className="max-h-80 overflow-auto rounded-md border border-border bg-muted-subtle font-mono text-xs">
308
+ {entries.map((e, i) => (
309
+ <div key={i} className="truncate px-2 py-0.5 text-foreground">
310
+ {e}
311
+ </div>
312
+ ))}
313
+ </div>
314
+ </div>
315
+ );
316
+ }
317
+
318
+ // ---------------------------------------------------------------------------
319
+ // File / content blocks / error
320
+ // ---------------------------------------------------------------------------
321
+
322
+ type FileView = Extract<ToolResultView, { type: "file" }>;
323
+
324
+ function FileResultView({ view, className }: { view: FileView; className?: string }) {
325
+ if (!view.content) {
326
+ return view.path ? (
327
+ <div className={cn("flex items-center gap-1.5 text-xs", className)}>
328
+ <FilePathLink path={view.path} className="text-xs" />
329
+ </div>
330
+ ) : null;
331
+ }
332
+ return (
333
+ <div className={cn("space-y-1", className)}>
334
+ {view.path && <FilePathLink path={view.path} className="text-xs" />}
335
+ <CollapsibleCode label={view.truncated ? "Content (truncated)" : "Content"} content={view.content} />
336
+ </div>
337
+ );
338
+ }
339
+
340
+ function ContentBlocksResultView({
341
+ blocks,
342
+ className,
343
+ }: {
344
+ blocks: readonly ToolContentBlock[];
345
+ className?: string;
346
+ }) {
347
+ const text = useMemo(
348
+ () =>
349
+ blocks
350
+ .map((b) => (b.type === "text" && b.text ? b.text : `[${b.type}]`))
351
+ .join("\n"),
352
+ [blocks],
353
+ );
354
+ return <CollapsiblePre content={text} className={cn("text-foreground", className)} />;
355
+ }
356
+
357
+ function ErrorResultView({ message, className }: { message: string; className?: string }) {
358
+ return (
359
+ <div className={cn("space-y-1", className)}>
360
+ <span className="font-medium text-destructive">Error</span>
361
+ <pre className="whitespace-pre-wrap break-words rounded-md border border-destructive/20 bg-destructive-subtle p-2 font-mono text-destructive">
362
+ {message}
363
+ </pre>
364
+ </div>
365
+ );
366
+ }
@@ -194,6 +194,11 @@ function CollapsibleCard({
194
194
  <BotIcon />
195
195
  </span>
196
196
  <span className="min-w-0 flex-1 truncate">{displayLabel}</span>
197
+ {isRunning && (
198
+ <span className="shrink-0 text-muted-foreground" aria-hidden="true">
199
+ <SpinnerIcon />
200
+ </span>
201
+ )}
197
202
  <span
198
203
  className={cn(
199
204
  "shrink-0 rounded px-1 py-0.5 text-[10px] font-medium leading-none",