@agimon-ai/po-web-dashboard 0.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +29 -0
- package/README.md +10 -0
- package/dist/_virtual/_rolldown/runtime.cjs +23 -0
- package/dist/core.cjs +222 -0
- package/dist/core.d.mts +21 -0
- package/dist/core.mjs +21 -0
- package/dist/index.cjs +546 -0
- package/dist/index.d.mts +81 -0
- package/dist/index.mjs +81 -0
- package/dist/testing.cjs +18 -0
- package/dist/testing.d.mts +6 -0
- package/dist/testing.mjs +6 -0
- package/dist/types/auth.cjs +20 -0
- package/dist/types/auth.cjs.map +1 -0
- package/dist/types/auth.d.mts +160 -0
- package/dist/types/auth.d.mts.map +1 -0
- package/dist/types/auth.mjs +19 -0
- package/dist/types/auth.mjs.map +1 -0
- package/dist/types/bridge.d.mts +18 -0
- package/dist/types/bridge.d.mts.map +1 -0
- package/dist/types/devProxy.cjs +41 -0
- package/dist/types/devProxy.cjs.map +1 -0
- package/dist/types/devProxy.d.mts +54 -0
- package/dist/types/devProxy.d.mts.map +1 -0
- package/dist/types/devProxy.mjs +39 -0
- package/dist/types/devProxy.mjs.map +1 -0
- package/dist/types/hub.cjs +220 -0
- package/dist/types/hub.cjs.map +1 -0
- package/dist/types/hub.d.mts +447 -0
- package/dist/types/hub.d.mts.map +1 -0
- package/dist/types/hub.mjs +179 -0
- package/dist/types/hub.mjs.map +1 -0
- package/dist/types/media.cjs +75 -0
- package/dist/types/media.cjs.map +1 -0
- package/dist/types/media.d.mts +22 -0
- package/dist/types/media.d.mts.map +1 -0
- package/dist/types/media.mjs +70 -0
- package/dist/types/media.mjs.map +1 -0
- package/dist/types/notification.cjs +19 -0
- package/dist/types/notification.cjs.map +1 -0
- package/dist/types/notification.d.mts +10 -0
- package/dist/types/notification.d.mts.map +1 -0
- package/dist/types/notification.mjs +19 -0
- package/dist/types/notification.mjs.map +1 -0
- package/dist/types/remoteAccess.cjs +92 -0
- package/dist/types/remoteAccess.cjs.map +1 -0
- package/dist/types/remoteAccess.d.mts +214 -0
- package/dist/types/remoteAccess.d.mts.map +1 -0
- package/dist/types/remoteAccess.mjs +68 -0
- package/dist/types/remoteAccess.mjs.map +1 -0
- package/dist/types/session.cjs +23 -0
- package/dist/types/session.cjs.map +1 -0
- package/dist/types/session.d.mts +29 -0
- package/dist/types/session.d.mts.map +1 -0
- package/dist/types/session.mjs +18 -0
- package/dist/types/session.mjs.map +1 -0
- package/dist/types/sessionMcp.d.mts +56 -0
- package/dist/types/sessionMcp.d.mts.map +1 -0
- package/dist/types/settings.cjs +18 -0
- package/dist/types/settings.cjs.map +1 -0
- package/dist/types/settings.d.mts +126 -0
- package/dist/types/settings.d.mts.map +1 -0
- package/dist/types/settings.mjs +12 -0
- package/dist/types/settings.mjs.map +1 -0
- package/dist/types.cjs +101 -0
- package/dist/types.d.mts +11 -0
- package/dist/types.mjs +9 -0
- package/dist/views.cjs +120 -0
- package/dist/views.d.mts +56 -0
- package/dist/views.mjs +56 -0
- package/dist/web/components/MascotMark.cjs +18 -0
- package/dist/web/components/MascotMark.cjs.map +1 -0
- package/dist/web/components/MascotMark.d.mts +9 -0
- package/dist/web/components/MascotMark.d.mts.map +1 -0
- package/dist/web/components/MascotMark.mjs +18 -0
- package/dist/web/components/MascotMark.mjs.map +1 -0
- package/dist/web/components/PluginSurface.cjs +15 -0
- package/dist/web/components/PluginSurface.cjs.map +1 -0
- package/dist/web/components/PluginSurface.d.mts +13 -0
- package/dist/web/components/PluginSurface.d.mts.map +1 -0
- package/dist/web/components/PluginSurface.mjs +15 -0
- package/dist/web/components/PluginSurface.mjs.map +1 -0
- package/dist/web/components/QrCode.cjs +37 -0
- package/dist/web/components/QrCode.cjs.map +1 -0
- package/dist/web/components/QrCode.d.mts +22 -0
- package/dist/web/components/QrCode.d.mts.map +1 -0
- package/dist/web/components/QrCode.mjs +37 -0
- package/dist/web/components/QrCode.mjs.map +1 -0
- package/dist/web/components/Remote.fixture.cjs +73 -0
- package/dist/web/components/Remote.fixture.cjs.map +1 -0
- package/dist/web/components/Remote.fixture.mjs +72 -0
- package/dist/web/components/Remote.fixture.mjs.map +1 -0
- package/dist/web/components/SessionMcp.cjs +279 -0
- package/dist/web/components/SessionMcp.cjs.map +1 -0
- package/dist/web/components/SessionMcp.d.mts +12 -0
- package/dist/web/components/SessionMcp.d.mts.map +1 -0
- package/dist/web/components/SessionMcp.mjs +278 -0
- package/dist/web/components/SessionMcp.mjs.map +1 -0
- package/dist/web/components/Story.fixture.cjs +124 -0
- package/dist/web/components/Story.fixture.cjs.map +1 -0
- package/dist/web/components/Story.fixture.d.mts +19 -0
- package/dist/web/components/Story.fixture.d.mts.map +1 -0
- package/dist/web/components/Story.fixture.mjs +119 -0
- package/dist/web/components/Story.fixture.mjs.map +1 -0
- package/dist/web/components/Template.fixture.cjs +67 -0
- package/dist/web/components/Template.fixture.cjs.map +1 -0
- package/dist/web/components/Template.fixture.d.mts +7 -0
- package/dist/web/components/Template.fixture.d.mts.map +1 -0
- package/dist/web/components/Template.fixture.mjs +65 -0
- package/dist/web/components/Template.fixture.mjs.map +1 -0
- package/dist/web/components/ToolRendererBoundary.cjs +23 -0
- package/dist/web/components/ToolRendererBoundary.cjs.map +1 -0
- package/dist/web/components/ToolRendererBoundary.d.mts +23 -0
- package/dist/web/components/ToolRendererBoundary.d.mts.map +1 -0
- package/dist/web/components/ToolRendererBoundary.mjs +23 -0
- package/dist/web/components/ToolRendererBoundary.mjs.map +1 -0
- package/dist/web/features/activity/ActivityDock.cjs +271 -0
- package/dist/web/features/activity/ActivityDock.cjs.map +1 -0
- package/dist/web/features/activity/ActivityDock.d.mts +22 -0
- package/dist/web/features/activity/ActivityDock.d.mts.map +1 -0
- package/dist/web/features/activity/ActivityDock.mjs +271 -0
- package/dist/web/features/activity/ActivityDock.mjs.map +1 -0
- package/dist/web/features/activity/ContextItemDialog.cjs +276 -0
- package/dist/web/features/activity/ContextItemDialog.cjs.map +1 -0
- package/dist/web/features/activity/ContextItemDialog.d.mts +16 -0
- package/dist/web/features/activity/ContextItemDialog.d.mts.map +1 -0
- package/dist/web/features/activity/ContextItemDialog.mjs +276 -0
- package/dist/web/features/activity/ContextItemDialog.mjs.map +1 -0
- package/dist/web/features/activity/ContextPanel.cjs +248 -0
- package/dist/web/features/activity/ContextPanel.cjs.map +1 -0
- package/dist/web/features/activity/ContextPanel.d.mts +4 -0
- package/dist/web/features/activity/ContextPanel.d.mts.map +1 -0
- package/dist/web/features/activity/ContextPanel.mjs +248 -0
- package/dist/web/features/activity/ContextPanel.mjs.map +1 -0
- package/dist/web/features/activity/DockTabs.cjs +47 -0
- package/dist/web/features/activity/DockTabs.cjs.map +1 -0
- package/dist/web/features/activity/DockTabs.d.mts +9 -0
- package/dist/web/features/activity/DockTabs.d.mts.map +1 -0
- package/dist/web/features/activity/DockTabs.mjs +47 -0
- package/dist/web/features/activity/DockTabs.mjs.map +1 -0
- package/dist/web/features/connection/RefusedCard.cjs +76 -0
- package/dist/web/features/connection/RefusedCard.cjs.map +1 -0
- package/dist/web/features/connection/RefusedCard.d.mts +5 -0
- package/dist/web/features/connection/RefusedCard.d.mts.map +1 -0
- package/dist/web/features/connection/RefusedCard.mjs +76 -0
- package/dist/web/features/connection/RefusedCard.mjs.map +1 -0
- package/dist/web/features/dialogs/DialogOverlay.cjs +164 -0
- package/dist/web/features/dialogs/DialogOverlay.cjs.map +1 -0
- package/dist/web/features/dialogs/DialogOverlay.d.mts +15 -0
- package/dist/web/features/dialogs/DialogOverlay.d.mts.map +1 -0
- package/dist/web/features/dialogs/DialogOverlay.mjs +164 -0
- package/dist/web/features/dialogs/DialogOverlay.mjs.map +1 -0
- package/dist/web/features/leader/CommandPalette.cjs +390 -0
- package/dist/web/features/leader/CommandPalette.cjs.map +1 -0
- package/dist/web/features/leader/CommandPalette.d.mts +14 -0
- package/dist/web/features/leader/CommandPalette.d.mts.map +1 -0
- package/dist/web/features/leader/CommandPalette.mjs +390 -0
- package/dist/web/features/leader/CommandPalette.mjs.map +1 -0
- package/dist/web/features/remote/DevProxyTargets.cjs +122 -0
- package/dist/web/features/remote/DevProxyTargets.cjs.map +1 -0
- package/dist/web/features/remote/DevProxyTargets.d.mts +15 -0
- package/dist/web/features/remote/DevProxyTargets.d.mts.map +1 -0
- package/dist/web/features/remote/DevProxyTargets.mjs +122 -0
- package/dist/web/features/remote/DevProxyTargets.mjs.map +1 -0
- package/dist/web/features/remote/HandoverProgress.cjs +28 -0
- package/dist/web/features/remote/HandoverProgress.cjs.map +1 -0
- package/dist/web/features/remote/HandoverProgress.d.mts +12 -0
- package/dist/web/features/remote/HandoverProgress.d.mts.map +1 -0
- package/dist/web/features/remote/HandoverProgress.mjs +28 -0
- package/dist/web/features/remote/HandoverProgress.mjs.map +1 -0
- package/dist/web/features/remote/PairedDeviceList.cjs +37 -0
- package/dist/web/features/remote/PairedDeviceList.cjs.map +1 -0
- package/dist/web/features/remote/PairedDeviceList.d.mts +5 -0
- package/dist/web/features/remote/PairedDeviceList.d.mts.map +1 -0
- package/dist/web/features/remote/PairedDeviceList.mjs +37 -0
- package/dist/web/features/remote/PairedDeviceList.mjs.map +1 -0
- package/dist/web/features/remote/PairingApprovalDialog.cjs +65 -0
- package/dist/web/features/remote/PairingApprovalDialog.cjs.map +1 -0
- package/dist/web/features/remote/PairingApprovalDialog.d.mts +11 -0
- package/dist/web/features/remote/PairingApprovalDialog.d.mts.map +1 -0
- package/dist/web/features/remote/PairingApprovalDialog.mjs +65 -0
- package/dist/web/features/remote/PairingApprovalDialog.mjs.map +1 -0
- package/dist/web/features/remote/RemoteAccessDialog.cjs +83 -0
- package/dist/web/features/remote/RemoteAccessDialog.cjs.map +1 -0
- package/dist/web/features/remote/RemoteAccessDialog.d.mts +11 -0
- package/dist/web/features/remote/RemoteAccessDialog.d.mts.map +1 -0
- package/dist/web/features/remote/RemoteAccessDialog.mjs +83 -0
- package/dist/web/features/remote/RemoteAccessDialog.mjs.map +1 -0
- package/dist/web/features/remote/RemoteAccessOptions.cjs +154 -0
- package/dist/web/features/remote/RemoteAccessOptions.cjs.map +1 -0
- package/dist/web/features/remote/RemoteAccessOptions.d.mts +11 -0
- package/dist/web/features/remote/RemoteAccessOptions.d.mts.map +1 -0
- package/dist/web/features/remote/RemoteAccessOptions.mjs +154 -0
- package/dist/web/features/remote/RemoteAccessOptions.mjs.map +1 -0
- package/dist/web/features/remote/RemoteAccessPairing.cjs +93 -0
- package/dist/web/features/remote/RemoteAccessPairing.cjs.map +1 -0
- package/dist/web/features/remote/RemoteAccessPairing.d.mts +5 -0
- package/dist/web/features/remote/RemoteAccessPairing.d.mts.map +1 -0
- package/dist/web/features/remote/RemoteAccessPairing.mjs +93 -0
- package/dist/web/features/remote/RemoteAccessPairing.mjs.map +1 -0
- package/dist/web/features/remote/SandboxWorkspaces.cjs +87 -0
- package/dist/web/features/remote/SandboxWorkspaces.cjs.map +1 -0
- package/dist/web/features/remote/SandboxWorkspaces.d.mts +7 -0
- package/dist/web/features/remote/SandboxWorkspaces.d.mts.map +1 -0
- package/dist/web/features/remote/SandboxWorkspaces.mjs +87 -0
- package/dist/web/features/remote/SandboxWorkspaces.mjs.map +1 -0
- package/dist/web/features/remote/TrustedDeviceList.cjs +65 -0
- package/dist/web/features/remote/TrustedDeviceList.cjs.map +1 -0
- package/dist/web/features/remote/TrustedDeviceList.d.mts +13 -0
- package/dist/web/features/remote/TrustedDeviceList.d.mts.map +1 -0
- package/dist/web/features/remote/TrustedDeviceList.mjs +64 -0
- package/dist/web/features/remote/TrustedDeviceList.mjs.map +1 -0
- package/dist/web/features/selection/SelectionBar.cjs +401 -0
- package/dist/web/features/selection/SelectionBar.cjs.map +1 -0
- package/dist/web/features/selection/SelectionBar.d.mts +14 -0
- package/dist/web/features/selection/SelectionBar.d.mts.map +1 -0
- package/dist/web/features/selection/SelectionBar.mjs +400 -0
- package/dist/web/features/selection/SelectionBar.mjs.map +1 -0
- package/dist/web/features/session/AgentLockPanel.cjs +31 -0
- package/dist/web/features/session/AgentLockPanel.cjs.map +1 -0
- package/dist/web/features/session/AgentLockPanel.mjs +31 -0
- package/dist/web/features/session/AgentLockPanel.mjs.map +1 -0
- package/dist/web/features/session/Composer.cjs +808 -0
- package/dist/web/features/session/Composer.cjs.map +1 -0
- package/dist/web/features/session/Composer.d.mts +21 -0
- package/dist/web/features/session/Composer.d.mts.map +1 -0
- package/dist/web/features/session/Composer.mjs +806 -0
- package/dist/web/features/session/Composer.mjs.map +1 -0
- package/dist/web/features/session/ComposerPrompt.cjs +47 -0
- package/dist/web/features/session/ComposerPrompt.cjs.map +1 -0
- package/dist/web/features/session/ComposerPrompt.d.mts +16 -0
- package/dist/web/features/session/ComposerPrompt.d.mts.map +1 -0
- package/dist/web/features/session/ComposerPrompt.mjs +47 -0
- package/dist/web/features/session/ComposerPrompt.mjs.map +1 -0
- package/dist/web/features/session/DormantPanel.cjs +61 -0
- package/dist/web/features/session/DormantPanel.cjs.map +1 -0
- package/dist/web/features/session/DormantPanel.d.mts +8 -0
- package/dist/web/features/session/DormantPanel.d.mts.map +1 -0
- package/dist/web/features/session/DormantPanel.mjs +61 -0
- package/dist/web/features/session/DormantPanel.mjs.map +1 -0
- package/dist/web/features/session/MentionPreviews.cjs +128 -0
- package/dist/web/features/session/MentionPreviews.cjs.map +1 -0
- package/dist/web/features/session/MentionPreviews.d.mts +17 -0
- package/dist/web/features/session/MentionPreviews.d.mts.map +1 -0
- package/dist/web/features/session/MentionPreviews.mjs +127 -0
- package/dist/web/features/session/MentionPreviews.mjs.map +1 -0
- package/dist/web/features/session/MessageMarkdown.cjs +20 -0
- package/dist/web/features/session/MessageMarkdown.cjs.map +1 -0
- package/dist/web/features/session/MessageMarkdown.d.mts +19 -0
- package/dist/web/features/session/MessageMarkdown.d.mts.map +1 -0
- package/dist/web/features/session/MessageMarkdown.mjs +20 -0
- package/dist/web/features/session/MessageMarkdown.mjs.map +1 -0
- package/dist/web/features/session/QueueSheet.cjs +189 -0
- package/dist/web/features/session/QueueSheet.cjs.map +1 -0
- package/dist/web/features/session/QueueSheet.d.mts +16 -0
- package/dist/web/features/session/QueueSheet.d.mts.map +1 -0
- package/dist/web/features/session/QueueSheet.mjs +189 -0
- package/dist/web/features/session/QueueSheet.mjs.map +1 -0
- package/dist/web/features/session/SessionActivity.cjs +88 -0
- package/dist/web/features/session/SessionActivity.cjs.map +1 -0
- package/dist/web/features/session/SessionActivity.d.mts +16 -0
- package/dist/web/features/session/SessionActivity.d.mts.map +1 -0
- package/dist/web/features/session/SessionActivity.mjs +87 -0
- package/dist/web/features/session/SessionActivity.mjs.map +1 -0
- package/dist/web/features/session/SessionTranscriptView.cjs +34 -0
- package/dist/web/features/session/SessionTranscriptView.cjs.map +1 -0
- package/dist/web/features/session/SessionTranscriptView.d.mts +16 -0
- package/dist/web/features/session/SessionTranscriptView.d.mts.map +1 -0
- package/dist/web/features/session/SessionTranscriptView.mjs +34 -0
- package/dist/web/features/session/SessionTranscriptView.mjs.map +1 -0
- package/dist/web/features/session/ThreadView.cjs +40 -0
- package/dist/web/features/session/ThreadView.cjs.map +1 -0
- package/dist/web/features/session/ThreadView.d.mts +18 -0
- package/dist/web/features/session/ThreadView.d.mts.map +1 -0
- package/dist/web/features/session/ThreadView.mjs +40 -0
- package/dist/web/features/session/ThreadView.mjs.map +1 -0
- package/dist/web/features/session/Timeline.cjs +620 -0
- package/dist/web/features/session/Timeline.cjs.map +1 -0
- package/dist/web/features/session/Timeline.d.mts +28 -0
- package/dist/web/features/session/Timeline.d.mts.map +1 -0
- package/dist/web/features/session/Timeline.mjs +619 -0
- package/dist/web/features/session/Timeline.mjs.map +1 -0
- package/dist/web/features/session/ToolCard.cjs +210 -0
- package/dist/web/features/session/ToolCard.cjs.map +1 -0
- package/dist/web/features/session/ToolCard.d.mts +16 -0
- package/dist/web/features/session/ToolCard.d.mts.map +1 -0
- package/dist/web/features/session/ToolCard.mjs +210 -0
- package/dist/web/features/session/ToolCard.mjs.map +1 -0
- package/dist/web/features/session/session.fixture.cjs +76 -0
- package/dist/web/features/session/session.fixture.cjs.map +1 -0
- package/dist/web/features/session/session.fixture.d.mts +6 -0
- package/dist/web/features/session/session.fixture.d.mts.map +1 -0
- package/dist/web/features/session/session.fixture.mjs +74 -0
- package/dist/web/features/session/session.fixture.mjs.map +1 -0
- package/dist/web/features/sessions/NewSessionDialog.cjs +70 -0
- package/dist/web/features/sessions/NewSessionDialog.cjs.map +1 -0
- package/dist/web/features/sessions/NewSessionDialog.d.mts +9 -0
- package/dist/web/features/sessions/NewSessionDialog.d.mts.map +1 -0
- package/dist/web/features/sessions/NewSessionDialog.mjs +70 -0
- package/dist/web/features/sessions/NewSessionDialog.mjs.map +1 -0
- package/dist/web/features/sessions/ResumeSessionDialog.cjs +131 -0
- package/dist/web/features/sessions/ResumeSessionDialog.cjs.map +1 -0
- package/dist/web/features/sessions/ResumeSessionDialog.d.mts +14 -0
- package/dist/web/features/sessions/ResumeSessionDialog.d.mts.map +1 -0
- package/dist/web/features/sessions/ResumeSessionDialog.mjs +131 -0
- package/dist/web/features/sessions/ResumeSessionDialog.mjs.map +1 -0
- package/dist/web/features/sessions/SessionRailDialogs.cjs +62 -0
- package/dist/web/features/sessions/SessionRailDialogs.cjs.map +1 -0
- package/dist/web/features/sessions/SessionRailDialogs.d.mts +10 -0
- package/dist/web/features/sessions/SessionRailDialogs.d.mts.map +1 -0
- package/dist/web/features/sessions/SessionRailDialogs.mjs +62 -0
- package/dist/web/features/sessions/SessionRailDialogs.mjs.map +1 -0
- package/dist/web/features/sessions/WelcomePanel.cjs +42 -0
- package/dist/web/features/sessions/WelcomePanel.cjs.map +1 -0
- package/dist/web/features/sessions/WelcomePanel.d.mts +16 -0
- package/dist/web/features/sessions/WelcomePanel.d.mts.map +1 -0
- package/dist/web/features/sessions/WelcomePanel.mjs +42 -0
- package/dist/web/features/sessions/WelcomePanel.mjs.map +1 -0
- package/dist/web/features/sessions/useNewSessionActions.cjs +38 -0
- package/dist/web/features/sessions/useNewSessionActions.cjs.map +1 -0
- package/dist/web/features/sessions/useNewSessionActions.d.mts +12 -0
- package/dist/web/features/sessions/useNewSessionActions.d.mts.map +1 -0
- package/dist/web/features/sessions/useNewSessionActions.mjs +38 -0
- package/dist/web/features/sessions/useNewSessionActions.mjs.map +1 -0
- package/dist/web/features/sessions/useSessionRail.cjs +302 -0
- package/dist/web/features/sessions/useSessionRail.cjs.map +1 -0
- package/dist/web/features/sessions/useSessionRail.d.mts +14 -0
- package/dist/web/features/sessions/useSessionRail.d.mts.map +1 -0
- package/dist/web/features/sessions/useSessionRail.mjs +302 -0
- package/dist/web/features/sessions/useSessionRail.mjs.map +1 -0
- package/dist/web/features/settings/AppearanceSettings.cjs +126 -0
- package/dist/web/features/settings/AppearanceSettings.cjs.map +1 -0
- package/dist/web/features/settings/AppearanceSettings.d.mts +12 -0
- package/dist/web/features/settings/AppearanceSettings.d.mts.map +1 -0
- package/dist/web/features/settings/AppearanceSettings.mjs +126 -0
- package/dist/web/features/settings/AppearanceSettings.mjs.map +1 -0
- package/dist/web/features/settings/ContributedSettings.cjs +257 -0
- package/dist/web/features/settings/ContributedSettings.cjs.map +1 -0
- package/dist/web/features/settings/ContributedSettings.d.mts +14 -0
- package/dist/web/features/settings/ContributedSettings.d.mts.map +1 -0
- package/dist/web/features/settings/ContributedSettings.mjs +257 -0
- package/dist/web/features/settings/ContributedSettings.mjs.map +1 -0
- package/dist/web/features/settings/ImageSettings.cjs +146 -0
- package/dist/web/features/settings/ImageSettings.cjs.map +1 -0
- package/dist/web/features/settings/ImageSettings.d.mts +12 -0
- package/dist/web/features/settings/ImageSettings.d.mts.map +1 -0
- package/dist/web/features/settings/ImageSettings.mjs +146 -0
- package/dist/web/features/settings/ImageSettings.mjs.map +1 -0
- package/dist/web/features/settings/LoginFlowDialog.cjs +226 -0
- package/dist/web/features/settings/LoginFlowDialog.cjs.map +1 -0
- package/dist/web/features/settings/LoginFlowDialog.d.mts +15 -0
- package/dist/web/features/settings/LoginFlowDialog.d.mts.map +1 -0
- package/dist/web/features/settings/LoginFlowDialog.mjs +225 -0
- package/dist/web/features/settings/LoginFlowDialog.mjs.map +1 -0
- package/dist/web/features/settings/NotificationSettings.cjs +69 -0
- package/dist/web/features/settings/NotificationSettings.cjs.map +1 -0
- package/dist/web/features/settings/NotificationSettings.d.mts +5 -0
- package/dist/web/features/settings/NotificationSettings.d.mts.map +1 -0
- package/dist/web/features/settings/NotificationSettings.mjs +69 -0
- package/dist/web/features/settings/NotificationSettings.mjs.map +1 -0
- package/dist/web/features/settings/PluginSettings.cjs +106 -0
- package/dist/web/features/settings/PluginSettings.cjs.map +1 -0
- package/dist/web/features/settings/PluginSettings.d.mts +10 -0
- package/dist/web/features/settings/PluginSettings.d.mts.map +1 -0
- package/dist/web/features/settings/PluginSettings.mjs +106 -0
- package/dist/web/features/settings/PluginSettings.mjs.map +1 -0
- package/dist/web/features/settings/ProviderSettings.cjs +323 -0
- package/dist/web/features/settings/ProviderSettings.cjs.map +1 -0
- package/dist/web/features/settings/ProviderSettings.d.mts +9 -0
- package/dist/web/features/settings/ProviderSettings.d.mts.map +1 -0
- package/dist/web/features/settings/ProviderSettings.mjs +323 -0
- package/dist/web/features/settings/ProviderSettings.mjs.map +1 -0
- package/dist/web/features/settings/RemoteControlSettings.cjs +50 -0
- package/dist/web/features/settings/RemoteControlSettings.cjs.map +1 -0
- package/dist/web/features/settings/RemoteControlSettings.d.mts +5 -0
- package/dist/web/features/settings/RemoteControlSettings.d.mts.map +1 -0
- package/dist/web/features/settings/RemoteControlSettings.mjs +50 -0
- package/dist/web/features/settings/RemoteControlSettings.mjs.map +1 -0
- package/dist/web/features/settings/RepositorySettings.cjs +318 -0
- package/dist/web/features/settings/RepositorySettings.cjs.map +1 -0
- package/dist/web/features/settings/RepositorySettings.d.mts +7 -0
- package/dist/web/features/settings/RepositorySettings.d.mts.map +1 -0
- package/dist/web/features/settings/RepositorySettings.mjs +318 -0
- package/dist/web/features/settings/RepositorySettings.mjs.map +1 -0
- package/dist/web/features/settings/RepositoryWorkspace.cjs +160 -0
- package/dist/web/features/settings/RepositoryWorkspace.cjs.map +1 -0
- package/dist/web/features/settings/RepositoryWorkspace.d.mts +10 -0
- package/dist/web/features/settings/RepositoryWorkspace.d.mts.map +1 -0
- package/dist/web/features/settings/RepositoryWorkspace.mjs +160 -0
- package/dist/web/features/settings/RepositoryWorkspace.mjs.map +1 -0
- package/dist/web/features/settings/SessionMcpSettings.cjs +488 -0
- package/dist/web/features/settings/SessionMcpSettings.cjs.map +1 -0
- package/dist/web/features/settings/SessionMcpSettings.d.mts +5 -0
- package/dist/web/features/settings/SessionMcpSettings.d.mts.map +1 -0
- package/dist/web/features/settings/SessionMcpSettings.mjs +488 -0
- package/dist/web/features/settings/SessionMcpSettings.mjs.map +1 -0
- package/dist/web/features/settings/SettingsMenu.cjs +135 -0
- package/dist/web/features/settings/SettingsMenu.cjs.map +1 -0
- package/dist/web/features/settings/SettingsMenu.d.mts +9 -0
- package/dist/web/features/settings/SettingsMenu.d.mts.map +1 -0
- package/dist/web/features/settings/SettingsMenu.mjs +135 -0
- package/dist/web/features/settings/SettingsMenu.mjs.map +1 -0
- package/dist/web/features/settings/SettingsPanelHost.cjs +32 -0
- package/dist/web/features/settings/SettingsPanelHost.cjs.map +1 -0
- package/dist/web/features/settings/SettingsPanelHost.d.mts +8 -0
- package/dist/web/features/settings/SettingsPanelHost.d.mts.map +1 -0
- package/dist/web/features/settings/SettingsPanelHost.mjs +32 -0
- package/dist/web/features/settings/SettingsPanelHost.mjs.map +1 -0
- package/dist/web/features/settings/TemplateSettings.cjs +177 -0
- package/dist/web/features/settings/TemplateSettings.cjs.map +1 -0
- package/dist/web/features/settings/TemplateSettings.d.mts +8 -0
- package/dist/web/features/settings/TemplateSettings.d.mts.map +1 -0
- package/dist/web/features/settings/TemplateSettings.mjs +177 -0
- package/dist/web/features/settings/TemplateSettings.mjs.map +1 -0
- package/dist/web/features/settings/TunnelSettings.cjs +182 -0
- package/dist/web/features/settings/TunnelSettings.cjs.map +1 -0
- package/dist/web/features/settings/TunnelSettings.d.mts +8 -0
- package/dist/web/features/settings/TunnelSettings.d.mts.map +1 -0
- package/dist/web/features/settings/TunnelSettings.mjs +182 -0
- package/dist/web/features/settings/TunnelSettings.mjs.map +1 -0
- package/dist/web/features/settings/settings.fixture.cjs +230 -0
- package/dist/web/features/settings/settings.fixture.cjs.map +1 -0
- package/dist/web/features/settings/settings.fixture.d.mts +6 -0
- package/dist/web/features/settings/settings.fixture.d.mts.map +1 -0
- package/dist/web/features/settings/settings.fixture.mjs +223 -0
- package/dist/web/features/settings/settings.fixture.mjs.map +1 -0
- package/dist/web/features/status/TopBar.cjs +200 -0
- package/dist/web/features/status/TopBar.cjs.map +1 -0
- package/dist/web/features/status/TopBar.d.mts +11 -0
- package/dist/web/features/status/TopBar.d.mts.map +1 -0
- package/dist/web/features/status/TopBar.mjs +200 -0
- package/dist/web/features/status/TopBar.mjs.map +1 -0
- package/dist/web/lib/authApi.cjs +77 -0
- package/dist/web/lib/authApi.cjs.map +1 -0
- package/dist/web/lib/authApi.d.mts +28 -0
- package/dist/web/lib/authApi.d.mts.map +1 -0
- package/dist/web/lib/authApi.mjs +72 -0
- package/dist/web/lib/authApi.mjs.map +1 -0
- package/dist/web/lib/browserNotifications.cjs +37 -0
- package/dist/web/lib/browserNotifications.cjs.map +1 -0
- package/dist/web/lib/browserNotifications.d.mts +12 -0
- package/dist/web/lib/browserNotifications.d.mts.map +1 -0
- package/dist/web/lib/browserNotifications.mjs +35 -0
- package/dist/web/lib/browserNotifications.mjs.map +1 -0
- package/dist/web/lib/browserTelemetry.cjs +158 -0
- package/dist/web/lib/browserTelemetry.cjs.map +1 -0
- package/dist/web/lib/browserTelemetry.d.mts +28 -0
- package/dist/web/lib/browserTelemetry.d.mts.map +1 -0
- package/dist/web/lib/browserTelemetry.mjs +154 -0
- package/dist/web/lib/browserTelemetry.mjs.map +1 -0
- package/dist/web/lib/commands.cjs +176 -0
- package/dist/web/lib/commands.cjs.map +1 -0
- package/dist/web/lib/commands.d.mts +53 -0
- package/dist/web/lib/commands.d.mts.map +1 -0
- package/dist/web/lib/commands.mjs +153 -0
- package/dist/web/lib/commands.mjs.map +1 -0
- package/dist/web/lib/composerSubmissions.cjs +20 -0
- package/dist/web/lib/composerSubmissions.cjs.map +1 -0
- package/dist/web/lib/composerSubmissions.d.mts +7 -0
- package/dist/web/lib/composerSubmissions.d.mts.map +1 -0
- package/dist/web/lib/composerSubmissions.mjs +19 -0
- package/dist/web/lib/composerSubmissions.mjs.map +1 -0
- package/dist/web/lib/composition.cjs +403 -0
- package/dist/web/lib/composition.cjs.map +1 -0
- package/dist/web/lib/composition.d.mts +137 -0
- package/dist/web/lib/composition.d.mts.map +1 -0
- package/dist/web/lib/composition.mjs +392 -0
- package/dist/web/lib/composition.mjs.map +1 -0
- package/dist/web/lib/contextComposition.cjs +132 -0
- package/dist/web/lib/contextComposition.cjs.map +1 -0
- package/dist/web/lib/contextComposition.d.mts +75 -0
- package/dist/web/lib/contextComposition.d.mts.map +1 -0
- package/dist/web/lib/contextComposition.mjs +127 -0
- package/dist/web/lib/contextComposition.mjs.map +1 -0
- package/dist/web/lib/contextDetailApi.cjs +61 -0
- package/dist/web/lib/contextDetailApi.cjs.map +1 -0
- package/dist/web/lib/contextDetailApi.d.mts +12 -0
- package/dist/web/lib/contextDetailApi.d.mts.map +1 -0
- package/dist/web/lib/contextDetailApi.mjs +61 -0
- package/dist/web/lib/contextDetailApi.mjs.map +1 -0
- package/dist/web/lib/dashboardRenderers.cjs +9 -0
- package/dist/web/lib/dashboardRenderers.cjs.map +1 -0
- package/dist/web/lib/dashboardRenderers.d.mts +12 -0
- package/dist/web/lib/dashboardRenderers.d.mts.map +1 -0
- package/dist/web/lib/dashboardRenderers.mjs +9 -0
- package/dist/web/lib/dashboardRenderers.mjs.map +1 -0
- package/dist/web/lib/dashboardRoute.cjs +27 -0
- package/dist/web/lib/dashboardRoute.cjs.map +1 -0
- package/dist/web/lib/dashboardRoute.d.mts +29 -0
- package/dist/web/lib/dashboardRoute.d.mts.map +1 -0
- package/dist/web/lib/dashboardRoute.mjs +26 -0
- package/dist/web/lib/dashboardRoute.mjs.map +1 -0
- package/dist/web/lib/dashboardTranscript.cjs +15 -0
- package/dist/web/lib/dashboardTranscript.cjs.map +1 -0
- package/dist/web/lib/dashboardTranscript.d.mts +6 -0
- package/dist/web/lib/dashboardTranscript.d.mts.map +1 -0
- package/dist/web/lib/dashboardTranscript.mjs +14 -0
- package/dist/web/lib/dashboardTranscript.mjs.map +1 -0
- package/dist/web/lib/devProxyApi.cjs +74 -0
- package/dist/web/lib/devProxyApi.cjs.map +1 -0
- package/dist/web/lib/devProxyApi.d.mts +21 -0
- package/dist/web/lib/devProxyApi.d.mts.map +1 -0
- package/dist/web/lib/devProxyApi.mjs +72 -0
- package/dist/web/lib/devProxyApi.mjs.map +1 -0
- package/dist/web/lib/fileMentions.cjs +30 -0
- package/dist/web/lib/fileMentions.cjs.map +1 -0
- package/dist/web/lib/fileMentions.d.mts +13 -0
- package/dist/web/lib/fileMentions.d.mts.map +1 -0
- package/dist/web/lib/fileMentions.mjs +29 -0
- package/dist/web/lib/fileMentions.mjs.map +1 -0
- package/dist/web/lib/hubApi.cjs +283 -0
- package/dist/web/lib/hubApi.cjs.map +1 -0
- package/dist/web/lib/hubApi.d.mts +109 -0
- package/dist/web/lib/hubApi.d.mts.map +1 -0
- package/dist/web/lib/hubApi.mjs +268 -0
- package/dist/web/lib/hubApi.mjs.map +1 -0
- package/dist/web/lib/leaderTree.cjs +150 -0
- package/dist/web/lib/leaderTree.cjs.map +1 -0
- package/dist/web/lib/leaderTree.d.mts +41 -0
- package/dist/web/lib/leaderTree.d.mts.map +1 -0
- package/dist/web/lib/leaderTree.mjs +149 -0
- package/dist/web/lib/leaderTree.mjs.map +1 -0
- package/dist/web/lib/livePush.cjs +97 -0
- package/dist/web/lib/livePush.cjs.map +1 -0
- package/dist/web/lib/livePush.d.mts +10 -0
- package/dist/web/lib/livePush.d.mts.map +1 -0
- package/dist/web/lib/livePush.mjs +94 -0
- package/dist/web/lib/livePush.mjs.map +1 -0
- package/dist/web/lib/modelContextAdapter.cjs +63 -0
- package/dist/web/lib/modelContextAdapter.cjs.map +1 -0
- package/dist/web/lib/modelContextAdapter.d.mts +11 -0
- package/dist/web/lib/modelContextAdapter.d.mts.map +1 -0
- package/dist/web/lib/modelContextAdapter.mjs +62 -0
- package/dist/web/lib/modelContextAdapter.mjs.map +1 -0
- package/dist/web/lib/piTransport.cjs +103 -0
- package/dist/web/lib/piTransport.cjs.map +1 -0
- package/dist/web/lib/piTransport.d.mts +8 -0
- package/dist/web/lib/piTransport.d.mts.map +1 -0
- package/dist/web/lib/piTransport.mjs +102 -0
- package/dist/web/lib/piTransport.mjs.map +1 -0
- package/dist/web/lib/pluginCompositions.cjs +57 -0
- package/dist/web/lib/pluginCompositions.cjs.map +1 -0
- package/dist/web/lib/pluginCompositions.d.mts +37 -0
- package/dist/web/lib/pluginCompositions.d.mts.map +1 -0
- package/dist/web/lib/pluginCompositions.mjs +52 -0
- package/dist/web/lib/pluginCompositions.mjs.map +1 -0
- package/dist/web/lib/pluginRegistry.cjs +675 -0
- package/dist/web/lib/pluginRegistry.cjs.map +1 -0
- package/dist/web/lib/pluginRegistry.d.mts +155 -0
- package/dist/web/lib/pluginRegistry.d.mts.map +1 -0
- package/dist/web/lib/pluginRegistry.mjs +633 -0
- package/dist/web/lib/pluginRegistry.mjs.map +1 -0
- package/dist/web/lib/pluginScopes.cjs +48 -0
- package/dist/web/lib/pluginScopes.cjs.map +1 -0
- package/dist/web/lib/pluginScopes.d.mts +8 -0
- package/dist/web/lib/pluginScopes.d.mts.map +1 -0
- package/dist/web/lib/pluginScopes.mjs +47 -0
- package/dist/web/lib/pluginScopes.mjs.map +1 -0
- package/dist/web/lib/pluginSlotProps.cjs +83 -0
- package/dist/web/lib/pluginSlotProps.cjs.map +1 -0
- package/dist/web/lib/pluginSlotProps.d.mts +21 -0
- package/dist/web/lib/pluginSlotProps.d.mts.map +1 -0
- package/dist/web/lib/pluginSlotProps.mjs +82 -0
- package/dist/web/lib/pluginSlotProps.mjs.map +1 -0
- package/dist/web/lib/promptFocus.cjs +30 -0
- package/dist/web/lib/promptFocus.cjs.map +1 -0
- package/dist/web/lib/promptFocus.d.mts +7 -0
- package/dist/web/lib/promptFocus.d.mts.map +1 -0
- package/dist/web/lib/promptFocus.mjs +29 -0
- package/dist/web/lib/promptFocus.mjs.map +1 -0
- package/dist/web/lib/protocolHubSocket.cjs +107 -0
- package/dist/web/lib/protocolHubSocket.cjs.map +1 -0
- package/dist/web/lib/protocolHubSocket.d.mts +18 -0
- package/dist/web/lib/protocolHubSocket.d.mts.map +1 -0
- package/dist/web/lib/protocolHubSocket.mjs +107 -0
- package/dist/web/lib/protocolHubSocket.mjs.map +1 -0
- package/dist/web/lib/protocolTimeline.cjs +86 -0
- package/dist/web/lib/protocolTimeline.cjs.map +1 -0
- package/dist/web/lib/protocolTimeline.d.mts +9 -0
- package/dist/web/lib/protocolTimeline.d.mts.map +1 -0
- package/dist/web/lib/protocolTimeline.mjs +85 -0
- package/dist/web/lib/protocolTimeline.mjs.map +1 -0
- package/dist/web/lib/qrMatrix.cjs +37 -0
- package/dist/web/lib/qrMatrix.cjs.map +1 -0
- package/dist/web/lib/qrMatrix.d.mts +5 -0
- package/dist/web/lib/qrMatrix.d.mts.map +1 -0
- package/dist/web/lib/qrMatrix.mjs +35 -0
- package/dist/web/lib/qrMatrix.mjs.map +1 -0
- package/dist/web/lib/remoteApi.cjs +100 -0
- package/dist/web/lib/remoteApi.cjs.map +1 -0
- package/dist/web/lib/remoteApi.d.mts +45 -0
- package/dist/web/lib/remoteApi.d.mts.map +1 -0
- package/dist/web/lib/remoteApi.mjs +92 -0
- package/dist/web/lib/remoteApi.mjs.map +1 -0
- package/dist/web/lib/sealedSession.cjs +81 -0
- package/dist/web/lib/sealedSession.cjs.map +1 -0
- package/dist/web/lib/sealedSession.d.mts +24 -0
- package/dist/web/lib/sealedSession.d.mts.map +1 -0
- package/dist/web/lib/sealedSession.mjs +75 -0
- package/dist/web/lib/sealedSession.mjs.map +1 -0
- package/dist/web/lib/sessionActivityRenderer.cjs +19 -0
- package/dist/web/lib/sessionActivityRenderer.cjs.map +1 -0
- package/dist/web/lib/sessionActivityRenderer.d.mts +10 -0
- package/dist/web/lib/sessionActivityRenderer.d.mts.map +1 -0
- package/dist/web/lib/sessionActivityRenderer.mjs +17 -0
- package/dist/web/lib/sessionActivityRenderer.mjs.map +1 -0
- package/dist/web/lib/sessionAsset.cjs +45 -0
- package/dist/web/lib/sessionAsset.cjs.map +1 -0
- package/dist/web/lib/sessionAsset.d.mts +17 -0
- package/dist/web/lib/sessionAsset.d.mts.map +1 -0
- package/dist/web/lib/sessionAsset.mjs +44 -0
- package/dist/web/lib/sessionAsset.mjs.map +1 -0
- package/dist/web/lib/sessionAvatar.cjs +18 -0
- package/dist/web/lib/sessionAvatar.cjs.map +1 -0
- package/dist/web/lib/sessionAvatar.d.mts +10 -0
- package/dist/web/lib/sessionAvatar.d.mts.map +1 -0
- package/dist/web/lib/sessionAvatar.mjs +18 -0
- package/dist/web/lib/sessionAvatar.mjs.map +1 -0
- package/dist/web/lib/sessionMcpApi.cjs +120 -0
- package/dist/web/lib/sessionMcpApi.cjs.map +1 -0
- package/dist/web/lib/sessionMcpApi.d.mts +27 -0
- package/dist/web/lib/sessionMcpApi.d.mts.map +1 -0
- package/dist/web/lib/sessionMcpApi.mjs +114 -0
- package/dist/web/lib/sessionMcpApi.mjs.map +1 -0
- package/dist/web/lib/sessionMcpPrompt.cjs +24 -0
- package/dist/web/lib/sessionMcpPrompt.cjs.map +1 -0
- package/dist/web/lib/sessionMcpPrompt.mjs +23 -0
- package/dist/web/lib/sessionMcpPrompt.mjs.map +1 -0
- package/dist/web/lib/sessionModel.cjs +970 -0
- package/dist/web/lib/sessionModel.cjs.map +1 -0
- package/dist/web/lib/sessionModel.d.mts +254 -0
- package/dist/web/lib/sessionModel.d.mts.map +1 -0
- package/dist/web/lib/sessionModel.mjs +958 -0
- package/dist/web/lib/sessionModel.mjs.map +1 -0
- package/dist/web/lib/sessionProtocolCommands.cjs +196 -0
- package/dist/web/lib/sessionProtocolCommands.cjs.map +1 -0
- package/dist/web/lib/sessionProtocolCommands.d.mts +15 -0
- package/dist/web/lib/sessionProtocolCommands.d.mts.map +1 -0
- package/dist/web/lib/sessionProtocolCommands.mjs +193 -0
- package/dist/web/lib/sessionProtocolCommands.mjs.map +1 -0
- package/dist/web/lib/sessionRailModel.cjs +107 -0
- package/dist/web/lib/sessionRailModel.cjs.map +1 -0
- package/dist/web/lib/sessionRailModel.d.mts +38 -0
- package/dist/web/lib/sessionRailModel.d.mts.map +1 -0
- package/dist/web/lib/sessionRailModel.mjs +104 -0
- package/dist/web/lib/sessionRailModel.mjs.map +1 -0
- package/dist/web/lib/sessionSummary.cjs +58 -0
- package/dist/web/lib/sessionSummary.cjs.map +1 -0
- package/dist/web/lib/sessionSummary.d.mts +39 -0
- package/dist/web/lib/sessionSummary.d.mts.map +1 -0
- package/dist/web/lib/sessionSummary.mjs +54 -0
- package/dist/web/lib/sessionSummary.mjs.map +1 -0
- package/dist/web/lib/sessionTranscriptRenderer.cjs +19 -0
- package/dist/web/lib/sessionTranscriptRenderer.cjs.map +1 -0
- package/dist/web/lib/sessionTranscriptRenderer.d.mts +11 -0
- package/dist/web/lib/sessionTranscriptRenderer.d.mts.map +1 -0
- package/dist/web/lib/sessionTranscriptRenderer.mjs +17 -0
- package/dist/web/lib/sessionTranscriptRenderer.mjs.map +1 -0
- package/dist/web/lib/settingsApi.cjs +237 -0
- package/dist/web/lib/settingsApi.cjs.map +1 -0
- package/dist/web/lib/settingsApi.d.mts +57 -0
- package/dist/web/lib/settingsApi.d.mts.map +1 -0
- package/dist/web/lib/settingsApi.mjs +230 -0
- package/dist/web/lib/settingsApi.mjs.map +1 -0
- package/dist/web/lib/settingsDraft.cjs +48 -0
- package/dist/web/lib/settingsDraft.cjs.map +1 -0
- package/dist/web/lib/settingsDraft.d.mts +28 -0
- package/dist/web/lib/settingsDraft.d.mts.map +1 -0
- package/dist/web/lib/settingsDraft.mjs +45 -0
- package/dist/web/lib/settingsDraft.mjs.map +1 -0
- package/dist/web/lib/settingsSections.cjs +108 -0
- package/dist/web/lib/settingsSections.cjs.map +1 -0
- package/dist/web/lib/settingsSections.d.mts +36 -0
- package/dist/web/lib/settingsSections.d.mts.map +1 -0
- package/dist/web/lib/settingsSections.mjs +105 -0
- package/dist/web/lib/settingsSections.mjs.map +1 -0
- package/dist/web/lib/statusLine.cjs +82 -0
- package/dist/web/lib/statusLine.cjs.map +1 -0
- package/dist/web/lib/statusLine.d.mts +27 -0
- package/dist/web/lib/statusLine.d.mts.map +1 -0
- package/dist/web/lib/statusLine.mjs +79 -0
- package/dist/web/lib/statusLine.mjs.map +1 -0
- package/dist/web/lib/stepUp.cjs +41 -0
- package/dist/web/lib/stepUp.cjs.map +1 -0
- package/dist/web/lib/stepUp.d.mts +18 -0
- package/dist/web/lib/stepUp.d.mts.map +1 -0
- package/dist/web/lib/stepUp.mjs +41 -0
- package/dist/web/lib/stepUp.mjs.map +1 -0
- package/dist/web/lib/templateCatalog.cjs +123 -0
- package/dist/web/lib/templateCatalog.cjs.map +1 -0
- package/dist/web/lib/templateCatalog.d.mts +38 -0
- package/dist/web/lib/templateCatalog.d.mts.map +1 -0
- package/dist/web/lib/templateCatalog.mjs +118 -0
- package/dist/web/lib/templateCatalog.mjs.map +1 -0
- package/dist/web/lib/threadRenderer.cjs +25 -0
- package/dist/web/lib/threadRenderer.cjs.map +1 -0
- package/dist/web/lib/threadRenderer.d.mts +17 -0
- package/dist/web/lib/threadRenderer.d.mts.map +1 -0
- package/dist/web/lib/threadRenderer.mjs +23 -0
- package/dist/web/lib/threadRenderer.mjs.map +1 -0
- package/dist/web/lib/timelineGroups.cjs +83 -0
- package/dist/web/lib/timelineGroups.cjs.map +1 -0
- package/dist/web/lib/timelineGroups.d.mts +36 -0
- package/dist/web/lib/timelineGroups.d.mts.map +1 -0
- package/dist/web/lib/timelineGroups.mjs +81 -0
- package/dist/web/lib/timelineGroups.mjs.map +1 -0
- package/dist/web/lib/toolCompletionTabs.cjs +98 -0
- package/dist/web/lib/toolCompletionTabs.cjs.map +1 -0
- package/dist/web/lib/toolCompletionTabs.d.mts +14 -0
- package/dist/web/lib/toolCompletionTabs.d.mts.map +1 -0
- package/dist/web/lib/toolCompletionTabs.mjs +98 -0
- package/dist/web/lib/toolCompletionTabs.mjs.map +1 -0
- package/dist/web/lib/toolMessageProps.cjs +19 -0
- package/dist/web/lib/toolMessageProps.cjs.map +1 -0
- package/dist/web/lib/toolMessageProps.d.mts +7 -0
- package/dist/web/lib/toolMessageProps.d.mts.map +1 -0
- package/dist/web/lib/toolMessageProps.mjs +19 -0
- package/dist/web/lib/toolMessageProps.mjs.map +1 -0
- package/dist/web/lib/toolPrompt.cjs +44 -0
- package/dist/web/lib/toolPrompt.cjs.map +1 -0
- package/dist/web/lib/toolPrompt.d.mts +34 -0
- package/dist/web/lib/toolPrompt.d.mts.map +1 -0
- package/dist/web/lib/toolPrompt.mjs +44 -0
- package/dist/web/lib/toolPrompt.mjs.map +1 -0
- package/dist/web/lib/transport.cjs +57 -0
- package/dist/web/lib/transport.cjs.map +1 -0
- package/dist/web/lib/transport.d.mts +40 -0
- package/dist/web/lib/transport.d.mts.map +1 -0
- package/dist/web/lib/transport.mjs +50 -0
- package/dist/web/lib/transport.mjs.map +1 -0
- package/dist/web/lib/useSessionMcp.cjs +65 -0
- package/dist/web/lib/useSessionMcp.cjs.map +1 -0
- package/dist/web/lib/useSessionMcp.d.mts +15 -0
- package/dist/web/lib/useSessionMcp.d.mts.map +1 -0
- package/dist/web/lib/useSessionMcp.mjs +65 -0
- package/dist/web/lib/useSessionMcp.mjs.map +1 -0
- package/dist/web/lib/webauthnClient.cjs +110 -0
- package/dist/web/lib/webauthnClient.cjs.map +1 -0
- package/dist/web/lib/webauthnClient.d.mts +32 -0
- package/dist/web/lib/webauthnClient.d.mts.map +1 -0
- package/dist/web/lib/webauthnClient.mjs +106 -0
- package/dist/web/lib/webauthnClient.mjs.map +1 -0
- package/dist/web/lib/webmcpSimulator.cjs +105 -0
- package/dist/web/lib/webmcpSimulator.cjs.map +1 -0
- package/dist/web/lib/webmcpSimulator.mjs +105 -0
- package/dist/web/lib/webmcpSimulator.mjs.map +1 -0
- package/dist/web/stores/captureStore.cjs +137 -0
- package/dist/web/stores/captureStore.cjs.map +1 -0
- package/dist/web/stores/captureStore.d.mts +13 -0
- package/dist/web/stores/captureStore.d.mts.map +1 -0
- package/dist/web/stores/captureStore.mjs +133 -0
- package/dist/web/stores/captureStore.mjs.map +1 -0
- package/dist/web/stores/composerStore.cjs +390 -0
- package/dist/web/stores/composerStore.cjs.map +1 -0
- package/dist/web/stores/composerStore.d.mts +101 -0
- package/dist/web/stores/composerStore.d.mts.map +1 -0
- package/dist/web/stores/composerStore.mjs +370 -0
- package/dist/web/stores/composerStore.mjs.map +1 -0
- package/dist/web/stores/composerSubmissionStore.cjs +88 -0
- package/dist/web/stores/composerSubmissionStore.cjs.map +1 -0
- package/dist/web/stores/composerSubmissionStore.d.mts +11 -0
- package/dist/web/stores/composerSubmissionStore.d.mts.map +1 -0
- package/dist/web/stores/composerSubmissionStore.mjs +87 -0
- package/dist/web/stores/composerSubmissionStore.mjs.map +1 -0
- package/dist/web/stores/dashboardStateStore.cjs +35 -0
- package/dist/web/stores/dashboardStateStore.cjs.map +1 -0
- package/dist/web/stores/dashboardStateStore.d.mts +11 -0
- package/dist/web/stores/dashboardStateStore.d.mts.map +1 -0
- package/dist/web/stores/dashboardStateStore.mjs +33 -0
- package/dist/web/stores/dashboardStateStore.mjs.map +1 -0
- package/dist/web/stores/devProxyStore.cjs +76 -0
- package/dist/web/stores/devProxyStore.cjs.map +1 -0
- package/dist/web/stores/devProxyStore.d.mts +25 -0
- package/dist/web/stores/devProxyStore.d.mts.map +1 -0
- package/dist/web/stores/devProxyStore.mjs +73 -0
- package/dist/web/stores/devProxyStore.mjs.map +1 -0
- package/dist/web/stores/dialogDraftStore.cjs +38 -0
- package/dist/web/stores/dialogDraftStore.cjs.map +1 -0
- package/dist/web/stores/dialogDraftStore.d.mts +13 -0
- package/dist/web/stores/dialogDraftStore.d.mts.map +1 -0
- package/dist/web/stores/dialogDraftStore.mjs +36 -0
- package/dist/web/stores/dialogDraftStore.mjs.map +1 -0
- package/dist/web/stores/fileLinkModesStore.cjs +20 -0
- package/dist/web/stores/fileLinkModesStore.cjs.map +1 -0
- package/dist/web/stores/fileLinkModesStore.d.mts +5 -0
- package/dist/web/stores/fileLinkModesStore.d.mts.map +1 -0
- package/dist/web/stores/fileLinkModesStore.mjs +20 -0
- package/dist/web/stores/fileLinkModesStore.mjs.map +1 -0
- package/dist/web/stores/menuStore.cjs +85 -0
- package/dist/web/stores/menuStore.cjs.map +1 -0
- package/dist/web/stores/menuStore.d.mts +42 -0
- package/dist/web/stores/menuStore.d.mts.map +1 -0
- package/dist/web/stores/menuStore.mjs +79 -0
- package/dist/web/stores/menuStore.mjs.map +1 -0
- package/dist/web/stores/newSessionStore.cjs +93 -0
- package/dist/web/stores/newSessionStore.cjs.map +1 -0
- package/dist/web/stores/newSessionStore.d.mts +30 -0
- package/dist/web/stores/newSessionStore.d.mts.map +1 -0
- package/dist/web/stores/newSessionStore.mjs +86 -0
- package/dist/web/stores/newSessionStore.mjs.map +1 -0
- package/dist/web/stores/pagedTranscriptStore.cjs +235 -0
- package/dist/web/stores/pagedTranscriptStore.cjs.map +1 -0
- package/dist/web/stores/pagedTranscriptStore.d.mts +12 -0
- package/dist/web/stores/pagedTranscriptStore.d.mts.map +1 -0
- package/dist/web/stores/pagedTranscriptStore.mjs +235 -0
- package/dist/web/stores/pagedTranscriptStore.mjs.map +1 -0
- package/dist/web/stores/paletteStore.cjs +37 -0
- package/dist/web/stores/paletteStore.cjs.map +1 -0
- package/dist/web/stores/paletteStore.d.mts +14 -0
- package/dist/web/stores/paletteStore.d.mts.map +1 -0
- package/dist/web/stores/paletteStore.mjs +34 -0
- package/dist/web/stores/paletteStore.mjs.map +1 -0
- package/dist/web/stores/railDialogStore.cjs +105 -0
- package/dist/web/stores/railDialogStore.cjs.map +1 -0
- package/dist/web/stores/railDialogStore.d.mts +32 -0
- package/dist/web/stores/railDialogStore.d.mts.map +1 -0
- package/dist/web/stores/railDialogStore.mjs +97 -0
- package/dist/web/stores/railDialogStore.mjs.map +1 -0
- package/dist/web/stores/remoteAccessStore.cjs +216 -0
- package/dist/web/stores/remoteAccessStore.cjs.map +1 -0
- package/dist/web/stores/remoteAccessStore.d.mts +48 -0
- package/dist/web/stores/remoteAccessStore.d.mts.map +1 -0
- package/dist/web/stores/remoteAccessStore.mjs +202 -0
- package/dist/web/stores/remoteAccessStore.mjs.map +1 -0
- package/dist/web/stores/sessionChannelHoldsStore.cjs +43 -0
- package/dist/web/stores/sessionChannelHoldsStore.cjs.map +1 -0
- package/dist/web/stores/sessionChannelHoldsStore.d.mts +9 -0
- package/dist/web/stores/sessionChannelHoldsStore.d.mts.map +1 -0
- package/dist/web/stores/sessionChannelHoldsStore.mjs +42 -0
- package/dist/web/stores/sessionChannelHoldsStore.mjs.map +1 -0
- package/dist/web/stores/sessionStore.cjs +610 -0
- package/dist/web/stores/sessionStore.cjs.map +1 -0
- package/dist/web/stores/sessionStore.d.mts +116 -0
- package/dist/web/stores/sessionStore.d.mts.map +1 -0
- package/dist/web/stores/sessionStore.mjs +568 -0
- package/dist/web/stores/sessionStore.mjs.map +1 -0
- package/dist/web/stores/sessionsStore.cjs +272 -0
- package/dist/web/stores/sessionsStore.cjs.map +1 -0
- package/dist/web/stores/sessionsStore.d.mts +74 -0
- package/dist/web/stores/sessionsStore.d.mts.map +1 -0
- package/dist/web/stores/sessionsStore.mjs +257 -0
- package/dist/web/stores/sessionsStore.mjs.map +1 -0
- package/dist/web/stores/settingsDraftStore.cjs +138 -0
- package/dist/web/stores/settingsDraftStore.cjs.map +1 -0
- package/dist/web/stores/settingsDraftStore.d.mts +27 -0
- package/dist/web/stores/settingsDraftStore.d.mts.map +1 -0
- package/dist/web/stores/settingsDraftStore.mjs +132 -0
- package/dist/web/stores/settingsDraftStore.mjs.map +1 -0
- package/dist/web/stores/templateStore.cjs +136 -0
- package/dist/web/stores/templateStore.cjs.map +1 -0
- package/dist/web/stores/templateStore.d.mts +20 -0
- package/dist/web/stores/templateStore.d.mts.map +1 -0
- package/dist/web/stores/templateStore.mjs +131 -0
- package/dist/web/stores/templateStore.mjs.map +1 -0
- package/dist/web/stores/themeStore.cjs +42 -0
- package/dist/web/stores/themeStore.cjs.map +1 -0
- package/dist/web/stores/themeStore.d.mts +20 -0
- package/dist/web/stores/themeStore.d.mts.map +1 -0
- package/dist/web/stores/themeStore.mjs +39 -0
- package/dist/web/stores/themeStore.mjs.map +1 -0
- package/dist/web/stores/threadStore.cjs +122 -0
- package/dist/web/stores/threadStore.cjs.map +1 -0
- package/dist/web/stores/threadStore.d.mts +24 -0
- package/dist/web/stores/threadStore.d.mts.map +1 -0
- package/dist/web/stores/threadStore.mjs +114 -0
- package/dist/web/stores/threadStore.mjs.map +1 -0
- package/dist/web/stores/toolPromptStore.cjs +15 -0
- package/dist/web/stores/toolPromptStore.cjs.map +1 -0
- package/dist/web/stores/toolPromptStore.d.mts +23 -0
- package/dist/web/stores/toolPromptStore.d.mts.map +1 -0
- package/dist/web/stores/toolPromptStore.mjs +14 -0
- package/dist/web/stores/toolPromptStore.mjs.map +1 -0
- package/dist/web/stores/transientTabsStore.cjs +66 -0
- package/dist/web/stores/transientTabsStore.cjs.map +1 -0
- package/dist/web/stores/transientTabsStore.d.mts +21 -0
- package/dist/web/stores/transientTabsStore.d.mts.map +1 -0
- package/dist/web/stores/transientTabsStore.mjs +59 -0
- package/dist/web/stores/transientTabsStore.mjs.map +1 -0
- package/dist/web/stores/uiStore.cjs +47 -0
- package/dist/web/stores/uiStore.cjs.map +1 -0
- package/dist/web/stores/uiStore.d.mts +18 -0
- package/dist/web/stores/uiStore.d.mts.map +1 -0
- package/dist/web/stores/uiStore.mjs +45 -0
- package/dist/web/stores/uiStore.mjs.map +1 -0
- package/dist/web/stores/useOpenTab.cjs +31 -0
- package/dist/web/stores/useOpenTab.cjs.map +1 -0
- package/dist/web/stores/useOpenTab.d.mts +9 -0
- package/dist/web/stores/useOpenTab.d.mts.map +1 -0
- package/dist/web/stores/useOpenTab.mjs +31 -0
- package/dist/web/stores/useOpenTab.mjs.map +1 -0
- package/dist/web/stores/usePluginSlotProps.cjs +115 -0
- package/dist/web/stores/usePluginSlotProps.cjs.map +1 -0
- package/dist/web/stores/usePluginSlotProps.d.mts +6 -0
- package/dist/web/stores/usePluginSlotProps.d.mts.map +1 -0
- package/dist/web/stores/usePluginSlotProps.mjs +115 -0
- package/dist/web/stores/usePluginSlotProps.mjs.map +1 -0
- package/dist/web/stores/useToolPrompt.cjs +42 -0
- package/dist/web/stores/useToolPrompt.cjs.map +1 -0
- package/dist/web/stores/useToolPrompt.d.mts +14 -0
- package/dist/web/stores/useToolPrompt.d.mts.map +1 -0
- package/dist/web/stores/useToolPrompt.mjs +42 -0
- package/dist/web/stores/useToolPrompt.mjs.map +1 -0
- package/dist/web/stores/useWebPluginRegistry.cjs +11 -0
- package/dist/web/stores/useWebPluginRegistry.cjs.map +1 -0
- package/dist/web/stores/useWebPluginRegistry.d.mts +5 -0
- package/dist/web/stores/useWebPluginRegistry.d.mts.map +1 -0
- package/dist/web/stores/useWebPluginRegistry.mjs +11 -0
- package/dist/web/stores/useWebPluginRegistry.mjs.map +1 -0
- package/dist/web/stores/workspaceAdmissionStore.cjs +67 -0
- package/dist/web/stores/workspaceAdmissionStore.cjs.map +1 -0
- package/dist/web/stores/workspaceAdmissionStore.d.mts +24 -0
- package/dist/web/stores/workspaceAdmissionStore.d.mts.map +1 -0
- package/dist/web/stores/workspaceAdmissionStore.mjs +64 -0
- package/dist/web/stores/workspaceAdmissionStore.mjs.map +1 -0
- package/dist/web/stores/workspacesStore.cjs +83 -0
- package/dist/web/stores/workspacesStore.cjs.map +1 -0
- package/dist/web/stores/workspacesStore.d.mts +17 -0
- package/dist/web/stores/workspacesStore.d.mts.map +1 -0
- package/dist/web/stores/workspacesStore.mjs +78 -0
- package/dist/web/stores/workspacesStore.mjs.map +1 -0
- package/llms.txt +3 -0
- package/package.json +107 -0
- package/styles/dashboard.css +2 -0
- package/styles/preview.css +3 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composerSubmissionStore.mjs","names":[],"sources":["../../../src/web/stores/composerSubmissionStore.ts"],"sourcesContent":["import type { TransientTab, WebPluginContextItem } from '@agimon-ai/po-core/web';\nimport { Store } from '@tanstack/store';\n\nimport { publishComposerSubmission } from '../lib/composerSubmissions';\nimport {\n clearComposerState,\n composerStore,\n type ComposerAttachment,\n type ComposerImageAttachment,\n tabComposerContext,\n} from './composerStore';\nimport { sessionsStore } from './sessionsStore';\nimport { applySessionFrame, queueFollowUpWithAck, submitMessageWithAck } from './sessionStore';\n\n/** Admission belongs to the session, not to whichever template currently shows its composer. */\nexport const composerSubmissionStore = new Store<ReadonlySet<string>>(new Set<string>());\n\nfunction toolPathHint(path: string): string {\n return `To send it to a tool's file parameter, pass {\"path\": ${JSON.stringify(path)}}.`;\n}\n\nexport function attachmentPrompt(\n draft: string,\n attachments: ComposerAttachment[],\n tabContext?: WebPluginContextItem,\n): string {\n const parts: string[] = [];\n const trimmed = draft.trim();\n if (trimmed) parts.push(trimmed);\n for (const attachment of attachments) {\n if (attachment.kind === 'image') continue;\n const safeName = attachment.name.replace(/[\\r\\n]/g, ' ').slice(0, 200);\n if (attachment.kind === 'file') {\n parts.push(\n `Attached file \"${safeName}\" (${attachment.mimeType}, ${String(attachment.size)} bytes) saved at ${attachment.path}. ${toolPathHint(attachment.path)}`,\n );\n continue;\n }\n parts.push(\n attachment.kind === 'context'\n ? `Referenced context \"${safeName}\":\\n\\n${attachment.content}`\n : `Attached file \"${safeName}\":\\n\\n${attachment.content}`,\n );\n if (attachment.kind === 'text' && attachment.path !== undefined) {\n parts.push(`\"${safeName}\" is also saved at ${attachment.path}. ${toolPathHint(attachment.path)}`);\n }\n }\n if (parts.length === 0 && attachments.some((attachment) => attachment.kind === 'image')) {\n parts.push('Please review the attached image.');\n }\n for (const attachment of attachments) {\n if (attachment.kind !== 'image' || attachment.path === undefined) continue;\n const safeName = attachment.name.replace(/[\\r\\n]/g, ' ').slice(0, 200);\n parts.push(`Attached image \"${safeName}\" is also saved at ${attachment.path}. ${toolPathHint(attachment.path)}`);\n }\n if (tabContext !== undefined) parts.push(`Referenced context \"${tabContext.label}\":\\n\\n${tabContext.content}`);\n return parts.join('\\n\\n');\n}\n\n/** Reads the latest draft and claims admission synchronously, including across a dashboard remount. */\nexport async function submitComposerDraft(\n sessionId: string | null,\n delivery: 'submit' | 'queue',\n composerContext?: TransientTab['composerContext'],\n): Promise<boolean> {\n if (sessionId === null || composerSubmissionStore.state.has(sessionId)) return false;\n const meta = sessionsStore.state.byId[sessionId];\n const draft = composerStore.state[sessionId];\n if (\n !draft ||\n draft.pendingAttachments > 0 ||\n (!draft.draft.trim() && draft.attachments.length === 0) ||\n meta?.attach !== 'attached' ||\n meta.summary.dormant\n )\n return false;\n\n composerSubmissionStore.setState((pending) => new Set([...pending, sessionId]));\n try {\n const tabContext = tabComposerContext(composerContext, sessionId, draft.draft);\n const message = attachmentPrompt(draft.draft, draft.attachments, tabContext);\n const images = draft.attachments\n .filter((attachment): attachment is ComposerImageAttachment => attachment.kind === 'image')\n .map(({ data, mimeType }) => ({ type: 'image' as const, data, mimeType }));\n const contextItems: WebPluginContextItem[] = draft.attachments.flatMap((attachment) =>\n attachment.kind === 'context'\n ? [\n {\n kind: attachment.contextKind,\n source: attachment.source,\n id: attachment.contextId,\n label: attachment.name,\n content: attachment.content,\n ...(attachment.url === undefined ? {} : { url: attachment.url }),\n },\n ]\n : [],\n );\n if (tabContext !== undefined) contextItems.push(tabContext);\n const accepted =\n delivery === 'submit'\n ? await submitMessageWithAck(message, images, sessionId)\n : await queueFollowUpWithAck(message, images, sessionId);\n if (!accepted) return false;\n publishComposerSubmission({ sessionId, message, delivery, submittedAt: Date.now(), contextItems });\n const current = composerStore.state[sessionId];\n if (current?.draft === draft.draft && current.attachments === draft.attachments) clearComposerState(sessionId);\n return true;\n } catch (error) {\n applySessionFrame(sessionId, { type: 'error', message: error instanceof Error ? error.message : String(error) });\n return false;\n } finally {\n composerSubmissionStore.setState((pending) => {\n const next = new Set(pending);\n next.delete(sessionId);\n return next;\n });\n }\n}\n"],"mappings":";;;;;;;AAeA,MAAa,0BAA0B,IAAI,sBAA2B,IAAI,IAAY,CAAC;AAEvF,SAAS,aAAa,MAAsB;CAC1C,OAAO,wDAAwD,KAAK,UAAU,IAAI,EAAE;AACtF;AAEA,SAAgB,iBACd,OACA,aACA,YACQ;CACR,MAAM,QAAkB,CAAC;CACzB,MAAM,UAAU,MAAM,KAAK;CAC3B,IAAI,SAAS,MAAM,KAAK,OAAO;CAC/B,KAAK,MAAM,cAAc,aAAa;EACpC,IAAI,WAAW,SAAS,SAAS;EACjC,MAAM,WAAW,WAAW,KAAK,QAAQ,WAAW,GAAG,CAAC,CAAC,MAAM,GAAG,GAAG;EACrE,IAAI,WAAW,SAAS,QAAQ;GAC9B,MAAM,KACJ,kBAAkB,SAAS,KAAK,WAAW,SAAS,IAAI,OAAO,WAAW,IAAI,EAAE,mBAAmB,WAAW,KAAK,IAAI,aAAa,WAAW,IAAI,GACrJ;GACA;EACF;EACA,MAAM,KACJ,WAAW,SAAS,YAChB,uBAAuB,SAAS,QAAQ,WAAW,YACnD,kBAAkB,SAAS,QAAQ,WAAW,SACpD;EACA,IAAI,WAAW,SAAS,UAAU,WAAW,SAAS,KAAA,GACpD,MAAM,KAAK,IAAI,SAAS,qBAAqB,WAAW,KAAK,IAAI,aAAa,WAAW,IAAI,GAAG;CAEpG;CACA,IAAI,MAAM,WAAW,KAAK,YAAY,MAAM,eAAe,WAAW,SAAS,OAAO,GACpF,MAAM,KAAK,mCAAmC;CAEhD,KAAK,MAAM,cAAc,aAAa;EACpC,IAAI,WAAW,SAAS,WAAW,WAAW,SAAS,KAAA,GAAW;EAClE,MAAM,WAAW,WAAW,KAAK,QAAQ,WAAW,GAAG,CAAC,CAAC,MAAM,GAAG,GAAG;EACrE,MAAM,KAAK,mBAAmB,SAAS,qBAAqB,WAAW,KAAK,IAAI,aAAa,WAAW,IAAI,GAAG;CACjH;CACA,IAAI,eAAe,KAAA,GAAW,MAAM,KAAK,uBAAuB,WAAW,MAAM,QAAQ,WAAW,SAAS;CAC7G,OAAO,MAAM,KAAK,MAAM;AAC1B;;AAGA,eAAsB,oBACpB,WACA,UACA,iBACkB;CAClB,IAAI,cAAc,QAAQ,wBAAwB,MAAM,IAAI,SAAS,GAAG,OAAO;CAC/E,MAAM,OAAO,cAAc,MAAM,KAAK;CACtC,MAAM,QAAQ,cAAc,MAAM;CAClC,IACE,CAAC,SACD,MAAM,qBAAqB,KAC1B,CAAC,MAAM,MAAM,KAAK,KAAK,MAAM,YAAY,WAAW,KACrD,MAAM,WAAW,cACjB,KAAK,QAAQ,SAEb,OAAO;CAET,wBAAwB,UAAU,4BAAY,IAAI,IAAI,CAAC,GAAG,SAAS,SAAS,CAAC,CAAC;CAC9E,IAAI;EACF,MAAM,aAAa,mBAAmB,iBAAiB,WAAW,MAAM,KAAK;EAC7E,MAAM,UAAU,iBAAiB,MAAM,OAAO,MAAM,aAAa,UAAU;EAC3E,MAAM,SAAS,MAAM,YAClB,QAAQ,eAAsD,WAAW,SAAS,OAAO,CAAC,CAC1F,KAAK,EAAE,MAAM,gBAAgB;GAAE,MAAM;GAAkB;GAAM;EAAS,EAAE;EAC3E,MAAM,eAAuC,MAAM,YAAY,SAAS,eACtE,WAAW,SAAS,YAChB,CACE;GACE,MAAM,WAAW;GACjB,QAAQ,WAAW;GACnB,IAAI,WAAW;GACf,OAAO,WAAW;GAClB,SAAS,WAAW;GACpB,GAAI,WAAW,QAAQ,KAAA,IAAY,CAAC,IAAI,EAAE,KAAK,WAAW,IAAI;EAChE,CACF,IACA,CAAC,CACP;EACA,IAAI,eAAe,KAAA,GAAW,aAAa,KAAK,UAAU;EAK1D,IAAI,EAHF,aAAa,WACT,MAAM,qBAAqB,SAAS,QAAQ,SAAS,IACrD,MAAM,qBAAqB,SAAS,QAAQ,SAAS,IAC5C,OAAO;EACtB,0BAA0B;GAAE;GAAW;GAAS;GAAU,aAAa,KAAK,IAAI;GAAG;EAAa,CAAC;EACjG,MAAM,UAAU,cAAc,MAAM;EACpC,IAAI,SAAS,UAAU,MAAM,SAAS,QAAQ,gBAAgB,MAAM,aAAa,mBAAmB,SAAS;EAC7G,OAAO;CACT,SAAS,OAAO;EACd,kBAAkB,WAAW;GAAE,MAAM;GAAS,SAAS,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;EAAE,CAAC;EAC/G,OAAO;CACT,UAAU;EACR,wBAAwB,UAAU,YAAY;GAC5C,MAAM,OAAO,IAAI,IAAI,OAAO;GAC5B,KAAK,OAAO,SAAS;GACrB,OAAO;EACT,CAAC;CACH;AACF"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
let react = require("react");
|
|
2
|
+
let _tanstack_store = require("@tanstack/store");
|
|
3
|
+
let _tanstack_react_store = require("@tanstack/react-store");
|
|
4
|
+
//#region src/web/stores/dashboardStateStore.ts
|
|
5
|
+
const states = /* @__PURE__ */ new Map();
|
|
6
|
+
/** Memory only. Keys include the form and its resource, never the selected template. */
|
|
7
|
+
function dashboardStateFor(key, initial) {
|
|
8
|
+
let store = states.get(key);
|
|
9
|
+
if (store === void 0) {
|
|
10
|
+
store = new _tanstack_store.Store(typeof initial === "function" ? initial() : initial);
|
|
11
|
+
states.set(key, store);
|
|
12
|
+
}
|
|
13
|
+
return store;
|
|
14
|
+
}
|
|
15
|
+
/** The store is also exposed for synchronous admission checks in event handlers. */
|
|
16
|
+
function useDashboardState(key, initial) {
|
|
17
|
+
const store = dashboardStateFor(key, initial);
|
|
18
|
+
return [
|
|
19
|
+
(0, _tanstack_react_store.useStore)(store),
|
|
20
|
+
(0, react.useCallback)((next) => {
|
|
21
|
+
store.setState((previous) => typeof next === "function" ? next(previous) : next);
|
|
22
|
+
}, [store]),
|
|
23
|
+
store
|
|
24
|
+
];
|
|
25
|
+
}
|
|
26
|
+
/** Test seam. Existing subscribers must be unmounted before resetting. */
|
|
27
|
+
function resetDashboardState() {
|
|
28
|
+
states.clear();
|
|
29
|
+
}
|
|
30
|
+
//#endregion
|
|
31
|
+
exports.dashboardStateFor = dashboardStateFor;
|
|
32
|
+
exports.resetDashboardState = resetDashboardState;
|
|
33
|
+
exports.useDashboardState = useDashboardState;
|
|
34
|
+
|
|
35
|
+
//# sourceMappingURL=dashboardStateStore.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboardStateStore.cjs","names":["Store","useStore","useCallback"],"sources":["../../../src/web/stores/dashboardStateStore.ts"],"sourcesContent":["import { useStore } from '@tanstack/react-store';\nimport { Store } from '@tanstack/store';\nimport { useCallback, type Dispatch, type SetStateAction } from 'react';\n\nconst states = new Map<string, unknown>();\n\n/** Memory only. Keys include the form and its resource, never the selected template. */\nexport function dashboardStateFor<T>(key: string, initial: T | (() => T)): Store<T> {\n let store = states.get(key) as Store<T> | undefined;\n if (store === undefined) {\n store = new Store(typeof initial === 'function' ? (initial as () => T)() : initial);\n states.set(key, store);\n }\n return store;\n}\n\n/** The store is also exposed for synchronous admission checks in event handlers. */\nexport function useDashboardState<T>(key: string, initial: T | (() => T)): [T, Dispatch<SetStateAction<T>>, Store<T>] {\n const store = dashboardStateFor(key, initial);\n const value = useStore(store);\n const set = useCallback<Dispatch<SetStateAction<T>>>(\n (next) => {\n store.setState((previous) => (typeof next === 'function' ? (next as (value: T) => T)(previous) : next));\n },\n [store],\n );\n return [value, set, store];\n}\n\n/** Test seam. Existing subscribers must be unmounted before resetting. */\nexport function resetDashboardState(): void {\n states.clear();\n}\n"],"mappings":";;;;AAIA,MAAM,yBAAS,IAAI,IAAqB;;AAGxC,SAAgB,kBAAqB,KAAa,SAAkC;CAClF,IAAI,QAAQ,OAAO,IAAI,GAAG;CAC1B,IAAI,UAAU,KAAA,GAAW;EACvB,QAAQ,IAAIA,gBAAAA,MAAM,OAAO,YAAY,aAAc,QAAoB,IAAI,OAAO;EAClF,OAAO,IAAI,KAAK,KAAK;CACvB;CACA,OAAO;AACT;;AAGA,SAAgB,kBAAqB,KAAa,SAAoE;CACpH,MAAM,QAAQ,kBAAkB,KAAK,OAAO;CAQ5C,OAAO;GAPOC,GAAAA,sBAAAA,SAAAA,CAAS,KAOX;GANAC,GAAAA,MAAAA,YAAAA,EACT,SAAS;GACR,MAAM,UAAU,aAAc,OAAO,SAAS,aAAc,KAAyB,QAAQ,IAAI,IAAK;EACxG,GACA,CAAC,KAAK,CAES;EAAG;CAAK;AAC3B;;AAGA,SAAgB,sBAA4B;CAC1C,OAAO,MAAM;AACf"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Dispatch, SetStateAction } from "react";
|
|
2
|
+
import { Store } from "@tanstack/store";
|
|
3
|
+
//#region src/web/stores/dashboardStateStore.d.ts
|
|
4
|
+
/** Memory only. Keys include the form and its resource, never the selected template. */
|
|
5
|
+
export declare function dashboardStateFor<T>(key: string, initial: T | (() => T)): Store<T>;
|
|
6
|
+
/** The store is also exposed for synchronous admission checks in event handlers. */
|
|
7
|
+
export declare function useDashboardState<T>(key: string, initial: T | (() => T)): [T, Dispatch<SetStateAction<T>>, Store<T>];
|
|
8
|
+
/** Test seam. Existing subscribers must be unmounted before resetting. */
|
|
9
|
+
export declare function resetDashboardState(): void;
|
|
10
|
+
//#endregion
|
|
11
|
+
//# sourceMappingURL=dashboardStateStore.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboardStateStore.d.mts","names":[],"sources":["../../../src/web/stores/dashboardStateStore.ts"],"mappings":";;;;wBAOgB,kBAAkB,GAAG,aAAa,SAAS,WAAW,KAAK,MAAM;;wBAUjE,kBAAkB,GAAG,aAAa,SAAS,WAAW,MAAM,GAAG,SAAS,eAAe,KAAK,MAAM;;wBAalG"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { useCallback } from "react";
|
|
2
|
+
import { Store } from "@tanstack/store";
|
|
3
|
+
import { useStore } from "@tanstack/react-store";
|
|
4
|
+
//#region src/web/stores/dashboardStateStore.ts
|
|
5
|
+
const states = /* @__PURE__ */ new Map();
|
|
6
|
+
/** Memory only. Keys include the form and its resource, never the selected template. */
|
|
7
|
+
function dashboardStateFor(key, initial) {
|
|
8
|
+
let store = states.get(key);
|
|
9
|
+
if (store === void 0) {
|
|
10
|
+
store = new Store(typeof initial === "function" ? initial() : initial);
|
|
11
|
+
states.set(key, store);
|
|
12
|
+
}
|
|
13
|
+
return store;
|
|
14
|
+
}
|
|
15
|
+
/** The store is also exposed for synchronous admission checks in event handlers. */
|
|
16
|
+
function useDashboardState(key, initial) {
|
|
17
|
+
const store = dashboardStateFor(key, initial);
|
|
18
|
+
return [
|
|
19
|
+
useStore(store),
|
|
20
|
+
useCallback((next) => {
|
|
21
|
+
store.setState((previous) => typeof next === "function" ? next(previous) : next);
|
|
22
|
+
}, [store]),
|
|
23
|
+
store
|
|
24
|
+
];
|
|
25
|
+
}
|
|
26
|
+
/** Test seam. Existing subscribers must be unmounted before resetting. */
|
|
27
|
+
function resetDashboardState() {
|
|
28
|
+
states.clear();
|
|
29
|
+
}
|
|
30
|
+
//#endregion
|
|
31
|
+
export { dashboardStateFor, resetDashboardState, useDashboardState };
|
|
32
|
+
|
|
33
|
+
//# sourceMappingURL=dashboardStateStore.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboardStateStore.mjs","names":[],"sources":["../../../src/web/stores/dashboardStateStore.ts"],"sourcesContent":["import { useStore } from '@tanstack/react-store';\nimport { Store } from '@tanstack/store';\nimport { useCallback, type Dispatch, type SetStateAction } from 'react';\n\nconst states = new Map<string, unknown>();\n\n/** Memory only. Keys include the form and its resource, never the selected template. */\nexport function dashboardStateFor<T>(key: string, initial: T | (() => T)): Store<T> {\n let store = states.get(key) as Store<T> | undefined;\n if (store === undefined) {\n store = new Store(typeof initial === 'function' ? (initial as () => T)() : initial);\n states.set(key, store);\n }\n return store;\n}\n\n/** The store is also exposed for synchronous admission checks in event handlers. */\nexport function useDashboardState<T>(key: string, initial: T | (() => T)): [T, Dispatch<SetStateAction<T>>, Store<T>] {\n const store = dashboardStateFor(key, initial);\n const value = useStore(store);\n const set = useCallback<Dispatch<SetStateAction<T>>>(\n (next) => {\n store.setState((previous) => (typeof next === 'function' ? (next as (value: T) => T)(previous) : next));\n },\n [store],\n );\n return [value, set, store];\n}\n\n/** Test seam. Existing subscribers must be unmounted before resetting. */\nexport function resetDashboardState(): void {\n states.clear();\n}\n"],"mappings":";;;;AAIA,MAAM,yBAAS,IAAI,IAAqB;;AAGxC,SAAgB,kBAAqB,KAAa,SAAkC;CAClF,IAAI,QAAQ,OAAO,IAAI,GAAG;CAC1B,IAAI,UAAU,KAAA,GAAW;EACvB,QAAQ,IAAI,MAAM,OAAO,YAAY,aAAc,QAAoB,IAAI,OAAO;EAClF,OAAO,IAAI,KAAK,KAAK;CACvB;CACA,OAAO;AACT;;AAGA,SAAgB,kBAAqB,KAAa,SAAoE;CACpH,MAAM,QAAQ,kBAAkB,KAAK,OAAO;CAQ5C,OAAO;EAPO,SAAS,KAOX;EANA,aACT,SAAS;GACR,MAAM,UAAU,aAAc,OAAO,SAAS,aAAc,KAAyB,QAAQ,IAAI,IAAK;EACxG,GACA,CAAC,KAAK,CAES;EAAG;CAAK;AAC3B;;AAGA,SAAgB,sBAA4B;CAC1C,OAAO,MAAM;AACf"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
const require_devProxyApi = require("../lib/devProxyApi.cjs");
|
|
2
|
+
//#region src/web/stores/devProxyStore.ts
|
|
3
|
+
const devProxyStore = new (require("@tanstack/store")).Store({
|
|
4
|
+
targets: [],
|
|
5
|
+
canRegister: false,
|
|
6
|
+
busy: false
|
|
7
|
+
});
|
|
8
|
+
function set(patch) {
|
|
9
|
+
devProxyStore.setState((state) => ({
|
|
10
|
+
...state,
|
|
11
|
+
...patch
|
|
12
|
+
}));
|
|
13
|
+
}
|
|
14
|
+
async function refreshDevProxyTargets() {
|
|
15
|
+
const outcome = await require_devProxyApi.fetchDevProxyTargets();
|
|
16
|
+
if ("error" in outcome) {
|
|
17
|
+
set({ error: outcome.error });
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
set({
|
|
21
|
+
targets: outcome.state.targets,
|
|
22
|
+
canRegister: outcome.state.canRegister,
|
|
23
|
+
error: void 0
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
async function createDevProxyTarget(name, port) {
|
|
27
|
+
if (devProxyStore.state.busy) return false;
|
|
28
|
+
set({
|
|
29
|
+
busy: true,
|
|
30
|
+
error: void 0
|
|
31
|
+
});
|
|
32
|
+
const outcome = await require_devProxyApi.addDevProxyTarget(name, port);
|
|
33
|
+
if ("error" in outcome) {
|
|
34
|
+
set({
|
|
35
|
+
busy: false,
|
|
36
|
+
error: outcome.error
|
|
37
|
+
});
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
await refreshDevProxyTargets();
|
|
41
|
+
set({ busy: false });
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
async function deleteDevProxyTarget(name) {
|
|
45
|
+
if (devProxyStore.state.busy) return;
|
|
46
|
+
set({
|
|
47
|
+
busy: true,
|
|
48
|
+
error: void 0
|
|
49
|
+
});
|
|
50
|
+
const outcome = await require_devProxyApi.removeDevProxyTarget(name);
|
|
51
|
+
if ("error" in outcome) {
|
|
52
|
+
set({
|
|
53
|
+
busy: false,
|
|
54
|
+
error: outcome.error
|
|
55
|
+
});
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
await refreshDevProxyTargets();
|
|
59
|
+
set({ busy: false });
|
|
60
|
+
}
|
|
61
|
+
/** Test seam. */
|
|
62
|
+
function resetDevProxyStore() {
|
|
63
|
+
devProxyStore.setState(() => ({
|
|
64
|
+
targets: [],
|
|
65
|
+
canRegister: false,
|
|
66
|
+
busy: false
|
|
67
|
+
}));
|
|
68
|
+
}
|
|
69
|
+
//#endregion
|
|
70
|
+
exports.createDevProxyTarget = createDevProxyTarget;
|
|
71
|
+
exports.deleteDevProxyTarget = deleteDevProxyTarget;
|
|
72
|
+
exports.devProxyStore = devProxyStore;
|
|
73
|
+
exports.refreshDevProxyTargets = refreshDevProxyTargets;
|
|
74
|
+
exports.resetDevProxyStore = resetDevProxyStore;
|
|
75
|
+
|
|
76
|
+
//# sourceMappingURL=devProxyStore.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"devProxyStore.cjs","names":["Store","fetchDevProxyTargets","addDevProxyTarget","removeDevProxyTarget"],"sources":["../../../src/web/stores/devProxyStore.ts"],"sourcesContent":["import { Store } from '@tanstack/store';\n\nimport type { DevProxyTarget } from '../../types/devProxy';\nimport { addDevProxyTarget, fetchDevProxyTargets, removeDevProxyTarget } from '../lib/devProxyApi';\n\n/**\n * Registered dev proxy targets, as the remote dialog shows them.\n *\n * `canRegister` comes from the hub rather than being guessed here: adding a\n * target is refused anywhere but the loopback listener, and a phone that\n * rendered an enabled form would only be offering a button that fails.\n */\n\nexport interface DevProxyState {\n targets: readonly DevProxyTarget[];\n /** False on a remote device, where registering is refused by the hub. */\n canRegister: boolean;\n busy: boolean;\n error?: string;\n}\n\nexport const devProxyStore = new Store<DevProxyState>({ targets: [], canRegister: false, busy: false });\n\nfunction set(patch: Partial<DevProxyState>): void {\n devProxyStore.setState((state) => ({ ...state, ...patch }));\n}\n\nexport async function refreshDevProxyTargets(): Promise<void> {\n const outcome = await fetchDevProxyTargets();\n if ('error' in outcome) {\n set({ error: outcome.error });\n return;\n }\n set({ targets: outcome.state.targets, canRegister: outcome.state.canRegister, error: undefined });\n}\n\nexport async function createDevProxyTarget(name: string, port: number): Promise<boolean> {\n if (devProxyStore.state.busy) return false;\n set({ busy: true, error: undefined });\n const outcome = await addDevProxyTarget(name, port);\n if ('error' in outcome) {\n set({ busy: false, error: outcome.error });\n return false;\n }\n await refreshDevProxyTargets();\n set({ busy: false });\n return true;\n}\n\nexport async function deleteDevProxyTarget(name: string): Promise<void> {\n if (devProxyStore.state.busy) return;\n set({ busy: true, error: undefined });\n const outcome = await removeDevProxyTarget(name);\n if ('error' in outcome) {\n set({ busy: false, error: outcome.error });\n return;\n }\n await refreshDevProxyTargets();\n set({ busy: false });\n}\n\n/** Test seam. */\nexport function resetDevProxyStore(): void {\n devProxyStore.setState(() => ({ targets: [], canRegister: false, busy: false }));\n}\n"],"mappings":";;AAqBA,MAAa,gBAAgB,8BAAIA,EAAAA,CAAAA,MAAqB;CAAE,SAAS,CAAC;CAAG,aAAa;CAAO,MAAM;AAAM,CAAC;AAEtG,SAAS,IAAI,OAAqC;CAChD,cAAc,UAAU,WAAW;EAAE,GAAG;EAAO,GAAG;CAAM,EAAE;AAC5D;AAEA,eAAsB,yBAAwC;CAC5D,MAAM,UAAU,MAAMC,oBAAAA,qBAAqB;CAC3C,IAAI,WAAW,SAAS;EACtB,IAAI,EAAE,OAAO,QAAQ,MAAM,CAAC;EAC5B;CACF;CACA,IAAI;EAAE,SAAS,QAAQ,MAAM;EAAS,aAAa,QAAQ,MAAM;EAAa,OAAO,KAAA;CAAU,CAAC;AAClG;AAEA,eAAsB,qBAAqB,MAAc,MAAgC;CACvF,IAAI,cAAc,MAAM,MAAM,OAAO;CACrC,IAAI;EAAE,MAAM;EAAM,OAAO,KAAA;CAAU,CAAC;CACpC,MAAM,UAAU,MAAMC,oBAAAA,kBAAkB,MAAM,IAAI;CAClD,IAAI,WAAW,SAAS;EACtB,IAAI;GAAE,MAAM;GAAO,OAAO,QAAQ;EAAM,CAAC;EACzC,OAAO;CACT;CACA,MAAM,uBAAuB;CAC7B,IAAI,EAAE,MAAM,MAAM,CAAC;CACnB,OAAO;AACT;AAEA,eAAsB,qBAAqB,MAA6B;CACtE,IAAI,cAAc,MAAM,MAAM;CAC9B,IAAI;EAAE,MAAM;EAAM,OAAO,KAAA;CAAU,CAAC;CACpC,MAAM,UAAU,MAAMC,oBAAAA,qBAAqB,IAAI;CAC/C,IAAI,WAAW,SAAS;EACtB,IAAI;GAAE,MAAM;GAAO,OAAO,QAAQ;EAAM,CAAC;EACzC;CACF;CACA,MAAM,uBAAuB;CAC7B,IAAI,EAAE,MAAM,MAAM,CAAC;AACrB;;AAGA,SAAgB,qBAA2B;CACzC,cAAc,gBAAgB;EAAE,SAAS,CAAC;EAAG,aAAa;EAAO,MAAM;CAAM,EAAE;AACjF"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { DevProxyTarget } from "../../types/devProxy.mjs";
|
|
2
|
+
import { Store } from "@tanstack/store";
|
|
3
|
+
//#region src/web/stores/devProxyStore.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Registered dev proxy targets, as the remote dialog shows them.
|
|
6
|
+
*
|
|
7
|
+
* `canRegister` comes from the hub rather than being guessed here: adding a
|
|
8
|
+
* target is refused anywhere but the loopback listener, and a phone that
|
|
9
|
+
* rendered an enabled form would only be offering a button that fails.
|
|
10
|
+
*/
|
|
11
|
+
export interface DevProxyState {
|
|
12
|
+
targets: readonly DevProxyTarget[];
|
|
13
|
+
/** False on a remote device, where registering is refused by the hub. */
|
|
14
|
+
canRegister: boolean;
|
|
15
|
+
busy: boolean;
|
|
16
|
+
error?: string;
|
|
17
|
+
}
|
|
18
|
+
export declare const devProxyStore: Store<DevProxyState, never>;
|
|
19
|
+
export declare function refreshDevProxyTargets(): Promise<void>;
|
|
20
|
+
export declare function createDevProxyTarget(name: string, port: number): Promise<boolean>;
|
|
21
|
+
export declare function deleteDevProxyTarget(name: string): Promise<void>;
|
|
22
|
+
/** Test seam. */
|
|
23
|
+
export declare function resetDevProxyStore(): void;
|
|
24
|
+
//#endregion
|
|
25
|
+
//# sourceMappingURL=devProxyStore.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"devProxyStore.d.mts","names":[],"sources":["../../../src/web/stores/devProxyStore.ts"],"mappings":";;;;;;;;;;iBAaiB;EACf,kBAAkB;;EAElB;EACA;EACA;;qBAGW,eAAa,MAAA;wBAMJ,0BAA0B;wBAS1B,qBAAqB,cAAc,eAAe;wBAalD,qBAAqB,eAAe;;wBAa1C"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { addDevProxyTarget, fetchDevProxyTargets, removeDevProxyTarget } from "../lib/devProxyApi.mjs";
|
|
2
|
+
import { Store } from "@tanstack/store";
|
|
3
|
+
//#region src/web/stores/devProxyStore.ts
|
|
4
|
+
const devProxyStore = new Store({
|
|
5
|
+
targets: [],
|
|
6
|
+
canRegister: false,
|
|
7
|
+
busy: false
|
|
8
|
+
});
|
|
9
|
+
function set(patch) {
|
|
10
|
+
devProxyStore.setState((state) => ({
|
|
11
|
+
...state,
|
|
12
|
+
...patch
|
|
13
|
+
}));
|
|
14
|
+
}
|
|
15
|
+
async function refreshDevProxyTargets() {
|
|
16
|
+
const outcome = await fetchDevProxyTargets();
|
|
17
|
+
if ("error" in outcome) {
|
|
18
|
+
set({ error: outcome.error });
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
set({
|
|
22
|
+
targets: outcome.state.targets,
|
|
23
|
+
canRegister: outcome.state.canRegister,
|
|
24
|
+
error: void 0
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
async function createDevProxyTarget(name, port) {
|
|
28
|
+
if (devProxyStore.state.busy) return false;
|
|
29
|
+
set({
|
|
30
|
+
busy: true,
|
|
31
|
+
error: void 0
|
|
32
|
+
});
|
|
33
|
+
const outcome = await addDevProxyTarget(name, port);
|
|
34
|
+
if ("error" in outcome) {
|
|
35
|
+
set({
|
|
36
|
+
busy: false,
|
|
37
|
+
error: outcome.error
|
|
38
|
+
});
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
await refreshDevProxyTargets();
|
|
42
|
+
set({ busy: false });
|
|
43
|
+
return true;
|
|
44
|
+
}
|
|
45
|
+
async function deleteDevProxyTarget(name) {
|
|
46
|
+
if (devProxyStore.state.busy) return;
|
|
47
|
+
set({
|
|
48
|
+
busy: true,
|
|
49
|
+
error: void 0
|
|
50
|
+
});
|
|
51
|
+
const outcome = await removeDevProxyTarget(name);
|
|
52
|
+
if ("error" in outcome) {
|
|
53
|
+
set({
|
|
54
|
+
busy: false,
|
|
55
|
+
error: outcome.error
|
|
56
|
+
});
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
await refreshDevProxyTargets();
|
|
60
|
+
set({ busy: false });
|
|
61
|
+
}
|
|
62
|
+
/** Test seam. */
|
|
63
|
+
function resetDevProxyStore() {
|
|
64
|
+
devProxyStore.setState(() => ({
|
|
65
|
+
targets: [],
|
|
66
|
+
canRegister: false,
|
|
67
|
+
busy: false
|
|
68
|
+
}));
|
|
69
|
+
}
|
|
70
|
+
//#endregion
|
|
71
|
+
export { createDevProxyTarget, deleteDevProxyTarget, devProxyStore, refreshDevProxyTargets, resetDevProxyStore };
|
|
72
|
+
|
|
73
|
+
//# sourceMappingURL=devProxyStore.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"devProxyStore.mjs","names":[],"sources":["../../../src/web/stores/devProxyStore.ts"],"sourcesContent":["import { Store } from '@tanstack/store';\n\nimport type { DevProxyTarget } from '../../types/devProxy';\nimport { addDevProxyTarget, fetchDevProxyTargets, removeDevProxyTarget } from '../lib/devProxyApi';\n\n/**\n * Registered dev proxy targets, as the remote dialog shows them.\n *\n * `canRegister` comes from the hub rather than being guessed here: adding a\n * target is refused anywhere but the loopback listener, and a phone that\n * rendered an enabled form would only be offering a button that fails.\n */\n\nexport interface DevProxyState {\n targets: readonly DevProxyTarget[];\n /** False on a remote device, where registering is refused by the hub. */\n canRegister: boolean;\n busy: boolean;\n error?: string;\n}\n\nexport const devProxyStore = new Store<DevProxyState>({ targets: [], canRegister: false, busy: false });\n\nfunction set(patch: Partial<DevProxyState>): void {\n devProxyStore.setState((state) => ({ ...state, ...patch }));\n}\n\nexport async function refreshDevProxyTargets(): Promise<void> {\n const outcome = await fetchDevProxyTargets();\n if ('error' in outcome) {\n set({ error: outcome.error });\n return;\n }\n set({ targets: outcome.state.targets, canRegister: outcome.state.canRegister, error: undefined });\n}\n\nexport async function createDevProxyTarget(name: string, port: number): Promise<boolean> {\n if (devProxyStore.state.busy) return false;\n set({ busy: true, error: undefined });\n const outcome = await addDevProxyTarget(name, port);\n if ('error' in outcome) {\n set({ busy: false, error: outcome.error });\n return false;\n }\n await refreshDevProxyTargets();\n set({ busy: false });\n return true;\n}\n\nexport async function deleteDevProxyTarget(name: string): Promise<void> {\n if (devProxyStore.state.busy) return;\n set({ busy: true, error: undefined });\n const outcome = await removeDevProxyTarget(name);\n if ('error' in outcome) {\n set({ busy: false, error: outcome.error });\n return;\n }\n await refreshDevProxyTargets();\n set({ busy: false });\n}\n\n/** Test seam. */\nexport function resetDevProxyStore(): void {\n devProxyStore.setState(() => ({ targets: [], canRegister: false, busy: false }));\n}\n"],"mappings":";;;AAqBA,MAAa,gBAAgB,IAAI,MAAqB;CAAE,SAAS,CAAC;CAAG,aAAa;CAAO,MAAM;AAAM,CAAC;AAEtG,SAAS,IAAI,OAAqC;CAChD,cAAc,UAAU,WAAW;EAAE,GAAG;EAAO,GAAG;CAAM,EAAE;AAC5D;AAEA,eAAsB,yBAAwC;CAC5D,MAAM,UAAU,MAAM,qBAAqB;CAC3C,IAAI,WAAW,SAAS;EACtB,IAAI,EAAE,OAAO,QAAQ,MAAM,CAAC;EAC5B;CACF;CACA,IAAI;EAAE,SAAS,QAAQ,MAAM;EAAS,aAAa,QAAQ,MAAM;EAAa,OAAO,KAAA;CAAU,CAAC;AAClG;AAEA,eAAsB,qBAAqB,MAAc,MAAgC;CACvF,IAAI,cAAc,MAAM,MAAM,OAAO;CACrC,IAAI;EAAE,MAAM;EAAM,OAAO,KAAA;CAAU,CAAC;CACpC,MAAM,UAAU,MAAM,kBAAkB,MAAM,IAAI;CAClD,IAAI,WAAW,SAAS;EACtB,IAAI;GAAE,MAAM;GAAO,OAAO,QAAQ;EAAM,CAAC;EACzC,OAAO;CACT;CACA,MAAM,uBAAuB;CAC7B,IAAI,EAAE,MAAM,MAAM,CAAC;CACnB,OAAO;AACT;AAEA,eAAsB,qBAAqB,MAA6B;CACtE,IAAI,cAAc,MAAM,MAAM;CAC9B,IAAI;EAAE,MAAM;EAAM,OAAO,KAAA;CAAU,CAAC;CACpC,MAAM,UAAU,MAAM,qBAAqB,IAAI;CAC/C,IAAI,WAAW,SAAS;EACtB,IAAI;GAAE,MAAM;GAAO,OAAO,QAAQ;EAAM,CAAC;EACzC;CACF;CACA,MAAM,uBAAuB;CAC7B,IAAI,EAAE,MAAM,MAAM,CAAC;AACrB;;AAGA,SAAgB,qBAA2B;CACzC,cAAc,gBAAgB;EAAE,SAAS,CAAC;EAAG,aAAa;EAAO,MAAM;CAAM,EAAE;AACjF"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
const require_sessionStore = require("./sessionStore.cjs");
|
|
2
|
+
let _tanstack_store = require("@tanstack/store");
|
|
3
|
+
let _tanstack_react_store = require("@tanstack/react-store");
|
|
4
|
+
//#region src/web/stores/dialogDraftStore.ts
|
|
5
|
+
const dialogDraftStore = new _tanstack_store.Store({});
|
|
6
|
+
function requestKey(dialog) {
|
|
7
|
+
return JSON.stringify([dialog.id, dialog.prefill ?? ""]);
|
|
8
|
+
}
|
|
9
|
+
function updateDialogDraft(sessionId, dialog, update) {
|
|
10
|
+
if (sessionId === null || dialog === null) return;
|
|
11
|
+
const active = require_sessionStore.sessionStoreFor(sessionId).state.dialog;
|
|
12
|
+
if (active === null || requestKey(active) !== requestKey(dialog)) return;
|
|
13
|
+
const request = requestKey(dialog);
|
|
14
|
+
dialogDraftStore.setState((state) => ({
|
|
15
|
+
...state,
|
|
16
|
+
[sessionId]: {
|
|
17
|
+
...state[sessionId]?.request === request ? state[sessionId] : {
|
|
18
|
+
request,
|
|
19
|
+
value: dialog.prefill ?? "",
|
|
20
|
+
cursor: 0
|
|
21
|
+
},
|
|
22
|
+
...update
|
|
23
|
+
}
|
|
24
|
+
}));
|
|
25
|
+
}
|
|
26
|
+
function useDialogDraft(sessionId, dialog) {
|
|
27
|
+
const stored = (0, _tanstack_react_store.useStore)(dialogDraftStore, (state) => sessionId === null ? void 0 : state[sessionId]);
|
|
28
|
+
return dialog !== null && stored?.request === requestKey(dialog) ? stored : {
|
|
29
|
+
value: dialog?.prefill ?? "",
|
|
30
|
+
cursor: 0
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
//#endregion
|
|
34
|
+
exports.dialogDraftStore = dialogDraftStore;
|
|
35
|
+
exports.updateDialogDraft = updateDialogDraft;
|
|
36
|
+
exports.useDialogDraft = useDialogDraft;
|
|
37
|
+
|
|
38
|
+
//# sourceMappingURL=dialogDraftStore.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialogDraftStore.cjs","names":["Store","sessionStoreFor","useStore"],"sources":["../../../src/web/stores/dialogDraftStore.ts"],"sourcesContent":["import { useStore } from '@tanstack/react-store';\nimport { Store } from '@tanstack/store';\n\nimport type { DialogRequest } from '../lib/sessionModel';\nimport { sessionStoreFor } from './sessionStore';\n\nexport interface DialogDraft {\n request: string;\n value: string;\n cursor: number;\n}\nexport const dialogDraftStore = new Store<Record<string, DialogDraft>>({});\n\nfunction requestKey(dialog: DialogRequest): string {\n return JSON.stringify([dialog.id, dialog.prefill ?? '']);\n}\n\nexport function updateDialogDraft(\n sessionId: string | null,\n dialog: DialogRequest | null,\n update: Partial<Pick<DialogDraft, 'value' | 'cursor'>>,\n): void {\n if (sessionId === null || dialog === null) return;\n const active = sessionStoreFor(sessionId).state.dialog;\n if (active === null || requestKey(active) !== requestKey(dialog)) return;\n const request = requestKey(dialog);\n dialogDraftStore.setState((state) => ({\n ...state,\n [sessionId]: {\n ...(state[sessionId]?.request === request\n ? state[sessionId]\n : { request, value: dialog.prefill ?? '', cursor: 0 }),\n ...update,\n },\n }));\n}\n\nexport function useDialogDraft(\n sessionId: string | null,\n dialog: DialogRequest | null,\n): Pick<DialogDraft, 'value' | 'cursor'> {\n const stored = useStore(dialogDraftStore, (state) => (sessionId === null ? undefined : state[sessionId]));\n return dialog !== null && stored?.request === requestKey(dialog)\n ? stored\n : { value: dialog?.prefill ?? '', cursor: 0 };\n}\n"],"mappings":";;;;AAWA,MAAa,mBAAmB,IAAIA,gBAAAA,MAAmC,CAAC,CAAC;AAEzE,SAAS,WAAW,QAA+B;CACjD,OAAO,KAAK,UAAU,CAAC,OAAO,IAAI,OAAO,WAAW,EAAE,CAAC;AACzD;AAEA,SAAgB,kBACd,WACA,QACA,QACM;CACN,IAAI,cAAc,QAAQ,WAAW,MAAM;CAC3C,MAAM,SAASC,qBAAAA,gBAAgB,SAAS,CAAC,CAAC,MAAM;CAChD,IAAI,WAAW,QAAQ,WAAW,MAAM,MAAM,WAAW,MAAM,GAAG;CAClE,MAAM,UAAU,WAAW,MAAM;CACjC,iBAAiB,UAAU,WAAW;EACpC,GAAG;GACF,YAAY;GACX,GAAI,MAAM,UAAU,EAAE,YAAY,UAC9B,MAAM,aACN;IAAE;IAAS,OAAO,OAAO,WAAW;IAAI,QAAQ;GAAE;GACtD,GAAG;EACL;CACF,EAAE;AACJ;AAEA,SAAgB,eACd,WACA,QACuC;CACvC,MAAM,UAAA,GAASC,sBAAAA,SAAAA,CAAS,mBAAmB,UAAW,cAAc,OAAO,KAAA,IAAY,MAAM,UAAW;CACxG,OAAO,WAAW,QAAQ,QAAQ,YAAY,WAAW,MAAM,IAC3D,SACA;EAAE,OAAO,QAAQ,WAAW;EAAI,QAAQ;CAAE;AAChD"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { DialogRequest } from "../lib/sessionModel.mjs";
|
|
2
|
+
import { Store } from "@tanstack/store";
|
|
3
|
+
//#region src/web/stores/dialogDraftStore.d.ts
|
|
4
|
+
export interface DialogDraft {
|
|
5
|
+
request: string;
|
|
6
|
+
value: string;
|
|
7
|
+
cursor: number;
|
|
8
|
+
}
|
|
9
|
+
export declare const dialogDraftStore: Store<Record<string, DialogDraft>, never>;
|
|
10
|
+
export declare function updateDialogDraft(sessionId: string | null, dialog: DialogRequest | null, update: Partial<Pick<DialogDraft, 'value' | 'cursor'>>): void;
|
|
11
|
+
export declare function useDialogDraft(sessionId: string | null, dialog: DialogRequest | null): Pick<DialogDraft, 'value' | 'cursor'>;
|
|
12
|
+
//#endregion
|
|
13
|
+
//# sourceMappingURL=dialogDraftStore.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialogDraftStore.d.mts","names":[],"sources":["../../../src/web/stores/dialogDraftStore.ts"],"mappings":";;;iBAMiB;EACf;EACA;EACA;;qBAEW,kBAAgB,MAAA,eAAA;wBAMb,kBACd,0BACA,QAAQ,sBACR,QAAQ,QAAQ,KAAK;wBAiBP,eACd,0BACA,QAAQ,uBACP,KAAK"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { sessionStoreFor } from "./sessionStore.mjs";
|
|
2
|
+
import { Store } from "@tanstack/store";
|
|
3
|
+
import { useStore } from "@tanstack/react-store";
|
|
4
|
+
//#region src/web/stores/dialogDraftStore.ts
|
|
5
|
+
const dialogDraftStore = new Store({});
|
|
6
|
+
function requestKey(dialog) {
|
|
7
|
+
return JSON.stringify([dialog.id, dialog.prefill ?? ""]);
|
|
8
|
+
}
|
|
9
|
+
function updateDialogDraft(sessionId, dialog, update) {
|
|
10
|
+
if (sessionId === null || dialog === null) return;
|
|
11
|
+
const active = sessionStoreFor(sessionId).state.dialog;
|
|
12
|
+
if (active === null || requestKey(active) !== requestKey(dialog)) return;
|
|
13
|
+
const request = requestKey(dialog);
|
|
14
|
+
dialogDraftStore.setState((state) => ({
|
|
15
|
+
...state,
|
|
16
|
+
[sessionId]: {
|
|
17
|
+
...state[sessionId]?.request === request ? state[sessionId] : {
|
|
18
|
+
request,
|
|
19
|
+
value: dialog.prefill ?? "",
|
|
20
|
+
cursor: 0
|
|
21
|
+
},
|
|
22
|
+
...update
|
|
23
|
+
}
|
|
24
|
+
}));
|
|
25
|
+
}
|
|
26
|
+
function useDialogDraft(sessionId, dialog) {
|
|
27
|
+
const stored = useStore(dialogDraftStore, (state) => sessionId === null ? void 0 : state[sessionId]);
|
|
28
|
+
return dialog !== null && stored?.request === requestKey(dialog) ? stored : {
|
|
29
|
+
value: dialog?.prefill ?? "",
|
|
30
|
+
cursor: 0
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
//#endregion
|
|
34
|
+
export { dialogDraftStore, updateDialogDraft, useDialogDraft };
|
|
35
|
+
|
|
36
|
+
//# sourceMappingURL=dialogDraftStore.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialogDraftStore.mjs","names":[],"sources":["../../../src/web/stores/dialogDraftStore.ts"],"sourcesContent":["import { useStore } from '@tanstack/react-store';\nimport { Store } from '@tanstack/store';\n\nimport type { DialogRequest } from '../lib/sessionModel';\nimport { sessionStoreFor } from './sessionStore';\n\nexport interface DialogDraft {\n request: string;\n value: string;\n cursor: number;\n}\nexport const dialogDraftStore = new Store<Record<string, DialogDraft>>({});\n\nfunction requestKey(dialog: DialogRequest): string {\n return JSON.stringify([dialog.id, dialog.prefill ?? '']);\n}\n\nexport function updateDialogDraft(\n sessionId: string | null,\n dialog: DialogRequest | null,\n update: Partial<Pick<DialogDraft, 'value' | 'cursor'>>,\n): void {\n if (sessionId === null || dialog === null) return;\n const active = sessionStoreFor(sessionId).state.dialog;\n if (active === null || requestKey(active) !== requestKey(dialog)) return;\n const request = requestKey(dialog);\n dialogDraftStore.setState((state) => ({\n ...state,\n [sessionId]: {\n ...(state[sessionId]?.request === request\n ? state[sessionId]\n : { request, value: dialog.prefill ?? '', cursor: 0 }),\n ...update,\n },\n }));\n}\n\nexport function useDialogDraft(\n sessionId: string | null,\n dialog: DialogRequest | null,\n): Pick<DialogDraft, 'value' | 'cursor'> {\n const stored = useStore(dialogDraftStore, (state) => (sessionId === null ? undefined : state[sessionId]));\n return dialog !== null && stored?.request === requestKey(dialog)\n ? stored\n : { value: dialog?.prefill ?? '', cursor: 0 };\n}\n"],"mappings":";;;;AAWA,MAAa,mBAAmB,IAAI,MAAmC,CAAC,CAAC;AAEzE,SAAS,WAAW,QAA+B;CACjD,OAAO,KAAK,UAAU,CAAC,OAAO,IAAI,OAAO,WAAW,EAAE,CAAC;AACzD;AAEA,SAAgB,kBACd,WACA,QACA,QACM;CACN,IAAI,cAAc,QAAQ,WAAW,MAAM;CAC3C,MAAM,SAAS,gBAAgB,SAAS,CAAC,CAAC,MAAM;CAChD,IAAI,WAAW,QAAQ,WAAW,MAAM,MAAM,WAAW,MAAM,GAAG;CAClE,MAAM,UAAU,WAAW,MAAM;CACjC,iBAAiB,UAAU,WAAW;EACpC,GAAG;GACF,YAAY;GACX,GAAI,MAAM,UAAU,EAAE,YAAY,UAC9B,MAAM,aACN;IAAE;IAAS,OAAO,OAAO,WAAW;IAAI,QAAQ;GAAE;GACtD,GAAG;EACL;CACF,EAAE;AACJ;AAEA,SAAgB,eACd,WACA,QACuC;CACvC,MAAM,SAAS,SAAS,mBAAmB,UAAW,cAAc,OAAO,KAAA,IAAY,MAAM,UAAW;CACxG,OAAO,WAAW,QAAQ,QAAQ,YAAY,WAAW,MAAM,IAC3D,SACA;EAAE,OAAO,QAAQ,WAAW;EAAI,QAAQ;CAAE;AAChD"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
const require_composition = require("../lib/composition.cjs");
|
|
2
|
+
const require_sessionStore = require("./sessionStore.cjs");
|
|
3
|
+
//#region src/web/stores/fileLinkModesStore.ts
|
|
4
|
+
/** Supplies live mode facts to file routing, including already-rendered links. */
|
|
5
|
+
function bindSessionFileLinkModes() {
|
|
6
|
+
return require_composition.bindFileLinkModes({
|
|
7
|
+
active(sessionId) {
|
|
8
|
+
const state = require_sessionStore.sessionStoreFor(sessionId).state;
|
|
9
|
+
return require_composition.minorModes(state.statuses, state.widgets, state.minorModes).filter((mode) => mode.availability === "on").map((mode) => mode.name);
|
|
10
|
+
},
|
|
11
|
+
subscribe(sessionId, listener) {
|
|
12
|
+
const subscription = require_sessionStore.sessionStoreFor(sessionId).subscribe(listener);
|
|
13
|
+
return () => subscription.unsubscribe();
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
//#endregion
|
|
18
|
+
exports.bindSessionFileLinkModes = bindSessionFileLinkModes;
|
|
19
|
+
|
|
20
|
+
//# sourceMappingURL=fileLinkModesStore.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fileLinkModesStore.cjs","names":["bindFileLinkModes","sessionStoreFor","minorModes"],"sources":["../../../src/web/stores/fileLinkModesStore.ts"],"sourcesContent":["import { bindFileLinkModes, minorModes } from '../lib/composition';\nimport { sessionStoreFor } from './sessionStore';\n\n/** Supplies live mode facts to file routing, including already-rendered links. */\nexport function bindSessionFileLinkModes(): () => void {\n return bindFileLinkModes({\n active(sessionId) {\n const state = sessionStoreFor(sessionId).state;\n return minorModes(state.statuses, state.widgets, state.minorModes)\n .filter((mode) => mode.availability === 'on')\n .map((mode) => mode.name);\n },\n subscribe(sessionId, listener) {\n const subscription = sessionStoreFor(sessionId).subscribe(listener);\n return () => subscription.unsubscribe();\n },\n });\n}\n"],"mappings":";;;;AAIA,SAAgB,2BAAuC;CACrD,OAAOA,oBAAAA,kBAAkB;EACvB,OAAO,WAAW;GAChB,MAAM,QAAQC,qBAAAA,gBAAgB,SAAS,CAAC,CAAC;GACzC,OAAOC,oBAAAA,WAAW,MAAM,UAAU,MAAM,SAAS,MAAM,UAAU,CAAC,CAC/D,QAAQ,SAAS,KAAK,iBAAiB,IAAI,CAAC,CAC5C,KAAK,SAAS,KAAK,IAAI;EAC5B;EACA,UAAU,WAAW,UAAU;GAC7B,MAAM,eAAeD,qBAAAA,gBAAgB,SAAS,CAAC,CAAC,UAAU,QAAQ;GAClE,aAAa,aAAa,YAAY;EACxC;CACF,CAAC;AACH"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fileLinkModesStore.d.mts","names":[],"sources":["../../../src/web/stores/fileLinkModesStore.ts"],"mappings":";;wBAIgB"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { bindFileLinkModes, minorModes } from "../lib/composition.mjs";
|
|
2
|
+
import { sessionStoreFor } from "./sessionStore.mjs";
|
|
3
|
+
//#region src/web/stores/fileLinkModesStore.ts
|
|
4
|
+
/** Supplies live mode facts to file routing, including already-rendered links. */
|
|
5
|
+
function bindSessionFileLinkModes() {
|
|
6
|
+
return bindFileLinkModes({
|
|
7
|
+
active(sessionId) {
|
|
8
|
+
const state = sessionStoreFor(sessionId).state;
|
|
9
|
+
return minorModes(state.statuses, state.widgets, state.minorModes).filter((mode) => mode.availability === "on").map((mode) => mode.name);
|
|
10
|
+
},
|
|
11
|
+
subscribe(sessionId, listener) {
|
|
12
|
+
const subscription = sessionStoreFor(sessionId).subscribe(listener);
|
|
13
|
+
return () => subscription.unsubscribe();
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
//#endregion
|
|
18
|
+
export { bindSessionFileLinkModes };
|
|
19
|
+
|
|
20
|
+
//# sourceMappingURL=fileLinkModesStore.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fileLinkModesStore.mjs","names":[],"sources":["../../../src/web/stores/fileLinkModesStore.ts"],"sourcesContent":["import { bindFileLinkModes, minorModes } from '../lib/composition';\nimport { sessionStoreFor } from './sessionStore';\n\n/** Supplies live mode facts to file routing, including already-rendered links. */\nexport function bindSessionFileLinkModes(): () => void {\n return bindFileLinkModes({\n active(sessionId) {\n const state = sessionStoreFor(sessionId).state;\n return minorModes(state.statuses, state.widgets, state.minorModes)\n .filter((mode) => mode.availability === 'on')\n .map((mode) => mode.name);\n },\n subscribe(sessionId, listener) {\n const subscription = sessionStoreFor(sessionId).subscribe(listener);\n return () => subscription.unsubscribe();\n },\n });\n}\n"],"mappings":";;;;AAIA,SAAgB,2BAAuC;CACrD,OAAO,kBAAkB;EACvB,OAAO,WAAW;GAChB,MAAM,QAAQ,gBAAgB,SAAS,CAAC,CAAC;GACzC,OAAO,WAAW,MAAM,UAAU,MAAM,SAAS,MAAM,UAAU,CAAC,CAC/D,QAAQ,SAAS,KAAK,iBAAiB,IAAI,CAAC,CAC5C,KAAK,SAAS,KAAK,IAAI;EAC5B;EACA,UAAU,WAAW,UAAU;GAC7B,MAAM,eAAe,gBAAgB,SAAS,CAAC,CAAC,UAAU,QAAQ;GAClE,aAAa,aAAa,YAAY;EACxC;CACF,CAAC;AACH"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
let _tanstack_store = require("@tanstack/store");
|
|
2
|
+
//#region src/web/stores/menuStore.ts
|
|
3
|
+
const MENU_FRESH_MS = 1e4;
|
|
4
|
+
const menuStore = new _tanstack_store.Store({
|
|
5
|
+
pending: null,
|
|
6
|
+
at: 0,
|
|
7
|
+
claimed: null
|
|
8
|
+
});
|
|
9
|
+
let expiry;
|
|
10
|
+
/**
|
|
11
|
+
* Remembers which selection-bar button asked the agent a question.
|
|
12
|
+
*
|
|
13
|
+
* The agent answers with an ordinary select dialog; this is the only signal
|
|
14
|
+
* that lets the bar render it as its popover menu rather than a centered
|
|
15
|
+
* modal. The button shows a pending state until the dialog arrives, the run
|
|
16
|
+
* settles, or the anchor goes stale.
|
|
17
|
+
*/
|
|
18
|
+
function setPendingMenu(kind) {
|
|
19
|
+
menuStore.setState((state) => ({
|
|
20
|
+
...state,
|
|
21
|
+
pending: kind,
|
|
22
|
+
at: Date.now()
|
|
23
|
+
}));
|
|
24
|
+
if (expiry !== void 0) clearTimeout(expiry);
|
|
25
|
+
expiry = setTimeout(clearPendingMenu, MENU_FRESH_MS);
|
|
26
|
+
}
|
|
27
|
+
function clearPendingMenu() {
|
|
28
|
+
if (expiry !== void 0) clearTimeout(expiry);
|
|
29
|
+
expiry = void 0;
|
|
30
|
+
menuStore.setState((state) => state.pending === null ? state : {
|
|
31
|
+
...state,
|
|
32
|
+
pending: null,
|
|
33
|
+
at: 0
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
/** The menu behind an arriving dialog, or null when none was asked for recently. */
|
|
37
|
+
function pendingMenuFor(now) {
|
|
38
|
+
const { pending, at } = menuStore.state;
|
|
39
|
+
if (pending === null || now - at > MENU_FRESH_MS) return null;
|
|
40
|
+
return pending;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Spends the pending anchor on an arriving select dialog. Called once per
|
|
44
|
+
* dialog, at frame time, so every surface reads the same verdict on its
|
|
45
|
+
* first render and the modal never flashes before the popover takes over.
|
|
46
|
+
*/
|
|
47
|
+
function claimDialogMenu(dialogId, now = Date.now()) {
|
|
48
|
+
const menu = pendingMenuFor(now);
|
|
49
|
+
const claimed = menu === null ? null : {
|
|
50
|
+
dialogId,
|
|
51
|
+
menu
|
|
52
|
+
};
|
|
53
|
+
clearPendingMenu();
|
|
54
|
+
menuStore.setState((state) => ({
|
|
55
|
+
...state,
|
|
56
|
+
claimed
|
|
57
|
+
}));
|
|
58
|
+
return claimed;
|
|
59
|
+
}
|
|
60
|
+
/** Forgets a claim once its dialog is gone. */
|
|
61
|
+
function releaseDialogMenu(dialogId) {
|
|
62
|
+
menuStore.setState((state) => state.claimed !== null && state.claimed.dialogId === dialogId ? {
|
|
63
|
+
...state,
|
|
64
|
+
claimed: null
|
|
65
|
+
} : state);
|
|
66
|
+
}
|
|
67
|
+
/** Test seam. */
|
|
68
|
+
function resetMenuStore() {
|
|
69
|
+
clearPendingMenu();
|
|
70
|
+
menuStore.setState(() => ({
|
|
71
|
+
pending: null,
|
|
72
|
+
at: 0,
|
|
73
|
+
claimed: null
|
|
74
|
+
}));
|
|
75
|
+
}
|
|
76
|
+
//#endregion
|
|
77
|
+
exports.claimDialogMenu = claimDialogMenu;
|
|
78
|
+
exports.clearPendingMenu = clearPendingMenu;
|
|
79
|
+
exports.menuStore = menuStore;
|
|
80
|
+
exports.pendingMenuFor = pendingMenuFor;
|
|
81
|
+
exports.releaseDialogMenu = releaseDialogMenu;
|
|
82
|
+
exports.resetMenuStore = resetMenuStore;
|
|
83
|
+
exports.setPendingMenu = setPendingMenu;
|
|
84
|
+
|
|
85
|
+
//# sourceMappingURL=menuStore.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menuStore.cjs","names":["Store"],"sources":["../../../src/web/stores/menuStore.ts"],"sourcesContent":["import { Store } from '@tanstack/store';\n\n/** A selection-bar axis name: the built-in 'mode'/'domains', or a plugin-declared axis such as 'profile'. */\nexport type MenuKind = string;\n\nexport interface MenuClaim {\n /** The agent dialog rendered as the bar's popover instead of the modal. */\n dialogId: string;\n menu: MenuKind;\n}\n\nexport interface MenuState {\n /** Selection-bar button whose command is in flight, if any. */\n pending: MenuKind | null;\n /** When it was clicked; a stale anchor must not restyle an unrelated dialog. */\n at: number;\n /** The dialog the last click claimed, so the bar and the overlay agree who renders it. */\n claimed: MenuClaim | null;\n}\n\nconst MENU_FRESH_MS = 10_000;\n\nexport const menuStore = new Store<MenuState>({ pending: null, at: 0, claimed: null });\n\nlet expiry: ReturnType<typeof setTimeout> | undefined;\n\n/**\n * Remembers which selection-bar button asked the agent a question.\n *\n * The agent answers with an ordinary select dialog; this is the only signal\n * that lets the bar render it as its popover menu rather than a centered\n * modal. The button shows a pending state until the dialog arrives, the run\n * settles, or the anchor goes stale.\n */\nexport function setPendingMenu(kind: MenuKind): void {\n menuStore.setState((state) => ({ ...state, pending: kind, at: Date.now() }));\n if (expiry !== undefined) clearTimeout(expiry);\n expiry = setTimeout(clearPendingMenu, MENU_FRESH_MS);\n}\n\nexport function clearPendingMenu(): void {\n if (expiry !== undefined) clearTimeout(expiry);\n expiry = undefined;\n menuStore.setState((state) => (state.pending === null ? state : { ...state, pending: null, at: 0 }));\n}\n\n/** The menu behind an arriving dialog, or null when none was asked for recently. */\nexport function pendingMenuFor(now: number): MenuKind | null {\n const { pending, at } = menuStore.state;\n if (pending === null || now - at > MENU_FRESH_MS) return null;\n return pending;\n}\n\n/**\n * Spends the pending anchor on an arriving select dialog. Called once per\n * dialog, at frame time, so every surface reads the same verdict on its\n * first render and the modal never flashes before the popover takes over.\n */\nexport function claimDialogMenu(dialogId: string, now = Date.now()): MenuClaim | null {\n const menu = pendingMenuFor(now);\n const claimed = menu === null ? null : { dialogId, menu };\n clearPendingMenu();\n menuStore.setState((state) => ({ ...state, claimed }));\n return claimed;\n}\n\n/** Forgets a claim once its dialog is gone. */\nexport function releaseDialogMenu(dialogId: string): void {\n menuStore.setState((state) =>\n state.claimed !== null && state.claimed.dialogId === dialogId ? { ...state, claimed: null } : state,\n );\n}\n\n/** Test seam. */\nexport function resetMenuStore(): void {\n clearPendingMenu();\n menuStore.setState(() => ({ pending: null, at: 0, claimed: null }));\n}\n"],"mappings":";;AAoBA,MAAM,gBAAgB;AAEtB,MAAa,YAAY,IAAIA,gBAAAA,MAAiB;CAAE,SAAS;CAAM,IAAI;CAAG,SAAS;AAAK,CAAC;AAErF,IAAI;;;;;;;;;AAUJ,SAAgB,eAAe,MAAsB;CACnD,UAAU,UAAU,WAAW;EAAE,GAAG;EAAO,SAAS;EAAM,IAAI,KAAK,IAAI;CAAE,EAAE;CAC3E,IAAI,WAAW,KAAA,GAAW,aAAa,MAAM;CAC7C,SAAS,WAAW,kBAAkB,aAAa;AACrD;AAEA,SAAgB,mBAAyB;CACvC,IAAI,WAAW,KAAA,GAAW,aAAa,MAAM;CAC7C,SAAS,KAAA;CACT,UAAU,UAAU,UAAW,MAAM,YAAY,OAAO,QAAQ;EAAE,GAAG;EAAO,SAAS;EAAM,IAAI;CAAE,CAAE;AACrG;;AAGA,SAAgB,eAAe,KAA8B;CAC3D,MAAM,EAAE,SAAS,OAAO,UAAU;CAClC,IAAI,YAAY,QAAQ,MAAM,KAAK,eAAe,OAAO;CACzD,OAAO;AACT;;;;;;AAOA,SAAgB,gBAAgB,UAAkB,MAAM,KAAK,IAAI,GAAqB;CACpF,MAAM,OAAO,eAAe,GAAG;CAC/B,MAAM,UAAU,SAAS,OAAO,OAAO;EAAE;EAAU;CAAK;CACxD,iBAAiB;CACjB,UAAU,UAAU,WAAW;EAAE,GAAG;EAAO;CAAQ,EAAE;CACrD,OAAO;AACT;;AAGA,SAAgB,kBAAkB,UAAwB;CACxD,UAAU,UAAU,UAClB,MAAM,YAAY,QAAQ,MAAM,QAAQ,aAAa,WAAW;EAAE,GAAG;EAAO,SAAS;CAAK,IAAI,KAChG;AACF;;AAGA,SAAgB,iBAAuB;CACrC,iBAAiB;CACjB,UAAU,gBAAgB;EAAE,SAAS;EAAM,IAAI;EAAG,SAAS;CAAK,EAAE;AACpE"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { Store } from "@tanstack/store";
|
|
2
|
+
//#region src/web/stores/menuStore.d.ts
|
|
3
|
+
/** A selection-bar axis name: the built-in 'mode'/'domains', or a plugin-declared axis such as 'profile'. */
|
|
4
|
+
export type MenuKind = string;
|
|
5
|
+
export interface MenuClaim {
|
|
6
|
+
/** The agent dialog rendered as the bar's popover instead of the modal. */
|
|
7
|
+
dialogId: string;
|
|
8
|
+
menu: MenuKind;
|
|
9
|
+
}
|
|
10
|
+
export interface MenuState {
|
|
11
|
+
/** Selection-bar button whose command is in flight, if any. */
|
|
12
|
+
pending: MenuKind | null;
|
|
13
|
+
/** When it was clicked; a stale anchor must not restyle an unrelated dialog. */
|
|
14
|
+
at: number;
|
|
15
|
+
/** The dialog the last click claimed, so the bar and the overlay agree who renders it. */
|
|
16
|
+
claimed: MenuClaim | null;
|
|
17
|
+
}
|
|
18
|
+
export declare const menuStore: Store<MenuState, never>;
|
|
19
|
+
/**
|
|
20
|
+
* Remembers which selection-bar button asked the agent a question.
|
|
21
|
+
*
|
|
22
|
+
* The agent answers with an ordinary select dialog; this is the only signal
|
|
23
|
+
* that lets the bar render it as its popover menu rather than a centered
|
|
24
|
+
* modal. The button shows a pending state until the dialog arrives, the run
|
|
25
|
+
* settles, or the anchor goes stale.
|
|
26
|
+
*/
|
|
27
|
+
export declare function setPendingMenu(kind: MenuKind): void;
|
|
28
|
+
export declare function clearPendingMenu(): void;
|
|
29
|
+
/** The menu behind an arriving dialog, or null when none was asked for recently. */
|
|
30
|
+
export declare function pendingMenuFor(now: number): MenuKind | null;
|
|
31
|
+
/**
|
|
32
|
+
* Spends the pending anchor on an arriving select dialog. Called once per
|
|
33
|
+
* dialog, at frame time, so every surface reads the same verdict on its
|
|
34
|
+
* first render and the modal never flashes before the popover takes over.
|
|
35
|
+
*/
|
|
36
|
+
export declare function claimDialogMenu(dialogId: string, now?: number): MenuClaim | null;
|
|
37
|
+
/** Forgets a claim once its dialog is gone. */
|
|
38
|
+
export declare function releaseDialogMenu(dialogId: string): void;
|
|
39
|
+
/** Test seam. */
|
|
40
|
+
export declare function resetMenuStore(): void;
|
|
41
|
+
//#endregion
|
|
42
|
+
//# sourceMappingURL=menuStore.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menuStore.d.mts","names":[],"sources":["../../../src/web/stores/menuStore.ts"],"mappings":";;;YAGY;iBAEK;;EAEf;EACA,MAAM;;iBAGS;;EAEf,SAAS;;EAET;;EAEA,SAAS;;qBAKE,WAAS,MAAA;;;;;;;;;wBAYN,eAAe,MAAM;wBAMrB;;wBAOA,eAAe,cAAc;;;;;;wBAW7B,gBAAgB,kBAAkB,eAAmB;;wBASrD,kBAAkB;;wBAOlB"}
|