framework(core): split console runner into host + pluggable agent modules
Phase 1 of the standalone agent framework. Pure refactor, behaviour identical:
- host.mjs: shared runtime (route registry, one runClaudeJson/runClaudeStream
replacing 5 inline spawns, build/git/phpCli, SSE job model, scheduler, core
/ping /auth /logout)
- agents/{in-page-console,project-builder,web-designer,qa}.mjs: each exports
register(host), owns its routes/triggers/persona
- server.mjs: bootstrap that loads host + registers agents
- web-designer exposes host.drainTasks; qa autofix kicks it
Verified: QA pass, Web Designer queue task, heartbeat, all endpoints.