@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,153 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { create } from "@bufbuild/protobuf";
3
+ import {
4
+ AgentExecutionSchema,
5
+ AgentExecutionStatusSchema,
6
+ type AgentExecution,
7
+ } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/api_pb";
8
+ import { AgentExecutionSpecSchema } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/spec_pb";
9
+ import { ApiResourceMetadataSchema } from "@stigmer/protos/ai/stigmer/commons/apiresource/metadata_pb";
10
+ import {
11
+ AgentMessageSchema,
12
+ ToolCallSchema,
13
+ } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/message_pb";
14
+ import { SubAgentExecutionSchema } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/subagent_pb";
15
+ import {
16
+ ExecutionPhase,
17
+ MessageType,
18
+ SubAgentStatus,
19
+ } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
20
+ import { buildThreadItems } from "../MessageThread";
21
+
22
+ /**
23
+ * Guards the correlation that makes a delegated sub-agent appear in the live
24
+ * thread: a parent MESSAGE_AI carrying a "task" tool call becomes a "sub-agent"
25
+ * thread item only when a SubAgentExecution with the same id is present in
26
+ * status.sub_agent_executions.
27
+ *
28
+ * This is the UI side of the cursor mid-stream visibility fix. Before the fix,
29
+ * the runner streamed an empty sub_agent_executions list while the parent ran,
30
+ * so the task tool call had no match — it was hidden AND no card rendered (the
31
+ * "idle screen"). Persisting the IN_PROGRESS sub-agent mid-stream makes the
32
+ * match succeed, so the card renders live.
33
+ */
34
+
35
+ function makeAiWithTaskCall(taskCallId: string): ReturnType<typeof create<typeof AgentMessageSchema>> {
36
+ const msg = create(AgentMessageSchema);
37
+ msg.type = MessageType.MESSAGE_AI;
38
+ msg.content = "Delegating to the researcher.";
39
+ const tc = create(ToolCallSchema);
40
+ tc.id = taskCallId;
41
+ tc.name = "task";
42
+ msg.toolCalls = [tc];
43
+ return msg;
44
+ }
45
+
46
+ function makeSubAgent(id: string, status: SubAgentStatus): ReturnType<typeof create<typeof SubAgentExecutionSchema>> {
47
+ const sa = create(SubAgentExecutionSchema);
48
+ sa.id = id;
49
+ sa.name = "Research renewable energy";
50
+ sa.subject = "Research renewable energy";
51
+ sa.status = status;
52
+ return sa;
53
+ }
54
+
55
+ function makeExecution(opts: {
56
+ id: string;
57
+ phase: ExecutionPhase;
58
+ messages: ReturnType<typeof create<typeof AgentMessageSchema>>[];
59
+ subAgents?: ReturnType<typeof create<typeof SubAgentExecutionSchema>>[];
60
+ }): AgentExecution {
61
+ const exec = create(AgentExecutionSchema);
62
+
63
+ const meta = create(ApiResourceMetadataSchema);
64
+ meta.id = opts.id;
65
+ exec.metadata = meta;
66
+
67
+ const spec = create(AgentExecutionSpecSchema);
68
+ spec.message = "Please delegate to the researcher.";
69
+ exec.spec = spec;
70
+
71
+ const status = create(AgentExecutionStatusSchema);
72
+ status.phase = opts.phase;
73
+ status.messages = opts.messages;
74
+ if (opts.subAgents) {
75
+ status.subAgentExecutions = opts.subAgents;
76
+ }
77
+ exec.status = status;
78
+
79
+ return exec;
80
+ }
81
+
82
+ describe("buildThreadItems sub-agent correlation", () => {
83
+ it("renders an IN_PROGRESS sub-agent as a sub-agent item while the parent is still running", () => {
84
+ const taskId = "tool_live_1";
85
+ const exec = makeExecution({
86
+ id: "exec-live",
87
+ phase: ExecutionPhase.EXECUTION_IN_PROGRESS,
88
+ messages: [makeAiWithTaskCall(taskId)],
89
+ subAgents: [makeSubAgent(taskId, SubAgentStatus.SUB_AGENT_IN_PROGRESS)],
90
+ });
91
+
92
+ const items = buildThreadItems([exec], exec, null, false, undefined);
93
+
94
+ const subItem = items.find((i) => i.kind === "sub-agent");
95
+ expect(subItem).toBeDefined();
96
+ if (subItem?.kind !== "sub-agent") throw new Error("expected sub-agent item");
97
+ expect(subItem.subAgentExecution.id).toBe(taskId);
98
+ expect(subItem.subAgentExecution.status).toBe(
99
+ SubAgentStatus.SUB_AGENT_IN_PROGRESS,
100
+ );
101
+ expect(subItem.key).toBe(`sa-${taskId}`);
102
+
103
+ // The "task" tool call must never surface as a normal tool row — it is
104
+ // represented by the sub-agent card.
105
+ const toolGroups = items.filter((i) => i.kind === "tool-group");
106
+ for (const g of toolGroups) {
107
+ if (g.kind !== "tool-group") continue;
108
+ expect(g.toolCalls.some((tc) => tc.name === "task")).toBe(false);
109
+ }
110
+ });
111
+
112
+ it("renders a COMPLETED sub-agent as a sub-agent item", () => {
113
+ const taskId = "tool_done_1";
114
+ const exec = makeExecution({
115
+ id: "exec-done",
116
+ phase: ExecutionPhase.EXECUTION_COMPLETED,
117
+ messages: [makeAiWithTaskCall(taskId)],
118
+ subAgents: [makeSubAgent(taskId, SubAgentStatus.SUB_AGENT_COMPLETED)],
119
+ });
120
+
121
+ const items = buildThreadItems([exec], null, null, false, undefined);
122
+
123
+ const subItem = items.find((i) => i.kind === "sub-agent");
124
+ expect(subItem).toBeDefined();
125
+ if (subItem?.kind !== "sub-agent") throw new Error("expected sub-agent item");
126
+ expect(subItem.subAgentExecution.status).toBe(
127
+ SubAgentStatus.SUB_AGENT_COMPLETED,
128
+ );
129
+ });
130
+
131
+ it("documents the pre-fix invisible state: a task call with no matching sub-agent produces neither a card nor a tool row", () => {
132
+ // This is exactly the buggy cursor mid-stream state the runner fix
133
+ // eliminates: the task tool call exists in messages, but
134
+ // sub_agent_executions is still empty, so no sub-agent card renders and
135
+ // the task tool call is suppressed — the "nothing is happening" screen.
136
+ const taskId = "tool_orphan_1";
137
+ const exec = makeExecution({
138
+ id: "exec-orphan",
139
+ phase: ExecutionPhase.EXECUTION_IN_PROGRESS,
140
+ messages: [makeAiWithTaskCall(taskId)],
141
+ subAgents: [],
142
+ });
143
+
144
+ const items = buildThreadItems([exec], exec, null, false, undefined);
145
+
146
+ expect(items.some((i) => i.kind === "sub-agent")).toBe(false);
147
+ const toolGroups = items.filter((i) => i.kind === "tool-group");
148
+ for (const g of toolGroups) {
149
+ if (g.kind !== "tool-group") continue;
150
+ expect(g.toolCalls.some((tc) => tc.name === "task")).toBe(false);
151
+ }
152
+ });
153
+ });
@@ -0,0 +1,78 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { renderHook } from "@testing-library/react";
3
+ import { create, type JsonObject } from "@bufbuild/protobuf";
4
+ import { ToolCallSchema } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/message_pb";
5
+ import { ToolCallStatus } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
6
+ import { ToolKind } from "@stigmer/sdk";
7
+ import { useToolPresentation, registerToolPresenter } from "../tool-presenter";
8
+
9
+ function makeToolCall(opts: {
10
+ name: string;
11
+ args?: Record<string, unknown>;
12
+ result?: string;
13
+ mcpServerSlug?: string;
14
+ status?: ToolCallStatus;
15
+ }) {
16
+ return create(ToolCallSchema, {
17
+ id: opts.name,
18
+ name: opts.name,
19
+ args: (opts.args ?? {}) as JsonObject,
20
+ result: opts.result ?? "",
21
+ mcpServerSlug: opts.mcpServerSlug ?? "",
22
+ status: opts.status ?? ToolCallStatus.TOOL_CALL_COMPLETED,
23
+ });
24
+ }
25
+
26
+ describe("useToolPresentation", () => {
27
+ it("classifies a Cursor PascalCase edit tool (the bug this fixes)", () => {
28
+ const tc = makeToolCall({
29
+ name: "StrReplace",
30
+ args: { path: "/x.ts", old_string: "a", new_string: "b" },
31
+ result: '{"status":"success","value":{"linesAdded":1,"linesRemoved":1}}',
32
+ });
33
+ const { result } = renderHook(() => useToolPresentation(tc));
34
+
35
+ expect(result.current.kind).toBe(ToolKind.FILE_EDIT);
36
+ expect(result.current.category).toBe("edit");
37
+ expect(result.current.label).toBe("Edit");
38
+ expect(result.current.result.type).toBe("diff");
39
+ expect(result.current.resultSummary).toBe("+1 -1");
40
+ });
41
+
42
+ it("summarizes a failed shell exit code", () => {
43
+ const tc = makeToolCall({
44
+ name: "Shell",
45
+ args: { command: "false" },
46
+ result: "oops\n[Command failed with exit code 3]",
47
+ });
48
+ const { result } = renderHook(() => useToolPresentation(tc));
49
+
50
+ expect(result.current.kind).toBe(ToolKind.SHELL);
51
+ expect(result.current.result.type).toBe("terminal");
52
+ expect(result.current.resultSummary).toBe("exit 3");
53
+ });
54
+
55
+ it("extracts the primary argument", () => {
56
+ const tc = makeToolCall({ name: "Shell", args: { command: "ls -la" } });
57
+ const { result } = renderHook(() => useToolPresentation(tc));
58
+ expect(result.current.primaryArg).toBe("ls -la");
59
+ });
60
+
61
+ it("honors a registered custom presenter override and restores on dispose", () => {
62
+ const dispose = registerToolPresenter(ToolKind.SHELL, {
63
+ label: () => "Run command",
64
+ });
65
+ try {
66
+ const tc = makeToolCall({ name: "Shell", args: { command: "ls" } });
67
+ const { result } = renderHook(() => useToolPresentation(tc));
68
+ expect(result.current.label).toBe("Run command");
69
+ } finally {
70
+ dispose();
71
+ }
72
+
73
+ // After dispose, the default label is restored — no global leakage.
74
+ const tc = makeToolCall({ name: "Shell", args: { command: "ls" } });
75
+ const { result } = renderHook(() => useToolPresentation(tc));
76
+ expect(result.current.label).toBe("Shell");
77
+ });
78
+ });
@@ -32,6 +32,9 @@ export type { SummarizationCardProps } from "./SummarizationCard";
32
32
  export { PlanCompletionCard } from "./PlanCompletionCard";
33
33
  export type { PlanCompletionCardProps } from "./PlanCompletionCard";
34
34
 
35
+ export { PlanArtifactCard } from "./PlanArtifactCard";
36
+ export type { PlanArtifactCardProps } from "./PlanArtifactCard";
37
+
35
38
  export { useExecutionArtifacts } from "./useExecutionArtifacts";
36
39
  export type { UseExecutionArtifactsReturn } from "./useExecutionArtifacts";
37
40
 
@@ -79,6 +82,16 @@ export type {
79
82
  export { ToolArgsView } from "./ToolArgsView";
80
83
  export type { ToolArgsViewProps } from "./ToolArgsView";
81
84
 
85
+ export { ResultView, summarizeResultView } from "./ResultView";
86
+ export type { ResultViewProps } from "./ResultView";
87
+
88
+ export {
89
+ useToolPresentation,
90
+ registerToolPresenter,
91
+ getToolPresenter,
92
+ } from "./tool-presenter";
93
+ export type { ToolPresentation, ToolPresenter } from "./tool-presenter";
94
+
82
95
  export {
83
96
  CollapsibleCode,
84
97
  CollapsiblePre,
@@ -150,6 +163,9 @@ export type { WriteBacksWidgetProps } from "./WriteBacksWidget";
150
163
 
151
164
  export {
152
165
  resolveToolCategory,
166
+ resolveToolCategoryFromCall,
167
+ resolveToolCategoryFromKind,
168
+ toolKindToCategoryInfo,
153
169
  extractPrimaryArg,
154
170
  extractPrimaryArgFromPreview,
155
171
  humanizeToolName,
@@ -1,15 +1,15 @@
1
1
  import type { ToolCall } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/message_pb";
2
2
  import type { JsonObject } from "@bufbuild/protobuf";
3
+ import { ToolKind, resolveToolKind, resolveToolKindByName } from "@stigmer/sdk";
3
4
 
4
5
  /**
5
6
  * Discriminated tool categories for type-aware rendering.
6
7
  *
7
- * Mirrors the CLI's `toolDisplayMap` in
8
- * `client-apps/cli/pkg/toolrender/render.go`.
9
- *
10
- * `"mcp"` covers tools originating from an MCP server whose
11
- * names are dynamic and cannot be statically listed in
12
- * {@link TOOL_DISPLAY_MAP}.
8
+ * This is the presentation taxonomy. Classification (name -> kind) lives in
9
+ * `@stigmer/sdk`'s `resolveToolKind` (single source of truth, shared with the
10
+ * runner and Go CLI); this file maps each {@link ToolKind} to its presentation
11
+ * metadata (label, primary argument). `"mcp"` covers tools originating from an
12
+ * MCP server, whose names are dynamic.
13
13
  */
14
14
  export type ToolCategory =
15
15
  | "shell"
@@ -19,6 +19,8 @@ export type ToolCategory =
19
19
  | "delete"
20
20
  | "search"
21
21
  | "list"
22
+ | "fetch"
23
+ | "web-search"
22
24
  | "think"
23
25
  | "sub-agent"
24
26
  | "internal"
@@ -37,77 +39,45 @@ export interface ToolCategoryInfo {
37
39
  readonly fallbackArgFields: readonly string[];
38
40
  }
39
41
 
40
- interface ToolDisplayEntry {
42
+ interface KindDisplayEntry {
41
43
  readonly category: ToolCategory;
42
44
  readonly label: string;
43
45
  readonly primaryField: string;
44
46
  readonly fallbackFields?: readonly string[];
45
47
  }
46
48
 
47
- const TOOL_DISPLAY_MAP: ReadonlyMap<string, ToolDisplayEntry> = new Map([
48
- ["shell", { category: "shell", label: "Shell", primaryField: "command" }],
49
- ["bash", { category: "shell", label: "Shell", primaryField: "command" }],
50
- ["execute", { category: "shell", label: "Execute", primaryField: "command" }],
51
- ["execute_command", { category: "shell", label: "Shell", primaryField: "command" }],
52
- ["run_command", { category: "shell", label: "Shell", primaryField: "command" }],
53
- ["terminal", { category: "shell", label: "Shell", primaryField: "command" }],
54
-
55
- ["read", { category: "read", label: "Read", primaryField: "path", fallbackFields: ["file_path", "file"] }],
56
- ["read_file", { category: "read", label: "Read", primaryField: "path", fallbackFields: ["file_path", "file"] }],
57
-
58
- ["write", { category: "write", label: "Write", primaryField: "path", fallbackFields: ["file_path", "file", "filename"] }],
59
- ["write_file", { category: "write", label: "Write", primaryField: "path", fallbackFields: ["file_path", "file", "filename"] }],
60
- ["create_file", { category: "write", label: "Create", primaryField: "path", fallbackFields: ["file_path", "file", "filename"] }],
61
- ["overwrite_file", { category: "write", label: "Write", primaryField: "path", fallbackFields: ["file_path", "file", "filename"] }],
62
-
63
- ["edit", { category: "edit", label: "Edit", primaryField: "path", fallbackFields: ["file_path", "file", "filename"] }],
64
- ["edit_file", { category: "edit", label: "Edit", primaryField: "path", fallbackFields: ["file_path", "file", "filename"] }],
65
-
66
- ["delete_file", { category: "delete", label: "Delete", primaryField: "path", fallbackFields: ["file_path", "file", "filename"] }],
67
- ["remove_file", { category: "delete", label: "Delete", primaryField: "path", fallbackFields: ["file_path", "file", "filename"] }],
68
-
69
- ["glob", { category: "search", label: "Find", primaryField: "pattern" }],
70
- ["grep", { category: "search", label: "Search", primaryField: "pattern" }],
71
-
72
- ["list_directory", { category: "list", label: "List", primaryField: "path" }],
73
- ["ls", { category: "list", label: "List", primaryField: "path" }],
74
-
75
- ["think", { category: "think", label: "Thinking", primaryField: "thought" }],
76
-
77
- ["task", { category: "sub-agent", label: "Sub-agent", primaryField: "description", fallbackFields: ["prompt"] }],
78
-
79
- ["updateTodos", { category: "internal", label: "Todos", primaryField: "todos" }],
80
- ["TodoWrite", { category: "internal", label: "Todos", primaryField: "todos" }],
81
- ["write_todos", { category: "internal", label: "Todos", primaryField: "todos" }],
82
- ]);
49
+ // Presentation metadata per ToolKind. Classification (name -> kind) is owned by
50
+ // @stigmer/sdk; this table only describes how each kind is shown. MCP and
51
+ // unknown are resolved dynamically (label derived from the tool name).
52
+ const KIND_DISPLAY: Partial<Record<ToolKind, KindDisplayEntry>> = {
53
+ [ToolKind.FILE_READ]: { category: "read", label: "Read", primaryField: "path", fallbackFields: ["file_path", "file"] },
54
+ [ToolKind.FILE_WRITE]: { category: "write", label: "Write", primaryField: "path", fallbackFields: ["file_path", "file", "filename"] },
55
+ [ToolKind.FILE_EDIT]: { category: "edit", label: "Edit", primaryField: "path", fallbackFields: ["file_path", "file", "filename"] },
56
+ [ToolKind.FILE_DELETE]: { category: "delete", label: "Delete", primaryField: "path", fallbackFields: ["file_path", "file", "filename"] },
57
+ [ToolKind.SHELL]: { category: "shell", label: "Shell", primaryField: "command" },
58
+ [ToolKind.SEARCH]: { category: "search", label: "Search", primaryField: "pattern", fallbackFields: ["query", "q"] },
59
+ [ToolKind.LIST]: { category: "list", label: "List", primaryField: "path" },
60
+ [ToolKind.FETCH]: { category: "fetch", label: "Fetch", primaryField: "url", fallbackFields: ["uri"] },
61
+ [ToolKind.WEB_SEARCH]: { category: "web-search", label: "Web Search", primaryField: "query", fallbackFields: ["q", "search_term"] },
62
+ [ToolKind.THINK]: { category: "think", label: "Thinking", primaryField: "thought" },
63
+ [ToolKind.SUBAGENT]: { category: "sub-agent", label: "Sub-agent", primaryField: "description", fallbackFields: ["prompt"] },
64
+ [ToolKind.TODO]: { category: "internal", label: "Todos", primaryField: "todos" },
65
+ };
83
66
 
84
67
  /**
85
- * Resolves a tool name to its category metadata for type-aware
86
- * rendering.
87
- *
88
- * When `mcpServerSlug` is provided and the tool name is not a
89
- * known built-in, the tool is categorised as `"mcp"` with a
90
- * human-readable label derived from the raw tool name.
91
- *
92
- * Falls back to `"unknown"` only when the tool is neither
93
- * built-in nor MCP-originated.
94
- */
95
- /**
96
- * Returns true if the tool is an internal state management tool that
97
- * should not be displayed in the message thread. Internal tools are
98
- * rendered through dedicated UX surfaces (e.g. TodoList sidebar)
99
- * rather than as expandable tool call items.
68
+ * Returns true if the tool is an internal state-management tool that should not
69
+ * appear in the message thread (todos are rendered through a dedicated surface).
100
70
  */
101
71
  export function isInternalTool(toolName: string): boolean {
102
- const entry = TOOL_DISPLAY_MAP.get(toolName);
103
- return entry?.category === "internal";
72
+ return resolveToolKindByName(toolName) === ToolKind.TODO;
104
73
  }
105
74
 
106
- export function resolveToolCategory(
75
+ /** Maps a {@link ToolKind} to its presentation metadata. */
76
+ export function toolKindToCategoryInfo(
77
+ kind: ToolKind,
107
78
  toolName: string,
108
- mcpServerSlug?: string,
109
79
  ): ToolCategoryInfo {
110
- const entry = TOOL_DISPLAY_MAP.get(toolName);
80
+ const entry = KIND_DISPLAY[kind];
111
81
  if (entry) {
112
82
  return {
113
83
  category: entry.category,
@@ -117,7 +87,7 @@ export function resolveToolCategory(
117
87
  };
118
88
  }
119
89
 
120
- if (mcpServerSlug) {
90
+ if (kind === ToolKind.MCP) {
121
91
  return {
122
92
  category: "mcp",
123
93
  label: humanizeToolName(toolName),
@@ -128,12 +98,56 @@ export function resolveToolCategory(
128
98
 
129
99
  return {
130
100
  category: "unknown",
131
- label: toolName,
101
+ label: humanizeToolName(toolName),
132
102
  primaryArgField: "",
133
103
  fallbackArgFields: [],
134
104
  };
135
105
  }
136
106
 
107
+ /**
108
+ * Resolves a tool's presentation category from its name + MCP slug.
109
+ *
110
+ * Classification is delegated to `@stigmer/sdk`'s name-based resolver (the same
111
+ * table the runner and Go CLI use), then mapped to presentation metadata. When
112
+ * the caller has the full {@link ToolCall}, prefer {@link resolveToolCategoryFromCall},
113
+ * which also honours the wire `tool_kind` for forward compatibility.
114
+ */
115
+ export function resolveToolCategory(
116
+ toolName: string,
117
+ mcpServerSlug?: string,
118
+ ): ToolCategoryInfo {
119
+ return toolKindToCategoryInfo(
120
+ resolveToolKindByName(toolName, mcpServerSlug),
121
+ toolName,
122
+ );
123
+ }
124
+
125
+ /**
126
+ * Like {@link resolveToolCategory} but uses the wire `tool_kind` when present,
127
+ * falling back to name-based resolution for legacy executions.
128
+ */
129
+ export function resolveToolCategoryFromCall(toolCall: ToolCall): ToolCategoryInfo {
130
+ return toolKindToCategoryInfo(resolveToolKind(toolCall), toolCall.name);
131
+ }
132
+
133
+ /**
134
+ * Resolves presentation metadata from an explicit wire {@link ToolKind} plus the
135
+ * tool name and MCP slug. Used by surfaces that carry a denormalized `tool_kind`
136
+ * but not a full {@link ToolCall} — notably `PendingApproval`. Falls back to
137
+ * name-based resolution when the kind is unset (legacy executions).
138
+ */
139
+ export function resolveToolCategoryFromKind(
140
+ toolKind: ToolKind,
141
+ toolName: string,
142
+ mcpServerSlug?: string,
143
+ ): ToolCategoryInfo {
144
+ const kind =
145
+ toolKind !== ToolKind.UNSPECIFIED
146
+ ? toolKind
147
+ : resolveToolKindByName(toolName, mcpServerSlug);
148
+ return toolKindToCategoryInfo(kind, toolName);
149
+ }
150
+
137
151
  /**
138
152
  * Converts a snake_case or camelCase tool name into a
139
153
  * human-readable title.
@@ -188,7 +202,7 @@ function extractArgValue(
188
202
  * Returns `null` when the tool has no recognised arguments.
189
203
  */
190
204
  export function extractPrimaryArg(toolCall: ToolCall): string | null {
191
- const info = resolveToolCategory(toolCall.name, toolCall.mcpServerSlug);
205
+ const info = resolveToolCategoryFromCall(toolCall);
192
206
  const result = extractArgValue(
193
207
  toolCall.args,
194
208
  info.primaryArgField,
@@ -0,0 +1,118 @@
1
+ "use client";
2
+
3
+ // Headless presentation layer for tool calls.
4
+ //
5
+ // useToolPresentation turns a ToolCall into everything a renderer needs — kind,
6
+ // label, primary argument, a normalized result view, and a one-line summary —
7
+ // without rendering anything. Styled components (ToolCallItem, ToolCallDetail)
8
+ // consume it; platform builders can consume it to build their own tool UI.
9
+ //
10
+ // The registry lets a consumer override the label or summary for a ToolKind
11
+ // (e.g. a product that wants "Run command" instead of "Shell") without forking
12
+ // the components. Result interpretation stays in @stigmer/sdk; this is the React
13
+ // presentation seam.
14
+
15
+ import { useMemo } from "react";
16
+ import type { ToolCall } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/message_pb";
17
+ import { ToolKind, resolveToolKind, normalizeToolResult } from "@stigmer/sdk";
18
+ import type { ToolResultView } from "@stigmer/sdk";
19
+ import { resolveToolCategoryFromCall, extractPrimaryArg } from "./tool-categories";
20
+ import type { ToolCategory } from "./tool-categories";
21
+ import { summarizeResultView } from "./ResultView";
22
+
23
+ /** Optional per-kind overrides for label and summary. */
24
+ export interface ToolPresenter {
25
+ /** Overrides the display label (e.g. "Shell" -> "Run command"). */
26
+ readonly label?: (toolCall: ToolCall) => string;
27
+ /** Overrides the one-line result summary suffix. */
28
+ readonly summary?: (toolCall: ToolCall, result: ToolResultView) => string | null;
29
+ }
30
+
31
+ const registry = new Map<ToolKind, ToolPresenter>();
32
+
33
+ /**
34
+ * Registers a custom presenter for a {@link ToolKind}, overriding the default
35
+ * label and/or summary. Call once at app startup. This is the extension point
36
+ * for platform builders embedding the execution UI who want product-specific
37
+ * wording without forking the components.
38
+ *
39
+ * Returns a disposer that unregisters the presenter, restoring the previous one
40
+ * for that kind (or the default). Most apps register once at startup and ignore
41
+ * it; tests and dynamic hosts use it to avoid leaking global state.
42
+ *
43
+ * @example
44
+ * ```ts
45
+ * import { registerToolPresenter, ToolKind } from "@stigmer/react";
46
+ *
47
+ * const dispose = registerToolPresenter(ToolKind.SHELL, {
48
+ * label: () => "Run command",
49
+ * summary: (_tc, result) =>
50
+ * result.type === "terminal" && result.exitCode ? `failed (${result.exitCode})` : null,
51
+ * });
52
+ * // later: dispose();
53
+ * ```
54
+ */
55
+ export function registerToolPresenter(
56
+ kind: ToolKind,
57
+ presenter: ToolPresenter,
58
+ ): () => void {
59
+ const previous = registry.get(kind);
60
+ registry.set(kind, presenter);
61
+ return () => {
62
+ if (previous === undefined) {
63
+ registry.delete(kind);
64
+ } else {
65
+ registry.set(kind, previous);
66
+ }
67
+ };
68
+ }
69
+
70
+ /** Returns the registered presenter for a kind, if any. */
71
+ export function getToolPresenter(kind: ToolKind): ToolPresenter | undefined {
72
+ return registry.get(kind);
73
+ }
74
+
75
+ /** The fully-resolved presentation for a tool call, returned by {@link useToolPresentation}. */
76
+ export interface ToolPresentation {
77
+ /** Harness-agnostic kind (wire field, with name fallback). */
78
+ readonly kind: ToolKind;
79
+ /** Presentation category (1:1 with kind). */
80
+ readonly category: ToolCategory;
81
+ /** Display label, e.g. "Edit", "Shell". */
82
+ readonly label: string;
83
+ /** Primary argument (path, command, pattern...), or null. */
84
+ readonly primaryArg: string | null;
85
+ /** Normalized result view for rendering with {@link ResultView}. */
86
+ readonly result: ToolResultView;
87
+ /** One-line result summary suffix for the collapsed row (e.g. "+40 -0"). */
88
+ readonly resultSummary: string | null;
89
+ }
90
+
91
+ /**
92
+ * Resolves the complete, render-ready presentation for a tool call.
93
+ *
94
+ * Headless and memoized: the returned object is referentially stable across
95
+ * renders for the same `toolCall`, so it is safe to depend on in `React.memo`
96
+ * leaves of the streaming thread.
97
+ */
98
+ export function useToolPresentation(toolCall: ToolCall): ToolPresentation {
99
+ return useMemo(() => {
100
+ const kind = resolveToolKind(toolCall);
101
+ const categoryInfo = resolveToolCategoryFromCall(toolCall);
102
+ const result = normalizeToolResult(toolCall);
103
+ const override = registry.get(kind);
104
+
105
+ const label = override?.label?.(toolCall) ?? categoryInfo.label;
106
+ const resultSummary =
107
+ override?.summary?.(toolCall, result) ?? summarizeResultView(result);
108
+
109
+ return {
110
+ kind,
111
+ category: categoryInfo.category,
112
+ label,
113
+ primaryArg: extractPrimaryArg(toolCall),
114
+ result,
115
+ resultSummary,
116
+ };
117
+ }, [toolCall]);
118
+ }
@@ -59,6 +59,15 @@ export interface CreateAgentExecutionInput {
59
59
  * Maps to `ExecutionConfig.interaction_mode` in the proto.
60
60
  */
61
61
  readonly interactionMode?: "agent" | "plan";
62
+ /**
63
+ * Auto-approve every tool call for this execution.
64
+ *
65
+ * When `true`, the human-in-the-loop approval gate is bypassed and no tool
66
+ * waits for approval. When `false` (default), mutating/destructive tools
67
+ * require approval per the configured policies. Maps to
68
+ * `AgentExecutionSpec.auto_approve_all` in the proto.
69
+ */
70
+ readonly autoApproveAll?: boolean;
62
71
  /**
63
72
  * JSON Schema that the agent's final output must conform to.
64
73
  *
@@ -174,6 +183,7 @@ export function useCreateAgentExecution(): UseCreateAgentExecutionReturn {
174
183
  agentId: input.agentId,
175
184
  message: input.message,
176
185
  executionConfig,
186
+ autoApproveAll: input.autoApproveAll,
177
187
  runtimeEnv: input.runtimeEnv,
178
188
  attachments: input.attachments,
179
189
  workspaceFileRefs: input.workspaceFileRefs,