@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,81 @@
|
|
|
1
|
+
//#region src/web/lib/timelineGroups.ts
|
|
2
|
+
/**
|
|
3
|
+
* Runs of the same tool, gathered so the transcript draws one frame instead of
|
|
4
|
+
* five.
|
|
5
|
+
*
|
|
6
|
+
* An agent rarely calls a tool once: it reads four files, or runs five
|
|
7
|
+
* commands, and each call arrives as its own entry. Rendered one card apiece
|
|
8
|
+
* that reads as repetition rather than as progress, so adjacent calls of the
|
|
9
|
+
* same tool are handed to the timeline as a single unit. Grouping is decided
|
|
10
|
+
* here, on the entry list alone, so it can be tested without a browser and the
|
|
11
|
+
* component stays a renderer.
|
|
12
|
+
*/
|
|
13
|
+
/** Two calls are the fewest that can read as a repetition, so a lone call keeps its card. */
|
|
14
|
+
const MIN_GROUP = 2;
|
|
15
|
+
function isTool(entry) {
|
|
16
|
+
return entry?.kind === "tool";
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* The entries as units to render.
|
|
20
|
+
*
|
|
21
|
+
* `groupable` decides which tool names may be gathered: a tool whose renderer
|
|
22
|
+
* presents itself as a message, not a card, has no frame to share and stays on
|
|
23
|
+
* its own. Only adjacent entries group, so anything between two calls, an
|
|
24
|
+
* assistant reply or a notice, ends the run and keeps the transcript in order.
|
|
25
|
+
*/
|
|
26
|
+
function timelineUnits(entries, groupable) {
|
|
27
|
+
const units = [];
|
|
28
|
+
let index = 0;
|
|
29
|
+
while (index < entries.length) {
|
|
30
|
+
const entry = entries[index];
|
|
31
|
+
if (entry === void 0) break;
|
|
32
|
+
if (!isTool(entry) || !groupable(entry.name)) {
|
|
33
|
+
units.push({
|
|
34
|
+
kind: "single",
|
|
35
|
+
entry,
|
|
36
|
+
index
|
|
37
|
+
});
|
|
38
|
+
index += 1;
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
41
|
+
const run = [entry];
|
|
42
|
+
let next = index + 1;
|
|
43
|
+
while (next < entries.length) {
|
|
44
|
+
const candidate = entries[next];
|
|
45
|
+
if (!isTool(candidate) || candidate.name !== entry.name) break;
|
|
46
|
+
run.push(candidate);
|
|
47
|
+
next += 1;
|
|
48
|
+
}
|
|
49
|
+
if (run.length < MIN_GROUP) units.push({
|
|
50
|
+
kind: "single",
|
|
51
|
+
entry,
|
|
52
|
+
index
|
|
53
|
+
});
|
|
54
|
+
else units.push({
|
|
55
|
+
kind: "group",
|
|
56
|
+
name: entry.name,
|
|
57
|
+
entries: run,
|
|
58
|
+
index: next - 1
|
|
59
|
+
});
|
|
60
|
+
index = next;
|
|
61
|
+
}
|
|
62
|
+
return units;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* The group's own outcome: the worst thing in it. A run that is still going
|
|
66
|
+
* reads as running, a run with a failure in it reads as failed, and only a run
|
|
67
|
+
* where everything landed reads as ok.
|
|
68
|
+
*/
|
|
69
|
+
function groupTone(entries) {
|
|
70
|
+
if (entries.some((entry) => entry.running)) return "running";
|
|
71
|
+
if (entries.some((entry) => entry.isError)) return "error";
|
|
72
|
+
return "ok";
|
|
73
|
+
}
|
|
74
|
+
/** `5 calls`, the line beside the tool's name in the group header. */
|
|
75
|
+
function groupSummary(entries) {
|
|
76
|
+
return `${String(entries.length)} call${entries.length === 1 ? "" : "s"}`;
|
|
77
|
+
}
|
|
78
|
+
//#endregion
|
|
79
|
+
export { groupSummary, groupTone, timelineUnits };
|
|
80
|
+
|
|
81
|
+
//# sourceMappingURL=timelineGroups.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timelineGroups.mjs","names":[],"sources":["../../../src/web/lib/timelineGroups.ts"],"sourcesContent":["import type { StatusTone } from '@agimon-ai/po-web-components';\n\nimport type { TimelineEntry, ToolEntry } from './sessionModel';\n\n/**\n * Runs of the same tool, gathered so the transcript draws one frame instead of\n * five.\n *\n * An agent rarely calls a tool once: it reads four files, or runs five\n * commands, and each call arrives as its own entry. Rendered one card apiece\n * that reads as repetition rather than as progress, so adjacent calls of the\n * same tool are handed to the timeline as a single unit. Grouping is decided\n * here, on the entry list alone, so it can be tested without a browser and the\n * component stays a renderer.\n */\n\n/** Two calls are the fewest that can read as a repetition, so a lone call keeps its card. */\nconst MIN_GROUP = 2;\n\nexport interface SingleUnit {\n readonly kind: 'single';\n readonly entry: TimelineEntry;\n /** The entry's index in the source list, for the timeline's live-tail window. */\n readonly index: number;\n}\n\nexport interface GroupUnit {\n readonly kind: 'group';\n readonly name: string;\n readonly entries: readonly ToolEntry[];\n /** The index of the last entry in the run, so a group is skipped only once it is fully above the tail. */\n readonly index: number;\n}\n\nexport type TimelineUnit = SingleUnit | GroupUnit;\n\nfunction isTool(entry: TimelineEntry | undefined): entry is ToolEntry {\n return entry?.kind === 'tool';\n}\n\n/**\n * The entries as units to render.\n *\n * `groupable` decides which tool names may be gathered: a tool whose renderer\n * presents itself as a message, not a card, has no frame to share and stays on\n * its own. Only adjacent entries group, so anything between two calls, an\n * assistant reply or a notice, ends the run and keeps the transcript in order.\n */\nexport function timelineUnits(\n entries: readonly TimelineEntry[],\n groupable: (name: string) => boolean,\n): readonly TimelineUnit[] {\n const units: TimelineUnit[] = [];\n let index = 0;\n while (index < entries.length) {\n const entry = entries[index];\n if (entry === undefined) break;\n if (!isTool(entry) || !groupable(entry.name)) {\n units.push({ kind: 'single', entry, index });\n index += 1;\n continue;\n }\n const run: ToolEntry[] = [entry];\n let next = index + 1;\n while (next < entries.length) {\n const candidate = entries[next];\n if (!isTool(candidate) || candidate.name !== entry.name) break;\n run.push(candidate);\n next += 1;\n }\n if (run.length < MIN_GROUP) units.push({ kind: 'single', entry, index });\n else units.push({ kind: 'group', name: entry.name, entries: run, index: next - 1 });\n index = next;\n }\n return units;\n}\n\n/**\n * The group's own outcome: the worst thing in it. A run that is still going\n * reads as running, a run with a failure in it reads as failed, and only a run\n * where everything landed reads as ok.\n */\nexport function groupTone(entries: readonly ToolEntry[]): StatusTone {\n if (entries.some((entry) => entry.running)) return 'running';\n if (entries.some((entry) => entry.isError)) return 'error';\n return 'ok';\n}\n\n/** `5 calls`, the line beside the tool's name in the group header. */\nexport function groupSummary(entries: readonly ToolEntry[]): string {\n return `${String(entries.length)} call${entries.length === 1 ? '' : 's'}`;\n}\n"],"mappings":";;;;;;;;;;;;;AAiBA,MAAM,YAAY;AAmBlB,SAAS,OAAO,OAAsD;CACpE,OAAO,OAAO,SAAS;AACzB;;;;;;;;;AAUA,SAAgB,cACd,SACA,WACyB;CACzB,MAAM,QAAwB,CAAC;CAC/B,IAAI,QAAQ;CACZ,OAAO,QAAQ,QAAQ,QAAQ;EAC7B,MAAM,QAAQ,QAAQ;EACtB,IAAI,UAAU,KAAA,GAAW;EACzB,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,UAAU,MAAM,IAAI,GAAG;GAC5C,MAAM,KAAK;IAAE,MAAM;IAAU;IAAO;GAAM,CAAC;GAC3C,SAAS;GACT;EACF;EACA,MAAM,MAAmB,CAAC,KAAK;EAC/B,IAAI,OAAO,QAAQ;EACnB,OAAO,OAAO,QAAQ,QAAQ;GAC5B,MAAM,YAAY,QAAQ;GAC1B,IAAI,CAAC,OAAO,SAAS,KAAK,UAAU,SAAS,MAAM,MAAM;GACzD,IAAI,KAAK,SAAS;GAClB,QAAQ;EACV;EACA,IAAI,IAAI,SAAS,WAAW,MAAM,KAAK;GAAE,MAAM;GAAU;GAAO;EAAM,CAAC;OAClE,MAAM,KAAK;GAAE,MAAM;GAAS,MAAM,MAAM;GAAM,SAAS;GAAK,OAAO,OAAO;EAAE,CAAC;EAClF,QAAQ;CACV;CACA,OAAO;AACT;;;;;;AAOA,SAAgB,UAAU,SAA2C;CACnE,IAAI,QAAQ,MAAM,UAAU,MAAM,OAAO,GAAG,OAAO;CACnD,IAAI,QAAQ,MAAM,UAAU,MAAM,OAAO,GAAG,OAAO;CACnD,OAAO;AACT;;AAGA,SAAgB,aAAa,SAAuC;CAClE,OAAO,GAAG,OAAO,QAAQ,MAAM,EAAE,OAAO,QAAQ,WAAW,IAAI,KAAK;AACtE"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
const require_pluginRegistry = require("./pluginRegistry.cjs");
|
|
2
|
+
//#region src/web/lib/toolCompletionTabs.ts
|
|
3
|
+
function record(value) {
|
|
4
|
+
return typeof value === "object" && value !== null && !Array.isArray(value) ? value : void 0;
|
|
5
|
+
}
|
|
6
|
+
function resultView(value) {
|
|
7
|
+
const result = record(value);
|
|
8
|
+
if (result === void 0) return void 0;
|
|
9
|
+
return {
|
|
10
|
+
content: Array.isArray(result.content) ? result.content : [],
|
|
11
|
+
details: result.details
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Converts successful live tool completions into plugin-owned temporary tabs.
|
|
16
|
+
* Calls wait for the originating session's verified composition, so an early
|
|
17
|
+
* completion is neither lost nor resolved against whichever session is active.
|
|
18
|
+
*/
|
|
19
|
+
function createToolCompletionTabs(open) {
|
|
20
|
+
const calls = /* @__PURE__ */ new Map();
|
|
21
|
+
const completions = /* @__PURE__ */ new Map();
|
|
22
|
+
const completed = /* @__PURE__ */ new Set();
|
|
23
|
+
const completedOrder = [];
|
|
24
|
+
const keyOf = (sessionId, toolCallId) => `${sessionId}\u0000${toolCallId}`;
|
|
25
|
+
const rememberCompleted = (key) => {
|
|
26
|
+
completed.add(key);
|
|
27
|
+
completedOrder.push(key);
|
|
28
|
+
if (completedOrder.length <= 512) return;
|
|
29
|
+
const oldest = completedOrder.shift();
|
|
30
|
+
if (oldest !== void 0) completed.delete(oldest);
|
|
31
|
+
};
|
|
32
|
+
const flush = () => {
|
|
33
|
+
for (const [key, completion] of completions) {
|
|
34
|
+
if (!require_pluginRegistry.sessionWebPluginsInstalled(completion.event.sessionId)) continue;
|
|
35
|
+
completions.delete(key);
|
|
36
|
+
rememberCompleted(key);
|
|
37
|
+
const tab = require_pluginRegistry.sessionToolRenderer(completion.event.sessionId, completion.toolName)?.completionTab?.({
|
|
38
|
+
...completion.event,
|
|
39
|
+
result: completion.result
|
|
40
|
+
});
|
|
41
|
+
if (tab !== void 0) open(completion.event.sessionId, tab);
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
const unsubscribe = require_pluginRegistry.subscribeWebPluginRegistry(flush);
|
|
45
|
+
return {
|
|
46
|
+
apply(sessionId, frame, replay = false) {
|
|
47
|
+
const toolCallId = typeof frame.toolCallId === "string" ? frame.toolCallId : "";
|
|
48
|
+
if (toolCallId === "") return;
|
|
49
|
+
const key = keyOf(sessionId, toolCallId);
|
|
50
|
+
if (frame.type === "tool_execution_start") {
|
|
51
|
+
if (completed.has(key)) return;
|
|
52
|
+
calls.set(key, {
|
|
53
|
+
toolName: typeof frame.toolName === "string" ? frame.toolName : "",
|
|
54
|
+
event: {
|
|
55
|
+
sessionId,
|
|
56
|
+
toolCallId,
|
|
57
|
+
args: record(frame.args) ?? {}
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
if (frame.type !== "tool_execution_end" || completed.has(key) || completions.has(key)) return;
|
|
63
|
+
if (replay) {
|
|
64
|
+
calls.delete(key);
|
|
65
|
+
rememberCompleted(key);
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
const call = calls.get(key);
|
|
69
|
+
if (call === void 0) return;
|
|
70
|
+
calls.delete(key);
|
|
71
|
+
if (frame.isError === true) {
|
|
72
|
+
rememberCompleted(key);
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
const result = resultView(frame.result);
|
|
76
|
+
if (result === void 0) {
|
|
77
|
+
rememberCompleted(key);
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
completions.set(key, {
|
|
81
|
+
...call,
|
|
82
|
+
result
|
|
83
|
+
});
|
|
84
|
+
flush();
|
|
85
|
+
},
|
|
86
|
+
dispose() {
|
|
87
|
+
unsubscribe();
|
|
88
|
+
calls.clear();
|
|
89
|
+
completions.clear();
|
|
90
|
+
completed.clear();
|
|
91
|
+
completedOrder.length = 0;
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
//#endregion
|
|
96
|
+
exports.createToolCompletionTabs = createToolCompletionTabs;
|
|
97
|
+
|
|
98
|
+
//# sourceMappingURL=toolCompletionTabs.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolCompletionTabs.cjs","names":["sessionWebPluginsInstalled","sessionToolRenderer","subscribeWebPluginRegistry"],"sources":["../../../src/web/lib/toolCompletionTabs.ts"],"sourcesContent":["import type { ToolCompletionEvent, ToolResultView, TransientTab } from '@agimon-ai/po-core/web';\n\nimport { sessionToolRenderer, sessionWebPluginsInstalled, subscribeWebPluginRegistry } from './pluginRegistry';\n\ntype Frame = Record<string, unknown>;\n\ninterface PendingCall {\n event: Omit<ToolCompletionEvent, 'result'>;\n toolName: string;\n}\n\nfunction record(value: unknown): Record<string, unknown> | undefined {\n return typeof value === 'object' && value !== null && !Array.isArray(value)\n ? (value as Record<string, unknown>)\n : undefined;\n}\n\nfunction resultView(value: unknown): ToolResultView | undefined {\n const result = record(value);\n if (result === undefined) return undefined;\n return { content: Array.isArray(result.content) ? result.content : [], details: result.details };\n}\n\n/**\n * Converts successful live tool completions into plugin-owned temporary tabs.\n * Calls wait for the originating session's verified composition, so an early\n * completion is neither lost nor resolved against whichever session is active.\n */\nexport function createToolCompletionTabs(open: (sessionId: string, tab: TransientTab) => void): {\n apply(sessionId: string, frame: Frame, replay?: boolean): void;\n dispose(): void;\n} {\n const calls = new Map<string, PendingCall>();\n const completions = new Map<string, PendingCall & { result: ToolResultView }>();\n const completed = new Set<string>();\n const completedOrder: string[] = [];\n const keyOf = (sessionId: string, toolCallId: string) => `${sessionId}\\u0000${toolCallId}`;\n\n const rememberCompleted = (key: string): void => {\n completed.add(key);\n completedOrder.push(key);\n if (completedOrder.length <= 512) return;\n const oldest = completedOrder.shift();\n if (oldest !== undefined) completed.delete(oldest);\n };\n\n const flush = (): void => {\n for (const [key, completion] of completions) {\n if (!sessionWebPluginsInstalled(completion.event.sessionId)) continue;\n completions.delete(key);\n rememberCompleted(key);\n const tab = sessionToolRenderer(completion.event.sessionId, completion.toolName)?.completionTab?.({\n ...completion.event,\n result: completion.result,\n });\n if (tab !== undefined) open(completion.event.sessionId, tab);\n }\n };\n const unsubscribe = subscribeWebPluginRegistry(flush);\n\n return {\n apply(sessionId, frame, replay = false) {\n const toolCallId = typeof frame.toolCallId === 'string' ? frame.toolCallId : '';\n if (toolCallId === '') return;\n const key = keyOf(sessionId, toolCallId);\n if (frame.type === 'tool_execution_start') {\n if (completed.has(key)) return;\n calls.set(key, {\n toolName: typeof frame.toolName === 'string' ? frame.toolName : '',\n event: {\n sessionId,\n toolCallId,\n args: record(frame.args) ?? {},\n },\n });\n return;\n }\n if (frame.type !== 'tool_execution_end' || completed.has(key) || completions.has(key)) return;\n if (replay) {\n calls.delete(key);\n rememberCompleted(key);\n return;\n }\n const call = calls.get(key);\n if (call === undefined) return;\n calls.delete(key);\n if (frame.isError === true) {\n rememberCompleted(key);\n return;\n }\n const result = resultView(frame.result);\n if (result === undefined) {\n rememberCompleted(key);\n return;\n }\n completions.set(key, { ...call, result });\n flush();\n },\n dispose() {\n unsubscribe();\n calls.clear();\n completions.clear();\n completed.clear();\n completedOrder.length = 0;\n },\n };\n}\n"],"mappings":";;AAWA,SAAS,OAAO,OAAqD;CACnE,OAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK,IACrE,QACD,KAAA;AACN;AAEA,SAAS,WAAW,OAA4C;CAC9D,MAAM,SAAS,OAAO,KAAK;CAC3B,IAAI,WAAW,KAAA,GAAW,OAAO,KAAA;CACjC,OAAO;EAAE,SAAS,MAAM,QAAQ,OAAO,OAAO,IAAI,OAAO,UAAU,CAAC;EAAG,SAAS,OAAO;CAAQ;AACjG;;;;;;AAOA,SAAgB,yBAAyB,MAGvC;CACA,MAAM,wBAAQ,IAAI,IAAyB;CAC3C,MAAM,8BAAc,IAAI,IAAsD;CAC9E,MAAM,4BAAY,IAAI,IAAY;CAClC,MAAM,iBAA2B,CAAC;CAClC,MAAM,SAAS,WAAmB,eAAuB,GAAG,UAAU,QAAQ;CAE9E,MAAM,qBAAqB,QAAsB;EAC/C,UAAU,IAAI,GAAG;EACjB,eAAe,KAAK,GAAG;EACvB,IAAI,eAAe,UAAU,KAAK;EAClC,MAAM,SAAS,eAAe,MAAM;EACpC,IAAI,WAAW,KAAA,GAAW,UAAU,OAAO,MAAM;CACnD;CAEA,MAAM,cAAoB;EACxB,KAAK,MAAM,CAAC,KAAK,eAAe,aAAa;GAC3C,IAAI,CAACA,uBAAAA,2BAA2B,WAAW,MAAM,SAAS,GAAG;GAC7D,YAAY,OAAO,GAAG;GACtB,kBAAkB,GAAG;GACrB,MAAM,MAAMC,uBAAAA,oBAAoB,WAAW,MAAM,WAAW,WAAW,QAAQ,CAAC,EAAE,gBAAgB;IAChG,GAAG,WAAW;IACd,QAAQ,WAAW;GACrB,CAAC;GACD,IAAI,QAAQ,KAAA,GAAW,KAAK,WAAW,MAAM,WAAW,GAAG;EAC7D;CACF;CACA,MAAM,cAAcC,uBAAAA,2BAA2B,KAAK;CAEpD,OAAO;EACL,MAAM,WAAW,OAAO,SAAS,OAAO;GACtC,MAAM,aAAa,OAAO,MAAM,eAAe,WAAW,MAAM,aAAa;GAC7E,IAAI,eAAe,IAAI;GACvB,MAAM,MAAM,MAAM,WAAW,UAAU;GACvC,IAAI,MAAM,SAAS,wBAAwB;IACzC,IAAI,UAAU,IAAI,GAAG,GAAG;IACxB,MAAM,IAAI,KAAK;KACb,UAAU,OAAO,MAAM,aAAa,WAAW,MAAM,WAAW;KAChE,OAAO;MACL;MACA;MACA,MAAM,OAAO,MAAM,IAAI,KAAK,CAAC;KAC/B;IACF,CAAC;IACD;GACF;GACA,IAAI,MAAM,SAAS,wBAAwB,UAAU,IAAI,GAAG,KAAK,YAAY,IAAI,GAAG,GAAG;GACvF,IAAI,QAAQ;IACV,MAAM,OAAO,GAAG;IAChB,kBAAkB,GAAG;IACrB;GACF;GACA,MAAM,OAAO,MAAM,IAAI,GAAG;GAC1B,IAAI,SAAS,KAAA,GAAW;GACxB,MAAM,OAAO,GAAG;GAChB,IAAI,MAAM,YAAY,MAAM;IAC1B,kBAAkB,GAAG;IACrB;GACF;GACA,MAAM,SAAS,WAAW,MAAM,MAAM;GACtC,IAAI,WAAW,KAAA,GAAW;IACxB,kBAAkB,GAAG;IACrB;GACF;GACA,YAAY,IAAI,KAAK;IAAE,GAAG;IAAM;GAAO,CAAC;GACxC,MAAM;EACR;EACA,UAAU;GACR,YAAY;GACZ,MAAM,MAAM;GACZ,YAAY,MAAM;GAClB,UAAU,MAAM;GAChB,eAAe,SAAS;EAC1B;CACF;AACF"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { TransientTab } from "@agimon-ai/po-core/web";
|
|
2
|
+
//#region src/web/lib/toolCompletionTabs.d.ts
|
|
3
|
+
type Frame = Record<string, unknown>;
|
|
4
|
+
/**
|
|
5
|
+
* Converts successful live tool completions into plugin-owned temporary tabs.
|
|
6
|
+
* Calls wait for the originating session's verified composition, so an early
|
|
7
|
+
* completion is neither lost nor resolved against whichever session is active.
|
|
8
|
+
*/
|
|
9
|
+
export declare function createToolCompletionTabs(open: (sessionId: string, tab: TransientTab) => void): {
|
|
10
|
+
apply(sessionId: string, frame: Frame, replay?: boolean): void;
|
|
11
|
+
dispose(): void;
|
|
12
|
+
};
|
|
13
|
+
//#endregion
|
|
14
|
+
//# sourceMappingURL=toolCompletionTabs.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolCompletionTabs.d.mts","names":[],"sources":["../../../src/web/lib/toolCompletionTabs.ts"],"mappings":";;KAIK,QAAQ;;;;;;wBAwBG,yBAAyB,OAAO,mBAAmB,KAAK;EACtE,MAAM,mBAAmB,OAAO,OAAO;EACvC"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { sessionToolRenderer, sessionWebPluginsInstalled, subscribeWebPluginRegistry } from "./pluginRegistry.mjs";
|
|
2
|
+
//#region src/web/lib/toolCompletionTabs.ts
|
|
3
|
+
function record(value) {
|
|
4
|
+
return typeof value === "object" && value !== null && !Array.isArray(value) ? value : void 0;
|
|
5
|
+
}
|
|
6
|
+
function resultView(value) {
|
|
7
|
+
const result = record(value);
|
|
8
|
+
if (result === void 0) return void 0;
|
|
9
|
+
return {
|
|
10
|
+
content: Array.isArray(result.content) ? result.content : [],
|
|
11
|
+
details: result.details
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Converts successful live tool completions into plugin-owned temporary tabs.
|
|
16
|
+
* Calls wait for the originating session's verified composition, so an early
|
|
17
|
+
* completion is neither lost nor resolved against whichever session is active.
|
|
18
|
+
*/
|
|
19
|
+
function createToolCompletionTabs(open) {
|
|
20
|
+
const calls = /* @__PURE__ */ new Map();
|
|
21
|
+
const completions = /* @__PURE__ */ new Map();
|
|
22
|
+
const completed = /* @__PURE__ */ new Set();
|
|
23
|
+
const completedOrder = [];
|
|
24
|
+
const keyOf = (sessionId, toolCallId) => `${sessionId}\u0000${toolCallId}`;
|
|
25
|
+
const rememberCompleted = (key) => {
|
|
26
|
+
completed.add(key);
|
|
27
|
+
completedOrder.push(key);
|
|
28
|
+
if (completedOrder.length <= 512) return;
|
|
29
|
+
const oldest = completedOrder.shift();
|
|
30
|
+
if (oldest !== void 0) completed.delete(oldest);
|
|
31
|
+
};
|
|
32
|
+
const flush = () => {
|
|
33
|
+
for (const [key, completion] of completions) {
|
|
34
|
+
if (!sessionWebPluginsInstalled(completion.event.sessionId)) continue;
|
|
35
|
+
completions.delete(key);
|
|
36
|
+
rememberCompleted(key);
|
|
37
|
+
const tab = sessionToolRenderer(completion.event.sessionId, completion.toolName)?.completionTab?.({
|
|
38
|
+
...completion.event,
|
|
39
|
+
result: completion.result
|
|
40
|
+
});
|
|
41
|
+
if (tab !== void 0) open(completion.event.sessionId, tab);
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
const unsubscribe = subscribeWebPluginRegistry(flush);
|
|
45
|
+
return {
|
|
46
|
+
apply(sessionId, frame, replay = false) {
|
|
47
|
+
const toolCallId = typeof frame.toolCallId === "string" ? frame.toolCallId : "";
|
|
48
|
+
if (toolCallId === "") return;
|
|
49
|
+
const key = keyOf(sessionId, toolCallId);
|
|
50
|
+
if (frame.type === "tool_execution_start") {
|
|
51
|
+
if (completed.has(key)) return;
|
|
52
|
+
calls.set(key, {
|
|
53
|
+
toolName: typeof frame.toolName === "string" ? frame.toolName : "",
|
|
54
|
+
event: {
|
|
55
|
+
sessionId,
|
|
56
|
+
toolCallId,
|
|
57
|
+
args: record(frame.args) ?? {}
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
if (frame.type !== "tool_execution_end" || completed.has(key) || completions.has(key)) return;
|
|
63
|
+
if (replay) {
|
|
64
|
+
calls.delete(key);
|
|
65
|
+
rememberCompleted(key);
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
const call = calls.get(key);
|
|
69
|
+
if (call === void 0) return;
|
|
70
|
+
calls.delete(key);
|
|
71
|
+
if (frame.isError === true) {
|
|
72
|
+
rememberCompleted(key);
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
const result = resultView(frame.result);
|
|
76
|
+
if (result === void 0) {
|
|
77
|
+
rememberCompleted(key);
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
completions.set(key, {
|
|
81
|
+
...call,
|
|
82
|
+
result
|
|
83
|
+
});
|
|
84
|
+
flush();
|
|
85
|
+
},
|
|
86
|
+
dispose() {
|
|
87
|
+
unsubscribe();
|
|
88
|
+
calls.clear();
|
|
89
|
+
completions.clear();
|
|
90
|
+
completed.clear();
|
|
91
|
+
completedOrder.length = 0;
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
//#endregion
|
|
96
|
+
export { createToolCompletionTabs };
|
|
97
|
+
|
|
98
|
+
//# sourceMappingURL=toolCompletionTabs.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolCompletionTabs.mjs","names":[],"sources":["../../../src/web/lib/toolCompletionTabs.ts"],"sourcesContent":["import type { ToolCompletionEvent, ToolResultView, TransientTab } from '@agimon-ai/po-core/web';\n\nimport { sessionToolRenderer, sessionWebPluginsInstalled, subscribeWebPluginRegistry } from './pluginRegistry';\n\ntype Frame = Record<string, unknown>;\n\ninterface PendingCall {\n event: Omit<ToolCompletionEvent, 'result'>;\n toolName: string;\n}\n\nfunction record(value: unknown): Record<string, unknown> | undefined {\n return typeof value === 'object' && value !== null && !Array.isArray(value)\n ? (value as Record<string, unknown>)\n : undefined;\n}\n\nfunction resultView(value: unknown): ToolResultView | undefined {\n const result = record(value);\n if (result === undefined) return undefined;\n return { content: Array.isArray(result.content) ? result.content : [], details: result.details };\n}\n\n/**\n * Converts successful live tool completions into plugin-owned temporary tabs.\n * Calls wait for the originating session's verified composition, so an early\n * completion is neither lost nor resolved against whichever session is active.\n */\nexport function createToolCompletionTabs(open: (sessionId: string, tab: TransientTab) => void): {\n apply(sessionId: string, frame: Frame, replay?: boolean): void;\n dispose(): void;\n} {\n const calls = new Map<string, PendingCall>();\n const completions = new Map<string, PendingCall & { result: ToolResultView }>();\n const completed = new Set<string>();\n const completedOrder: string[] = [];\n const keyOf = (sessionId: string, toolCallId: string) => `${sessionId}\\u0000${toolCallId}`;\n\n const rememberCompleted = (key: string): void => {\n completed.add(key);\n completedOrder.push(key);\n if (completedOrder.length <= 512) return;\n const oldest = completedOrder.shift();\n if (oldest !== undefined) completed.delete(oldest);\n };\n\n const flush = (): void => {\n for (const [key, completion] of completions) {\n if (!sessionWebPluginsInstalled(completion.event.sessionId)) continue;\n completions.delete(key);\n rememberCompleted(key);\n const tab = sessionToolRenderer(completion.event.sessionId, completion.toolName)?.completionTab?.({\n ...completion.event,\n result: completion.result,\n });\n if (tab !== undefined) open(completion.event.sessionId, tab);\n }\n };\n const unsubscribe = subscribeWebPluginRegistry(flush);\n\n return {\n apply(sessionId, frame, replay = false) {\n const toolCallId = typeof frame.toolCallId === 'string' ? frame.toolCallId : '';\n if (toolCallId === '') return;\n const key = keyOf(sessionId, toolCallId);\n if (frame.type === 'tool_execution_start') {\n if (completed.has(key)) return;\n calls.set(key, {\n toolName: typeof frame.toolName === 'string' ? frame.toolName : '',\n event: {\n sessionId,\n toolCallId,\n args: record(frame.args) ?? {},\n },\n });\n return;\n }\n if (frame.type !== 'tool_execution_end' || completed.has(key) || completions.has(key)) return;\n if (replay) {\n calls.delete(key);\n rememberCompleted(key);\n return;\n }\n const call = calls.get(key);\n if (call === undefined) return;\n calls.delete(key);\n if (frame.isError === true) {\n rememberCompleted(key);\n return;\n }\n const result = resultView(frame.result);\n if (result === undefined) {\n rememberCompleted(key);\n return;\n }\n completions.set(key, { ...call, result });\n flush();\n },\n dispose() {\n unsubscribe();\n calls.clear();\n completions.clear();\n completed.clear();\n completedOrder.length = 0;\n },\n };\n}\n"],"mappings":";;AAWA,SAAS,OAAO,OAAqD;CACnE,OAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK,IACrE,QACD,KAAA;AACN;AAEA,SAAS,WAAW,OAA4C;CAC9D,MAAM,SAAS,OAAO,KAAK;CAC3B,IAAI,WAAW,KAAA,GAAW,OAAO,KAAA;CACjC,OAAO;EAAE,SAAS,MAAM,QAAQ,OAAO,OAAO,IAAI,OAAO,UAAU,CAAC;EAAG,SAAS,OAAO;CAAQ;AACjG;;;;;;AAOA,SAAgB,yBAAyB,MAGvC;CACA,MAAM,wBAAQ,IAAI,IAAyB;CAC3C,MAAM,8BAAc,IAAI,IAAsD;CAC9E,MAAM,4BAAY,IAAI,IAAY;CAClC,MAAM,iBAA2B,CAAC;CAClC,MAAM,SAAS,WAAmB,eAAuB,GAAG,UAAU,QAAQ;CAE9E,MAAM,qBAAqB,QAAsB;EAC/C,UAAU,IAAI,GAAG;EACjB,eAAe,KAAK,GAAG;EACvB,IAAI,eAAe,UAAU,KAAK;EAClC,MAAM,SAAS,eAAe,MAAM;EACpC,IAAI,WAAW,KAAA,GAAW,UAAU,OAAO,MAAM;CACnD;CAEA,MAAM,cAAoB;EACxB,KAAK,MAAM,CAAC,KAAK,eAAe,aAAa;GAC3C,IAAI,CAAC,2BAA2B,WAAW,MAAM,SAAS,GAAG;GAC7D,YAAY,OAAO,GAAG;GACtB,kBAAkB,GAAG;GACrB,MAAM,MAAM,oBAAoB,WAAW,MAAM,WAAW,WAAW,QAAQ,CAAC,EAAE,gBAAgB;IAChG,GAAG,WAAW;IACd,QAAQ,WAAW;GACrB,CAAC;GACD,IAAI,QAAQ,KAAA,GAAW,KAAK,WAAW,MAAM,WAAW,GAAG;EAC7D;CACF;CACA,MAAM,cAAc,2BAA2B,KAAK;CAEpD,OAAO;EACL,MAAM,WAAW,OAAO,SAAS,OAAO;GACtC,MAAM,aAAa,OAAO,MAAM,eAAe,WAAW,MAAM,aAAa;GAC7E,IAAI,eAAe,IAAI;GACvB,MAAM,MAAM,MAAM,WAAW,UAAU;GACvC,IAAI,MAAM,SAAS,wBAAwB;IACzC,IAAI,UAAU,IAAI,GAAG,GAAG;IACxB,MAAM,IAAI,KAAK;KACb,UAAU,OAAO,MAAM,aAAa,WAAW,MAAM,WAAW;KAChE,OAAO;MACL;MACA;MACA,MAAM,OAAO,MAAM,IAAI,KAAK,CAAC;KAC/B;IACF,CAAC;IACD;GACF;GACA,IAAI,MAAM,SAAS,wBAAwB,UAAU,IAAI,GAAG,KAAK,YAAY,IAAI,GAAG,GAAG;GACvF,IAAI,QAAQ;IACV,MAAM,OAAO,GAAG;IAChB,kBAAkB,GAAG;IACrB;GACF;GACA,MAAM,OAAO,MAAM,IAAI,GAAG;GAC1B,IAAI,SAAS,KAAA,GAAW;GACxB,MAAM,OAAO,GAAG;GAChB,IAAI,MAAM,YAAY,MAAM;IAC1B,kBAAkB,GAAG;IACrB;GACF;GACA,MAAM,SAAS,WAAW,MAAM,MAAM;GACtC,IAAI,WAAW,KAAA,GAAW;IACxB,kBAAkB,GAAG;IACrB;GACF;GACA,YAAY,IAAI,KAAK;IAAE,GAAG;IAAM;GAAO,CAAC;GACxC,MAAM;EACR;EACA,UAAU;GACR,YAAY;GACZ,MAAM,MAAM;GACZ,YAAY,MAAM;GAClB,UAAU,MAAM;GAChB,eAAe,SAAS;EAC1B;CACF;AACF"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
//#region src/web/lib/toolMessageProps.ts
|
|
2
|
+
/** The props a tool's message renderer receives: the slot actions plus the call and its newest result. */
|
|
3
|
+
function toolMessageProps(slotProps, entry, statuses) {
|
|
4
|
+
return {
|
|
5
|
+
...slotProps,
|
|
6
|
+
toolCallId: entry.toolCallId,
|
|
7
|
+
toolName: entry.name,
|
|
8
|
+
args: entry.args,
|
|
9
|
+
statuses,
|
|
10
|
+
result: entry.result,
|
|
11
|
+
output: entry.output,
|
|
12
|
+
running: entry.running,
|
|
13
|
+
isError: entry.isError
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
//#endregion
|
|
17
|
+
exports.toolMessageProps = toolMessageProps;
|
|
18
|
+
|
|
19
|
+
//# sourceMappingURL=toolMessageProps.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolMessageProps.cjs","names":[],"sources":["../../../src/web/lib/toolMessageProps.ts"],"sourcesContent":["import type { ToolMessageRenderProps, WebPluginSlotProps } from '@agimon-ai/po-core/web';\n\nimport type { ToolEntry } from './sessionModel';\n\n/** The props a tool's message renderer receives: the slot actions plus the call and its newest result. */\nexport function toolMessageProps(\n slotProps: WebPluginSlotProps,\n entry: ToolEntry,\n statuses: Readonly<Record<string, string>>,\n): ToolMessageRenderProps {\n return {\n ...slotProps,\n toolCallId: entry.toolCallId,\n toolName: entry.name,\n args: entry.args,\n statuses,\n result: entry.result,\n output: entry.output,\n running: entry.running,\n isError: entry.isError,\n };\n}\n"],"mappings":";;AAKA,SAAgB,iBACd,WACA,OACA,UACwB;CACxB,OAAO;EACL,GAAG;EACH,YAAY,MAAM;EAClB,UAAU,MAAM;EAChB,MAAM,MAAM;EACZ;EACA,QAAQ,MAAM;EACd,QAAQ,MAAM;EACd,SAAS,MAAM;EACf,SAAS,MAAM;CACjB;AACF"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ToolEntry } from "./sessionModel.mjs";
|
|
2
|
+
import { ToolMessageRenderProps, WebPluginSlotProps } from "@agimon-ai/po-core/web";
|
|
3
|
+
//#region src/web/lib/toolMessageProps.d.ts
|
|
4
|
+
/** The props a tool's message renderer receives: the slot actions plus the call and its newest result. */
|
|
5
|
+
export declare function toolMessageProps(slotProps: WebPluginSlotProps, entry: ToolEntry, statuses: Readonly<Record<string, string>>): ToolMessageRenderProps;
|
|
6
|
+
//#endregion
|
|
7
|
+
//# sourceMappingURL=toolMessageProps.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolMessageProps.d.mts","names":[],"sources":["../../../src/web/lib/toolMessageProps.ts"],"mappings":";;;;wBAKgB,iBACd,WAAW,oBACX,OAAO,WACP,UAAU,SAAS,0BAClB"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
//#region src/web/lib/toolMessageProps.ts
|
|
2
|
+
/** The props a tool's message renderer receives: the slot actions plus the call and its newest result. */
|
|
3
|
+
function toolMessageProps(slotProps, entry, statuses) {
|
|
4
|
+
return {
|
|
5
|
+
...slotProps,
|
|
6
|
+
toolCallId: entry.toolCallId,
|
|
7
|
+
toolName: entry.name,
|
|
8
|
+
args: entry.args,
|
|
9
|
+
statuses,
|
|
10
|
+
result: entry.result,
|
|
11
|
+
output: entry.output,
|
|
12
|
+
running: entry.running,
|
|
13
|
+
isError: entry.isError
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
//#endregion
|
|
17
|
+
export { toolMessageProps };
|
|
18
|
+
|
|
19
|
+
//# sourceMappingURL=toolMessageProps.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolMessageProps.mjs","names":[],"sources":["../../../src/web/lib/toolMessageProps.ts"],"sourcesContent":["import type { ToolMessageRenderProps, WebPluginSlotProps } from '@agimon-ai/po-core/web';\n\nimport type { ToolEntry } from './sessionModel';\n\n/** The props a tool's message renderer receives: the slot actions plus the call and its newest result. */\nexport function toolMessageProps(\n slotProps: WebPluginSlotProps,\n entry: ToolEntry,\n statuses: Readonly<Record<string, string>>,\n): ToolMessageRenderProps {\n return {\n ...slotProps,\n toolCallId: entry.toolCallId,\n toolName: entry.name,\n args: entry.args,\n statuses,\n result: entry.result,\n output: entry.output,\n running: entry.running,\n isError: entry.isError,\n };\n}\n"],"mappings":";;AAKA,SAAgB,iBACd,WACA,OACA,UACwB;CACxB,OAAO;EACL,GAAG;EACH,YAAY,MAAM;EAClB,UAAU,MAAM;EAChB,MAAM,MAAM;EACZ;EACA,QAAQ,MAAM;EACd,QAAQ,MAAM;EACd,SAAS,MAAM;EACf,SAAS,MAAM;CACjB;AACF"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
const require_pluginRegistry = require("./pluginRegistry.cjs");
|
|
2
|
+
//#region src/web/lib/toolPrompt.ts
|
|
3
|
+
/** The request as a plugin reads it; the same fields, without the host's own type. */
|
|
4
|
+
function promptDialog(dialog) {
|
|
5
|
+
return {
|
|
6
|
+
id: dialog.id,
|
|
7
|
+
method: dialog.method,
|
|
8
|
+
title: dialog.title,
|
|
9
|
+
message: dialog.message,
|
|
10
|
+
options: dialog.options,
|
|
11
|
+
placeholder: dialog.placeholder,
|
|
12
|
+
prefill: dialog.prefill
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* `spokenFor` is a request some other surface has already taken: the one the
|
|
17
|
+
* selection bar claimed with a click, or one whose prompt threw and handed it
|
|
18
|
+
* back. Passed in rather than read, because both live in stores and this layer
|
|
19
|
+
* sits below them so that every surface can reach it.
|
|
20
|
+
*/
|
|
21
|
+
function toolPromptClaim(state, spokenFor) {
|
|
22
|
+
const request = state.dialog;
|
|
23
|
+
if (request === null) return null;
|
|
24
|
+
if (spokenFor === request.id) return null;
|
|
25
|
+
const dialog = promptDialog(request);
|
|
26
|
+
const groups = [state.activeTools, state.entries];
|
|
27
|
+
for (const entries of groups) for (let index = entries.length - 1; index >= 0; index -= 1) {
|
|
28
|
+
const entry = entries[index];
|
|
29
|
+
if (entry === void 0 || entry.kind !== "tool" || !entry.running) continue;
|
|
30
|
+
const prompt = require_pluginRegistry.pluginToolRenderer(entry.name, state.statuses)?.prompt;
|
|
31
|
+
if (prompt === void 0) continue;
|
|
32
|
+
if (prompt.claims?.(dialog, entry.args) === false) continue;
|
|
33
|
+
return {
|
|
34
|
+
entry,
|
|
35
|
+
prompt,
|
|
36
|
+
dialog
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
//#endregion
|
|
42
|
+
exports.toolPromptClaim = toolPromptClaim;
|
|
43
|
+
|
|
44
|
+
//# sourceMappingURL=toolPrompt.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolPrompt.cjs","names":["pluginToolRenderer"],"sources":["../../../src/web/lib/toolPrompt.ts"],"sourcesContent":["import type { ToolPromptContribution, ToolPromptDialog } from '@agimon-ai/po-core/web';\n\nimport { pluginToolRenderer } from './pluginRegistry';\nimport type { DialogRequest, SessionState, ToolEntry } from './sessionModel';\n\n/**\n * Which running tool, if any, owns the open extension UI request.\n *\n * The composer and the dialog have to agree, or the reader gets both surfaces\n * or neither, so the verdict is one pure function they both read rather than\n * a flag each keeps. It is pure for the same reason the rest of sessionModel\n * is: the interesting cases are combinations of session state, and none of\n * them need a browser to exercise.\n *\n * The pairing is an inference. Pi's protocol does not say which tool a request\n * belongs to, only that one is open, so this reads the newest running tool\n * whose plugin declared a prompt and lets that plugin confirm the request is\n * its own. A tool that declares no prompt never participates, and a request no\n * prompt claims stays with the host's dialog.\n */\nexport interface ToolPromptClaim {\n entry: ToolEntry;\n prompt: ToolPromptContribution;\n dialog: ToolPromptDialog;\n}\n\n/** The request as a plugin reads it; the same fields, without the host's own type. */\nfunction promptDialog(dialog: DialogRequest): ToolPromptDialog {\n return {\n id: dialog.id,\n method: dialog.method,\n title: dialog.title,\n message: dialog.message,\n options: dialog.options,\n placeholder: dialog.placeholder,\n prefill: dialog.prefill,\n };\n}\n\n/** The three facts the verdict rests on, so a caller can memoize on exactly those. */\nexport type ToolPromptInput = Pick<SessionState, 'dialog' | 'entries' | 'activeTools' | 'statuses'>;\n\n/**\n * `spokenFor` is a request some other surface has already taken: the one the\n * selection bar claimed with a click, or one whose prompt threw and handed it\n * back. Passed in rather than read, because both live in stores and this layer\n * sits below them so that every surface can reach it.\n */\nexport function toolPromptClaim(state: ToolPromptInput, spokenFor: string | null): ToolPromptClaim | null {\n const request = state.dialog;\n if (request === null) return null;\n if (spokenFor === request.id) return null;\n\n const dialog = promptDialog(request);\n // Live tools are kept outside the protocol-owned transcript. Search those\n // first, then fall back to timeline tools for threads and direct frame clients.\n const groups = [state.activeTools, state.entries] as const;\n for (const entries of groups) {\n for (let index = entries.length - 1; index >= 0; index -= 1) {\n const entry = entries[index];\n if (entry === undefined || entry.kind !== 'tool' || !entry.running) continue;\n const prompt = pluginToolRenderer(entry.name, state.statuses)?.prompt;\n if (prompt === undefined) continue;\n if (prompt.claims?.(dialog, entry.args) === false) continue;\n return { entry, prompt, dialog };\n }\n }\n return null;\n}\n"],"mappings":";;;AA2BA,SAAS,aAAa,QAAyC;CAC7D,OAAO;EACL,IAAI,OAAO;EACX,QAAQ,OAAO;EACf,OAAO,OAAO;EACd,SAAS,OAAO;EAChB,SAAS,OAAO;EAChB,aAAa,OAAO;EACpB,SAAS,OAAO;CAClB;AACF;;;;;;;AAWA,SAAgB,gBAAgB,OAAwB,WAAkD;CACxG,MAAM,UAAU,MAAM;CACtB,IAAI,YAAY,MAAM,OAAO;CAC7B,IAAI,cAAc,QAAQ,IAAI,OAAO;CAErC,MAAM,SAAS,aAAa,OAAO;CAGnC,MAAM,SAAS,CAAC,MAAM,aAAa,MAAM,OAAO;CAChD,KAAK,MAAM,WAAW,QACpB,KAAK,IAAI,QAAQ,QAAQ,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG;EAC3D,MAAM,QAAQ,QAAQ;EACtB,IAAI,UAAU,KAAA,KAAa,MAAM,SAAS,UAAU,CAAC,MAAM,SAAS;EACpE,MAAM,SAASA,uBAAAA,mBAAmB,MAAM,MAAM,MAAM,QAAQ,CAAC,EAAE;EAC/D,IAAI,WAAW,KAAA,GAAW;EAC1B,IAAI,OAAO,SAAS,QAAQ,MAAM,IAAI,MAAM,OAAO;EACnD,OAAO;GAAE;GAAO;GAAQ;EAAO;CACjC;CAEF,OAAO;AACT"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { SessionState, ToolEntry } from "./sessionModel.mjs";
|
|
2
|
+
import { ToolPromptContribution, ToolPromptDialog } from "@agimon-ai/po-core/web";
|
|
3
|
+
//#region src/web/lib/toolPrompt.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Which running tool, if any, owns the open extension UI request.
|
|
6
|
+
*
|
|
7
|
+
* The composer and the dialog have to agree, or the reader gets both surfaces
|
|
8
|
+
* or neither, so the verdict is one pure function they both read rather than
|
|
9
|
+
* a flag each keeps. It is pure for the same reason the rest of sessionModel
|
|
10
|
+
* is: the interesting cases are combinations of session state, and none of
|
|
11
|
+
* them need a browser to exercise.
|
|
12
|
+
*
|
|
13
|
+
* The pairing is an inference. Pi's protocol does not say which tool a request
|
|
14
|
+
* belongs to, only that one is open, so this reads the newest running tool
|
|
15
|
+
* whose plugin declared a prompt and lets that plugin confirm the request is
|
|
16
|
+
* its own. A tool that declares no prompt never participates, and a request no
|
|
17
|
+
* prompt claims stays with the host's dialog.
|
|
18
|
+
*/
|
|
19
|
+
export interface ToolPromptClaim {
|
|
20
|
+
entry: ToolEntry;
|
|
21
|
+
prompt: ToolPromptContribution;
|
|
22
|
+
dialog: ToolPromptDialog;
|
|
23
|
+
}
|
|
24
|
+
/** The three facts the verdict rests on, so a caller can memoize on exactly those. */
|
|
25
|
+
export type ToolPromptInput = Pick<SessionState, 'dialog' | 'entries' | 'activeTools' | 'statuses'>;
|
|
26
|
+
/**
|
|
27
|
+
* `spokenFor` is a request some other surface has already taken: the one the
|
|
28
|
+
* selection bar claimed with a click, or one whose prompt threw and handed it
|
|
29
|
+
* back. Passed in rather than read, because both live in stores and this layer
|
|
30
|
+
* sits below them so that every surface can reach it.
|
|
31
|
+
*/
|
|
32
|
+
export declare function toolPromptClaim(state: ToolPromptInput, spokenFor: string | null): ToolPromptClaim | null;
|
|
33
|
+
//#endregion
|
|
34
|
+
//# sourceMappingURL=toolPrompt.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolPrompt.d.mts","names":[],"sources":["../../../src/web/lib/toolPrompt.ts"],"mappings":";;;;;;;;;;;;;;;;;;iBAoBiB;EACf,OAAO;EACP,QAAQ;EACR,QAAQ;;;YAiBE,kBAAkB,KAAK;;;;;;;wBAQnB,gBAAgB,OAAO,iBAAiB,2BAA2B"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { pluginToolRenderer } from "./pluginRegistry.mjs";
|
|
2
|
+
//#region src/web/lib/toolPrompt.ts
|
|
3
|
+
/** The request as a plugin reads it; the same fields, without the host's own type. */
|
|
4
|
+
function promptDialog(dialog) {
|
|
5
|
+
return {
|
|
6
|
+
id: dialog.id,
|
|
7
|
+
method: dialog.method,
|
|
8
|
+
title: dialog.title,
|
|
9
|
+
message: dialog.message,
|
|
10
|
+
options: dialog.options,
|
|
11
|
+
placeholder: dialog.placeholder,
|
|
12
|
+
prefill: dialog.prefill
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* `spokenFor` is a request some other surface has already taken: the one the
|
|
17
|
+
* selection bar claimed with a click, or one whose prompt threw and handed it
|
|
18
|
+
* back. Passed in rather than read, because both live in stores and this layer
|
|
19
|
+
* sits below them so that every surface can reach it.
|
|
20
|
+
*/
|
|
21
|
+
function toolPromptClaim(state, spokenFor) {
|
|
22
|
+
const request = state.dialog;
|
|
23
|
+
if (request === null) return null;
|
|
24
|
+
if (spokenFor === request.id) return null;
|
|
25
|
+
const dialog = promptDialog(request);
|
|
26
|
+
const groups = [state.activeTools, state.entries];
|
|
27
|
+
for (const entries of groups) for (let index = entries.length - 1; index >= 0; index -= 1) {
|
|
28
|
+
const entry = entries[index];
|
|
29
|
+
if (entry === void 0 || entry.kind !== "tool" || !entry.running) continue;
|
|
30
|
+
const prompt = pluginToolRenderer(entry.name, state.statuses)?.prompt;
|
|
31
|
+
if (prompt === void 0) continue;
|
|
32
|
+
if (prompt.claims?.(dialog, entry.args) === false) continue;
|
|
33
|
+
return {
|
|
34
|
+
entry,
|
|
35
|
+
prompt,
|
|
36
|
+
dialog
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
//#endregion
|
|
42
|
+
export { toolPromptClaim };
|
|
43
|
+
|
|
44
|
+
//# sourceMappingURL=toolPrompt.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolPrompt.mjs","names":[],"sources":["../../../src/web/lib/toolPrompt.ts"],"sourcesContent":["import type { ToolPromptContribution, ToolPromptDialog } from '@agimon-ai/po-core/web';\n\nimport { pluginToolRenderer } from './pluginRegistry';\nimport type { DialogRequest, SessionState, ToolEntry } from './sessionModel';\n\n/**\n * Which running tool, if any, owns the open extension UI request.\n *\n * The composer and the dialog have to agree, or the reader gets both surfaces\n * or neither, so the verdict is one pure function they both read rather than\n * a flag each keeps. It is pure for the same reason the rest of sessionModel\n * is: the interesting cases are combinations of session state, and none of\n * them need a browser to exercise.\n *\n * The pairing is an inference. Pi's protocol does not say which tool a request\n * belongs to, only that one is open, so this reads the newest running tool\n * whose plugin declared a prompt and lets that plugin confirm the request is\n * its own. A tool that declares no prompt never participates, and a request no\n * prompt claims stays with the host's dialog.\n */\nexport interface ToolPromptClaim {\n entry: ToolEntry;\n prompt: ToolPromptContribution;\n dialog: ToolPromptDialog;\n}\n\n/** The request as a plugin reads it; the same fields, without the host's own type. */\nfunction promptDialog(dialog: DialogRequest): ToolPromptDialog {\n return {\n id: dialog.id,\n method: dialog.method,\n title: dialog.title,\n message: dialog.message,\n options: dialog.options,\n placeholder: dialog.placeholder,\n prefill: dialog.prefill,\n };\n}\n\n/** The three facts the verdict rests on, so a caller can memoize on exactly those. */\nexport type ToolPromptInput = Pick<SessionState, 'dialog' | 'entries' | 'activeTools' | 'statuses'>;\n\n/**\n * `spokenFor` is a request some other surface has already taken: the one the\n * selection bar claimed with a click, or one whose prompt threw and handed it\n * back. Passed in rather than read, because both live in stores and this layer\n * sits below them so that every surface can reach it.\n */\nexport function toolPromptClaim(state: ToolPromptInput, spokenFor: string | null): ToolPromptClaim | null {\n const request = state.dialog;\n if (request === null) return null;\n if (spokenFor === request.id) return null;\n\n const dialog = promptDialog(request);\n // Live tools are kept outside the protocol-owned transcript. Search those\n // first, then fall back to timeline tools for threads and direct frame clients.\n const groups = [state.activeTools, state.entries] as const;\n for (const entries of groups) {\n for (let index = entries.length - 1; index >= 0; index -= 1) {\n const entry = entries[index];\n if (entry === undefined || entry.kind !== 'tool' || !entry.running) continue;\n const prompt = pluginToolRenderer(entry.name, state.statuses)?.prompt;\n if (prompt === undefined) continue;\n if (prompt.claims?.(dialog, entry.args) === false) continue;\n return { entry, prompt, dialog };\n }\n }\n return null;\n}\n"],"mappings":";;;AA2BA,SAAS,aAAa,QAAyC;CAC7D,OAAO;EACL,IAAI,OAAO;EACX,QAAQ,OAAO;EACf,OAAO,OAAO;EACd,SAAS,OAAO;EAChB,SAAS,OAAO;EAChB,aAAa,OAAO;EACpB,SAAS,OAAO;CAClB;AACF;;;;;;;AAWA,SAAgB,gBAAgB,OAAwB,WAAkD;CACxG,MAAM,UAAU,MAAM;CACtB,IAAI,YAAY,MAAM,OAAO;CAC7B,IAAI,cAAc,QAAQ,IAAI,OAAO;CAErC,MAAM,SAAS,aAAa,OAAO;CAGnC,MAAM,SAAS,CAAC,MAAM,aAAa,MAAM,OAAO;CAChD,KAAK,MAAM,WAAW,QACpB,KAAK,IAAI,QAAQ,QAAQ,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG;EAC3D,MAAM,QAAQ,QAAQ;EACtB,IAAI,UAAU,KAAA,KAAa,MAAM,SAAS,UAAU,CAAC,MAAM,SAAS;EACpE,MAAM,SAAS,mBAAmB,MAAM,MAAM,MAAM,QAAQ,CAAC,EAAE;EAC/D,IAAI,WAAW,KAAA,GAAW;EAC1B,IAAI,OAAO,SAAS,QAAQ,MAAM,IAAI,MAAM,OAAO;EACnD,OAAO;GAAE;GAAO;GAAQ;EAAO;CACjC;CAEF,OAAO;AACT"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
const require_sessionProtocolCommands = require("./sessionProtocolCommands.cjs");
|
|
2
|
+
//#region src/web/lib/transport.ts
|
|
3
|
+
let send;
|
|
4
|
+
let invokePlugin;
|
|
5
|
+
const hubConnectedListeners = /* @__PURE__ */ new Set();
|
|
6
|
+
/**
|
|
7
|
+
* Holds the live socket sender.
|
|
8
|
+
*
|
|
9
|
+
* The socket is owned by the composition root but commands are issued from
|
|
10
|
+
* feature code, and this keeps that one indirection explicit instead of
|
|
11
|
+
* threading a sender through every component.
|
|
12
|
+
*/
|
|
13
|
+
function bindTransport(sender, pluginInvoker) {
|
|
14
|
+
send = sender;
|
|
15
|
+
invokePlugin = pluginInvoker;
|
|
16
|
+
}
|
|
17
|
+
function releaseTransport() {
|
|
18
|
+
send = void 0;
|
|
19
|
+
invokePlugin = void 0;
|
|
20
|
+
}
|
|
21
|
+
/** Sends one command frame to a session's agent, enveloped for the hub. */
|
|
22
|
+
function sendFrame(sessionId, frame) {
|
|
23
|
+
require_sessionProtocolCommands.sendSessionProtocolFrame(sessionId, frame);
|
|
24
|
+
}
|
|
25
|
+
/** Resolves when a session command is accepted or explicitly refused, never when a turn finishes. */
|
|
26
|
+
function sendFrameWithAck(sessionId, frame) {
|
|
27
|
+
return require_sessionProtocolCommands.requestSessionProtocolFrame(sessionId, frame);
|
|
28
|
+
}
|
|
29
|
+
/** Sends one hub-level frame (subscribe, unsubscribe) as-is. */
|
|
30
|
+
function sendHubFrame(frame) {
|
|
31
|
+
send?.(frame);
|
|
32
|
+
}
|
|
33
|
+
/** Calls an exact-scope typed server method through the authenticated Chord binding. */
|
|
34
|
+
function invokeServerMethod(call) {
|
|
35
|
+
if (!invokePlugin) return Promise.reject(/* @__PURE__ */ new Error("The plugin protocol is not connected."));
|
|
36
|
+
return invokePlugin(call);
|
|
37
|
+
}
|
|
38
|
+
/** Subscribes to fresh page socket connections. */
|
|
39
|
+
function onHubConnected(listener) {
|
|
40
|
+
hubConnectedListeners.add(listener);
|
|
41
|
+
return () => hubConnectedListeners.delete(listener);
|
|
42
|
+
}
|
|
43
|
+
/** Notifies page socket consumers after the hub establishes a fresh connection. */
|
|
44
|
+
function notifyHubConnected() {
|
|
45
|
+
for (const listener of hubConnectedListeners) listener();
|
|
46
|
+
}
|
|
47
|
+
//#endregion
|
|
48
|
+
exports.bindTransport = bindTransport;
|
|
49
|
+
exports.invokeServerMethod = invokeServerMethod;
|
|
50
|
+
exports.notifyHubConnected = notifyHubConnected;
|
|
51
|
+
exports.onHubConnected = onHubConnected;
|
|
52
|
+
exports.releaseTransport = releaseTransport;
|
|
53
|
+
exports.sendFrame = sendFrame;
|
|
54
|
+
exports.sendFrameWithAck = sendFrameWithAck;
|
|
55
|
+
exports.sendHubFrame = sendHubFrame;
|
|
56
|
+
|
|
57
|
+
//# sourceMappingURL=transport.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transport.cjs","names":["requestSessionProtocolFrame"],"sources":["../../../src/web/lib/transport.ts"],"sourcesContent":["import { requestSessionProtocolFrame, sendSessionProtocolFrame } from './sessionProtocolCommands';\n\ntype Frame = Record<string, unknown>;\n\nlet send: ((frame: object) => void) | undefined;\nlet invokePlugin:\n | ((call: {\n mount:\n | { scope: 'global' }\n | { scope: 'workspace'; workspaceId: string }\n | { scope: 'session'; sessionId: string };\n service: string;\n method: string;\n input: unknown;\n }) => Promise<unknown>)\n | undefined;\nconst hubConnectedListeners = new Set<() => void>();\n\n/**\n * Holds the live socket sender.\n *\n * The socket is owned by the composition root but commands are issued from\n * feature code, and this keeps that one indirection explicit instead of\n * threading a sender through every component.\n */\nexport function bindTransport(sender: (frame: object) => void, pluginInvoker?: typeof invokePlugin): void {\n send = sender;\n invokePlugin = pluginInvoker;\n}\n\nexport function releaseTransport(): void {\n send = undefined;\n invokePlugin = undefined;\n}\n\n/** Sends one command frame to a session's agent, enveloped for the hub. */\nexport function sendFrame(sessionId: string, frame: Frame): void {\n sendSessionProtocolFrame(sessionId, frame);\n}\n\n/** Resolves when a session command is accepted or explicitly refused, never when a turn finishes. */\nexport function sendFrameWithAck(sessionId: string, frame: Frame): ReturnType<typeof requestSessionProtocolFrame> {\n return requestSessionProtocolFrame(sessionId, frame);\n}\n\n/** Sends one hub-level frame (subscribe, unsubscribe) as-is. */\nexport function sendHubFrame(frame: object): void {\n send?.(frame);\n}\n\n/** Calls an exact-scope typed server method through the authenticated Chord binding. */\nexport function invokeServerMethod(call: Parameters<NonNullable<typeof invokePlugin>>[0]): Promise<unknown> {\n if (!invokePlugin) return Promise.reject(new Error('The plugin protocol is not connected.'));\n return invokePlugin(call);\n}\n\n/** Subscribes to fresh page socket connections. */\nexport function onHubConnected(listener: () => void): () => void {\n hubConnectedListeners.add(listener);\n return () => hubConnectedListeners.delete(listener);\n}\n\n/** Notifies page socket consumers after the hub establishes a fresh connection. */\nexport function notifyHubConnected(): void {\n for (const listener of hubConnectedListeners) listener();\n}\n"],"mappings":";;AAIA,IAAI;AACJ,IAAI;AAWJ,MAAM,wCAAwB,IAAI,IAAgB;;;;;;;;AASlD,SAAgB,cAAc,QAAiC,eAA2C;CACxG,OAAO;CACP,eAAe;AACjB;AAEA,SAAgB,mBAAyB;CACvC,OAAO,KAAA;CACP,eAAe,KAAA;AACjB;;AAGA,SAAgB,UAAU,WAAmB,OAAoB;CAC/D,gCAAA,yBAAyB,WAAW,KAAK;AAC3C;;AAGA,SAAgB,iBAAiB,WAAmB,OAA8D;CAChH,OAAOA,gCAAAA,4BAA4B,WAAW,KAAK;AACrD;;AAGA,SAAgB,aAAa,OAAqB;CAChD,OAAO,KAAK;AACd;;AAGA,SAAgB,mBAAmB,MAAyE;CAC1G,IAAI,CAAC,cAAc,OAAO,QAAQ,uBAAO,IAAI,MAAM,uCAAuC,CAAC;CAC3F,OAAO,aAAa,IAAI;AAC1B;;AAGA,SAAgB,eAAe,UAAkC;CAC/D,sBAAsB,IAAI,QAAQ;CAClC,aAAa,sBAAsB,OAAO,QAAQ;AACpD;;AAGA,SAAgB,qBAA2B;CACzC,KAAK,MAAM,YAAY,uBAAuB,SAAS;AACzD"}
|