Add MCP server (v1 read-only): toggle, per-pane gate, panel UI
This commit is contained in:
parent
6068522ee3
commit
83d8932c98
15 changed files with 1235 additions and 7 deletions
42
src/ipc.ts
42
src/ipc.ts
|
|
@ -90,3 +90,45 @@ export const deleteHostPassword = (hostId: string): Promise<void> =>
|
|||
|
||||
export const hasHostPassword = (hostId: string): Promise<boolean> =>
|
||||
invoke("has_host_password", { hostId });
|
||||
|
||||
// ---- MCP server -----------------------------------------------------------
|
||||
|
||||
export interface McpStatus {
|
||||
running: boolean;
|
||||
url: string | null;
|
||||
token: string | null;
|
||||
}
|
||||
|
||||
/** Shape of the cached mirror we push to the backend on every workspace
|
||||
* change. Mirrors src-tauri/src/mcp.rs `McpMirror`. */
|
||||
export interface McpMirror {
|
||||
layoutJson: string;
|
||||
/** Only includes leaves with mcpAllow === true. */
|
||||
leaves: Record<string, McpMirroredLeaf>;
|
||||
hosts: McpMirroredHost[];
|
||||
}
|
||||
|
||||
export interface McpMirroredLeaf {
|
||||
paneId: number | null;
|
||||
label?: string;
|
||||
shellKind: "wsl" | "powershell" | "ssh";
|
||||
distro?: string;
|
||||
sshHostId?: string;
|
||||
broadcast: boolean;
|
||||
active: boolean;
|
||||
}
|
||||
|
||||
export interface McpMirroredHost {
|
||||
id: string;
|
||||
label: string;
|
||||
hostname: string;
|
||||
user?: string;
|
||||
port?: number;
|
||||
hasPassword: boolean;
|
||||
}
|
||||
|
||||
export const mcpStart = (): Promise<McpStatus> => invoke("mcp_start");
|
||||
export const mcpStop = (): Promise<McpStatus> => invoke("mcp_stop");
|
||||
export const mcpStatus = (): Promise<McpStatus> => invoke("mcp_status");
|
||||
export const mcpUpdateState = (mirror: McpMirror): Promise<void> =>
|
||||
invoke("mcp_update_state", { mirror });
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue