Module subprocess

Module subprocess 

Source
Expand description

SubprocessController: manages agent CLI as stateless per-turn subprocess invocations.

Architecture: Each user message spawns a fresh claude -p process. Multi-turn continuity uses --resume <session-id>. The process reads one JSON message from stdin, runs the agentic loop, streams NDJSON on stdout, then exits.

State machine: INIT ─(spawn)─> RUNNING ─(process exits)─> DONE DONE ─(new message)─> RUNNING (re-spawn with –resume)

I/O model (2 async tasks per turn):

  1. stdout_reader: piped stdout → .jsonl persistence + WPS blockfile events on “output” subject
  2. process_waiter: wait for exit, update status, publish lifecycle event

Structs§

SubprocessController
SubprocessController manages per-turn subprocess lifecycle for agent blocks.
SubprocessControllerInner 🔒
Inner state protected by mutex.
SubprocessSpawnConfig
Configuration for spawning a subprocess turn.

Constants§

BLOCK_CONTROLLER_SUBPROCESS
Controller type constant.
SUBPROCESS_OUTPUT_SUBJECT
WPS file subject name for subprocess output (replaces “term” from PTY).