Files
paseo/packages/server/src/terminal/terminal-worker-protocol.ts
T
Mohamed BoudraandGitHub 53c14d9855 Extract client SDK package (#1052)
* Extract client SDK package

* Polish SDK client identity defaults

* Build client before dependent CI jobs

* Restore daemon client server export

* Extract protocol and client SDK packages

* Fix provider override schema validation

* Fix app test daemon client imports

* Simplify workspace build targets

* Fix CLI test server build bootstrap

* Run SDK package tests in CI

* Fix rebase package split drift

* Restore lockfile registry metadata

* Update SDK config test for prompt default

* Move terminal stream router test to client package

* Fix rebase drift for protocol imports

* Fix SDK agent capability fixture

* Restore legacy server client exports

* Fix server export compatibility test

* Advertise custom mode icon client capability

* Remove server daemon-client exports

* Format rebased mode control import

* Fix rebase drift for protocol imports

Files added by upstream PRs (#893, #1147, #1154) referenced the pre-split
shared/ paths that this branch moves into @getpaseo/protocol. Redirect
those imports to the protocol package so typecheck stays green after the
rebase.
2026-05-28 01:58:18 +08:00

147 lines
3.0 KiB
TypeScript

import type {
TerminalExitInfo,
ServerMessage,
ClientMessage,
TerminalStateSnapshot,
TerminalStateSnapshotOptions,
} from "./terminal.js";
import type { TerminalState } from "@getpaseo/protocol/messages";
import type { CaptureTerminalLinesResult } from "./terminal-capture.js";
export interface WorkerTerminalInfo {
id: string;
name: string;
cwd: string;
title?: string;
}
export interface WorkerCreateTerminalOptions {
id?: string;
cwd: string;
name?: string;
title?: string;
env?: Record<string, string>;
command?: string;
args?: string[];
}
export interface WorkerKillAndWaitOptions {
gracefulTimeoutMs?: number;
forceTimeoutMs?: number;
}
export type TerminalWorkerRequest =
| {
type: "getTerminals";
requestId: string;
cwd: string;
}
| {
type: "createTerminal";
requestId: string;
options: WorkerCreateTerminalOptions;
}
| {
type: "registerCwdEnv";
requestId: string;
cwd: string;
env: Record<string, string>;
}
| {
type: "killTerminal";
requestId: string;
terminalId: string;
}
| {
type: "killTerminalAndWait";
requestId: string;
terminalId: string;
options?: WorkerKillAndWaitOptions;
}
| {
type: "getTerminalState";
requestId: string;
terminalId: string;
options?: TerminalStateSnapshotOptions;
}
| {
type: "captureTerminal";
requestId: string;
terminalId: string;
start?: number;
end?: number;
stripAnsi?: boolean;
}
| {
type: "listDirectories";
requestId: string;
}
| {
type: "killAll";
requestId: string;
}
| {
type: "send";
requestId: string;
terminalId: string;
message: ClientMessage;
};
export type TerminalWorkerResponse =
| {
type: "response";
requestId: string;
ok: true;
result?: unknown;
}
| {
type: "response";
requestId: string;
ok: false;
error: string;
};
export type TerminalWorkerEvent =
| {
type: "terminalCreated";
terminal: WorkerTerminalInfo;
state: TerminalState;
}
| {
type: "terminalRemoved";
terminalId: string;
cwd: string;
}
| {
type: "terminalMessage";
terminalId: string;
message: ServerMessage;
}
| {
type: "terminalExit";
terminalId: string;
info: TerminalExitInfo;
}
| {
type: "terminalTitleChange";
terminalId: string;
title?: string;
}
| {
type: "terminalCommandFinished";
terminalId: string;
info: {
exitCode: number | null;
};
}
| {
type: "terminalsChanged";
cwd: string;
terminals: WorkerTerminalInfo[];
};
export type TerminalWorkerToParentMessage = TerminalWorkerResponse | TerminalWorkerEvent;
export type TerminalWorkerCaptureResult = CaptureTerminalLinesResult;
export type TerminalWorkerStateResult = TerminalStateSnapshot | null;