@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
|
@@ -0,0 +1,140 @@
|
|
|
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 { CHANNEL_PROVIDERS, } from "../channel/providers.js";
|
|
7
|
+
import { useCreateChannelApp } from "./useCreateChannelApp.js";
|
|
8
|
+
import { buildSlackChannelAppManifest, slackChannelAppRedirectUrl, } from "./slackAppSetup.js";
|
|
9
|
+
import { generateWhatsAppVerifyToken } from "./whatsappAppSetup.js";
|
|
10
|
+
import { CopyBlock, FormField, SpinnerIcon } from "./internal.js";
|
|
11
|
+
/**
|
|
12
|
+
* Form for registering a customer-owned provider app as a
|
|
13
|
+
* {@link ChannelApp} (bring your own app — the bot carries your name
|
|
14
|
+
* and identity, and each app is its own bot identity).
|
|
15
|
+
*
|
|
16
|
+
* Provider-shaped: a Slack app brings OAuth credentials plus a
|
|
17
|
+
* ready-to-paste manifest; a Meta (WhatsApp) app brings dashboard
|
|
18
|
+
* credentials plus a generated verify token — Meta has no manifest
|
|
19
|
+
* equivalent, so the guidance is a checklist.
|
|
20
|
+
*
|
|
21
|
+
* Setup is two-phase by nature for both providers (the provider mints
|
|
22
|
+
* the credentials, Stigmer mints the per-app webhook URL): this form
|
|
23
|
+
* covers phase one — the credentials. The detail panel shown after
|
|
24
|
+
* creation carries phase two (the events webhook URL, plus the verify
|
|
25
|
+
* token for WhatsApp).
|
|
26
|
+
*
|
|
27
|
+
* This is a pure presentational component with no dialog wrapper
|
|
28
|
+
* (headless-first). All visual properties flow through `--stgm-*`
|
|
29
|
+
* design tokens.
|
|
30
|
+
*/
|
|
31
|
+
export function CreateChannelAppForm({ org, consoleOrigin, onCreated, onCancel, className, }) {
|
|
32
|
+
const { create, isCreating, error, clearError } = useCreateChannelApp();
|
|
33
|
+
const [provider, setProvider] = useState("slack");
|
|
34
|
+
const [name, setName] = useState("");
|
|
35
|
+
// Slack credentials (Basic Information page on api.slack.com).
|
|
36
|
+
const [clientId, setClientId] = useState("");
|
|
37
|
+
const [clientSecret, setClientSecret] = useState("");
|
|
38
|
+
const [signingSecret, setSigningSecret] = useState("");
|
|
39
|
+
// WhatsApp credentials (Meta app dashboard). The verify token is
|
|
40
|
+
// customer-authored like every WhatsApp credential (DD-WA-3) —
|
|
41
|
+
// pre-generated here as a strong default, editable for users bringing
|
|
42
|
+
// their own.
|
|
43
|
+
const [appId, setAppId] = useState("");
|
|
44
|
+
const [appSecret, setAppSecret] = useState("");
|
|
45
|
+
const [accessToken, setAccessToken] = useState("");
|
|
46
|
+
const [verifyToken, setVerifyToken] = useState(generateWhatsAppVerifyToken);
|
|
47
|
+
const trimmedName = name.trim();
|
|
48
|
+
const manifest = useMemo(() => buildSlackChannelAppManifest({
|
|
49
|
+
name: trimmedName || "Your Bot Name",
|
|
50
|
+
redirectUrl: slackChannelAppRedirectUrl(consoleOrigin),
|
|
51
|
+
}), [trimmedName, consoleOrigin]);
|
|
52
|
+
const providerFieldsComplete = provider === "slack"
|
|
53
|
+
? clientId.trim() !== "" &&
|
|
54
|
+
clientSecret.trim() !== "" &&
|
|
55
|
+
signingSecret.trim() !== ""
|
|
56
|
+
: appId.trim() !== "" &&
|
|
57
|
+
appSecret.trim() !== "" &&
|
|
58
|
+
accessToken.trim() !== "" &&
|
|
59
|
+
verifyToken.trim() !== "";
|
|
60
|
+
const canSubmit = trimmedName !== "" && providerFieldsComplete && !isCreating;
|
|
61
|
+
const handleSubmit = useCallback(async (e) => {
|
|
62
|
+
e.preventDefault();
|
|
63
|
+
if (!canSubmit)
|
|
64
|
+
return;
|
|
65
|
+
clearError();
|
|
66
|
+
try {
|
|
67
|
+
const app = await create({
|
|
68
|
+
name: trimmedName,
|
|
69
|
+
org,
|
|
70
|
+
...(provider === "slack"
|
|
71
|
+
? {
|
|
72
|
+
slack: {
|
|
73
|
+
clientId: clientId.trim(),
|
|
74
|
+
clientSecret: clientSecret.trim(),
|
|
75
|
+
signingSecret: signingSecret.trim(),
|
|
76
|
+
},
|
|
77
|
+
}
|
|
78
|
+
: {
|
|
79
|
+
whatsapp: {
|
|
80
|
+
appId: appId.trim(),
|
|
81
|
+
appSecret: appSecret.trim(),
|
|
82
|
+
accessToken: accessToken.trim(),
|
|
83
|
+
verifyToken: verifyToken.trim(),
|
|
84
|
+
},
|
|
85
|
+
}),
|
|
86
|
+
});
|
|
87
|
+
onCreated?.(app, provider === "whatsapp" ? { verifyToken: verifyToken.trim() } : {});
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
// error state is managed by useCreateChannelApp
|
|
91
|
+
}
|
|
92
|
+
}, [
|
|
93
|
+
canSubmit,
|
|
94
|
+
trimmedName,
|
|
95
|
+
org,
|
|
96
|
+
provider,
|
|
97
|
+
clientId,
|
|
98
|
+
clientSecret,
|
|
99
|
+
signingSecret,
|
|
100
|
+
appId,
|
|
101
|
+
appSecret,
|
|
102
|
+
accessToken,
|
|
103
|
+
verifyToken,
|
|
104
|
+
create,
|
|
105
|
+
clearError,
|
|
106
|
+
onCreated,
|
|
107
|
+
]);
|
|
108
|
+
return (_jsxs("form", { onSubmit: handleSubmit, className: cn("space-y-4", className), children: [_jsxs("div", { className: "space-y-3", children: [_jsx(ProviderPicker, { value: provider, onChange: setProvider, disabled: isCreating }), _jsx(FormField, { id: "stgm-chapp-name", label: "Name", value: name, onChange: setName, placeholder: provider === "slack" ? "e.g. Acme Support Bot" : "e.g. Acme WhatsApp", hint: provider === "slack"
|
|
109
|
+
? "The bot name your workspace will @mention"
|
|
110
|
+
: "Names the app in Stigmer — pick something that identifies the Meta app", disabled: isCreating, required: true }), provider === "slack" ? (_jsx(SlackCreateSection, { manifest: manifest, clientId: clientId, onClientIdChange: setClientId, clientSecret: clientSecret, onClientSecretChange: setClientSecret, signingSecret: signingSecret, onSigningSecretChange: setSigningSecret, disabled: isCreating })) : (_jsx(WhatsAppCreateSection, { appId: appId, onAppIdChange: setAppId, appSecret: appSecret, onAppSecretChange: setAppSecret, accessToken: accessToken, onAccessTokenChange: setAccessToken, verifyToken: verifyToken, onVerifyTokenChange: setVerifyToken, disabled: isCreating }))] }), error && (_jsx("p", { className: "text-destructive text-[0.65rem]", role: "alert", children: getUserMessage(error) })), _jsxs("div", { className: "flex items-center gap-2", children: [_jsxs("button", { type: "submit", disabled: !canSubmit, 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: [isCreating && _jsx(SpinnerIcon, {}), "Register channel app"] }), onCancel && (_jsx("button", { type: "button", onClick: onCancel, disabled: isCreating, className: cn("rounded-md px-3 py-1.5 text-xs", "text-muted-foreground hover:text-foreground hover:bg-accent-hover", "disabled:pointer-events-none disabled:opacity-50"), children: "Cancel" }))] })] }));
|
|
111
|
+
}
|
|
112
|
+
// ---------------------------------------------------------------------------
|
|
113
|
+
// Provider picker
|
|
114
|
+
// ---------------------------------------------------------------------------
|
|
115
|
+
/**
|
|
116
|
+
* Which provider the app belongs to — mutually exclusive and fixed for
|
|
117
|
+
* the resource's lifetime (the spec oneof), so a radio group, chosen
|
|
118
|
+
* before the fields it shapes.
|
|
119
|
+
*/
|
|
120
|
+
function ProviderPicker({ value, onChange, disabled, }) {
|
|
121
|
+
return (_jsxs("fieldset", { children: [_jsx("legend", { className: "mb-1.5 block text-xs font-medium text-foreground", children: "Provider" }), _jsx("div", { role: "radiogroup", className: "flex gap-1.5", children: CHANNEL_PROVIDERS.map((p) => {
|
|
122
|
+
const checked = value === p.id;
|
|
123
|
+
return (_jsxs("label", { htmlFor: `stgm-chapp-provider-${p.id}`, className: cn("flex flex-1 cursor-pointer items-center gap-2 rounded-md border px-2.5 py-1.5", checked ? "border-ring bg-accent" : "border-border hover:bg-accent-hover", disabled && "pointer-events-none opacity-50"), children: [_jsx("input", { id: `stgm-chapp-provider-${p.id}`, type: "radio", name: "stgm-chapp-provider", checked: checked, onChange: () => onChange(p.id), disabled: disabled, className: "accent-current" }), _jsx(p.Icon, { className: "size-3.5 shrink-0 text-foreground" }), _jsx("span", { className: "text-xs font-medium text-foreground", children: p.label })] }, p.id));
|
|
124
|
+
}) })] }));
|
|
125
|
+
}
|
|
126
|
+
// ---------------------------------------------------------------------------
|
|
127
|
+
// Slack — manifest + Basic Information credentials
|
|
128
|
+
// ---------------------------------------------------------------------------
|
|
129
|
+
function SlackCreateSection({ manifest, clientId, onClientIdChange, clientSecret, onClientSecretChange, signingSecret, onSigningSecretChange, disabled, }) {
|
|
130
|
+
return (_jsxs(_Fragment, { children: [_jsxs("div", { className: "space-y-1.5", children: [_jsx("p", { className: "text-xs font-medium text-foreground", children: "1. Create the Slack app" }), _jsxs("p", { className: "text-[0.65rem] text-muted-foreground", children: ["On", " ", _jsx("a", { href: "https://api.slack.com/apps?new_app=1", target: "_blank", rel: "noreferrer", className: "text-primary hover:text-foreground underline transition-colors", children: "api.slack.com/apps" }), ", choose ", _jsx("span", { className: "font-medium", children: "From a manifest" }), " and paste this. Event subscriptions come after the next step \u2014 the webhook URL is minted when this form is saved."] }), _jsx(CopyBlock, { label: "Slack app manifest", value: manifest, copyTargetId: "stgm-chapp-manifest-copy" })] }), _jsxs("div", { className: "space-y-3", children: [_jsx("p", { className: "text-xs font-medium text-foreground", children: "2. Paste the app's credentials" }), _jsxs("p", { className: "-mt-2 text-[0.65rem] text-muted-foreground", children: ["From the app's ", _jsx("span", { className: "font-medium", children: "Basic Information" }), " page. They are encrypted at rest and never shown again."] }), _jsx(FormField, { id: "stgm-chapp-client-id", label: "Client ID", value: clientId, onChange: onClientIdChange, placeholder: "1234567890.0987654321", disabled: disabled, required: true }), _jsx(FormField, { id: "stgm-chapp-client-secret", label: "Client secret", value: clientSecret, onChange: onClientSecretChange, placeholder: "Client secret", type: "password", disabled: disabled, required: true }), _jsx(FormField, { id: "stgm-chapp-signing-secret", label: "Signing secret", value: signingSecret, onChange: onSigningSecretChange, placeholder: "Signing secret", type: "password", hint: "Verifies that webhook events really come from your app", disabled: disabled, required: true })] })] }));
|
|
131
|
+
}
|
|
132
|
+
// ---------------------------------------------------------------------------
|
|
133
|
+
// WhatsApp — Meta dashboard credentials + generated verify token
|
|
134
|
+
// ---------------------------------------------------------------------------
|
|
135
|
+
function WhatsAppCreateSection({ appId, onAppIdChange, appSecret, onAppSecretChange, accessToken, onAccessTokenChange, verifyToken, onVerifyTokenChange, disabled, }) {
|
|
136
|
+
return (_jsxs(_Fragment, { children: [_jsxs("div", { className: "space-y-1.5", children: [_jsx("p", { className: "text-xs font-medium text-foreground", children: "1. Create the Meta app" }), _jsxs("p", { className: "text-[0.65rem] text-muted-foreground", children: ["On", " ", _jsx("a", { href: "https://developers.facebook.com/apps", target: "_blank", rel: "noreferrer", className: "text-primary hover:text-foreground underline transition-colors", children: "developers.facebook.com" }), ", create a ", _jsx("span", { className: "font-medium", children: "Business" }), "-type app and add the ", _jsx("span", { className: "font-medium", children: "WhatsApp" }), " product. The webhook setup comes after the next step \u2014 the webhook URL is minted when this form is saved."] })] }), _jsxs("div", { className: "space-y-3", children: [_jsx("p", { className: "text-xs font-medium text-foreground", children: "2. Paste the app's credentials" }), _jsxs("p", { className: "-mt-2 text-[0.65rem] text-muted-foreground", children: ["The app ID and secret are on ", _jsx("span", { className: "font-medium", children: "App settings \u2192 Basic" }), "; mint a long-lived system-user access token with WhatsApp permissions in Meta Business settings. The secrets are encrypted at rest and never shown again."] }), _jsx(FormField, { id: "stgm-chapp-app-id", label: "App ID", value: appId, onChange: onAppIdChange, placeholder: "1234567890123456", disabled: disabled, required: true }), _jsx(FormField, { id: "stgm-chapp-app-secret", label: "App secret", value: appSecret, onChange: onAppSecretChange, placeholder: "App secret", type: "password", hint: "Verifies that webhook events really come from your app", disabled: disabled, required: true }), _jsx(FormField, { id: "stgm-chapp-access-token", label: "Access token", value: accessToken, onChange: onAccessTokenChange, placeholder: "Long-lived system-user access token", type: "password", hint: "Sends messages on behalf of your WhatsApp Business account", disabled: disabled, required: true }), _jsx(FormField, { id: "stgm-chapp-verify-token", label: "Verify token", value: verifyToken, onChange: onVerifyTokenChange, placeholder: "Verify token", hint: "Generated for you — you'll paste this same value into Meta's " +
|
|
137
|
+
"webhook configuration after registering. Replace it if your " +
|
|
138
|
+
"Meta app already has one.", disabled: disabled, required: true })] })] }));
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=CreateChannelAppForm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CreateChannelAppForm.js","sourceRoot":"","sources":["../../src/channel-app/CreateChannelAppForm.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export { useChannelAppList } from "./useChannelAppList.js";
|
|
2
|
+
export type { UseChannelAppListReturn } from "./useChannelAppList.js";
|
|
3
|
+
export { useCreateChannelApp } from "./useCreateChannelApp.js";
|
|
4
|
+
export type { UseCreateChannelAppReturn } from "./useCreateChannelApp.js";
|
|
5
|
+
export { useUpdateChannelApp } from "./useUpdateChannelApp.js";
|
|
6
|
+
export type { UseUpdateChannelAppReturn } from "./useUpdateChannelApp.js";
|
|
7
|
+
export { useDeleteChannelApp } from "./useDeleteChannelApp.js";
|
|
8
|
+
export type { UseDeleteChannelAppReturn } from "./useDeleteChannelApp.js";
|
|
9
|
+
export { ChannelAppListPanel } from "./ChannelAppListPanel.js";
|
|
10
|
+
export type { ChannelAppListPanelProps } from "./ChannelAppListPanel.js";
|
|
11
|
+
export { CreateChannelAppForm } from "./CreateChannelAppForm.js";
|
|
12
|
+
export type { CreateChannelAppFormProps, ChannelAppCreateHandoff, } from "./CreateChannelAppForm.js";
|
|
13
|
+
export { ChannelAppDetailPanel } from "./ChannelAppDetailPanel.js";
|
|
14
|
+
export type { ChannelAppDetailPanelProps } from "./ChannelAppDetailPanel.js";
|
|
15
|
+
export { buildSlackChannelAppManifest, slackChannelAppRedirectUrl, slackChannelAppWebhookUrl, SLACK_CHANNEL_APP_BOT_EVENTS, SLACK_CHANNEL_APP_BOT_SCOPES, } from "./slackAppSetup.js";
|
|
16
|
+
export type { SlackChannelAppManifestInput } from "./slackAppSetup.js";
|
|
17
|
+
export { generateWhatsAppVerifyToken, whatsappChannelAppWebhookUrl, WHATSAPP_CHANNEL_APP_WEBHOOK_FIELDS, } from "./whatsappAppSetup.js";
|
|
18
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/channel-app/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,YAAY,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,YAAY,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,YAAY,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,YAAY,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,YAAY,EACV,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,YAAY,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAC7E,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,EAC1B,yBAAyB,EACzB,4BAA4B,EAC5B,4BAA4B,GAC7B,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,EACL,2BAA2B,EAC3B,4BAA4B,EAC5B,mCAAmC,GACpC,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { useChannelAppList } from "./useChannelAppList.js";
|
|
2
|
+
export { useCreateChannelApp } from "./useCreateChannelApp.js";
|
|
3
|
+
export { useUpdateChannelApp } from "./useUpdateChannelApp.js";
|
|
4
|
+
export { useDeleteChannelApp } from "./useDeleteChannelApp.js";
|
|
5
|
+
export { ChannelAppListPanel } from "./ChannelAppListPanel.js";
|
|
6
|
+
export { CreateChannelAppForm } from "./CreateChannelAppForm.js";
|
|
7
|
+
export { ChannelAppDetailPanel } from "./ChannelAppDetailPanel.js";
|
|
8
|
+
export { buildSlackChannelAppManifest, slackChannelAppRedirectUrl, slackChannelAppWebhookUrl, SLACK_CHANNEL_APP_BOT_EVENTS, SLACK_CHANNEL_APP_BOT_SCOPES, } from "./slackAppSetup.js";
|
|
9
|
+
export { generateWhatsAppVerifyToken, whatsappChannelAppWebhookUrl, WHATSAPP_CHANNEL_APP_WEBHOOK_FIELDS, } from "./whatsappAppSetup.js";
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/channel-app/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAKjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,EAC1B,yBAAyB,EACzB,4BAA4B,EAC5B,4BAA4B,GAC7B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,2BAA2B,EAC3B,4BAA4B,EAC5B,mCAAmC,GACpC,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Internal building blocks shared by the channel-app forms and panels.
|
|
3
|
+
* Not exported from the package — content-level pieces stay domain-local.
|
|
4
|
+
*/
|
|
5
|
+
/** Labeled text/password input with an optional hint line. */
|
|
6
|
+
export declare function FormField({ id, label, value, onChange, placeholder, hint, type, disabled, required, }: {
|
|
7
|
+
id: string;
|
|
8
|
+
label: string;
|
|
9
|
+
value: string;
|
|
10
|
+
onChange: (v: string) => void;
|
|
11
|
+
placeholder: string;
|
|
12
|
+
hint?: string;
|
|
13
|
+
type?: "text" | "password";
|
|
14
|
+
disabled: boolean;
|
|
15
|
+
required?: boolean;
|
|
16
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
/**
|
|
18
|
+
* A single-line copyable value (webhook URL, redirect URL) with a copy
|
|
19
|
+
* button that confirms briefly.
|
|
20
|
+
*/
|
|
21
|
+
export declare function CopyRow({ label, value, copyTargetId, }: {
|
|
22
|
+
label: string;
|
|
23
|
+
value: string;
|
|
24
|
+
copyTargetId?: string;
|
|
25
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
26
|
+
/** A multi-line copyable value (the app manifest) in a scrollable block. */
|
|
27
|
+
export declare function CopyBlock({ label, value, copyTargetId, }: {
|
|
28
|
+
label: string;
|
|
29
|
+
value: string;
|
|
30
|
+
copyTargetId?: string;
|
|
31
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
32
|
+
export declare function SpinnerIcon(): import("react/jsx-runtime").JSX.Element;
|
|
33
|
+
//# sourceMappingURL=internal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../src/channel-app/internal.tsx"],"names":[],"mappings":"AAKA;;;GAGG;AAEH,8DAA8D;AAC9D,wBAAgB,SAAS,CAAC,EACxB,EAAE,EACF,KAAK,EACL,KAAK,EACL,QAAQ,EACR,WAAW,EACX,IAAI,EACJ,IAAa,EACb,QAAQ,EACR,QAAQ,GACT,EAAE;IACD,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAC3B,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,2CAwBA;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,EACtB,KAAK,EACL,KAAK,EACL,YAAY,GACb,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,2CAoBA;AAED,4EAA4E;AAC5E,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,KAAK,EACL,YAAY,GACb,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,2CAqBA;AA0CD,wBAAgB,WAAW,4CAgB1B"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useCallback, useState } from "react";
|
|
4
|
+
import { cn } from "@stigmer/theme";
|
|
5
|
+
/**
|
|
6
|
+
* Internal building blocks shared by the channel-app forms and panels.
|
|
7
|
+
* Not exported from the package — content-level pieces stay domain-local.
|
|
8
|
+
*/
|
|
9
|
+
/** Labeled text/password input with an optional hint line. */
|
|
10
|
+
export function FormField({ id, label, value, onChange, placeholder, hint, type = "text", disabled, required, }) {
|
|
11
|
+
return (_jsxs("div", { className: "space-y-1", children: [_jsx("label", { htmlFor: id, className: "text-xs font-medium text-foreground", children: label }), _jsx("input", { id: id, type: type, value: value, onChange: (e) => onChange(e.target.value), placeholder: placeholder, disabled: disabled, required: required, className: cn("w-full rounded-md border border-input bg-background px-2.5 py-1.5 text-xs text-foreground", "placeholder:text-muted-foreground", "focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring", "disabled:pointer-events-none disabled:opacity-50") }), hint && _jsx("p", { className: "text-[0.65rem] text-muted-foreground", children: hint })] }));
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* A single-line copyable value (webhook URL, redirect URL) with a copy
|
|
15
|
+
* button that confirms briefly.
|
|
16
|
+
*/
|
|
17
|
+
export function CopyRow({ label, value, copyTargetId, }) {
|
|
18
|
+
const { copied, copy } = useCopy(value);
|
|
19
|
+
return (_jsxs("div", { className: "space-y-1", children: [_jsx("p", { className: "text-xs font-medium text-foreground", children: label }), _jsxs("div", { className: "flex items-center gap-1.5", children: [_jsx("code", { className: cn("min-w-0 flex-1 truncate rounded-md border border-border bg-muted-subtle", "px-2 py-1.5 font-mono text-[0.65rem] text-foreground"), title: value, children: value }), _jsx(CopyButton, { copied: copied, onCopy: copy, copyTargetId: copyTargetId })] })] }));
|
|
20
|
+
}
|
|
21
|
+
/** A multi-line copyable value (the app manifest) in a scrollable block. */
|
|
22
|
+
export function CopyBlock({ label, value, copyTargetId, }) {
|
|
23
|
+
const { copied, copy } = useCopy(value);
|
|
24
|
+
return (_jsxs("div", { className: "space-y-1", children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsx("p", { className: "text-[0.65rem] font-medium text-muted-foreground", children: label }), _jsx(CopyButton, { copied: copied, onCopy: copy, copyTargetId: copyTargetId })] }), _jsx("pre", { className: cn("max-h-40 overflow-auto rounded-md border border-border bg-muted-subtle", "px-2.5 py-2 font-mono text-[0.65rem] leading-relaxed text-foreground"), children: value })] }));
|
|
25
|
+
}
|
|
26
|
+
function CopyButton({ copied, onCopy, copyTargetId, }) {
|
|
27
|
+
return (_jsx("button", { type: "button", onClick: onCopy, "data-cursor-target": copyTargetId, className: cn("shrink-0 rounded-md border border-border px-2 py-1 text-[0.65rem] font-medium transition-colors", copied
|
|
28
|
+
? "text-success"
|
|
29
|
+
: "text-muted-foreground hover:text-foreground hover:bg-accent-hover"), "aria-live": "polite", children: copied ? "Copied" : "Copy" }));
|
|
30
|
+
}
|
|
31
|
+
function useCopy(value) {
|
|
32
|
+
const [copied, setCopied] = useState(false);
|
|
33
|
+
const copy = useCallback(() => {
|
|
34
|
+
void navigator.clipboard.writeText(value).then(() => {
|
|
35
|
+
setCopied(true);
|
|
36
|
+
window.setTimeout(() => setCopied(false), 1500);
|
|
37
|
+
});
|
|
38
|
+
}, [value]);
|
|
39
|
+
return { copied, copy };
|
|
40
|
+
}
|
|
41
|
+
export function SpinnerIcon() {
|
|
42
|
+
return (_jsx("svg", { width: "12", height: "12", viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", className: "animate-spin", "aria-hidden": "true", children: _jsx("path", { d: "M8 2a6 6 0 1 0 6 6" }) }));
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=internal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal.js","sourceRoot":"","sources":["../../src/channel-app/internal.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC9C,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAEpC;;;GAGG;AAEH,8DAA8D;AAC9D,MAAM,UAAU,SAAS,CAAC,EACxB,EAAE,EACF,KAAK,EACL,KAAK,EACL,QAAQ,EACR,WAAW,EACX,IAAI,EACJ,IAAI,GAAG,MAAM,EACb,QAAQ,EACR,QAAQ,GAWT;IACC,OAAO,CACL,eAAK,SAAS,EAAC,WAAW,aACxB,gBAAO,OAAO,EAAE,EAAE,EAAE,SAAS,EAAC,qCAAqC,YAChE,KAAK,GACA,EACR,gBACE,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACzC,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,EAAE,CACX,2FAA2F,EAC3F,mCAAmC,EACnC,yEAAyE,EACzE,kDAAkD,CACnD,GACD,EACD,IAAI,IAAI,YAAG,SAAS,EAAC,sCAAsC,YAAE,IAAI,GAAK,IACnE,CACP,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,EACtB,KAAK,EACL,KAAK,EACL,YAAY,GAKb;IACC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAExC,OAAO,CACL,eAAK,SAAS,EAAC,WAAW,aACxB,YAAG,SAAS,EAAC,qCAAqC,YAAE,KAAK,GAAK,EAC9D,eAAK,SAAS,EAAC,2BAA2B,aACxC,eACE,SAAS,EAAE,EAAE,CACX,yEAAyE,EACzE,sDAAsD,CACvD,EACD,KAAK,EAAE,KAAK,YAEX,KAAK,GACD,EACP,KAAC,UAAU,IAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,GAAI,IACpE,IACF,CACP,CAAC;AACJ,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,SAAS,CAAC,EACxB,KAAK,EACL,KAAK,EACL,YAAY,GAKb;IACC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAExC,OAAO,CACL,eAAK,SAAS,EAAC,WAAW,aACxB,eAAK,SAAS,EAAC,mCAAmC,aAChD,YAAG,SAAS,EAAC,kDAAkD,YAC5D,KAAK,GACJ,EACJ,KAAC,UAAU,IAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,GAAI,IACpE,EACN,cACE,SAAS,EAAE,EAAE,CACX,wEAAwE,EACxE,sEAAsE,CACvE,YAEA,KAAK,GACF,IACF,CACP,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,EAClB,MAAM,EACN,MAAM,EACN,YAAY,GAKb;IACC,OAAO,CACL,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,MAAM,wBACK,YAAY,EAChC,SAAS,EAAE,EAAE,CACX,iGAAiG,EACjG,MAAM;YACJ,CAAC,CAAC,cAAc;YAChB,CAAC,CAAC,mEAAmE,CACxE,eACS,QAAQ,YAEjB,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,GACpB,CACV,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,KAAa;IAC5B,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE5C,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE;QAC5B,KAAK,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;YAClD,SAAS,CAAC,IAAI,CAAC,CAAC;YAChB,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO,CACL,cACE,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,GAAG,EACf,aAAa,EAAC,OAAO,EACrB,SAAS,EAAC,cAAc,iBACZ,MAAM,YAElB,eAAM,CAAC,EAAC,oBAAoB,GAAG,GAC3B,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure helpers for the "bring your own Slack app" setup surface
|
|
3
|
+
* (T04 item 2).
|
|
4
|
+
*
|
|
5
|
+
* A customer-owned Slack app needs three Stigmer-side values wired into
|
|
6
|
+
* its configuration on api.slack.com: the OAuth redirect URL (shared by
|
|
7
|
+
* every app — the console's callback route), the app's own events
|
|
8
|
+
* webhook URL (per-app by design: the path is how the receiver knows
|
|
9
|
+
* which signing secret verifies the request), and the fixed scope/event
|
|
10
|
+
* sets. These helpers derive those values and render a ready-to-paste
|
|
11
|
+
* Slack app manifest so creating the app is one paste instead of a dozen
|
|
12
|
+
* dashboard steps.
|
|
13
|
+
*
|
|
14
|
+
* Setup is inherently two-phase — Slack mints the credentials, Stigmer
|
|
15
|
+
* mints the webhook URL, and each needs the other's output:
|
|
16
|
+
*
|
|
17
|
+
* 1. Create the Slack app from {@link buildSlackChannelAppManifest}
|
|
18
|
+
* WITHOUT a webhook URL (events come later), then paste its
|
|
19
|
+
* credentials into `CreateChannelAppForm`.
|
|
20
|
+
* 2. The saved ChannelApp has an id, so `ChannelAppDetailPanel` can show
|
|
21
|
+
* the webhook URL — paste it into the app's Event Subscriptions (or
|
|
22
|
+
* re-apply the completed manifest).
|
|
23
|
+
*/
|
|
24
|
+
/**
|
|
25
|
+
* The bot scopes every Stigmer channel app requests — the platform app's
|
|
26
|
+
* exact set (scope minimalism is deliberate: it is the first thing a
|
|
27
|
+
* workspace admin reviews on the consent screen).
|
|
28
|
+
*/
|
|
29
|
+
export declare const SLACK_CHANNEL_APP_BOT_SCOPES: readonly ["app_mentions:read", "assistant:write", "chat:write", "im:history"];
|
|
30
|
+
/**
|
|
31
|
+
* The bot events every Stigmer channel app subscribes to — the platform
|
|
32
|
+
* app's exact set (mentions, DMs, assistant surface, and the uninstall/
|
|
33
|
+
* revocation lifecycle events).
|
|
34
|
+
*/
|
|
35
|
+
export declare const SLACK_CHANNEL_APP_BOT_EVENTS: readonly ["app_home_opened", "app_mention", "app_uninstalled", "assistant_thread_context_changed", "assistant_thread_started", "message.im", "tokens_revoked"];
|
|
36
|
+
/**
|
|
37
|
+
* The events webhook URL for one ChannelApp: the per-app route the
|
|
38
|
+
* receiver resolves the app's signing secret by.
|
|
39
|
+
*
|
|
40
|
+
* @param apiBaseUrl the Stigmer API origin (`stigmer.baseUrl`)
|
|
41
|
+
* @param channelAppId the ChannelApp resource id (`chapp_...`)
|
|
42
|
+
*/
|
|
43
|
+
export declare function slackChannelAppWebhookUrl(apiBaseUrl: string, channelAppId: string): string;
|
|
44
|
+
/**
|
|
45
|
+
* The OAuth redirect URL a customer registers on their Slack app — the
|
|
46
|
+
* console's install-callback route, shared by every app (the platform
|
|
47
|
+
* completes the code exchange server-side with the app's own
|
|
48
|
+
* credentials).
|
|
49
|
+
*
|
|
50
|
+
* @param consoleOrigin the console origin (defaults to the current
|
|
51
|
+
* window's origin; pass explicitly in non-browser
|
|
52
|
+
* hosts)
|
|
53
|
+
*/
|
|
54
|
+
export declare function slackChannelAppRedirectUrl(consoleOrigin?: string): string;
|
|
55
|
+
/** Inputs for {@link buildSlackChannelAppManifest}. */
|
|
56
|
+
export interface SlackChannelAppManifestInput {
|
|
57
|
+
/** Bot display name — what the workspace @mentions. */
|
|
58
|
+
readonly name: string;
|
|
59
|
+
/** One-line app description shown on the consent screen. */
|
|
60
|
+
readonly description?: string;
|
|
61
|
+
/** The console's OAuth redirect URL ({@link slackChannelAppRedirectUrl}). */
|
|
62
|
+
readonly redirectUrl: string;
|
|
63
|
+
/**
|
|
64
|
+
* The app's events webhook URL ({@link slackChannelAppWebhookUrl}).
|
|
65
|
+
* Omit before the ChannelApp exists — the manifest then skips event
|
|
66
|
+
* subscriptions, which are completed from the detail panel after
|
|
67
|
+
* creation.
|
|
68
|
+
*/
|
|
69
|
+
readonly webhookUrl?: string;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Render the ready-to-paste Slack app manifest for a customer channel
|
|
73
|
+
* app — the platform app's manifest with the customer's identity.
|
|
74
|
+
*
|
|
75
|
+
* Deliberate mirrors of the platform manifest (do not "fix" them):
|
|
76
|
+
* four bot scopes only, `org_deploy_enabled: false` (Enterprise Grid
|
|
77
|
+
* org-wide installs are unsupported), no interactivity, no socket mode.
|
|
78
|
+
*/
|
|
79
|
+
export declare function buildSlackChannelAppManifest(input: SlackChannelAppManifestInput): string;
|
|
80
|
+
//# sourceMappingURL=slackAppSetup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slackAppSetup.d.ts","sourceRoot":"","sources":["../../src/channel-app/slackAppSetup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,+EAK/B,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,gKAQ/B,CAAC;AAEX;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GACnB,MAAM,CAER;AAED;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAKzE;AAED,uDAAuD;AACvD,MAAM,WAAW,4BAA4B;IAC3C,uDAAuD;IACvD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,4DAA4D;IAC5D,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,6EAA6E;IAC7E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,4BAA4B,GAClC,MAAM,CA2CR"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure helpers for the "bring your own Slack app" setup surface
|
|
3
|
+
* (T04 item 2).
|
|
4
|
+
*
|
|
5
|
+
* A customer-owned Slack app needs three Stigmer-side values wired into
|
|
6
|
+
* its configuration on api.slack.com: the OAuth redirect URL (shared by
|
|
7
|
+
* every app — the console's callback route), the app's own events
|
|
8
|
+
* webhook URL (per-app by design: the path is how the receiver knows
|
|
9
|
+
* which signing secret verifies the request), and the fixed scope/event
|
|
10
|
+
* sets. These helpers derive those values and render a ready-to-paste
|
|
11
|
+
* Slack app manifest so creating the app is one paste instead of a dozen
|
|
12
|
+
* dashboard steps.
|
|
13
|
+
*
|
|
14
|
+
* Setup is inherently two-phase — Slack mints the credentials, Stigmer
|
|
15
|
+
* mints the webhook URL, and each needs the other's output:
|
|
16
|
+
*
|
|
17
|
+
* 1. Create the Slack app from {@link buildSlackChannelAppManifest}
|
|
18
|
+
* WITHOUT a webhook URL (events come later), then paste its
|
|
19
|
+
* credentials into `CreateChannelAppForm`.
|
|
20
|
+
* 2. The saved ChannelApp has an id, so `ChannelAppDetailPanel` can show
|
|
21
|
+
* the webhook URL — paste it into the app's Event Subscriptions (or
|
|
22
|
+
* re-apply the completed manifest).
|
|
23
|
+
*/
|
|
24
|
+
/**
|
|
25
|
+
* The bot scopes every Stigmer channel app requests — the platform app's
|
|
26
|
+
* exact set (scope minimalism is deliberate: it is the first thing a
|
|
27
|
+
* workspace admin reviews on the consent screen).
|
|
28
|
+
*/
|
|
29
|
+
export const SLACK_CHANNEL_APP_BOT_SCOPES = [
|
|
30
|
+
"app_mentions:read",
|
|
31
|
+
"assistant:write",
|
|
32
|
+
"chat:write",
|
|
33
|
+
"im:history",
|
|
34
|
+
];
|
|
35
|
+
/**
|
|
36
|
+
* The bot events every Stigmer channel app subscribes to — the platform
|
|
37
|
+
* app's exact set (mentions, DMs, assistant surface, and the uninstall/
|
|
38
|
+
* revocation lifecycle events).
|
|
39
|
+
*/
|
|
40
|
+
export const SLACK_CHANNEL_APP_BOT_EVENTS = [
|
|
41
|
+
"app_home_opened",
|
|
42
|
+
"app_mention",
|
|
43
|
+
"app_uninstalled",
|
|
44
|
+
"assistant_thread_context_changed",
|
|
45
|
+
"assistant_thread_started",
|
|
46
|
+
"message.im",
|
|
47
|
+
"tokens_revoked",
|
|
48
|
+
];
|
|
49
|
+
/**
|
|
50
|
+
* The events webhook URL for one ChannelApp: the per-app route the
|
|
51
|
+
* receiver resolves the app's signing secret by.
|
|
52
|
+
*
|
|
53
|
+
* @param apiBaseUrl the Stigmer API origin (`stigmer.baseUrl`)
|
|
54
|
+
* @param channelAppId the ChannelApp resource id (`chapp_...`)
|
|
55
|
+
*/
|
|
56
|
+
export function slackChannelAppWebhookUrl(apiBaseUrl, channelAppId) {
|
|
57
|
+
return `${apiBaseUrl.replace(/\/+$/, "")}/webhook/slack/${channelAppId}`;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* The OAuth redirect URL a customer registers on their Slack app — the
|
|
61
|
+
* console's install-callback route, shared by every app (the platform
|
|
62
|
+
* completes the code exchange server-side with the app's own
|
|
63
|
+
* credentials).
|
|
64
|
+
*
|
|
65
|
+
* @param consoleOrigin the console origin (defaults to the current
|
|
66
|
+
* window's origin; pass explicitly in non-browser
|
|
67
|
+
* hosts)
|
|
68
|
+
*/
|
|
69
|
+
export function slackChannelAppRedirectUrl(consoleOrigin) {
|
|
70
|
+
const origin = consoleOrigin ??
|
|
71
|
+
(typeof window !== "undefined" ? window.location.origin : "");
|
|
72
|
+
return `${origin.replace(/\/+$/, "")}/oauth/slack/callback`;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Render the ready-to-paste Slack app manifest for a customer channel
|
|
76
|
+
* app — the platform app's manifest with the customer's identity.
|
|
77
|
+
*
|
|
78
|
+
* Deliberate mirrors of the platform manifest (do not "fix" them):
|
|
79
|
+
* four bot scopes only, `org_deploy_enabled: false` (Enterprise Grid
|
|
80
|
+
* org-wide installs are unsupported), no interactivity, no socket mode.
|
|
81
|
+
*/
|
|
82
|
+
export function buildSlackChannelAppManifest(input) {
|
|
83
|
+
const description = input.description ??
|
|
84
|
+
"Chat with your organization's Stigmer agent without leaving Slack.";
|
|
85
|
+
const eventSubscriptions = input.webhookUrl
|
|
86
|
+
? ` event_subscriptions:
|
|
87
|
+
request_url: "${input.webhookUrl}"
|
|
88
|
+
bot_events:
|
|
89
|
+
${SLACK_CHANNEL_APP_BOT_EVENTS.map((e) => ` - ${e}`).join("\n")}
|
|
90
|
+
`
|
|
91
|
+
: "";
|
|
92
|
+
return `display_information:
|
|
93
|
+
name: ${input.name}
|
|
94
|
+
description: ${description}
|
|
95
|
+
|
|
96
|
+
features:
|
|
97
|
+
app_home:
|
|
98
|
+
home_tab_enabled: false
|
|
99
|
+
messages_tab_enabled: true
|
|
100
|
+
messages_tab_read_only_enabled: false
|
|
101
|
+
bot_user:
|
|
102
|
+
display_name: ${input.name}
|
|
103
|
+
always_online: true
|
|
104
|
+
assistant_view:
|
|
105
|
+
assistant_description: ${description}
|
|
106
|
+
suggested_prompts: []
|
|
107
|
+
|
|
108
|
+
oauth_config:
|
|
109
|
+
redirect_urls:
|
|
110
|
+
- "${input.redirectUrl}"
|
|
111
|
+
scopes:
|
|
112
|
+
bot:
|
|
113
|
+
${SLACK_CHANNEL_APP_BOT_SCOPES.map((s) => ` - ${s}`).join("\n")}
|
|
114
|
+
|
|
115
|
+
settings:
|
|
116
|
+
${eventSubscriptions} interactivity:
|
|
117
|
+
is_enabled: false
|
|
118
|
+
org_deploy_enabled: false
|
|
119
|
+
socket_mode_enabled: false
|
|
120
|
+
token_rotation_enabled: false
|
|
121
|
+
`;
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=slackAppSetup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slackAppSetup.js","sourceRoot":"","sources":["../../src/channel-app/slackAppSetup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG;IAC1C,mBAAmB;IACnB,iBAAiB;IACjB,YAAY;IACZ,YAAY;CACJ,CAAC;AAEX;;;;GAIG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG;IAC1C,iBAAiB;IACjB,aAAa;IACb,iBAAiB;IACjB,kCAAkC;IAClC,0BAA0B;IAC1B,YAAY;IACZ,gBAAgB;CACR,CAAC;AAEX;;;;;;GAMG;AACH,MAAM,UAAU,yBAAyB,CACvC,UAAkB,EAClB,YAAoB;IAEpB,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,kBAAkB,YAAY,EAAE,CAAC;AAC3E,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,0BAA0B,CAAC,aAAsB;IAC/D,MAAM,MAAM,GACV,aAAa;QACb,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAChE,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,uBAAuB,CAAC;AAC9D,CAAC;AAmBD;;;;;;;GAOG;AACH,MAAM,UAAU,4BAA4B,CAC1C,KAAmC;IAEnC,MAAM,WAAW,GACf,KAAK,CAAC,WAAW;QACjB,oEAAoE,CAAC;IAEvE,MAAM,kBAAkB,GAAG,KAAK,CAAC,UAAU;QACzC,CAAC,CAAC;oBACc,KAAK,CAAC,UAAU;;EAElC,4BAA4B,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;CACnE;QACG,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO;UACC,KAAK,CAAC,IAAI;iBACH,WAAW;;;;;;;;oBAQR,KAAK,CAAC,IAAI;;;6BAGD,WAAW;;;;;SAK/B,KAAK,CAAC,WAAW;;;EAGxB,4BAA4B,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;EAGlE,kBAAkB;;;;;CAKnB,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { ChannelApp } from "@stigmer/protos/ai/stigmer/agentic/channelapp/v1/api_pb";
|
|
2
|
+
/** Return value of {@link useChannelAppList}. */
|
|
3
|
+
export interface UseChannelAppListReturn {
|
|
4
|
+
/** Channel apps owned by the organization. Empty while loading or on error. */
|
|
5
|
+
readonly channelApps: readonly ChannelApp[];
|
|
6
|
+
/** `true` while the initial fetch or a refetch is in flight. */
|
|
7
|
+
readonly isLoading: boolean;
|
|
8
|
+
/** `true` while a background refetch is in flight and stale data is shown. */
|
|
9
|
+
readonly isRefetching: boolean;
|
|
10
|
+
/** Error from the last failed request, or `null` when healthy. */
|
|
11
|
+
readonly error: Error | null;
|
|
12
|
+
/** Discard cached data and re-fetch the list from the server. */
|
|
13
|
+
readonly refetch: () => void;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Data hook that fetches all {@link ChannelApp} entries for an
|
|
17
|
+
* organization.
|
|
18
|
+
*
|
|
19
|
+
* These are the customer-owned messaging-platform apps (bring-your-own
|
|
20
|
+
* Slack apps) that agent channels can install through instead of the
|
|
21
|
+
* shared Stigmer app. Secret fields arrive redacted.
|
|
22
|
+
*
|
|
23
|
+
* Pass `null` for `org` to skip fetching (stable no-op). Useful when
|
|
24
|
+
* the active organization has not been resolved yet.
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```tsx
|
|
28
|
+
* const { channelApps, isLoading, error } = useChannelAppList(org);
|
|
29
|
+
*
|
|
30
|
+
* if (isLoading) return <Spinner />;
|
|
31
|
+
* channelApps.map((app) => app.metadata?.name);
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
export declare function useChannelAppList(org: string | null): UseChannelAppListReturn;
|
|
35
|
+
//# sourceMappingURL=useChannelAppList.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useChannelAppList.d.ts","sourceRoot":"","sources":["../../src/channel-app/useChannelAppList.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yDAAyD,CAAC;AAI1F,iDAAiD;AACjD,MAAM,WAAW,uBAAuB;IACtC,+EAA+E;IAC/E,QAAQ,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,CAAC;IAC5C,gEAAgE;IAChE,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,8EAA8E;IAC9E,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,kEAAkE;IAClE,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B,iEAAiE;IACjE,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,MAAM,GAAG,IAAI,GACjB,uBAAuB,CAezB"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { create } from "@bufbuild/protobuf";
|
|
3
|
+
import { ListChannelAppsByOrgInputSchema } from "@stigmer/protos/ai/stigmer/agentic/channelapp/v1/io_pb";
|
|
4
|
+
import { useStigmer } from "../hooks.js";
|
|
5
|
+
import { useFetch } from "../internal/useFetch.js";
|
|
6
|
+
/**
|
|
7
|
+
* Data hook that fetches all {@link ChannelApp} entries for an
|
|
8
|
+
* organization.
|
|
9
|
+
*
|
|
10
|
+
* These are the customer-owned messaging-platform apps (bring-your-own
|
|
11
|
+
* Slack apps) that agent channels can install through instead of the
|
|
12
|
+
* shared Stigmer app. Secret fields arrive redacted.
|
|
13
|
+
*
|
|
14
|
+
* Pass `null` for `org` to skip fetching (stable no-op). Useful when
|
|
15
|
+
* the active organization has not been resolved yet.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```tsx
|
|
19
|
+
* const { channelApps, isLoading, error } = useChannelAppList(org);
|
|
20
|
+
*
|
|
21
|
+
* if (isLoading) return <Spinner />;
|
|
22
|
+
* channelApps.map((app) => app.metadata?.name);
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export function useChannelAppList(org) {
|
|
26
|
+
const stigmer = useStigmer();
|
|
27
|
+
const { data: channelApps, isLoading, isRefetching, error, refetch } = useFetch(org
|
|
28
|
+
? () => stigmer.channelapp
|
|
29
|
+
.listByOrg(create(ListChannelAppsByOrgInputSchema, { org }))
|
|
30
|
+
.then((r) => [...r.entries])
|
|
31
|
+
: null, [org, stigmer], []);
|
|
32
|
+
return { channelApps, isLoading, isRefetching, error, refetch };
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=useChannelAppList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useChannelAppList.js","sourceRoot":"","sources":["../../src/channel-app/useChannelAppList.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,+BAA+B,EAAE,MAAM,wDAAwD,CAAC;AAEzG,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAgBnD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,iBAAiB,CAC/B,GAAkB;IAElB,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAE7B,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,QAAQ,CAC7E,GAAG;QACD,CAAC,CAAC,GAAG,EAAE,CACH,OAAO,CAAC,UAAU;aACf,SAAS,CAAC,MAAM,CAAC,+BAA+B,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;aAC3D,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC,CAAC,IAAI,EACR,CAAC,GAAG,EAAE,OAAO,CAAC,EACd,EAAkB,CACnB,CAAC;IAEF,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAClE,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { ChannelAppInput } from "@stigmer/sdk";
|
|
2
|
+
import type { ChannelApp } from "@stigmer/protos/ai/stigmer/agentic/channelapp/v1/api_pb";
|
|
3
|
+
/** Return value of {@link useCreateChannelApp}. */
|
|
4
|
+
export interface UseCreateChannelAppReturn {
|
|
5
|
+
/** Submit a {@link ChannelAppInput} to create a new channel app. Resolves with the server-created resource. */
|
|
6
|
+
readonly create: (input: ChannelAppInput) => Promise<ChannelApp>;
|
|
7
|
+
/** `true` while the create request is in flight. */
|
|
8
|
+
readonly isCreating: boolean;
|
|
9
|
+
/** Error from the last failed create, or `null` when healthy. */
|
|
10
|
+
readonly error: Error | null;
|
|
11
|
+
/** Reset `error` to `null`. */
|
|
12
|
+
readonly clearError: () => void;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Mutation hook that wraps `channelapp.create()` with loading and error
|
|
16
|
+
* state.
|
|
17
|
+
*
|
|
18
|
+
* Creates a channel app — a customer-owned messaging-platform app whose
|
|
19
|
+
* credentials agent channels can install through instead of the shared
|
|
20
|
+
* Stigmer app. The secret fields (`clientSecret`, `signingSecret`) are
|
|
21
|
+
* encrypted server-side and come back redacted in the response.
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```tsx
|
|
25
|
+
* const { create, isCreating, error } = useCreateChannelApp();
|
|
26
|
+
*
|
|
27
|
+
* const app = await create({
|
|
28
|
+
* name: "Acme Support Bot",
|
|
29
|
+
* org: "acme",
|
|
30
|
+
* slack: {
|
|
31
|
+
* clientId: "123456.789012",
|
|
32
|
+
* clientSecret: "…",
|
|
33
|
+
* signingSecret: "…",
|
|
34
|
+
* },
|
|
35
|
+
* });
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
export declare function useCreateChannelApp(): UseCreateChannelAppReturn;
|
|
39
|
+
//# sourceMappingURL=useCreateChannelApp.d.ts.map
|