Per D-83 the clide-hosted stream-json session is the primary dogfood
target — the process clide spawns, so the one clide can fully equip.
Adds a Flutter-free agent_bootstrap module and injects it centrally in
ClaudeSessionOrchestrator.spawn so every hosted session (primary,
secondary, fork, teammate) is handed:
- CLIDE_SOCK (the per-workspace socket, D-70) + CLIDE_WORKSPACE in its
env, and `clide` prepended to PATH when not already resolvable, so
`clide …` works with zero manual socket discovery (T-215);
- a system-prompt context note (--append-system-prompt) telling it it is
inside clide and how to drive the IDE via `clide …`, plus the D-6
parity contract; the note merges with the team preamble into one
--append-system-prompt (T-216);
- a Bash(clide:*) allow rule (--allowedTools) so clide calls aren't
prompted (T-217).
The PATH resolver no-ops when clide is already on PATH (installed case,
T-211) and falls back to ~/.local/bin and the dev native/<os>-<arch>
tree; it degrades gracefully when none is found. Pure helpers are
unit-tested; the fork-args test is made position-independent.
Closes T-214, T-215, T-216, T-217 (under T-208 "Give Claude hands").
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>