Add SSH source support with dialstdio and UI components

- Implement SSH dial via stdio for remote connections
- Add sources API and storage layer for managing connection sources
- Add SourcePanel and SshFields web components for SSH configuration
- Update app structure to support source-based connections
- Update handlers and server for new sources endpoint

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-08-13 10:19:47 +02:00
co-authored by Claude Haiku 4.5
parent 05db8bfeb9
commit 9b354636bb
19 changed files with 1857 additions and 174 deletions
+30
View File
@@ -120,6 +120,35 @@ export interface SourceResponse {
options: Options
}
/** How a source daemon is reached. 'local' is the built-in, unremovable one. */
export type SourceKind = 'local' | 'docker' | 'ssh'
export interface Source {
id: string
name: string
kind: SourceKind
/** Daemon address for the 'docker' kind, e.g. tcp://10.0.0.5:2375. */
dockerHost?: string
/** Remote host for the 'ssh' kind; the same shape as a target connection. */
ssh?: Connection
}
export interface SourceStatus {
id: string
name: string
kind: SourceKind
endpoint: string
dockerVersion?: string
connected: boolean
error?: string
}
export interface SourcesResponse {
sources: Source[]
selected: string
current: SourceStatus | null
}
export type AuthMethod = 'password' | 'key' | 'agent'
export interface Connection {
@@ -253,6 +282,7 @@ export interface Health {
dockerHost: string
dockerVersion?: string
dockerError?: string
source?: SourceStatus
packageDir: string
dataDir: string
knownHosts: string