@agimon-ai/po-web-dashboard 0.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +29 -0
- package/README.md +10 -0
- package/dist/_virtual/_rolldown/runtime.cjs +23 -0
- package/dist/core.cjs +222 -0
- package/dist/core.d.mts +21 -0
- package/dist/core.mjs +21 -0
- package/dist/index.cjs +546 -0
- package/dist/index.d.mts +81 -0
- package/dist/index.mjs +81 -0
- package/dist/testing.cjs +18 -0
- package/dist/testing.d.mts +6 -0
- package/dist/testing.mjs +6 -0
- package/dist/types/auth.cjs +20 -0
- package/dist/types/auth.cjs.map +1 -0
- package/dist/types/auth.d.mts +160 -0
- package/dist/types/auth.d.mts.map +1 -0
- package/dist/types/auth.mjs +19 -0
- package/dist/types/auth.mjs.map +1 -0
- package/dist/types/bridge.d.mts +18 -0
- package/dist/types/bridge.d.mts.map +1 -0
- package/dist/types/devProxy.cjs +41 -0
- package/dist/types/devProxy.cjs.map +1 -0
- package/dist/types/devProxy.d.mts +54 -0
- package/dist/types/devProxy.d.mts.map +1 -0
- package/dist/types/devProxy.mjs +39 -0
- package/dist/types/devProxy.mjs.map +1 -0
- package/dist/types/hub.cjs +220 -0
- package/dist/types/hub.cjs.map +1 -0
- package/dist/types/hub.d.mts +447 -0
- package/dist/types/hub.d.mts.map +1 -0
- package/dist/types/hub.mjs +179 -0
- package/dist/types/hub.mjs.map +1 -0
- package/dist/types/media.cjs +75 -0
- package/dist/types/media.cjs.map +1 -0
- package/dist/types/media.d.mts +22 -0
- package/dist/types/media.d.mts.map +1 -0
- package/dist/types/media.mjs +70 -0
- package/dist/types/media.mjs.map +1 -0
- package/dist/types/notification.cjs +19 -0
- package/dist/types/notification.cjs.map +1 -0
- package/dist/types/notification.d.mts +10 -0
- package/dist/types/notification.d.mts.map +1 -0
- package/dist/types/notification.mjs +19 -0
- package/dist/types/notification.mjs.map +1 -0
- package/dist/types/remoteAccess.cjs +92 -0
- package/dist/types/remoteAccess.cjs.map +1 -0
- package/dist/types/remoteAccess.d.mts +214 -0
- package/dist/types/remoteAccess.d.mts.map +1 -0
- package/dist/types/remoteAccess.mjs +68 -0
- package/dist/types/remoteAccess.mjs.map +1 -0
- package/dist/types/session.cjs +23 -0
- package/dist/types/session.cjs.map +1 -0
- package/dist/types/session.d.mts +29 -0
- package/dist/types/session.d.mts.map +1 -0
- package/dist/types/session.mjs +18 -0
- package/dist/types/session.mjs.map +1 -0
- package/dist/types/sessionMcp.d.mts +56 -0
- package/dist/types/sessionMcp.d.mts.map +1 -0
- package/dist/types/settings.cjs +18 -0
- package/dist/types/settings.cjs.map +1 -0
- package/dist/types/settings.d.mts +126 -0
- package/dist/types/settings.d.mts.map +1 -0
- package/dist/types/settings.mjs +12 -0
- package/dist/types/settings.mjs.map +1 -0
- package/dist/types.cjs +101 -0
- package/dist/types.d.mts +11 -0
- package/dist/types.mjs +9 -0
- package/dist/views.cjs +120 -0
- package/dist/views.d.mts +56 -0
- package/dist/views.mjs +56 -0
- package/dist/web/components/MascotMark.cjs +18 -0
- package/dist/web/components/MascotMark.cjs.map +1 -0
- package/dist/web/components/MascotMark.d.mts +9 -0
- package/dist/web/components/MascotMark.d.mts.map +1 -0
- package/dist/web/components/MascotMark.mjs +18 -0
- package/dist/web/components/MascotMark.mjs.map +1 -0
- package/dist/web/components/PluginSurface.cjs +15 -0
- package/dist/web/components/PluginSurface.cjs.map +1 -0
- package/dist/web/components/PluginSurface.d.mts +13 -0
- package/dist/web/components/PluginSurface.d.mts.map +1 -0
- package/dist/web/components/PluginSurface.mjs +15 -0
- package/dist/web/components/PluginSurface.mjs.map +1 -0
- package/dist/web/components/QrCode.cjs +37 -0
- package/dist/web/components/QrCode.cjs.map +1 -0
- package/dist/web/components/QrCode.d.mts +22 -0
- package/dist/web/components/QrCode.d.mts.map +1 -0
- package/dist/web/components/QrCode.mjs +37 -0
- package/dist/web/components/QrCode.mjs.map +1 -0
- package/dist/web/components/Remote.fixture.cjs +73 -0
- package/dist/web/components/Remote.fixture.cjs.map +1 -0
- package/dist/web/components/Remote.fixture.mjs +72 -0
- package/dist/web/components/Remote.fixture.mjs.map +1 -0
- package/dist/web/components/SessionMcp.cjs +279 -0
- package/dist/web/components/SessionMcp.cjs.map +1 -0
- package/dist/web/components/SessionMcp.d.mts +12 -0
- package/dist/web/components/SessionMcp.d.mts.map +1 -0
- package/dist/web/components/SessionMcp.mjs +278 -0
- package/dist/web/components/SessionMcp.mjs.map +1 -0
- package/dist/web/components/Story.fixture.cjs +124 -0
- package/dist/web/components/Story.fixture.cjs.map +1 -0
- package/dist/web/components/Story.fixture.d.mts +19 -0
- package/dist/web/components/Story.fixture.d.mts.map +1 -0
- package/dist/web/components/Story.fixture.mjs +119 -0
- package/dist/web/components/Story.fixture.mjs.map +1 -0
- package/dist/web/components/Template.fixture.cjs +67 -0
- package/dist/web/components/Template.fixture.cjs.map +1 -0
- package/dist/web/components/Template.fixture.d.mts +7 -0
- package/dist/web/components/Template.fixture.d.mts.map +1 -0
- package/dist/web/components/Template.fixture.mjs +65 -0
- package/dist/web/components/Template.fixture.mjs.map +1 -0
- package/dist/web/components/ToolRendererBoundary.cjs +23 -0
- package/dist/web/components/ToolRendererBoundary.cjs.map +1 -0
- package/dist/web/components/ToolRendererBoundary.d.mts +23 -0
- package/dist/web/components/ToolRendererBoundary.d.mts.map +1 -0
- package/dist/web/components/ToolRendererBoundary.mjs +23 -0
- package/dist/web/components/ToolRendererBoundary.mjs.map +1 -0
- package/dist/web/features/activity/ActivityDock.cjs +271 -0
- package/dist/web/features/activity/ActivityDock.cjs.map +1 -0
- package/dist/web/features/activity/ActivityDock.d.mts +22 -0
- package/dist/web/features/activity/ActivityDock.d.mts.map +1 -0
- package/dist/web/features/activity/ActivityDock.mjs +271 -0
- package/dist/web/features/activity/ActivityDock.mjs.map +1 -0
- package/dist/web/features/activity/ContextItemDialog.cjs +276 -0
- package/dist/web/features/activity/ContextItemDialog.cjs.map +1 -0
- package/dist/web/features/activity/ContextItemDialog.d.mts +16 -0
- package/dist/web/features/activity/ContextItemDialog.d.mts.map +1 -0
- package/dist/web/features/activity/ContextItemDialog.mjs +276 -0
- package/dist/web/features/activity/ContextItemDialog.mjs.map +1 -0
- package/dist/web/features/activity/ContextPanel.cjs +248 -0
- package/dist/web/features/activity/ContextPanel.cjs.map +1 -0
- package/dist/web/features/activity/ContextPanel.d.mts +4 -0
- package/dist/web/features/activity/ContextPanel.d.mts.map +1 -0
- package/dist/web/features/activity/ContextPanel.mjs +248 -0
- package/dist/web/features/activity/ContextPanel.mjs.map +1 -0
- package/dist/web/features/activity/DockTabs.cjs +47 -0
- package/dist/web/features/activity/DockTabs.cjs.map +1 -0
- package/dist/web/features/activity/DockTabs.d.mts +9 -0
- package/dist/web/features/activity/DockTabs.d.mts.map +1 -0
- package/dist/web/features/activity/DockTabs.mjs +47 -0
- package/dist/web/features/activity/DockTabs.mjs.map +1 -0
- package/dist/web/features/connection/RefusedCard.cjs +76 -0
- package/dist/web/features/connection/RefusedCard.cjs.map +1 -0
- package/dist/web/features/connection/RefusedCard.d.mts +5 -0
- package/dist/web/features/connection/RefusedCard.d.mts.map +1 -0
- package/dist/web/features/connection/RefusedCard.mjs +76 -0
- package/dist/web/features/connection/RefusedCard.mjs.map +1 -0
- package/dist/web/features/dialogs/DialogOverlay.cjs +164 -0
- package/dist/web/features/dialogs/DialogOverlay.cjs.map +1 -0
- package/dist/web/features/dialogs/DialogOverlay.d.mts +15 -0
- package/dist/web/features/dialogs/DialogOverlay.d.mts.map +1 -0
- package/dist/web/features/dialogs/DialogOverlay.mjs +164 -0
- package/dist/web/features/dialogs/DialogOverlay.mjs.map +1 -0
- package/dist/web/features/leader/CommandPalette.cjs +390 -0
- package/dist/web/features/leader/CommandPalette.cjs.map +1 -0
- package/dist/web/features/leader/CommandPalette.d.mts +14 -0
- package/dist/web/features/leader/CommandPalette.d.mts.map +1 -0
- package/dist/web/features/leader/CommandPalette.mjs +390 -0
- package/dist/web/features/leader/CommandPalette.mjs.map +1 -0
- package/dist/web/features/remote/DevProxyTargets.cjs +122 -0
- package/dist/web/features/remote/DevProxyTargets.cjs.map +1 -0
- package/dist/web/features/remote/DevProxyTargets.d.mts +15 -0
- package/dist/web/features/remote/DevProxyTargets.d.mts.map +1 -0
- package/dist/web/features/remote/DevProxyTargets.mjs +122 -0
- package/dist/web/features/remote/DevProxyTargets.mjs.map +1 -0
- package/dist/web/features/remote/HandoverProgress.cjs +28 -0
- package/dist/web/features/remote/HandoverProgress.cjs.map +1 -0
- package/dist/web/features/remote/HandoverProgress.d.mts +12 -0
- package/dist/web/features/remote/HandoverProgress.d.mts.map +1 -0
- package/dist/web/features/remote/HandoverProgress.mjs +28 -0
- package/dist/web/features/remote/HandoverProgress.mjs.map +1 -0
- package/dist/web/features/remote/PairedDeviceList.cjs +37 -0
- package/dist/web/features/remote/PairedDeviceList.cjs.map +1 -0
- package/dist/web/features/remote/PairedDeviceList.d.mts +5 -0
- package/dist/web/features/remote/PairedDeviceList.d.mts.map +1 -0
- package/dist/web/features/remote/PairedDeviceList.mjs +37 -0
- package/dist/web/features/remote/PairedDeviceList.mjs.map +1 -0
- package/dist/web/features/remote/PairingApprovalDialog.cjs +65 -0
- package/dist/web/features/remote/PairingApprovalDialog.cjs.map +1 -0
- package/dist/web/features/remote/PairingApprovalDialog.d.mts +11 -0
- package/dist/web/features/remote/PairingApprovalDialog.d.mts.map +1 -0
- package/dist/web/features/remote/PairingApprovalDialog.mjs +65 -0
- package/dist/web/features/remote/PairingApprovalDialog.mjs.map +1 -0
- package/dist/web/features/remote/RemoteAccessDialog.cjs +83 -0
- package/dist/web/features/remote/RemoteAccessDialog.cjs.map +1 -0
- package/dist/web/features/remote/RemoteAccessDialog.d.mts +11 -0
- package/dist/web/features/remote/RemoteAccessDialog.d.mts.map +1 -0
- package/dist/web/features/remote/RemoteAccessDialog.mjs +83 -0
- package/dist/web/features/remote/RemoteAccessDialog.mjs.map +1 -0
- package/dist/web/features/remote/RemoteAccessOptions.cjs +154 -0
- package/dist/web/features/remote/RemoteAccessOptions.cjs.map +1 -0
- package/dist/web/features/remote/RemoteAccessOptions.d.mts +11 -0
- package/dist/web/features/remote/RemoteAccessOptions.d.mts.map +1 -0
- package/dist/web/features/remote/RemoteAccessOptions.mjs +154 -0
- package/dist/web/features/remote/RemoteAccessOptions.mjs.map +1 -0
- package/dist/web/features/remote/RemoteAccessPairing.cjs +93 -0
- package/dist/web/features/remote/RemoteAccessPairing.cjs.map +1 -0
- package/dist/web/features/remote/RemoteAccessPairing.d.mts +5 -0
- package/dist/web/features/remote/RemoteAccessPairing.d.mts.map +1 -0
- package/dist/web/features/remote/RemoteAccessPairing.mjs +93 -0
- package/dist/web/features/remote/RemoteAccessPairing.mjs.map +1 -0
- package/dist/web/features/remote/SandboxWorkspaces.cjs +87 -0
- package/dist/web/features/remote/SandboxWorkspaces.cjs.map +1 -0
- package/dist/web/features/remote/SandboxWorkspaces.d.mts +7 -0
- package/dist/web/features/remote/SandboxWorkspaces.d.mts.map +1 -0
- package/dist/web/features/remote/SandboxWorkspaces.mjs +87 -0
- package/dist/web/features/remote/SandboxWorkspaces.mjs.map +1 -0
- package/dist/web/features/remote/TrustedDeviceList.cjs +65 -0
- package/dist/web/features/remote/TrustedDeviceList.cjs.map +1 -0
- package/dist/web/features/remote/TrustedDeviceList.d.mts +13 -0
- package/dist/web/features/remote/TrustedDeviceList.d.mts.map +1 -0
- package/dist/web/features/remote/TrustedDeviceList.mjs +64 -0
- package/dist/web/features/remote/TrustedDeviceList.mjs.map +1 -0
- package/dist/web/features/selection/SelectionBar.cjs +401 -0
- package/dist/web/features/selection/SelectionBar.cjs.map +1 -0
- package/dist/web/features/selection/SelectionBar.d.mts +14 -0
- package/dist/web/features/selection/SelectionBar.d.mts.map +1 -0
- package/dist/web/features/selection/SelectionBar.mjs +400 -0
- package/dist/web/features/selection/SelectionBar.mjs.map +1 -0
- package/dist/web/features/session/AgentLockPanel.cjs +31 -0
- package/dist/web/features/session/AgentLockPanel.cjs.map +1 -0
- package/dist/web/features/session/AgentLockPanel.mjs +31 -0
- package/dist/web/features/session/AgentLockPanel.mjs.map +1 -0
- package/dist/web/features/session/Composer.cjs +808 -0
- package/dist/web/features/session/Composer.cjs.map +1 -0
- package/dist/web/features/session/Composer.d.mts +21 -0
- package/dist/web/features/session/Composer.d.mts.map +1 -0
- package/dist/web/features/session/Composer.mjs +806 -0
- package/dist/web/features/session/Composer.mjs.map +1 -0
- package/dist/web/features/session/ComposerPrompt.cjs +47 -0
- package/dist/web/features/session/ComposerPrompt.cjs.map +1 -0
- package/dist/web/features/session/ComposerPrompt.d.mts +16 -0
- package/dist/web/features/session/ComposerPrompt.d.mts.map +1 -0
- package/dist/web/features/session/ComposerPrompt.mjs +47 -0
- package/dist/web/features/session/ComposerPrompt.mjs.map +1 -0
- package/dist/web/features/session/DormantPanel.cjs +61 -0
- package/dist/web/features/session/DormantPanel.cjs.map +1 -0
- package/dist/web/features/session/DormantPanel.d.mts +8 -0
- package/dist/web/features/session/DormantPanel.d.mts.map +1 -0
- package/dist/web/features/session/DormantPanel.mjs +61 -0
- package/dist/web/features/session/DormantPanel.mjs.map +1 -0
- package/dist/web/features/session/MentionPreviews.cjs +128 -0
- package/dist/web/features/session/MentionPreviews.cjs.map +1 -0
- package/dist/web/features/session/MentionPreviews.d.mts +17 -0
- package/dist/web/features/session/MentionPreviews.d.mts.map +1 -0
- package/dist/web/features/session/MentionPreviews.mjs +127 -0
- package/dist/web/features/session/MentionPreviews.mjs.map +1 -0
- package/dist/web/features/session/MessageMarkdown.cjs +20 -0
- package/dist/web/features/session/MessageMarkdown.cjs.map +1 -0
- package/dist/web/features/session/MessageMarkdown.d.mts +19 -0
- package/dist/web/features/session/MessageMarkdown.d.mts.map +1 -0
- package/dist/web/features/session/MessageMarkdown.mjs +20 -0
- package/dist/web/features/session/MessageMarkdown.mjs.map +1 -0
- package/dist/web/features/session/QueueSheet.cjs +189 -0
- package/dist/web/features/session/QueueSheet.cjs.map +1 -0
- package/dist/web/features/session/QueueSheet.d.mts +16 -0
- package/dist/web/features/session/QueueSheet.d.mts.map +1 -0
- package/dist/web/features/session/QueueSheet.mjs +189 -0
- package/dist/web/features/session/QueueSheet.mjs.map +1 -0
- package/dist/web/features/session/SessionActivity.cjs +88 -0
- package/dist/web/features/session/SessionActivity.cjs.map +1 -0
- package/dist/web/features/session/SessionActivity.d.mts +16 -0
- package/dist/web/features/session/SessionActivity.d.mts.map +1 -0
- package/dist/web/features/session/SessionActivity.mjs +87 -0
- package/dist/web/features/session/SessionActivity.mjs.map +1 -0
- package/dist/web/features/session/SessionTranscriptView.cjs +34 -0
- package/dist/web/features/session/SessionTranscriptView.cjs.map +1 -0
- package/dist/web/features/session/SessionTranscriptView.d.mts +16 -0
- package/dist/web/features/session/SessionTranscriptView.d.mts.map +1 -0
- package/dist/web/features/session/SessionTranscriptView.mjs +34 -0
- package/dist/web/features/session/SessionTranscriptView.mjs.map +1 -0
- package/dist/web/features/session/ThreadView.cjs +40 -0
- package/dist/web/features/session/ThreadView.cjs.map +1 -0
- package/dist/web/features/session/ThreadView.d.mts +18 -0
- package/dist/web/features/session/ThreadView.d.mts.map +1 -0
- package/dist/web/features/session/ThreadView.mjs +40 -0
- package/dist/web/features/session/ThreadView.mjs.map +1 -0
- package/dist/web/features/session/Timeline.cjs +620 -0
- package/dist/web/features/session/Timeline.cjs.map +1 -0
- package/dist/web/features/session/Timeline.d.mts +28 -0
- package/dist/web/features/session/Timeline.d.mts.map +1 -0
- package/dist/web/features/session/Timeline.mjs +619 -0
- package/dist/web/features/session/Timeline.mjs.map +1 -0
- package/dist/web/features/session/ToolCard.cjs +210 -0
- package/dist/web/features/session/ToolCard.cjs.map +1 -0
- package/dist/web/features/session/ToolCard.d.mts +16 -0
- package/dist/web/features/session/ToolCard.d.mts.map +1 -0
- package/dist/web/features/session/ToolCard.mjs +210 -0
- package/dist/web/features/session/ToolCard.mjs.map +1 -0
- package/dist/web/features/session/session.fixture.cjs +76 -0
- package/dist/web/features/session/session.fixture.cjs.map +1 -0
- package/dist/web/features/session/session.fixture.d.mts +6 -0
- package/dist/web/features/session/session.fixture.d.mts.map +1 -0
- package/dist/web/features/session/session.fixture.mjs +74 -0
- package/dist/web/features/session/session.fixture.mjs.map +1 -0
- package/dist/web/features/sessions/NewSessionDialog.cjs +70 -0
- package/dist/web/features/sessions/NewSessionDialog.cjs.map +1 -0
- package/dist/web/features/sessions/NewSessionDialog.d.mts +9 -0
- package/dist/web/features/sessions/NewSessionDialog.d.mts.map +1 -0
- package/dist/web/features/sessions/NewSessionDialog.mjs +70 -0
- package/dist/web/features/sessions/NewSessionDialog.mjs.map +1 -0
- package/dist/web/features/sessions/ResumeSessionDialog.cjs +131 -0
- package/dist/web/features/sessions/ResumeSessionDialog.cjs.map +1 -0
- package/dist/web/features/sessions/ResumeSessionDialog.d.mts +14 -0
- package/dist/web/features/sessions/ResumeSessionDialog.d.mts.map +1 -0
- package/dist/web/features/sessions/ResumeSessionDialog.mjs +131 -0
- package/dist/web/features/sessions/ResumeSessionDialog.mjs.map +1 -0
- package/dist/web/features/sessions/SessionRailDialogs.cjs +62 -0
- package/dist/web/features/sessions/SessionRailDialogs.cjs.map +1 -0
- package/dist/web/features/sessions/SessionRailDialogs.d.mts +10 -0
- package/dist/web/features/sessions/SessionRailDialogs.d.mts.map +1 -0
- package/dist/web/features/sessions/SessionRailDialogs.mjs +62 -0
- package/dist/web/features/sessions/SessionRailDialogs.mjs.map +1 -0
- package/dist/web/features/sessions/WelcomePanel.cjs +42 -0
- package/dist/web/features/sessions/WelcomePanel.cjs.map +1 -0
- package/dist/web/features/sessions/WelcomePanel.d.mts +16 -0
- package/dist/web/features/sessions/WelcomePanel.d.mts.map +1 -0
- package/dist/web/features/sessions/WelcomePanel.mjs +42 -0
- package/dist/web/features/sessions/WelcomePanel.mjs.map +1 -0
- package/dist/web/features/sessions/useNewSessionActions.cjs +38 -0
- package/dist/web/features/sessions/useNewSessionActions.cjs.map +1 -0
- package/dist/web/features/sessions/useNewSessionActions.d.mts +12 -0
- package/dist/web/features/sessions/useNewSessionActions.d.mts.map +1 -0
- package/dist/web/features/sessions/useNewSessionActions.mjs +38 -0
- package/dist/web/features/sessions/useNewSessionActions.mjs.map +1 -0
- package/dist/web/features/sessions/useSessionRail.cjs +302 -0
- package/dist/web/features/sessions/useSessionRail.cjs.map +1 -0
- package/dist/web/features/sessions/useSessionRail.d.mts +14 -0
- package/dist/web/features/sessions/useSessionRail.d.mts.map +1 -0
- package/dist/web/features/sessions/useSessionRail.mjs +302 -0
- package/dist/web/features/sessions/useSessionRail.mjs.map +1 -0
- package/dist/web/features/settings/AppearanceSettings.cjs +126 -0
- package/dist/web/features/settings/AppearanceSettings.cjs.map +1 -0
- package/dist/web/features/settings/AppearanceSettings.d.mts +12 -0
- package/dist/web/features/settings/AppearanceSettings.d.mts.map +1 -0
- package/dist/web/features/settings/AppearanceSettings.mjs +126 -0
- package/dist/web/features/settings/AppearanceSettings.mjs.map +1 -0
- package/dist/web/features/settings/ContributedSettings.cjs +257 -0
- package/dist/web/features/settings/ContributedSettings.cjs.map +1 -0
- package/dist/web/features/settings/ContributedSettings.d.mts +14 -0
- package/dist/web/features/settings/ContributedSettings.d.mts.map +1 -0
- package/dist/web/features/settings/ContributedSettings.mjs +257 -0
- package/dist/web/features/settings/ContributedSettings.mjs.map +1 -0
- package/dist/web/features/settings/ImageSettings.cjs +146 -0
- package/dist/web/features/settings/ImageSettings.cjs.map +1 -0
- package/dist/web/features/settings/ImageSettings.d.mts +12 -0
- package/dist/web/features/settings/ImageSettings.d.mts.map +1 -0
- package/dist/web/features/settings/ImageSettings.mjs +146 -0
- package/dist/web/features/settings/ImageSettings.mjs.map +1 -0
- package/dist/web/features/settings/LoginFlowDialog.cjs +226 -0
- package/dist/web/features/settings/LoginFlowDialog.cjs.map +1 -0
- package/dist/web/features/settings/LoginFlowDialog.d.mts +15 -0
- package/dist/web/features/settings/LoginFlowDialog.d.mts.map +1 -0
- package/dist/web/features/settings/LoginFlowDialog.mjs +225 -0
- package/dist/web/features/settings/LoginFlowDialog.mjs.map +1 -0
- package/dist/web/features/settings/NotificationSettings.cjs +69 -0
- package/dist/web/features/settings/NotificationSettings.cjs.map +1 -0
- package/dist/web/features/settings/NotificationSettings.d.mts +5 -0
- package/dist/web/features/settings/NotificationSettings.d.mts.map +1 -0
- package/dist/web/features/settings/NotificationSettings.mjs +69 -0
- package/dist/web/features/settings/NotificationSettings.mjs.map +1 -0
- package/dist/web/features/settings/PluginSettings.cjs +106 -0
- package/dist/web/features/settings/PluginSettings.cjs.map +1 -0
- package/dist/web/features/settings/PluginSettings.d.mts +10 -0
- package/dist/web/features/settings/PluginSettings.d.mts.map +1 -0
- package/dist/web/features/settings/PluginSettings.mjs +106 -0
- package/dist/web/features/settings/PluginSettings.mjs.map +1 -0
- package/dist/web/features/settings/ProviderSettings.cjs +323 -0
- package/dist/web/features/settings/ProviderSettings.cjs.map +1 -0
- package/dist/web/features/settings/ProviderSettings.d.mts +9 -0
- package/dist/web/features/settings/ProviderSettings.d.mts.map +1 -0
- package/dist/web/features/settings/ProviderSettings.mjs +323 -0
- package/dist/web/features/settings/ProviderSettings.mjs.map +1 -0
- package/dist/web/features/settings/RemoteControlSettings.cjs +50 -0
- package/dist/web/features/settings/RemoteControlSettings.cjs.map +1 -0
- package/dist/web/features/settings/RemoteControlSettings.d.mts +5 -0
- package/dist/web/features/settings/RemoteControlSettings.d.mts.map +1 -0
- package/dist/web/features/settings/RemoteControlSettings.mjs +50 -0
- package/dist/web/features/settings/RemoteControlSettings.mjs.map +1 -0
- package/dist/web/features/settings/RepositorySettings.cjs +318 -0
- package/dist/web/features/settings/RepositorySettings.cjs.map +1 -0
- package/dist/web/features/settings/RepositorySettings.d.mts +7 -0
- package/dist/web/features/settings/RepositorySettings.d.mts.map +1 -0
- package/dist/web/features/settings/RepositorySettings.mjs +318 -0
- package/dist/web/features/settings/RepositorySettings.mjs.map +1 -0
- package/dist/web/features/settings/RepositoryWorkspace.cjs +160 -0
- package/dist/web/features/settings/RepositoryWorkspace.cjs.map +1 -0
- package/dist/web/features/settings/RepositoryWorkspace.d.mts +10 -0
- package/dist/web/features/settings/RepositoryWorkspace.d.mts.map +1 -0
- package/dist/web/features/settings/RepositoryWorkspace.mjs +160 -0
- package/dist/web/features/settings/RepositoryWorkspace.mjs.map +1 -0
- package/dist/web/features/settings/SessionMcpSettings.cjs +488 -0
- package/dist/web/features/settings/SessionMcpSettings.cjs.map +1 -0
- package/dist/web/features/settings/SessionMcpSettings.d.mts +5 -0
- package/dist/web/features/settings/SessionMcpSettings.d.mts.map +1 -0
- package/dist/web/features/settings/SessionMcpSettings.mjs +488 -0
- package/dist/web/features/settings/SessionMcpSettings.mjs.map +1 -0
- package/dist/web/features/settings/SettingsMenu.cjs +135 -0
- package/dist/web/features/settings/SettingsMenu.cjs.map +1 -0
- package/dist/web/features/settings/SettingsMenu.d.mts +9 -0
- package/dist/web/features/settings/SettingsMenu.d.mts.map +1 -0
- package/dist/web/features/settings/SettingsMenu.mjs +135 -0
- package/dist/web/features/settings/SettingsMenu.mjs.map +1 -0
- package/dist/web/features/settings/SettingsPanelHost.cjs +32 -0
- package/dist/web/features/settings/SettingsPanelHost.cjs.map +1 -0
- package/dist/web/features/settings/SettingsPanelHost.d.mts +8 -0
- package/dist/web/features/settings/SettingsPanelHost.d.mts.map +1 -0
- package/dist/web/features/settings/SettingsPanelHost.mjs +32 -0
- package/dist/web/features/settings/SettingsPanelHost.mjs.map +1 -0
- package/dist/web/features/settings/TemplateSettings.cjs +177 -0
- package/dist/web/features/settings/TemplateSettings.cjs.map +1 -0
- package/dist/web/features/settings/TemplateSettings.d.mts +8 -0
- package/dist/web/features/settings/TemplateSettings.d.mts.map +1 -0
- package/dist/web/features/settings/TemplateSettings.mjs +177 -0
- package/dist/web/features/settings/TemplateSettings.mjs.map +1 -0
- package/dist/web/features/settings/TunnelSettings.cjs +182 -0
- package/dist/web/features/settings/TunnelSettings.cjs.map +1 -0
- package/dist/web/features/settings/TunnelSettings.d.mts +8 -0
- package/dist/web/features/settings/TunnelSettings.d.mts.map +1 -0
- package/dist/web/features/settings/TunnelSettings.mjs +182 -0
- package/dist/web/features/settings/TunnelSettings.mjs.map +1 -0
- package/dist/web/features/settings/settings.fixture.cjs +230 -0
- package/dist/web/features/settings/settings.fixture.cjs.map +1 -0
- package/dist/web/features/settings/settings.fixture.d.mts +6 -0
- package/dist/web/features/settings/settings.fixture.d.mts.map +1 -0
- package/dist/web/features/settings/settings.fixture.mjs +223 -0
- package/dist/web/features/settings/settings.fixture.mjs.map +1 -0
- package/dist/web/features/status/TopBar.cjs +200 -0
- package/dist/web/features/status/TopBar.cjs.map +1 -0
- package/dist/web/features/status/TopBar.d.mts +11 -0
- package/dist/web/features/status/TopBar.d.mts.map +1 -0
- package/dist/web/features/status/TopBar.mjs +200 -0
- package/dist/web/features/status/TopBar.mjs.map +1 -0
- package/dist/web/lib/authApi.cjs +77 -0
- package/dist/web/lib/authApi.cjs.map +1 -0
- package/dist/web/lib/authApi.d.mts +28 -0
- package/dist/web/lib/authApi.d.mts.map +1 -0
- package/dist/web/lib/authApi.mjs +72 -0
- package/dist/web/lib/authApi.mjs.map +1 -0
- package/dist/web/lib/browserNotifications.cjs +37 -0
- package/dist/web/lib/browserNotifications.cjs.map +1 -0
- package/dist/web/lib/browserNotifications.d.mts +12 -0
- package/dist/web/lib/browserNotifications.d.mts.map +1 -0
- package/dist/web/lib/browserNotifications.mjs +35 -0
- package/dist/web/lib/browserNotifications.mjs.map +1 -0
- package/dist/web/lib/browserTelemetry.cjs +158 -0
- package/dist/web/lib/browserTelemetry.cjs.map +1 -0
- package/dist/web/lib/browserTelemetry.d.mts +28 -0
- package/dist/web/lib/browserTelemetry.d.mts.map +1 -0
- package/dist/web/lib/browserTelemetry.mjs +154 -0
- package/dist/web/lib/browserTelemetry.mjs.map +1 -0
- package/dist/web/lib/commands.cjs +176 -0
- package/dist/web/lib/commands.cjs.map +1 -0
- package/dist/web/lib/commands.d.mts +53 -0
- package/dist/web/lib/commands.d.mts.map +1 -0
- package/dist/web/lib/commands.mjs +153 -0
- package/dist/web/lib/commands.mjs.map +1 -0
- package/dist/web/lib/composerSubmissions.cjs +20 -0
- package/dist/web/lib/composerSubmissions.cjs.map +1 -0
- package/dist/web/lib/composerSubmissions.d.mts +7 -0
- package/dist/web/lib/composerSubmissions.d.mts.map +1 -0
- package/dist/web/lib/composerSubmissions.mjs +19 -0
- package/dist/web/lib/composerSubmissions.mjs.map +1 -0
- package/dist/web/lib/composition.cjs +403 -0
- package/dist/web/lib/composition.cjs.map +1 -0
- package/dist/web/lib/composition.d.mts +137 -0
- package/dist/web/lib/composition.d.mts.map +1 -0
- package/dist/web/lib/composition.mjs +392 -0
- package/dist/web/lib/composition.mjs.map +1 -0
- package/dist/web/lib/contextComposition.cjs +132 -0
- package/dist/web/lib/contextComposition.cjs.map +1 -0
- package/dist/web/lib/contextComposition.d.mts +75 -0
- package/dist/web/lib/contextComposition.d.mts.map +1 -0
- package/dist/web/lib/contextComposition.mjs +127 -0
- package/dist/web/lib/contextComposition.mjs.map +1 -0
- package/dist/web/lib/contextDetailApi.cjs +61 -0
- package/dist/web/lib/contextDetailApi.cjs.map +1 -0
- package/dist/web/lib/contextDetailApi.d.mts +12 -0
- package/dist/web/lib/contextDetailApi.d.mts.map +1 -0
- package/dist/web/lib/contextDetailApi.mjs +61 -0
- package/dist/web/lib/contextDetailApi.mjs.map +1 -0
- package/dist/web/lib/dashboardRenderers.cjs +9 -0
- package/dist/web/lib/dashboardRenderers.cjs.map +1 -0
- package/dist/web/lib/dashboardRenderers.d.mts +12 -0
- package/dist/web/lib/dashboardRenderers.d.mts.map +1 -0
- package/dist/web/lib/dashboardRenderers.mjs +9 -0
- package/dist/web/lib/dashboardRenderers.mjs.map +1 -0
- package/dist/web/lib/dashboardRoute.cjs +27 -0
- package/dist/web/lib/dashboardRoute.cjs.map +1 -0
- package/dist/web/lib/dashboardRoute.d.mts +29 -0
- package/dist/web/lib/dashboardRoute.d.mts.map +1 -0
- package/dist/web/lib/dashboardRoute.mjs +26 -0
- package/dist/web/lib/dashboardRoute.mjs.map +1 -0
- package/dist/web/lib/dashboardTranscript.cjs +15 -0
- package/dist/web/lib/dashboardTranscript.cjs.map +1 -0
- package/dist/web/lib/dashboardTranscript.d.mts +6 -0
- package/dist/web/lib/dashboardTranscript.d.mts.map +1 -0
- package/dist/web/lib/dashboardTranscript.mjs +14 -0
- package/dist/web/lib/dashboardTranscript.mjs.map +1 -0
- package/dist/web/lib/devProxyApi.cjs +74 -0
- package/dist/web/lib/devProxyApi.cjs.map +1 -0
- package/dist/web/lib/devProxyApi.d.mts +21 -0
- package/dist/web/lib/devProxyApi.d.mts.map +1 -0
- package/dist/web/lib/devProxyApi.mjs +72 -0
- package/dist/web/lib/devProxyApi.mjs.map +1 -0
- package/dist/web/lib/fileMentions.cjs +30 -0
- package/dist/web/lib/fileMentions.cjs.map +1 -0
- package/dist/web/lib/fileMentions.d.mts +13 -0
- package/dist/web/lib/fileMentions.d.mts.map +1 -0
- package/dist/web/lib/fileMentions.mjs +29 -0
- package/dist/web/lib/fileMentions.mjs.map +1 -0
- package/dist/web/lib/hubApi.cjs +283 -0
- package/dist/web/lib/hubApi.cjs.map +1 -0
- package/dist/web/lib/hubApi.d.mts +109 -0
- package/dist/web/lib/hubApi.d.mts.map +1 -0
- package/dist/web/lib/hubApi.mjs +268 -0
- package/dist/web/lib/hubApi.mjs.map +1 -0
- package/dist/web/lib/leaderTree.cjs +150 -0
- package/dist/web/lib/leaderTree.cjs.map +1 -0
- package/dist/web/lib/leaderTree.d.mts +41 -0
- package/dist/web/lib/leaderTree.d.mts.map +1 -0
- package/dist/web/lib/leaderTree.mjs +149 -0
- package/dist/web/lib/leaderTree.mjs.map +1 -0
- package/dist/web/lib/livePush.cjs +97 -0
- package/dist/web/lib/livePush.cjs.map +1 -0
- package/dist/web/lib/livePush.d.mts +10 -0
- package/dist/web/lib/livePush.d.mts.map +1 -0
- package/dist/web/lib/livePush.mjs +94 -0
- package/dist/web/lib/livePush.mjs.map +1 -0
- package/dist/web/lib/modelContextAdapter.cjs +63 -0
- package/dist/web/lib/modelContextAdapter.cjs.map +1 -0
- package/dist/web/lib/modelContextAdapter.d.mts +11 -0
- package/dist/web/lib/modelContextAdapter.d.mts.map +1 -0
- package/dist/web/lib/modelContextAdapter.mjs +62 -0
- package/dist/web/lib/modelContextAdapter.mjs.map +1 -0
- package/dist/web/lib/piTransport.cjs +103 -0
- package/dist/web/lib/piTransport.cjs.map +1 -0
- package/dist/web/lib/piTransport.d.mts +8 -0
- package/dist/web/lib/piTransport.d.mts.map +1 -0
- package/dist/web/lib/piTransport.mjs +102 -0
- package/dist/web/lib/piTransport.mjs.map +1 -0
- package/dist/web/lib/pluginCompositions.cjs +57 -0
- package/dist/web/lib/pluginCompositions.cjs.map +1 -0
- package/dist/web/lib/pluginCompositions.d.mts +37 -0
- package/dist/web/lib/pluginCompositions.d.mts.map +1 -0
- package/dist/web/lib/pluginCompositions.mjs +52 -0
- package/dist/web/lib/pluginCompositions.mjs.map +1 -0
- package/dist/web/lib/pluginRegistry.cjs +675 -0
- package/dist/web/lib/pluginRegistry.cjs.map +1 -0
- package/dist/web/lib/pluginRegistry.d.mts +155 -0
- package/dist/web/lib/pluginRegistry.d.mts.map +1 -0
- package/dist/web/lib/pluginRegistry.mjs +633 -0
- package/dist/web/lib/pluginRegistry.mjs.map +1 -0
- package/dist/web/lib/pluginScopes.cjs +48 -0
- package/dist/web/lib/pluginScopes.cjs.map +1 -0
- package/dist/web/lib/pluginScopes.d.mts +8 -0
- package/dist/web/lib/pluginScopes.d.mts.map +1 -0
- package/dist/web/lib/pluginScopes.mjs +47 -0
- package/dist/web/lib/pluginScopes.mjs.map +1 -0
- package/dist/web/lib/pluginSlotProps.cjs +83 -0
- package/dist/web/lib/pluginSlotProps.cjs.map +1 -0
- package/dist/web/lib/pluginSlotProps.d.mts +21 -0
- package/dist/web/lib/pluginSlotProps.d.mts.map +1 -0
- package/dist/web/lib/pluginSlotProps.mjs +82 -0
- package/dist/web/lib/pluginSlotProps.mjs.map +1 -0
- package/dist/web/lib/promptFocus.cjs +30 -0
- package/dist/web/lib/promptFocus.cjs.map +1 -0
- package/dist/web/lib/promptFocus.d.mts +7 -0
- package/dist/web/lib/promptFocus.d.mts.map +1 -0
- package/dist/web/lib/promptFocus.mjs +29 -0
- package/dist/web/lib/promptFocus.mjs.map +1 -0
- package/dist/web/lib/protocolHubSocket.cjs +107 -0
- package/dist/web/lib/protocolHubSocket.cjs.map +1 -0
- package/dist/web/lib/protocolHubSocket.d.mts +18 -0
- package/dist/web/lib/protocolHubSocket.d.mts.map +1 -0
- package/dist/web/lib/protocolHubSocket.mjs +107 -0
- package/dist/web/lib/protocolHubSocket.mjs.map +1 -0
- package/dist/web/lib/protocolTimeline.cjs +86 -0
- package/dist/web/lib/protocolTimeline.cjs.map +1 -0
- package/dist/web/lib/protocolTimeline.d.mts +9 -0
- package/dist/web/lib/protocolTimeline.d.mts.map +1 -0
- package/dist/web/lib/protocolTimeline.mjs +85 -0
- package/dist/web/lib/protocolTimeline.mjs.map +1 -0
- package/dist/web/lib/qrMatrix.cjs +37 -0
- package/dist/web/lib/qrMatrix.cjs.map +1 -0
- package/dist/web/lib/qrMatrix.d.mts +5 -0
- package/dist/web/lib/qrMatrix.d.mts.map +1 -0
- package/dist/web/lib/qrMatrix.mjs +35 -0
- package/dist/web/lib/qrMatrix.mjs.map +1 -0
- package/dist/web/lib/remoteApi.cjs +100 -0
- package/dist/web/lib/remoteApi.cjs.map +1 -0
- package/dist/web/lib/remoteApi.d.mts +45 -0
- package/dist/web/lib/remoteApi.d.mts.map +1 -0
- package/dist/web/lib/remoteApi.mjs +92 -0
- package/dist/web/lib/remoteApi.mjs.map +1 -0
- package/dist/web/lib/sealedSession.cjs +81 -0
- package/dist/web/lib/sealedSession.cjs.map +1 -0
- package/dist/web/lib/sealedSession.d.mts +24 -0
- package/dist/web/lib/sealedSession.d.mts.map +1 -0
- package/dist/web/lib/sealedSession.mjs +75 -0
- package/dist/web/lib/sealedSession.mjs.map +1 -0
- package/dist/web/lib/sessionActivityRenderer.cjs +19 -0
- package/dist/web/lib/sessionActivityRenderer.cjs.map +1 -0
- package/dist/web/lib/sessionActivityRenderer.d.mts +10 -0
- package/dist/web/lib/sessionActivityRenderer.d.mts.map +1 -0
- package/dist/web/lib/sessionActivityRenderer.mjs +17 -0
- package/dist/web/lib/sessionActivityRenderer.mjs.map +1 -0
- package/dist/web/lib/sessionAsset.cjs +45 -0
- package/dist/web/lib/sessionAsset.cjs.map +1 -0
- package/dist/web/lib/sessionAsset.d.mts +17 -0
- package/dist/web/lib/sessionAsset.d.mts.map +1 -0
- package/dist/web/lib/sessionAsset.mjs +44 -0
- package/dist/web/lib/sessionAsset.mjs.map +1 -0
- package/dist/web/lib/sessionAvatar.cjs +18 -0
- package/dist/web/lib/sessionAvatar.cjs.map +1 -0
- package/dist/web/lib/sessionAvatar.d.mts +10 -0
- package/dist/web/lib/sessionAvatar.d.mts.map +1 -0
- package/dist/web/lib/sessionAvatar.mjs +18 -0
- package/dist/web/lib/sessionAvatar.mjs.map +1 -0
- package/dist/web/lib/sessionMcpApi.cjs +120 -0
- package/dist/web/lib/sessionMcpApi.cjs.map +1 -0
- package/dist/web/lib/sessionMcpApi.d.mts +27 -0
- package/dist/web/lib/sessionMcpApi.d.mts.map +1 -0
- package/dist/web/lib/sessionMcpApi.mjs +114 -0
- package/dist/web/lib/sessionMcpApi.mjs.map +1 -0
- package/dist/web/lib/sessionMcpPrompt.cjs +24 -0
- package/dist/web/lib/sessionMcpPrompt.cjs.map +1 -0
- package/dist/web/lib/sessionMcpPrompt.mjs +23 -0
- package/dist/web/lib/sessionMcpPrompt.mjs.map +1 -0
- package/dist/web/lib/sessionModel.cjs +970 -0
- package/dist/web/lib/sessionModel.cjs.map +1 -0
- package/dist/web/lib/sessionModel.d.mts +254 -0
- package/dist/web/lib/sessionModel.d.mts.map +1 -0
- package/dist/web/lib/sessionModel.mjs +958 -0
- package/dist/web/lib/sessionModel.mjs.map +1 -0
- package/dist/web/lib/sessionProtocolCommands.cjs +196 -0
- package/dist/web/lib/sessionProtocolCommands.cjs.map +1 -0
- package/dist/web/lib/sessionProtocolCommands.d.mts +15 -0
- package/dist/web/lib/sessionProtocolCommands.d.mts.map +1 -0
- package/dist/web/lib/sessionProtocolCommands.mjs +193 -0
- package/dist/web/lib/sessionProtocolCommands.mjs.map +1 -0
- package/dist/web/lib/sessionRailModel.cjs +107 -0
- package/dist/web/lib/sessionRailModel.cjs.map +1 -0
- package/dist/web/lib/sessionRailModel.d.mts +38 -0
- package/dist/web/lib/sessionRailModel.d.mts.map +1 -0
- package/dist/web/lib/sessionRailModel.mjs +104 -0
- package/dist/web/lib/sessionRailModel.mjs.map +1 -0
- package/dist/web/lib/sessionSummary.cjs +58 -0
- package/dist/web/lib/sessionSummary.cjs.map +1 -0
- package/dist/web/lib/sessionSummary.d.mts +39 -0
- package/dist/web/lib/sessionSummary.d.mts.map +1 -0
- package/dist/web/lib/sessionSummary.mjs +54 -0
- package/dist/web/lib/sessionSummary.mjs.map +1 -0
- package/dist/web/lib/sessionTranscriptRenderer.cjs +19 -0
- package/dist/web/lib/sessionTranscriptRenderer.cjs.map +1 -0
- package/dist/web/lib/sessionTranscriptRenderer.d.mts +11 -0
- package/dist/web/lib/sessionTranscriptRenderer.d.mts.map +1 -0
- package/dist/web/lib/sessionTranscriptRenderer.mjs +17 -0
- package/dist/web/lib/sessionTranscriptRenderer.mjs.map +1 -0
- package/dist/web/lib/settingsApi.cjs +237 -0
- package/dist/web/lib/settingsApi.cjs.map +1 -0
- package/dist/web/lib/settingsApi.d.mts +57 -0
- package/dist/web/lib/settingsApi.d.mts.map +1 -0
- package/dist/web/lib/settingsApi.mjs +230 -0
- package/dist/web/lib/settingsApi.mjs.map +1 -0
- package/dist/web/lib/settingsDraft.cjs +48 -0
- package/dist/web/lib/settingsDraft.cjs.map +1 -0
- package/dist/web/lib/settingsDraft.d.mts +28 -0
- package/dist/web/lib/settingsDraft.d.mts.map +1 -0
- package/dist/web/lib/settingsDraft.mjs +45 -0
- package/dist/web/lib/settingsDraft.mjs.map +1 -0
- package/dist/web/lib/settingsSections.cjs +108 -0
- package/dist/web/lib/settingsSections.cjs.map +1 -0
- package/dist/web/lib/settingsSections.d.mts +36 -0
- package/dist/web/lib/settingsSections.d.mts.map +1 -0
- package/dist/web/lib/settingsSections.mjs +105 -0
- package/dist/web/lib/settingsSections.mjs.map +1 -0
- package/dist/web/lib/statusLine.cjs +82 -0
- package/dist/web/lib/statusLine.cjs.map +1 -0
- package/dist/web/lib/statusLine.d.mts +27 -0
- package/dist/web/lib/statusLine.d.mts.map +1 -0
- package/dist/web/lib/statusLine.mjs +79 -0
- package/dist/web/lib/statusLine.mjs.map +1 -0
- package/dist/web/lib/stepUp.cjs +41 -0
- package/dist/web/lib/stepUp.cjs.map +1 -0
- package/dist/web/lib/stepUp.d.mts +18 -0
- package/dist/web/lib/stepUp.d.mts.map +1 -0
- package/dist/web/lib/stepUp.mjs +41 -0
- package/dist/web/lib/stepUp.mjs.map +1 -0
- package/dist/web/lib/templateCatalog.cjs +123 -0
- package/dist/web/lib/templateCatalog.cjs.map +1 -0
- package/dist/web/lib/templateCatalog.d.mts +38 -0
- package/dist/web/lib/templateCatalog.d.mts.map +1 -0
- package/dist/web/lib/templateCatalog.mjs +118 -0
- package/dist/web/lib/templateCatalog.mjs.map +1 -0
- package/dist/web/lib/threadRenderer.cjs +25 -0
- package/dist/web/lib/threadRenderer.cjs.map +1 -0
- package/dist/web/lib/threadRenderer.d.mts +17 -0
- package/dist/web/lib/threadRenderer.d.mts.map +1 -0
- package/dist/web/lib/threadRenderer.mjs +23 -0
- package/dist/web/lib/threadRenderer.mjs.map +1 -0
- package/dist/web/lib/timelineGroups.cjs +83 -0
- package/dist/web/lib/timelineGroups.cjs.map +1 -0
- package/dist/web/lib/timelineGroups.d.mts +36 -0
- package/dist/web/lib/timelineGroups.d.mts.map +1 -0
- package/dist/web/lib/timelineGroups.mjs +81 -0
- package/dist/web/lib/timelineGroups.mjs.map +1 -0
- package/dist/web/lib/toolCompletionTabs.cjs +98 -0
- package/dist/web/lib/toolCompletionTabs.cjs.map +1 -0
- package/dist/web/lib/toolCompletionTabs.d.mts +14 -0
- package/dist/web/lib/toolCompletionTabs.d.mts.map +1 -0
- package/dist/web/lib/toolCompletionTabs.mjs +98 -0
- package/dist/web/lib/toolCompletionTabs.mjs.map +1 -0
- package/dist/web/lib/toolMessageProps.cjs +19 -0
- package/dist/web/lib/toolMessageProps.cjs.map +1 -0
- package/dist/web/lib/toolMessageProps.d.mts +7 -0
- package/dist/web/lib/toolMessageProps.d.mts.map +1 -0
- package/dist/web/lib/toolMessageProps.mjs +19 -0
- package/dist/web/lib/toolMessageProps.mjs.map +1 -0
- package/dist/web/lib/toolPrompt.cjs +44 -0
- package/dist/web/lib/toolPrompt.cjs.map +1 -0
- package/dist/web/lib/toolPrompt.d.mts +34 -0
- package/dist/web/lib/toolPrompt.d.mts.map +1 -0
- package/dist/web/lib/toolPrompt.mjs +44 -0
- package/dist/web/lib/toolPrompt.mjs.map +1 -0
- package/dist/web/lib/transport.cjs +57 -0
- package/dist/web/lib/transport.cjs.map +1 -0
- package/dist/web/lib/transport.d.mts +40 -0
- package/dist/web/lib/transport.d.mts.map +1 -0
- package/dist/web/lib/transport.mjs +50 -0
- package/dist/web/lib/transport.mjs.map +1 -0
- package/dist/web/lib/useSessionMcp.cjs +65 -0
- package/dist/web/lib/useSessionMcp.cjs.map +1 -0
- package/dist/web/lib/useSessionMcp.d.mts +15 -0
- package/dist/web/lib/useSessionMcp.d.mts.map +1 -0
- package/dist/web/lib/useSessionMcp.mjs +65 -0
- package/dist/web/lib/useSessionMcp.mjs.map +1 -0
- package/dist/web/lib/webauthnClient.cjs +110 -0
- package/dist/web/lib/webauthnClient.cjs.map +1 -0
- package/dist/web/lib/webauthnClient.d.mts +32 -0
- package/dist/web/lib/webauthnClient.d.mts.map +1 -0
- package/dist/web/lib/webauthnClient.mjs +106 -0
- package/dist/web/lib/webauthnClient.mjs.map +1 -0
- package/dist/web/lib/webmcpSimulator.cjs +105 -0
- package/dist/web/lib/webmcpSimulator.cjs.map +1 -0
- package/dist/web/lib/webmcpSimulator.mjs +105 -0
- package/dist/web/lib/webmcpSimulator.mjs.map +1 -0
- package/dist/web/stores/captureStore.cjs +137 -0
- package/dist/web/stores/captureStore.cjs.map +1 -0
- package/dist/web/stores/captureStore.d.mts +13 -0
- package/dist/web/stores/captureStore.d.mts.map +1 -0
- package/dist/web/stores/captureStore.mjs +133 -0
- package/dist/web/stores/captureStore.mjs.map +1 -0
- package/dist/web/stores/composerStore.cjs +390 -0
- package/dist/web/stores/composerStore.cjs.map +1 -0
- package/dist/web/stores/composerStore.d.mts +101 -0
- package/dist/web/stores/composerStore.d.mts.map +1 -0
- package/dist/web/stores/composerStore.mjs +370 -0
- package/dist/web/stores/composerStore.mjs.map +1 -0
- package/dist/web/stores/composerSubmissionStore.cjs +88 -0
- package/dist/web/stores/composerSubmissionStore.cjs.map +1 -0
- package/dist/web/stores/composerSubmissionStore.d.mts +11 -0
- package/dist/web/stores/composerSubmissionStore.d.mts.map +1 -0
- package/dist/web/stores/composerSubmissionStore.mjs +87 -0
- package/dist/web/stores/composerSubmissionStore.mjs.map +1 -0
- package/dist/web/stores/dashboardStateStore.cjs +35 -0
- package/dist/web/stores/dashboardStateStore.cjs.map +1 -0
- package/dist/web/stores/dashboardStateStore.d.mts +11 -0
- package/dist/web/stores/dashboardStateStore.d.mts.map +1 -0
- package/dist/web/stores/dashboardStateStore.mjs +33 -0
- package/dist/web/stores/dashboardStateStore.mjs.map +1 -0
- package/dist/web/stores/devProxyStore.cjs +76 -0
- package/dist/web/stores/devProxyStore.cjs.map +1 -0
- package/dist/web/stores/devProxyStore.d.mts +25 -0
- package/dist/web/stores/devProxyStore.d.mts.map +1 -0
- package/dist/web/stores/devProxyStore.mjs +73 -0
- package/dist/web/stores/devProxyStore.mjs.map +1 -0
- package/dist/web/stores/dialogDraftStore.cjs +38 -0
- package/dist/web/stores/dialogDraftStore.cjs.map +1 -0
- package/dist/web/stores/dialogDraftStore.d.mts +13 -0
- package/dist/web/stores/dialogDraftStore.d.mts.map +1 -0
- package/dist/web/stores/dialogDraftStore.mjs +36 -0
- package/dist/web/stores/dialogDraftStore.mjs.map +1 -0
- package/dist/web/stores/fileLinkModesStore.cjs +20 -0
- package/dist/web/stores/fileLinkModesStore.cjs.map +1 -0
- package/dist/web/stores/fileLinkModesStore.d.mts +5 -0
- package/dist/web/stores/fileLinkModesStore.d.mts.map +1 -0
- package/dist/web/stores/fileLinkModesStore.mjs +20 -0
- package/dist/web/stores/fileLinkModesStore.mjs.map +1 -0
- package/dist/web/stores/menuStore.cjs +85 -0
- package/dist/web/stores/menuStore.cjs.map +1 -0
- package/dist/web/stores/menuStore.d.mts +42 -0
- package/dist/web/stores/menuStore.d.mts.map +1 -0
- package/dist/web/stores/menuStore.mjs +79 -0
- package/dist/web/stores/menuStore.mjs.map +1 -0
- package/dist/web/stores/newSessionStore.cjs +93 -0
- package/dist/web/stores/newSessionStore.cjs.map +1 -0
- package/dist/web/stores/newSessionStore.d.mts +30 -0
- package/dist/web/stores/newSessionStore.d.mts.map +1 -0
- package/dist/web/stores/newSessionStore.mjs +86 -0
- package/dist/web/stores/newSessionStore.mjs.map +1 -0
- package/dist/web/stores/pagedTranscriptStore.cjs +235 -0
- package/dist/web/stores/pagedTranscriptStore.cjs.map +1 -0
- package/dist/web/stores/pagedTranscriptStore.d.mts +12 -0
- package/dist/web/stores/pagedTranscriptStore.d.mts.map +1 -0
- package/dist/web/stores/pagedTranscriptStore.mjs +235 -0
- package/dist/web/stores/pagedTranscriptStore.mjs.map +1 -0
- package/dist/web/stores/paletteStore.cjs +37 -0
- package/dist/web/stores/paletteStore.cjs.map +1 -0
- package/dist/web/stores/paletteStore.d.mts +14 -0
- package/dist/web/stores/paletteStore.d.mts.map +1 -0
- package/dist/web/stores/paletteStore.mjs +34 -0
- package/dist/web/stores/paletteStore.mjs.map +1 -0
- package/dist/web/stores/railDialogStore.cjs +105 -0
- package/dist/web/stores/railDialogStore.cjs.map +1 -0
- package/dist/web/stores/railDialogStore.d.mts +32 -0
- package/dist/web/stores/railDialogStore.d.mts.map +1 -0
- package/dist/web/stores/railDialogStore.mjs +97 -0
- package/dist/web/stores/railDialogStore.mjs.map +1 -0
- package/dist/web/stores/remoteAccessStore.cjs +216 -0
- package/dist/web/stores/remoteAccessStore.cjs.map +1 -0
- package/dist/web/stores/remoteAccessStore.d.mts +48 -0
- package/dist/web/stores/remoteAccessStore.d.mts.map +1 -0
- package/dist/web/stores/remoteAccessStore.mjs +202 -0
- package/dist/web/stores/remoteAccessStore.mjs.map +1 -0
- package/dist/web/stores/sessionChannelHoldsStore.cjs +43 -0
- package/dist/web/stores/sessionChannelHoldsStore.cjs.map +1 -0
- package/dist/web/stores/sessionChannelHoldsStore.d.mts +9 -0
- package/dist/web/stores/sessionChannelHoldsStore.d.mts.map +1 -0
- package/dist/web/stores/sessionChannelHoldsStore.mjs +42 -0
- package/dist/web/stores/sessionChannelHoldsStore.mjs.map +1 -0
- package/dist/web/stores/sessionStore.cjs +610 -0
- package/dist/web/stores/sessionStore.cjs.map +1 -0
- package/dist/web/stores/sessionStore.d.mts +116 -0
- package/dist/web/stores/sessionStore.d.mts.map +1 -0
- package/dist/web/stores/sessionStore.mjs +568 -0
- package/dist/web/stores/sessionStore.mjs.map +1 -0
- package/dist/web/stores/sessionsStore.cjs +272 -0
- package/dist/web/stores/sessionsStore.cjs.map +1 -0
- package/dist/web/stores/sessionsStore.d.mts +74 -0
- package/dist/web/stores/sessionsStore.d.mts.map +1 -0
- package/dist/web/stores/sessionsStore.mjs +257 -0
- package/dist/web/stores/sessionsStore.mjs.map +1 -0
- package/dist/web/stores/settingsDraftStore.cjs +138 -0
- package/dist/web/stores/settingsDraftStore.cjs.map +1 -0
- package/dist/web/stores/settingsDraftStore.d.mts +27 -0
- package/dist/web/stores/settingsDraftStore.d.mts.map +1 -0
- package/dist/web/stores/settingsDraftStore.mjs +132 -0
- package/dist/web/stores/settingsDraftStore.mjs.map +1 -0
- package/dist/web/stores/templateStore.cjs +136 -0
- package/dist/web/stores/templateStore.cjs.map +1 -0
- package/dist/web/stores/templateStore.d.mts +20 -0
- package/dist/web/stores/templateStore.d.mts.map +1 -0
- package/dist/web/stores/templateStore.mjs +131 -0
- package/dist/web/stores/templateStore.mjs.map +1 -0
- package/dist/web/stores/themeStore.cjs +42 -0
- package/dist/web/stores/themeStore.cjs.map +1 -0
- package/dist/web/stores/themeStore.d.mts +20 -0
- package/dist/web/stores/themeStore.d.mts.map +1 -0
- package/dist/web/stores/themeStore.mjs +39 -0
- package/dist/web/stores/themeStore.mjs.map +1 -0
- package/dist/web/stores/threadStore.cjs +122 -0
- package/dist/web/stores/threadStore.cjs.map +1 -0
- package/dist/web/stores/threadStore.d.mts +24 -0
- package/dist/web/stores/threadStore.d.mts.map +1 -0
- package/dist/web/stores/threadStore.mjs +114 -0
- package/dist/web/stores/threadStore.mjs.map +1 -0
- package/dist/web/stores/toolPromptStore.cjs +15 -0
- package/dist/web/stores/toolPromptStore.cjs.map +1 -0
- package/dist/web/stores/toolPromptStore.d.mts +23 -0
- package/dist/web/stores/toolPromptStore.d.mts.map +1 -0
- package/dist/web/stores/toolPromptStore.mjs +14 -0
- package/dist/web/stores/toolPromptStore.mjs.map +1 -0
- package/dist/web/stores/transientTabsStore.cjs +66 -0
- package/dist/web/stores/transientTabsStore.cjs.map +1 -0
- package/dist/web/stores/transientTabsStore.d.mts +21 -0
- package/dist/web/stores/transientTabsStore.d.mts.map +1 -0
- package/dist/web/stores/transientTabsStore.mjs +59 -0
- package/dist/web/stores/transientTabsStore.mjs.map +1 -0
- package/dist/web/stores/uiStore.cjs +47 -0
- package/dist/web/stores/uiStore.cjs.map +1 -0
- package/dist/web/stores/uiStore.d.mts +18 -0
- package/dist/web/stores/uiStore.d.mts.map +1 -0
- package/dist/web/stores/uiStore.mjs +45 -0
- package/dist/web/stores/uiStore.mjs.map +1 -0
- package/dist/web/stores/useOpenTab.cjs +31 -0
- package/dist/web/stores/useOpenTab.cjs.map +1 -0
- package/dist/web/stores/useOpenTab.d.mts +9 -0
- package/dist/web/stores/useOpenTab.d.mts.map +1 -0
- package/dist/web/stores/useOpenTab.mjs +31 -0
- package/dist/web/stores/useOpenTab.mjs.map +1 -0
- package/dist/web/stores/usePluginSlotProps.cjs +115 -0
- package/dist/web/stores/usePluginSlotProps.cjs.map +1 -0
- package/dist/web/stores/usePluginSlotProps.d.mts +6 -0
- package/dist/web/stores/usePluginSlotProps.d.mts.map +1 -0
- package/dist/web/stores/usePluginSlotProps.mjs +115 -0
- package/dist/web/stores/usePluginSlotProps.mjs.map +1 -0
- package/dist/web/stores/useToolPrompt.cjs +42 -0
- package/dist/web/stores/useToolPrompt.cjs.map +1 -0
- package/dist/web/stores/useToolPrompt.d.mts +14 -0
- package/dist/web/stores/useToolPrompt.d.mts.map +1 -0
- package/dist/web/stores/useToolPrompt.mjs +42 -0
- package/dist/web/stores/useToolPrompt.mjs.map +1 -0
- package/dist/web/stores/useWebPluginRegistry.cjs +11 -0
- package/dist/web/stores/useWebPluginRegistry.cjs.map +1 -0
- package/dist/web/stores/useWebPluginRegistry.d.mts +5 -0
- package/dist/web/stores/useWebPluginRegistry.d.mts.map +1 -0
- package/dist/web/stores/useWebPluginRegistry.mjs +11 -0
- package/dist/web/stores/useWebPluginRegistry.mjs.map +1 -0
- package/dist/web/stores/workspaceAdmissionStore.cjs +67 -0
- package/dist/web/stores/workspaceAdmissionStore.cjs.map +1 -0
- package/dist/web/stores/workspaceAdmissionStore.d.mts +24 -0
- package/dist/web/stores/workspaceAdmissionStore.d.mts.map +1 -0
- package/dist/web/stores/workspaceAdmissionStore.mjs +64 -0
- package/dist/web/stores/workspaceAdmissionStore.mjs.map +1 -0
- package/dist/web/stores/workspacesStore.cjs +83 -0
- package/dist/web/stores/workspacesStore.cjs.map +1 -0
- package/dist/web/stores/workspacesStore.d.mts +17 -0
- package/dist/web/stores/workspacesStore.d.mts.map +1 -0
- package/dist/web/stores/workspacesStore.mjs +78 -0
- package/dist/web/stores/workspacesStore.mjs.map +1 -0
- package/llms.txt +3 -0
- package/package.json +107 -0
- package/styles/dashboard.css +2 -0
- package/styles/preview.css +3 -0
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
import { useDashboardState } from "../../stores/dashboardStateStore.mjs";
|
|
2
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { Button, ChevronUpIcon, Dialog, DialogBody, DialogContent, DialogHeader, DialogTitle, RefreshIcon, TrashIcon } from "@agimon-ai/po-web-components";
|
|
4
|
+
//#region src/web/features/session/QueueSheet.tsx
|
|
5
|
+
function QueueSheet({ sessionId, count, disabled = false, entries, onClear, onDelete, onPromote, onResume, operationId, paused = false }) {
|
|
6
|
+
const key = JSON.stringify(["queue", sessionId]);
|
|
7
|
+
const [open, setOpen] = useDashboardState(`${key}/open`, false);
|
|
8
|
+
const [pending, setPending, pendingState] = useDashboardState(`${key}/pending`, null);
|
|
9
|
+
const [error, setError] = useDashboardState(`${key}/error`, null);
|
|
10
|
+
const [clearAcknowledged, setClearAcknowledged] = useDashboardState(`${key}/cleared`, false);
|
|
11
|
+
const unlisted = Math.max(0, count - entries.length);
|
|
12
|
+
const label = `${String(count)} queued message${count === 1 ? "" : "s"}`;
|
|
13
|
+
if (count === 0 && pending === null && (open || clearAcknowledged) && (clearAcknowledged || error === null)) {
|
|
14
|
+
setClearAcknowledged(false);
|
|
15
|
+
setOpen(false);
|
|
16
|
+
}
|
|
17
|
+
const act = async (action, command) => {
|
|
18
|
+
if (disabled || pendingState.state !== null) return;
|
|
19
|
+
setPending(action);
|
|
20
|
+
setError(null);
|
|
21
|
+
setClearAcknowledged(false);
|
|
22
|
+
try {
|
|
23
|
+
await command();
|
|
24
|
+
if (action === "clear") setClearAcknowledged(true);
|
|
25
|
+
} catch (failure) {
|
|
26
|
+
setError(failure instanceof Error ? failure.message : String(failure));
|
|
27
|
+
} finally {
|
|
28
|
+
setPending(null);
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
const actionDisabled = disabled || pending !== null;
|
|
32
|
+
if (count === 0 && !open) return null;
|
|
33
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [count > 0 ? /* @__PURE__ */ jsxs(Button, {
|
|
34
|
+
variant: "subtle",
|
|
35
|
+
size: "sm",
|
|
36
|
+
"data-testid": "composer-queued",
|
|
37
|
+
"aria-haspopup": "dialog",
|
|
38
|
+
"aria-expanded": open,
|
|
39
|
+
onClick: () => setOpen(true),
|
|
40
|
+
className: "mb-2 h-7 w-full justify-between rounded-md border border-doom-border-soft bg-doom-panel/60 px-2.5 text-base font-medium text-doom-dim hover:text-doom-hi",
|
|
41
|
+
children: [/* @__PURE__ */ jsxs("span", {
|
|
42
|
+
className: "flex min-w-0 items-center gap-2",
|
|
43
|
+
children: [
|
|
44
|
+
/* @__PURE__ */ jsx(RefreshIcon, { className: "h-3 w-3 shrink-0 text-doom-cyan" }),
|
|
45
|
+
/* @__PURE__ */ jsx("span", {
|
|
46
|
+
className: "shrink-0 font-semibold text-doom-hi",
|
|
47
|
+
children: label
|
|
48
|
+
}),
|
|
49
|
+
/* @__PURE__ */ jsx("span", {
|
|
50
|
+
className: "min-w-0 truncate text-sm font-normal text-doom-dim",
|
|
51
|
+
children: paused ? "paused until resumed" : "waiting for the current run"
|
|
52
|
+
})
|
|
53
|
+
]
|
|
54
|
+
}), /* @__PURE__ */ jsxs("span", {
|
|
55
|
+
className: "flex shrink-0 items-center gap-1 text-sm text-doom-dim",
|
|
56
|
+
children: ["view queue", /* @__PURE__ */ jsx(ChevronUpIcon, { className: "h-3 w-3" })]
|
|
57
|
+
})]
|
|
58
|
+
}) : null, /* @__PURE__ */ jsx(Dialog, {
|
|
59
|
+
open,
|
|
60
|
+
onOpenChange: setOpen,
|
|
61
|
+
children: /* @__PURE__ */ jsxs(DialogContent, {
|
|
62
|
+
width: "lg",
|
|
63
|
+
"data-testid": "queue-sheet",
|
|
64
|
+
"aria-describedby": void 0,
|
|
65
|
+
className: "top-auto bottom-0 left-1/2 max-h-[min(72dvh,560px)] !w-full !max-w-2xl -translate-x-1/2 translate-y-0 rounded-t-xl rounded-b-none border-b-0 data-[state=open]:animate-none",
|
|
66
|
+
children: [
|
|
67
|
+
/* @__PURE__ */ jsx("span", {
|
|
68
|
+
"aria-hidden": true,
|
|
69
|
+
className: "mx-auto mt-2 h-1 w-10 shrink-0 rounded-full bg-doom-border"
|
|
70
|
+
}),
|
|
71
|
+
/* @__PURE__ */ jsxs(DialogHeader, {
|
|
72
|
+
dismissible: true,
|
|
73
|
+
closeLabel: "close queued messages",
|
|
74
|
+
className: "py-2.5",
|
|
75
|
+
children: [/* @__PURE__ */ jsx(DialogTitle, { children: "queued messages" }), /* @__PURE__ */ jsx("span", {
|
|
76
|
+
className: "text-sm text-doom-dim",
|
|
77
|
+
children: paused ? "paused" : `${label} waiting`
|
|
78
|
+
})]
|
|
79
|
+
}),
|
|
80
|
+
/* @__PURE__ */ jsxs(DialogBody, {
|
|
81
|
+
className: "overflow-y-auto p-2 pb-[max(0.75rem,env(safe-area-inset-bottom))]",
|
|
82
|
+
children: [
|
|
83
|
+
/* @__PURE__ */ jsxs("ol", {
|
|
84
|
+
className: "flex flex-col gap-1.5",
|
|
85
|
+
children: [entries.map((entry, index) => /* @__PURE__ */ jsxs("li", {
|
|
86
|
+
"data-testid": "queue-sheet-item",
|
|
87
|
+
className: "flex min-w-0 gap-3 rounded-md border border-doom-border-soft bg-doom-deep px-3 py-2.5",
|
|
88
|
+
children: [
|
|
89
|
+
/* @__PURE__ */ jsx("span", {
|
|
90
|
+
className: "pt-0.5 text-xs font-semibold text-doom-cyan",
|
|
91
|
+
children: String(index + 1).padStart(2, "0")
|
|
92
|
+
}),
|
|
93
|
+
/* @__PURE__ */ jsxs("div", {
|
|
94
|
+
className: "min-w-0 flex-1",
|
|
95
|
+
children: [
|
|
96
|
+
/* @__PURE__ */ jsx("p", {
|
|
97
|
+
className: "whitespace-pre-wrap break-words text-lg leading-relaxed text-doom-text",
|
|
98
|
+
children: entry.text
|
|
99
|
+
}),
|
|
100
|
+
entry.images && entry.images.length > 0 ? /* @__PURE__ */ jsxs("p", {
|
|
101
|
+
className: "mt-1 text-sm text-doom-dim",
|
|
102
|
+
children: [
|
|
103
|
+
entry.images.length,
|
|
104
|
+
" image",
|
|
105
|
+
entry.images.length === 1 ? "" : "s",
|
|
106
|
+
" attached"
|
|
107
|
+
]
|
|
108
|
+
}) : null,
|
|
109
|
+
entry.disposition === "uncertain" ? /* @__PURE__ */ jsx("p", {
|
|
110
|
+
className: "mt-1 text-sm text-doom-red",
|
|
111
|
+
children: "delivery uncertain; not resending automatically"
|
|
112
|
+
}) : null
|
|
113
|
+
]
|
|
114
|
+
}),
|
|
115
|
+
entry.disposition === "pending" && onPromote ? /* @__PURE__ */ jsx(Button, {
|
|
116
|
+
variant: "ghost",
|
|
117
|
+
size: "sm",
|
|
118
|
+
"data-testid": `queue-steer-${String(index)}`,
|
|
119
|
+
"aria-label": `${operationId === void 0 ? "send now" : "steer"} queued message ${String(index + 1)}`,
|
|
120
|
+
disabled: actionDisabled,
|
|
121
|
+
onClick: () => void act(`send:${entry.id}`, () => onPromote(entry.id, operationId)),
|
|
122
|
+
className: "h-7 shrink-0 text-doom-cyan",
|
|
123
|
+
children: pending === `send:${entry.id}` ? "sending…" : operationId === void 0 ? "send now" : "steer"
|
|
124
|
+
}) : null,
|
|
125
|
+
/* @__PURE__ */ jsx(Button, {
|
|
126
|
+
variant: "ghost",
|
|
127
|
+
size: "icon",
|
|
128
|
+
"data-testid": `queue-delete-${String(index)}`,
|
|
129
|
+
"aria-label": `delete queued message ${String(index + 1)}`,
|
|
130
|
+
title: entry.disposition === "uncertain" ? "Delivery is uncertain; refresh the session first" : entry.disposition === "handoff" ? "This message is already being delivered" : "Delete this message",
|
|
131
|
+
disabled: actionDisabled || entry.disposition !== "pending",
|
|
132
|
+
onClick: () => void act(`delete:${entry.id}`, () => onDelete(entry.id)),
|
|
133
|
+
className: "h-7 w-7 shrink-0 text-doom-faint hover:text-doom-red",
|
|
134
|
+
children: /* @__PURE__ */ jsx(TrashIcon, { className: "h-3.5 w-3.5" })
|
|
135
|
+
})
|
|
136
|
+
]
|
|
137
|
+
}, entry.id)), unlisted > 0 ? /* @__PURE__ */ jsxs("li", {
|
|
138
|
+
"data-testid": "queue-sheet-unlisted",
|
|
139
|
+
className: "rounded-md border border-dashed border-doom-border px-3 py-2.5 text-sm text-doom-dim",
|
|
140
|
+
children: [
|
|
141
|
+
unlisted,
|
|
142
|
+
" more queued message",
|
|
143
|
+
unlisted === 1 ? " is" : "s are",
|
|
144
|
+
" waiting in the session. Their text is not available in this browser."
|
|
145
|
+
]
|
|
146
|
+
}) : null]
|
|
147
|
+
}),
|
|
148
|
+
paused && onResume ? /* @__PURE__ */ jsx(Button, {
|
|
149
|
+
variant: "subtle",
|
|
150
|
+
size: "sm",
|
|
151
|
+
"data-testid": "queue-resume",
|
|
152
|
+
className: "mt-2 w-full",
|
|
153
|
+
disabled: actionDisabled,
|
|
154
|
+
onClick: () => void act("resume", onResume),
|
|
155
|
+
children: pending === "resume" ? "resuming…" : "resume queued messages"
|
|
156
|
+
}) : null,
|
|
157
|
+
count > 0 ? /* @__PURE__ */ jsx(Button, {
|
|
158
|
+
variant: "danger",
|
|
159
|
+
size: "sm",
|
|
160
|
+
"data-testid": "queue-clear",
|
|
161
|
+
className: "mt-2 w-full",
|
|
162
|
+
disabled: actionDisabled,
|
|
163
|
+
onClick: () => void act("clear", onClear),
|
|
164
|
+
children: pending === "clear" ? "deleting…" : "delete all queued messages"
|
|
165
|
+
}) : null,
|
|
166
|
+
pending !== null ? /* @__PURE__ */ jsx("output", {
|
|
167
|
+
className: "mt-2 block text-sm text-doom-dim",
|
|
168
|
+
children: "waiting for the session to acknowledge this action…"
|
|
169
|
+
}) : null,
|
|
170
|
+
error !== null ? /* @__PURE__ */ jsx("p", {
|
|
171
|
+
role: "alert",
|
|
172
|
+
"data-testid": "queue-error",
|
|
173
|
+
className: "mt-2 text-sm text-doom-red",
|
|
174
|
+
children: error
|
|
175
|
+
}) : clearAcknowledged && count > 0 ? /* @__PURE__ */ jsx("output", {
|
|
176
|
+
"data-testid": "queue-clear-remaining",
|
|
177
|
+
className: "mt-2 block text-sm text-doom-dim",
|
|
178
|
+
children: "Messages remain or await confirmation. Messages being delivered or with uncertain delivery cannot be cleared."
|
|
179
|
+
}) : null
|
|
180
|
+
]
|
|
181
|
+
})
|
|
182
|
+
]
|
|
183
|
+
})
|
|
184
|
+
})] });
|
|
185
|
+
}
|
|
186
|
+
//#endregion
|
|
187
|
+
export { QueueSheet };
|
|
188
|
+
|
|
189
|
+
//# sourceMappingURL=QueueSheet.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QueueSheet.mjs","names":[],"sources":["../../../../src/web/features/session/QueueSheet.tsx"],"sourcesContent":["import {\n Button,\n ChevronUpIcon,\n Dialog,\n DialogBody,\n DialogContent,\n DialogHeader,\n DialogTitle,\n RefreshIcon,\n TrashIcon,\n} from '@agimon-ai/po-web-components';\n\nimport type { QueuedEntry } from '../../lib/sessionModel';\nimport { useDashboardState } from '../../stores/dashboardStateStore';\n\nexport function QueueSheet({\n sessionId,\n count,\n disabled = false,\n entries,\n onClear,\n onDelete,\n onPromote,\n onResume,\n operationId,\n paused = false,\n}: {\n sessionId: string | null;\n count: number;\n disabled?: boolean;\n entries: readonly QueuedEntry[];\n onClear: () => Promise<void>;\n onDelete: (id: string) => Promise<void>;\n onPromote?: (id: string, operationId?: string) => Promise<void>;\n onResume?: () => Promise<void>;\n operationId?: string;\n paused?: boolean;\n}) {\n const key = JSON.stringify(['queue', sessionId]);\n const [open, setOpen] = useDashboardState(`${key}/open`, false);\n const [pending, setPending, pendingState] = useDashboardState<string | null>(`${key}/pending`, null);\n const [error, setError] = useDashboardState<string | null>(`${key}/error`, null);\n const [clearAcknowledged, setClearAcknowledged] = useDashboardState(`${key}/cleared`, false);\n const unlisted = Math.max(0, count - entries.length);\n const label = `${String(count)} queued message${count === 1 ? '' : 's'}`;\n\n // Automatic delivery closes an empty queue, but explicit actions still need acknowledgement.\n if (count === 0 && pending === null && (open || clearAcknowledged) && (clearAcknowledged || error === null)) {\n setClearAcknowledged(false);\n setOpen(false);\n }\n\n const act = async (action: string, command: () => Promise<void>): Promise<void> => {\n if (disabled || pendingState.state !== null) return;\n setPending(action);\n setError(null);\n setClearAcknowledged(false);\n try {\n await command();\n if (action === 'clear') setClearAcknowledged(true);\n } catch (failure) {\n setError(failure instanceof Error ? failure.message : String(failure));\n } finally {\n setPending(null);\n }\n };\n const actionDisabled = disabled || pending !== null;\n\n if (count === 0 && !open) return null;\n\n return (\n <>\n {count > 0 ? (\n <Button\n variant=\"subtle\"\n size=\"sm\"\n data-testid=\"composer-queued\"\n aria-haspopup=\"dialog\"\n aria-expanded={open}\n onClick={() => setOpen(true)}\n className=\"mb-2 h-7 w-full justify-between rounded-md border border-doom-border-soft bg-doom-panel/60 px-2.5 text-base font-medium text-doom-dim hover:text-doom-hi\"\n >\n <span className=\"flex min-w-0 items-center gap-2\">\n <RefreshIcon className=\"h-3 w-3 shrink-0 text-doom-cyan\" />\n <span className=\"shrink-0 font-semibold text-doom-hi\">{label}</span>\n <span className=\"min-w-0 truncate text-sm font-normal text-doom-dim\">\n {paused ? 'paused until resumed' : 'waiting for the current run'}\n </span>\n </span>\n <span className=\"flex shrink-0 items-center gap-1 text-sm text-doom-dim\">\n view queue\n <ChevronUpIcon className=\"h-3 w-3\" />\n </span>\n </Button>\n ) : null}\n\n <Dialog open={open} onOpenChange={setOpen}>\n <DialogContent\n width=\"lg\"\n data-testid=\"queue-sheet\"\n aria-describedby={undefined}\n className=\"top-auto bottom-0 left-1/2 max-h-[min(72dvh,560px)] !w-full !max-w-2xl -translate-x-1/2 translate-y-0 rounded-t-xl rounded-b-none border-b-0 data-[state=open]:animate-none\"\n >\n <span aria-hidden className=\"mx-auto mt-2 h-1 w-10 shrink-0 rounded-full bg-doom-border\" />\n <DialogHeader dismissible closeLabel=\"close queued messages\" className=\"py-2.5\">\n <DialogTitle>queued messages</DialogTitle>\n <span className=\"text-sm text-doom-dim\">{paused ? 'paused' : `${label} waiting`}</span>\n </DialogHeader>\n <DialogBody className=\"overflow-y-auto p-2 pb-[max(0.75rem,env(safe-area-inset-bottom))]\">\n <ol className=\"flex flex-col gap-1.5\">\n {entries.map((entry, index) => (\n <li\n key={entry.id}\n data-testid=\"queue-sheet-item\"\n className=\"flex min-w-0 gap-3 rounded-md border border-doom-border-soft bg-doom-deep px-3 py-2.5\"\n >\n <span className=\"pt-0.5 text-xs font-semibold text-doom-cyan\">\n {String(index + 1).padStart(2, '0')}\n </span>\n <div className=\"min-w-0 flex-1\">\n <p className=\"whitespace-pre-wrap break-words text-lg leading-relaxed text-doom-text\">\n {entry.text}\n </p>\n {entry.images && entry.images.length > 0 ? (\n <p className=\"mt-1 text-sm text-doom-dim\">\n {entry.images.length} image{entry.images.length === 1 ? '' : 's'} attached\n </p>\n ) : null}\n {entry.disposition === 'uncertain' ? (\n <p className=\"mt-1 text-sm text-doom-red\">delivery uncertain; not resending automatically</p>\n ) : null}\n </div>\n {entry.disposition === 'pending' && onPromote ? (\n <Button\n variant=\"ghost\"\n size=\"sm\"\n data-testid={`queue-steer-${String(index)}`}\n aria-label={`${operationId === undefined ? 'send now' : 'steer'} queued message ${String(index + 1)}`}\n disabled={actionDisabled}\n onClick={() => void act(`send:${entry.id}`, () => onPromote(entry.id, operationId))}\n className=\"h-7 shrink-0 text-doom-cyan\"\n >\n {pending === `send:${entry.id}` ? 'sending…' : operationId === undefined ? 'send now' : 'steer'}\n </Button>\n ) : null}\n <Button\n variant=\"ghost\"\n size=\"icon\"\n data-testid={`queue-delete-${String(index)}`}\n aria-label={`delete queued message ${String(index + 1)}`}\n title={\n entry.disposition === 'uncertain'\n ? 'Delivery is uncertain; refresh the session first'\n : entry.disposition === 'handoff'\n ? 'This message is already being delivered'\n : 'Delete this message'\n }\n disabled={actionDisabled || entry.disposition !== 'pending'}\n onClick={() => void act(`delete:${entry.id}`, () => onDelete(entry.id))}\n className=\"h-7 w-7 shrink-0 text-doom-faint hover:text-doom-red\"\n >\n <TrashIcon className=\"h-3.5 w-3.5\" />\n </Button>\n </li>\n ))}\n {unlisted > 0 ? (\n <li\n data-testid=\"queue-sheet-unlisted\"\n className=\"rounded-md border border-dashed border-doom-border px-3 py-2.5 text-sm text-doom-dim\"\n >\n {unlisted} more queued message{unlisted === 1 ? ' is' : 's are'} waiting in the session. Their text is\n not available in this browser.\n </li>\n ) : null}\n </ol>\n {paused && onResume ? (\n <Button\n variant=\"subtle\"\n size=\"sm\"\n data-testid=\"queue-resume\"\n className=\"mt-2 w-full\"\n disabled={actionDisabled}\n onClick={() => void act('resume', onResume)}\n >\n {pending === 'resume' ? 'resuming…' : 'resume queued messages'}\n </Button>\n ) : null}\n {count > 0 ? (\n <Button\n variant=\"danger\"\n size=\"sm\"\n data-testid=\"queue-clear\"\n className=\"mt-2 w-full\"\n disabled={actionDisabled}\n onClick={() => void act('clear', onClear)}\n >\n {pending === 'clear' ? 'deleting…' : 'delete all queued messages'}\n </Button>\n ) : null}\n {pending !== null ? (\n <output className=\"mt-2 block text-sm text-doom-dim\">\n waiting for the session to acknowledge this action…\n </output>\n ) : null}\n {error !== null ? (\n <p role=\"alert\" data-testid=\"queue-error\" className=\"mt-2 text-sm text-doom-red\">\n {error}\n </p>\n ) : clearAcknowledged && count > 0 ? (\n <output data-testid=\"queue-clear-remaining\" className=\"mt-2 block text-sm text-doom-dim\">\n Messages remain or await confirmation. Messages being delivered or with uncertain delivery cannot be\n cleared.\n </output>\n ) : null}\n </DialogBody>\n </DialogContent>\n </Dialog>\n </>\n );\n}\n"],"mappings":";;;;AAeA,SAAgB,WAAW,EACzB,WACA,OACA,WAAW,OACX,SACA,SACA,UACA,WACA,UACA,aACA,SAAS,SAYR;CACD,MAAM,MAAM,KAAK,UAAU,CAAC,SAAS,SAAS,CAAC;CAC/C,MAAM,CAAC,MAAM,WAAW,kBAAkB,GAAG,IAAI,QAAQ,KAAK;CAC9D,MAAM,CAAC,SAAS,YAAY,gBAAgB,kBAAiC,GAAG,IAAI,WAAW,IAAI;CACnG,MAAM,CAAC,OAAO,YAAY,kBAAiC,GAAG,IAAI,SAAS,IAAI;CAC/E,MAAM,CAAC,mBAAmB,wBAAwB,kBAAkB,GAAG,IAAI,WAAW,KAAK;CAC3F,MAAM,WAAW,KAAK,IAAI,GAAG,QAAQ,QAAQ,MAAM;CACnD,MAAM,QAAQ,GAAG,OAAO,KAAK,EAAE,iBAAiB,UAAU,IAAI,KAAK;CAGnE,IAAI,UAAU,KAAK,YAAY,SAAS,QAAQ,uBAAuB,qBAAqB,UAAU,OAAO;EAC3G,qBAAqB,KAAK;EAC1B,QAAQ,KAAK;CACf;CAEA,MAAM,MAAM,OAAO,QAAgB,YAAgD;EACjF,IAAI,YAAY,aAAa,UAAU,MAAM;EAC7C,WAAW,MAAM;EACjB,SAAS,IAAI;EACb,qBAAqB,KAAK;EAC1B,IAAI;GACF,MAAM,QAAQ;GACd,IAAI,WAAW,SAAS,qBAAqB,IAAI;EACnD,SAAS,SAAS;GAChB,SAAS,mBAAmB,QAAQ,QAAQ,UAAU,OAAO,OAAO,CAAC;EACvE,UAAU;GACR,WAAW,IAAI;EACjB;CACF;CACA,MAAM,iBAAiB,YAAY,YAAY;CAE/C,IAAI,UAAU,KAAK,CAAC,MAAM,OAAO;CAEjC,OACE,qBAAA,UAAA,EAAA,UAAA,CACG,QAAQ,IACP,qBAAC,QAAD;EACE,SAAQ;EACR,MAAK;EACL,eAAY;EACZ,iBAAc;EACd,iBAAe;EACf,eAAe,QAAQ,IAAI;EAC3B,WAAU;EAPZ,UAAA,CASE,qBAAC,QAAD;GAAM,WAAU;GAAhB,UAAA;IACE,oBAAC,aAAD,EAAa,WAAU,kCAAmC,CAAA;IAC1D,oBAAC,QAAD;KAAM,WAAU;KAAuC,UAAA;IAAY,CAAA;IACnE,oBAAC,QAAD;KAAM,WAAU;KACb,UAAA,SAAS,yBAAyB;IAC/B,CAAA;GACF;EACN,CAAA,GAAA,qBAAC,QAAD;GAAM,WAAU;GAAhB,UAAA,CAAyE,cAEvE,oBAAC,eAAD,EAAe,WAAU,UAAW,CAAA,CAChC;EACA,CAAA,CAAA;CACN,CAAA,IAAA,MAEJ,oBAAC,QAAD;EAAc;EAAM,cAAc;EAChC,UAAA,qBAAC,eAAD;GACE,OAAM;GACN,eAAY;GACZ,oBAAkB,KAAA;GAClB,WAAU;GAJZ,UAAA;IAME,oBAAC,QAAD;KAAM,eAAA;KAAY,WAAU;IAA8D,CAAA;IAC1F,qBAAC,cAAD;KAAc,aAAA;KAAY,YAAW;KAAwB,WAAU;KAAvE,UAAA,CACE,oBAAC,aAAD,EAAA,UAAa,kBAA4B,CAAA,GACzC,oBAAC,QAAD;MAAM,WAAU;MAAyB,UAAA,SAAS,WAAW,GAAG,MAAM;KAAgB,CAAA,CAC1E;;IACd,qBAAC,YAAD;KAAY,WAAU;KAAtB,UAAA;MACE,qBAAC,MAAD;OAAI,WAAU;OAAd,UAAA,CACG,QAAQ,KAAK,OAAO,UACnB,qBAAC,MAAD;QAEE,eAAY;QACZ,WAAU;QAHZ,UAAA;SAKE,oBAAC,QAAD;UAAM,WAAU;UACb,UAAA,OAAO,QAAQ,CAAC,CAAC,CAAC,SAAS,GAAG,GAAG;SAC9B,CAAA;SACN,qBAAC,OAAD;UAAK,WAAU;UAAf,UAAA;WACE,oBAAC,KAAD;YAAG,WAAU;YACV,UAAA,MAAM;WACN,CAAA;WACF,MAAM,UAAU,MAAM,OAAO,SAAS,IACrC,qBAAC,KAAD;YAAG,WAAU;YAAb,UAAA;aACG,MAAM,OAAO;aAAO;aAAO,MAAM,OAAO,WAAW,IAAI,KAAK;aAAI;YAChE;WACD,CAAA,IAAA;WACH,MAAM,gBAAgB,cACrB,oBAAC,KAAD;YAAG,WAAU;YAA6B,UAAA;WAAkD,CAAA,IAC1F;UACD;;SACJ,MAAM,gBAAgB,aAAa,YAClC,oBAAC,QAAD;UACE,SAAQ;UACR,MAAK;UACL,eAAa,eAAe,OAAO,KAAK;UACxC,cAAY,GAAG,gBAAgB,KAAA,IAAY,aAAa,QAAQ,kBAAkB,OAAO,QAAQ,CAAC;UAClG,UAAU;UACV,eAAe,KAAK,IAAI,QAAQ,MAAM,YAAY,UAAU,MAAM,IAAI,WAAW,CAAC;UAClF,WAAU;UAET,UAAA,YAAY,QAAQ,MAAM,OAAO,aAAa,gBAAgB,KAAA,IAAY,aAAa;SAClF,CAAA,IACN;SACJ,oBAAC,QAAD;UACE,SAAQ;UACR,MAAK;UACL,eAAa,gBAAgB,OAAO,KAAK;UACzC,cAAY,yBAAyB,OAAO,QAAQ,CAAC;UACrD,OACE,MAAM,gBAAgB,cAClB,qDACA,MAAM,gBAAgB,YACpB,4CACA;UAER,UAAU,kBAAkB,MAAM,gBAAgB;UAClD,eAAe,KAAK,IAAI,UAAU,MAAM,YAAY,SAAS,MAAM,EAAE,CAAC;UACtE,WAAU;UAEV,UAAA,oBAAC,WAAD,EAAW,WAAU,cAAe,CAAA;SAC9B,CAAA;QACN;OAnDG,GAAA,MAAM,EAmDT,CACL,GACA,WAAW,IACV,qBAAC,MAAD;QACE,eAAY;QACZ,WAAU;QAFZ,UAAA;SAIG;SAAS;SAAqB,aAAa,IAAI,QAAQ;SAAQ;QAE9D;OACF,CAAA,IAAA,IACF;;MACH,UAAU,WACT,oBAAC,QAAD;OACE,SAAQ;OACR,MAAK;OACL,eAAY;OACZ,WAAU;OACV,UAAU;OACV,eAAe,KAAK,IAAI,UAAU,QAAQ;OAEzC,UAAA,YAAY,WAAW,cAAc;MAChC,CAAA,IACN;MACH,QAAQ,IACP,oBAAC,QAAD;OACE,SAAQ;OACR,MAAK;OACL,eAAY;OACZ,WAAU;OACV,UAAU;OACV,eAAe,KAAK,IAAI,SAAS,OAAO;OAEvC,UAAA,YAAY,UAAU,cAAc;MAC/B,CAAA,IACN;MACH,YAAY,OACX,oBAAC,UAAD;OAAQ,WAAU;OAAmC,UAAA;MAE7C,CAAA,IACN;MACH,UAAU,OACT,oBAAC,KAAD;OAAG,MAAK;OAAQ,eAAY;OAAc,WAAU;OACjD,UAAA;MACA,CAAA,IACD,qBAAqB,QAAQ,IAC/B,oBAAC,UAAD;OAAQ,eAAY;OAAwB,WAAU;OAAmC,UAAA;MAGjF,CAAA,IACN;KACM;;GACC;;CACT,CAAA,CACR,EAAA,CAAA;AAEN"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
const require_sessionsStore = require("../../stores/sessionsStore.cjs");
|
|
2
|
+
const require_sessionStore = require("../../stores/sessionStore.cjs");
|
|
3
|
+
let _tanstack_react_store = require("@tanstack/react-store");
|
|
4
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
5
|
+
let _agimon_ai_po_web_components = require("@agimon-ai/po-web-components");
|
|
6
|
+
//#region src/web/features/session/SessionActivity.tsx
|
|
7
|
+
function latestAssistantText(entries) {
|
|
8
|
+
const entry = entries.findLast((item) => item.kind === "assistant" && item.text.trim() !== "");
|
|
9
|
+
return entry?.kind === "assistant" ? entry.text : void 0;
|
|
10
|
+
}
|
|
11
|
+
function status(meta, state) {
|
|
12
|
+
if (meta === void 0) return {
|
|
13
|
+
status: "unavailable",
|
|
14
|
+
tone: "dim"
|
|
15
|
+
};
|
|
16
|
+
if (meta.attach === "refused") return {
|
|
17
|
+
status: "another cockpit holds this session",
|
|
18
|
+
tone: "red"
|
|
19
|
+
};
|
|
20
|
+
if (meta.summary.dormant === true || meta.attach === "closed") return {
|
|
21
|
+
status: "stopped",
|
|
22
|
+
tone: "dim"
|
|
23
|
+
};
|
|
24
|
+
if (meta.attach === "offline" || meta.attach === "detached") return {
|
|
25
|
+
status: "disconnected",
|
|
26
|
+
tone: "red"
|
|
27
|
+
};
|
|
28
|
+
if (meta.attach === "connecting") return {
|
|
29
|
+
status: "connecting",
|
|
30
|
+
tone: "yellow"
|
|
31
|
+
};
|
|
32
|
+
if (meta.summary.awaitingInput) return {
|
|
33
|
+
status: "waiting for your input",
|
|
34
|
+
tone: "yellow"
|
|
35
|
+
};
|
|
36
|
+
if (meta.summary.phase !== "idle" || !state.hasNewerHistory && state.streaming) return {
|
|
37
|
+
status: "working",
|
|
38
|
+
tone: "yellow"
|
|
39
|
+
};
|
|
40
|
+
return {
|
|
41
|
+
status: "idle",
|
|
42
|
+
tone: "green"
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
/** The host's current session state, kept separate from Author request lifecycle. */
|
|
46
|
+
function sessionActivity(meta, state) {
|
|
47
|
+
return {
|
|
48
|
+
...status(meta, state),
|
|
49
|
+
message: state.hasNewerHistory ? "Latest message unavailable while viewing older history." : latestAssistantText(state.entries) ?? "No assistant message in loaded history."
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
function SessionActivity({ sessionId, onOpenConversation }) {
|
|
53
|
+
const state = (0, _tanstack_react_store.useStore)(require_sessionStore.sessionStoreFor(sessionId), (current) => current);
|
|
54
|
+
const activity = sessionActivity((0, _tanstack_react_store.useStore)(require_sessionsStore.sessionsStore, (current) => current.byId[sessionId]), state);
|
|
55
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("section", {
|
|
56
|
+
"data-testid": "session-activity",
|
|
57
|
+
"aria-label": "Session activity",
|
|
58
|
+
className: "space-y-2",
|
|
59
|
+
children: [
|
|
60
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
61
|
+
className: "flex items-center justify-between gap-2 text-sm",
|
|
62
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
63
|
+
className: "flex items-center gap-1.5 text-lg font-semibold text-doom-hi",
|
|
64
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_agimon_ai_po_web_components.Dot, { tone: activity.tone === "dim" ? "neutral" : activity.tone }), "session activity"]
|
|
65
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
66
|
+
className: "truncate text-sm text-doom-dim",
|
|
67
|
+
children: activity.status
|
|
68
|
+
})]
|
|
69
|
+
}),
|
|
70
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
71
|
+
className: "max-h-[5.5rem] overflow-y-auto text-base leading-snug break-words text-doom-text",
|
|
72
|
+
children: activity.message
|
|
73
|
+
}),
|
|
74
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_agimon_ai_po_web_components.Button, {
|
|
75
|
+
variant: "ghost",
|
|
76
|
+
size: "sm",
|
|
77
|
+
className: "h-auto px-0 text-doom-dim hover:text-doom-hi",
|
|
78
|
+
onClick: onOpenConversation,
|
|
79
|
+
children: "open conversation"
|
|
80
|
+
})
|
|
81
|
+
]
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
//#endregion
|
|
85
|
+
exports.SessionActivity = SessionActivity;
|
|
86
|
+
exports.sessionActivity = sessionActivity;
|
|
87
|
+
|
|
88
|
+
//# sourceMappingURL=SessionActivity.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionActivity.cjs","names":["useStore","sessionStoreFor","sessionsStore","Dot","Button"],"sources":["../../../../src/web/features/session/SessionActivity.tsx"],"sourcesContent":["import { Button, Dot } from '@agimon-ai/po-web-components';\nimport { useStore } from '@tanstack/react-store';\n\nimport type { SessionState, TimelineEntry } from '../../lib/sessionModel';\nimport type { SessionMeta } from '../../stores/sessionsStore';\nimport { sessionsStore } from '../../stores/sessionsStore';\nimport { sessionStoreFor } from '../../stores/sessionStore';\n\nexport interface SessionActivityView {\n status: string;\n tone: 'yellow' | 'green' | 'red' | 'dim';\n message: string;\n}\n\nfunction latestAssistantText(entries: readonly TimelineEntry[]): string | undefined {\n const entry = entries.findLast((item) => item.kind === 'assistant' && item.text.trim() !== '');\n return entry?.kind === 'assistant' ? entry.text : undefined;\n}\n\nfunction status(meta: SessionMeta | undefined, state: SessionState): Pick<SessionActivityView, 'status' | 'tone'> {\n if (meta === undefined) return { status: 'unavailable', tone: 'dim' };\n if (meta.attach === 'refused') return { status: 'another cockpit holds this session', tone: 'red' };\n if (meta.summary.dormant === true || meta.attach === 'closed') return { status: 'stopped', tone: 'dim' };\n if (meta.attach === 'offline' || meta.attach === 'detached') return { status: 'disconnected', tone: 'red' };\n if (meta.attach === 'connecting') return { status: 'connecting', tone: 'yellow' };\n if (meta.summary.awaitingInput) return { status: 'waiting for your input', tone: 'yellow' };\n if (meta.summary.phase !== 'idle' || (!state.hasNewerHistory && state.streaming))\n return { status: 'working', tone: 'yellow' };\n return { status: 'idle', tone: 'green' };\n}\n\n/** The host's current session state, kept separate from Author request lifecycle. */\nexport function sessionActivity(meta: SessionMeta | undefined, state: SessionState): SessionActivityView {\n return {\n ...status(meta, state),\n message: state.hasNewerHistory\n ? 'Latest message unavailable while viewing older history.'\n : (latestAssistantText(state.entries) ?? 'No assistant message in loaded history.'),\n };\n}\n\nexport function SessionActivity({\n sessionId,\n onOpenConversation,\n}: {\n sessionId: string;\n onOpenConversation: () => void;\n}) {\n const state = useStore(sessionStoreFor(sessionId), (current) => current);\n const meta = useStore(sessionsStore, (current) => current.byId[sessionId]);\n const activity = sessionActivity(meta, state);\n\n return (\n <section data-testid=\"session-activity\" aria-label=\"Session activity\" className=\"space-y-2\">\n <div className=\"flex items-center justify-between gap-2 text-sm\">\n <span className=\"flex items-center gap-1.5 text-lg font-semibold text-doom-hi\">\n <Dot tone={activity.tone === 'dim' ? 'neutral' : activity.tone} />\n session activity\n </span>\n <span className=\"truncate text-sm text-doom-dim\">{activity.status}</span>\n </div>\n <p className=\"max-h-[5.5rem] overflow-y-auto text-base leading-snug break-words text-doom-text\">\n {activity.message}\n </p>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-auto px-0 text-doom-dim hover:text-doom-hi\"\n onClick={onOpenConversation}\n >\n open conversation\n </Button>\n </section>\n );\n}\n"],"mappings":";;;;;;AAcA,SAAS,oBAAoB,SAAuD;CAClF,MAAM,QAAQ,QAAQ,UAAU,SAAS,KAAK,SAAS,eAAe,KAAK,KAAK,KAAK,MAAM,EAAE;CAC7F,OAAO,OAAO,SAAS,cAAc,MAAM,OAAO,KAAA;AACpD;AAEA,SAAS,OAAO,MAA+B,OAAmE;CAChH,IAAI,SAAS,KAAA,GAAW,OAAO;EAAE,QAAQ;EAAe,MAAM;CAAM;CACpE,IAAI,KAAK,WAAW,WAAW,OAAO;EAAE,QAAQ;EAAsC,MAAM;CAAM;CAClG,IAAI,KAAK,QAAQ,YAAY,QAAQ,KAAK,WAAW,UAAU,OAAO;EAAE,QAAQ;EAAW,MAAM;CAAM;CACvG,IAAI,KAAK,WAAW,aAAa,KAAK,WAAW,YAAY,OAAO;EAAE,QAAQ;EAAgB,MAAM;CAAM;CAC1G,IAAI,KAAK,WAAW,cAAc,OAAO;EAAE,QAAQ;EAAc,MAAM;CAAS;CAChF,IAAI,KAAK,QAAQ,eAAe,OAAO;EAAE,QAAQ;EAA0B,MAAM;CAAS;CAC1F,IAAI,KAAK,QAAQ,UAAU,UAAW,CAAC,MAAM,mBAAmB,MAAM,WACpE,OAAO;EAAE,QAAQ;EAAW,MAAM;CAAS;CAC7C,OAAO;EAAE,QAAQ;EAAQ,MAAM;CAAQ;AACzC;;AAGA,SAAgB,gBAAgB,MAA+B,OAA0C;CACvG,OAAO;EACL,GAAG,OAAO,MAAM,KAAK;EACrB,SAAS,MAAM,kBACX,4DACC,oBAAoB,MAAM,OAAO,KAAK;CAC7C;AACF;AAEA,SAAgB,gBAAgB,EAC9B,WACA,sBAIC;CACD,MAAM,SAAA,GAAQA,sBAAAA,SAAAA,CAASC,qBAAAA,gBAAgB,SAAS,IAAI,YAAY,OAAO;CAEvE,MAAM,WAAW,iBAAA,GADJD,sBAAAA,SAAAA,CAASE,sBAAAA,gBAAgB,YAAY,QAAQ,KAAK,UAC3B,GAAG,KAAK;CAE5C,OACE,iBAAA,GAAA,kBAAA,KAAA,CAAC,WAAD;EAAS,eAAY;EAAmB,cAAW;EAAmB,WAAU;EAAhF,UAAA;GACE,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;IAAK,WAAU;IAAf,UAAA,CACE,iBAAA,GAAA,kBAAA,KAAA,CAAC,QAAD;KAAM,WAAU;KAAhB,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,6BAAAA,KAAD,EAAK,MAAM,SAAS,SAAS,QAAQ,YAAY,SAAS,KAAO,CAAA,GAAC,kBAE9D;IACN,CAAA,GAAA,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;KAAM,WAAU;KAAkC,UAAA,SAAS;IAAa,CAAA,CACrE;;GACL,iBAAA,GAAA,kBAAA,IAAA,CAAC,KAAD;IAAG,WAAU;IACV,UAAA,SAAS;GACT,CAAA;GACH,iBAAA,GAAA,kBAAA,IAAA,CAACC,6BAAAA,QAAD;IACE,SAAQ;IACR,MAAK;IACL,WAAU;IACV,SAAS;IACV,UAAA;GAEO,CAAA;EACD;;AAEb"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { SessionState } from "../../lib/sessionModel.mjs";
|
|
2
|
+
import { SessionMeta } from "../../stores/sessionsStore.mjs";
|
|
3
|
+
//#region src/web/features/session/SessionActivity.d.ts
|
|
4
|
+
export interface SessionActivityView {
|
|
5
|
+
status: string;
|
|
6
|
+
tone: 'yellow' | 'green' | 'red' | 'dim';
|
|
7
|
+
message: string;
|
|
8
|
+
}
|
|
9
|
+
/** The host's current session state, kept separate from Author request lifecycle. */
|
|
10
|
+
export declare function sessionActivity(meta: SessionMeta | undefined, state: SessionState): SessionActivityView;
|
|
11
|
+
export declare function SessionActivity({ sessionId, onOpenConversation }: {
|
|
12
|
+
sessionId: string;
|
|
13
|
+
onOpenConversation: () => void;
|
|
14
|
+
}): import("react").JSX.Element;
|
|
15
|
+
//#endregion
|
|
16
|
+
//# sourceMappingURL=SessionActivity.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionActivity.d.mts","names":[],"sources":["../../../../src/web/features/session/SessionActivity.tsx"],"mappings":";;;iBAQiB;EACf;EACA;EACA;;;wBAqBc,gBAAgB,MAAM,yBAAyB,OAAO,eAAe;wBASrE,kBACd,WACA;EAEA;EACA;oBACD,IAAA"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { sessionsStore } from "../../stores/sessionsStore.mjs";
|
|
2
|
+
import { sessionStoreFor } from "../../stores/sessionStore.mjs";
|
|
3
|
+
import { useStore } from "@tanstack/react-store";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
import { Button, Dot } from "@agimon-ai/po-web-components";
|
|
6
|
+
//#region src/web/features/session/SessionActivity.tsx
|
|
7
|
+
function latestAssistantText(entries) {
|
|
8
|
+
const entry = entries.findLast((item) => item.kind === "assistant" && item.text.trim() !== "");
|
|
9
|
+
return entry?.kind === "assistant" ? entry.text : void 0;
|
|
10
|
+
}
|
|
11
|
+
function status(meta, state) {
|
|
12
|
+
if (meta === void 0) return {
|
|
13
|
+
status: "unavailable",
|
|
14
|
+
tone: "dim"
|
|
15
|
+
};
|
|
16
|
+
if (meta.attach === "refused") return {
|
|
17
|
+
status: "another cockpit holds this session",
|
|
18
|
+
tone: "red"
|
|
19
|
+
};
|
|
20
|
+
if (meta.summary.dormant === true || meta.attach === "closed") return {
|
|
21
|
+
status: "stopped",
|
|
22
|
+
tone: "dim"
|
|
23
|
+
};
|
|
24
|
+
if (meta.attach === "offline" || meta.attach === "detached") return {
|
|
25
|
+
status: "disconnected",
|
|
26
|
+
tone: "red"
|
|
27
|
+
};
|
|
28
|
+
if (meta.attach === "connecting") return {
|
|
29
|
+
status: "connecting",
|
|
30
|
+
tone: "yellow"
|
|
31
|
+
};
|
|
32
|
+
if (meta.summary.awaitingInput) return {
|
|
33
|
+
status: "waiting for your input",
|
|
34
|
+
tone: "yellow"
|
|
35
|
+
};
|
|
36
|
+
if (meta.summary.phase !== "idle" || !state.hasNewerHistory && state.streaming) return {
|
|
37
|
+
status: "working",
|
|
38
|
+
tone: "yellow"
|
|
39
|
+
};
|
|
40
|
+
return {
|
|
41
|
+
status: "idle",
|
|
42
|
+
tone: "green"
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
/** The host's current session state, kept separate from Author request lifecycle. */
|
|
46
|
+
function sessionActivity(meta, state) {
|
|
47
|
+
return {
|
|
48
|
+
...status(meta, state),
|
|
49
|
+
message: state.hasNewerHistory ? "Latest message unavailable while viewing older history." : latestAssistantText(state.entries) ?? "No assistant message in loaded history."
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
function SessionActivity({ sessionId, onOpenConversation }) {
|
|
53
|
+
const state = useStore(sessionStoreFor(sessionId), (current) => current);
|
|
54
|
+
const activity = sessionActivity(useStore(sessionsStore, (current) => current.byId[sessionId]), state);
|
|
55
|
+
return /* @__PURE__ */ jsxs("section", {
|
|
56
|
+
"data-testid": "session-activity",
|
|
57
|
+
"aria-label": "Session activity",
|
|
58
|
+
className: "space-y-2",
|
|
59
|
+
children: [
|
|
60
|
+
/* @__PURE__ */ jsxs("div", {
|
|
61
|
+
className: "flex items-center justify-between gap-2 text-sm",
|
|
62
|
+
children: [/* @__PURE__ */ jsxs("span", {
|
|
63
|
+
className: "flex items-center gap-1.5 text-lg font-semibold text-doom-hi",
|
|
64
|
+
children: [/* @__PURE__ */ jsx(Dot, { tone: activity.tone === "dim" ? "neutral" : activity.tone }), "session activity"]
|
|
65
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
66
|
+
className: "truncate text-sm text-doom-dim",
|
|
67
|
+
children: activity.status
|
|
68
|
+
})]
|
|
69
|
+
}),
|
|
70
|
+
/* @__PURE__ */ jsx("p", {
|
|
71
|
+
className: "max-h-[5.5rem] overflow-y-auto text-base leading-snug break-words text-doom-text",
|
|
72
|
+
children: activity.message
|
|
73
|
+
}),
|
|
74
|
+
/* @__PURE__ */ jsx(Button, {
|
|
75
|
+
variant: "ghost",
|
|
76
|
+
size: "sm",
|
|
77
|
+
className: "h-auto px-0 text-doom-dim hover:text-doom-hi",
|
|
78
|
+
onClick: onOpenConversation,
|
|
79
|
+
children: "open conversation"
|
|
80
|
+
})
|
|
81
|
+
]
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
//#endregion
|
|
85
|
+
export { SessionActivity, sessionActivity };
|
|
86
|
+
|
|
87
|
+
//# sourceMappingURL=SessionActivity.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionActivity.mjs","names":[],"sources":["../../../../src/web/features/session/SessionActivity.tsx"],"sourcesContent":["import { Button, Dot } from '@agimon-ai/po-web-components';\nimport { useStore } from '@tanstack/react-store';\n\nimport type { SessionState, TimelineEntry } from '../../lib/sessionModel';\nimport type { SessionMeta } from '../../stores/sessionsStore';\nimport { sessionsStore } from '../../stores/sessionsStore';\nimport { sessionStoreFor } from '../../stores/sessionStore';\n\nexport interface SessionActivityView {\n status: string;\n tone: 'yellow' | 'green' | 'red' | 'dim';\n message: string;\n}\n\nfunction latestAssistantText(entries: readonly TimelineEntry[]): string | undefined {\n const entry = entries.findLast((item) => item.kind === 'assistant' && item.text.trim() !== '');\n return entry?.kind === 'assistant' ? entry.text : undefined;\n}\n\nfunction status(meta: SessionMeta | undefined, state: SessionState): Pick<SessionActivityView, 'status' | 'tone'> {\n if (meta === undefined) return { status: 'unavailable', tone: 'dim' };\n if (meta.attach === 'refused') return { status: 'another cockpit holds this session', tone: 'red' };\n if (meta.summary.dormant === true || meta.attach === 'closed') return { status: 'stopped', tone: 'dim' };\n if (meta.attach === 'offline' || meta.attach === 'detached') return { status: 'disconnected', tone: 'red' };\n if (meta.attach === 'connecting') return { status: 'connecting', tone: 'yellow' };\n if (meta.summary.awaitingInput) return { status: 'waiting for your input', tone: 'yellow' };\n if (meta.summary.phase !== 'idle' || (!state.hasNewerHistory && state.streaming))\n return { status: 'working', tone: 'yellow' };\n return { status: 'idle', tone: 'green' };\n}\n\n/** The host's current session state, kept separate from Author request lifecycle. */\nexport function sessionActivity(meta: SessionMeta | undefined, state: SessionState): SessionActivityView {\n return {\n ...status(meta, state),\n message: state.hasNewerHistory\n ? 'Latest message unavailable while viewing older history.'\n : (latestAssistantText(state.entries) ?? 'No assistant message in loaded history.'),\n };\n}\n\nexport function SessionActivity({\n sessionId,\n onOpenConversation,\n}: {\n sessionId: string;\n onOpenConversation: () => void;\n}) {\n const state = useStore(sessionStoreFor(sessionId), (current) => current);\n const meta = useStore(sessionsStore, (current) => current.byId[sessionId]);\n const activity = sessionActivity(meta, state);\n\n return (\n <section data-testid=\"session-activity\" aria-label=\"Session activity\" className=\"space-y-2\">\n <div className=\"flex items-center justify-between gap-2 text-sm\">\n <span className=\"flex items-center gap-1.5 text-lg font-semibold text-doom-hi\">\n <Dot tone={activity.tone === 'dim' ? 'neutral' : activity.tone} />\n session activity\n </span>\n <span className=\"truncate text-sm text-doom-dim\">{activity.status}</span>\n </div>\n <p className=\"max-h-[5.5rem] overflow-y-auto text-base leading-snug break-words text-doom-text\">\n {activity.message}\n </p>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-auto px-0 text-doom-dim hover:text-doom-hi\"\n onClick={onOpenConversation}\n >\n open conversation\n </Button>\n </section>\n );\n}\n"],"mappings":";;;;;;AAcA,SAAS,oBAAoB,SAAuD;CAClF,MAAM,QAAQ,QAAQ,UAAU,SAAS,KAAK,SAAS,eAAe,KAAK,KAAK,KAAK,MAAM,EAAE;CAC7F,OAAO,OAAO,SAAS,cAAc,MAAM,OAAO,KAAA;AACpD;AAEA,SAAS,OAAO,MAA+B,OAAmE;CAChH,IAAI,SAAS,KAAA,GAAW,OAAO;EAAE,QAAQ;EAAe,MAAM;CAAM;CACpE,IAAI,KAAK,WAAW,WAAW,OAAO;EAAE,QAAQ;EAAsC,MAAM;CAAM;CAClG,IAAI,KAAK,QAAQ,YAAY,QAAQ,KAAK,WAAW,UAAU,OAAO;EAAE,QAAQ;EAAW,MAAM;CAAM;CACvG,IAAI,KAAK,WAAW,aAAa,KAAK,WAAW,YAAY,OAAO;EAAE,QAAQ;EAAgB,MAAM;CAAM;CAC1G,IAAI,KAAK,WAAW,cAAc,OAAO;EAAE,QAAQ;EAAc,MAAM;CAAS;CAChF,IAAI,KAAK,QAAQ,eAAe,OAAO;EAAE,QAAQ;EAA0B,MAAM;CAAS;CAC1F,IAAI,KAAK,QAAQ,UAAU,UAAW,CAAC,MAAM,mBAAmB,MAAM,WACpE,OAAO;EAAE,QAAQ;EAAW,MAAM;CAAS;CAC7C,OAAO;EAAE,QAAQ;EAAQ,MAAM;CAAQ;AACzC;;AAGA,SAAgB,gBAAgB,MAA+B,OAA0C;CACvG,OAAO;EACL,GAAG,OAAO,MAAM,KAAK;EACrB,SAAS,MAAM,kBACX,4DACC,oBAAoB,MAAM,OAAO,KAAK;CAC7C;AACF;AAEA,SAAgB,gBAAgB,EAC9B,WACA,sBAIC;CACD,MAAM,QAAQ,SAAS,gBAAgB,SAAS,IAAI,YAAY,OAAO;CAEvE,MAAM,WAAW,gBADJ,SAAS,gBAAgB,YAAY,QAAQ,KAAK,UAC3B,GAAG,KAAK;CAE5C,OACE,qBAAC,WAAD;EAAS,eAAY;EAAmB,cAAW;EAAmB,WAAU;EAAhF,UAAA;GACE,qBAAC,OAAD;IAAK,WAAU;IAAf,UAAA,CACE,qBAAC,QAAD;KAAM,WAAU;KAAhB,UAAA,CACE,oBAAC,KAAD,EAAK,MAAM,SAAS,SAAS,QAAQ,YAAY,SAAS,KAAO,CAAA,GAAC,kBAE9D;IACN,CAAA,GAAA,oBAAC,QAAD;KAAM,WAAU;KAAkC,UAAA,SAAS;IAAa,CAAA,CACrE;;GACL,oBAAC,KAAD;IAAG,WAAU;IACV,UAAA,SAAS;GACT,CAAA;GACH,oBAAC,QAAD;IACE,SAAQ;IACR,MAAK;IACL,WAAU;IACV,SAAS;IACV,UAAA;GAEO,CAAA;EACD;;AAEb"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
const require_sessionStore = require("../../stores/sessionStore.cjs");
|
|
2
|
+
const require_Timeline = require("./Timeline.cjs");
|
|
3
|
+
let react = require("react");
|
|
4
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
5
|
+
let _agimon_ai_po_web_components = require("@agimon-ai/po-web-components");
|
|
6
|
+
//#region src/web/features/session/SessionTranscriptView.tsx
|
|
7
|
+
const SESSION_TRANSCRIPT_TEST_ID = "session-transcript";
|
|
8
|
+
/**
|
|
9
|
+
* Another session's conversation, drawn inside a plugin panel of the focused one.
|
|
10
|
+
*
|
|
11
|
+
* It reads the same store the session's own tab reads. `watch` is what fills
|
|
12
|
+
* that store while this is mounted without focusing the session; the app owns
|
|
13
|
+
* it because only the app can open a protocol connection.
|
|
14
|
+
*/
|
|
15
|
+
function SessionTranscriptView({ sessionId, options, watch }) {
|
|
16
|
+
(0, react.useEffect)(() => watch(sessionId), [sessionId, watch]);
|
|
17
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Timeline.Transcript, {
|
|
18
|
+
store: require_sessionStore.sessionStoreFor(sessionId),
|
|
19
|
+
sessionId,
|
|
20
|
+
historyKey: sessionId,
|
|
21
|
+
testId: SESSION_TRANSCRIPT_TEST_ID,
|
|
22
|
+
limit: options?.limit,
|
|
23
|
+
compact: options?.compact,
|
|
24
|
+
empty: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_agimon_ai_po_web_components.EmptyState, {
|
|
25
|
+
"data-testid": "session-transcript-empty",
|
|
26
|
+
title: "no messages yet",
|
|
27
|
+
description: "the session's conversation shows here as soon as its agent starts."
|
|
28
|
+
})
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
//#endregion
|
|
32
|
+
exports.SessionTranscriptView = SessionTranscriptView;
|
|
33
|
+
|
|
34
|
+
//# sourceMappingURL=SessionTranscriptView.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionTranscriptView.cjs","names":["Transcript","sessionStoreFor","EmptyState"],"sources":["../../../../src/web/features/session/SessionTranscriptView.tsx"],"sourcesContent":["import type { ThreadViewOptions } from '@agimon-ai/po-core/web';\nimport { EmptyState } from '@agimon-ai/po-web-components';\nimport { useEffect } from 'react';\n\nimport { sessionStoreFor } from '../../stores/sessionStore';\nimport { Transcript } from './Timeline';\n\nconst SESSION_TRANSCRIPT_TEST_ID = 'session-transcript';\n\n/**\n * Another session's conversation, drawn inside a plugin panel of the focused one.\n *\n * It reads the same store the session's own tab reads. `watch` is what fills\n * that store while this is mounted without focusing the session; the app owns\n * it because only the app can open a protocol connection.\n */\nexport function SessionTranscriptView({\n sessionId,\n options,\n watch,\n}: {\n sessionId: string;\n options?: ThreadViewOptions;\n watch: (sessionId: string) => () => void;\n}) {\n useEffect(() => watch(sessionId), [sessionId, watch]);\n\n return (\n <Transcript\n store={sessionStoreFor(sessionId)}\n sessionId={sessionId}\n historyKey={sessionId}\n testId={SESSION_TRANSCRIPT_TEST_ID}\n limit={options?.limit}\n compact={options?.compact}\n empty={\n <EmptyState\n data-testid=\"session-transcript-empty\"\n title=\"no messages yet\"\n description=\"the session's conversation shows here as soon as its agent starts.\"\n />\n }\n />\n );\n}\n"],"mappings":";;;;;;AAOA,MAAM,6BAA6B;;;;;;;;AASnC,SAAgB,sBAAsB,EACpC,WACA,SACA,SAKC;CACD,CAAA,GAAA,MAAA,UAAA,OAAgB,MAAM,SAAS,GAAG,CAAC,WAAW,KAAK,CAAC;CAEpD,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACA,iBAAAA,YAAD;EACE,OAAOC,qBAAAA,gBAAgB,SAAS;EACrB;EACX,YAAY;EACZ,QAAQ;EACR,OAAO,SAAS;EAChB,SAAS,SAAS;EAClB,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,6BAAAA,YAAD;GACE,eAAY;GACZ,OAAM;GACN,aAAY;EACb,CAAA;CAEJ,CAAA;AAEL"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ThreadViewOptions } from "@agimon-ai/po-core/web";
|
|
2
|
+
//#region src/web/features/session/SessionTranscriptView.d.ts
|
|
3
|
+
/**
|
|
4
|
+
* Another session's conversation, drawn inside a plugin panel of the focused one.
|
|
5
|
+
*
|
|
6
|
+
* It reads the same store the session's own tab reads. `watch` is what fills
|
|
7
|
+
* that store while this is mounted without focusing the session; the app owns
|
|
8
|
+
* it because only the app can open a protocol connection.
|
|
9
|
+
*/
|
|
10
|
+
export declare function SessionTranscriptView({ sessionId, options, watch }: {
|
|
11
|
+
sessionId: string;
|
|
12
|
+
options?: ThreadViewOptions;
|
|
13
|
+
watch: (sessionId: string) => () => void;
|
|
14
|
+
}): import("react").JSX.Element;
|
|
15
|
+
//#endregion
|
|
16
|
+
//# sourceMappingURL=SessionTranscriptView.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionTranscriptView.d.mts","names":[],"sources":["../../../../src/web/features/session/SessionTranscriptView.tsx"],"mappings":";;;;;;;;;wBAgBgB,wBACd,WACA,SACA;EAEA;EACA,UAAU;EACV,QAAQ;oBACT,IAAA"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { sessionStoreFor } from "../../stores/sessionStore.mjs";
|
|
2
|
+
import { Transcript } from "./Timeline.mjs";
|
|
3
|
+
import { useEffect } from "react";
|
|
4
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
import { EmptyState } from "@agimon-ai/po-web-components";
|
|
6
|
+
//#region src/web/features/session/SessionTranscriptView.tsx
|
|
7
|
+
const SESSION_TRANSCRIPT_TEST_ID = "session-transcript";
|
|
8
|
+
/**
|
|
9
|
+
* Another session's conversation, drawn inside a plugin panel of the focused one.
|
|
10
|
+
*
|
|
11
|
+
* It reads the same store the session's own tab reads. `watch` is what fills
|
|
12
|
+
* that store while this is mounted without focusing the session; the app owns
|
|
13
|
+
* it because only the app can open a protocol connection.
|
|
14
|
+
*/
|
|
15
|
+
function SessionTranscriptView({ sessionId, options, watch }) {
|
|
16
|
+
useEffect(() => watch(sessionId), [sessionId, watch]);
|
|
17
|
+
return /* @__PURE__ */ jsx(Transcript, {
|
|
18
|
+
store: sessionStoreFor(sessionId),
|
|
19
|
+
sessionId,
|
|
20
|
+
historyKey: sessionId,
|
|
21
|
+
testId: SESSION_TRANSCRIPT_TEST_ID,
|
|
22
|
+
limit: options?.limit,
|
|
23
|
+
compact: options?.compact,
|
|
24
|
+
empty: /* @__PURE__ */ jsx(EmptyState, {
|
|
25
|
+
"data-testid": "session-transcript-empty",
|
|
26
|
+
title: "no messages yet",
|
|
27
|
+
description: "the session's conversation shows here as soon as its agent starts."
|
|
28
|
+
})
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
//#endregion
|
|
32
|
+
export { SessionTranscriptView };
|
|
33
|
+
|
|
34
|
+
//# sourceMappingURL=SessionTranscriptView.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionTranscriptView.mjs","names":[],"sources":["../../../../src/web/features/session/SessionTranscriptView.tsx"],"sourcesContent":["import type { ThreadViewOptions } from '@agimon-ai/po-core/web';\nimport { EmptyState } from '@agimon-ai/po-web-components';\nimport { useEffect } from 'react';\n\nimport { sessionStoreFor } from '../../stores/sessionStore';\nimport { Transcript } from './Timeline';\n\nconst SESSION_TRANSCRIPT_TEST_ID = 'session-transcript';\n\n/**\n * Another session's conversation, drawn inside a plugin panel of the focused one.\n *\n * It reads the same store the session's own tab reads. `watch` is what fills\n * that store while this is mounted without focusing the session; the app owns\n * it because only the app can open a protocol connection.\n */\nexport function SessionTranscriptView({\n sessionId,\n options,\n watch,\n}: {\n sessionId: string;\n options?: ThreadViewOptions;\n watch: (sessionId: string) => () => void;\n}) {\n useEffect(() => watch(sessionId), [sessionId, watch]);\n\n return (\n <Transcript\n store={sessionStoreFor(sessionId)}\n sessionId={sessionId}\n historyKey={sessionId}\n testId={SESSION_TRANSCRIPT_TEST_ID}\n limit={options?.limit}\n compact={options?.compact}\n empty={\n <EmptyState\n data-testid=\"session-transcript-empty\"\n title=\"no messages yet\"\n description=\"the session's conversation shows here as soon as its agent starts.\"\n />\n }\n />\n );\n}\n"],"mappings":";;;;;;AAOA,MAAM,6BAA6B;;;;;;;;AASnC,SAAgB,sBAAsB,EACpC,WACA,SACA,SAKC;CACD,gBAAgB,MAAM,SAAS,GAAG,CAAC,WAAW,KAAK,CAAC;CAEpD,OACE,oBAAC,YAAD;EACE,OAAO,gBAAgB,SAAS;EACrB;EACX,YAAY;EACZ,QAAQ;EACR,OAAO,SAAS;EAChB,SAAS,SAAS;EAClB,OACE,oBAAC,YAAD;GACE,eAAY;GACZ,OAAM;GACN,aAAY;EACb,CAAA;CAEJ,CAAA;AAEL"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
const require_sessionStore = require("../../stores/sessionStore.cjs");
|
|
2
|
+
const require_threadStore = require("../../stores/threadStore.cjs");
|
|
3
|
+
const require_Timeline = require("./Timeline.cjs");
|
|
4
|
+
let react = require("react");
|
|
5
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
6
|
+
let _agimon_ai_po_web_components = require("@agimon-ai/po-web-components");
|
|
7
|
+
//#region src/web/features/session/ThreadView.tsx
|
|
8
|
+
const THREAD_TEST_ID = "thread-timeline";
|
|
9
|
+
/**
|
|
10
|
+
* A thread of the focused session, such as a subagent run's own journal, on
|
|
11
|
+
* the same transcript as the session itself and followed only while shown.
|
|
12
|
+
* The parent session id goes down with it so tool cards resolve renderers
|
|
13
|
+
* and slot props exactly as the main thread does.
|
|
14
|
+
*
|
|
15
|
+
* `options` is how a caller that is not a whole tab asks for less: a grid card
|
|
16
|
+
* shows the newest few entries at card scale.
|
|
17
|
+
*/
|
|
18
|
+
function ThreadView({ sessionId, threadId, options }) {
|
|
19
|
+
(0, react.useEffect)(() => {
|
|
20
|
+
require_threadStore.subscribeThread(sessionId, threadId);
|
|
21
|
+
return () => require_threadStore.unsubscribeThread(sessionId, threadId);
|
|
22
|
+
}, [sessionId, threadId]);
|
|
23
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Timeline.Transcript, {
|
|
24
|
+
store: require_sessionStore.sessionStoreFor(require_threadStore.threadStoreKey(sessionId, threadId)),
|
|
25
|
+
sessionId,
|
|
26
|
+
historyKey: require_threadStore.threadStoreKey(sessionId, threadId),
|
|
27
|
+
testId: THREAD_TEST_ID,
|
|
28
|
+
limit: options?.limit,
|
|
29
|
+
compact: options?.compact,
|
|
30
|
+
empty: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_agimon_ai_po_web_components.EmptyState, {
|
|
31
|
+
"data-testid": "thread-empty",
|
|
32
|
+
title: "no messages yet",
|
|
33
|
+
description: "the agent's journal shows here as soon as it starts writing."
|
|
34
|
+
})
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
//#endregion
|
|
38
|
+
exports.ThreadView = ThreadView;
|
|
39
|
+
|
|
40
|
+
//# sourceMappingURL=ThreadView.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ThreadView.cjs","names":["unsubscribeThread","Transcript","sessionStoreFor","threadStoreKey","EmptyState"],"sources":["../../../../src/web/features/session/ThreadView.tsx"],"sourcesContent":["import type { ThreadViewOptions } from '@agimon-ai/po-core/web';\nimport { EmptyState } from '@agimon-ai/po-web-components';\nimport { useEffect } from 'react';\n\nimport { sessionStoreFor } from '../../stores/sessionStore';\nimport { subscribeThread, threadStoreKey, unsubscribeThread } from '../../stores/threadStore';\nimport { Transcript } from './Timeline';\n\nconst THREAD_TEST_ID = 'thread-timeline';\n\n/**\n * A thread of the focused session, such as a subagent run's own journal, on\n * the same transcript as the session itself and followed only while shown.\n * The parent session id goes down with it so tool cards resolve renderers\n * and slot props exactly as the main thread does.\n *\n * `options` is how a caller that is not a whole tab asks for less: a grid card\n * shows the newest few entries at card scale.\n */\nexport function ThreadView({\n sessionId,\n threadId,\n options,\n}: {\n sessionId: string;\n threadId: string;\n options?: ThreadViewOptions;\n}) {\n useEffect(() => {\n subscribeThread(sessionId, threadId);\n return () => unsubscribeThread(sessionId, threadId);\n }, [sessionId, threadId]);\n\n return (\n <Transcript\n store={sessionStoreFor(threadStoreKey(sessionId, threadId))}\n sessionId={sessionId}\n historyKey={threadStoreKey(sessionId, threadId)}\n testId={THREAD_TEST_ID}\n limit={options?.limit}\n compact={options?.compact}\n empty={\n <EmptyState\n data-testid=\"thread-empty\"\n title=\"no messages yet\"\n description=\"the agent's journal shows here as soon as it starts writing.\"\n />\n }\n />\n );\n}\n"],"mappings":";;;;;;;AAQA,MAAM,iBAAiB;;;;;;;;;;AAWvB,SAAgB,WAAW,EACzB,WACA,UACA,WAKC;CACD,CAAA,GAAA,MAAA,UAAA,OAAgB;EACd,oBAAA,gBAAgB,WAAW,QAAQ;EACnC,aAAaA,oBAAAA,kBAAkB,WAAW,QAAQ;CACpD,GAAG,CAAC,WAAW,QAAQ,CAAC;CAExB,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,iBAAAA,YAAD;EACE,OAAOC,qBAAAA,gBAAgBC,oBAAAA,eAAe,WAAW,QAAQ,CAAC;EAC/C;EACX,YAAYA,oBAAAA,eAAe,WAAW,QAAQ;EAC9C,QAAQ;EACR,OAAO,SAAS;EAChB,SAAS,SAAS;EAClB,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,6BAAAA,YAAD;GACE,eAAY;GACZ,OAAM;GACN,aAAY;EACb,CAAA;CAEJ,CAAA;AAEL"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ThreadViewOptions } from "@agimon-ai/po-core/web";
|
|
2
|
+
//#region src/web/features/session/ThreadView.d.ts
|
|
3
|
+
/**
|
|
4
|
+
* A thread of the focused session, such as a subagent run's own journal, on
|
|
5
|
+
* the same transcript as the session itself and followed only while shown.
|
|
6
|
+
* The parent session id goes down with it so tool cards resolve renderers
|
|
7
|
+
* and slot props exactly as the main thread does.
|
|
8
|
+
*
|
|
9
|
+
* `options` is how a caller that is not a whole tab asks for less: a grid card
|
|
10
|
+
* shows the newest few entries at card scale.
|
|
11
|
+
*/
|
|
12
|
+
export declare function ThreadView({ sessionId, threadId, options }: {
|
|
13
|
+
sessionId: string;
|
|
14
|
+
threadId: string;
|
|
15
|
+
options?: ThreadViewOptions;
|
|
16
|
+
}): import("react").JSX.Element;
|
|
17
|
+
//#endregion
|
|
18
|
+
//# sourceMappingURL=ThreadView.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ThreadView.d.mts","names":[],"sources":["../../../../src/web/features/session/ThreadView.tsx"],"mappings":";;;;;;;;;;;wBAmBgB,aACd,WACA,UACA;EAEA;EACA;EACA,UAAU;oBACX,IAAA"}
|