@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 +1 @@
1
- {"version":3,"file":"AgentInstanceList.d.ts","sourceRoot":"","sources":["../../src/agent-instance/AgentInstanceList.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4DAA4D,CAAC;AAYhG,2CAA2C;AAC3C,MAAM,WAAW,sBAAsB;IACrC,+CAA+C;IAC/C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,gGAAgG;IAChG,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC;;;;OAIG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,2DAA2D;IAC3D,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IACpC,kEAAkE;IAClE,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;IAC7D,kEAAkE;IAClE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;IACjE,2DAA2D;IAC3D,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;IAC3D;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,kCAAkC;IAClC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,OAAO,EACP,iBAAiB,EACjB,GAAG,EACH,SAAS,EACT,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,aAAa,EACb,UAAU,EACV,SAAS,GACV,EAAE,sBAAsB,2CA6FxB"}
1
+ {"version":3,"file":"AgentInstanceList.d.ts","sourceRoot":"","sources":["../../src/agent-instance/AgentInstanceList.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4DAA4D,CAAC;AAahG,2CAA2C;AAC3C,MAAM,WAAW,sBAAsB;IACrC,+CAA+C;IAC/C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,gGAAgG;IAChG,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC;;;;OAIG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,2DAA2D;IAC3D,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IACpC,kEAAkE;IAClE,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;IAC7D,kEAAkE;IAClE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;IACjE,2DAA2D;IAC3D,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;IAC3D;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,kCAAkC;IAClC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,OAAO,EACP,iBAAiB,EACjB,GAAG,EACH,SAAS,EACT,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,aAAa,EACb,UAAU,EACV,SAAS,GACV,EAAE,sBAAsB,2CAgGxB"}
@@ -1,13 +1,15 @@
1
1
  "use client";
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { useCallback, useEffect, useMemo, useRef } from "react";
4
+ import { MoreHorizontal, Play, Trash2 } from "lucide-react";
4
5
  import { cn } from "@stigmer/theme";
5
6
  import { ApiResourceVisibility } from "@stigmer/protos/ai/stigmer/commons/apiresource/enum_pb";
6
7
  import { useAgentInstances } from "./useAgentInstances.js";
8
+ import { ActionMenu } from "../action-menu/index.js";
7
9
  import { Button } from "../button/Button.js";
8
10
  import { useEnvironmentList } from "../environment/useEnvironmentList.js";
9
11
  import { ResourceVisibilityControl } from "../library/ResourceVisibilityControl.js";
10
- import { PermissionGate } from "../iam-policy/PermissionGate.js";
12
+ import { useCheckPermission } from "../iam-policy/useCheckPermission.js";
11
13
  import { AgentInstanceEmptyState } from "./AgentInstanceEmptyState.js";
12
14
  /** Label marking a user's auto-managed personal instance. */
13
15
  const PERSONAL_LABEL = "stigmer.ai/personal";
@@ -50,14 +52,20 @@ export function AgentInstanceList({ agentId, defaultInstanceId, org, viewerOrg,
50
52
  if (userInstances.length === 0) {
51
53
  return _jsx(AgentInstanceEmptyState, { onCreateClick: onCreateClick, className: className });
52
54
  }
53
- return (_jsxs("div", { className: cn("space-y-3", className), children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsxs("h3", { className: "text-sm font-medium text-foreground", children: [userInstances.length, " ", userInstances.length === 1 ? "instance" : "instances"] }), onCreateClick && (_jsx(Button, { variant: "outline", size: "xs", icon: _jsx(PlusIcon, {}), onClick: onCreateClick, children: "Create instance" }))] }), _jsx("div", { className: "overflow-hidden rounded-lg border border-border", children: _jsxs("table", { className: "w-full text-sm", children: [_jsx("thead", { children: _jsxs("tr", { className: "border-b border-border bg-muted-subtle", children: [_jsx("th", { className: "px-4 py-2 text-left font-medium text-muted-foreground", children: "Name" }), _jsx("th", { className: "px-4 py-2 text-left font-medium text-muted-foreground", children: "Environments" }), _jsx("th", { className: "px-4 py-2 text-left font-medium text-muted-foreground", children: "Visibility" }), _jsx("th", { className: "px-4 py-2 text-right font-medium text-muted-foreground", children: "Actions" })] }) }), _jsx("tbody", { className: "divide-y divide-border", children: userInstances.map((inst) => (_jsx(InstanceRow, { instance: inst, resolveEnvName: resolveEnvName, onRowClick: onInstanceClick, onStartSessionClick: onStartSessionClick, onDeleteClick: onDeleteClick, refetch: refetch }, inst.metadata?.id))) })] }) })] }));
55
+ return (_jsxs("div", { className: cn("space-y-3", className), children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsxs("h3", { className: "text-sm font-medium text-foreground", children: [userInstances.length, " ", userInstances.length === 1 ? "instance" : "instances"] }), onCreateClick && (_jsx(Button, { variant: "outline", size: "xs", icon: _jsx(PlusIcon, {}), onClick: onCreateClick, children: "Create instance" }))] }), _jsx("div", { className: "overflow-hidden rounded-lg border border-border", children: _jsxs("table", { className: "w-full table-fixed text-sm", children: [_jsx("thead", { children: _jsxs("tr", { className: "border-b border-border bg-muted-subtle", children: [_jsx("th", { className: "px-4 py-2 text-left font-medium text-muted-foreground", children: "Name" }), _jsx("th", { className: "px-4 py-2 text-left font-medium text-muted-foreground", children: "Environments" }), _jsx("th", { className: "w-36 px-4 py-2 text-left font-medium text-muted-foreground", children: "Visibility" }), _jsx("th", { className: "w-16 px-4 py-2 text-right font-medium text-muted-foreground", children: "Actions" })] }) }), _jsx("tbody", { className: "divide-y divide-border", children: userInstances.map((inst) => (_jsx(InstanceRow, { instance: inst, resolveEnvName: resolveEnvName, onRowClick: onInstanceClick, onStartSessionClick: onStartSessionClick, onDeleteClick: onDeleteClick, refetch: refetch }, inst.metadata?.id))) })] }) })] }));
54
56
  }
55
57
  function InstanceRow({ instance, resolveEnvName, onRowClick, onStartSessionClick, onDeleteClick, refetch, }) {
56
58
  const meta = instance.metadata;
57
59
  const id = meta?.id ?? "";
58
60
  const isPersonal = meta?.labels?.[PERSONAL_LABEL] === "true";
59
61
  const envRefs = instance.spec?.environmentRefs ?? [];
60
- return (_jsxs("tr", { className: cn("transition-colors", onRowClick && "cursor-pointer hover:bg-muted/30"), onClick: () => onRowClick?.(instance), children: [_jsx("td", { className: "px-4 py-2.5", children: _jsxs("div", { children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "font-medium text-foreground", children: meta?.name || meta?.slug || "\u2014" }), isPersonal && (_jsx("span", { className: cn("inline-flex items-center rounded-md px-1.5 py-0.5", "text-[0.6rem] font-medium uppercase tracking-wide", "bg-muted text-muted-foreground border border-border"), children: "Personal" }))] }), instance.spec?.description && (_jsx("p", { className: "text-[0.65rem] text-muted-foreground truncate max-w-48", children: instance.spec.description }))] }) }), _jsx("td", { className: "px-4 py-2.5", children: envRefs.length === 0 ? (_jsx("span", { className: "text-xs text-muted-foreground", children: "None" })) : (_jsx("div", { className: "flex flex-wrap gap-1", children: envRefs.map((ref, idx) => (_jsx("span", { className: cn("inline-flex items-center rounded-md px-1.5 py-0.5", "text-[0.65rem] font-medium", "bg-muted text-muted-foreground", "border border-border"), children: resolveEnvName(ref.slug) }, `${ref.slug}-${idx}`))) })) }), _jsx("td", { className: "px-4 py-2.5", onClick: (e) => e.stopPropagation(), children: id ? (_jsx(ResourceVisibilityControl, { kind: "agentInstance", resourceId: id, visibility: meta?.visibility ?? ApiResourceVisibility.visibility_private, onChanged: refetch })) : (_jsx("span", { className: "text-xs text-muted-foreground", children: "\u2014" })) }), _jsx("td", { className: "px-4 py-2.5 text-right", onClick: (e) => e.stopPropagation(), children: _jsxs("div", { className: "flex items-center justify-end gap-1", children: [onStartSessionClick && (_jsx("button", { type: "button", onClick: () => onStartSessionClick(instance), className: cn("rounded px-2 py-1 text-xs font-medium", "text-foreground hover:bg-accent-hover", "focus:outline-none focus:ring-1 focus:ring-ring"), children: "Start session" })), onDeleteClick && (_jsx(PermissionGate, { resource: { kind: "agent_instance", id }, relation: "can_delete", children: _jsx("button", { type: "button", onClick: () => onDeleteClick(instance), className: cn("rounded px-2 py-1 text-xs font-medium", "text-destructive hover:bg-destructive/10", "focus:outline-none focus:ring-1 focus:ring-ring"), children: "Delete" }) }))] }) })] }));
62
+ // Delete is the only permission-gated row action (Start session is offered
63
+ // whenever the host wires it). Resolved here so the kebab is hidden when it
64
+ // would hold no items — never an empty overflow menu.
65
+ const { allowed: canDelete } = useCheckPermission({ kind: "agent_instance", id }, "can_delete");
66
+ const showStartSession = !!onStartSessionClick;
67
+ const showDelete = !!onDeleteClick && canDelete;
68
+ return (_jsxs("tr", { className: cn("transition-colors", onRowClick && "cursor-pointer hover:bg-accent-hover"), onClick: () => onRowClick?.(instance), children: [_jsx("td", { className: "px-4 py-2.5", children: _jsxs("div", { className: "min-w-0", children: [_jsxs("div", { className: "flex min-w-0 items-center gap-2", children: [_jsx("span", { className: "truncate font-medium text-foreground", title: meta?.name || meta?.slug || undefined, children: meta?.name || meta?.slug || "\u2014" }), isPersonal && (_jsx("span", { className: cn("inline-flex shrink-0 items-center rounded-md px-1.5 py-0.5", "text-[0.6rem] font-medium uppercase tracking-wide", "bg-muted text-muted-foreground border border-border"), children: "Personal" }))] }), instance.spec?.description && (_jsx("p", { className: "text-[0.65rem] text-muted-foreground truncate", children: instance.spec.description }))] }) }), _jsx("td", { className: "px-4 py-2.5", children: envRefs.length === 0 ? (_jsx("span", { className: "text-xs text-muted-foreground", children: "None" })) : (_jsx("div", { className: "flex flex-wrap gap-1", children: envRefs.map((ref, idx) => (_jsx("span", { className: cn("inline-flex items-center rounded-md px-1.5 py-0.5", "text-[0.65rem] font-medium", "bg-muted text-muted-foreground", "border border-border"), children: resolveEnvName(ref.slug) }, `${ref.slug}-${idx}`))) })) }), _jsx("td", { className: "px-4 py-2.5", onClick: (e) => e.stopPropagation(), children: id ? (_jsx(ResourceVisibilityControl, { kind: "agentInstance", resourceId: id, visibility: meta?.visibility ?? ApiResourceVisibility.visibility_private, onChanged: refetch })) : (_jsx("span", { className: "text-xs text-muted-foreground", children: "\u2014" })) }), _jsx("td", { className: "px-4 py-2.5 text-right", onClick: (e) => e.stopPropagation(), children: (showStartSession || showDelete) && (_jsxs(ActionMenu, { children: [_jsx(ActionMenu.Trigger, { className: "ml-auto", "aria-label": `Actions for ${meta?.name || meta?.slug}`, children: _jsx(MoreHorizontal, { className: "size-4" }) }), _jsxs(ActionMenu.Content, { children: [showStartSession && (_jsx(ActionMenu.Item, { icon: _jsx(Play, {}), onSelect: () => onStartSessionClick?.(instance), children: "Start session" })), showStartSession && showDelete && _jsx(ActionMenu.Separator, {}), showDelete && (_jsx(ActionMenu.Item, { icon: _jsx(Trash2, {}), variant: "destructive", onSelect: () => onDeleteClick?.(instance), children: "Delete" }))] })] })) })] }));
61
69
  }
62
70
  function LoadingSkeleton() {
63
71
  return (_jsx("div", { className: "space-y-2 py-4", children: [1, 2, 3].map((i) => (_jsx("div", { className: "h-12 animate-pulse rounded-md bg-muted-faint" }, i))) }));
@@ -1 +1 @@
1
- {"version":3,"file":"AgentInstanceList.js","sourceRoot":"","sources":["../../src/agent-instance/AgentInstanceList.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AgentInstanceList.js","sourceRoot":"","sources":["../../src/agent-instance/AgentInstanceList.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ import type { Agent } from "@stigmer/protos/ai/stigmer/agentic/agent/v1/api_pb";
2
+ import type { AgentChannel } from "@stigmer/protos/ai/stigmer/agentic/agentchannel/v1/api_pb";
3
+ /** Props for {@link AgentChannelsPanel}. */
4
+ export interface AgentChannelsPanelProps {
5
+ /** The agent whose channels are managed. */
6
+ readonly agent: Agent;
7
+ /**
8
+ * When provided, connect actions for redirect-style providers (Slack)
9
+ * delegate to the host instead of running the in-app popup flow. For
10
+ * hosts whose webview cannot open popups (the desktop app): the
11
+ * delegate typically opens the web console in the system browser.
12
+ * Called with the channel being (re)connected, or `null` for a
13
+ * brand-new connection. Direct-install providers (WhatsApp) always
14
+ * connect in-app — their flow is a plain API call with nothing for a
15
+ * popup to do — so they never invoke the delegate.
16
+ */
17
+ readonly onConnectExternal?: (channel: AgentChannel | null) => void;
18
+ /**
19
+ * Where the host manages Channel Apps (the console passes
20
+ * `/settings/channel-apps`). Threaded to the connect dialog's
21
+ * "Register a channel app" affordance; absent, the affordance
22
+ * degrades to plain guidance text.
23
+ */
24
+ readonly channelAppsHref?: string;
25
+ /**
26
+ * Maps a session id to the host's session route (the console passes
27
+ * `` (id) => `/sessions/${id}` ``). Threaded to each card's
28
+ * Conversations dialog so rows link to the read-only transcript;
29
+ * absent, the rows render without links (DD-004 — the SDK never
30
+ * assumes a routing scheme).
31
+ */
32
+ readonly sessionHref?: (sessionId: string) => string;
33
+ /** Additional CSS class names. */
34
+ readonly className?: string;
35
+ }
36
+ /**
37
+ * Management surface for an agent's {@link AgentChannel} connections —
38
+ * rendered in the agent detail view's Channels tab.
39
+ *
40
+ * One card per channel showing the two serving axes side by side: the
41
+ * observed provider install state (`pending_install` / `installed` /
42
+ * `revoked`) and the owner's serving switch (`spec.enabled`). Traffic
43
+ * flows only when installed AND enabled. Channels always live in the
44
+ * agent's own org (no cross-org arm, unlike shares), so no org selector
45
+ * is needed.
46
+ *
47
+ * Connecting runs the provider's own dialog — {@link ConnectSlackDialog}
48
+ * (OAuth popup) or {@link ConnectWhatsAppDialog} (direct install). On a
49
+ * `local` (OSS) backend, channel CRUD works but installs are cloud-only —
50
+ * connect affordances are replaced by a cloud-feature notice, matching
51
+ * the server's FAILED_PRECONDITION posture.
52
+ *
53
+ * Self-contained: owns its dialog, its confirmation prompts, and its
54
+ * refetch-after-mutation — hosts render it with just the agent (plus the
55
+ * external-connect delegate where popups are unavailable).
56
+ *
57
+ * This is an SDK component (DD-001) — embeddable by platform builders.
58
+ */
59
+ export declare function AgentChannelsPanel({ agent, onConnectExternal, channelAppsHref, sessionHref, className, }: AgentChannelsPanelProps): import("react/jsx-runtime").JSX.Element;
60
+ //# sourceMappingURL=AgentChannelsPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentChannelsPanel.d.ts","sourceRoot":"","sources":["../../src/channel/AgentChannelsPanel.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oDAAoD,CAAC;AAChF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2DAA2D,CAAC;AAgC9F,4CAA4C;AAC5C,MAAM,WAAW,uBAAuB;IACtC,4CAA4C;IAC5C,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB;;;;;;;;;OASG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,KAAK,IAAI,CAAC;IACpE;;;;;OAKG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC;;;;;;OAMG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;IACrD,kCAAkC;IAClC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,KAAK,EACL,iBAAiB,EACjB,eAAe,EACf,WAAW,EACX,SAAS,GACV,EAAE,uBAAuB,2CA2PzB"}
@@ -0,0 +1,255 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import { useCallback, useState } from "react";
4
+ import { KeyRound, MessageSquare, MoreHorizontal, Trash2 } from "lucide-react";
5
+ import { cn } from "@stigmer/theme";
6
+ import { getUserMessage } from "@stigmer/sdk";
7
+ import { AgentChannelInstallState } from "@stigmer/protos/ai/stigmer/agentic/agentchannel/v1/status_pb";
8
+ import { toast } from "../feedback/toast.js";
9
+ import { ActionMenu } from "../action-menu/index.js";
10
+ import { Button } from "../button/Button.js";
11
+ import { EmptyState } from "../empty-state/EmptyState.js";
12
+ import { Switch } from "../switch/Switch.js";
13
+ import { useChannelAppList } from "../channel-app/useChannelAppList.js";
14
+ import { useCheckPermission } from "../iam-policy/useCheckPermission.js";
15
+ import { ConfirmDialog } from "../resource-detail/ConfirmDialog.js";
16
+ import { useConfirmAction } from "../resource-detail/useConfirmAction.js";
17
+ import { useDeploymentMode } from "../deployment-mode.js";
18
+ import { CloudFeatureNotice } from "../internal/CloudFeatureNotice.js";
19
+ import { ChannelConversationsDialog } from "./ChannelConversationsDialog.js";
20
+ import { ChannelCredentialsDialog } from "./ChannelCredentialsDialog.js";
21
+ import { ConnectSlackDialog } from "./ConnectSlackDialog.js";
22
+ import { ConnectWhatsAppDialog } from "./ConnectWhatsAppDialog.js";
23
+ import { CHANNEL_PROVIDERS, channelProviderOf, } from "./providers.js";
24
+ import { channelPresentationOf, DEFAULT_CHANNEL_PRESENTATION, } from "./providerPresentation.js";
25
+ import { useAgentChannelList } from "./useAgentChannelList.js";
26
+ import { useChannelToolReadiness } from "./useChannelToolReadiness.js";
27
+ import { useDeleteAgentChannel } from "./useDeleteAgentChannel.js";
28
+ import { agentChannelToInput, useSaveAgentChannel } from "./useSaveAgentChannel.js";
29
+ /**
30
+ * Management surface for an agent's {@link AgentChannel} connections —
31
+ * rendered in the agent detail view's Channels tab.
32
+ *
33
+ * One card per channel showing the two serving axes side by side: the
34
+ * observed provider install state (`pending_install` / `installed` /
35
+ * `revoked`) and the owner's serving switch (`spec.enabled`). Traffic
36
+ * flows only when installed AND enabled. Channels always live in the
37
+ * agent's own org (no cross-org arm, unlike shares), so no org selector
38
+ * is needed.
39
+ *
40
+ * Connecting runs the provider's own dialog — {@link ConnectSlackDialog}
41
+ * (OAuth popup) or {@link ConnectWhatsAppDialog} (direct install). On a
42
+ * `local` (OSS) backend, channel CRUD works but installs are cloud-only —
43
+ * connect affordances are replaced by a cloud-feature notice, matching
44
+ * the server's FAILED_PRECONDITION posture.
45
+ *
46
+ * Self-contained: owns its dialog, its confirmation prompts, and its
47
+ * refetch-after-mutation — hosts render it with just the agent (plus the
48
+ * external-connect delegate where popups are unavailable).
49
+ *
50
+ * This is an SDK component (DD-001) — embeddable by platform builders.
51
+ */
52
+ export function AgentChannelsPanel({ agent, onConnectExternal, channelAppsHref, sessionHref, className, }) {
53
+ const agentId = agent.metadata?.id ?? "";
54
+ // Channels are same-org by invariant; scope the list to the agent's org.
55
+ const { channels, isLoading, error, refetch } = useAgentChannelList(agentId, agent.metadata?.org ?? "");
56
+ // One fetch for all cards: a channel's spec.app_ref carries only the
57
+ // slug, but the app's name is the bot name members @mention — the
58
+ // label worth showing.
59
+ const { channelApps } = useChannelAppList(agent.metadata?.org || null);
60
+ // Mirrors the server's create bar (agent can_edit — the permission the
61
+ // create/apply handlers enforce on the referenced agent) so the connect
62
+ // affordance never appears to a viewer whose create would be refused.
63
+ const { allowed: canCreate } = useCheckPermission(agentId ? { kind: "agent", id: agentId } : null, "can_edit");
64
+ // Installs are cloud-only; CRUD is not. In local mode the cards render
65
+ // and toggles work, but connect affordances give way to the notice.
66
+ const installsAvailable = useDeploymentMode() === "cloud";
67
+ const { deleteChannel } = useDeleteAgentChannel();
68
+ const { confirmState, confirm, handleConfirm, handleCancel } = useConfirmAction();
69
+ // One dialog mount serves both flows per provider: connecting the
70
+ // chosen channel, or creating a new one and connecting it in the same
71
+ // session. The provider picks which dialog renders.
72
+ const [connecting, setConnecting] = useState(null);
73
+ // The channel whose tool-credential bindings are being edited.
74
+ const [editingCredentials, setEditingCredentials] = useState(null);
75
+ // The channel whose conversations are being viewed (DD-012: read-only
76
+ // channel-session observability for the channel's viewers).
77
+ const [viewingConversations, setViewingConversations] = useState(null);
78
+ const handleConnect = useCallback((channel, provider) => {
79
+ // Only redirect-style installs need the host hand-off (they open a
80
+ // popup the desktop webview cannot); direct installs are a plain
81
+ // API call and run in-app everywhere.
82
+ if (provider.installStyle === "redirect" && onConnectExternal) {
83
+ onConnectExternal(channel);
84
+ return;
85
+ }
86
+ setConnecting(channel ? { mode: "reconnect", channel } : { mode: "create", provider });
87
+ }, [onConnectExternal]);
88
+ const handleDelete = useCallback(async (channel) => {
89
+ const name = channel.metadata?.name || channel.metadata?.slug || "this channel";
90
+ const presentation = channelPresentationOf(channel.spec?.providerConfig?.case) ??
91
+ DEFAULT_CHANNEL_PRESENTATION;
92
+ const confirmed = await confirm({
93
+ title: "Disconnect channel?",
94
+ description: presentation.disconnectDescription(name),
95
+ confirmLabel: "Disconnect",
96
+ variant: "destructive",
97
+ });
98
+ if (!confirmed)
99
+ return;
100
+ try {
101
+ await deleteChannel(channel.metadata?.id ?? "");
102
+ toast.success("Channel disconnected");
103
+ refetch();
104
+ }
105
+ catch (err) {
106
+ toast.error(getUserMessage(err));
107
+ }
108
+ }, [confirm, deleteChannel, refetch]);
109
+ if (isLoading) {
110
+ return _jsx(LoadingSkeleton, {});
111
+ }
112
+ if (error) {
113
+ return (_jsx("div", { className: "py-8 text-center text-sm text-destructive", children: "Failed to load channels" }));
114
+ }
115
+ const showCloudNotice = !installsAvailable &&
116
+ (channels.length === 0 ||
117
+ channels.some((c) => installStateOf(c) !== AgentChannelInstallState.installed));
118
+ // Whether a provider's connect affordance is actionable here: installs
119
+ // are cloud-only, but redirect-style providers can still hand off to
120
+ // the host (the desktop → system-browser path). Direct-style providers
121
+ // have no hand-off — in local mode their affordance yields to the
122
+ // cloud notice.
123
+ const canConnectVia = (p) => canCreate &&
124
+ (installsAvailable || (p.installStyle === "redirect" && !!onConnectExternal));
125
+ const connectableProviders = CHANNEL_PROVIDERS.filter(canConnectVia);
126
+ // The provider of the in-flight connect flow: chosen by the user in
127
+ // create mode, the channel's own on a reconnect. Unknown cases (a
128
+ // newer server) fall back to the default provider, matching the card.
129
+ const connectingProvider = connecting === null
130
+ ? null
131
+ : connecting.mode === "create"
132
+ ? connecting.provider
133
+ : channelProviderOf(connecting.channel.spec?.providerConfig?.case) ??
134
+ CHANNEL_PROVIDERS[0];
135
+ return (_jsxs("div", { className: cn("space-y-3", className), children: [showCloudNotice && (_jsx(CloudFeatureNotice, { children: "Channel installs require Stigmer Cloud \u2014 connecting an agent to Slack or WhatsApp runs through the platform's hosted webhook infrastructure. Channel configuration still works here." })), channels.length === 0 ? (_jsx(ChannelEmptyState, { providers: connectableProviders, onConnectClick: (p) => handleConnect(null, p) })) : (_jsxs(_Fragment, { children: [_jsxs("div", { className: "flex items-center justify-between gap-2", children: [_jsxs("h3", { className: "text-sm font-medium text-foreground", children: [channels.length, " ", channels.length === 1 ? "channel" : "channels"] }), connectableProviders.length > 0 && (_jsx("div", { className: "flex shrink-0 items-center gap-2", children: connectableProviders.map((p) => (_jsxs(Button, { variant: "outline", size: "xs", icon: _jsx(p.Icon, { className: "size-3" }), onClick: () => handleConnect(null, p), "data-cursor-target": `connect-${p.id}`, children: ["Connect to ", p.label] }, p.id))) }))] }), _jsx("div", { className: "space-y-2", children: channels.map((channel) => {
136
+ const cardProvider = channelProviderOf(channel.spec?.providerConfig?.case) ??
137
+ CHANNEL_PROVIDERS[0];
138
+ return (_jsx(ChannelCard, { agent: agent, channel: channel, channelApps: channelApps, connectAvailable: installsAvailable ||
139
+ (cardProvider.installStyle === "redirect" &&
140
+ !!onConnectExternal), onConnectClick: () => handleConnect(channel, cardProvider), onDeleteClick: () => void handleDelete(channel), onEditCredentials: () => setEditingCredentials(channel), onViewConversations: () => setViewingConversations(channel), refetch: refetch }, channel.metadata?.id));
141
+ }) })] })), connecting && connectingProvider?.id === "whatsapp" ? (_jsx(ConnectWhatsAppDialog, { open: true, onOpenChange: (open) => {
142
+ if (!open)
143
+ setConnecting(null);
144
+ }, agent: agent, channel: connecting.mode === "reconnect" ? connecting.channel : undefined, onChannelsChanged: refetch, channelAppsHref: channelAppsHref })) : connecting ? (_jsx(ConnectSlackDialog, { open: true, onOpenChange: (open) => {
145
+ if (!open)
146
+ setConnecting(null);
147
+ }, agent: agent, channel: connecting.mode === "reconnect" ? connecting.channel : undefined, onChannelsChanged: refetch, channelAppsHref: channelAppsHref })) : null, editingCredentials && (_jsx(ChannelCredentialsDialog, { open: true, onOpenChange: (open) => {
148
+ if (!open)
149
+ setEditingCredentials(null);
150
+ }, agent: agent, channel: editingCredentials, onSaved: refetch })), viewingConversations && (_jsx(ChannelConversationsDialog, { open: true, onOpenChange: (open) => {
151
+ if (!open)
152
+ setViewingConversations(null);
153
+ }, channel: viewingConversations, sessionHref: sessionHref })), _jsx(ConfirmDialog, { state: confirmState, onConfirm: handleConfirm, onCancel: handleCancel })] }));
154
+ }
155
+ function ChannelCard({ agent, channel, channelApps, connectAvailable, onConnectClick, onDeleteClick, onEditCredentials, onViewConversations, refetch, }) {
156
+ const meta = channel.metadata;
157
+ const id = meta?.id ?? "";
158
+ const enabled = channel.spec?.enabled ?? false;
159
+ const installState = installStateOf(channel);
160
+ // The serving app (T04 item 2): set means the channel installs through
161
+ // the org's own channel app; absent means the platform Stigmer app
162
+ // (Slack only — WhatsApp always has one, DD-WA-2). The app's NAME is
163
+ // the identity people address, so prefer it over the ref's slug when
164
+ // the app is in the fetched list (it may not be — e.g. the app was
165
+ // deleted after install).
166
+ const servingAppSlug = channel.spec?.appRef?.slug || null;
167
+ const servingAppName = servingAppSlug
168
+ ? channelApps.find((app) => app.metadata?.slug === servingAppSlug)
169
+ ?.metadata?.name || servingAppSlug
170
+ : null;
171
+ // The spec's provider marker is set at create; unknown cases (a newer
172
+ // server) fall back to the default provider mark rather than no icon,
173
+ // and to the default presentation rather than no copy.
174
+ const provider = channelProviderOf(channel.spec?.providerConfig?.case) ?? CHANNEL_PROVIDERS[0];
175
+ const presentation = channelPresentationOf(channel.spec?.providerConfig?.case) ??
176
+ DEFAULT_CHANNEL_PRESENTATION;
177
+ const { save, isPending } = useSaveAgentChannel();
178
+ // Decide the card's actions here (not via nested permission wrappers) so
179
+ // affordances are hidden entirely when the viewer can do nothing —
180
+ // permissive in OSS, so local single-user sees all.
181
+ const { allowed: canEdit } = useCheckPermission({ kind: "agent_channel", id }, "can_edit");
182
+ const { allowed: canDelete } = useCheckPermission({ kind: "agent_channel", id }, "can_delete");
183
+ // On/off is a full-input save with only `enabled` flipped —
184
+ // agentChannelToInput guarantees the toggle can never wipe the agent
185
+ // reference or the provider marker (the fails-closed posture shares use).
186
+ const handleToggleEnabled = useCallback(async (next) => {
187
+ try {
188
+ await save({ ...agentChannelToInput(channel), enabled: next });
189
+ toast.success(next ? "Channel turned on" : "Channel turned off");
190
+ refetch();
191
+ }
192
+ catch (err) {
193
+ toast.error(getUserMessage(err));
194
+ }
195
+ }, [save, channel, refetch]);
196
+ return (_jsxs("div", { className: "rounded-lg border border-border p-4", children: [_jsxs("div", { className: "flex items-start justify-between gap-3", children: [_jsxs("div", { className: "flex min-w-0 items-center gap-2.5", children: [_jsx(provider.Icon, { className: "size-5 shrink-0 text-foreground" }), _jsxs("div", { className: "min-w-0", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "truncate text-sm font-medium text-foreground", title: meta?.name || meta?.slug || undefined, children: meta?.name || meta?.slug || "\u2014" }), _jsx(InstallStatePill, { state: installState })] }), _jsx("p", { className: "mt-0.5 text-xs text-muted-foreground", children: presentation.describeChannel(channel) }), _jsx("p", { className: "mt-0.5 text-xs text-muted-foreground-faint", children: presentation.servingLine(servingAppName) })] })] }), _jsxs("div", { className: "flex shrink-0 items-center gap-2", children: [canEdit && installState === AgentChannelInstallState.installed && (_jsx(Switch, { checked: enabled, onCheckedChange: (next) => void handleToggleEnabled(next), disabled: isPending, "aria-label": `Turn ${meta?.name || meta?.slug || "channel"} ${enabled ? "off" : "on"}` })), canEdit &&
197
+ connectAvailable &&
198
+ installState !== AgentChannelInstallState.installed && (_jsx(Button, { variant: "outline", size: "xs", onClick: onConnectClick, children: installState === AgentChannelInstallState.revoked
199
+ ? "Reconnect"
200
+ : "Connect" })), _jsxs(ActionMenu, { children: [_jsx(ActionMenu.Trigger, { "aria-label": `Actions for ${meta?.name || meta?.slug}`, children: _jsx(MoreHorizontal, { className: "size-4" }) }), _jsxs(ActionMenu.Content, { children: [_jsx(ActionMenu.Item, { icon: _jsx(MessageSquare, {}), onSelect: onViewConversations, "data-cursor-target": "channel-conversations", children: "Conversations" }), canEdit && (_jsx(ActionMenu.Item, { icon: _jsx(KeyRound, {}), onSelect: onEditCredentials, children: "Tool credentials" })), canDelete && (_jsx(ActionMenu.Item, { icon: _jsx(Trash2, {}), variant: "destructive", onSelect: onDeleteClick, children: "Disconnect" }))] })] })] })] }), _jsx(CardReadinessWarning, { agent: agent, channel: channel, canEdit: canEdit, onEditCredentials: onEditCredentials })] }));
201
+ }
202
+ /**
203
+ * Serving-readiness warning for tool-using agents: channel executions
204
+ * receive credentials only from the channel's own bindings, so an
205
+ * installed, enabled channel with none (or with a private binding) will
206
+ * refuse the first workspace message that needs a tool. The card is
207
+ * where an owner — including one who connected before credential
208
+ * binding existed — discovers the gap, instead of hearing about it from
209
+ * a confused workspace member.
210
+ */
211
+ function CardReadinessWarning({ agent, channel, canEdit, onEditCredentials, }) {
212
+ const serving = (channel.spec?.enabled ?? false) &&
213
+ installStateOf(channel) === AgentChannelInstallState.installed;
214
+ const readiness = useChannelToolReadiness(agent, serving, channel.spec?.environmentRefs ?? []);
215
+ if (readiness.status !== "needs-credentials" && readiness.status !== "blocked") {
216
+ return null;
217
+ }
218
+ const message = readiness.status === "needs-credentials"
219
+ ? "This agent uses tools, but no credentials are bound to this channel — workspace messages that need a tool will be refused."
220
+ : `Bound environment${readiness.privateEnvironments.length > 1 ? "s" : ""} ${readiness.privateEnvironments.join(", ")} ${readiness.privateEnvironments.length > 1 ? "are" : "is"} private — share ${readiness.privateEnvironments.length > 1 ? "them" : "it"} with your organization so workspace messages can use the credentials.`;
221
+ return (_jsxs("p", { className: "mt-2 text-xs text-warning", role: "status", children: [message, canEdit && (_jsxs(_Fragment, { children: [" ", _jsx("button", { type: "button", onClick: onEditCredentials, className: cn("font-medium underline underline-offset-2", "hover:text-foreground", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded"), children: "Bind credentials" })] }))] }));
222
+ }
223
+ // ---------------------------------------------------------------------------
224
+ // Install-state rendering
225
+ // ---------------------------------------------------------------------------
226
+ function installStateOf(channel) {
227
+ return (channel.status?.installState ??
228
+ AgentChannelInstallState.agent_channel_install_state_unspecified);
229
+ }
230
+ function InstallStatePill({ state }) {
231
+ const { label, tone } = (() => {
232
+ switch (state) {
233
+ case AgentChannelInstallState.installed:
234
+ return { label: "Installed", tone: "text-success" };
235
+ case AgentChannelInstallState.revoked:
236
+ return { label: "Revoked", tone: "text-destructive" };
237
+ default:
238
+ return { label: "Pending install", tone: "text-muted-foreground" };
239
+ }
240
+ })();
241
+ return (_jsxs("span", { className: cn("inline-flex shrink-0 items-center gap-1.5 text-xs", tone), children: [_jsx("span", { "aria-hidden": "true", className: "size-1.5 rounded-full bg-current" }), label] }));
242
+ }
243
+ // ---------------------------------------------------------------------------
244
+ // Empty + loading states
245
+ // ---------------------------------------------------------------------------
246
+ function ChannelEmptyState({ providers, onConnectClick, }) {
247
+ const providerLabels = CHANNEL_PROVIDERS.map((p) => p.label).join(" or ");
248
+ return (_jsx(EmptyState, { variant: "first-use", icon: _jsx("span", { className: "flex items-center gap-2", children: CHANNEL_PROVIDERS.map((p) => (_jsx(p.Icon, { className: "size-10" }, p.id))) }), title: "No channels yet", description: `Connect this agent to ${providerLabels} and people chat with it ` +
249
+ "right where they work — with policy, rate limits, and billing " +
250
+ "enforced by Stigmer.", children: providers.length > 0 && (_jsx("span", { className: "flex items-center gap-2", children: providers.map((p) => (_jsxs(Button, { variant: "primary", icon: _jsx(p.Icon, { className: "size-3" }), onClick: () => onConnectClick(p), "data-cursor-target": `connect-${p.id}`, children: ["Connect to ", p.label] }, p.id))) })) }));
251
+ }
252
+ function LoadingSkeleton() {
253
+ return (_jsx("div", { className: "space-y-2 py-4", children: [1, 2].map((i) => (_jsx("div", { className: "h-20 animate-pulse rounded-lg bg-muted-faint" }, i))) }));
254
+ }
255
+ //# sourceMappingURL=AgentChannelsPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentChannelsPanel.js","sourceRoot":"","sources":["../../src/channel/AgentChannelsPanel.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import type { AgentChannel } from "@stigmer/protos/ai/stigmer/agentic/agentchannel/v1/api_pb";
2
+ /** Props for {@link ChannelConversationsDialog}. */
3
+ export interface ChannelConversationsDialogProps {
4
+ /** Whether the dialog is open. */
5
+ readonly open: boolean;
6
+ /** Called when the dialog requests an open-state change. */
7
+ readonly onOpenChange: (open: boolean) => void;
8
+ /** The channel whose conversations are listed. */
9
+ readonly channel: AgentChannel;
10
+ /**
11
+ * Maps a session id to the host's session route (the console passes
12
+ * `` (id) => `/sessions/${id}` ``). When absent, rows render without
13
+ * links — the SDK never assumes a routing scheme (DD-004).
14
+ */
15
+ readonly sessionHref?: (sessionId: string) => string;
16
+ /**
17
+ * When `false`, renders as an in-flow open dialog instead of a
18
+ * top-layer modal — for embedding in constrained surfaces
19
+ * (documentation demos, visual tests). Interactive hosts keep the
20
+ * default.
21
+ * @default true
22
+ */
23
+ readonly modal?: boolean;
24
+ }
25
+ /**
26
+ * Lists the conversations a channel created — the Slack/WhatsApp sessions
27
+ * the channel runtime owns, visible to exactly the channel's viewers (the
28
+ * connector and org admins; design decision 012).
29
+ *
30
+ * Each row shows the conversation subject, the external platform user it
31
+ * belongs to (an opaque provider id in v1), and the last activity time.
32
+ * Rows link to the host's session route, where `SessionViewer` renders the
33
+ * transcript read-only (the observer audience — channel viewers hold
34
+ * `can_view` only, never `can_create_execution_in`).
35
+ *
36
+ * Built on the native `<dialog>` element, matching the SDK's modal
37
+ * convention. Most hosts mount it via {@link AgentChannelsPanel}'s
38
+ * channel card action.
39
+ */
40
+ export declare function ChannelConversationsDialog({ open, onOpenChange, channel, sessionHref, modal, }: ChannelConversationsDialogProps): import("react/jsx-runtime").JSX.Element;
41
+ //# sourceMappingURL=ChannelConversationsDialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChannelConversationsDialog.d.ts","sourceRoot":"","sources":["../../src/channel/ChannelConversationsDialog.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2DAA2D,CAAC;AAO9F,oDAAoD;AACpD,MAAM,WAAW,+BAA+B;IAC9C,kCAAkC;IAClC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,4DAA4D;IAC5D,QAAQ,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/C,kDAAkD;IAClD,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;IACrD;;;;;;OAMG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,0BAA0B,CAAC,EACzC,IAAI,EACJ,YAAY,EACZ,OAAO,EACP,WAAW,EACX,KAAY,GACb,EAAE,+BAA+B,2CA4CjC"}
@@ -0,0 +1,94 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import { useCallback, useRef } from "react";
4
+ import { timestampDate } from "@bufbuild/protobuf/wkt";
5
+ import { MessageSquare, User, X } from "lucide-react";
6
+ import { cn } from "@stigmer/theme";
7
+ import { getUserMessage } from "@stigmer/sdk";
8
+ import { Button } from "../button/Button.js";
9
+ import { EmptyState } from "../empty-state/EmptyState.js";
10
+ import { channelSessionExternalUserKey } from "../session/channelOrigin.js";
11
+ import { useChannelSessions } from "./useChannelSessions.js";
12
+ /**
13
+ * Lists the conversations a channel created — the Slack/WhatsApp sessions
14
+ * the channel runtime owns, visible to exactly the channel's viewers (the
15
+ * connector and org admins; design decision 012).
16
+ *
17
+ * Each row shows the conversation subject, the external platform user it
18
+ * belongs to (an opaque provider id in v1), and the last activity time.
19
+ * Rows link to the host's session route, where `SessionViewer` renders the
20
+ * transcript read-only (the observer audience — channel viewers hold
21
+ * `can_view` only, never `can_create_execution_in`).
22
+ *
23
+ * Built on the native `<dialog>` element, matching the SDK's modal
24
+ * convention. Most hosts mount it via {@link AgentChannelsPanel}'s
25
+ * channel card action.
26
+ */
27
+ export function ChannelConversationsDialog({ open, onOpenChange, channel, sessionHref, modal = true, }) {
28
+ const dialogRef = useRef(null);
29
+ const handleClose = useCallback(() => {
30
+ dialogRef.current?.close();
31
+ onOpenChange(false);
32
+ }, [onOpenChange]);
33
+ // Sync native dialog open state (matches the SDK dialog convention).
34
+ const prevOpenRef = useRef(false);
35
+ if (modal && open !== prevOpenRef.current) {
36
+ prevOpenRef.current = open;
37
+ if (open) {
38
+ requestAnimationFrame(() => {
39
+ if (dialogRef.current && !dialogRef.current.open) {
40
+ dialogRef.current.showModal();
41
+ }
42
+ });
43
+ }
44
+ else if (dialogRef.current?.open) {
45
+ dialogRef.current.close();
46
+ }
47
+ }
48
+ return (_jsx("dialog", { ref: dialogRef, open: modal ? undefined : open, onClose: handleClose, className: cn("w-full max-w-lg rounded-xl border border-border bg-popover p-0 shadow-xl", modal ? "fixed inset-0 m-auto backdrop:bg-black/50" : "relative"), "aria-labelledby": "channel-conversations-title", children: open && (_jsx(ChannelConversationsDialogBody, { channel: channel, sessionHref: sessionHref, onClose: handleClose })) }));
49
+ }
50
+ function ChannelConversationsDialogBody({ channel, sessionHref, onClose, }) {
51
+ const channelName = channel.metadata?.name || channel.metadata?.slug || "this channel";
52
+ const { sessions, isLoading, error } = useChannelSessions(channel.metadata?.id ?? "");
53
+ return (_jsxs("div", { className: "flex max-h-[70vh] flex-col", children: [_jsxs("div", { className: "flex items-start justify-between gap-3 border-b border-border px-5 py-4", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("h2", { id: "channel-conversations-title", className: "text-sm font-semibold text-popover-foreground", children: "Conversations" }), _jsxs("p", { className: "mt-0.5 truncate text-xs text-muted-foreground", children: ["What people asked ", channelName, " \u2014 read-only, visible to the channel's owner and org admins."] })] }), _jsx(Button, { variant: "ghost", size: "xs", onClick: onClose, "aria-label": "Close conversations", children: _jsx(X, { className: "size-4" }) })] }), _jsx("div", { className: "min-h-0 flex-1 overflow-y-auto p-3", children: isLoading ? (_jsx(ConversationsSkeleton, {})) : error ? (_jsx("p", { className: "px-2 py-6 text-center text-sm text-destructive", children: getUserMessage(error) })) : sessions.length === 0 ? (_jsx(EmptyState, { variant: "first-use", icon: _jsx(MessageSquare, { className: "size-8" }), title: "No conversations yet", description: "When someone messages this channel, their conversation appears here." })) : (_jsx("ul", { className: "space-y-1", children: sessions.map((session) => (_jsx(ConversationRow, { session: session, href: sessionHref && session.metadata?.id
54
+ ? sessionHref(session.metadata.id)
55
+ : undefined }, session.metadata?.id))) })) })] }));
56
+ }
57
+ function ConversationRow({ session, href, }) {
58
+ const subject = session.spec?.subject || "Untitled conversation";
59
+ const externalUser = channelSessionExternalUserKey(session);
60
+ const lastActivity = lastActivityDate(session);
61
+ const content = (_jsxs(_Fragment, { children: [_jsxs("div", { className: "min-w-0 flex-1", children: [_jsx("p", { className: "truncate text-sm text-foreground", title: subject, children: subject }), externalUser && (_jsxs("p", { className: "mt-0.5 flex items-center gap-1 text-xs text-muted-foreground", children: [_jsx(User, { "aria-hidden": "true", className: "size-3" }), externalUser] }))] }), lastActivity && (_jsx("span", { className: "shrink-0 text-xs text-muted-foreground-faint", children: formatRelativeTime(lastActivity) }))] }));
62
+ const rowClass = "flex items-center gap-3 rounded-md px-2 py-2 text-left";
63
+ return (_jsx("li", { children: href ? (_jsx("a", { href: href, className: cn(rowClass, "hover:bg-accent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"), children: content })) : (_jsx("div", { className: rowClass, children: content })) }));
64
+ }
65
+ function ConversationsSkeleton() {
66
+ return (_jsx("div", { className: "space-y-1 p-1", children: [1, 2, 3].map((i) => (_jsx("div", { className: "h-12 animate-pulse rounded-md bg-muted-faint" }, i))) }));
67
+ }
68
+ /**
69
+ * The conversation's last activity: `statusAudit.updatedAt` (bumped on
70
+ * every meaningful status change), falling back to `specAudit.createdAt`
71
+ * — the recent-activity sort key, so the dialog agrees with the server's
72
+ * ordering.
73
+ */
74
+ function lastActivityDate(session) {
75
+ const ts = session.status?.audit?.statusAudit?.updatedAt ??
76
+ session.status?.audit?.specAudit?.createdAt;
77
+ return ts ? timestampDate(ts) : null;
78
+ }
79
+ function formatRelativeTime(date) {
80
+ const seconds = Math.floor((Date.now() - date.getTime()) / 1000);
81
+ if (seconds < 60)
82
+ return "just now";
83
+ const minutes = Math.floor(seconds / 60);
84
+ if (minutes < 60)
85
+ return `${minutes}m ago`;
86
+ const hours = Math.floor(minutes / 60);
87
+ if (hours < 24)
88
+ return `${hours}h ago`;
89
+ const days = Math.floor(hours / 24);
90
+ if (days < 30)
91
+ return `${days}d ago`;
92
+ return date.toLocaleDateString();
93
+ }
94
+ //# sourceMappingURL=ChannelConversationsDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChannelConversationsDialog.js","sourceRoot":"","sources":["../../src/channel/ChannelConversationsDialog.tsx"],"names":[],"mappings":"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"}