@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
@@ -0,0 +1,73 @@
1
+ import { WorkflowTaskKind } from "@stigmer/protos/ai/stigmer/agentic/workflow/v1/enum_pb";
2
+ import type { JsonValue } from "@bufbuild/protobuf";
3
+ import type { DerivedTaskState } from "../../internal/store/workflow-execution-event-store.js";
4
+ /**
5
+ * Disclosure mode for a task card, mirroring the session's rule — "does the
6
+ * body carry content the one-line row cannot?":
7
+ *
8
+ * - `"preview"` — I/O-bearing kinds: the card keeps an always-visible,
9
+ * bounded body of the task's output (the session's shell/edit/MCP model).
10
+ * - `"summary"` — thin/derived kinds: a compact row with a chevron-gated
11
+ * detail body.
12
+ */
13
+ export type WorkflowTaskDisclosure = "preview" | "summary";
14
+ /** The resolved presentation primitives for one task card. */
15
+ export interface WorkflowTaskPreview {
16
+ /**
17
+ * Bounded one-line preview of what the task did (e.g. `set orderId,
18
+ * total`, `3 errors`, `emitted ticket.classified`). The empty string when
19
+ * there is nothing kind-specific to say — consumers hide the line rather
20
+ * than render filler.
21
+ */
22
+ readonly previewLine: string;
23
+ /** Disclosure mode for the card. Pure function of the task kind. */
24
+ readonly disclosure: WorkflowTaskDisclosure;
25
+ }
26
+ /**
27
+ * Optional per-kind overrides for the preview line and disclosure — the
28
+ * workflow twin of the session's `ToolPresenter` (minus `runGroupable`:
29
+ * workflow tasks are one card per task).
30
+ */
31
+ export interface WorkflowTaskPresenter {
32
+ /**
33
+ * Overrides the kind-specific preview line. Return `null` to fall back to
34
+ * the built-in line for the kind. Status lines (awaiting approval, the
35
+ * failure message, "Skipped") always take precedence and are not
36
+ * overridable — they are correctness surfaces, not wording.
37
+ */
38
+ readonly previewLine?: (state: DerivedTaskState) => string | null;
39
+ /** Overrides the default disclosure mode for the kind. */
40
+ readonly disclosure?: (state: DerivedTaskState) => WorkflowTaskDisclosure;
41
+ }
42
+ /**
43
+ * Registers a custom presenter for a {@link WorkflowTaskKind}, overriding
44
+ * the built-in preview line and/or disclosure. Call once at app startup.
45
+ * This is the extension point for platform builders embedding the workflow
46
+ * execution UI who want product-specific wording without forking the
47
+ * components — the same seam as the session's `registerToolPresenter`.
48
+ *
49
+ * Returns a disposer that unregisters the presenter, restoring the previous
50
+ * one for that kind (or the default). Most apps register once at startup
51
+ * and ignore it; tests and dynamic hosts use it to avoid leaking global
52
+ * state.
53
+ */
54
+ export declare function registerTaskPresenter(kind: WorkflowTaskKind, presenter: WorkflowTaskPresenter): () => void;
55
+ /** Returns the registered presenter for a kind, if any. */
56
+ export declare function getTaskPresenter(kind: WorkflowTaskKind): WorkflowTaskPresenter | undefined;
57
+ /** Default disclosure mode for a task kind. */
58
+ export declare function defaultDisclosureForKind(kind: WorkflowTaskKind): WorkflowTaskDisclosure;
59
+ /**
60
+ * Resolves the presentation primitives for one task card.
61
+ *
62
+ * Precedence for the line: universal status lines first (awaiting approval,
63
+ * the failure's first line, "Skipped") — these are correctness surfaces —
64
+ * then the registered presenter's line, then the built-in per-kind line.
65
+ */
66
+ export declare function resolveTaskPreview(state: DerivedTaskState): WorkflowTaskPreview;
67
+ /**
68
+ * One-line snippet of an arbitrary JSON value: scalars verbatim (strings
69
+ * quoted), containers as a shape summary. Used where a kind's output has
70
+ * no documented structure to name (transform results, raw LLM text).
71
+ */
72
+ export declare function valueSnippet(value: JsonValue): string;
73
+ //# sourceMappingURL=task-presentation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-presentation.d.ts","sourceRoot":"","sources":["../../../src/workflow/thread/task-presentation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wDAAwD,CAAC;AAC1F,OAAO,KAAK,EAAc,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wDAAwD,CAAC;AA+B/F;;;;;;;;GAQG;AACH,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,SAAS,CAAC;AAE3D,8DAA8D;AAC9D,MAAM,WAAW,mBAAmB;IAClC;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,oEAAoE;IACpE,QAAQ,CAAC,UAAU,EAAE,sBAAsB,CAAC;CAC7C;AAED;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,MAAM,GAAG,IAAI,CAAC;IAClE,0DAA0D;IAC1D,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,sBAAsB,CAAC;CAC3E;AAQD;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,gBAAgB,EACtB,SAAS,EAAE,qBAAqB,GAC/B,MAAM,IAAI,CAUZ;AAED,2DAA2D;AAC3D,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,gBAAgB,GACrB,qBAAqB,GAAG,SAAS,CAEnC;AAkCD,+CAA+C;AAC/C,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,gBAAgB,GACrB,sBAAsB,CAExB;AASD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,gBAAgB,GACtB,mBAAmB,CAarB;AAyLD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAwBrD"}
@@ -0,0 +1,331 @@
1
+ import { WorkflowTaskKind } from "@stigmer/protos/ai/stigmer/agentic/workflow/v1/enum_pb";
2
+ import { formatDuration } from "../format-utils.js";
3
+ // ---------------------------------------------------------------------------
4
+ // Registry (the platform-builder extension seam)
5
+ // ---------------------------------------------------------------------------
6
+ const registry = new Map();
7
+ /**
8
+ * Registers a custom presenter for a {@link WorkflowTaskKind}, overriding
9
+ * the built-in preview line and/or disclosure. Call once at app startup.
10
+ * This is the extension point for platform builders embedding the workflow
11
+ * execution UI who want product-specific wording without forking the
12
+ * components — the same seam as the session's `registerToolPresenter`.
13
+ *
14
+ * Returns a disposer that unregisters the presenter, restoring the previous
15
+ * one for that kind (or the default). Most apps register once at startup
16
+ * and ignore it; tests and dynamic hosts use it to avoid leaking global
17
+ * state.
18
+ */
19
+ export function registerTaskPresenter(kind, presenter) {
20
+ const previous = registry.get(kind);
21
+ registry.set(kind, presenter);
22
+ return () => {
23
+ if (previous === undefined) {
24
+ registry.delete(kind);
25
+ }
26
+ else {
27
+ registry.set(kind, previous);
28
+ }
29
+ };
30
+ }
31
+ /** Returns the registered presenter for a kind, if any. */
32
+ export function getTaskPresenter(kind) {
33
+ return registry.get(kind);
34
+ }
35
+ // ---------------------------------------------------------------------------
36
+ // Disclosure defaults
37
+ // ---------------------------------------------------------------------------
38
+ /**
39
+ * Kinds whose output can be the point of the task — their cards keep an
40
+ * always-visible bounded body (the session's "preview" categories). The
41
+ * body renders only when output actually exists (the `showBody` gate), so
42
+ * a kind whose runner writes no output — today's invocation kinds, until
43
+ * the output-envelope follow-up standardizes them (DD-T04-3) — stays a
44
+ * clean one-line row with zero cost. `set_vars` earns its place from live
45
+ * data: the runner writes the seeded variables to task output (T05, R2-5).
46
+ *
47
+ * Only genuinely body-less kinds (control flow, `wait`/`listen`, and the
48
+ * snapshot fallback's `unspecified`) stay compact summary rows.
49
+ */
50
+ const PREVIEW_KINDS = new Set([
51
+ WorkflowTaskKind.transform,
52
+ WorkflowTaskKind.validate,
53
+ WorkflowTaskKind.llm_call,
54
+ WorkflowTaskKind.eval,
55
+ WorkflowTaskKind.emit_event,
56
+ WorkflowTaskKind.notification,
57
+ WorkflowTaskKind.agent_call,
58
+ WorkflowTaskKind.set_vars,
59
+ WorkflowTaskKind.human_input,
60
+ WorkflowTaskKind.http_call,
61
+ WorkflowTaskKind.grpc_call,
62
+ WorkflowTaskKind.activity_call,
63
+ WorkflowTaskKind.run_workflow,
64
+ ]);
65
+ /** Default disclosure mode for a task kind. */
66
+ export function defaultDisclosureForKind(kind) {
67
+ return PREVIEW_KINDS.has(kind) ? "preview" : "summary";
68
+ }
69
+ // ---------------------------------------------------------------------------
70
+ // Resolution
71
+ // ---------------------------------------------------------------------------
72
+ /** Hard cap on the preview line — it is a header suffix, not a body. */
73
+ const PREVIEW_LINE_MAX_CHARS = 80;
74
+ /**
75
+ * Resolves the presentation primitives for one task card.
76
+ *
77
+ * Precedence for the line: universal status lines first (awaiting approval,
78
+ * the failure's first line, "Skipped") — these are correctness surfaces —
79
+ * then the registered presenter's line, then the built-in per-kind line.
80
+ */
81
+ export function resolveTaskPreview(state) {
82
+ const override = registry.get(state.taskKind);
83
+ const disclosure = override?.disclosure?.(state) ?? defaultDisclosureForKind(state.taskKind);
84
+ const statusLine = statusPreviewLine(state);
85
+ if (statusLine !== null) {
86
+ return { previewLine: truncateLine(statusLine), disclosure };
87
+ }
88
+ const line = override?.previewLine?.(state) ?? defaultPreviewLine(state) ?? "";
89
+ return { previewLine: truncateLine(line), disclosure };
90
+ }
91
+ /** Universal status lines that outrank any kind-specific preview. */
92
+ function statusPreviewLine(state) {
93
+ if (state.status === "waiting_approval")
94
+ return "Awaiting approval";
95
+ if (state.status === "failed" && state.error)
96
+ return firstLine(state.error);
97
+ if (state.status === "skipped")
98
+ return "Skipped";
99
+ return null;
100
+ }
101
+ // ---------------------------------------------------------------------------
102
+ // Built-in per-kind lines
103
+ // ---------------------------------------------------------------------------
104
+ function defaultPreviewLine(state) {
105
+ switch (state.taskKind) {
106
+ case WorkflowTaskKind.agent_call:
107
+ return agentCallLine(state);
108
+ case WorkflowTaskKind.set_vars:
109
+ return setVarsLine(state.inputSummary);
110
+ case WorkflowTaskKind.transform:
111
+ return transformLine(state);
112
+ case WorkflowTaskKind.validate:
113
+ return validateLine(state.outputSummary);
114
+ case WorkflowTaskKind.llm_call:
115
+ return llmCallLine(state);
116
+ case WorkflowTaskKind.eval:
117
+ return evalLine(state.outputSummary);
118
+ case WorkflowTaskKind.emit_event:
119
+ return emitEventLine(state);
120
+ case WorkflowTaskKind.notification:
121
+ return notificationLine(state);
122
+ case WorkflowTaskKind.human_input:
123
+ return humanInputLine(state.outputSummary);
124
+ case WorkflowTaskKind.wait:
125
+ return waitLine(state);
126
+ case WorkflowTaskKind.listen:
127
+ return listenLine(state);
128
+ default:
129
+ // Control flow (branch-taken / fork progress need graph topology the
130
+ // thread does not have — deferred), raise_error (the failure
131
+ // precedence already shows the message), the invocation kinds
132
+ // (pending the backend output-envelope follow-up), and the snapshot
133
+ // fallback's `unspecified` all stay status-only.
134
+ return null;
135
+ }
136
+ }
137
+ /**
138
+ * The flagship agent-call line: `slug · running <tool> · N msgs · M tools`.
139
+ * Field-for-field the pre-T04 card line — kept here so the thread has one
140
+ * source of preview semantics.
141
+ */
142
+ function agentCallLine(state) {
143
+ const parts = [];
144
+ if (state.agentSlug)
145
+ parts.push(state.agentSlug);
146
+ if (state.status === "running" && state.currentToolName) {
147
+ parts.push(`running ${state.currentToolName}`);
148
+ }
149
+ if (state.messagesCount > 0 || state.toolCallsCount > 0) {
150
+ parts.push(`${state.messagesCount} msgs · ${state.toolCallsCount} tools`);
151
+ }
152
+ return parts.length > 0 ? parts.join(" · ") : null;
153
+ }
154
+ /** `set orderId, total +2 more` — from the resolved variables map. */
155
+ function setVarsLine(input) {
156
+ if (!input)
157
+ return null;
158
+ // The summary may nest the map under `variables` (the config field) or
159
+ // carry the resolved variables at the top level — accept both.
160
+ const vars = asObject(input["variables"]) ?? input;
161
+ const keys = Object.keys(vars);
162
+ if (keys.length === 0)
163
+ return null;
164
+ const shown = keys.slice(0, 3).join(", ");
165
+ const rest = keys.length - 3;
166
+ return rest > 0 ? `set ${shown} +${rest} more` : `set ${shown}`;
167
+ }
168
+ /** `jq → 42` while settled; the engine alone while running. */
169
+ function transformLine(state) {
170
+ const engine = asString(state.inputSummary?.["engine"])?.toLowerCase() ?? null;
171
+ if (state.outputSummary) {
172
+ const snippet = valueSnippet(state.outputSummary);
173
+ return engine ? `${engine} → ${snippet}` : `→ ${snippet}`;
174
+ }
175
+ return engine;
176
+ }
177
+ /** `valid` / `3 errors` — from the documented `{valid, errors[]}` shape. */
178
+ function validateLine(output) {
179
+ if (!output)
180
+ return null;
181
+ const valid = output["valid"];
182
+ if (valid === true)
183
+ return "valid";
184
+ if (valid === false) {
185
+ const errors = Array.isArray(output["errors"]) ? output["errors"].length : 0;
186
+ return errors > 0 ? `${errors} ${errors === 1 ? "error" : "errors"}` : "invalid";
187
+ }
188
+ return null;
189
+ }
190
+ /** `claude-sonnet · "snippet…"` — model from input, text from output. */
191
+ function llmCallLine(state) {
192
+ const parts = [];
193
+ const model = asString(state.inputSummary?.["model"]);
194
+ if (model)
195
+ parts.push(model);
196
+ if (state.outputSummary)
197
+ parts.push(valueSnippet(state.outputSummary));
198
+ return parts.length > 0 ? parts.join(" · ") : null;
199
+ }
200
+ /** `pass · score 0.82` — from the documented `{pass, score}` shape. */
201
+ function evalLine(output) {
202
+ if (!output)
203
+ return null;
204
+ const pass = output["pass"];
205
+ const score = output["score"];
206
+ if (typeof pass !== "boolean")
207
+ return null;
208
+ const verdict = pass ? "pass" : "fail";
209
+ return typeof score === "number" ? `${verdict} · score ${score}` : verdict;
210
+ }
211
+ /** `emitted ticket.classified` — the CloudEvents `type` is the identity. */
212
+ function emitEventLine(state) {
213
+ const emittedType = asString(state.outputSummary?.["type"]);
214
+ if (emittedType)
215
+ return `emitted ${emittedType}`;
216
+ const configured = asString(asObject(state.inputSummary?.["event"])?.["type"]);
217
+ return configured ? `emitting ${configured}` : null;
218
+ }
219
+ /** `sent via slack` / `delivery failed` — from `{channel, delivered}`. */
220
+ function notificationLine(state) {
221
+ const output = state.outputSummary;
222
+ const channel = asString(output?.["channel"]) ?? asString(state.inputSummary?.["channel"]);
223
+ if (output && output["delivered"] === false)
224
+ return "delivery failed";
225
+ if (output && channel)
226
+ return `sent via ${channel}`;
227
+ return channel;
228
+ }
229
+ /** `approve · by suresh` — the settled decision from the task output. */
230
+ function humanInputLine(output) {
231
+ // The gating state is covered by the universal "Awaiting approval" line;
232
+ // this renders only the settled decision record.
233
+ const outcome = asString(output?.["outcome"]);
234
+ if (!outcome)
235
+ return null;
236
+ const reviewer = asString(output?.["reviewer"]);
237
+ return reviewer ? `${outcome} · by ${reviewer}` : outcome;
238
+ }
239
+ /** `waiting 10s` / `waited 10s` / `until <timestamp>`. */
240
+ function waitLine(state) {
241
+ const input = state.inputSummary;
242
+ if (!input)
243
+ return null;
244
+ const verb = state.status === "running" ? "waiting" : "waited";
245
+ const duration = asObject(input["duration"]);
246
+ if (duration) {
247
+ const label = formatWaitDuration(duration);
248
+ return label ? `${verb} ${label}` : null;
249
+ }
250
+ const until = asString(input["until"]);
251
+ return until ? `${verb} until ${until}` : null;
252
+ }
253
+ /** `waiting for signal` / `signal received` — status-verbed. */
254
+ function listenLine(state) {
255
+ if (state.status === "running")
256
+ return "waiting for signal";
257
+ if (state.status === "completed")
258
+ return "signal received";
259
+ return null;
260
+ }
261
+ // ---------------------------------------------------------------------------
262
+ // Struct-reading helpers (defensive by construction)
263
+ // ---------------------------------------------------------------------------
264
+ function asString(value) {
265
+ return typeof value === "string" && value.length > 0 ? value : null;
266
+ }
267
+ function asObject(value) {
268
+ return value !== null &&
269
+ value !== undefined &&
270
+ typeof value === "object" &&
271
+ !Array.isArray(value)
272
+ ? value
273
+ : null;
274
+ }
275
+ /**
276
+ * One-line snippet of an arbitrary JSON value: scalars verbatim (strings
277
+ * quoted), containers as a shape summary. Used where a kind's output has
278
+ * no documented structure to name (transform results, raw LLM text).
279
+ */
280
+ export function valueSnippet(value) {
281
+ if (value === null)
282
+ return "null";
283
+ if (typeof value === "string")
284
+ return `"${firstLine(value)}"`;
285
+ if (typeof value === "number" || typeof value === "boolean") {
286
+ return String(value);
287
+ }
288
+ if (Array.isArray(value)) {
289
+ return `[${value.length} ${value.length === 1 ? "item" : "items"}]`;
290
+ }
291
+ const keys = Object.keys(value);
292
+ // A single-field wrapper is usually an envelope (`{result: …}`) — unwrap
293
+ // one level so the snippet names the payload, not the wrapper.
294
+ if (keys.length === 1) {
295
+ const inner = value[keys[0]];
296
+ if (inner === null ||
297
+ typeof inner === "string" ||
298
+ typeof inner === "number" ||
299
+ typeof inner === "boolean") {
300
+ return valueSnippet(inner);
301
+ }
302
+ }
303
+ return `{${keys.length} ${keys.length === 1 ? "field" : "fields"}}`;
304
+ }
305
+ /**
306
+ * Formats the WaitTaskConfig `Duration` shape (`{days, hours, minutes,
307
+ * seconds, milliseconds}`) via the shared duration formatter. Unknown or
308
+ * empty shapes yield `null`.
309
+ */
310
+ function formatWaitDuration(duration) {
311
+ const num = (key) => {
312
+ const v = duration[key];
313
+ return typeof v === "number" && Number.isFinite(v) ? v : 0;
314
+ };
315
+ const totalMs = num("days") * 86_400_000 +
316
+ num("hours") * 3_600_000 +
317
+ num("minutes") * 60_000 +
318
+ num("seconds") * 1_000 +
319
+ num("milliseconds");
320
+ return totalMs > 0 ? formatDuration(totalMs) : null;
321
+ }
322
+ function firstLine(text) {
323
+ const nl = text.indexOf("\n");
324
+ return nl === -1 ? text : text.slice(0, nl);
325
+ }
326
+ function truncateLine(line) {
327
+ return line.length > PREVIEW_LINE_MAX_CHARS
328
+ ? `${line.slice(0, PREVIEW_LINE_MAX_CHARS - 1)}\u2026`
329
+ : line;
330
+ }
331
+ //# sourceMappingURL=task-presentation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-presentation.js","sourceRoot":"","sources":["../../../src/workflow/thread/task-presentation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { WorkflowTaskKind } from "@stigmer/protos/ai/stigmer/agentic/workflow/v1/enum_pb";
2
+ /**
3
+ * Presentation variant for a task card in the workflow task thread.
4
+ *
5
+ * Deliberately NOT a new task-kind classification (D-T02-3): variants are a
6
+ * thin presentation projection of the canonical categories from
7
+ * `kind-metadata.ts` (`categorizeKind` — the single source of truth that
8
+ * already consolidated three drifted client-side classifications), plus one
9
+ * kind-level special case for the flagship `agent_call` card.
10
+ *
11
+ * - `agent-call` — the flagship: live agent slug, current tool, message and
12
+ * tool-call counts, transcript expansion (D-T02-2).
13
+ * - `control` — control-flow tasks (switch/fork/for-each/try-catch/wait).
14
+ * - `gate` — governance tasks (human_input); the stop-sign of the thread.
15
+ * - `event` — signal/timing tasks (listen/emit/notification/raise-error).
16
+ * - `action` — everything else (invocations, data transforms, LLM calls);
17
+ * also the fallback for `unspecified` kinds, which the snapshot-derived
18
+ * fallback task map produces when the event log is empty.
19
+ */
20
+ export type WorkflowThreadCardVariant = "agent-call" | "control" | "gate" | "event" | "action";
21
+ /**
22
+ * Resolves the thread card variant for a task kind.
23
+ *
24
+ * `agent_call` is the one kind-level special case (the flagship card);
25
+ * every other kind flows through the canonical category classification.
26
+ */
27
+ export declare function threadCardVariant(kind: WorkflowTaskKind): WorkflowThreadCardVariant;
28
+ //# sourceMappingURL=thread-presentation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thread-presentation.d.ts","sourceRoot":"","sources":["../../../src/workflow/thread/thread-presentation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wDAAwD,CAAC;AAK1F;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,yBAAyB,GACjC,YAAY,GACZ,SAAS,GACT,MAAM,GACN,OAAO,GACP,QAAQ,CAAC;AAmBb;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,gBAAgB,GACrB,yBAAyB,CAG3B"}
@@ -0,0 +1,28 @@
1
+ import { WorkflowTaskKind } from "@stigmer/protos/ai/stigmer/agentic/workflow/v1/enum_pb";
2
+ import { categorizeKind } from "../kind-metadata.js";
3
+ import { taskKindToString } from "../workflow-graph-conversions.js";
4
+ /**
5
+ * Canonical category → card variant. Data, not branches — the same table
6
+ * pattern the graph's visual registry and the session's tool taxonomy use.
7
+ */
8
+ const VARIANT_FOR_CATEGORY = new Map([
9
+ ["ai", "action"], // agent_call is special-cased below; llm_call/eval read as actions
10
+ ["control_flow", "control"],
11
+ ["invocation", "action"],
12
+ ["data", "action"],
13
+ ["governance", "gate"],
14
+ ["event", "event"],
15
+ ["unspecified", "action"],
16
+ ]);
17
+ /**
18
+ * Resolves the thread card variant for a task kind.
19
+ *
20
+ * `agent_call` is the one kind-level special case (the flagship card);
21
+ * every other kind flows through the canonical category classification.
22
+ */
23
+ export function threadCardVariant(kind) {
24
+ if (kind === WorkflowTaskKind.agent_call)
25
+ return "agent-call";
26
+ return VARIANT_FOR_CATEGORY.get(categorizeKind(taskKindToString(kind))) ?? "action";
27
+ }
28
+ //# sourceMappingURL=thread-presentation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thread-presentation.js","sourceRoot":"","sources":["../../../src/workflow/thread/thread-presentation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wDAAwD,CAAC;AAE1F,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AA2BpE;;;GAGG;AACH,MAAM,oBAAoB,GAGtB,IAAI,GAAG,CAAC;IACV,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,mEAAmE;IACrF,CAAC,cAAc,EAAE,SAAS,CAAC;IAC3B,CAAC,YAAY,EAAE,QAAQ,CAAC;IACxB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAClB,CAAC,YAAY,EAAE,MAAM,CAAC;IACtB,CAAC,OAAO,EAAE,OAAO,CAAC;IAClB,CAAC,aAAa,EAAE,QAAQ,CAAC;CAC1B,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAAsB;IAEtB,IAAI,IAAI,KAAK,gBAAgB,CAAC,UAAU;QAAE,OAAO,YAAY,CAAC;IAC9D,OAAO,oBAAoB,CAAC,GAAG,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC;AACtF,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { DerivedTaskState } from "../../internal/store/workflow-execution-event-store.js";
2
+ import { type WorkflowThreadProjection } from "./project-thread-items.js";
3
+ /**
4
+ * Behavior hook binding {@link projectThreadItems} to a render loop with
5
+ * structural sharing: items whose fields did not change keep their object
6
+ * identity across event appends, so memoized card rows bail (DD-010).
7
+ *
8
+ * The projection is cheap (one pass over the task map), so it recomputes
9
+ * per render of the (memoized) thread organism rather than adding a
10
+ * `useMemo` whose dependency — the store's `taskStates` — changes identity
11
+ * on every event append anyway. The ref carries only the previous items
12
+ * for identity reuse; it holds no state of its own (single source of truth
13
+ * stays the store).
14
+ */
15
+ export declare function useWorkflowThreadItems(taskStates: ReadonlyMap<string, DerivedTaskState>, totalTasks: number): WorkflowThreadProjection;
16
+ //# sourceMappingURL=useWorkflowThreadItems.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWorkflowThreadItems.d.ts","sourceRoot":"","sources":["../../../src/workflow/thread/useWorkflowThreadItems.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wDAAwD,CAAC;AAC/F,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,2BAA2B,CAAC;AAEnC;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,EACjD,UAAU,EAAE,MAAM,GACjB,wBAAwB,CAS1B"}
@@ -0,0 +1,22 @@
1
+ "use client";
2
+ import { useRef } from "react";
3
+ import { projectThreadItems, } from "./project-thread-items.js";
4
+ /**
5
+ * Behavior hook binding {@link projectThreadItems} to a render loop with
6
+ * structural sharing: items whose fields did not change keep their object
7
+ * identity across event appends, so memoized card rows bail (DD-010).
8
+ *
9
+ * The projection is cheap (one pass over the task map), so it recomputes
10
+ * per render of the (memoized) thread organism rather than adding a
11
+ * `useMemo` whose dependency — the store's `taskStates` — changes identity
12
+ * on every event append anyway. The ref carries only the previous items
13
+ * for identity reuse; it holds no state of its own (single source of truth
14
+ * stays the store).
15
+ */
16
+ export function useWorkflowThreadItems(taskStates, totalTasks) {
17
+ const previousItemsRef = useRef([]);
18
+ const projection = projectThreadItems(taskStates, totalTasks, previousItemsRef.current);
19
+ previousItemsRef.current = projection.items;
20
+ return projection;
21
+ }
22
+ //# sourceMappingURL=useWorkflowThreadItems.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWorkflowThreadItems.js","sourceRoot":"","sources":["../../../src/workflow/thread/useWorkflowThreadItems.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAE/B,OAAO,EACL,kBAAkB,GAEnB,MAAM,2BAA2B,CAAC;AAEnC;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,sBAAsB,CACpC,UAAiD,EACjD,UAAkB;IAElB,MAAM,gBAAgB,GAAG,MAAM,CAAoC,EAAE,CAAC,CAAC;IACvE,MAAM,UAAU,GAAG,kBAAkB,CACnC,UAAU,EACV,UAAU,EACV,gBAAgB,CAAC,OAAO,CACzB,CAAC;IACF,gBAAgB,CAAC,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC;IAC5C,OAAO,UAAU,CAAC;AACpB,CAAC"}
@@ -0,0 +1,38 @@
1
+ import type { DerivedTaskState } from "../internal/store/workflow-execution-event-store.js";
2
+ /**
3
+ * Tasks that crossed the `waiting_approval` boundary in one commit of the
4
+ * derived task-state map, in the map's (first-started) order.
5
+ */
6
+ export interface ApprovalBoundaryCrossing {
7
+ /** Task names that transitioned INTO `waiting_approval` (a gate opened). */
8
+ readonly entered: readonly string[];
9
+ /** Task names that transitioned OUT of `waiting_approval` (a gate resolved). */
10
+ readonly exited: readonly string[];
11
+ }
12
+ /**
13
+ * Behavior hook that watches the live derived task-state map and reports
14
+ * when any task crosses the `waiting_approval` boundary — the client-side
15
+ * mirror of the stream's `approval_requested` / `approval_resolved` events.
16
+ *
17
+ * Why this exists: the execution SNAPSHOT (`status.pending_approvals` /
18
+ * `status.pending_file_reviews`) is fetched once and carries the gate
19
+ * payloads, while the event STREAM is live but carries only task status.
20
+ * A boundary crossing is precisely the moment the snapshot goes stale, so
21
+ * consumers refetch it then — derived-over-stored: the stream is the
22
+ * signal, the snapshot stays the single source for gate payloads. The
23
+ * `WorkflowExecutionViewer` additionally auto-selects a newly gated task so
24
+ * the decision surface (the panel's Inspect Approval tab) is never hidden
25
+ * while the run is blocked.
26
+ *
27
+ * Same diffing shape as {@link useExecutionAnnouncements} (prev-map ref,
28
+ * diff on each map commit). A task first observed already in
29
+ * `waiting_approval` counts as entered — with rAF-coalesced commits the
30
+ * running→waiting transition can collapse into the task's first appearance.
31
+ *
32
+ * `enabled` gates the CALLBACK, not the tracking: state is tracked even
33
+ * while disabled so enabling later never replays stale crossings. Keep it
34
+ * `false` for terminal executions — their event-history replay crosses the
35
+ * boundary for long-decided gates.
36
+ */
37
+ export declare function useApprovalBoundary(taskStates: ReadonlyMap<string, DerivedTaskState>, enabled: boolean, onCrossing: (crossing: ApprovalBoundaryCrossing) => void): void;
38
+ //# sourceMappingURL=useApprovalBoundary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useApprovalBoundary.d.ts","sourceRoot":"","sources":["../../src/workflow/useApprovalBoundary.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qDAAqD,CAAC;AAE5F;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,4EAA4E;IAC5E,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,gFAAgF;IAChF,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,EACjD,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,CAAC,QAAQ,EAAE,wBAAwB,KAAK,IAAI,GACvD,IAAI,CA0BN"}
@@ -0,0 +1,55 @@
1
+ "use client";
2
+ import { useEffect, useRef } from "react";
3
+ /**
4
+ * Behavior hook that watches the live derived task-state map and reports
5
+ * when any task crosses the `waiting_approval` boundary — the client-side
6
+ * mirror of the stream's `approval_requested` / `approval_resolved` events.
7
+ *
8
+ * Why this exists: the execution SNAPSHOT (`status.pending_approvals` /
9
+ * `status.pending_file_reviews`) is fetched once and carries the gate
10
+ * payloads, while the event STREAM is live but carries only task status.
11
+ * A boundary crossing is precisely the moment the snapshot goes stale, so
12
+ * consumers refetch it then — derived-over-stored: the stream is the
13
+ * signal, the snapshot stays the single source for gate payloads. The
14
+ * `WorkflowExecutionViewer` additionally auto-selects a newly gated task so
15
+ * the decision surface (the panel's Inspect Approval tab) is never hidden
16
+ * while the run is blocked.
17
+ *
18
+ * Same diffing shape as {@link useExecutionAnnouncements} (prev-map ref,
19
+ * diff on each map commit). A task first observed already in
20
+ * `waiting_approval` counts as entered — with rAF-coalesced commits the
21
+ * running→waiting transition can collapse into the task's first appearance.
22
+ *
23
+ * `enabled` gates the CALLBACK, not the tracking: state is tracked even
24
+ * while disabled so enabling later never replays stale crossings. Keep it
25
+ * `false` for terminal executions — their event-history replay crosses the
26
+ * boundary for long-decided gates.
27
+ */
28
+ export function useApprovalBoundary(taskStates, enabled, onCrossing) {
29
+ const prevStatesRef = useRef(new Map());
30
+ // Render-synced ref so the diff effect never re-runs (and never fires
31
+ // spuriously) because a consumer passed a fresh callback identity.
32
+ const onCrossingRef = useRef(onCrossing);
33
+ onCrossingRef.current = onCrossing;
34
+ useEffect(() => {
35
+ const prev = prevStatesRef.current;
36
+ prevStatesRef.current = taskStates;
37
+ if (!enabled)
38
+ return;
39
+ const entered = [];
40
+ const exited = [];
41
+ for (const [name, state] of taskStates) {
42
+ const prevStatus = prev.get(name)?.status;
43
+ if (prevStatus === state.status)
44
+ continue;
45
+ if (state.status === "waiting_approval")
46
+ entered.push(name);
47
+ else if (prevStatus === "waiting_approval")
48
+ exited.push(name);
49
+ }
50
+ if (entered.length > 0 || exited.length > 0) {
51
+ onCrossingRef.current({ entered, exited });
52
+ }
53
+ }, [taskStates, enabled]);
54
+ }
55
+ //# sourceMappingURL=useApprovalBoundary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useApprovalBoundary.js","sourceRoot":"","sources":["../../src/workflow/useApprovalBoundary.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAc1C;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,mBAAmB,CACjC,UAAiD,EACjD,OAAgB,EAChB,UAAwD;IAExD,MAAM,aAAa,GAAG,MAAM,CAAwC,IAAI,GAAG,EAAE,CAAC,CAAC;IAC/E,sEAAsE;IACtE,mEAAmE;IACnE,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IACzC,aAAa,CAAC,OAAO,GAAG,UAAU,CAAC;IAEnC,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC;QACnC,aAAa,CAAC,OAAO,GAAG,UAAU,CAAC;QACnC,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,UAAU,EAAE,CAAC;YACvC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;YAC1C,IAAI,UAAU,KAAK,KAAK,CAAC,MAAM;gBAAE,SAAS;YAC1C,IAAI,KAAK,CAAC,MAAM,KAAK,kBAAkB;gBAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACvD,IAAI,UAAU,KAAK,kBAAkB;gBAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChE,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,aAAa,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;AAC5B,CAAC"}