@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,323 @@
|
|
|
1
|
+
import { answerLogin, cancelLogin, listProviders, logoutProvider, readLogin, startLogin } from "../../lib/authApi.mjs";
|
|
2
|
+
import { useDashboardState } from "../../stores/dashboardStateStore.mjs";
|
|
3
|
+
import { LoginFlowDialog } from "./LoginFlowDialog.mjs";
|
|
4
|
+
import { useCallback, useEffect } from "react";
|
|
5
|
+
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
+
import { Button, Dot, EmptyState, Input, SearchIcon, SettingsCard, SettingsDescription, SettingsHeader, SettingsPage, SettingsRow, SettingsRowDescription, SettingsRowText, SettingsRowTitle, SettingsSection, SettingsSectionHeader, SettingsSectionTitle, SettingsTitle, Skeleton } from "@agimon-ai/po-web-components";
|
|
7
|
+
//#region src/web/features/settings/ProviderSettings.tsx
|
|
8
|
+
const FLOW_POLL_MS = 500;
|
|
9
|
+
/** The auth source Pi reports for a credential its own /login stored; the only kind /logout removes. */
|
|
10
|
+
const STORED_SOURCE = "stored";
|
|
11
|
+
const ACTION_LABEL = {
|
|
12
|
+
oauth: "Sign in",
|
|
13
|
+
api_key: "Add API key"
|
|
14
|
+
};
|
|
15
|
+
const METHOD_NAME = {
|
|
16
|
+
oauth: "OAuth",
|
|
17
|
+
api_key: "an API key"
|
|
18
|
+
};
|
|
19
|
+
/** Where the credential came from, in words: Pi's own store, or the variable that holds the key. */
|
|
20
|
+
function ConnectedStatus({ type, source }) {
|
|
21
|
+
if (source === STORED_SOURCE) return /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
22
|
+
"Signed in with ",
|
|
23
|
+
METHOD_NAME[type],
|
|
24
|
+
", saved on this machine"
|
|
25
|
+
] });
|
|
26
|
+
if (!source) return /* @__PURE__ */ jsxs(Fragment$1, { children: ["Signed in with ", METHOD_NAME[type]] });
|
|
27
|
+
return /* @__PURE__ */ jsxs(Fragment$1, { children: ["Using the key in ", /* @__PURE__ */ jsx("code", {
|
|
28
|
+
className: "font-mono text-doom-hi",
|
|
29
|
+
children: source
|
|
30
|
+
})] });
|
|
31
|
+
}
|
|
32
|
+
function ConnectedRow({ provider, busy, onLogout }) {
|
|
33
|
+
const auth = provider.authenticated;
|
|
34
|
+
if (!auth) return null;
|
|
35
|
+
return /* @__PURE__ */ jsx(SettingsRow, {
|
|
36
|
+
asChild: true,
|
|
37
|
+
className: "gap-x-4",
|
|
38
|
+
children: /* @__PURE__ */ jsxs("li", {
|
|
39
|
+
"data-testid": `provider-${provider.id}`,
|
|
40
|
+
"data-authenticated": true,
|
|
41
|
+
children: [
|
|
42
|
+
/* @__PURE__ */ jsx(Dot, {
|
|
43
|
+
tone: "green",
|
|
44
|
+
className: "size-2"
|
|
45
|
+
}),
|
|
46
|
+
/* @__PURE__ */ jsxs("div", {
|
|
47
|
+
className: "flex min-w-0 flex-1 flex-col gap-0.5",
|
|
48
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
49
|
+
className: "truncate text-base font-semibold text-doom-hi",
|
|
50
|
+
children: provider.name
|
|
51
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
52
|
+
"data-testid": `provider-status-${provider.id}`,
|
|
53
|
+
className: "min-w-0 break-words text-sm text-doom-dim",
|
|
54
|
+
children: /* @__PURE__ */ jsx(ConnectedStatus, { ...auth })
|
|
55
|
+
})]
|
|
56
|
+
}),
|
|
57
|
+
auth.source === STORED_SOURCE ? /* @__PURE__ */ jsx(Button, {
|
|
58
|
+
variant: "ghost",
|
|
59
|
+
size: "sm",
|
|
60
|
+
"data-testid": `provider-logout-${provider.id}`,
|
|
61
|
+
disabled: busy,
|
|
62
|
+
onClick: onLogout,
|
|
63
|
+
className: "hover:text-doom-red",
|
|
64
|
+
children: "Sign out"
|
|
65
|
+
}) : auth.source ? /* @__PURE__ */ jsx("span", {
|
|
66
|
+
className: "shrink-0 text-sm text-doom-dim",
|
|
67
|
+
children: "Set by your environment"
|
|
68
|
+
}) : null
|
|
69
|
+
]
|
|
70
|
+
})
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
function AvailableRow({ provider, busy, onLogin }) {
|
|
74
|
+
return /* @__PURE__ */ jsx(SettingsRow, {
|
|
75
|
+
asChild: true,
|
|
76
|
+
className: "gap-x-4 py-3",
|
|
77
|
+
children: /* @__PURE__ */ jsxs("li", {
|
|
78
|
+
"data-testid": `provider-${provider.id}`,
|
|
79
|
+
"data-authenticated": false,
|
|
80
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
81
|
+
className: "flex min-w-0 flex-1 flex-col",
|
|
82
|
+
children: [
|
|
83
|
+
/* @__PURE__ */ jsx("span", {
|
|
84
|
+
className: "truncate text-base font-semibold text-doom-hi",
|
|
85
|
+
children: provider.name
|
|
86
|
+
}),
|
|
87
|
+
/* @__PURE__ */ jsx("span", {
|
|
88
|
+
className: "truncate font-mono text-sm text-doom-dim",
|
|
89
|
+
children: provider.id
|
|
90
|
+
}),
|
|
91
|
+
/* @__PURE__ */ jsx("span", {
|
|
92
|
+
"data-testid": `provider-status-${provider.id}`,
|
|
93
|
+
className: "sr-only",
|
|
94
|
+
children: "Not connected"
|
|
95
|
+
})
|
|
96
|
+
]
|
|
97
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
98
|
+
className: "flex shrink-0 flex-wrap gap-2",
|
|
99
|
+
children: provider.methods.length === 0 ? /* @__PURE__ */ jsx("span", {
|
|
100
|
+
className: "text-sm text-doom-dim",
|
|
101
|
+
children: "Reads credentials from your environment"
|
|
102
|
+
}) : provider.methods.map((method) => /* @__PURE__ */ jsx(Button, {
|
|
103
|
+
variant: "ghost",
|
|
104
|
+
size: "sm",
|
|
105
|
+
"data-testid": `provider-login-${method.type}-${provider.id}`,
|
|
106
|
+
title: method.label,
|
|
107
|
+
disabled: busy,
|
|
108
|
+
onClick: () => onLogin(method.type),
|
|
109
|
+
className: "hover:text-doom-green",
|
|
110
|
+
children: ACTION_LABEL[method.type]
|
|
111
|
+
}, method.type))
|
|
112
|
+
})]
|
|
113
|
+
})
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* The providers page: what Pi can sign in to on the hub's machine, and
|
|
118
|
+
* whether it has. A login runs on the hub; this page polls its flow and
|
|
119
|
+
* relays the one question it may ask.
|
|
120
|
+
*/
|
|
121
|
+
function ProviderSettings() {
|
|
122
|
+
const [providers, setProviders] = useDashboardState("providers/list", null);
|
|
123
|
+
const [error, setError] = useDashboardState("providers/error", "");
|
|
124
|
+
const [flow, setFlow, flowState] = useDashboardState("providers/flow", null);
|
|
125
|
+
const [busyId, setBusyId, busyState] = useDashboardState("providers/busy", null);
|
|
126
|
+
const [filter, setFilter] = useDashboardState("providers/filter", "");
|
|
127
|
+
const reload = useCallback(async () => {
|
|
128
|
+
const result = await listProviders();
|
|
129
|
+
if ("providers" in result) {
|
|
130
|
+
setProviders(result.providers);
|
|
131
|
+
setError("");
|
|
132
|
+
} else setError(result.error);
|
|
133
|
+
}, [setProviders, setError]);
|
|
134
|
+
useEffect(() => {
|
|
135
|
+
reload();
|
|
136
|
+
}, [reload]);
|
|
137
|
+
const flowId = flow?.id;
|
|
138
|
+
const running = flow?.status === "running";
|
|
139
|
+
useEffect(() => {
|
|
140
|
+
if (flowId === void 0 || !running) return;
|
|
141
|
+
let stopped = false;
|
|
142
|
+
let timer;
|
|
143
|
+
const poll = async () => {
|
|
144
|
+
const result = await readLogin(flowId);
|
|
145
|
+
if (stopped) return;
|
|
146
|
+
if ("error" in result) {
|
|
147
|
+
setFlow((current) => current && current.id === flowId ? {
|
|
148
|
+
...current,
|
|
149
|
+
status: "failed",
|
|
150
|
+
error: result.error
|
|
151
|
+
} : current);
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
setFlow(result.flow);
|
|
155
|
+
if (result.flow.status !== "running") {
|
|
156
|
+
reload();
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
timer = setTimeout(() => void poll(), FLOW_POLL_MS);
|
|
160
|
+
};
|
|
161
|
+
timer = setTimeout(() => void poll(), FLOW_POLL_MS);
|
|
162
|
+
return () => {
|
|
163
|
+
stopped = true;
|
|
164
|
+
if (timer !== void 0) clearTimeout(timer);
|
|
165
|
+
};
|
|
166
|
+
}, [
|
|
167
|
+
flowId,
|
|
168
|
+
running,
|
|
169
|
+
reload,
|
|
170
|
+
setFlow
|
|
171
|
+
]);
|
|
172
|
+
const begin = async (providerId, type) => {
|
|
173
|
+
if (busyState.state !== null || flowState.state?.status === "running") return;
|
|
174
|
+
setBusyId(providerId);
|
|
175
|
+
const result = await startLogin(providerId, type);
|
|
176
|
+
setBusyId(null);
|
|
177
|
+
if ("flow" in result) setFlow(result.flow);
|
|
178
|
+
else setError(result.error);
|
|
179
|
+
};
|
|
180
|
+
const answer = async (promptId, value) => {
|
|
181
|
+
if (!flow || busyState.state !== null) return;
|
|
182
|
+
setBusyId(flow.providerId);
|
|
183
|
+
const result = await answerLogin(flow.id, promptId, value);
|
|
184
|
+
setBusyId(null);
|
|
185
|
+
if ("flow" in result) setFlow(result.flow);
|
|
186
|
+
else setError(result.error);
|
|
187
|
+
};
|
|
188
|
+
const cancel = async () => {
|
|
189
|
+
if (!flow || busyState.state !== null) return;
|
|
190
|
+
setBusyId(flow.providerId);
|
|
191
|
+
const result = await cancelLogin(flow.id);
|
|
192
|
+
setBusyId(null);
|
|
193
|
+
setFlow("flow" in result ? result.flow : null);
|
|
194
|
+
reload();
|
|
195
|
+
};
|
|
196
|
+
const signOut = async (providerId) => {
|
|
197
|
+
if (busyState.state !== null) return;
|
|
198
|
+
setBusyId(providerId);
|
|
199
|
+
const result = await logoutProvider(providerId);
|
|
200
|
+
if ("error" in result) setError(result.error);
|
|
201
|
+
else await reload();
|
|
202
|
+
setBusyId(null);
|
|
203
|
+
};
|
|
204
|
+
const needle = filter.trim().toLowerCase();
|
|
205
|
+
const connected = (providers ?? []).filter((provider) => provider.authenticated !== void 0);
|
|
206
|
+
const available = (providers ?? []).filter((provider) => provider.authenticated === void 0).filter((provider) => `${provider.name} ${provider.id}`.toLowerCase().includes(needle));
|
|
207
|
+
const busy = busyId !== null || running;
|
|
208
|
+
return /* @__PURE__ */ jsxs(SettingsPage, {
|
|
209
|
+
"data-testid": "provider-settings",
|
|
210
|
+
children: [
|
|
211
|
+
/* @__PURE__ */ jsxs(SettingsHeader, { children: [/* @__PURE__ */ jsx(SettingsTitle, { children: "Providers" }), /* @__PURE__ */ jsxs(SettingsDescription, { children: [
|
|
212
|
+
"Connect the model providers Po can work with. Sign in once and every session on this machine can use it. Credentials stay on this machine, in Pi's ",
|
|
213
|
+
/* @__PURE__ */ jsx("code", {
|
|
214
|
+
className: "font-mono text-doom-hi",
|
|
215
|
+
children: "auth.json"
|
|
216
|
+
}),
|
|
217
|
+
"."
|
|
218
|
+
] })] }),
|
|
219
|
+
providers === null && !error ? /* @__PURE__ */ jsxs(SettingsCard, {
|
|
220
|
+
role: "status",
|
|
221
|
+
"aria-busy": true,
|
|
222
|
+
className: "gap-4 p-5",
|
|
223
|
+
children: [
|
|
224
|
+
/* @__PURE__ */ jsx("span", {
|
|
225
|
+
className: "sr-only",
|
|
226
|
+
children: "Reading providers"
|
|
227
|
+
}),
|
|
228
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-40" }),
|
|
229
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-64" }),
|
|
230
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-52" })
|
|
231
|
+
]
|
|
232
|
+
}) : null,
|
|
233
|
+
providers === null && error ? /* @__PURE__ */ jsx(SettingsCard, { children: /* @__PURE__ */ jsxs(SettingsRow, {
|
|
234
|
+
"data-testid": "provider-settings-error",
|
|
235
|
+
title: error,
|
|
236
|
+
children: [/* @__PURE__ */ jsxs(SettingsRowText, {
|
|
237
|
+
role: "alert",
|
|
238
|
+
children: [/* @__PURE__ */ jsx(SettingsRowTitle, { children: "Po couldn't reach your providers just now" }), /* @__PURE__ */ jsx(SettingsRowDescription, { children: "Nothing has changed. Your sign-ins are where you left them." })]
|
|
239
|
+
}), /* @__PURE__ */ jsx(Button, {
|
|
240
|
+
variant: "outline",
|
|
241
|
+
size: "sm",
|
|
242
|
+
onClick: () => void reload(),
|
|
243
|
+
children: "Try again"
|
|
244
|
+
})]
|
|
245
|
+
}) }) : null,
|
|
246
|
+
providers && error ? /* @__PURE__ */ jsx("p", {
|
|
247
|
+
"data-testid": "provider-settings-error",
|
|
248
|
+
role: "alert",
|
|
249
|
+
className: "text-sm leading-relaxed text-doom-red",
|
|
250
|
+
children: error
|
|
251
|
+
}) : null,
|
|
252
|
+
providers?.length === 0 ? /* @__PURE__ */ jsx(EmptyState, {
|
|
253
|
+
"data-testid": "provider-list-empty",
|
|
254
|
+
className: "rounded-lg border border-dashed border-doom-border py-8",
|
|
255
|
+
title: "No providers to connect",
|
|
256
|
+
description: "Pi hasn't offered any model providers on this machine yet."
|
|
257
|
+
}) : null,
|
|
258
|
+
providers && providers.length > 0 ? /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsxs(SettingsSection, { children: [/* @__PURE__ */ jsx(SettingsSectionHeader, { children: /* @__PURE__ */ jsx(SettingsSectionTitle, { children: "Connected" }) }), connected.length > 0 ? /* @__PURE__ */ jsx(SettingsCard, {
|
|
259
|
+
asChild: true,
|
|
260
|
+
children: /* @__PURE__ */ jsx("ul", { children: connected.map((provider) => /* @__PURE__ */ jsx(ConnectedRow, {
|
|
261
|
+
provider,
|
|
262
|
+
busy,
|
|
263
|
+
onLogout: () => void signOut(provider.id)
|
|
264
|
+
}, provider.id)) })
|
|
265
|
+
}) : /* @__PURE__ */ jsx(EmptyState, {
|
|
266
|
+
className: "rounded-lg border border-dashed border-doom-border py-8",
|
|
267
|
+
title: "Nothing connected yet",
|
|
268
|
+
description: "Pick a provider below. Po takes it from there."
|
|
269
|
+
})] }), /* @__PURE__ */ jsxs(SettingsSection, { children: [
|
|
270
|
+
/* @__PURE__ */ jsxs(SettingsSectionHeader, { children: [/* @__PURE__ */ jsx(SettingsSectionTitle, { children: "Available" }), /* @__PURE__ */ jsxs("span", {
|
|
271
|
+
className: "text-sm text-doom-dim",
|
|
272
|
+
children: [
|
|
273
|
+
connected.length,
|
|
274
|
+
" of ",
|
|
275
|
+
providers.length,
|
|
276
|
+
" connected"
|
|
277
|
+
]
|
|
278
|
+
})] }),
|
|
279
|
+
/* @__PURE__ */ jsxs("label", {
|
|
280
|
+
className: "flex min-h-10 items-center gap-2.5 rounded-lg border border-doom-border bg-doom-deep px-3 transition-colors focus-within:border-doom-green/60",
|
|
281
|
+
children: [/* @__PURE__ */ jsx(SearchIcon, { className: "size-4 shrink-0 text-doom-faint" }), /* @__PURE__ */ jsx(Input, {
|
|
282
|
+
variant: "bare",
|
|
283
|
+
"data-testid": "provider-filter",
|
|
284
|
+
value: filter,
|
|
285
|
+
placeholder: "Search providers",
|
|
286
|
+
"aria-label": "Search providers",
|
|
287
|
+
onChange: (event) => setFilter(event.target.value),
|
|
288
|
+
className: "flex-1"
|
|
289
|
+
})]
|
|
290
|
+
}),
|
|
291
|
+
available.length > 0 ? /* @__PURE__ */ jsx(SettingsCard, {
|
|
292
|
+
asChild: true,
|
|
293
|
+
children: /* @__PURE__ */ jsx("ul", {
|
|
294
|
+
"data-testid": "provider-list",
|
|
295
|
+
children: available.map((provider) => /* @__PURE__ */ jsx(AvailableRow, {
|
|
296
|
+
provider,
|
|
297
|
+
busy,
|
|
298
|
+
onLogin: (type) => void begin(provider.id, type)
|
|
299
|
+
}, provider.id))
|
|
300
|
+
})
|
|
301
|
+
}) : needle ? /* @__PURE__ */ jsx(EmptyState, {
|
|
302
|
+
"data-testid": "provider-no-match",
|
|
303
|
+
className: "rounded-lg border border-doom-border bg-doom-panel py-8",
|
|
304
|
+
title: `No provider called “${filter.trim()}”`,
|
|
305
|
+
description: "Try the company name, like Google or Mistral."
|
|
306
|
+
}) : /* @__PURE__ */ jsx("p", {
|
|
307
|
+
className: "text-sm text-doom-dim",
|
|
308
|
+
children: "Every provider Po knows about is connected."
|
|
309
|
+
})
|
|
310
|
+
] })] }) : null,
|
|
311
|
+
flow ? /* @__PURE__ */ jsx(LoginFlowDialog, {
|
|
312
|
+
flow,
|
|
313
|
+
onAnswer: (promptId, value) => void answer(promptId, value),
|
|
314
|
+
onCancel: () => void cancel(),
|
|
315
|
+
onClose: () => setFlow(null)
|
|
316
|
+
}) : null
|
|
317
|
+
]
|
|
318
|
+
});
|
|
319
|
+
}
|
|
320
|
+
//#endregion
|
|
321
|
+
export { ProviderSettings };
|
|
322
|
+
|
|
323
|
+
//# sourceMappingURL=ProviderSettings.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProviderSettings.mjs","names":[],"sources":["../../../../src/web/features/settings/ProviderSettings.tsx"],"sourcesContent":["import {\n Button,\n Dot,\n EmptyState,\n Input,\n SearchIcon,\n SettingsCard,\n SettingsDescription,\n SettingsHeader,\n SettingsPage,\n SettingsRow,\n SettingsRowDescription,\n SettingsRowText,\n SettingsRowTitle,\n SettingsSection,\n SettingsSectionHeader,\n SettingsSectionTitle,\n SettingsTitle,\n Skeleton,\n} from '@agimon-ai/po-web-components';\nimport { useCallback, useEffect } from 'react';\n\nimport type { AuthMethodType, LoginFlowSnapshot, ProviderAuthSummary } from '../../../types/auth';\nimport { answerLogin, cancelLogin, listProviders, logoutProvider, readLogin, startLogin } from '../../lib/authApi';\nimport { useDashboardState } from '../../stores/dashboardStateStore';\nimport { LoginFlowDialog } from './LoginFlowDialog';\n\nconst FLOW_POLL_MS = 500;\n/** The auth source Pi reports for a credential its own /login stored; the only kind /logout removes. */\nconst STORED_SOURCE = 'stored';\n\nconst ACTION_LABEL: Readonly<Record<AuthMethodType, string>> = { oauth: 'Sign in', api_key: 'Add API key' };\nconst METHOD_NAME: Readonly<Record<AuthMethodType, string>> = { oauth: 'OAuth', api_key: 'an API key' };\n\n/** Where the credential came from, in words: Pi's own store, or the variable that holds the key. */\nfunction ConnectedStatus({ type, source }: NonNullable<ProviderAuthSummary['authenticated']>) {\n if (source === STORED_SOURCE) return <>Signed in with {METHOD_NAME[type]}, saved on this machine</>;\n if (!source) return <>Signed in with {METHOD_NAME[type]}</>;\n return (\n <>\n Using the key in <code className=\"font-mono text-doom-hi\">{source}</code>\n </>\n );\n}\n\nfunction ConnectedRow({\n provider,\n busy,\n onLogout,\n}: {\n provider: ProviderAuthSummary;\n busy: boolean;\n onLogout: () => void;\n}) {\n const auth = provider.authenticated;\n if (!auth) return null;\n return (\n <SettingsRow asChild className=\"gap-x-4\">\n <li data-testid={`provider-${provider.id}`} data-authenticated>\n <Dot tone=\"green\" className=\"size-2\" />\n <div className=\"flex min-w-0 flex-1 flex-col gap-0.5\">\n <span className=\"truncate text-base font-semibold text-doom-hi\">{provider.name}</span>\n <span data-testid={`provider-status-${provider.id}`} className=\"min-w-0 break-words text-sm text-doom-dim\">\n <ConnectedStatus {...auth} />\n </span>\n </div>\n {/* Only a credential Pi stored can be removed here; an environment key is the shell's to unset. */}\n {auth.source === STORED_SOURCE ? (\n <Button\n variant=\"ghost\"\n size=\"sm\"\n data-testid={`provider-logout-${provider.id}`}\n disabled={busy}\n onClick={onLogout}\n className=\"hover:text-doom-red\"\n >\n Sign out\n </Button>\n ) : auth.source ? (\n <span className=\"shrink-0 text-sm text-doom-dim\">Set by your environment</span>\n ) : null}\n </li>\n </SettingsRow>\n );\n}\n\nfunction AvailableRow({\n provider,\n busy,\n onLogin,\n}: {\n provider: ProviderAuthSummary;\n busy: boolean;\n onLogin: (type: AuthMethodType) => void;\n}) {\n return (\n <SettingsRow asChild className=\"gap-x-4 py-3\">\n <li data-testid={`provider-${provider.id}`} data-authenticated={false}>\n <div className=\"flex min-w-0 flex-1 flex-col\">\n <span className=\"truncate text-base font-semibold text-doom-hi\">{provider.name}</span>\n <span className=\"truncate font-mono text-sm text-doom-dim\">{provider.id}</span>\n <span data-testid={`provider-status-${provider.id}`} className=\"sr-only\">\n Not connected\n </span>\n </div>\n <div className=\"flex shrink-0 flex-wrap gap-2\">\n {provider.methods.length === 0 ? (\n <span className=\"text-sm text-doom-dim\">Reads credentials from your environment</span>\n ) : (\n provider.methods.map((method) => (\n <Button\n key={method.type}\n variant=\"ghost\"\n size=\"sm\"\n data-testid={`provider-login-${method.type}-${provider.id}`}\n title={method.label}\n disabled={busy}\n onClick={() => onLogin(method.type)}\n className=\"hover:text-doom-green\"\n >\n {ACTION_LABEL[method.type]}\n </Button>\n ))\n )}\n </div>\n </li>\n </SettingsRow>\n );\n}\n\n/**\n * The providers page: what Pi can sign in to on the hub's machine, and\n * whether it has. A login runs on the hub; this page polls its flow and\n * relays the one question it may ask.\n */\nexport function ProviderSettings() {\n const [providers, setProviders] = useDashboardState<ProviderAuthSummary[] | null>('providers/list', null);\n const [error, setError] = useDashboardState('providers/error', '');\n const [flow, setFlow, flowState] = useDashboardState<LoginFlowSnapshot | null>('providers/flow', null);\n const [busyId, setBusyId, busyState] = useDashboardState<string | null>('providers/busy', null);\n const [filter, setFilter] = useDashboardState('providers/filter', '');\n\n const reload = useCallback(async (): Promise<void> => {\n const result = await listProviders();\n if ('providers' in result) {\n setProviders(result.providers);\n setError('');\n } else {\n setError(result.error);\n }\n }, [setProviders, setError]);\n\n useEffect(() => {\n // eslint-disable-next-line react/set-state-in-effect -- reads the hub's provider auth list over HTTP; the state is the response.\n void reload();\n }, [reload]);\n\n // Poll the running flow one request at a time; once it settles, the list\n // is re-read so the provider's chip reflects the outcome.\n const flowId = flow?.id;\n const running = flow?.status === 'running';\n useEffect(() => {\n if (flowId === undefined || !running) return;\n let stopped = false;\n let timer: ReturnType<typeof setTimeout> | undefined;\n const poll = async (): Promise<void> => {\n const result = await readLogin(flowId);\n if (stopped) return;\n if ('error' in result) {\n setFlow((current) =>\n current && current.id === flowId ? { ...current, status: 'failed', error: result.error } : current,\n );\n return;\n }\n setFlow(result.flow);\n if (result.flow.status !== 'running') {\n void reload();\n return;\n }\n timer = setTimeout(() => void poll(), FLOW_POLL_MS);\n };\n timer = setTimeout(() => void poll(), FLOW_POLL_MS);\n return () => {\n stopped = true;\n if (timer !== undefined) clearTimeout(timer);\n };\n }, [flowId, running, reload, setFlow]);\n\n const begin = async (providerId: string, type: AuthMethodType): Promise<void> => {\n if (busyState.state !== null || flowState.state?.status === 'running') return;\n setBusyId(providerId);\n const result = await startLogin(providerId, type);\n setBusyId(null);\n if ('flow' in result) setFlow(result.flow);\n else setError(result.error);\n };\n\n const answer = async (promptId: string, value: string): Promise<void> => {\n if (!flow || busyState.state !== null) return;\n setBusyId(flow.providerId);\n const result = await answerLogin(flow.id, promptId, value);\n setBusyId(null);\n if ('flow' in result) setFlow(result.flow);\n else setError(result.error);\n };\n\n const cancel = async (): Promise<void> => {\n if (!flow || busyState.state !== null) return;\n setBusyId(flow.providerId);\n const result = await cancelLogin(flow.id);\n setBusyId(null);\n setFlow('flow' in result ? result.flow : null);\n void reload();\n };\n\n const signOut = async (providerId: string): Promise<void> => {\n if (busyState.state !== null) return;\n setBusyId(providerId);\n const result = await logoutProvider(providerId);\n if ('error' in result) setError(result.error);\n else await reload();\n setBusyId(null);\n };\n\n // Connected providers are what a reader came to check, so they get their own\n // group; the long tail is a searchable list rather than a wall of cards.\n const needle = filter.trim().toLowerCase();\n const connected = (providers ?? []).filter((provider) => provider.authenticated !== undefined);\n const available = (providers ?? [])\n .filter((provider) => provider.authenticated === undefined)\n .filter((provider) => `${provider.name} ${provider.id}`.toLowerCase().includes(needle));\n const busy = busyId !== null || running;\n\n return (\n <SettingsPage data-testid=\"provider-settings\">\n <SettingsHeader>\n <SettingsTitle>Providers</SettingsTitle>\n <SettingsDescription>\n Connect the model providers Po can work with. Sign in once and every session on this machine can use it.\n Credentials stay on this machine, in Pi's <code className=\"font-mono text-doom-hi\">auth.json</code>.\n </SettingsDescription>\n </SettingsHeader>\n {providers === null && !error ? (\n <SettingsCard role=\"status\" aria-busy className=\"gap-4 p-5\">\n <span className=\"sr-only\">Reading providers</span>\n <Skeleton className=\"h-4 w-40\" />\n <Skeleton className=\"h-4 w-64\" />\n <Skeleton className=\"h-4 w-52\" />\n </SettingsCard>\n ) : null}\n {providers === null && error ? (\n <SettingsCard>\n <SettingsRow data-testid=\"provider-settings-error\" title={error}>\n <SettingsRowText role=\"alert\">\n <SettingsRowTitle>Po couldn't reach your providers just now</SettingsRowTitle>\n <SettingsRowDescription>\n Nothing has changed. Your sign-ins are where you left them.\n </SettingsRowDescription>\n </SettingsRowText>\n <Button variant=\"outline\" size=\"sm\" onClick={() => void reload()}>\n Try again\n </Button>\n </SettingsRow>\n </SettingsCard>\n ) : null}\n {providers && error ? (\n <p data-testid=\"provider-settings-error\" role=\"alert\" className=\"text-sm leading-relaxed text-doom-red\">\n {error}\n </p>\n ) : null}\n {providers?.length === 0 ? (\n <EmptyState\n data-testid=\"provider-list-empty\"\n className=\"rounded-lg border border-dashed border-doom-border py-8\"\n title=\"No providers to connect\"\n description=\"Pi hasn't offered any model providers on this machine yet.\"\n />\n ) : null}\n {providers && providers.length > 0 ? (\n <>\n <SettingsSection>\n <SettingsSectionHeader>\n <SettingsSectionTitle>Connected</SettingsSectionTitle>\n </SettingsSectionHeader>\n {connected.length > 0 ? (\n <SettingsCard asChild>\n <ul>\n {connected.map((provider) => (\n <ConnectedRow\n key={provider.id}\n provider={provider}\n busy={busy}\n onLogout={() => void signOut(provider.id)}\n />\n ))}\n </ul>\n </SettingsCard>\n ) : (\n <EmptyState\n className=\"rounded-lg border border-dashed border-doom-border py-8\"\n title=\"Nothing connected yet\"\n description=\"Pick a provider below. Po takes it from there.\"\n />\n )}\n </SettingsSection>\n <SettingsSection>\n <SettingsSectionHeader>\n <SettingsSectionTitle>Available</SettingsSectionTitle>\n <span className=\"text-sm text-doom-dim\">\n {connected.length} of {providers.length} connected\n </span>\n </SettingsSectionHeader>\n <label className=\"flex min-h-10 items-center gap-2.5 rounded-lg border border-doom-border bg-doom-deep px-3 transition-colors focus-within:border-doom-green/60\">\n <SearchIcon className=\"size-4 shrink-0 text-doom-faint\" />\n <Input\n variant=\"bare\"\n data-testid=\"provider-filter\"\n value={filter}\n placeholder=\"Search providers\"\n aria-label=\"Search providers\"\n onChange={(event) => setFilter(event.target.value)}\n className=\"flex-1\"\n />\n </label>\n {available.length > 0 ? (\n <SettingsCard asChild>\n <ul data-testid=\"provider-list\">\n {available.map((provider) => (\n <AvailableRow\n key={provider.id}\n provider={provider}\n busy={busy}\n onLogin={(type) => void begin(provider.id, type)}\n />\n ))}\n </ul>\n </SettingsCard>\n ) : needle ? (\n <EmptyState\n data-testid=\"provider-no-match\"\n className=\"rounded-lg border border-doom-border bg-doom-panel py-8\"\n title={`No provider called “${filter.trim()}”`}\n description=\"Try the company name, like Google or Mistral.\"\n />\n ) : (\n <p className=\"text-sm text-doom-dim\">Every provider Po knows about is connected.</p>\n )}\n </SettingsSection>\n </>\n ) : null}\n {flow ? (\n <LoginFlowDialog\n flow={flow}\n onAnswer={(promptId, value) => void answer(promptId, value)}\n onCancel={() => void cancel()}\n onClose={() => setFlow(null)}\n />\n ) : null}\n </SettingsPage>\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
const require_remoteAccessStore = require("../../stores/remoteAccessStore.cjs");
|
|
2
|
+
const require_SessionMcpSettings = require("./SessionMcpSettings.cjs");
|
|
3
|
+
const require_TunnelSettings = require("./TunnelSettings.cjs");
|
|
4
|
+
let react = require("react");
|
|
5
|
+
let _tanstack_react_store = require("@tanstack/react-store");
|
|
6
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
7
|
+
let _agimon_ai_po_web_components = require("@agimon-ai/po-web-components");
|
|
8
|
+
//#region src/web/features/settings/RemoteControlSettings.tsx
|
|
9
|
+
/** Persistent tunnel configuration, separate from the dialog that starts and pairs a remote session. */
|
|
10
|
+
function RemoteControlSettings() {
|
|
11
|
+
const state = (0, _tanstack_react_store.useStore)(require_remoteAccessStore.remoteAccessStore);
|
|
12
|
+
(0, react.useEffect)(() => {
|
|
13
|
+
require_remoteAccessStore.refreshRemoteState();
|
|
14
|
+
}, []);
|
|
15
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_agimon_ai_po_web_components.SettingsPage, {
|
|
16
|
+
"data-testid": "remote-control-settings",
|
|
17
|
+
children: [
|
|
18
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_agimon_ai_po_web_components.SettingsHeader, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_agimon_ai_po_web_components.SettingsTitle, { children: "Remote control" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_agimon_ai_po_web_components.SettingsDescription, { children: "Reach this Po from your phone or another computer. You turn access on and pair devices from the remote access dialog; this page holds what stays the same between visits." })] }),
|
|
19
|
+
state.view === void 0 && state.error ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_agimon_ai_po_web_components.SettingsCard, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_agimon_ai_po_web_components.SettingsRow, {
|
|
20
|
+
title: state.error,
|
|
21
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_agimon_ai_po_web_components.SettingsRowText, {
|
|
22
|
+
role: "alert",
|
|
23
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_agimon_ai_po_web_components.SettingsRowTitle, { children: "Po couldn't read your remote settings just now" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_agimon_ai_po_web_components.SettingsRowDescription, { children: "Nothing has changed. Remote access is as you left it." })]
|
|
24
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_agimon_ai_po_web_components.Button, {
|
|
25
|
+
variant: "outline",
|
|
26
|
+
size: "sm",
|
|
27
|
+
onClick: () => void require_remoteAccessStore.refreshRemoteState(),
|
|
28
|
+
children: "Try again"
|
|
29
|
+
})]
|
|
30
|
+
}) }) : state.view === void 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_agimon_ai_po_web_components.SettingsCard, {
|
|
31
|
+
role: "status",
|
|
32
|
+
"aria-busy": true,
|
|
33
|
+
className: "gap-4 p-5",
|
|
34
|
+
children: [
|
|
35
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
36
|
+
className: "sr-only",
|
|
37
|
+
children: "Reading remote settings"
|
|
38
|
+
}),
|
|
39
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_agimon_ai_po_web_components.Skeleton, { className: "h-4 w-48" }),
|
|
40
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_agimon_ai_po_web_components.Skeleton, { className: "h-4 w-72" })
|
|
41
|
+
]
|
|
42
|
+
}) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_TunnelSettings.TunnelSettings, { tunnel: state.view.settings.tunnel }),
|
|
43
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_SessionMcpSettings.SessionMcpSettings, {})
|
|
44
|
+
]
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
//#endregion
|
|
48
|
+
exports.RemoteControlSettings = RemoteControlSettings;
|
|
49
|
+
|
|
50
|
+
//# sourceMappingURL=RemoteControlSettings.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RemoteControlSettings.cjs","names":["useStore","remoteAccessStore","refreshRemoteState","SettingsPage","SettingsHeader","SettingsTitle","SettingsDescription","SettingsCard","SettingsRow","SettingsRowText","SettingsRowTitle","SettingsRowDescription","Button","Skeleton","TunnelSettings","SessionMcpSettings"],"sources":["../../../../src/web/features/settings/RemoteControlSettings.tsx"],"sourcesContent":["import {\n Button,\n SettingsCard,\n SettingsDescription,\n SettingsHeader,\n SettingsPage,\n SettingsRow,\n SettingsRowDescription,\n SettingsRowText,\n SettingsRowTitle,\n SettingsTitle,\n Skeleton,\n} from '@agimon-ai/po-web-components';\nimport { useStore } from '@tanstack/react-store';\nimport { useEffect } from 'react';\n\nimport { refreshRemoteState, remoteAccessStore } from '../../stores/remoteAccessStore';\nimport { SessionMcpSettings } from './SessionMcpSettings';\nimport { TunnelSettings } from './TunnelSettings';\n\n/** Persistent tunnel configuration, separate from the dialog that starts and pairs a remote session. */\nexport function RemoteControlSettings() {\n const state = useStore(remoteAccessStore);\n\n useEffect(() => {\n void refreshRemoteState();\n }, []);\n\n return (\n <SettingsPage data-testid=\"remote-control-settings\">\n <SettingsHeader>\n <SettingsTitle>Remote control</SettingsTitle>\n <SettingsDescription>\n Reach this Po from your phone or another computer. You turn access on and pair devices from the remote access\n dialog; this page holds what stays the same between visits.\n </SettingsDescription>\n </SettingsHeader>\n\n {state.view === undefined && state.error ? (\n <SettingsCard>\n <SettingsRow title={state.error}>\n <SettingsRowText role=\"alert\">\n <SettingsRowTitle>Po couldn't read your remote settings just now</SettingsRowTitle>\n <SettingsRowDescription>Nothing has changed. Remote access is as you left it.</SettingsRowDescription>\n </SettingsRowText>\n <Button variant=\"outline\" size=\"sm\" onClick={() => void refreshRemoteState()}>\n Try again\n </Button>\n </SettingsRow>\n </SettingsCard>\n ) : state.view === undefined ? (\n <SettingsCard role=\"status\" aria-busy className=\"gap-4 p-5\">\n <span className=\"sr-only\">Reading remote settings</span>\n <Skeleton className=\"h-4 w-48\" />\n <Skeleton className=\"h-4 w-72\" />\n </SettingsCard>\n ) : (\n <TunnelSettings tunnel={state.view.settings.tunnel} />\n )}\n\n <SessionMcpSettings />\n </SettingsPage>\n );\n}\n"],"mappings":";;;;;;;;;AAqBA,SAAgB,wBAAwB;CACtC,MAAM,SAAA,GAAQA,sBAAAA,SAAAA,CAASC,0BAAAA,iBAAiB;CAExC,CAAA,GAAA,MAAA,UAAA,OAAgB;EACd,0BAAKC,mBAAmB;CAC1B,GAAG,CAAC,CAAC;CAEL,OACE,iBAAA,GAAA,kBAAA,KAAA,CAACC,6BAAAA,cAAD;EAAc,eAAY;EAA1B,UAAA;GACE,iBAAA,GAAA,kBAAA,KAAA,CAACC,6BAAAA,gBAAD,EAAA,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,6BAAAA,eAAD,EAAA,UAAe,iBAA6B,CAAA,GAC5C,iBAAA,GAAA,kBAAA,IAAA,CAACC,6BAAAA,qBAAD,EAAA,UAAqB,4KAGA,CAAA,CACP,EAAA,CAAA;GAEf,MAAM,SAAS,KAAA,KAAa,MAAM,QACjC,iBAAA,GAAA,kBAAA,IAAA,CAACC,6BAAAA,cAAD,EAAA,UACE,iBAAA,GAAA,kBAAA,KAAA,CAACC,6BAAAA,aAAD;IAAa,OAAO,MAAM;IAA1B,UAAA,CACE,iBAAA,GAAA,kBAAA,KAAA,CAACC,6BAAAA,iBAAD;KAAiB,MAAK;KAAtB,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,6BAAAA,kBAAD,EAAA,UAAkB,iDAAqE,CAAA,GACvF,iBAAA,GAAA,kBAAA,IAAA,CAACC,6BAAAA,wBAAD,EAAA,UAAwB,wDAA6E,CAAA,CACtF;IACjB,CAAA,GAAA,iBAAA,GAAA,kBAAA,IAAA,CAACC,6BAAAA,QAAD;KAAQ,SAAQ;KAAU,MAAK;KAAK,eAAe,KAAKV,0BAAAA,mBAAmB;KAAG,UAAA;IAEtE,CAAA,CACG;GACD,CAAA,EAAA,CAAA,IACZ,MAAM,SAAS,KAAA,IACjB,iBAAA,GAAA,kBAAA,KAAA,CAACK,6BAAAA,cAAD;IAAc,MAAK;IAAS,aAAA;IAAU,WAAU;IAAhD,UAAA;KACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;MAAM,WAAU;MAAU,UAAA;KAA6B,CAAA;KACvD,iBAAA,GAAA,kBAAA,IAAA,CAACM,6BAAAA,UAAD,EAAU,WAAU,WAAY,CAAA;KAChC,iBAAA,GAAA,kBAAA,IAAA,CAACA,6BAAAA,UAAD,EAAU,WAAU,WAAY,CAAA;IACpB;GAEd,CAAA,IAAA,iBAAA,GAAA,kBAAA,IAAA,CAACC,uBAAAA,gBAAD,EAAgB,QAAQ,MAAM,KAAK,SAAS,OAAS,CAAA;GAGvD,iBAAA,GAAA,kBAAA,IAAA,CAACC,2BAAAA,oBAAD,CAAqB,CAAA;EACT;;AAElB"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
//#region src/web/features/settings/RemoteControlSettings.d.ts
|
|
2
|
+
/** Persistent tunnel configuration, separate from the dialog that starts and pairs a remote session. */
|
|
3
|
+
export declare function RemoteControlSettings(): import("react").JSX.Element;
|
|
4
|
+
//#endregion
|
|
5
|
+
//# sourceMappingURL=RemoteControlSettings.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RemoteControlSettings.d.mts","names":[],"sources":["../../../../src/web/features/settings/RemoteControlSettings.tsx"],"mappings":";;wBAqBgB,yCAAqB,IAAA"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { refreshRemoteState, remoteAccessStore } from "../../stores/remoteAccessStore.mjs";
|
|
2
|
+
import { SessionMcpSettings } from "./SessionMcpSettings.mjs";
|
|
3
|
+
import { TunnelSettings } from "./TunnelSettings.mjs";
|
|
4
|
+
import { useEffect } from "react";
|
|
5
|
+
import { useStore } from "@tanstack/react-store";
|
|
6
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
+
import { Button, SettingsCard, SettingsDescription, SettingsHeader, SettingsPage, SettingsRow, SettingsRowDescription, SettingsRowText, SettingsRowTitle, SettingsTitle, Skeleton } from "@agimon-ai/po-web-components";
|
|
8
|
+
//#region src/web/features/settings/RemoteControlSettings.tsx
|
|
9
|
+
/** Persistent tunnel configuration, separate from the dialog that starts and pairs a remote session. */
|
|
10
|
+
function RemoteControlSettings() {
|
|
11
|
+
const state = useStore(remoteAccessStore);
|
|
12
|
+
useEffect(() => {
|
|
13
|
+
refreshRemoteState();
|
|
14
|
+
}, []);
|
|
15
|
+
return /* @__PURE__ */ jsxs(SettingsPage, {
|
|
16
|
+
"data-testid": "remote-control-settings",
|
|
17
|
+
children: [
|
|
18
|
+
/* @__PURE__ */ jsxs(SettingsHeader, { children: [/* @__PURE__ */ jsx(SettingsTitle, { children: "Remote control" }), /* @__PURE__ */ jsx(SettingsDescription, { children: "Reach this Po from your phone or another computer. You turn access on and pair devices from the remote access dialog; this page holds what stays the same between visits." })] }),
|
|
19
|
+
state.view === void 0 && state.error ? /* @__PURE__ */ jsx(SettingsCard, { children: /* @__PURE__ */ jsxs(SettingsRow, {
|
|
20
|
+
title: state.error,
|
|
21
|
+
children: [/* @__PURE__ */ jsxs(SettingsRowText, {
|
|
22
|
+
role: "alert",
|
|
23
|
+
children: [/* @__PURE__ */ jsx(SettingsRowTitle, { children: "Po couldn't read your remote settings just now" }), /* @__PURE__ */ jsx(SettingsRowDescription, { children: "Nothing has changed. Remote access is as you left it." })]
|
|
24
|
+
}), /* @__PURE__ */ jsx(Button, {
|
|
25
|
+
variant: "outline",
|
|
26
|
+
size: "sm",
|
|
27
|
+
onClick: () => void refreshRemoteState(),
|
|
28
|
+
children: "Try again"
|
|
29
|
+
})]
|
|
30
|
+
}) }) : state.view === void 0 ? /* @__PURE__ */ jsxs(SettingsCard, {
|
|
31
|
+
role: "status",
|
|
32
|
+
"aria-busy": true,
|
|
33
|
+
className: "gap-4 p-5",
|
|
34
|
+
children: [
|
|
35
|
+
/* @__PURE__ */ jsx("span", {
|
|
36
|
+
className: "sr-only",
|
|
37
|
+
children: "Reading remote settings"
|
|
38
|
+
}),
|
|
39
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-48" }),
|
|
40
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-72" })
|
|
41
|
+
]
|
|
42
|
+
}) : /* @__PURE__ */ jsx(TunnelSettings, { tunnel: state.view.settings.tunnel }),
|
|
43
|
+
/* @__PURE__ */ jsx(SessionMcpSettings, {})
|
|
44
|
+
]
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
//#endregion
|
|
48
|
+
export { RemoteControlSettings };
|
|
49
|
+
|
|
50
|
+
//# sourceMappingURL=RemoteControlSettings.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RemoteControlSettings.mjs","names":[],"sources":["../../../../src/web/features/settings/RemoteControlSettings.tsx"],"sourcesContent":["import {\n Button,\n SettingsCard,\n SettingsDescription,\n SettingsHeader,\n SettingsPage,\n SettingsRow,\n SettingsRowDescription,\n SettingsRowText,\n SettingsRowTitle,\n SettingsTitle,\n Skeleton,\n} from '@agimon-ai/po-web-components';\nimport { useStore } from '@tanstack/react-store';\nimport { useEffect } from 'react';\n\nimport { refreshRemoteState, remoteAccessStore } from '../../stores/remoteAccessStore';\nimport { SessionMcpSettings } from './SessionMcpSettings';\nimport { TunnelSettings } from './TunnelSettings';\n\n/** Persistent tunnel configuration, separate from the dialog that starts and pairs a remote session. */\nexport function RemoteControlSettings() {\n const state = useStore(remoteAccessStore);\n\n useEffect(() => {\n void refreshRemoteState();\n }, []);\n\n return (\n <SettingsPage data-testid=\"remote-control-settings\">\n <SettingsHeader>\n <SettingsTitle>Remote control</SettingsTitle>\n <SettingsDescription>\n Reach this Po from your phone or another computer. You turn access on and pair devices from the remote access\n dialog; this page holds what stays the same between visits.\n </SettingsDescription>\n </SettingsHeader>\n\n {state.view === undefined && state.error ? (\n <SettingsCard>\n <SettingsRow title={state.error}>\n <SettingsRowText role=\"alert\">\n <SettingsRowTitle>Po couldn't read your remote settings just now</SettingsRowTitle>\n <SettingsRowDescription>Nothing has changed. Remote access is as you left it.</SettingsRowDescription>\n </SettingsRowText>\n <Button variant=\"outline\" size=\"sm\" onClick={() => void refreshRemoteState()}>\n Try again\n </Button>\n </SettingsRow>\n </SettingsCard>\n ) : state.view === undefined ? (\n <SettingsCard role=\"status\" aria-busy className=\"gap-4 p-5\">\n <span className=\"sr-only\">Reading remote settings</span>\n <Skeleton className=\"h-4 w-48\" />\n <Skeleton className=\"h-4 w-72\" />\n </SettingsCard>\n ) : (\n <TunnelSettings tunnel={state.view.settings.tunnel} />\n )}\n\n <SessionMcpSettings />\n </SettingsPage>\n );\n}\n"],"mappings":";;;;;;;;;AAqBA,SAAgB,wBAAwB;CACtC,MAAM,QAAQ,SAAS,iBAAiB;CAExC,gBAAgB;EACd,mBAAwB;CAC1B,GAAG,CAAC,CAAC;CAEL,OACE,qBAAC,cAAD;EAAc,eAAY;EAA1B,UAAA;GACE,qBAAC,gBAAD,EAAA,UAAA,CACE,oBAAC,eAAD,EAAA,UAAe,iBAA6B,CAAA,GAC5C,oBAAC,qBAAD,EAAA,UAAqB,4KAGA,CAAA,CACP,EAAA,CAAA;GAEf,MAAM,SAAS,KAAA,KAAa,MAAM,QACjC,oBAAC,cAAD,EAAA,UACE,qBAAC,aAAD;IAAa,OAAO,MAAM;IAA1B,UAAA,CACE,qBAAC,iBAAD;KAAiB,MAAK;KAAtB,UAAA,CACE,oBAAC,kBAAD,EAAA,UAAkB,iDAAqE,CAAA,GACvF,oBAAC,wBAAD,EAAA,UAAwB,wDAA6E,CAAA,CACtF;IACjB,CAAA,GAAA,oBAAC,QAAD;KAAQ,SAAQ;KAAU,MAAK;KAAK,eAAe,KAAK,mBAAmB;KAAG,UAAA;IAEtE,CAAA,CACG;GACD,CAAA,EAAA,CAAA,IACZ,MAAM,SAAS,KAAA,IACjB,qBAAC,cAAD;IAAc,MAAK;IAAS,aAAA;IAAU,WAAU;IAAhD,UAAA;KACE,oBAAC,QAAD;MAAM,WAAU;MAAU,UAAA;KAA6B,CAAA;KACvD,oBAAC,UAAD,EAAU,WAAU,WAAY,CAAA;KAChC,oBAAC,UAAD,EAAU,WAAU,WAAY,CAAA;IACpB;GAEd,CAAA,IAAA,oBAAC,gBAAD,EAAgB,QAAQ,MAAM,KAAK,SAAS,OAAS,CAAA;GAGvD,oBAAC,oBAAD,CAAqB,CAAA;EACT;;AAElB"}
|