@nuvin/components 0.1.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/dist/MarkdownBody-XBNXK6P4.js +121 -0
- package/dist/app/App.d.ts +24 -0
- package/dist/app/App.d.ts.map +1 -0
- package/dist/app/AppShell.d.ts +13 -0
- package/dist/app/AppShell.d.ts.map +1 -0
- package/dist/app/Header.d.ts +11 -0
- package/dist/app/Header.d.ts.map +1 -0
- package/dist/app/SessionSubHeader.d.ts +15 -0
- package/dist/app/SessionSubHeader.d.ts.map +1 -0
- package/dist/app/WorkspacePanel.d.ts +15 -0
- package/dist/app/WorkspacePanel.d.ts.map +1 -0
- package/dist/app/app-shell.styles.d.ts +11 -0
- package/dist/app/app-shell.styles.d.ts.map +1 -0
- package/dist/app/route-components.d.ts +46 -0
- package/dist/app/route-components.d.ts.map +1 -0
- package/dist/app/routes.d.ts +11 -0
- package/dist/app/routes.d.ts.map +1 -0
- package/dist/assets/fonts/inter-latin-400-normal.woff2 +0 -0
- package/dist/assets/fonts/inter-latin-500-normal.woff2 +0 -0
- package/dist/assets/fonts/inter-latin-600-normal.woff2 +0 -0
- package/dist/assets/fonts/inter-latin-700-normal.woff2 +0 -0
- package/dist/assets/fonts/jetbrains-mono-latin-400-normal.woff2 +0 -0
- package/dist/assets/fonts/jetbrains-mono-latin-500-normal.woff2 +0 -0
- package/dist/assets/fonts/jetbrains-mono-latin-600-normal.woff2 +0 -0
- package/dist/assets/fonts/jetbrains-mono-latin-700-normal.woff2 +0 -0
- package/dist/chunk-TLWTUPOJ.js +10 -0
- package/dist/features/account/auth-gate.d.ts +17 -0
- package/dist/features/account/auth-gate.d.ts.map +1 -0
- package/dist/features/account/index.d.ts +3 -0
- package/dist/features/account/index.d.ts.map +1 -0
- package/dist/features/composer/Composer.d.ts +39 -0
- package/dist/features/composer/Composer.d.ts.map +1 -0
- package/dist/features/composer/QuestionCard.d.ts +21 -0
- package/dist/features/composer/QuestionCard.d.ts.map +1 -0
- package/dist/features/composer/context-status.d.ts +6 -0
- package/dist/features/composer/context-status.d.ts.map +1 -0
- package/dist/features/composer/index.d.ts +2 -0
- package/dist/features/composer/index.d.ts.map +1 -0
- package/dist/features/config/CloudProviderSetup.d.ts +12 -0
- package/dist/features/config/CloudProviderSetup.d.ts.map +1 -0
- package/dist/features/config/OnboardingGate.d.ts +22 -0
- package/dist/features/config/OnboardingGate.d.ts.map +1 -0
- package/dist/features/config/ProviderManager.d.ts +15 -0
- package/dist/features/config/ProviderManager.d.ts.map +1 -0
- package/dist/features/config/WorkspaceManager.d.ts +13 -0
- package/dist/features/config/WorkspaceManager.d.ts.map +1 -0
- package/dist/features/config/config-client.d.ts +49 -0
- package/dist/features/config/config-client.d.ts.map +1 -0
- package/dist/features/config/index.d.ts +10 -0
- package/dist/features/config/index.d.ts.map +1 -0
- package/dist/features/config/protocol-config-client.d.ts +22 -0
- package/dist/features/config/protocol-config-client.d.ts.map +1 -0
- package/dist/features/config/rest-config-client.d.ts +4 -0
- package/dist/features/config/rest-config-client.d.ts.map +1 -0
- package/dist/features/config/use-provider-status.d.ts +8 -0
- package/dist/features/config/use-provider-status.d.ts.map +1 -0
- package/dist/features/daemon-switcher/DaemonAvatar.d.ts +16 -0
- package/dist/features/daemon-switcher/DaemonAvatar.d.ts.map +1 -0
- package/dist/features/daemon-switcher/DaemonRail.d.ts +18 -0
- package/dist/features/daemon-switcher/DaemonRail.d.ts.map +1 -0
- package/dist/features/daemon-switcher/DaemonSwitcher.d.ts +17 -0
- package/dist/features/daemon-switcher/DaemonSwitcher.d.ts.map +1 -0
- package/dist/features/daemon-switcher/index.d.ts +7 -0
- package/dist/features/daemon-switcher/index.d.ts.map +1 -0
- package/dist/features/diff/DiffView.d.ts +13 -0
- package/dist/features/diff/DiffView.d.ts.map +1 -0
- package/dist/features/diff/diff.d.ts +23 -0
- package/dist/features/diff/diff.d.ts.map +1 -0
- package/dist/features/diff/index.d.ts +4 -0
- package/dist/features/diff/index.d.ts.map +1 -0
- package/dist/features/launcher/SessionItem.d.ts +12 -0
- package/dist/features/launcher/SessionItem.d.ts.map +1 -0
- package/dist/features/launcher/SessionSidebar.d.ts +24 -0
- package/dist/features/launcher/SessionSidebar.d.ts.map +1 -0
- package/dist/features/launcher/index.d.ts +5 -0
- package/dist/features/launcher/index.d.ts.map +1 -0
- package/dist/features/launcher/session-sidebar-model.d.ts +77 -0
- package/dist/features/launcher/session-sidebar-model.d.ts.map +1 -0
- package/dist/features/launcher/session-status.d.ts +9 -0
- package/dist/features/launcher/session-status.d.ts.map +1 -0
- package/dist/features/launcher/use-daemon-history.d.ts +17 -0
- package/dist/features/launcher/use-daemon-history.d.ts.map +1 -0
- package/dist/features/new-session/StartScreen.d.ts +31 -0
- package/dist/features/new-session/StartScreen.d.ts.map +1 -0
- package/dist/features/new-session/index.d.ts +3 -0
- package/dist/features/new-session/index.d.ts.map +1 -0
- package/dist/features/new-session/start-screen.styles.d.ts +46 -0
- package/dist/features/new-session/start-screen.styles.d.ts.map +1 -0
- package/dist/features/picker/Picker.d.ts +23 -0
- package/dist/features/picker/Picker.d.ts.map +1 -0
- package/dist/features/picker/PickerSession.d.ts +8 -0
- package/dist/features/picker/PickerSession.d.ts.map +1 -0
- package/dist/features/picker/index.d.ts +6 -0
- package/dist/features/picker/index.d.ts.map +1 -0
- package/dist/features/picker/picker-model.d.ts +31 -0
- package/dist/features/picker/picker-model.d.ts.map +1 -0
- package/dist/features/tabs/Tab.d.ts +8 -0
- package/dist/features/tabs/Tab.d.ts.map +1 -0
- package/dist/features/tabs/TabBar.d.ts +7 -0
- package/dist/features/tabs/TabBar.d.ts.map +1 -0
- package/dist/features/tabs/index.d.ts +8 -0
- package/dist/features/tabs/index.d.ts.map +1 -0
- package/dist/features/tabs/tab-model.d.ts +39 -0
- package/dist/features/tabs/tab-model.d.ts.map +1 -0
- package/dist/features/tabs/tab.styles.d.ts +9 -0
- package/dist/features/tabs/tab.styles.d.ts.map +1 -0
- package/dist/features/theme/ThemeToggle.d.ts +8 -0
- package/dist/features/theme/ThemeToggle.d.ts.map +1 -0
- package/dist/features/theme/index.d.ts +5 -0
- package/dist/features/theme/index.d.ts.map +1 -0
- package/dist/features/theme/themes.d.ts +13 -0
- package/dist/features/theme/themes.d.ts.map +1 -0
- package/dist/features/theme/use-theme-mode.d.ts +3 -0
- package/dist/features/theme/use-theme-mode.d.ts.map +1 -0
- package/dist/features/transcript/components/AssistantMessage.d.ts +21 -0
- package/dist/features/transcript/components/AssistantMessage.d.ts.map +1 -0
- package/dist/features/transcript/components/ChildMessagesContext.d.ts +27 -0
- package/dist/features/transcript/components/ChildMessagesContext.d.ts.map +1 -0
- package/dist/features/transcript/components/CodeBlock.d.ts +5 -0
- package/dist/features/transcript/components/CodeBlock.d.ts.map +1 -0
- package/dist/features/transcript/components/MarkdownBody.d.ts +17 -0
- package/dist/features/transcript/components/MarkdownBody.d.ts.map +1 -0
- package/dist/features/transcript/components/MessageList.d.ts +24 -0
- package/dist/features/transcript/components/MessageList.d.ts.map +1 -0
- package/dist/features/transcript/components/NestedMessageListContext.d.ts +18 -0
- package/dist/features/transcript/components/NestedMessageListContext.d.ts.map +1 -0
- package/dist/features/transcript/components/ProcessingIndicator.d.ts +5 -0
- package/dist/features/transcript/components/ProcessingIndicator.d.ts.map +1 -0
- package/dist/features/transcript/components/styles-test-utils.d.ts +6 -0
- package/dist/features/transcript/components/styles-test-utils.d.ts.map +1 -0
- package/dist/features/transcript/components/tool-display/BareLine.d.ts +14 -0
- package/dist/features/transcript/components/tool-display/BareLine.d.ts.map +1 -0
- package/dist/features/transcript/components/tool-display/Card.d.ts +31 -0
- package/dist/features/transcript/components/tool-display/Card.d.ts.map +1 -0
- package/dist/features/transcript/components/tool-display/Turn.d.ts +15 -0
- package/dist/features/transcript/components/tool-display/Turn.d.ts.map +1 -0
- package/dist/features/transcript/components/tool-display/index.d.ts +3 -0
- package/dist/features/transcript/components/tool-display/index.d.ts.map +1 -0
- package/dist/features/transcript/components/tool-display/renderers/AskUserRenderer.d.ts +4 -0
- package/dist/features/transcript/components/tool-display/renderers/AskUserRenderer.d.ts.map +1 -0
- package/dist/features/transcript/components/tool-display/renderers/AssignTaskRenderer.d.ts +9 -0
- package/dist/features/transcript/components/tool-display/renderers/AssignTaskRenderer.d.ts.map +1 -0
- package/dist/features/transcript/components/tool-display/renderers/BareToolRenderer.d.ts +8 -0
- package/dist/features/transcript/components/tool-display/renderers/BareToolRenderer.d.ts.map +1 -0
- package/dist/features/transcript/components/tool-display/renderers/BashRenderer.d.ts +11 -0
- package/dist/features/transcript/components/tool-display/renderers/BashRenderer.d.ts.map +1 -0
- package/dist/features/transcript/components/tool-display/renderers/FileEditRenderer.d.ts +4 -0
- package/dist/features/transcript/components/tool-display/renderers/FileEditRenderer.d.ts.map +1 -0
- package/dist/features/transcript/components/tool-display/renderers/FileNewRenderer.d.ts +4 -0
- package/dist/features/transcript/components/tool-display/renderers/FileNewRenderer.d.ts.map +1 -0
- package/dist/features/transcript/components/tool-display/renderers/TodoWriteRenderer.d.ts +4 -0
- package/dist/features/transcript/components/tool-display/renderers/TodoWriteRenderer.d.ts.map +1 -0
- package/dist/features/transcript/components/tool-display/renderers/UnknownRenderer.d.ts +4 -0
- package/dist/features/transcript/components/tool-display/renderers/UnknownRenderer.d.ts.map +1 -0
- package/dist/features/transcript/components/tool-display/tool-icon.d.ts +4 -0
- package/dist/features/transcript/components/tool-display/tool-icon.d.ts.map +1 -0
- package/dist/features/transcript/components/tool-display/tool-meta.d.ts +9 -0
- package/dist/features/transcript/components/tool-display/tool-meta.d.ts.map +1 -0
- package/dist/features/transcript/components/tool-display/tool-variants.d.ts +8 -0
- package/dist/features/transcript/components/tool-display/tool-variants.d.ts.map +1 -0
- package/dist/features/transcript/components/tool-display/types.d.ts +11 -0
- package/dist/features/transcript/components/tool-display/types.d.ts.map +1 -0
- package/dist/features/transcript/hooks/use-live-tick.d.ts +8 -0
- package/dist/features/transcript/hooks/use-live-tick.d.ts.map +1 -0
- package/dist/features/transcript/hooks/use-revealed-text.d.ts +28 -0
- package/dist/features/transcript/hooks/use-revealed-text.d.ts.map +1 -0
- package/dist/features/transcript/index.d.ts +6 -0
- package/dist/features/transcript/index.d.ts.map +1 -0
- package/dist/features/transcript/lib/message-groups.d.ts +9 -0
- package/dist/features/transcript/lib/message-groups.d.ts.map +1 -0
- package/dist/features/transcript/lib/preview-lines.d.ts +27 -0
- package/dist/features/transcript/lib/preview-lines.d.ts.map +1 -0
- package/dist/features/transcript/lib/processing-state.d.ts +16 -0
- package/dist/features/transcript/lib/processing-state.d.ts.map +1 -0
- package/dist/features/transcript/lib/reasoning-label.d.ts +9 -0
- package/dist/features/transcript/lib/reasoning-label.d.ts.map +1 -0
- package/dist/features/transcript/lib/tool-format-utils.d.ts +29 -0
- package/dist/features/transcript/lib/tool-format-utils.d.ts.map +1 -0
- package/dist/features/transcript/lib/tool-formatters.d.ts +45 -0
- package/dist/features/transcript/lib/tool-formatters.d.ts.map +1 -0
- package/dist/features/transcript/lib/tool-status.d.ts +39 -0
- package/dist/features/transcript/lib/tool-status.d.ts.map +1 -0
- package/dist/features/transcript/lib/transcript-rows.d.ts +15 -0
- package/dist/features/transcript/lib/transcript-rows.d.ts.map +1 -0
- package/dist/features/transcript/lib/turn-groups.d.ts +20 -0
- package/dist/features/transcript/lib/turn-groups.d.ts.map +1 -0
- package/dist/features/transcript/lib/turn-summary.d.ts +11 -0
- package/dist/features/transcript/lib/turn-summary.d.ts.map +1 -0
- package/dist/features/workflows/WorkflowsPanel.d.ts +11 -0
- package/dist/features/workflows/WorkflowsPanel.d.ts.map +1 -0
- package/dist/features/workflows/index.d.ts +3 -0
- package/dist/features/workflows/index.d.ts.map +1 -0
- package/dist/index.d.ts +45 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7877 -0
- package/dist/session/client-commands.d.ts +26 -0
- package/dist/session/client-commands.d.ts.map +1 -0
- package/dist/session/commands.d.ts +9 -0
- package/dist/session/commands.d.ts.map +1 -0
- package/dist/session/directory-source.d.ts +101 -0
- package/dist/session/directory-source.d.ts.map +1 -0
- package/dist/session/directory-status.d.ts +8 -0
- package/dist/session/directory-status.d.ts.map +1 -0
- package/dist/session/directory.d.ts +41 -0
- package/dist/session/directory.d.ts.map +1 -0
- package/dist/session/index.d.ts +16 -0
- package/dist/session/index.d.ts.map +1 -0
- package/dist/session/snapshot.d.ts +11 -0
- package/dist/session/snapshot.d.ts.map +1 -0
- package/dist/session/store.d.ts +96 -0
- package/dist/session/store.d.ts.map +1 -0
- package/dist/session/tool-timing.d.ts +14 -0
- package/dist/session/tool-timing.d.ts.map +1 -0
- package/dist/session/transport.d.ts +187 -0
- package/dist/session/transport.d.ts.map +1 -0
- package/dist/session/types.d.ts +73 -0
- package/dist/session/types.d.ts.map +1 -0
- package/dist/session/use-directory.d.ts +54 -0
- package/dist/session/use-directory.d.ts.map +1 -0
- package/dist/session/use-session-transport.d.ts +10 -0
- package/dist/session/use-session-transport.d.ts.map +1 -0
- package/dist/shared/hooks/use-stick-to-bottom-sentinel.d.ts +64 -0
- package/dist/shared/hooks/use-stick-to-bottom-sentinel.d.ts.map +1 -0
- package/dist/shared/lib/navigation.d.ts +20 -0
- package/dist/shared/lib/navigation.d.ts.map +1 -0
- package/dist/shared/lib/toast.d.ts +35 -0
- package/dist/shared/lib/toast.d.ts.map +1 -0
- package/dist/shared/lib/utils.d.ts +3 -0
- package/dist/shared/lib/utils.d.ts.map +1 -0
- package/dist/shared/ui/CopyButton.d.ts +6 -0
- package/dist/shared/ui/CopyButton.d.ts.map +1 -0
- package/dist/shared/ui/avatar.d.ts +9 -0
- package/dist/shared/ui/avatar.d.ts.map +1 -0
- package/dist/shared/ui/badge.d.ts +8 -0
- package/dist/shared/ui/badge.d.ts.map +1 -0
- package/dist/shared/ui/button.d.ts +11 -0
- package/dist/shared/ui/button.d.ts.map +1 -0
- package/dist/shared/ui/command.d.ts +10 -0
- package/dist/shared/ui/command.d.ts.map +1 -0
- package/dist/shared/ui/confirm-dialog.d.ts +17 -0
- package/dist/shared/ui/confirm-dialog.d.ts.map +1 -0
- package/dist/shared/ui/dropdown-menu.d.ts +9 -0
- package/dist/shared/ui/dropdown-menu.d.ts.map +1 -0
- package/dist/shared/ui/input.d.ts +3 -0
- package/dist/shared/ui/input.d.ts.map +1 -0
- package/dist/shared/ui/kbd.d.ts +3 -0
- package/dist/shared/ui/kbd.d.ts.map +1 -0
- package/dist/shared/ui/popover.d.ts +7 -0
- package/dist/shared/ui/popover.d.ts.map +1 -0
- package/dist/shared/ui/scroll-area.d.ts +5 -0
- package/dist/shared/ui/scroll-area.d.ts.map +1 -0
- package/dist/shared/ui/tabs.d.ts +7 -0
- package/dist/shared/ui/tabs.d.ts.map +1 -0
- package/dist/shared/ui/toast.d.ts +7 -0
- package/dist/shared/ui/toast.d.ts.map +1 -0
- package/dist/shared/ui/tooltip.d.ts +7 -0
- package/dist/shared/ui/tooltip.d.ts.map +1 -0
- package/dist/styles/base.css +49 -0
- package/dist/styles/components.css +206 -0
- package/dist/styles/effects.css +76 -0
- package/dist/styles/fonts.css +49 -0
- package/dist/styles/index.css +14 -0
- package/dist/styles/styles.test.ts +45 -0
- package/dist/styles/themes.css +33 -0
- package/dist/styles/tokens.css +245 -0
- package/dist/styles/tokens.test.ts +113 -0
- package/dist/test-setup.d.ts +29 -0
- package/dist/test-setup.d.ts.map +1 -0
- package/package.json +71 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/features/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,YAAY,EACV,gBAAgB,EAChB,YAAY,EACZ,oBAAoB,EACpB,WAAW,EACX,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,YAAY,EACV,oBAAoB,EACpB,2BAA2B,GAC5B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { ServerDirectory } from "@nuvin/session/client";
|
|
2
|
+
import type { ProviderConfigClient } from "./config-client";
|
|
3
|
+
/**
|
|
4
|
+
* Cloud ProviderConfigClient (web spec §7): executes the P1 provider-config
|
|
5
|
+
* DaemonCommands (list-providers / set-default-provider / set-provider-auth /
|
|
6
|
+
* clear-provider-auth) against the SELECTED daemon's directory socket. It can
|
|
7
|
+
* NOT create or delete named providers — the daemon's set-provider-auth edits
|
|
8
|
+
* existing providers only (locked decision 1) — so it extends the shared
|
|
9
|
+
* subset, not the REST ConfigClient.
|
|
10
|
+
*/
|
|
11
|
+
export interface ProtocolConfigClient extends ProviderConfigClient {
|
|
12
|
+
setProviderAuth(providerId: string, credential: string): Promise<void>;
|
|
13
|
+
clearProviderAuth(providerId: string): Promise<void>;
|
|
14
|
+
}
|
|
15
|
+
export type ProtocolConfigClientOptions = {
|
|
16
|
+
/** Directory server name (= daemon id in cloud) the commands target. */
|
|
17
|
+
server: string;
|
|
18
|
+
/** Live-directory accessor (mirrors the getDirectory() module getter). */
|
|
19
|
+
getDirectory: () => ServerDirectory | null;
|
|
20
|
+
};
|
|
21
|
+
export declare function createProtocolConfigClient(options: ProtocolConfigClientOptions): ProtocolConfigClient;
|
|
22
|
+
//# sourceMappingURL=protocol-config-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol-config-client.d.ts","sourceRoot":"","sources":["../../../src/features/config/protocol-config-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,KAAK,EAAE,oBAAoB,EAAe,MAAM,iBAAiB,CAAC;AAEzE;;;;;;;GAOG;AACH,MAAM,WAAW,oBAAqB,SAAQ,oBAAoB;IAChE,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtD;AAED,MAAM,MAAM,2BAA2B,GAAG;IACxC,wEAAwE;IACxE,MAAM,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,YAAY,EAAE,MAAM,eAAe,GAAG,IAAI,CAAC;CAC5C,CAAC;AAEF,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,2BAA2B,GACnC,oBAAoB,CA4BtB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rest-config-client.d.ts","sourceRoot":"","sources":["../../../src/features/config/rest-config-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,YAAY,EAGb,MAAM,iBAAiB,CAAC;AAezB,8EAA8E;AAC9E,wBAAgB,kBAAkB,CAAC,SAAS,GAAE,OAAO,KAAa,GAAG,YAAY,CAqChF"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { DirectoryView, ServerDirectory } from "@nuvin/session/client";
|
|
2
|
+
/** Per-daemon onboarding status (web spec §7): which ONLINE daemons have no
|
|
3
|
+
* authed provider. Fail-open — errors count as configured (never block). */
|
|
4
|
+
export declare function useProviderStatus(enabled: boolean, view: DirectoryView, directoryAccessor?: () => ServerDirectory | null): {
|
|
5
|
+
unconfigured: ReadonlySet<string>;
|
|
6
|
+
refresh: () => void;
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=use-provider-status.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-provider-status.d.ts","sourceRoot":"","sources":["../../../src/features/config/use-provider-status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAK5E;4EAC4E;AAC5E,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,aAAa,EACnB,iBAAiB,GAAE,MAAM,eAAe,GAAG,IAAmB,GAC7D;IAAE,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAAC,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE,CAwC5D"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface DaemonAvatarProps {
|
|
2
|
+
name: string;
|
|
3
|
+
initials: string;
|
|
4
|
+
online: boolean;
|
|
5
|
+
active: boolean;
|
|
6
|
+
onSelect: (name: string) => void;
|
|
7
|
+
/** Human-readable name for the tooltip (cloud). Defaults to `name`. */
|
|
8
|
+
label?: string;
|
|
9
|
+
/** Secondary tooltip line, e.g. "last seen 2h ago" (cloud). */
|
|
10
|
+
hint?: string;
|
|
11
|
+
/** Needs-setup dot (cloud per-daemon onboarding, web spec §7). */
|
|
12
|
+
badge?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export declare function initialsFrom(name: string): string;
|
|
15
|
+
export declare function DaemonAvatar({ name, initials, online, active, onSelect, label, hint, badge, }: DaemonAvatarProps): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
//# sourceMappingURL=DaemonAvatar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DaemonAvatar.d.ts","sourceRoot":"","sources":["../../../src/features/daemon-switcher/DaemonAvatar.tsx"],"names":[],"mappings":"AAIA,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+DAA+D;IAC/D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kEAAkE;IAClE,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGjD;AAED,wBAAgB,YAAY,CAAC,EAC3B,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,MAAM,EACN,QAAQ,EACR,KAAK,EACL,IAAI,EACJ,KAAK,GACN,EAAE,iBAAiB,2CAyCnB"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
export interface DaemonRailProps {
|
|
3
|
+
daemons: {
|
|
4
|
+
name: string;
|
|
5
|
+
online: boolean;
|
|
6
|
+
label?: string;
|
|
7
|
+
hint?: string;
|
|
8
|
+
badge?: boolean;
|
|
9
|
+
}[];
|
|
10
|
+
selected: string;
|
|
11
|
+
onSelect: (name: string) => void;
|
|
12
|
+
onAddDaemon?: () => void;
|
|
13
|
+
onHome?: () => void;
|
|
14
|
+
/** Cloud: rendered below the add button (e.g. Clerk UserButton). */
|
|
15
|
+
footer?: ReactNode;
|
|
16
|
+
}
|
|
17
|
+
export declare function DaemonRail({ daemons, selected, onSelect, onAddDaemon, onHome, footer, }: DaemonRailProps): import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
//# sourceMappingURL=DaemonRail.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DaemonRail.d.ts","sourceRoot":"","sources":["../../../src/features/daemon-switcher/DaemonRail.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAMvC,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;IAC7F,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,oEAAoE;IACpE,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AAED,wBAAgB,UAAU,CAAC,EACzB,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,MAAM,EACN,MAAM,GACP,EAAE,eAAe,2CAkFjB"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export type DaemonSwitcherProps = {
|
|
2
|
+
servers: {
|
|
3
|
+
name: string;
|
|
4
|
+
online: boolean;
|
|
5
|
+
}[];
|
|
6
|
+
selected: string;
|
|
7
|
+
onSelect: (name: string) => void;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* LOCAL ▾ daemon switcher (spec §7 / R9).
|
|
11
|
+
*
|
|
12
|
+
* Renders nothing when fewer than 2 servers are present (single-daemon case
|
|
13
|
+
* — zero extra chrome per R9). When ≥2 servers exist, renders a small menu
|
|
14
|
+
* listing all daemons. Offline daemons are dimmed (aria-disabled + data-offline).
|
|
15
|
+
*/
|
|
16
|
+
export declare function DaemonSwitcher({ servers, selected, onSelect }: DaemonSwitcherProps): import("react/jsx-runtime").JSX.Element | null;
|
|
17
|
+
//# sourceMappingURL=DaemonSwitcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DaemonSwitcher.d.ts","sourceRoot":"","sources":["../../../src/features/daemon-switcher/DaemonSwitcher.tsx"],"names":[],"mappings":"AAAA,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,mBAAmB,kDAgClF"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export type { DaemonAvatarProps } from "./DaemonAvatar";
|
|
2
|
+
export { DaemonAvatar, initialsFrom } from "./DaemonAvatar";
|
|
3
|
+
export type { DaemonRailProps } from "./DaemonRail";
|
|
4
|
+
export { DaemonRail } from "./DaemonRail";
|
|
5
|
+
export type { DaemonSwitcherProps } from "./DaemonSwitcher";
|
|
6
|
+
export { DaemonSwitcher } from "./DaemonSwitcher";
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/features/daemon-switcher/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC5D,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { DiffLine } from "./diff";
|
|
2
|
+
/**
|
|
3
|
+
* `nv-diff` is kept as a structural hook: file-diff-renders.test.tsx queries it
|
|
4
|
+
* to detect whether a DiffView rendered, and DiffView.test.tsx pins the
|
|
5
|
+
* `nv-diff-row`/`-gutter`/`-sep` hooks plus the `data-tone`/`data-kind` seams.
|
|
6
|
+
* Visuals come from the prototype DiffBlock token utilities (nuvin-web.html
|
|
7
|
+
* lines 197-218): `bg-surface-sunken`, `text-diff-*`, `text-syn-*`.
|
|
8
|
+
*/
|
|
9
|
+
export declare const DIFF_VIEW_CLASS = "nv-diff";
|
|
10
|
+
export declare function DiffView({ lines }: {
|
|
11
|
+
lines: DiffLine[];
|
|
12
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
//# sourceMappingURL=DiffView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DiffView.d.ts","sourceRoot":"","sources":["../../../src/features/diff/DiffView.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAe,MAAM,QAAQ,CAAC;AAEpD;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,YAAY,CAAC;AA8BzC,wBAAgB,QAAQ,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,QAAQ,EAAE,CAAA;CAAE,2CAgExD"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export type DiffSegment = {
|
|
2
|
+
text: string;
|
|
3
|
+
type: "add" | "remove" | "unchanged";
|
|
4
|
+
};
|
|
5
|
+
export type DiffLine = {
|
|
6
|
+
content: string;
|
|
7
|
+
newLineNum?: number;
|
|
8
|
+
oldLineNum?: number;
|
|
9
|
+
segments?: DiffSegment[];
|
|
10
|
+
type: "add" | "context" | "modify" | "remove";
|
|
11
|
+
};
|
|
12
|
+
export interface LineNumbers {
|
|
13
|
+
newEndLine: number;
|
|
14
|
+
newLineCount: number;
|
|
15
|
+
newStartLine: number;
|
|
16
|
+
oldEndLine: number;
|
|
17
|
+
oldLineCount: number;
|
|
18
|
+
oldStartLine: number;
|
|
19
|
+
}
|
|
20
|
+
export declare function createSimpleDiff(search: string, replace: string, lineNumbers?: LineNumbers): DiffLine[];
|
|
21
|
+
export declare function diffLines(oldText: string, newText: string): DiffLine[];
|
|
22
|
+
export declare function linesAsAdditions(text: string, startLine?: number): DiffLine[];
|
|
23
|
+
//# sourceMappingURL=diff.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../../src/features/diff/diff.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,KAAK,GAAG,QAAQ,GAAG,WAAW,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IACzB,IAAI,EAAE,KAAK,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;CAC/C,CAAC;AAEF,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AA0BD,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,WAAW,GACxB,QAAQ,EAAE,CAcZ;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,QAAQ,EAAE,CAEtE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,SAAI,GAAG,QAAQ,EAAE,CAOxE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/features/diff/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { SidebarRow } from "./session-sidebar-model";
|
|
2
|
+
export interface SessionItemProps {
|
|
3
|
+
row: SidebarRow;
|
|
4
|
+
onSelect: (row: SidebarRow) => void;
|
|
5
|
+
onClose: (row: SidebarRow) => void;
|
|
6
|
+
onDelete: (row: SidebarRow) => void;
|
|
7
|
+
/** True while a REST delete is in flight for this row (spec §5.5): forces the
|
|
8
|
+
* delete button visible, disables it, and swaps the trash icon for a spinner. */
|
|
9
|
+
deleting?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export declare function SessionItem({ row, onSelect, onClose, onDelete, deleting, }: SessionItemProps): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
//# sourceMappingURL=SessionItem.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionItem.d.ts","sourceRoot":"","sources":["../../../src/features/launcher/SessionItem.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1D,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,UAAU,CAAC;IAChB,QAAQ,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,CAAC;IACpC,OAAO,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,CAAC;IACnC,QAAQ,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,CAAC;IACpC;sFACkF;IAClF,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA0CD,wBAAgB,WAAW,CAAC,EAC1B,GAAG,EACH,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,QAAgB,GACjB,EAAE,gBAAgB,2CA0FlB"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { SidebarModel, SidebarRow } from "./session-sidebar-model";
|
|
2
|
+
export interface SessionSidebarProps {
|
|
3
|
+
/** Active config profile — the highest-level context, shown as a banner atop
|
|
4
|
+
* the sidebar. Absent/"default" ⇒ banner hidden. */
|
|
5
|
+
profile?: string;
|
|
6
|
+
daemonName: string;
|
|
7
|
+
sessionCount: number;
|
|
8
|
+
model: SidebarModel;
|
|
9
|
+
query: string;
|
|
10
|
+
onQueryChange: (q: string) => void;
|
|
11
|
+
onSelectRow: (row: SidebarRow) => void;
|
|
12
|
+
onKillSession: (row: SidebarRow) => void;
|
|
13
|
+
onDeleteCold: (row: SidebarRow) => void;
|
|
14
|
+
onKillAndDelete: (row: SidebarRow) => void;
|
|
15
|
+
/** Row keys whose REST delete is in flight — render a spinner on those rows (spec §5.5). */
|
|
16
|
+
deletingRowKeys?: ReadonlySet<string>;
|
|
17
|
+
onNewSession: () => void;
|
|
18
|
+
collapsed: boolean;
|
|
19
|
+
onToggleCollapsed: () => void;
|
|
20
|
+
themeMode: "dark" | "light";
|
|
21
|
+
onToggleTheme: () => void;
|
|
22
|
+
}
|
|
23
|
+
export declare function SessionSidebar({ profile, daemonName, sessionCount, model, query, onQueryChange, onSelectRow, onKillSession, onDeleteCold, onKillAndDelete, deletingRowKeys, onNewSession, collapsed, onToggleCollapsed, themeMode, onToggleTheme, }: SessionSidebarProps): import("react/jsx-runtime").JSX.Element;
|
|
24
|
+
//# sourceMappingURL=SessionSidebar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionSidebar.d.ts","sourceRoot":"","sources":["../../../src/features/launcher/SessionSidebar.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAExE,MAAM,WAAW,mBAAmB;IAClC;yDACqD;IACrD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,YAAY,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,WAAW,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,CAAC;IACvC,aAAa,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,CAAC;IACzC,YAAY,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,CAAC;IACxC,eAAe,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,CAAC;IAC3C,4FAA4F;IAC5F,eAAe,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACtC,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5B,aAAa,EAAE,MAAM,IAAI,CAAC;CAC3B;AAID,wBAAgB,cAAc,CAAC,EAC7B,OAAO,EACP,UAAU,EACV,YAAY,EACZ,KAAK,EACL,KAAK,EACL,aAAa,EACb,WAAW,EACX,aAAa,EACb,YAAY,EACZ,eAAe,EACf,eAAe,EACf,YAAY,EACZ,SAAS,EACT,iBAAiB,EACjB,SAAS,EACT,aAAa,GACd,EAAE,mBAAmB,2CAkPrB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/features/launcher/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import type { DirectoryView } from "@nuvin/session/client";
|
|
2
|
+
import type { HistorySummary, SessionDescriptor } from "@nuvin/session/protocol";
|
|
3
|
+
import type { TabState } from "@/session";
|
|
4
|
+
import { type SessionMetaTone } from "./session-status";
|
|
5
|
+
export type { SessionMetaTone } from "./session-status";
|
|
6
|
+
export type SidebarRowKind = "open" | "live" | "cold";
|
|
7
|
+
export interface SidebarRow {
|
|
8
|
+
kind: SidebarRowKind;
|
|
9
|
+
/** Stable React key + test id. open/live = tabKey; cold = `cold:${server}::${id}`. */
|
|
10
|
+
rowKey: string;
|
|
11
|
+
/** Store tabKey when this row maps to an open tab; null for live-not-open and cold. */
|
|
12
|
+
tabKey: string | null;
|
|
13
|
+
server: string;
|
|
14
|
+
/** Live sessionId (open/live) or cold history id (cold). */
|
|
15
|
+
sessionId: string;
|
|
16
|
+
/**
|
|
17
|
+
* Owning workspace name. Always set for cold rows (drives workspace grouping +
|
|
18
|
+
* the workspace-bound resume/delete call sites). "" for open/live rows, which
|
|
19
|
+
* never route through the workspace-scoped history APIs.
|
|
20
|
+
*/
|
|
21
|
+
workspace: string;
|
|
22
|
+
title: string;
|
|
23
|
+
time: string;
|
|
24
|
+
/** Resolved model name (open = snapshot.modelName, live = descriptor.model, cold = ""). */
|
|
25
|
+
model: string;
|
|
26
|
+
/** Human label; "" for cold rows (no badge). */
|
|
27
|
+
status: string;
|
|
28
|
+
statusTone: SessionMetaTone;
|
|
29
|
+
statusGlyph: "●" | "△" | "○";
|
|
30
|
+
pending: boolean;
|
|
31
|
+
active: boolean;
|
|
32
|
+
closeable: boolean;
|
|
33
|
+
deletable: boolean;
|
|
34
|
+
}
|
|
35
|
+
export interface WorkspaceGroup {
|
|
36
|
+
/** Workspace name, or "Other" for sessions with no resolved workspace. */
|
|
37
|
+
label: string;
|
|
38
|
+
/** Owning workspace; "" for the "Other" bucket. */
|
|
39
|
+
workspace: string;
|
|
40
|
+
/** Stable React key: `${tierKind}:${workspace || "__other"}`. */
|
|
41
|
+
key: string;
|
|
42
|
+
rows: SidebarRow[];
|
|
43
|
+
}
|
|
44
|
+
export interface SidebarTier {
|
|
45
|
+
kind: "active" | "history";
|
|
46
|
+
label: string;
|
|
47
|
+
groups: WorkspaceGroup[];
|
|
48
|
+
}
|
|
49
|
+
export type SidebarModel = {
|
|
50
|
+
kind: "tiers";
|
|
51
|
+
tiers: SidebarTier[];
|
|
52
|
+
} | {
|
|
53
|
+
kind: "sentinel";
|
|
54
|
+
sentinel: "offline" | "empty";
|
|
55
|
+
};
|
|
56
|
+
export interface BuildSidebarModelInput {
|
|
57
|
+
tabs: Map<string, TabState>;
|
|
58
|
+
activeTabKey: string | null;
|
|
59
|
+
directoryView: DirectoryView;
|
|
60
|
+
historyByServer: Map<string, HistorySummary[]>;
|
|
61
|
+
resumedHistoryIds: Map<string, string>;
|
|
62
|
+
descriptors?: Map<string, SessionDescriptor> | null;
|
|
63
|
+
query: string;
|
|
64
|
+
serverFilter: string;
|
|
65
|
+
/** Pin key: the selected server's current workspace, if known. */
|
|
66
|
+
currentWorkspace?: string;
|
|
67
|
+
now?: number;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Two-tier sidebar model (spec 2026-06-26): an `Active` tier (open + live-not-open
|
|
71
|
+
* sessions) and a `History` tier (cold history), each sub-grouped by workspace with
|
|
72
|
+
* the current workspace pinned first and an `Other` bucket trailing, scoped to
|
|
73
|
+
* `serverFilter`. Cold rows resumed into a live/open session are deduped. Returns an
|
|
74
|
+
* `offline` / `empty` sentinel when there is nothing to render.
|
|
75
|
+
*/
|
|
76
|
+
export declare function buildSidebarModel(input: BuildSidebarModelInput): SidebarModel;
|
|
77
|
+
//# sourceMappingURL=session-sidebar-model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-sidebar-model.d.ts","sourceRoot":"","sources":["../../../src/features/launcher/session-sidebar-model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAGjF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAA8B,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEpF,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAuBxD,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAEtD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,cAAc,CAAC;IACrB,sFAAsF;IACtF,MAAM,EAAE,MAAM,CAAC;IACf,uFAAuF;IACvF,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,4DAA4D;IAC5D,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,2FAA2F;IAC3F,KAAK,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,eAAe,CAAC;IAC5B,WAAW,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,iEAAiE;IACjE,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,UAAU,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,cAAc,EAAE,CAAC;CAC1B;AAED,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,WAAW,EAAE,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,SAAS,GAAG,OAAO,CAAA;CAAE,CAAC;AAExD,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC5B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,EAAE,aAAa,CAAC;IAC7B,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;IAC/C,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAAG,IAAI,CAAC;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,kEAAkE;IAClE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,GAAG,YAAY,CA8M7E"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { SessionDescriptor } from "@nuvin/session/protocol";
|
|
2
|
+
export type SessionMetaTone = "tool" | "diff" | "run" | "done" | "pending" | "error";
|
|
3
|
+
export declare function glyphForStatus(status: string): "●" | "△" | "○";
|
|
4
|
+
/** Map a live SessionDescriptor.status to the web status label + tone. */
|
|
5
|
+
export declare function liveStatus(status: SessionDescriptor["status"]): {
|
|
6
|
+
status: string;
|
|
7
|
+
statusTone: SessionMetaTone;
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=session-status.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-status.d.ts","sourceRoot":"","sources":["../../../src/features/launcher/session-status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;AAErF,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAI9D;AAED,0EAA0E;AAC1E,wBAAgB,UAAU,CAAC,MAAM,EAAE,iBAAiB,CAAC,QAAQ,CAAC,GAAG;IAC/D,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,eAAe,CAAC;CAC7B,CASA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ServerDirectory } from "@nuvin/session/client";
|
|
2
|
+
import type { HistorySummary } from "@nuvin/session/protocol";
|
|
3
|
+
type HistoryDirectory = Pick<ServerDirectory, "listHistory">;
|
|
4
|
+
/**
|
|
5
|
+
* Fetch and cache cold history for the selected daemon. Fetches once when the
|
|
6
|
+
* server becomes online and not yet cached; `refresh(server)` forces a re-fetch
|
|
7
|
+
* after kill/resume/delete. Rejections are best-effort (left uncached → empty).
|
|
8
|
+
* Also surfaces the daemon's reported current workspace per server, used to pin
|
|
9
|
+
* that workspace's group first in the sidebar.
|
|
10
|
+
*/
|
|
11
|
+
export declare function useDaemonHistory(directory: HistoryDirectory | null, server: string, online: boolean): {
|
|
12
|
+
historyByServer: Map<string, HistorySummary[]>;
|
|
13
|
+
currentWorkspaceByServer: Map<string, string>;
|
|
14
|
+
refresh: (server: string) => void;
|
|
15
|
+
};
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=use-daemon-history.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-daemon-history.d.ts","sourceRoot":"","sources":["../../../src/features/launcher/use-daemon-history.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAG9D,KAAK,gBAAgB,GAAG,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;AAE7D;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,gBAAgB,GAAG,IAAI,EAClC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,OAAO,GACd;IACD,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;IAC/C,wBAAwB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC,CAkCA"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { ProfileSummary, WorkspaceSummary } from "@nuvin/session/protocol";
|
|
2
|
+
export type StartSessionPayload = {
|
|
3
|
+
server: string;
|
|
4
|
+
workspace: string;
|
|
5
|
+
cwd: string;
|
|
6
|
+
profile?: string;
|
|
7
|
+
};
|
|
8
|
+
export type StartScreenProps = {
|
|
9
|
+
servers: string[];
|
|
10
|
+
defaultServer: string;
|
|
11
|
+
serverOnline: (server: string) => boolean;
|
|
12
|
+
/** Pre-select this workspace name if present (e.g. the active session's workspace). */
|
|
13
|
+
defaultWorkspace?: string;
|
|
14
|
+
/** Per-server profile fetch — re-run when the server changes. */
|
|
15
|
+
listProfiles: (server: string) => Promise<ProfileSummary[]>;
|
|
16
|
+
/** Per-server, per-profile workspace fetch — re-run when server or profile changes. */
|
|
17
|
+
listWorkspaces: (server: string, profile?: string) => Promise<WorkspaceSummary[]>;
|
|
18
|
+
/** Create a workspace on `server`; cwd omitted ⇒ daemon provisions workdir/. */
|
|
19
|
+
onCreateWorkspace: (server: string, opts: {
|
|
20
|
+
name: string;
|
|
21
|
+
cwd?: string;
|
|
22
|
+
profile?: string;
|
|
23
|
+
}) => Promise<WorkspaceSummary>;
|
|
24
|
+
/** Path completion for the create-modal cwd field (daemon-host FS). */
|
|
25
|
+
completePath: (server: string, prefix: string) => Promise<string[]>;
|
|
26
|
+
onStart: (payload: StartSessionPayload) => void;
|
|
27
|
+
/** Esc / Cancel — dismiss the draft. */
|
|
28
|
+
onCancel?: () => void;
|
|
29
|
+
};
|
|
30
|
+
export declare function StartScreen({ servers, defaultServer, serverOnline, defaultWorkspace, listProfiles, listWorkspaces, onCreateWorkspace, completePath, onStart, onCancel, }: StartScreenProps): import("react/jsx-runtime").JSX.Element;
|
|
31
|
+
//# sourceMappingURL=StartScreen.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StartScreen.d.ts","sourceRoot":"","sources":["../../../src/features/new-session/StartScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AA4BhF,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;IAC1C,uFAAuF;IACvF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iEAAiE;IACjE,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAC5D,uFAAuF;IACvF,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAClF,gFAAgF;IAChF,iBAAiB,EAAE,CACjB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,KACnD,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC/B,uEAAuE;IACvE,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACpE,OAAO,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAChD,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB,CAAC;AAMF,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EACP,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,OAAO,EACP,QAAQ,GACT,EAAE,gBAAgB,2CAuWlB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/features/new-session/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Class-string constants for the StartScreen component.
|
|
3
|
+
* Plain exported const strings — no runtime logic.
|
|
4
|
+
* Reuses only CSS variables/tokens defined in src/styles/themes.css.
|
|
5
|
+
*/
|
|
6
|
+
/** Outer wrapper — fills the viewport and centres the card. */
|
|
7
|
+
export declare const startScreenClassName = "flex h-full items-center justify-center p-6 font-mono";
|
|
8
|
+
/** The focused new-session card. */
|
|
9
|
+
export declare const startCardClassName = "flex w-full max-w-[480px] flex-col gap-4 rounded-xl border border-[var(--color-border)] bg-[var(--color-panel)] p-6 shadow-[0_20px_60px_rgba(0,0,0,0.35)]";
|
|
10
|
+
/** Header row — title + server control. */
|
|
11
|
+
export declare const startHeaderClassName = "flex items-center justify-between";
|
|
12
|
+
/** "New session" title. */
|
|
13
|
+
export declare const startTitleClassName = "text-base font-semibold text-[var(--color-text)]";
|
|
14
|
+
/** Server pill (static, single-daemon) / wrapper around the select (multi). */
|
|
15
|
+
export declare const startServerPillClassName = "inline-flex items-center gap-1.5 rounded-md border border-[var(--color-border)] px-2 py-1 text-[11px] text-[var(--color-muted)]";
|
|
16
|
+
/** Server <select> rendered as a compact pill. */
|
|
17
|
+
export declare const startServerSelectClassName = "cursor-pointer appearance-none bg-transparent font-mono text-[11px] text-[var(--color-text)] outline-none";
|
|
18
|
+
/** The "· online" / "· offline" word appended inside the daemon pill. */
|
|
19
|
+
export declare const startServerStatusClassName = "text-[var(--color-muted)]";
|
|
20
|
+
/** Field group: label + control stacked. */
|
|
21
|
+
export declare const startFieldClassName = "flex flex-col gap-1.5";
|
|
22
|
+
/** Label text. */
|
|
23
|
+
export declare const startLabelClassName = "text-[10px] tracking-[0.15em] text-[var(--color-muted)] uppercase";
|
|
24
|
+
/** Text input (cwd, profile) — normal height. */
|
|
25
|
+
export declare const startInputClassName = "h-9 w-full rounded-lg border border-[var(--color-border)] bg-[var(--color-panel-elevated)] px-3 font-mono text-[13px] text-[var(--color-text)] outline-none transition-colors focus:border-[var(--color-accent)] placeholder:text-[var(--color-muted)]";
|
|
26
|
+
/** Relative wrapper anchoring the completions popover under the input. */
|
|
27
|
+
export declare const startInputWrapClassName = "relative";
|
|
28
|
+
/** Completions popover — anchored under the input, scrolls, overlays. */
|
|
29
|
+
export declare const startCompletionsClassName = "absolute left-0 right-0 top-[calc(100%+4px)] z-20 max-h-44 overflow-auto rounded-lg border border-[var(--color-border)] bg-[var(--color-panel-elevated)] shadow-[0_8px_24px_rgba(0,0,0,0.4)]";
|
|
30
|
+
/** A single completion item. */
|
|
31
|
+
export declare const startCompletionItemClassName = "flex w-full cursor-pointer items-center gap-2 px-3 py-1.5 text-left font-mono text-[12.5px] text-[var(--color-text)] hover:bg-[var(--color-panel)]";
|
|
32
|
+
/** Profile control trigger — two-line (name + description), full width. */
|
|
33
|
+
export declare const startProfileTriggerClassName = "flex w-full items-center justify-between gap-2 rounded-lg border border-[var(--color-border)] bg-[var(--color-panel-elevated)] px-3 py-2 text-left font-mono text-[13px] text-[var(--color-text)] outline-none transition-colors hover:border-[var(--color-accent)]";
|
|
34
|
+
/** A profile menu row — two-line, with a trailing check for the selected one. */
|
|
35
|
+
export declare const startProfileItemClassName = "flex w-full cursor-pointer items-start justify-between gap-2 px-3 py-2 text-left font-mono text-[12.5px] text-[var(--color-text)] hover:bg-[var(--color-panel)]";
|
|
36
|
+
/** "active" badge appended to the live profile. */
|
|
37
|
+
export declare const startActiveBadgeClassName = "rounded border border-[color-mix(in_srgb,var(--color-success)_45%,transparent)] px-1.5 text-[9px] tracking-[0.1em] text-[var(--color-success)] uppercase";
|
|
38
|
+
/** Muted description sub-line under a profile name. */
|
|
39
|
+
export declare const startProfileDescClassName = "text-[11px] text-[var(--color-muted)] leading-tight";
|
|
40
|
+
/** Caption above the workspace selector tying the list to the active profile. */
|
|
41
|
+
export declare const startWsScopeClassName = "text-[11px] text-[var(--color-muted)]";
|
|
42
|
+
/** Advanced toggle button. */
|
|
43
|
+
export declare const startAdvancedToggleClassName = "self-start text-[10px] tracking-[0.15em] text-[var(--color-muted)] uppercase transition-colors hover:text-[var(--color-text)] cursor-pointer";
|
|
44
|
+
/** Offline hint text. */
|
|
45
|
+
export declare const startOfflineHintClassName = "font-mono text-[12px] text-[var(--color-accent)]";
|
|
46
|
+
//# sourceMappingURL=start-screen.styles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"start-screen.styles.d.ts","sourceRoot":"","sources":["../../../src/features/new-session/start-screen.styles.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,+DAA+D;AAC/D,eAAO,MAAM,oBAAoB,0DAA0D,CAAC;AAE5F,oCAAoC;AACpC,eAAO,MAAM,kBAAkB,8JAC8H,CAAC;AAE9J,2CAA2C;AAC3C,eAAO,MAAM,oBAAoB,sCAAsC,CAAC;AAExE,2BAA2B;AAC3B,eAAO,MAAM,mBAAmB,qDAAqD,CAAC;AAEtF,+EAA+E;AAC/E,eAAO,MAAM,wBAAwB,oIAC8F,CAAC;AAEpI,kDAAkD;AAClD,eAAO,MAAM,0BAA0B,8GACsE,CAAC;AAE9G,yEAAyE;AACzE,eAAO,MAAM,0BAA0B,8BAA8B,CAAC;AAEtE,4CAA4C;AAC5C,eAAO,MAAM,mBAAmB,0BAA0B,CAAC;AAE3D,kBAAkB;AAClB,eAAO,MAAM,mBAAmB,sEACqC,CAAC;AAEtE,iDAAiD;AACjD,eAAO,MAAM,mBAAmB,2PAC0N,CAAC;AAE3P,0EAA0E;AAC1E,eAAO,MAAM,uBAAuB,aAAa,CAAC;AAElD,yEAAyE;AACzE,eAAO,MAAM,yBAAyB,iMAC0J,CAAC;AAEjM,gCAAgC;AAChC,eAAO,MAAM,4BAA4B,uJAC6G,CAAC;AAEvJ,2EAA2E;AAC3E,eAAO,MAAM,4BAA4B,wQAC8N,CAAC;AAExQ,iFAAiF;AACjF,eAAO,MAAM,yBAAyB,oKAC6H,CAAC;AAEpK,mDAAmD;AACnD,eAAO,MAAM,yBAAyB,6JACsH,CAAC;AAE7J,uDAAuD;AACvD,eAAO,MAAM,yBAAyB,wDAAwD,CAAC;AAE/F,iFAAiF;AACjF,eAAO,MAAM,qBAAqB,0CAA0C,CAAC;AAE7E,8BAA8B;AAC9B,eAAO,MAAM,4BAA4B,iJACuG,CAAC;AAEjJ,yBAAyB;AACzB,eAAO,MAAM,yBAAyB,qDAAqD,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { PickerDaemonGroup, PickerSessionRow } from "./picker-model";
|
|
2
|
+
/**
|
|
3
|
+
* Picker load state. `loading` is the window before the directory has resolved
|
|
4
|
+
* (the GET /api/servers fetch is in flight); `error` if that fetch failed.
|
|
5
|
+
* Splitting these out of `ready` keeps the "no daemons" hero from flashing
|
|
6
|
+
* while we simply don't know the daemon list yet.
|
|
7
|
+
*/
|
|
8
|
+
export type PickerStatus = "loading" | "error" | "ready";
|
|
9
|
+
export interface PickerProps {
|
|
10
|
+
groups: PickerDaemonGroup[];
|
|
11
|
+
status?: PickerStatus;
|
|
12
|
+
errorMessage?: string;
|
|
13
|
+
themeMode: "dark" | "light";
|
|
14
|
+
onToggleTheme: () => void;
|
|
15
|
+
onAttach: (row: PickerSessionRow) => void;
|
|
16
|
+
onNewSession: (server: string) => void;
|
|
17
|
+
onKillSession: (row: PickerSessionRow) => void;
|
|
18
|
+
onKillAndDelete: (row: PickerSessionRow) => void;
|
|
19
|
+
/** Connect-a-daemon action for the empty state; omitted when unavailable (e.g. local mode). */
|
|
20
|
+
onAddDaemon?: () => void;
|
|
21
|
+
}
|
|
22
|
+
export declare function Picker({ groups, status, errorMessage, themeMode, onToggleTheme, onAttach, onNewSession, onKillSession, onKillAndDelete, onAddDaemon, }: PickerProps): import("react/jsx-runtime").JSX.Element;
|
|
23
|
+
//# sourceMappingURL=Picker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Picker.d.ts","sourceRoot":"","sources":["../../../src/features/picker/Picker.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAE1E;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;AAEzD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5B,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,QAAQ,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC1C,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,aAAa,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC/C,eAAe,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACjD,+FAA+F;IAC/F,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B;AAoBD,wBAAgB,MAAM,CAAC,EACrB,MAAM,EACN,MAAgB,EAChB,YAAY,EACZ,SAAS,EACT,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,eAAe,EACf,WAAW,GACZ,EAAE,WAAW,2CA6Jb"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { PickerSessionRow } from "./picker-model";
|
|
2
|
+
export interface PickerSessionProps {
|
|
3
|
+
row: PickerSessionRow;
|
|
4
|
+
onAttach: (row: PickerSessionRow) => void;
|
|
5
|
+
onKill: (row: PickerSessionRow) => void;
|
|
6
|
+
}
|
|
7
|
+
export declare function PickerSession({ row, onAttach, onKill }: PickerSessionProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
//# sourceMappingURL=PickerSession.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PickerSession.d.ts","sourceRoot":"","sources":["../../../src/features/picker/PickerSession.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,gBAAgB,CAAC;IACtB,QAAQ,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC1C,MAAM,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,IAAI,CAAC;CACzC;AAED,wBAAgB,aAAa,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,kBAAkB,2CA6C1E"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export type { PickerProps } from "./Picker";
|
|
2
|
+
export { Picker } from "./Picker";
|
|
3
|
+
export { PickerSession } from "./PickerSession";
|
|
4
|
+
export type { PickerDaemonGroup, PickerSessionRow } from "./picker-model";
|
|
5
|
+
export { buildPickerGroups, shortenCwd } from "./picker-model";
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/features/picker/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { DirectoryView } from "@nuvin/session/client";
|
|
2
|
+
import { type SessionMetaTone } from "@/features/launcher/session-status";
|
|
3
|
+
import type { DaemonMeta } from "@/session";
|
|
4
|
+
export interface PickerSessionRow {
|
|
5
|
+
server: string;
|
|
6
|
+
sessionId: string;
|
|
7
|
+
title: string;
|
|
8
|
+
profile?: string;
|
|
9
|
+
cwd: string;
|
|
10
|
+
cwdFull: string;
|
|
11
|
+
clients: number;
|
|
12
|
+
time: string;
|
|
13
|
+
status: string;
|
|
14
|
+
statusTone: SessionMetaTone;
|
|
15
|
+
statusGlyph: "●" | "△" | "○";
|
|
16
|
+
}
|
|
17
|
+
export interface PickerDaemonGroup {
|
|
18
|
+
server: string;
|
|
19
|
+
label: string;
|
|
20
|
+
state: "online" | "connecting" | "offline";
|
|
21
|
+
online: boolean;
|
|
22
|
+
sessions: PickerSessionRow[];
|
|
23
|
+
/** Offline daemons (cloud): relative last-seen, e.g. "2h ago". */
|
|
24
|
+
lastSeen?: string;
|
|
25
|
+
/** Cloud per-daemon onboarding (web spec §7): daemon has no authed provider. */
|
|
26
|
+
needsSetup?: boolean;
|
|
27
|
+
}
|
|
28
|
+
/** Last two path segments prefixed with …/ — the browser has no $HOME to collapse. */
|
|
29
|
+
export declare function shortenCwd(cwd: string): string;
|
|
30
|
+
export declare function buildPickerGroups(view: DirectoryView, now: number, meta?: ReadonlyMap<string, DaemonMeta>, needsSetup?: ReadonlySet<string>): PickerDaemonGroup[];
|
|
31
|
+
//# sourceMappingURL=picker-model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"picker-model.d.ts","sourceRoot":"","sources":["../../../src/features/picker/picker-model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAG3D,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,eAAe,CAAC;IAC5B,WAAW,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,QAAQ,GAAG,YAAY,GAAG,SAAS,CAAC;IAC3C,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gFAAgF;IAChF,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,sFAAsF;AACtF,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAI9C;AAMD,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,aAAa,EACnB,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,EACtC,UAAU,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GAC/B,iBAAiB,EAAE,CAiFrB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { TabView } from "./tab-model";
|
|
2
|
+
export type TabProps = {
|
|
3
|
+
view: TabView;
|
|
4
|
+
onSelect(tabKey: string): void;
|
|
5
|
+
onClose(tabKey: string): void;
|
|
6
|
+
};
|
|
7
|
+
export declare function Tab({ view, onSelect, onClose }: TabProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
//# sourceMappingURL=Tab.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tab.d.ts","sourceRoot":"","sources":["../../../src/features/tabs/Tab.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B,CAAC;AAEF,wBAAgB,GAAG,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,QAAQ,2CAgDxD"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export type TabBarProps = {
|
|
2
|
+
onNew?: () => void;
|
|
3
|
+
/** When set, only tabs for this server are shown in the tab bar. */
|
|
4
|
+
serverFilter?: string;
|
|
5
|
+
};
|
|
6
|
+
export declare function TabBar({ onNew, serverFilter }: TabBarProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
//# sourceMappingURL=TabBar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TabBar.d.ts","sourceRoot":"","sources":["../../../src/features/tabs/TabBar.tsx"],"names":[],"mappings":"AAQA,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IACnB,oEAAoE;IACpE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,wBAAgB,MAAM,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,WAAW,2CAyE1D"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export type { TabProps } from "./Tab";
|
|
2
|
+
export { Tab } from "./Tab";
|
|
3
|
+
export type { TabBarProps } from "./TabBar";
|
|
4
|
+
export { TabBar } from "./TabBar";
|
|
5
|
+
export { tabActiveClassName, tabBarClassName, tabClassName, tabCloseClassName, tabIndicatorClassName, tabNewClassName, unreadBadgeClassName, } from "./tab.styles";
|
|
6
|
+
export type { TabIndicator, TabView } from "./tab-model";
|
|
7
|
+
export { buildTabViews, tabIndicator } from "./tab-model";
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|