@stigmer/react 3.1.17 → 3.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/agent-instance/AgentInstanceList.d.ts.map +1 -1
- package/agent-instance/AgentInstanceList.js +11 -3
- package/agent-instance/AgentInstanceList.js.map +1 -1
- package/channel/AgentChannelsPanel.d.ts +60 -0
- package/channel/AgentChannelsPanel.d.ts.map +1 -0
- package/channel/AgentChannelsPanel.js +255 -0
- package/channel/AgentChannelsPanel.js.map +1 -0
- package/channel/ChannelConversationsDialog.d.ts +41 -0
- package/channel/ChannelConversationsDialog.d.ts.map +1 -0
- package/channel/ChannelConversationsDialog.js +94 -0
- package/channel/ChannelConversationsDialog.js.map +1 -0
- package/channel/ChannelCredentialsDialog.d.ts +37 -0
- package/channel/ChannelCredentialsDialog.d.ts.map +1 -0
- package/channel/ChannelCredentialsDialog.js +75 -0
- package/channel/ChannelCredentialsDialog.js.map +1 -0
- package/channel/ChannelToolCredentials.d.ts +31 -0
- package/channel/ChannelToolCredentials.d.ts.map +1 -0
- package/channel/ChannelToolCredentials.js +41 -0
- package/channel/ChannelToolCredentials.js.map +1 -0
- package/channel/ConnectSlackDialog.d.ts +61 -0
- package/channel/ConnectSlackDialog.d.ts.map +1 -0
- package/channel/ConnectSlackDialog.js +238 -0
- package/channel/ConnectSlackDialog.js.map +1 -0
- package/channel/ConnectWhatsAppDialog.d.ts +70 -0
- package/channel/ConnectWhatsAppDialog.d.ts.map +1 -0
- package/channel/ConnectWhatsAppDialog.js +256 -0
- package/channel/ConnectWhatsAppDialog.js.map +1 -0
- package/channel/SlackMarkIcon.d.ts +11 -0
- package/channel/SlackMarkIcon.d.ts.map +1 -0
- package/channel/SlackMarkIcon.js +13 -0
- package/channel/SlackMarkIcon.js.map +1 -0
- package/channel/WhatsAppMarkIcon.d.ts +12 -0
- package/channel/WhatsAppMarkIcon.d.ts.map +1 -0
- package/channel/WhatsAppMarkIcon.js +14 -0
- package/channel/WhatsAppMarkIcon.js.map +1 -0
- package/channel/connect/ServingAppSection.d.ts +57 -0
- package/channel/connect/ServingAppSection.d.ts.map +1 -0
- package/channel/connect/ServingAppSection.js +49 -0
- package/channel/connect/ServingAppSection.js.map +1 -0
- package/channel/connect/ToolCredentialsSection.d.ts +20 -0
- package/channel/connect/ToolCredentialsSection.d.ts.map +1 -0
- package/channel/connect/ToolCredentialsSection.js +22 -0
- package/channel/connect/ToolCredentialsSection.js.map +1 -0
- package/channel/connect/VerbatimRefusal.d.ts +16 -0
- package/channel/connect/VerbatimRefusal.d.ts.map +1 -0
- package/channel/connect/VerbatimRefusal.js +18 -0
- package/channel/connect/VerbatimRefusal.js.map +1 -0
- package/channel/connect/icons.d.ts +16 -0
- package/channel/connect/icons.d.ts.map +1 -0
- package/channel/connect/icons.js +21 -0
- package/channel/connect/icons.js.map +1 -0
- package/channel/index.d.ts +36 -0
- package/channel/index.d.ts.map +1 -0
- package/channel/index.js +19 -0
- package/channel/index.js.map +1 -0
- package/channel/providerPresentation.d.ts +44 -0
- package/channel/providerPresentation.d.ts.map +1 -0
- package/channel/providerPresentation.js +106 -0
- package/channel/providerPresentation.js.map +1 -0
- package/channel/providers.d.ts +62 -0
- package/channel/providers.d.ts.map +1 -0
- package/channel/providers.js +26 -0
- package/channel/providers.js.map +1 -0
- package/channel/useAgentChannel.d.ts +31 -0
- package/channel/useAgentChannel.d.ts.map +1 -0
- package/channel/useAgentChannel.js +34 -0
- package/channel/useAgentChannel.js.map +1 -0
- package/channel/useAgentChannelList.d.ts +43 -0
- package/channel/useAgentChannelList.d.ts.map +1 -0
- package/channel/useAgentChannelList.js +39 -0
- package/channel/useAgentChannelList.js.map +1 -0
- package/channel/useChannelSessions.d.ts +47 -0
- package/channel/useChannelSessions.d.ts.map +1 -0
- package/channel/useChannelSessions.js +38 -0
- package/channel/useChannelSessions.js.map +1 -0
- package/channel/useChannelToolReadiness.d.ts +23 -0
- package/channel/useChannelToolReadiness.d.ts.map +1 -0
- package/channel/useChannelToolReadiness.js +28 -0
- package/channel/useChannelToolReadiness.js.map +1 -0
- package/channel/useConnectSlackChannel.d.ts +75 -0
- package/channel/useConnectSlackChannel.d.ts.map +1 -0
- package/channel/useConnectSlackChannel.js +115 -0
- package/channel/useConnectSlackChannel.js.map +1 -0
- package/channel/useCreateAgentChannel.d.ts +42 -0
- package/channel/useCreateAgentChannel.d.ts.map +1 -0
- package/channel/useCreateAgentChannel.js +48 -0
- package/channel/useCreateAgentChannel.js.map +1 -0
- package/channel/useDeleteAgentChannel.d.ts +40 -0
- package/channel/useDeleteAgentChannel.d.ts.map +1 -0
- package/channel/useDeleteAgentChannel.js +44 -0
- package/channel/useDeleteAgentChannel.js.map +1 -0
- package/channel/useInstallChannel.d.ts +60 -0
- package/channel/useInstallChannel.d.ts.map +1 -0
- package/channel/useInstallChannel.js +63 -0
- package/channel/useInstallChannel.js.map +1 -0
- package/channel/useOrgAgentChannelList.d.ts +32 -0
- package/channel/useOrgAgentChannelList.d.ts.map +1 -0
- package/channel/useOrgAgentChannelList.js +29 -0
- package/channel/useOrgAgentChannelList.js.map +1 -0
- package/channel/useSaveAgentChannel.d.ts +63 -0
- package/channel/useSaveAgentChannel.d.ts.map +1 -0
- package/channel/useSaveAgentChannel.js +104 -0
- package/channel/useSaveAgentChannel.js.map +1 -0
- package/channel-app/ChannelAppDetailPanel.d.ts +46 -0
- package/channel-app/ChannelAppDetailPanel.d.ts.map +1 -0
- package/channel-app/ChannelAppDetailPanel.js +142 -0
- package/channel-app/ChannelAppDetailPanel.js.map +1 -0
- package/channel-app/ChannelAppListPanel.d.ts +36 -0
- package/channel-app/ChannelAppListPanel.d.ts.map +1 -0
- package/channel-app/ChannelAppListPanel.js +63 -0
- package/channel-app/ChannelAppListPanel.js.map +1 -0
- package/channel-app/CreateChannelAppForm.d.ts +54 -0
- package/channel-app/CreateChannelAppForm.d.ts.map +1 -0
- package/channel-app/CreateChannelAppForm.js +140 -0
- package/channel-app/CreateChannelAppForm.js.map +1 -0
- package/channel-app/index.d.ts +18 -0
- package/channel-app/index.d.ts.map +1 -0
- package/channel-app/index.js +10 -0
- package/channel-app/index.js.map +1 -0
- package/channel-app/internal.d.ts +33 -0
- package/channel-app/internal.d.ts.map +1 -0
- package/channel-app/internal.js +44 -0
- package/channel-app/internal.js.map +1 -0
- package/channel-app/slackAppSetup.d.ts +80 -0
- package/channel-app/slackAppSetup.d.ts.map +1 -0
- package/channel-app/slackAppSetup.js +123 -0
- package/channel-app/slackAppSetup.js.map +1 -0
- package/channel-app/useChannelAppList.d.ts +35 -0
- package/channel-app/useChannelAppList.d.ts.map +1 -0
- package/channel-app/useChannelAppList.js +34 -0
- package/channel-app/useChannelAppList.js.map +1 -0
- package/channel-app/useCreateChannelApp.d.ts +39 -0
- package/channel-app/useCreateChannelApp.d.ts.map +1 -0
- package/channel-app/useCreateChannelApp.js +50 -0
- package/channel-app/useCreateChannelApp.js.map +1 -0
- package/channel-app/useDeleteChannelApp.d.ts +31 -0
- package/channel-app/useDeleteChannelApp.d.ts.map +1 -0
- package/channel-app/useDeleteChannelApp.js +43 -0
- package/channel-app/useDeleteChannelApp.js.map +1 -0
- package/channel-app/useUpdateChannelApp.d.ts +39 -0
- package/channel-app/useUpdateChannelApp.d.ts.map +1 -0
- package/channel-app/useUpdateChannelApp.js +50 -0
- package/channel-app/useUpdateChannelApp.js.map +1 -0
- package/channel-app/whatsappAppSetup.d.ts +51 -0
- package/channel-app/whatsappAppSetup.d.ts.map +1 -0
- package/channel-app/whatsappAppSetup.js +57 -0
- package/channel-app/whatsappAppSetup.js.map +1 -0
- package/environment/index.d.ts +2 -0
- package/environment/index.d.ts.map +1 -1
- package/environment/index.js +1 -0
- package/environment/index.js.map +1 -1
- package/environment/useToolCredentialsReadiness.d.ts +52 -0
- package/environment/useToolCredentialsReadiness.d.ts.map +1 -0
- package/environment/useToolCredentialsReadiness.js +84 -0
- package/environment/useToolCredentialsReadiness.js.map +1 -0
- package/execution/ArtifactContentBody.d.ts.map +1 -1
- package/execution/ArtifactContentBody.js +5 -21
- package/execution/ArtifactContentBody.js.map +1 -1
- package/execution/ArtifactFileContent.d.ts +28 -0
- package/execution/ArtifactFileContent.d.ts.map +1 -0
- package/execution/ArtifactFileContent.js +36 -0
- package/execution/ArtifactFileContent.js.map +1 -0
- package/execution/ArtifactRow.d.ts +8 -20
- package/execution/ArtifactRow.d.ts.map +1 -1
- package/execution/ArtifactRow.js +12 -45
- package/execution/ArtifactRow.js.map +1 -1
- package/execution/ArtifactRowView.d.ts +43 -0
- package/execution/ArtifactRowView.d.ts.map +1 -0
- package/execution/ArtifactRowView.js +35 -0
- package/execution/ArtifactRowView.js.map +1 -0
- package/execution/FileChangesView.d.ts.map +1 -1
- package/execution/FileChangesView.js +1 -61
- package/execution/FileChangesView.js.map +1 -1
- package/execution/SubAgentSection.d.ts.map +1 -1
- package/execution/SubAgentSection.js +4 -15
- package/execution/SubAgentSection.js.map +1 -1
- package/execution/ToolCallItem.d.ts.map +1 -1
- package/execution/ToolCallItem.js +16 -61
- package/execution/ToolCallItem.js.map +1 -1
- package/execution/agent-execution-document.d.ts +31 -0
- package/execution/agent-execution-document.d.ts.map +1 -0
- package/execution/agent-execution-document.js +48 -0
- package/execution/agent-execution-document.js.map +1 -0
- package/{session → execution}/artifact-document.d.ts +2 -3
- package/execution/artifact-document.d.ts.map +1 -0
- package/execution/artifact-document.js +23 -0
- package/execution/artifact-document.js.map +1 -0
- package/execution/artifact-row-item.d.ts +56 -0
- package/execution/artifact-row-item.d.ts.map +1 -0
- package/execution/artifact-row-item.js +57 -0
- package/execution/artifact-row-item.js.map +1 -0
- package/execution/deriveExecutionFileChanges.d.ts +55 -0
- package/execution/deriveExecutionFileChanges.d.ts.map +1 -0
- package/execution/deriveExecutionFileChanges.js +216 -0
- package/execution/deriveExecutionFileChanges.js.map +1 -0
- package/execution/file-change-document.d.ts +22 -0
- package/execution/file-change-document.d.ts.map +1 -0
- package/execution/file-change-document.js +34 -0
- package/execution/file-change-document.js.map +1 -0
- package/execution/index.d.ts +14 -0
- package/execution/index.d.ts.map +1 -1
- package/execution/index.js +9 -0
- package/execution/index.js.map +1 -1
- package/execution/useArtifactContentById.d.ts +61 -0
- package/execution/useArtifactContentById.d.ts.map +1 -0
- package/execution/useArtifactContentById.js +63 -0
- package/execution/useArtifactContentById.js.map +1 -0
- package/execution/useArtifactDownload.d.ts +4 -3
- package/execution/useArtifactDownload.d.ts.map +1 -1
- package/execution/useArtifactDownload.js +4 -3
- package/execution/useArtifactDownload.js.map +1 -1
- package/execution/useCreateAgentExecution.d.ts +1 -1
- package/execution/useLiveAgentExecution.d.ts +59 -0
- package/execution/useLiveAgentExecution.d.ts.map +1 -0
- package/execution/useLiveAgentExecution.js +73 -0
- package/execution/useLiveAgentExecution.js.map +1 -0
- package/index.d.ts +15 -10
- package/index.d.ts.map +1 -1
- package/index.js +21 -6
- package/index.js.map +1 -1
- package/internal/DecisionButton.d.ts +4 -3
- package/internal/DecisionButton.d.ts.map +1 -1
- package/internal/DecisionButton.js +4 -3
- package/internal/DecisionButton.js.map +1 -1
- package/internal/oauthPopup.d.ts +101 -0
- package/internal/oauthPopup.d.ts.map +1 -0
- package/internal/oauthPopup.js +208 -0
- package/internal/oauthPopup.js.map +1 -0
- package/internal/store/index.d.ts +0 -2
- package/internal/store/index.d.ts.map +1 -1
- package/internal/store/index.js +0 -1
- package/internal/store/index.js.map +1 -1
- package/internal/store/workflow-execution-event-store.d.ts +34 -1
- package/internal/store/workflow-execution-event-store.d.ts.map +1 -1
- package/internal/store/workflow-execution-event-store.js +81 -3
- package/internal/store/workflow-execution-event-store.js.map +1 -1
- package/internal/store/workspace-file-selection-store.d.ts +1 -2
- package/internal/store/workspace-file-selection-store.d.ts.map +1 -1
- package/internal/store/workspace-file-selection-store.js +2 -5
- package/internal/store/workspace-file-selection-store.js.map +1 -1
- package/internal/thread-card/ThreadCardShell.d.ts +91 -0
- package/internal/thread-card/ThreadCardShell.d.ts.map +1 -0
- package/internal/thread-card/ThreadCardShell.js +41 -0
- package/internal/thread-card/ThreadCardShell.js.map +1 -0
- package/internal/thread-card/glyphs.d.ts +34 -0
- package/internal/thread-card/glyphs.d.ts.map +1 -0
- package/internal/thread-card/glyphs.js +50 -0
- package/internal/thread-card/glyphs.js.map +1 -0
- package/internal/thread-card/index.d.ts +3 -0
- package/internal/thread-card/index.d.ts.map +1 -0
- package/internal/thread-card/index.js +3 -0
- package/internal/thread-card/index.js.map +1 -0
- package/internal/useRevealLine.d.ts +2 -2
- package/internal/useRevealLine.js +2 -2
- package/mcp-server/OAuthCallbackHandler.js +1 -1
- package/mcp-server/OAuthCallbackHandler.js.map +1 -1
- package/mcp-server/useMcpServerOAuthConnect.d.ts +4 -23
- package/mcp-server/useMcpServerOAuthConnect.d.ts.map +1 -1
- package/mcp-server/useMcpServerOAuthConnect.js +12 -145
- package/mcp-server/useMcpServerOAuthConnect.js.map +1 -1
- package/package.json +4 -4
- package/session/NewSessionViewer.d.ts.map +1 -1
- package/session/NewSessionViewer.js +0 -1
- package/session/NewSessionViewer.js.map +1 -1
- package/session/SessionPanelChip.d.ts +7 -22
- package/session/SessionPanelChip.d.ts.map +1 -1
- package/session/SessionPanelChip.js +8 -36
- package/session/SessionPanelChip.js.map +1 -1
- package/session/SessionViewer.d.ts +7 -4
- package/session/SessionViewer.d.ts.map +1 -1
- package/session/SessionViewer.js +32 -30
- package/session/SessionViewer.js.map +1 -1
- package/session/audience.d.ts +15 -1
- package/session/audience.d.ts.map +1 -1
- package/session/channelOrigin.d.ts +33 -0
- package/session/channelOrigin.d.ts.map +1 -0
- package/session/channelOrigin.js +36 -0
- package/session/channelOrigin.js.map +1 -0
- package/session/facets/index.d.ts +0 -2
- package/session/facets/index.d.ts.map +1 -1
- package/session/facets/index.js +0 -1
- package/session/facets/index.js.map +1 -1
- package/session/index.d.ts +2 -2
- package/session/index.d.ts.map +1 -1
- package/session/index.js +5 -3
- package/session/index.js.map +1 -1
- package/session/useNewSessionFlow.d.ts +4 -0
- package/session/useNewSessionFlow.d.ts.map +1 -1
- package/session/useNewSessionFlow.js +33 -4
- package/session/useNewSessionFlow.js.map +1 -1
- package/session/usePersistedModel.d.ts +11 -0
- package/session/usePersistedModel.d.ts.map +1 -1
- package/session/usePersistedModel.js +14 -3
- package/session/usePersistedModel.js.map +1 -1
- package/session/useSessionFileChanges.d.ts +10 -34
- package/session/useSessionFileChanges.d.ts.map +1 -1
- package/session/useSessionFileChanges.js +9 -141
- package/session/useSessionFileChanges.js.map +1 -1
- package/session/useSessionPageFlow.d.ts.map +1 -1
- package/session/useSessionPageFlow.js +12 -1
- package/session/useSessionPageFlow.js.map +1 -1
- package/session/useSessionPanel.d.ts +5 -15
- package/session/useSessionPanel.d.ts.map +1 -1
- package/session/useSessionPanel.js +3 -35
- package/session/useSessionPanel.js.map +1 -1
- package/session/useSessionRailViews.d.ts +3 -6
- package/session/useSessionRailViews.d.ts.map +1 -1
- package/session/useSessionRailViews.js +3 -17
- package/session/useSessionRailViews.js.map +1 -1
- package/settings/ChannelAppsSection.d.ts +13 -0
- package/settings/ChannelAppsSection.d.ts.map +1 -0
- package/settings/ChannelAppsSection.js +48 -0
- package/settings/ChannelAppsSection.js.map +1 -0
- package/settings/index.d.ts +1 -0
- package/settings/index.d.ts.map +1 -1
- package/settings/index.js +1 -0
- package/settings/index.js.map +1 -1
- package/settings/settings-nav.d.ts.map +1 -1
- package/settings/settings-nav.js +6 -1
- package/settings/settings-nav.js.map +1 -1
- package/sharing/AgentShareList.d.ts.map +1 -1
- package/sharing/AgentShareList.js +11 -3
- package/sharing/AgentShareList.js.map +1 -1
- package/sharing/ShareAgentDialog.js +1 -1
- package/sharing/useShareToolReadiness.d.ts +9 -38
- package/sharing/useShareToolReadiness.d.ts.map +1 -1
- package/sharing/useShareToolReadiness.js +7 -72
- package/sharing/useShareToolReadiness.js.map +1 -1
- package/src/agent-instance/AgentInstanceList.tsx +60 -42
- package/src/agent-instance/__tests__/AgentInstanceList.test.tsx +161 -0
- package/src/channel/AgentChannelsPanel.tsx +688 -0
- package/src/channel/ChannelConversationsDialog.tsx +267 -0
- package/src/channel/ChannelCredentialsDialog.tsx +219 -0
- package/src/channel/ChannelToolCredentials.tsx +124 -0
- package/src/channel/ConnectSlackDialog.tsx +611 -0
- package/src/channel/ConnectWhatsAppDialog.tsx +624 -0
- package/src/channel/SlackMarkIcon.tsx +21 -0
- package/src/channel/WhatsAppMarkIcon.tsx +22 -0
- package/src/channel/__tests__/AgentChannelsPanel.test.tsx +638 -0
- package/src/channel/__tests__/ChannelConversationsDialog.test.tsx +114 -0
- package/src/channel/__tests__/ChannelCredentialsDialog.test.tsx +240 -0
- package/src/channel/__tests__/ConnectSlackDialog.test.tsx +659 -0
- package/src/channel/__tests__/ConnectWhatsAppDialog.test.tsx +564 -0
- package/src/channel/__tests__/providers.test.ts +118 -0
- package/src/channel/__tests__/useAgentChannel.test.tsx +116 -0
- package/src/channel/__tests__/useAgentChannelList.test.tsx +166 -0
- package/src/channel/__tests__/useChannelSessions.test.tsx +95 -0
- package/src/channel/__tests__/useChannelToolReadiness.test.tsx +158 -0
- package/src/channel/__tests__/useConnectSlackChannel.test.tsx +276 -0
- package/src/channel/__tests__/useDeleteAgentChannel.test.tsx +97 -0
- package/src/channel/__tests__/useInstallChannel.test.tsx +177 -0
- package/src/channel/__tests__/useSaveAgentChannel.test.tsx +294 -0
- package/src/channel/connect/ServingAppSection.tsx +185 -0
- package/src/channel/connect/ToolCredentialsSection.tsx +67 -0
- package/src/channel/connect/VerbatimRefusal.tsx +27 -0
- package/src/channel/connect/icons.tsx +42 -0
- package/src/channel/index.ts +65 -0
- package/src/channel/providerPresentation.ts +154 -0
- package/src/channel/providers.ts +73 -0
- package/src/channel/useAgentChannel.ts +58 -0
- package/src/channel/useAgentChannelList.ts +69 -0
- package/src/channel/useChannelSessions.ts +73 -0
- package/src/channel/useChannelToolReadiness.ts +39 -0
- package/src/channel/useConnectSlackChannel.ts +195 -0
- package/src/channel/useCreateAgentChannel.ts +73 -0
- package/src/channel/useDeleteAgentChannel.ts +71 -0
- package/src/channel/useInstallChannel.ts +117 -0
- package/src/channel/useOrgAgentChannelList.ts +60 -0
- package/src/channel/useSaveAgentChannel.ts +133 -0
- package/src/channel-app/ChannelAppDetailPanel.tsx +510 -0
- package/src/channel-app/ChannelAppListPanel.tsx +201 -0
- package/src/channel-app/CreateChannelAppForm.tsx +529 -0
- package/src/channel-app/__tests__/channelAppWhatsApp.test.tsx +270 -0
- package/src/channel-app/__tests__/slackAppSetup.test.ts +75 -0
- package/src/channel-app/__tests__/useChannelAppHooks.test.tsx +157 -0
- package/src/channel-app/__tests__/whatsappAppSetup.test.ts +39 -0
- package/src/channel-app/index.ts +30 -0
- package/src/channel-app/internal.tsx +180 -0
- package/src/channel-app/slackAppSetup.ts +153 -0
- package/src/channel-app/useChannelAppList.ts +59 -0
- package/src/channel-app/useCreateChannelApp.ts +70 -0
- package/src/channel-app/useDeleteChannelApp.ts +62 -0
- package/src/channel-app/useUpdateChannelApp.ts +70 -0
- package/src/channel-app/whatsappAppSetup.ts +62 -0
- package/src/environment/index.ts +2 -0
- package/src/environment/useToolCredentialsReadiness.ts +122 -0
- package/src/execution/ArtifactContentBody.tsx +6 -88
- package/src/execution/ArtifactFileContent.tsx +110 -0
- package/src/execution/ArtifactRow.tsx +28 -118
- package/src/execution/ArtifactRowView.tsx +137 -0
- package/src/execution/FileChangesView.tsx +4 -69
- package/src/execution/SubAgentSection.tsx +2 -36
- package/src/execution/ToolCallItem.tsx +48 -175
- package/src/execution/__tests__/ArtifactFileContent.test.tsx +60 -0
- package/src/execution/__tests__/ArtifactRowView.test.tsx +78 -0
- package/src/execution/__tests__/agent-execution-document.test.ts +45 -0
- package/src/execution/__tests__/artifact-row-item.test.ts +128 -0
- package/src/execution/__tests__/deriveExecutionFileChanges.test.ts +270 -0
- package/src/execution/__tests__/useArtifactContentById.test.tsx +85 -0
- package/src/execution/__tests__/useLiveAgentExecution.test.tsx +202 -0
- package/src/execution/agent-execution-document.ts +54 -0
- package/src/execution/artifact-document.ts +24 -0
- package/src/execution/artifact-row-item.ts +97 -0
- package/src/execution/deriveExecutionFileChanges.ts +237 -0
- package/src/execution/file-change-document.ts +37 -0
- package/src/execution/index.ts +36 -0
- package/src/execution/useArtifactContentById.ts +120 -0
- package/src/execution/useArtifactDownload.ts +4 -3
- package/src/execution/useCreateAgentExecution.ts +1 -1
- package/src/execution/useLiveAgentExecution.ts +127 -0
- package/src/index.ts +155 -11
- package/src/internal/DecisionButton.tsx +4 -3
- package/src/internal/__tests__/ThreadCardShell.test.tsx +105 -0
- package/src/internal/__tests__/oauthPopup.test.ts +245 -0
- package/src/internal/oauthPopup.ts +261 -0
- package/src/internal/store/__tests__/workflow-execution-event-store.test.ts +375 -5
- package/src/internal/store/index.ts +0 -3
- package/src/internal/store/workflow-execution-event-store.ts +123 -4
- package/src/internal/store/workspace-file-selection-store.ts +2 -5
- package/src/internal/thread-card/ThreadCardShell.tsx +189 -0
- package/src/internal/thread-card/glyphs.tsx +108 -0
- package/src/internal/thread-card/index.ts +19 -0
- package/src/internal/useRevealLine.ts +2 -2
- package/src/mcp-server/OAuthCallbackHandler.tsx +2 -2
- package/src/mcp-server/useMcpServerOAuthConnect.ts +22 -184
- package/src/session/NewSessionViewer.tsx +0 -1
- package/src/session/SessionPanelChip.tsx +10 -96
- package/src/session/SessionViewer.tsx +170 -144
- package/src/session/__tests__/SessionViewer-artifactTabs.test.tsx +1 -1
- package/src/session/__tests__/observerAudience.test.tsx +241 -0
- package/src/session/__tests__/useNewSessionFlow.test.tsx +64 -0
- package/src/session/__tests__/usePersistedModel.test.tsx +36 -0
- package/src/session/__tests__/useSessionPageFlow.guest.test.tsx +48 -1
- package/src/session/__tests__/useSessionPanel.test.ts +6 -61
- package/src/session/__tests__/useSessionRailViews.test.tsx +5 -27
- package/src/session/audience.ts +15 -1
- package/src/session/channelOrigin.ts +45 -0
- package/src/session/facets/index.ts +0 -3
- package/src/session/index.ts +9 -6
- package/src/session/useNewSessionFlow.ts +35 -4
- package/src/session/usePersistedModel.ts +25 -3
- package/src/session/useSessionFileChanges.ts +12 -153
- package/src/session/useSessionPageFlow.ts +13 -2
- package/src/session/useSessionPanel.ts +8 -51
- package/src/session/useSessionRailViews.tsx +2 -27
- package/src/settings/ChannelAppsSection.tsx +133 -0
- package/src/settings/index.ts +1 -0
- package/src/settings/settings-nav.ts +6 -0
- package/src/sharing/AgentShareList.tsx +85 -64
- package/src/sharing/ShareAgentDialog.tsx +1 -1
- package/src/sharing/__tests__/AgentShareList.test.tsx +92 -12
- package/src/sharing/useShareToolReadiness.ts +13 -101
- package/src/workflow/WorkflowAgentExecutionDocument.tsx +283 -0
- package/src/workflow/WorkflowApprovalList.tsx +158 -0
- package/src/workflow/WorkflowArtifactDocument.tsx +257 -0
- package/src/workflow/WorkflowExecutionGraph.tsx +40 -78
- package/src/workflow/WorkflowExecutionViewer.tsx +610 -287
- package/src/workflow/WorkflowFileReviewList.tsx +1 -1
- package/src/workflow/WorkflowTaskApprovalCard.tsx +5 -4
- package/src/workflow/WorkflowTaskApprovalSummary.tsx +6 -6
- package/src/workflow/__tests__/WorkflowAgentExecutionDocument.test.tsx +651 -0
- package/src/workflow/__tests__/WorkflowApprovalList.test.tsx +229 -0
- package/src/workflow/__tests__/WorkflowArtifactDocument.test.tsx +90 -0
- package/src/workflow/__tests__/WorkflowArtifactsTab.test.tsx +85 -0
- package/src/workflow/__tests__/WorkflowChangesTab.test.tsx +113 -0
- package/src/workflow/__tests__/WorkflowExecutionViewer.approvals.test.tsx +473 -0
- package/src/workflow/__tests__/WorkflowExecutionViewer.reconciliation.test.tsx +632 -0
- package/src/workflow/__tests__/WorkflowTaskApprovalSummary.test.tsx +1 -1
- package/src/workflow/__tests__/WorkflowTaskThread.test.tsx +947 -0
- package/src/workflow/__tests__/WorkflowUsageTab.test.tsx +163 -0
- package/src/workflow/__tests__/agent-call-live-experience.test.ts +6 -53
- package/src/workflow/__tests__/derive-execution-overlays.test.ts +4 -0
- package/src/workflow/__tests__/deriveWorkflowArtifactItems.test.ts +71 -0
- package/src/workflow/__tests__/deriveWorkflowUsageItems.test.ts +132 -0
- package/src/workflow/__tests__/execution-graph.test.ts +8 -0
- package/src/workflow/__tests__/project-thread-items.test.ts +428 -0
- package/src/workflow/__tests__/structured-data-viewer.test.tsx +1 -1
- package/src/workflow/__tests__/task-approval.test.ts +149 -0
- package/src/workflow/__tests__/task-detail-io.test.ts +40 -0
- package/src/workflow/__tests__/task-presentation.test.ts +479 -0
- package/src/workflow/__tests__/useActiveTaskName.test.ts +4 -0
- package/src/workflow/__tests__/useApprovalBoundary.test.ts +158 -0
- package/src/workflow/__tests__/useExecutionAnnouncements.test.ts +4 -0
- package/src/workflow/__tests__/useFollowExecution.test.ts +2 -89
- package/src/workflow/__tests__/useWorkflowExecutionFileChanges.test.tsx +412 -0
- package/src/workflow/__tests__/useWorkflowExecutionPanel.test.ts +297 -0
- package/src/workflow/__tests__/useWorkflowExecutionRailViews.test.tsx +115 -0
- package/src/workflow/deriveWorkflowArtifactItems.ts +59 -0
- package/src/workflow/deriveWorkflowUsageItems.ts +73 -0
- package/src/workflow/diagnosis-document.ts +31 -0
- package/src/workflow/execution/index.ts +0 -15
- package/src/workflow/facets/WorkflowArtifactsTab.tsx +99 -0
- package/src/workflow/facets/WorkflowChangesTab.tsx +129 -0
- package/src/workflow/facets/WorkflowUsageTab.tsx +258 -0
- package/src/workflow/format-utils.ts +2 -3
- package/src/workflow/index.ts +106 -62
- package/src/workflow/inspector/index.ts +0 -4
- package/src/workflow/instance/WorkflowInstanceList.tsx +59 -41
- package/src/workflow/instance/__tests__/WorkflowInstanceList.test.tsx +156 -0
- package/src/workflow/task-detail/index.ts +11 -0
- package/src/workflow/task-detail/task-approval.ts +158 -0
- package/src/workflow/task-detail/task-detail-io.ts +65 -0
- package/src/workflow/thread/WorkflowTaskThread.tsx +845 -0
- package/src/workflow/thread/project-thread-items.ts +235 -0
- package/src/workflow/thread/task-presentation.ts +427 -0
- package/src/workflow/thread/thread-presentation.ts +59 -0
- package/src/workflow/thread/useWorkflowThreadItems.ts +34 -0
- package/src/workflow/useApprovalBoundary.ts +72 -0
- package/src/workflow/useFollowExecution.ts +0 -26
- package/src/workflow/useWorkflowArtifactDownload.ts +68 -0
- package/src/workflow/useWorkflowExecutionActions.ts +3 -2
- package/src/workflow/useWorkflowExecutionFileChanges.ts +341 -0
- package/src/workflow/useWorkflowExecutionGraph.ts +3 -43
- package/src/workflow/useWorkflowExecutionPanel.ts +292 -0
- package/src/workflow/useWorkflowExecutionRailViews.tsx +173 -0
- package/src/workspace/FileViewer.tsx +3 -3
- package/src/workspace/PanelChip.tsx +103 -0
- package/src/workspace/WorkspaceSurface.tsx +50 -6
- package/src/workspace/__tests__/WorkspaceSurface.test.tsx +110 -0
- package/src/workspace/index.ts +3 -0
- package/styles.css +1 -1
- package/workflow/WorkflowAgentExecutionDocument.d.ts +79 -0
- package/workflow/WorkflowAgentExecutionDocument.d.ts.map +1 -0
- package/workflow/WorkflowAgentExecutionDocument.js +87 -0
- package/workflow/WorkflowAgentExecutionDocument.js.map +1 -0
- package/workflow/WorkflowApprovalList.d.ts +62 -0
- package/workflow/WorkflowApprovalList.d.ts.map +1 -0
- package/workflow/WorkflowApprovalList.js +52 -0
- package/workflow/WorkflowApprovalList.js.map +1 -0
- package/workflow/WorkflowArtifactDocument.d.ts +29 -0
- package/workflow/WorkflowArtifactDocument.d.ts.map +1 -0
- package/workflow/WorkflowArtifactDocument.js +89 -0
- package/workflow/WorkflowArtifactDocument.js.map +1 -0
- package/workflow/WorkflowExecutionGraph.d.ts +15 -13
- package/workflow/WorkflowExecutionGraph.d.ts.map +1 -1
- package/workflow/WorkflowExecutionGraph.js +18 -53
- package/workflow/WorkflowExecutionGraph.js.map +1 -1
- package/workflow/WorkflowExecutionViewer.d.ts +8 -5
- package/workflow/WorkflowExecutionViewer.d.ts.map +1 -1
- package/workflow/WorkflowExecutionViewer.js +329 -54
- package/workflow/WorkflowExecutionViewer.js.map +1 -1
- package/workflow/WorkflowFileReviewList.d.ts +1 -1
- package/workflow/WorkflowFileReviewList.js +1 -1
- package/workflow/WorkflowTaskApprovalCard.d.ts +4 -3
- package/workflow/WorkflowTaskApprovalCard.d.ts.map +1 -1
- package/workflow/WorkflowTaskApprovalCard.js +5 -4
- package/workflow/WorkflowTaskApprovalCard.js.map +1 -1
- package/workflow/WorkflowTaskApprovalSummary.d.ts +6 -6
- package/workflow/WorkflowTaskApprovalSummary.js +5 -5
- package/workflow/deriveWorkflowArtifactItems.d.ts +30 -0
- package/workflow/deriveWorkflowArtifactItems.d.ts.map +1 -0
- package/workflow/deriveWorkflowArtifactItems.js +38 -0
- package/workflow/deriveWorkflowArtifactItems.js.map +1 -0
- package/workflow/deriveWorkflowUsageItems.d.ts +36 -0
- package/workflow/deriveWorkflowUsageItems.d.ts.map +1 -0
- package/workflow/deriveWorkflowUsageItems.js +50 -0
- package/workflow/deriveWorkflowUsageItems.js.map +1 -0
- package/workflow/diagnosis-document.d.ts +17 -0
- package/workflow/diagnosis-document.d.ts.map +1 -0
- package/workflow/diagnosis-document.js +29 -0
- package/workflow/diagnosis-document.js.map +1 -0
- package/workflow/execution/index.d.ts +0 -2
- package/workflow/execution/index.d.ts.map +1 -1
- package/workflow/execution/index.js +0 -2
- package/workflow/execution/index.js.map +1 -1
- package/workflow/facets/WorkflowArtifactsTab.d.ts +26 -0
- package/workflow/facets/WorkflowArtifactsTab.d.ts.map +1 -0
- package/workflow/facets/WorkflowArtifactsTab.js +34 -0
- package/workflow/facets/WorkflowArtifactsTab.js.map +1 -0
- package/workflow/facets/WorkflowChangesTab.d.ts +37 -0
- package/workflow/facets/WorkflowChangesTab.d.ts.map +1 -0
- package/workflow/facets/WorkflowChangesTab.js +50 -0
- package/workflow/facets/WorkflowChangesTab.js.map +1 -0
- package/workflow/facets/WorkflowUsageTab.d.ts +27 -0
- package/workflow/facets/WorkflowUsageTab.d.ts.map +1 -0
- package/workflow/facets/WorkflowUsageTab.js +87 -0
- package/workflow/facets/WorkflowUsageTab.js.map +1 -0
- package/workflow/format-utils.d.ts +2 -3
- package/workflow/format-utils.d.ts.map +1 -1
- package/workflow/format-utils.js +2 -3
- package/workflow/format-utils.js.map +1 -1
- package/workflow/index.d.ts +21 -10
- package/workflow/index.d.ts.map +1 -1
- package/workflow/index.js +29 -14
- package/workflow/index.js.map +1 -1
- package/workflow/inspector/index.d.ts +0 -2
- package/workflow/inspector/index.d.ts.map +1 -1
- package/workflow/inspector/index.js +0 -2
- package/workflow/inspector/index.js.map +1 -1
- package/workflow/instance/WorkflowInstanceList.d.ts.map +1 -1
- package/workflow/instance/WorkflowInstanceList.js +11 -3
- package/workflow/instance/WorkflowInstanceList.js.map +1 -1
- package/workflow/task-detail/StructuredDataViewer.d.ts.map +1 -0
- package/workflow/task-detail/StructuredDataViewer.js.map +1 -0
- package/workflow/task-detail/index.d.ts +4 -0
- package/workflow/task-detail/index.d.ts.map +1 -0
- package/workflow/task-detail/index.js +4 -0
- package/workflow/task-detail/index.js.map +1 -0
- package/workflow/task-detail/task-approval.d.ts +89 -0
- package/workflow/task-detail/task-approval.d.ts.map +1 -0
- package/workflow/task-detail/task-approval.js +84 -0
- package/workflow/task-detail/task-approval.js.map +1 -0
- package/workflow/task-detail/task-detail-io.d.ts +39 -0
- package/workflow/task-detail/task-detail-io.d.ts.map +1 -0
- package/workflow/task-detail/task-detail-io.js +42 -0
- package/workflow/task-detail/task-detail-io.js.map +1 -0
- package/workflow/thread/WorkflowTaskThread.d.ts +91 -0
- package/workflow/thread/WorkflowTaskThread.d.ts.map +1 -0
- package/workflow/thread/WorkflowTaskThread.js +318 -0
- package/workflow/thread/WorkflowTaskThread.js.map +1 -0
- package/workflow/thread/project-thread-items.d.ts +108 -0
- package/workflow/thread/project-thread-items.d.ts.map +1 -0
- package/workflow/thread/project-thread-items.js +126 -0
- package/workflow/thread/project-thread-items.js.map +1 -0
- package/workflow/thread/task-presentation.d.ts +73 -0
- package/workflow/thread/task-presentation.d.ts.map +1 -0
- package/workflow/thread/task-presentation.js +331 -0
- package/workflow/thread/task-presentation.js.map +1 -0
- package/workflow/thread/thread-presentation.d.ts +28 -0
- package/workflow/thread/thread-presentation.d.ts.map +1 -0
- package/workflow/thread/thread-presentation.js +28 -0
- package/workflow/thread/thread-presentation.js.map +1 -0
- package/workflow/thread/useWorkflowThreadItems.d.ts +16 -0
- package/workflow/thread/useWorkflowThreadItems.d.ts.map +1 -0
- package/workflow/thread/useWorkflowThreadItems.js +22 -0
- package/workflow/thread/useWorkflowThreadItems.js.map +1 -0
- package/workflow/useApprovalBoundary.d.ts +38 -0
- package/workflow/useApprovalBoundary.d.ts.map +1 -0
- package/workflow/useApprovalBoundary.js +55 -0
- package/workflow/useApprovalBoundary.js.map +1 -0
- package/workflow/useFollowExecution.d.ts +0 -20
- package/workflow/useFollowExecution.d.ts.map +1 -1
- package/workflow/useFollowExecution.js +0 -17
- package/workflow/useFollowExecution.js.map +1 -1
- package/workflow/useWorkflowArtifactDownload.d.ts +28 -0
- package/workflow/useWorkflowArtifactDownload.d.ts.map +1 -0
- package/workflow/useWorkflowArtifactDownload.js +45 -0
- package/workflow/useWorkflowArtifactDownload.js.map +1 -0
- package/workflow/useWorkflowExecutionActions.d.ts +3 -2
- package/workflow/useWorkflowExecutionActions.d.ts.map +1 -1
- package/workflow/useWorkflowExecutionActions.js.map +1 -1
- package/workflow/useWorkflowExecutionFileChanges.d.ts +107 -0
- package/workflow/useWorkflowExecutionFileChanges.d.ts.map +1 -0
- package/workflow/useWorkflowExecutionFileChanges.js +244 -0
- package/workflow/useWorkflowExecutionFileChanges.js.map +1 -0
- package/workflow/useWorkflowExecutionGraph.d.ts +1 -14
- package/workflow/useWorkflowExecutionGraph.d.ts.map +1 -1
- package/workflow/useWorkflowExecutionGraph.js +2 -25
- package/workflow/useWorkflowExecutionGraph.js.map +1 -1
- package/workflow/useWorkflowExecutionPanel.d.ts +108 -0
- package/workflow/useWorkflowExecutionPanel.d.ts.map +1 -0
- package/workflow/useWorkflowExecutionPanel.js +103 -0
- package/workflow/useWorkflowExecutionPanel.js.map +1 -0
- package/workflow/useWorkflowExecutionRailViews.d.ts +46 -0
- package/workflow/useWorkflowExecutionRailViews.d.ts.map +1 -0
- package/workflow/useWorkflowExecutionRailViews.js +81 -0
- package/workflow/useWorkflowExecutionRailViews.js.map +1 -0
- package/workspace/FileViewer.d.ts +1 -1
- package/workspace/FileViewer.js +3 -3
- package/workspace/FileViewer.js.map +1 -1
- package/workspace/PanelChip.d.ts +27 -0
- package/workspace/PanelChip.d.ts.map +1 -0
- package/workspace/PanelChip.js +42 -0
- package/workspace/PanelChip.js.map +1 -0
- package/workspace/WorkspaceSurface.d.ts +25 -1
- package/workspace/WorkspaceSurface.d.ts.map +1 -1
- package/workspace/WorkspaceSurface.js +21 -9
- package/workspace/WorkspaceSurface.js.map +1 -1
- package/workspace/index.d.ts +3 -1
- package/workspace/index.d.ts.map +1 -1
- package/workspace/index.js +1 -0
- package/workspace/index.js.map +1 -1
- package/execution/ThreadSelectionContext.d.ts +0 -17
- package/execution/ThreadSelectionContext.d.ts.map +0 -1
- package/execution/ThreadSelectionContext.js +0 -18
- package/execution/ThreadSelectionContext.js.map +0 -1
- package/execution/useThreadSelection.d.ts +0 -35
- package/execution/useThreadSelection.d.ts.map +0 -1
- package/execution/useThreadSelection.js +0 -65
- package/execution/useThreadSelection.js.map +0 -1
- package/internal/store/selection-store.d.ts +0 -53
- package/internal/store/selection-store.d.ts.map +0 -1
- package/internal/store/selection-store.js +0 -88
- package/internal/store/selection-store.js.map +0 -1
- package/session/artifact-document.d.ts.map +0 -1
- package/session/artifact-document.js +0 -22
- package/session/artifact-document.js.map +0 -1
- package/session/facets/InspectTab.d.ts +0 -13
- package/session/facets/InspectTab.d.ts.map +0 -1
- package/session/facets/InspectTab.js +0 -19
- package/session/facets/InspectTab.js.map +0 -1
- package/src/execution/ThreadSelectionContext.tsx +0 -20
- package/src/execution/useThreadSelection.ts +0 -95
- package/src/internal/store/__tests__/selection-store.test.ts +0 -115
- package/src/internal/store/selection-store.ts +0 -112
- package/src/session/artifact-document.ts +0 -23
- package/src/session/facets/InspectTab.tsx +0 -57
- package/src/workflow/WorkflowExecutionApprovalCard.tsx +0 -154
- package/src/workflow/WorkflowExecutionArtifactPanel.tsx +0 -107
- package/src/workflow/WorkflowExecutionCostPanel.tsx +0 -120
- package/src/workflow/WorkflowExecutionTaskPanel.tsx +0 -129
- package/src/workflow/WorkflowExecutionTimeline.tsx +0 -151
- package/src/workflow/WorkflowExecutionTimelineEvent.tsx +0 -497
- package/src/workflow/__tests__/ExecutionInspector.test.tsx +0 -155
- package/src/workflow/__tests__/WorkflowExecutionApprovalCard.test.tsx +0 -129
- package/src/workflow/__tests__/derive-task-detail.test.ts +0 -1265
- package/src/workflow/__tests__/derive-waterfall-entries.test.ts +0 -521
- package/src/workflow/__tests__/execution-inspector.test.tsx +0 -332
- package/src/workflow/execution/derive-waterfall-entries.ts +0 -377
- package/src/workflow/execution/useWaterfallEntries.ts +0 -125
- package/src/workflow/execution-inspector/AgentCallTab.tsx +0 -169
- package/src/workflow/execution-inspector/ErrorTab.tsx +0 -110
- package/src/workflow/execution-inspector/EventLogTab.tsx +0 -79
- package/src/workflow/execution-inspector/ExecutionInspector.tsx +0 -341
- package/src/workflow/execution-inspector/InputOutputTab.tsx +0 -325
- package/src/workflow/execution-inspector/RetriesTab.tsx +0 -68
- package/src/workflow/execution-inspector/SummaryTab.tsx +0 -62
- package/src/workflow/execution-inspector/derive-task-detail.ts +0 -584
- package/src/workflow/execution-inspector/index.ts +0 -14
- package/src/workflow/execution-inspector/useExecutionTaskDetail.ts +0 -55
- package/src/workflow/inspector/ExecutionInspectorAdapter.tsx +0 -40
- package/src/workflow/waterfall/WaterfallBar.tsx +0 -167
- package/src/workflow/waterfall/WaterfallRow.tsx +0 -112
- package/src/workflow/waterfall/WaterfallScale.tsx +0 -52
- package/src/workflow/waterfall/WaterfallTimeline.tsx +0 -138
- package/src/workflow/waterfall/WaterfallTooltip.tsx +0 -74
- package/src/workflow/waterfall/index.ts +0 -5
- package/workflow/WorkflowExecutionApprovalCard.d.ts +0 -34
- package/workflow/WorkflowExecutionApprovalCard.d.ts.map +0 -1
- package/workflow/WorkflowExecutionApprovalCard.js +0 -46
- package/workflow/WorkflowExecutionApprovalCard.js.map +0 -1
- package/workflow/WorkflowExecutionArtifactPanel.d.ts +0 -15
- package/workflow/WorkflowExecutionArtifactPanel.d.ts.map +0 -1
- package/workflow/WorkflowExecutionArtifactPanel.js +0 -46
- package/workflow/WorkflowExecutionArtifactPanel.js.map +0 -1
- package/workflow/WorkflowExecutionCostPanel.d.ts +0 -18
- package/workflow/WorkflowExecutionCostPanel.d.ts.map +0 -1
- package/workflow/WorkflowExecutionCostPanel.js +0 -31
- package/workflow/WorkflowExecutionCostPanel.js.map +0 -1
- package/workflow/WorkflowExecutionTaskPanel.d.ts +0 -24
- package/workflow/WorkflowExecutionTaskPanel.d.ts.map +0 -1
- package/workflow/WorkflowExecutionTaskPanel.js +0 -51
- package/workflow/WorkflowExecutionTaskPanel.js.map +0 -1
- package/workflow/WorkflowExecutionTimeline.d.ts +0 -42
- package/workflow/WorkflowExecutionTimeline.d.ts.map +0 -1
- package/workflow/WorkflowExecutionTimeline.js +0 -52
- package/workflow/WorkflowExecutionTimeline.js.map +0 -1
- package/workflow/WorkflowExecutionTimelineEvent.d.ts +0 -25
- package/workflow/WorkflowExecutionTimelineEvent.d.ts.map +0 -1
- package/workflow/WorkflowExecutionTimelineEvent.js +0 -179
- package/workflow/WorkflowExecutionTimelineEvent.js.map +0 -1
- package/workflow/execution/derive-waterfall-entries.d.ts +0 -85
- package/workflow/execution/derive-waterfall-entries.d.ts.map +0 -1
- package/workflow/execution/derive-waterfall-entries.js +0 -268
- package/workflow/execution/derive-waterfall-entries.js.map +0 -1
- package/workflow/execution/useWaterfallEntries.d.ts +0 -25
- package/workflow/execution/useWaterfallEntries.d.ts.map +0 -1
- package/workflow/execution/useWaterfallEntries.js +0 -67
- package/workflow/execution/useWaterfallEntries.js.map +0 -1
- package/workflow/execution-inspector/AgentCallTab.d.ts +0 -21
- package/workflow/execution-inspector/AgentCallTab.d.ts.map +0 -1
- package/workflow/execution-inspector/AgentCallTab.js +0 -36
- package/workflow/execution-inspector/AgentCallTab.js.map +0 -1
- package/workflow/execution-inspector/ErrorTab.d.ts +0 -9
- package/workflow/execution-inspector/ErrorTab.d.ts.map +0 -1
- package/workflow/execution-inspector/ErrorTab.js +0 -29
- package/workflow/execution-inspector/ErrorTab.js.map +0 -1
- package/workflow/execution-inspector/EventLogTab.d.ts +0 -11
- package/workflow/execution-inspector/EventLogTab.d.ts.map +0 -1
- package/workflow/execution-inspector/EventLogTab.js +0 -47
- package/workflow/execution-inspector/EventLogTab.js.map +0 -1
- package/workflow/execution-inspector/ExecutionInspector.d.ts +0 -69
- package/workflow/execution-inspector/ExecutionInspector.d.ts.map +0 -1
- package/workflow/execution-inspector/ExecutionInspector.js +0 -145
- package/workflow/execution-inspector/ExecutionInspector.js.map +0 -1
- package/workflow/execution-inspector/InputOutputTab.d.ts +0 -20
- package/workflow/execution-inspector/InputOutputTab.d.ts.map +0 -1
- package/workflow/execution-inspector/InputOutputTab.js +0 -124
- package/workflow/execution-inspector/InputOutputTab.js.map +0 -1
- package/workflow/execution-inspector/RetriesTab.d.ts +0 -7
- package/workflow/execution-inspector/RetriesTab.d.ts.map +0 -1
- package/workflow/execution-inspector/RetriesTab.js +0 -11
- package/workflow/execution-inspector/RetriesTab.js.map +0 -1
- package/workflow/execution-inspector/StructuredDataViewer.d.ts.map +0 -1
- package/workflow/execution-inspector/StructuredDataViewer.js.map +0 -1
- package/workflow/execution-inspector/SummaryTab.d.ts +0 -7
- package/workflow/execution-inspector/SummaryTab.d.ts.map +0 -1
- package/workflow/execution-inspector/SummaryTab.js +0 -10
- package/workflow/execution-inspector/SummaryTab.js.map +0 -1
- package/workflow/execution-inspector/derive-task-detail.d.ts +0 -140
- package/workflow/execution-inspector/derive-task-detail.d.ts.map +0 -1
- package/workflow/execution-inspector/derive-task-detail.js +0 -366
- package/workflow/execution-inspector/derive-task-detail.js.map +0 -1
- package/workflow/execution-inspector/index.d.ts +0 -4
- package/workflow/execution-inspector/index.d.ts.map +0 -1
- package/workflow/execution-inspector/index.js +0 -4
- package/workflow/execution-inspector/index.js.map +0 -1
- package/workflow/execution-inspector/useExecutionTaskDetail.d.ts +0 -38
- package/workflow/execution-inspector/useExecutionTaskDetail.d.ts.map +0 -1
- package/workflow/execution-inspector/useExecutionTaskDetail.js +0 -37
- package/workflow/execution-inspector/useExecutionTaskDetail.js.map +0 -1
- package/workflow/inspector/ExecutionInspectorAdapter.d.ts +0 -26
- package/workflow/inspector/ExecutionInspectorAdapter.d.ts.map +0 -1
- package/workflow/inspector/ExecutionInspectorAdapter.js +0 -23
- package/workflow/inspector/ExecutionInspectorAdapter.js.map +0 -1
- package/workflow/waterfall/WaterfallBar.d.ts +0 -19
- package/workflow/waterfall/WaterfallBar.d.ts.map +0 -1
- package/workflow/waterfall/WaterfallBar.js +0 -70
- package/workflow/waterfall/WaterfallBar.js.map +0 -1
- package/workflow/waterfall/WaterfallRow.d.ts +0 -18
- package/workflow/waterfall/WaterfallRow.d.ts.map +0 -1
- package/workflow/waterfall/WaterfallRow.js +0 -45
- package/workflow/waterfall/WaterfallRow.js.map +0 -1
- package/workflow/waterfall/WaterfallScale.d.ts +0 -14
- package/workflow/waterfall/WaterfallScale.d.ts.map +0 -1
- package/workflow/waterfall/WaterfallScale.js +0 -22
- package/workflow/waterfall/WaterfallScale.js.map +0 -1
- package/workflow/waterfall/WaterfallTimeline.d.ts +0 -46
- package/workflow/waterfall/WaterfallTimeline.d.ts.map +0 -1
- package/workflow/waterfall/WaterfallTimeline.js +0 -60
- package/workflow/waterfall/WaterfallTimeline.js.map +0 -1
- package/workflow/waterfall/WaterfallTooltip.d.ts +0 -15
- package/workflow/waterfall/WaterfallTooltip.d.ts.map +0 -1
- package/workflow/waterfall/WaterfallTooltip.js +0 -20
- package/workflow/waterfall/WaterfallTooltip.js.map +0 -1
- package/workflow/waterfall/index.d.ts +0 -6
- package/workflow/waterfall/index.d.ts.map +0 -1
- package/workflow/waterfall/index.js +0 -6
- package/workflow/waterfall/index.js.map +0 -1
- /package/src/workflow/{execution-inspector → task-detail}/StructuredDataViewer.tsx +0 -0
- /package/workflow/{execution-inspector → task-detail}/StructuredDataViewer.d.ts +0 -0
- /package/workflow/{execution-inspector → task-detail}/StructuredDataViewer.js +0 -0
|
@@ -17,8 +17,7 @@ type Listener = () => void;
|
|
|
17
17
|
/**
|
|
18
18
|
* Framework-agnostic store for the currently-open workspace file.
|
|
19
19
|
*
|
|
20
|
-
* Implements the `useSyncExternalStore` contract
|
|
21
|
-
* {@link import("./selection-store.js").SelectionStore}: the context carries the
|
|
20
|
+
* Implements the `useSyncExternalStore` contract: the context carries the
|
|
22
21
|
* store instance (stable ref), and `getSelection` returns the stored object
|
|
23
22
|
* reference — a new object is allocated only inside `select` — so `getSnapshot`
|
|
24
23
|
* never triggers a re-render loop.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-file-selection-store.d.ts","sourceRoot":"","sources":["../../../src/internal/store/workspace-file-selection-store.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"workspace-file-selection-store.d.ts","sourceRoot":"","sources":["../../../src/internal/store/workspace-file-selection-store.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,MAAM,WAAW,qBAAqB;IACpC,2DAA2D;IAC3D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,8DAA8D;IAC9D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,KAAK,QAAQ,GAAG,MAAM,IAAI,CAAC;AAE3B;;;;;;;GAOG;AACH,qBAAa,2BAA2B;IACtC,OAAO,CAAC,SAAS,CAAsC;IACvD,OAAO,CAAC,UAAU,CAAuB;IAIzC,MAAM,CAAC,IAAI,EAAE,qBAAqB,GAAG,IAAI;IAMzC,QAAQ,IAAI,IAAI;IAMhB,MAAM,CAAC,IAAI,EAAE,qBAAqB,GAAG,IAAI;IAUzC,SAAS,GAAI,UAAU,QAAQ,KAAG,CAAC,MAAM,IAAI,CAAC,CAK5C;IAEF,oEAAoE;IACpE,YAAY,QAAO,qBAAqB,GAAG,IAAI,CAE7C;IAIF,OAAO,CAAC,OAAO;CAKhB"}
|
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
// Which workspace file is open in the viewer.
|
|
2
|
-
// owns thread-item inspect selection) — the two are orthogonal domains with
|
|
3
|
-
// different lifecycles, so they stay separate stores rather than one fused FSM.
|
|
1
|
+
// Which workspace file is open in the viewer.
|
|
4
2
|
/**
|
|
5
3
|
* Framework-agnostic store for the currently-open workspace file.
|
|
6
4
|
*
|
|
7
|
-
* Implements the `useSyncExternalStore` contract
|
|
8
|
-
* {@link import("./selection-store.js").SelectionStore}: the context carries the
|
|
5
|
+
* Implements the `useSyncExternalStore` contract: the context carries the
|
|
9
6
|
* store instance (stable ref), and `getSelection` returns the stored object
|
|
10
7
|
* reference — a new object is allocated only inside `select` — so `getSnapshot`
|
|
11
8
|
* never triggers a re-render loop.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-file-selection-store.js","sourceRoot":"","sources":["../../../src/internal/store/workspace-file-selection-store.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"workspace-file-selection-store.js","sourceRoot":"","sources":["../../../src/internal/store/workspace-file-selection-store.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAoB9C;;;;;;;GAOG;AACH,MAAM,OAAO,2BAA2B;IAC9B,SAAS,GAAiC,IAAI,CAAC;IAC/C,UAAU,GAAG,IAAI,GAAG,EAAY,CAAC;IAEzC,2EAA2E;IAE3E,MAAM,CAAC,IAA2B;QAChC,IAAI,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC;YAAE,OAAO;QAChD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED,QAAQ;QACN,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI;YAAE,OAAO;QACpC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,IAA2B;QAChC,IAAI,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAED,2EAA2E;IAE3E,SAAS,GAAG,CAAC,QAAkB,EAAgB,EAAE;QAC/C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC9B,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACnC,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,oEAAoE;IACpE,YAAY,GAAG,GAAiC,EAAE;QAChD,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC,CAAC;IAEF,2EAA2E;IAEnE,OAAO;QACb,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACvC,QAAQ,EAAE,CAAC;QACb,CAAC;IACH,CAAC;CACF;AAED,SAAS,aAAa,CACpB,CAA+B,EAC/B,CAA+B;IAE/B,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACzB,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC3C,OAAO,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC;AACtD,CAAC"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import type { ReactNode, Ref } from "react";
|
|
2
|
+
/**
|
|
3
|
+
* The shared card shell for thread rows — session tool-call cards and
|
|
4
|
+
* workflow task cards compose the SAME chrome, header gestures, and body
|
|
5
|
+
* contract, so the two threads read as one visual language by
|
|
6
|
+
* construction (T05). Extracted from `ToolCallItem`, whose DOM is the
|
|
7
|
+
* canonical anatomy; the workflow card adopted it in the same change.
|
|
8
|
+
*
|
|
9
|
+
* Three pieces, composed via children (slots-as-children, never a
|
|
10
|
+
* mega-prop card — each thread's composition stays explicit):
|
|
11
|
+
*
|
|
12
|
+
* - {@link ThreadCardShell} — the chrome: bordered card vs divider row,
|
|
13
|
+
* pending-gate accent.
|
|
14
|
+
* - {@link ThreadCardHeader} — the one-line header region with a
|
|
15
|
+
* primary gesture: `expand` (summary rows, `aria-expanded`, appends
|
|
16
|
+
* the chevron) or `none` (preview rows — their body is always
|
|
17
|
+
* visible, so the header has no job beyond layout).
|
|
18
|
+
* - {@link ThreadCardBody} — the disclosed content area's padding
|
|
19
|
+
* contract.
|
|
20
|
+
*
|
|
21
|
+
* The shell owns layout + chrome + a11y, nothing more: no data fetching,
|
|
22
|
+
* no presenters, no disclosure policy (those stay per-thread). It renders
|
|
23
|
+
* beneath the threads' memoized row components and takes only primitives
|
|
24
|
+
* and stable callbacks, so it never disturbs their memo bails
|
|
25
|
+
* (DD-009/DD-010).
|
|
26
|
+
*
|
|
27
|
+
* Interactive headers are `div[role=button]`, not `<button>` — they may
|
|
28
|
+
* carry nested action buttons, and a `<button>` may not contain another.
|
|
29
|
+
* Nested buttons must `stopPropagation` so their click never fires the
|
|
30
|
+
* header's primary gesture.
|
|
31
|
+
*
|
|
32
|
+
* @internal Not part of the public API.
|
|
33
|
+
*/
|
|
34
|
+
/** Props for {@link ThreadCardShell}. */
|
|
35
|
+
export interface ThreadCardShellProps {
|
|
36
|
+
/**
|
|
37
|
+
* Whether the row renders as its own self-contained card (a thin rounded
|
|
38
|
+
* border). Set to `false` when nested inside a container that already
|
|
39
|
+
* provides the border — e.g. the folded `ToolRunGroup` chip — where the
|
|
40
|
+
* row degrades to a divider-separated row to avoid a card-in-a-card.
|
|
41
|
+
*/
|
|
42
|
+
readonly bordered?: boolean;
|
|
43
|
+
/**
|
|
44
|
+
* A restrained left accent for a row awaiting a human decision —
|
|
45
|
+
* `"warning"` for ordinary gates, `"destructive"` for delete gates.
|
|
46
|
+
*/
|
|
47
|
+
readonly accent?: "warning" | "destructive" | null;
|
|
48
|
+
/** Rendered as `data-cursor-target` on the root for e2e targeting. */
|
|
49
|
+
readonly cursorTarget?: string;
|
|
50
|
+
/** Additional CSS class names for the root container. */
|
|
51
|
+
readonly className?: string;
|
|
52
|
+
/** Ref to the root element (e.g. for scroll-into-view on selection). */
|
|
53
|
+
readonly ref?: Ref<HTMLDivElement>;
|
|
54
|
+
readonly children: ReactNode;
|
|
55
|
+
}
|
|
56
|
+
/** The thread card's outer chrome. See the module doc for the full contract. */
|
|
57
|
+
export declare function ThreadCardShell({ bordered, accent, cursorTarget, className, ref, children, }: ThreadCardShellProps): import("react/jsx-runtime").JSX.Element;
|
|
58
|
+
/**
|
|
59
|
+
* The header's primary gesture. `expand` toggles a chevron-gated body
|
|
60
|
+
* (`aria-expanded`; the chevron is appended automatically). `none` renders
|
|
61
|
+
* a non-interactive layout row (preview cards — their body is always
|
|
62
|
+
* visible).
|
|
63
|
+
*/
|
|
64
|
+
export type ThreadCardHeaderGesture = {
|
|
65
|
+
readonly kind: "none";
|
|
66
|
+
} | {
|
|
67
|
+
readonly kind: "expand";
|
|
68
|
+
readonly expanded: boolean;
|
|
69
|
+
readonly onToggle: () => void;
|
|
70
|
+
};
|
|
71
|
+
/** Props for {@link ThreadCardHeader}. */
|
|
72
|
+
export interface ThreadCardHeaderProps {
|
|
73
|
+
/** The primary gesture. Defaults to `{ kind: "none" }`. */
|
|
74
|
+
readonly gesture?: ThreadCardHeaderGesture;
|
|
75
|
+
/** Accessible label for interactive headers whose content is not self-describing. */
|
|
76
|
+
readonly ariaLabel?: string;
|
|
77
|
+
readonly children: ReactNode;
|
|
78
|
+
}
|
|
79
|
+
/** The thread card's one-line header. See the module doc for the contract. */
|
|
80
|
+
export declare function ThreadCardHeader({ gesture, ariaLabel, children, }: ThreadCardHeaderProps): import("react/jsx-runtime").JSX.Element;
|
|
81
|
+
/** Props for {@link ThreadCardBody}. */
|
|
82
|
+
export interface ThreadCardBodyProps {
|
|
83
|
+
/** Optional element id (e.g. an `aria-controls` target). */
|
|
84
|
+
readonly id?: string;
|
|
85
|
+
/** Rendered as `data-cursor-target` for e2e targeting. */
|
|
86
|
+
readonly cursorTarget?: string;
|
|
87
|
+
readonly children: ReactNode;
|
|
88
|
+
}
|
|
89
|
+
/** The thread card's body padding contract. */
|
|
90
|
+
export declare function ThreadCardBody({ id, cursorTarget, children }: ThreadCardBodyProps): import("react/jsx-runtime").JSX.Element;
|
|
91
|
+
//# sourceMappingURL=ThreadCardShell.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ThreadCardShell.d.ts","sourceRoot":"","sources":["../../../src/internal/thread-card/ThreadCardShell.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAI5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAMH,yCAAyC;AACzC,MAAM,WAAW,oBAAoB;IACnC;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,aAAa,GAAG,IAAI,CAAC;IACnD,sEAAsE;IACtE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,yDAAyD;IACzD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,wEAAwE;IACxE,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;CAC9B;AAED,gFAAgF;AAChF,wBAAgB,eAAe,CAAC,EAC9B,QAAe,EACf,MAAa,EACb,YAAY,EACZ,SAAS,EACT,GAAG,EACH,QAAQ,GACT,EAAE,oBAAoB,2CAiBtB;AAMD;;;;;GAKG;AACH,MAAM,MAAM,uBAAuB,GAC/B;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzB;IACE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC;CAC/B,CAAC;AAEN,0CAA0C;AAC1C,MAAM,WAAW,qBAAqB;IACpC,2DAA2D;IAC3D,QAAQ,CAAC,OAAO,CAAC,EAAE,uBAAuB,CAAC;IAC3C,qFAAqF;IACrF,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;CAC9B;AAWD,8EAA8E;AAC9E,wBAAgB,gBAAgB,CAAC,EAC/B,OAA0B,EAC1B,SAAS,EACT,QAAQ,GACT,EAAE,qBAAqB,2CAgCvB;AAMD,wCAAwC;AACxC,MAAM,WAAW,mBAAmB;IAClC,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,0DAA0D;IAC1D,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;CAC9B;AAED,+CAA+C;AAC/C,wBAAgB,cAAc,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,mBAAmB,2CAMjF"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { cn } from "@stigmer/theme";
|
|
4
|
+
import { ChevronIcon } from "./glyphs.js";
|
|
5
|
+
/** The thread card's outer chrome. See the module doc for the full contract. */
|
|
6
|
+
export function ThreadCardShell({ bordered = true, accent = null, cursorTarget, className, ref, children, }) {
|
|
7
|
+
const chrome = bordered
|
|
8
|
+
? cn(
|
|
9
|
+
// border-prominent (not border): a transparent card needs a line the
|
|
10
|
+
// eye actually catches — the default border token is white at 14%
|
|
11
|
+
// opacity, which vanishes on the dark thread surface.
|
|
12
|
+
"rounded-lg border border-border-prominent overflow-hidden", accent === "warning" && "border-l-2 border-l-warning", accent === "destructive" && "border-l-2 border-l-destructive")
|
|
13
|
+
: "border-b border-border-muted last:border-b-0";
|
|
14
|
+
return (_jsx("div", { ref: ref, "data-cursor-target": cursorTarget, className: cn(chrome, className), children: children }));
|
|
15
|
+
}
|
|
16
|
+
const HEADER_LAYOUT = "flex w-full items-center gap-2 px-2.5 py-1.5 text-xs";
|
|
17
|
+
const HEADER_INTERACTIVE = cn("cursor-pointer text-left transition-colors", "hover:bg-muted-subtle",
|
|
18
|
+
// ring-inset so the card's overflow-hidden does not clip the focus ring.
|
|
19
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring");
|
|
20
|
+
/** The thread card's one-line header. See the module doc for the contract. */
|
|
21
|
+
export function ThreadCardHeader({ gesture = { kind: "none" }, ariaLabel, children, }) {
|
|
22
|
+
if (gesture.kind === "none") {
|
|
23
|
+
return _jsx("div", { className: HEADER_LAYOUT, children: children });
|
|
24
|
+
}
|
|
25
|
+
return (_jsxs("div", { role: "button", tabIndex: 0, "aria-label": ariaLabel, "aria-expanded": gesture.expanded, onClick: gesture.onToggle, onKeyDown: (e) => {
|
|
26
|
+
// Only when the header itself is focused: a nested action button's
|
|
27
|
+
// Enter/Space fires its own click and must not ALSO trigger the
|
|
28
|
+
// header's primary gesture as the keydown bubbles up.
|
|
29
|
+
if (e.target !== e.currentTarget)
|
|
30
|
+
return;
|
|
31
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
32
|
+
e.preventDefault();
|
|
33
|
+
gesture.onToggle();
|
|
34
|
+
}
|
|
35
|
+
}, className: cn(HEADER_LAYOUT, HEADER_INTERACTIVE, gesture.expanded && "bg-muted-faint"), children: [children, _jsx(ChevronIcon, { expanded: gesture.expanded })] }));
|
|
36
|
+
}
|
|
37
|
+
/** The thread card's body padding contract. */
|
|
38
|
+
export function ThreadCardBody({ id, cursorTarget, children }) {
|
|
39
|
+
return (_jsx("div", { id: id, "data-cursor-target": cursorTarget, className: "px-2.5 pb-2.5 pt-1", children: children }));
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=ThreadCardShell.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ThreadCardShell.js","sourceRoot":"","sources":["../../../src/internal/thread-card/ThreadCardShell.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AA8D1C,gFAAgF;AAChF,MAAM,UAAU,eAAe,CAAC,EAC9B,QAAQ,GAAG,IAAI,EACf,MAAM,GAAG,IAAI,EACb,YAAY,EACZ,SAAS,EACT,GAAG,EACH,QAAQ,GACa;IACrB,MAAM,MAAM,GAAG,QAAQ;QACrB,CAAC,CAAC,EAAE;QACA,qEAAqE;QACrE,kEAAkE;QAClE,sDAAsD;QACtD,2DAA2D,EAC3D,MAAM,KAAK,SAAS,IAAI,6BAA6B,EACrD,MAAM,KAAK,aAAa,IAAI,iCAAiC,CAC9D;QACH,CAAC,CAAC,8CAA8C,CAAC;IAEnD,OAAO,CACL,cAAK,GAAG,EAAE,GAAG,wBAAsB,YAAY,EAAE,SAAS,EAAE,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,YAC9E,QAAQ,GACL,CACP,CAAC;AACJ,CAAC;AA6BD,MAAM,aAAa,GAAG,sDAAsD,CAAC;AAE7E,MAAM,kBAAkB,GAAG,EAAE,CAC3B,4CAA4C,EAC5C,uBAAuB;AACvB,yEAAyE;AACzE,kGAAkG,CACnG,CAAC;AAEF,8EAA8E;AAC9E,MAAM,UAAU,gBAAgB,CAAC,EAC/B,OAAO,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,EAC1B,SAAS,EACT,QAAQ,GACc;IACtB,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC5B,OAAO,cAAK,SAAS,EAAE,aAAa,YAAG,QAAQ,GAAO,CAAC;IACzD,CAAC;IAED,OAAO,CACL,eACE,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,CAAC,gBACC,SAAS,mBACN,OAAO,CAAC,QAAQ,EAC/B,OAAO,EAAE,OAAO,CAAC,QAAQ,EACzB,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;YACf,mEAAmE;YACnE,gEAAgE;YAChE,sDAAsD;YACtD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,aAAa;gBAAE,OAAO;YACzC,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;gBACvC,CAAC,CAAC,cAAc,EAAE,CAAC;gBACnB,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,CAAC;QACH,CAAC,EACD,SAAS,EAAE,EAAE,CACX,aAAa,EACb,kBAAkB,EAClB,OAAO,CAAC,QAAQ,IAAI,gBAAgB,CACrC,aAEA,QAAQ,EACT,KAAC,WAAW,IAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,GAAI,IACvC,CACP,CAAC;AACJ,CAAC;AAeD,+CAA+C;AAC/C,MAAM,UAAU,cAAc,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAuB;IAChF,OAAO,CACL,cAAK,EAAE,EAAE,EAAE,wBAAsB,YAAY,EAAE,SAAS,EAAC,oBAAoB,YAC1E,QAAQ,GACL,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The shared glyph vocabulary for thread cards (session tool-call rows and
|
|
3
|
+
* workflow task cards). One set of status/affordance icons so the two
|
|
4
|
+
* threads cannot drift apart visually — extracted from `ToolCallItem`,
|
|
5
|
+
* which previously owned them and which the workflow card had copied.
|
|
6
|
+
*
|
|
7
|
+
* All glyphs inherit `currentColor`; the consumer colors them with status
|
|
8
|
+
* token classes (`text-success`, `text-warning`, …) — never hardcoded
|
|
9
|
+
* values (Dont-Do #3).
|
|
10
|
+
*
|
|
11
|
+
* @internal Not part of the public API.
|
|
12
|
+
*/
|
|
13
|
+
/** Quarter-arc spinner for an in-flight item. */
|
|
14
|
+
export declare function SpinnerIcon(): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
/** Clock for an item waiting on a human decision. */
|
|
16
|
+
export declare function ClockIcon(): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
/** Check circle for a completed item. */
|
|
18
|
+
export declare function CheckCircleIcon(): import("react/jsx-runtime").JSX.Element;
|
|
19
|
+
/** X circle for a failed item. */
|
|
20
|
+
export declare function XCircleIcon(): import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
/** Neutral dot for an item that has not started. */
|
|
22
|
+
export declare function DotIcon(): import("react/jsx-runtime").JSX.Element;
|
|
23
|
+
/** Slashed circle for a settled-but-never-ran item (interrupted, skipped). */
|
|
24
|
+
export declare function SlashCircleIcon(): import("react/jsx-runtime").JSX.Element;
|
|
25
|
+
/** Magnifier for the opt-in Inspect drill-down button. */
|
|
26
|
+
export declare function InspectIcon(): import("react/jsx-runtime").JSX.Element;
|
|
27
|
+
/**
|
|
28
|
+
* The expand/collapse chevron: points right when collapsed, rotates to
|
|
29
|
+
* point down when expanded (the session card's canonical direction).
|
|
30
|
+
*/
|
|
31
|
+
export declare function ChevronIcon({ expanded }: {
|
|
32
|
+
readonly expanded: boolean;
|
|
33
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
34
|
+
//# sourceMappingURL=glyphs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"glyphs.d.ts","sourceRoot":"","sources":["../../../src/internal/thread-card/glyphs.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AAEH,iDAAiD;AACjD,wBAAgB,WAAW,4CAM1B;AAED,qDAAqD;AACrD,wBAAgB,SAAS,4CAOxB;AAED,yCAAyC;AACzC,wBAAgB,eAAe,4CAO9B;AAED,kCAAkC;AAClC,wBAAgB,WAAW,4CAO1B;AAED,oDAAoD;AACpD,wBAAgB,OAAO,4CAMtB;AAED,8EAA8E;AAC9E,wBAAgB,eAAe,4CAO9B;AAED,0DAA0D;AAC1D,wBAAgB,WAAW,4CAO1B;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,2CAoBvE"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { cn } from "@stigmer/theme";
|
|
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
|
+
/** Quarter-arc spinner for an in-flight item. */
|
|
16
|
+
export function SpinnerIcon() {
|
|
17
|
+
return (_jsx("svg", { width: "10", height: "10", viewBox: "0 0 12 12", fill: "none", stroke: "currentColor", strokeWidth: "1.5", className: "animate-spin", children: _jsx("path", { d: "M6 1.5A4.5 4.5 0 1 1 1.5 6", strokeLinecap: "round" }) }));
|
|
18
|
+
}
|
|
19
|
+
/** Clock for an item waiting on a human decision. */
|
|
20
|
+
export function ClockIcon() {
|
|
21
|
+
return (_jsxs("svg", { width: "10", height: "10", viewBox: "0 0 12 12", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("circle", { cx: "6", cy: "6", r: "4.5" }), _jsx("path", { d: "M6 3.5V6L7.5 7.5" })] }));
|
|
22
|
+
}
|
|
23
|
+
/** Check circle for a completed item. */
|
|
24
|
+
export function CheckCircleIcon() {
|
|
25
|
+
return (_jsxs("svg", { width: "10", height: "10", viewBox: "0 0 12 12", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("circle", { cx: "6", cy: "6", r: "4.5" }), _jsx("path", { d: "M4 6L5.5 7.5L8 4.5" })] }));
|
|
26
|
+
}
|
|
27
|
+
/** X circle for a failed item. */
|
|
28
|
+
export function XCircleIcon() {
|
|
29
|
+
return (_jsxs("svg", { width: "10", height: "10", viewBox: "0 0 12 12", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("circle", { cx: "6", cy: "6", r: "4.5" }), _jsx("path", { d: "M4.5 4.5L7.5 7.5M7.5 4.5L4.5 7.5" })] }));
|
|
30
|
+
}
|
|
31
|
+
/** Neutral dot for an item that has not started. */
|
|
32
|
+
export function DotIcon() {
|
|
33
|
+
return (_jsx("svg", { width: "8", height: "8", viewBox: "0 0 8 8", fill: "currentColor", children: _jsx("circle", { cx: "4", cy: "4", r: "2.5" }) }));
|
|
34
|
+
}
|
|
35
|
+
/** Slashed circle for a settled-but-never-ran item (interrupted, skipped). */
|
|
36
|
+
export function SlashCircleIcon() {
|
|
37
|
+
return (_jsxs("svg", { width: "10", height: "10", viewBox: "0 0 12 12", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", children: [_jsx("circle", { cx: "6", cy: "6", r: "4.5" }), _jsx("path", { d: "M2.8 9.2L9.2 2.8" })] }));
|
|
38
|
+
}
|
|
39
|
+
/** Magnifier for the opt-in Inspect drill-down button. */
|
|
40
|
+
export function InspectIcon() {
|
|
41
|
+
return (_jsxs("svg", { width: "12", height: "12", viewBox: "0 0 12 12", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: [_jsx("circle", { cx: "5.5", cy: "5.5", r: "3.5" }), _jsx("path", { d: "M8 8L10.5 10.5" })] }));
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* The expand/collapse chevron: points right when collapsed, rotates to
|
|
45
|
+
* point down when expanded (the session card's canonical direction).
|
|
46
|
+
*/
|
|
47
|
+
export function ChevronIcon({ expanded }) {
|
|
48
|
+
return (_jsx("svg", { width: "10", height: "10", viewBox: "0 0 10 10", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", className: cn("shrink-0 text-muted-foreground transition-transform duration-150", expanded && "rotate-90"), "aria-hidden": "true", children: _jsx("path", { d: "M3.5 2L6.5 5L3.5 8" }) }));
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=glyphs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"glyphs.js","sourceRoot":"","sources":["../../../src/internal/thread-card/glyphs.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { ThreadCardShell, ThreadCardHeader, ThreadCardBody, type ThreadCardShellProps, type ThreadCardHeaderProps, type ThreadCardHeaderGesture, type ThreadCardBodyProps, } from "./ThreadCardShell.js";
|
|
2
|
+
export { SpinnerIcon, ClockIcon, CheckCircleIcon, XCircleIcon, DotIcon, SlashCircleIcon, InspectIcon, ChevronIcon, } from "./glyphs.js";
|
|
3
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/internal/thread-card/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,WAAW,EACX,SAAS,EACT,eAAe,EACf,WAAW,EACX,OAAO,EACP,eAAe,EACf,WAAW,EACX,WAAW,GACZ,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/internal/thread-card/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,cAAc,GAKf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,WAAW,EACX,SAAS,EACT,eAAe,EACf,WAAW,EACX,OAAO,EACP,eAAe,EACf,WAAW,EACX,WAAW,GACZ,MAAM,aAAa,CAAC"}
|
|
@@ -32,8 +32,8 @@ export interface UseRevealLineResult<T extends HTMLElement = HTMLElement> {
|
|
|
32
32
|
* highlight.
|
|
33
33
|
*
|
|
34
34
|
* The mechanics are centralized here (rather than duplicated into each line
|
|
35
|
-
* renderer)
|
|
36
|
-
*
|
|
35
|
+
* renderer) using the established `data-attribute` scroll pattern: the
|
|
36
|
+
* consumer renders each row with `data-line="N"`
|
|
37
37
|
* and this hook, on every `reveal.nonce` change, finds the target row within
|
|
38
38
|
* `containerRef` and scrolls it into view. Smooth scroll yields to
|
|
39
39
|
* `prefers-reduced-motion` (a JS animation the CSS rule does not cover), and
|
|
@@ -6,8 +6,8 @@ import { prefersReducedMotion } from "./motion-preference.js";
|
|
|
6
6
|
* highlight.
|
|
7
7
|
*
|
|
8
8
|
* The mechanics are centralized here (rather than duplicated into each line
|
|
9
|
-
* renderer)
|
|
10
|
-
*
|
|
9
|
+
* renderer) using the established `data-attribute` scroll pattern: the
|
|
10
|
+
* consumer renders each row with `data-line="N"`
|
|
11
11
|
* and this hook, on every `reveal.nonce` change, finds the target row within
|
|
12
12
|
* `containerRef` and scrolls it into view. Smooth scroll yields to
|
|
13
13
|
* `prefers-reduced-motion` (a JS animation the CSS rule does not cover), and
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { useEffect, useRef, useState } from "react";
|
|
4
4
|
import { cn } from "@stigmer/theme";
|
|
5
|
-
import { OAUTH_CALLBACK_MESSAGE_TYPE, OAUTH_BROADCAST_CHANNEL, } from "
|
|
5
|
+
import { OAUTH_CALLBACK_MESSAGE_TYPE, OAUTH_BROADCAST_CHANNEL, } from "../internal/oauthPopup.js";
|
|
6
6
|
/**
|
|
7
7
|
* Lightweight component for OAuth callback pages.
|
|
8
8
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OAuthCallbackHandler.js","sourceRoot":"","sources":["../../src/mcp-server/OAuthCallbackHandler.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACpC,OAAO,EACL,2BAA2B,EAC3B,uBAAuB,GACxB,MAAM
|
|
1
|
+
{"version":3,"file":"OAuthCallbackHandler.js","sourceRoot":"","sources":["../../src/mcp-server/OAuthCallbackHandler.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,27 +1,5 @@
|
|
|
1
1
|
import type { McpServer } from "@stigmer/protos/ai/stigmer/agentic/mcpserver/v1/api_pb";
|
|
2
|
-
|
|
3
|
-
* Message type posted by {@link OAuthCallbackHandler} to the opener window.
|
|
4
|
-
*
|
|
5
|
-
* @internal
|
|
6
|
-
*/
|
|
7
|
-
export declare const OAUTH_CALLBACK_MESSAGE_TYPE = "stigmer:oauth:callback";
|
|
8
|
-
/**
|
|
9
|
-
* BroadcastChannel name used as a fallback when `window.opener` is severed
|
|
10
|
-
* by `Cross-Origin-Opener-Policy` headers on the OAuth provider.
|
|
11
|
-
*
|
|
12
|
-
* @internal
|
|
13
|
-
*/
|
|
14
|
-
export declare const OAUTH_BROADCAST_CHANNEL = "stigmer:oauth:broadcast";
|
|
15
|
-
/**
|
|
16
|
-
* Shape of the `postMessage` payload sent from the OAuth callback popup.
|
|
17
|
-
*
|
|
18
|
-
* @internal
|
|
19
|
-
*/
|
|
20
|
-
export interface OAuthCallbackMessage {
|
|
21
|
-
readonly type: typeof OAUTH_CALLBACK_MESSAGE_TYPE;
|
|
22
|
-
readonly code: string;
|
|
23
|
-
readonly state: string;
|
|
24
|
-
}
|
|
2
|
+
export { OAUTH_CALLBACK_MESSAGE_TYPE, OAUTH_BROADCAST_CHANNEL, type OAuthCallbackMessage, } from "../internal/oauthPopup.js";
|
|
25
3
|
/** Progress phases of the OAuth connect flow. */
|
|
26
4
|
export type OAuthConnectPhase = "idle" | "initiating" | "awaiting-callback" | "completing" | "connecting" | "done";
|
|
27
5
|
/** Return value of {@link useMcpServerOAuthConnect}. */
|
|
@@ -68,6 +46,9 @@ export interface UseMcpServerOAuthConnectReturn {
|
|
|
68
46
|
* RPC to avoid browser popup blockers. A blank page is shown briefly
|
|
69
47
|
* while the RPC resolves, then the popup navigates to the auth URL.
|
|
70
48
|
*
|
|
49
|
+
* Popup plumbing (callback wait, COOP fallbacks, cancellation) lives in
|
|
50
|
+
* the shared `internal/oauthPopup.ts` machinery.
|
|
51
|
+
*
|
|
71
52
|
* @example
|
|
72
53
|
* ```tsx
|
|
73
54
|
* const oauth = useMcpServerOAuthConnect();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMcpServerOAuthConnect.d.ts","sourceRoot":"","sources":["../../src/mcp-server/useMcpServerOAuthConnect.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wDAAwD,CAAC;
|
|
1
|
+
{"version":3,"file":"useMcpServerOAuthConnect.d.ts","sourceRoot":"","sources":["../../src/mcp-server/useMcpServerOAuthConnect.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wDAAwD,CAAC;AAmBxF,OAAO,EACL,2BAA2B,EAC3B,uBAAuB,EACvB,KAAK,oBAAoB,GAC1B,MAAM,2BAA2B,CAAC;AAEnC,iDAAiD;AACjD,MAAM,MAAM,iBAAiB,GACzB,MAAM,GACN,YAAY,GACZ,mBAAmB,GACnB,YAAY,GACZ,YAAY,GACZ,MAAM,CAAC;AAEX,wDAAwD;AACxD,MAAM,WAAW,8BAA8B;IAC7C;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,CAAC,UAAU,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IACnH,+DAA+D;IAC/D,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,uCAAuC;IACvC,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;IAClC,kEAAkE;IAClE,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B,wDAAwD;IACxD,QAAQ,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC;CACjC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAgB,wBAAwB,IAAI,8BAA8B,CAwHzE"}
|
|
@@ -5,22 +5,11 @@ import { InitiateOAuthConnectInputSchema, CompleteOAuthConnectInputSchema, Conne
|
|
|
5
5
|
import { useStigmer } from "../hooks.js";
|
|
6
6
|
import { resolveDeclaredSystemEnvVars } from "../environment/systemEnvVars.js";
|
|
7
7
|
import { toError } from "../internal/toError.js";
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
export const OAUTH_CALLBACK_MESSAGE_TYPE = "stigmer:oauth:callback";
|
|
14
|
-
/**
|
|
15
|
-
* BroadcastChannel name used as a fallback when `window.opener` is severed
|
|
16
|
-
* by `Cross-Origin-Opener-Policy` headers on the OAuth provider.
|
|
17
|
-
*
|
|
18
|
-
* @internal
|
|
19
|
-
*/
|
|
20
|
-
export const OAUTH_BROADCAST_CHANNEL = "stigmer:oauth:broadcast";
|
|
21
|
-
const POPUP_WIDTH = 600;
|
|
22
|
-
const POPUP_HEIGHT = 700;
|
|
23
|
-
const POPUP_CALLBACK_TIMEOUT_MS = 120_000;
|
|
8
|
+
import { openOAuthPopup, popupBlockedError, waitForOAuthCallback, closeOAuthPopup, } from "../internal/oauthPopup.js";
|
|
9
|
+
// Re-exported for compatibility: these constants and the message type now
|
|
10
|
+
// live in the shared popup machinery (internal/oauthPopup.ts) because the
|
|
11
|
+
// channel-install flow uses the same callback contract.
|
|
12
|
+
export { OAUTH_CALLBACK_MESSAGE_TYPE, OAUTH_BROADCAST_CHANNEL, } from "../internal/oauthPopup.js";
|
|
24
13
|
/**
|
|
25
14
|
* Action hook that orchestrates the full OAuth popup flow for MCP servers.
|
|
26
15
|
*
|
|
@@ -35,6 +24,9 @@ const POPUP_CALLBACK_TIMEOUT_MS = 120_000;
|
|
|
35
24
|
* RPC to avoid browser popup blockers. A blank page is shown briefly
|
|
36
25
|
* while the RPC resolves, then the popup navigates to the auth URL.
|
|
37
26
|
*
|
|
27
|
+
* Popup plumbing (callback wait, COOP fallbacks, cancellation) lives in
|
|
28
|
+
* the shared `internal/oauthPopup.ts` machinery.
|
|
29
|
+
*
|
|
38
30
|
* @example
|
|
39
31
|
* ```tsx
|
|
40
32
|
* const oauth = useMcpServerOAuthConnect();
|
|
@@ -70,7 +62,7 @@ export function useMcpServerOAuthConnect() {
|
|
|
70
62
|
if (cleanupRef.current || popupRef.current) {
|
|
71
63
|
cancelledRef.current = true;
|
|
72
64
|
cleanupRef.current?.();
|
|
73
|
-
|
|
65
|
+
closeOAuthPopup(popupRef.current);
|
|
74
66
|
popupRef.current = null;
|
|
75
67
|
cleanupRef.current = null;
|
|
76
68
|
}
|
|
@@ -82,12 +74,9 @@ export function useMcpServerOAuthConnect() {
|
|
|
82
74
|
setError(null);
|
|
83
75
|
cancelledRef.current = false;
|
|
84
76
|
cleanupRef.current?.();
|
|
85
|
-
const
|
|
86
|
-
const top = window.screenY + (window.outerHeight - POPUP_HEIGHT) / 2;
|
|
87
|
-
const popup = window.open("about:blank", "stigmer_oauth", `width=${POPUP_WIDTH},height=${POPUP_HEIGHT},left=${left},top=${top},popup=yes`);
|
|
77
|
+
const popup = openOAuthPopup();
|
|
88
78
|
if (!popup) {
|
|
89
|
-
const blocked =
|
|
90
|
-
"Please allow popups for this site and try again.");
|
|
79
|
+
const blocked = popupBlockedError();
|
|
91
80
|
setError(blocked);
|
|
92
81
|
setPhase("idle");
|
|
93
82
|
throw blocked;
|
|
@@ -133,7 +122,7 @@ export function useMcpServerOAuthConnect() {
|
|
|
133
122
|
if (!cancelledRef.current) {
|
|
134
123
|
setError(wrapped);
|
|
135
124
|
setPhase("idle");
|
|
136
|
-
|
|
125
|
+
closeOAuthPopup(popup);
|
|
137
126
|
}
|
|
138
127
|
cancelledRef.current = false;
|
|
139
128
|
throw wrapped;
|
|
@@ -151,126 +140,4 @@ export function useMcpServerOAuthConnect() {
|
|
|
151
140
|
clearError,
|
|
152
141
|
};
|
|
153
142
|
}
|
|
154
|
-
// ---------------------------------------------------------------------------
|
|
155
|
-
// Popup callback listener
|
|
156
|
-
// ---------------------------------------------------------------------------
|
|
157
|
-
/**
|
|
158
|
-
* Grace period (ms) after `popup.closed` is first detected before treating
|
|
159
|
-
* it as a user-initiated close.
|
|
160
|
-
*
|
|
161
|
-
* Only used when BroadcastChannel is unavailable. When BC is available,
|
|
162
|
-
* `popup.closed` polling is skipped entirely because COOP providers
|
|
163
|
-
* (e.g. Sentry, GitHub) sever the opener reference on cross-origin
|
|
164
|
-
* navigation, making `popup.closed` permanently `true` while the popup
|
|
165
|
-
* is still active. The overall {@link POPUP_CALLBACK_TIMEOUT_MS} serves
|
|
166
|
-
* as the safety net for abandoned flows instead.
|
|
167
|
-
*/
|
|
168
|
-
const POPUP_CLOSED_GRACE_MS = 5_000;
|
|
169
|
-
function waitForOAuthCallback(popup, expectedState, onDispose) {
|
|
170
|
-
return new Promise((resolve, reject) => {
|
|
171
|
-
let settled = false;
|
|
172
|
-
let timeoutId;
|
|
173
|
-
let pollId;
|
|
174
|
-
let bc = null;
|
|
175
|
-
let hasBroadcastChannel = false;
|
|
176
|
-
function cleanup() {
|
|
177
|
-
if (timeoutId)
|
|
178
|
-
clearTimeout(timeoutId);
|
|
179
|
-
if (pollId)
|
|
180
|
-
clearInterval(pollId);
|
|
181
|
-
window.removeEventListener("message", onMessage);
|
|
182
|
-
try {
|
|
183
|
-
bc?.close();
|
|
184
|
-
}
|
|
185
|
-
catch { /* ignore */ }
|
|
186
|
-
}
|
|
187
|
-
function settle(outcome) {
|
|
188
|
-
if (settled)
|
|
189
|
-
return;
|
|
190
|
-
settled = true;
|
|
191
|
-
cleanup();
|
|
192
|
-
if (outcome instanceof Error) {
|
|
193
|
-
reject(outcome);
|
|
194
|
-
}
|
|
195
|
-
else {
|
|
196
|
-
resolve(outcome);
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
onDispose(() => {
|
|
200
|
-
settle(new Error("OAuth flow was cancelled."));
|
|
201
|
-
closePopup(popup);
|
|
202
|
-
});
|
|
203
|
-
function validateAndSettle(data) {
|
|
204
|
-
if (data?.type !== OAUTH_CALLBACK_MESSAGE_TYPE)
|
|
205
|
-
return;
|
|
206
|
-
if (data.state !== expectedState) {
|
|
207
|
-
settle(new Error("OAuth state mismatch — the callback did not match the " +
|
|
208
|
-
"initiated flow. Please try again."));
|
|
209
|
-
return;
|
|
210
|
-
}
|
|
211
|
-
if (!data.code) {
|
|
212
|
-
settle(new Error("No authorization code received from the OAuth provider."));
|
|
213
|
-
return;
|
|
214
|
-
}
|
|
215
|
-
settle({ code: data.code, state: data.state });
|
|
216
|
-
}
|
|
217
|
-
function onMessage(event) {
|
|
218
|
-
if (event.origin !== window.location.origin)
|
|
219
|
-
return;
|
|
220
|
-
validateAndSettle(event.data);
|
|
221
|
-
}
|
|
222
|
-
window.addEventListener("message", onMessage);
|
|
223
|
-
// BroadcastChannel — works even when COOP severs window.opener.
|
|
224
|
-
try {
|
|
225
|
-
bc = new BroadcastChannel(OAUTH_BROADCAST_CHANNEL);
|
|
226
|
-
hasBroadcastChannel = true;
|
|
227
|
-
bc.onmessage = (event) => {
|
|
228
|
-
validateAndSettle(event.data);
|
|
229
|
-
};
|
|
230
|
-
}
|
|
231
|
-
catch {
|
|
232
|
-
// BroadcastChannel unsupported — rely on postMessage only.
|
|
233
|
-
}
|
|
234
|
-
timeoutId = setTimeout(() => {
|
|
235
|
-
settle(new Error("OAuth authentication timed out. Ensure your callback page " +
|
|
236
|
-
"renders <OAuthCallbackHandler /> from @stigmer/react at " +
|
|
237
|
-
"the URL configured as your OAuth redirect URI."));
|
|
238
|
-
closePopup(popup);
|
|
239
|
-
}, POPUP_CALLBACK_TIMEOUT_MS);
|
|
240
|
-
// When BroadcastChannel is available, skip popup.closed polling.
|
|
241
|
-
// COOP providers (Sentry, GitHub, etc.) sever the opener reference
|
|
242
|
-
// on cross-origin navigation, making popup.closed permanently true
|
|
243
|
-
// while the popup is still active. BroadcastChannel reliably
|
|
244
|
-
// delivers the callback regardless of COOP; the overall timeout
|
|
245
|
-
// above catches abandoned flows.
|
|
246
|
-
//
|
|
247
|
-
// When BroadcastChannel is NOT available (legacy browsers), fall
|
|
248
|
-
// back to popup.closed polling with a short grace period — it is
|
|
249
|
-
// the only signal we have in that degraded path.
|
|
250
|
-
let popupClosedAt = null;
|
|
251
|
-
pollId = setInterval(() => {
|
|
252
|
-
if (hasBroadcastChannel)
|
|
253
|
-
return;
|
|
254
|
-
if (popup.closed) {
|
|
255
|
-
if (popupClosedAt === null) {
|
|
256
|
-
popupClosedAt = Date.now();
|
|
257
|
-
}
|
|
258
|
-
else if (Date.now() - popupClosedAt > POPUP_CLOSED_GRACE_MS) {
|
|
259
|
-
settle(new Error("The authentication window was closed before completing sign-in."));
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
else {
|
|
263
|
-
popupClosedAt = null;
|
|
264
|
-
}
|
|
265
|
-
}, 500);
|
|
266
|
-
});
|
|
267
|
-
}
|
|
268
|
-
function closePopup(popup) {
|
|
269
|
-
try {
|
|
270
|
-
popup?.close();
|
|
271
|
-
}
|
|
272
|
-
catch {
|
|
273
|
-
// Cross-origin popup may throw on close — safe to ignore.
|
|
274
|
-
}
|
|
275
|
-
}
|
|
276
143
|
//# sourceMappingURL=useMcpServerOAuthConnect.js.map
|