@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 @@
|
|
|
1
|
+
{"version":3,"file":"pluginRegistry.cjs","names":["collectWebTemplates","mergeScopedPlugins","collectNativeTemplates","pluginsAtScope","leaderConflicts"],"sources":["../../../src/web/lib/pluginRegistry.ts"],"sourcesContent":["import type {\n ActivityGroupContribution,\n ContextActionContribution,\n DockFaceContribution,\n FileLinkSource,\n LeaderBindingContribution,\n MinorModeContribution,\n PaletteCommandContribution,\n RepositorySettingsPanelContribution,\n SettingsPanelContribution,\n SettingsSectionContribution,\n SelectionAxisContribution,\n SessionChannelContribution,\n SlotDeclaration,\n SlotFillContribution,\n SurfaceContribution,\n TabContribution,\n ToolRendererContribution,\n UserMessageActionContribution,\n WebPluginDefinition,\n WebPluginMount,\n WebPluginRuntime,\n WebPluginSlotProps,\n} from '@agimon-ai/po-core/web';\nimport type { ComponentType } from 'react';\n\nimport { leaderConflicts } from './leaderTree';\nimport { mergeScopedPlugins, pluginsAtScope } from './pluginScopes';\nimport {\n collectNativeTemplates,\n collectWebTemplates,\n type NativeTemplateCatalog,\n type WebTemplateCatalog,\n} from './templateCatalog';\n\n/**\n * The installed plugin set.\n *\n * Plain module state rather than a reactive store: the generated plugin list\n * is installed once at startup, before the first render, so every read during\n * render is stable. Install runs in two phases. The first collects every\n * plugin's contributions in the generated order, which is (registrationOrder,\n * pluginId); the second resolves every relation between plugins by name, so\n * a plugin may fill a slot whichever of the two installs first.\n *\n * Plugins are independent and a user may install any of them, so a collision\n * between two plugins never fails the install: a shared name goes to the\n * first plugin (a Leader Space leaf to the later one, as the TUI documents)\n * and the loser is recorded as a diagnostic. Only a malformed contribution\n * inside one plugin throws, because that is a developer error its own tests\n * catch. resetWebPlugins exists for unit tests only.\n */\n\nexport type InstallDiagnosticKind =\n | 'duplicate-plugin'\n | 'duplicate-tab'\n | 'duplicate-dock-face'\n | 'duplicate-channel'\n | 'duplicate-tool'\n | 'duplicate-activity-group'\n | 'duplicate-minor-mode'\n | 'duplicate-selection-axis'\n | 'duplicate-palette-command'\n | 'duplicate-settings-section'\n | 'leader-leaf-override'\n | 'leader-group-label'\n | 'orphan-fill'\n | 'rejected-fill'\n | 'invalid-template'\n | 'duplicate-template'\n | 'slot-load-failed';\n\nexport interface InstallDiagnostic {\n /** The plugin that lost or misfiled the contribution. */\n pluginId: string;\n kind: InstallDiagnosticKind;\n message: string;\n}\n\n/** One placed fill, as the owner's renderSlot and slotData read it. */\nexport interface ResolvedFill {\n slot: string;\n pluginId: string;\n id: string;\n order: number;\n data?: unknown;\n component?: ComponentType<WebPluginSlotProps>;\n}\n\nexport interface InstalledContextAction extends ContextActionContribution {\n pluginId: string;\n}\n\nexport interface InstalledUserMessageAction extends UserMessageActionContribution {\n pluginId: string;\n}\n/** The slots the host itself declares; a plugin's own slots are namespaced by its id instead. */\nexport const HOST_SLOTS = {\n overlay: 'overlay',\n rail: 'rail',\n context: 'context',\n selectionBar: 'selection-bar',\n activity: 'activity',\n composerActions: 'composer-actions',\n composerMenu: 'composer-menu',\n sessionMenu: 'session-menu',\n /** A workspace plugin fill here replaces the host's new-session dialog for that workspace. */\n newSession: 'new-session',\n} as const;\n\nconst SLOT_SEPARATOR = '.';\nconst DEFAULT_FILL_ORDER = 1000;\nconst RESERVED_PLUGIN_IDS: ReadonlySet<string> = new Set(Object.values(HOST_SLOTS));\n\n/** The keyed slot an activity group opens: sections fill it and render as the group's body. */\nexport function activityGroupSlot(name: string): string {\n return `${HOST_SLOTS.activity}${SLOT_SEPARATOR}${name}`;\n}\n\ninterface RegistryState {\n plugins: WebPluginDefinition[];\n tabs: TabContribution[];\n dockFaces: DockFaceContribution[];\n channels: Map<string, SessionChannelContribution>;\n commands: PaletteCommandContribution[];\n contextActions: InstalledContextAction[];\n userMessageActions: InstalledUserMessageAction[];\n leaderBindings: LeaderBindingContribution[];\n selectionAxes: SelectionAxisContribution[];\n minorModes: MinorModeContribution[];\n activityGroups: ActivityGroupContribution[];\n settingsSections: SettingsSectionContribution[];\n settingsPanels: InstalledSettingsPanel[];\n toolRenderers: Map<string, ToolRendererContribution>;\n toolMatchers: ToolRendererContribution[];\n slots: Map<string, SlotDeclaration>;\n fills: Map<string, ResolvedFill[]>;\n fileLinks: FileLinkSource[];\n diagnostics: InstallDiagnostic[];\n}\n\nfunction emptyState(): RegistryState {\n return {\n plugins: [],\n tabs: [],\n dockFaces: [],\n channels: new Map(),\n commands: [],\n contextActions: [],\n userMessageActions: [],\n leaderBindings: [],\n selectionAxes: [],\n minorModes: [],\n activityGroups: [],\n settingsSections: [],\n settingsPanels: [],\n toolRenderers: new Map(),\n toolMatchers: [],\n slots: new Map(),\n fills: new Map(),\n fileLinks: [],\n diagnostics: [],\n };\n}\n\nlet defaultState = emptyState();\nlet installingState = defaultState;\nlet defaultInstalled = false;\nconst sessionStates = new Map<string, RegistryState>();\nconst workspaceStates = new Map<string, RegistryState>();\nconst sessionPlugins = new Map<string, readonly WebPluginDefinition[]>();\nconst sessionWorkspaces = new Map<string, string>();\nlet activeWorkspaceId: string | null = null;\nconst pendingSessionFrames = new Map<string, Map<string, Record<string, unknown>>>();\nconst MAX_PENDING_CHANNEL_TYPES = 64;\nlet activeSessionId: string | null = null;\n/** Slots each mount could not load, keyed `global`, `workspace:<id>` or `session:<id>`. */\nconst loadDiagnostics = new Map<string, readonly InstallDiagnostic[]>();\nlet registryRevision = 0;\nconst registryListeners = new Set<() => void>();\n\nfunction activeState(): RegistryState {\n return (\n (activeSessionId === null ? undefined : sessionStates.get(activeSessionId)) ?? workspaceState() ?? defaultState\n );\n}\n\nfunction workspaceState(): RegistryState | undefined {\n return activeWorkspaceId === null ? undefined : workspaceStates.get(activeWorkspaceId);\n}\n\n/** Settings requests an explicit scope; the cockpit reads its active session composition. */\nexport function webTemplateCatalog(mount?: WebPluginMount): WebTemplateCatalog {\n if (mount === undefined) {\n const scope = activeSessionId === null ? (activeWorkspaceId === null ? 'global' : 'workspace') : 'session';\n return collectWebTemplates(activeState().plugins, scope);\n }\n if (mount.scope === 'global') return collectWebTemplates(defaultState.plugins, 'global');\n const workspace = workspaceStates.get(mount.workspaceId);\n const plugins = mount.scope === 'session' ? sessionStates.get(mount.sessionId)?.plugins : undefined;\n return collectWebTemplates(\n plugins ?? mergeScopedPlugins(defaultState.plugins, workspace?.plugins ?? []),\n mount.scope,\n );\n}\n\n/** The phone app's layouts at the server-resolved `native.template` mount. */\nexport function nativeTemplateCatalog(mount: WebPluginMount): NativeTemplateCatalog {\n if (mount.scope === 'global') return collectNativeTemplates(defaultState.plugins, 'global');\n const workspace = workspaceStates.get(mount.workspaceId);\n const plugins = mount.scope === 'session' ? sessionStates.get(mount.sessionId)?.plugins : undefined;\n return collectNativeTemplates(\n plugins ?? mergeScopedPlugins(defaultState.plugins, workspace?.plugins ?? []),\n mount.scope,\n );\n}\nfunction rebuildSession(sessionId: string): RegistryState {\n const previous = sessionStates.get(sessionId);\n const workspaceId = sessionWorkspaces.get(sessionId);\n const workspace = workspaceId === undefined ? undefined : workspaceStates.get(workspaceId);\n const state = buildWebPluginState(\n mergeScopedPlugins(defaultState.plugins, workspace?.plugins ?? [], sessionPlugins.get(sessionId) ?? []),\n );\n sessionStates.set(sessionId, state);\n // Drop stale stores before replay, since replacement channels may share a store.\n for (const [type, channel] of previous?.channels.entries() ?? [])\n if (state.channels.get(type) !== channel) channel.drop(sessionId);\n const pending = pendingSessionFrames.get(sessionId);\n if (pending !== undefined) {\n for (const [type, frame] of pending) if (dispatchFrameToState(state, frame)) pending.delete(type);\n if (pending.size === 0) pendingSessionFrames.delete(sessionId);\n }\n return state;\n}\n\nexport function installGlobalWebPlugins(plugins: readonly WebPluginDefinition[]): void {\n defaultState = buildWebPluginState(pluginsAtScope(plugins, 'global'));\n for (const id of sessionPlugins.keys()) rebuildSession(id);\n emitRegistryChange();\n}\n\nexport function installWorkspaceWebPlugins(workspaceId: string, plugins: readonly WebPluginDefinition[]): void {\n const state = buildWebPluginState(pluginsAtScope(plugins, 'workspace'));\n workspaceStates.set(workspaceId, state);\n for (const [id, owner] of sessionWorkspaces) if (owner === workspaceId) rebuildSession(id);\n emitRegistryChange();\n}\n\nexport function removeWorkspaceWebPlugins(workspaceId: string): void {\n workspaceStates.delete(workspaceId);\n loadDiagnostics.delete(`workspace:${workspaceId}`);\n for (const [id, owner] of sessionWorkspaces) if (owner === workspaceId) rebuildSession(id);\n if (activeWorkspaceId === workspaceId) activeWorkspaceId = null;\n emitRegistryChange();\n}\n\nexport function activateWebPluginWorkspace(workspaceId: string | null): void {\n if (activeWorkspaceId === workspaceId) return;\n activeWorkspaceId = workspaceId;\n emitRegistryChange();\n}\n\nexport function bindSessionWebWorkspace(sessionId: string, workspaceId: string): void {\n sessionWorkspaces.set(sessionId, workspaceId);\n if (sessionPlugins.has(sessionId)) rebuildSession(sessionId);\n}\n\nfunction emitRegistryChange(): void {\n registryRevision += 1;\n for (const listener of registryListeners) listener();\n}\n\n/** The TUI's leader alphabet: one lowercase letter or digit per segment. */\nconst LEADER_KEY = /^[a-z0-9]$/;\nconst MAX_LEADER_PATH = 4;\n\n/**\n * A malformed binding fails the install rather than the keypress: the plugin\n * set is generated at build time, so this is a developer error, and the TUI's\n * registry refuses the same shapes.\n */\nfunction checkLeaderBinding(pluginId: string, binding: LeaderBindingContribution): void {\n if (binding.path.length === 0 || binding.path.length > MAX_LEADER_PATH) {\n throw new Error(\n `Web plugin '${pluginId}' leader binding '${binding.id}' needs 1 to ${MAX_LEADER_PATH} path segments.`,\n );\n }\n for (const segment of binding.path) {\n if (!LEADER_KEY.test(segment.key)) {\n throw new Error(\n `Web plugin '${pluginId}' leader binding '${binding.id}' key '${segment.key}' must be one lowercase letter or digit.`,\n );\n }\n if (segment.label.trim() === '') {\n throw new Error(`Web plugin '${pluginId}' leader binding '${binding.id}' has an unlabeled segment.`);\n }\n }\n}\n\ninterface PendingFill {\n pluginId: string;\n fill: SlotFillContribution;\n}\n\ninterface PendingSection {\n pluginId: string;\n section: SurfaceContribution;\n}\n\ninterface PendingBinding {\n pluginId: string;\n binding: LeaderBindingContribution;\n}\n\ntype SharedNamespace =\n | 'plugin'\n | 'tab'\n | 'dock-face'\n | 'channel'\n | 'tool'\n | 'activity-group'\n | 'minor-mode'\n | 'selection-axis'\n | 'palette-command'\n | 'settings-section';\n\n/**\n * Claims `id` in one shared namespace: false, with a diagnostic, when another\n * plugin already holds it; a throw when this plugin declared it twice, which\n * is a developer error rather than a composition.\n */\nfunction claim(owners: Map<string, string>, thing: SharedNamespace, id: string, pluginId: string): boolean {\n const holder = owners.get(id);\n if (holder === pluginId) {\n throw new Error(`Web plugin '${pluginId}' declares ${thing.replace('-', ' ')} '${id}' twice.`);\n }\n if (holder !== undefined) {\n installingState.diagnostics.push({\n pluginId,\n kind: `duplicate-${thing}`,\n message: `Web plugin '${pluginId}' ${thing.replace('-', ' ')} '${id}' is already provided by '${holder}'; keeping the first.`,\n });\n return false;\n }\n owners.set(id, pluginId);\n return true;\n}\n\nfunction surfaceFill(slot: string, surface: SurfaceContribution): SlotFillContribution {\n return { slot, id: surface.id, component: surface.component };\n}\n\nfunction checkSlotDeclaration(pluginId: string, declared: Set<string>, declaration: SlotDeclaration): void {\n const prefix = `${pluginId}${SLOT_SEPARATOR}`;\n if (!declaration.slot.startsWith(prefix) || declaration.slot.length === prefix.length) {\n throw new Error(\n `Web plugin '${pluginId}' declares slot '${declaration.slot}', which must be named '${prefix}<name>'.`,\n );\n }\n if (declared.has(declaration.slot)) {\n throw new Error(`Web plugin '${pluginId}' declares slot '${declaration.slot}' twice.`);\n }\n declared.add(declaration.slot);\n}\n\nfunction checkFill(pluginId: string, seen: Set<string>, fill: SlotFillContribution): void {\n if (fill.id === '') throw new Error(`Web plugin '${pluginId}' has a fill into '${fill.slot}' with an empty id.`);\n if (fill.component === undefined && fill.data === undefined) {\n throw new Error(`Web plugin '${pluginId}' fill '${fill.id}' into '${fill.slot}' has neither a component nor data.`);\n }\n const key = `${fill.slot} ${fill.id}`;\n if (seen.has(key)) throw new Error(`Web plugin '${pluginId}' fills '${fill.slot}' with id '${fill.id}' twice.`);\n seen.add(key);\n}\n\nfunction checkContextAction(pluginId: string, seen: Set<string>, action: ContextActionContribution): void {\n if (action.id.trim() === '') throw new Error(`Web plugin '${pluginId}' has a context action with an empty id.`);\n if (seen.has(action.id)) throw new Error(`Web plugin '${pluginId}' declares context action '${action.id}' twice.`);\n if (action.label.trim() === '')\n throw new Error(`Web plugin '${pluginId}' context action '${action.id}' has an empty label.`);\n if (action.kinds.length === 0 || action.kinds.some((kind) => kind.trim() === '')) {\n throw new Error(`Web plugin '${pluginId}' context action '${action.id}' needs non-empty kinds.`);\n }\n seen.add(action.id);\n}\n\nfunction checkUserMessageAction(pluginId: string, seen: Set<string>, action: UserMessageActionContribution): void {\n if (action.id.trim() === '') throw new Error(`Web plugin '${pluginId}' has a user message action with an empty id.`);\n if (seen.has(action.id))\n throw new Error(`Web plugin '${pluginId}' declares user message action '${action.id}' twice.`);\n if (action.label.trim() === '')\n throw new Error(`Web plugin '${pluginId}' user message action '${action.id}' has an empty label.`);\n seen.add(action.id);\n}\n\nconst byFillOrder = (left: ResolvedFill, right: ResolvedFill): number =>\n left.order - right.order || left.pluginId.localeCompare(right.pluginId) || left.id.localeCompare(right.id);\n\nconst byDisplayOrder = (left: { order?: number; name: string }, right: { order?: number; name: string }): number =>\n (left.order ?? DEFAULT_FILL_ORDER) - (right.order ?? DEFAULT_FILL_ORDER) || left.name.localeCompare(right.name);\n\nfunction placeFill(pluginId: string, fill: SlotFillContribution): void {\n const declaration = installingState.slots.get(fill.slot);\n if (declaration === undefined) {\n installingState.diagnostics.push({\n pluginId,\n kind: 'orphan-fill',\n message: `Web plugin '${pluginId}' fills slot '${fill.slot}', which no installed plugin declares; nothing is placed.`,\n });\n return;\n }\n let data = fill.data;\n if (data !== undefined && declaration.parse !== undefined) {\n const parsed = declaration.parse(data);\n if (parsed === null) {\n installingState.diagnostics.push({\n pluginId,\n kind: 'rejected-fill',\n message: `Web plugin '${pluginId}' fill '${fill.id}' into '${fill.slot}' was rejected by the slot's parse gate.`,\n });\n return;\n }\n data = parsed;\n }\n const placed: ResolvedFill = {\n slot: fill.slot,\n pluginId,\n id: fill.id,\n order: fill.order ?? DEFAULT_FILL_ORDER,\n ...(data === undefined ? {} : { data }),\n ...(fill.component === undefined ? {} : { component: fill.component }),\n };\n const list = installingState.fills.get(fill.slot);\n if (list === undefined) installingState.fills.set(fill.slot, [placed]);\n else list.push(placed);\n}\n\nfunction resolveLeaderConflicts(bindings: readonly PendingBinding[]): void {\n const owner = new Map<LeaderBindingContribution, string>(bindings.map((entry) => [entry.binding, entry.pluginId]));\n for (const conflict of leaderConflicts(bindings.map((entry) => entry.binding))) {\n const winner = owner.get(conflict.winner) ?? '';\n const loser = owner.get(conflict.loser) ?? '';\n if (winner === loser) {\n throw new Error(\n `Web plugin '${winner}' binds Leader Space '${conflict.path}' twice ('${conflict.loser.id}' and '${conflict.winner.id}').`,\n );\n }\n if (conflict.kind === 'leaf-override') {\n installingState.diagnostics.push({\n pluginId: loser,\n kind: 'leader-leaf-override',\n message: `Web plugin '${loser}' Leader Space leaf '${conflict.path}' ('${conflict.loser.id}') is taken over by '${winner}' ('${conflict.winner.id}').`,\n });\n } else {\n installingState.diagnostics.push({\n pluginId: loser,\n kind: 'leader-group-label',\n message: `Web plugin '${loser}' words Leader Space group '${conflict.path}' differently from '${winner}', which named it first; keeping the first label.`,\n });\n }\n }\n}\n\nfunction buildWebPluginState(plugins: readonly WebPluginDefinition[]): RegistryState {\n const previous = installingState;\n installingState = emptyState();\n try {\n const owners: Record<SharedNamespace, Map<string, string>> = {\n plugin: new Map(),\n tab: new Map(),\n 'dock-face': new Map(),\n channel: new Map(),\n tool: new Map(),\n 'activity-group': new Map(),\n 'minor-mode': new Map(),\n 'selection-axis': new Map(),\n 'palette-command': new Map(),\n 'settings-section': new Map(),\n };\n const pendingFills: PendingFill[] = [];\n const pendingSections: PendingSection[] = [];\n const pendingBindings: PendingBinding[] = [];\n const pendingSlots: SlotDeclaration[] = [];\n\n // Phase 1: collect, in the generated (registrationOrder, pluginId) order.\n for (const plugin of plugins) {\n if (RESERVED_PLUGIN_IDS.has(plugin.id)) {\n throw new Error(`Web plugin id '${plugin.id}' is reserved for a host slot.`);\n }\n if (owners.plugin.has(plugin.id)) {\n installingState.diagnostics.push({\n pluginId: plugin.id,\n kind: 'duplicate-plugin',\n message: `Web plugin id '${plugin.id}' is declared twice; keeping the first definition.`,\n });\n continue;\n }\n owners.plugin.set(plugin.id, plugin.id);\n installingState.plugins.push(plugin);\n for (const tab of plugin.tabs ?? []) {\n if (claim(owners.tab, 'tab', tab.id, plugin.id)) installingState.tabs.push(tab);\n }\n for (const face of plugin.dockFaces ?? []) {\n if (face.id === 'activity' || face.id === 'context') {\n throw new Error(`Web plugin '${plugin.id}' dock face '${face.id}' is reserved by the host.`);\n }\n if (face.id.trim() === '' || face.label.trim() === '') {\n throw new Error(`Web plugin '${plugin.id}' has an unlabeled dock face.`);\n }\n if (claim(owners['dock-face'], 'dock-face', face.id, plugin.id)) installingState.dockFaces.push(face);\n }\n // A panel and a section both become a /settings/:id route, so the two\n // share one id namespace rather than racing to own the same URL.\n for (const section of plugin.settingsSections ?? []) {\n if (claim(owners['settings-section'], 'settings-section', section.id, plugin.id)) {\n installingState.settingsSections.push(section);\n }\n }\n for (const panel of plugin.settingsPanels ?? []) {\n if (claim(owners['settings-section'], 'settings-section', panel.id, plugin.id)) {\n installingState.settingsPanels.push({ pluginId: plugin.id, ...panel });\n }\n }\n for (const channel of plugin.channels ?? []) {\n if (claim(owners.channel, 'channel', channel.channel, plugin.id))\n installingState.channels.set(channel.channel, channel);\n }\n for (const command of plugin.paletteCommands ?? []) {\n if (claim(owners['palette-command'], 'palette-command', command.id, plugin.id))\n installingState.commands.push(command);\n }\n const contextActions = new Set<string>();\n for (const action of plugin.contextActions ?? []) {\n checkContextAction(plugin.id, contextActions, action);\n installingState.contextActions.push({ pluginId: plugin.id, ...action });\n }\n const userMessageActions = new Set<string>();\n for (const action of plugin.userMessageActions ?? []) {\n checkUserMessageAction(plugin.id, userMessageActions, action);\n installingState.userMessageActions.push({ pluginId: plugin.id, ...action });\n }\n for (const binding of plugin.leaderBindings ?? []) {\n checkLeaderBinding(plugin.id, binding);\n pendingBindings.push({ pluginId: plugin.id, binding });\n }\n for (const axis of plugin.selectionAxes ?? []) {\n if (claim(owners['selection-axis'], 'selection-axis', axis.name, plugin.id))\n installingState.selectionAxes.push(axis);\n }\n for (const mode of plugin.minorModes ?? []) {\n if (claim(owners['minor-mode'], 'minor-mode', mode.name, plugin.id)) installingState.minorModes.push(mode);\n }\n for (const group of plugin.activityGroups ?? []) {\n if (claim(owners['activity-group'], 'activity-group', group.name, plugin.id))\n installingState.activityGroups.push(group);\n }\n for (const renderer of plugin.toolRenderers ?? []) {\n for (const tool of renderer.tools) {\n if (claim(owners.tool, 'tool', tool, plugin.id)) installingState.toolRenderers.set(tool, renderer);\n }\n if (renderer.matches !== undefined) installingState.toolMatchers.push(renderer);\n }\n const declared = new Set<string>();\n for (const declaration of plugin.slots ?? []) {\n checkSlotDeclaration(plugin.id, declared, declaration);\n pendingSlots.push(declaration);\n }\n const filled = new Set<string>();\n for (const fill of plugin.fills ?? []) {\n checkFill(plugin.id, filled, fill);\n pendingFills.push({ pluginId: plugin.id, fill });\n }\n for (const surface of plugin.overlays ?? []) {\n pendingFills.push({ pluginId: plugin.id, fill: surfaceFill(HOST_SLOTS.overlay, surface) });\n }\n for (const surface of plugin.railSections ?? []) {\n pendingFills.push({ pluginId: plugin.id, fill: surfaceFill(HOST_SLOTS.rail, surface) });\n }\n for (const surface of plugin.contextSections ?? []) {\n pendingFills.push({ pluginId: plugin.id, fill: surfaceFill(HOST_SLOTS.context, surface) });\n }\n for (const surface of plugin.selectionBarItems ?? []) {\n pendingFills.push({ pluginId: plugin.id, fill: surfaceFill(HOST_SLOTS.selectionBar, surface) });\n }\n for (const surface of plugin.composerActions ?? []) {\n pendingFills.push({ pluginId: plugin.id, fill: surfaceFill(HOST_SLOTS.composerActions, surface) });\n }\n for (const surface of plugin.composerMenuItems ?? []) {\n pendingFills.push({ pluginId: plugin.id, fill: surfaceFill(HOST_SLOTS.composerMenu, surface) });\n }\n for (const section of plugin.activitySections ?? []) pendingSections.push({ pluginId: plugin.id, section });\n if (plugin.fileLinks !== undefined) installingState.fileLinks.push(plugin.fileLinks);\n }\n\n installingState.diagnostics.push(...collectWebTemplates(installingState.plugins).diagnostics);\n\n // Phase 2: resolve by name, now that every declaration is known.\n for (const slot of Object.values(HOST_SLOTS)) installingState.slots.set(slot, { slot });\n for (const group of installingState.activityGroups) {\n installingState.slots.set(activityGroupSlot(group.name), { slot: activityGroupSlot(group.name) });\n }\n for (const declaration of pendingSlots) installingState.slots.set(declaration.slot, declaration);\n for (const { pluginId, section } of pendingSections) {\n const keyed = activityGroupSlot(section.id);\n pendingFills.push({\n pluginId,\n fill: surfaceFill(installingState.slots.has(keyed) ? keyed : HOST_SLOTS.activity, section),\n });\n }\n for (const { pluginId, fill } of pendingFills) placeFill(pluginId, fill);\n for (const list of installingState.fills.values()) list.sort(byFillOrder);\n\n resolveLeaderConflicts(pendingBindings);\n installingState.leaderBindings.push(...pendingBindings.map((entry) => entry.binding));\n installingState.contextActions.sort(\n (left, right) =>\n (left.order ?? DEFAULT_FILL_ORDER) - (right.order ?? DEFAULT_FILL_ORDER) ||\n left.pluginId.localeCompare(right.pluginId) ||\n left.id.localeCompare(right.id),\n );\n installingState.userMessageActions.sort(\n (left, right) =>\n (left.order ?? DEFAULT_FILL_ORDER) - (right.order ?? DEFAULT_FILL_ORDER) ||\n left.pluginId.localeCompare(right.pluginId) ||\n left.id.localeCompare(right.id),\n );\n installingState.selectionAxes.sort(byDisplayOrder);\n installingState.minorModes.sort(byDisplayOrder);\n installingState.activityGroups.sort(byDisplayOrder);\n installingState.dockFaces.sort(\n (left, right) =>\n (left.order ?? DEFAULT_FILL_ORDER) - (right.order ?? DEFAULT_FILL_ORDER) || left.id.localeCompare(right.id),\n );\n return installingState;\n } finally {\n installingState = previous;\n }\n}\n\nexport function installWebPlugins(plugins: readonly WebPluginDefinition[]): void {\n if (defaultInstalled) throw new Error('Web plugins are already installed.');\n defaultState = buildWebPluginState(plugins);\n installingState = defaultState;\n defaultInstalled = true;\n}\n\nexport function webPluginsInstalled(): boolean {\n return defaultInstalled;\n}\n\n/** Unit-test escape hatch; production installs exactly once. */\nexport function resetWebPlugins(): void {\n defaultState = emptyState();\n installingState = defaultState;\n defaultInstalled = false;\n sessionStates.clear();\n workspaceStates.clear();\n sessionPlugins.clear();\n sessionWorkspaces.clear();\n activeWorkspaceId = null;\n pendingSessionFrames.clear();\n loadDiagnostics.clear();\n activeSessionId = null;\n emitRegistryChange();\n}\n\n/** Installs or atomically replaces one session's independently synchronized plugin definitions. */\nexport function installSessionWebPlugins(sessionId: string, plugins: readonly WebPluginDefinition[]): void {\n sessionPlugins.set(\n sessionId,\n plugins.flatMap((plugin) => (plugin.session === undefined ? [plugin] : pluginsAtScope([plugin], 'session'))),\n );\n rebuildSession(sessionId);\n if (sessionId === activeSessionId) emitRegistryChange();\n}\n\n/** Selects which session composition the no-argument contribution readers expose. */\nexport function activateWebPluginSession(sessionId: string | null): void {\n if (activeSessionId === sessionId) return;\n activeSessionId = sessionId;\n emitRegistryChange();\n}\n\n/** Removes one session registry after its plugin-owned stores have been dropped. */\nexport function removeSessionWebPlugins(sessionId: string): void {\n const sessionState = sessionStates.get(sessionId);\n pendingSessionFrames.delete(sessionId);\n loadDiagnostics.delete(`session:${sessionId}`);\n if (sessionState === undefined) return;\n for (const channel of sessionState.channels.values()) channel.drop(sessionId);\n sessionStates.delete(sessionId);\n sessionPlugins.delete(sessionId);\n sessionWorkspaces.delete(sessionId);\n if (sessionId === activeSessionId) emitRegistryChange();\n}\n\nexport function subscribeWebPluginRegistry(listener: () => void): () => void {\n registryListeners.add(listener);\n return () => registryListeners.delete(listener);\n}\n\nexport function webPluginRegistryRevision(): number {\n return registryRevision;\n}\n\n/**\n * Records the slots one mount could not load, replacing its previous record. The mount still\n * installs the slots that loaded, so one broken plugin never hides the others.\n */\nexport function setWebPluginLoadDiagnostics(mount: WebPluginMount, diagnostics: readonly InstallDiagnostic[]): void {\n const key =\n mount.scope === 'global'\n ? 'global'\n : mount.scope === 'workspace'\n ? `workspace:${mount.workspaceId}`\n : `session:${mount.sessionId}`;\n if (diagnostics.length === 0 && !loadDiagnostics.has(key)) return;\n if (diagnostics.length === 0) loadDiagnostics.delete(key);\n else loadDiagnostics.set(key, [...diagnostics]);\n emitRegistryChange();\n}\n\n/**\n * What the install had to resolve between plugins, plus the slots the visible mounts could not\n * load; empty for a composition whose plugins all load and never collide.\n */\nexport function webPluginDiagnostics(): readonly InstallDiagnostic[] {\n const workspaceId =\n (activeSessionId === null ? undefined : sessionWorkspaces.get(activeSessionId)) ?? activeWorkspaceId;\n const failed = [\n 'global',\n ...(workspaceId === null ? [] : [`workspace:${workspaceId}`]),\n ...(activeSessionId === null ? [] : [`session:${activeSessionId}`]),\n ].flatMap((key) => loadDiagnostics.get(key) ?? []);\n const installed = activeState().diagnostics;\n return failed.length === 0 ? installed : [...installed, ...failed];\n}\n\n/** Every installed plugin definition, in install order; the settings page lists them. */\nexport function installedWebPlugins(): readonly WebPluginDefinition[] {\n return activeState().plugins;\n}\n\nexport interface InstalledRepositorySettingsPanel extends RepositorySettingsPanelContribution {\n pluginId: string;\n}\n\n/** Package panels placed under the host's repository controls, in stable display order. */\nexport function pluginRepositorySettingsPanels(): readonly InstalledRepositorySettingsPanel[] {\n return (workspaceState() ?? emptyState()).plugins\n .flatMap((plugin) =>\n plugin.repositorySettingsPanel === undefined ? [] : [{ pluginId: plugin.id, ...plugin.repositorySettingsPanel }],\n )\n .sort(\n (left, right) =>\n (left.order ?? DEFAULT_FILL_ORDER) - (right.order ?? DEFAULT_FILL_ORDER) ||\n left.pluginId.localeCompare(right.pluginId),\n );\n}\n\nexport function webTabs(): readonly TabContribution[] {\n return activeState().tabs;\n}\n\n/** Optional right-dock faces from the active session composition, in display order. */\nexport function pluginDockFaces(): readonly DockFaceContribution[] {\n return activeState().dockFaces;\n}\n\n/** UI discovery only. Requests still require a proof injected by Electron's main process. */\nexport function isDesktopClient(): boolean {\n return (\n typeof window !== 'undefined' &&\n (window as Window & { poDesktop?: { platform?: string } }).poDesktop?.platform === 'desktop'\n );\n}\n/**\n * The settings pages plugins contribute, in menu order. Sorted here rather than\n * at the reader so the menu and the page agree without either sorting twice.\n */\nexport function pluginSettingsSections(\n scope: 'global' | 'workspace' = 'global',\n): readonly SettingsSectionContribution[] {\n const sections = (scope === 'global' ? defaultState : workspaceState())?.settingsSections ?? [];\n return isDesktopClient() ? sections : sections.filter((section) => !section.desktopOnly);\n}\n\nexport interface InstalledSettingsPanel extends SettingsPanelContribution {\n pluginId: string;\n}\n\n/** The settings pages plugins draw themselves, in install order; the reader sorts them with the sections. */\nexport function pluginSettingsPanels(): readonly InstalledSettingsPanel[] {\n return defaultState.settingsPanels;\n}\n\n/** The fills placed into one slot, in slot order; empty for a slot nobody declared. */\nexport function slotFills(slot: string): readonly ResolvedFill[] {\n return activeState().fills.get(slot) ?? [];\n}\n\n/** One workspace's own fills for a slot, whichever session or workspace is focused. */\nexport function workspaceSlotFills(workspaceId: string, slot: string): readonly ResolvedFill[] {\n return workspaceStates.get(workspaceId)?.fills.get(slot) ?? [];\n}\n\nexport function paletteCommands(): readonly PaletteCommandContribution[] {\n return activeState().commands;\n}\n\n/** Context actions from every installed plugin, in stable display order. */\nexport function pluginContextActions(): readonly InstalledContextAction[] {\n return activeState().contextActions;\n}\n\n/** User-message actions from every installed plugin, in stable display order. */\nexport function pluginUserMessageActions(): readonly InstalledUserMessageAction[] {\n return activeState().userMessageActions;\n}\n\n/** Leader Space bindings from every installed plugin, in install order: a later binding on a bound leaf wins. */\nexport function pluginLeaderBindings(): readonly LeaderBindingContribution[] {\n return activeState().leaderBindings;\n}\n\n/** Selection-axis declarations from every installed plugin, in display order. */\nexport function pluginSelectionAxes(): readonly SelectionAxisContribution[] {\n return activeState().selectionAxes;\n}\n\n/** Minor-mode declarations from every installed plugin, in display order. */\nexport function pluginMinorModes(): readonly MinorModeContribution[] {\n return activeState().minorModes;\n}\n\n/** Activity-dock group declarations from every installed plugin, in display order. */\nexport function pluginActivityGroups(): readonly ActivityGroupContribution[] {\n const groups = activeState().activityGroups;\n return isDesktopClient() ? groups : groups.filter((group) => !group.desktopOnly);\n}\n\n/**\n * The file-link sources installed plugins contribute, in install order.\n *\n * More than one is allowed and the first to claim a path wins, the same way a\n * runtime tool matcher does: the host has no way to choose between two\n * packages that both recognise a path, and the alternative is two tabs for one\n * file.\n */\nexport function pluginFileLinks(): readonly FileLinkSource[] {\n return activeState().fileLinks;\n}\n\n/**\n * The renderer a plugin registered for one tool: the exact name claim first,\n * then the first runtime matcher that accepts it, in install order (the one\n * place besides `start` where that order is observable); undefined leaves\n * the host's default card.\n */\nexport function pluginToolRenderer(\n toolName: string,\n statuses: Readonly<Record<string, string>> = {},\n details?: unknown,\n): ToolRendererContribution | undefined {\n return (\n activeState().toolRenderers.get(toolName) ??\n activeState().toolMatchers.find((renderer) => renderer.matches?.(toolName, statuses, details))\n );\n}\n\n/** A session-scoped renderer, or undefined until that session's verified composition is installed. */\nexport function sessionToolRenderer(sessionId: string, toolName: string): ToolRendererContribution | undefined {\n return sessionStates.get(sessionId)?.toolRenderers.get(toolName);\n}\n\nexport function sessionWebPluginsInstalled(sessionId: string): boolean {\n return sessionStates.has(sessionId);\n}\n\n/**\n * Routes one wire frame to the channel owning its type. Returns false when no\n * channel claims it, so the demux can fall through silently the way unknown\n * frames always have.\n */\nfunction dispatchFrameToState(state: RegistryState, frame: Record<string, unknown>): boolean {\n if (typeof frame.type !== 'string' || typeof frame.sessionId !== 'string') return false;\n const channel = state.channels.get(frame.type);\n if (channel === undefined) return false;\n const payload = channel.parse(frame.payload);\n if (payload !== null) channel.apply(frame.sessionId, payload);\n return true;\n}\n\nexport function dispatchChannelFrame(frame: Record<string, unknown>): boolean {\n if (typeof frame.type !== 'string' || typeof frame.sessionId !== 'string') return false;\n const state = sessionStates.get(frame.sessionId);\n if (state !== undefined) {\n if (dispatchFrameToState(state, frame)) return true;\n } else if (activeSessionId === null) return dispatchFrameToState(defaultState, frame);\n // Channel envelopes carry payload; protocol events do not and must not accumulate.\n if (!Object.hasOwn(frame, 'payload')) return false;\n const pending = pendingSessionFrames.get(frame.sessionId) ?? new Map<string, Record<string, unknown>>();\n if (!pending.has(frame.type) && pending.size >= MAX_PENDING_CHANNEL_TYPES) {\n const oldest = pending.keys().next().value as string | undefined;\n if (oldest !== undefined) pending.delete(oldest);\n }\n pending.set(frame.type, frame);\n pendingSessionFrames.set(frame.sessionId, pending);\n return false;\n}\n\n/** Session teardown: every channel forgets the session's data. */\nexport function dropPluginSessionData(sessionId: string): void {\n pendingSessionFrames.delete(sessionId);\n const state = sessionStates.get(sessionId) ?? (activeSessionId === null ? defaultState : undefined);\n for (const channel of state?.channels.values() ?? []) channel.drop(sessionId);\n}\n\n/** Starts every plugin runtime in install order; the disposer runs in reverse. */\nexport function startPluginDefinitions(plugins: readonly WebPluginDefinition[], runtime: WebPluginRuntime): () => void {\n const disposers: Array<() => void> = [];\n const disposeStarted = (): void => {\n for (const dispose of disposers.reverse()) dispose();\n };\n try {\n for (const plugin of plugins) {\n const dispose = plugin.start?.(runtime);\n if (dispose) disposers.push(dispose);\n }\n } catch (error) {\n disposeStarted();\n throw error;\n }\n return disposeStarted;\n}\n\nexport function startWebPlugins(runtime: WebPluginRuntime): () => void {\n return startPluginDefinitions(activeState().plugins, runtime);\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import { NativeTemplateCatalog, WebTemplateCatalog } from "./templateCatalog.mjs";
|
|
2
|
+
import { ComponentType } from "react";
|
|
3
|
+
import { ActivityGroupContribution, ContextActionContribution, DockFaceContribution, FileLinkSource, LeaderBindingContribution, MinorModeContribution, PaletteCommandContribution, RepositorySettingsPanelContribution, SelectionAxisContribution, SettingsPanelContribution, SettingsSectionContribution, TabContribution, ToolRendererContribution, UserMessageActionContribution, WebPluginDefinition, WebPluginMount, WebPluginRuntime, WebPluginSlotProps } from "@agimon-ai/po-core/web";
|
|
4
|
+
//#region src/web/lib/pluginRegistry.d.ts
|
|
5
|
+
/**
|
|
6
|
+
* The installed plugin set.
|
|
7
|
+
*
|
|
8
|
+
* Plain module state rather than a reactive store: the generated plugin list
|
|
9
|
+
* is installed once at startup, before the first render, so every read during
|
|
10
|
+
* render is stable. Install runs in two phases. The first collects every
|
|
11
|
+
* plugin's contributions in the generated order, which is (registrationOrder,
|
|
12
|
+
* pluginId); the second resolves every relation between plugins by name, so
|
|
13
|
+
* a plugin may fill a slot whichever of the two installs first.
|
|
14
|
+
*
|
|
15
|
+
* Plugins are independent and a user may install any of them, so a collision
|
|
16
|
+
* between two plugins never fails the install: a shared name goes to the
|
|
17
|
+
* first plugin (a Leader Space leaf to the later one, as the TUI documents)
|
|
18
|
+
* and the loser is recorded as a diagnostic. Only a malformed contribution
|
|
19
|
+
* inside one plugin throws, because that is a developer error its own tests
|
|
20
|
+
* catch. resetWebPlugins exists for unit tests only.
|
|
21
|
+
*/
|
|
22
|
+
export type InstallDiagnosticKind = 'duplicate-plugin' | 'duplicate-tab' | 'duplicate-dock-face' | 'duplicate-channel' | 'duplicate-tool' | 'duplicate-activity-group' | 'duplicate-minor-mode' | 'duplicate-selection-axis' | 'duplicate-palette-command' | 'duplicate-settings-section' | 'leader-leaf-override' | 'leader-group-label' | 'orphan-fill' | 'rejected-fill' | 'invalid-template' | 'duplicate-template' | 'slot-load-failed';
|
|
23
|
+
export interface InstallDiagnostic {
|
|
24
|
+
/** The plugin that lost or misfiled the contribution. */
|
|
25
|
+
pluginId: string;
|
|
26
|
+
kind: InstallDiagnosticKind;
|
|
27
|
+
message: string;
|
|
28
|
+
}
|
|
29
|
+
/** One placed fill, as the owner's renderSlot and slotData read it. */
|
|
30
|
+
export interface ResolvedFill {
|
|
31
|
+
slot: string;
|
|
32
|
+
pluginId: string;
|
|
33
|
+
id: string;
|
|
34
|
+
order: number;
|
|
35
|
+
data?: unknown;
|
|
36
|
+
component?: ComponentType<WebPluginSlotProps>;
|
|
37
|
+
}
|
|
38
|
+
export interface InstalledContextAction extends ContextActionContribution {
|
|
39
|
+
pluginId: string;
|
|
40
|
+
}
|
|
41
|
+
export interface InstalledUserMessageAction extends UserMessageActionContribution {
|
|
42
|
+
pluginId: string;
|
|
43
|
+
}
|
|
44
|
+
/** The slots the host itself declares; a plugin's own slots are namespaced by its id instead. */
|
|
45
|
+
export declare const HOST_SLOTS: {
|
|
46
|
+
readonly overlay: 'overlay';
|
|
47
|
+
readonly rail: 'rail';
|
|
48
|
+
readonly context: 'context';
|
|
49
|
+
readonly selectionBar: 'selection-bar';
|
|
50
|
+
readonly activity: 'activity';
|
|
51
|
+
readonly composerActions: 'composer-actions';
|
|
52
|
+
readonly composerMenu: 'composer-menu';
|
|
53
|
+
readonly sessionMenu: 'session-menu';
|
|
54
|
+
/** A workspace plugin fill here replaces the host's new-session dialog for that workspace. */
|
|
55
|
+
readonly newSession: 'new-session';
|
|
56
|
+
};
|
|
57
|
+
/** The keyed slot an activity group opens: sections fill it and render as the group's body. */
|
|
58
|
+
export declare function activityGroupSlot(name: string): string;
|
|
59
|
+
/** Settings requests an explicit scope; the cockpit reads its active session composition. */
|
|
60
|
+
export declare function webTemplateCatalog(mount?: WebPluginMount): WebTemplateCatalog;
|
|
61
|
+
/** The phone app's layouts at the server-resolved `native.template` mount. */
|
|
62
|
+
export declare function nativeTemplateCatalog(mount: WebPluginMount): NativeTemplateCatalog;
|
|
63
|
+
export declare function installGlobalWebPlugins(plugins: readonly WebPluginDefinition[]): void;
|
|
64
|
+
export declare function installWorkspaceWebPlugins(workspaceId: string, plugins: readonly WebPluginDefinition[]): void;
|
|
65
|
+
export declare function removeWorkspaceWebPlugins(workspaceId: string): void;
|
|
66
|
+
export declare function activateWebPluginWorkspace(workspaceId: string | null): void;
|
|
67
|
+
export declare function bindSessionWebWorkspace(sessionId: string, workspaceId: string): void;
|
|
68
|
+
export declare function installWebPlugins(plugins: readonly WebPluginDefinition[]): void;
|
|
69
|
+
export declare function webPluginsInstalled(): boolean;
|
|
70
|
+
/** Unit-test escape hatch; production installs exactly once. */
|
|
71
|
+
export declare function resetWebPlugins(): void;
|
|
72
|
+
/** Installs or atomically replaces one session's independently synchronized plugin definitions. */
|
|
73
|
+
export declare function installSessionWebPlugins(sessionId: string, plugins: readonly WebPluginDefinition[]): void;
|
|
74
|
+
/** Selects which session composition the no-argument contribution readers expose. */
|
|
75
|
+
export declare function activateWebPluginSession(sessionId: string | null): void;
|
|
76
|
+
/** Removes one session registry after its plugin-owned stores have been dropped. */
|
|
77
|
+
export declare function removeSessionWebPlugins(sessionId: string): void;
|
|
78
|
+
export declare function subscribeWebPluginRegistry(listener: () => void): () => void;
|
|
79
|
+
export declare function webPluginRegistryRevision(): number;
|
|
80
|
+
/**
|
|
81
|
+
* Records the slots one mount could not load, replacing its previous record. The mount still
|
|
82
|
+
* installs the slots that loaded, so one broken plugin never hides the others.
|
|
83
|
+
*/
|
|
84
|
+
export declare function setWebPluginLoadDiagnostics(mount: WebPluginMount, diagnostics: readonly InstallDiagnostic[]): void;
|
|
85
|
+
/**
|
|
86
|
+
* What the install had to resolve between plugins, plus the slots the visible mounts could not
|
|
87
|
+
* load; empty for a composition whose plugins all load and never collide.
|
|
88
|
+
*/
|
|
89
|
+
export declare function webPluginDiagnostics(): readonly InstallDiagnostic[];
|
|
90
|
+
/** Every installed plugin definition, in install order; the settings page lists them. */
|
|
91
|
+
export declare function installedWebPlugins(): readonly WebPluginDefinition[];
|
|
92
|
+
export interface InstalledRepositorySettingsPanel extends RepositorySettingsPanelContribution {
|
|
93
|
+
pluginId: string;
|
|
94
|
+
}
|
|
95
|
+
/** Package panels placed under the host's repository controls, in stable display order. */
|
|
96
|
+
export declare function pluginRepositorySettingsPanels(): readonly InstalledRepositorySettingsPanel[];
|
|
97
|
+
export declare function webTabs(): readonly TabContribution[];
|
|
98
|
+
/** Optional right-dock faces from the active session composition, in display order. */
|
|
99
|
+
export declare function pluginDockFaces(): readonly DockFaceContribution[];
|
|
100
|
+
/** UI discovery only. Requests still require a proof injected by Electron's main process. */
|
|
101
|
+
export declare function isDesktopClient(): boolean;
|
|
102
|
+
/**
|
|
103
|
+
* The settings pages plugins contribute, in menu order. Sorted here rather than
|
|
104
|
+
* at the reader so the menu and the page agree without either sorting twice.
|
|
105
|
+
*/
|
|
106
|
+
export declare function pluginSettingsSections(scope?: 'global' | 'workspace'): readonly SettingsSectionContribution[];
|
|
107
|
+
export interface InstalledSettingsPanel extends SettingsPanelContribution {
|
|
108
|
+
pluginId: string;
|
|
109
|
+
}
|
|
110
|
+
/** The settings pages plugins draw themselves, in install order; the reader sorts them with the sections. */
|
|
111
|
+
export declare function pluginSettingsPanels(): readonly InstalledSettingsPanel[];
|
|
112
|
+
/** The fills placed into one slot, in slot order; empty for a slot nobody declared. */
|
|
113
|
+
export declare function slotFills(slot: string): readonly ResolvedFill[];
|
|
114
|
+
/** One workspace's own fills for a slot, whichever session or workspace is focused. */
|
|
115
|
+
export declare function workspaceSlotFills(workspaceId: string, slot: string): readonly ResolvedFill[];
|
|
116
|
+
export declare function paletteCommands(): readonly PaletteCommandContribution[];
|
|
117
|
+
/** Context actions from every installed plugin, in stable display order. */
|
|
118
|
+
export declare function pluginContextActions(): readonly InstalledContextAction[];
|
|
119
|
+
/** User-message actions from every installed plugin, in stable display order. */
|
|
120
|
+
export declare function pluginUserMessageActions(): readonly InstalledUserMessageAction[];
|
|
121
|
+
/** Leader Space bindings from every installed plugin, in install order: a later binding on a bound leaf wins. */
|
|
122
|
+
export declare function pluginLeaderBindings(): readonly LeaderBindingContribution[];
|
|
123
|
+
/** Selection-axis declarations from every installed plugin, in display order. */
|
|
124
|
+
export declare function pluginSelectionAxes(): readonly SelectionAxisContribution[];
|
|
125
|
+
/** Minor-mode declarations from every installed plugin, in display order. */
|
|
126
|
+
export declare function pluginMinorModes(): readonly MinorModeContribution[];
|
|
127
|
+
/** Activity-dock group declarations from every installed plugin, in display order. */
|
|
128
|
+
export declare function pluginActivityGroups(): readonly ActivityGroupContribution[];
|
|
129
|
+
/**
|
|
130
|
+
* The file-link sources installed plugins contribute, in install order.
|
|
131
|
+
*
|
|
132
|
+
* More than one is allowed and the first to claim a path wins, the same way a
|
|
133
|
+
* runtime tool matcher does: the host has no way to choose between two
|
|
134
|
+
* packages that both recognise a path, and the alternative is two tabs for one
|
|
135
|
+
* file.
|
|
136
|
+
*/
|
|
137
|
+
export declare function pluginFileLinks(): readonly FileLinkSource[];
|
|
138
|
+
/**
|
|
139
|
+
* The renderer a plugin registered for one tool: the exact name claim first,
|
|
140
|
+
* then the first runtime matcher that accepts it, in install order (the one
|
|
141
|
+
* place besides `start` where that order is observable); undefined leaves
|
|
142
|
+
* the host's default card.
|
|
143
|
+
*/
|
|
144
|
+
export declare function pluginToolRenderer(toolName: string, statuses?: Readonly<Record<string, string>>, details?: unknown): ToolRendererContribution | undefined;
|
|
145
|
+
/** A session-scoped renderer, or undefined until that session's verified composition is installed. */
|
|
146
|
+
export declare function sessionToolRenderer(sessionId: string, toolName: string): ToolRendererContribution | undefined;
|
|
147
|
+
export declare function sessionWebPluginsInstalled(sessionId: string): boolean;
|
|
148
|
+
export declare function dispatchChannelFrame(frame: Record<string, unknown>): boolean;
|
|
149
|
+
/** Session teardown: every channel forgets the session's data. */
|
|
150
|
+
export declare function dropPluginSessionData(sessionId: string): void;
|
|
151
|
+
/** Starts every plugin runtime in install order; the disposer runs in reverse. */
|
|
152
|
+
export declare function startPluginDefinitions(plugins: readonly WebPluginDefinition[], runtime: WebPluginRuntime): () => void;
|
|
153
|
+
export declare function startWebPlugins(runtime: WebPluginRuntime): () => void;
|
|
154
|
+
//#endregion
|
|
155
|
+
//# sourceMappingURL=pluginRegistry.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pluginRegistry.d.mts","names":[],"sources":["../../../src/web/lib/pluginRegistry.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;YAqDY;iBAmBK;;EAEf;EACA,MAAM;EACN;;;iBAIe;EACf;EACA;EACA;EACA;EACA;EACA,YAAY,cAAc;;iBAGX,+BAA+B;EAC9C;;iBAGe,mCAAmC;EAClD;;;qBAGW;WACX;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;WAEA;;;wBAQc,kBAAkB;;wBA6ElB,mBAAmB,QAAQ,iBAAiB;;wBAe5C,sBAAsB,OAAO,iBAAiB;wBA4B9C,wBAAwB,kBAAkB;wBAM1C,2BAA2B,qBAAqB,kBAAkB;wBAOlE,0BAA0B;wBAQ1B,2BAA2B;wBAM3B,wBAAwB,mBAAmB;wBAyX3C,kBAAkB,kBAAkB;wBAOpC;;wBAKA;;wBAgBA,yBAAyB,mBAAmB,kBAAkB;;wBAU9D,yBAAyB;;wBAOzB,wBAAwB;wBAYxB,2BAA2B;wBAK3B;;;;;wBAQA,4BAA4B,OAAO,gBAAgB,sBAAsB;;;;;wBAiBzE,iCAAiC;;wBAajC,gCAAgC;iBAI/B,yCAAyC;EACxD;;;wBAIc,2CAA2C;wBAY3C,oBAAoB;;wBAKpB,4BAA4B;;wBAK5B;;;;;wBAUA,uBACd,0CACU;iBAKK,+BAA+B;EAC9C;;;wBAIc,iCAAiC;;wBAKjC,UAAU,wBAAwB;;wBAKlC,mBAAmB,qBAAqB,wBAAwB;wBAIhE,4BAA4B;;wBAK5B,iCAAiC;;wBAKjC,qCAAqC;;wBAKrC,iCAAiC;;wBAKjC,gCAAgC;;wBAKhC,6BAA6B;;wBAK7B,iCAAiC;;;;;;;;;wBAajC,4BAA4B;;;;;;;wBAU5B,mBACd,kBACA,WAAU,SAAS,yBACnB,oBACC;;wBAQa,oBAAoB,mBAAmB,mBAAmB;wBAI1D,2BAA2B;wBAkB3B,qBAAqB,OAAO;;wBAmB5B,sBAAsB;;wBAOtB,uBAAuB,kBAAkB,uBAAuB,SAAS;wBAiBzE,gBAAgB,SAAS"}
|