@stigmer/react 2.0.1 → 3.0.1

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
@@ -1,1035 +0,0 @@
1
- import { describe, it, expect } from "vitest";
2
- import { deriveTaskDetail } from "../execution-inspector/derive-task-detail";
3
- // ---------------------------------------------------------------------------
4
- // Helpers
5
- // ---------------------------------------------------------------------------
6
- function makeEvent(taskName, seq, occurredAt, payload) {
7
- return {
8
- eventId: `evt-${seq}`,
9
- eventType: 0,
10
- sequenceNumber: BigInt(seq),
11
- occurredAt,
12
- taskName,
13
- payload,
14
- $typeName: "ai.stigmer.agentic.workflowexecution.v1.WorkflowExecutionEvent",
15
- $unknown: undefined,
16
- };
17
- }
18
- function makeSnapshot(overrides) {
19
- return {
20
- taskId: "task-1",
21
- taskName: "my-task",
22
- taskType: 0,
23
- status: 0,
24
- startedAt: "",
25
- completedAt: "",
26
- error: "",
27
- artifactIds: [],
28
- costMicros: BigInt(0),
29
- inputTokens: BigInt(0),
30
- outputTokens: BigInt(0),
31
- $typeName: "ai.stigmer.agentic.workflowexecution.v1.WorkflowTask",
32
- $unknown: undefined,
33
- ...overrides,
34
- };
35
- }
36
- function makeDerived(overrides) {
37
- return {
38
- taskName: "my-task",
39
- taskKind: 0,
40
- status: "pending",
41
- durationMs: 0,
42
- costMicros: BigInt(0),
43
- tokensUsed: BigInt(0),
44
- attemptNumber: 1,
45
- error: "",
46
- childExecutionId: "",
47
- agentSlug: "",
48
- currentToolName: "",
49
- messagesCount: 0,
50
- toolCallsCount: 0,
51
- ...overrides,
52
- };
53
- }
54
- // ---------------------------------------------------------------------------
55
- // Tests
56
- // ---------------------------------------------------------------------------
57
- describe("deriveTaskDetail", () => {
58
- // 1. Returns null when no data
59
- it("returns null when no events, no snapshot, and no derived state", () => {
60
- const result = deriveTaskDetail("missing-task", [], undefined, undefined);
61
- expect(result).toBeNull();
62
- });
63
- it("returns null when events exist but none match the task name", () => {
64
- const events = [
65
- makeEvent("other-task", 1, "2026-01-01T00:00:00Z", {
66
- case: "taskStarted",
67
- value: { taskKind: 1, attemptNumber: 1 },
68
- }),
69
- ];
70
- const result = deriveTaskDetail("missing-task", events, undefined, undefined);
71
- expect(result).toBeNull();
72
- });
73
- // 2. Completed task with snapshot
74
- it("returns a completed task detail from snapshot with startedAt/completedAt", () => {
75
- const snapshot = makeSnapshot({
76
- startedAt: "2026-01-01T00:00:00Z",
77
- completedAt: "2026-01-01T00:00:05Z",
78
- });
79
- const derived = makeDerived({
80
- status: "completed",
81
- durationMs: 5000,
82
- });
83
- const result = deriveTaskDetail("my-task", [], snapshot, derived);
84
- expect(result).not.toBeNull();
85
- expect(result.taskName).toBe("my-task");
86
- expect(result.status).toBe("completed");
87
- expect(result.summary.startedAt).toBe("2026-01-01T00:00:00Z");
88
- expect(result.summary.completedAt).toBe("2026-01-01T00:00:05Z");
89
- expect(result.summary.durationMs).toBe(5000);
90
- });
91
- // 3. Completed task with cost and tokens from snapshot
92
- it("populates cost and tokens from snapshot", () => {
93
- const snapshot = makeSnapshot({
94
- costMicros: BigInt(15000),
95
- inputTokens: BigInt(500),
96
- outputTokens: BigInt(300),
97
- });
98
- const derived = makeDerived({ status: "completed" });
99
- const result = deriveTaskDetail("my-task", [], snapshot, derived);
100
- expect(result).not.toBeNull();
101
- expect(result.summary.costMicros).toBe(BigInt(15000));
102
- expect(result.summary.inputTokens).toBe(BigInt(500));
103
- expect(result.summary.outputTokens).toBe(BigInt(300));
104
- expect(result.summary.totalTokens).toBe(BigInt(800));
105
- });
106
- // 4. Input from snapshot
107
- it("derives input from snapshot when snapshot.input is a JsonObject", () => {
108
- const snapshot = makeSnapshot({
109
- input: { prompt: "hello" },
110
- artifactIds: ["art-1", "art-2"],
111
- });
112
- const derived = makeDerived({ status: "completed" });
113
- const result = deriveTaskDetail("my-task", [], snapshot, derived);
114
- expect(result).not.toBeNull();
115
- expect(result.input).not.toBeNull();
116
- expect(result.input.source).toBe("snapshot");
117
- expect(result.input.data).toEqual({ prompt: "hello" });
118
- expect(result.input.artifactIds).toEqual(["art-1", "art-2"]);
119
- });
120
- // 5. Output from snapshot
121
- it("derives output from snapshot when snapshot.output is a JsonObject", () => {
122
- const snapshot = makeSnapshot({
123
- output: { result: "world" },
124
- });
125
- const derived = makeDerived({ status: "completed" });
126
- const result = deriveTaskDetail("my-task", [], snapshot, derived);
127
- expect(result).not.toBeNull();
128
- expect(result.output).not.toBeNull();
129
- expect(result.output.source).toBe("snapshot");
130
- expect(result.output.data).toEqual({ result: "world" });
131
- });
132
- // 6. Input from event summary fallback
133
- it("derives input from taskStarted inputSummary when snapshot has no input", () => {
134
- const snapshot = makeSnapshot({});
135
- const derived = makeDerived({ status: "completed" });
136
- const events = [
137
- makeEvent("my-task", 1, "2026-01-01T00:00:00Z", {
138
- case: "taskStarted",
139
- value: {
140
- taskKind: 1,
141
- attemptNumber: 1,
142
- inputSummary: { truncated: "input data" },
143
- },
144
- }),
145
- ];
146
- const result = deriveTaskDetail("my-task", events, snapshot, derived);
147
- expect(result).not.toBeNull();
148
- expect(result.input).not.toBeNull();
149
- expect(result.input.source).toBe("event-summary");
150
- expect(result.input.data).toEqual({ truncated: "input data" });
151
- });
152
- // 7. Output from event summary fallback
153
- it("derives output from taskCompleted outputSummary when snapshot has no output", () => {
154
- const snapshot = makeSnapshot({});
155
- const derived = makeDerived({ status: "completed" });
156
- const events = [
157
- makeEvent("my-task", 1, "2026-01-01T00:00:00Z", {
158
- case: "taskCompleted",
159
- value: {
160
- taskKind: 1,
161
- durationMs: BigInt(1000),
162
- costMicros: BigInt(0),
163
- tokensUsed: BigInt(0),
164
- outputSummary: { answer: "42" },
165
- },
166
- }),
167
- ];
168
- const result = deriveTaskDetail("my-task", events, snapshot, derived);
169
- expect(result).not.toBeNull();
170
- expect(result.output).not.toBeNull();
171
- expect(result.output.source).toBe("event-summary");
172
- expect(result.output.data).toEqual({ answer: "42" });
173
- });
174
- // 8. No input/output available
175
- it("returns null for input and output when neither snapshot nor events have data", () => {
176
- const snapshot = makeSnapshot({});
177
- const derived = makeDerived({ status: "running" });
178
- const result = deriveTaskDetail("my-task", [], snapshot, derived);
179
- expect(result).not.toBeNull();
180
- expect(result.input).toBeNull();
181
- expect(result.output).toBeNull();
182
- });
183
- // 9. Failed task with error
184
- it("populates error detail from the latest taskFailed event", () => {
185
- const derived = makeDerived({ status: "failed" });
186
- const events = [
187
- makeEvent("my-task", 1, "2026-01-01T00:00:00Z", {
188
- case: "taskStarted",
189
- value: { taskKind: 1, attemptNumber: 1 },
190
- }),
191
- makeEvent("my-task", 2, "2026-01-01T00:00:01Z", {
192
- case: "taskFailed",
193
- value: {
194
- taskKind: 1,
195
- attemptNumber: 1,
196
- maxAttempts: 3,
197
- willRetry: false,
198
- error: "connection timeout",
199
- durationMs: BigInt(1000),
200
- },
201
- }),
202
- ];
203
- const result = deriveTaskDetail("my-task", events, undefined, derived);
204
- expect(result).not.toBeNull();
205
- expect(result.error).not.toBeNull();
206
- expect(result.error.message).toBe("connection timeout");
207
- expect(result.error.attemptNumber).toBe(1);
208
- expect(result.error.maxAttempts).toBe(3);
209
- expect(result.error.willRetry).toBe(false);
210
- expect(result.error.durationMs).toBe(1000);
211
- });
212
- it("uses the latest failure when multiple taskFailed events exist", () => {
213
- const derived = makeDerived({ status: "failed" });
214
- const events = [
215
- makeEvent("my-task", 1, "2026-01-01T00:00:00Z", {
216
- case: "taskFailed",
217
- value: {
218
- taskKind: 1,
219
- attemptNumber: 1,
220
- maxAttempts: 3,
221
- willRetry: true,
222
- error: "first error",
223
- durationMs: BigInt(500),
224
- },
225
- }),
226
- makeEvent("my-task", 2, "2026-01-01T00:00:05Z", {
227
- case: "taskFailed",
228
- value: {
229
- taskKind: 1,
230
- attemptNumber: 2,
231
- maxAttempts: 3,
232
- willRetry: false,
233
- error: "second error",
234
- durationMs: BigInt(700),
235
- },
236
- }),
237
- ];
238
- const result = deriveTaskDetail("my-task", events, undefined, derived);
239
- expect(result.error.message).toBe("second error");
240
- expect(result.error.attemptNumber).toBe(2);
241
- });
242
- // 10. Retried task
243
- it("builds retry history from multiple starts, failures, and retryings", () => {
244
- const derived = makeDerived({
245
- status: "completed",
246
- attemptNumber: 3,
247
- });
248
- const events = [
249
- makeEvent("my-task", 1, "2026-01-01T00:00:00Z", {
250
- case: "taskStarted",
251
- value: { taskKind: 1, attemptNumber: 1 },
252
- }),
253
- makeEvent("my-task", 2, "2026-01-01T00:00:01Z", {
254
- case: "taskFailed",
255
- value: {
256
- taskKind: 1,
257
- attemptNumber: 1,
258
- maxAttempts: 3,
259
- willRetry: true,
260
- error: "attempt 1 failed",
261
- durationMs: BigInt(1000),
262
- },
263
- }),
264
- makeEvent("my-task", 3, "2026-01-01T00:00:02Z", {
265
- case: "taskRetrying",
266
- value: { failedAttempt: 1, nextAttempt: 2, delayMs: BigInt(500) },
267
- }),
268
- makeEvent("my-task", 4, "2026-01-01T00:00:03Z", {
269
- case: "taskStarted",
270
- value: { taskKind: 1, attemptNumber: 2 },
271
- }),
272
- makeEvent("my-task", 5, "2026-01-01T00:00:04Z", {
273
- case: "taskFailed",
274
- value: {
275
- taskKind: 1,
276
- attemptNumber: 2,
277
- maxAttempts: 3,
278
- willRetry: true,
279
- error: "attempt 2 failed",
280
- durationMs: BigInt(800),
281
- },
282
- }),
283
- makeEvent("my-task", 6, "2026-01-01T00:00:05Z", {
284
- case: "taskRetrying",
285
- value: { failedAttempt: 2, nextAttempt: 3, delayMs: BigInt(1000) },
286
- }),
287
- makeEvent("my-task", 7, "2026-01-01T00:00:06Z", {
288
- case: "taskStarted",
289
- value: { taskKind: 1, attemptNumber: 3 },
290
- }),
291
- makeEvent("my-task", 8, "2026-01-01T00:00:08Z", {
292
- case: "taskCompleted",
293
- value: {
294
- taskKind: 1,
295
- durationMs: BigInt(2000),
296
- costMicros: BigInt(100),
297
- tokensUsed: BigInt(50),
298
- },
299
- }),
300
- ];
301
- const result = deriveTaskDetail("my-task", events, undefined, derived);
302
- expect(result).not.toBeNull();
303
- expect(result.retries).not.toBeNull();
304
- expect(result.retries.currentAttempt).toBe(3);
305
- expect(result.retries.attempts).toHaveLength(3);
306
- const [a1, a2, a3] = result.retries.attempts;
307
- expect(a1.attemptNumber).toBe(1);
308
- expect(a1.status).toBe("failed");
309
- expect(a1.error).toBe("attempt 1 failed");
310
- expect(a1.durationMs).toBe(1000);
311
- expect(a1.delayBeforeMs).toBe(500);
312
- expect(a2.attemptNumber).toBe(2);
313
- expect(a2.status).toBe("failed");
314
- expect(a2.error).toBe("attempt 2 failed");
315
- expect(a2.durationMs).toBe(800);
316
- expect(a2.delayBeforeMs).toBe(1000);
317
- expect(a3.attemptNumber).toBe(3);
318
- expect(a3.status).toBe("completed");
319
- expect(a3.error).toBe("");
320
- expect(a3.durationMs).toBe(2000);
321
- });
322
- it("returns null retries when only a single start and no failures", () => {
323
- const events = [
324
- makeEvent("my-task", 1, "2026-01-01T00:00:00Z", {
325
- case: "taskStarted",
326
- value: { taskKind: 1, attemptNumber: 1 },
327
- }),
328
- ];
329
- const derived = makeDerived({ status: "running" });
330
- const result = deriveTaskDetail("my-task", events, undefined, derived);
331
- expect(result).not.toBeNull();
332
- expect(result.retries).toBeNull();
333
- });
334
- // 11. Agent call task — full lifecycle
335
- it("builds agentCall from agentCallStarted + agentCallProgress + agentCallCompleted", () => {
336
- const derived = makeDerived({ status: "completed" });
337
- const events = [
338
- makeEvent("my-task", 1, "2026-01-01T00:00:00Z", {
339
- case: "agentCallStarted",
340
- value: {
341
- childExecutionId: "exec-child-1",
342
- agentSlug: "my-agent",
343
- messageSummary: "summarized",
344
- },
345
- }),
346
- makeEvent("my-task", 2, "2026-01-01T00:00:01Z", {
347
- case: "agentCallProgress",
348
- value: {
349
- childExecutionId: "exec-child-1",
350
- agentPhase: 2,
351
- currentToolName: "web-search",
352
- tokensConsumed: BigInt(1000),
353
- messagesCount: 5,
354
- toolCallsCount: 3,
355
- },
356
- }),
357
- makeEvent("my-task", 3, "2026-01-01T00:00:05Z", {
358
- case: "agentCallCompleted",
359
- value: {
360
- durationMs: BigInt(5000),
361
- tokensConsumed: BigInt(2000),
362
- costMicros: BigInt(500),
363
- error: "",
364
- agentPhase: 3,
365
- },
366
- }),
367
- ];
368
- const result = deriveTaskDetail("my-task", events, undefined, derived);
369
- expect(result).not.toBeNull();
370
- expect(result.agentCall).not.toBeNull();
371
- expect(result.agentCall.childExecutionId).toBe("exec-child-1");
372
- expect(result.agentCall.agentSlug).toBe("my-agent");
373
- expect(result.agentCall.agentPhase).toBe("3");
374
- expect(result.agentCall.messagesCount).toBe(5);
375
- expect(result.agentCall.toolCallsCount).toBe(3);
376
- expect(result.agentCall.tokensConsumed).toBe(BigInt(2000));
377
- expect(result.agentCall.costMicros).toBe(BigInt(500));
378
- expect(result.agentCall.error).toBe("");
379
- expect(result.agentCall.currentToolName).toBe("web-search");
380
- });
381
- // 12. Agent call without completion
382
- it("builds partial agentCall from agentCallStarted + agentCallProgress only", () => {
383
- const derived = makeDerived({ status: "running" });
384
- const events = [
385
- makeEvent("my-task", 1, "2026-01-01T00:00:00Z", {
386
- case: "agentCallStarted",
387
- value: {
388
- childExecutionId: "exec-child-2",
389
- agentSlug: "partial-agent",
390
- messageSummary: "",
391
- },
392
- }),
393
- makeEvent("my-task", 2, "2026-01-01T00:00:01Z", {
394
- case: "agentCallProgress",
395
- value: {
396
- childExecutionId: "exec-child-2",
397
- agentPhase: 1,
398
- currentToolName: "file-read",
399
- tokensConsumed: BigInt(750),
400
- messagesCount: 2,
401
- toolCallsCount: 1,
402
- },
403
- }),
404
- ];
405
- const result = deriveTaskDetail("my-task", events, undefined, derived);
406
- expect(result).not.toBeNull();
407
- expect(result.agentCall).not.toBeNull();
408
- expect(result.agentCall.childExecutionId).toBe("exec-child-2");
409
- expect(result.agentCall.agentSlug).toBe("partial-agent");
410
- expect(result.agentCall.agentPhase).toBe("1");
411
- expect(result.agentCall.tokensConsumed).toBe(BigInt(750));
412
- expect(result.agentCall.costMicros).toBe(BigInt(0));
413
- expect(result.agentCall.error).toBe("");
414
- expect(result.agentCall.currentToolName).toBe("file-read");
415
- });
416
- it("uses childExecutionId from agentCallProgress when agentCallStarted has empty ID", () => {
417
- const derived = makeDerived({ status: "running" });
418
- const events = [
419
- makeEvent("my-task", 1, "2026-01-01T00:00:00Z", {
420
- case: "agentCallStarted",
421
- value: {
422
- childExecutionId: "",
423
- agentSlug: "my-agent",
424
- messageSummary: "",
425
- },
426
- }),
427
- makeEvent("my-task", 2, "2026-01-01T00:00:01Z", {
428
- case: "agentCallProgress",
429
- value: {
430
- childExecutionId: "aex_late_arrival",
431
- agentPhase: 1,
432
- currentToolName: "web-search",
433
- tokensConsumed: BigInt(500),
434
- messagesCount: 3,
435
- toolCallsCount: 1,
436
- },
437
- }),
438
- ];
439
- const result = deriveTaskDetail("my-task", events, undefined, derived);
440
- expect(result.agentCall).not.toBeNull();
441
- expect(result.agentCall.childExecutionId).toBe("aex_late_arrival");
442
- expect(result.agentCall.agentSlug).toBe("my-agent");
443
- expect(result.agentCall.currentToolName).toBe("web-search");
444
- });
445
- it("returns null agentCall when no agentCallStarted event exists", () => {
446
- const derived = makeDerived({ status: "running" });
447
- const events = [
448
- makeEvent("my-task", 1, "2026-01-01T00:00:00Z", {
449
- case: "taskStarted",
450
- value: { taskKind: 1, attemptNumber: 1 },
451
- }),
452
- ];
453
- const result = deriveTaskDetail("my-task", events, undefined, derived);
454
- expect(result.agentCall).toBeNull();
455
- });
456
- // 12b. Snapshot metadata fallback — when agent_call events are missing
457
- // (e.g., transient emission failure) but the task snapshot metadata
458
- // contains agent_execution_id, buildAgentCall() falls back to it.
459
- it("builds agentCall from snapshot metadata when no agent events exist (fallback path)", () => {
460
- const snapshot = makeSnapshot({
461
- taskName: "my-task",
462
- metadata: { agent_execution_id: "aex_01abc123", token_attribution: "total_only", tool_call_count: 7 },
463
- });
464
- const derived = makeDerived({
465
- status: "completed",
466
- taskKind: 13, // WorkflowTaskKind.agent_call
467
- });
468
- const events = [
469
- makeEvent("my-task", 1, "2026-01-01T00:00:00Z", {
470
- case: "taskStarted",
471
- value: { taskKind: 13, attemptNumber: 1 },
472
- }),
473
- makeEvent("my-task", 2, "2026-01-01T00:01:00Z", {
474
- case: "taskCompleted",
475
- value: {
476
- taskKind: 13,
477
- durationMs: BigInt(60000),
478
- costMicros: BigInt(5000),
479
- tokensUsed: BigInt(10000),
480
- },
481
- }),
482
- ];
483
- const result = deriveTaskDetail("my-task", events, snapshot, derived);
484
- expect(result.agentCall).not.toBeNull();
485
- expect(result.agentCall.childExecutionId).toBe("aex_01abc123");
486
- expect(result.agentCall.toolCallsCount).toBe(7);
487
- });
488
- it("returns null agentCall for non-agent tasks even when snapshot has metadata", () => {
489
- const snapshot = makeSnapshot({
490
- taskName: "my-task",
491
- metadata: { some_key: "some_value" },
492
- });
493
- const derived = makeDerived({
494
- status: "completed",
495
- taskKind: 3, // http_call
496
- });
497
- const events = [
498
- makeEvent("my-task", 1, "2026-01-01T00:00:00Z", {
499
- case: "taskStarted",
500
- value: { taskKind: 3, attemptNumber: 1 },
501
- }),
502
- makeEvent("my-task", 2, "2026-01-01T00:01:00Z", {
503
- case: "taskCompleted",
504
- value: {
505
- taskKind: 3,
506
- durationMs: BigInt(500),
507
- costMicros: BigInt(0),
508
- tokensUsed: BigInt(0),
509
- },
510
- }),
511
- ];
512
- const result = deriveTaskDetail("my-task", events, snapshot, derived);
513
- expect(result.agentCall).toBeNull();
514
- });
515
- // 13. Approval requested
516
- it("populates approval from approvalRequested event", () => {
517
- const derived = makeDerived({ status: "waiting_approval" });
518
- const events = [
519
- makeEvent("my-task", 1, "2026-01-01T00:00:00Z", {
520
- case: "approvalRequested",
521
- value: {
522
- prompt: "Deploy to production?",
523
- approvers: ["admin@co.com", "lead@co.com"],
524
- timeoutSeconds: 3600,
525
- outcomes: [
526
- { name: "approve", label: "Approve" },
527
- { name: "reject", label: "Reject" },
528
- ],
529
- formSchema: { type: "object" },
530
- },
531
- }),
532
- ];
533
- const result = deriveTaskDetail("my-task", events, undefined, derived);
534
- expect(result).not.toBeNull();
535
- expect(result.approval).not.toBeNull();
536
- expect(result.approval.prompt).toBe("Deploy to production?");
537
- expect(result.approval.approvers).toEqual(["admin@co.com", "lead@co.com"]);
538
- expect(result.approval.outcomes).toEqual([
539
- { name: "approve", label: "Approve" },
540
- { name: "reject", label: "Reject" },
541
- ]);
542
- expect(result.approval.formSchema).toEqual({ type: "object" });
543
- expect(result.approval.timeoutSeconds).toBe(3600);
544
- expect(result.approval.decision).toBeNull();
545
- });
546
- // 14. Approval resolved — event-only (the brief "finalizing" window before
547
- // the task-output snapshot reflects the decision)
548
- it("populates approval decision from the event when the task output is not yet available", () => {
549
- const derived = makeDerived({ status: "running" });
550
- const events = [
551
- makeEvent("my-task", 1, "2026-01-01T00:00:00Z", {
552
- case: "approvalRequested",
553
- value: {
554
- prompt: "Deploy?",
555
- approvers: ["admin"],
556
- timeoutSeconds: 60,
557
- outcomes: [{ name: "approve", label: "Approve" }],
558
- formSchema: null,
559
- },
560
- }),
561
- makeEvent("my-task", 2, "2026-01-01T00:00:30Z", {
562
- case: "approvalResolved",
563
- value: {
564
- action: 1,
565
- resolvedBy: "admin",
566
- comment: "from event",
567
- waitDurationMs: BigInt(30000),
568
- },
569
- }),
570
- ];
571
- const result = deriveTaskDetail("my-task", events, undefined, derived);
572
- expect(result.approval).not.toBeNull();
573
- expect(result.approval.decision).not.toBeNull();
574
- // No task output snapshot yet: outcome is empty (consumers show a
575
- // "finalizing" affordance), reviewer/comment come from the event.
576
- expect(result.approval.decision.outcome).toBe("");
577
- expect(result.approval.decision.reviewer).toBe("admin");
578
- expect(result.approval.decision.comment).toBe("from event");
579
- expect(result.approval.decision.waitDurationMs).toBe(30000);
580
- expect(result.approval.decision.formData).toBeNull();
581
- expect(result.approval.decision.autoResolved).toBe(false);
582
- });
583
- // 14b. Approval resolved — sourced from the canonical task-output record
584
- it("sources the approval decision from the task-output snapshot", () => {
585
- const derived = makeDerived({ status: "completed" });
586
- const events = [
587
- makeEvent("my-task", 1, "2026-01-01T00:00:00Z", {
588
- case: "approvalRequested",
589
- value: {
590
- prompt: "Deploy?",
591
- approvers: ["admin"],
592
- timeoutSeconds: 60,
593
- outcomes: [{ name: "approve", label: "Approve Plan" }],
594
- formSchema: null,
595
- },
596
- }),
597
- ];
598
- const snapshot = makeSnapshot({
599
- output: {
600
- outcome: "approve",
601
- reviewer: "alice",
602
- responded_at: "2026-01-01T00:00:45Z",
603
- comment: "ship it",
604
- form_data: { feedback: "great plan" },
605
- },
606
- });
607
- const result = deriveTaskDetail("my-task", events, snapshot, derived);
608
- expect(result.approval.decision).not.toBeNull();
609
- expect(result.approval.decision.outcome).toBe("approve");
610
- expect(result.approval.decision.reviewer).toBe("alice");
611
- expect(result.approval.decision.respondedAt).toBe("2026-01-01T00:00:45Z");
612
- expect(result.approval.decision.comment).toBe("ship it");
613
- expect(result.approval.decision.formData).toEqual({ feedback: "great plan" });
614
- });
615
- // 14c. Snapshot wins over event for overlapping fields
616
- it("prefers the task-output snapshot over the event for overlapping fields", () => {
617
- const derived = makeDerived({ status: "completed" });
618
- const events = [
619
- makeEvent("my-task", 1, "2026-01-01T00:00:00Z", {
620
- case: "approvalRequested",
621
- value: {
622
- prompt: "Deploy?",
623
- approvers: [],
624
- timeoutSeconds: 0,
625
- outcomes: [],
626
- formSchema: null,
627
- },
628
- }),
629
- makeEvent("my-task", 2, "2026-01-01T00:00:30Z", {
630
- case: "approvalResolved",
631
- value: {
632
- action: 1,
633
- resolvedBy: "bot",
634
- comment: "from event",
635
- waitDurationMs: BigInt(12000),
636
- },
637
- }),
638
- ];
639
- const snapshot = makeSnapshot({
640
- output: {
641
- outcome: "approve",
642
- reviewer: "alice",
643
- comment: "from snapshot",
644
- },
645
- });
646
- const result = deriveTaskDetail("my-task", events, snapshot, derived);
647
- expect(result.approval.decision.outcome).toBe("approve");
648
- expect(result.approval.decision.reviewer).toBe("alice"); // snapshot wins
649
- expect(result.approval.decision.comment).toBe("from snapshot"); // snapshot wins
650
- expect(result.approval.decision.waitDurationMs).toBe(12000); // event fills the gap
651
- });
652
- // 14d. Auto-resolved + ignores internal routing keys
653
- it("reads auto_resolved and ignores internal keys in the task output", () => {
654
- const derived = makeDerived({ status: "completed" });
655
- const events = [
656
- makeEvent("my-task", 1, "2026-01-01T00:00:00Z", {
657
- case: "approvalRequested",
658
- value: {
659
- prompt: "Deploy?",
660
- approvers: [],
661
- timeoutSeconds: 0,
662
- outcomes: [],
663
- formSchema: null,
664
- },
665
- }),
666
- ];
667
- const snapshot = makeSnapshot({
668
- output: {
669
- outcome: "approve",
670
- auto_resolved: true,
671
- __flow_directive__: "gatherMore",
672
- },
673
- });
674
- const result = deriveTaskDetail("my-task", events, snapshot, derived);
675
- expect(result.approval.decision.outcome).toBe("approve");
676
- expect(result.approval.decision.autoResolved).toBe(true);
677
- });
678
- it("returns null approval when no approvalRequested event exists", () => {
679
- const derived = makeDerived({ status: "running" });
680
- const events = [
681
- makeEvent("my-task", 1, "2026-01-01T00:00:00Z", {
682
- case: "taskStarted",
683
- value: { taskKind: 1, attemptNumber: 1 },
684
- }),
685
- ];
686
- const result = deriveTaskDetail("my-task", events, undefined, derived);
687
- expect(result.approval).toBeNull();
688
- });
689
- // 15. Skipped task
690
- it("handles skipped task with taskSkipped event", () => {
691
- const derived = makeDerived({ status: "skipped" });
692
- const events = [
693
- makeEvent("my-task", 1, "2026-01-01T00:00:00Z", {
694
- case: "taskSkipped",
695
- value: { taskKind: 2, reason: "condition not met" },
696
- }),
697
- ];
698
- const result = deriveTaskDetail("my-task", events, undefined, derived);
699
- expect(result).not.toBeNull();
700
- expect(result.status).toBe("skipped");
701
- expect(result.error).toBeNull();
702
- });
703
- // 16. Waiting approval status
704
- it("reflects waiting_approval status from derived state", () => {
705
- const derived = makeDerived({ status: "waiting_approval" });
706
- const result = deriveTaskDetail("my-task", [], undefined, derived);
707
- expect(result).not.toBeNull();
708
- expect(result.status).toBe("waiting_approval");
709
- });
710
- // 17. Event log filtering
711
- it("filters eventLog to only contain events for the given task", () => {
712
- const events = [
713
- makeEvent("my-task", 1, "2026-01-01T00:00:00Z", {
714
- case: "taskStarted",
715
- value: { taskKind: 1, attemptNumber: 1 },
716
- }),
717
- makeEvent("other-task", 2, "2026-01-01T00:00:01Z", {
718
- case: "taskStarted",
719
- value: { taskKind: 1, attemptNumber: 1 },
720
- }),
721
- makeEvent("my-task", 3, "2026-01-01T00:00:02Z", {
722
- case: "taskCompleted",
723
- value: {
724
- taskKind: 1,
725
- durationMs: BigInt(2000),
726
- costMicros: BigInt(0),
727
- tokensUsed: BigInt(0),
728
- },
729
- }),
730
- ];
731
- const derived = makeDerived({ status: "completed" });
732
- const result = deriveTaskDetail("my-task", events, undefined, derived);
733
- expect(result).not.toBeNull();
734
- expect(result.eventLog).toHaveLength(2);
735
- expect(result.eventLog.every((e) => e.taskName === "my-task")).toBe(true);
736
- });
737
- // 18. Summary prefers snapshot for tokens (split)
738
- it("uses snapshot inputTokens + outputTokens when both are available", () => {
739
- const snapshot = makeSnapshot({
740
- inputTokens: BigInt(200),
741
- outputTokens: BigInt(300),
742
- });
743
- const derived = makeDerived({
744
- status: "completed",
745
- tokensUsed: BigInt(999),
746
- });
747
- const result = deriveTaskDetail("my-task", [], snapshot, derived);
748
- expect(result).not.toBeNull();
749
- expect(result.summary.inputTokens).toBe(BigInt(200));
750
- expect(result.summary.outputTokens).toBe(BigInt(300));
751
- expect(result.summary.totalTokens).toBe(BigInt(500));
752
- });
753
- // 19. Summary falls back to derived tokens
754
- it("uses derived.tokensUsed as totalTokens when snapshot has zero tokens", () => {
755
- const snapshot = makeSnapshot({
756
- inputTokens: BigInt(0),
757
- outputTokens: BigInt(0),
758
- });
759
- const derived = makeDerived({
760
- status: "completed",
761
- tokensUsed: BigInt(1234),
762
- });
763
- const result = deriveTaskDetail("my-task", [], snapshot, derived);
764
- expect(result).not.toBeNull();
765
- expect(result.summary.inputTokens).toBe(BigInt(0));
766
- expect(result.summary.outputTokens).toBe(BigInt(0));
767
- expect(result.summary.totalTokens).toBe(BigInt(1234));
768
- });
769
- // ---------------------------------------------------------------------------
770
- // Additional edge-case coverage
771
- // ---------------------------------------------------------------------------
772
- it("derives taskKind from derived state over events", () => {
773
- const derived = makeDerived({ taskKind: 5 });
774
- const events = [
775
- makeEvent("my-task", 1, "2026-01-01T00:00:00Z", {
776
- case: "taskStarted",
777
- value: { taskKind: 3, attemptNumber: 1 },
778
- }),
779
- ];
780
- const result = deriveTaskDetail("my-task", events, undefined, derived);
781
- expect(result).not.toBeNull();
782
- expect(result.taskKind).toBe(5);
783
- });
784
- it("falls back to event taskKind when derived state is undefined", () => {
785
- const events = [
786
- makeEvent("my-task", 1, "2026-01-01T00:00:00Z", {
787
- case: "taskStarted",
788
- value: { taskKind: 7, attemptNumber: 1 },
789
- }),
790
- ];
791
- const result = deriveTaskDetail("my-task", events, undefined, undefined);
792
- expect(result).not.toBeNull();
793
- expect(result.taskKind).toBe(7);
794
- });
795
- it("defaults taskKind to unspecified (0) when no source provides it", () => {
796
- const snapshot = makeSnapshot({});
797
- const result = deriveTaskDetail("my-task", [], snapshot, undefined);
798
- expect(result).not.toBeNull();
799
- expect(result.taskKind).toBe(0);
800
- });
801
- it("defaults status to pending when derivedState is undefined", () => {
802
- const snapshot = makeSnapshot({});
803
- const result = deriveTaskDetail("my-task", [], snapshot, undefined);
804
- expect(result.status).toBe("pending");
805
- });
806
- it("takes startedAt from events when snapshot has no startedAt", () => {
807
- const snapshot = makeSnapshot({ startedAt: "" });
808
- const events = [
809
- makeEvent("my-task", 1, "2026-01-01T12:00:00Z", {
810
- case: "taskStarted",
811
- value: { taskKind: 1, attemptNumber: 1 },
812
- }),
813
- ];
814
- const derived = makeDerived({ status: "running" });
815
- const result = deriveTaskDetail("my-task", events, snapshot, derived);
816
- expect(result.summary.startedAt).toBe("2026-01-01T12:00:00Z");
817
- });
818
- it("prefers snapshot costMicros over derived costMicros", () => {
819
- const snapshot = makeSnapshot({ costMicros: BigInt(999) });
820
- const derived = makeDerived({
821
- status: "completed",
822
- costMicros: BigInt(111),
823
- });
824
- const result = deriveTaskDetail("my-task", [], snapshot, derived);
825
- expect(result.summary.costMicros).toBe(BigInt(999));
826
- });
827
- it("falls back to derived costMicros when snapshot has none", () => {
828
- const derived = makeDerived({
829
- status: "completed",
830
- costMicros: BigInt(222),
831
- });
832
- const result = deriveTaskDetail("my-task", [], undefined, derived);
833
- expect(result.summary.costMicros).toBe(BigInt(222));
834
- });
835
- it("takes attemptNumber from derived over events", () => {
836
- const derived = makeDerived({ attemptNumber: 4 });
837
- const events = [
838
- makeEvent("my-task", 1, "2026-01-01T00:00:00Z", {
839
- case: "taskStarted",
840
- value: { taskKind: 1, attemptNumber: 1 },
841
- }),
842
- makeEvent("my-task", 2, "2026-01-01T00:00:01Z", {
843
- case: "taskStarted",
844
- value: { taskKind: 1, attemptNumber: 2 },
845
- }),
846
- ];
847
- const result = deriveTaskDetail("my-task", events, undefined, derived);
848
- expect(result.summary.attemptNumber).toBe(4);
849
- });
850
- it("falls back to event start count for attemptNumber when derived is undefined", () => {
851
- const events = [
852
- makeEvent("my-task", 1, "2026-01-01T00:00:00Z", {
853
- case: "taskStarted",
854
- value: { taskKind: 1, attemptNumber: 1 },
855
- }),
856
- makeEvent("my-task", 2, "2026-01-01T00:00:01Z", {
857
- case: "taskStarted",
858
- value: { taskKind: 1, attemptNumber: 2 },
859
- }),
860
- ];
861
- const result = deriveTaskDetail("my-task", events, undefined, undefined);
862
- expect(result.summary.attemptNumber).toBe(2);
863
- });
864
- it("snapshot input with empty object is treated as no input", () => {
865
- const snapshot = makeSnapshot({
866
- input: {},
867
- });
868
- const derived = makeDerived({ status: "completed" });
869
- const result = deriveTaskDetail("my-task", [], snapshot, derived);
870
- expect(result.input).toBeNull();
871
- });
872
- it("snapshot output with empty object is treated as no output", () => {
873
- const snapshot = makeSnapshot({
874
- output: {},
875
- });
876
- const derived = makeDerived({ status: "completed" });
877
- const result = deriveTaskDetail("my-task", [], snapshot, derived);
878
- expect(result.output).toBeNull();
879
- });
880
- it("handles approval with no formSchema", () => {
881
- const derived = makeDerived({ status: "waiting_approval" });
882
- const events = [
883
- makeEvent("my-task", 1, "2026-01-01T00:00:00Z", {
884
- case: "approvalRequested",
885
- value: {
886
- prompt: "Continue?",
887
- approvers: [],
888
- timeoutSeconds: 0,
889
- outcomes: [],
890
- formSchema: undefined,
891
- },
892
- }),
893
- ];
894
- const result = deriveTaskDetail("my-task", events, undefined, derived);
895
- expect(result.approval).not.toBeNull();
896
- expect(result.approval.formSchema).toBeNull();
897
- expect(result.approval.outcomes).toEqual([]);
898
- expect(result.approval.decision).toBeNull();
899
- });
900
- it("only returns a non-null result when snapshot alone is provided", () => {
901
- const snapshot = makeSnapshot({ startedAt: "2026-01-01T00:00:00Z" });
902
- const result = deriveTaskDetail("my-task", [], snapshot, undefined);
903
- expect(result).not.toBeNull();
904
- expect(result.taskName).toBe("my-task");
905
- expect(result.status).toBe("pending");
906
- expect(result.summary.startedAt).toBe("2026-01-01T00:00:00Z");
907
- });
908
- it("only returns a non-null result when derived state alone is provided", () => {
909
- const derived = makeDerived({ status: "running", durationMs: 1500 });
910
- const result = deriveTaskDetail("my-task", [], undefined, derived);
911
- expect(result).not.toBeNull();
912
- expect(result.taskName).toBe("my-task");
913
- expect(result.status).toBe("running");
914
- expect(result.summary.durationMs).toBe(1500);
915
- });
916
- it("only returns a non-null result when matching events alone are provided", () => {
917
- const events = [
918
- makeEvent("my-task", 1, "2026-01-01T00:00:00Z", {
919
- case: "taskStarted",
920
- value: { taskKind: 1, attemptNumber: 1 },
921
- }),
922
- ];
923
- const result = deriveTaskDetail("my-task", events, undefined, undefined);
924
- expect(result).not.toBeNull();
925
- expect(result.taskName).toBe("my-task");
926
- expect(result.status).toBe("pending");
927
- });
928
- it("returns error as null when no taskFailed events exist", () => {
929
- const events = [
930
- makeEvent("my-task", 1, "2026-01-01T00:00:00Z", {
931
- case: "taskStarted",
932
- value: { taskKind: 1, attemptNumber: 1 },
933
- }),
934
- ];
935
- const derived = makeDerived({ status: "running" });
936
- const result = deriveTaskDetail("my-task", events, undefined, derived);
937
- expect(result.error).toBeNull();
938
- });
939
- it("agent call phase falls back to progress phase when completed has no phase", () => {
940
- const derived = makeDerived({ status: "completed" });
941
- const events = [
942
- makeEvent("my-task", 1, "2026-01-01T00:00:00Z", {
943
- case: "agentCallStarted",
944
- value: {
945
- childExecutionId: "exec-1",
946
- agentSlug: "agent-x",
947
- messageSummary: "",
948
- },
949
- }),
950
- makeEvent("my-task", 2, "2026-01-01T00:00:01Z", {
951
- case: "agentCallProgress",
952
- value: {
953
- childExecutionId: "",
954
- agentPhase: 4,
955
- currentToolName: "grep",
956
- tokensConsumed: BigInt(100),
957
- messagesCount: 1,
958
- toolCallsCount: 1,
959
- },
960
- }),
961
- ];
962
- const result = deriveTaskDetail("my-task", events, undefined, derived);
963
- expect(result.agentCall.agentPhase).toBe("4");
964
- });
965
- it("agent call with error from completion", () => {
966
- const derived = makeDerived({ status: "failed" });
967
- const events = [
968
- makeEvent("my-task", 1, "2026-01-01T00:00:00Z", {
969
- case: "agentCallStarted",
970
- value: {
971
- childExecutionId: "exec-err",
972
- agentSlug: "agent-y",
973
- messageSummary: "",
974
- },
975
- }),
976
- makeEvent("my-task", 2, "2026-01-01T00:00:05Z", {
977
- case: "agentCallCompleted",
978
- value: {
979
- durationMs: BigInt(5000),
980
- tokensConsumed: BigInt(0),
981
- costMicros: BigInt(0),
982
- error: "agent crashed",
983
- agentPhase: 0,
984
- },
985
- }),
986
- ];
987
- const result = deriveTaskDetail("my-task", events, undefined, derived);
988
- expect(result.agentCall.error).toBe("agent crashed");
989
- });
990
- it("input prefers snapshot data over event summary when both exist", () => {
991
- const snapshot = makeSnapshot({
992
- input: { full: "data" },
993
- artifactIds: ["a1"],
994
- });
995
- const derived = makeDerived({ status: "completed" });
996
- const events = [
997
- makeEvent("my-task", 1, "2026-01-01T00:00:00Z", {
998
- case: "taskStarted",
999
- value: {
1000
- taskKind: 1,
1001
- attemptNumber: 1,
1002
- inputSummary: { truncated: "summary" },
1003
- },
1004
- }),
1005
- ];
1006
- const result = deriveTaskDetail("my-task", events, snapshot, derived);
1007
- expect(result.input.source).toBe("snapshot");
1008
- expect(result.input.data).toEqual({ full: "data" });
1009
- expect(result.input.summary).toEqual({ truncated: "summary" });
1010
- expect(result.input.artifactIds).toEqual(["a1"]);
1011
- });
1012
- it("output prefers snapshot data over event summary when both exist", () => {
1013
- const snapshot = makeSnapshot({
1014
- output: { full: "result" },
1015
- });
1016
- const derived = makeDerived({ status: "completed" });
1017
- const events = [
1018
- makeEvent("my-task", 1, "2026-01-01T00:00:00Z", {
1019
- case: "taskCompleted",
1020
- value: {
1021
- taskKind: 1,
1022
- durationMs: BigInt(100),
1023
- costMicros: BigInt(0),
1024
- tokensUsed: BigInt(0),
1025
- outputSummary: { summary: "brief" },
1026
- },
1027
- }),
1028
- ];
1029
- const result = deriveTaskDetail("my-task", events, snapshot, derived);
1030
- expect(result.output.source).toBe("snapshot");
1031
- expect(result.output.data).toEqual({ full: "result" });
1032
- expect(result.output.summary).toEqual({ summary: "brief" });
1033
- });
1034
- });
1035
- //# sourceMappingURL=derive-task-detail.test.js.map