@stigmer/react 3.1.17 → 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.
- 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/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/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__/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/useSessionFileChanges.ts +12 -153
- 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
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { create } from "@bufbuild/protobuf";
|
|
3
|
+
import { ListAgentChannelsRequestSchema } from "@stigmer/protos/ai/stigmer/agentic/agentchannel/v1/io_pb";
|
|
4
|
+
import { useStigmer } from "../hooks.js";
|
|
5
|
+
import { useFetch } from "../internal/useFetch.js";
|
|
6
|
+
/**
|
|
7
|
+
* Data hook that loads an organization's {@link AgentChannel} resources
|
|
8
|
+
* across all its agents — the org-wide view {@link useAgentChannelList}
|
|
9
|
+
* (per-agent) cannot provide.
|
|
10
|
+
*
|
|
11
|
+
* The connect flow uses it to tell the user which workspaces a serving
|
|
12
|
+
* app already occupies before they start the provider OAuth. The view is
|
|
13
|
+
* permission-bounded (FGA-filtered in cloud), so treat it as advisory —
|
|
14
|
+
* the database uniqueness index remains the arbiter.
|
|
15
|
+
*
|
|
16
|
+
* Pass `null` for `org` to skip fetching (stable no-op).
|
|
17
|
+
*/
|
|
18
|
+
export function useOrgAgentChannelList(org) {
|
|
19
|
+
const stigmer = useStigmer();
|
|
20
|
+
const fetchFn = org
|
|
21
|
+
? async () => {
|
|
22
|
+
const result = await stigmer.agentChannel.list(create(ListAgentChannelsRequestSchema, { org }));
|
|
23
|
+
return result.items;
|
|
24
|
+
}
|
|
25
|
+
: null;
|
|
26
|
+
const { data: channels, isLoading, isRefetching, error, refetch } = useFetch(fetchFn, [org, stigmer], []);
|
|
27
|
+
return { channels, isLoading, isRefetching, error, refetch };
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=useOrgAgentChannelList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useOrgAgentChannelList.js","sourceRoot":"","sources":["../../src/channel/useOrgAgentChannelList.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,OAAO,EAAE,8BAA8B,EAAE,MAAM,0DAA0D,CAAC;AAC1G,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAoBnD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,sBAAsB,CACpC,GAAkB;IAElB,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAE7B,MAAM,OAAO,GAAG,GAAG;QACjB,CAAC,CAAC,KAAK,IAAI,EAAE;YACT,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,IAAI,CAC5C,MAAM,CAAC,8BAA8B,EAAE,EAAE,GAAG,EAAE,CAAC,CAChD,CAAC;YACF,OAAO,MAAM,CAAC,KAAK,CAAC;QACtB,CAAC;QACH,CAAC,CAAC,IAAI,CAAC;IAET,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,QAAQ,CAC1E,OAAO,EACP,CAAC,GAAG,EAAE,OAAO,CAAC,EACd,EAAoB,CACrB,CAAC;IAEF,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC/D,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import type { AgentChannel } from "@stigmer/protos/ai/stigmer/agentic/agentchannel/v1/api_pb";
|
|
2
|
+
import type { AgentChannelInput } from "@stigmer/sdk";
|
|
3
|
+
/**
|
|
4
|
+
* Rebuild the {@link AgentChannelInput} that reproduces an existing
|
|
5
|
+
* channel verbatim.
|
|
6
|
+
*
|
|
7
|
+
* `apply` replaces the channel's whole spec, so a caller toggling one
|
|
8
|
+
* field must supply the full configuration — this helper makes that safe:
|
|
9
|
+
*
|
|
10
|
+
* ```ts
|
|
11
|
+
* save({ ...agentChannelToInput(channel), enabled: false });
|
|
12
|
+
* ```
|
|
13
|
+
*
|
|
14
|
+
* Provider config carries over per arm: the Slack config is an empty
|
|
15
|
+
* marker message in v1 (all concrete facts are OAuth-observed and live
|
|
16
|
+
* in `status`, which survives every save verbatim); the WhatsApp config
|
|
17
|
+
* carries its declared `phone_number_id`. Dropping the arm is never an
|
|
18
|
+
* option — the provider oneof is immutable server-side, so a save
|
|
19
|
+
* without it would be refused outright. The channel's bound tool
|
|
20
|
+
* credentials (`environment_refs`) and its channel-app binding
|
|
21
|
+
* (`app_ref`) carry over too — apply semantics would otherwise silently
|
|
22
|
+
* unbind them on every toggle (and an installed channel's app_ref is
|
|
23
|
+
* frozen server-side, so dropping it would refuse the save outright).
|
|
24
|
+
*/
|
|
25
|
+
export declare function agentChannelToInput(channel: AgentChannel): AgentChannelInput;
|
|
26
|
+
/** Return value of {@link useSaveAgentChannel}. */
|
|
27
|
+
export interface UseSaveAgentChannelReturn {
|
|
28
|
+
/**
|
|
29
|
+
* Create or update an agent channel (`apply` semantics: upsert by
|
|
30
|
+
* org + slug). Returns the persisted resource.
|
|
31
|
+
*
|
|
32
|
+
* Disabling is a config-preserving pause: save with `enabled: false`
|
|
33
|
+
* and the provider install (and its credentials) survive. Deleting is
|
|
34
|
+
* the full teardown — see `useDeleteAgentChannel`.
|
|
35
|
+
*/
|
|
36
|
+
readonly save: (input: AgentChannelInput) => Promise<AgentChannel>;
|
|
37
|
+
/** `true` while the save request is in flight. */
|
|
38
|
+
readonly isPending: boolean;
|
|
39
|
+
/** Error from the last failed save, or `null` when healthy. */
|
|
40
|
+
readonly error: Error | null;
|
|
41
|
+
/** Reset `error` to `null`. */
|
|
42
|
+
readonly clearError: () => void;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Mutation hook that creates or updates an {@link AgentChannel}.
|
|
46
|
+
*
|
|
47
|
+
* Wraps `stigmer.agentChannel.apply()` with loading/error state. The
|
|
48
|
+
* caller is responsible for post-save UI updates (e.g. refreshing the
|
|
49
|
+
* channel list). Pair with {@link agentChannelToInput} to change a single
|
|
50
|
+
* field of an existing channel without dropping the rest of its spec.
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* ```tsx
|
|
54
|
+
* const { save, isPending } = useSaveAgentChannel();
|
|
55
|
+
*
|
|
56
|
+
* const handleToggle = async (channel: AgentChannel, enabled: boolean) => {
|
|
57
|
+
* await save({ ...agentChannelToInput(channel), enabled });
|
|
58
|
+
* refetch(); // refresh the channel list
|
|
59
|
+
* };
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
export declare function useSaveAgentChannel(): UseSaveAgentChannelReturn;
|
|
63
|
+
//# sourceMappingURL=useSaveAgentChannel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSaveAgentChannel.d.ts","sourceRoot":"","sources":["../../src/channel/useSaveAgentChannel.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2DAA2D,CAAC;AAC9F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAItD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,iBAAiB,CAsC5E;AAED,mDAAmD;AACnD,MAAM,WAAW,yBAAyB;IACxC;;;;;;;OAOG;IACH,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;IACnE,kDAAkD;IAClD,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,+DAA+D;IAC/D,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B,+BAA+B;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC;CACjC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,mBAAmB,IAAI,yBAAyB,CAyB/D"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useCallback, useState } from "react";
|
|
3
|
+
import { useStigmer } from "../hooks.js";
|
|
4
|
+
import { toError } from "../internal/toError.js";
|
|
5
|
+
/**
|
|
6
|
+
* Rebuild the {@link AgentChannelInput} that reproduces an existing
|
|
7
|
+
* channel verbatim.
|
|
8
|
+
*
|
|
9
|
+
* `apply` replaces the channel's whole spec, so a caller toggling one
|
|
10
|
+
* field must supply the full configuration — this helper makes that safe:
|
|
11
|
+
*
|
|
12
|
+
* ```ts
|
|
13
|
+
* save({ ...agentChannelToInput(channel), enabled: false });
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
16
|
+
* Provider config carries over per arm: the Slack config is an empty
|
|
17
|
+
* marker message in v1 (all concrete facts are OAuth-observed and live
|
|
18
|
+
* in `status`, which survives every save verbatim); the WhatsApp config
|
|
19
|
+
* carries its declared `phone_number_id`. Dropping the arm is never an
|
|
20
|
+
* option — the provider oneof is immutable server-side, so a save
|
|
21
|
+
* without it would be refused outright. The channel's bound tool
|
|
22
|
+
* credentials (`environment_refs`) and its channel-app binding
|
|
23
|
+
* (`app_ref`) carry over too — apply semantics would otherwise silently
|
|
24
|
+
* unbind them on every toggle (and an installed channel's app_ref is
|
|
25
|
+
* frozen server-side, so dropping it would refuse the save outright).
|
|
26
|
+
*/
|
|
27
|
+
export function agentChannelToInput(channel) {
|
|
28
|
+
const metadata = channel.metadata;
|
|
29
|
+
const spec = channel.spec;
|
|
30
|
+
const labels = metadata?.labels ?? {};
|
|
31
|
+
const environmentRefs = spec?.environmentRefs ?? [];
|
|
32
|
+
return {
|
|
33
|
+
name: metadata?.name ?? "",
|
|
34
|
+
...(metadata?.slug ? { slug: metadata.slug } : {}),
|
|
35
|
+
org: metadata?.org ?? "",
|
|
36
|
+
...(Object.keys(labels).length > 0 ? { labels: { ...labels } } : {}),
|
|
37
|
+
...(metadata?.visibility ? { visibility: metadata.visibility } : {}),
|
|
38
|
+
agentRef: {
|
|
39
|
+
org: spec?.agentRef?.org ?? "",
|
|
40
|
+
slug: spec?.agentRef?.slug ?? "",
|
|
41
|
+
},
|
|
42
|
+
enabled: spec?.enabled ?? false,
|
|
43
|
+
...(spec?.providerConfig?.case === "slack" ? { slack: {} } : {}),
|
|
44
|
+
...(spec?.providerConfig?.case === "whatsapp"
|
|
45
|
+
? { whatsapp: { phoneNumberId: spec.providerConfig.value.phoneNumberId } }
|
|
46
|
+
: {}),
|
|
47
|
+
...(spec?.appRef?.slug
|
|
48
|
+
? {
|
|
49
|
+
appRef: {
|
|
50
|
+
org: spec.appRef.org,
|
|
51
|
+
slug: spec.appRef.slug,
|
|
52
|
+
},
|
|
53
|
+
}
|
|
54
|
+
: {}),
|
|
55
|
+
...(environmentRefs.length > 0
|
|
56
|
+
? {
|
|
57
|
+
environmentRefs: environmentRefs.map((ref) => ({
|
|
58
|
+
org: ref.org,
|
|
59
|
+
slug: ref.slug,
|
|
60
|
+
})),
|
|
61
|
+
}
|
|
62
|
+
: {}),
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Mutation hook that creates or updates an {@link AgentChannel}.
|
|
67
|
+
*
|
|
68
|
+
* Wraps `stigmer.agentChannel.apply()` with loading/error state. The
|
|
69
|
+
* caller is responsible for post-save UI updates (e.g. refreshing the
|
|
70
|
+
* channel list). Pair with {@link agentChannelToInput} to change a single
|
|
71
|
+
* field of an existing channel without dropping the rest of its spec.
|
|
72
|
+
*
|
|
73
|
+
* @example
|
|
74
|
+
* ```tsx
|
|
75
|
+
* const { save, isPending } = useSaveAgentChannel();
|
|
76
|
+
*
|
|
77
|
+
* const handleToggle = async (channel: AgentChannel, enabled: boolean) => {
|
|
78
|
+
* await save({ ...agentChannelToInput(channel), enabled });
|
|
79
|
+
* refetch(); // refresh the channel list
|
|
80
|
+
* };
|
|
81
|
+
* ```
|
|
82
|
+
*/
|
|
83
|
+
export function useSaveAgentChannel() {
|
|
84
|
+
const stigmer = useStigmer();
|
|
85
|
+
const [isPending, setIsPending] = useState(false);
|
|
86
|
+
const [error, setError] = useState(null);
|
|
87
|
+
const clearError = useCallback(() => setError(null), []);
|
|
88
|
+
const save = useCallback(async (input) => {
|
|
89
|
+
setIsPending(true);
|
|
90
|
+
setError(null);
|
|
91
|
+
try {
|
|
92
|
+
return await stigmer.agentChannel.apply(input);
|
|
93
|
+
}
|
|
94
|
+
catch (err) {
|
|
95
|
+
setError(toError(err));
|
|
96
|
+
throw err;
|
|
97
|
+
}
|
|
98
|
+
finally {
|
|
99
|
+
setIsPending(false);
|
|
100
|
+
}
|
|
101
|
+
}, [stigmer]);
|
|
102
|
+
return { save, isPending, error, clearError };
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=useSaveAgentChannel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSaveAgentChannel.js","sourceRoot":"","sources":["../../src/channel/useSaveAgentChannel.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { ChannelApp } from "@stigmer/protos/ai/stigmer/agentic/channelapp/v1/api_pb";
|
|
2
|
+
import type { ChannelAppCreateHandoff } from "./CreateChannelAppForm.js";
|
|
3
|
+
/** Props for {@link ChannelAppDetailPanel}. */
|
|
4
|
+
export interface ChannelAppDetailPanelProps {
|
|
5
|
+
/** The channel app to display and edit (secret fields arrive redacted). */
|
|
6
|
+
readonly channelApp: ChannelApp;
|
|
7
|
+
/**
|
|
8
|
+
* Console origin used to derive the OAuth redirect URL shown in the
|
|
9
|
+
* Slack setup guidance. Defaults to the current window's origin.
|
|
10
|
+
*/
|
|
11
|
+
readonly consoleOrigin?: string;
|
|
12
|
+
/**
|
|
13
|
+
* Once-visible values threaded from the create flow (in memory only).
|
|
14
|
+
* The WhatsApp verify token is entered at registration but answers
|
|
15
|
+
* redacted from then on, and phase-two setup needs it *together with*
|
|
16
|
+
* the webhook URL that only exists now — this handoff lets the panel
|
|
17
|
+
* show both, exactly once. Absent on a later visit, the token renders
|
|
18
|
+
* redacted (rotate to get a fresh one).
|
|
19
|
+
*/
|
|
20
|
+
readonly createHandoff?: ChannelAppCreateHandoff;
|
|
21
|
+
/** Fired with the updated app after a successful save. */
|
|
22
|
+
readonly onUpdated?: (app: ChannelApp) => void;
|
|
23
|
+
/** Fired after the app is deleted. */
|
|
24
|
+
readonly onDeleted?: () => void;
|
|
25
|
+
/** Fired when the user navigates back to the list. */
|
|
26
|
+
readonly onBack?: () => void;
|
|
27
|
+
/** Additional CSS class names for the root container. */
|
|
28
|
+
readonly className?: string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Detail view for one {@link ChannelApp}: the "finish setup at the
|
|
32
|
+
* provider" values — phase two of the two-phase setup — plus credential
|
|
33
|
+
* rotation and deletion.
|
|
34
|
+
*
|
|
35
|
+
* Provider-shaped bodies on a shared frame: a Slack app shows its
|
|
36
|
+
* events webhook URL, OAuth redirect URL, and completed manifest; a
|
|
37
|
+
* Meta (WhatsApp) app shows its webhook URL and verify token (no
|
|
38
|
+
* manifest — Meta has no equivalent, so the guidance is a checklist).
|
|
39
|
+
*
|
|
40
|
+
* Secret fields are prefilled with the redaction marker; leaving them
|
|
41
|
+
* untouched preserves the stored values (rotate one secret without
|
|
42
|
+
* re-entering the others). Deletion is refused server-side while any
|
|
43
|
+
* agent channel still installs through this app.
|
|
44
|
+
*/
|
|
45
|
+
export declare function ChannelAppDetailPanel({ channelApp, consoleOrigin, createHandoff, onUpdated, onDeleted, onBack, className, }: ChannelAppDetailPanelProps): import("react/jsx-runtime").JSX.Element;
|
|
46
|
+
//# sourceMappingURL=ChannelAppDetailPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChannelAppDetailPanel.d.ts","sourceRoot":"","sources":["../../src/channel-app/ChannelAppDetailPanel.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yDAAyD,CAAC;AAI1F,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAgBzE,+CAA+C;AAC/C,MAAM,WAAW,0BAA0B;IACzC,2EAA2E;IAC3E,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC;;;OAGG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC;;;;;;;OAOG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,uBAAuB,CAAC;IACjD,0DAA0D;IAC1D,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,CAAC;IAC/C,sCAAsC;IACtC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,sDAAsD;IACtD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,yDAAyD;IACzD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,UAAU,EACV,aAAa,EACb,aAAa,EACb,SAAS,EACT,SAAS,EACT,MAAM,EACN,SAAS,GACV,EAAE,0BAA0B,2CAkG5B"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import { useCallback, useMemo, useState } from "react";
|
|
4
|
+
import { cn } from "@stigmer/theme";
|
|
5
|
+
import { getUserMessage } from "@stigmer/sdk";
|
|
6
|
+
import { useStigmer } from "../hooks.js";
|
|
7
|
+
import { useUpdateChannelApp } from "./useUpdateChannelApp.js";
|
|
8
|
+
import { useDeleteChannelApp } from "./useDeleteChannelApp.js";
|
|
9
|
+
import { buildSlackChannelAppManifest, slackChannelAppRedirectUrl, slackChannelAppWebhookUrl, } from "./slackAppSetup.js";
|
|
10
|
+
import { WHATSAPP_CHANNEL_APP_WEBHOOK_FIELDS, whatsappChannelAppWebhookUrl, } from "./whatsappAppSetup.js";
|
|
11
|
+
import { CopyBlock, CopyRow, FormField, SpinnerIcon } from "./internal.js";
|
|
12
|
+
/**
|
|
13
|
+
* Detail view for one {@link ChannelApp}: the "finish setup at the
|
|
14
|
+
* provider" values — phase two of the two-phase setup — plus credential
|
|
15
|
+
* rotation and deletion.
|
|
16
|
+
*
|
|
17
|
+
* Provider-shaped bodies on a shared frame: a Slack app shows its
|
|
18
|
+
* events webhook URL, OAuth redirect URL, and completed manifest; a
|
|
19
|
+
* Meta (WhatsApp) app shows its webhook URL and verify token (no
|
|
20
|
+
* manifest — Meta has no equivalent, so the guidance is a checklist).
|
|
21
|
+
*
|
|
22
|
+
* Secret fields are prefilled with the redaction marker; leaving them
|
|
23
|
+
* untouched preserves the stored values (rotate one secret without
|
|
24
|
+
* re-entering the others). Deletion is refused server-side while any
|
|
25
|
+
* agent channel still installs through this app.
|
|
26
|
+
*/
|
|
27
|
+
export function ChannelAppDetailPanel({ channelApp, consoleOrigin, createHandoff, onUpdated, onDeleted, onBack, className, }) {
|
|
28
|
+
const { deleteApp, isDeleting, error: deleteError } = useDeleteChannelApp();
|
|
29
|
+
const [confirmingDelete, setConfirmingDelete] = useState(false);
|
|
30
|
+
const appId = channelApp.metadata?.id ?? "";
|
|
31
|
+
const name = channelApp.metadata?.name ?? "";
|
|
32
|
+
const providerCase = channelApp.spec?.providerConfig?.case;
|
|
33
|
+
const handleDelete = useCallback(async () => {
|
|
34
|
+
try {
|
|
35
|
+
await deleteApp(appId);
|
|
36
|
+
onDeleted?.();
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
// error state is managed by useDeleteChannelApp
|
|
40
|
+
}
|
|
41
|
+
finally {
|
|
42
|
+
setConfirmingDelete(false);
|
|
43
|
+
}
|
|
44
|
+
}, [deleteApp, appId, onDeleted]);
|
|
45
|
+
return (_jsxs("div", { className: cn("space-y-5", className), children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("h3", { className: "truncate text-sm font-semibold text-foreground", children: name }), _jsx("p", { className: "font-mono text-[0.65rem] text-muted-foreground", children: appId })] }), onBack && (_jsx("button", { type: "button", onClick: onBack, className: "text-muted-foreground hover:text-foreground shrink-0 text-xs transition-colors", children: "\u2190 Back" }))] }), providerCase === "slack" ? (_jsx(SlackAppDetail, { channelApp: channelApp, consoleOrigin: consoleOrigin, onUpdated: onUpdated })) : providerCase === "whatsapp" ? (_jsx(WhatsAppAppDetail, { channelApp: channelApp, createHandoff: createHandoff, onUpdated: onUpdated })) : null, _jsxs("section", { className: "border-t border-border pt-3", "aria-label": "Danger zone", children: [deleteError && (_jsx("p", { className: "text-destructive mb-2 text-[0.65rem]", role: "alert", children: getUserMessage(deleteError) })), confirmingDelete ? (_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("p", { className: "text-xs text-foreground", children: "Delete this channel app? Channels installing through it must be disconnected first." }), _jsxs("button", { type: "button", onClick: handleDelete, disabled: isDeleting, className: cn("inline-flex items-center gap-1.5 rounded-md px-2.5 py-1 text-xs font-medium", "bg-destructive text-destructive-foreground hover:opacity-90", "disabled:pointer-events-none disabled:opacity-40"), children: [isDeleting && _jsx(SpinnerIcon, {}), "Delete"] }), _jsx("button", { type: "button", onClick: () => setConfirmingDelete(false), disabled: isDeleting, className: "text-muted-foreground hover:text-foreground text-xs transition-colors", children: "Keep" })] })) : (_jsx("button", { type: "button", onClick: () => setConfirmingDelete(true), className: "text-destructive text-xs font-medium hover:opacity-80", children: "Delete channel app" }))] })] }));
|
|
46
|
+
}
|
|
47
|
+
// ---------------------------------------------------------------------------
|
|
48
|
+
// Slack — finish setup in Slack + credential rotation
|
|
49
|
+
// ---------------------------------------------------------------------------
|
|
50
|
+
function SlackAppDetail({ channelApp, consoleOrigin, onUpdated, }) {
|
|
51
|
+
const stigmer = useStigmer();
|
|
52
|
+
const { update, isUpdating, error: updateError, clearError } = useUpdateChannelApp();
|
|
53
|
+
const slack = channelApp.spec?.providerConfig?.case === "slack"
|
|
54
|
+
? channelApp.spec.providerConfig.value
|
|
55
|
+
: undefined;
|
|
56
|
+
const [clientId, setClientId] = useState(slack?.clientId ?? "");
|
|
57
|
+
const [clientSecret, setClientSecret] = useState(slack?.clientSecret ?? "");
|
|
58
|
+
const [signingSecret, setSigningSecret] = useState(slack?.signingSecret ?? "");
|
|
59
|
+
const appId = channelApp.metadata?.id ?? "";
|
|
60
|
+
const name = channelApp.metadata?.name ?? "";
|
|
61
|
+
const webhookUrl = useMemo(() => slackChannelAppWebhookUrl(stigmer.baseUrl, appId), [stigmer.baseUrl, appId]);
|
|
62
|
+
const redirectUrl = useMemo(() => slackChannelAppRedirectUrl(consoleOrigin), [consoleOrigin]);
|
|
63
|
+
const manifest = useMemo(() => buildSlackChannelAppManifest({ name, redirectUrl, webhookUrl }), [name, redirectUrl, webhookUrl]);
|
|
64
|
+
const canSave = clientId.trim() !== "" &&
|
|
65
|
+
clientSecret.trim() !== "" &&
|
|
66
|
+
signingSecret.trim() !== "" &&
|
|
67
|
+
!isUpdating;
|
|
68
|
+
const handleSave = useCallback(async (e) => {
|
|
69
|
+
e.preventDefault();
|
|
70
|
+
if (!canSave)
|
|
71
|
+
return;
|
|
72
|
+
clearError();
|
|
73
|
+
try {
|
|
74
|
+
const updated = await update({
|
|
75
|
+
name,
|
|
76
|
+
org: channelApp.metadata?.org ?? "",
|
|
77
|
+
...(channelApp.metadata?.slug ? { slug: channelApp.metadata.slug } : {}),
|
|
78
|
+
slack: {
|
|
79
|
+
clientId: clientId.trim(),
|
|
80
|
+
// The redaction marker means "keep the stored value" — the
|
|
81
|
+
// server preserves per field.
|
|
82
|
+
clientSecret: clientSecret.trim(),
|
|
83
|
+
signingSecret: signingSecret.trim(),
|
|
84
|
+
},
|
|
85
|
+
});
|
|
86
|
+
onUpdated?.(updated);
|
|
87
|
+
}
|
|
88
|
+
catch {
|
|
89
|
+
// error state is managed by useUpdateChannelApp
|
|
90
|
+
}
|
|
91
|
+
}, [canSave, clearError, update, name, channelApp.metadata, clientId, clientSecret, signingSecret, onUpdated]);
|
|
92
|
+
return (_jsxs(_Fragment, { children: [_jsxs("section", { className: "space-y-2", "aria-label": "Finish setup in Slack", children: [_jsx("p", { className: "text-xs font-medium text-foreground", children: "Finish setup in Slack" }), _jsxs("p", { className: "text-[0.65rem] text-muted-foreground", children: ["On the app's ", _jsx("span", { className: "font-medium", children: "Event Subscriptions" }), " page, enable events and set the request URL below (Slack verifies it immediately). The completed manifest is also available for review or re-paste."] }), _jsx(CopyRow, { label: "Events request URL", value: webhookUrl, copyTargetId: "stgm-chapp-webhook-copy" }), _jsx(CopyRow, { label: "OAuth redirect URL", value: redirectUrl }), _jsx(CopyBlock, { label: "Completed app manifest", value: manifest })] }), _jsxs("form", { onSubmit: handleSave, className: "space-y-3", "aria-label": "Credentials", children: [_jsx("p", { className: "text-xs font-medium text-foreground", children: "Credentials" }), _jsxs("p", { className: "-mt-2 text-[0.65rem] text-muted-foreground", children: ["Secrets show as ", _jsx("code", { className: "font-mono", children: "***REDACTED***" }), "; leave a field untouched to keep its stored value, or paste a new one to rotate it."] }), _jsx(FormField, { id: "stgm-chapp-edit-client-id", label: "Client ID", value: clientId, onChange: setClientId, placeholder: "1234567890.0987654321", disabled: isUpdating, required: true }), _jsx(FormField, { id: "stgm-chapp-edit-client-secret", label: "Client secret", value: clientSecret, onChange: setClientSecret, placeholder: "Client secret", type: "password", disabled: isUpdating, required: true }), _jsx(FormField, { id: "stgm-chapp-edit-signing-secret", label: "Signing secret", value: signingSecret, onChange: setSigningSecret, placeholder: "Signing secret", type: "password", disabled: isUpdating, required: true }), updateError && (_jsx("p", { className: "text-destructive text-[0.65rem]", role: "alert", children: getUserMessage(updateError) })), _jsxs("button", { type: "submit", disabled: !canSave, className: cn("inline-flex items-center gap-1.5 rounded-md px-3 py-1.5 text-xs font-medium", "bg-primary text-primary-foreground hover:bg-primary-hover", "disabled:pointer-events-none disabled:opacity-40"), children: [isUpdating && _jsx(SpinnerIcon, {}), "Save credentials"] })] })] }));
|
|
93
|
+
}
|
|
94
|
+
// ---------------------------------------------------------------------------
|
|
95
|
+
// WhatsApp — finish setup in Meta + credential rotation
|
|
96
|
+
// ---------------------------------------------------------------------------
|
|
97
|
+
function WhatsAppAppDetail({ channelApp, createHandoff, onUpdated, }) {
|
|
98
|
+
const stigmer = useStigmer();
|
|
99
|
+
const { update, isUpdating, error: updateError, clearError } = useUpdateChannelApp();
|
|
100
|
+
const whatsapp = channelApp.spec?.providerConfig?.case === "whatsapp"
|
|
101
|
+
? channelApp.spec.providerConfig.value
|
|
102
|
+
: undefined;
|
|
103
|
+
const [metaAppId, setMetaAppId] = useState(whatsapp?.appId ?? "");
|
|
104
|
+
const [appSecret, setAppSecret] = useState(whatsapp?.appSecret ?? "");
|
|
105
|
+
const [accessToken, setAccessToken] = useState(whatsapp?.accessToken ?? "");
|
|
106
|
+
const [verifyToken, setVerifyToken] = useState(whatsapp?.verifyToken ?? "");
|
|
107
|
+
const appId = channelApp.metadata?.id ?? "";
|
|
108
|
+
const name = channelApp.metadata?.name ?? "";
|
|
109
|
+
const webhookUrl = useMemo(() => whatsappChannelAppWebhookUrl(stigmer.baseUrl, appId), [stigmer.baseUrl, appId]);
|
|
110
|
+
const canSave = metaAppId.trim() !== "" &&
|
|
111
|
+
appSecret.trim() !== "" &&
|
|
112
|
+
accessToken.trim() !== "" &&
|
|
113
|
+
verifyToken.trim() !== "" &&
|
|
114
|
+
!isUpdating;
|
|
115
|
+
const handleSave = useCallback(async (e) => {
|
|
116
|
+
e.preventDefault();
|
|
117
|
+
if (!canSave)
|
|
118
|
+
return;
|
|
119
|
+
clearError();
|
|
120
|
+
try {
|
|
121
|
+
const updated = await update({
|
|
122
|
+
name,
|
|
123
|
+
org: channelApp.metadata?.org ?? "",
|
|
124
|
+
...(channelApp.metadata?.slug ? { slug: channelApp.metadata.slug } : {}),
|
|
125
|
+
whatsapp: {
|
|
126
|
+
appId: metaAppId.trim(),
|
|
127
|
+
// The redaction marker means "keep the stored value" — the
|
|
128
|
+
// server preserves per field.
|
|
129
|
+
appSecret: appSecret.trim(),
|
|
130
|
+
accessToken: accessToken.trim(),
|
|
131
|
+
verifyToken: verifyToken.trim(),
|
|
132
|
+
},
|
|
133
|
+
});
|
|
134
|
+
onUpdated?.(updated);
|
|
135
|
+
}
|
|
136
|
+
catch {
|
|
137
|
+
// error state is managed by useUpdateChannelApp
|
|
138
|
+
}
|
|
139
|
+
}, [canSave, clearError, update, name, channelApp.metadata, metaAppId, appSecret, accessToken, verifyToken, onUpdated]);
|
|
140
|
+
return (_jsxs(_Fragment, { children: [_jsxs("section", { className: "space-y-2", "aria-label": "Finish setup in Meta", children: [_jsx("p", { className: "text-xs font-medium text-foreground", children: "Finish setup in Meta" }), _jsxs("p", { className: "text-[0.65rem] text-muted-foreground", children: ["On the app's ", _jsx("span", { className: "font-medium", children: "WhatsApp \u2192 Configuration" }), " page, set the callback URL and verify token below, click ", _jsx("span", { className: "font-medium", children: "Verify and save" }), " ", "(Meta verifies immediately), then subscribe to the", " ", _jsx("span", { className: "font-medium", children: WHATSAPP_CHANNEL_APP_WEBHOOK_FIELDS.join(", ") }), " ", "webhook field."] }), _jsx(CopyRow, { label: "Callback URL", value: webhookUrl, copyTargetId: "stgm-chapp-webhook-copy" }), createHandoff?.verifyToken ? (_jsx(CopyRow, { label: "Verify token", value: createHandoff.verifyToken, copyTargetId: "stgm-chapp-verify-token-copy" })) : (_jsxs("div", { className: "space-y-1", children: [_jsx("p", { className: "text-xs font-medium text-foreground", children: "Verify token" }), _jsx("p", { className: "text-[0.65rem] text-muted-foreground", children: "Shown once at registration. If you no longer have it, paste a new one below and update Meta's webhook configuration to match." })] }))] }), _jsxs("form", { onSubmit: handleSave, className: "space-y-3", "aria-label": "Credentials", children: [_jsx("p", { className: "text-xs font-medium text-foreground", children: "Credentials" }), _jsxs("p", { className: "-mt-2 text-[0.65rem] text-muted-foreground", children: ["Secrets show as ", _jsx("code", { className: "font-mono", children: "***REDACTED***" }), "; leave a field untouched to keep its stored value, or paste a new one to rotate it."] }), _jsx(FormField, { id: "stgm-chapp-edit-app-id", label: "App ID", value: metaAppId, onChange: setMetaAppId, placeholder: "1234567890123456", disabled: isUpdating, required: true }), _jsx(FormField, { id: "stgm-chapp-edit-app-secret", label: "App secret", value: appSecret, onChange: setAppSecret, placeholder: "App secret", type: "password", disabled: isUpdating, required: true }), _jsx(FormField, { id: "stgm-chapp-edit-access-token", label: "Access token", value: accessToken, onChange: setAccessToken, placeholder: "Long-lived system-user access token", type: "password", disabled: isUpdating, required: true }), _jsx(FormField, { id: "stgm-chapp-edit-verify-token", label: "Verify token", value: verifyToken, onChange: setVerifyToken, placeholder: "Verify token", type: "password", hint: "Rotating it? Update Meta's webhook configuration to the same value.", disabled: isUpdating, required: true }), updateError && (_jsx("p", { className: "text-destructive text-[0.65rem]", role: "alert", children: getUserMessage(updateError) })), _jsxs("button", { type: "submit", disabled: !canSave, className: cn("inline-flex items-center gap-1.5 rounded-md px-3 py-1.5 text-xs font-medium", "bg-primary text-primary-foreground hover:bg-primary-hover", "disabled:pointer-events-none disabled:opacity-40"), children: [isUpdating && _jsx(SpinnerIcon, {}), "Save credentials"] })] })] }));
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=ChannelAppDetailPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChannelAppDetailPanel.js","sourceRoot":"","sources":["../../src/channel-app/ChannelAppDetailPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { ChannelApp } from "@stigmer/protos/ai/stigmer/agentic/channelapp/v1/api_pb";
|
|
2
|
+
/** Props for {@link ChannelAppListPanel}. */
|
|
3
|
+
export interface ChannelAppListPanelProps {
|
|
4
|
+
/** Organization slug to list channel apps for. */
|
|
5
|
+
readonly org: string;
|
|
6
|
+
/**
|
|
7
|
+
* Fired when the user wants to view/edit a channel app.
|
|
8
|
+
* When provided, rows become interactive with a pencil icon button.
|
|
9
|
+
*/
|
|
10
|
+
readonly onEdit?: (app: ChannelApp) => void;
|
|
11
|
+
/** Re-expose refetch so parents can trigger a list refresh. */
|
|
12
|
+
readonly onRefetchRef?: (refetch: () => void) => void;
|
|
13
|
+
/** Additional CSS class names for the root container. */
|
|
14
|
+
readonly className?: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Displays the {@link ChannelApp} resources owned by an organization —
|
|
18
|
+
* the customer's own provider apps (Slack, Meta/WhatsApp) that agent
|
|
19
|
+
* channels can install through.
|
|
20
|
+
*
|
|
21
|
+
* Each row shows the app name, provider, the provider's non-secret app
|
|
22
|
+
* identifier, and creation date. Secret fields never appear (they
|
|
23
|
+
* arrive redacted).
|
|
24
|
+
*
|
|
25
|
+
* All visual properties flow through `--stgm-*` design tokens.
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```tsx
|
|
29
|
+
* <ChannelAppListPanel
|
|
30
|
+
* org="acme"
|
|
31
|
+
* onEdit={(app) => setFlow({ phase: "editing", channelApp: app })}
|
|
32
|
+
* />
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export declare function ChannelAppListPanel({ org, onEdit, onRefetchRef, className, }: ChannelAppListPanelProps): import("react/jsx-runtime").JSX.Element;
|
|
36
|
+
//# sourceMappingURL=ChannelAppListPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChannelAppListPanel.d.ts","sourceRoot":"","sources":["../../src/channel-app/ChannelAppListPanel.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yDAAyD,CAAC;AAQ1F,6CAA6C;AAC7C,MAAM,WAAW,wBAAwB;IACvC,kDAAkD;IAClD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,CAAC;IAC5C,+DAA+D;IAC/D,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IACtD,yDAAyD;IACzD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,GAAG,EACH,MAAM,EACN,YAAY,EACZ,SAAS,GACV,EAAE,wBAAwB,2CAyD1B"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { cn } from "@stigmer/theme";
|
|
4
|
+
import { getUserMessage } from "@stigmer/sdk";
|
|
5
|
+
import { timestampDate } from "@bufbuild/protobuf/wkt";
|
|
6
|
+
import { channelProviderOf } from "../channel/providers.js";
|
|
7
|
+
import { useChannelAppList } from "./useChannelAppList.js";
|
|
8
|
+
/**
|
|
9
|
+
* Displays the {@link ChannelApp} resources owned by an organization —
|
|
10
|
+
* the customer's own provider apps (Slack, Meta/WhatsApp) that agent
|
|
11
|
+
* channels can install through.
|
|
12
|
+
*
|
|
13
|
+
* Each row shows the app name, provider, the provider's non-secret app
|
|
14
|
+
* identifier, and creation date. Secret fields never appear (they
|
|
15
|
+
* arrive redacted).
|
|
16
|
+
*
|
|
17
|
+
* All visual properties flow through `--stgm-*` design tokens.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```tsx
|
|
21
|
+
* <ChannelAppListPanel
|
|
22
|
+
* org="acme"
|
|
23
|
+
* onEdit={(app) => setFlow({ phase: "editing", channelApp: app })}
|
|
24
|
+
* />
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export function ChannelAppListPanel({ org, onEdit, onRefetchRef, className, }) {
|
|
28
|
+
const { channelApps, isLoading, error, refetch } = useChannelAppList(org);
|
|
29
|
+
if (onRefetchRef) {
|
|
30
|
+
onRefetchRef(refetch);
|
|
31
|
+
}
|
|
32
|
+
if (isLoading) {
|
|
33
|
+
return (_jsx("div", { className: cn("space-y-2", className), "aria-busy": "true", "aria-label": "Loading channel apps", children: Array.from({ length: 2 }, (_, i) => (_jsx("div", { className: "bg-muted-subtle h-14 animate-pulse rounded-lg" }, i))) }));
|
|
34
|
+
}
|
|
35
|
+
if (error) {
|
|
36
|
+
return (_jsx("p", { className: cn("text-destructive text-xs", className), role: "alert", children: getUserMessage(error) }));
|
|
37
|
+
}
|
|
38
|
+
if (channelApps.length === 0) {
|
|
39
|
+
return (_jsx("p", { className: cn("text-muted-foreground py-4 text-center text-xs", className), children: "No channel apps registered yet." }));
|
|
40
|
+
}
|
|
41
|
+
return (_jsx("div", { className: cn("space-y-2", className), role: "list", "aria-label": "Channel apps", children: channelApps.map((app) => (_jsx(ChannelAppRow, { channelApp: app, onEdit: onEdit ? () => onEdit(app) : undefined }, app.metadata?.id ?? ""))) }));
|
|
42
|
+
}
|
|
43
|
+
// ---------------------------------------------------------------------------
|
|
44
|
+
// Row (internal)
|
|
45
|
+
// ---------------------------------------------------------------------------
|
|
46
|
+
function ChannelAppRow({ channelApp, onEdit, }) {
|
|
47
|
+
const name = channelApp.metadata?.name ?? "";
|
|
48
|
+
const providerCase = channelApp.spec?.providerConfig?.case;
|
|
49
|
+
const provider = channelProviderOf(providerCase);
|
|
50
|
+
// The provider's non-secret app identifier — the one value that ties
|
|
51
|
+
// the row to the app on the provider's dashboard.
|
|
52
|
+
const providerAppId = channelApp.spec?.providerConfig?.case === "slack"
|
|
53
|
+
? channelApp.spec.providerConfig.value.clientId
|
|
54
|
+
: channelApp.spec?.providerConfig?.case === "whatsapp"
|
|
55
|
+
? channelApp.spec.providerConfig.value.appId
|
|
56
|
+
: undefined;
|
|
57
|
+
const createdAt = channelApp.status?.audit?.specAudit?.createdAt;
|
|
58
|
+
return (_jsxs("div", { role: "listitem", className: cn("border-border bg-card flex items-center gap-3 rounded-lg border px-3 py-2.5"), children: [_jsxs("div", { className: "min-w-0 flex-1", children: [_jsxs("div", { className: "flex items-baseline gap-2", children: [_jsx("span", { className: "truncate text-xs font-medium text-foreground", children: name }), _jsx("span", { className: "text-[0.65rem] text-muted-foreground", children: provider?.label ?? providerCase ?? "" })] }), _jsxs("div", { className: "flex items-baseline gap-2", children: [providerAppId && (_jsx("span", { className: "truncate font-mono text-[0.65rem] text-muted-foreground", children: providerAppId })), createdAt && (_jsx("span", { className: "shrink-0 text-[0.65rem] text-muted-foreground", children: timestampDate(createdAt).toLocaleDateString() }))] })] }), onEdit && (_jsx("button", { type: "button", onClick: onEdit, "aria-label": `Edit ${name}`, className: cn("text-muted-foreground hover:text-foreground hover:bg-accent-hover", "shrink-0 rounded-md p-1.5 transition-colors"), children: _jsx(PencilIcon, {}) }))] }));
|
|
59
|
+
}
|
|
60
|
+
function PencilIcon() {
|
|
61
|
+
return (_jsx("svg", { width: "12", height: "12", viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: _jsx("path", { d: "M11.5 2.5a1.4 1.4 0 0 1 2 2L5 13l-3 1 1-3 8.5-8.5z" }) }));
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=ChannelAppListPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChannelAppListPanel.js","sourceRoot":"","sources":["../../src/channel-app/ChannelAppListPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { ChannelApp } from "@stigmer/protos/ai/stigmer/agentic/channelapp/v1/api_pb";
|
|
2
|
+
/**
|
|
3
|
+
* Values from the create flow that a host needs exactly once, right
|
|
4
|
+
* after registration — they are encrypted server-side and answer
|
|
5
|
+
* redacted from then on. The section flow threads them (client-side, in
|
|
6
|
+
* memory only) into the detail panel so "finish setup at the provider"
|
|
7
|
+
* can show them alongside the freshly-minted webhook URL.
|
|
8
|
+
*/
|
|
9
|
+
export interface ChannelAppCreateHandoff {
|
|
10
|
+
/** The WhatsApp verify token as entered; absent for Slack apps. */
|
|
11
|
+
readonly verifyToken?: string;
|
|
12
|
+
}
|
|
13
|
+
/** Props for {@link CreateChannelAppForm}. */
|
|
14
|
+
export interface CreateChannelAppFormProps {
|
|
15
|
+
/** Organization slug — the channel app will be created in this org. */
|
|
16
|
+
readonly org: string;
|
|
17
|
+
/**
|
|
18
|
+
* Console origin used to derive the OAuth redirect URL shown in the
|
|
19
|
+
* Slack setup guidance. Defaults to the current window's origin.
|
|
20
|
+
*/
|
|
21
|
+
readonly consoleOrigin?: string;
|
|
22
|
+
/**
|
|
23
|
+
* Fired with the newly created channel app on success. The handoff
|
|
24
|
+
* carries the once-visible secrets the detail panel shows for
|
|
25
|
+
* phase-two setup.
|
|
26
|
+
*/
|
|
27
|
+
readonly onCreated?: (app: ChannelApp, handoff: ChannelAppCreateHandoff) => void;
|
|
28
|
+
/** Fired when the user cancels creation. */
|
|
29
|
+
readonly onCancel?: () => void;
|
|
30
|
+
/** Additional CSS class names for the root container. */
|
|
31
|
+
readonly className?: string;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Form for registering a customer-owned provider app as a
|
|
35
|
+
* {@link ChannelApp} (bring your own app — the bot carries your name
|
|
36
|
+
* and identity, and each app is its own bot identity).
|
|
37
|
+
*
|
|
38
|
+
* Provider-shaped: a Slack app brings OAuth credentials plus a
|
|
39
|
+
* ready-to-paste manifest; a Meta (WhatsApp) app brings dashboard
|
|
40
|
+
* credentials plus a generated verify token — Meta has no manifest
|
|
41
|
+
* equivalent, so the guidance is a checklist.
|
|
42
|
+
*
|
|
43
|
+
* Setup is two-phase by nature for both providers (the provider mints
|
|
44
|
+
* the credentials, Stigmer mints the per-app webhook URL): this form
|
|
45
|
+
* covers phase one — the credentials. The detail panel shown after
|
|
46
|
+
* creation carries phase two (the events webhook URL, plus the verify
|
|
47
|
+
* token for WhatsApp).
|
|
48
|
+
*
|
|
49
|
+
* This is a pure presentational component with no dialog wrapper
|
|
50
|
+
* (headless-first). All visual properties flow through `--stgm-*`
|
|
51
|
+
* design tokens.
|
|
52
|
+
*/
|
|
53
|
+
export declare function CreateChannelAppForm({ org, consoleOrigin, onCreated, onCancel, className, }: CreateChannelAppFormProps): import("react/jsx-runtime").JSX.Element;
|
|
54
|
+
//# sourceMappingURL=CreateChannelAppForm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CreateChannelAppForm.d.ts","sourceRoot":"","sources":["../../src/channel-app/CreateChannelAppForm.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yDAAyD,CAAC;AAiB1F;;;;;;GAMG;AACH,MAAM,WAAW,uBAAuB;IACtC,mEAAmE;IACnE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,8CAA8C;AAC9C,MAAM,WAAW,yBAAyB;IACxC,uEAAuE;IACvE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,uBAAuB,KAAK,IAAI,CAAC;IACjF,4CAA4C;IAC5C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,yDAAyD;IACzD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,GAAG,EACH,aAAa,EACb,SAAS,EACT,QAAQ,EACR,SAAS,GACV,EAAE,yBAAyB,2CAuL3B"}
|