@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
package/src/session/index.ts
CHANGED
|
@@ -3,6 +3,11 @@ export type { ExecutionTargetOption } from "./execution-target.js";
|
|
|
3
3
|
|
|
4
4
|
export type { RuntimeEnvProvider } from "./runtime-env.js";
|
|
5
5
|
export type { SessionAudience } from "./audience.js";
|
|
6
|
+
export {
|
|
7
|
+
CHANNEL_SESSION_LABELS,
|
|
8
|
+
isChannelOriginSession,
|
|
9
|
+
channelSessionExternalUserKey,
|
|
10
|
+
} from "./channelOrigin.js";
|
|
6
11
|
|
|
7
12
|
export { useCreateSession } from "./useCreateSession.js";
|
|
8
13
|
export type {
|
|
@@ -129,12 +134,10 @@ export {
|
|
|
129
134
|
PLAN_DOCUMENT_PATH,
|
|
130
135
|
} from "./plan-document.js";
|
|
131
136
|
|
|
132
|
-
// Artifact document —
|
|
133
|
-
//
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
// Selection types (for platform builders composing their own Inspect facet)
|
|
137
|
-
export type { SelectedThreadItem } from "../internal/store/selection-store.js";
|
|
137
|
+
// Artifact document tab identity — promoted to execution/ (shared with the
|
|
138
|
+
// workflow panel); re-exported here so `@stigmer/react`'s public export and
|
|
139
|
+
// existing session-path importers are unchanged.
|
|
140
|
+
export { ARTIFACT_DOCUMENT_ENTRY_ID } from "../execution/artifact-document.js";
|
|
138
141
|
|
|
139
142
|
// Session facet components — the panel's rail views (Config et al.), also
|
|
140
143
|
// independently importable (DD-003).
|
|
@@ -23,6 +23,21 @@ const DEFAULT_AGENT_TIMEOUT_MS = 10_000;
|
|
|
23
23
|
|
|
24
24
|
const STORAGE_KEY_HARNESS = "stigmer:session:harness";
|
|
25
25
|
|
|
26
|
+
/**
|
|
27
|
+
* Platform policy for guest (share/embed) sessions: the cursor harness with
|
|
28
|
+
* the Auto model (an omitted modelName resolves to cursor's "default"/Auto in
|
|
29
|
+
* the runner).
|
|
30
|
+
*
|
|
31
|
+
* This lives CLIENT-side deliberately — it is the only layer that can. The
|
|
32
|
+
* SDK's guest audience covers both public visitors (guest tokens) and org
|
|
33
|
+
* members chatting via an org-audience share (their own member tokens, which
|
|
34
|
+
* carry no share linkage in Phase A) — the server cannot distinguish the
|
|
35
|
+
* latter from ordinary Console traffic, so share-surface policy must be
|
|
36
|
+
* applied where the surface is known. Server-side guest-token gates own the
|
|
37
|
+
* abuse controls (rate limits, bounded execution profile).
|
|
38
|
+
*/
|
|
39
|
+
const GUEST_HARNESS: HarnessOption = "cursor";
|
|
40
|
+
|
|
26
41
|
function modelStorageKey(harness: HarnessOption): string {
|
|
27
42
|
return harness === "cursor"
|
|
28
43
|
? "stigmer:session:model:cursor"
|
|
@@ -78,6 +93,10 @@ export interface UseNewSessionFlowOptions {
|
|
|
78
93
|
* localStorage on explicit change — always takes precedence on
|
|
79
94
|
* subsequent visits.
|
|
80
95
|
*
|
|
96
|
+
* Ignored for the `"guest"` audience: guest sessions always run the
|
|
97
|
+
* platform's share-surface policy (cursor harness, Auto model), never an
|
|
98
|
+
* embedder preference or a stored Console choice.
|
|
99
|
+
*
|
|
81
100
|
* @default DEFAULT_HARNESS ("native")
|
|
82
101
|
*/
|
|
83
102
|
readonly defaultHarness?: HarnessOption;
|
|
@@ -205,6 +224,10 @@ export function useNewSessionFlow(
|
|
|
205
224
|
const adapter = useRunnerAdapter();
|
|
206
225
|
|
|
207
226
|
const [harness, setHarnessRaw] = useState<HarnessOption>(() => {
|
|
227
|
+
// Guests get the fixed platform policy (see GUEST_HARNESS) and never
|
|
228
|
+
// touch localStorage: a browser previously used in the Console must not
|
|
229
|
+
// leak its stored harness into a share/embed session.
|
|
230
|
+
if (isGuest) return GUEST_HARNESS;
|
|
208
231
|
if (typeof window === "undefined") return defaultHarness ?? DEFAULT_HARNESS;
|
|
209
232
|
// Only explicit user choices are persisted (see setHarness), so a
|
|
210
233
|
// stored value always outranks the embedder's defaultHarness.
|
|
@@ -241,6 +264,9 @@ export function useNewSessionFlow(
|
|
|
241
264
|
const setHarness = useCallback(
|
|
242
265
|
(h: HarnessOption) => {
|
|
243
266
|
setHarnessRaw(h);
|
|
267
|
+
// Guests have no harness picker; if a caller invokes this anyway, the
|
|
268
|
+
// guest surface must never write into the Console's preference keys.
|
|
269
|
+
if (isGuest) return;
|
|
244
270
|
// Persist only explicit choices — never the seeded value — so the
|
|
245
271
|
// embedder's defaultHarness keeps applying until the user decides.
|
|
246
272
|
localStorage.setItem(STORAGE_KEY_HARNESS, h);
|
|
@@ -248,13 +274,16 @@ export function useNewSessionFlow(
|
|
|
248
274
|
const plain = storedModel ? (parseModelKey(storedModel)?.modelId ?? storedModel) : undefined;
|
|
249
275
|
setModelId(plain);
|
|
250
276
|
},
|
|
251
|
-
[],
|
|
277
|
+
[isGuest],
|
|
252
278
|
);
|
|
253
279
|
|
|
254
280
|
// Restore persisted model — only after the registry has loaded so
|
|
255
281
|
// getModel can actually validate the stored ID against live data.
|
|
282
|
+
// Guests skip the restore: modelId stays undefined, the create omits
|
|
283
|
+
// modelName, and the cursor harness resolves it to Auto — a Console-used
|
|
284
|
+
// browser must not leak its stored model into a share/embed session.
|
|
256
285
|
useEffect(() => {
|
|
257
|
-
if (isModelsLoading) return;
|
|
286
|
+
if (isGuest || isModelsLoading) return;
|
|
258
287
|
const stored = localStorage.getItem(modelStorageKey(harness));
|
|
259
288
|
if (stored) {
|
|
260
289
|
const plain = parseModelKey(stored)?.modelId ?? stored;
|
|
@@ -262,16 +291,18 @@ export function useNewSessionFlow(
|
|
|
262
291
|
setModelId(plain);
|
|
263
292
|
}
|
|
264
293
|
}
|
|
265
|
-
}, [getModel, harness, isModelsLoading]);
|
|
294
|
+
}, [getModel, harness, isGuest, isModelsLoading]);
|
|
266
295
|
|
|
267
296
|
// Persist model on change (using current harness key).
|
|
268
297
|
// Strip compound keys (e.g. "cursor/default") to plain modelId before storing.
|
|
298
|
+
// Guests never persist — the symmetric half of the isolation above.
|
|
269
299
|
useEffect(() => {
|
|
300
|
+
if (isGuest) return;
|
|
270
301
|
if (modelId) {
|
|
271
302
|
const plain = parseModelKey(modelId)?.modelId ?? modelId;
|
|
272
303
|
localStorage.setItem(modelStorageKey(harness), plain);
|
|
273
304
|
}
|
|
274
|
-
}, [modelId, harness]);
|
|
305
|
+
}, [modelId, harness, isGuest]);
|
|
275
306
|
|
|
276
307
|
const submit = useCallback(
|
|
277
308
|
async (
|
|
@@ -15,6 +15,17 @@ export interface UsePersistedModelOptions {
|
|
|
15
15
|
* When `"native"` or omitted, the default key and registry apply.
|
|
16
16
|
*/
|
|
17
17
|
readonly harness?: HarnessOption;
|
|
18
|
+
/**
|
|
19
|
+
* When `false`, the hook is a stable no-op: it never reads or writes
|
|
20
|
+
* localStorage and always returns `undefined` with a no-op setter.
|
|
21
|
+
*
|
|
22
|
+
* Guest (share/embed) surfaces disable persistence so a browser previously
|
|
23
|
+
* used in the Console cannot leak its stored model into a guest session,
|
|
24
|
+
* and a guest session never pollutes the Console's preference keys.
|
|
25
|
+
*
|
|
26
|
+
* @default true
|
|
27
|
+
*/
|
|
28
|
+
readonly enabled?: boolean;
|
|
18
29
|
}
|
|
19
30
|
|
|
20
31
|
/** Return value of {@link usePersistedModel}. */
|
|
@@ -60,32 +71,43 @@ export function usePersistedModel(
|
|
|
60
71
|
options?: UsePersistedModelOptions,
|
|
61
72
|
): UsePersistedModelReturn {
|
|
62
73
|
const harness = options?.harness;
|
|
74
|
+
const enabled = options?.enabled ?? true;
|
|
63
75
|
const { getModel } = useModelRegistry({ harness });
|
|
64
76
|
const key = storageKey(harness);
|
|
65
77
|
const prevKeyRef = useRef(key);
|
|
66
78
|
|
|
67
79
|
const [modelId, setModelId] = useState<string | undefined>(() => {
|
|
68
|
-
if (typeof window === "undefined") return undefined;
|
|
80
|
+
if (!enabled || typeof window === "undefined") return undefined;
|
|
69
81
|
const raw = localStorage.getItem(key);
|
|
70
82
|
return raw ? extractPlainModelId(raw) : undefined;
|
|
71
83
|
});
|
|
72
84
|
|
|
73
85
|
// Re-read from localStorage when the storage key changes (harness transition).
|
|
74
86
|
useEffect(() => {
|
|
87
|
+
if (!enabled) return;
|
|
75
88
|
if (prevKeyRef.current === key) return;
|
|
76
89
|
prevKeyRef.current = key;
|
|
77
90
|
|
|
78
91
|
if (typeof window === "undefined") return;
|
|
79
92
|
const raw = localStorage.getItem(key);
|
|
80
93
|
setModelId(raw ? extractPlainModelId(raw) : undefined);
|
|
81
|
-
}, [key]);
|
|
94
|
+
}, [enabled, key]);
|
|
82
95
|
|
|
83
96
|
useEffect(() => {
|
|
97
|
+
if (!enabled) return;
|
|
84
98
|
if (modelId) {
|
|
85
99
|
localStorage.setItem(key, modelId);
|
|
86
100
|
}
|
|
87
|
-
}, [modelId, key]);
|
|
101
|
+
}, [enabled, modelId, key]);
|
|
102
|
+
|
|
103
|
+
if (!enabled) {
|
|
104
|
+
// Stable no-op shape: undefined model, inert setter. Returned after the
|
|
105
|
+
// hooks above so the hook order is identical whether enabled or not.
|
|
106
|
+
return [undefined, NOOP_SET_MODEL] as const;
|
|
107
|
+
}
|
|
88
108
|
|
|
89
109
|
const validModelId = modelId && getModel(modelId) ? modelId : undefined;
|
|
90
110
|
return [validModelId, setModelId] as const;
|
|
91
111
|
}
|
|
112
|
+
|
|
113
|
+
const NOOP_SET_MODEL: (id: string) => void = () => {};
|
|
@@ -1,23 +1,17 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
3
|
import { useMemo } from "react";
|
|
4
|
-
import { create } from "@bufbuild/protobuf";
|
|
5
4
|
import type { AgentExecution } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/api_pb";
|
|
6
5
|
import type { FileChange } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/message_pb";
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
FileChangeCaptureLevel,
|
|
10
|
-
FileChangeType,
|
|
11
|
-
} from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
|
|
12
|
-
import { displayFileChangeSets, toDisplayFileChange } from "@stigmer/sdk";
|
|
6
|
+
import { deriveExecutionFileChanges } from "../execution/deriveExecutionFileChanges.js";
|
|
13
7
|
|
|
14
8
|
/** Return value of {@link useSessionFileChanges}. */
|
|
15
9
|
export interface UseSessionFileChangesReturn {
|
|
16
10
|
/**
|
|
17
11
|
* One {@link FileChange} per file touched in the session — the *net*
|
|
18
|
-
* change for that path (see
|
|
19
|
-
* file-list (modified, then
|
|
20
|
-
* within each group).
|
|
12
|
+
* change for that path (see {@link deriveExecutionFileChanges} for the
|
|
13
|
+
* net-diff semantics) — ordered for a file-list (modified, then
|
|
14
|
+
* created/renamed, then deleted; alphabetical within each group).
|
|
21
15
|
*/
|
|
22
16
|
readonly fileChanges: readonly FileChange[];
|
|
23
17
|
/** `true` when at least one file was changed across all executions. */
|
|
@@ -34,39 +28,15 @@ export interface UseSessionFileChangesReturn {
|
|
|
34
28
|
* file changes in the transcript (stamped edit rows + the per-turn decision
|
|
35
29
|
* bar) and does not consume this hook.
|
|
36
30
|
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
* (legacy) execution has no ledger, so it falls back to the tool-call-coupled
|
|
43
|
-
* `ToolCall.file_changes` (#186; removed in a later slice with that field). The
|
|
44
|
-
* two sources are mutually exclusive per execution, so there is no double count.
|
|
45
|
-
*
|
|
46
|
-
* **Traversal.** The ledger is execution-scoped and already includes sub-agent
|
|
47
|
-
* captures (DD-19), so the primary path is one pass per execution. The legacy
|
|
48
|
-
* fallback walks the same surfaces the server-side approval recompute and
|
|
49
|
-
* `MessageThread` walk: `status.messages[].toolCalls` **and**
|
|
50
|
-
* `status.subAgentExecutions[].messages[].toolCalls`. Executions are visited in
|
|
51
|
-
* chronological order, so each path's change list is chronological.
|
|
52
|
-
*
|
|
53
|
-
* **Net-diff (not latest-wins).** `useSessionWriteBacks`/`useSessionArtifacts`
|
|
54
|
-
* dedup by "latest wins" because each entry is a *snapshot* (a PR; a file's
|
|
55
|
-
* final bytes). A {@link FileChange} is a *delta* — an agent often rewrites the
|
|
56
|
-
* same file several times in a turn, and showing only the last edit's diff
|
|
57
|
-
* would misrepresent what changed. So changes to the same path are reduced to a
|
|
58
|
-
* single net change: `before` from the first change, `after` from the last.
|
|
59
|
-
* Because a WHOLE_FILE `after` is a complete file snapshot, `first.before →
|
|
60
|
-
* last.after` is exactly the net change. A group with one change (the common
|
|
61
|
-
* case) is passed through untouched; multi-edit groups synthesize a net
|
|
62
|
-
* {@link FileChange} so every consumer speaks one proto type (DD-007).
|
|
63
|
-
*
|
|
64
|
-
* Counts and unified diffs for whole-file captures stay derivable by the
|
|
65
|
-
* presentation layer (the runner emits 0/"" sentinels), matching the contract
|
|
66
|
-
* the SDK `tool-view` established.
|
|
31
|
+
* A thin memoizing wrapper over {@link deriveExecutionFileChanges} — the
|
|
32
|
+
* shared execution-domain core that also powers the workflow panel's Changes
|
|
33
|
+
* facet (`useWorkflowExecutionFileChanges`). The source (ledger-first via
|
|
34
|
+
* `displayFileChangeSets`), the net-diff collapse, and the file-list ordering
|
|
35
|
+
* are all documented on the core.
|
|
67
36
|
*
|
|
68
37
|
* @param executions - All executions for a session, in chronological order.
|
|
69
|
-
* Pass both completed and active-stream executions.
|
|
38
|
+
* Pass both completed and active-stream executions. Ordering matters: the
|
|
39
|
+
* net collapse anchors on each path's first and last change.
|
|
70
40
|
*
|
|
71
41
|
* @example
|
|
72
42
|
* ```tsx
|
|
@@ -86,32 +56,7 @@ export function useSessionFileChanges(
|
|
|
86
56
|
executions: readonly AgentExecution[],
|
|
87
57
|
): UseSessionFileChangesReturn {
|
|
88
58
|
return useMemo(() => {
|
|
89
|
-
|
|
90
|
-
const groups = new Map<string, FileChange[]>();
|
|
91
|
-
// Preserve first-seen path order as a stable tiebreaker before sorting.
|
|
92
|
-
const collect = (change: FileChange) => {
|
|
93
|
-
const key = change.path || change.absolutePath;
|
|
94
|
-
if (!key) return;
|
|
95
|
-
const list = groups.get(key);
|
|
96
|
-
if (list) list.push(change);
|
|
97
|
-
else groups.set(key, [change]);
|
|
98
|
-
};
|
|
99
|
-
|
|
100
|
-
for (const execution of executions) {
|
|
101
|
-
// The file-review ledger is the single source under apply-then-review: the
|
|
102
|
-
// display seam reads the live projection or folds the durable ledger for a
|
|
103
|
-
// terminal execution, and the execution-scoped ledger already covers
|
|
104
|
-
// sub-agent captures (DD-19), so one pass suffices. Each CapturedFileChange
|
|
105
|
-
// is projected onto the display FileChange the net-collapse + renderer speak.
|
|
106
|
-
const capturedChanges = displayFileChangeSets(execution.status).flatMap(
|
|
107
|
-
(set) => set.changes,
|
|
108
|
-
);
|
|
109
|
-
for (const captured of capturedChanges) collect(toDisplayFileChange(captured));
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
const fileChanges = Array.from(groups.values(), netChange);
|
|
113
|
-
fileChanges.sort(fileChangeComparator);
|
|
114
|
-
|
|
59
|
+
const fileChanges = deriveExecutionFileChanges(executions);
|
|
115
60
|
return {
|
|
116
61
|
fileChanges,
|
|
117
62
|
hasFileChanges: fileChanges.length > 0,
|
|
@@ -119,89 +64,3 @@ export function useSessionFileChanges(
|
|
|
119
64
|
};
|
|
120
65
|
}, [executions]);
|
|
121
66
|
}
|
|
122
|
-
|
|
123
|
-
/**
|
|
124
|
-
* Reduces a path's chronological change list to a single net change.
|
|
125
|
-
* A one-change group is returned as-is (the common path, no allocation);
|
|
126
|
-
* multi-edit groups synthesize a net {@link FileChange}.
|
|
127
|
-
*/
|
|
128
|
-
function netChange(changes: FileChange[]): FileChange {
|
|
129
|
-
if (changes.length === 1) return changes[0];
|
|
130
|
-
|
|
131
|
-
const first = changes[0];
|
|
132
|
-
const last = changes[changes.length - 1];
|
|
133
|
-
const changeType = netChangeType(first, last);
|
|
134
|
-
|
|
135
|
-
// Whole-file only when both chosen sides come from whole-file captures;
|
|
136
|
-
// otherwise fall back to the last change's hunk diff. A path edited by a
|
|
137
|
-
// single harness won't mix levels — this just stays honest if it ever does.
|
|
138
|
-
const wholeFile =
|
|
139
|
-
first.captureLevel === FileChangeCaptureLevel.WHOLE_FILE &&
|
|
140
|
-
last.captureLevel === FileChangeCaptureLevel.WHOLE_FILE;
|
|
141
|
-
|
|
142
|
-
if (wholeFile) {
|
|
143
|
-
return create(FileChangeSchema, {
|
|
144
|
-
path: last.path,
|
|
145
|
-
absolutePath: last.absolutePath,
|
|
146
|
-
changeType,
|
|
147
|
-
captureLevel: FileChangeCaptureLevel.WHOLE_FILE,
|
|
148
|
-
before: first.before,
|
|
149
|
-
after: last.after,
|
|
150
|
-
renameFrom: changeType === FileChangeType.RENAME ? first.renameFrom : "",
|
|
151
|
-
});
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
return create(FileChangeSchema, {
|
|
155
|
-
path: last.path,
|
|
156
|
-
absolutePath: last.absolutePath,
|
|
157
|
-
changeType,
|
|
158
|
-
captureLevel: FileChangeCaptureLevel.HUNK_ONLY,
|
|
159
|
-
unifiedDiff: last.unifiedDiff,
|
|
160
|
-
linesAdded: last.linesAdded,
|
|
161
|
-
linesRemoved: last.linesRemoved,
|
|
162
|
-
renameFrom: changeType === FileChangeType.RENAME ? first.renameFrom : "",
|
|
163
|
-
});
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
/**
|
|
167
|
-
* Reconciles the net `change_type` of a path from its first and last change.
|
|
168
|
-
*
|
|
169
|
-
* Intent: the badge should describe the file's journey across the *whole*
|
|
170
|
-
* session, anchored on its two endpoints, in this precedence:
|
|
171
|
-
*
|
|
172
|
-
* 1. Ends deleted (`last` is DELETE) → DELETE. The file is gone, regardless of
|
|
173
|
-
* how it got there — this includes create-then-delete, which we deliberately
|
|
174
|
-
* surface as DELETE rather than hiding the path. (`before` then comes from
|
|
175
|
-
* the first change, which for a created-then-deleted file is empty, so the
|
|
176
|
-
* diff reads as the removal of whatever briefly existed.)
|
|
177
|
-
* 2. Started created (`first` is CREATE) and still exists → CREATE. A file born
|
|
178
|
-
* this session and later modified is, on net, a new file.
|
|
179
|
-
* 3. Started renamed (`first` is RENAME) and still exists → RENAME, carrying the
|
|
180
|
-
* original `rename_from` so the move is preserved across later edits.
|
|
181
|
-
* 4. Otherwise → MODIFY (the common multi-edit case).
|
|
182
|
-
*/
|
|
183
|
-
function netChangeType(first: FileChange, last: FileChange): FileChangeType {
|
|
184
|
-
if (last.changeType === FileChangeType.DELETE) return FileChangeType.DELETE;
|
|
185
|
-
if (first.changeType === FileChangeType.CREATE) return FileChangeType.CREATE;
|
|
186
|
-
if (first.changeType === FileChangeType.RENAME) return FileChangeType.RENAME;
|
|
187
|
-
return FileChangeType.MODIFY;
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
// Most-actionable first (modified), then additions (create/rename), then
|
|
191
|
-
// deletions — mirroring GitHub's file-list convention — alphabetical within
|
|
192
|
-
// each group so the list is stable and scannable.
|
|
193
|
-
const CHANGE_TYPE_ORDER: Readonly<Record<FileChangeType, number>> = {
|
|
194
|
-
[FileChangeType.MODIFY]: 0,
|
|
195
|
-
[FileChangeType.CREATE]: 1,
|
|
196
|
-
[FileChangeType.RENAME]: 1,
|
|
197
|
-
[FileChangeType.DELETE]: 2,
|
|
198
|
-
[FileChangeType.UNSPECIFIED]: 3,
|
|
199
|
-
};
|
|
200
|
-
|
|
201
|
-
function fileChangeComparator(a: FileChange, b: FileChange): number {
|
|
202
|
-
const order =
|
|
203
|
-
(CHANGE_TYPE_ORDER[a.changeType] ?? 3) -
|
|
204
|
-
(CHANGE_TYPE_ORDER[b.changeType] ?? 3);
|
|
205
|
-
if (order !== 0) return order;
|
|
206
|
-
return a.path.localeCompare(b.path, undefined, { sensitivity: "base" });
|
|
207
|
-
}
|
|
@@ -249,8 +249,19 @@ export function useSessionPageFlow(
|
|
|
249
249
|
const executionTarget: ExecutionTargetOption | undefined = fromProtoExecutionTarget(
|
|
250
250
|
conv.session?.spec?.executionTarget ?? ExecutionTarget.UNSPECIFIED,
|
|
251
251
|
);
|
|
252
|
-
|
|
253
|
-
|
|
252
|
+
// Guests never read or write the Console's persisted model preference —
|
|
253
|
+
// their follow-ups carry no modelName, and the session's harness (cursor
|
|
254
|
+
// for share surfaces) resolves the model server-side.
|
|
255
|
+
const [persistedModelId, setPersistedModelId] = usePersistedModel({
|
|
256
|
+
harness,
|
|
257
|
+
enabled: !isGuest,
|
|
258
|
+
});
|
|
259
|
+
|
|
260
|
+
// Guest note: this stays undefined for guests by construction — guest
|
|
261
|
+
// executions never carry a modelName (the first message omits it and the
|
|
262
|
+
// server-side guest execution profile owns the field thereafter). The
|
|
263
|
+
// guest flow test asserts that invariant; if it ever breaks, fix the
|
|
264
|
+
// server profile rather than special-casing here.
|
|
254
265
|
const lastExecModelId = useMemo(() => {
|
|
255
266
|
const lastExec = conv.completedExecutions.at(-1);
|
|
256
267
|
return lastExec?.spec?.executionConfig?.modelName || undefined;
|
|
@@ -4,14 +4,13 @@ import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
|
4
4
|
import type { ExecutionPhase } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
|
|
5
5
|
import type { ExecutionArtifact } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/artifact_pb";
|
|
6
6
|
import { isTerminalPhase } from "../execution/execution-phases.js";
|
|
7
|
-
import type { SelectedThreadItem } from "../internal/store/selection-store.js";
|
|
8
7
|
import {
|
|
9
8
|
useWorkspaceEditorsStoreRef,
|
|
10
9
|
type OpenFileOptions,
|
|
11
10
|
type WorkspaceEditorsStore,
|
|
12
11
|
} from "../internal/store/index.js";
|
|
13
12
|
import { PLAN_DOCUMENT_ENTRY_ID, PLAN_DOCUMENT_PATH } from "./plan-document.js";
|
|
14
|
-
import { ARTIFACT_DOCUMENT_ENTRY_ID } from "
|
|
13
|
+
import { ARTIFACT_DOCUMENT_ENTRY_ID } from "../execution/artifact-document.js";
|
|
15
14
|
import { artifactKey } from "./useSessionArtifacts.js";
|
|
16
15
|
|
|
17
16
|
/** Options for {@link useSessionPanel}. */
|
|
@@ -53,8 +52,8 @@ export interface UseSessionPanelOptions {
|
|
|
53
52
|
* to `"files"` (the Explorer), which suits the session viewer. The launcher
|
|
54
53
|
* passes `"configure"`: pre-session there is no workspace, so the Config
|
|
55
54
|
* facet — carrying the run defaults (harness/model) — is the useful landing
|
|
56
|
-
* view. Auto-switches (Changes
|
|
57
|
-
*
|
|
55
|
+
* view. Auto-switches (Changes) and explicit rail picks still take over
|
|
56
|
+
* from here exactly as before.
|
|
58
57
|
*
|
|
59
58
|
* @default "files"
|
|
60
59
|
*/
|
|
@@ -73,8 +72,8 @@ export interface UseSessionPanelOptions {
|
|
|
73
72
|
*
|
|
74
73
|
* Owns the {@link WorkspaceEditorsStore} (the open-editor group) and the view
|
|
75
74
|
* FSM ported from the retired inspector tabs: explicit picks are sticky until
|
|
76
|
-
* a meaningful state change (
|
|
77
|
-
*
|
|
75
|
+
* a meaningful state change (the running⇄terminal transition) resets them
|
|
76
|
+
* back to the `defaultView`. Both are decoupled from any store
|
|
78
77
|
* subscription at the owner level: callbacks mutate imperatively so a file
|
|
79
78
|
* open/switch re-renders only the subscribing panel subtree, never the
|
|
80
79
|
* streaming conversation column (DD-009/DD-010, invariant 2).
|
|
@@ -86,7 +85,7 @@ export interface SessionPanelController {
|
|
|
86
85
|
readonly isOpen: boolean;
|
|
87
86
|
/** The active rail view id (`"files"`, `"search"`, or an injected facet). */
|
|
88
87
|
readonly view: string;
|
|
89
|
-
/** Expand the panel, restoring the previous view
|
|
88
|
+
/** Expand the panel, restoring the previous view. */
|
|
90
89
|
readonly openPanel: () => void;
|
|
91
90
|
/** Collapse the panel to the chip, preserving editors and view. */
|
|
92
91
|
readonly closePanel: () => void;
|
|
@@ -140,15 +139,6 @@ export interface SessionPanelController {
|
|
|
140
139
|
* no-op if the artifact is not open.
|
|
141
140
|
*/
|
|
142
141
|
readonly pinArtifact: (artifact: ExecutionArtifact) => void;
|
|
143
|
-
/**
|
|
144
|
-
* Report the current thread-item selection. Called from an effect inside the
|
|
145
|
-
* panel subtree (the level that subscribes to the selection store), keeping
|
|
146
|
-
* the owner subscription-free. While the panel is open, a new selection
|
|
147
|
-
* auto-switches to the Inspect view (unless the user picked one explicitly);
|
|
148
|
-
* a collapsed panel deliberately ignores selections — Inspect has no
|
|
149
|
-
* auto-open (it must never pull the user out of the chat).
|
|
150
|
-
*/
|
|
151
|
-
readonly notifySelection: (item: SelectedThreadItem | null) => void;
|
|
152
142
|
}
|
|
153
143
|
|
|
154
144
|
/**
|
|
@@ -167,14 +157,6 @@ export function useSessionPanel({
|
|
|
167
157
|
// Sticky explicit pick (rail click) — auto-switching yields to it until a
|
|
168
158
|
// meaningful state change resets it. Same semantics as the retired tab FSM.
|
|
169
159
|
const userPickedViewRef = useRef(false);
|
|
170
|
-
// Render-synced mirror so imperative callbacks read the current view without
|
|
171
|
-
// re-binding on every view change.
|
|
172
|
-
const viewRef = useRef(view);
|
|
173
|
-
viewRef.current = view;
|
|
174
|
-
// Last selection reported by the panel subtree; consulted by transitions that
|
|
175
|
-
// fire at the owner level (open, phase change) where selection state is
|
|
176
|
-
// deliberately not subscribed.
|
|
177
|
-
const selectionRef = useRef<SelectedThreadItem | null>(null);
|
|
178
160
|
|
|
179
161
|
// Running⇄terminal transition → reset the sticky pick and re-derive the view.
|
|
180
162
|
// Adjust-state-during-render (the established ResizableSplit pattern) so it
|
|
@@ -186,7 +168,7 @@ export function useSessionPanel({
|
|
|
186
168
|
setPrevPhase(phase);
|
|
187
169
|
if (wasTerminal !== isNowTerminal) {
|
|
188
170
|
userPickedViewRef.current = false;
|
|
189
|
-
setViewState(
|
|
171
|
+
setViewState(defaultView);
|
|
190
172
|
}
|
|
191
173
|
}
|
|
192
174
|
|
|
@@ -222,14 +204,7 @@ export function useSessionPanel({
|
|
|
222
204
|
}
|
|
223
205
|
}, [planKey, openPlanDocument]);
|
|
224
206
|
|
|
225
|
-
const openPanel = useCallback(() =>
|
|
226
|
-
setIsOpen(true);
|
|
227
|
-
// Re-derive the auto view on entry: a selection made while collapsed
|
|
228
|
-
// surfaces as Inspect now (the collapsed panel ignored it by design).
|
|
229
|
-
if (!userPickedViewRef.current && selectionRef.current) {
|
|
230
|
-
setViewState("inspect");
|
|
231
|
-
}
|
|
232
|
-
}, []);
|
|
207
|
+
const openPanel = useCallback(() => setIsOpen(true), []);
|
|
233
208
|
|
|
234
209
|
const closePanel = useCallback(() => setIsOpen(false), []);
|
|
235
210
|
|
|
@@ -276,22 +251,6 @@ export function useSessionPanel({
|
|
|
276
251
|
[editorsStore],
|
|
277
252
|
);
|
|
278
253
|
|
|
279
|
-
const notifySelection = useCallback(
|
|
280
|
-
(item: SelectedThreadItem | null) => {
|
|
281
|
-
if (item === selectionRef.current) return;
|
|
282
|
-
selectionRef.current = item;
|
|
283
|
-
if (item) {
|
|
284
|
-
if (isOpen && !userPickedViewRef.current) setViewState("inspect");
|
|
285
|
-
} else if (viewRef.current === "inspect") {
|
|
286
|
-
// Selection cleared: leave Inspect (its content is gone) and unstick,
|
|
287
|
-
// returning to the panel's home view.
|
|
288
|
-
userPickedViewRef.current = false;
|
|
289
|
-
setViewState(defaultView);
|
|
290
|
-
}
|
|
291
|
-
},
|
|
292
|
-
[isOpen, defaultView],
|
|
293
|
-
);
|
|
294
|
-
|
|
295
254
|
return useMemo(
|
|
296
255
|
() => ({
|
|
297
256
|
editorsStore,
|
|
@@ -307,7 +266,6 @@ export function useSessionPanel({
|
|
|
307
266
|
openPlanDocument,
|
|
308
267
|
openArtifact,
|
|
309
268
|
pinArtifact,
|
|
310
|
-
notifySelection,
|
|
311
269
|
}),
|
|
312
270
|
[
|
|
313
271
|
editorsStore,
|
|
@@ -323,7 +281,6 @@ export function useSessionPanel({
|
|
|
323
281
|
openPlanDocument,
|
|
324
282
|
openArtifact,
|
|
325
283
|
pinArtifact,
|
|
326
|
-
notifySelection,
|
|
327
284
|
],
|
|
328
285
|
);
|
|
329
286
|
}
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
import { useMemo } from "react";
|
|
4
4
|
import type { AgentExecution } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/api_pb";
|
|
5
5
|
import type { SurfaceRailView } from "../workspace/WorkspaceSurface.js";
|
|
6
|
-
import type { SelectedThreadItem } from "../internal/store/selection-store.js";
|
|
7
6
|
import type { ApplyResourceResult } from "../library/useApplyResource.js";
|
|
8
7
|
import { useSessionWriteBacks } from "./useSessionWriteBacks.js";
|
|
9
8
|
import {
|
|
@@ -14,7 +13,6 @@ import { SetupTab, type SetupTabProps } from "./facets/SetupTab.js";
|
|
|
14
13
|
import { ChangesTab } from "./facets/ChangesTab.js";
|
|
15
14
|
import { ArtifactsTab } from "./facets/ArtifactsTab.js";
|
|
16
15
|
import { UsageTab } from "./facets/UsageTab.js";
|
|
17
|
-
import { InspectTab } from "./facets/InspectTab.js";
|
|
18
16
|
|
|
19
17
|
/** Options for {@link useSessionRailViews}. */
|
|
20
18
|
export interface UseSessionRailViewsOptions {
|
|
@@ -24,8 +22,6 @@ export interface UseSessionRailViewsOptions {
|
|
|
24
22
|
readonly org: string;
|
|
25
23
|
/** Session configuration for the Config facet. */
|
|
26
24
|
readonly sessionConfig: SetupTabProps | undefined;
|
|
27
|
-
/** Currently selected thread item — surfaces the Inspect facet. */
|
|
28
|
-
readonly selectedItem: SelectedThreadItem | null;
|
|
29
25
|
/** Called after a resource is applied from the Artifacts facet. */
|
|
30
26
|
readonly onApplied?: (result: ApplyResourceResult) => void;
|
|
31
27
|
/** Implement a plan — the Artifacts facet's preview action for `plan.md`. */
|
|
@@ -72,20 +68,19 @@ export interface UseSessionRailViewsOptions {
|
|
|
72
68
|
}
|
|
73
69
|
|
|
74
70
|
/**
|
|
75
|
-
* Composes the session facets (Config / Changes / Artifacts / Usage
|
|
71
|
+
* Composes the session facets (Config / Changes / Artifacts / Usage)
|
|
76
72
|
* as {@link SurfaceRailView}s for the workspace surface's activity rail.
|
|
77
73
|
*
|
|
78
74
|
* This is the session-domain half of the unified panel: the surface stays a
|
|
79
75
|
* domain-pure workspace organism and these views are injected into its rail
|
|
80
76
|
* (DD-004 composition). Contextual visibility mirrors the retired inspector's
|
|
81
77
|
* tab rules — Changes/Artifacts surface only when data exists (with count
|
|
82
|
-
* badges)
|
|
78
|
+
* badges).
|
|
83
79
|
*/
|
|
84
80
|
export function useSessionRailViews({
|
|
85
81
|
allExecutions,
|
|
86
82
|
org,
|
|
87
83
|
sessionConfig,
|
|
88
|
-
selectedItem,
|
|
89
84
|
onApplied,
|
|
90
85
|
onImplementPlan,
|
|
91
86
|
onOpenPlan,
|
|
@@ -158,15 +153,6 @@ export function useSessionRailViews({
|
|
|
158
153
|
});
|
|
159
154
|
}
|
|
160
155
|
|
|
161
|
-
if (selectedItem) {
|
|
162
|
-
views.push({
|
|
163
|
-
id: "inspect",
|
|
164
|
-
label: "Inspect",
|
|
165
|
-
icon: <InspectIcon />,
|
|
166
|
-
content: <InspectTab selectedItem={selectedItem} />,
|
|
167
|
-
});
|
|
168
|
-
}
|
|
169
|
-
|
|
170
156
|
return views;
|
|
171
157
|
}, [
|
|
172
158
|
sessionConfig,
|
|
@@ -184,7 +170,6 @@ export function useSessionRailViews({
|
|
|
184
170
|
onOpenPlan,
|
|
185
171
|
onOpenArtifact,
|
|
186
172
|
onActivateArtifact,
|
|
187
|
-
selectedItem,
|
|
188
173
|
]);
|
|
189
174
|
}
|
|
190
175
|
|
|
@@ -236,13 +221,3 @@ function UsageIcon() {
|
|
|
236
221
|
</svg>
|
|
237
222
|
);
|
|
238
223
|
}
|
|
239
|
-
|
|
240
|
-
/** Crosshair glyph — inspecting a selected thread item. */
|
|
241
|
-
function InspectIcon() {
|
|
242
|
-
return (
|
|
243
|
-
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.7" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true">
|
|
244
|
-
<circle cx="12" cy="12" r="7" />
|
|
245
|
-
<path d="M12 2v4M12 18v4M2 12h4M18 12h4" />
|
|
246
|
-
</svg>
|
|
247
|
-
);
|
|
248
|
-
}
|