M1: Headless core loop + Anthropic #2

Open
darman wants to merge 5 commits from feature/m1 into develop
5 Commits
Author SHA1 Message Date
darman d83f8c84b7 M1: composition root and harness run -p debug command
Adds the harness-app composition root wiring config, providers, tools, and the engine loop together, plus the harness run -p "<prompt>" debug command in harness-tui::main for driving a one-shot prompt end-to-end from the CLI.
2026-07-10 16:19:38 +02:00
darman 9ed278bcb5 M1: Anthropic codec and provider
Adds the Anthropic SSE codec (codec/anthropic.rs) translating Anthropic's event stream into LlmEvents, the AnthropicProvider, and registry wiring so the engine loop can run against the real API instead of just MockProvider.
2026-07-10 16:19:38 +02:00
darman 4118279da1 M1: edit tool with opencode's replacer chain, ported verbatim
Ports opencode's multi-strategy string-replacer chain (and its test table) into harness-tools::edit, giving the edit tool the same fuzzy-match fallback behavior opencode relies on.
2026-07-10 16:19:38 +02:00
darman a5af873924 M1: read, write, bash, glob, and grep tools
Implements the first five harness-tools: read, write, bash (with timeout/output truncation), glob, and grep, plus shared path-resolution helpers. Wires them into the core tool registry and processor.
2026-07-10 16:19:38 +02:00
darman 5ac646b3c6 M1: tool trait, permission service, config, Provider trait, engine loop
Adds the Tool trait, config loading/schema, the Provider trait plus an Llm event surface, a permission service, and the core engine loop with a doom-loop guard and retry scaffolding. The processor drives a text/tool-call/final-text turn against a Provider, laying the groundwork for the MockProvider integration test and the real Anthropic path.
2026-07-10 16:19:38 +02:00