@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,83 @@
|
|
|
1
|
+
import { closeRemoteDialog, newPairingCode, remoteAccessStore, showRemoteOptions, turnRemoteAccessOff, turnRemoteAccessOn } from "../../stores/remoteAccessStore.mjs";
|
|
2
|
+
import { HandoverProgress } from "./HandoverProgress.mjs";
|
|
3
|
+
import { RemoteAccessOptions } from "./RemoteAccessOptions.mjs";
|
|
4
|
+
import { RemoteAccessPairing } from "./RemoteAccessPairing.mjs";
|
|
5
|
+
import { useStore } from "@tanstack/react-store";
|
|
6
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
+
import { Button, Dialog, DialogBody, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, Spinner } from "@agimon-ai/po-web-components";
|
|
8
|
+
//#region src/web/features/remote/RemoteAccessDialog.tsx
|
|
9
|
+
/**
|
|
10
|
+
* Two panels rather than one.
|
|
11
|
+
*
|
|
12
|
+
* Turning this on puts a shell on this machine within reach of the internet, so
|
|
13
|
+
* the settings that bound it come first and the code to scan comes second, once
|
|
14
|
+
* those are answered.
|
|
15
|
+
*/
|
|
16
|
+
function RemoteAccessDialog() {
|
|
17
|
+
const state = useStore(remoteAccessStore);
|
|
18
|
+
const view = state.view;
|
|
19
|
+
const pairing = state.step === "pairing";
|
|
20
|
+
const moving = state.step === "handover";
|
|
21
|
+
const starting = state.busy || view?.status === "starting";
|
|
22
|
+
if (view?.pending?.length) return null;
|
|
23
|
+
return /* @__PURE__ */ jsx(Dialog, {
|
|
24
|
+
open: state.step !== "closed",
|
|
25
|
+
onOpenChange: (next) => next ? void 0 : closeRemoteDialog(),
|
|
26
|
+
children: /* @__PURE__ */ jsxs(DialogContent, {
|
|
27
|
+
width: "lg",
|
|
28
|
+
"data-testid": "remote-access-dialog",
|
|
29
|
+
"aria-describedby": void 0,
|
|
30
|
+
children: [
|
|
31
|
+
/* @__PURE__ */ jsxs(DialogHeader, { children: [/* @__PURE__ */ jsx(DialogTitle, { children: pairing ? "Pair a device" : "Remote access" }), /* @__PURE__ */ jsx(DialogDescription, { children: pairing ? "Scan this with the device you want to use. You will be asked to approve it here." : "Reach this cockpit from your phone over a public tunnel." })] }),
|
|
32
|
+
/* @__PURE__ */ jsxs(DialogBody, {
|
|
33
|
+
className: "flex flex-col gap-5",
|
|
34
|
+
children: [
|
|
35
|
+
/* @__PURE__ */ jsx("p", {
|
|
36
|
+
className: "text-sm leading-relaxed text-doom-dim",
|
|
37
|
+
children: "A paired device can prompt the agent, approve its tool calls, and run shell commands as you. Pair only devices you hold, and only when you mean to."
|
|
38
|
+
}),
|
|
39
|
+
moving ? /* @__PURE__ */ jsx(HandoverProgress, {}) : null,
|
|
40
|
+
pairing ? /* @__PURE__ */ jsx(RemoteAccessPairing, {}) : null,
|
|
41
|
+
pairing || moving ? null : /* @__PURE__ */ jsx(RemoteAccessOptions, {}),
|
|
42
|
+
state.error === void 0 ? null : /* @__PURE__ */ jsx("p", {
|
|
43
|
+
"data-testid": "remote-access-error",
|
|
44
|
+
className: "text-sm text-doom-red",
|
|
45
|
+
children: state.error
|
|
46
|
+
})
|
|
47
|
+
]
|
|
48
|
+
}),
|
|
49
|
+
/* @__PURE__ */ jsx(DialogFooter, {
|
|
50
|
+
className: moving ? "hidden" : void 0,
|
|
51
|
+
children: view?.status === "on" ? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Button, {
|
|
52
|
+
variant: "danger-outline",
|
|
53
|
+
"data-testid": "remote-access-off",
|
|
54
|
+
disabled: state.busy,
|
|
55
|
+
onClick: () => void turnRemoteAccessOff(),
|
|
56
|
+
children: "turn off"
|
|
57
|
+
}), pairing ? /* @__PURE__ */ jsx(Button, {
|
|
58
|
+
variant: "ghost",
|
|
59
|
+
"data-testid": "remote-access-back",
|
|
60
|
+
onClick: showRemoteOptions,
|
|
61
|
+
children: "options"
|
|
62
|
+
}) : /* @__PURE__ */ jsx(Button, {
|
|
63
|
+
variant: "primary",
|
|
64
|
+
"data-testid": "remote-access-pair",
|
|
65
|
+
disabled: state.busy,
|
|
66
|
+
onClick: () => void newPairingCode(),
|
|
67
|
+
children: "pair a device"
|
|
68
|
+
})] }) : /* @__PURE__ */ jsxs(Button, {
|
|
69
|
+
variant: "primary",
|
|
70
|
+
"data-testid": "remote-access-on",
|
|
71
|
+
disabled: starting,
|
|
72
|
+
onClick: () => void turnRemoteAccessOn(),
|
|
73
|
+
children: [starting ? /* @__PURE__ */ jsx(Spinner, {}) : null, "turn on and show the code"]
|
|
74
|
+
})
|
|
75
|
+
})
|
|
76
|
+
]
|
|
77
|
+
})
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
//#endregion
|
|
81
|
+
export { RemoteAccessDialog };
|
|
82
|
+
|
|
83
|
+
//# sourceMappingURL=RemoteAccessDialog.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RemoteAccessDialog.mjs","names":[],"sources":["../../../../src/web/features/remote/RemoteAccessDialog.tsx"],"sourcesContent":["import {\n Button,\n Dialog,\n DialogBody,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n Spinner,\n} from '@agimon-ai/po-web-components';\nimport { useStore } from '@tanstack/react-store';\n\nimport {\n closeRemoteDialog,\n newPairingCode,\n remoteAccessStore,\n showRemoteOptions,\n turnRemoteAccessOff,\n turnRemoteAccessOn,\n} from '../../stores/remoteAccessStore';\nimport { HandoverProgress } from './HandoverProgress';\nimport { RemoteAccessOptions } from './RemoteAccessOptions';\nimport { RemoteAccessPairing } from './RemoteAccessPairing';\n\n/**\n * Two panels rather than one.\n *\n * Turning this on puts a shell on this machine within reach of the internet, so\n * the settings that bound it come first and the code to scan comes second, once\n * those are answered.\n */\nexport function RemoteAccessDialog() {\n const state = useStore(remoteAccessStore);\n const view = state.view;\n const pairing = state.step === 'pairing';\n const moving = state.step === 'handover';\n const starting = state.busy || view?.status === 'starting';\n\n // The approval prompt is the only action that matters while a device waits.\n // Two modal roots compete for focus and backdrop ordering when both stay open.\n if (view?.pending?.length) return null;\n\n return (\n <Dialog open={state.step !== 'closed'} onOpenChange={(next) => (next ? undefined : closeRemoteDialog())}>\n <DialogContent width=\"lg\" data-testid=\"remote-access-dialog\" aria-describedby={undefined}>\n <DialogHeader>\n <DialogTitle>{pairing ? 'Pair a device' : 'Remote access'}</DialogTitle>\n <DialogDescription>\n {pairing\n ? 'Scan this with the device you want to use. You will be asked to approve it here.'\n : 'Reach this cockpit from your phone over a public tunnel.'}\n </DialogDescription>\n </DialogHeader>\n\n <DialogBody className=\"flex flex-col gap-5\">\n {/* Said before the switch, not after: a paired device can do\n everything the person at this keyboard can do. */}\n <p className=\"text-sm leading-relaxed text-doom-dim\">\n A paired device can prompt the agent, approve its tool calls, and run shell commands as you. Pair only\n devices you hold, and only when you mean to.\n </p>\n\n {moving ? <HandoverProgress /> : null}\n {pairing ? <RemoteAccessPairing /> : null}\n {pairing || moving ? null : <RemoteAccessOptions />}\n\n {state.error === undefined ? null : (\n <p data-testid=\"remote-access-error\" className=\"text-sm text-doom-red\">\n {state.error}\n </p>\n )}\n </DialogBody>\n\n {/* Nothing to offer during a handover: every control here would call a\n server that is in the middle of being replaced. */}\n <DialogFooter className={moving ? 'hidden' : undefined}>\n {view?.status === 'on' ? (\n <>\n <Button\n variant=\"danger-outline\"\n data-testid=\"remote-access-off\"\n disabled={state.busy}\n onClick={() => void turnRemoteAccessOff()}\n >\n turn off\n </Button>\n {pairing ? (\n <Button variant=\"ghost\" data-testid=\"remote-access-back\" onClick={showRemoteOptions}>\n options\n </Button>\n ) : (\n <Button\n variant=\"primary\"\n data-testid=\"remote-access-pair\"\n disabled={state.busy}\n onClick={() => void newPairingCode()}\n >\n pair a device\n </Button>\n )}\n </>\n ) : (\n <Button\n variant=\"primary\"\n data-testid=\"remote-access-on\"\n disabled={starting}\n onClick={() => void turnRemoteAccessOn()}\n >\n {starting ? <Spinner /> : null}\n turn on and show the code\n </Button>\n )}\n </DialogFooter>\n </DialogContent>\n </Dialog>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;AAgCA,SAAgB,qBAAqB;CACnC,MAAM,QAAQ,SAAS,iBAAiB;CACxC,MAAM,OAAO,MAAM;CACnB,MAAM,UAAU,MAAM,SAAS;CAC/B,MAAM,SAAS,MAAM,SAAS;CAC9B,MAAM,WAAW,MAAM,QAAQ,MAAM,WAAW;CAIhD,IAAI,MAAM,SAAS,QAAQ,OAAO;CAElC,OACE,oBAAC,QAAD;EAAQ,MAAM,MAAM,SAAS;EAAU,eAAe,SAAU,OAAO,KAAA,IAAY,kBAAkB;EACnG,UAAA,qBAAC,eAAD;GAAe,OAAM;GAAK,eAAY;GAAuB,oBAAkB,KAAA;GAA/E,UAAA;IACE,qBAAC,cAAD,EAAA,UAAA,CACE,oBAAC,aAAD,EAAA,UAAc,UAAU,kBAAkB,gBAA6B,CAAA,GACvE,oBAAC,mBAAD,EAAA,UACG,UACG,qFACA,2DACa,CAAA,CACP,EAAA,CAAA;IAEd,qBAAC,YAAD;KAAY,WAAU;KAAtB,UAAA;MAGE,oBAAC,KAAD;OAAG,WAAU;OAAwC,UAAA;MAGlD,CAAA;MAEF,SAAS,oBAAC,kBAAD,CAAmB,CAAA,IAAI;MAChC,UAAU,oBAAC,qBAAD,CAAsB,CAAA,IAAI;MACpC,WAAW,SAAS,OAAO,oBAAC,qBAAD,CAAsB,CAAA;MAEjD,MAAM,UAAU,KAAA,IAAY,OAC3B,oBAAC,KAAD;OAAG,eAAY;OAAsB,WAAU;OAC5C,UAAA,MAAM;MACN,CAAA;KAEK;;IAIZ,oBAAC,cAAD;KAAc,WAAW,SAAS,WAAW,KAAA;KAC1C,UAAA,MAAM,WAAW,OAChB,qBAAA,UAAA,EAAA,UAAA,CACE,oBAAC,QAAD;MACE,SAAQ;MACR,eAAY;MACZ,UAAU,MAAM;MAChB,eAAe,KAAK,oBAAoB;MACzC,UAAA;KAEO,CAAA,GACP,UACC,oBAAC,QAAD;MAAQ,SAAQ;MAAQ,eAAY;MAAqB,SAAS;MAAmB,UAAA;KAE7E,CAAA,IAER,oBAAC,QAAD;MACE,SAAQ;MACR,eAAY;MACZ,UAAU,MAAM;MAChB,eAAe,KAAK,eAAe;MACpC,UAAA;KAEO,CAAA,CAEV,EAAA,CAAA,IAEF,qBAAC,QAAD;MACE,SAAQ;MACR,eAAY;MACZ,UAAU;MACV,eAAe,KAAK,mBAAmB;MAJzC,UAAA,CAMG,WAAW,oBAAC,SAAD,CAAU,CAAA,IAAI,MAAK,2BAEzB;;IAEE,CAAA;GACD;;CACT,CAAA;AAEZ"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
const require_remoteAccessStore = require("../../stores/remoteAccessStore.cjs");
|
|
2
|
+
const require_DevProxyTargets = require("./DevProxyTargets.cjs");
|
|
3
|
+
const require_PairedDeviceList = require("./PairedDeviceList.cjs");
|
|
4
|
+
const require_SandboxWorkspaces = require("./SandboxWorkspaces.cjs");
|
|
5
|
+
const require_TrustedDeviceList = require("./TrustedDeviceList.cjs");
|
|
6
|
+
let _tanstack_react_store = require("@tanstack/react-store");
|
|
7
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
8
|
+
let _agimon_ai_po_web_components = require("@agimon-ai/po-web-components");
|
|
9
|
+
//#region src/web/features/remote/RemoteAccessOptions.tsx
|
|
10
|
+
const MAX_MINUTES = 1440;
|
|
11
|
+
const MAX_HOURS = 720;
|
|
12
|
+
/**
|
|
13
|
+
* The bounds on remote access, asked before it is switched on.
|
|
14
|
+
*
|
|
15
|
+
* These sit in front of the decision rather than behind a gear elsewhere,
|
|
16
|
+
* because they are the difference between a tunnel that closes itself and one
|
|
17
|
+
* that is still open next week.
|
|
18
|
+
*/
|
|
19
|
+
function RemoteAccessOptions() {
|
|
20
|
+
const settings = (0, _tanstack_react_store.useStore)(require_remoteAccessStore.remoteAccessStore).view?.settings;
|
|
21
|
+
if (settings === void 0) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_agimon_ai_po_web_components.Spinner, {});
|
|
22
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
23
|
+
className: "flex flex-col gap-4",
|
|
24
|
+
children: [
|
|
25
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
26
|
+
htmlFor: "remote-autoclose-switch",
|
|
27
|
+
className: "flex items-start justify-between gap-4",
|
|
28
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
29
|
+
className: "flex flex-col gap-0.5",
|
|
30
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
31
|
+
className: "text-base font-medium text-doom-text",
|
|
32
|
+
children: "close the tunnel automatically"
|
|
33
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
34
|
+
className: "text-sm text-doom-dim",
|
|
35
|
+
children: "So a tunnel you forgot about does not stay open for weeks."
|
|
36
|
+
})]
|
|
37
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_agimon_ai_po_web_components.Switch, {
|
|
38
|
+
id: "remote-autoclose-switch",
|
|
39
|
+
"data-testid": "remote-autoclose-switch",
|
|
40
|
+
checked: settings.autoCloseEnabled,
|
|
41
|
+
onCheckedChange: (checked) => void require_remoteAccessStore.updateRemoteSettings({ autoCloseEnabled: checked })
|
|
42
|
+
})]
|
|
43
|
+
}),
|
|
44
|
+
settings.autoCloseEnabled ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
45
|
+
htmlFor: "remote-autoclose-minutes",
|
|
46
|
+
className: "flex items-center justify-between gap-4 pl-4",
|
|
47
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
48
|
+
className: "text-base font-medium text-doom-text",
|
|
49
|
+
children: "after this many minutes"
|
|
50
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_agimon_ai_po_web_components.Input, {
|
|
51
|
+
id: "remote-autoclose-minutes",
|
|
52
|
+
"data-testid": "remote-autoclose-minutes",
|
|
53
|
+
type: "number",
|
|
54
|
+
min: 1,
|
|
55
|
+
max: MAX_MINUTES,
|
|
56
|
+
className: "w-24",
|
|
57
|
+
value: settings.autoCloseMinutes,
|
|
58
|
+
onChange: (event) => void require_remoteAccessStore.updateRemoteSettings({ autoCloseMinutes: Number(event.target.value) })
|
|
59
|
+
})]
|
|
60
|
+
}) : null,
|
|
61
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
62
|
+
htmlFor: "remote-expiry-switch",
|
|
63
|
+
className: "flex items-start justify-between gap-4",
|
|
64
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
65
|
+
className: "flex flex-col gap-0.5",
|
|
66
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
67
|
+
className: "text-base font-medium text-doom-text",
|
|
68
|
+
children: "expire paired sessions"
|
|
69
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
70
|
+
className: "text-sm text-doom-dim",
|
|
71
|
+
children: "A device that goes quiet, or has simply been paired a long time, has to pair again."
|
|
72
|
+
})]
|
|
73
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_agimon_ai_po_web_components.Switch, {
|
|
74
|
+
id: "remote-expiry-switch",
|
|
75
|
+
"data-testid": "remote-expiry-switch",
|
|
76
|
+
checked: settings.sessionExpiryEnabled,
|
|
77
|
+
onCheckedChange: (checked) => void require_remoteAccessStore.updateRemoteSettings({ sessionExpiryEnabled: checked })
|
|
78
|
+
})]
|
|
79
|
+
}),
|
|
80
|
+
settings.sessionExpiryEnabled ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
81
|
+
className: "flex items-center justify-between gap-4 pl-4",
|
|
82
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
83
|
+
htmlFor: "remote-idle-minutes",
|
|
84
|
+
className: "flex items-center gap-2 text-base font-medium text-doom-text",
|
|
85
|
+
children: ["idle minutes", /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_agimon_ai_po_web_components.Input, {
|
|
86
|
+
id: "remote-idle-minutes",
|
|
87
|
+
"data-testid": "remote-idle-minutes",
|
|
88
|
+
type: "number",
|
|
89
|
+
min: 1,
|
|
90
|
+
max: MAX_MINUTES,
|
|
91
|
+
className: "w-20",
|
|
92
|
+
value: settings.idleMinutes,
|
|
93
|
+
onChange: (event) => void require_remoteAccessStore.updateRemoteSettings({ idleMinutes: Number(event.target.value) })
|
|
94
|
+
})]
|
|
95
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
96
|
+
htmlFor: "remote-absolute-hours",
|
|
97
|
+
className: "flex items-center gap-2 text-base font-medium text-doom-text",
|
|
98
|
+
children: ["total hours", /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_agimon_ai_po_web_components.Input, {
|
|
99
|
+
id: "remote-absolute-hours",
|
|
100
|
+
"data-testid": "remote-absolute-hours",
|
|
101
|
+
type: "number",
|
|
102
|
+
min: 1,
|
|
103
|
+
max: MAX_HOURS,
|
|
104
|
+
className: "w-20",
|
|
105
|
+
value: settings.absoluteHours,
|
|
106
|
+
onChange: (event) => void require_remoteAccessStore.updateRemoteSettings({ absoluteHours: Number(event.target.value) })
|
|
107
|
+
})]
|
|
108
|
+
})]
|
|
109
|
+
}) : null,
|
|
110
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
111
|
+
htmlFor: "remote-sandbox-switch",
|
|
112
|
+
className: "flex items-start justify-between gap-4",
|
|
113
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
114
|
+
className: "flex flex-col gap-0.5",
|
|
115
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
116
|
+
className: "text-base font-medium text-doom-text",
|
|
117
|
+
children: "run the cockpit in a container"
|
|
118
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
119
|
+
className: "text-sm text-doom-dim",
|
|
120
|
+
children: "The agent gets a shell either way. This decides whether that shell can see the rest of this machine."
|
|
121
|
+
})]
|
|
122
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_agimon_ai_po_web_components.Switch, {
|
|
123
|
+
id: "remote-sandbox-switch",
|
|
124
|
+
"data-testid": "remote-sandbox-switch",
|
|
125
|
+
checked: settings.sandbox.enabled,
|
|
126
|
+
onCheckedChange: (checked) => void require_remoteAccessStore.updateRemoteSettings({ sandbox: {
|
|
127
|
+
...settings.sandbox,
|
|
128
|
+
enabled: checked
|
|
129
|
+
} })
|
|
130
|
+
})]
|
|
131
|
+
}),
|
|
132
|
+
settings.sandbox.enabled ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_SandboxWorkspaces.SandboxWorkspaces, { workspaces: settings.sandbox.workspaces }) : null,
|
|
133
|
+
settings.sandbox.enabled ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
134
|
+
className: "text-sm text-doom-dim",
|
|
135
|
+
children: "Turning remote access on moves this cockpit into the container and reopens it on the same address. Running sessions inside the mounted workspaces move with it; the first start builds the image, which takes a while."
|
|
136
|
+
}) : null,
|
|
137
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("p", {
|
|
138
|
+
className: "text-sm text-doom-dim",
|
|
139
|
+
children: [
|
|
140
|
+
"Switching remote access off always revokes every paired device. Requires ",
|
|
141
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("code", { children: "cloudflared" }),
|
|
142
|
+
" on PATH."
|
|
143
|
+
]
|
|
144
|
+
}),
|
|
145
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_PairedDeviceList.PairedDeviceList, {}),
|
|
146
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_TrustedDeviceList.TrustedDeviceList, {}),
|
|
147
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_DevProxyTargets.DevProxyTargets, {})
|
|
148
|
+
]
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
//#endregion
|
|
152
|
+
exports.RemoteAccessOptions = RemoteAccessOptions;
|
|
153
|
+
|
|
154
|
+
//# sourceMappingURL=RemoteAccessOptions.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RemoteAccessOptions.cjs","names":["useStore","remoteAccessStore","Spinner","Switch","updateRemoteSettings","Input","SandboxWorkspaces","PairedDeviceList","TrustedDeviceList","DevProxyTargets"],"sources":["../../../../src/web/features/remote/RemoteAccessOptions.tsx"],"sourcesContent":["import { Input, Spinner, Switch } from '@agimon-ai/po-web-components';\nimport { useStore } from '@tanstack/react-store';\n\nimport { remoteAccessStore, updateRemoteSettings } from '../../stores/remoteAccessStore';\nimport { DevProxyTargets } from './DevProxyTargets';\nimport { PairedDeviceList } from './PairedDeviceList';\nimport { SandboxWorkspaces } from './SandboxWorkspaces';\nimport { TrustedDeviceList } from './TrustedDeviceList';\n\nconst MAX_MINUTES = 1440;\nconst MAX_HOURS = 720;\n\n/**\n * The bounds on remote access, asked before it is switched on.\n *\n * These sit in front of the decision rather than behind a gear elsewhere,\n * because they are the difference between a tunnel that closes itself and one\n * that is still open next week.\n */\nexport function RemoteAccessOptions() {\n const state = useStore(remoteAccessStore);\n const settings = state.view?.settings;\n if (settings === undefined) return <Spinner />;\n\n return (\n <div className=\"flex flex-col gap-4\">\n <label htmlFor=\"remote-autoclose-switch\" className=\"flex items-start justify-between gap-4\">\n <span className=\"flex flex-col gap-0.5\">\n <span className=\"text-base font-medium text-doom-text\">close the tunnel automatically</span>\n <span className=\"text-sm text-doom-dim\">So a tunnel you forgot about does not stay open for weeks.</span>\n </span>\n <Switch\n id=\"remote-autoclose-switch\"\n data-testid=\"remote-autoclose-switch\"\n checked={settings.autoCloseEnabled}\n onCheckedChange={(checked) => void updateRemoteSettings({ autoCloseEnabled: checked })}\n />\n </label>\n {settings.autoCloseEnabled ? (\n <label htmlFor=\"remote-autoclose-minutes\" className=\"flex items-center justify-between gap-4 pl-4\">\n <span className=\"text-base font-medium text-doom-text\">after this many minutes</span>\n <Input\n id=\"remote-autoclose-minutes\"\n data-testid=\"remote-autoclose-minutes\"\n type=\"number\"\n min={1}\n max={MAX_MINUTES}\n className=\"w-24\"\n value={settings.autoCloseMinutes}\n onChange={(event) => void updateRemoteSettings({ autoCloseMinutes: Number(event.target.value) })}\n />\n </label>\n ) : null}\n\n <label htmlFor=\"remote-expiry-switch\" className=\"flex items-start justify-between gap-4\">\n <span className=\"flex flex-col gap-0.5\">\n <span className=\"text-base font-medium text-doom-text\">expire paired sessions</span>\n <span className=\"text-sm text-doom-dim\">\n A device that goes quiet, or has simply been paired a long time, has to pair again.\n </span>\n </span>\n <Switch\n id=\"remote-expiry-switch\"\n data-testid=\"remote-expiry-switch\"\n checked={settings.sessionExpiryEnabled}\n onCheckedChange={(checked) => void updateRemoteSettings({ sessionExpiryEnabled: checked })}\n />\n </label>\n {settings.sessionExpiryEnabled ? (\n <div className=\"flex items-center justify-between gap-4 pl-4\">\n <label htmlFor=\"remote-idle-minutes\" className=\"flex items-center gap-2 text-base font-medium text-doom-text\">\n idle minutes\n <Input\n id=\"remote-idle-minutes\"\n data-testid=\"remote-idle-minutes\"\n type=\"number\"\n min={1}\n max={MAX_MINUTES}\n className=\"w-20\"\n value={settings.idleMinutes}\n onChange={(event) => void updateRemoteSettings({ idleMinutes: Number(event.target.value) })}\n />\n </label>\n <label\n htmlFor=\"remote-absolute-hours\"\n className=\"flex items-center gap-2 text-base font-medium text-doom-text\"\n >\n total hours\n <Input\n id=\"remote-absolute-hours\"\n data-testid=\"remote-absolute-hours\"\n type=\"number\"\n min={1}\n max={MAX_HOURS}\n className=\"w-20\"\n value={settings.absoluteHours}\n onChange={(event) => void updateRemoteSettings({ absoluteHours: Number(event.target.value) })}\n />\n </label>\n </div>\n ) : null}\n\n <label htmlFor=\"remote-sandbox-switch\" className=\"flex items-start justify-between gap-4\">\n <span className=\"flex flex-col gap-0.5\">\n <span className=\"text-base font-medium text-doom-text\">run the cockpit in a container</span>\n <span className=\"text-sm text-doom-dim\">\n The agent gets a shell either way. This decides whether that shell can see the rest of this machine.\n </span>\n </span>\n <Switch\n id=\"remote-sandbox-switch\"\n data-testid=\"remote-sandbox-switch\"\n checked={settings.sandbox.enabled}\n onCheckedChange={(checked) =>\n void updateRemoteSettings({ sandbox: { ...settings.sandbox, enabled: checked } })\n }\n />\n </label>\n {settings.sandbox.enabled ? <SandboxWorkspaces workspaces={settings.sandbox.workspaces} /> : null}\n {settings.sandbox.enabled ? (\n <p className=\"text-sm text-doom-dim\">\n Turning remote access on moves this cockpit into the container and reopens it on the same address. Running\n sessions inside the mounted workspaces move with it; the first start builds the image, which takes a while.\n </p>\n ) : null}\n\n <p className=\"text-sm text-doom-dim\">\n Switching remote access off always revokes every paired device. Requires <code>cloudflared</code> on PATH.\n </p>\n\n <PairedDeviceList />\n <TrustedDeviceList />\n <DevProxyTargets />\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
//#region src/web/features/remote/RemoteAccessOptions.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* The bounds on remote access, asked before it is switched on.
|
|
4
|
+
*
|
|
5
|
+
* These sit in front of the decision rather than behind a gear elsewhere,
|
|
6
|
+
* because they are the difference between a tunnel that closes itself and one
|
|
7
|
+
* that is still open next week.
|
|
8
|
+
*/
|
|
9
|
+
export declare function RemoteAccessOptions(): import("react").JSX.Element;
|
|
10
|
+
//#endregion
|
|
11
|
+
//# sourceMappingURL=RemoteAccessOptions.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RemoteAccessOptions.d.mts","names":[],"sources":["../../../../src/web/features/remote/RemoteAccessOptions.tsx"],"mappings":";;;;;;;;wBAmBgB,uCAAmB,IAAA"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { remoteAccessStore, updateRemoteSettings } from "../../stores/remoteAccessStore.mjs";
|
|
2
|
+
import { DevProxyTargets } from "./DevProxyTargets.mjs";
|
|
3
|
+
import { PairedDeviceList } from "./PairedDeviceList.mjs";
|
|
4
|
+
import { SandboxWorkspaces } from "./SandboxWorkspaces.mjs";
|
|
5
|
+
import { TrustedDeviceList } from "./TrustedDeviceList.mjs";
|
|
6
|
+
import { useStore } from "@tanstack/react-store";
|
|
7
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
+
import { Input, Spinner, Switch } from "@agimon-ai/po-web-components";
|
|
9
|
+
//#region src/web/features/remote/RemoteAccessOptions.tsx
|
|
10
|
+
const MAX_MINUTES = 1440;
|
|
11
|
+
const MAX_HOURS = 720;
|
|
12
|
+
/**
|
|
13
|
+
* The bounds on remote access, asked before it is switched on.
|
|
14
|
+
*
|
|
15
|
+
* These sit in front of the decision rather than behind a gear elsewhere,
|
|
16
|
+
* because they are the difference between a tunnel that closes itself and one
|
|
17
|
+
* that is still open next week.
|
|
18
|
+
*/
|
|
19
|
+
function RemoteAccessOptions() {
|
|
20
|
+
const settings = useStore(remoteAccessStore).view?.settings;
|
|
21
|
+
if (settings === void 0) return /* @__PURE__ */ jsx(Spinner, {});
|
|
22
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
23
|
+
className: "flex flex-col gap-4",
|
|
24
|
+
children: [
|
|
25
|
+
/* @__PURE__ */ jsxs("label", {
|
|
26
|
+
htmlFor: "remote-autoclose-switch",
|
|
27
|
+
className: "flex items-start justify-between gap-4",
|
|
28
|
+
children: [/* @__PURE__ */ jsxs("span", {
|
|
29
|
+
className: "flex flex-col gap-0.5",
|
|
30
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
31
|
+
className: "text-base font-medium text-doom-text",
|
|
32
|
+
children: "close the tunnel automatically"
|
|
33
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
34
|
+
className: "text-sm text-doom-dim",
|
|
35
|
+
children: "So a tunnel you forgot about does not stay open for weeks."
|
|
36
|
+
})]
|
|
37
|
+
}), /* @__PURE__ */ jsx(Switch, {
|
|
38
|
+
id: "remote-autoclose-switch",
|
|
39
|
+
"data-testid": "remote-autoclose-switch",
|
|
40
|
+
checked: settings.autoCloseEnabled,
|
|
41
|
+
onCheckedChange: (checked) => void updateRemoteSettings({ autoCloseEnabled: checked })
|
|
42
|
+
})]
|
|
43
|
+
}),
|
|
44
|
+
settings.autoCloseEnabled ? /* @__PURE__ */ jsxs("label", {
|
|
45
|
+
htmlFor: "remote-autoclose-minutes",
|
|
46
|
+
className: "flex items-center justify-between gap-4 pl-4",
|
|
47
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
48
|
+
className: "text-base font-medium text-doom-text",
|
|
49
|
+
children: "after this many minutes"
|
|
50
|
+
}), /* @__PURE__ */ jsx(Input, {
|
|
51
|
+
id: "remote-autoclose-minutes",
|
|
52
|
+
"data-testid": "remote-autoclose-minutes",
|
|
53
|
+
type: "number",
|
|
54
|
+
min: 1,
|
|
55
|
+
max: MAX_MINUTES,
|
|
56
|
+
className: "w-24",
|
|
57
|
+
value: settings.autoCloseMinutes,
|
|
58
|
+
onChange: (event) => void updateRemoteSettings({ autoCloseMinutes: Number(event.target.value) })
|
|
59
|
+
})]
|
|
60
|
+
}) : null,
|
|
61
|
+
/* @__PURE__ */ jsxs("label", {
|
|
62
|
+
htmlFor: "remote-expiry-switch",
|
|
63
|
+
className: "flex items-start justify-between gap-4",
|
|
64
|
+
children: [/* @__PURE__ */ jsxs("span", {
|
|
65
|
+
className: "flex flex-col gap-0.5",
|
|
66
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
67
|
+
className: "text-base font-medium text-doom-text",
|
|
68
|
+
children: "expire paired sessions"
|
|
69
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
70
|
+
className: "text-sm text-doom-dim",
|
|
71
|
+
children: "A device that goes quiet, or has simply been paired a long time, has to pair again."
|
|
72
|
+
})]
|
|
73
|
+
}), /* @__PURE__ */ jsx(Switch, {
|
|
74
|
+
id: "remote-expiry-switch",
|
|
75
|
+
"data-testid": "remote-expiry-switch",
|
|
76
|
+
checked: settings.sessionExpiryEnabled,
|
|
77
|
+
onCheckedChange: (checked) => void updateRemoteSettings({ sessionExpiryEnabled: checked })
|
|
78
|
+
})]
|
|
79
|
+
}),
|
|
80
|
+
settings.sessionExpiryEnabled ? /* @__PURE__ */ jsxs("div", {
|
|
81
|
+
className: "flex items-center justify-between gap-4 pl-4",
|
|
82
|
+
children: [/* @__PURE__ */ jsxs("label", {
|
|
83
|
+
htmlFor: "remote-idle-minutes",
|
|
84
|
+
className: "flex items-center gap-2 text-base font-medium text-doom-text",
|
|
85
|
+
children: ["idle minutes", /* @__PURE__ */ jsx(Input, {
|
|
86
|
+
id: "remote-idle-minutes",
|
|
87
|
+
"data-testid": "remote-idle-minutes",
|
|
88
|
+
type: "number",
|
|
89
|
+
min: 1,
|
|
90
|
+
max: MAX_MINUTES,
|
|
91
|
+
className: "w-20",
|
|
92
|
+
value: settings.idleMinutes,
|
|
93
|
+
onChange: (event) => void updateRemoteSettings({ idleMinutes: Number(event.target.value) })
|
|
94
|
+
})]
|
|
95
|
+
}), /* @__PURE__ */ jsxs("label", {
|
|
96
|
+
htmlFor: "remote-absolute-hours",
|
|
97
|
+
className: "flex items-center gap-2 text-base font-medium text-doom-text",
|
|
98
|
+
children: ["total hours", /* @__PURE__ */ jsx(Input, {
|
|
99
|
+
id: "remote-absolute-hours",
|
|
100
|
+
"data-testid": "remote-absolute-hours",
|
|
101
|
+
type: "number",
|
|
102
|
+
min: 1,
|
|
103
|
+
max: MAX_HOURS,
|
|
104
|
+
className: "w-20",
|
|
105
|
+
value: settings.absoluteHours,
|
|
106
|
+
onChange: (event) => void updateRemoteSettings({ absoluteHours: Number(event.target.value) })
|
|
107
|
+
})]
|
|
108
|
+
})]
|
|
109
|
+
}) : null,
|
|
110
|
+
/* @__PURE__ */ jsxs("label", {
|
|
111
|
+
htmlFor: "remote-sandbox-switch",
|
|
112
|
+
className: "flex items-start justify-between gap-4",
|
|
113
|
+
children: [/* @__PURE__ */ jsxs("span", {
|
|
114
|
+
className: "flex flex-col gap-0.5",
|
|
115
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
116
|
+
className: "text-base font-medium text-doom-text",
|
|
117
|
+
children: "run the cockpit in a container"
|
|
118
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
119
|
+
className: "text-sm text-doom-dim",
|
|
120
|
+
children: "The agent gets a shell either way. This decides whether that shell can see the rest of this machine."
|
|
121
|
+
})]
|
|
122
|
+
}), /* @__PURE__ */ jsx(Switch, {
|
|
123
|
+
id: "remote-sandbox-switch",
|
|
124
|
+
"data-testid": "remote-sandbox-switch",
|
|
125
|
+
checked: settings.sandbox.enabled,
|
|
126
|
+
onCheckedChange: (checked) => void updateRemoteSettings({ sandbox: {
|
|
127
|
+
...settings.sandbox,
|
|
128
|
+
enabled: checked
|
|
129
|
+
} })
|
|
130
|
+
})]
|
|
131
|
+
}),
|
|
132
|
+
settings.sandbox.enabled ? /* @__PURE__ */ jsx(SandboxWorkspaces, { workspaces: settings.sandbox.workspaces }) : null,
|
|
133
|
+
settings.sandbox.enabled ? /* @__PURE__ */ jsx("p", {
|
|
134
|
+
className: "text-sm text-doom-dim",
|
|
135
|
+
children: "Turning remote access on moves this cockpit into the container and reopens it on the same address. Running sessions inside the mounted workspaces move with it; the first start builds the image, which takes a while."
|
|
136
|
+
}) : null,
|
|
137
|
+
/* @__PURE__ */ jsxs("p", {
|
|
138
|
+
className: "text-sm text-doom-dim",
|
|
139
|
+
children: [
|
|
140
|
+
"Switching remote access off always revokes every paired device. Requires ",
|
|
141
|
+
/* @__PURE__ */ jsx("code", { children: "cloudflared" }),
|
|
142
|
+
" on PATH."
|
|
143
|
+
]
|
|
144
|
+
}),
|
|
145
|
+
/* @__PURE__ */ jsx(PairedDeviceList, {}),
|
|
146
|
+
/* @__PURE__ */ jsx(TrustedDeviceList, {}),
|
|
147
|
+
/* @__PURE__ */ jsx(DevProxyTargets, {})
|
|
148
|
+
]
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
//#endregion
|
|
152
|
+
export { RemoteAccessOptions };
|
|
153
|
+
|
|
154
|
+
//# sourceMappingURL=RemoteAccessOptions.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RemoteAccessOptions.mjs","names":[],"sources":["../../../../src/web/features/remote/RemoteAccessOptions.tsx"],"sourcesContent":["import { Input, Spinner, Switch } from '@agimon-ai/po-web-components';\nimport { useStore } from '@tanstack/react-store';\n\nimport { remoteAccessStore, updateRemoteSettings } from '../../stores/remoteAccessStore';\nimport { DevProxyTargets } from './DevProxyTargets';\nimport { PairedDeviceList } from './PairedDeviceList';\nimport { SandboxWorkspaces } from './SandboxWorkspaces';\nimport { TrustedDeviceList } from './TrustedDeviceList';\n\nconst MAX_MINUTES = 1440;\nconst MAX_HOURS = 720;\n\n/**\n * The bounds on remote access, asked before it is switched on.\n *\n * These sit in front of the decision rather than behind a gear elsewhere,\n * because they are the difference between a tunnel that closes itself and one\n * that is still open next week.\n */\nexport function RemoteAccessOptions() {\n const state = useStore(remoteAccessStore);\n const settings = state.view?.settings;\n if (settings === undefined) return <Spinner />;\n\n return (\n <div className=\"flex flex-col gap-4\">\n <label htmlFor=\"remote-autoclose-switch\" className=\"flex items-start justify-between gap-4\">\n <span className=\"flex flex-col gap-0.5\">\n <span className=\"text-base font-medium text-doom-text\">close the tunnel automatically</span>\n <span className=\"text-sm text-doom-dim\">So a tunnel you forgot about does not stay open for weeks.</span>\n </span>\n <Switch\n id=\"remote-autoclose-switch\"\n data-testid=\"remote-autoclose-switch\"\n checked={settings.autoCloseEnabled}\n onCheckedChange={(checked) => void updateRemoteSettings({ autoCloseEnabled: checked })}\n />\n </label>\n {settings.autoCloseEnabled ? (\n <label htmlFor=\"remote-autoclose-minutes\" className=\"flex items-center justify-between gap-4 pl-4\">\n <span className=\"text-base font-medium text-doom-text\">after this many minutes</span>\n <Input\n id=\"remote-autoclose-minutes\"\n data-testid=\"remote-autoclose-minutes\"\n type=\"number\"\n min={1}\n max={MAX_MINUTES}\n className=\"w-24\"\n value={settings.autoCloseMinutes}\n onChange={(event) => void updateRemoteSettings({ autoCloseMinutes: Number(event.target.value) })}\n />\n </label>\n ) : null}\n\n <label htmlFor=\"remote-expiry-switch\" className=\"flex items-start justify-between gap-4\">\n <span className=\"flex flex-col gap-0.5\">\n <span className=\"text-base font-medium text-doom-text\">expire paired sessions</span>\n <span className=\"text-sm text-doom-dim\">\n A device that goes quiet, or has simply been paired a long time, has to pair again.\n </span>\n </span>\n <Switch\n id=\"remote-expiry-switch\"\n data-testid=\"remote-expiry-switch\"\n checked={settings.sessionExpiryEnabled}\n onCheckedChange={(checked) => void updateRemoteSettings({ sessionExpiryEnabled: checked })}\n />\n </label>\n {settings.sessionExpiryEnabled ? (\n <div className=\"flex items-center justify-between gap-4 pl-4\">\n <label htmlFor=\"remote-idle-minutes\" className=\"flex items-center gap-2 text-base font-medium text-doom-text\">\n idle minutes\n <Input\n id=\"remote-idle-minutes\"\n data-testid=\"remote-idle-minutes\"\n type=\"number\"\n min={1}\n max={MAX_MINUTES}\n className=\"w-20\"\n value={settings.idleMinutes}\n onChange={(event) => void updateRemoteSettings({ idleMinutes: Number(event.target.value) })}\n />\n </label>\n <label\n htmlFor=\"remote-absolute-hours\"\n className=\"flex items-center gap-2 text-base font-medium text-doom-text\"\n >\n total hours\n <Input\n id=\"remote-absolute-hours\"\n data-testid=\"remote-absolute-hours\"\n type=\"number\"\n min={1}\n max={MAX_HOURS}\n className=\"w-20\"\n value={settings.absoluteHours}\n onChange={(event) => void updateRemoteSettings({ absoluteHours: Number(event.target.value) })}\n />\n </label>\n </div>\n ) : null}\n\n <label htmlFor=\"remote-sandbox-switch\" className=\"flex items-start justify-between gap-4\">\n <span className=\"flex flex-col gap-0.5\">\n <span className=\"text-base font-medium text-doom-text\">run the cockpit in a container</span>\n <span className=\"text-sm text-doom-dim\">\n The agent gets a shell either way. This decides whether that shell can see the rest of this machine.\n </span>\n </span>\n <Switch\n id=\"remote-sandbox-switch\"\n data-testid=\"remote-sandbox-switch\"\n checked={settings.sandbox.enabled}\n onCheckedChange={(checked) =>\n void updateRemoteSettings({ sandbox: { ...settings.sandbox, enabled: checked } })\n }\n />\n </label>\n {settings.sandbox.enabled ? <SandboxWorkspaces workspaces={settings.sandbox.workspaces} /> : null}\n {settings.sandbox.enabled ? (\n <p className=\"text-sm text-doom-dim\">\n Turning remote access on moves this cockpit into the container and reopens it on the same address. Running\n sessions inside the mounted workspaces move with it; the first start builds the image, which takes a while.\n </p>\n ) : null}\n\n <p className=\"text-sm text-doom-dim\">\n Switching remote access off always revokes every paired device. Requires <code>cloudflared</code> on PATH.\n </p>\n\n <PairedDeviceList />\n <TrustedDeviceList />\n <DevProxyTargets />\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
const require_remoteAccessStore = require("../../stores/remoteAccessStore.cjs");
|
|
2
|
+
const require_QrCode = require("../../components/QrCode.cjs");
|
|
3
|
+
const require_PairedDeviceList = require("./PairedDeviceList.cjs");
|
|
4
|
+
let _tanstack_react_store = require("@tanstack/react-store");
|
|
5
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
6
|
+
let _agimon_ai_po_web_components = require("@agimon-ai/po-web-components");
|
|
7
|
+
//#region src/web/features/remote/RemoteAccessPairing.tsx
|
|
8
|
+
/** The QR credential, a short manual code, and the direct address. */
|
|
9
|
+
function RemoteAccessPairing() {
|
|
10
|
+
const state = (0, _tanstack_react_store.useStore)(require_remoteAccessStore.remoteAccessStore);
|
|
11
|
+
if (state.pairUrl === void 0 || state.pairCode === void 0 || state.pairFingerprint === void 0) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_agimon_ai_po_web_components.Spinner, {});
|
|
12
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
13
|
+
className: "flex flex-col items-center gap-4",
|
|
14
|
+
children: [
|
|
15
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
16
|
+
className: "rounded-lg bg-doom-hi p-3 text-doom-deep",
|
|
17
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_QrCode.QrCode, {
|
|
18
|
+
value: state.pairUrl,
|
|
19
|
+
size: 288,
|
|
20
|
+
label: "Scan to pair this device"
|
|
21
|
+
})
|
|
22
|
+
}),
|
|
23
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
24
|
+
className: "flex w-full flex-col gap-1",
|
|
25
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_agimon_ai_po_web_components.SectionLabel, { children: "or enter this pairing code" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("code", {
|
|
26
|
+
"data-testid": "remote-pair-code",
|
|
27
|
+
className: "rounded bg-doom-deep p-2 text-center font-mono text-lg tracking-widest text-doom-text",
|
|
28
|
+
children: state.pairCode
|
|
29
|
+
})]
|
|
30
|
+
}),
|
|
31
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
32
|
+
className: "flex w-full flex-col gap-1",
|
|
33
|
+
children: [
|
|
34
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_agimon_ai_po_web_components.SectionLabel, { children: "signing-key fingerprint" }),
|
|
35
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("code", {
|
|
36
|
+
"data-testid": "remote-signing-fingerprint",
|
|
37
|
+
className: "break-all rounded bg-doom-deep p-2 text-center font-mono text-sm text-doom-text",
|
|
38
|
+
children: state.pairFingerprint.match(/.{1,8}/gu)?.join(" ") ?? state.pairFingerprint
|
|
39
|
+
}),
|
|
40
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("p", {
|
|
41
|
+
className: "text-sm text-doom-dim",
|
|
42
|
+
children: [
|
|
43
|
+
"Compare this on the phone when entering the manual code. Bundle revision ",
|
|
44
|
+
String(state.pairRevision),
|
|
45
|
+
"."
|
|
46
|
+
]
|
|
47
|
+
})
|
|
48
|
+
]
|
|
49
|
+
}),
|
|
50
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
51
|
+
className: "flex w-full flex-col gap-1",
|
|
52
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_agimon_ai_po_web_components.SectionLabel, { children: "or open this address" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("code", {
|
|
53
|
+
"data-testid": "remote-pair-url",
|
|
54
|
+
className: "break-all rounded bg-doom-deep p-2 text-sm text-doom-dim",
|
|
55
|
+
children: state.pairUrl
|
|
56
|
+
})]
|
|
57
|
+
}),
|
|
58
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_agimon_ai_po_web_components.Button, {
|
|
59
|
+
variant: "ghost",
|
|
60
|
+
size: "sm",
|
|
61
|
+
"data-testid": "remote-new-code",
|
|
62
|
+
onClick: () => void require_remoteAccessStore.newPairingCode(),
|
|
63
|
+
children: "show a new code"
|
|
64
|
+
}),
|
|
65
|
+
state.passkeys?.supported === true ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
66
|
+
className: "flex w-full flex-col gap-1.5 border-t border-doom-border pt-3",
|
|
67
|
+
children: [
|
|
68
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_agimon_ai_po_web_components.SectionLabel, { children: "passkeys" }),
|
|
69
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
70
|
+
className: "text-sm text-doom-dim",
|
|
71
|
+
children: state.passkeys.count === 0 ? "Add one on the device you just paired and it will not need the code again." : `${String(state.passkeys.count)} registered. A paired device signs in with a gesture instead of a code.`
|
|
72
|
+
}),
|
|
73
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_agimon_ai_po_web_components.Button, {
|
|
74
|
+
variant: "outline",
|
|
75
|
+
size: "sm",
|
|
76
|
+
"data-testid": "remote-add-passkey",
|
|
77
|
+
onClick: () => void require_remoteAccessStore.addPasskey(),
|
|
78
|
+
children: "add a passkey for this device"
|
|
79
|
+
})
|
|
80
|
+
]
|
|
81
|
+
}) : state.passkeys?.reason === void 0 ? null : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
82
|
+
"data-testid": "remote-passkey-unavailable",
|
|
83
|
+
className: "w-full text-sm text-doom-dim",
|
|
84
|
+
children: state.passkeys.reason
|
|
85
|
+
}),
|
|
86
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_PairedDeviceList.PairedDeviceList, {})
|
|
87
|
+
]
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
//#endregion
|
|
91
|
+
exports.RemoteAccessPairing = RemoteAccessPairing;
|
|
92
|
+
|
|
93
|
+
//# sourceMappingURL=RemoteAccessPairing.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RemoteAccessPairing.cjs","names":["useStore","remoteAccessStore","Spinner","QrCode","SectionLabel","Button","newPairingCode","addPasskey","PairedDeviceList"],"sources":["../../../../src/web/features/remote/RemoteAccessPairing.tsx"],"sourcesContent":["import { Button, SectionLabel, Spinner } from '@agimon-ai/po-web-components';\nimport { useStore } from '@tanstack/react-store';\n\nimport { QrCode } from '../../components/QrCode';\nimport { addPasskey, newPairingCode, remoteAccessStore } from '../../stores/remoteAccessStore';\nimport { PairedDeviceList } from './PairedDeviceList';\n\n/** The QR credential, a short manual code, and the direct address. */\nexport function RemoteAccessPairing() {\n const state = useStore(remoteAccessStore);\n if (state.pairUrl === undefined || state.pairCode === undefined || state.pairFingerprint === undefined)\n return <Spinner />;\n\n return (\n <div className=\"flex flex-col items-center gap-4\">\n {/* A light plate under the code: scanners want dark modules on a bright\n field, which is the one thing a dark theme cannot supply. */}\n <div className=\"rounded-lg bg-doom-hi p-3 text-doom-deep\">\n <QrCode value={state.pairUrl} size={288} label=\"Scan to pair this device\" />\n </div>\n <div className=\"flex w-full flex-col gap-1\">\n <SectionLabel>or enter this pairing code</SectionLabel>\n <code\n data-testid=\"remote-pair-code\"\n className=\"rounded bg-doom-deep p-2 text-center font-mono text-lg tracking-widest text-doom-text\"\n >\n {state.pairCode}\n </code>\n </div>\n <div className=\"flex w-full flex-col gap-1\">\n <SectionLabel>signing-key fingerprint</SectionLabel>\n <code\n data-testid=\"remote-signing-fingerprint\"\n className=\"break-all rounded bg-doom-deep p-2 text-center font-mono text-sm text-doom-text\"\n >\n {state.pairFingerprint.match(/.{1,8}/gu)?.join(' ') ?? state.pairFingerprint}\n </code>\n <p className=\"text-sm text-doom-dim\">\n Compare this on the phone when entering the manual code. Bundle revision {String(state.pairRevision)}.\n </p>\n </div>\n <div className=\"flex w-full flex-col gap-1\">\n <SectionLabel>or open this address</SectionLabel>\n <code data-testid=\"remote-pair-url\" className=\"break-all rounded bg-doom-deep p-2 text-sm text-doom-dim\">\n {state.pairUrl}\n </code>\n </div>\n <Button variant=\"ghost\" size=\"sm\" data-testid=\"remote-new-code\" onClick={() => void newPairingCode()}>\n show a new code\n </Button>\n\n {/* Enrolling a passkey turns every later visit into one Face ID instead\n of another scan, and it is what puts a second factor in front of the\n two actions that escalate past driving the agent. */}\n {state.passkeys?.supported === true ? (\n <div className=\"flex w-full flex-col gap-1.5 border-t border-doom-border pt-3\">\n <SectionLabel>passkeys</SectionLabel>\n <p className=\"text-sm text-doom-dim\">\n {state.passkeys.count === 0\n ? 'Add one on the device you just paired and it will not need the code again.'\n : `${String(state.passkeys.count)} registered. A paired device signs in with a gesture instead of a code.`}\n </p>\n <Button variant=\"outline\" size=\"sm\" data-testid=\"remote-add-passkey\" onClick={() => void addPasskey()}>\n add a passkey for this device\n </Button>\n </div>\n ) : state.passkeys?.reason === undefined ? null : (\n <p data-testid=\"remote-passkey-unavailable\" className=\"w-full text-sm text-doom-dim\">\n {state.passkeys.reason}\n </p>\n )}\n\n <PairedDeviceList />\n </div>\n );\n}\n"],"mappings":";;;;;;;;AAQA,SAAgB,sBAAsB;CACpC,MAAM,SAAA,GAAQA,sBAAAA,SAAAA,CAASC,0BAAAA,iBAAiB;CACxC,IAAI,MAAM,YAAY,KAAA,KAAa,MAAM,aAAa,KAAA,KAAa,MAAM,oBAAoB,KAAA,GAC3F,OAAO,iBAAA,GAAA,kBAAA,IAAA,CAACC,6BAAAA,SAAD,CAAU,CAAA;CAEnB,OACE,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;EAAK,WAAU;EAAf,UAAA;GAGE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;IAAK,WAAU;IACb,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACC,eAAAA,QAAD;KAAQ,OAAO,MAAM;KAAS,MAAM;KAAK,OAAM;IAA4B,CAAA;GACxE,CAAA;GACL,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;IAAK,WAAU;IAAf,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,6BAAAA,cAAD,EAAA,UAAc,6BAAwC,CAAA,GACtD,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;KACE,eAAY;KACZ,WAAU;KAET,UAAA,MAAM;IACH,CAAA,CACH;;GACL,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;IAAK,WAAU;IAAf,UAAA;KACE,iBAAA,GAAA,kBAAA,IAAA,CAACA,6BAAAA,cAAD,EAAA,UAAc,0BAAqC,CAAA;KACnD,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;MACE,eAAY;MACZ,WAAU;MAET,UAAA,MAAM,gBAAgB,MAAM,UAAU,CAAC,EAAE,KAAK,GAAG,KAAK,MAAM;KACzD,CAAA;KACN,iBAAA,GAAA,kBAAA,KAAA,CAAC,KAAD;MAAG,WAAU;MAAb,UAAA;OAAqC;OACuC,OAAO,MAAM,YAAY;OAAE;MACpG;;IACA;;GACL,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;IAAK,WAAU;IAAf,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAACA,6BAAAA,cAAD,EAAA,UAAc,uBAAkC,CAAA,GAChD,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;KAAM,eAAY;KAAkB,WAAU;KAC3C,UAAA,MAAM;IACH,CAAA,CACH;;GACL,iBAAA,GAAA,kBAAA,IAAA,CAACC,6BAAAA,QAAD;IAAQ,SAAQ;IAAQ,MAAK;IAAK,eAAY;IAAkB,eAAe,KAAKC,0BAAAA,eAAe;IAAG,UAAA;GAE9F,CAAA;GAKP,MAAM,UAAU,cAAc,OAC7B,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;IAAK,WAAU;IAAf,UAAA;KACE,iBAAA,GAAA,kBAAA,IAAA,CAACF,6BAAAA,cAAD,EAAA,UAAc,WAAsB,CAAA;KACpC,iBAAA,GAAA,kBAAA,IAAA,CAAC,KAAD;MAAG,WAAU;MACV,UAAA,MAAM,SAAS,UAAU,IACtB,+EACA,GAAG,OAAO,MAAM,SAAS,KAAK,EAAE;KACnC,CAAA;KACH,iBAAA,GAAA,kBAAA,IAAA,CAACC,6BAAAA,QAAD;MAAQ,SAAQ;MAAU,MAAK;MAAK,eAAY;MAAqB,eAAe,KAAKE,0BAAAA,WAAW;MAAG,UAAA;KAE/F,CAAA;IACL;GACH,CAAA,IAAA,MAAM,UAAU,WAAW,KAAA,IAAY,OACzC,iBAAA,GAAA,kBAAA,IAAA,CAAC,KAAD;IAAG,eAAY;IAA6B,WAAU;IACnD,UAAA,MAAM,SAAS;GACf,CAAA;GAGL,iBAAA,GAAA,kBAAA,IAAA,CAACC,yBAAAA,kBAAD,CAAmB,CAAA;EAChB;;AAET"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
//#region src/web/features/remote/RemoteAccessPairing.d.ts
|
|
2
|
+
/** The QR credential, a short manual code, and the direct address. */
|
|
3
|
+
export declare function RemoteAccessPairing(): import("react").JSX.Element;
|
|
4
|
+
//#endregion
|
|
5
|
+
//# sourceMappingURL=RemoteAccessPairing.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RemoteAccessPairing.d.mts","names":[],"sources":["../../../../src/web/features/remote/RemoteAccessPairing.tsx"],"mappings":";;wBAQgB,uCAAmB,IAAA"}
|