sandbox-agent/foundry/packages/shared/src/realtime-events.ts

31 lines
1.2 KiB
TypeScript

import type { FoundryAppSnapshot } from "./app-shell.js";
import type { OrganizationSummarySnapshot, WorkspaceSessionDetail, WorkspaceTaskDetail } from "./workspace.js";
export interface SandboxProcessSnapshot {
id: string;
command: string;
args: string[];
createdAtMs: number;
cwd?: string | null;
exitCode?: number | null;
exitedAtMs?: number | null;
interactive: boolean;
pid?: number | null;
status: "running" | "exited";
tty: boolean;
}
/** Organization-level events broadcast by the organization actor. */
export type OrganizationEvent = { type: "organizationUpdated"; snapshot: OrganizationSummarySnapshot };
/** Task-level events broadcast by the task actor. */
export type TaskEvent = { type: "taskUpdated"; detail: WorkspaceTaskDetail };
/** Session-level events broadcast by the task actor and filtered by sessionId on the client. */
export type SessionEvent = { type: "sessionUpdated"; session: WorkspaceSessionDetail };
/** App-level events broadcast by the app organization actor. */
export type AppEvent = { type: "appUpdated"; snapshot: FoundryAppSnapshot };
/** Sandbox process events broadcast by the sandbox instance actor. */
export type SandboxProcessesEvent = { type: "processesUpdated"; processes: SandboxProcessSnapshot[] };