@stigmer/react 3.1.16 → 3.2.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 (824) hide show
  1. package/README.md +16 -1
  2. package/agent-instance/AgentInstanceList.d.ts.map +1 -1
  3. package/agent-instance/AgentInstanceList.js +11 -3
  4. package/agent-instance/AgentInstanceList.js.map +1 -1
  5. package/channel/AgentChannelsPanel.d.ts +60 -0
  6. package/channel/AgentChannelsPanel.d.ts.map +1 -0
  7. package/channel/AgentChannelsPanel.js +255 -0
  8. package/channel/AgentChannelsPanel.js.map +1 -0
  9. package/channel/ChannelConversationsDialog.d.ts +41 -0
  10. package/channel/ChannelConversationsDialog.d.ts.map +1 -0
  11. package/channel/ChannelConversationsDialog.js +94 -0
  12. package/channel/ChannelConversationsDialog.js.map +1 -0
  13. package/channel/ChannelCredentialsDialog.d.ts +37 -0
  14. package/channel/ChannelCredentialsDialog.d.ts.map +1 -0
  15. package/channel/ChannelCredentialsDialog.js +75 -0
  16. package/channel/ChannelCredentialsDialog.js.map +1 -0
  17. package/channel/ChannelToolCredentials.d.ts +31 -0
  18. package/channel/ChannelToolCredentials.d.ts.map +1 -0
  19. package/channel/ChannelToolCredentials.js +41 -0
  20. package/channel/ChannelToolCredentials.js.map +1 -0
  21. package/channel/ConnectSlackDialog.d.ts +61 -0
  22. package/channel/ConnectSlackDialog.d.ts.map +1 -0
  23. package/channel/ConnectSlackDialog.js +238 -0
  24. package/channel/ConnectSlackDialog.js.map +1 -0
  25. package/channel/ConnectWhatsAppDialog.d.ts +70 -0
  26. package/channel/ConnectWhatsAppDialog.d.ts.map +1 -0
  27. package/channel/ConnectWhatsAppDialog.js +256 -0
  28. package/channel/ConnectWhatsAppDialog.js.map +1 -0
  29. package/channel/SlackMarkIcon.d.ts +11 -0
  30. package/channel/SlackMarkIcon.d.ts.map +1 -0
  31. package/channel/SlackMarkIcon.js +13 -0
  32. package/channel/SlackMarkIcon.js.map +1 -0
  33. package/channel/WhatsAppMarkIcon.d.ts +12 -0
  34. package/channel/WhatsAppMarkIcon.d.ts.map +1 -0
  35. package/channel/WhatsAppMarkIcon.js +14 -0
  36. package/channel/WhatsAppMarkIcon.js.map +1 -0
  37. package/channel/connect/ServingAppSection.d.ts +57 -0
  38. package/channel/connect/ServingAppSection.d.ts.map +1 -0
  39. package/channel/connect/ServingAppSection.js +49 -0
  40. package/channel/connect/ServingAppSection.js.map +1 -0
  41. package/channel/connect/ToolCredentialsSection.d.ts +20 -0
  42. package/channel/connect/ToolCredentialsSection.d.ts.map +1 -0
  43. package/channel/connect/ToolCredentialsSection.js +22 -0
  44. package/channel/connect/ToolCredentialsSection.js.map +1 -0
  45. package/channel/connect/VerbatimRefusal.d.ts +16 -0
  46. package/channel/connect/VerbatimRefusal.d.ts.map +1 -0
  47. package/channel/connect/VerbatimRefusal.js +18 -0
  48. package/channel/connect/VerbatimRefusal.js.map +1 -0
  49. package/channel/connect/icons.d.ts +16 -0
  50. package/channel/connect/icons.d.ts.map +1 -0
  51. package/channel/connect/icons.js +21 -0
  52. package/channel/connect/icons.js.map +1 -0
  53. package/channel/index.d.ts +36 -0
  54. package/channel/index.d.ts.map +1 -0
  55. package/channel/index.js +19 -0
  56. package/channel/index.js.map +1 -0
  57. package/channel/providerPresentation.d.ts +44 -0
  58. package/channel/providerPresentation.d.ts.map +1 -0
  59. package/channel/providerPresentation.js +106 -0
  60. package/channel/providerPresentation.js.map +1 -0
  61. package/channel/providers.d.ts +62 -0
  62. package/channel/providers.d.ts.map +1 -0
  63. package/channel/providers.js +26 -0
  64. package/channel/providers.js.map +1 -0
  65. package/channel/useAgentChannel.d.ts +31 -0
  66. package/channel/useAgentChannel.d.ts.map +1 -0
  67. package/channel/useAgentChannel.js +34 -0
  68. package/channel/useAgentChannel.js.map +1 -0
  69. package/channel/useAgentChannelList.d.ts +43 -0
  70. package/channel/useAgentChannelList.d.ts.map +1 -0
  71. package/channel/useAgentChannelList.js +39 -0
  72. package/channel/useAgentChannelList.js.map +1 -0
  73. package/channel/useChannelSessions.d.ts +47 -0
  74. package/channel/useChannelSessions.d.ts.map +1 -0
  75. package/channel/useChannelSessions.js +38 -0
  76. package/channel/useChannelSessions.js.map +1 -0
  77. package/channel/useChannelToolReadiness.d.ts +23 -0
  78. package/channel/useChannelToolReadiness.d.ts.map +1 -0
  79. package/channel/useChannelToolReadiness.js +28 -0
  80. package/channel/useChannelToolReadiness.js.map +1 -0
  81. package/channel/useConnectSlackChannel.d.ts +75 -0
  82. package/channel/useConnectSlackChannel.d.ts.map +1 -0
  83. package/channel/useConnectSlackChannel.js +115 -0
  84. package/channel/useConnectSlackChannel.js.map +1 -0
  85. package/channel/useCreateAgentChannel.d.ts +42 -0
  86. package/channel/useCreateAgentChannel.d.ts.map +1 -0
  87. package/channel/useCreateAgentChannel.js +48 -0
  88. package/channel/useCreateAgentChannel.js.map +1 -0
  89. package/channel/useDeleteAgentChannel.d.ts +40 -0
  90. package/channel/useDeleteAgentChannel.d.ts.map +1 -0
  91. package/channel/useDeleteAgentChannel.js +44 -0
  92. package/channel/useDeleteAgentChannel.js.map +1 -0
  93. package/channel/useInstallChannel.d.ts +60 -0
  94. package/channel/useInstallChannel.d.ts.map +1 -0
  95. package/channel/useInstallChannel.js +63 -0
  96. package/channel/useInstallChannel.js.map +1 -0
  97. package/channel/useOrgAgentChannelList.d.ts +32 -0
  98. package/channel/useOrgAgentChannelList.d.ts.map +1 -0
  99. package/channel/useOrgAgentChannelList.js +29 -0
  100. package/channel/useOrgAgentChannelList.js.map +1 -0
  101. package/channel/useSaveAgentChannel.d.ts +63 -0
  102. package/channel/useSaveAgentChannel.d.ts.map +1 -0
  103. package/channel/useSaveAgentChannel.js +104 -0
  104. package/channel/useSaveAgentChannel.js.map +1 -0
  105. package/channel-app/ChannelAppDetailPanel.d.ts +46 -0
  106. package/channel-app/ChannelAppDetailPanel.d.ts.map +1 -0
  107. package/channel-app/ChannelAppDetailPanel.js +142 -0
  108. package/channel-app/ChannelAppDetailPanel.js.map +1 -0
  109. package/channel-app/ChannelAppListPanel.d.ts +36 -0
  110. package/channel-app/ChannelAppListPanel.d.ts.map +1 -0
  111. package/channel-app/ChannelAppListPanel.js +63 -0
  112. package/channel-app/ChannelAppListPanel.js.map +1 -0
  113. package/channel-app/CreateChannelAppForm.d.ts +54 -0
  114. package/channel-app/CreateChannelAppForm.d.ts.map +1 -0
  115. package/channel-app/CreateChannelAppForm.js +140 -0
  116. package/channel-app/CreateChannelAppForm.js.map +1 -0
  117. package/channel-app/index.d.ts +18 -0
  118. package/channel-app/index.d.ts.map +1 -0
  119. package/channel-app/index.js +10 -0
  120. package/channel-app/index.js.map +1 -0
  121. package/channel-app/internal.d.ts +33 -0
  122. package/channel-app/internal.d.ts.map +1 -0
  123. package/channel-app/internal.js +44 -0
  124. package/channel-app/internal.js.map +1 -0
  125. package/channel-app/slackAppSetup.d.ts +80 -0
  126. package/channel-app/slackAppSetup.d.ts.map +1 -0
  127. package/channel-app/slackAppSetup.js +123 -0
  128. package/channel-app/slackAppSetup.js.map +1 -0
  129. package/channel-app/useChannelAppList.d.ts +35 -0
  130. package/channel-app/useChannelAppList.d.ts.map +1 -0
  131. package/channel-app/useChannelAppList.js +34 -0
  132. package/channel-app/useChannelAppList.js.map +1 -0
  133. package/channel-app/useCreateChannelApp.d.ts +39 -0
  134. package/channel-app/useCreateChannelApp.d.ts.map +1 -0
  135. package/channel-app/useCreateChannelApp.js +50 -0
  136. package/channel-app/useCreateChannelApp.js.map +1 -0
  137. package/channel-app/useDeleteChannelApp.d.ts +31 -0
  138. package/channel-app/useDeleteChannelApp.d.ts.map +1 -0
  139. package/channel-app/useDeleteChannelApp.js +43 -0
  140. package/channel-app/useDeleteChannelApp.js.map +1 -0
  141. package/channel-app/useUpdateChannelApp.d.ts +39 -0
  142. package/channel-app/useUpdateChannelApp.d.ts.map +1 -0
  143. package/channel-app/useUpdateChannelApp.js +50 -0
  144. package/channel-app/useUpdateChannelApp.js.map +1 -0
  145. package/channel-app/whatsappAppSetup.d.ts +51 -0
  146. package/channel-app/whatsappAppSetup.d.ts.map +1 -0
  147. package/channel-app/whatsappAppSetup.js +57 -0
  148. package/channel-app/whatsappAppSetup.js.map +1 -0
  149. package/environment/index.d.ts +2 -0
  150. package/environment/index.d.ts.map +1 -1
  151. package/environment/index.js +1 -0
  152. package/environment/index.js.map +1 -1
  153. package/environment/useToolCredentialsReadiness.d.ts +52 -0
  154. package/environment/useToolCredentialsReadiness.d.ts.map +1 -0
  155. package/environment/useToolCredentialsReadiness.js +84 -0
  156. package/environment/useToolCredentialsReadiness.js.map +1 -0
  157. package/execution/ArtifactContentBody.d.ts.map +1 -1
  158. package/execution/ArtifactContentBody.js +5 -21
  159. package/execution/ArtifactContentBody.js.map +1 -1
  160. package/execution/ArtifactFileContent.d.ts +28 -0
  161. package/execution/ArtifactFileContent.d.ts.map +1 -0
  162. package/execution/ArtifactFileContent.js +36 -0
  163. package/execution/ArtifactFileContent.js.map +1 -0
  164. package/execution/ArtifactRow.d.ts +8 -20
  165. package/execution/ArtifactRow.d.ts.map +1 -1
  166. package/execution/ArtifactRow.js +12 -45
  167. package/execution/ArtifactRow.js.map +1 -1
  168. package/execution/ArtifactRowView.d.ts +43 -0
  169. package/execution/ArtifactRowView.d.ts.map +1 -0
  170. package/execution/ArtifactRowView.js +35 -0
  171. package/execution/ArtifactRowView.js.map +1 -0
  172. package/execution/FileChangesView.d.ts.map +1 -1
  173. package/execution/FileChangesView.js +1 -61
  174. package/execution/FileChangesView.js.map +1 -1
  175. package/execution/SubAgentSection.d.ts.map +1 -1
  176. package/execution/SubAgentSection.js +4 -15
  177. package/execution/SubAgentSection.js.map +1 -1
  178. package/execution/ToolCallItem.d.ts.map +1 -1
  179. package/execution/ToolCallItem.js +16 -61
  180. package/execution/ToolCallItem.js.map +1 -1
  181. package/execution/agent-execution-document.d.ts +31 -0
  182. package/execution/agent-execution-document.d.ts.map +1 -0
  183. package/execution/agent-execution-document.js +48 -0
  184. package/execution/agent-execution-document.js.map +1 -0
  185. package/{session → execution}/artifact-document.d.ts +2 -3
  186. package/execution/artifact-document.d.ts.map +1 -0
  187. package/execution/artifact-document.js +23 -0
  188. package/execution/artifact-document.js.map +1 -0
  189. package/execution/artifact-row-item.d.ts +56 -0
  190. package/execution/artifact-row-item.d.ts.map +1 -0
  191. package/execution/artifact-row-item.js +57 -0
  192. package/execution/artifact-row-item.js.map +1 -0
  193. package/execution/deriveExecutionFileChanges.d.ts +55 -0
  194. package/execution/deriveExecutionFileChanges.d.ts.map +1 -0
  195. package/execution/deriveExecutionFileChanges.js +216 -0
  196. package/execution/deriveExecutionFileChanges.js.map +1 -0
  197. package/execution/file-change-document.d.ts +22 -0
  198. package/execution/file-change-document.d.ts.map +1 -0
  199. package/execution/file-change-document.js +34 -0
  200. package/execution/file-change-document.js.map +1 -0
  201. package/execution/index.d.ts +14 -0
  202. package/execution/index.d.ts.map +1 -1
  203. package/execution/index.js +9 -0
  204. package/execution/index.js.map +1 -1
  205. package/execution/useArtifactContentById.d.ts +61 -0
  206. package/execution/useArtifactContentById.d.ts.map +1 -0
  207. package/execution/useArtifactContentById.js +63 -0
  208. package/execution/useArtifactContentById.js.map +1 -0
  209. package/execution/useArtifactDownload.d.ts +4 -3
  210. package/execution/useArtifactDownload.d.ts.map +1 -1
  211. package/execution/useArtifactDownload.js +4 -3
  212. package/execution/useArtifactDownload.js.map +1 -1
  213. package/execution/useCreateAgentExecution.d.ts +1 -1
  214. package/execution/useLiveAgentExecution.d.ts +59 -0
  215. package/execution/useLiveAgentExecution.d.ts.map +1 -0
  216. package/execution/useLiveAgentExecution.js +73 -0
  217. package/execution/useLiveAgentExecution.js.map +1 -0
  218. package/index.d.ts +15 -10
  219. package/index.d.ts.map +1 -1
  220. package/index.js +21 -6
  221. package/index.js.map +1 -1
  222. package/internal/DecisionButton.d.ts +4 -3
  223. package/internal/DecisionButton.d.ts.map +1 -1
  224. package/internal/DecisionButton.js +4 -3
  225. package/internal/DecisionButton.js.map +1 -1
  226. package/internal/oauthPopup.d.ts +101 -0
  227. package/internal/oauthPopup.d.ts.map +1 -0
  228. package/internal/oauthPopup.js +208 -0
  229. package/internal/oauthPopup.js.map +1 -0
  230. package/internal/store/index.d.ts +0 -2
  231. package/internal/store/index.d.ts.map +1 -1
  232. package/internal/store/index.js +0 -1
  233. package/internal/store/index.js.map +1 -1
  234. package/internal/store/workflow-execution-event-store.d.ts +34 -1
  235. package/internal/store/workflow-execution-event-store.d.ts.map +1 -1
  236. package/internal/store/workflow-execution-event-store.js +81 -3
  237. package/internal/store/workflow-execution-event-store.js.map +1 -1
  238. package/internal/store/workspace-file-selection-store.d.ts +1 -2
  239. package/internal/store/workspace-file-selection-store.d.ts.map +1 -1
  240. package/internal/store/workspace-file-selection-store.js +2 -5
  241. package/internal/store/workspace-file-selection-store.js.map +1 -1
  242. package/internal/thread-card/ThreadCardShell.d.ts +91 -0
  243. package/internal/thread-card/ThreadCardShell.d.ts.map +1 -0
  244. package/internal/thread-card/ThreadCardShell.js +41 -0
  245. package/internal/thread-card/ThreadCardShell.js.map +1 -0
  246. package/internal/thread-card/glyphs.d.ts +34 -0
  247. package/internal/thread-card/glyphs.d.ts.map +1 -0
  248. package/internal/thread-card/glyphs.js +50 -0
  249. package/internal/thread-card/glyphs.js.map +1 -0
  250. package/internal/thread-card/index.d.ts +3 -0
  251. package/internal/thread-card/index.d.ts.map +1 -0
  252. package/internal/thread-card/index.js +3 -0
  253. package/internal/thread-card/index.js.map +1 -0
  254. package/internal/useRevealLine.d.ts +2 -2
  255. package/internal/useRevealLine.js +2 -2
  256. package/mcp-server/OAuthCallbackHandler.js +1 -1
  257. package/mcp-server/OAuthCallbackHandler.js.map +1 -1
  258. package/mcp-server/useMcpServerOAuthConnect.d.ts +4 -23
  259. package/mcp-server/useMcpServerOAuthConnect.d.ts.map +1 -1
  260. package/mcp-server/useMcpServerOAuthConnect.js +12 -145
  261. package/mcp-server/useMcpServerOAuthConnect.js.map +1 -1
  262. package/package.json +4 -4
  263. package/provider.d.ts +32 -0
  264. package/provider.d.ts.map +1 -1
  265. package/provider.js +25 -1
  266. package/provider.js.map +1 -1
  267. package/session/NewSessionViewer.d.ts.map +1 -1
  268. package/session/NewSessionViewer.js +0 -1
  269. package/session/NewSessionViewer.js.map +1 -1
  270. package/session/SessionPanelChip.d.ts +7 -22
  271. package/session/SessionPanelChip.d.ts.map +1 -1
  272. package/session/SessionPanelChip.js +8 -36
  273. package/session/SessionPanelChip.js.map +1 -1
  274. package/session/SessionViewer.d.ts +7 -4
  275. package/session/SessionViewer.d.ts.map +1 -1
  276. package/session/SessionViewer.js +32 -30
  277. package/session/SessionViewer.js.map +1 -1
  278. package/session/audience.d.ts +15 -1
  279. package/session/audience.d.ts.map +1 -1
  280. package/session/channelOrigin.d.ts +33 -0
  281. package/session/channelOrigin.d.ts.map +1 -0
  282. package/session/channelOrigin.js +36 -0
  283. package/session/channelOrigin.js.map +1 -0
  284. package/session/facets/index.d.ts +0 -2
  285. package/session/facets/index.d.ts.map +1 -1
  286. package/session/facets/index.js +0 -1
  287. package/session/facets/index.js.map +1 -1
  288. package/session/index.d.ts +2 -2
  289. package/session/index.d.ts.map +1 -1
  290. package/session/index.js +5 -3
  291. package/session/index.js.map +1 -1
  292. package/session/useSessionFileChanges.d.ts +10 -34
  293. package/session/useSessionFileChanges.d.ts.map +1 -1
  294. package/session/useSessionFileChanges.js +9 -141
  295. package/session/useSessionFileChanges.js.map +1 -1
  296. package/session/useSessionPanel.d.ts +5 -15
  297. package/session/useSessionPanel.d.ts.map +1 -1
  298. package/session/useSessionPanel.js +3 -35
  299. package/session/useSessionPanel.js.map +1 -1
  300. package/session/useSessionRailViews.d.ts +3 -6
  301. package/session/useSessionRailViews.d.ts.map +1 -1
  302. package/session/useSessionRailViews.js +3 -17
  303. package/session/useSessionRailViews.js.map +1 -1
  304. package/settings/ChannelAppsSection.d.ts +13 -0
  305. package/settings/ChannelAppsSection.d.ts.map +1 -0
  306. package/settings/ChannelAppsSection.js +48 -0
  307. package/settings/ChannelAppsSection.js.map +1 -0
  308. package/settings/index.d.ts +1 -0
  309. package/settings/index.d.ts.map +1 -1
  310. package/settings/index.js +1 -0
  311. package/settings/index.js.map +1 -1
  312. package/settings/settings-nav.d.ts.map +1 -1
  313. package/settings/settings-nav.js +6 -1
  314. package/settings/settings-nav.js.map +1 -1
  315. package/sharing/AgentShareList.d.ts.map +1 -1
  316. package/sharing/AgentShareList.js +11 -3
  317. package/sharing/AgentShareList.js.map +1 -1
  318. package/sharing/ShareAgentDialog.js +1 -1
  319. package/sharing/useShareToolReadiness.d.ts +9 -38
  320. package/sharing/useShareToolReadiness.d.ts.map +1 -1
  321. package/sharing/useShareToolReadiness.js +7 -72
  322. package/sharing/useShareToolReadiness.js.map +1 -1
  323. package/src/__tests__/provider-container.layout.test.tsx +165 -0
  324. package/src/__tests__/provider-theme-scope.test.tsx +31 -0
  325. package/src/agent-instance/AgentInstanceList.tsx +60 -42
  326. package/src/agent-instance/__tests__/AgentInstanceList.test.tsx +161 -0
  327. package/src/channel/AgentChannelsPanel.tsx +688 -0
  328. package/src/channel/ChannelConversationsDialog.tsx +267 -0
  329. package/src/channel/ChannelCredentialsDialog.tsx +219 -0
  330. package/src/channel/ChannelToolCredentials.tsx +124 -0
  331. package/src/channel/ConnectSlackDialog.tsx +611 -0
  332. package/src/channel/ConnectWhatsAppDialog.tsx +624 -0
  333. package/src/channel/SlackMarkIcon.tsx +21 -0
  334. package/src/channel/WhatsAppMarkIcon.tsx +22 -0
  335. package/src/channel/__tests__/AgentChannelsPanel.test.tsx +638 -0
  336. package/src/channel/__tests__/ChannelConversationsDialog.test.tsx +114 -0
  337. package/src/channel/__tests__/ChannelCredentialsDialog.test.tsx +240 -0
  338. package/src/channel/__tests__/ConnectSlackDialog.test.tsx +659 -0
  339. package/src/channel/__tests__/ConnectWhatsAppDialog.test.tsx +564 -0
  340. package/src/channel/__tests__/providers.test.ts +118 -0
  341. package/src/channel/__tests__/useAgentChannel.test.tsx +116 -0
  342. package/src/channel/__tests__/useAgentChannelList.test.tsx +166 -0
  343. package/src/channel/__tests__/useChannelSessions.test.tsx +95 -0
  344. package/src/channel/__tests__/useChannelToolReadiness.test.tsx +158 -0
  345. package/src/channel/__tests__/useConnectSlackChannel.test.tsx +276 -0
  346. package/src/channel/__tests__/useDeleteAgentChannel.test.tsx +97 -0
  347. package/src/channel/__tests__/useInstallChannel.test.tsx +177 -0
  348. package/src/channel/__tests__/useSaveAgentChannel.test.tsx +294 -0
  349. package/src/channel/connect/ServingAppSection.tsx +185 -0
  350. package/src/channel/connect/ToolCredentialsSection.tsx +67 -0
  351. package/src/channel/connect/VerbatimRefusal.tsx +27 -0
  352. package/src/channel/connect/icons.tsx +42 -0
  353. package/src/channel/index.ts +65 -0
  354. package/src/channel/providerPresentation.ts +154 -0
  355. package/src/channel/providers.ts +73 -0
  356. package/src/channel/useAgentChannel.ts +58 -0
  357. package/src/channel/useAgentChannelList.ts +69 -0
  358. package/src/channel/useChannelSessions.ts +73 -0
  359. package/src/channel/useChannelToolReadiness.ts +39 -0
  360. package/src/channel/useConnectSlackChannel.ts +195 -0
  361. package/src/channel/useCreateAgentChannel.ts +73 -0
  362. package/src/channel/useDeleteAgentChannel.ts +71 -0
  363. package/src/channel/useInstallChannel.ts +117 -0
  364. package/src/channel/useOrgAgentChannelList.ts +60 -0
  365. package/src/channel/useSaveAgentChannel.ts +133 -0
  366. package/src/channel-app/ChannelAppDetailPanel.tsx +510 -0
  367. package/src/channel-app/ChannelAppListPanel.tsx +201 -0
  368. package/src/channel-app/CreateChannelAppForm.tsx +529 -0
  369. package/src/channel-app/__tests__/channelAppWhatsApp.test.tsx +270 -0
  370. package/src/channel-app/__tests__/slackAppSetup.test.ts +75 -0
  371. package/src/channel-app/__tests__/useChannelAppHooks.test.tsx +157 -0
  372. package/src/channel-app/__tests__/whatsappAppSetup.test.ts +39 -0
  373. package/src/channel-app/index.ts +30 -0
  374. package/src/channel-app/internal.tsx +180 -0
  375. package/src/channel-app/slackAppSetup.ts +153 -0
  376. package/src/channel-app/useChannelAppList.ts +59 -0
  377. package/src/channel-app/useCreateChannelApp.ts +70 -0
  378. package/src/channel-app/useDeleteChannelApp.ts +62 -0
  379. package/src/channel-app/useUpdateChannelApp.ts +70 -0
  380. package/src/channel-app/whatsappAppSetup.ts +62 -0
  381. package/src/environment/index.ts +2 -0
  382. package/src/environment/useToolCredentialsReadiness.ts +122 -0
  383. package/src/execution/ArtifactContentBody.tsx +6 -88
  384. package/src/execution/ArtifactFileContent.tsx +110 -0
  385. package/src/execution/ArtifactRow.tsx +28 -118
  386. package/src/execution/ArtifactRowView.tsx +137 -0
  387. package/src/execution/FileChangesView.tsx +4 -69
  388. package/src/execution/SubAgentSection.tsx +2 -36
  389. package/src/execution/ToolCallItem.tsx +48 -175
  390. package/src/execution/__tests__/ArtifactFileContent.test.tsx +60 -0
  391. package/src/execution/__tests__/ArtifactRowView.test.tsx +78 -0
  392. package/src/execution/__tests__/agent-execution-document.test.ts +45 -0
  393. package/src/execution/__tests__/artifact-row-item.test.ts +128 -0
  394. package/src/execution/__tests__/deriveExecutionFileChanges.test.ts +270 -0
  395. package/src/execution/__tests__/useArtifactContentById.test.tsx +85 -0
  396. package/src/execution/__tests__/useLiveAgentExecution.test.tsx +202 -0
  397. package/src/execution/agent-execution-document.ts +54 -0
  398. package/src/execution/artifact-document.ts +24 -0
  399. package/src/execution/artifact-row-item.ts +97 -0
  400. package/src/execution/deriveExecutionFileChanges.ts +237 -0
  401. package/src/execution/file-change-document.ts +37 -0
  402. package/src/execution/index.ts +36 -0
  403. package/src/execution/useArtifactContentById.ts +120 -0
  404. package/src/execution/useArtifactDownload.ts +4 -3
  405. package/src/execution/useCreateAgentExecution.ts +1 -1
  406. package/src/execution/useLiveAgentExecution.ts +127 -0
  407. package/src/index.ts +155 -11
  408. package/src/internal/DecisionButton.tsx +4 -3
  409. package/src/internal/__tests__/ThreadCardShell.test.tsx +105 -0
  410. package/src/internal/__tests__/oauthPopup.test.ts +245 -0
  411. package/src/internal/oauthPopup.ts +261 -0
  412. package/src/internal/store/__tests__/workflow-execution-event-store.test.ts +375 -5
  413. package/src/internal/store/index.ts +0 -3
  414. package/src/internal/store/workflow-execution-event-store.ts +123 -4
  415. package/src/internal/store/workspace-file-selection-store.ts +2 -5
  416. package/src/internal/thread-card/ThreadCardShell.tsx +189 -0
  417. package/src/internal/thread-card/glyphs.tsx +108 -0
  418. package/src/internal/thread-card/index.ts +19 -0
  419. package/src/internal/useRevealLine.ts +2 -2
  420. package/src/mcp-server/OAuthCallbackHandler.tsx +2 -2
  421. package/src/mcp-server/useMcpServerOAuthConnect.ts +22 -184
  422. package/src/provider.tsx +42 -0
  423. package/src/session/NewSessionViewer.tsx +0 -1
  424. package/src/session/SessionPanelChip.tsx +10 -96
  425. package/src/session/SessionViewer.tsx +170 -144
  426. package/src/session/__tests__/SessionViewer-artifactTabs.test.tsx +1 -1
  427. package/src/session/__tests__/observerAudience.test.tsx +241 -0
  428. package/src/session/__tests__/useSessionPanel.test.ts +6 -61
  429. package/src/session/__tests__/useSessionRailViews.test.tsx +5 -27
  430. package/src/session/audience.ts +15 -1
  431. package/src/session/channelOrigin.ts +45 -0
  432. package/src/session/facets/index.ts +0 -3
  433. package/src/session/index.ts +9 -6
  434. package/src/session/useSessionFileChanges.ts +12 -153
  435. package/src/session/useSessionPanel.ts +8 -51
  436. package/src/session/useSessionRailViews.tsx +2 -27
  437. package/src/settings/ChannelAppsSection.tsx +133 -0
  438. package/src/settings/index.ts +1 -0
  439. package/src/settings/settings-nav.ts +6 -0
  440. package/src/sharing/AgentShareList.tsx +85 -64
  441. package/src/sharing/ShareAgentDialog.tsx +1 -1
  442. package/src/sharing/__tests__/AgentShareList.test.tsx +92 -12
  443. package/src/sharing/useShareToolReadiness.ts +13 -101
  444. package/src/styles.css +14 -0
  445. package/src/workflow/WorkflowAgentExecutionDocument.tsx +283 -0
  446. package/src/workflow/WorkflowApprovalList.tsx +158 -0
  447. package/src/workflow/WorkflowArtifactDocument.tsx +257 -0
  448. package/src/workflow/WorkflowExecutionGraph.tsx +40 -78
  449. package/src/workflow/WorkflowExecutionViewer.tsx +610 -287
  450. package/src/workflow/WorkflowFileReviewList.tsx +1 -1
  451. package/src/workflow/WorkflowTaskApprovalCard.tsx +5 -4
  452. package/src/workflow/WorkflowTaskApprovalSummary.tsx +6 -6
  453. package/src/workflow/__tests__/WorkflowAgentExecutionDocument.test.tsx +651 -0
  454. package/src/workflow/__tests__/WorkflowApprovalList.test.tsx +229 -0
  455. package/src/workflow/__tests__/WorkflowArtifactDocument.test.tsx +90 -0
  456. package/src/workflow/__tests__/WorkflowArtifactsTab.test.tsx +85 -0
  457. package/src/workflow/__tests__/WorkflowChangesTab.test.tsx +113 -0
  458. package/src/workflow/__tests__/WorkflowExecutionViewer.approvals.test.tsx +473 -0
  459. package/src/workflow/__tests__/WorkflowExecutionViewer.reconciliation.test.tsx +632 -0
  460. package/src/workflow/__tests__/WorkflowTaskApprovalSummary.test.tsx +1 -1
  461. package/src/workflow/__tests__/WorkflowTaskThread.test.tsx +947 -0
  462. package/src/workflow/__tests__/WorkflowUsageTab.test.tsx +163 -0
  463. package/src/workflow/__tests__/agent-call-live-experience.test.ts +6 -53
  464. package/src/workflow/__tests__/derive-execution-overlays.test.ts +4 -0
  465. package/src/workflow/__tests__/deriveWorkflowArtifactItems.test.ts +71 -0
  466. package/src/workflow/__tests__/deriveWorkflowUsageItems.test.ts +132 -0
  467. package/src/workflow/__tests__/execution-graph.test.ts +8 -0
  468. package/src/workflow/__tests__/project-thread-items.test.ts +428 -0
  469. package/src/workflow/__tests__/structured-data-viewer.test.tsx +1 -1
  470. package/src/workflow/__tests__/task-approval.test.ts +149 -0
  471. package/src/workflow/__tests__/task-detail-io.test.ts +40 -0
  472. package/src/workflow/__tests__/task-presentation.test.ts +479 -0
  473. package/src/workflow/__tests__/useActiveTaskName.test.ts +4 -0
  474. package/src/workflow/__tests__/useApprovalBoundary.test.ts +158 -0
  475. package/src/workflow/__tests__/useExecutionAnnouncements.test.ts +4 -0
  476. package/src/workflow/__tests__/useFollowExecution.test.ts +2 -89
  477. package/src/workflow/__tests__/useWorkflowExecutionFileChanges.test.tsx +412 -0
  478. package/src/workflow/__tests__/useWorkflowExecutionPanel.test.ts +297 -0
  479. package/src/workflow/__tests__/useWorkflowExecutionRailViews.test.tsx +115 -0
  480. package/src/workflow/deriveWorkflowArtifactItems.ts +59 -0
  481. package/src/workflow/deriveWorkflowUsageItems.ts +73 -0
  482. package/src/workflow/diagnosis-document.ts +31 -0
  483. package/src/workflow/execution/index.ts +0 -15
  484. package/src/workflow/facets/WorkflowArtifactsTab.tsx +99 -0
  485. package/src/workflow/facets/WorkflowChangesTab.tsx +129 -0
  486. package/src/workflow/facets/WorkflowUsageTab.tsx +258 -0
  487. package/src/workflow/format-utils.ts +2 -3
  488. package/src/workflow/index.ts +106 -62
  489. package/src/workflow/inspector/index.ts +0 -4
  490. package/src/workflow/instance/WorkflowInstanceList.tsx +59 -41
  491. package/src/workflow/instance/__tests__/WorkflowInstanceList.test.tsx +156 -0
  492. package/src/workflow/task-detail/index.ts +11 -0
  493. package/src/workflow/task-detail/task-approval.ts +158 -0
  494. package/src/workflow/task-detail/task-detail-io.ts +65 -0
  495. package/src/workflow/thread/WorkflowTaskThread.tsx +845 -0
  496. package/src/workflow/thread/project-thread-items.ts +235 -0
  497. package/src/workflow/thread/task-presentation.ts +427 -0
  498. package/src/workflow/thread/thread-presentation.ts +59 -0
  499. package/src/workflow/thread/useWorkflowThreadItems.ts +34 -0
  500. package/src/workflow/useApprovalBoundary.ts +72 -0
  501. package/src/workflow/useFollowExecution.ts +0 -26
  502. package/src/workflow/useWorkflowArtifactDownload.ts +68 -0
  503. package/src/workflow/useWorkflowExecutionActions.ts +3 -2
  504. package/src/workflow/useWorkflowExecutionFileChanges.ts +341 -0
  505. package/src/workflow/useWorkflowExecutionGraph.ts +3 -43
  506. package/src/workflow/useWorkflowExecutionPanel.ts +292 -0
  507. package/src/workflow/useWorkflowExecutionRailViews.tsx +173 -0
  508. package/src/workspace/FileViewer.tsx +3 -3
  509. package/src/workspace/PanelChip.tsx +103 -0
  510. package/src/workspace/WorkspaceSurface.tsx +50 -6
  511. package/src/workspace/__tests__/WorkspaceSurface.test.tsx +110 -0
  512. package/src/workspace/index.ts +3 -0
  513. package/styles.css +1 -1
  514. package/workflow/WorkflowAgentExecutionDocument.d.ts +79 -0
  515. package/workflow/WorkflowAgentExecutionDocument.d.ts.map +1 -0
  516. package/workflow/WorkflowAgentExecutionDocument.js +87 -0
  517. package/workflow/WorkflowAgentExecutionDocument.js.map +1 -0
  518. package/workflow/WorkflowApprovalList.d.ts +62 -0
  519. package/workflow/WorkflowApprovalList.d.ts.map +1 -0
  520. package/workflow/WorkflowApprovalList.js +52 -0
  521. package/workflow/WorkflowApprovalList.js.map +1 -0
  522. package/workflow/WorkflowArtifactDocument.d.ts +29 -0
  523. package/workflow/WorkflowArtifactDocument.d.ts.map +1 -0
  524. package/workflow/WorkflowArtifactDocument.js +89 -0
  525. package/workflow/WorkflowArtifactDocument.js.map +1 -0
  526. package/workflow/WorkflowExecutionGraph.d.ts +15 -13
  527. package/workflow/WorkflowExecutionGraph.d.ts.map +1 -1
  528. package/workflow/WorkflowExecutionGraph.js +18 -53
  529. package/workflow/WorkflowExecutionGraph.js.map +1 -1
  530. package/workflow/WorkflowExecutionViewer.d.ts +8 -5
  531. package/workflow/WorkflowExecutionViewer.d.ts.map +1 -1
  532. package/workflow/WorkflowExecutionViewer.js +329 -54
  533. package/workflow/WorkflowExecutionViewer.js.map +1 -1
  534. package/workflow/WorkflowFileReviewList.d.ts +1 -1
  535. package/workflow/WorkflowFileReviewList.js +1 -1
  536. package/workflow/WorkflowTaskApprovalCard.d.ts +4 -3
  537. package/workflow/WorkflowTaskApprovalCard.d.ts.map +1 -1
  538. package/workflow/WorkflowTaskApprovalCard.js +5 -4
  539. package/workflow/WorkflowTaskApprovalCard.js.map +1 -1
  540. package/workflow/WorkflowTaskApprovalSummary.d.ts +6 -6
  541. package/workflow/WorkflowTaskApprovalSummary.js +5 -5
  542. package/workflow/deriveWorkflowArtifactItems.d.ts +30 -0
  543. package/workflow/deriveWorkflowArtifactItems.d.ts.map +1 -0
  544. package/workflow/deriveWorkflowArtifactItems.js +38 -0
  545. package/workflow/deriveWorkflowArtifactItems.js.map +1 -0
  546. package/workflow/deriveWorkflowUsageItems.d.ts +36 -0
  547. package/workflow/deriveWorkflowUsageItems.d.ts.map +1 -0
  548. package/workflow/deriveWorkflowUsageItems.js +50 -0
  549. package/workflow/deriveWorkflowUsageItems.js.map +1 -0
  550. package/workflow/diagnosis-document.d.ts +17 -0
  551. package/workflow/diagnosis-document.d.ts.map +1 -0
  552. package/workflow/diagnosis-document.js +29 -0
  553. package/workflow/diagnosis-document.js.map +1 -0
  554. package/workflow/execution/index.d.ts +0 -2
  555. package/workflow/execution/index.d.ts.map +1 -1
  556. package/workflow/execution/index.js +0 -2
  557. package/workflow/execution/index.js.map +1 -1
  558. package/workflow/facets/WorkflowArtifactsTab.d.ts +26 -0
  559. package/workflow/facets/WorkflowArtifactsTab.d.ts.map +1 -0
  560. package/workflow/facets/WorkflowArtifactsTab.js +34 -0
  561. package/workflow/facets/WorkflowArtifactsTab.js.map +1 -0
  562. package/workflow/facets/WorkflowChangesTab.d.ts +37 -0
  563. package/workflow/facets/WorkflowChangesTab.d.ts.map +1 -0
  564. package/workflow/facets/WorkflowChangesTab.js +50 -0
  565. package/workflow/facets/WorkflowChangesTab.js.map +1 -0
  566. package/workflow/facets/WorkflowUsageTab.d.ts +27 -0
  567. package/workflow/facets/WorkflowUsageTab.d.ts.map +1 -0
  568. package/workflow/facets/WorkflowUsageTab.js +87 -0
  569. package/workflow/facets/WorkflowUsageTab.js.map +1 -0
  570. package/workflow/format-utils.d.ts +2 -3
  571. package/workflow/format-utils.d.ts.map +1 -1
  572. package/workflow/format-utils.js +2 -3
  573. package/workflow/format-utils.js.map +1 -1
  574. package/workflow/index.d.ts +21 -10
  575. package/workflow/index.d.ts.map +1 -1
  576. package/workflow/index.js +29 -14
  577. package/workflow/index.js.map +1 -1
  578. package/workflow/inspector/index.d.ts +0 -2
  579. package/workflow/inspector/index.d.ts.map +1 -1
  580. package/workflow/inspector/index.js +0 -2
  581. package/workflow/inspector/index.js.map +1 -1
  582. package/workflow/instance/WorkflowInstanceList.d.ts.map +1 -1
  583. package/workflow/instance/WorkflowInstanceList.js +11 -3
  584. package/workflow/instance/WorkflowInstanceList.js.map +1 -1
  585. package/workflow/task-detail/StructuredDataViewer.d.ts.map +1 -0
  586. package/workflow/task-detail/StructuredDataViewer.js.map +1 -0
  587. package/workflow/task-detail/index.d.ts +4 -0
  588. package/workflow/task-detail/index.d.ts.map +1 -0
  589. package/workflow/task-detail/index.js +4 -0
  590. package/workflow/task-detail/index.js.map +1 -0
  591. package/workflow/task-detail/task-approval.d.ts +89 -0
  592. package/workflow/task-detail/task-approval.d.ts.map +1 -0
  593. package/workflow/task-detail/task-approval.js +84 -0
  594. package/workflow/task-detail/task-approval.js.map +1 -0
  595. package/workflow/task-detail/task-detail-io.d.ts +39 -0
  596. package/workflow/task-detail/task-detail-io.d.ts.map +1 -0
  597. package/workflow/task-detail/task-detail-io.js +42 -0
  598. package/workflow/task-detail/task-detail-io.js.map +1 -0
  599. package/workflow/thread/WorkflowTaskThread.d.ts +91 -0
  600. package/workflow/thread/WorkflowTaskThread.d.ts.map +1 -0
  601. package/workflow/thread/WorkflowTaskThread.js +318 -0
  602. package/workflow/thread/WorkflowTaskThread.js.map +1 -0
  603. package/workflow/thread/project-thread-items.d.ts +108 -0
  604. package/workflow/thread/project-thread-items.d.ts.map +1 -0
  605. package/workflow/thread/project-thread-items.js +126 -0
  606. package/workflow/thread/project-thread-items.js.map +1 -0
  607. package/workflow/thread/task-presentation.d.ts +73 -0
  608. package/workflow/thread/task-presentation.d.ts.map +1 -0
  609. package/workflow/thread/task-presentation.js +331 -0
  610. package/workflow/thread/task-presentation.js.map +1 -0
  611. package/workflow/thread/thread-presentation.d.ts +28 -0
  612. package/workflow/thread/thread-presentation.d.ts.map +1 -0
  613. package/workflow/thread/thread-presentation.js +28 -0
  614. package/workflow/thread/thread-presentation.js.map +1 -0
  615. package/workflow/thread/useWorkflowThreadItems.d.ts +16 -0
  616. package/workflow/thread/useWorkflowThreadItems.d.ts.map +1 -0
  617. package/workflow/thread/useWorkflowThreadItems.js +22 -0
  618. package/workflow/thread/useWorkflowThreadItems.js.map +1 -0
  619. package/workflow/useApprovalBoundary.d.ts +38 -0
  620. package/workflow/useApprovalBoundary.d.ts.map +1 -0
  621. package/workflow/useApprovalBoundary.js +55 -0
  622. package/workflow/useApprovalBoundary.js.map +1 -0
  623. package/workflow/useFollowExecution.d.ts +0 -20
  624. package/workflow/useFollowExecution.d.ts.map +1 -1
  625. package/workflow/useFollowExecution.js +0 -17
  626. package/workflow/useFollowExecution.js.map +1 -1
  627. package/workflow/useWorkflowArtifactDownload.d.ts +28 -0
  628. package/workflow/useWorkflowArtifactDownload.d.ts.map +1 -0
  629. package/workflow/useWorkflowArtifactDownload.js +45 -0
  630. package/workflow/useWorkflowArtifactDownload.js.map +1 -0
  631. package/workflow/useWorkflowExecutionActions.d.ts +3 -2
  632. package/workflow/useWorkflowExecutionActions.d.ts.map +1 -1
  633. package/workflow/useWorkflowExecutionActions.js.map +1 -1
  634. package/workflow/useWorkflowExecutionFileChanges.d.ts +107 -0
  635. package/workflow/useWorkflowExecutionFileChanges.d.ts.map +1 -0
  636. package/workflow/useWorkflowExecutionFileChanges.js +244 -0
  637. package/workflow/useWorkflowExecutionFileChanges.js.map +1 -0
  638. package/workflow/useWorkflowExecutionGraph.d.ts +1 -14
  639. package/workflow/useWorkflowExecutionGraph.d.ts.map +1 -1
  640. package/workflow/useWorkflowExecutionGraph.js +2 -25
  641. package/workflow/useWorkflowExecutionGraph.js.map +1 -1
  642. package/workflow/useWorkflowExecutionPanel.d.ts +108 -0
  643. package/workflow/useWorkflowExecutionPanel.d.ts.map +1 -0
  644. package/workflow/useWorkflowExecutionPanel.js +103 -0
  645. package/workflow/useWorkflowExecutionPanel.js.map +1 -0
  646. package/workflow/useWorkflowExecutionRailViews.d.ts +46 -0
  647. package/workflow/useWorkflowExecutionRailViews.d.ts.map +1 -0
  648. package/workflow/useWorkflowExecutionRailViews.js +81 -0
  649. package/workflow/useWorkflowExecutionRailViews.js.map +1 -0
  650. package/workspace/FileViewer.d.ts +1 -1
  651. package/workspace/FileViewer.js +3 -3
  652. package/workspace/FileViewer.js.map +1 -1
  653. package/workspace/PanelChip.d.ts +27 -0
  654. package/workspace/PanelChip.d.ts.map +1 -0
  655. package/workspace/PanelChip.js +42 -0
  656. package/workspace/PanelChip.js.map +1 -0
  657. package/workspace/WorkspaceSurface.d.ts +25 -1
  658. package/workspace/WorkspaceSurface.d.ts.map +1 -1
  659. package/workspace/WorkspaceSurface.js +21 -9
  660. package/workspace/WorkspaceSurface.js.map +1 -1
  661. package/workspace/index.d.ts +3 -1
  662. package/workspace/index.d.ts.map +1 -1
  663. package/workspace/index.js +1 -0
  664. package/workspace/index.js.map +1 -1
  665. package/execution/ThreadSelectionContext.d.ts +0 -17
  666. package/execution/ThreadSelectionContext.d.ts.map +0 -1
  667. package/execution/ThreadSelectionContext.js +0 -18
  668. package/execution/ThreadSelectionContext.js.map +0 -1
  669. package/execution/useThreadSelection.d.ts +0 -35
  670. package/execution/useThreadSelection.d.ts.map +0 -1
  671. package/execution/useThreadSelection.js +0 -65
  672. package/execution/useThreadSelection.js.map +0 -1
  673. package/internal/store/selection-store.d.ts +0 -53
  674. package/internal/store/selection-store.d.ts.map +0 -1
  675. package/internal/store/selection-store.js +0 -88
  676. package/internal/store/selection-store.js.map +0 -1
  677. package/session/artifact-document.d.ts.map +0 -1
  678. package/session/artifact-document.js +0 -22
  679. package/session/artifact-document.js.map +0 -1
  680. package/session/facets/InspectTab.d.ts +0 -13
  681. package/session/facets/InspectTab.d.ts.map +0 -1
  682. package/session/facets/InspectTab.js +0 -19
  683. package/session/facets/InspectTab.js.map +0 -1
  684. package/src/execution/ThreadSelectionContext.tsx +0 -20
  685. package/src/execution/useThreadSelection.ts +0 -95
  686. package/src/internal/store/__tests__/selection-store.test.ts +0 -115
  687. package/src/internal/store/selection-store.ts +0 -112
  688. package/src/session/artifact-document.ts +0 -23
  689. package/src/session/facets/InspectTab.tsx +0 -57
  690. package/src/workflow/WorkflowExecutionApprovalCard.tsx +0 -154
  691. package/src/workflow/WorkflowExecutionArtifactPanel.tsx +0 -107
  692. package/src/workflow/WorkflowExecutionCostPanel.tsx +0 -120
  693. package/src/workflow/WorkflowExecutionTaskPanel.tsx +0 -129
  694. package/src/workflow/WorkflowExecutionTimeline.tsx +0 -151
  695. package/src/workflow/WorkflowExecutionTimelineEvent.tsx +0 -497
  696. package/src/workflow/__tests__/ExecutionInspector.test.tsx +0 -155
  697. package/src/workflow/__tests__/WorkflowExecutionApprovalCard.test.tsx +0 -129
  698. package/src/workflow/__tests__/derive-task-detail.test.ts +0 -1265
  699. package/src/workflow/__tests__/derive-waterfall-entries.test.ts +0 -521
  700. package/src/workflow/__tests__/execution-inspector.test.tsx +0 -332
  701. package/src/workflow/execution/derive-waterfall-entries.ts +0 -377
  702. package/src/workflow/execution/useWaterfallEntries.ts +0 -125
  703. package/src/workflow/execution-inspector/AgentCallTab.tsx +0 -169
  704. package/src/workflow/execution-inspector/ErrorTab.tsx +0 -110
  705. package/src/workflow/execution-inspector/EventLogTab.tsx +0 -79
  706. package/src/workflow/execution-inspector/ExecutionInspector.tsx +0 -341
  707. package/src/workflow/execution-inspector/InputOutputTab.tsx +0 -325
  708. package/src/workflow/execution-inspector/RetriesTab.tsx +0 -68
  709. package/src/workflow/execution-inspector/SummaryTab.tsx +0 -62
  710. package/src/workflow/execution-inspector/derive-task-detail.ts +0 -584
  711. package/src/workflow/execution-inspector/index.ts +0 -14
  712. package/src/workflow/execution-inspector/useExecutionTaskDetail.ts +0 -55
  713. package/src/workflow/inspector/ExecutionInspectorAdapter.tsx +0 -40
  714. package/src/workflow/waterfall/WaterfallBar.tsx +0 -167
  715. package/src/workflow/waterfall/WaterfallRow.tsx +0 -112
  716. package/src/workflow/waterfall/WaterfallScale.tsx +0 -52
  717. package/src/workflow/waterfall/WaterfallTimeline.tsx +0 -138
  718. package/src/workflow/waterfall/WaterfallTooltip.tsx +0 -74
  719. package/src/workflow/waterfall/index.ts +0 -5
  720. package/workflow/WorkflowExecutionApprovalCard.d.ts +0 -34
  721. package/workflow/WorkflowExecutionApprovalCard.d.ts.map +0 -1
  722. package/workflow/WorkflowExecutionApprovalCard.js +0 -46
  723. package/workflow/WorkflowExecutionApprovalCard.js.map +0 -1
  724. package/workflow/WorkflowExecutionArtifactPanel.d.ts +0 -15
  725. package/workflow/WorkflowExecutionArtifactPanel.d.ts.map +0 -1
  726. package/workflow/WorkflowExecutionArtifactPanel.js +0 -46
  727. package/workflow/WorkflowExecutionArtifactPanel.js.map +0 -1
  728. package/workflow/WorkflowExecutionCostPanel.d.ts +0 -18
  729. package/workflow/WorkflowExecutionCostPanel.d.ts.map +0 -1
  730. package/workflow/WorkflowExecutionCostPanel.js +0 -31
  731. package/workflow/WorkflowExecutionCostPanel.js.map +0 -1
  732. package/workflow/WorkflowExecutionTaskPanel.d.ts +0 -24
  733. package/workflow/WorkflowExecutionTaskPanel.d.ts.map +0 -1
  734. package/workflow/WorkflowExecutionTaskPanel.js +0 -51
  735. package/workflow/WorkflowExecutionTaskPanel.js.map +0 -1
  736. package/workflow/WorkflowExecutionTimeline.d.ts +0 -42
  737. package/workflow/WorkflowExecutionTimeline.d.ts.map +0 -1
  738. package/workflow/WorkflowExecutionTimeline.js +0 -52
  739. package/workflow/WorkflowExecutionTimeline.js.map +0 -1
  740. package/workflow/WorkflowExecutionTimelineEvent.d.ts +0 -25
  741. package/workflow/WorkflowExecutionTimelineEvent.d.ts.map +0 -1
  742. package/workflow/WorkflowExecutionTimelineEvent.js +0 -179
  743. package/workflow/WorkflowExecutionTimelineEvent.js.map +0 -1
  744. package/workflow/execution/derive-waterfall-entries.d.ts +0 -85
  745. package/workflow/execution/derive-waterfall-entries.d.ts.map +0 -1
  746. package/workflow/execution/derive-waterfall-entries.js +0 -268
  747. package/workflow/execution/derive-waterfall-entries.js.map +0 -1
  748. package/workflow/execution/useWaterfallEntries.d.ts +0 -25
  749. package/workflow/execution/useWaterfallEntries.d.ts.map +0 -1
  750. package/workflow/execution/useWaterfallEntries.js +0 -67
  751. package/workflow/execution/useWaterfallEntries.js.map +0 -1
  752. package/workflow/execution-inspector/AgentCallTab.d.ts +0 -21
  753. package/workflow/execution-inspector/AgentCallTab.d.ts.map +0 -1
  754. package/workflow/execution-inspector/AgentCallTab.js +0 -36
  755. package/workflow/execution-inspector/AgentCallTab.js.map +0 -1
  756. package/workflow/execution-inspector/ErrorTab.d.ts +0 -9
  757. package/workflow/execution-inspector/ErrorTab.d.ts.map +0 -1
  758. package/workflow/execution-inspector/ErrorTab.js +0 -29
  759. package/workflow/execution-inspector/ErrorTab.js.map +0 -1
  760. package/workflow/execution-inspector/EventLogTab.d.ts +0 -11
  761. package/workflow/execution-inspector/EventLogTab.d.ts.map +0 -1
  762. package/workflow/execution-inspector/EventLogTab.js +0 -47
  763. package/workflow/execution-inspector/EventLogTab.js.map +0 -1
  764. package/workflow/execution-inspector/ExecutionInspector.d.ts +0 -69
  765. package/workflow/execution-inspector/ExecutionInspector.d.ts.map +0 -1
  766. package/workflow/execution-inspector/ExecutionInspector.js +0 -145
  767. package/workflow/execution-inspector/ExecutionInspector.js.map +0 -1
  768. package/workflow/execution-inspector/InputOutputTab.d.ts +0 -20
  769. package/workflow/execution-inspector/InputOutputTab.d.ts.map +0 -1
  770. package/workflow/execution-inspector/InputOutputTab.js +0 -124
  771. package/workflow/execution-inspector/InputOutputTab.js.map +0 -1
  772. package/workflow/execution-inspector/RetriesTab.d.ts +0 -7
  773. package/workflow/execution-inspector/RetriesTab.d.ts.map +0 -1
  774. package/workflow/execution-inspector/RetriesTab.js +0 -11
  775. package/workflow/execution-inspector/RetriesTab.js.map +0 -1
  776. package/workflow/execution-inspector/StructuredDataViewer.d.ts.map +0 -1
  777. package/workflow/execution-inspector/StructuredDataViewer.js.map +0 -1
  778. package/workflow/execution-inspector/SummaryTab.d.ts +0 -7
  779. package/workflow/execution-inspector/SummaryTab.d.ts.map +0 -1
  780. package/workflow/execution-inspector/SummaryTab.js +0 -10
  781. package/workflow/execution-inspector/SummaryTab.js.map +0 -1
  782. package/workflow/execution-inspector/derive-task-detail.d.ts +0 -140
  783. package/workflow/execution-inspector/derive-task-detail.d.ts.map +0 -1
  784. package/workflow/execution-inspector/derive-task-detail.js +0 -366
  785. package/workflow/execution-inspector/derive-task-detail.js.map +0 -1
  786. package/workflow/execution-inspector/index.d.ts +0 -4
  787. package/workflow/execution-inspector/index.d.ts.map +0 -1
  788. package/workflow/execution-inspector/index.js +0 -4
  789. package/workflow/execution-inspector/index.js.map +0 -1
  790. package/workflow/execution-inspector/useExecutionTaskDetail.d.ts +0 -38
  791. package/workflow/execution-inspector/useExecutionTaskDetail.d.ts.map +0 -1
  792. package/workflow/execution-inspector/useExecutionTaskDetail.js +0 -37
  793. package/workflow/execution-inspector/useExecutionTaskDetail.js.map +0 -1
  794. package/workflow/inspector/ExecutionInspectorAdapter.d.ts +0 -26
  795. package/workflow/inspector/ExecutionInspectorAdapter.d.ts.map +0 -1
  796. package/workflow/inspector/ExecutionInspectorAdapter.js +0 -23
  797. package/workflow/inspector/ExecutionInspectorAdapter.js.map +0 -1
  798. package/workflow/waterfall/WaterfallBar.d.ts +0 -19
  799. package/workflow/waterfall/WaterfallBar.d.ts.map +0 -1
  800. package/workflow/waterfall/WaterfallBar.js +0 -70
  801. package/workflow/waterfall/WaterfallBar.js.map +0 -1
  802. package/workflow/waterfall/WaterfallRow.d.ts +0 -18
  803. package/workflow/waterfall/WaterfallRow.d.ts.map +0 -1
  804. package/workflow/waterfall/WaterfallRow.js +0 -45
  805. package/workflow/waterfall/WaterfallRow.js.map +0 -1
  806. package/workflow/waterfall/WaterfallScale.d.ts +0 -14
  807. package/workflow/waterfall/WaterfallScale.d.ts.map +0 -1
  808. package/workflow/waterfall/WaterfallScale.js +0 -22
  809. package/workflow/waterfall/WaterfallScale.js.map +0 -1
  810. package/workflow/waterfall/WaterfallTimeline.d.ts +0 -46
  811. package/workflow/waterfall/WaterfallTimeline.d.ts.map +0 -1
  812. package/workflow/waterfall/WaterfallTimeline.js +0 -60
  813. package/workflow/waterfall/WaterfallTimeline.js.map +0 -1
  814. package/workflow/waterfall/WaterfallTooltip.d.ts +0 -15
  815. package/workflow/waterfall/WaterfallTooltip.d.ts.map +0 -1
  816. package/workflow/waterfall/WaterfallTooltip.js +0 -20
  817. package/workflow/waterfall/WaterfallTooltip.js.map +0 -1
  818. package/workflow/waterfall/index.d.ts +0 -6
  819. package/workflow/waterfall/index.d.ts.map +0 -1
  820. package/workflow/waterfall/index.js +0 -6
  821. package/workflow/waterfall/index.js.map +0 -1
  822. /package/src/workflow/{execution-inspector → task-detail}/StructuredDataViewer.tsx +0 -0
  823. /package/workflow/{execution-inspector → task-detail}/StructuredDataViewer.d.ts +0 -0
  824. /package/workflow/{execution-inspector → task-detail}/StructuredDataViewer.js +0 -0
@@ -1,14 +1,20 @@
1
1
  import { describe, it, expect, vi } from "vitest";
2
2
  import { create } from "@bufbuild/protobuf";
3
+ import type { JsonObject } from "@bufbuild/protobuf";
3
4
  import {
4
5
  WorkflowExecutionEventSchema,
5
6
  WorkflowEventType,
6
7
  TaskStartedPayloadSchema,
7
8
  TaskCompletedPayloadSchema,
9
+ TaskFailedPayloadSchema,
10
+ AgentCallStartedPayloadSchema,
11
+ AgentCallProgressPayloadSchema,
8
12
  ApprovalRequestedPayloadSchema,
9
13
  ApprovalResolvedPayloadSchema,
10
14
  } from "@stigmer/protos/ai/stigmer/agentic/workflowexecution/v1/event_pb";
11
15
  import type { WorkflowExecutionEvent } from "@stigmer/protos/ai/stigmer/agentic/workflowexecution/v1/event_pb";
16
+ import { WorkflowTaskKind } from "@stigmer/protos/ai/stigmer/agentic/workflow/v1/enum_pb";
17
+ import { ExecutionPhase as AgentExecutionPhase } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
12
18
  import { WorkflowExecutionEventStore } from "../workflow-execution-event-store";
13
19
 
14
20
  // ---------------------------------------------------------------------------
@@ -18,7 +24,11 @@ import { WorkflowExecutionEventStore } from "../workflow-execution-event-store";
18
24
  function makeTaskStartedEvent(
19
25
  seq: number,
20
26
  taskName: string,
21
- opts: { taskKind?: number; attemptNumber?: number } = {},
27
+ opts: {
28
+ taskKind?: number;
29
+ attemptNumber?: number;
30
+ inputSummary?: JsonObject;
31
+ } = {},
22
32
  ): WorkflowExecutionEvent {
23
33
  return create(WorkflowExecutionEventSchema, {
24
34
  eventId: `evt-${seq}`,
@@ -31,6 +41,7 @@ function makeTaskStartedEvent(
31
41
  value: create(TaskStartedPayloadSchema, {
32
42
  taskKind: opts.taskKind ?? 1,
33
43
  attemptNumber: opts.attemptNumber ?? 1,
44
+ inputSummary: opts.inputSummary,
34
45
  }),
35
46
  },
36
47
  });
@@ -39,7 +50,12 @@ function makeTaskStartedEvent(
39
50
  function makeTaskCompletedEvent(
40
51
  seq: number,
41
52
  taskName: string,
42
- opts: { durationMs?: bigint; costMicros?: bigint; tokensUsed?: bigint } = {},
53
+ opts: {
54
+ durationMs?: bigint;
55
+ costMicros?: bigint;
56
+ tokensUsed?: bigint;
57
+ outputSummary?: JsonObject;
58
+ } = {},
43
59
  ): WorkflowExecutionEvent {
44
60
  return create(WorkflowExecutionEventSchema, {
45
61
  eventId: `evt-${seq}`,
@@ -54,6 +70,7 @@ function makeTaskCompletedEvent(
54
70
  durationMs: opts.durationMs ?? BigInt(100),
55
71
  costMicros: opts.costMicros ?? BigInt(500),
56
72
  tokensUsed: opts.tokensUsed ?? BigInt(200),
73
+ outputSummary: opts.outputSummary,
57
74
  }),
58
75
  },
59
76
  });
@@ -98,6 +115,84 @@ function makeApprovalResolvedEvent(
98
115
  });
99
116
  }
100
117
 
118
+ function makeTaskFailedEvent(
119
+ seq: number,
120
+ taskName: string,
121
+ opts: { willRetry?: boolean; attemptNumber?: number; error?: string } = {},
122
+ ): WorkflowExecutionEvent {
123
+ return create(WorkflowExecutionEventSchema, {
124
+ eventId: `evt-${seq}`,
125
+ sequenceNumber: BigInt(seq),
126
+ occurredAt: "2026-05-22T00:00:00Z",
127
+ taskName,
128
+ eventType: WorkflowEventType.task_failed,
129
+ payload: {
130
+ case: "taskFailed",
131
+ value: create(TaskFailedPayloadSchema, {
132
+ taskKind: WorkflowTaskKind.agent_call,
133
+ willRetry: opts.willRetry ?? false,
134
+ attemptNumber: opts.attemptNumber ?? 1,
135
+ error: opts.error ?? "boom",
136
+ durationMs: BigInt(100),
137
+ }),
138
+ },
139
+ });
140
+ }
141
+
142
+ function makeAgentCallStartedEvent(
143
+ seq: number,
144
+ taskName: string,
145
+ opts: { childExecutionId?: string; agentSlug?: string } = {},
146
+ ): WorkflowExecutionEvent {
147
+ return create(WorkflowExecutionEventSchema, {
148
+ eventId: `evt-${seq}`,
149
+ sequenceNumber: BigInt(seq),
150
+ occurredAt: "2026-05-22T00:00:00Z",
151
+ taskName,
152
+ eventType: WorkflowEventType.agent_call_started,
153
+ payload: {
154
+ case: "agentCallStarted",
155
+ value: create(AgentCallStartedPayloadSchema, {
156
+ childExecutionId: opts.childExecutionId ?? "aex_child_1",
157
+ agentSlug: opts.agentSlug ?? "helper",
158
+ messageSummary: "do the thing",
159
+ }),
160
+ },
161
+ });
162
+ }
163
+
164
+ /**
165
+ * The REAL event shape the call-agent orchestrator emits on its 15s poll —
166
+ * `agentPhase` is the child AgentExecution's phase. The store derives the
167
+ * parent task's `waiting_approval` state from it (child gates are surfaced
168
+ * snapshot-only; no approval_requested event exists for agent_call tasks).
169
+ */
170
+ function makeAgentCallProgressEvent(
171
+ seq: number,
172
+ taskName: string,
173
+ agentPhase: AgentExecutionPhase,
174
+ opts: { childExecutionId?: string; currentToolName?: string } = {},
175
+ ): WorkflowExecutionEvent {
176
+ return create(WorkflowExecutionEventSchema, {
177
+ eventId: `evt-${seq}`,
178
+ sequenceNumber: BigInt(seq),
179
+ occurredAt: "2026-05-22T00:00:00Z",
180
+ taskName,
181
+ eventType: WorkflowEventType.agent_call_progress,
182
+ payload: {
183
+ case: "agentCallProgress",
184
+ value: create(AgentCallProgressPayloadSchema, {
185
+ childExecutionId: opts.childExecutionId ?? "aex_child_1",
186
+ agentPhase,
187
+ currentToolName: opts.currentToolName ?? "",
188
+ tokensConsumed: BigInt(0),
189
+ messagesCount: 0,
190
+ toolCallsCount: 0,
191
+ }),
192
+ },
193
+ });
194
+ }
195
+
101
196
  // ---------------------------------------------------------------------------
102
197
  // Tests
103
198
  // ---------------------------------------------------------------------------
@@ -231,11 +326,208 @@ describe("WorkflowExecutionEventStore", () => {
231
326
  });
232
327
 
233
328
  it("approvalRequested without prior taskStarted is no-op (prev is undefined)", () => {
329
+ const states = new WorkflowExecutionEventStore();
330
+ states.appendEvents([makeApprovalRequestedEvent(1, "unknownTask")]);
331
+
332
+ expect(states.getTaskStates().has("unknownTask")).toBe(false);
333
+ });
334
+ });
335
+
336
+ // T06: the gate's request/resolution payloads are captured on the derived
337
+ // state — the thread card's in-place review surface reads them, so the
338
+ // capture must be reference-stable (structural sharing) and survive the
339
+ // task's settlement, while a restart resets it (a new attempt re-emits).
340
+ describe("deriveTaskStates — human_input gate capture (T06)", () => {
341
+ it("captures the approval_requested payload, reference-stable across unrelated appends", () => {
234
342
  const store = new WorkflowExecutionEventStore();
235
- store.appendEvents([makeApprovalRequestedEvent(1, "unknownTask")]);
343
+ store.appendEvents([
344
+ makeTaskStartedEvent(1, "reviewGate", { taskKind: 16 }),
345
+ makeApprovalRequestedEvent(2, "reviewGate", "Ship it?"),
346
+ ]);
347
+ const first = store.getTaskStates().get("reviewGate")!.approvalRequest;
348
+ expect(first?.prompt).toBe("Ship it?");
349
+
350
+ // An unrelated task's event invalidates the cache and re-derives the
351
+ // whole map — the captured payload must keep its identity, or every
352
+ // memoized gating card would re-render per stream append.
353
+ store.appendEvents([makeTaskStartedEvent(3, "other-task", { taskKind: 1 })]);
354
+ expect(store.getTaskStates().get("reviewGate")!.approvalRequest).toBe(first);
355
+ });
236
356
 
237
- const states = store.getTaskStates();
238
- expect(states.has("unknownTask")).toBe(false);
357
+ it("captures the approval_resolved payload and keeps both records through settlement", () => {
358
+ const store = new WorkflowExecutionEventStore();
359
+ store.appendEvents([
360
+ makeTaskStartedEvent(1, "reviewGate", { taskKind: 16 }),
361
+ makeApprovalRequestedEvent(2, "reviewGate"),
362
+ makeApprovalResolvedEvent(3, "reviewGate", { resolvedBy: "alice" }),
363
+ makeTaskCompletedEvent(4, "reviewGate"),
364
+ ]);
365
+
366
+ const task = store.getTaskStates().get("reviewGate")!;
367
+ expect(task.status).toBe("completed");
368
+ expect(task.approvalRequest?.prompt).toBe("Please review");
369
+ expect(task.approvalResolution?.resolvedBy).toBe("alice");
370
+ });
371
+
372
+ it("a restart resets the gate record — a new attempt re-emits its own request", () => {
373
+ const store = new WorkflowExecutionEventStore();
374
+ store.appendEvents([
375
+ makeTaskStartedEvent(1, "reviewGate", { taskKind: 16 }),
376
+ makeApprovalRequestedEvent(2, "reviewGate"),
377
+ makeApprovalResolvedEvent(3, "reviewGate"),
378
+ makeTaskStartedEvent(4, "reviewGate", { taskKind: 16, attemptNumber: 2 }),
379
+ ]);
380
+
381
+ const task = store.getTaskStates().get("reviewGate")!;
382
+ expect(task.approvalRequest).toBeNull();
383
+ expect(task.approvalResolution).toBeNull();
384
+ });
385
+
386
+ it("a fresh request clears a stale resolution (re-gated task never reports the old decision)", () => {
387
+ const store = new WorkflowExecutionEventStore();
388
+ store.appendEvents([
389
+ makeTaskStartedEvent(1, "reviewGate", { taskKind: 16 }),
390
+ makeApprovalRequestedEvent(2, "reviewGate", "First review"),
391
+ makeApprovalResolvedEvent(3, "reviewGate"),
392
+ makeApprovalRequestedEvent(4, "reviewGate", "Second review"),
393
+ ]);
394
+
395
+ const task = store.getTaskStates().get("reviewGate")!;
396
+ expect(task.status).toBe("waiting_approval");
397
+ expect(task.approvalRequest?.prompt).toBe("Second review");
398
+ expect(task.approvalResolution).toBeNull();
399
+ });
400
+ });
401
+
402
+ // Child gates are surfaced snapshot-only (no approval_requested event for
403
+ // agent_call tasks) — the parent task's waiting_approval state is DERIVED
404
+ // from the child phase carried on agent_call_progress events. These tests
405
+ // pin every transition of that derivation (D-T02-14).
406
+ describe("deriveTaskStates — child-gate derivation from agent_call_progress", () => {
407
+ const AGENT_CALL = { taskKind: WorkflowTaskKind.agent_call };
408
+
409
+ /** A running agent_call task bound to its child — the common arrange. */
410
+ function runningAgentCall(store: WorkflowExecutionEventStore, task = "call-helper") {
411
+ store.appendEvents([
412
+ makeTaskStartedEvent(1, task, AGENT_CALL),
413
+ makeAgentCallStartedEvent(2, task),
414
+ ]);
415
+ }
416
+
417
+ it("child phase WAITING_FOR_APPROVAL gates a running task", () => {
418
+ const store = new WorkflowExecutionEventStore();
419
+ runningAgentCall(store);
420
+ store.appendEvents([
421
+ makeAgentCallProgressEvent(3, "call-helper", AgentExecutionPhase.EXECUTION_WAITING_FOR_APPROVAL),
422
+ ]);
423
+
424
+ const task = store.getTaskStates().get("call-helper")!;
425
+ expect(task.status).toBe("waiting_approval");
426
+ // The status flip must not drop the merged progress fields.
427
+ expect(task.childExecutionId).toBe("aex_child_1");
428
+ expect(task.agentSlug).toBe("helper");
429
+ });
430
+
431
+ it("child phase IN_PROGRESS un-gates a waiting task (child resumed)", () => {
432
+ const store = new WorkflowExecutionEventStore();
433
+ runningAgentCall(store);
434
+ store.appendEvents([
435
+ makeAgentCallProgressEvent(3, "call-helper", AgentExecutionPhase.EXECUTION_WAITING_FOR_APPROVAL),
436
+ makeAgentCallProgressEvent(4, "call-helper", AgentExecutionPhase.EXECUTION_IN_PROGRESS),
437
+ ]);
438
+
439
+ expect(store.getTaskStates().get("call-helper")!.status).toBe("running");
440
+ });
441
+
442
+ it("phase UNSPECIFIED never un-gates a waiting task (the orchestrator's null-progress emits carry phase 0)", () => {
443
+ const store = new WorkflowExecutionEventStore();
444
+ runningAgentCall(store);
445
+ store.appendEvents([
446
+ makeAgentCallProgressEvent(3, "call-helper", AgentExecutionPhase.EXECUTION_WAITING_FOR_APPROVAL),
447
+ makeAgentCallProgressEvent(4, "call-helper", AgentExecutionPhase.EXECUTION_PHASE_UNSPECIFIED),
448
+ ]);
449
+
450
+ expect(store.getTaskStates().get("call-helper")!.status).toBe("waiting_approval");
451
+ });
452
+
453
+ it("non-waiting phases leave a running task running (PENDING and UNSPECIFIED are not gates)", () => {
454
+ const store = new WorkflowExecutionEventStore();
455
+ runningAgentCall(store);
456
+ store.appendEvents([
457
+ makeAgentCallProgressEvent(3, "call-helper", AgentExecutionPhase.EXECUTION_PHASE_UNSPECIFIED),
458
+ makeAgentCallProgressEvent(4, "call-helper", AgentExecutionPhase.EXECUTION_PENDING),
459
+ makeAgentCallProgressEvent(5, "call-helper", AgentExecutionPhase.EXECUTION_IN_PROGRESS),
460
+ ]);
461
+
462
+ expect(store.getTaskStates().get("call-helper")!.status).toBe("running");
463
+ });
464
+
465
+ it("taskCompleted settles a gated task (the task's own events stay authoritative)", () => {
466
+ const store = new WorkflowExecutionEventStore();
467
+ runningAgentCall(store);
468
+ store.appendEvents([
469
+ makeAgentCallProgressEvent(3, "call-helper", AgentExecutionPhase.EXECUTION_WAITING_FOR_APPROVAL),
470
+ makeTaskCompletedEvent(4, "call-helper"),
471
+ ]);
472
+
473
+ expect(store.getTaskStates().get("call-helper")!.status).toBe("completed");
474
+ });
475
+
476
+ it("a stale WAITING progress event cannot re-gate a settled task", () => {
477
+ const store = new WorkflowExecutionEventStore();
478
+ runningAgentCall(store);
479
+ store.appendEvents([
480
+ makeTaskCompletedEvent(3, "call-helper"),
481
+ makeAgentCallProgressEvent(4, "call-helper", AgentExecutionPhase.EXECUTION_WAITING_FOR_APPROVAL),
482
+ ]);
483
+
484
+ expect(store.getTaskStates().get("call-helper")!.status).toBe("completed");
485
+ });
486
+
487
+ it("a WAITING progress event cannot clobber a retrying task", () => {
488
+ const store = new WorkflowExecutionEventStore();
489
+ runningAgentCall(store);
490
+ store.appendEvents([
491
+ makeTaskFailedEvent(3, "call-helper", { willRetry: true }),
492
+ makeAgentCallProgressEvent(4, "call-helper", AgentExecutionPhase.EXECUTION_WAITING_FOR_APPROVAL),
493
+ ]);
494
+
495
+ expect(store.getTaskStates().get("call-helper")!.status).toBe("retrying");
496
+ });
497
+
498
+ it("terminal child phase on progress un-gates; task settlement follows from task events", () => {
499
+ const store = new WorkflowExecutionEventStore();
500
+ runningAgentCall(store);
501
+ store.appendEvents([
502
+ makeAgentCallProgressEvent(3, "call-helper", AgentExecutionPhase.EXECUTION_WAITING_FOR_APPROVAL),
503
+ makeAgentCallProgressEvent(4, "call-helper", AgentExecutionPhase.EXECUTION_COMPLETED),
504
+ ]);
505
+ expect(store.getTaskStates().get("call-helper")!.status).toBe("running");
506
+
507
+ store.appendEvents([makeTaskCompletedEvent(5, "call-helper")]);
508
+ expect(store.getTaskStates().get("call-helper")!.status).toBe("completed");
509
+ });
510
+
511
+ it("replaying a terminal history ends settled, not gated (history replay is safe)", () => {
512
+ const store = new WorkflowExecutionEventStore();
513
+ store.appendEvents([
514
+ makeTaskStartedEvent(1, "call-helper", AGENT_CALL),
515
+ makeAgentCallStartedEvent(2, "call-helper"),
516
+ makeAgentCallProgressEvent(3, "call-helper", AgentExecutionPhase.EXECUTION_WAITING_FOR_APPROVAL),
517
+ makeAgentCallProgressEvent(4, "call-helper", AgentExecutionPhase.EXECUTION_IN_PROGRESS),
518
+ makeTaskCompletedEvent(5, "call-helper"),
519
+ ]);
520
+
521
+ expect(store.getTaskStates().get("call-helper")!.status).toBe("completed");
522
+ });
523
+
524
+ it("a progress event without a prior taskStarted is a no-op (prev is undefined)", () => {
525
+ const store = new WorkflowExecutionEventStore();
526
+ store.appendEvents([
527
+ makeAgentCallProgressEvent(1, "ghost", AgentExecutionPhase.EXECUTION_WAITING_FOR_APPROVAL),
528
+ ]);
529
+
530
+ expect(store.getTaskStates().has("ghost")).toBe(false);
239
531
  });
240
532
  });
241
533
 
@@ -277,4 +569,82 @@ describe("WorkflowExecutionEventStore", () => {
277
569
  expect(listener).toHaveBeenCalledTimes(1);
278
570
  });
279
571
  });
572
+
573
+ // T04: the truncated I/O summaries are the live preview source for the
574
+ // thread cards — the store must capture them, reset them correctly on
575
+ // retries, and keep them REFERENCE-STABLE across re-derivations (the
576
+ // projection's structural sharing compares them by identity).
577
+ describe("I/O summary capture (T04)", () => {
578
+ it("captures input_summary from task_started and output_summary from task_completed", () => {
579
+ const store = new WorkflowExecutionEventStore();
580
+ store.appendEvents([
581
+ makeTaskStartedEvent(1, "seed", {
582
+ inputSummary: { variables: { order_id: "o-1" } },
583
+ }),
584
+ makeTaskCompletedEvent(2, "seed", {
585
+ outputSummary: { result: 42 },
586
+ }),
587
+ ]);
588
+
589
+ const state = store.getTaskStates().get("seed")!;
590
+ expect(state.inputSummary).toEqual({ variables: { order_id: "o-1" } });
591
+ expect(state.outputSummary).toEqual({ result: 42 });
592
+ });
593
+
594
+ it("defaults both summaries to null when the payloads omit them", () => {
595
+ const store = new WorkflowExecutionEventStore();
596
+ store.appendEvents([
597
+ makeTaskStartedEvent(1, "seed"),
598
+ makeTaskCompletedEvent(2, "seed"),
599
+ ]);
600
+
601
+ const state = store.getTaskStates().get("seed")!;
602
+ expect(state.inputSummary).toBeNull();
603
+ expect(state.outputSummary).toBeNull();
604
+ });
605
+
606
+ it("a restart invalidates the prior attempt's output but keeps the input", () => {
607
+ const store = new WorkflowExecutionEventStore();
608
+ store.appendEvents([
609
+ makeTaskStartedEvent(1, "flaky", { inputSummary: { url: "a" } }),
610
+ makeTaskCompletedEvent(2, "flaky", { outputSummary: { ok: true } }),
611
+ // The engine re-runs the task (e.g. a workflow-level replay).
612
+ makeTaskStartedEvent(3, "flaky", { attemptNumber: 2 }),
613
+ ]);
614
+
615
+ const state = store.getTaskStates().get("flaky")!;
616
+ expect(state.outputSummary).toBeNull();
617
+ expect(state.inputSummary).toEqual({ url: "a" });
618
+ });
619
+
620
+ it("a failure clears the output summary but keeps the input", () => {
621
+ const store = new WorkflowExecutionEventStore();
622
+ store.appendEvents([
623
+ makeTaskStartedEvent(1, "doomed", { inputSummary: { url: "a" } }),
624
+ makeTaskFailedEvent(2, "doomed"),
625
+ ]);
626
+
627
+ const state = store.getTaskStates().get("doomed")!;
628
+ expect(state.inputSummary).toEqual({ url: "a" });
629
+ expect(state.outputSummary).toBeNull();
630
+ });
631
+
632
+ it("keeps summary references stable across re-derivations (structural-sharing contract)", () => {
633
+ const store = new WorkflowExecutionEventStore();
634
+ store.appendEvents([
635
+ makeTaskStartedEvent(1, "seed", { inputSummary: { a: 1 } }),
636
+ makeTaskCompletedEvent(2, "seed", { outputSummary: { b: 2 } }),
637
+ ]);
638
+ const before = store.getTaskStates().get("seed")!;
639
+
640
+ // A later event for ANOTHER task invalidates the cache and forces a
641
+ // full re-derivation; "seed" summaries must keep object identity
642
+ // (they are read off the same immutable stored events).
643
+ store.appendEvents([makeTaskStartedEvent(3, "other")]);
644
+ const after = store.getTaskStates().get("seed")!;
645
+
646
+ expect(after.inputSummary).toBe(before.inputSummary);
647
+ expect(after.outputSummary).toBe(before.outputSummary);
648
+ });
649
+ });
280
650
  });
@@ -21,9 +21,6 @@ export {
21
21
  type DerivedCostSummary,
22
22
  } from "./workflow-execution-event-store.js";
23
23
 
24
- export { SelectionStore } from "./selection-store.js";
25
- export type { SelectedThreadItem } from "./selection-store.js";
26
-
27
24
  export { WorkspaceFileSelectionStore } from "./workspace-file-selection-store.js";
28
25
  export type { SelectedWorkspaceFile } from "./workspace-file-selection-store.js";
29
26
 
@@ -1,6 +1,14 @@
1
- import type { WorkflowExecutionEvent } from "@stigmer/protos/ai/stigmer/agentic/workflowexecution/v1/event_pb";
1
+ import type {
2
+ WorkflowExecutionEvent,
3
+ ApprovalRequestedPayload,
4
+ ApprovalResolvedPayload,
5
+ } from "@stigmer/protos/ai/stigmer/agentic/workflowexecution/v1/event_pb";
2
6
  import { WorkflowEventType } from "@stigmer/protos/ai/stigmer/agentic/workflowexecution/v1/event_pb";
3
7
  import type { WorkflowTaskKind } from "@stigmer/protos/ai/stigmer/agentic/workflow/v1/enum_pb";
8
+ import type { JsonObject } from "@bufbuild/protobuf";
9
+ // The CHILD AgentExecution's phase enum (carried on agent_call_progress
10
+ // payloads) — distinct from the workflow's own ExecutionPhase.
11
+ import { ExecutionPhase as AgentExecutionPhase } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
4
12
 
5
13
  // ---------------------------------------------------------------------------
6
14
  // Stream state (mirrors ConversationStore's StreamState shape)
@@ -51,6 +59,38 @@ export interface DerivedTaskState {
51
59
  readonly currentToolName: string;
52
60
  readonly messagesCount: number;
53
61
  readonly toolCallsCount: number;
62
+ /**
63
+ * Truncated resolved-input summary from `task_started` (T04). `null`
64
+ * until the event arrives. Reference-stable across re-derivations: the
65
+ * value is read off the SAME immutable stored event each walk, so
66
+ * downstream identity compares (structural sharing) hold.
67
+ */
68
+ readonly inputSummary: JsonObject | null;
69
+ /**
70
+ * Truncated output summary from `task_completed` (T04). `null` while
71
+ * running and reset on a restart. The FULL output lives on the status
72
+ * snapshot (`status.tasks[].output`) — this is the live-stream preview
73
+ * source only (the event deliberately truncates to prevent bloat).
74
+ */
75
+ readonly outputSummary: JsonObject | null;
76
+ /**
77
+ * The `approval_requested` payload for a human_input gate (T06) — the
78
+ * review material (prompt, outcomes, form schema, payload/artifact ref,
79
+ * ui hint) the gating card's in-thread review surface renders. `null`
80
+ * until the event arrives; reset on a restart (a new attempt re-emits
81
+ * its own request). Reference-stable like the summaries: the value IS
82
+ * the stored immutable event's payload message, so downstream identity
83
+ * compares (structural sharing) hold across re-derivations.
84
+ */
85
+ readonly approvalRequest: ApprovalRequestedPayload | null;
86
+ /**
87
+ * The `approval_resolved` payload once the gate is decided (T06) —
88
+ * reviewer, comment, wait duration. Persists through the task's
89
+ * remaining lifecycle (completed/failed) so the card's resolved-decision
90
+ * summary survives settlement; reset on a restart. Reference-stable, as
91
+ * above.
92
+ */
93
+ readonly approvalResolution: ApprovalResolvedPayload | null;
54
94
  }
55
95
 
56
96
  export interface DerivedCostSummary {
@@ -248,6 +288,11 @@ function deriveTaskStates(
248
288
  currentToolName: prev?.currentToolName ?? "",
249
289
  messagesCount: prev?.messagesCount ?? 0,
250
290
  toolCallsCount: prev?.toolCallsCount ?? 0,
291
+ inputSummary: p.value.inputSummary ?? prev?.inputSummary ?? null,
292
+ // A (re)start invalidates any prior attempt's output and gate.
293
+ outputSummary: null,
294
+ approvalRequest: null,
295
+ approvalResolution: null,
251
296
  });
252
297
  break;
253
298
 
@@ -266,6 +311,12 @@ function deriveTaskStates(
266
311
  currentToolName: "",
267
312
  messagesCount: prev?.messagesCount ?? 0,
268
313
  toolCallsCount: prev?.toolCallsCount ?? 0,
314
+ inputSummary: prev?.inputSummary ?? null,
315
+ outputSummary: p.value.outputSummary ?? null,
316
+ // The gate record survives settlement — the card's resolved
317
+ // decision summary reads it after the task completes.
318
+ approvalRequest: prev?.approvalRequest ?? null,
319
+ approvalResolution: prev?.approvalResolution ?? null,
269
320
  });
270
321
  break;
271
322
 
@@ -284,6 +335,10 @@ function deriveTaskStates(
284
335
  currentToolName: "",
285
336
  messagesCount: prev?.messagesCount ?? 0,
286
337
  toolCallsCount: prev?.toolCallsCount ?? 0,
338
+ inputSummary: prev?.inputSummary ?? null,
339
+ outputSummary: null,
340
+ approvalRequest: prev?.approvalRequest ?? null,
341
+ approvalResolution: prev?.approvalResolution ?? null,
287
342
  });
288
343
  break;
289
344
 
@@ -302,6 +357,10 @@ function deriveTaskStates(
302
357
  currentToolName: "",
303
358
  messagesCount: 0,
304
359
  toolCallsCount: 0,
360
+ inputSummary: null,
361
+ outputSummary: null,
362
+ approvalRequest: null,
363
+ approvalResolution: null,
305
364
  });
306
365
  break;
307
366
 
@@ -325,6 +384,7 @@ function deriveTaskStates(
325
384
  if (prev) {
326
385
  map.set(taskName, {
327
386
  ...prev,
387
+ status: deriveChildGateStatus(prev.status, p.value.agentPhase),
328
388
  childExecutionId: p.value.childExecutionId || prev.childExecutionId,
329
389
  currentToolName: p.value.currentToolName || prev.currentToolName,
330
390
  messagesCount: p.value.messagesCount || prev.messagesCount,
@@ -349,13 +409,26 @@ function deriveTaskStates(
349
409
 
350
410
  case "approvalRequested":
351
411
  if (prev) {
352
- map.set(taskName, { ...prev, status: "waiting_approval" });
412
+ map.set(taskName, {
413
+ ...prev,
414
+ status: "waiting_approval",
415
+ // The stored event's payload message itself — reference-stable
416
+ // across re-derivations, so the gating card's memo compares hold.
417
+ approvalRequest: p.value,
418
+ approvalResolution: null,
419
+ });
353
420
  }
354
421
  break;
355
422
 
356
423
  case "approvalResolved":
357
- if (prev && prev.status === "waiting_approval") {
358
- map.set(taskName, { ...prev, status: "running" });
424
+ if (prev) {
425
+ map.set(taskName, {
426
+ ...prev,
427
+ // Only a waiting gate resumes; the resolution record is kept
428
+ // either way (an out-of-order event must not lose the decision).
429
+ status: prev.status === "waiting_approval" ? "running" : prev.status,
430
+ approvalResolution: p.value,
431
+ });
359
432
  }
360
433
  break;
361
434
  }
@@ -364,6 +437,52 @@ function deriveTaskStates(
364
437
  return map;
365
438
  }
366
439
 
440
+ /**
441
+ * Derives the parent task's status from a child agent's phase on an
442
+ * `agent_call_progress` event — the ONLY live signal that an AGENT_CALL
443
+ * task is blocked on a child HITL gate.
444
+ *
445
+ * Why progress events drive gating: a child's tool/file gate is surfaced
446
+ * snapshot-only (`child_approval_required` signal → `status.pending_approvals`
447
+ * on the parent — no workflow event is emitted; source-confirmed in
448
+ * `test/conformance/src/suites-execution/workflowexecution-child-approval.conformance.test.ts`).
449
+ * The `approval_requested` event exists only for human_input tasks. Without
450
+ * this derivation the stream never shows an agent_call task as
451
+ * `waiting_approval`, and every waiting_approval consumer (thread/graph
452
+ * amber state, announcements, `useApprovalBoundary`'s snapshot refetch +
453
+ * gate auto-select) is blind to child gates. Deriving from the phase the
454
+ * progress payload already carries closes that gap with zero new events —
455
+ * and matches the documented task semantics
456
+ * (`apis/ai/stigmer/agentic/workflowexecution/docs/hitl-approvals.md`).
457
+ *
458
+ * Transition rules (deliberately narrow):
459
+ * - Only `running` can ENTER `waiting_approval` (child phase = WAITING).
460
+ * - Only `waiting_approval` can EXIT via a progress event, and only on a
461
+ * KNOWN non-waiting phase. `UNSPECIFIED` is an explicit no-op: the
462
+ * orchestrator's initial/fast-completion emits carry phase 0 (null
463
+ * progress) and must never un-gate a blocked task.
464
+ * - Every other status (retrying, settled, pending) passes through — a
465
+ * stale WAITING progress event can never resurrect or re-gate a task the
466
+ * authoritative task_* events have already moved on.
467
+ */
468
+ function deriveChildGateStatus(
469
+ status: DerivedTaskState["status"],
470
+ childPhase: AgentExecutionPhase,
471
+ ): DerivedTaskState["status"] {
472
+ if (status === "running") {
473
+ return childPhase === AgentExecutionPhase.EXECUTION_WAITING_FOR_APPROVAL
474
+ ? "waiting_approval"
475
+ : "running";
476
+ }
477
+ if (status === "waiting_approval") {
478
+ return childPhase === AgentExecutionPhase.EXECUTION_WAITING_FOR_APPROVAL ||
479
+ childPhase === AgentExecutionPhase.EXECUTION_PHASE_UNSPECIFIED
480
+ ? "waiting_approval"
481
+ : "running";
482
+ }
483
+ return status;
484
+ }
485
+
367
486
  function deriveCostSummary(
368
487
  events: readonly WorkflowExecutionEvent[],
369
488
  ): DerivedCostSummary {
@@ -1,6 +1,4 @@
1
- // Which workspace file is open in the viewer. Sibling to SelectionStore (which
2
- // owns thread-item inspect selection) — the two are orthogonal domains with
3
- // different lifecycles, so they stay separate stores rather than one fused FSM.
1
+ // Which workspace file is open in the viewer.
4
2
 
5
3
  /**
6
4
  * A file selected for viewing.
@@ -23,8 +21,7 @@ type Listener = () => void;
23
21
  /**
24
22
  * Framework-agnostic store for the currently-open workspace file.
25
23
  *
26
- * Implements the `useSyncExternalStore` contract identical to
27
- * {@link import("./selection-store.js").SelectionStore}: the context carries the
24
+ * Implements the `useSyncExternalStore` contract: the context carries the
28
25
  * store instance (stable ref), and `getSelection` returns the stored object
29
26
  * reference — a new object is allocated only inside `select` — so `getSnapshot`
30
27
  * never triggers a re-render loop.