@stigmer/react 3.1.16 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (824) hide show
  1. package/README.md +16 -1
  2. package/agent-instance/AgentInstanceList.d.ts.map +1 -1
  3. package/agent-instance/AgentInstanceList.js +11 -3
  4. package/agent-instance/AgentInstanceList.js.map +1 -1
  5. package/channel/AgentChannelsPanel.d.ts +60 -0
  6. package/channel/AgentChannelsPanel.d.ts.map +1 -0
  7. package/channel/AgentChannelsPanel.js +255 -0
  8. package/channel/AgentChannelsPanel.js.map +1 -0
  9. package/channel/ChannelConversationsDialog.d.ts +41 -0
  10. package/channel/ChannelConversationsDialog.d.ts.map +1 -0
  11. package/channel/ChannelConversationsDialog.js +94 -0
  12. package/channel/ChannelConversationsDialog.js.map +1 -0
  13. package/channel/ChannelCredentialsDialog.d.ts +37 -0
  14. package/channel/ChannelCredentialsDialog.d.ts.map +1 -0
  15. package/channel/ChannelCredentialsDialog.js +75 -0
  16. package/channel/ChannelCredentialsDialog.js.map +1 -0
  17. package/channel/ChannelToolCredentials.d.ts +31 -0
  18. package/channel/ChannelToolCredentials.d.ts.map +1 -0
  19. package/channel/ChannelToolCredentials.js +41 -0
  20. package/channel/ChannelToolCredentials.js.map +1 -0
  21. package/channel/ConnectSlackDialog.d.ts +61 -0
  22. package/channel/ConnectSlackDialog.d.ts.map +1 -0
  23. package/channel/ConnectSlackDialog.js +238 -0
  24. package/channel/ConnectSlackDialog.js.map +1 -0
  25. package/channel/ConnectWhatsAppDialog.d.ts +70 -0
  26. package/channel/ConnectWhatsAppDialog.d.ts.map +1 -0
  27. package/channel/ConnectWhatsAppDialog.js +256 -0
  28. package/channel/ConnectWhatsAppDialog.js.map +1 -0
  29. package/channel/SlackMarkIcon.d.ts +11 -0
  30. package/channel/SlackMarkIcon.d.ts.map +1 -0
  31. package/channel/SlackMarkIcon.js +13 -0
  32. package/channel/SlackMarkIcon.js.map +1 -0
  33. package/channel/WhatsAppMarkIcon.d.ts +12 -0
  34. package/channel/WhatsAppMarkIcon.d.ts.map +1 -0
  35. package/channel/WhatsAppMarkIcon.js +14 -0
  36. package/channel/WhatsAppMarkIcon.js.map +1 -0
  37. package/channel/connect/ServingAppSection.d.ts +57 -0
  38. package/channel/connect/ServingAppSection.d.ts.map +1 -0
  39. package/channel/connect/ServingAppSection.js +49 -0
  40. package/channel/connect/ServingAppSection.js.map +1 -0
  41. package/channel/connect/ToolCredentialsSection.d.ts +20 -0
  42. package/channel/connect/ToolCredentialsSection.d.ts.map +1 -0
  43. package/channel/connect/ToolCredentialsSection.js +22 -0
  44. package/channel/connect/ToolCredentialsSection.js.map +1 -0
  45. package/channel/connect/VerbatimRefusal.d.ts +16 -0
  46. package/channel/connect/VerbatimRefusal.d.ts.map +1 -0
  47. package/channel/connect/VerbatimRefusal.js +18 -0
  48. package/channel/connect/VerbatimRefusal.js.map +1 -0
  49. package/channel/connect/icons.d.ts +16 -0
  50. package/channel/connect/icons.d.ts.map +1 -0
  51. package/channel/connect/icons.js +21 -0
  52. package/channel/connect/icons.js.map +1 -0
  53. package/channel/index.d.ts +36 -0
  54. package/channel/index.d.ts.map +1 -0
  55. package/channel/index.js +19 -0
  56. package/channel/index.js.map +1 -0
  57. package/channel/providerPresentation.d.ts +44 -0
  58. package/channel/providerPresentation.d.ts.map +1 -0
  59. package/channel/providerPresentation.js +106 -0
  60. package/channel/providerPresentation.js.map +1 -0
  61. package/channel/providers.d.ts +62 -0
  62. package/channel/providers.d.ts.map +1 -0
  63. package/channel/providers.js +26 -0
  64. package/channel/providers.js.map +1 -0
  65. package/channel/useAgentChannel.d.ts +31 -0
  66. package/channel/useAgentChannel.d.ts.map +1 -0
  67. package/channel/useAgentChannel.js +34 -0
  68. package/channel/useAgentChannel.js.map +1 -0
  69. package/channel/useAgentChannelList.d.ts +43 -0
  70. package/channel/useAgentChannelList.d.ts.map +1 -0
  71. package/channel/useAgentChannelList.js +39 -0
  72. package/channel/useAgentChannelList.js.map +1 -0
  73. package/channel/useChannelSessions.d.ts +47 -0
  74. package/channel/useChannelSessions.d.ts.map +1 -0
  75. package/channel/useChannelSessions.js +38 -0
  76. package/channel/useChannelSessions.js.map +1 -0
  77. package/channel/useChannelToolReadiness.d.ts +23 -0
  78. package/channel/useChannelToolReadiness.d.ts.map +1 -0
  79. package/channel/useChannelToolReadiness.js +28 -0
  80. package/channel/useChannelToolReadiness.js.map +1 -0
  81. package/channel/useConnectSlackChannel.d.ts +75 -0
  82. package/channel/useConnectSlackChannel.d.ts.map +1 -0
  83. package/channel/useConnectSlackChannel.js +115 -0
  84. package/channel/useConnectSlackChannel.js.map +1 -0
  85. package/channel/useCreateAgentChannel.d.ts +42 -0
  86. package/channel/useCreateAgentChannel.d.ts.map +1 -0
  87. package/channel/useCreateAgentChannel.js +48 -0
  88. package/channel/useCreateAgentChannel.js.map +1 -0
  89. package/channel/useDeleteAgentChannel.d.ts +40 -0
  90. package/channel/useDeleteAgentChannel.d.ts.map +1 -0
  91. package/channel/useDeleteAgentChannel.js +44 -0
  92. package/channel/useDeleteAgentChannel.js.map +1 -0
  93. package/channel/useInstallChannel.d.ts +60 -0
  94. package/channel/useInstallChannel.d.ts.map +1 -0
  95. package/channel/useInstallChannel.js +63 -0
  96. package/channel/useInstallChannel.js.map +1 -0
  97. package/channel/useOrgAgentChannelList.d.ts +32 -0
  98. package/channel/useOrgAgentChannelList.d.ts.map +1 -0
  99. package/channel/useOrgAgentChannelList.js +29 -0
  100. package/channel/useOrgAgentChannelList.js.map +1 -0
  101. package/channel/useSaveAgentChannel.d.ts +63 -0
  102. package/channel/useSaveAgentChannel.d.ts.map +1 -0
  103. package/channel/useSaveAgentChannel.js +104 -0
  104. package/channel/useSaveAgentChannel.js.map +1 -0
  105. package/channel-app/ChannelAppDetailPanel.d.ts +46 -0
  106. package/channel-app/ChannelAppDetailPanel.d.ts.map +1 -0
  107. package/channel-app/ChannelAppDetailPanel.js +142 -0
  108. package/channel-app/ChannelAppDetailPanel.js.map +1 -0
  109. package/channel-app/ChannelAppListPanel.d.ts +36 -0
  110. package/channel-app/ChannelAppListPanel.d.ts.map +1 -0
  111. package/channel-app/ChannelAppListPanel.js +63 -0
  112. package/channel-app/ChannelAppListPanel.js.map +1 -0
  113. package/channel-app/CreateChannelAppForm.d.ts +54 -0
  114. package/channel-app/CreateChannelAppForm.d.ts.map +1 -0
  115. package/channel-app/CreateChannelAppForm.js +140 -0
  116. package/channel-app/CreateChannelAppForm.js.map +1 -0
  117. package/channel-app/index.d.ts +18 -0
  118. package/channel-app/index.d.ts.map +1 -0
  119. package/channel-app/index.js +10 -0
  120. package/channel-app/index.js.map +1 -0
  121. package/channel-app/internal.d.ts +33 -0
  122. package/channel-app/internal.d.ts.map +1 -0
  123. package/channel-app/internal.js +44 -0
  124. package/channel-app/internal.js.map +1 -0
  125. package/channel-app/slackAppSetup.d.ts +80 -0
  126. package/channel-app/slackAppSetup.d.ts.map +1 -0
  127. package/channel-app/slackAppSetup.js +123 -0
  128. package/channel-app/slackAppSetup.js.map +1 -0
  129. package/channel-app/useChannelAppList.d.ts +35 -0
  130. package/channel-app/useChannelAppList.d.ts.map +1 -0
  131. package/channel-app/useChannelAppList.js +34 -0
  132. package/channel-app/useChannelAppList.js.map +1 -0
  133. package/channel-app/useCreateChannelApp.d.ts +39 -0
  134. package/channel-app/useCreateChannelApp.d.ts.map +1 -0
  135. package/channel-app/useCreateChannelApp.js +50 -0
  136. package/channel-app/useCreateChannelApp.js.map +1 -0
  137. package/channel-app/useDeleteChannelApp.d.ts +31 -0
  138. package/channel-app/useDeleteChannelApp.d.ts.map +1 -0
  139. package/channel-app/useDeleteChannelApp.js +43 -0
  140. package/channel-app/useDeleteChannelApp.js.map +1 -0
  141. package/channel-app/useUpdateChannelApp.d.ts +39 -0
  142. package/channel-app/useUpdateChannelApp.d.ts.map +1 -0
  143. package/channel-app/useUpdateChannelApp.js +50 -0
  144. package/channel-app/useUpdateChannelApp.js.map +1 -0
  145. package/channel-app/whatsappAppSetup.d.ts +51 -0
  146. package/channel-app/whatsappAppSetup.d.ts.map +1 -0
  147. package/channel-app/whatsappAppSetup.js +57 -0
  148. package/channel-app/whatsappAppSetup.js.map +1 -0
  149. package/environment/index.d.ts +2 -0
  150. package/environment/index.d.ts.map +1 -1
  151. package/environment/index.js +1 -0
  152. package/environment/index.js.map +1 -1
  153. package/environment/useToolCredentialsReadiness.d.ts +52 -0
  154. package/environment/useToolCredentialsReadiness.d.ts.map +1 -0
  155. package/environment/useToolCredentialsReadiness.js +84 -0
  156. package/environment/useToolCredentialsReadiness.js.map +1 -0
  157. package/execution/ArtifactContentBody.d.ts.map +1 -1
  158. package/execution/ArtifactContentBody.js +5 -21
  159. package/execution/ArtifactContentBody.js.map +1 -1
  160. package/execution/ArtifactFileContent.d.ts +28 -0
  161. package/execution/ArtifactFileContent.d.ts.map +1 -0
  162. package/execution/ArtifactFileContent.js +36 -0
  163. package/execution/ArtifactFileContent.js.map +1 -0
  164. package/execution/ArtifactRow.d.ts +8 -20
  165. package/execution/ArtifactRow.d.ts.map +1 -1
  166. package/execution/ArtifactRow.js +12 -45
  167. package/execution/ArtifactRow.js.map +1 -1
  168. package/execution/ArtifactRowView.d.ts +43 -0
  169. package/execution/ArtifactRowView.d.ts.map +1 -0
  170. package/execution/ArtifactRowView.js +35 -0
  171. package/execution/ArtifactRowView.js.map +1 -0
  172. package/execution/FileChangesView.d.ts.map +1 -1
  173. package/execution/FileChangesView.js +1 -61
  174. package/execution/FileChangesView.js.map +1 -1
  175. package/execution/SubAgentSection.d.ts.map +1 -1
  176. package/execution/SubAgentSection.js +4 -15
  177. package/execution/SubAgentSection.js.map +1 -1
  178. package/execution/ToolCallItem.d.ts.map +1 -1
  179. package/execution/ToolCallItem.js +16 -61
  180. package/execution/ToolCallItem.js.map +1 -1
  181. package/execution/agent-execution-document.d.ts +31 -0
  182. package/execution/agent-execution-document.d.ts.map +1 -0
  183. package/execution/agent-execution-document.js +48 -0
  184. package/execution/agent-execution-document.js.map +1 -0
  185. package/{session → execution}/artifact-document.d.ts +2 -3
  186. package/execution/artifact-document.d.ts.map +1 -0
  187. package/execution/artifact-document.js +23 -0
  188. package/execution/artifact-document.js.map +1 -0
  189. package/execution/artifact-row-item.d.ts +56 -0
  190. package/execution/artifact-row-item.d.ts.map +1 -0
  191. package/execution/artifact-row-item.js +57 -0
  192. package/execution/artifact-row-item.js.map +1 -0
  193. package/execution/deriveExecutionFileChanges.d.ts +55 -0
  194. package/execution/deriveExecutionFileChanges.d.ts.map +1 -0
  195. package/execution/deriveExecutionFileChanges.js +216 -0
  196. package/execution/deriveExecutionFileChanges.js.map +1 -0
  197. package/execution/file-change-document.d.ts +22 -0
  198. package/execution/file-change-document.d.ts.map +1 -0
  199. package/execution/file-change-document.js +34 -0
  200. package/execution/file-change-document.js.map +1 -0
  201. package/execution/index.d.ts +14 -0
  202. package/execution/index.d.ts.map +1 -1
  203. package/execution/index.js +9 -0
  204. package/execution/index.js.map +1 -1
  205. package/execution/useArtifactContentById.d.ts +61 -0
  206. package/execution/useArtifactContentById.d.ts.map +1 -0
  207. package/execution/useArtifactContentById.js +63 -0
  208. package/execution/useArtifactContentById.js.map +1 -0
  209. package/execution/useArtifactDownload.d.ts +4 -3
  210. package/execution/useArtifactDownload.d.ts.map +1 -1
  211. package/execution/useArtifactDownload.js +4 -3
  212. package/execution/useArtifactDownload.js.map +1 -1
  213. package/execution/useCreateAgentExecution.d.ts +1 -1
  214. package/execution/useLiveAgentExecution.d.ts +59 -0
  215. package/execution/useLiveAgentExecution.d.ts.map +1 -0
  216. package/execution/useLiveAgentExecution.js +73 -0
  217. package/execution/useLiveAgentExecution.js.map +1 -0
  218. package/index.d.ts +15 -10
  219. package/index.d.ts.map +1 -1
  220. package/index.js +21 -6
  221. package/index.js.map +1 -1
  222. package/internal/DecisionButton.d.ts +4 -3
  223. package/internal/DecisionButton.d.ts.map +1 -1
  224. package/internal/DecisionButton.js +4 -3
  225. package/internal/DecisionButton.js.map +1 -1
  226. package/internal/oauthPopup.d.ts +101 -0
  227. package/internal/oauthPopup.d.ts.map +1 -0
  228. package/internal/oauthPopup.js +208 -0
  229. package/internal/oauthPopup.js.map +1 -0
  230. package/internal/store/index.d.ts +0 -2
  231. package/internal/store/index.d.ts.map +1 -1
  232. package/internal/store/index.js +0 -1
  233. package/internal/store/index.js.map +1 -1
  234. package/internal/store/workflow-execution-event-store.d.ts +34 -1
  235. package/internal/store/workflow-execution-event-store.d.ts.map +1 -1
  236. package/internal/store/workflow-execution-event-store.js +81 -3
  237. package/internal/store/workflow-execution-event-store.js.map +1 -1
  238. package/internal/store/workspace-file-selection-store.d.ts +1 -2
  239. package/internal/store/workspace-file-selection-store.d.ts.map +1 -1
  240. package/internal/store/workspace-file-selection-store.js +2 -5
  241. package/internal/store/workspace-file-selection-store.js.map +1 -1
  242. package/internal/thread-card/ThreadCardShell.d.ts +91 -0
  243. package/internal/thread-card/ThreadCardShell.d.ts.map +1 -0
  244. package/internal/thread-card/ThreadCardShell.js +41 -0
  245. package/internal/thread-card/ThreadCardShell.js.map +1 -0
  246. package/internal/thread-card/glyphs.d.ts +34 -0
  247. package/internal/thread-card/glyphs.d.ts.map +1 -0
  248. package/internal/thread-card/glyphs.js +50 -0
  249. package/internal/thread-card/glyphs.js.map +1 -0
  250. package/internal/thread-card/index.d.ts +3 -0
  251. package/internal/thread-card/index.d.ts.map +1 -0
  252. package/internal/thread-card/index.js +3 -0
  253. package/internal/thread-card/index.js.map +1 -0
  254. package/internal/useRevealLine.d.ts +2 -2
  255. package/internal/useRevealLine.js +2 -2
  256. package/mcp-server/OAuthCallbackHandler.js +1 -1
  257. package/mcp-server/OAuthCallbackHandler.js.map +1 -1
  258. package/mcp-server/useMcpServerOAuthConnect.d.ts +4 -23
  259. package/mcp-server/useMcpServerOAuthConnect.d.ts.map +1 -1
  260. package/mcp-server/useMcpServerOAuthConnect.js +12 -145
  261. package/mcp-server/useMcpServerOAuthConnect.js.map +1 -1
  262. package/package.json +4 -4
  263. package/provider.d.ts +32 -0
  264. package/provider.d.ts.map +1 -1
  265. package/provider.js +25 -1
  266. package/provider.js.map +1 -1
  267. package/session/NewSessionViewer.d.ts.map +1 -1
  268. package/session/NewSessionViewer.js +0 -1
  269. package/session/NewSessionViewer.js.map +1 -1
  270. package/session/SessionPanelChip.d.ts +7 -22
  271. package/session/SessionPanelChip.d.ts.map +1 -1
  272. package/session/SessionPanelChip.js +8 -36
  273. package/session/SessionPanelChip.js.map +1 -1
  274. package/session/SessionViewer.d.ts +7 -4
  275. package/session/SessionViewer.d.ts.map +1 -1
  276. package/session/SessionViewer.js +32 -30
  277. package/session/SessionViewer.js.map +1 -1
  278. package/session/audience.d.ts +15 -1
  279. package/session/audience.d.ts.map +1 -1
  280. package/session/channelOrigin.d.ts +33 -0
  281. package/session/channelOrigin.d.ts.map +1 -0
  282. package/session/channelOrigin.js +36 -0
  283. package/session/channelOrigin.js.map +1 -0
  284. package/session/facets/index.d.ts +0 -2
  285. package/session/facets/index.d.ts.map +1 -1
  286. package/session/facets/index.js +0 -1
  287. package/session/facets/index.js.map +1 -1
  288. package/session/index.d.ts +2 -2
  289. package/session/index.d.ts.map +1 -1
  290. package/session/index.js +5 -3
  291. package/session/index.js.map +1 -1
  292. package/session/useSessionFileChanges.d.ts +10 -34
  293. package/session/useSessionFileChanges.d.ts.map +1 -1
  294. package/session/useSessionFileChanges.js +9 -141
  295. package/session/useSessionFileChanges.js.map +1 -1
  296. package/session/useSessionPanel.d.ts +5 -15
  297. package/session/useSessionPanel.d.ts.map +1 -1
  298. package/session/useSessionPanel.js +3 -35
  299. package/session/useSessionPanel.js.map +1 -1
  300. package/session/useSessionRailViews.d.ts +3 -6
  301. package/session/useSessionRailViews.d.ts.map +1 -1
  302. package/session/useSessionRailViews.js +3 -17
  303. package/session/useSessionRailViews.js.map +1 -1
  304. package/settings/ChannelAppsSection.d.ts +13 -0
  305. package/settings/ChannelAppsSection.d.ts.map +1 -0
  306. package/settings/ChannelAppsSection.js +48 -0
  307. package/settings/ChannelAppsSection.js.map +1 -0
  308. package/settings/index.d.ts +1 -0
  309. package/settings/index.d.ts.map +1 -1
  310. package/settings/index.js +1 -0
  311. package/settings/index.js.map +1 -1
  312. package/settings/settings-nav.d.ts.map +1 -1
  313. package/settings/settings-nav.js +6 -1
  314. package/settings/settings-nav.js.map +1 -1
  315. package/sharing/AgentShareList.d.ts.map +1 -1
  316. package/sharing/AgentShareList.js +11 -3
  317. package/sharing/AgentShareList.js.map +1 -1
  318. package/sharing/ShareAgentDialog.js +1 -1
  319. package/sharing/useShareToolReadiness.d.ts +9 -38
  320. package/sharing/useShareToolReadiness.d.ts.map +1 -1
  321. package/sharing/useShareToolReadiness.js +7 -72
  322. package/sharing/useShareToolReadiness.js.map +1 -1
  323. package/src/__tests__/provider-container.layout.test.tsx +165 -0
  324. package/src/__tests__/provider-theme-scope.test.tsx +31 -0
  325. package/src/agent-instance/AgentInstanceList.tsx +60 -42
  326. package/src/agent-instance/__tests__/AgentInstanceList.test.tsx +161 -0
  327. package/src/channel/AgentChannelsPanel.tsx +688 -0
  328. package/src/channel/ChannelConversationsDialog.tsx +267 -0
  329. package/src/channel/ChannelCredentialsDialog.tsx +219 -0
  330. package/src/channel/ChannelToolCredentials.tsx +124 -0
  331. package/src/channel/ConnectSlackDialog.tsx +611 -0
  332. package/src/channel/ConnectWhatsAppDialog.tsx +624 -0
  333. package/src/channel/SlackMarkIcon.tsx +21 -0
  334. package/src/channel/WhatsAppMarkIcon.tsx +22 -0
  335. package/src/channel/__tests__/AgentChannelsPanel.test.tsx +638 -0
  336. package/src/channel/__tests__/ChannelConversationsDialog.test.tsx +114 -0
  337. package/src/channel/__tests__/ChannelCredentialsDialog.test.tsx +240 -0
  338. package/src/channel/__tests__/ConnectSlackDialog.test.tsx +659 -0
  339. package/src/channel/__tests__/ConnectWhatsAppDialog.test.tsx +564 -0
  340. package/src/channel/__tests__/providers.test.ts +118 -0
  341. package/src/channel/__tests__/useAgentChannel.test.tsx +116 -0
  342. package/src/channel/__tests__/useAgentChannelList.test.tsx +166 -0
  343. package/src/channel/__tests__/useChannelSessions.test.tsx +95 -0
  344. package/src/channel/__tests__/useChannelToolReadiness.test.tsx +158 -0
  345. package/src/channel/__tests__/useConnectSlackChannel.test.tsx +276 -0
  346. package/src/channel/__tests__/useDeleteAgentChannel.test.tsx +97 -0
  347. package/src/channel/__tests__/useInstallChannel.test.tsx +177 -0
  348. package/src/channel/__tests__/useSaveAgentChannel.test.tsx +294 -0
  349. package/src/channel/connect/ServingAppSection.tsx +185 -0
  350. package/src/channel/connect/ToolCredentialsSection.tsx +67 -0
  351. package/src/channel/connect/VerbatimRefusal.tsx +27 -0
  352. package/src/channel/connect/icons.tsx +42 -0
  353. package/src/channel/index.ts +65 -0
  354. package/src/channel/providerPresentation.ts +154 -0
  355. package/src/channel/providers.ts +73 -0
  356. package/src/channel/useAgentChannel.ts +58 -0
  357. package/src/channel/useAgentChannelList.ts +69 -0
  358. package/src/channel/useChannelSessions.ts +73 -0
  359. package/src/channel/useChannelToolReadiness.ts +39 -0
  360. package/src/channel/useConnectSlackChannel.ts +195 -0
  361. package/src/channel/useCreateAgentChannel.ts +73 -0
  362. package/src/channel/useDeleteAgentChannel.ts +71 -0
  363. package/src/channel/useInstallChannel.ts +117 -0
  364. package/src/channel/useOrgAgentChannelList.ts +60 -0
  365. package/src/channel/useSaveAgentChannel.ts +133 -0
  366. package/src/channel-app/ChannelAppDetailPanel.tsx +510 -0
  367. package/src/channel-app/ChannelAppListPanel.tsx +201 -0
  368. package/src/channel-app/CreateChannelAppForm.tsx +529 -0
  369. package/src/channel-app/__tests__/channelAppWhatsApp.test.tsx +270 -0
  370. package/src/channel-app/__tests__/slackAppSetup.test.ts +75 -0
  371. package/src/channel-app/__tests__/useChannelAppHooks.test.tsx +157 -0
  372. package/src/channel-app/__tests__/whatsappAppSetup.test.ts +39 -0
  373. package/src/channel-app/index.ts +30 -0
  374. package/src/channel-app/internal.tsx +180 -0
  375. package/src/channel-app/slackAppSetup.ts +153 -0
  376. package/src/channel-app/useChannelAppList.ts +59 -0
  377. package/src/channel-app/useCreateChannelApp.ts +70 -0
  378. package/src/channel-app/useDeleteChannelApp.ts +62 -0
  379. package/src/channel-app/useUpdateChannelApp.ts +70 -0
  380. package/src/channel-app/whatsappAppSetup.ts +62 -0
  381. package/src/environment/index.ts +2 -0
  382. package/src/environment/useToolCredentialsReadiness.ts +122 -0
  383. package/src/execution/ArtifactContentBody.tsx +6 -88
  384. package/src/execution/ArtifactFileContent.tsx +110 -0
  385. package/src/execution/ArtifactRow.tsx +28 -118
  386. package/src/execution/ArtifactRowView.tsx +137 -0
  387. package/src/execution/FileChangesView.tsx +4 -69
  388. package/src/execution/SubAgentSection.tsx +2 -36
  389. package/src/execution/ToolCallItem.tsx +48 -175
  390. package/src/execution/__tests__/ArtifactFileContent.test.tsx +60 -0
  391. package/src/execution/__tests__/ArtifactRowView.test.tsx +78 -0
  392. package/src/execution/__tests__/agent-execution-document.test.ts +45 -0
  393. package/src/execution/__tests__/artifact-row-item.test.ts +128 -0
  394. package/src/execution/__tests__/deriveExecutionFileChanges.test.ts +270 -0
  395. package/src/execution/__tests__/useArtifactContentById.test.tsx +85 -0
  396. package/src/execution/__tests__/useLiveAgentExecution.test.tsx +202 -0
  397. package/src/execution/agent-execution-document.ts +54 -0
  398. package/src/execution/artifact-document.ts +24 -0
  399. package/src/execution/artifact-row-item.ts +97 -0
  400. package/src/execution/deriveExecutionFileChanges.ts +237 -0
  401. package/src/execution/file-change-document.ts +37 -0
  402. package/src/execution/index.ts +36 -0
  403. package/src/execution/useArtifactContentById.ts +120 -0
  404. package/src/execution/useArtifactDownload.ts +4 -3
  405. package/src/execution/useCreateAgentExecution.ts +1 -1
  406. package/src/execution/useLiveAgentExecution.ts +127 -0
  407. package/src/index.ts +155 -11
  408. package/src/internal/DecisionButton.tsx +4 -3
  409. package/src/internal/__tests__/ThreadCardShell.test.tsx +105 -0
  410. package/src/internal/__tests__/oauthPopup.test.ts +245 -0
  411. package/src/internal/oauthPopup.ts +261 -0
  412. package/src/internal/store/__tests__/workflow-execution-event-store.test.ts +375 -5
  413. package/src/internal/store/index.ts +0 -3
  414. package/src/internal/store/workflow-execution-event-store.ts +123 -4
  415. package/src/internal/store/workspace-file-selection-store.ts +2 -5
  416. package/src/internal/thread-card/ThreadCardShell.tsx +189 -0
  417. package/src/internal/thread-card/glyphs.tsx +108 -0
  418. package/src/internal/thread-card/index.ts +19 -0
  419. package/src/internal/useRevealLine.ts +2 -2
  420. package/src/mcp-server/OAuthCallbackHandler.tsx +2 -2
  421. package/src/mcp-server/useMcpServerOAuthConnect.ts +22 -184
  422. package/src/provider.tsx +42 -0
  423. package/src/session/NewSessionViewer.tsx +0 -1
  424. package/src/session/SessionPanelChip.tsx +10 -96
  425. package/src/session/SessionViewer.tsx +170 -144
  426. package/src/session/__tests__/SessionViewer-artifactTabs.test.tsx +1 -1
  427. package/src/session/__tests__/observerAudience.test.tsx +241 -0
  428. package/src/session/__tests__/useSessionPanel.test.ts +6 -61
  429. package/src/session/__tests__/useSessionRailViews.test.tsx +5 -27
  430. package/src/session/audience.ts +15 -1
  431. package/src/session/channelOrigin.ts +45 -0
  432. package/src/session/facets/index.ts +0 -3
  433. package/src/session/index.ts +9 -6
  434. package/src/session/useSessionFileChanges.ts +12 -153
  435. package/src/session/useSessionPanel.ts +8 -51
  436. package/src/session/useSessionRailViews.tsx +2 -27
  437. package/src/settings/ChannelAppsSection.tsx +133 -0
  438. package/src/settings/index.ts +1 -0
  439. package/src/settings/settings-nav.ts +6 -0
  440. package/src/sharing/AgentShareList.tsx +85 -64
  441. package/src/sharing/ShareAgentDialog.tsx +1 -1
  442. package/src/sharing/__tests__/AgentShareList.test.tsx +92 -12
  443. package/src/sharing/useShareToolReadiness.ts +13 -101
  444. package/src/styles.css +14 -0
  445. package/src/workflow/WorkflowAgentExecutionDocument.tsx +283 -0
  446. package/src/workflow/WorkflowApprovalList.tsx +158 -0
  447. package/src/workflow/WorkflowArtifactDocument.tsx +257 -0
  448. package/src/workflow/WorkflowExecutionGraph.tsx +40 -78
  449. package/src/workflow/WorkflowExecutionViewer.tsx +610 -287
  450. package/src/workflow/WorkflowFileReviewList.tsx +1 -1
  451. package/src/workflow/WorkflowTaskApprovalCard.tsx +5 -4
  452. package/src/workflow/WorkflowTaskApprovalSummary.tsx +6 -6
  453. package/src/workflow/__tests__/WorkflowAgentExecutionDocument.test.tsx +651 -0
  454. package/src/workflow/__tests__/WorkflowApprovalList.test.tsx +229 -0
  455. package/src/workflow/__tests__/WorkflowArtifactDocument.test.tsx +90 -0
  456. package/src/workflow/__tests__/WorkflowArtifactsTab.test.tsx +85 -0
  457. package/src/workflow/__tests__/WorkflowChangesTab.test.tsx +113 -0
  458. package/src/workflow/__tests__/WorkflowExecutionViewer.approvals.test.tsx +473 -0
  459. package/src/workflow/__tests__/WorkflowExecutionViewer.reconciliation.test.tsx +632 -0
  460. package/src/workflow/__tests__/WorkflowTaskApprovalSummary.test.tsx +1 -1
  461. package/src/workflow/__tests__/WorkflowTaskThread.test.tsx +947 -0
  462. package/src/workflow/__tests__/WorkflowUsageTab.test.tsx +163 -0
  463. package/src/workflow/__tests__/agent-call-live-experience.test.ts +6 -53
  464. package/src/workflow/__tests__/derive-execution-overlays.test.ts +4 -0
  465. package/src/workflow/__tests__/deriveWorkflowArtifactItems.test.ts +71 -0
  466. package/src/workflow/__tests__/deriveWorkflowUsageItems.test.ts +132 -0
  467. package/src/workflow/__tests__/execution-graph.test.ts +8 -0
  468. package/src/workflow/__tests__/project-thread-items.test.ts +428 -0
  469. package/src/workflow/__tests__/structured-data-viewer.test.tsx +1 -1
  470. package/src/workflow/__tests__/task-approval.test.ts +149 -0
  471. package/src/workflow/__tests__/task-detail-io.test.ts +40 -0
  472. package/src/workflow/__tests__/task-presentation.test.ts +479 -0
  473. package/src/workflow/__tests__/useActiveTaskName.test.ts +4 -0
  474. package/src/workflow/__tests__/useApprovalBoundary.test.ts +158 -0
  475. package/src/workflow/__tests__/useExecutionAnnouncements.test.ts +4 -0
  476. package/src/workflow/__tests__/useFollowExecution.test.ts +2 -89
  477. package/src/workflow/__tests__/useWorkflowExecutionFileChanges.test.tsx +412 -0
  478. package/src/workflow/__tests__/useWorkflowExecutionPanel.test.ts +297 -0
  479. package/src/workflow/__tests__/useWorkflowExecutionRailViews.test.tsx +115 -0
  480. package/src/workflow/deriveWorkflowArtifactItems.ts +59 -0
  481. package/src/workflow/deriveWorkflowUsageItems.ts +73 -0
  482. package/src/workflow/diagnosis-document.ts +31 -0
  483. package/src/workflow/execution/index.ts +0 -15
  484. package/src/workflow/facets/WorkflowArtifactsTab.tsx +99 -0
  485. package/src/workflow/facets/WorkflowChangesTab.tsx +129 -0
  486. package/src/workflow/facets/WorkflowUsageTab.tsx +258 -0
  487. package/src/workflow/format-utils.ts +2 -3
  488. package/src/workflow/index.ts +106 -62
  489. package/src/workflow/inspector/index.ts +0 -4
  490. package/src/workflow/instance/WorkflowInstanceList.tsx +59 -41
  491. package/src/workflow/instance/__tests__/WorkflowInstanceList.test.tsx +156 -0
  492. package/src/workflow/task-detail/index.ts +11 -0
  493. package/src/workflow/task-detail/task-approval.ts +158 -0
  494. package/src/workflow/task-detail/task-detail-io.ts +65 -0
  495. package/src/workflow/thread/WorkflowTaskThread.tsx +845 -0
  496. package/src/workflow/thread/project-thread-items.ts +235 -0
  497. package/src/workflow/thread/task-presentation.ts +427 -0
  498. package/src/workflow/thread/thread-presentation.ts +59 -0
  499. package/src/workflow/thread/useWorkflowThreadItems.ts +34 -0
  500. package/src/workflow/useApprovalBoundary.ts +72 -0
  501. package/src/workflow/useFollowExecution.ts +0 -26
  502. package/src/workflow/useWorkflowArtifactDownload.ts +68 -0
  503. package/src/workflow/useWorkflowExecutionActions.ts +3 -2
  504. package/src/workflow/useWorkflowExecutionFileChanges.ts +341 -0
  505. package/src/workflow/useWorkflowExecutionGraph.ts +3 -43
  506. package/src/workflow/useWorkflowExecutionPanel.ts +292 -0
  507. package/src/workflow/useWorkflowExecutionRailViews.tsx +173 -0
  508. package/src/workspace/FileViewer.tsx +3 -3
  509. package/src/workspace/PanelChip.tsx +103 -0
  510. package/src/workspace/WorkspaceSurface.tsx +50 -6
  511. package/src/workspace/__tests__/WorkspaceSurface.test.tsx +110 -0
  512. package/src/workspace/index.ts +3 -0
  513. package/styles.css +1 -1
  514. package/workflow/WorkflowAgentExecutionDocument.d.ts +79 -0
  515. package/workflow/WorkflowAgentExecutionDocument.d.ts.map +1 -0
  516. package/workflow/WorkflowAgentExecutionDocument.js +87 -0
  517. package/workflow/WorkflowAgentExecutionDocument.js.map +1 -0
  518. package/workflow/WorkflowApprovalList.d.ts +62 -0
  519. package/workflow/WorkflowApprovalList.d.ts.map +1 -0
  520. package/workflow/WorkflowApprovalList.js +52 -0
  521. package/workflow/WorkflowApprovalList.js.map +1 -0
  522. package/workflow/WorkflowArtifactDocument.d.ts +29 -0
  523. package/workflow/WorkflowArtifactDocument.d.ts.map +1 -0
  524. package/workflow/WorkflowArtifactDocument.js +89 -0
  525. package/workflow/WorkflowArtifactDocument.js.map +1 -0
  526. package/workflow/WorkflowExecutionGraph.d.ts +15 -13
  527. package/workflow/WorkflowExecutionGraph.d.ts.map +1 -1
  528. package/workflow/WorkflowExecutionGraph.js +18 -53
  529. package/workflow/WorkflowExecutionGraph.js.map +1 -1
  530. package/workflow/WorkflowExecutionViewer.d.ts +8 -5
  531. package/workflow/WorkflowExecutionViewer.d.ts.map +1 -1
  532. package/workflow/WorkflowExecutionViewer.js +329 -54
  533. package/workflow/WorkflowExecutionViewer.js.map +1 -1
  534. package/workflow/WorkflowFileReviewList.d.ts +1 -1
  535. package/workflow/WorkflowFileReviewList.js +1 -1
  536. package/workflow/WorkflowTaskApprovalCard.d.ts +4 -3
  537. package/workflow/WorkflowTaskApprovalCard.d.ts.map +1 -1
  538. package/workflow/WorkflowTaskApprovalCard.js +5 -4
  539. package/workflow/WorkflowTaskApprovalCard.js.map +1 -1
  540. package/workflow/WorkflowTaskApprovalSummary.d.ts +6 -6
  541. package/workflow/WorkflowTaskApprovalSummary.js +5 -5
  542. package/workflow/deriveWorkflowArtifactItems.d.ts +30 -0
  543. package/workflow/deriveWorkflowArtifactItems.d.ts.map +1 -0
  544. package/workflow/deriveWorkflowArtifactItems.js +38 -0
  545. package/workflow/deriveWorkflowArtifactItems.js.map +1 -0
  546. package/workflow/deriveWorkflowUsageItems.d.ts +36 -0
  547. package/workflow/deriveWorkflowUsageItems.d.ts.map +1 -0
  548. package/workflow/deriveWorkflowUsageItems.js +50 -0
  549. package/workflow/deriveWorkflowUsageItems.js.map +1 -0
  550. package/workflow/diagnosis-document.d.ts +17 -0
  551. package/workflow/diagnosis-document.d.ts.map +1 -0
  552. package/workflow/diagnosis-document.js +29 -0
  553. package/workflow/diagnosis-document.js.map +1 -0
  554. package/workflow/execution/index.d.ts +0 -2
  555. package/workflow/execution/index.d.ts.map +1 -1
  556. package/workflow/execution/index.js +0 -2
  557. package/workflow/execution/index.js.map +1 -1
  558. package/workflow/facets/WorkflowArtifactsTab.d.ts +26 -0
  559. package/workflow/facets/WorkflowArtifactsTab.d.ts.map +1 -0
  560. package/workflow/facets/WorkflowArtifactsTab.js +34 -0
  561. package/workflow/facets/WorkflowArtifactsTab.js.map +1 -0
  562. package/workflow/facets/WorkflowChangesTab.d.ts +37 -0
  563. package/workflow/facets/WorkflowChangesTab.d.ts.map +1 -0
  564. package/workflow/facets/WorkflowChangesTab.js +50 -0
  565. package/workflow/facets/WorkflowChangesTab.js.map +1 -0
  566. package/workflow/facets/WorkflowUsageTab.d.ts +27 -0
  567. package/workflow/facets/WorkflowUsageTab.d.ts.map +1 -0
  568. package/workflow/facets/WorkflowUsageTab.js +87 -0
  569. package/workflow/facets/WorkflowUsageTab.js.map +1 -0
  570. package/workflow/format-utils.d.ts +2 -3
  571. package/workflow/format-utils.d.ts.map +1 -1
  572. package/workflow/format-utils.js +2 -3
  573. package/workflow/format-utils.js.map +1 -1
  574. package/workflow/index.d.ts +21 -10
  575. package/workflow/index.d.ts.map +1 -1
  576. package/workflow/index.js +29 -14
  577. package/workflow/index.js.map +1 -1
  578. package/workflow/inspector/index.d.ts +0 -2
  579. package/workflow/inspector/index.d.ts.map +1 -1
  580. package/workflow/inspector/index.js +0 -2
  581. package/workflow/inspector/index.js.map +1 -1
  582. package/workflow/instance/WorkflowInstanceList.d.ts.map +1 -1
  583. package/workflow/instance/WorkflowInstanceList.js +11 -3
  584. package/workflow/instance/WorkflowInstanceList.js.map +1 -1
  585. package/workflow/task-detail/StructuredDataViewer.d.ts.map +1 -0
  586. package/workflow/task-detail/StructuredDataViewer.js.map +1 -0
  587. package/workflow/task-detail/index.d.ts +4 -0
  588. package/workflow/task-detail/index.d.ts.map +1 -0
  589. package/workflow/task-detail/index.js +4 -0
  590. package/workflow/task-detail/index.js.map +1 -0
  591. package/workflow/task-detail/task-approval.d.ts +89 -0
  592. package/workflow/task-detail/task-approval.d.ts.map +1 -0
  593. package/workflow/task-detail/task-approval.js +84 -0
  594. package/workflow/task-detail/task-approval.js.map +1 -0
  595. package/workflow/task-detail/task-detail-io.d.ts +39 -0
  596. package/workflow/task-detail/task-detail-io.d.ts.map +1 -0
  597. package/workflow/task-detail/task-detail-io.js +42 -0
  598. package/workflow/task-detail/task-detail-io.js.map +1 -0
  599. package/workflow/thread/WorkflowTaskThread.d.ts +91 -0
  600. package/workflow/thread/WorkflowTaskThread.d.ts.map +1 -0
  601. package/workflow/thread/WorkflowTaskThread.js +318 -0
  602. package/workflow/thread/WorkflowTaskThread.js.map +1 -0
  603. package/workflow/thread/project-thread-items.d.ts +108 -0
  604. package/workflow/thread/project-thread-items.d.ts.map +1 -0
  605. package/workflow/thread/project-thread-items.js +126 -0
  606. package/workflow/thread/project-thread-items.js.map +1 -0
  607. package/workflow/thread/task-presentation.d.ts +73 -0
  608. package/workflow/thread/task-presentation.d.ts.map +1 -0
  609. package/workflow/thread/task-presentation.js +331 -0
  610. package/workflow/thread/task-presentation.js.map +1 -0
  611. package/workflow/thread/thread-presentation.d.ts +28 -0
  612. package/workflow/thread/thread-presentation.d.ts.map +1 -0
  613. package/workflow/thread/thread-presentation.js +28 -0
  614. package/workflow/thread/thread-presentation.js.map +1 -0
  615. package/workflow/thread/useWorkflowThreadItems.d.ts +16 -0
  616. package/workflow/thread/useWorkflowThreadItems.d.ts.map +1 -0
  617. package/workflow/thread/useWorkflowThreadItems.js +22 -0
  618. package/workflow/thread/useWorkflowThreadItems.js.map +1 -0
  619. package/workflow/useApprovalBoundary.d.ts +38 -0
  620. package/workflow/useApprovalBoundary.d.ts.map +1 -0
  621. package/workflow/useApprovalBoundary.js +55 -0
  622. package/workflow/useApprovalBoundary.js.map +1 -0
  623. package/workflow/useFollowExecution.d.ts +0 -20
  624. package/workflow/useFollowExecution.d.ts.map +1 -1
  625. package/workflow/useFollowExecution.js +0 -17
  626. package/workflow/useFollowExecution.js.map +1 -1
  627. package/workflow/useWorkflowArtifactDownload.d.ts +28 -0
  628. package/workflow/useWorkflowArtifactDownload.d.ts.map +1 -0
  629. package/workflow/useWorkflowArtifactDownload.js +45 -0
  630. package/workflow/useWorkflowArtifactDownload.js.map +1 -0
  631. package/workflow/useWorkflowExecutionActions.d.ts +3 -2
  632. package/workflow/useWorkflowExecutionActions.d.ts.map +1 -1
  633. package/workflow/useWorkflowExecutionActions.js.map +1 -1
  634. package/workflow/useWorkflowExecutionFileChanges.d.ts +107 -0
  635. package/workflow/useWorkflowExecutionFileChanges.d.ts.map +1 -0
  636. package/workflow/useWorkflowExecutionFileChanges.js +244 -0
  637. package/workflow/useWorkflowExecutionFileChanges.js.map +1 -0
  638. package/workflow/useWorkflowExecutionGraph.d.ts +1 -14
  639. package/workflow/useWorkflowExecutionGraph.d.ts.map +1 -1
  640. package/workflow/useWorkflowExecutionGraph.js +2 -25
  641. package/workflow/useWorkflowExecutionGraph.js.map +1 -1
  642. package/workflow/useWorkflowExecutionPanel.d.ts +108 -0
  643. package/workflow/useWorkflowExecutionPanel.d.ts.map +1 -0
  644. package/workflow/useWorkflowExecutionPanel.js +103 -0
  645. package/workflow/useWorkflowExecutionPanel.js.map +1 -0
  646. package/workflow/useWorkflowExecutionRailViews.d.ts +46 -0
  647. package/workflow/useWorkflowExecutionRailViews.d.ts.map +1 -0
  648. package/workflow/useWorkflowExecutionRailViews.js +81 -0
  649. package/workflow/useWorkflowExecutionRailViews.js.map +1 -0
  650. package/workspace/FileViewer.d.ts +1 -1
  651. package/workspace/FileViewer.js +3 -3
  652. package/workspace/FileViewer.js.map +1 -1
  653. package/workspace/PanelChip.d.ts +27 -0
  654. package/workspace/PanelChip.d.ts.map +1 -0
  655. package/workspace/PanelChip.js +42 -0
  656. package/workspace/PanelChip.js.map +1 -0
  657. package/workspace/WorkspaceSurface.d.ts +25 -1
  658. package/workspace/WorkspaceSurface.d.ts.map +1 -1
  659. package/workspace/WorkspaceSurface.js +21 -9
  660. package/workspace/WorkspaceSurface.js.map +1 -1
  661. package/workspace/index.d.ts +3 -1
  662. package/workspace/index.d.ts.map +1 -1
  663. package/workspace/index.js +1 -0
  664. package/workspace/index.js.map +1 -1
  665. package/execution/ThreadSelectionContext.d.ts +0 -17
  666. package/execution/ThreadSelectionContext.d.ts.map +0 -1
  667. package/execution/ThreadSelectionContext.js +0 -18
  668. package/execution/ThreadSelectionContext.js.map +0 -1
  669. package/execution/useThreadSelection.d.ts +0 -35
  670. package/execution/useThreadSelection.d.ts.map +0 -1
  671. package/execution/useThreadSelection.js +0 -65
  672. package/execution/useThreadSelection.js.map +0 -1
  673. package/internal/store/selection-store.d.ts +0 -53
  674. package/internal/store/selection-store.d.ts.map +0 -1
  675. package/internal/store/selection-store.js +0 -88
  676. package/internal/store/selection-store.js.map +0 -1
  677. package/session/artifact-document.d.ts.map +0 -1
  678. package/session/artifact-document.js +0 -22
  679. package/session/artifact-document.js.map +0 -1
  680. package/session/facets/InspectTab.d.ts +0 -13
  681. package/session/facets/InspectTab.d.ts.map +0 -1
  682. package/session/facets/InspectTab.js +0 -19
  683. package/session/facets/InspectTab.js.map +0 -1
  684. package/src/execution/ThreadSelectionContext.tsx +0 -20
  685. package/src/execution/useThreadSelection.ts +0 -95
  686. package/src/internal/store/__tests__/selection-store.test.ts +0 -115
  687. package/src/internal/store/selection-store.ts +0 -112
  688. package/src/session/artifact-document.ts +0 -23
  689. package/src/session/facets/InspectTab.tsx +0 -57
  690. package/src/workflow/WorkflowExecutionApprovalCard.tsx +0 -154
  691. package/src/workflow/WorkflowExecutionArtifactPanel.tsx +0 -107
  692. package/src/workflow/WorkflowExecutionCostPanel.tsx +0 -120
  693. package/src/workflow/WorkflowExecutionTaskPanel.tsx +0 -129
  694. package/src/workflow/WorkflowExecutionTimeline.tsx +0 -151
  695. package/src/workflow/WorkflowExecutionTimelineEvent.tsx +0 -497
  696. package/src/workflow/__tests__/ExecutionInspector.test.tsx +0 -155
  697. package/src/workflow/__tests__/WorkflowExecutionApprovalCard.test.tsx +0 -129
  698. package/src/workflow/__tests__/derive-task-detail.test.ts +0 -1265
  699. package/src/workflow/__tests__/derive-waterfall-entries.test.ts +0 -521
  700. package/src/workflow/__tests__/execution-inspector.test.tsx +0 -332
  701. package/src/workflow/execution/derive-waterfall-entries.ts +0 -377
  702. package/src/workflow/execution/useWaterfallEntries.ts +0 -125
  703. package/src/workflow/execution-inspector/AgentCallTab.tsx +0 -169
  704. package/src/workflow/execution-inspector/ErrorTab.tsx +0 -110
  705. package/src/workflow/execution-inspector/EventLogTab.tsx +0 -79
  706. package/src/workflow/execution-inspector/ExecutionInspector.tsx +0 -341
  707. package/src/workflow/execution-inspector/InputOutputTab.tsx +0 -325
  708. package/src/workflow/execution-inspector/RetriesTab.tsx +0 -68
  709. package/src/workflow/execution-inspector/SummaryTab.tsx +0 -62
  710. package/src/workflow/execution-inspector/derive-task-detail.ts +0 -584
  711. package/src/workflow/execution-inspector/index.ts +0 -14
  712. package/src/workflow/execution-inspector/useExecutionTaskDetail.ts +0 -55
  713. package/src/workflow/inspector/ExecutionInspectorAdapter.tsx +0 -40
  714. package/src/workflow/waterfall/WaterfallBar.tsx +0 -167
  715. package/src/workflow/waterfall/WaterfallRow.tsx +0 -112
  716. package/src/workflow/waterfall/WaterfallScale.tsx +0 -52
  717. package/src/workflow/waterfall/WaterfallTimeline.tsx +0 -138
  718. package/src/workflow/waterfall/WaterfallTooltip.tsx +0 -74
  719. package/src/workflow/waterfall/index.ts +0 -5
  720. package/workflow/WorkflowExecutionApprovalCard.d.ts +0 -34
  721. package/workflow/WorkflowExecutionApprovalCard.d.ts.map +0 -1
  722. package/workflow/WorkflowExecutionApprovalCard.js +0 -46
  723. package/workflow/WorkflowExecutionApprovalCard.js.map +0 -1
  724. package/workflow/WorkflowExecutionArtifactPanel.d.ts +0 -15
  725. package/workflow/WorkflowExecutionArtifactPanel.d.ts.map +0 -1
  726. package/workflow/WorkflowExecutionArtifactPanel.js +0 -46
  727. package/workflow/WorkflowExecutionArtifactPanel.js.map +0 -1
  728. package/workflow/WorkflowExecutionCostPanel.d.ts +0 -18
  729. package/workflow/WorkflowExecutionCostPanel.d.ts.map +0 -1
  730. package/workflow/WorkflowExecutionCostPanel.js +0 -31
  731. package/workflow/WorkflowExecutionCostPanel.js.map +0 -1
  732. package/workflow/WorkflowExecutionTaskPanel.d.ts +0 -24
  733. package/workflow/WorkflowExecutionTaskPanel.d.ts.map +0 -1
  734. package/workflow/WorkflowExecutionTaskPanel.js +0 -51
  735. package/workflow/WorkflowExecutionTaskPanel.js.map +0 -1
  736. package/workflow/WorkflowExecutionTimeline.d.ts +0 -42
  737. package/workflow/WorkflowExecutionTimeline.d.ts.map +0 -1
  738. package/workflow/WorkflowExecutionTimeline.js +0 -52
  739. package/workflow/WorkflowExecutionTimeline.js.map +0 -1
  740. package/workflow/WorkflowExecutionTimelineEvent.d.ts +0 -25
  741. package/workflow/WorkflowExecutionTimelineEvent.d.ts.map +0 -1
  742. package/workflow/WorkflowExecutionTimelineEvent.js +0 -179
  743. package/workflow/WorkflowExecutionTimelineEvent.js.map +0 -1
  744. package/workflow/execution/derive-waterfall-entries.d.ts +0 -85
  745. package/workflow/execution/derive-waterfall-entries.d.ts.map +0 -1
  746. package/workflow/execution/derive-waterfall-entries.js +0 -268
  747. package/workflow/execution/derive-waterfall-entries.js.map +0 -1
  748. package/workflow/execution/useWaterfallEntries.d.ts +0 -25
  749. package/workflow/execution/useWaterfallEntries.d.ts.map +0 -1
  750. package/workflow/execution/useWaterfallEntries.js +0 -67
  751. package/workflow/execution/useWaterfallEntries.js.map +0 -1
  752. package/workflow/execution-inspector/AgentCallTab.d.ts +0 -21
  753. package/workflow/execution-inspector/AgentCallTab.d.ts.map +0 -1
  754. package/workflow/execution-inspector/AgentCallTab.js +0 -36
  755. package/workflow/execution-inspector/AgentCallTab.js.map +0 -1
  756. package/workflow/execution-inspector/ErrorTab.d.ts +0 -9
  757. package/workflow/execution-inspector/ErrorTab.d.ts.map +0 -1
  758. package/workflow/execution-inspector/ErrorTab.js +0 -29
  759. package/workflow/execution-inspector/ErrorTab.js.map +0 -1
  760. package/workflow/execution-inspector/EventLogTab.d.ts +0 -11
  761. package/workflow/execution-inspector/EventLogTab.d.ts.map +0 -1
  762. package/workflow/execution-inspector/EventLogTab.js +0 -47
  763. package/workflow/execution-inspector/EventLogTab.js.map +0 -1
  764. package/workflow/execution-inspector/ExecutionInspector.d.ts +0 -69
  765. package/workflow/execution-inspector/ExecutionInspector.d.ts.map +0 -1
  766. package/workflow/execution-inspector/ExecutionInspector.js +0 -145
  767. package/workflow/execution-inspector/ExecutionInspector.js.map +0 -1
  768. package/workflow/execution-inspector/InputOutputTab.d.ts +0 -20
  769. package/workflow/execution-inspector/InputOutputTab.d.ts.map +0 -1
  770. package/workflow/execution-inspector/InputOutputTab.js +0 -124
  771. package/workflow/execution-inspector/InputOutputTab.js.map +0 -1
  772. package/workflow/execution-inspector/RetriesTab.d.ts +0 -7
  773. package/workflow/execution-inspector/RetriesTab.d.ts.map +0 -1
  774. package/workflow/execution-inspector/RetriesTab.js +0 -11
  775. package/workflow/execution-inspector/RetriesTab.js.map +0 -1
  776. package/workflow/execution-inspector/StructuredDataViewer.d.ts.map +0 -1
  777. package/workflow/execution-inspector/StructuredDataViewer.js.map +0 -1
  778. package/workflow/execution-inspector/SummaryTab.d.ts +0 -7
  779. package/workflow/execution-inspector/SummaryTab.d.ts.map +0 -1
  780. package/workflow/execution-inspector/SummaryTab.js +0 -10
  781. package/workflow/execution-inspector/SummaryTab.js.map +0 -1
  782. package/workflow/execution-inspector/derive-task-detail.d.ts +0 -140
  783. package/workflow/execution-inspector/derive-task-detail.d.ts.map +0 -1
  784. package/workflow/execution-inspector/derive-task-detail.js +0 -366
  785. package/workflow/execution-inspector/derive-task-detail.js.map +0 -1
  786. package/workflow/execution-inspector/index.d.ts +0 -4
  787. package/workflow/execution-inspector/index.d.ts.map +0 -1
  788. package/workflow/execution-inspector/index.js +0 -4
  789. package/workflow/execution-inspector/index.js.map +0 -1
  790. package/workflow/execution-inspector/useExecutionTaskDetail.d.ts +0 -38
  791. package/workflow/execution-inspector/useExecutionTaskDetail.d.ts.map +0 -1
  792. package/workflow/execution-inspector/useExecutionTaskDetail.js +0 -37
  793. package/workflow/execution-inspector/useExecutionTaskDetail.js.map +0 -1
  794. package/workflow/inspector/ExecutionInspectorAdapter.d.ts +0 -26
  795. package/workflow/inspector/ExecutionInspectorAdapter.d.ts.map +0 -1
  796. package/workflow/inspector/ExecutionInspectorAdapter.js +0 -23
  797. package/workflow/inspector/ExecutionInspectorAdapter.js.map +0 -1
  798. package/workflow/waterfall/WaterfallBar.d.ts +0 -19
  799. package/workflow/waterfall/WaterfallBar.d.ts.map +0 -1
  800. package/workflow/waterfall/WaterfallBar.js +0 -70
  801. package/workflow/waterfall/WaterfallBar.js.map +0 -1
  802. package/workflow/waterfall/WaterfallRow.d.ts +0 -18
  803. package/workflow/waterfall/WaterfallRow.d.ts.map +0 -1
  804. package/workflow/waterfall/WaterfallRow.js +0 -45
  805. package/workflow/waterfall/WaterfallRow.js.map +0 -1
  806. package/workflow/waterfall/WaterfallScale.d.ts +0 -14
  807. package/workflow/waterfall/WaterfallScale.d.ts.map +0 -1
  808. package/workflow/waterfall/WaterfallScale.js +0 -22
  809. package/workflow/waterfall/WaterfallScale.js.map +0 -1
  810. package/workflow/waterfall/WaterfallTimeline.d.ts +0 -46
  811. package/workflow/waterfall/WaterfallTimeline.d.ts.map +0 -1
  812. package/workflow/waterfall/WaterfallTimeline.js +0 -60
  813. package/workflow/waterfall/WaterfallTimeline.js.map +0 -1
  814. package/workflow/waterfall/WaterfallTooltip.d.ts +0 -15
  815. package/workflow/waterfall/WaterfallTooltip.d.ts.map +0 -1
  816. package/workflow/waterfall/WaterfallTooltip.js +0 -20
  817. package/workflow/waterfall/WaterfallTooltip.js.map +0 -1
  818. package/workflow/waterfall/index.d.ts +0 -6
  819. package/workflow/waterfall/index.d.ts.map +0 -1
  820. package/workflow/waterfall/index.js +0 -6
  821. package/workflow/waterfall/index.js.map +0 -1
  822. /package/src/workflow/{execution-inspector → task-detail}/StructuredDataViewer.tsx +0 -0
  823. /package/workflow/{execution-inspector → task-detail}/StructuredDataViewer.d.ts +0 -0
  824. /package/workflow/{execution-inspector → task-detail}/StructuredDataViewer.js +0 -0
@@ -1,103 +1,17 @@
1
1
  "use client";
2
2
 
3
- import { useEffect, useRef } from "react";
4
- import { cn } from "@stigmer/theme";
3
+ // The session viewer's panel toggle chip — a session-named alias of the
4
+ // shared workspace PanelChip (the workflow viewer mounts the same chip).
5
5
 
6
- /** Props for {@link SessionPanelChip}. */
7
- export interface SessionPanelChipProps {
8
- /** Whether the panel is currently expanded. */
9
- readonly isOpen: boolean;
10
- /** Toggles the panel open/collapsed. */
11
- readonly onToggle: () => void;
12
- /**
13
- * Aggregate count of facet items (write-backs + artifacts) awaiting the
14
- * user. Rendered as a dot-count while collapsed — the panel's only "something
15
- * arrived" signal, since arrivals never auto-open the panel.
16
- */
17
- readonly badgeCount?: number;
18
- }
19
-
20
- /**
21
- * The always-mounted top-right toggle for the unified session panel — the
22
- * Cursor "Show panel" chip. Collapsed, it carries the pending-item count;
23
- * open, it is the hide affordance. Being a small leaf, it is also the one
24
- * place that may safely carry per-arrival re-renders while the panel subtree
25
- * is unmounted. Execution status deliberately does not surface here (or
26
- * anywhere else in the viewer chrome) — the thread itself communicates run
27
- * state.
28
- *
29
- * All visual properties flow through `--stgm-*` tokens (DD-005).
30
- */
31
- export function SessionPanelChip({
32
- isOpen,
33
- onToggle,
34
- badgeCount,
35
- }: SessionPanelChipProps) {
36
- const showCount = !isOpen && badgeCount != null && badgeCount > 0;
37
-
38
- // Focus restoration: collapsing unmounts the panel subtree, so keyboard
39
- // focus that lived inside it (rail, tabs, viewer) falls to <body>. Reclaim
40
- // it here — the chip is the collapse's logical origin. Focus resting
41
- // anywhere else (e.g. the composer) is respected. Opening deliberately does
42
- // NOT move focus: the chip is a standard disclosure trigger.
43
- const buttonRef = useRef<HTMLButtonElement>(null);
44
- const prevOpenRef = useRef(isOpen);
45
- useEffect(() => {
46
- if (prevOpenRef.current && !isOpen && document.activeElement === document.body) {
47
- buttonRef.current?.focus();
48
- }
49
- prevOpenRef.current = isOpen;
50
- }, [isOpen]);
6
+ import { PanelChip, type PanelChipProps } from "../workspace/PanelChip.js";
51
7
 
52
- return (
53
- <button
54
- ref={buttonRef}
55
- type="button"
56
- onClick={onToggle}
57
- aria-expanded={isOpen}
58
- aria-label={isOpen ? "Hide panel" : "Show panel"}
59
- title={isOpen ? "Hide panel" : "Show panel"}
60
- className={cn(
61
- "flex items-center gap-1.5 rounded-md border border-border bg-card px-1.5 py-1",
62
- "text-muted-foreground transition-colors hover:bg-muted hover:text-foreground",
63
- "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
64
- )}
65
- >
66
- {showCount && (
67
- <span
68
- aria-label={`${badgeCount} new items`}
69
- className="inline-flex min-w-[1rem] items-center justify-center rounded-full bg-primary px-1 py-px text-[10px] font-medium leading-none text-primary-foreground"
70
- >
71
- {badgeCount}
72
- </span>
73
- )}
74
- <PanelIcon open={isOpen} />
75
- </button>
76
- );
77
- }
8
+ /** Props for {@link SessionPanelChip}. */
9
+ export type SessionPanelChipProps = PanelChipProps;
78
10
 
79
11
  /**
80
- * Panel-layout glyph: a frame with its right region filled while the panel is
81
- * open, hollow while collapsed mirroring the state it toggles to at a glance.
12
+ * The always-mounted top-right toggle for the unified session panel see
13
+ * {@link PanelChip} for behavior (badge-while-collapsed, focus restoration).
14
+ * Kept as a named alias so session-side call sites and tests read in the
15
+ * session's vocabulary.
82
16
  */
83
- function PanelIcon({ open }: { readonly open: boolean }) {
84
- return (
85
- <svg
86
- width="16"
87
- height="16"
88
- viewBox="0 0 16 16"
89
- fill="none"
90
- stroke="currentColor"
91
- strokeWidth="1.3"
92
- strokeLinecap="round"
93
- strokeLinejoin="round"
94
- aria-hidden="true"
95
- >
96
- <rect x="1.5" y="2.5" width="13" height="11" rx="1.5" />
97
- <path d="M9.5 2.5v11" />
98
- {open && (
99
- <rect x="9.5" y="2.5" width="5" height="11" rx="1.5" fill="currentColor" stroke="none" />
100
- )}
101
- </svg>
102
- );
103
- }
17
+ export const SessionPanelChip = PanelChip;
@@ -20,10 +20,7 @@ import {
20
20
  import type { InteractionModeOption, SessionComposerHandle, SessionComposerSubmitContext } from "../composer/index.js";
21
21
  import type { ApplyResourceResult } from "../library/useApplyResource.js";
22
22
  import { ResizableSplit } from "../internal/ResizableSplit.js";
23
- import { SelectionStore } from "../internal/store/selection-store.js";
24
23
  import { useWorkspaceEditors, isVirtualEntryId } from "../internal/store/index.js";
25
- import { ThreadSelectionContext } from "../execution/ThreadSelectionContext.js";
26
- import { useSelectedThreadItem } from "../execution/useThreadSelection.js";
27
24
  import { isTerminalPhase } from "../execution/execution-phases.js";
28
25
  import { MessageThread, type MessageThreadSlots } from "../execution/MessageThread.js";
29
26
  import { FileChangeProgressBar } from "../execution/FileChangeProgressBar.js";
@@ -43,12 +40,13 @@ import {
43
40
  } from "../library/detect-plan-artifact.js";
44
41
  import { findStreamingPlan } from "../library/detect-streaming-plan.js";
45
42
  import { useSessionPageFlow } from "./useSessionPageFlow.js";
43
+ import { isChannelOriginSession } from "./channelOrigin.js";
46
44
  import { useOpenFileChange } from "./useOpenFileChange.js";
47
45
  import { usePlanDraft, planDraftKey, type PlanDraftController } from "./usePlanDraft.js";
48
46
  import { PlanEditor } from "./PlanEditor.js";
49
47
  import { PlanStreamingDocument } from "./PlanStreamingDocument.js";
50
48
  import { PLAN_DOCUMENT_ENTRY_ID, PLAN_DOCUMENT_PATH } from "./plan-document.js";
51
- import { ARTIFACT_DOCUMENT_ENTRY_ID } from "./artifact-document.js";
49
+ import { ARTIFACT_DOCUMENT_ENTRY_ID } from "../execution/artifact-document.js";
52
50
  import { ArtifactDocument } from "../execution/ArtifactDocument.js";
53
51
  import { useSessionRailViews } from "./useSessionRailViews.js";
54
52
  import { useSessionPanel, type SessionPanelController } from "./useSessionPanel.js";
@@ -217,6 +215,12 @@ export interface SessionViewerProps {
217
215
  * reads a guest principal cannot make — follow-ups simply continue
218
216
  * on the session's bound agent instance.
219
217
  *
218
+ * `"observer"` is a read-only transcript: no composer, no
219
+ * approval/edit/retry/build affordances, no access management. The
220
+ * viewer also self-selects observer for channel-originated sessions
221
+ * (the `stigmer.ai/channel-id` label) regardless of this prop, since
222
+ * channel viewers hold `can_view` only.
223
+ *
220
224
  * See {@link SessionAudience}.
221
225
  *
222
226
  * @default "integrator"
@@ -259,15 +263,12 @@ export interface SessionViewerProps {
259
263
  * banners + `SessionComposer`
260
264
  * - **Session panel** (secondary): the unified `WorkspaceSurface` — explorer,
261
265
  * search, read-only editor, and the session facets (Config, Changes,
262
- * Artifacts, Usage, Inspect) as injected rail views. Collapsed by default
266
+ * Artifacts, Usage) as injected rail views. Collapsed by default
263
267
  * to a top-right chip; opening a file (tree, search, or a transcript path)
264
268
  * expands it.
265
269
  *
266
270
  * Connected via `ResizableSplit` with persisted chat width.
267
271
  *
268
- * Thread selection is provided via `ThreadSelectionContext` (Phase 2
269
- * opt-in) for render-isolated per-item selection.
270
- *
271
272
  * Framework-agnostic — no Next.js, no Tauri, no routing deps. Host
272
273
  * apps inject platform-specific values via props (DD-004/DD-016).
273
274
  *
@@ -313,20 +314,22 @@ export function SessionViewer({
313
314
  const flow = useSessionPageFlow({ sessionId, org, getRuntimeEnv, audience });
314
315
  const { conv } = flow;
315
316
  const isGuest = audience === "guest";
316
- // Both curated audiences (endUser, guest) lock the agent and hide the
317
- // integrator configuration; guest adds its own restrictions below.
318
- const isCurated = audience !== "integrator";
317
+ // Channel-originated sessions (Slack/WhatsApp conversations owned by the
318
+ // channel runtime) are read-only for every console caller — the server
319
+ // grants channel viewers can_view without can_create_execution_in — so the
320
+ // viewer self-selects the observer presentation regardless of the host's
321
+ // audience. Every entry point (a conversations list, a pasted URL) renders
322
+ // read-only without host wiring.
323
+ const isObserver =
324
+ audience === "observer" || isChannelOriginSession(conv.session);
325
+ // Curated audiences (endUser, guest, observer) lock the agent and hide the
326
+ // integrator configuration; guest and observer add their own restrictions.
327
+ const isCurated = audience !== "integrator" || isObserver;
319
328
 
320
329
  const [modelId, setModelId] = flow.model;
321
330
  const [interactionMode, setInteractionMode] = flow.interactionMode;
322
331
  const composerRef = useRef<SessionComposerHandle>(null);
323
332
 
324
- const selectionStoreRef = useRef<SelectionStore | null>(null);
325
- if (!selectionStoreRef.current) {
326
- selectionStoreRef.current = new SelectionStore();
327
- }
328
- const selectionStore = selectionStoreRef.current;
329
-
330
333
  const phase =
331
334
  flow.displayExecution?.status?.phase ??
332
335
  ExecutionPhase.EXECUTION_PHASE_UNSPECIFIED;
@@ -567,75 +570,82 @@ export function SessionViewer({
567
570
  )}
568
571
  </div>
569
572
 
570
- <ThreadSelectionContext.Provider value={selectionStore}>
571
- {/* One layout, collapsed by default: chat fills the row until the panel
572
- opens, then becomes the fixed narrow pane on the left while the
573
- panel takes the flexible region. Collapsing goes through the
574
- split's `collapsedPane` (CSS, not conditional structure), so the
575
- conversation is always the same first child and an open/close never
576
- remounts it (invariant 1). */}
577
- <ResizableSplit
578
- resizablePane="primary"
579
- collapsedPane={panel.isOpen ? "none" : "secondary"}
580
- defaultSize={420}
581
- minSize={320}
582
- maxSize={640}
583
- storageKey="stgm-session-chat-width"
584
- responsiveCollapse={panel.isOpen ? "primary" : "none"}
585
- ariaLabel="Resize chat panel"
586
- className="min-h-0 flex-1"
587
- primary={
588
- <ConversationColumn
573
+ {/* One layout, collapsed by default: chat fills the row until the panel
574
+ opens, then becomes the fixed narrow pane on the left while the
575
+ panel takes the flexible region. Collapsing goes through the
576
+ split's `collapsedPane` (CSS, not conditional structure), so the
577
+ conversation is always the same first child and an open/close never
578
+ remounts it (invariant 1). */}
579
+ <ResizableSplit
580
+ resizablePane="primary"
581
+ collapsedPane={panel.isOpen ? "none" : "secondary"}
582
+ defaultSize={420}
583
+ minSize={320}
584
+ maxSize={640}
585
+ storageKey="stgm-session-chat-width"
586
+ responsiveCollapse={panel.isOpen ? "primary" : "none"}
587
+ ariaLabel="Resize chat panel"
588
+ className="min-h-0 flex-1"
589
+ primary={
590
+ <ConversationColumn
591
+ flow={flow}
592
+ modelId={modelId}
593
+ setModelId={setModelId}
594
+ interactionMode={interactionMode}
595
+ setInteractionMode={setInteractionMode}
596
+ composerRef={composerRef}
597
+ org={org}
598
+ gitHubConnection={gitHubConnection}
599
+ enableGitHub={enableGitHub}
600
+ enableLocal={enableLocal}
601
+ onBrowseLocalFolder={onBrowseLocalFolder}
602
+ onBuildFromPlan={handleBuildFromPlan}
603
+ onOpenPlan={handleOpenPlan}
604
+ isBuildingFromPlan={isBuildingFromPlan}
605
+ planAttachFailed={planAttachFailed}
606
+ onDismissPlanAttachFailed={() => setPlanAttachFailed(false)}
607
+ onFilePathClick={handleTranscriptFilePathClick}
608
+ isCurated={isCurated}
609
+ isGuest={isGuest}
610
+ isObserver={isObserver}
611
+ threadSlots={threadSlots}
612
+ />
613
+ }
614
+ secondary={
615
+ panel.isOpen && !isGuest ? (
616
+ <SessionPanelRegion
589
617
  flow={flow}
590
- modelId={modelId}
591
- setModelId={setModelId}
592
- interactionMode={interactionMode}
593
- setInteractionMode={setInteractionMode}
594
- composerRef={composerRef}
595
618
  org={org}
596
- gitHubConnection={gitHubConnection}
597
- enableGitHub={enableGitHub}
619
+ panel={panel}
620
+ // Observers cannot manage access (no can_grant_access /
621
+ // can_view_access on a channel session) — the control is
622
+ // withheld rather than left to fail server-side.
623
+ accessSlot={isObserver ? undefined : accessSlot}
624
+ onApplied={onApplied}
625
+ // Implementing a plan submits an execution — a write an
626
+ // observer cannot make (can_create_execution_in is
627
+ // owner/viewer-only).
628
+ onImplementPlan={isObserver ? undefined : handleBuildFromPlan}
629
+ implementPlanDisabled={
630
+ isObserver || !conv.canSendFollowUp || isBuildingFromPlan
631
+ }
632
+ sessionPlan={sessionPlan}
633
+ streamingPlan={streamingPlan}
634
+ planDraft={planDraft}
635
+ openPlanExecutionId={openPlanExecutionId}
636
+ onOpenPlan={handleOpenPlan}
637
+ onOpenArtifact={handleOpenArtifact}
638
+ onActivateArtifact={handleActivateArtifact}
598
639
  enableLocal={enableLocal}
599
640
  onBrowseLocalFolder={onBrowseLocalFolder}
600
- onBuildFromPlan={handleBuildFromPlan}
601
- onOpenPlan={handleOpenPlan}
602
- isBuildingFromPlan={isBuildingFromPlan}
603
- planAttachFailed={planAttachFailed}
604
- onDismissPlanAttachFailed={() => setPlanAttachFailed(false)}
605
- onFilePathClick={handleTranscriptFilePathClick}
641
+ workspaceFileLister={workspaceFileLister}
642
+ workspaceFileReader={workspaceFileReader}
643
+ workspaceContentSearcher={workspaceContentSearcher}
606
644
  isCurated={isCurated}
607
- isGuest={isGuest}
608
- threadSlots={threadSlots}
609
645
  />
610
- }
611
- secondary={
612
- panel.isOpen && !isGuest ? (
613
- <SessionPanelRegion
614
- flow={flow}
615
- org={org}
616
- panel={panel}
617
- accessSlot={accessSlot}
618
- onApplied={onApplied}
619
- onImplementPlan={handleBuildFromPlan}
620
- implementPlanDisabled={!conv.canSendFollowUp || isBuildingFromPlan}
621
- sessionPlan={sessionPlan}
622
- streamingPlan={streamingPlan}
623
- planDraft={planDraft}
624
- openPlanExecutionId={openPlanExecutionId}
625
- onOpenPlan={handleOpenPlan}
626
- onOpenArtifact={handleOpenArtifact}
627
- onActivateArtifact={handleActivateArtifact}
628
- enableLocal={enableLocal}
629
- onBrowseLocalFolder={onBrowseLocalFolder}
630
- workspaceFileLister={workspaceFileLister}
631
- workspaceFileReader={workspaceFileReader}
632
- workspaceContentSearcher={workspaceContentSearcher}
633
- isCurated={isCurated}
634
- />
635
- ) : null
636
- }
637
- />
638
- </ThreadSelectionContext.Provider>
646
+ ) : null
647
+ }
648
+ />
639
649
  </div>
640
650
  );
641
651
  }
@@ -670,10 +680,16 @@ interface ConversationColumnProps {
670
680
  * let the path keep its copy / GitHub-link behavior.
671
681
  */
672
682
  readonly onFilePathClick: (path: string) => boolean;
673
- /** Curated audience (endUser or guest): locked agent, no integrator pickers. */
683
+ /** Curated audience (endUser, guest, or observer): locked agent, no integrator pickers. */
674
684
  readonly isCurated: boolean;
675
685
  /** Guest audience: pure chat — additionally no model picker, mode picker, attachments, or workspace. */
676
686
  readonly isGuest: boolean;
687
+ /**
688
+ * Observer audience: a read-only transcript. No composer, no
689
+ * approval/edit/retry/build affordances, no decision surfaces — live
690
+ * stream indicators stay (watching an in-flight turn is the point).
691
+ */
692
+ readonly isObserver: boolean;
677
693
  readonly threadSlots?: MessageThreadSlots;
678
694
  }
679
695
 
@@ -697,6 +713,7 @@ const ConversationColumn = memo(function ConversationColumn({
697
713
  onFilePathClick,
698
714
  isCurated,
699
715
  isGuest,
716
+ isObserver,
700
717
  threadSlots,
701
718
  }: ConversationColumnProps) {
702
719
  const { conv } = flow;
@@ -794,20 +811,28 @@ const ConversationColumn = memo(function ConversationColumn({
794
811
  activeStreamExecution={conv.activeStreamExecution}
795
812
  pendingUserMessage={conv.pendingUserMessage}
796
813
  pendingMessageFailed={!!conv.sendError && !!conv.pendingUserMessage}
797
- onRetrySend={conv.retryLastSend}
798
- onRetryExecution={onRetryExecution}
799
- onApprovalSubmit={flow.submitApproval}
814
+ // Observers get a pure transcript: every interaction affordance
815
+ // (retry, approvals, edit, build-from-plan) is opt-in via its
816
+ // callback, so passing none removes the controls entirely. Opening
817
+ // a plan read-only in the panel remains — reading is the point.
818
+ onRetrySend={isObserver ? undefined : conv.retryLastSend}
819
+ onRetryExecution={isObserver ? undefined : onRetryExecution}
820
+ onApprovalSubmit={isObserver ? undefined : flow.submitApproval}
800
821
  submittingApprovalIds={conv.submittingApprovalIds}
801
822
  approvalErrors={conv.approvalErrors}
802
823
  showFileReviewRecords
803
- onEditMessage={conv.isStoppable ? handleEditMessage : undefined}
824
+ onEditMessage={
825
+ isObserver || !conv.isStoppable ? undefined : handleEditMessage
826
+ }
804
827
  workspaceEntries={conv.workspaceEntries}
805
828
  onFilePathClick={onFilePathClick}
806
829
  sandboxWorkspaceRoot={flow.sandboxWorkspaceRoot}
807
- onBuildFromPlan={onBuildFromPlan}
830
+ onBuildFromPlan={isObserver ? undefined : onBuildFromPlan}
808
831
  onOpenPlan={onOpenPlan}
809
832
  org={org}
810
- planActionsDisabled={!conv.canSendFollowUp || isBuildingFromPlan}
833
+ planActionsDisabled={
834
+ isObserver || !conv.canSendFollowUp || isBuildingFromPlan
835
+ }
811
836
  planBuildPending={isBuildingFromPlan}
812
837
  contentColumn="center"
813
838
  slots={threadSlots}
@@ -817,6 +842,8 @@ const ConversationColumn = memo(function ConversationColumn({
817
842
  {planAttachFailed && (
818
843
  <PlanAttachFailedNotice onDismiss={onDismissPlanAttachFailed} />
819
844
  )}
845
+ {/* Live stream indicators stay for observers — watching an
846
+ in-flight conversation is the point of observability. */}
820
847
  {conv.isReconnecting && <ReconnectingIndicator />}
821
848
  {conv.connectTimedOut && (
822
849
  <ConnectTimedOutBanner onRetry={conv.reconnectStream} />
@@ -828,65 +855,73 @@ const ConversationColumn = memo(function ConversationColumn({
828
855
  onReconnect={conv.reconnectStream}
829
856
  />
830
857
  )}
831
- {sendError && <SendErrorBanner error={sendError} />}
832
- {flow.autoApproveAll && (
858
+ {!isObserver && sendError && <SendErrorBanner error={sendError} />}
859
+ {!isObserver && flow.autoApproveAll && (
833
860
  <AutoApproveIndicator onTurnOff={() => flow.setAutoApproveAll(false)} />
834
861
  )}
835
862
  {/* Pending file reviews dock here — pinned above the composer so the
836
863
  decision the agent is blocked on can never scroll out of view. The
837
864
  thread renders only observational rows (badges) and read-only
838
- settled records; this is the one decision surface. */}
865
+ settled records; this is the one decision surface. Observers get
866
+ the read-only progress strip but never the decision dock. */}
839
867
  <FilePathContext.Provider value={dockFilePathCtx}>
840
868
  {/* Mid-run live capture (DD-32): the "N files changed so far" strip for
841
869
  a still-running turn. Mutually exclusive with the dock below —
842
870
  progress shows while CAPTURING, the dock once AWAITING_REVIEW — so it
843
871
  hands off cleanly when review opens. Non-interactive. */}
844
872
  <FileChangeProgressBar progress={conv.fileChangeProgress} />
845
- <FileReviewDock
846
- changeSets={conv.fileChangeSets}
847
- onSubmit={conv.submitFileDecision}
848
- submittingDecisionKeys={conv.submittingFileDecisionKeys}
849
- decisionErrors={conv.fileDecisionErrors}
850
- />
873
+ {!isObserver && (
874
+ <FileReviewDock
875
+ changeSets={conv.fileChangeSets}
876
+ onSubmit={conv.submitFileDecision}
877
+ submittingDecisionKeys={conv.submittingFileDecisionKeys}
878
+ decisionErrors={conv.fileDecisionErrors}
879
+ />
880
+ )}
851
881
  </FilePathContext.Provider>
852
- <SessionComposer
853
- ref={composerRef}
854
- onSubmit={handleComposerSubmit}
855
- isSubmitting={conv.isSending}
856
- disabled={!conv.canSendFollowUp}
857
- onStop={conv.isStoppable ? handleStop : undefined}
858
- isStopping={conv.isStopping}
859
- isEditing={editingExecutionId != null}
860
- onCancelEdit={handleCancelEdit}
861
- org={org}
862
- harness={flow.harness}
863
- defaultModelId={modelId}
864
- onModelChange={setModelId}
865
- interactionMode={interactionMode}
866
- onInteractionModeChange={setInteractionMode}
867
- showInteractionModePicker={!isGuest}
868
- showModelSelector={!isGuest}
869
- enableAttachments={!isGuest}
870
- workspace={isGuest ? undefined : flow.workspace}
871
- gitHubConnection={isGuest ? undefined : gitHubConnection}
872
- enableGitHub={enableGitHub && !isGuest}
873
- enableLocal={enableLocal && !isGuest}
874
- onBrowseLocalFolder={onBrowseLocalFolder}
875
- agentRef={flow.agentRef}
876
- // Guests get no agent machinery: the session's agent is already
877
- // bound server-side, and the picker's resolution path performs
878
- // org reads a guest token cannot make.
879
- onAgentRefChange={isGuest ? undefined : flow.setAgentRef}
880
- onAgentResolutionChange={isGuest ? undefined : flow.setResolution}
881
- isDefaultAgent={flow.isDefaultAgent}
882
- lockAgent={isCurated}
883
- mcpServerUsages={isCurated ? undefined : flow.mcpServerUsages}
884
- onMcpServerUsagesChange={isCurated ? undefined : flow.setMcpServerUsages}
885
- skillRefs={isCurated ? undefined : flow.skillRefs}
886
- onSkillRefsChange={isCurated ? undefined : flow.setSkillRefs}
887
- sessionVariables={isCurated ? undefined : flow.sessionVariables}
888
- className="px-4 py-3"
889
- />
882
+ {/* Observers never get a composer: the server denies them
883
+ can_create_execution_in, so the send surface simply is not
884
+ offered — read-only by construction, not by a disabled state. */}
885
+ {!isObserver && (
886
+ <SessionComposer
887
+ ref={composerRef}
888
+ onSubmit={handleComposerSubmit}
889
+ isSubmitting={conv.isSending}
890
+ disabled={!conv.canSendFollowUp}
891
+ onStop={conv.isStoppable ? handleStop : undefined}
892
+ isStopping={conv.isStopping}
893
+ isEditing={editingExecutionId != null}
894
+ onCancelEdit={handleCancelEdit}
895
+ org={org}
896
+ harness={flow.harness}
897
+ defaultModelId={modelId}
898
+ onModelChange={setModelId}
899
+ interactionMode={interactionMode}
900
+ onInteractionModeChange={setInteractionMode}
901
+ showInteractionModePicker={!isGuest}
902
+ showModelSelector={!isGuest}
903
+ enableAttachments={!isGuest}
904
+ workspace={isGuest ? undefined : flow.workspace}
905
+ gitHubConnection={isGuest ? undefined : gitHubConnection}
906
+ enableGitHub={enableGitHub && !isGuest}
907
+ enableLocal={enableLocal && !isGuest}
908
+ onBrowseLocalFolder={onBrowseLocalFolder}
909
+ agentRef={flow.agentRef}
910
+ // Guests get no agent machinery: the session's agent is already
911
+ // bound server-side, and the picker's resolution path performs
912
+ // org reads a guest token cannot make.
913
+ onAgentRefChange={isGuest ? undefined : flow.setAgentRef}
914
+ onAgentResolutionChange={isGuest ? undefined : flow.setResolution}
915
+ isDefaultAgent={flow.isDefaultAgent}
916
+ lockAgent={isCurated}
917
+ mcpServerUsages={isCurated ? undefined : flow.mcpServerUsages}
918
+ onMcpServerUsagesChange={isCurated ? undefined : flow.setMcpServerUsages}
919
+ skillRefs={isCurated ? undefined : flow.skillRefs}
920
+ onSkillRefsChange={isCurated ? undefined : flow.setSkillRefs}
921
+ sessionVariables={isCurated ? undefined : flow.sessionVariables}
922
+ className="px-4 py-3"
923
+ />
924
+ )}
890
925
  </div>
891
926
  </div>
892
927
  );
@@ -965,7 +1000,6 @@ function SessionPanelRegion({
965
1000
  workspaceContentSearcher,
966
1001
  isCurated,
967
1002
  }: SessionPanelRegionProps) {
968
- const selectedItem = useSelectedThreadItem();
969
1003
  const { editors, activeKey, activeFile, reveal } = useWorkspaceEditors(
970
1004
  panel.editorsStore,
971
1005
  );
@@ -979,13 +1013,6 @@ function SessionPanelRegion({
979
1013
  const activeReveal =
980
1014
  reveal && reveal.key === activeKey ? reveal : undefined;
981
1015
 
982
- // This region is the level that subscribes to thread selection; report it to
983
- // the controller so an open panel can auto-surface the Inspect view. (A
984
- // collapsed panel never sees — and deliberately never reacts to — selection.)
985
- useEffect(() => {
986
- panel.notifySelection(selectedItem);
987
- }, [selectedItem, panel.notifySelection]);
988
-
989
1016
  // Correlate the active file with its session change for diff-as-default
990
1017
  // (DD-06 parity with the transcript's rendering of the same change). A
991
1018
  // virtual document (the plan tab) is not a workspace file — pass `null` so
@@ -1170,13 +1197,12 @@ function SessionPanelRegion({
1170
1197
  flow.displayExecution?.status?.phase ??
1171
1198
  ExecutionPhase.EXECUTION_PHASE_UNSPECIFIED;
1172
1199
 
1173
- // The session facets (Config / Changes / Artifacts / Usage / Inspect) as
1200
+ // The session facets (Config / Changes / Artifacts / Usage) as
1174
1201
  // injected rail views — the full inspector feature set inside one panel.
1175
1202
  const railViews = useSessionRailViews({
1176
1203
  allExecutions: flow.allExecutions,
1177
1204
  org,
1178
1205
  sessionConfig,
1179
- selectedItem,
1180
1206
  onApplied,
1181
1207
  onImplementPlan,
1182
1208
  onOpenPlan,
@@ -7,7 +7,7 @@ import {
7
7
  ExecutionArtifactKind,
8
8
  ExecutionPhase,
9
9
  } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
10
- import { ARTIFACT_DOCUMENT_ENTRY_ID } from "../artifact-document";
10
+ import { ARTIFACT_DOCUMENT_ENTRY_ID } from "../../execution/artifact-document";
11
11
  import { artifactKey, type SessionArtifactEntry } from "../useSessionArtifacts";
12
12
 
13
13
  // ---------------------------------------------------------------------------