@stigmer/react 3.1.17 → 3.2.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 (832) hide show
  1. package/agent-instance/AgentInstanceList.d.ts.map +1 -1
  2. package/agent-instance/AgentInstanceList.js +11 -3
  3. package/agent-instance/AgentInstanceList.js.map +1 -1
  4. package/channel/AgentChannelsPanel.d.ts +60 -0
  5. package/channel/AgentChannelsPanel.d.ts.map +1 -0
  6. package/channel/AgentChannelsPanel.js +255 -0
  7. package/channel/AgentChannelsPanel.js.map +1 -0
  8. package/channel/ChannelConversationsDialog.d.ts +41 -0
  9. package/channel/ChannelConversationsDialog.d.ts.map +1 -0
  10. package/channel/ChannelConversationsDialog.js +94 -0
  11. package/channel/ChannelConversationsDialog.js.map +1 -0
  12. package/channel/ChannelCredentialsDialog.d.ts +37 -0
  13. package/channel/ChannelCredentialsDialog.d.ts.map +1 -0
  14. package/channel/ChannelCredentialsDialog.js +75 -0
  15. package/channel/ChannelCredentialsDialog.js.map +1 -0
  16. package/channel/ChannelToolCredentials.d.ts +31 -0
  17. package/channel/ChannelToolCredentials.d.ts.map +1 -0
  18. package/channel/ChannelToolCredentials.js +41 -0
  19. package/channel/ChannelToolCredentials.js.map +1 -0
  20. package/channel/ConnectSlackDialog.d.ts +61 -0
  21. package/channel/ConnectSlackDialog.d.ts.map +1 -0
  22. package/channel/ConnectSlackDialog.js +238 -0
  23. package/channel/ConnectSlackDialog.js.map +1 -0
  24. package/channel/ConnectWhatsAppDialog.d.ts +70 -0
  25. package/channel/ConnectWhatsAppDialog.d.ts.map +1 -0
  26. package/channel/ConnectWhatsAppDialog.js +256 -0
  27. package/channel/ConnectWhatsAppDialog.js.map +1 -0
  28. package/channel/SlackMarkIcon.d.ts +11 -0
  29. package/channel/SlackMarkIcon.d.ts.map +1 -0
  30. package/channel/SlackMarkIcon.js +13 -0
  31. package/channel/SlackMarkIcon.js.map +1 -0
  32. package/channel/WhatsAppMarkIcon.d.ts +12 -0
  33. package/channel/WhatsAppMarkIcon.d.ts.map +1 -0
  34. package/channel/WhatsAppMarkIcon.js +14 -0
  35. package/channel/WhatsAppMarkIcon.js.map +1 -0
  36. package/channel/connect/ServingAppSection.d.ts +57 -0
  37. package/channel/connect/ServingAppSection.d.ts.map +1 -0
  38. package/channel/connect/ServingAppSection.js +49 -0
  39. package/channel/connect/ServingAppSection.js.map +1 -0
  40. package/channel/connect/ToolCredentialsSection.d.ts +20 -0
  41. package/channel/connect/ToolCredentialsSection.d.ts.map +1 -0
  42. package/channel/connect/ToolCredentialsSection.js +22 -0
  43. package/channel/connect/ToolCredentialsSection.js.map +1 -0
  44. package/channel/connect/VerbatimRefusal.d.ts +16 -0
  45. package/channel/connect/VerbatimRefusal.d.ts.map +1 -0
  46. package/channel/connect/VerbatimRefusal.js +18 -0
  47. package/channel/connect/VerbatimRefusal.js.map +1 -0
  48. package/channel/connect/icons.d.ts +16 -0
  49. package/channel/connect/icons.d.ts.map +1 -0
  50. package/channel/connect/icons.js +21 -0
  51. package/channel/connect/icons.js.map +1 -0
  52. package/channel/index.d.ts +36 -0
  53. package/channel/index.d.ts.map +1 -0
  54. package/channel/index.js +19 -0
  55. package/channel/index.js.map +1 -0
  56. package/channel/providerPresentation.d.ts +44 -0
  57. package/channel/providerPresentation.d.ts.map +1 -0
  58. package/channel/providerPresentation.js +106 -0
  59. package/channel/providerPresentation.js.map +1 -0
  60. package/channel/providers.d.ts +62 -0
  61. package/channel/providers.d.ts.map +1 -0
  62. package/channel/providers.js +26 -0
  63. package/channel/providers.js.map +1 -0
  64. package/channel/useAgentChannel.d.ts +31 -0
  65. package/channel/useAgentChannel.d.ts.map +1 -0
  66. package/channel/useAgentChannel.js +34 -0
  67. package/channel/useAgentChannel.js.map +1 -0
  68. package/channel/useAgentChannelList.d.ts +43 -0
  69. package/channel/useAgentChannelList.d.ts.map +1 -0
  70. package/channel/useAgentChannelList.js +39 -0
  71. package/channel/useAgentChannelList.js.map +1 -0
  72. package/channel/useChannelSessions.d.ts +47 -0
  73. package/channel/useChannelSessions.d.ts.map +1 -0
  74. package/channel/useChannelSessions.js +38 -0
  75. package/channel/useChannelSessions.js.map +1 -0
  76. package/channel/useChannelToolReadiness.d.ts +23 -0
  77. package/channel/useChannelToolReadiness.d.ts.map +1 -0
  78. package/channel/useChannelToolReadiness.js +28 -0
  79. package/channel/useChannelToolReadiness.js.map +1 -0
  80. package/channel/useConnectSlackChannel.d.ts +75 -0
  81. package/channel/useConnectSlackChannel.d.ts.map +1 -0
  82. package/channel/useConnectSlackChannel.js +115 -0
  83. package/channel/useConnectSlackChannel.js.map +1 -0
  84. package/channel/useCreateAgentChannel.d.ts +42 -0
  85. package/channel/useCreateAgentChannel.d.ts.map +1 -0
  86. package/channel/useCreateAgentChannel.js +48 -0
  87. package/channel/useCreateAgentChannel.js.map +1 -0
  88. package/channel/useDeleteAgentChannel.d.ts +40 -0
  89. package/channel/useDeleteAgentChannel.d.ts.map +1 -0
  90. package/channel/useDeleteAgentChannel.js +44 -0
  91. package/channel/useDeleteAgentChannel.js.map +1 -0
  92. package/channel/useInstallChannel.d.ts +60 -0
  93. package/channel/useInstallChannel.d.ts.map +1 -0
  94. package/channel/useInstallChannel.js +63 -0
  95. package/channel/useInstallChannel.js.map +1 -0
  96. package/channel/useOrgAgentChannelList.d.ts +32 -0
  97. package/channel/useOrgAgentChannelList.d.ts.map +1 -0
  98. package/channel/useOrgAgentChannelList.js +29 -0
  99. package/channel/useOrgAgentChannelList.js.map +1 -0
  100. package/channel/useSaveAgentChannel.d.ts +63 -0
  101. package/channel/useSaveAgentChannel.d.ts.map +1 -0
  102. package/channel/useSaveAgentChannel.js +104 -0
  103. package/channel/useSaveAgentChannel.js.map +1 -0
  104. package/channel-app/ChannelAppDetailPanel.d.ts +46 -0
  105. package/channel-app/ChannelAppDetailPanel.d.ts.map +1 -0
  106. package/channel-app/ChannelAppDetailPanel.js +142 -0
  107. package/channel-app/ChannelAppDetailPanel.js.map +1 -0
  108. package/channel-app/ChannelAppListPanel.d.ts +36 -0
  109. package/channel-app/ChannelAppListPanel.d.ts.map +1 -0
  110. package/channel-app/ChannelAppListPanel.js +63 -0
  111. package/channel-app/ChannelAppListPanel.js.map +1 -0
  112. package/channel-app/CreateChannelAppForm.d.ts +54 -0
  113. package/channel-app/CreateChannelAppForm.d.ts.map +1 -0
  114. package/channel-app/CreateChannelAppForm.js +140 -0
  115. package/channel-app/CreateChannelAppForm.js.map +1 -0
  116. package/channel-app/index.d.ts +18 -0
  117. package/channel-app/index.d.ts.map +1 -0
  118. package/channel-app/index.js +10 -0
  119. package/channel-app/index.js.map +1 -0
  120. package/channel-app/internal.d.ts +33 -0
  121. package/channel-app/internal.d.ts.map +1 -0
  122. package/channel-app/internal.js +44 -0
  123. package/channel-app/internal.js.map +1 -0
  124. package/channel-app/slackAppSetup.d.ts +80 -0
  125. package/channel-app/slackAppSetup.d.ts.map +1 -0
  126. package/channel-app/slackAppSetup.js +123 -0
  127. package/channel-app/slackAppSetup.js.map +1 -0
  128. package/channel-app/useChannelAppList.d.ts +35 -0
  129. package/channel-app/useChannelAppList.d.ts.map +1 -0
  130. package/channel-app/useChannelAppList.js +34 -0
  131. package/channel-app/useChannelAppList.js.map +1 -0
  132. package/channel-app/useCreateChannelApp.d.ts +39 -0
  133. package/channel-app/useCreateChannelApp.d.ts.map +1 -0
  134. package/channel-app/useCreateChannelApp.js +50 -0
  135. package/channel-app/useCreateChannelApp.js.map +1 -0
  136. package/channel-app/useDeleteChannelApp.d.ts +31 -0
  137. package/channel-app/useDeleteChannelApp.d.ts.map +1 -0
  138. package/channel-app/useDeleteChannelApp.js +43 -0
  139. package/channel-app/useDeleteChannelApp.js.map +1 -0
  140. package/channel-app/useUpdateChannelApp.d.ts +39 -0
  141. package/channel-app/useUpdateChannelApp.d.ts.map +1 -0
  142. package/channel-app/useUpdateChannelApp.js +50 -0
  143. package/channel-app/useUpdateChannelApp.js.map +1 -0
  144. package/channel-app/whatsappAppSetup.d.ts +51 -0
  145. package/channel-app/whatsappAppSetup.d.ts.map +1 -0
  146. package/channel-app/whatsappAppSetup.js +57 -0
  147. package/channel-app/whatsappAppSetup.js.map +1 -0
  148. package/environment/index.d.ts +2 -0
  149. package/environment/index.d.ts.map +1 -1
  150. package/environment/index.js +1 -0
  151. package/environment/index.js.map +1 -1
  152. package/environment/useToolCredentialsReadiness.d.ts +52 -0
  153. package/environment/useToolCredentialsReadiness.d.ts.map +1 -0
  154. package/environment/useToolCredentialsReadiness.js +84 -0
  155. package/environment/useToolCredentialsReadiness.js.map +1 -0
  156. package/execution/ArtifactContentBody.d.ts.map +1 -1
  157. package/execution/ArtifactContentBody.js +5 -21
  158. package/execution/ArtifactContentBody.js.map +1 -1
  159. package/execution/ArtifactFileContent.d.ts +28 -0
  160. package/execution/ArtifactFileContent.d.ts.map +1 -0
  161. package/execution/ArtifactFileContent.js +36 -0
  162. package/execution/ArtifactFileContent.js.map +1 -0
  163. package/execution/ArtifactRow.d.ts +8 -20
  164. package/execution/ArtifactRow.d.ts.map +1 -1
  165. package/execution/ArtifactRow.js +12 -45
  166. package/execution/ArtifactRow.js.map +1 -1
  167. package/execution/ArtifactRowView.d.ts +43 -0
  168. package/execution/ArtifactRowView.d.ts.map +1 -0
  169. package/execution/ArtifactRowView.js +35 -0
  170. package/execution/ArtifactRowView.js.map +1 -0
  171. package/execution/FileChangesView.d.ts.map +1 -1
  172. package/execution/FileChangesView.js +1 -61
  173. package/execution/FileChangesView.js.map +1 -1
  174. package/execution/SubAgentSection.d.ts.map +1 -1
  175. package/execution/SubAgentSection.js +4 -15
  176. package/execution/SubAgentSection.js.map +1 -1
  177. package/execution/ToolCallItem.d.ts.map +1 -1
  178. package/execution/ToolCallItem.js +16 -61
  179. package/execution/ToolCallItem.js.map +1 -1
  180. package/execution/agent-execution-document.d.ts +31 -0
  181. package/execution/agent-execution-document.d.ts.map +1 -0
  182. package/execution/agent-execution-document.js +48 -0
  183. package/execution/agent-execution-document.js.map +1 -0
  184. package/{session → execution}/artifact-document.d.ts +2 -3
  185. package/execution/artifact-document.d.ts.map +1 -0
  186. package/execution/artifact-document.js +23 -0
  187. package/execution/artifact-document.js.map +1 -0
  188. package/execution/artifact-row-item.d.ts +56 -0
  189. package/execution/artifact-row-item.d.ts.map +1 -0
  190. package/execution/artifact-row-item.js +57 -0
  191. package/execution/artifact-row-item.js.map +1 -0
  192. package/execution/deriveExecutionFileChanges.d.ts +55 -0
  193. package/execution/deriveExecutionFileChanges.d.ts.map +1 -0
  194. package/execution/deriveExecutionFileChanges.js +216 -0
  195. package/execution/deriveExecutionFileChanges.js.map +1 -0
  196. package/execution/file-change-document.d.ts +22 -0
  197. package/execution/file-change-document.d.ts.map +1 -0
  198. package/execution/file-change-document.js +34 -0
  199. package/execution/file-change-document.js.map +1 -0
  200. package/execution/index.d.ts +14 -0
  201. package/execution/index.d.ts.map +1 -1
  202. package/execution/index.js +9 -0
  203. package/execution/index.js.map +1 -1
  204. package/execution/useArtifactContentById.d.ts +61 -0
  205. package/execution/useArtifactContentById.d.ts.map +1 -0
  206. package/execution/useArtifactContentById.js +63 -0
  207. package/execution/useArtifactContentById.js.map +1 -0
  208. package/execution/useArtifactDownload.d.ts +4 -3
  209. package/execution/useArtifactDownload.d.ts.map +1 -1
  210. package/execution/useArtifactDownload.js +4 -3
  211. package/execution/useArtifactDownload.js.map +1 -1
  212. package/execution/useCreateAgentExecution.d.ts +1 -1
  213. package/execution/useLiveAgentExecution.d.ts +59 -0
  214. package/execution/useLiveAgentExecution.d.ts.map +1 -0
  215. package/execution/useLiveAgentExecution.js +73 -0
  216. package/execution/useLiveAgentExecution.js.map +1 -0
  217. package/index.d.ts +15 -10
  218. package/index.d.ts.map +1 -1
  219. package/index.js +21 -6
  220. package/index.js.map +1 -1
  221. package/internal/DecisionButton.d.ts +4 -3
  222. package/internal/DecisionButton.d.ts.map +1 -1
  223. package/internal/DecisionButton.js +4 -3
  224. package/internal/DecisionButton.js.map +1 -1
  225. package/internal/oauthPopup.d.ts +101 -0
  226. package/internal/oauthPopup.d.ts.map +1 -0
  227. package/internal/oauthPopup.js +208 -0
  228. package/internal/oauthPopup.js.map +1 -0
  229. package/internal/store/index.d.ts +0 -2
  230. package/internal/store/index.d.ts.map +1 -1
  231. package/internal/store/index.js +0 -1
  232. package/internal/store/index.js.map +1 -1
  233. package/internal/store/workflow-execution-event-store.d.ts +34 -1
  234. package/internal/store/workflow-execution-event-store.d.ts.map +1 -1
  235. package/internal/store/workflow-execution-event-store.js +81 -3
  236. package/internal/store/workflow-execution-event-store.js.map +1 -1
  237. package/internal/store/workspace-file-selection-store.d.ts +1 -2
  238. package/internal/store/workspace-file-selection-store.d.ts.map +1 -1
  239. package/internal/store/workspace-file-selection-store.js +2 -5
  240. package/internal/store/workspace-file-selection-store.js.map +1 -1
  241. package/internal/thread-card/ThreadCardShell.d.ts +91 -0
  242. package/internal/thread-card/ThreadCardShell.d.ts.map +1 -0
  243. package/internal/thread-card/ThreadCardShell.js +41 -0
  244. package/internal/thread-card/ThreadCardShell.js.map +1 -0
  245. package/internal/thread-card/glyphs.d.ts +34 -0
  246. package/internal/thread-card/glyphs.d.ts.map +1 -0
  247. package/internal/thread-card/glyphs.js +50 -0
  248. package/internal/thread-card/glyphs.js.map +1 -0
  249. package/internal/thread-card/index.d.ts +3 -0
  250. package/internal/thread-card/index.d.ts.map +1 -0
  251. package/internal/thread-card/index.js +3 -0
  252. package/internal/thread-card/index.js.map +1 -0
  253. package/internal/useRevealLine.d.ts +2 -2
  254. package/internal/useRevealLine.js +2 -2
  255. package/mcp-server/OAuthCallbackHandler.js +1 -1
  256. package/mcp-server/OAuthCallbackHandler.js.map +1 -1
  257. package/mcp-server/useMcpServerOAuthConnect.d.ts +4 -23
  258. package/mcp-server/useMcpServerOAuthConnect.d.ts.map +1 -1
  259. package/mcp-server/useMcpServerOAuthConnect.js +12 -145
  260. package/mcp-server/useMcpServerOAuthConnect.js.map +1 -1
  261. package/package.json +4 -4
  262. package/session/NewSessionViewer.d.ts.map +1 -1
  263. package/session/NewSessionViewer.js +0 -1
  264. package/session/NewSessionViewer.js.map +1 -1
  265. package/session/SessionPanelChip.d.ts +7 -22
  266. package/session/SessionPanelChip.d.ts.map +1 -1
  267. package/session/SessionPanelChip.js +8 -36
  268. package/session/SessionPanelChip.js.map +1 -1
  269. package/session/SessionViewer.d.ts +7 -4
  270. package/session/SessionViewer.d.ts.map +1 -1
  271. package/session/SessionViewer.js +32 -30
  272. package/session/SessionViewer.js.map +1 -1
  273. package/session/audience.d.ts +15 -1
  274. package/session/audience.d.ts.map +1 -1
  275. package/session/channelOrigin.d.ts +33 -0
  276. package/session/channelOrigin.d.ts.map +1 -0
  277. package/session/channelOrigin.js +36 -0
  278. package/session/channelOrigin.js.map +1 -0
  279. package/session/facets/index.d.ts +0 -2
  280. package/session/facets/index.d.ts.map +1 -1
  281. package/session/facets/index.js +0 -1
  282. package/session/facets/index.js.map +1 -1
  283. package/session/index.d.ts +2 -2
  284. package/session/index.d.ts.map +1 -1
  285. package/session/index.js +5 -3
  286. package/session/index.js.map +1 -1
  287. package/session/useNewSessionFlow.d.ts +4 -0
  288. package/session/useNewSessionFlow.d.ts.map +1 -1
  289. package/session/useNewSessionFlow.js +33 -4
  290. package/session/useNewSessionFlow.js.map +1 -1
  291. package/session/usePersistedModel.d.ts +11 -0
  292. package/session/usePersistedModel.d.ts.map +1 -1
  293. package/session/usePersistedModel.js +14 -3
  294. package/session/usePersistedModel.js.map +1 -1
  295. package/session/useSessionFileChanges.d.ts +10 -34
  296. package/session/useSessionFileChanges.d.ts.map +1 -1
  297. package/session/useSessionFileChanges.js +9 -141
  298. package/session/useSessionFileChanges.js.map +1 -1
  299. package/session/useSessionPageFlow.d.ts.map +1 -1
  300. package/session/useSessionPageFlow.js +12 -1
  301. package/session/useSessionPageFlow.js.map +1 -1
  302. package/session/useSessionPanel.d.ts +5 -15
  303. package/session/useSessionPanel.d.ts.map +1 -1
  304. package/session/useSessionPanel.js +3 -35
  305. package/session/useSessionPanel.js.map +1 -1
  306. package/session/useSessionRailViews.d.ts +3 -6
  307. package/session/useSessionRailViews.d.ts.map +1 -1
  308. package/session/useSessionRailViews.js +3 -17
  309. package/session/useSessionRailViews.js.map +1 -1
  310. package/settings/ChannelAppsSection.d.ts +13 -0
  311. package/settings/ChannelAppsSection.d.ts.map +1 -0
  312. package/settings/ChannelAppsSection.js +48 -0
  313. package/settings/ChannelAppsSection.js.map +1 -0
  314. package/settings/index.d.ts +1 -0
  315. package/settings/index.d.ts.map +1 -1
  316. package/settings/index.js +1 -0
  317. package/settings/index.js.map +1 -1
  318. package/settings/settings-nav.d.ts.map +1 -1
  319. package/settings/settings-nav.js +6 -1
  320. package/settings/settings-nav.js.map +1 -1
  321. package/sharing/AgentShareList.d.ts.map +1 -1
  322. package/sharing/AgentShareList.js +11 -3
  323. package/sharing/AgentShareList.js.map +1 -1
  324. package/sharing/ShareAgentDialog.js +1 -1
  325. package/sharing/useShareToolReadiness.d.ts +9 -38
  326. package/sharing/useShareToolReadiness.d.ts.map +1 -1
  327. package/sharing/useShareToolReadiness.js +7 -72
  328. package/sharing/useShareToolReadiness.js.map +1 -1
  329. package/src/agent-instance/AgentInstanceList.tsx +60 -42
  330. package/src/agent-instance/__tests__/AgentInstanceList.test.tsx +161 -0
  331. package/src/channel/AgentChannelsPanel.tsx +688 -0
  332. package/src/channel/ChannelConversationsDialog.tsx +267 -0
  333. package/src/channel/ChannelCredentialsDialog.tsx +219 -0
  334. package/src/channel/ChannelToolCredentials.tsx +124 -0
  335. package/src/channel/ConnectSlackDialog.tsx +611 -0
  336. package/src/channel/ConnectWhatsAppDialog.tsx +624 -0
  337. package/src/channel/SlackMarkIcon.tsx +21 -0
  338. package/src/channel/WhatsAppMarkIcon.tsx +22 -0
  339. package/src/channel/__tests__/AgentChannelsPanel.test.tsx +638 -0
  340. package/src/channel/__tests__/ChannelConversationsDialog.test.tsx +114 -0
  341. package/src/channel/__tests__/ChannelCredentialsDialog.test.tsx +240 -0
  342. package/src/channel/__tests__/ConnectSlackDialog.test.tsx +659 -0
  343. package/src/channel/__tests__/ConnectWhatsAppDialog.test.tsx +564 -0
  344. package/src/channel/__tests__/providers.test.ts +118 -0
  345. package/src/channel/__tests__/useAgentChannel.test.tsx +116 -0
  346. package/src/channel/__tests__/useAgentChannelList.test.tsx +166 -0
  347. package/src/channel/__tests__/useChannelSessions.test.tsx +95 -0
  348. package/src/channel/__tests__/useChannelToolReadiness.test.tsx +158 -0
  349. package/src/channel/__tests__/useConnectSlackChannel.test.tsx +276 -0
  350. package/src/channel/__tests__/useDeleteAgentChannel.test.tsx +97 -0
  351. package/src/channel/__tests__/useInstallChannel.test.tsx +177 -0
  352. package/src/channel/__tests__/useSaveAgentChannel.test.tsx +294 -0
  353. package/src/channel/connect/ServingAppSection.tsx +185 -0
  354. package/src/channel/connect/ToolCredentialsSection.tsx +67 -0
  355. package/src/channel/connect/VerbatimRefusal.tsx +27 -0
  356. package/src/channel/connect/icons.tsx +42 -0
  357. package/src/channel/index.ts +65 -0
  358. package/src/channel/providerPresentation.ts +154 -0
  359. package/src/channel/providers.ts +73 -0
  360. package/src/channel/useAgentChannel.ts +58 -0
  361. package/src/channel/useAgentChannelList.ts +69 -0
  362. package/src/channel/useChannelSessions.ts +73 -0
  363. package/src/channel/useChannelToolReadiness.ts +39 -0
  364. package/src/channel/useConnectSlackChannel.ts +195 -0
  365. package/src/channel/useCreateAgentChannel.ts +73 -0
  366. package/src/channel/useDeleteAgentChannel.ts +71 -0
  367. package/src/channel/useInstallChannel.ts +117 -0
  368. package/src/channel/useOrgAgentChannelList.ts +60 -0
  369. package/src/channel/useSaveAgentChannel.ts +133 -0
  370. package/src/channel-app/ChannelAppDetailPanel.tsx +510 -0
  371. package/src/channel-app/ChannelAppListPanel.tsx +201 -0
  372. package/src/channel-app/CreateChannelAppForm.tsx +529 -0
  373. package/src/channel-app/__tests__/channelAppWhatsApp.test.tsx +270 -0
  374. package/src/channel-app/__tests__/slackAppSetup.test.ts +75 -0
  375. package/src/channel-app/__tests__/useChannelAppHooks.test.tsx +157 -0
  376. package/src/channel-app/__tests__/whatsappAppSetup.test.ts +39 -0
  377. package/src/channel-app/index.ts +30 -0
  378. package/src/channel-app/internal.tsx +180 -0
  379. package/src/channel-app/slackAppSetup.ts +153 -0
  380. package/src/channel-app/useChannelAppList.ts +59 -0
  381. package/src/channel-app/useCreateChannelApp.ts +70 -0
  382. package/src/channel-app/useDeleteChannelApp.ts +62 -0
  383. package/src/channel-app/useUpdateChannelApp.ts +70 -0
  384. package/src/channel-app/whatsappAppSetup.ts +62 -0
  385. package/src/environment/index.ts +2 -0
  386. package/src/environment/useToolCredentialsReadiness.ts +122 -0
  387. package/src/execution/ArtifactContentBody.tsx +6 -88
  388. package/src/execution/ArtifactFileContent.tsx +110 -0
  389. package/src/execution/ArtifactRow.tsx +28 -118
  390. package/src/execution/ArtifactRowView.tsx +137 -0
  391. package/src/execution/FileChangesView.tsx +4 -69
  392. package/src/execution/SubAgentSection.tsx +2 -36
  393. package/src/execution/ToolCallItem.tsx +48 -175
  394. package/src/execution/__tests__/ArtifactFileContent.test.tsx +60 -0
  395. package/src/execution/__tests__/ArtifactRowView.test.tsx +78 -0
  396. package/src/execution/__tests__/agent-execution-document.test.ts +45 -0
  397. package/src/execution/__tests__/artifact-row-item.test.ts +128 -0
  398. package/src/execution/__tests__/deriveExecutionFileChanges.test.ts +270 -0
  399. package/src/execution/__tests__/useArtifactContentById.test.tsx +85 -0
  400. package/src/execution/__tests__/useLiveAgentExecution.test.tsx +202 -0
  401. package/src/execution/agent-execution-document.ts +54 -0
  402. package/src/execution/artifact-document.ts +24 -0
  403. package/src/execution/artifact-row-item.ts +97 -0
  404. package/src/execution/deriveExecutionFileChanges.ts +237 -0
  405. package/src/execution/file-change-document.ts +37 -0
  406. package/src/execution/index.ts +36 -0
  407. package/src/execution/useArtifactContentById.ts +120 -0
  408. package/src/execution/useArtifactDownload.ts +4 -3
  409. package/src/execution/useCreateAgentExecution.ts +1 -1
  410. package/src/execution/useLiveAgentExecution.ts +127 -0
  411. package/src/index.ts +155 -11
  412. package/src/internal/DecisionButton.tsx +4 -3
  413. package/src/internal/__tests__/ThreadCardShell.test.tsx +105 -0
  414. package/src/internal/__tests__/oauthPopup.test.ts +245 -0
  415. package/src/internal/oauthPopup.ts +261 -0
  416. package/src/internal/store/__tests__/workflow-execution-event-store.test.ts +375 -5
  417. package/src/internal/store/index.ts +0 -3
  418. package/src/internal/store/workflow-execution-event-store.ts +123 -4
  419. package/src/internal/store/workspace-file-selection-store.ts +2 -5
  420. package/src/internal/thread-card/ThreadCardShell.tsx +189 -0
  421. package/src/internal/thread-card/glyphs.tsx +108 -0
  422. package/src/internal/thread-card/index.ts +19 -0
  423. package/src/internal/useRevealLine.ts +2 -2
  424. package/src/mcp-server/OAuthCallbackHandler.tsx +2 -2
  425. package/src/mcp-server/useMcpServerOAuthConnect.ts +22 -184
  426. package/src/session/NewSessionViewer.tsx +0 -1
  427. package/src/session/SessionPanelChip.tsx +10 -96
  428. package/src/session/SessionViewer.tsx +170 -144
  429. package/src/session/__tests__/SessionViewer-artifactTabs.test.tsx +1 -1
  430. package/src/session/__tests__/observerAudience.test.tsx +241 -0
  431. package/src/session/__tests__/useNewSessionFlow.test.tsx +64 -0
  432. package/src/session/__tests__/usePersistedModel.test.tsx +36 -0
  433. package/src/session/__tests__/useSessionPageFlow.guest.test.tsx +48 -1
  434. package/src/session/__tests__/useSessionPanel.test.ts +6 -61
  435. package/src/session/__tests__/useSessionRailViews.test.tsx +5 -27
  436. package/src/session/audience.ts +15 -1
  437. package/src/session/channelOrigin.ts +45 -0
  438. package/src/session/facets/index.ts +0 -3
  439. package/src/session/index.ts +9 -6
  440. package/src/session/useNewSessionFlow.ts +35 -4
  441. package/src/session/usePersistedModel.ts +25 -3
  442. package/src/session/useSessionFileChanges.ts +12 -153
  443. package/src/session/useSessionPageFlow.ts +13 -2
  444. package/src/session/useSessionPanel.ts +8 -51
  445. package/src/session/useSessionRailViews.tsx +2 -27
  446. package/src/settings/ChannelAppsSection.tsx +133 -0
  447. package/src/settings/index.ts +1 -0
  448. package/src/settings/settings-nav.ts +6 -0
  449. package/src/sharing/AgentShareList.tsx +85 -64
  450. package/src/sharing/ShareAgentDialog.tsx +1 -1
  451. package/src/sharing/__tests__/AgentShareList.test.tsx +92 -12
  452. package/src/sharing/useShareToolReadiness.ts +13 -101
  453. package/src/workflow/WorkflowAgentExecutionDocument.tsx +283 -0
  454. package/src/workflow/WorkflowApprovalList.tsx +158 -0
  455. package/src/workflow/WorkflowArtifactDocument.tsx +257 -0
  456. package/src/workflow/WorkflowExecutionGraph.tsx +40 -78
  457. package/src/workflow/WorkflowExecutionViewer.tsx +610 -287
  458. package/src/workflow/WorkflowFileReviewList.tsx +1 -1
  459. package/src/workflow/WorkflowTaskApprovalCard.tsx +5 -4
  460. package/src/workflow/WorkflowTaskApprovalSummary.tsx +6 -6
  461. package/src/workflow/__tests__/WorkflowAgentExecutionDocument.test.tsx +651 -0
  462. package/src/workflow/__tests__/WorkflowApprovalList.test.tsx +229 -0
  463. package/src/workflow/__tests__/WorkflowArtifactDocument.test.tsx +90 -0
  464. package/src/workflow/__tests__/WorkflowArtifactsTab.test.tsx +85 -0
  465. package/src/workflow/__tests__/WorkflowChangesTab.test.tsx +113 -0
  466. package/src/workflow/__tests__/WorkflowExecutionViewer.approvals.test.tsx +473 -0
  467. package/src/workflow/__tests__/WorkflowExecutionViewer.reconciliation.test.tsx +632 -0
  468. package/src/workflow/__tests__/WorkflowTaskApprovalSummary.test.tsx +1 -1
  469. package/src/workflow/__tests__/WorkflowTaskThread.test.tsx +947 -0
  470. package/src/workflow/__tests__/WorkflowUsageTab.test.tsx +163 -0
  471. package/src/workflow/__tests__/agent-call-live-experience.test.ts +6 -53
  472. package/src/workflow/__tests__/derive-execution-overlays.test.ts +4 -0
  473. package/src/workflow/__tests__/deriveWorkflowArtifactItems.test.ts +71 -0
  474. package/src/workflow/__tests__/deriveWorkflowUsageItems.test.ts +132 -0
  475. package/src/workflow/__tests__/execution-graph.test.ts +8 -0
  476. package/src/workflow/__tests__/project-thread-items.test.ts +428 -0
  477. package/src/workflow/__tests__/structured-data-viewer.test.tsx +1 -1
  478. package/src/workflow/__tests__/task-approval.test.ts +149 -0
  479. package/src/workflow/__tests__/task-detail-io.test.ts +40 -0
  480. package/src/workflow/__tests__/task-presentation.test.ts +479 -0
  481. package/src/workflow/__tests__/useActiveTaskName.test.ts +4 -0
  482. package/src/workflow/__tests__/useApprovalBoundary.test.ts +158 -0
  483. package/src/workflow/__tests__/useExecutionAnnouncements.test.ts +4 -0
  484. package/src/workflow/__tests__/useFollowExecution.test.ts +2 -89
  485. package/src/workflow/__tests__/useWorkflowExecutionFileChanges.test.tsx +412 -0
  486. package/src/workflow/__tests__/useWorkflowExecutionPanel.test.ts +297 -0
  487. package/src/workflow/__tests__/useWorkflowExecutionRailViews.test.tsx +115 -0
  488. package/src/workflow/deriveWorkflowArtifactItems.ts +59 -0
  489. package/src/workflow/deriveWorkflowUsageItems.ts +73 -0
  490. package/src/workflow/diagnosis-document.ts +31 -0
  491. package/src/workflow/execution/index.ts +0 -15
  492. package/src/workflow/facets/WorkflowArtifactsTab.tsx +99 -0
  493. package/src/workflow/facets/WorkflowChangesTab.tsx +129 -0
  494. package/src/workflow/facets/WorkflowUsageTab.tsx +258 -0
  495. package/src/workflow/format-utils.ts +2 -3
  496. package/src/workflow/index.ts +106 -62
  497. package/src/workflow/inspector/index.ts +0 -4
  498. package/src/workflow/instance/WorkflowInstanceList.tsx +59 -41
  499. package/src/workflow/instance/__tests__/WorkflowInstanceList.test.tsx +156 -0
  500. package/src/workflow/task-detail/index.ts +11 -0
  501. package/src/workflow/task-detail/task-approval.ts +158 -0
  502. package/src/workflow/task-detail/task-detail-io.ts +65 -0
  503. package/src/workflow/thread/WorkflowTaskThread.tsx +845 -0
  504. package/src/workflow/thread/project-thread-items.ts +235 -0
  505. package/src/workflow/thread/task-presentation.ts +427 -0
  506. package/src/workflow/thread/thread-presentation.ts +59 -0
  507. package/src/workflow/thread/useWorkflowThreadItems.ts +34 -0
  508. package/src/workflow/useApprovalBoundary.ts +72 -0
  509. package/src/workflow/useFollowExecution.ts +0 -26
  510. package/src/workflow/useWorkflowArtifactDownload.ts +68 -0
  511. package/src/workflow/useWorkflowExecutionActions.ts +3 -2
  512. package/src/workflow/useWorkflowExecutionFileChanges.ts +341 -0
  513. package/src/workflow/useWorkflowExecutionGraph.ts +3 -43
  514. package/src/workflow/useWorkflowExecutionPanel.ts +292 -0
  515. package/src/workflow/useWorkflowExecutionRailViews.tsx +173 -0
  516. package/src/workspace/FileViewer.tsx +3 -3
  517. package/src/workspace/PanelChip.tsx +103 -0
  518. package/src/workspace/WorkspaceSurface.tsx +50 -6
  519. package/src/workspace/__tests__/WorkspaceSurface.test.tsx +110 -0
  520. package/src/workspace/index.ts +3 -0
  521. package/styles.css +1 -1
  522. package/workflow/WorkflowAgentExecutionDocument.d.ts +79 -0
  523. package/workflow/WorkflowAgentExecutionDocument.d.ts.map +1 -0
  524. package/workflow/WorkflowAgentExecutionDocument.js +87 -0
  525. package/workflow/WorkflowAgentExecutionDocument.js.map +1 -0
  526. package/workflow/WorkflowApprovalList.d.ts +62 -0
  527. package/workflow/WorkflowApprovalList.d.ts.map +1 -0
  528. package/workflow/WorkflowApprovalList.js +52 -0
  529. package/workflow/WorkflowApprovalList.js.map +1 -0
  530. package/workflow/WorkflowArtifactDocument.d.ts +29 -0
  531. package/workflow/WorkflowArtifactDocument.d.ts.map +1 -0
  532. package/workflow/WorkflowArtifactDocument.js +89 -0
  533. package/workflow/WorkflowArtifactDocument.js.map +1 -0
  534. package/workflow/WorkflowExecutionGraph.d.ts +15 -13
  535. package/workflow/WorkflowExecutionGraph.d.ts.map +1 -1
  536. package/workflow/WorkflowExecutionGraph.js +18 -53
  537. package/workflow/WorkflowExecutionGraph.js.map +1 -1
  538. package/workflow/WorkflowExecutionViewer.d.ts +8 -5
  539. package/workflow/WorkflowExecutionViewer.d.ts.map +1 -1
  540. package/workflow/WorkflowExecutionViewer.js +329 -54
  541. package/workflow/WorkflowExecutionViewer.js.map +1 -1
  542. package/workflow/WorkflowFileReviewList.d.ts +1 -1
  543. package/workflow/WorkflowFileReviewList.js +1 -1
  544. package/workflow/WorkflowTaskApprovalCard.d.ts +4 -3
  545. package/workflow/WorkflowTaskApprovalCard.d.ts.map +1 -1
  546. package/workflow/WorkflowTaskApprovalCard.js +5 -4
  547. package/workflow/WorkflowTaskApprovalCard.js.map +1 -1
  548. package/workflow/WorkflowTaskApprovalSummary.d.ts +6 -6
  549. package/workflow/WorkflowTaskApprovalSummary.js +5 -5
  550. package/workflow/deriveWorkflowArtifactItems.d.ts +30 -0
  551. package/workflow/deriveWorkflowArtifactItems.d.ts.map +1 -0
  552. package/workflow/deriveWorkflowArtifactItems.js +38 -0
  553. package/workflow/deriveWorkflowArtifactItems.js.map +1 -0
  554. package/workflow/deriveWorkflowUsageItems.d.ts +36 -0
  555. package/workflow/deriveWorkflowUsageItems.d.ts.map +1 -0
  556. package/workflow/deriveWorkflowUsageItems.js +50 -0
  557. package/workflow/deriveWorkflowUsageItems.js.map +1 -0
  558. package/workflow/diagnosis-document.d.ts +17 -0
  559. package/workflow/diagnosis-document.d.ts.map +1 -0
  560. package/workflow/diagnosis-document.js +29 -0
  561. package/workflow/diagnosis-document.js.map +1 -0
  562. package/workflow/execution/index.d.ts +0 -2
  563. package/workflow/execution/index.d.ts.map +1 -1
  564. package/workflow/execution/index.js +0 -2
  565. package/workflow/execution/index.js.map +1 -1
  566. package/workflow/facets/WorkflowArtifactsTab.d.ts +26 -0
  567. package/workflow/facets/WorkflowArtifactsTab.d.ts.map +1 -0
  568. package/workflow/facets/WorkflowArtifactsTab.js +34 -0
  569. package/workflow/facets/WorkflowArtifactsTab.js.map +1 -0
  570. package/workflow/facets/WorkflowChangesTab.d.ts +37 -0
  571. package/workflow/facets/WorkflowChangesTab.d.ts.map +1 -0
  572. package/workflow/facets/WorkflowChangesTab.js +50 -0
  573. package/workflow/facets/WorkflowChangesTab.js.map +1 -0
  574. package/workflow/facets/WorkflowUsageTab.d.ts +27 -0
  575. package/workflow/facets/WorkflowUsageTab.d.ts.map +1 -0
  576. package/workflow/facets/WorkflowUsageTab.js +87 -0
  577. package/workflow/facets/WorkflowUsageTab.js.map +1 -0
  578. package/workflow/format-utils.d.ts +2 -3
  579. package/workflow/format-utils.d.ts.map +1 -1
  580. package/workflow/format-utils.js +2 -3
  581. package/workflow/format-utils.js.map +1 -1
  582. package/workflow/index.d.ts +21 -10
  583. package/workflow/index.d.ts.map +1 -1
  584. package/workflow/index.js +29 -14
  585. package/workflow/index.js.map +1 -1
  586. package/workflow/inspector/index.d.ts +0 -2
  587. package/workflow/inspector/index.d.ts.map +1 -1
  588. package/workflow/inspector/index.js +0 -2
  589. package/workflow/inspector/index.js.map +1 -1
  590. package/workflow/instance/WorkflowInstanceList.d.ts.map +1 -1
  591. package/workflow/instance/WorkflowInstanceList.js +11 -3
  592. package/workflow/instance/WorkflowInstanceList.js.map +1 -1
  593. package/workflow/task-detail/StructuredDataViewer.d.ts.map +1 -0
  594. package/workflow/task-detail/StructuredDataViewer.js.map +1 -0
  595. package/workflow/task-detail/index.d.ts +4 -0
  596. package/workflow/task-detail/index.d.ts.map +1 -0
  597. package/workflow/task-detail/index.js +4 -0
  598. package/workflow/task-detail/index.js.map +1 -0
  599. package/workflow/task-detail/task-approval.d.ts +89 -0
  600. package/workflow/task-detail/task-approval.d.ts.map +1 -0
  601. package/workflow/task-detail/task-approval.js +84 -0
  602. package/workflow/task-detail/task-approval.js.map +1 -0
  603. package/workflow/task-detail/task-detail-io.d.ts +39 -0
  604. package/workflow/task-detail/task-detail-io.d.ts.map +1 -0
  605. package/workflow/task-detail/task-detail-io.js +42 -0
  606. package/workflow/task-detail/task-detail-io.js.map +1 -0
  607. package/workflow/thread/WorkflowTaskThread.d.ts +91 -0
  608. package/workflow/thread/WorkflowTaskThread.d.ts.map +1 -0
  609. package/workflow/thread/WorkflowTaskThread.js +318 -0
  610. package/workflow/thread/WorkflowTaskThread.js.map +1 -0
  611. package/workflow/thread/project-thread-items.d.ts +108 -0
  612. package/workflow/thread/project-thread-items.d.ts.map +1 -0
  613. package/workflow/thread/project-thread-items.js +126 -0
  614. package/workflow/thread/project-thread-items.js.map +1 -0
  615. package/workflow/thread/task-presentation.d.ts +73 -0
  616. package/workflow/thread/task-presentation.d.ts.map +1 -0
  617. package/workflow/thread/task-presentation.js +331 -0
  618. package/workflow/thread/task-presentation.js.map +1 -0
  619. package/workflow/thread/thread-presentation.d.ts +28 -0
  620. package/workflow/thread/thread-presentation.d.ts.map +1 -0
  621. package/workflow/thread/thread-presentation.js +28 -0
  622. package/workflow/thread/thread-presentation.js.map +1 -0
  623. package/workflow/thread/useWorkflowThreadItems.d.ts +16 -0
  624. package/workflow/thread/useWorkflowThreadItems.d.ts.map +1 -0
  625. package/workflow/thread/useWorkflowThreadItems.js +22 -0
  626. package/workflow/thread/useWorkflowThreadItems.js.map +1 -0
  627. package/workflow/useApprovalBoundary.d.ts +38 -0
  628. package/workflow/useApprovalBoundary.d.ts.map +1 -0
  629. package/workflow/useApprovalBoundary.js +55 -0
  630. package/workflow/useApprovalBoundary.js.map +1 -0
  631. package/workflow/useFollowExecution.d.ts +0 -20
  632. package/workflow/useFollowExecution.d.ts.map +1 -1
  633. package/workflow/useFollowExecution.js +0 -17
  634. package/workflow/useFollowExecution.js.map +1 -1
  635. package/workflow/useWorkflowArtifactDownload.d.ts +28 -0
  636. package/workflow/useWorkflowArtifactDownload.d.ts.map +1 -0
  637. package/workflow/useWorkflowArtifactDownload.js +45 -0
  638. package/workflow/useWorkflowArtifactDownload.js.map +1 -0
  639. package/workflow/useWorkflowExecutionActions.d.ts +3 -2
  640. package/workflow/useWorkflowExecutionActions.d.ts.map +1 -1
  641. package/workflow/useWorkflowExecutionActions.js.map +1 -1
  642. package/workflow/useWorkflowExecutionFileChanges.d.ts +107 -0
  643. package/workflow/useWorkflowExecutionFileChanges.d.ts.map +1 -0
  644. package/workflow/useWorkflowExecutionFileChanges.js +244 -0
  645. package/workflow/useWorkflowExecutionFileChanges.js.map +1 -0
  646. package/workflow/useWorkflowExecutionGraph.d.ts +1 -14
  647. package/workflow/useWorkflowExecutionGraph.d.ts.map +1 -1
  648. package/workflow/useWorkflowExecutionGraph.js +2 -25
  649. package/workflow/useWorkflowExecutionGraph.js.map +1 -1
  650. package/workflow/useWorkflowExecutionPanel.d.ts +108 -0
  651. package/workflow/useWorkflowExecutionPanel.d.ts.map +1 -0
  652. package/workflow/useWorkflowExecutionPanel.js +103 -0
  653. package/workflow/useWorkflowExecutionPanel.js.map +1 -0
  654. package/workflow/useWorkflowExecutionRailViews.d.ts +46 -0
  655. package/workflow/useWorkflowExecutionRailViews.d.ts.map +1 -0
  656. package/workflow/useWorkflowExecutionRailViews.js +81 -0
  657. package/workflow/useWorkflowExecutionRailViews.js.map +1 -0
  658. package/workspace/FileViewer.d.ts +1 -1
  659. package/workspace/FileViewer.js +3 -3
  660. package/workspace/FileViewer.js.map +1 -1
  661. package/workspace/PanelChip.d.ts +27 -0
  662. package/workspace/PanelChip.d.ts.map +1 -0
  663. package/workspace/PanelChip.js +42 -0
  664. package/workspace/PanelChip.js.map +1 -0
  665. package/workspace/WorkspaceSurface.d.ts +25 -1
  666. package/workspace/WorkspaceSurface.d.ts.map +1 -1
  667. package/workspace/WorkspaceSurface.js +21 -9
  668. package/workspace/WorkspaceSurface.js.map +1 -1
  669. package/workspace/index.d.ts +3 -1
  670. package/workspace/index.d.ts.map +1 -1
  671. package/workspace/index.js +1 -0
  672. package/workspace/index.js.map +1 -1
  673. package/execution/ThreadSelectionContext.d.ts +0 -17
  674. package/execution/ThreadSelectionContext.d.ts.map +0 -1
  675. package/execution/ThreadSelectionContext.js +0 -18
  676. package/execution/ThreadSelectionContext.js.map +0 -1
  677. package/execution/useThreadSelection.d.ts +0 -35
  678. package/execution/useThreadSelection.d.ts.map +0 -1
  679. package/execution/useThreadSelection.js +0 -65
  680. package/execution/useThreadSelection.js.map +0 -1
  681. package/internal/store/selection-store.d.ts +0 -53
  682. package/internal/store/selection-store.d.ts.map +0 -1
  683. package/internal/store/selection-store.js +0 -88
  684. package/internal/store/selection-store.js.map +0 -1
  685. package/session/artifact-document.d.ts.map +0 -1
  686. package/session/artifact-document.js +0 -22
  687. package/session/artifact-document.js.map +0 -1
  688. package/session/facets/InspectTab.d.ts +0 -13
  689. package/session/facets/InspectTab.d.ts.map +0 -1
  690. package/session/facets/InspectTab.js +0 -19
  691. package/session/facets/InspectTab.js.map +0 -1
  692. package/src/execution/ThreadSelectionContext.tsx +0 -20
  693. package/src/execution/useThreadSelection.ts +0 -95
  694. package/src/internal/store/__tests__/selection-store.test.ts +0 -115
  695. package/src/internal/store/selection-store.ts +0 -112
  696. package/src/session/artifact-document.ts +0 -23
  697. package/src/session/facets/InspectTab.tsx +0 -57
  698. package/src/workflow/WorkflowExecutionApprovalCard.tsx +0 -154
  699. package/src/workflow/WorkflowExecutionArtifactPanel.tsx +0 -107
  700. package/src/workflow/WorkflowExecutionCostPanel.tsx +0 -120
  701. package/src/workflow/WorkflowExecutionTaskPanel.tsx +0 -129
  702. package/src/workflow/WorkflowExecutionTimeline.tsx +0 -151
  703. package/src/workflow/WorkflowExecutionTimelineEvent.tsx +0 -497
  704. package/src/workflow/__tests__/ExecutionInspector.test.tsx +0 -155
  705. package/src/workflow/__tests__/WorkflowExecutionApprovalCard.test.tsx +0 -129
  706. package/src/workflow/__tests__/derive-task-detail.test.ts +0 -1265
  707. package/src/workflow/__tests__/derive-waterfall-entries.test.ts +0 -521
  708. package/src/workflow/__tests__/execution-inspector.test.tsx +0 -332
  709. package/src/workflow/execution/derive-waterfall-entries.ts +0 -377
  710. package/src/workflow/execution/useWaterfallEntries.ts +0 -125
  711. package/src/workflow/execution-inspector/AgentCallTab.tsx +0 -169
  712. package/src/workflow/execution-inspector/ErrorTab.tsx +0 -110
  713. package/src/workflow/execution-inspector/EventLogTab.tsx +0 -79
  714. package/src/workflow/execution-inspector/ExecutionInspector.tsx +0 -341
  715. package/src/workflow/execution-inspector/InputOutputTab.tsx +0 -325
  716. package/src/workflow/execution-inspector/RetriesTab.tsx +0 -68
  717. package/src/workflow/execution-inspector/SummaryTab.tsx +0 -62
  718. package/src/workflow/execution-inspector/derive-task-detail.ts +0 -584
  719. package/src/workflow/execution-inspector/index.ts +0 -14
  720. package/src/workflow/execution-inspector/useExecutionTaskDetail.ts +0 -55
  721. package/src/workflow/inspector/ExecutionInspectorAdapter.tsx +0 -40
  722. package/src/workflow/waterfall/WaterfallBar.tsx +0 -167
  723. package/src/workflow/waterfall/WaterfallRow.tsx +0 -112
  724. package/src/workflow/waterfall/WaterfallScale.tsx +0 -52
  725. package/src/workflow/waterfall/WaterfallTimeline.tsx +0 -138
  726. package/src/workflow/waterfall/WaterfallTooltip.tsx +0 -74
  727. package/src/workflow/waterfall/index.ts +0 -5
  728. package/workflow/WorkflowExecutionApprovalCard.d.ts +0 -34
  729. package/workflow/WorkflowExecutionApprovalCard.d.ts.map +0 -1
  730. package/workflow/WorkflowExecutionApprovalCard.js +0 -46
  731. package/workflow/WorkflowExecutionApprovalCard.js.map +0 -1
  732. package/workflow/WorkflowExecutionArtifactPanel.d.ts +0 -15
  733. package/workflow/WorkflowExecutionArtifactPanel.d.ts.map +0 -1
  734. package/workflow/WorkflowExecutionArtifactPanel.js +0 -46
  735. package/workflow/WorkflowExecutionArtifactPanel.js.map +0 -1
  736. package/workflow/WorkflowExecutionCostPanel.d.ts +0 -18
  737. package/workflow/WorkflowExecutionCostPanel.d.ts.map +0 -1
  738. package/workflow/WorkflowExecutionCostPanel.js +0 -31
  739. package/workflow/WorkflowExecutionCostPanel.js.map +0 -1
  740. package/workflow/WorkflowExecutionTaskPanel.d.ts +0 -24
  741. package/workflow/WorkflowExecutionTaskPanel.d.ts.map +0 -1
  742. package/workflow/WorkflowExecutionTaskPanel.js +0 -51
  743. package/workflow/WorkflowExecutionTaskPanel.js.map +0 -1
  744. package/workflow/WorkflowExecutionTimeline.d.ts +0 -42
  745. package/workflow/WorkflowExecutionTimeline.d.ts.map +0 -1
  746. package/workflow/WorkflowExecutionTimeline.js +0 -52
  747. package/workflow/WorkflowExecutionTimeline.js.map +0 -1
  748. package/workflow/WorkflowExecutionTimelineEvent.d.ts +0 -25
  749. package/workflow/WorkflowExecutionTimelineEvent.d.ts.map +0 -1
  750. package/workflow/WorkflowExecutionTimelineEvent.js +0 -179
  751. package/workflow/WorkflowExecutionTimelineEvent.js.map +0 -1
  752. package/workflow/execution/derive-waterfall-entries.d.ts +0 -85
  753. package/workflow/execution/derive-waterfall-entries.d.ts.map +0 -1
  754. package/workflow/execution/derive-waterfall-entries.js +0 -268
  755. package/workflow/execution/derive-waterfall-entries.js.map +0 -1
  756. package/workflow/execution/useWaterfallEntries.d.ts +0 -25
  757. package/workflow/execution/useWaterfallEntries.d.ts.map +0 -1
  758. package/workflow/execution/useWaterfallEntries.js +0 -67
  759. package/workflow/execution/useWaterfallEntries.js.map +0 -1
  760. package/workflow/execution-inspector/AgentCallTab.d.ts +0 -21
  761. package/workflow/execution-inspector/AgentCallTab.d.ts.map +0 -1
  762. package/workflow/execution-inspector/AgentCallTab.js +0 -36
  763. package/workflow/execution-inspector/AgentCallTab.js.map +0 -1
  764. package/workflow/execution-inspector/ErrorTab.d.ts +0 -9
  765. package/workflow/execution-inspector/ErrorTab.d.ts.map +0 -1
  766. package/workflow/execution-inspector/ErrorTab.js +0 -29
  767. package/workflow/execution-inspector/ErrorTab.js.map +0 -1
  768. package/workflow/execution-inspector/EventLogTab.d.ts +0 -11
  769. package/workflow/execution-inspector/EventLogTab.d.ts.map +0 -1
  770. package/workflow/execution-inspector/EventLogTab.js +0 -47
  771. package/workflow/execution-inspector/EventLogTab.js.map +0 -1
  772. package/workflow/execution-inspector/ExecutionInspector.d.ts +0 -69
  773. package/workflow/execution-inspector/ExecutionInspector.d.ts.map +0 -1
  774. package/workflow/execution-inspector/ExecutionInspector.js +0 -145
  775. package/workflow/execution-inspector/ExecutionInspector.js.map +0 -1
  776. package/workflow/execution-inspector/InputOutputTab.d.ts +0 -20
  777. package/workflow/execution-inspector/InputOutputTab.d.ts.map +0 -1
  778. package/workflow/execution-inspector/InputOutputTab.js +0 -124
  779. package/workflow/execution-inspector/InputOutputTab.js.map +0 -1
  780. package/workflow/execution-inspector/RetriesTab.d.ts +0 -7
  781. package/workflow/execution-inspector/RetriesTab.d.ts.map +0 -1
  782. package/workflow/execution-inspector/RetriesTab.js +0 -11
  783. package/workflow/execution-inspector/RetriesTab.js.map +0 -1
  784. package/workflow/execution-inspector/StructuredDataViewer.d.ts.map +0 -1
  785. package/workflow/execution-inspector/StructuredDataViewer.js.map +0 -1
  786. package/workflow/execution-inspector/SummaryTab.d.ts +0 -7
  787. package/workflow/execution-inspector/SummaryTab.d.ts.map +0 -1
  788. package/workflow/execution-inspector/SummaryTab.js +0 -10
  789. package/workflow/execution-inspector/SummaryTab.js.map +0 -1
  790. package/workflow/execution-inspector/derive-task-detail.d.ts +0 -140
  791. package/workflow/execution-inspector/derive-task-detail.d.ts.map +0 -1
  792. package/workflow/execution-inspector/derive-task-detail.js +0 -366
  793. package/workflow/execution-inspector/derive-task-detail.js.map +0 -1
  794. package/workflow/execution-inspector/index.d.ts +0 -4
  795. package/workflow/execution-inspector/index.d.ts.map +0 -1
  796. package/workflow/execution-inspector/index.js +0 -4
  797. package/workflow/execution-inspector/index.js.map +0 -1
  798. package/workflow/execution-inspector/useExecutionTaskDetail.d.ts +0 -38
  799. package/workflow/execution-inspector/useExecutionTaskDetail.d.ts.map +0 -1
  800. package/workflow/execution-inspector/useExecutionTaskDetail.js +0 -37
  801. package/workflow/execution-inspector/useExecutionTaskDetail.js.map +0 -1
  802. package/workflow/inspector/ExecutionInspectorAdapter.d.ts +0 -26
  803. package/workflow/inspector/ExecutionInspectorAdapter.d.ts.map +0 -1
  804. package/workflow/inspector/ExecutionInspectorAdapter.js +0 -23
  805. package/workflow/inspector/ExecutionInspectorAdapter.js.map +0 -1
  806. package/workflow/waterfall/WaterfallBar.d.ts +0 -19
  807. package/workflow/waterfall/WaterfallBar.d.ts.map +0 -1
  808. package/workflow/waterfall/WaterfallBar.js +0 -70
  809. package/workflow/waterfall/WaterfallBar.js.map +0 -1
  810. package/workflow/waterfall/WaterfallRow.d.ts +0 -18
  811. package/workflow/waterfall/WaterfallRow.d.ts.map +0 -1
  812. package/workflow/waterfall/WaterfallRow.js +0 -45
  813. package/workflow/waterfall/WaterfallRow.js.map +0 -1
  814. package/workflow/waterfall/WaterfallScale.d.ts +0 -14
  815. package/workflow/waterfall/WaterfallScale.d.ts.map +0 -1
  816. package/workflow/waterfall/WaterfallScale.js +0 -22
  817. package/workflow/waterfall/WaterfallScale.js.map +0 -1
  818. package/workflow/waterfall/WaterfallTimeline.d.ts +0 -46
  819. package/workflow/waterfall/WaterfallTimeline.d.ts.map +0 -1
  820. package/workflow/waterfall/WaterfallTimeline.js +0 -60
  821. package/workflow/waterfall/WaterfallTimeline.js.map +0 -1
  822. package/workflow/waterfall/WaterfallTooltip.d.ts +0 -15
  823. package/workflow/waterfall/WaterfallTooltip.d.ts.map +0 -1
  824. package/workflow/waterfall/WaterfallTooltip.js +0 -20
  825. package/workflow/waterfall/WaterfallTooltip.js.map +0 -1
  826. package/workflow/waterfall/index.d.ts +0 -6
  827. package/workflow/waterfall/index.d.ts.map +0 -1
  828. package/workflow/waterfall/index.js +0 -6
  829. package/workflow/waterfall/index.js.map +0 -1
  830. /package/src/workflow/{execution-inspector → task-detail}/StructuredDataViewer.tsx +0 -0
  831. /package/workflow/{execution-inspector → task-detail}/StructuredDataViewer.d.ts +0 -0
  832. /package/workflow/{execution-inspector → task-detail}/StructuredDataViewer.js +0 -0
@@ -1,66 +1,37 @@
1
1
  "use client";
2
2
 
3
- import { useEffect, useMemo, useState } from "react";
4
3
  import type { Agent } from "@stigmer/protos/ai/stigmer/agentic/agent/v1/api_pb";
5
- import { ApiResourceVisibility } from "@stigmer/protos/ai/stigmer/commons/apiresource/enum_pb";
6
- import { useStigmer } from "../hooks.js";
7
4
  import { useDeploymentMode } from "../deployment-mode.js";
5
+ import {
6
+ useToolCredentialsReadiness,
7
+ type ToolCredentialsReadiness,
8
+ } from "../environment/useToolCredentialsReadiness.js";
8
9
  import type { AgentShareDraft } from "./useSaveAgentShare.js";
9
10
 
10
11
  /**
11
12
  * Readiness of a share's tool credentials for visitor executions.
12
13
  *
13
- * - `na` nothing to check: the agent uses no MCP tools, sharing is
14
- * off, the audience is org (bindings are public-audience only), or
15
- * the deployment cannot serve guest chat (local mode).
16
- * - `needs-credentials` — the agent uses MCP tools but the share has no
17
- * environments bound: visitors' tool calls will fail until the owner
18
- * binds credentials.
19
- * - `checking` — lookups in flight.
20
- * - `ready` — every environment bound to the share is shared with the
21
- * organization.
22
- * - `blocked` — one or more bound environments are private; their
23
- * `org/slug` references are listed for the hint copy.
14
+ * The shared vocabulary lives on {@link ToolCredentialsReadiness}; this
15
+ * alias preserves the original share-scoped export.
24
16
  */
25
- export type ShareToolReadiness =
26
- | { readonly status: "na" }
27
- | { readonly status: "needs-credentials" }
28
- | { readonly status: "checking" }
29
- | { readonly status: "ready" }
30
- | { readonly status: "blocked"; readonly privateEnvironments: readonly string[] };
31
-
32
- const NA: ShareToolReadiness = { status: "na" };
33
- const NEEDS_CREDENTIALS: ShareToolReadiness = { status: "needs-credentials" };
17
+ export type ShareToolReadiness = ToolCredentialsReadiness;
34
18
 
35
19
  /**
36
- * Data hook that checks whether a tool-using shared agent's credentials
37
- * will work for visitors i.e. whether the share binds environments
38
- * (`environment_refs`) and each one is shared with the organization
39
- * (`visibility_org`).
40
- *
41
- * Guest executions receive credentials exclusively from the share's own
42
- * `environment_refs`, resolved through the org-shared environment seam
43
- * (decision 011 — the agent's default instance stays pristine and is
44
- * never consulted). So a tool-using agent with an empty binding list is
45
- * *guaranteed* broken for visitors, and this hook says so explicitly
46
- * (`needs-credentials`) instead of staying silent — the gap that made
47
- * session 12's misconfiguration invisible until a visitor's first
48
- * message failed.
20
+ * Share-scoped wrapper over {@link useToolCredentialsReadiness}: checks
21
+ * whether a tool-using shared agent's credentials will work for
22
+ * visitors i.e. whether the share binds environments
23
+ * (`environment_refs`) and each one is shared with the organization.
49
24
  *
50
25
  * The check runs only when the share is enabled with a public audience
51
26
  * (org-audience shares reject bindings at the proto boundary), the
52
27
  * deployment is cloud (local mode has no guest runtime or secret
53
- * gating), and the agent declares MCP server usages. All lookups run as
54
- * the owner viewing the dialog, who can read the bound environments.
28
+ * gating), and the agent declares MCP server usages.
55
29
  */
56
30
  export function useShareToolReadiness(
57
31
  agent: Agent,
58
32
  draft: AgentShareDraft,
59
33
  ): ShareToolReadiness {
60
- const stigmer = useStigmer();
61
34
  const deploymentMode = useDeploymentMode();
62
- const [checked, setChecked] = useState<ShareToolReadiness>(NA);
63
-
64
35
  const hasMcpTools = (agent.spec?.mcpServerUsages?.length ?? 0) > 0;
65
36
  const applicable =
66
37
  draft.enabled &&
@@ -68,64 +39,5 @@ export function useShareToolReadiness(
68
39
  deploymentMode === "cloud" &&
69
40
  hasMcpTools;
70
41
 
71
- // Stable key for the effect: the visibility lookups depend only on
72
- // which environments are bound, not on the array's identity.
73
- const refsKey = useMemo(
74
- () => draft.environmentRefs.map((ref) => `${ref.org}/${ref.slug}`).join(","),
75
- [draft.environmentRefs],
76
- );
77
-
78
- const shouldFetch = applicable && refsKey !== "";
79
-
80
- useEffect(() => {
81
- if (!shouldFetch) {
82
- setChecked(NA);
83
- return;
84
- }
85
-
86
- let cancelled = false;
87
- setChecked({ status: "checking" });
88
-
89
- (async (): Promise<ShareToolReadiness> => {
90
- const privateRefs: string[] = [];
91
- for (const ref of refsKey.split(",")) {
92
- const [org, slug] = ref.split("/");
93
- try {
94
- const env = await stigmer.environment.getByReference({ org, slug });
95
- if (
96
- env.metadata?.visibility !== ApiResourceVisibility.visibility_org
97
- ) {
98
- privateRefs.push(ref);
99
- }
100
- } catch {
101
- // Unreadable ref (deleted, foreign): the runtime's merge will
102
- // skip it for visitors too — surface it as blocking.
103
- privateRefs.push(ref);
104
- }
105
- }
106
-
107
- return privateRefs.length === 0
108
- ? { status: "ready" }
109
- : { status: "blocked", privateEnvironments: privateRefs };
110
- })().then(
111
- (result) => {
112
- if (!cancelled) setChecked(result);
113
- },
114
- () => {
115
- // The hint is best-effort pre-flight advice — a failed check must
116
- // never block the dialog. The runtime error path still diagnoses.
117
- if (!cancelled) setChecked(NA);
118
- },
119
- );
120
-
121
- return () => {
122
- cancelled = true;
123
- };
124
- }, [shouldFetch, refsKey, stigmer]);
125
-
126
- if (!applicable) return NA;
127
- // Zero bindings needs no lookup: a tool-using agent without bound
128
- // credentials is broken for visitors by construction.
129
- if (refsKey === "") return NEEDS_CREDENTIALS;
130
- return checked;
42
+ return useToolCredentialsReadiness(applicable, draft.environmentRefs);
131
43
  }
@@ -0,0 +1,283 @@
1
+ "use client";
2
+
3
+ // Editor-area document rendering one child AgentExecution's full transcript.
4
+ // Domain: workflow (the AGENT_CALL counterpart of WorkflowArtifactDocument).
5
+
6
+ import { memo, useCallback, useMemo } from "react";
7
+ import type { AgentExecution } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/api_pb";
8
+ import {
9
+ FileChangeSetStatus,
10
+ type FileDecisionAction,
11
+ } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
12
+ import type { FileChangeSet } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/filereview_pb";
13
+ import { displayFileChangeSets } from "@stigmer/sdk";
14
+ import { cn } from "@stigmer/theme";
15
+ import { useLiveAgentExecution } from "../execution/useLiveAgentExecution.js";
16
+ import { MessageThread } from "../execution/MessageThread.js";
17
+ import { ThreadSkeleton } from "../execution/ThreadSkeleton.js";
18
+ import { ExecutionPhaseBadge } from "../execution/ExecutionPhaseBadge.js";
19
+ import { FileReviewDock } from "../execution/FileReviewDock.js";
20
+ import type { FileDecisionOptions } from "../execution/useFileReview.js";
21
+ import { isTerminalPhase } from "../execution/execution-phases.js";
22
+ import type { UseWorkflowExecutionActionsReturn } from "./useWorkflowExecutionActions.js";
23
+
24
+ /** Stable empty list so the thread's memoized rows keep identity (DD-010). */
25
+ const EMPTY_EXECUTIONS: readonly AgentExecution[] = [];
26
+
27
+ /**
28
+ * The HITL wiring for a child transcript: the slice of
29
+ * {@link UseWorkflowExecutionActionsReturn} the document needs to submit
30
+ * child-gate decisions at the WORKFLOW level.
31
+ *
32
+ * A `Pick` (not a new shape) so the bundle can never drift from the actions
33
+ * hook — the viewer builds it from its single `useWorkflowExecutionActions`
34
+ * instance, which is the same keyed in-flight/error state the bottom
35
+ * Approvals tab renders. One instance, two surfaces: a spinner or failure on
36
+ * a gate is identical wherever that gate is shown.
37
+ */
38
+ export type WorkflowAgentExecutionHitl = Pick<
39
+ UseWorkflowExecutionActionsReturn,
40
+ | "submitApproval"
41
+ | "approvalSubmittingToolCallIds"
42
+ | "approvalErrorsByToolCallId"
43
+ | "submitFileDecision"
44
+ | "fileDecisionSubmittingKeys"
45
+ | "fileDecisionErrorsByKey"
46
+ >;
47
+
48
+ /** Props for {@link WorkflowAgentExecutionDocument}. */
49
+ export interface WorkflowAgentExecutionDocumentProps {
50
+ /** ID of the child AgentExecution whose transcript to render. */
51
+ readonly childExecutionId: string;
52
+ /** The AGENT_CALL task that spawned the child — the document's title. */
53
+ readonly taskName: string;
54
+ /** Slug of the agent the task called, when known (subtitle context). */
55
+ readonly agentSlug?: string;
56
+ /**
57
+ * Open the child execution as a standalone page — the pop-out escape hatch
58
+ * preserved from the inspector's Agent tab. Host-routed (DD-004).
59
+ */
60
+ readonly onNavigateToAgentExecution?: (agentExecutionId: string) => void;
61
+ /**
62
+ * Workflow-level HITL handlers (S5 of the UX-parity project). When
63
+ * provided, the transcript becomes interactive: tool-approval gates render
64
+ * their decision cards inline on the gated rows, and pending file reviews
65
+ * dock at the bottom of the document. When omitted, the transcript is
66
+ * read-only — gates show status only (backward compatible, DD-011).
67
+ */
68
+ readonly hitl?: WorkflowAgentExecutionHitl;
69
+ /** Additional CSS classes for the root element. */
70
+ readonly className?: string;
71
+ }
72
+
73
+ /**
74
+ * The editor-pane rendering of a child AgentExecution's transcript — the
75
+ * `SurfaceVirtualDocument` body the workflow execution panel mounts when an
76
+ * AGENT_CALL task is opened in place (S4 of the UX-parity project). This is
77
+ * the full session-grade experience — streaming `MessageThread` with tool
78
+ * calls, sub-agents, plan cards, and (with {@link
79
+ * WorkflowAgentExecutionDocumentProps.hitl | hitl}) in-place HITL —
80
+ * replacing the inspector's cramped `max-h-[50vh]` thumbnail.
81
+ *
82
+ * HITL ROUTING. Child gates are decided through the WORKFLOW-level RPCs
83
+ * (`WorkflowExecution.submitApproval` / `submitFileDecision`), never the
84
+ * child's own `agentExecution.*` submit path. The two paths are
85
+ * server-equivalent (the workflow RPC forwards to the child — see
86
+ * workflowexecution command.proto), but they differ in authorization: the
87
+ * workflow RPC checks `can_edit` on the workflow execution — the resource
88
+ * the operator owns — while the child path checks the runner-spawned
89
+ * AgentExecution, which the operator may not. Every workflow HITL surface
90
+ * (bottom Approvals tab, inspector) routes this way; the transcript joins
91
+ * them via the same actions instance, so in-flight/error state never forks.
92
+ *
93
+ * FILE-REVIEW DOCK. Pending (AWAITING_REVIEW) sets derive from the CHILD's
94
+ * own live stream — the freshest source this document already holds — not
95
+ * from the parent's `status.pending_file_reviews`: the parent snapshot is
96
+ * fetched once at mount and may lag a mid-run gate, which would blank the
97
+ * dock exactly when the reviewer is watching live. The server validates
98
+ * routing against its own (fresh) stored status at submit time, so a
99
+ * too-early decision degrades to a retryable in-card error, the same
100
+ * treatment tool approvals get. Docked below the thread (mirroring the
101
+ * session's composer dock) so a decision the agent is blocked on can never
102
+ * scroll out of view; settled sets render as read-only records in-thread
103
+ * (`showFileReviewRecords`), never in the dock — the two surfaces partition
104
+ * by the same pending test `MessageThread` uses.
105
+ *
106
+ * Lifecycle: the surface's editor area mounts only the ACTIVE virtual
107
+ * document, so `useLiveAgentExecution` fetches/streams only while this tab
108
+ * is foregrounded (DD-LIVE-006 — at most one child stream is ever live) and
109
+ * a tab-return re-renders instantly from the DD-014 fetch cache.
110
+ *
111
+ * All visual properties flow through `--stgm-*` tokens (DD-005).
112
+ */
113
+ export const WorkflowAgentExecutionDocument = memo(
114
+ function WorkflowAgentExecutionDocument({
115
+ childExecutionId,
116
+ taskName,
117
+ agentSlug,
118
+ onNavigateToAgentExecution,
119
+ hitl,
120
+ className,
121
+ }: WorkflowAgentExecutionDocumentProps) {
122
+ const { execution, phase, isLoading, isStreaming, isReconnecting, error, reconnect } =
123
+ useLiveAgentExecution(childExecutionId);
124
+
125
+ // Pending file reviews from the child's own (streamed) status — see the
126
+ // component doc for why the parent's pending_file_reviews is not the
127
+ // source. Terminal executions never dock: their AWAITING_REVIEW sets are
128
+ // settled history ("not reviewed") and render as in-thread records — the
129
+ // exact complement of MessageThread's pending test, so no set ever
130
+ // appears in both surfaces.
131
+ const terminal = isTerminalPhase(phase);
132
+ const pendingReviewSets = useMemo<readonly FileChangeSet[]>(() => {
133
+ if (terminal) return [];
134
+ return displayFileChangeSets(execution?.status).filter(
135
+ (cs) =>
136
+ cs.status === FileChangeSetStatus.AWAITING_REVIEW &&
137
+ cs.changes.length > 0,
138
+ );
139
+ }, [execution?.status, terminal]);
140
+
141
+ // Bind the child id into the dock's card-level submit signature. Deps are
142
+ // the specific method (DD-010), so the callback survives unrelated
143
+ // in-flight churn on the actions instance.
144
+ const submitFileDecision = hitl?.submitFileDecision;
145
+ const handleFileDecision = useCallback(
146
+ (changeSetId: string, action: FileDecisionAction, options?: FileDecisionOptions) => {
147
+ submitFileDecision?.(childExecutionId, changeSetId, action, options);
148
+ },
149
+ [submitFileDecision, childExecutionId],
150
+ );
151
+
152
+ return (
153
+ <div
154
+ role="article"
155
+ aria-label={`Agent execution for task ${taskName}`}
156
+ className={cn("flex h-full min-w-0 flex-col", className)}
157
+ >
158
+ {/* Slim identity header: task name (the DAG node this transcript
159
+ belongs to), agent slug, live/phase state, and the standalone
160
+ pop-out. Wraps on narrow panes rather than overflowing. */}
161
+ <div className="flex min-w-0 shrink-0 flex-wrap items-center gap-x-3 gap-y-1 border-b border-border bg-background px-4 py-2">
162
+ <span className="truncate text-sm font-medium text-foreground">
163
+ {taskName}
164
+ </span>
165
+ {agentSlug && (
166
+ <span className="shrink-0 text-xs text-muted-foreground">
167
+ {agentSlug}
168
+ </span>
169
+ )}
170
+
171
+ <span className="shrink-0">
172
+ {isStreaming ? (
173
+ <span className="inline-flex items-center gap-1.5 text-xs font-medium text-primary">
174
+ <span className="inline-block size-1.5 animate-pulse rounded-full bg-primary" aria-hidden="true" />
175
+ Live
176
+ </span>
177
+ ) : isReconnecting ? (
178
+ <span className="text-xs text-muted-foreground">Reconnecting…</span>
179
+ ) : isTerminalPhase(phase) ? (
180
+ <ExecutionPhaseBadge phase={phase} />
181
+ ) : null}
182
+ </span>
183
+
184
+ {onNavigateToAgentExecution && (
185
+ <button
186
+ type="button"
187
+ onClick={() => onNavigateToAgentExecution(childExecutionId)}
188
+ className="ml-auto inline-flex shrink-0 items-center gap-1.5 text-xs font-medium text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:rounded-sm"
189
+ >
190
+ <PopOutIcon />
191
+ Open standalone
192
+ </button>
193
+ )}
194
+ </div>
195
+
196
+ {/* The thread owns the scrolling (its auto-scroll machine + jump-to-
197
+ latest need the scroll container); h-full keeps the surrounding
198
+ editor-pane wrapper inert, so there is exactly one scrollbar. */}
199
+ <div className="min-h-0 min-w-0 flex-1">
200
+ {execution ? (
201
+ <MessageThread
202
+ executions={EMPTY_EXECUTIONS}
203
+ activeStreamExecution={execution}
204
+ onApprovalSubmit={hitl?.submitApproval}
205
+ submittingApprovalIds={hitl?.approvalSubmittingToolCallIds}
206
+ approvalErrors={hitl?.approvalErrorsByToolCallId}
207
+ showFileReviewRecords={hitl != null}
208
+ className="h-full"
209
+ />
210
+ ) : isLoading ? (
211
+ <ThreadSkeleton className="px-4 py-4" />
212
+ ) : error ? (
213
+ <div
214
+ role="alert"
215
+ className="mx-auto flex w-full max-w-3xl flex-col items-center gap-2 px-4 py-8 text-center"
216
+ >
217
+ <p className="text-xs text-destructive">{error.message}</p>
218
+ <button
219
+ type="button"
220
+ onClick={reconnect}
221
+ className="rounded border border-border px-3 py-1.5 text-xs font-medium text-foreground hover:bg-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"
222
+ >
223
+ Retry
224
+ </button>
225
+ </div>
226
+ ) : (
227
+ <div
228
+ role="status"
229
+ className="mx-auto flex w-full max-w-3xl flex-col items-center gap-1 px-4 py-8 text-center"
230
+ >
231
+ <p className="text-xs font-medium text-foreground">
232
+ This agent execution is no longer available.
233
+ </p>
234
+ <p className="text-xs text-muted-foreground">
235
+ It may have been removed, or the workflow run predates
236
+ transcript retention.
237
+ </p>
238
+ </div>
239
+ )}
240
+ </div>
241
+
242
+ {/* Pending file reviews dock here — pinned below the thread (the
243
+ document has no composer, so the panel bottom is the fixed strip)
244
+ where the decision the child is blocked on can never scroll out
245
+ of view. Same shape as the session's composer dock. */}
246
+ {hitl && pendingReviewSets.length > 0 && (
247
+ <FileReviewDock
248
+ changeSets={pendingReviewSets}
249
+ onSubmit={handleFileDecision}
250
+ submittingDecisionKeys={hitl.fileDecisionSubmittingKeys}
251
+ decisionErrors={hitl.fileDecisionErrorsByKey}
252
+ className="shrink-0"
253
+ />
254
+ )}
255
+ </div>
256
+ );
257
+ },
258
+ );
259
+
260
+ // ---------------------------------------------------------------------------
261
+ // Inline SVG icons (SDK independence — no lucide dependency)
262
+ // ---------------------------------------------------------------------------
263
+
264
+ function PopOutIcon() {
265
+ return (
266
+ <svg
267
+ width="12"
268
+ height="12"
269
+ viewBox="0 0 12 12"
270
+ fill="none"
271
+ stroke="currentColor"
272
+ strokeWidth="1.3"
273
+ strokeLinecap="round"
274
+ strokeLinejoin="round"
275
+ className="shrink-0"
276
+ aria-hidden="true"
277
+ >
278
+ <path d="M10.5 4.5V1.5H7.5" />
279
+ <path d="M10.5 1.5L6 6" />
280
+ <path d="M8.5 7v3a1 1 0 0 1-1 1h-5a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h3" />
281
+ </svg>
282
+ );
283
+ }
@@ -0,0 +1,158 @@
1
+ "use client";
2
+
3
+ import { memo, useCallback } from "react";
4
+ import type { ApprovalAction } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
5
+ import type { PendingApproval } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/approval_pb";
6
+ import type { WorkflowPendingApproval } from "@stigmer/protos/ai/stigmer/agentic/workflowexecution/v1/api_pb";
7
+ import { cn } from "@stigmer/theme";
8
+ import { ApprovalCard } from "../execution/ApprovalCard.js";
9
+
10
+ /**
11
+ * Submit handler for a workflow-level tool-approval decision, matching
12
+ * `useWorkflowExecutionActions().submitApproval`. The tool-call id is bound per
13
+ * card so the shared {@link ApprovalCard} only needs the card-level
14
+ * `(action, comment)`.
15
+ */
16
+ export type WorkflowApprovalSubmit = (
17
+ toolCallId: string,
18
+ action: ApprovalAction,
19
+ comment?: string,
20
+ ) => Promise<unknown> | void;
21
+
22
+ /** Props for {@link WorkflowApprovalList}. */
23
+ export interface WorkflowApprovalListProps {
24
+ /**
25
+ * The parent workflow's surfaced tool-approval gates
26
+ * (`status.pending_approvals`) — each pairs a child's full
27
+ * `PendingApproval` with the child agent execution to route the decision to.
28
+ */
29
+ readonly pendingApprovals: readonly WorkflowPendingApproval[];
30
+ /** Forwards a decision to the child (see {@link WorkflowApprovalSubmit}). */
31
+ readonly onSubmitApproval: WorkflowApprovalSubmit;
32
+ /**
33
+ * Tool-call ids whose decision is in flight (pass
34
+ * `approvalSubmittingToolCallIds` straight through). Keyed per gate so
35
+ * deciding one never spins another.
36
+ */
37
+ readonly submittingToolCallIds?: ReadonlySet<string>;
38
+ /**
39
+ * Per-gate failures, keyed by `toolCallId` (pass `approvalErrorsByToolCallId`
40
+ * straight through) — surfaced in-card beside the gate that failed.
41
+ */
42
+ readonly approvalErrors?: ReadonlyMap<string, Error>;
43
+ /**
44
+ * Optional deep-link to open the gate's child agent execution in its own
45
+ * view. When provided, each gate renders a "View agent execution"
46
+ * affordance — with parallel children, it names which child a gate belongs
47
+ * to. Routing is the host's responsibility (DD-004).
48
+ */
49
+ readonly onNavigateToAgentExecution?: (agentExecutionId: string) => void;
50
+ /** Additional CSS class names for the root container. */
51
+ readonly className?: string;
52
+ }
53
+
54
+ /**
55
+ * Renders the child agent tool approvals surfaced on a parent
56
+ * WorkflowExecution — the tool-approval sibling of {@link WorkflowFileReviewList},
57
+ * reusing the session's canonical {@link ApprovalCard} so a gate reads
58
+ * identically everywhere it appears (workflow bottom tab, inspector, in-place
59
+ * transcript, agent session): same 4-action decision model (Approve / Skip /
60
+ * Reject / Approve-all-of-class), same preview, same gate provenance.
61
+ *
62
+ * Unlike the file sibling, this list does NOT stream the referenced children:
63
+ * `WorkflowPendingApproval.approval` already carries the child's full
64
+ * projected `PendingApproval` (file-review content is reference-only on the
65
+ * parent and must be dereferenced; approvals are copied whole). Same role,
66
+ * simpler body.
67
+ *
68
+ * Decisions route through the WORKFLOW-level RPC (the supplied
69
+ * `onSubmitApproval`, normally `useWorkflowExecutionActions().submitApproval`)
70
+ * — never the child's own `agentExecution.*` path, whose authorization checks
71
+ * the runner-spawned child rather than the workflow execution the operator
72
+ * owns. Empty `pendingApprovals` renders nothing.
73
+ */
74
+ export function WorkflowApprovalList({
75
+ pendingApprovals,
76
+ onSubmitApproval,
77
+ submittingToolCallIds,
78
+ approvalErrors,
79
+ onNavigateToAgentExecution,
80
+ className,
81
+ }: WorkflowApprovalListProps): React.ReactElement | null {
82
+ if (pendingApprovals.length === 0) return null;
83
+
84
+ return (
85
+ <div className={cn("stgm space-y-3", className)}>
86
+ {pendingApprovals.map((ref) => {
87
+ // A surfaced gate without its approval payload cannot be decided
88
+ // (there is no toolCallId to route) — skip rather than render a
89
+ // dead card.
90
+ if (!ref.approval) return null;
91
+ const toolCallId = ref.approval.toolCallId;
92
+ return (
93
+ <WorkflowApprovalItem
94
+ key={toolCallId || ref.childAgentExecutionId}
95
+ approval={ref.approval}
96
+ childAgentExecutionId={ref.childAgentExecutionId}
97
+ onSubmitApproval={onSubmitApproval}
98
+ isSubmitting={submittingToolCallIds?.has(toolCallId) ?? false}
99
+ error={approvalErrors?.get(toolCallId) ?? null}
100
+ onNavigateToAgentExecution={onNavigateToAgentExecution}
101
+ />
102
+ );
103
+ })}
104
+ </div>
105
+ );
106
+ }
107
+
108
+ interface WorkflowApprovalItemProps {
109
+ readonly approval: PendingApproval;
110
+ readonly childAgentExecutionId: string;
111
+ readonly onSubmitApproval: WorkflowApprovalSubmit;
112
+ readonly isSubmitting: boolean;
113
+ readonly error: Error | null;
114
+ readonly onNavigateToAgentExecution?: (agentExecutionId: string) => void;
115
+ }
116
+
117
+ /**
118
+ * One gate: binds `toolCallId` into the card-level submit signature — the same
119
+ * stabilization `MessageThread`'s internal `ApprovalCardRow` performs — so the
120
+ * memoized {@link ApprovalCard} re-renders only when ITS gate's state moves,
121
+ * not when a sibling gate is decided.
122
+ */
123
+ const WorkflowApprovalItem = memo(function WorkflowApprovalItem({
124
+ approval,
125
+ childAgentExecutionId,
126
+ onSubmitApproval,
127
+ isSubmitting,
128
+ error,
129
+ onNavigateToAgentExecution,
130
+ }: WorkflowApprovalItemProps) {
131
+ const toolCallId = approval.toolCallId;
132
+ const handleSubmit = useCallback(
133
+ (action: ApprovalAction, comment?: string) => {
134
+ onSubmitApproval(toolCallId, action, comment);
135
+ },
136
+ [onSubmitApproval, toolCallId],
137
+ );
138
+
139
+ return (
140
+ <div className="space-y-2">
141
+ {onNavigateToAgentExecution && (
142
+ <button
143
+ type="button"
144
+ onClick={() => onNavigateToAgentExecution(childAgentExecutionId)}
145
+ className="text-xs text-muted-foreground hover:text-foreground underline underline-offset-2"
146
+ >
147
+ View agent execution
148
+ </button>
149
+ )}
150
+ <ApprovalCard
151
+ pendingApproval={approval}
152
+ onSubmit={handleSubmit}
153
+ isSubmitting={isSubmitting}
154
+ error={error}
155
+ />
156
+ </div>
157
+ );
158
+ });