@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,107 @@
|
|
|
1
|
+
let _earendil_works_chord_context = require("@earendil-works/chord/context");
|
|
2
|
+
let _agimon_ai_po_core_pluginProtocol = require("@agimon-ai/po-core/pluginProtocol");
|
|
3
|
+
let _agimon_ai_po_core_sessionProtocol = require("@agimon-ai/po-core/sessionProtocol");
|
|
4
|
+
let _earendil_works_chord = require("@earendil-works/chord");
|
|
5
|
+
let _earendil_works_pi_client = require("@earendil-works/pi-client");
|
|
6
|
+
//#region src/web/lib/protocolHubSocket.ts
|
|
7
|
+
/** Hub administration and plugin events share the session's authenticated Pi byte connection. */
|
|
8
|
+
function createProtocolHubSocket(client, handlers) {
|
|
9
|
+
let binding;
|
|
10
|
+
let service;
|
|
11
|
+
let pluginService;
|
|
12
|
+
let unsubscribe;
|
|
13
|
+
let cancelOpening;
|
|
14
|
+
let stopped = false;
|
|
15
|
+
let generation = 0;
|
|
16
|
+
const release = () => {
|
|
17
|
+
generation += 1;
|
|
18
|
+
cancelOpening?.(/* @__PURE__ */ new Error("The hub binding was replaced."));
|
|
19
|
+
cancelOpening = void 0;
|
|
20
|
+
service = void 0;
|
|
21
|
+
pluginService = void 0;
|
|
22
|
+
unsubscribe?.();
|
|
23
|
+
unsubscribe = void 0;
|
|
24
|
+
const previous = binding;
|
|
25
|
+
binding = void 0;
|
|
26
|
+
if (previous) previous.dispose(_earendil_works_chord_context.BACKGROUND_CONTEXT).catch(() => void 0);
|
|
27
|
+
};
|
|
28
|
+
const open = async () => {
|
|
29
|
+
if (service) handlers.onClose();
|
|
30
|
+
release();
|
|
31
|
+
const mine = generation;
|
|
32
|
+
const next = (0, _earendil_works_chord.createRemoteServiceBinding)({
|
|
33
|
+
services: [_agimon_ai_po_core_sessionProtocol.DoomHubService, _agimon_ai_po_core_pluginProtocol.DoomPluginService],
|
|
34
|
+
transport: (0, _earendil_works_pi_client.createClientServiceTransport)(client, () => ({ serverId: _agimon_ai_po_core_sessionProtocol.DOOM_COCKPIT_SERVER_ID }))
|
|
35
|
+
});
|
|
36
|
+
binding = next;
|
|
37
|
+
const opening = (0, _earendil_works_chord_context.withCancel)(_earendil_works_chord_context.BACKGROUND_CONTEXT);
|
|
38
|
+
cancelOpening = opening.cancel;
|
|
39
|
+
try {
|
|
40
|
+
const hub = next.use(_agimon_ai_po_core_sessionProtocol.DoomHubService);
|
|
41
|
+
await next.ready(opening.context);
|
|
42
|
+
if (stopped || mine !== generation) return;
|
|
43
|
+
service = hub;
|
|
44
|
+
pluginService = next.use(_agimon_ai_po_core_pluginProtocol.DoomPluginService);
|
|
45
|
+
let sequence = 0;
|
|
46
|
+
const publish = (state) => {
|
|
47
|
+
for (const event of state.events) {
|
|
48
|
+
if (event.sequence <= sequence) continue;
|
|
49
|
+
if (event.sequence !== sequence + 1) throw new Error("Hub replay gap; reconnect required.");
|
|
50
|
+
sequence = event.sequence;
|
|
51
|
+
handlers.onFrame(event.frame);
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
handlers.onOpen();
|
|
55
|
+
if (hub.state.value) publish(hub.state.value);
|
|
56
|
+
unsubscribe = hub.state.subscribe(publish);
|
|
57
|
+
} catch {
|
|
58
|
+
if (!stopped && mine === generation) {
|
|
59
|
+
release();
|
|
60
|
+
handlers.onClose();
|
|
61
|
+
client.disconnect();
|
|
62
|
+
}
|
|
63
|
+
} finally {
|
|
64
|
+
if (cancelOpening === opening.cancel) cancelOpening = void 0;
|
|
65
|
+
if (binding === next && (stopped || mine !== generation)) {
|
|
66
|
+
binding = void 0;
|
|
67
|
+
await next.dispose(_earendil_works_chord_context.BACKGROUND_CONTEXT).catch(() => void 0);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
const stopWatch = client.onConnectionStateChange((change) => {
|
|
72
|
+
if (stopped) return;
|
|
73
|
+
if (change.state === "connected") open();
|
|
74
|
+
else if (change.state === "disconnected") {
|
|
75
|
+
release();
|
|
76
|
+
handlers.onClose();
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
if (client.connected) open();
|
|
80
|
+
return {
|
|
81
|
+
async invokePlugin(call) {
|
|
82
|
+
const current = pluginService;
|
|
83
|
+
if (!current) throw new Error("The hub protocol is not connected.");
|
|
84
|
+
return current.invoke(call, _earendil_works_chord_context.BACKGROUND_CONTEXT);
|
|
85
|
+
},
|
|
86
|
+
send(frame) {
|
|
87
|
+
const current = service;
|
|
88
|
+
if (!current) throw new Error("The hub protocol is not connected.");
|
|
89
|
+
const mine = generation;
|
|
90
|
+
current.send(frame, _earendil_works_chord_context.BACKGROUND_CONTEXT).catch(() => {
|
|
91
|
+
if (!stopped && mine === generation && service === current) {
|
|
92
|
+
handlers.onClose();
|
|
93
|
+
client.disconnect();
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
},
|
|
97
|
+
close() {
|
|
98
|
+
stopped = true;
|
|
99
|
+
stopWatch();
|
|
100
|
+
release();
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
//#endregion
|
|
105
|
+
exports.createProtocolHubSocket = createProtocolHubSocket;
|
|
106
|
+
|
|
107
|
+
//# sourceMappingURL=protocolHubSocket.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocolHubSocket.cjs","names":["BACKGROUND_CONTEXT","createRemoteServiceBinding","DoomHubService","DoomPluginService","createClientServiceTransport","DOOM_COCKPIT_SERVER_ID","withCancel"],"sources":["../../../src/web/lib/protocolHubSocket.ts"],"sourcesContent":["import { DoomPluginService, type DoomPluginCall } from '@agimon-ai/po-core/pluginProtocol';\nimport { DOOM_COCKPIT_SERVER_ID, DoomHubService, type HubService } from '@agimon-ai/po-core/sessionProtocol';\nimport { createRemoteServiceBinding, type RemoteServiceBinding } from '@earendil-works/chord';\nimport { BACKGROUND_CONTEXT, withCancel } from '@earendil-works/chord/context';\nimport { createClientServiceTransport, type Client } from '@earendil-works/pi-client';\ntype Frame = Record<string, unknown>;\n\nexport interface SessionSocket {\n send(frame: object): void;\n invokePlugin(call: DoomPluginCall): Promise<unknown>;\n close(): void;\n}\n\nexport interface SessionSocketHandlers {\n onFrame(frame: Frame): void;\n onOpen(): void;\n onClose(): void;\n}\n\n/** Hub administration and plugin events share the session's authenticated Pi byte connection. */\nexport function createProtocolHubSocket(client: Client, handlers: SessionSocketHandlers): SessionSocket {\n let binding: RemoteServiceBinding | undefined;\n let service: HubService | undefined;\n let pluginService: DoomPluginService | undefined;\n let unsubscribe: (() => void) | undefined;\n let cancelOpening: ((reason?: unknown) => void) | undefined;\n let stopped = false;\n let generation = 0;\n const release = () => {\n generation += 1;\n cancelOpening?.(new Error('The hub binding was replaced.'));\n cancelOpening = undefined;\n service = undefined;\n pluginService = undefined;\n unsubscribe?.();\n unsubscribe = undefined;\n const previous = binding;\n binding = undefined;\n if (previous) void previous.dispose(BACKGROUND_CONTEXT).catch(() => undefined);\n };\n const open = async () => {\n if (service) handlers.onClose();\n release();\n const mine = generation;\n const next = createRemoteServiceBinding({\n services: [DoomHubService, DoomPluginService],\n transport: createClientServiceTransport(client, () => ({ serverId: DOOM_COCKPIT_SERVER_ID })),\n });\n binding = next;\n const opening = withCancel(BACKGROUND_CONTEXT);\n cancelOpening = opening.cancel;\n try {\n const hub = next.use(DoomHubService);\n await next.ready(opening.context);\n if (stopped || mine !== generation) return;\n service = hub;\n pluginService = next.use(DoomPluginService);\n let sequence = 0;\n const publish = (state: NonNullable<typeof hub.state.value>) => {\n for (const event of state.events) {\n if (event.sequence <= sequence) continue;\n if (event.sequence !== sequence + 1) throw new Error('Hub replay gap; reconnect required.');\n sequence = event.sequence;\n handlers.onFrame(event.frame);\n }\n };\n handlers.onOpen();\n if (hub.state.value) publish(hub.state.value);\n unsubscribe = hub.state.subscribe(publish);\n } catch {\n if (!stopped && mine === generation) {\n release();\n handlers.onClose();\n client.disconnect();\n }\n } finally {\n if (cancelOpening === opening.cancel) cancelOpening = undefined;\n // A stale opening may have been replaced before ready completed. If release\n // did not already own disposal, close this binding here.\n if (binding === next && (stopped || mine !== generation)) {\n binding = undefined;\n await next.dispose(BACKGROUND_CONTEXT).catch(() => undefined);\n }\n }\n };\n const stopWatch = client.onConnectionStateChange((change) => {\n if (stopped) return;\n if (change.state === 'connected') void open();\n else if (change.state === 'disconnected') {\n release();\n handlers.onClose();\n }\n });\n if (client.connected) void open();\n return {\n async invokePlugin(call) {\n const current = pluginService;\n if (!current) throw new Error('The hub protocol is not connected.');\n return current.invoke(call as Parameters<DoomPluginService['invoke']>[0], BACKGROUND_CONTEXT);\n },\n send(frame) {\n const current = service;\n if (!current) throw new Error('The hub protocol is not connected.');\n const mine = generation;\n void current.send(frame as Parameters<HubService['send']>[0], BACKGROUND_CONTEXT).catch(() => {\n if (!stopped && mine === generation && service === current) {\n handlers.onClose();\n client.disconnect();\n }\n });\n },\n close() {\n stopped = true;\n stopWatch();\n release();\n },\n };\n}\n"],"mappings":";;;;;;;AAoBA,SAAgB,wBAAwB,QAAgB,UAAgD;CACtG,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI,UAAU;CACd,IAAI,aAAa;CACjB,MAAM,gBAAgB;EACpB,cAAc;EACd,gCAAgB,IAAI,MAAM,+BAA+B,CAAC;EAC1D,gBAAgB,KAAA;EAChB,UAAU,KAAA;EACV,gBAAgB,KAAA;EAChB,cAAc;EACd,cAAc,KAAA;EACd,MAAM,WAAW;EACjB,UAAU,KAAA;EACV,IAAI,UAAU,SAAc,QAAQA,8BAAAA,kBAAkB,CAAC,CAAC,YAAY,KAAA,CAAS;CAC/E;CACA,MAAM,OAAO,YAAY;EACvB,IAAI,SAAS,SAAS,QAAQ;EAC9B,QAAQ;EACR,MAAM,OAAO;EACb,MAAM,QAAA,GAAOC,sBAAAA,2BAAAA,CAA2B;GACtC,UAAU,CAACC,mCAAAA,gBAAgBC,kCAAAA,iBAAiB;GAC5C,YAAA,GAAWC,0BAAAA,6BAAAA,CAA6B,eAAe,EAAE,UAAUC,mCAAAA,uBAAuB,EAAE;EAC9F,CAAC;EACD,UAAU;EACV,MAAM,WAAA,GAAUC,8BAAAA,WAAAA,CAAWN,8BAAAA,kBAAkB;EAC7C,gBAAgB,QAAQ;EACxB,IAAI;GACF,MAAM,MAAM,KAAK,IAAIE,mCAAAA,cAAc;GACnC,MAAM,KAAK,MAAM,QAAQ,OAAO;GAChC,IAAI,WAAW,SAAS,YAAY;GACpC,UAAU;GACV,gBAAgB,KAAK,IAAIC,kCAAAA,iBAAiB;GAC1C,IAAI,WAAW;GACf,MAAM,WAAW,UAA+C;IAC9D,KAAK,MAAM,SAAS,MAAM,QAAQ;KAChC,IAAI,MAAM,YAAY,UAAU;KAChC,IAAI,MAAM,aAAa,WAAW,GAAG,MAAM,IAAI,MAAM,qCAAqC;KAC1F,WAAW,MAAM;KACjB,SAAS,QAAQ,MAAM,KAAK;IAC9B;GACF;GACA,SAAS,OAAO;GAChB,IAAI,IAAI,MAAM,OAAO,QAAQ,IAAI,MAAM,KAAK;GAC5C,cAAc,IAAI,MAAM,UAAU,OAAO;EAC3C,QAAQ;GACN,IAAI,CAAC,WAAW,SAAS,YAAY;IACnC,QAAQ;IACR,SAAS,QAAQ;IACjB,OAAO,WAAW;GACpB;EACF,UAAU;GACR,IAAI,kBAAkB,QAAQ,QAAQ,gBAAgB,KAAA;GAGtD,IAAI,YAAY,SAAS,WAAW,SAAS,aAAa;IACxD,UAAU,KAAA;IACV,MAAM,KAAK,QAAQH,8BAAAA,kBAAkB,CAAC,CAAC,YAAY,KAAA,CAAS;GAC9D;EACF;CACF;CACA,MAAM,YAAY,OAAO,yBAAyB,WAAW;EAC3D,IAAI,SAAS;EACb,IAAI,OAAO,UAAU,aAAa,KAAU;OACvC,IAAI,OAAO,UAAU,gBAAgB;GACxC,QAAQ;GACR,SAAS,QAAQ;EACnB;CACF,CAAC;CACD,IAAI,OAAO,WAAW,KAAU;CAChC,OAAO;EACL,MAAM,aAAa,MAAM;GACvB,MAAM,UAAU;GAChB,IAAI,CAAC,SAAS,MAAM,IAAI,MAAM,oCAAoC;GAClE,OAAO,QAAQ,OAAO,MAAoDA,8BAAAA,kBAAkB;EAC9F;EACA,KAAK,OAAO;GACV,MAAM,UAAU;GAChB,IAAI,CAAC,SAAS,MAAM,IAAI,MAAM,oCAAoC;GAClE,MAAM,OAAO;GACb,QAAa,KAAK,OAA4CA,8BAAAA,kBAAkB,CAAC,CAAC,YAAY;IAC5F,IAAI,CAAC,WAAW,SAAS,cAAc,YAAY,SAAS;KAC1D,SAAS,QAAQ;KACjB,OAAO,WAAW;IACpB;GACF,CAAC;EACH;EACA,QAAQ;GACN,UAAU;GACV,UAAU;GACV,QAAQ;EACV;CACF;AACF"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { DoomPluginCall } from "@agimon-ai/po-core/pluginProtocol";
|
|
2
|
+
import { Client } from "@earendil-works/pi-client";
|
|
3
|
+
//#region src/web/lib/protocolHubSocket.d.ts
|
|
4
|
+
type Frame = Record<string, unknown>;
|
|
5
|
+
export interface SessionSocket {
|
|
6
|
+
send(frame: object): void;
|
|
7
|
+
invokePlugin(call: DoomPluginCall): Promise<unknown>;
|
|
8
|
+
close(): void;
|
|
9
|
+
}
|
|
10
|
+
export interface SessionSocketHandlers {
|
|
11
|
+
onFrame(frame: Frame): void;
|
|
12
|
+
onOpen(): void;
|
|
13
|
+
onClose(): void;
|
|
14
|
+
}
|
|
15
|
+
/** Hub administration and plugin events share the session's authenticated Pi byte connection. */
|
|
16
|
+
export declare function createProtocolHubSocket(client: Client, handlers: SessionSocketHandlers): SessionSocket;
|
|
17
|
+
//#endregion
|
|
18
|
+
//# sourceMappingURL=protocolHubSocket.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocolHubSocket.d.mts","names":[],"sources":["../../../src/web/lib/protocolHubSocket.ts"],"mappings":";;;KAKK,QAAQ;iBAEI;EACf,KAAK;EACL,aAAa,MAAM,iBAAiB;EACpC;;iBAGe;EACf,QAAQ,OAAO;EACf;EACA;;;wBAIc,wBAAwB,QAAQ,QAAQ,UAAU,wBAAwB"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { BACKGROUND_CONTEXT, withCancel } from "@earendil-works/chord/context";
|
|
2
|
+
import { DoomPluginService } from "@agimon-ai/po-core/pluginProtocol";
|
|
3
|
+
import { DOOM_COCKPIT_SERVER_ID, DoomHubService } from "@agimon-ai/po-core/sessionProtocol";
|
|
4
|
+
import { createRemoteServiceBinding } from "@earendil-works/chord";
|
|
5
|
+
import { createClientServiceTransport } from "@earendil-works/pi-client";
|
|
6
|
+
//#region src/web/lib/protocolHubSocket.ts
|
|
7
|
+
/** Hub administration and plugin events share the session's authenticated Pi byte connection. */
|
|
8
|
+
function createProtocolHubSocket(client, handlers) {
|
|
9
|
+
let binding;
|
|
10
|
+
let service;
|
|
11
|
+
let pluginService;
|
|
12
|
+
let unsubscribe;
|
|
13
|
+
let cancelOpening;
|
|
14
|
+
let stopped = false;
|
|
15
|
+
let generation = 0;
|
|
16
|
+
const release = () => {
|
|
17
|
+
generation += 1;
|
|
18
|
+
cancelOpening?.(/* @__PURE__ */ new Error("The hub binding was replaced."));
|
|
19
|
+
cancelOpening = void 0;
|
|
20
|
+
service = void 0;
|
|
21
|
+
pluginService = void 0;
|
|
22
|
+
unsubscribe?.();
|
|
23
|
+
unsubscribe = void 0;
|
|
24
|
+
const previous = binding;
|
|
25
|
+
binding = void 0;
|
|
26
|
+
if (previous) previous.dispose(BACKGROUND_CONTEXT).catch(() => void 0);
|
|
27
|
+
};
|
|
28
|
+
const open = async () => {
|
|
29
|
+
if (service) handlers.onClose();
|
|
30
|
+
release();
|
|
31
|
+
const mine = generation;
|
|
32
|
+
const next = createRemoteServiceBinding({
|
|
33
|
+
services: [DoomHubService, DoomPluginService],
|
|
34
|
+
transport: createClientServiceTransport(client, () => ({ serverId: DOOM_COCKPIT_SERVER_ID }))
|
|
35
|
+
});
|
|
36
|
+
binding = next;
|
|
37
|
+
const opening = withCancel(BACKGROUND_CONTEXT);
|
|
38
|
+
cancelOpening = opening.cancel;
|
|
39
|
+
try {
|
|
40
|
+
const hub = next.use(DoomHubService);
|
|
41
|
+
await next.ready(opening.context);
|
|
42
|
+
if (stopped || mine !== generation) return;
|
|
43
|
+
service = hub;
|
|
44
|
+
pluginService = next.use(DoomPluginService);
|
|
45
|
+
let sequence = 0;
|
|
46
|
+
const publish = (state) => {
|
|
47
|
+
for (const event of state.events) {
|
|
48
|
+
if (event.sequence <= sequence) continue;
|
|
49
|
+
if (event.sequence !== sequence + 1) throw new Error("Hub replay gap; reconnect required.");
|
|
50
|
+
sequence = event.sequence;
|
|
51
|
+
handlers.onFrame(event.frame);
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
handlers.onOpen();
|
|
55
|
+
if (hub.state.value) publish(hub.state.value);
|
|
56
|
+
unsubscribe = hub.state.subscribe(publish);
|
|
57
|
+
} catch {
|
|
58
|
+
if (!stopped && mine === generation) {
|
|
59
|
+
release();
|
|
60
|
+
handlers.onClose();
|
|
61
|
+
client.disconnect();
|
|
62
|
+
}
|
|
63
|
+
} finally {
|
|
64
|
+
if (cancelOpening === opening.cancel) cancelOpening = void 0;
|
|
65
|
+
if (binding === next && (stopped || mine !== generation)) {
|
|
66
|
+
binding = void 0;
|
|
67
|
+
await next.dispose(BACKGROUND_CONTEXT).catch(() => void 0);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
const stopWatch = client.onConnectionStateChange((change) => {
|
|
72
|
+
if (stopped) return;
|
|
73
|
+
if (change.state === "connected") open();
|
|
74
|
+
else if (change.state === "disconnected") {
|
|
75
|
+
release();
|
|
76
|
+
handlers.onClose();
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
if (client.connected) open();
|
|
80
|
+
return {
|
|
81
|
+
async invokePlugin(call) {
|
|
82
|
+
const current = pluginService;
|
|
83
|
+
if (!current) throw new Error("The hub protocol is not connected.");
|
|
84
|
+
return current.invoke(call, BACKGROUND_CONTEXT);
|
|
85
|
+
},
|
|
86
|
+
send(frame) {
|
|
87
|
+
const current = service;
|
|
88
|
+
if (!current) throw new Error("The hub protocol is not connected.");
|
|
89
|
+
const mine = generation;
|
|
90
|
+
current.send(frame, BACKGROUND_CONTEXT).catch(() => {
|
|
91
|
+
if (!stopped && mine === generation && service === current) {
|
|
92
|
+
handlers.onClose();
|
|
93
|
+
client.disconnect();
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
},
|
|
97
|
+
close() {
|
|
98
|
+
stopped = true;
|
|
99
|
+
stopWatch();
|
|
100
|
+
release();
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
//#endregion
|
|
105
|
+
export { createProtocolHubSocket };
|
|
106
|
+
|
|
107
|
+
//# sourceMappingURL=protocolHubSocket.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocolHubSocket.mjs","names":[],"sources":["../../../src/web/lib/protocolHubSocket.ts"],"sourcesContent":["import { DoomPluginService, type DoomPluginCall } from '@agimon-ai/po-core/pluginProtocol';\nimport { DOOM_COCKPIT_SERVER_ID, DoomHubService, type HubService } from '@agimon-ai/po-core/sessionProtocol';\nimport { createRemoteServiceBinding, type RemoteServiceBinding } from '@earendil-works/chord';\nimport { BACKGROUND_CONTEXT, withCancel } from '@earendil-works/chord/context';\nimport { createClientServiceTransport, type Client } from '@earendil-works/pi-client';\ntype Frame = Record<string, unknown>;\n\nexport interface SessionSocket {\n send(frame: object): void;\n invokePlugin(call: DoomPluginCall): Promise<unknown>;\n close(): void;\n}\n\nexport interface SessionSocketHandlers {\n onFrame(frame: Frame): void;\n onOpen(): void;\n onClose(): void;\n}\n\n/** Hub administration and plugin events share the session's authenticated Pi byte connection. */\nexport function createProtocolHubSocket(client: Client, handlers: SessionSocketHandlers): SessionSocket {\n let binding: RemoteServiceBinding | undefined;\n let service: HubService | undefined;\n let pluginService: DoomPluginService | undefined;\n let unsubscribe: (() => void) | undefined;\n let cancelOpening: ((reason?: unknown) => void) | undefined;\n let stopped = false;\n let generation = 0;\n const release = () => {\n generation += 1;\n cancelOpening?.(new Error('The hub binding was replaced.'));\n cancelOpening = undefined;\n service = undefined;\n pluginService = undefined;\n unsubscribe?.();\n unsubscribe = undefined;\n const previous = binding;\n binding = undefined;\n if (previous) void previous.dispose(BACKGROUND_CONTEXT).catch(() => undefined);\n };\n const open = async () => {\n if (service) handlers.onClose();\n release();\n const mine = generation;\n const next = createRemoteServiceBinding({\n services: [DoomHubService, DoomPluginService],\n transport: createClientServiceTransport(client, () => ({ serverId: DOOM_COCKPIT_SERVER_ID })),\n });\n binding = next;\n const opening = withCancel(BACKGROUND_CONTEXT);\n cancelOpening = opening.cancel;\n try {\n const hub = next.use(DoomHubService);\n await next.ready(opening.context);\n if (stopped || mine !== generation) return;\n service = hub;\n pluginService = next.use(DoomPluginService);\n let sequence = 0;\n const publish = (state: NonNullable<typeof hub.state.value>) => {\n for (const event of state.events) {\n if (event.sequence <= sequence) continue;\n if (event.sequence !== sequence + 1) throw new Error('Hub replay gap; reconnect required.');\n sequence = event.sequence;\n handlers.onFrame(event.frame);\n }\n };\n handlers.onOpen();\n if (hub.state.value) publish(hub.state.value);\n unsubscribe = hub.state.subscribe(publish);\n } catch {\n if (!stopped && mine === generation) {\n release();\n handlers.onClose();\n client.disconnect();\n }\n } finally {\n if (cancelOpening === opening.cancel) cancelOpening = undefined;\n // A stale opening may have been replaced before ready completed. If release\n // did not already own disposal, close this binding here.\n if (binding === next && (stopped || mine !== generation)) {\n binding = undefined;\n await next.dispose(BACKGROUND_CONTEXT).catch(() => undefined);\n }\n }\n };\n const stopWatch = client.onConnectionStateChange((change) => {\n if (stopped) return;\n if (change.state === 'connected') void open();\n else if (change.state === 'disconnected') {\n release();\n handlers.onClose();\n }\n });\n if (client.connected) void open();\n return {\n async invokePlugin(call) {\n const current = pluginService;\n if (!current) throw new Error('The hub protocol is not connected.');\n return current.invoke(call as Parameters<DoomPluginService['invoke']>[0], BACKGROUND_CONTEXT);\n },\n send(frame) {\n const current = service;\n if (!current) throw new Error('The hub protocol is not connected.');\n const mine = generation;\n void current.send(frame as Parameters<HubService['send']>[0], BACKGROUND_CONTEXT).catch(() => {\n if (!stopped && mine === generation && service === current) {\n handlers.onClose();\n client.disconnect();\n }\n });\n },\n close() {\n stopped = true;\n stopWatch();\n release();\n },\n };\n}\n"],"mappings":";;;;;;;AAoBA,SAAgB,wBAAwB,QAAgB,UAAgD;CACtG,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI,UAAU;CACd,IAAI,aAAa;CACjB,MAAM,gBAAgB;EACpB,cAAc;EACd,gCAAgB,IAAI,MAAM,+BAA+B,CAAC;EAC1D,gBAAgB,KAAA;EAChB,UAAU,KAAA;EACV,gBAAgB,KAAA;EAChB,cAAc;EACd,cAAc,KAAA;EACd,MAAM,WAAW;EACjB,UAAU,KAAA;EACV,IAAI,UAAU,SAAc,QAAQ,kBAAkB,CAAC,CAAC,YAAY,KAAA,CAAS;CAC/E;CACA,MAAM,OAAO,YAAY;EACvB,IAAI,SAAS,SAAS,QAAQ;EAC9B,QAAQ;EACR,MAAM,OAAO;EACb,MAAM,OAAO,2BAA2B;GACtC,UAAU,CAAC,gBAAgB,iBAAiB;GAC5C,WAAW,6BAA6B,eAAe,EAAE,UAAU,uBAAuB,EAAE;EAC9F,CAAC;EACD,UAAU;EACV,MAAM,UAAU,WAAW,kBAAkB;EAC7C,gBAAgB,QAAQ;EACxB,IAAI;GACF,MAAM,MAAM,KAAK,IAAI,cAAc;GACnC,MAAM,KAAK,MAAM,QAAQ,OAAO;GAChC,IAAI,WAAW,SAAS,YAAY;GACpC,UAAU;GACV,gBAAgB,KAAK,IAAI,iBAAiB;GAC1C,IAAI,WAAW;GACf,MAAM,WAAW,UAA+C;IAC9D,KAAK,MAAM,SAAS,MAAM,QAAQ;KAChC,IAAI,MAAM,YAAY,UAAU;KAChC,IAAI,MAAM,aAAa,WAAW,GAAG,MAAM,IAAI,MAAM,qCAAqC;KAC1F,WAAW,MAAM;KACjB,SAAS,QAAQ,MAAM,KAAK;IAC9B;GACF;GACA,SAAS,OAAO;GAChB,IAAI,IAAI,MAAM,OAAO,QAAQ,IAAI,MAAM,KAAK;GAC5C,cAAc,IAAI,MAAM,UAAU,OAAO;EAC3C,QAAQ;GACN,IAAI,CAAC,WAAW,SAAS,YAAY;IACnC,QAAQ;IACR,SAAS,QAAQ;IACjB,OAAO,WAAW;GACpB;EACF,UAAU;GACR,IAAI,kBAAkB,QAAQ,QAAQ,gBAAgB,KAAA;GAGtD,IAAI,YAAY,SAAS,WAAW,SAAS,aAAa;IACxD,UAAU,KAAA;IACV,MAAM,KAAK,QAAQ,kBAAkB,CAAC,CAAC,YAAY,KAAA,CAAS;GAC9D;EACF;CACF;CACA,MAAM,YAAY,OAAO,yBAAyB,WAAW;EAC3D,IAAI,SAAS;EACb,IAAI,OAAO,UAAU,aAAa,KAAU;OACvC,IAAI,OAAO,UAAU,gBAAgB;GACxC,QAAQ;GACR,SAAS,QAAQ;EACnB;CACF,CAAC;CACD,IAAI,OAAO,WAAW,KAAU;CAChC,OAAO;EACL,MAAM,aAAa,MAAM;GACvB,MAAM,UAAU;GAChB,IAAI,CAAC,SAAS,MAAM,IAAI,MAAM,oCAAoC;GAClE,OAAO,QAAQ,OAAO,MAAoD,kBAAkB;EAC9F;EACA,KAAK,OAAO;GACV,MAAM,UAAU;GAChB,IAAI,CAAC,SAAS,MAAM,IAAI,MAAM,oCAAoC;GAClE,MAAM,OAAO;GACb,QAAa,KAAK,OAA4C,kBAAkB,CAAC,CAAC,YAAY;IAC5F,IAAI,CAAC,WAAW,SAAS,cAAc,YAAY,SAAS;KAC1D,SAAS,QAAQ;KACjB,OAAO,WAAW;IACpB;GACF,CAAC;EACH;EACA,QAAQ;GACN,UAAU;GACV,UAAU;GACV,QAAQ;EACV;CACF;AACF"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
const require_sessionModel = require("./sessionModel.cjs");
|
|
2
|
+
//#region src/web/lib/protocolTimeline.ts
|
|
3
|
+
function isRecord(value) {
|
|
4
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
5
|
+
}
|
|
6
|
+
function userEntry(item) {
|
|
7
|
+
const text = item.content.filter((part) => part.type === "text").map((part) => part.text).join("");
|
|
8
|
+
const images = require_sessionModel.imagesFromContent(item.content);
|
|
9
|
+
return {
|
|
10
|
+
kind: "user",
|
|
11
|
+
id: item.id,
|
|
12
|
+
text,
|
|
13
|
+
timestamp: item.timestamp,
|
|
14
|
+
...images.length > 0 ? { images } : {}
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
function assistantEntry(item) {
|
|
18
|
+
let text = "";
|
|
19
|
+
let thinking = "";
|
|
20
|
+
for (const part of item.content) if (part.type === "text") text += part.text;
|
|
21
|
+
else if (part.type === "thinking") thinking += part.thinking;
|
|
22
|
+
return {
|
|
23
|
+
kind: "assistant",
|
|
24
|
+
id: item.id,
|
|
25
|
+
text,
|
|
26
|
+
thinking,
|
|
27
|
+
streaming: item.status === "streaming",
|
|
28
|
+
timestamp: item.timestamp
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Rebuilds the tool card's view from the protocol item.
|
|
33
|
+
*
|
|
34
|
+
* `details` is the one field the protocol leaves open on a tool item, which is
|
|
35
|
+
* where a Po tool's own payload travels; handing it back whole is what
|
|
36
|
+
* lets the owning plugin render its call the way it does in the terminal.
|
|
37
|
+
*/
|
|
38
|
+
function toolEntry(item) {
|
|
39
|
+
const output = item.content.filter((part) => part.type === "text").map((part) => part.text).join("\n");
|
|
40
|
+
const result = item.content.length > 0 || item.details !== void 0 ? {
|
|
41
|
+
content: [...item.content],
|
|
42
|
+
details: item.details
|
|
43
|
+
} : null;
|
|
44
|
+
return {
|
|
45
|
+
kind: "tool",
|
|
46
|
+
id: item.id,
|
|
47
|
+
toolCallId: item.toolCallId,
|
|
48
|
+
name: item.toolName,
|
|
49
|
+
args: isRecord(item.input) ? item.input : {},
|
|
50
|
+
argSummary: require_sessionModel.summariseArgs(item.input),
|
|
51
|
+
result,
|
|
52
|
+
output,
|
|
53
|
+
isError: item.isError,
|
|
54
|
+
running: item.status === "running",
|
|
55
|
+
timestamp: item.timestamp
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
const projectedEntries = /* @__PURE__ */ new WeakMap();
|
|
59
|
+
/** Projects one immutable protocol item once, so updates do not rebuild settled history. */
|
|
60
|
+
function timelineEntry(item) {
|
|
61
|
+
const cached = projectedEntries.get(item);
|
|
62
|
+
if (cached !== void 0) return cached;
|
|
63
|
+
const projected = item.role === "user" ? userEntry(item) : item.role === "assistant" ? assistantEntry(item) : toolEntry(item);
|
|
64
|
+
projectedEntries.set(item, projected);
|
|
65
|
+
return projected;
|
|
66
|
+
}
|
|
67
|
+
/** Projects the protocol transcript onto the timeline the cockpit renders. */
|
|
68
|
+
function toTimelineEntries(transcript) {
|
|
69
|
+
return transcript.map(timelineEntry);
|
|
70
|
+
}
|
|
71
|
+
/** Projects the protocol's authoritative pending steer queue onto composer rows. */
|
|
72
|
+
function toQueuedEntries(queue) {
|
|
73
|
+
return queue.map((item) => {
|
|
74
|
+
const { timestamp: _timestamp, ...entry } = userEntry(item);
|
|
75
|
+
return {
|
|
76
|
+
...entry,
|
|
77
|
+
kind: "queued",
|
|
78
|
+
delivery: "steer"
|
|
79
|
+
};
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
//#endregion
|
|
83
|
+
exports.toQueuedEntries = toQueuedEntries;
|
|
84
|
+
exports.toTimelineEntries = toTimelineEntries;
|
|
85
|
+
|
|
86
|
+
//# sourceMappingURL=protocolTimeline.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocolTimeline.cjs","names":["imagesFromContent","summariseArgs"],"sources":["../../../src/web/lib/protocolTimeline.ts"],"sourcesContent":["import type {\n AssistantTranscriptItem,\n ToolTranscriptItem,\n TranscriptItem,\n UserTranscriptItem,\n} from '@agimon-ai/po-core/sessionProtocol';\nimport type { ToolResultView } from '@agimon-ai/po-core/web';\n\nimport {\n imagesFromContent,\n summariseArgs,\n type AssistantEntry,\n type QueuedEntry,\n type TimelineEntry,\n type ToolEntry,\n type UserEntry,\n} from './sessionModel';\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction userEntry(item: UserTranscriptItem): UserEntry & { timestamp: number } {\n const text = item.content\n .filter((part): part is { type: 'text'; text: string } => part.type === 'text')\n .map((part) => part.text)\n .join('');\n const images = imagesFromContent(item.content);\n return { kind: 'user', id: item.id, text, timestamp: item.timestamp, ...(images.length > 0 ? { images } : {}) };\n}\n\nfunction assistantEntry(item: AssistantTranscriptItem): AssistantEntry & { timestamp: number } {\n let text = '';\n let thinking = '';\n for (const part of item.content) {\n if (part.type === 'text') text += part.text;\n else if (part.type === 'thinking') thinking += part.thinking;\n }\n return {\n kind: 'assistant',\n id: item.id,\n text,\n thinking,\n streaming: item.status === 'streaming',\n timestamp: item.timestamp,\n };\n}\n\n/**\n * Rebuilds the tool card's view from the protocol item.\n *\n * `details` is the one field the protocol leaves open on a tool item, which is\n * where a Po tool's own payload travels; handing it back whole is what\n * lets the owning plugin render its call the way it does in the terminal.\n */\nfunction toolEntry(item: ToolTranscriptItem): ToolEntry & { timestamp: number } {\n const output = item.content\n .filter((part): part is { type: 'text'; text: string } => part.type === 'text')\n .map((part) => part.text)\n .join('\\n');\n const result: ToolResultView | null =\n item.content.length > 0 || item.details !== undefined\n ? { content: [...item.content], details: item.details }\n : null;\n return {\n kind: 'tool',\n id: item.id,\n toolCallId: item.toolCallId,\n name: item.toolName,\n args: isRecord(item.input) ? item.input : {},\n argSummary: summariseArgs(item.input),\n result,\n output,\n isError: item.isError,\n running: item.status === 'running',\n timestamp: item.timestamp,\n };\n}\n\nconst projectedEntries = new WeakMap<TranscriptItem, TimelineEntry>();\n\n/** Projects one immutable protocol item once, so updates do not rebuild settled history. */\nfunction timelineEntry(item: TranscriptItem): TimelineEntry {\n const cached = projectedEntries.get(item);\n if (cached !== undefined) return cached;\n const projected =\n item.role === 'user' ? userEntry(item) : item.role === 'assistant' ? assistantEntry(item) : toolEntry(item);\n projectedEntries.set(item, projected);\n return projected;\n}\n\n/** Projects the protocol transcript onto the timeline the cockpit renders. */\nexport function toTimelineEntries(transcript: readonly TranscriptItem[]): TimelineEntry[] {\n return transcript.map(timelineEntry);\n}\n\n/** Projects the protocol's authoritative pending steer queue onto composer rows. */\nexport function toQueuedEntries(queue: readonly UserTranscriptItem[]): QueuedEntry[] {\n return queue.map((item) => {\n const { timestamp: _timestamp, ...entry } = userEntry(item);\n return { ...entry, kind: 'queued', delivery: 'steer' };\n });\n}\n"],"mappings":";;AAkBA,SAAS,SAAS,OAAkD;CAClE,OAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK;AAC5E;AAEA,SAAS,UAAU,MAA6D;CAC9E,MAAM,OAAO,KAAK,QACf,QAAQ,SAAiD,KAAK,SAAS,MAAM,CAAC,CAC9E,KAAK,SAAS,KAAK,IAAI,CAAC,CACxB,KAAK,EAAE;CACV,MAAM,SAASA,qBAAAA,kBAAkB,KAAK,OAAO;CAC7C,OAAO;EAAE,MAAM;EAAQ,IAAI,KAAK;EAAI;EAAM,WAAW,KAAK;EAAW,GAAI,OAAO,SAAS,IAAI,EAAE,OAAO,IAAI,CAAC;CAAG;AAChH;AAEA,SAAS,eAAe,MAAuE;CAC7F,IAAI,OAAO;CACX,IAAI,WAAW;CACf,KAAK,MAAM,QAAQ,KAAK,SACtB,IAAI,KAAK,SAAS,QAAQ,QAAQ,KAAK;MAClC,IAAI,KAAK,SAAS,YAAY,YAAY,KAAK;CAEtD,OAAO;EACL,MAAM;EACN,IAAI,KAAK;EACT;EACA;EACA,WAAW,KAAK,WAAW;EAC3B,WAAW,KAAK;CAClB;AACF;;;;;;;;AASA,SAAS,UAAU,MAA6D;CAC9E,MAAM,SAAS,KAAK,QACjB,QAAQ,SAAiD,KAAK,SAAS,MAAM,CAAC,CAC9E,KAAK,SAAS,KAAK,IAAI,CAAC,CACxB,KAAK,IAAI;CACZ,MAAM,SACJ,KAAK,QAAQ,SAAS,KAAK,KAAK,YAAY,KAAA,IACxC;EAAE,SAAS,CAAC,GAAG,KAAK,OAAO;EAAG,SAAS,KAAK;CAAQ,IACpD;CACN,OAAO;EACL,MAAM;EACN,IAAI,KAAK;EACT,YAAY,KAAK;EACjB,MAAM,KAAK;EACX,MAAM,SAAS,KAAK,KAAK,IAAI,KAAK,QAAQ,CAAC;EAC3C,YAAYC,qBAAAA,cAAc,KAAK,KAAK;EACpC;EACA;EACA,SAAS,KAAK;EACd,SAAS,KAAK,WAAW;EACzB,WAAW,KAAK;CAClB;AACF;AAEA,MAAM,mCAAmB,IAAI,QAAuC;;AAGpE,SAAS,cAAc,MAAqC;CAC1D,MAAM,SAAS,iBAAiB,IAAI,IAAI;CACxC,IAAI,WAAW,KAAA,GAAW,OAAO;CACjC,MAAM,YACJ,KAAK,SAAS,SAAS,UAAU,IAAI,IAAI,KAAK,SAAS,cAAc,eAAe,IAAI,IAAI,UAAU,IAAI;CAC5G,iBAAiB,IAAI,MAAM,SAAS;CACpC,OAAO;AACT;;AAGA,SAAgB,kBAAkB,YAAwD;CACxF,OAAO,WAAW,IAAI,aAAa;AACrC;;AAGA,SAAgB,gBAAgB,OAAqD;CACnF,OAAO,MAAM,KAAK,SAAS;EACzB,MAAM,EAAE,WAAW,YAAY,GAAG,UAAU,UAAU,IAAI;EAC1D,OAAO;GAAE,GAAG;GAAO,MAAM;GAAU,UAAU;EAAQ;CACvD,CAAC;AACH"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { QueuedEntry, TimelineEntry } from "./sessionModel.mjs";
|
|
2
|
+
import { TranscriptItem, UserTranscriptItem } from "@agimon-ai/po-core/sessionProtocol";
|
|
3
|
+
//#region src/web/lib/protocolTimeline.d.ts
|
|
4
|
+
/** Projects the protocol transcript onto the timeline the cockpit renders. */
|
|
5
|
+
export declare function toTimelineEntries(transcript: readonly TranscriptItem[]): TimelineEntry[];
|
|
6
|
+
/** Projects the protocol's authoritative pending steer queue onto composer rows. */
|
|
7
|
+
export declare function toQueuedEntries(queue: readonly UserTranscriptItem[]): QueuedEntry[];
|
|
8
|
+
//#endregion
|
|
9
|
+
//# sourceMappingURL=protocolTimeline.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocolTimeline.d.mts","names":[],"sources":["../../../src/web/lib/protocolTimeline.ts"],"mappings":";;;;wBA4FgB,kBAAkB,qBAAqB,mBAAmB;;wBAK1D,gBAAgB,gBAAgB,uBAAuB"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { imagesFromContent, summariseArgs } from "./sessionModel.mjs";
|
|
2
|
+
//#region src/web/lib/protocolTimeline.ts
|
|
3
|
+
function isRecord(value) {
|
|
4
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
5
|
+
}
|
|
6
|
+
function userEntry(item) {
|
|
7
|
+
const text = item.content.filter((part) => part.type === "text").map((part) => part.text).join("");
|
|
8
|
+
const images = imagesFromContent(item.content);
|
|
9
|
+
return {
|
|
10
|
+
kind: "user",
|
|
11
|
+
id: item.id,
|
|
12
|
+
text,
|
|
13
|
+
timestamp: item.timestamp,
|
|
14
|
+
...images.length > 0 ? { images } : {}
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
function assistantEntry(item) {
|
|
18
|
+
let text = "";
|
|
19
|
+
let thinking = "";
|
|
20
|
+
for (const part of item.content) if (part.type === "text") text += part.text;
|
|
21
|
+
else if (part.type === "thinking") thinking += part.thinking;
|
|
22
|
+
return {
|
|
23
|
+
kind: "assistant",
|
|
24
|
+
id: item.id,
|
|
25
|
+
text,
|
|
26
|
+
thinking,
|
|
27
|
+
streaming: item.status === "streaming",
|
|
28
|
+
timestamp: item.timestamp
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Rebuilds the tool card's view from the protocol item.
|
|
33
|
+
*
|
|
34
|
+
* `details` is the one field the protocol leaves open on a tool item, which is
|
|
35
|
+
* where a Po tool's own payload travels; handing it back whole is what
|
|
36
|
+
* lets the owning plugin render its call the way it does in the terminal.
|
|
37
|
+
*/
|
|
38
|
+
function toolEntry(item) {
|
|
39
|
+
const output = item.content.filter((part) => part.type === "text").map((part) => part.text).join("\n");
|
|
40
|
+
const result = item.content.length > 0 || item.details !== void 0 ? {
|
|
41
|
+
content: [...item.content],
|
|
42
|
+
details: item.details
|
|
43
|
+
} : null;
|
|
44
|
+
return {
|
|
45
|
+
kind: "tool",
|
|
46
|
+
id: item.id,
|
|
47
|
+
toolCallId: item.toolCallId,
|
|
48
|
+
name: item.toolName,
|
|
49
|
+
args: isRecord(item.input) ? item.input : {},
|
|
50
|
+
argSummary: summariseArgs(item.input),
|
|
51
|
+
result,
|
|
52
|
+
output,
|
|
53
|
+
isError: item.isError,
|
|
54
|
+
running: item.status === "running",
|
|
55
|
+
timestamp: item.timestamp
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
const projectedEntries = /* @__PURE__ */ new WeakMap();
|
|
59
|
+
/** Projects one immutable protocol item once, so updates do not rebuild settled history. */
|
|
60
|
+
function timelineEntry(item) {
|
|
61
|
+
const cached = projectedEntries.get(item);
|
|
62
|
+
if (cached !== void 0) return cached;
|
|
63
|
+
const projected = item.role === "user" ? userEntry(item) : item.role === "assistant" ? assistantEntry(item) : toolEntry(item);
|
|
64
|
+
projectedEntries.set(item, projected);
|
|
65
|
+
return projected;
|
|
66
|
+
}
|
|
67
|
+
/** Projects the protocol transcript onto the timeline the cockpit renders. */
|
|
68
|
+
function toTimelineEntries(transcript) {
|
|
69
|
+
return transcript.map(timelineEntry);
|
|
70
|
+
}
|
|
71
|
+
/** Projects the protocol's authoritative pending steer queue onto composer rows. */
|
|
72
|
+
function toQueuedEntries(queue) {
|
|
73
|
+
return queue.map((item) => {
|
|
74
|
+
const { timestamp: _timestamp, ...entry } = userEntry(item);
|
|
75
|
+
return {
|
|
76
|
+
...entry,
|
|
77
|
+
kind: "queued",
|
|
78
|
+
delivery: "steer"
|
|
79
|
+
};
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
//#endregion
|
|
83
|
+
export { toQueuedEntries, toTimelineEntries };
|
|
84
|
+
|
|
85
|
+
//# sourceMappingURL=protocolTimeline.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocolTimeline.mjs","names":[],"sources":["../../../src/web/lib/protocolTimeline.ts"],"sourcesContent":["import type {\n AssistantTranscriptItem,\n ToolTranscriptItem,\n TranscriptItem,\n UserTranscriptItem,\n} from '@agimon-ai/po-core/sessionProtocol';\nimport type { ToolResultView } from '@agimon-ai/po-core/web';\n\nimport {\n imagesFromContent,\n summariseArgs,\n type AssistantEntry,\n type QueuedEntry,\n type TimelineEntry,\n type ToolEntry,\n type UserEntry,\n} from './sessionModel';\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction userEntry(item: UserTranscriptItem): UserEntry & { timestamp: number } {\n const text = item.content\n .filter((part): part is { type: 'text'; text: string } => part.type === 'text')\n .map((part) => part.text)\n .join('');\n const images = imagesFromContent(item.content);\n return { kind: 'user', id: item.id, text, timestamp: item.timestamp, ...(images.length > 0 ? { images } : {}) };\n}\n\nfunction assistantEntry(item: AssistantTranscriptItem): AssistantEntry & { timestamp: number } {\n let text = '';\n let thinking = '';\n for (const part of item.content) {\n if (part.type === 'text') text += part.text;\n else if (part.type === 'thinking') thinking += part.thinking;\n }\n return {\n kind: 'assistant',\n id: item.id,\n text,\n thinking,\n streaming: item.status === 'streaming',\n timestamp: item.timestamp,\n };\n}\n\n/**\n * Rebuilds the tool card's view from the protocol item.\n *\n * `details` is the one field the protocol leaves open on a tool item, which is\n * where a Po tool's own payload travels; handing it back whole is what\n * lets the owning plugin render its call the way it does in the terminal.\n */\nfunction toolEntry(item: ToolTranscriptItem): ToolEntry & { timestamp: number } {\n const output = item.content\n .filter((part): part is { type: 'text'; text: string } => part.type === 'text')\n .map((part) => part.text)\n .join('\\n');\n const result: ToolResultView | null =\n item.content.length > 0 || item.details !== undefined\n ? { content: [...item.content], details: item.details }\n : null;\n return {\n kind: 'tool',\n id: item.id,\n toolCallId: item.toolCallId,\n name: item.toolName,\n args: isRecord(item.input) ? item.input : {},\n argSummary: summariseArgs(item.input),\n result,\n output,\n isError: item.isError,\n running: item.status === 'running',\n timestamp: item.timestamp,\n };\n}\n\nconst projectedEntries = new WeakMap<TranscriptItem, TimelineEntry>();\n\n/** Projects one immutable protocol item once, so updates do not rebuild settled history. */\nfunction timelineEntry(item: TranscriptItem): TimelineEntry {\n const cached = projectedEntries.get(item);\n if (cached !== undefined) return cached;\n const projected =\n item.role === 'user' ? userEntry(item) : item.role === 'assistant' ? assistantEntry(item) : toolEntry(item);\n projectedEntries.set(item, projected);\n return projected;\n}\n\n/** Projects the protocol transcript onto the timeline the cockpit renders. */\nexport function toTimelineEntries(transcript: readonly TranscriptItem[]): TimelineEntry[] {\n return transcript.map(timelineEntry);\n}\n\n/** Projects the protocol's authoritative pending steer queue onto composer rows. */\nexport function toQueuedEntries(queue: readonly UserTranscriptItem[]): QueuedEntry[] {\n return queue.map((item) => {\n const { timestamp: _timestamp, ...entry } = userEntry(item);\n return { ...entry, kind: 'queued', delivery: 'steer' };\n });\n}\n"],"mappings":";;AAkBA,SAAS,SAAS,OAAkD;CAClE,OAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK;AAC5E;AAEA,SAAS,UAAU,MAA6D;CAC9E,MAAM,OAAO,KAAK,QACf,QAAQ,SAAiD,KAAK,SAAS,MAAM,CAAC,CAC9E,KAAK,SAAS,KAAK,IAAI,CAAC,CACxB,KAAK,EAAE;CACV,MAAM,SAAS,kBAAkB,KAAK,OAAO;CAC7C,OAAO;EAAE,MAAM;EAAQ,IAAI,KAAK;EAAI;EAAM,WAAW,KAAK;EAAW,GAAI,OAAO,SAAS,IAAI,EAAE,OAAO,IAAI,CAAC;CAAG;AAChH;AAEA,SAAS,eAAe,MAAuE;CAC7F,IAAI,OAAO;CACX,IAAI,WAAW;CACf,KAAK,MAAM,QAAQ,KAAK,SACtB,IAAI,KAAK,SAAS,QAAQ,QAAQ,KAAK;MAClC,IAAI,KAAK,SAAS,YAAY,YAAY,KAAK;CAEtD,OAAO;EACL,MAAM;EACN,IAAI,KAAK;EACT;EACA;EACA,WAAW,KAAK,WAAW;EAC3B,WAAW,KAAK;CAClB;AACF;;;;;;;;AASA,SAAS,UAAU,MAA6D;CAC9E,MAAM,SAAS,KAAK,QACjB,QAAQ,SAAiD,KAAK,SAAS,MAAM,CAAC,CAC9E,KAAK,SAAS,KAAK,IAAI,CAAC,CACxB,KAAK,IAAI;CACZ,MAAM,SACJ,KAAK,QAAQ,SAAS,KAAK,KAAK,YAAY,KAAA,IACxC;EAAE,SAAS,CAAC,GAAG,KAAK,OAAO;EAAG,SAAS,KAAK;CAAQ,IACpD;CACN,OAAO;EACL,MAAM;EACN,IAAI,KAAK;EACT,YAAY,KAAK;EACjB,MAAM,KAAK;EACX,MAAM,SAAS,KAAK,KAAK,IAAI,KAAK,QAAQ,CAAC;EAC3C,YAAY,cAAc,KAAK,KAAK;EACpC;EACA;EACA,SAAS,KAAK;EACd,SAAS,KAAK,WAAW;EACzB,WAAW,KAAK;CAClB;AACF;AAEA,MAAM,mCAAmB,IAAI,QAAuC;;AAGpE,SAAS,cAAc,MAAqC;CAC1D,MAAM,SAAS,iBAAiB,IAAI,IAAI;CACxC,IAAI,WAAW,KAAA,GAAW,OAAO;CACjC,MAAM,YACJ,KAAK,SAAS,SAAS,UAAU,IAAI,IAAI,KAAK,SAAS,cAAc,eAAe,IAAI,IAAI,UAAU,IAAI;CAC5G,iBAAiB,IAAI,MAAM,SAAS;CACpC,OAAO;AACT;;AAGA,SAAgB,kBAAkB,YAAwD;CACxF,OAAO,WAAW,IAAI,aAAa;AACrC;;AAGA,SAAgB,gBAAgB,OAAqD;CACnF,OAAO,MAAM,KAAK,SAAS;EACzB,MAAM,EAAE,WAAW,YAAY,GAAG,UAAU,UAAU,IAAI;EAC1D,OAAO;GAAE,GAAG;GAAO,MAAM;GAAU,UAAU;EAAQ;CACvD,CAAC;AACH"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
const require_runtime = require("../../_virtual/_rolldown/runtime.cjs");
|
|
2
|
+
let qrcode_generator = require("qrcode-generator");
|
|
3
|
+
qrcode_generator = require_runtime.__toESM(qrcode_generator, 1);
|
|
4
|
+
//#region src/web/lib/qrMatrix.ts
|
|
5
|
+
/**
|
|
6
|
+
* The one place the QR encoder is touched.
|
|
7
|
+
*
|
|
8
|
+
* Wrapping it keeps the dependency to a single import and hands the renderer a
|
|
9
|
+
* plain boolean grid, so the component stays a pure drawing of data and needs
|
|
10
|
+
* no knowledge of error-correction levels or type numbers.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Medium correction: the pairing URL is short, and a phone camera reading a
|
|
14
|
+
* screen has no print noise to recover from, so the extra redundancy of a
|
|
15
|
+
* higher level would only make the modules smaller for no gain.
|
|
16
|
+
*/
|
|
17
|
+
const ERROR_CORRECTION = "M";
|
|
18
|
+
/** 0 asks the encoder to pick the smallest type number the payload fits in. */
|
|
19
|
+
const AUTO_TYPE_NUMBER = 0;
|
|
20
|
+
/** Row-major grid of dark modules, including the encoder's own quiet zone handling. */
|
|
21
|
+
function qrMatrix(text) {
|
|
22
|
+
const code = (0, qrcode_generator.default)(AUTO_TYPE_NUMBER, ERROR_CORRECTION);
|
|
23
|
+
code.addData(text);
|
|
24
|
+
code.make();
|
|
25
|
+
const size = code.getModuleCount();
|
|
26
|
+
const rows = [];
|
|
27
|
+
for (let row = 0; row < size; row += 1) {
|
|
28
|
+
const cells = [];
|
|
29
|
+
for (let column = 0; column < size; column += 1) cells.push(code.isDark(row, column));
|
|
30
|
+
rows.push(cells);
|
|
31
|
+
}
|
|
32
|
+
return rows;
|
|
33
|
+
}
|
|
34
|
+
//#endregion
|
|
35
|
+
exports.qrMatrix = qrMatrix;
|
|
36
|
+
|
|
37
|
+
//# sourceMappingURL=qrMatrix.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qrMatrix.cjs","names":["qrcode"],"sources":["../../../src/web/lib/qrMatrix.ts"],"sourcesContent":["import qrcode from 'qrcode-generator';\n\n/**\n * The one place the QR encoder is touched.\n *\n * Wrapping it keeps the dependency to a single import and hands the renderer a\n * plain boolean grid, so the component stays a pure drawing of data and needs\n * no knowledge of error-correction levels or type numbers.\n */\n\n/**\n * Medium correction: the pairing URL is short, and a phone camera reading a\n * screen has no print noise to recover from, so the extra redundancy of a\n * higher level would only make the modules smaller for no gain.\n */\nconst ERROR_CORRECTION = 'M';\n/** 0 asks the encoder to pick the smallest type number the payload fits in. */\nconst AUTO_TYPE_NUMBER = 0;\n\n/** Row-major grid of dark modules, including the encoder's own quiet zone handling. */\nexport function qrMatrix(text: string): boolean[][] {\n const code = qrcode(AUTO_TYPE_NUMBER, ERROR_CORRECTION);\n code.addData(text);\n code.make();\n const size = code.getModuleCount();\n const rows: boolean[][] = [];\n for (let row = 0; row < size; row += 1) {\n const cells: boolean[] = [];\n for (let column = 0; column < size; column += 1) cells.push(code.isDark(row, column));\n rows.push(cells);\n }\n return rows;\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAeA,MAAM,mBAAmB;;AAEzB,MAAM,mBAAmB;;AAGzB,SAAgB,SAAS,MAA2B;CAClD,MAAM,QAAA,GAAOA,iBAAAA,QAAAA,CAAO,kBAAkB,gBAAgB;CACtD,KAAK,QAAQ,IAAI;CACjB,KAAK,KAAK;CACV,MAAM,OAAO,KAAK,eAAe;CACjC,MAAM,OAAoB,CAAC;CAC3B,KAAK,IAAI,MAAM,GAAG,MAAM,MAAM,OAAO,GAAG;EACtC,MAAM,QAAmB,CAAC;EAC1B,KAAK,IAAI,SAAS,GAAG,SAAS,MAAM,UAAU,GAAG,MAAM,KAAK,KAAK,OAAO,KAAK,MAAM,CAAC;EACpF,KAAK,KAAK,KAAK;CACjB;CACA,OAAO;AACT"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qrMatrix.d.mts","names":[],"sources":["../../../src/web/lib/qrMatrix.ts"],"mappings":";;wBAoBgB,SAAS"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import qrcode from "qrcode-generator";
|
|
2
|
+
//#region src/web/lib/qrMatrix.ts
|
|
3
|
+
/**
|
|
4
|
+
* The one place the QR encoder is touched.
|
|
5
|
+
*
|
|
6
|
+
* Wrapping it keeps the dependency to a single import and hands the renderer a
|
|
7
|
+
* plain boolean grid, so the component stays a pure drawing of data and needs
|
|
8
|
+
* no knowledge of error-correction levels or type numbers.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Medium correction: the pairing URL is short, and a phone camera reading a
|
|
12
|
+
* screen has no print noise to recover from, so the extra redundancy of a
|
|
13
|
+
* higher level would only make the modules smaller for no gain.
|
|
14
|
+
*/
|
|
15
|
+
const ERROR_CORRECTION = "M";
|
|
16
|
+
/** 0 asks the encoder to pick the smallest type number the payload fits in. */
|
|
17
|
+
const AUTO_TYPE_NUMBER = 0;
|
|
18
|
+
/** Row-major grid of dark modules, including the encoder's own quiet zone handling. */
|
|
19
|
+
function qrMatrix(text) {
|
|
20
|
+
const code = qrcode(AUTO_TYPE_NUMBER, ERROR_CORRECTION);
|
|
21
|
+
code.addData(text);
|
|
22
|
+
code.make();
|
|
23
|
+
const size = code.getModuleCount();
|
|
24
|
+
const rows = [];
|
|
25
|
+
for (let row = 0; row < size; row += 1) {
|
|
26
|
+
const cells = [];
|
|
27
|
+
for (let column = 0; column < size; column += 1) cells.push(code.isDark(row, column));
|
|
28
|
+
rows.push(cells);
|
|
29
|
+
}
|
|
30
|
+
return rows;
|
|
31
|
+
}
|
|
32
|
+
//#endregion
|
|
33
|
+
export { qrMatrix };
|
|
34
|
+
|
|
35
|
+
//# sourceMappingURL=qrMatrix.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qrMatrix.mjs","names":[],"sources":["../../../src/web/lib/qrMatrix.ts"],"sourcesContent":["import qrcode from 'qrcode-generator';\n\n/**\n * The one place the QR encoder is touched.\n *\n * Wrapping it keeps the dependency to a single import and hands the renderer a\n * plain boolean grid, so the component stays a pure drawing of data and needs\n * no knowledge of error-correction levels or type numbers.\n */\n\n/**\n * Medium correction: the pairing URL is short, and a phone camera reading a\n * screen has no print noise to recover from, so the extra redundancy of a\n * higher level would only make the modules smaller for no gain.\n */\nconst ERROR_CORRECTION = 'M';\n/** 0 asks the encoder to pick the smallest type number the payload fits in. */\nconst AUTO_TYPE_NUMBER = 0;\n\n/** Row-major grid of dark modules, including the encoder's own quiet zone handling. */\nexport function qrMatrix(text: string): boolean[][] {\n const code = qrcode(AUTO_TYPE_NUMBER, ERROR_CORRECTION);\n code.addData(text);\n code.make();\n const size = code.getModuleCount();\n const rows: boolean[][] = [];\n for (let row = 0; row < size; row += 1) {\n const cells: boolean[] = [];\n for (let column = 0; column < size; column += 1) cells.push(code.isDark(row, column));\n rows.push(cells);\n }\n return rows;\n}\n"],"mappings":";;;;;;;;;;;;;;AAeA,MAAM,mBAAmB;;AAEzB,MAAM,mBAAmB;;AAGzB,SAAgB,SAAS,MAA2B;CAClD,MAAM,OAAO,OAAO,kBAAkB,gBAAgB;CACtD,KAAK,QAAQ,IAAI;CACjB,KAAK,KAAK;CACV,MAAM,OAAO,KAAK,eAAe;CACjC,MAAM,OAAoB,CAAC;CAC3B,KAAK,IAAI,MAAM,GAAG,MAAM,MAAM,OAAO,GAAG;EACtC,MAAM,QAAmB,CAAC;EAC1B,KAAK,IAAI,SAAS,GAAG,SAAS,MAAM,UAAU,GAAG,MAAM,KAAK,KAAK,OAAO,KAAK,MAAM,CAAC;EACpF,KAAK,KAAK,KAAK;CACjB;CACA,OAAO;AACT"}
|