cleanup: one shot vs stream

This commit is contained in:
Cristina Poncela Cubeiro
2026-06-22 14:53:07 +02:00
parent a7b0138ef0
commit d79e3061ad
5 changed files with 29 additions and 27 deletions
+9 -2
View File
@@ -32,7 +32,12 @@ export interface StatusRequest {
export interface RpcRequest {
type: "rpc";
instanceId: string;
command?: RpcCommand;
command: RpcCommand;
}
export interface RpcStreamRequest {
type: "rpc_stream";
instanceId: string;
}
export interface RequestMap {
@@ -41,6 +46,7 @@ export interface RequestMap {
stop: StopRequest;
status: StatusRequest;
rpc: RpcRequest;
rpc_stream: RpcStreamRequest;
}
export type OrchestratorRequest = RequestMap[keyof RequestMap];
@@ -101,7 +107,8 @@ export interface ResponseMap {
list: ListResponse;
stop: StopResponse;
status: StatusResponse;
rpc: RpcBridgeResponse | RpcReadyResponse;
rpc: RpcBridgeResponse;
rpc_stream: RpcReadyResponse;
}
export type OrchestratorResponse = ResponseMap[keyof ResponseMap] | ErrorResponse;
+4 -8
View File
@@ -13,6 +13,7 @@ import {
type RpcClientMessage,
type RpcReadyResponse,
type RpcRequest,
type RpcStreamRequest,
type SpawnRequest,
type SpawnResponse,
type StatusRequest,
@@ -26,13 +27,8 @@ export interface IpcRequestHandler {
(request: ListRequest): Promise<ListResponse | ErrorResponse> | ListResponse | ErrorResponse;
(request: StopRequest): Promise<StopResponse | ErrorResponse> | StopResponse | ErrorResponse;
(request: StatusRequest): Promise<StatusResponse | ErrorResponse> | StatusResponse | ErrorResponse;
(
request: RpcRequest,
):
| Promise<RpcBridgeResponse | RpcReadyResponse | ErrorResponse>
| RpcBridgeResponse
| RpcReadyResponse
| ErrorResponse;
(request: RpcRequest): Promise<RpcBridgeResponse | ErrorResponse> | RpcBridgeResponse | ErrorResponse;
(request: RpcStreamRequest): Promise<RpcReadyResponse | ErrorResponse> | RpcReadyResponse | ErrorResponse;
(request: OrchestratorRequest): Promise<OrchestratorResponse> | OrchestratorResponse;
attach(
instanceId: string,
@@ -69,7 +65,7 @@ export async function startIpcServer(handler: IpcRequestHandler): Promise<Server
try {
const request = parseRequestLine(line);
if (request.type === "rpc" && request.command === undefined) {
if (request.type === "rpc_stream") {
const response = await handler(request);
if (!response.ok || response.type !== "rpc_ready" || !response.instance) {
socket.end(encodeMessage(response));