PR1 scaffold landed. End-to-end orchestration loop works: task -> classify -> autonomy gate -> spawn (Hermes claude-cli) -> stream + collect events -> record outcome to Bonfire.
Tests: 15/15 pass on Node 18 / 20 / 22.
Shipped
HermesRunner- claude CLI subprocess with--output-format stream-jsonBonfireMemory- episode writes with local 9-pattern secret-scanhermesBugFix- first PatternAdapter (keyword-matched)- Autonomy gate - 3-tier (AUTO / CONFIRM / REFUSE) with default policy
- Async semaphore for concurrency cap
Quick start
import { orchestrate, HermesRunner, BonfireMemory, hermesBugFix } from 'hermes-orchestrator'
const outcome = await orchestrate('fix the type error in src/foo.ts', {
runner: new HermesRunner(),
memory: new BonfireMemory({ bonfireId: '...', apiKey: '...' }),
patterns: [hermesBugFix],
costCap: 2.0,
})Known limits (lifted in v0.2.0+)
- No supervisor watching (PR2 / v0.2.0)
- No mid-run interventions (PR3 / v0.3.0)
- Memory.retrieve returns [] until Bonfire admin labeling unlocks (no code change needed)
Install (pre-npm-publish)
npm install git+https://github.com/bettercallzaal/hermes-orchestrator.git#v0.1.0See the README for the full roadmap.