import type { Checkpoint } from "../runtime/state/checkpointStore.js"; import type { FunctionParameter } from "../types.js"; import type { UIState } from "./uiState.js"; export type DebuggerCommand = { type: "step"; } | { type: "next"; } | { type: "stepIn"; } | { type: "stepOut"; } | { type: "continue"; } | { type: "rewind"; } | { type: "checkpoint"; label?: string; } | { type: "set"; varName: string; value: unknown; } | { type: "print"; varName: string; } | { type: "approve"; } | { type: "reject"; value?: unknown; } | { type: "resolve"; value: unknown; } | { type: "modify"; overrides: Record; } | { type: "stepBack"; preserveOverrides: boolean; } | { type: "showCheckpoints"; } | { type: "save"; path: string; } | { type: "load"; path: string; } | { type: "quit"; }; export type DebuggerIO = { state: UIState; render(checkpoint?: Checkpoint, full?: boolean): Promise; waitForCommand(): Promise; showRewindSelector(checkpoints: Checkpoint[]): Promise; showCheckpointsPanel(checkpoints: Checkpoint[]): Promise; promptForNodeArgs(parameters: FunctionParameter[]): Promise; promptForInput(prompt: string): Promise; appendStdout(text: string): void; renderActivityOnly(): void; startSpinner(): void; stopSpinner(): void; destroy(): void; };