@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,675 @@
|
|
|
1
|
+
const require_leaderTree = require("./leaderTree.cjs");
|
|
2
|
+
const require_pluginScopes = require("./pluginScopes.cjs");
|
|
3
|
+
const require_templateCatalog = require("./templateCatalog.cjs");
|
|
4
|
+
//#region src/web/lib/pluginRegistry.ts
|
|
5
|
+
/** The slots the host itself declares; a plugin's own slots are namespaced by its id instead. */
|
|
6
|
+
const HOST_SLOTS = {
|
|
7
|
+
overlay: "overlay",
|
|
8
|
+
rail: "rail",
|
|
9
|
+
context: "context",
|
|
10
|
+
selectionBar: "selection-bar",
|
|
11
|
+
activity: "activity",
|
|
12
|
+
composerActions: "composer-actions",
|
|
13
|
+
composerMenu: "composer-menu",
|
|
14
|
+
sessionMenu: "session-menu",
|
|
15
|
+
/** A workspace plugin fill here replaces the host's new-session dialog for that workspace. */
|
|
16
|
+
newSession: "new-session"
|
|
17
|
+
};
|
|
18
|
+
const SLOT_SEPARATOR = ".";
|
|
19
|
+
const DEFAULT_FILL_ORDER = 1e3;
|
|
20
|
+
const RESERVED_PLUGIN_IDS = new Set(Object.values(HOST_SLOTS));
|
|
21
|
+
/** The keyed slot an activity group opens: sections fill it and render as the group's body. */
|
|
22
|
+
function activityGroupSlot(name) {
|
|
23
|
+
return `${HOST_SLOTS.activity}${SLOT_SEPARATOR}${name}`;
|
|
24
|
+
}
|
|
25
|
+
function emptyState() {
|
|
26
|
+
return {
|
|
27
|
+
plugins: [],
|
|
28
|
+
tabs: [],
|
|
29
|
+
dockFaces: [],
|
|
30
|
+
channels: /* @__PURE__ */ new Map(),
|
|
31
|
+
commands: [],
|
|
32
|
+
contextActions: [],
|
|
33
|
+
userMessageActions: [],
|
|
34
|
+
leaderBindings: [],
|
|
35
|
+
selectionAxes: [],
|
|
36
|
+
minorModes: [],
|
|
37
|
+
activityGroups: [],
|
|
38
|
+
settingsSections: [],
|
|
39
|
+
settingsPanels: [],
|
|
40
|
+
toolRenderers: /* @__PURE__ */ new Map(),
|
|
41
|
+
toolMatchers: [],
|
|
42
|
+
slots: /* @__PURE__ */ new Map(),
|
|
43
|
+
fills: /* @__PURE__ */ new Map(),
|
|
44
|
+
fileLinks: [],
|
|
45
|
+
diagnostics: []
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
let defaultState = emptyState();
|
|
49
|
+
let installingState = defaultState;
|
|
50
|
+
let defaultInstalled = false;
|
|
51
|
+
const sessionStates = /* @__PURE__ */ new Map();
|
|
52
|
+
const workspaceStates = /* @__PURE__ */ new Map();
|
|
53
|
+
const sessionPlugins = /* @__PURE__ */ new Map();
|
|
54
|
+
const sessionWorkspaces = /* @__PURE__ */ new Map();
|
|
55
|
+
let activeWorkspaceId = null;
|
|
56
|
+
const pendingSessionFrames = /* @__PURE__ */ new Map();
|
|
57
|
+
const MAX_PENDING_CHANNEL_TYPES = 64;
|
|
58
|
+
let activeSessionId = null;
|
|
59
|
+
/** Slots each mount could not load, keyed `global`, `workspace:<id>` or `session:<id>`. */
|
|
60
|
+
const loadDiagnostics = /* @__PURE__ */ new Map();
|
|
61
|
+
let registryRevision = 0;
|
|
62
|
+
const registryListeners = /* @__PURE__ */ new Set();
|
|
63
|
+
function activeState() {
|
|
64
|
+
return (activeSessionId === null ? void 0 : sessionStates.get(activeSessionId)) ?? workspaceState() ?? defaultState;
|
|
65
|
+
}
|
|
66
|
+
function workspaceState() {
|
|
67
|
+
return activeWorkspaceId === null ? void 0 : workspaceStates.get(activeWorkspaceId);
|
|
68
|
+
}
|
|
69
|
+
/** Settings requests an explicit scope; the cockpit reads its active session composition. */
|
|
70
|
+
function webTemplateCatalog(mount) {
|
|
71
|
+
if (mount === void 0) {
|
|
72
|
+
const scope = activeSessionId === null ? activeWorkspaceId === null ? "global" : "workspace" : "session";
|
|
73
|
+
return require_templateCatalog.collectWebTemplates(activeState().plugins, scope);
|
|
74
|
+
}
|
|
75
|
+
if (mount.scope === "global") return require_templateCatalog.collectWebTemplates(defaultState.plugins, "global");
|
|
76
|
+
const workspace = workspaceStates.get(mount.workspaceId);
|
|
77
|
+
const plugins = mount.scope === "session" ? sessionStates.get(mount.sessionId)?.plugins : void 0;
|
|
78
|
+
return require_templateCatalog.collectWebTemplates(plugins ?? require_pluginScopes.mergeScopedPlugins(defaultState.plugins, workspace?.plugins ?? []), mount.scope);
|
|
79
|
+
}
|
|
80
|
+
/** The phone app's layouts at the server-resolved `native.template` mount. */
|
|
81
|
+
function nativeTemplateCatalog(mount) {
|
|
82
|
+
if (mount.scope === "global") return require_templateCatalog.collectNativeTemplates(defaultState.plugins, "global");
|
|
83
|
+
const workspace = workspaceStates.get(mount.workspaceId);
|
|
84
|
+
const plugins = mount.scope === "session" ? sessionStates.get(mount.sessionId)?.plugins : void 0;
|
|
85
|
+
return require_templateCatalog.collectNativeTemplates(plugins ?? require_pluginScopes.mergeScopedPlugins(defaultState.plugins, workspace?.plugins ?? []), mount.scope);
|
|
86
|
+
}
|
|
87
|
+
function rebuildSession(sessionId) {
|
|
88
|
+
const previous = sessionStates.get(sessionId);
|
|
89
|
+
const workspaceId = sessionWorkspaces.get(sessionId);
|
|
90
|
+
const workspace = workspaceId === void 0 ? void 0 : workspaceStates.get(workspaceId);
|
|
91
|
+
const state = buildWebPluginState(require_pluginScopes.mergeScopedPlugins(defaultState.plugins, workspace?.plugins ?? [], sessionPlugins.get(sessionId) ?? []));
|
|
92
|
+
sessionStates.set(sessionId, state);
|
|
93
|
+
for (const [type, channel] of previous?.channels.entries() ?? []) if (state.channels.get(type) !== channel) channel.drop(sessionId);
|
|
94
|
+
const pending = pendingSessionFrames.get(sessionId);
|
|
95
|
+
if (pending !== void 0) {
|
|
96
|
+
for (const [type, frame] of pending) if (dispatchFrameToState(state, frame)) pending.delete(type);
|
|
97
|
+
if (pending.size === 0) pendingSessionFrames.delete(sessionId);
|
|
98
|
+
}
|
|
99
|
+
return state;
|
|
100
|
+
}
|
|
101
|
+
function installGlobalWebPlugins(plugins) {
|
|
102
|
+
defaultState = buildWebPluginState(require_pluginScopes.pluginsAtScope(plugins, "global"));
|
|
103
|
+
for (const id of sessionPlugins.keys()) rebuildSession(id);
|
|
104
|
+
emitRegistryChange();
|
|
105
|
+
}
|
|
106
|
+
function installWorkspaceWebPlugins(workspaceId, plugins) {
|
|
107
|
+
const state = buildWebPluginState(require_pluginScopes.pluginsAtScope(plugins, "workspace"));
|
|
108
|
+
workspaceStates.set(workspaceId, state);
|
|
109
|
+
for (const [id, owner] of sessionWorkspaces) if (owner === workspaceId) rebuildSession(id);
|
|
110
|
+
emitRegistryChange();
|
|
111
|
+
}
|
|
112
|
+
function removeWorkspaceWebPlugins(workspaceId) {
|
|
113
|
+
workspaceStates.delete(workspaceId);
|
|
114
|
+
loadDiagnostics.delete(`workspace:${workspaceId}`);
|
|
115
|
+
for (const [id, owner] of sessionWorkspaces) if (owner === workspaceId) rebuildSession(id);
|
|
116
|
+
if (activeWorkspaceId === workspaceId) activeWorkspaceId = null;
|
|
117
|
+
emitRegistryChange();
|
|
118
|
+
}
|
|
119
|
+
function activateWebPluginWorkspace(workspaceId) {
|
|
120
|
+
if (activeWorkspaceId === workspaceId) return;
|
|
121
|
+
activeWorkspaceId = workspaceId;
|
|
122
|
+
emitRegistryChange();
|
|
123
|
+
}
|
|
124
|
+
function bindSessionWebWorkspace(sessionId, workspaceId) {
|
|
125
|
+
sessionWorkspaces.set(sessionId, workspaceId);
|
|
126
|
+
if (sessionPlugins.has(sessionId)) rebuildSession(sessionId);
|
|
127
|
+
}
|
|
128
|
+
function emitRegistryChange() {
|
|
129
|
+
registryRevision += 1;
|
|
130
|
+
for (const listener of registryListeners) listener();
|
|
131
|
+
}
|
|
132
|
+
/** The TUI's leader alphabet: one lowercase letter or digit per segment. */
|
|
133
|
+
const LEADER_KEY = /^[a-z0-9]$/;
|
|
134
|
+
const MAX_LEADER_PATH = 4;
|
|
135
|
+
/**
|
|
136
|
+
* A malformed binding fails the install rather than the keypress: the plugin
|
|
137
|
+
* set is generated at build time, so this is a developer error, and the TUI's
|
|
138
|
+
* registry refuses the same shapes.
|
|
139
|
+
*/
|
|
140
|
+
function checkLeaderBinding(pluginId, binding) {
|
|
141
|
+
if (binding.path.length === 0 || binding.path.length > MAX_LEADER_PATH) throw new Error(`Web plugin '${pluginId}' leader binding '${binding.id}' needs 1 to ${MAX_LEADER_PATH} path segments.`);
|
|
142
|
+
for (const segment of binding.path) {
|
|
143
|
+
if (!LEADER_KEY.test(segment.key)) throw new Error(`Web plugin '${pluginId}' leader binding '${binding.id}' key '${segment.key}' must be one lowercase letter or digit.`);
|
|
144
|
+
if (segment.label.trim() === "") throw new Error(`Web plugin '${pluginId}' leader binding '${binding.id}' has an unlabeled segment.`);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Claims `id` in one shared namespace: false, with a diagnostic, when another
|
|
149
|
+
* plugin already holds it; a throw when this plugin declared it twice, which
|
|
150
|
+
* is a developer error rather than a composition.
|
|
151
|
+
*/
|
|
152
|
+
function claim(owners, thing, id, pluginId) {
|
|
153
|
+
const holder = owners.get(id);
|
|
154
|
+
if (holder === pluginId) throw new Error(`Web plugin '${pluginId}' declares ${thing.replace("-", " ")} '${id}' twice.`);
|
|
155
|
+
if (holder !== void 0) {
|
|
156
|
+
installingState.diagnostics.push({
|
|
157
|
+
pluginId,
|
|
158
|
+
kind: `duplicate-${thing}`,
|
|
159
|
+
message: `Web plugin '${pluginId}' ${thing.replace("-", " ")} '${id}' is already provided by '${holder}'; keeping the first.`
|
|
160
|
+
});
|
|
161
|
+
return false;
|
|
162
|
+
}
|
|
163
|
+
owners.set(id, pluginId);
|
|
164
|
+
return true;
|
|
165
|
+
}
|
|
166
|
+
function surfaceFill(slot, surface) {
|
|
167
|
+
return {
|
|
168
|
+
slot,
|
|
169
|
+
id: surface.id,
|
|
170
|
+
component: surface.component
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
function checkSlotDeclaration(pluginId, declared, declaration) {
|
|
174
|
+
const prefix = `${pluginId}${SLOT_SEPARATOR}`;
|
|
175
|
+
if (!declaration.slot.startsWith(prefix) || declaration.slot.length === prefix.length) throw new Error(`Web plugin '${pluginId}' declares slot '${declaration.slot}', which must be named '${prefix}<name>'.`);
|
|
176
|
+
if (declared.has(declaration.slot)) throw new Error(`Web plugin '${pluginId}' declares slot '${declaration.slot}' twice.`);
|
|
177
|
+
declared.add(declaration.slot);
|
|
178
|
+
}
|
|
179
|
+
function checkFill(pluginId, seen, fill) {
|
|
180
|
+
if (fill.id === "") throw new Error(`Web plugin '${pluginId}' has a fill into '${fill.slot}' with an empty id.`);
|
|
181
|
+
if (fill.component === void 0 && fill.data === void 0) throw new Error(`Web plugin '${pluginId}' fill '${fill.id}' into '${fill.slot}' has neither a component nor data.`);
|
|
182
|
+
const key = `${fill.slot} ${fill.id}`;
|
|
183
|
+
if (seen.has(key)) throw new Error(`Web plugin '${pluginId}' fills '${fill.slot}' with id '${fill.id}' twice.`);
|
|
184
|
+
seen.add(key);
|
|
185
|
+
}
|
|
186
|
+
function checkContextAction(pluginId, seen, action) {
|
|
187
|
+
if (action.id.trim() === "") throw new Error(`Web plugin '${pluginId}' has a context action with an empty id.`);
|
|
188
|
+
if (seen.has(action.id)) throw new Error(`Web plugin '${pluginId}' declares context action '${action.id}' twice.`);
|
|
189
|
+
if (action.label.trim() === "") throw new Error(`Web plugin '${pluginId}' context action '${action.id}' has an empty label.`);
|
|
190
|
+
if (action.kinds.length === 0 || action.kinds.some((kind) => kind.trim() === "")) throw new Error(`Web plugin '${pluginId}' context action '${action.id}' needs non-empty kinds.`);
|
|
191
|
+
seen.add(action.id);
|
|
192
|
+
}
|
|
193
|
+
function checkUserMessageAction(pluginId, seen, action) {
|
|
194
|
+
if (action.id.trim() === "") throw new Error(`Web plugin '${pluginId}' has a user message action with an empty id.`);
|
|
195
|
+
if (seen.has(action.id)) throw new Error(`Web plugin '${pluginId}' declares user message action '${action.id}' twice.`);
|
|
196
|
+
if (action.label.trim() === "") throw new Error(`Web plugin '${pluginId}' user message action '${action.id}' has an empty label.`);
|
|
197
|
+
seen.add(action.id);
|
|
198
|
+
}
|
|
199
|
+
const byFillOrder = (left, right) => left.order - right.order || left.pluginId.localeCompare(right.pluginId) || left.id.localeCompare(right.id);
|
|
200
|
+
const byDisplayOrder = (left, right) => (left.order ?? DEFAULT_FILL_ORDER) - (right.order ?? DEFAULT_FILL_ORDER) || left.name.localeCompare(right.name);
|
|
201
|
+
function placeFill(pluginId, fill) {
|
|
202
|
+
const declaration = installingState.slots.get(fill.slot);
|
|
203
|
+
if (declaration === void 0) {
|
|
204
|
+
installingState.diagnostics.push({
|
|
205
|
+
pluginId,
|
|
206
|
+
kind: "orphan-fill",
|
|
207
|
+
message: `Web plugin '${pluginId}' fills slot '${fill.slot}', which no installed plugin declares; nothing is placed.`
|
|
208
|
+
});
|
|
209
|
+
return;
|
|
210
|
+
}
|
|
211
|
+
let data = fill.data;
|
|
212
|
+
if (data !== void 0 && declaration.parse !== void 0) {
|
|
213
|
+
const parsed = declaration.parse(data);
|
|
214
|
+
if (parsed === null) {
|
|
215
|
+
installingState.diagnostics.push({
|
|
216
|
+
pluginId,
|
|
217
|
+
kind: "rejected-fill",
|
|
218
|
+
message: `Web plugin '${pluginId}' fill '${fill.id}' into '${fill.slot}' was rejected by the slot's parse gate.`
|
|
219
|
+
});
|
|
220
|
+
return;
|
|
221
|
+
}
|
|
222
|
+
data = parsed;
|
|
223
|
+
}
|
|
224
|
+
const placed = {
|
|
225
|
+
slot: fill.slot,
|
|
226
|
+
pluginId,
|
|
227
|
+
id: fill.id,
|
|
228
|
+
order: fill.order ?? DEFAULT_FILL_ORDER,
|
|
229
|
+
...data === void 0 ? {} : { data },
|
|
230
|
+
...fill.component === void 0 ? {} : { component: fill.component }
|
|
231
|
+
};
|
|
232
|
+
const list = installingState.fills.get(fill.slot);
|
|
233
|
+
if (list === void 0) installingState.fills.set(fill.slot, [placed]);
|
|
234
|
+
else list.push(placed);
|
|
235
|
+
}
|
|
236
|
+
function resolveLeaderConflicts(bindings) {
|
|
237
|
+
const owner = new Map(bindings.map((entry) => [entry.binding, entry.pluginId]));
|
|
238
|
+
for (const conflict of require_leaderTree.leaderConflicts(bindings.map((entry) => entry.binding))) {
|
|
239
|
+
const winner = owner.get(conflict.winner) ?? "";
|
|
240
|
+
const loser = owner.get(conflict.loser) ?? "";
|
|
241
|
+
if (winner === loser) throw new Error(`Web plugin '${winner}' binds Leader Space '${conflict.path}' twice ('${conflict.loser.id}' and '${conflict.winner.id}').`);
|
|
242
|
+
if (conflict.kind === "leaf-override") installingState.diagnostics.push({
|
|
243
|
+
pluginId: loser,
|
|
244
|
+
kind: "leader-leaf-override",
|
|
245
|
+
message: `Web plugin '${loser}' Leader Space leaf '${conflict.path}' ('${conflict.loser.id}') is taken over by '${winner}' ('${conflict.winner.id}').`
|
|
246
|
+
});
|
|
247
|
+
else installingState.diagnostics.push({
|
|
248
|
+
pluginId: loser,
|
|
249
|
+
kind: "leader-group-label",
|
|
250
|
+
message: `Web plugin '${loser}' words Leader Space group '${conflict.path}' differently from '${winner}', which named it first; keeping the first label.`
|
|
251
|
+
});
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
function buildWebPluginState(plugins) {
|
|
255
|
+
const previous = installingState;
|
|
256
|
+
installingState = emptyState();
|
|
257
|
+
try {
|
|
258
|
+
const owners = {
|
|
259
|
+
plugin: /* @__PURE__ */ new Map(),
|
|
260
|
+
tab: /* @__PURE__ */ new Map(),
|
|
261
|
+
"dock-face": /* @__PURE__ */ new Map(),
|
|
262
|
+
channel: /* @__PURE__ */ new Map(),
|
|
263
|
+
tool: /* @__PURE__ */ new Map(),
|
|
264
|
+
"activity-group": /* @__PURE__ */ new Map(),
|
|
265
|
+
"minor-mode": /* @__PURE__ */ new Map(),
|
|
266
|
+
"selection-axis": /* @__PURE__ */ new Map(),
|
|
267
|
+
"palette-command": /* @__PURE__ */ new Map(),
|
|
268
|
+
"settings-section": /* @__PURE__ */ new Map()
|
|
269
|
+
};
|
|
270
|
+
const pendingFills = [];
|
|
271
|
+
const pendingSections = [];
|
|
272
|
+
const pendingBindings = [];
|
|
273
|
+
const pendingSlots = [];
|
|
274
|
+
for (const plugin of plugins) {
|
|
275
|
+
if (RESERVED_PLUGIN_IDS.has(plugin.id)) throw new Error(`Web plugin id '${plugin.id}' is reserved for a host slot.`);
|
|
276
|
+
if (owners.plugin.has(plugin.id)) {
|
|
277
|
+
installingState.diagnostics.push({
|
|
278
|
+
pluginId: plugin.id,
|
|
279
|
+
kind: "duplicate-plugin",
|
|
280
|
+
message: `Web plugin id '${plugin.id}' is declared twice; keeping the first definition.`
|
|
281
|
+
});
|
|
282
|
+
continue;
|
|
283
|
+
}
|
|
284
|
+
owners.plugin.set(plugin.id, plugin.id);
|
|
285
|
+
installingState.plugins.push(plugin);
|
|
286
|
+
for (const tab of plugin.tabs ?? []) if (claim(owners.tab, "tab", tab.id, plugin.id)) installingState.tabs.push(tab);
|
|
287
|
+
for (const face of plugin.dockFaces ?? []) {
|
|
288
|
+
if (face.id === "activity" || face.id === "context") throw new Error(`Web plugin '${plugin.id}' dock face '${face.id}' is reserved by the host.`);
|
|
289
|
+
if (face.id.trim() === "" || face.label.trim() === "") throw new Error(`Web plugin '${plugin.id}' has an unlabeled dock face.`);
|
|
290
|
+
if (claim(owners["dock-face"], "dock-face", face.id, plugin.id)) installingState.dockFaces.push(face);
|
|
291
|
+
}
|
|
292
|
+
for (const section of plugin.settingsSections ?? []) if (claim(owners["settings-section"], "settings-section", section.id, plugin.id)) installingState.settingsSections.push(section);
|
|
293
|
+
for (const panel of plugin.settingsPanels ?? []) if (claim(owners["settings-section"], "settings-section", panel.id, plugin.id)) installingState.settingsPanels.push({
|
|
294
|
+
pluginId: plugin.id,
|
|
295
|
+
...panel
|
|
296
|
+
});
|
|
297
|
+
for (const channel of plugin.channels ?? []) if (claim(owners.channel, "channel", channel.channel, plugin.id)) installingState.channels.set(channel.channel, channel);
|
|
298
|
+
for (const command of plugin.paletteCommands ?? []) if (claim(owners["palette-command"], "palette-command", command.id, plugin.id)) installingState.commands.push(command);
|
|
299
|
+
const contextActions = /* @__PURE__ */ new Set();
|
|
300
|
+
for (const action of plugin.contextActions ?? []) {
|
|
301
|
+
checkContextAction(plugin.id, contextActions, action);
|
|
302
|
+
installingState.contextActions.push({
|
|
303
|
+
pluginId: plugin.id,
|
|
304
|
+
...action
|
|
305
|
+
});
|
|
306
|
+
}
|
|
307
|
+
const userMessageActions = /* @__PURE__ */ new Set();
|
|
308
|
+
for (const action of plugin.userMessageActions ?? []) {
|
|
309
|
+
checkUserMessageAction(plugin.id, userMessageActions, action);
|
|
310
|
+
installingState.userMessageActions.push({
|
|
311
|
+
pluginId: plugin.id,
|
|
312
|
+
...action
|
|
313
|
+
});
|
|
314
|
+
}
|
|
315
|
+
for (const binding of plugin.leaderBindings ?? []) {
|
|
316
|
+
checkLeaderBinding(plugin.id, binding);
|
|
317
|
+
pendingBindings.push({
|
|
318
|
+
pluginId: plugin.id,
|
|
319
|
+
binding
|
|
320
|
+
});
|
|
321
|
+
}
|
|
322
|
+
for (const axis of plugin.selectionAxes ?? []) if (claim(owners["selection-axis"], "selection-axis", axis.name, plugin.id)) installingState.selectionAxes.push(axis);
|
|
323
|
+
for (const mode of plugin.minorModes ?? []) if (claim(owners["minor-mode"], "minor-mode", mode.name, plugin.id)) installingState.minorModes.push(mode);
|
|
324
|
+
for (const group of plugin.activityGroups ?? []) if (claim(owners["activity-group"], "activity-group", group.name, plugin.id)) installingState.activityGroups.push(group);
|
|
325
|
+
for (const renderer of plugin.toolRenderers ?? []) {
|
|
326
|
+
for (const tool of renderer.tools) if (claim(owners.tool, "tool", tool, plugin.id)) installingState.toolRenderers.set(tool, renderer);
|
|
327
|
+
if (renderer.matches !== void 0) installingState.toolMatchers.push(renderer);
|
|
328
|
+
}
|
|
329
|
+
const declared = /* @__PURE__ */ new Set();
|
|
330
|
+
for (const declaration of plugin.slots ?? []) {
|
|
331
|
+
checkSlotDeclaration(plugin.id, declared, declaration);
|
|
332
|
+
pendingSlots.push(declaration);
|
|
333
|
+
}
|
|
334
|
+
const filled = /* @__PURE__ */ new Set();
|
|
335
|
+
for (const fill of plugin.fills ?? []) {
|
|
336
|
+
checkFill(plugin.id, filled, fill);
|
|
337
|
+
pendingFills.push({
|
|
338
|
+
pluginId: plugin.id,
|
|
339
|
+
fill
|
|
340
|
+
});
|
|
341
|
+
}
|
|
342
|
+
for (const surface of plugin.overlays ?? []) pendingFills.push({
|
|
343
|
+
pluginId: plugin.id,
|
|
344
|
+
fill: surfaceFill(HOST_SLOTS.overlay, surface)
|
|
345
|
+
});
|
|
346
|
+
for (const surface of plugin.railSections ?? []) pendingFills.push({
|
|
347
|
+
pluginId: plugin.id,
|
|
348
|
+
fill: surfaceFill(HOST_SLOTS.rail, surface)
|
|
349
|
+
});
|
|
350
|
+
for (const surface of plugin.contextSections ?? []) pendingFills.push({
|
|
351
|
+
pluginId: plugin.id,
|
|
352
|
+
fill: surfaceFill(HOST_SLOTS.context, surface)
|
|
353
|
+
});
|
|
354
|
+
for (const surface of plugin.selectionBarItems ?? []) pendingFills.push({
|
|
355
|
+
pluginId: plugin.id,
|
|
356
|
+
fill: surfaceFill(HOST_SLOTS.selectionBar, surface)
|
|
357
|
+
});
|
|
358
|
+
for (const surface of plugin.composerActions ?? []) pendingFills.push({
|
|
359
|
+
pluginId: plugin.id,
|
|
360
|
+
fill: surfaceFill(HOST_SLOTS.composerActions, surface)
|
|
361
|
+
});
|
|
362
|
+
for (const surface of plugin.composerMenuItems ?? []) pendingFills.push({
|
|
363
|
+
pluginId: plugin.id,
|
|
364
|
+
fill: surfaceFill(HOST_SLOTS.composerMenu, surface)
|
|
365
|
+
});
|
|
366
|
+
for (const section of plugin.activitySections ?? []) pendingSections.push({
|
|
367
|
+
pluginId: plugin.id,
|
|
368
|
+
section
|
|
369
|
+
});
|
|
370
|
+
if (plugin.fileLinks !== void 0) installingState.fileLinks.push(plugin.fileLinks);
|
|
371
|
+
}
|
|
372
|
+
installingState.diagnostics.push(...require_templateCatalog.collectWebTemplates(installingState.plugins).diagnostics);
|
|
373
|
+
for (const slot of Object.values(HOST_SLOTS)) installingState.slots.set(slot, { slot });
|
|
374
|
+
for (const group of installingState.activityGroups) installingState.slots.set(activityGroupSlot(group.name), { slot: activityGroupSlot(group.name) });
|
|
375
|
+
for (const declaration of pendingSlots) installingState.slots.set(declaration.slot, declaration);
|
|
376
|
+
for (const { pluginId, section } of pendingSections) {
|
|
377
|
+
const keyed = activityGroupSlot(section.id);
|
|
378
|
+
pendingFills.push({
|
|
379
|
+
pluginId,
|
|
380
|
+
fill: surfaceFill(installingState.slots.has(keyed) ? keyed : HOST_SLOTS.activity, section)
|
|
381
|
+
});
|
|
382
|
+
}
|
|
383
|
+
for (const { pluginId, fill } of pendingFills) placeFill(pluginId, fill);
|
|
384
|
+
for (const list of installingState.fills.values()) list.sort(byFillOrder);
|
|
385
|
+
resolveLeaderConflicts(pendingBindings);
|
|
386
|
+
installingState.leaderBindings.push(...pendingBindings.map((entry) => entry.binding));
|
|
387
|
+
installingState.contextActions.sort((left, right) => (left.order ?? DEFAULT_FILL_ORDER) - (right.order ?? DEFAULT_FILL_ORDER) || left.pluginId.localeCompare(right.pluginId) || left.id.localeCompare(right.id));
|
|
388
|
+
installingState.userMessageActions.sort((left, right) => (left.order ?? DEFAULT_FILL_ORDER) - (right.order ?? DEFAULT_FILL_ORDER) || left.pluginId.localeCompare(right.pluginId) || left.id.localeCompare(right.id));
|
|
389
|
+
installingState.selectionAxes.sort(byDisplayOrder);
|
|
390
|
+
installingState.minorModes.sort(byDisplayOrder);
|
|
391
|
+
installingState.activityGroups.sort(byDisplayOrder);
|
|
392
|
+
installingState.dockFaces.sort((left, right) => (left.order ?? DEFAULT_FILL_ORDER) - (right.order ?? DEFAULT_FILL_ORDER) || left.id.localeCompare(right.id));
|
|
393
|
+
return installingState;
|
|
394
|
+
} finally {
|
|
395
|
+
installingState = previous;
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
function installWebPlugins(plugins) {
|
|
399
|
+
if (defaultInstalled) throw new Error("Web plugins are already installed.");
|
|
400
|
+
defaultState = buildWebPluginState(plugins);
|
|
401
|
+
installingState = defaultState;
|
|
402
|
+
defaultInstalled = true;
|
|
403
|
+
}
|
|
404
|
+
function webPluginsInstalled() {
|
|
405
|
+
return defaultInstalled;
|
|
406
|
+
}
|
|
407
|
+
/** Unit-test escape hatch; production installs exactly once. */
|
|
408
|
+
function resetWebPlugins() {
|
|
409
|
+
defaultState = emptyState();
|
|
410
|
+
installingState = defaultState;
|
|
411
|
+
defaultInstalled = false;
|
|
412
|
+
sessionStates.clear();
|
|
413
|
+
workspaceStates.clear();
|
|
414
|
+
sessionPlugins.clear();
|
|
415
|
+
sessionWorkspaces.clear();
|
|
416
|
+
activeWorkspaceId = null;
|
|
417
|
+
pendingSessionFrames.clear();
|
|
418
|
+
loadDiagnostics.clear();
|
|
419
|
+
activeSessionId = null;
|
|
420
|
+
emitRegistryChange();
|
|
421
|
+
}
|
|
422
|
+
/** Installs or atomically replaces one session's independently synchronized plugin definitions. */
|
|
423
|
+
function installSessionWebPlugins(sessionId, plugins) {
|
|
424
|
+
sessionPlugins.set(sessionId, plugins.flatMap((plugin) => plugin.session === void 0 ? [plugin] : require_pluginScopes.pluginsAtScope([plugin], "session")));
|
|
425
|
+
rebuildSession(sessionId);
|
|
426
|
+
if (sessionId === activeSessionId) emitRegistryChange();
|
|
427
|
+
}
|
|
428
|
+
/** Selects which session composition the no-argument contribution readers expose. */
|
|
429
|
+
function activateWebPluginSession(sessionId) {
|
|
430
|
+
if (activeSessionId === sessionId) return;
|
|
431
|
+
activeSessionId = sessionId;
|
|
432
|
+
emitRegistryChange();
|
|
433
|
+
}
|
|
434
|
+
/** Removes one session registry after its plugin-owned stores have been dropped. */
|
|
435
|
+
function removeSessionWebPlugins(sessionId) {
|
|
436
|
+
const sessionState = sessionStates.get(sessionId);
|
|
437
|
+
pendingSessionFrames.delete(sessionId);
|
|
438
|
+
loadDiagnostics.delete(`session:${sessionId}`);
|
|
439
|
+
if (sessionState === void 0) return;
|
|
440
|
+
for (const channel of sessionState.channels.values()) channel.drop(sessionId);
|
|
441
|
+
sessionStates.delete(sessionId);
|
|
442
|
+
sessionPlugins.delete(sessionId);
|
|
443
|
+
sessionWorkspaces.delete(sessionId);
|
|
444
|
+
if (sessionId === activeSessionId) emitRegistryChange();
|
|
445
|
+
}
|
|
446
|
+
function subscribeWebPluginRegistry(listener) {
|
|
447
|
+
registryListeners.add(listener);
|
|
448
|
+
return () => registryListeners.delete(listener);
|
|
449
|
+
}
|
|
450
|
+
function webPluginRegistryRevision() {
|
|
451
|
+
return registryRevision;
|
|
452
|
+
}
|
|
453
|
+
/**
|
|
454
|
+
* Records the slots one mount could not load, replacing its previous record. The mount still
|
|
455
|
+
* installs the slots that loaded, so one broken plugin never hides the others.
|
|
456
|
+
*/
|
|
457
|
+
function setWebPluginLoadDiagnostics(mount, diagnostics) {
|
|
458
|
+
const key = mount.scope === "global" ? "global" : mount.scope === "workspace" ? `workspace:${mount.workspaceId}` : `session:${mount.sessionId}`;
|
|
459
|
+
if (diagnostics.length === 0 && !loadDiagnostics.has(key)) return;
|
|
460
|
+
if (diagnostics.length === 0) loadDiagnostics.delete(key);
|
|
461
|
+
else loadDiagnostics.set(key, [...diagnostics]);
|
|
462
|
+
emitRegistryChange();
|
|
463
|
+
}
|
|
464
|
+
/**
|
|
465
|
+
* What the install had to resolve between plugins, plus the slots the visible mounts could not
|
|
466
|
+
* load; empty for a composition whose plugins all load and never collide.
|
|
467
|
+
*/
|
|
468
|
+
function webPluginDiagnostics() {
|
|
469
|
+
const workspaceId = (activeSessionId === null ? void 0 : sessionWorkspaces.get(activeSessionId)) ?? activeWorkspaceId;
|
|
470
|
+
const failed = [
|
|
471
|
+
"global",
|
|
472
|
+
...workspaceId === null ? [] : [`workspace:${workspaceId}`],
|
|
473
|
+
...activeSessionId === null ? [] : [`session:${activeSessionId}`]
|
|
474
|
+
].flatMap((key) => loadDiagnostics.get(key) ?? []);
|
|
475
|
+
const installed = activeState().diagnostics;
|
|
476
|
+
return failed.length === 0 ? installed : [...installed, ...failed];
|
|
477
|
+
}
|
|
478
|
+
/** Every installed plugin definition, in install order; the settings page lists them. */
|
|
479
|
+
function installedWebPlugins() {
|
|
480
|
+
return activeState().plugins;
|
|
481
|
+
}
|
|
482
|
+
/** Package panels placed under the host's repository controls, in stable display order. */
|
|
483
|
+
function pluginRepositorySettingsPanels() {
|
|
484
|
+
return (workspaceState() ?? emptyState()).plugins.flatMap((plugin) => plugin.repositorySettingsPanel === void 0 ? [] : [{
|
|
485
|
+
pluginId: plugin.id,
|
|
486
|
+
...plugin.repositorySettingsPanel
|
|
487
|
+
}]).sort((left, right) => (left.order ?? DEFAULT_FILL_ORDER) - (right.order ?? DEFAULT_FILL_ORDER) || left.pluginId.localeCompare(right.pluginId));
|
|
488
|
+
}
|
|
489
|
+
function webTabs() {
|
|
490
|
+
return activeState().tabs;
|
|
491
|
+
}
|
|
492
|
+
/** Optional right-dock faces from the active session composition, in display order. */
|
|
493
|
+
function pluginDockFaces() {
|
|
494
|
+
return activeState().dockFaces;
|
|
495
|
+
}
|
|
496
|
+
/** UI discovery only. Requests still require a proof injected by Electron's main process. */
|
|
497
|
+
function isDesktopClient() {
|
|
498
|
+
return typeof window !== "undefined" && window.poDesktop?.platform === "desktop";
|
|
499
|
+
}
|
|
500
|
+
/**
|
|
501
|
+
* The settings pages plugins contribute, in menu order. Sorted here rather than
|
|
502
|
+
* at the reader so the menu and the page agree without either sorting twice.
|
|
503
|
+
*/
|
|
504
|
+
function pluginSettingsSections(scope = "global") {
|
|
505
|
+
const sections = (scope === "global" ? defaultState : workspaceState())?.settingsSections ?? [];
|
|
506
|
+
return isDesktopClient() ? sections : sections.filter((section) => !section.desktopOnly);
|
|
507
|
+
}
|
|
508
|
+
/** The settings pages plugins draw themselves, in install order; the reader sorts them with the sections. */
|
|
509
|
+
function pluginSettingsPanels() {
|
|
510
|
+
return defaultState.settingsPanels;
|
|
511
|
+
}
|
|
512
|
+
/** The fills placed into one slot, in slot order; empty for a slot nobody declared. */
|
|
513
|
+
function slotFills(slot) {
|
|
514
|
+
return activeState().fills.get(slot) ?? [];
|
|
515
|
+
}
|
|
516
|
+
/** One workspace's own fills for a slot, whichever session or workspace is focused. */
|
|
517
|
+
function workspaceSlotFills(workspaceId, slot) {
|
|
518
|
+
return workspaceStates.get(workspaceId)?.fills.get(slot) ?? [];
|
|
519
|
+
}
|
|
520
|
+
function paletteCommands() {
|
|
521
|
+
return activeState().commands;
|
|
522
|
+
}
|
|
523
|
+
/** Context actions from every installed plugin, in stable display order. */
|
|
524
|
+
function pluginContextActions() {
|
|
525
|
+
return activeState().contextActions;
|
|
526
|
+
}
|
|
527
|
+
/** User-message actions from every installed plugin, in stable display order. */
|
|
528
|
+
function pluginUserMessageActions() {
|
|
529
|
+
return activeState().userMessageActions;
|
|
530
|
+
}
|
|
531
|
+
/** Leader Space bindings from every installed plugin, in install order: a later binding on a bound leaf wins. */
|
|
532
|
+
function pluginLeaderBindings() {
|
|
533
|
+
return activeState().leaderBindings;
|
|
534
|
+
}
|
|
535
|
+
/** Selection-axis declarations from every installed plugin, in display order. */
|
|
536
|
+
function pluginSelectionAxes() {
|
|
537
|
+
return activeState().selectionAxes;
|
|
538
|
+
}
|
|
539
|
+
/** Minor-mode declarations from every installed plugin, in display order. */
|
|
540
|
+
function pluginMinorModes() {
|
|
541
|
+
return activeState().minorModes;
|
|
542
|
+
}
|
|
543
|
+
/** Activity-dock group declarations from every installed plugin, in display order. */
|
|
544
|
+
function pluginActivityGroups() {
|
|
545
|
+
const groups = activeState().activityGroups;
|
|
546
|
+
return isDesktopClient() ? groups : groups.filter((group) => !group.desktopOnly);
|
|
547
|
+
}
|
|
548
|
+
/**
|
|
549
|
+
* The file-link sources installed plugins contribute, in install order.
|
|
550
|
+
*
|
|
551
|
+
* More than one is allowed and the first to claim a path wins, the same way a
|
|
552
|
+
* runtime tool matcher does: the host has no way to choose between two
|
|
553
|
+
* packages that both recognise a path, and the alternative is two tabs for one
|
|
554
|
+
* file.
|
|
555
|
+
*/
|
|
556
|
+
function pluginFileLinks() {
|
|
557
|
+
return activeState().fileLinks;
|
|
558
|
+
}
|
|
559
|
+
/**
|
|
560
|
+
* The renderer a plugin registered for one tool: the exact name claim first,
|
|
561
|
+
* then the first runtime matcher that accepts it, in install order (the one
|
|
562
|
+
* place besides `start` where that order is observable); undefined leaves
|
|
563
|
+
* the host's default card.
|
|
564
|
+
*/
|
|
565
|
+
function pluginToolRenderer(toolName, statuses = {}, details) {
|
|
566
|
+
return activeState().toolRenderers.get(toolName) ?? activeState().toolMatchers.find((renderer) => renderer.matches?.(toolName, statuses, details));
|
|
567
|
+
}
|
|
568
|
+
/** A session-scoped renderer, or undefined until that session's verified composition is installed. */
|
|
569
|
+
function sessionToolRenderer(sessionId, toolName) {
|
|
570
|
+
return sessionStates.get(sessionId)?.toolRenderers.get(toolName);
|
|
571
|
+
}
|
|
572
|
+
function sessionWebPluginsInstalled(sessionId) {
|
|
573
|
+
return sessionStates.has(sessionId);
|
|
574
|
+
}
|
|
575
|
+
/**
|
|
576
|
+
* Routes one wire frame to the channel owning its type. Returns false when no
|
|
577
|
+
* channel claims it, so the demux can fall through silently the way unknown
|
|
578
|
+
* frames always have.
|
|
579
|
+
*/
|
|
580
|
+
function dispatchFrameToState(state, frame) {
|
|
581
|
+
if (typeof frame.type !== "string" || typeof frame.sessionId !== "string") return false;
|
|
582
|
+
const channel = state.channels.get(frame.type);
|
|
583
|
+
if (channel === void 0) return false;
|
|
584
|
+
const payload = channel.parse(frame.payload);
|
|
585
|
+
if (payload !== null) channel.apply(frame.sessionId, payload);
|
|
586
|
+
return true;
|
|
587
|
+
}
|
|
588
|
+
function dispatchChannelFrame(frame) {
|
|
589
|
+
if (typeof frame.type !== "string" || typeof frame.sessionId !== "string") return false;
|
|
590
|
+
const state = sessionStates.get(frame.sessionId);
|
|
591
|
+
if (state !== void 0) {
|
|
592
|
+
if (dispatchFrameToState(state, frame)) return true;
|
|
593
|
+
} else if (activeSessionId === null) return dispatchFrameToState(defaultState, frame);
|
|
594
|
+
if (!Object.hasOwn(frame, "payload")) return false;
|
|
595
|
+
const pending = pendingSessionFrames.get(frame.sessionId) ?? /* @__PURE__ */ new Map();
|
|
596
|
+
if (!pending.has(frame.type) && pending.size >= MAX_PENDING_CHANNEL_TYPES) {
|
|
597
|
+
const oldest = pending.keys().next().value;
|
|
598
|
+
if (oldest !== void 0) pending.delete(oldest);
|
|
599
|
+
}
|
|
600
|
+
pending.set(frame.type, frame);
|
|
601
|
+
pendingSessionFrames.set(frame.sessionId, pending);
|
|
602
|
+
return false;
|
|
603
|
+
}
|
|
604
|
+
/** Session teardown: every channel forgets the session's data. */
|
|
605
|
+
function dropPluginSessionData(sessionId) {
|
|
606
|
+
pendingSessionFrames.delete(sessionId);
|
|
607
|
+
const state = sessionStates.get(sessionId) ?? (activeSessionId === null ? defaultState : void 0);
|
|
608
|
+
for (const channel of state?.channels.values() ?? []) channel.drop(sessionId);
|
|
609
|
+
}
|
|
610
|
+
/** Starts every plugin runtime in install order; the disposer runs in reverse. */
|
|
611
|
+
function startPluginDefinitions(plugins, runtime) {
|
|
612
|
+
const disposers = [];
|
|
613
|
+
const disposeStarted = () => {
|
|
614
|
+
for (const dispose of disposers.reverse()) dispose();
|
|
615
|
+
};
|
|
616
|
+
try {
|
|
617
|
+
for (const plugin of plugins) {
|
|
618
|
+
const dispose = plugin.start?.(runtime);
|
|
619
|
+
if (dispose) disposers.push(dispose);
|
|
620
|
+
}
|
|
621
|
+
} catch (error) {
|
|
622
|
+
disposeStarted();
|
|
623
|
+
throw error;
|
|
624
|
+
}
|
|
625
|
+
return disposeStarted;
|
|
626
|
+
}
|
|
627
|
+
function startWebPlugins(runtime) {
|
|
628
|
+
return startPluginDefinitions(activeState().plugins, runtime);
|
|
629
|
+
}
|
|
630
|
+
//#endregion
|
|
631
|
+
exports.HOST_SLOTS = HOST_SLOTS;
|
|
632
|
+
exports.activateWebPluginSession = activateWebPluginSession;
|
|
633
|
+
exports.activateWebPluginWorkspace = activateWebPluginWorkspace;
|
|
634
|
+
exports.activityGroupSlot = activityGroupSlot;
|
|
635
|
+
exports.bindSessionWebWorkspace = bindSessionWebWorkspace;
|
|
636
|
+
exports.dispatchChannelFrame = dispatchChannelFrame;
|
|
637
|
+
exports.dropPluginSessionData = dropPluginSessionData;
|
|
638
|
+
exports.installGlobalWebPlugins = installGlobalWebPlugins;
|
|
639
|
+
exports.installSessionWebPlugins = installSessionWebPlugins;
|
|
640
|
+
exports.installWebPlugins = installWebPlugins;
|
|
641
|
+
exports.installWorkspaceWebPlugins = installWorkspaceWebPlugins;
|
|
642
|
+
exports.installedWebPlugins = installedWebPlugins;
|
|
643
|
+
exports.isDesktopClient = isDesktopClient;
|
|
644
|
+
exports.nativeTemplateCatalog = nativeTemplateCatalog;
|
|
645
|
+
exports.paletteCommands = paletteCommands;
|
|
646
|
+
exports.pluginActivityGroups = pluginActivityGroups;
|
|
647
|
+
exports.pluginContextActions = pluginContextActions;
|
|
648
|
+
exports.pluginDockFaces = pluginDockFaces;
|
|
649
|
+
exports.pluginFileLinks = pluginFileLinks;
|
|
650
|
+
exports.pluginLeaderBindings = pluginLeaderBindings;
|
|
651
|
+
exports.pluginMinorModes = pluginMinorModes;
|
|
652
|
+
exports.pluginRepositorySettingsPanels = pluginRepositorySettingsPanels;
|
|
653
|
+
exports.pluginSelectionAxes = pluginSelectionAxes;
|
|
654
|
+
exports.pluginSettingsPanels = pluginSettingsPanels;
|
|
655
|
+
exports.pluginSettingsSections = pluginSettingsSections;
|
|
656
|
+
exports.pluginToolRenderer = pluginToolRenderer;
|
|
657
|
+
exports.pluginUserMessageActions = pluginUserMessageActions;
|
|
658
|
+
exports.removeSessionWebPlugins = removeSessionWebPlugins;
|
|
659
|
+
exports.removeWorkspaceWebPlugins = removeWorkspaceWebPlugins;
|
|
660
|
+
exports.resetWebPlugins = resetWebPlugins;
|
|
661
|
+
exports.sessionToolRenderer = sessionToolRenderer;
|
|
662
|
+
exports.sessionWebPluginsInstalled = sessionWebPluginsInstalled;
|
|
663
|
+
exports.setWebPluginLoadDiagnostics = setWebPluginLoadDiagnostics;
|
|
664
|
+
exports.slotFills = slotFills;
|
|
665
|
+
exports.startPluginDefinitions = startPluginDefinitions;
|
|
666
|
+
exports.startWebPlugins = startWebPlugins;
|
|
667
|
+
exports.subscribeWebPluginRegistry = subscribeWebPluginRegistry;
|
|
668
|
+
exports.webPluginDiagnostics = webPluginDiagnostics;
|
|
669
|
+
exports.webPluginRegistryRevision = webPluginRegistryRevision;
|
|
670
|
+
exports.webPluginsInstalled = webPluginsInstalled;
|
|
671
|
+
exports.webTabs = webTabs;
|
|
672
|
+
exports.webTemplateCatalog = webTemplateCatalog;
|
|
673
|
+
exports.workspaceSlotFills = workspaceSlotFills;
|
|
674
|
+
|
|
675
|
+
//# sourceMappingURL=pluginRegistry.cjs.map
|