@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
@@ -0,0 +1,189 @@
1
+ "use client";
2
+
3
+ import type { ReactNode, Ref } from "react";
4
+ import { cn } from "@stigmer/theme";
5
+ import { ChevronIcon } from "./glyphs.js";
6
+
7
+ /**
8
+ * The shared card shell for thread rows — session tool-call cards and
9
+ * workflow task cards compose the SAME chrome, header gestures, and body
10
+ * contract, so the two threads read as one visual language by
11
+ * construction (T05). Extracted from `ToolCallItem`, whose DOM is the
12
+ * canonical anatomy; the workflow card adopted it in the same change.
13
+ *
14
+ * Three pieces, composed via children (slots-as-children, never a
15
+ * mega-prop card — each thread's composition stays explicit):
16
+ *
17
+ * - {@link ThreadCardShell} — the chrome: bordered card vs divider row,
18
+ * pending-gate accent.
19
+ * - {@link ThreadCardHeader} — the one-line header region with a
20
+ * primary gesture: `expand` (summary rows, `aria-expanded`, appends
21
+ * the chevron) or `none` (preview rows — their body is always
22
+ * visible, so the header has no job beyond layout).
23
+ * - {@link ThreadCardBody} — the disclosed content area's padding
24
+ * contract.
25
+ *
26
+ * The shell owns layout + chrome + a11y, nothing more: no data fetching,
27
+ * no presenters, no disclosure policy (those stay per-thread). It renders
28
+ * beneath the threads' memoized row components and takes only primitives
29
+ * and stable callbacks, so it never disturbs their memo bails
30
+ * (DD-009/DD-010).
31
+ *
32
+ * Interactive headers are `div[role=button]`, not `<button>` — they may
33
+ * carry nested action buttons, and a `<button>` may not contain another.
34
+ * Nested buttons must `stopPropagation` so their click never fires the
35
+ * header's primary gesture.
36
+ *
37
+ * @internal Not part of the public API.
38
+ */
39
+
40
+ // ---------------------------------------------------------------------------
41
+ // Shell — the card chrome
42
+ // ---------------------------------------------------------------------------
43
+
44
+ /** Props for {@link ThreadCardShell}. */
45
+ export interface ThreadCardShellProps {
46
+ /**
47
+ * Whether the row renders as its own self-contained card (a thin rounded
48
+ * border). Set to `false` when nested inside a container that already
49
+ * provides the border — e.g. the folded `ToolRunGroup` chip — where the
50
+ * row degrades to a divider-separated row to avoid a card-in-a-card.
51
+ */
52
+ readonly bordered?: boolean;
53
+ /**
54
+ * A restrained left accent for a row awaiting a human decision —
55
+ * `"warning"` for ordinary gates, `"destructive"` for delete gates.
56
+ */
57
+ readonly accent?: "warning" | "destructive" | null;
58
+ /** Rendered as `data-cursor-target` on the root for e2e targeting. */
59
+ readonly cursorTarget?: string;
60
+ /** Additional CSS class names for the root container. */
61
+ readonly className?: string;
62
+ /** Ref to the root element (e.g. for scroll-into-view on selection). */
63
+ readonly ref?: Ref<HTMLDivElement>;
64
+ readonly children: ReactNode;
65
+ }
66
+
67
+ /** The thread card's outer chrome. See the module doc for the full contract. */
68
+ export function ThreadCardShell({
69
+ bordered = true,
70
+ accent = null,
71
+ cursorTarget,
72
+ className,
73
+ ref,
74
+ children,
75
+ }: ThreadCardShellProps) {
76
+ const chrome = bordered
77
+ ? cn(
78
+ // border-prominent (not border): a transparent card needs a line the
79
+ // eye actually catches — the default border token is white at 14%
80
+ // opacity, which vanishes on the dark thread surface.
81
+ "rounded-lg border border-border-prominent overflow-hidden",
82
+ accent === "warning" && "border-l-2 border-l-warning",
83
+ accent === "destructive" && "border-l-2 border-l-destructive",
84
+ )
85
+ : "border-b border-border-muted last:border-b-0";
86
+
87
+ return (
88
+ <div ref={ref} data-cursor-target={cursorTarget} className={cn(chrome, className)}>
89
+ {children}
90
+ </div>
91
+ );
92
+ }
93
+
94
+ // ---------------------------------------------------------------------------
95
+ // Header — one layout, per-surface primary gesture
96
+ // ---------------------------------------------------------------------------
97
+
98
+ /**
99
+ * The header's primary gesture. `expand` toggles a chevron-gated body
100
+ * (`aria-expanded`; the chevron is appended automatically). `none` renders
101
+ * a non-interactive layout row (preview cards — their body is always
102
+ * visible).
103
+ */
104
+ export type ThreadCardHeaderGesture =
105
+ | { readonly kind: "none" }
106
+ | {
107
+ readonly kind: "expand";
108
+ readonly expanded: boolean;
109
+ readonly onToggle: () => void;
110
+ };
111
+
112
+ /** Props for {@link ThreadCardHeader}. */
113
+ export interface ThreadCardHeaderProps {
114
+ /** The primary gesture. Defaults to `{ kind: "none" }`. */
115
+ readonly gesture?: ThreadCardHeaderGesture;
116
+ /** Accessible label for interactive headers whose content is not self-describing. */
117
+ readonly ariaLabel?: string;
118
+ readonly children: ReactNode;
119
+ }
120
+
121
+ const HEADER_LAYOUT = "flex w-full items-center gap-2 px-2.5 py-1.5 text-xs";
122
+
123
+ const HEADER_INTERACTIVE = cn(
124
+ "cursor-pointer text-left transition-colors",
125
+ "hover:bg-muted-subtle",
126
+ // ring-inset so the card's overflow-hidden does not clip the focus ring.
127
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring",
128
+ );
129
+
130
+ /** The thread card's one-line header. See the module doc for the contract. */
131
+ export function ThreadCardHeader({
132
+ gesture = { kind: "none" },
133
+ ariaLabel,
134
+ children,
135
+ }: ThreadCardHeaderProps) {
136
+ if (gesture.kind === "none") {
137
+ return <div className={HEADER_LAYOUT}>{children}</div>;
138
+ }
139
+
140
+ return (
141
+ <div
142
+ role="button"
143
+ tabIndex={0}
144
+ aria-label={ariaLabel}
145
+ aria-expanded={gesture.expanded}
146
+ onClick={gesture.onToggle}
147
+ onKeyDown={(e) => {
148
+ // Only when the header itself is focused: a nested action button's
149
+ // Enter/Space fires its own click and must not ALSO trigger the
150
+ // header's primary gesture as the keydown bubbles up.
151
+ if (e.target !== e.currentTarget) return;
152
+ if (e.key === "Enter" || e.key === " ") {
153
+ e.preventDefault();
154
+ gesture.onToggle();
155
+ }
156
+ }}
157
+ className={cn(
158
+ HEADER_LAYOUT,
159
+ HEADER_INTERACTIVE,
160
+ gesture.expanded && "bg-muted-faint",
161
+ )}
162
+ >
163
+ {children}
164
+ <ChevronIcon expanded={gesture.expanded} />
165
+ </div>
166
+ );
167
+ }
168
+
169
+ // ---------------------------------------------------------------------------
170
+ // Body — the disclosed content area
171
+ // ---------------------------------------------------------------------------
172
+
173
+ /** Props for {@link ThreadCardBody}. */
174
+ export interface ThreadCardBodyProps {
175
+ /** Optional element id (e.g. an `aria-controls` target). */
176
+ readonly id?: string;
177
+ /** Rendered as `data-cursor-target` for e2e targeting. */
178
+ readonly cursorTarget?: string;
179
+ readonly children: ReactNode;
180
+ }
181
+
182
+ /** The thread card's body padding contract. */
183
+ export function ThreadCardBody({ id, cursorTarget, children }: ThreadCardBodyProps) {
184
+ return (
185
+ <div id={id} data-cursor-target={cursorTarget} className="px-2.5 pb-2.5 pt-1">
186
+ {children}
187
+ </div>
188
+ );
189
+ }
@@ -0,0 +1,108 @@
1
+ import { cn } from "@stigmer/theme";
2
+
3
+ /**
4
+ * The shared glyph vocabulary for thread cards (session tool-call rows and
5
+ * workflow task cards). One set of status/affordance icons so the two
6
+ * threads cannot drift apart visually — extracted from `ToolCallItem`,
7
+ * which previously owned them and which the workflow card had copied.
8
+ *
9
+ * All glyphs inherit `currentColor`; the consumer colors them with status
10
+ * token classes (`text-success`, `text-warning`, …) — never hardcoded
11
+ * values (Dont-Do #3).
12
+ *
13
+ * @internal Not part of the public API.
14
+ */
15
+
16
+ /** Quarter-arc spinner for an in-flight item. */
17
+ export function SpinnerIcon() {
18
+ return (
19
+ <svg width="10" height="10" viewBox="0 0 12 12" fill="none" stroke="currentColor" strokeWidth="1.5" className="animate-spin">
20
+ <path d="M6 1.5A4.5 4.5 0 1 1 1.5 6" strokeLinecap="round" />
21
+ </svg>
22
+ );
23
+ }
24
+
25
+ /** Clock for an item waiting on a human decision. */
26
+ export function ClockIcon() {
27
+ return (
28
+ <svg width="10" height="10" viewBox="0 0 12 12" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
29
+ <circle cx="6" cy="6" r="4.5" />
30
+ <path d="M6 3.5V6L7.5 7.5" />
31
+ </svg>
32
+ );
33
+ }
34
+
35
+ /** Check circle for a completed item. */
36
+ export function CheckCircleIcon() {
37
+ return (
38
+ <svg width="10" height="10" viewBox="0 0 12 12" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
39
+ <circle cx="6" cy="6" r="4.5" />
40
+ <path d="M4 6L5.5 7.5L8 4.5" />
41
+ </svg>
42
+ );
43
+ }
44
+
45
+ /** X circle for a failed item. */
46
+ export function XCircleIcon() {
47
+ return (
48
+ <svg width="10" height="10" viewBox="0 0 12 12" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
49
+ <circle cx="6" cy="6" r="4.5" />
50
+ <path d="M4.5 4.5L7.5 7.5M7.5 4.5L4.5 7.5" />
51
+ </svg>
52
+ );
53
+ }
54
+
55
+ /** Neutral dot for an item that has not started. */
56
+ export function DotIcon() {
57
+ return (
58
+ <svg width="8" height="8" viewBox="0 0 8 8" fill="currentColor">
59
+ <circle cx="4" cy="4" r="2.5" />
60
+ </svg>
61
+ );
62
+ }
63
+
64
+ /** Slashed circle for a settled-but-never-ran item (interrupted, skipped). */
65
+ export function SlashCircleIcon() {
66
+ return (
67
+ <svg width="10" height="10" viewBox="0 0 12 12" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round">
68
+ <circle cx="6" cy="6" r="4.5" />
69
+ <path d="M2.8 9.2L9.2 2.8" />
70
+ </svg>
71
+ );
72
+ }
73
+
74
+ /** Magnifier for the opt-in Inspect drill-down button. */
75
+ export function InspectIcon() {
76
+ return (
77
+ <svg width="12" height="12" viewBox="0 0 12 12" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true">
78
+ <circle cx="5.5" cy="5.5" r="3.5" />
79
+ <path d="M8 8L10.5 10.5" />
80
+ </svg>
81
+ );
82
+ }
83
+
84
+ /**
85
+ * The expand/collapse chevron: points right when collapsed, rotates to
86
+ * point down when expanded (the session card's canonical direction).
87
+ */
88
+ export function ChevronIcon({ expanded }: { readonly expanded: boolean }) {
89
+ return (
90
+ <svg
91
+ width="10"
92
+ height="10"
93
+ viewBox="0 0 10 10"
94
+ fill="none"
95
+ stroke="currentColor"
96
+ strokeWidth="1.5"
97
+ strokeLinecap="round"
98
+ strokeLinejoin="round"
99
+ className={cn(
100
+ "shrink-0 text-muted-foreground transition-transform duration-150",
101
+ expanded && "rotate-90",
102
+ )}
103
+ aria-hidden="true"
104
+ >
105
+ <path d="M3.5 2L6.5 5L3.5 8" />
106
+ </svg>
107
+ );
108
+ }
@@ -0,0 +1,19 @@
1
+ export {
2
+ ThreadCardShell,
3
+ ThreadCardHeader,
4
+ ThreadCardBody,
5
+ type ThreadCardShellProps,
6
+ type ThreadCardHeaderProps,
7
+ type ThreadCardHeaderGesture,
8
+ type ThreadCardBodyProps,
9
+ } from "./ThreadCardShell.js";
10
+ export {
11
+ SpinnerIcon,
12
+ ClockIcon,
13
+ CheckCircleIcon,
14
+ XCircleIcon,
15
+ DotIcon,
16
+ SlashCircleIcon,
17
+ InspectIcon,
18
+ ChevronIcon,
19
+ } from "./glyphs.js";
@@ -38,8 +38,8 @@ export interface UseRevealLineResult<T extends HTMLElement = HTMLElement> {
38
38
  * highlight.
39
39
  *
40
40
  * The mechanics are centralized here (rather than duplicated into each line
41
- * renderer) and mirror the established `data-attribute` scroll pattern used by
42
- * the workflow waterfall: the consumer renders each row with `data-line="N"`
41
+ * renderer) using the established `data-attribute` scroll pattern: the
42
+ * consumer renders each row with `data-line="N"`
43
43
  * and this hook, on every `reveal.nonce` change, finds the target row within
44
44
  * `containerRef` and scrolls it into view. Smooth scroll yields to
45
45
  * `prefers-reduced-motion` (a JS animation the CSS rule does not cover), and
@@ -5,8 +5,8 @@ import { cn } from "@stigmer/theme";
5
5
  import {
6
6
  OAUTH_CALLBACK_MESSAGE_TYPE,
7
7
  OAUTH_BROADCAST_CHANNEL,
8
- } from "./useMcpServerOAuthConnect.js";
9
- import type { OAuthCallbackMessage } from "./useMcpServerOAuthConnect.js";
8
+ } from "../internal/oauthPopup.js";
9
+ import type { OAuthCallbackMessage } from "../internal/oauthPopup.js";
10
10
 
11
11
  /** Parameters extracted from the OAuth callback URL. */
12
12
  export interface OAuthCallbackParams {
@@ -11,32 +11,21 @@ import {
11
11
  import { useStigmer } from "../hooks.js";
12
12
  import { resolveDeclaredSystemEnvVars } from "../environment/systemEnvVars.js";
13
13
  import { toError } from "../internal/toError.js";
14
-
15
- /**
16
- * Message type posted by {@link OAuthCallbackHandler} to the opener window.
17
- *
18
- * @internal
19
- */
20
- export const OAUTH_CALLBACK_MESSAGE_TYPE = "stigmer:oauth:callback";
21
-
22
- /**
23
- * BroadcastChannel name used as a fallback when `window.opener` is severed
24
- * by `Cross-Origin-Opener-Policy` headers on the OAuth provider.
25
- *
26
- * @internal
27
- */
28
- export const OAUTH_BROADCAST_CHANNEL = "stigmer:oauth:broadcast";
29
-
30
- /**
31
- * Shape of the `postMessage` payload sent from the OAuth callback popup.
32
- *
33
- * @internal
34
- */
35
- export interface OAuthCallbackMessage {
36
- readonly type: typeof OAUTH_CALLBACK_MESSAGE_TYPE;
37
- readonly code: string;
38
- readonly state: string;
39
- }
14
+ import {
15
+ openOAuthPopup,
16
+ popupBlockedError,
17
+ waitForOAuthCallback,
18
+ closeOAuthPopup,
19
+ } from "../internal/oauthPopup.js";
20
+
21
+ // Re-exported for compatibility: these constants and the message type now
22
+ // live in the shared popup machinery (internal/oauthPopup.ts) because the
23
+ // channel-install flow uses the same callback contract.
24
+ export {
25
+ OAUTH_CALLBACK_MESSAGE_TYPE,
26
+ OAUTH_BROADCAST_CHANNEL,
27
+ type OAuthCallbackMessage,
28
+ } from "../internal/oauthPopup.js";
40
29
 
41
30
  /** Progress phases of the OAuth connect flow. */
42
31
  export type OAuthConnectPhase =
@@ -78,10 +67,6 @@ export interface UseMcpServerOAuthConnectReturn {
78
67
  readonly clearError: () => void;
79
68
  }
80
69
 
81
- const POPUP_WIDTH = 600;
82
- const POPUP_HEIGHT = 700;
83
- const POPUP_CALLBACK_TIMEOUT_MS = 120_000;
84
-
85
70
  /**
86
71
  * Action hook that orchestrates the full OAuth popup flow for MCP servers.
87
72
  *
@@ -96,6 +81,9 @@ const POPUP_CALLBACK_TIMEOUT_MS = 120_000;
96
81
  * RPC to avoid browser popup blockers. A blank page is shown briefly
97
82
  * while the RPC resolves, then the popup navigates to the auth URL.
98
83
  *
84
+ * Popup plumbing (callback wait, COOP fallbacks, cancellation) lives in
85
+ * the shared `internal/oauthPopup.ts` machinery.
86
+ *
99
87
  * @example
100
88
  * ```tsx
101
89
  * const oauth = useMcpServerOAuthConnect();
@@ -134,7 +122,7 @@ export function useMcpServerOAuthConnect(): UseMcpServerOAuthConnectReturn {
134
122
  if (cleanupRef.current || popupRef.current) {
135
123
  cancelledRef.current = true;
136
124
  cleanupRef.current?.();
137
- closePopup(popupRef.current);
125
+ closeOAuthPopup(popupRef.current);
138
126
  popupRef.current = null;
139
127
  cleanupRef.current = null;
140
128
  }
@@ -150,19 +138,9 @@ export function useMcpServerOAuthConnect(): UseMcpServerOAuthConnectReturn {
150
138
 
151
139
  cleanupRef.current?.();
152
140
 
153
- const left = window.screenX + (window.outerWidth - POPUP_WIDTH) / 2;
154
- const top = window.screenY + (window.outerHeight - POPUP_HEIGHT) / 2;
155
- const popup = window.open(
156
- "about:blank",
157
- "stigmer_oauth",
158
- `width=${POPUP_WIDTH},height=${POPUP_HEIGHT},left=${left},top=${top},popup=yes`,
159
- );
160
-
141
+ const popup = openOAuthPopup();
161
142
  if (!popup) {
162
- const blocked = new Error(
163
- "Your browser blocked the authentication popup. " +
164
- "Please allow popups for this site and try again.",
165
- );
143
+ const blocked = popupBlockedError();
166
144
  setError(blocked);
167
145
  setPhase("idle");
168
146
  throw blocked;
@@ -226,7 +204,7 @@ export function useMcpServerOAuthConnect(): UseMcpServerOAuthConnectReturn {
226
204
  if (!cancelledRef.current) {
227
205
  setError(wrapped);
228
206
  setPhase("idle");
229
- closePopup(popup);
207
+ closeOAuthPopup(popup);
230
208
  }
231
209
  cancelledRef.current = false;
232
210
  throw wrapped;
@@ -246,143 +224,3 @@ export function useMcpServerOAuthConnect(): UseMcpServerOAuthConnectReturn {
246
224
  clearError,
247
225
  };
248
226
  }
249
-
250
- // ---------------------------------------------------------------------------
251
- // Popup callback listener
252
- // ---------------------------------------------------------------------------
253
-
254
- /**
255
- * Grace period (ms) after `popup.closed` is first detected before treating
256
- * it as a user-initiated close.
257
- *
258
- * Only used when BroadcastChannel is unavailable. When BC is available,
259
- * `popup.closed` polling is skipped entirely because COOP providers
260
- * (e.g. Sentry, GitHub) sever the opener reference on cross-origin
261
- * navigation, making `popup.closed` permanently `true` while the popup
262
- * is still active. The overall {@link POPUP_CALLBACK_TIMEOUT_MS} serves
263
- * as the safety net for abandoned flows instead.
264
- */
265
- const POPUP_CLOSED_GRACE_MS = 5_000;
266
-
267
- function waitForOAuthCallback(
268
- popup: Window,
269
- expectedState: string,
270
- onDispose: (dispose: () => void) => void,
271
- ): Promise<{ code: string; state: string }> {
272
- return new Promise((resolve, reject) => {
273
- let settled = false;
274
- let timeoutId: ReturnType<typeof setTimeout>;
275
- let pollId: ReturnType<typeof setInterval>;
276
- let bc: BroadcastChannel | null = null;
277
- let hasBroadcastChannel = false;
278
-
279
- function cleanup() {
280
- if (timeoutId) clearTimeout(timeoutId);
281
- if (pollId) clearInterval(pollId);
282
- window.removeEventListener("message", onMessage);
283
- try { bc?.close(); } catch { /* ignore */ }
284
- }
285
-
286
- function settle(
287
- outcome: { code: string; state: string } | Error,
288
- ) {
289
- if (settled) return;
290
- settled = true;
291
- cleanup();
292
- if (outcome instanceof Error) {
293
- reject(outcome);
294
- } else {
295
- resolve(outcome);
296
- }
297
- }
298
-
299
- onDispose(() => {
300
- settle(new Error("OAuth flow was cancelled."));
301
- closePopup(popup);
302
- });
303
-
304
- function validateAndSettle(data: OAuthCallbackMessage | undefined) {
305
- if (data?.type !== OAUTH_CALLBACK_MESSAGE_TYPE) return;
306
-
307
- if (data.state !== expectedState) {
308
- settle(
309
- new Error(
310
- "OAuth state mismatch — the callback did not match the " +
311
- "initiated flow. Please try again.",
312
- ),
313
- );
314
- return;
315
- }
316
-
317
- if (!data.code) {
318
- settle(new Error("No authorization code received from the OAuth provider."));
319
- return;
320
- }
321
-
322
- settle({ code: data.code, state: data.state });
323
- }
324
-
325
- function onMessage(event: MessageEvent) {
326
- if (event.origin !== window.location.origin) return;
327
- validateAndSettle(event.data as OAuthCallbackMessage | undefined);
328
- }
329
-
330
- window.addEventListener("message", onMessage);
331
-
332
- // BroadcastChannel — works even when COOP severs window.opener.
333
- try {
334
- bc = new BroadcastChannel(OAUTH_BROADCAST_CHANNEL);
335
- hasBroadcastChannel = true;
336
- bc.onmessage = (event: MessageEvent) => {
337
- validateAndSettle(event.data as OAuthCallbackMessage | undefined);
338
- };
339
- } catch {
340
- // BroadcastChannel unsupported — rely on postMessage only.
341
- }
342
-
343
- timeoutId = setTimeout(() => {
344
- settle(
345
- new Error(
346
- "OAuth authentication timed out. Ensure your callback page " +
347
- "renders <OAuthCallbackHandler /> from @stigmer/react at " +
348
- "the URL configured as your OAuth redirect URI.",
349
- ),
350
- );
351
- closePopup(popup);
352
- }, POPUP_CALLBACK_TIMEOUT_MS);
353
-
354
- // When BroadcastChannel is available, skip popup.closed polling.
355
- // COOP providers (Sentry, GitHub, etc.) sever the opener reference
356
- // on cross-origin navigation, making popup.closed permanently true
357
- // while the popup is still active. BroadcastChannel reliably
358
- // delivers the callback regardless of COOP; the overall timeout
359
- // above catches abandoned flows.
360
- //
361
- // When BroadcastChannel is NOT available (legacy browsers), fall
362
- // back to popup.closed polling with a short grace period — it is
363
- // the only signal we have in that degraded path.
364
- let popupClosedAt: number | null = null;
365
-
366
- pollId = setInterval(() => {
367
- if (hasBroadcastChannel) return;
368
-
369
- if (popup.closed) {
370
- if (popupClosedAt === null) {
371
- popupClosedAt = Date.now();
372
- } else if (Date.now() - popupClosedAt > POPUP_CLOSED_GRACE_MS) {
373
- settle(new Error("The authentication window was closed before completing sign-in."));
374
- }
375
- } else {
376
- popupClosedAt = null;
377
- }
378
- }, 500);
379
- });
380
- }
381
-
382
- function closePopup(popup: Window | null) {
383
- try {
384
- popup?.close();
385
- } catch {
386
- // Cross-origin popup may throw on close — safe to ignore.
387
- }
388
- }
package/src/provider.tsx CHANGED
@@ -102,6 +102,14 @@ export interface StigmerProviderProps {
102
102
  /**
103
103
  * Additional CSS class names applied to the scoping container element.
104
104
  * The container always includes the `stgm` class for style isolation.
105
+ *
106
+ * This is a **theming channel, not a layout channel**: the class is
107
+ * mirrored onto the portal container on `document.body` (see #182) so
108
+ * that token overrides scoped to it reach portaled surfaces (popovers,
109
+ * dialogs, menus). Layout styles passed here would therefore also size
110
+ * that off-tree element. To style the in-tree container alone — e.g.
111
+ * the fixed-height embedding recipe (#260) — target the stable
112
+ * `.stgm[data-stgm-root]` selector from host CSS instead.
105
113
  */
106
114
  readonly className?: string;
107
115
  /**
@@ -179,6 +187,30 @@ const EMPTY_REVIEW_RENDERERS: ReviewRenderers = {};
179
187
  * `@stigmer/react/styles.css` get isolated styles that do not
180
188
  * leak into the host application.
181
189
  *
190
+ * **Sizing.** The container ships with no layout styling — it sizes
191
+ * to its content, so document-flow embeddings need nothing. For
192
+ * fixed-height embeddings (docked panes, split layouts), where
193
+ * height-filling components like `SessionViewer` need a CSS
194
+ * percentage-height chain to reach them, opt in from host CSS via
195
+ * the stable `data-stgm-root` selector (#260):
196
+ *
197
+ * ```css
198
+ * .stgm[data-stgm-root] {
199
+ * height: 100%;
200
+ * min-height: 0;
201
+ * }
202
+ * ```
203
+ *
204
+ * This is deliberately not an SDK default: `height: 100%` resolves
205
+ * against flexed sizes under flex-item parents (a `flex-1` content
206
+ * column makes it balloon even in a content-sized page), so only
207
+ * the host — which knows its layout — can apply it safely.
208
+ *
209
+ * Two stable selector hooks are part of the public contract:
210
+ * `data-stgm-root` marks the in-tree container (and only it);
211
+ * `data-stgm-portal` marks the portal container appended to
212
+ * `document.body` for portaled surfaces.
213
+ *
182
214
  * The `colorMode` prop controls dark/light appearance via a
183
215
  * `data-stgm-color-mode` attribute on the scoping container.
184
216
  * Host applications pass their theme state directly — no ancestor
@@ -232,8 +264,18 @@ export function StigmerProvider({
232
264
  <TaskKindRegistryContext.Provider value={taskKindRegistryState}>
233
265
  <ReviewRendererContext.Provider value={reviewRenderers ?? EMPTY_REVIEW_RENDERERS}>
234
266
  <PortalContainerContext.Provider value={portalContainer}>
267
+ {/*
268
+ The in-tree scoping container. `data-stgm-root` is a
269
+ stable public selector — the documented seam for hosts
270
+ to style THIS element only (e.g. the fixed-height
271
+ embedding recipe, #260). It must never be mirrored
272
+ onto the portal container, whose own `data-stgm-portal`
273
+ marker keeps host in-tree-only CSS away from the
274
+ off-tree element.
275
+ */}
235
276
  <div
236
277
  className={scope.className}
278
+ data-stgm-root=""
237
279
  data-stgm-color-mode={scope.colorMode}
238
280
  >
239
281
  {children}
@@ -309,7 +309,6 @@ export function NewSessionViewer({
309
309
  allExecutions: [],
310
310
  org,
311
311
  sessionConfig,
312
- selectedItem: null,
313
312
  includeExecutionFacets: false,
314
313
  });
315
314