320 Commits

Author SHA1 Message Date
darthrubik 46a98ebcfd Adding edit tool basically cloned from opencode 2026-04-29 06:42:51 -05:00
darthrubik 1854a3fb9b Adding timeout to shell commands 2026-04-28 15:33:37 -05:00
darthrubik 30fbfbda80 Hack, but for now just retry on ollama 500 errors 2026-04-28 15:33:04 -05:00
darthrubik 2b7233da90 Don't overwrite chat file till the end 2026-04-28 15:32:17 -05:00
darthrubik 48af45fb4f gpt-oss to default model 2026-04-28 15:28:35 -05:00
darthrubik 7ca1edec5a Forcing only the model output to std::out, everything else to std::err 2026-04-24 09:25:19 -05:00
darthrubik 1c0d57a11b Save state between steps and exit after one step 2026-04-24 09:18:10 -05:00
darthrubik 978c9f560c Adding the ability to serialize/deserialize a harness 2026-04-24 08:34:46 -05:00
darthrubik 9eb56018e3 Adding context counter 2026-04-23 17:23:17 -05:00
darthrubik b6b4f99b10 Refactor to respond with 'HarnessResponse' instead of string 2026-04-23 17:14:22 -05:00
Jacob Gamble de965f5563 Don't add auth if auth token not provided 2026-04-23 16:02:52 -05:00
Jacob Gamble bbbe643573 Adding authentication 2026-04-23 16:00:20 -05:00
Jacob Gamble 5eea16fbff Default tools to only bash 2026-04-23 15:56:33 -05:00
Jacob Gamble e630e793b0 Changing default URL 2026-04-23 15:55:54 -05:00
darthrubik cf02ed9709 Adding the ability to have the main agent not have every tool call in the main registry 2026-04-18 19:26:45 -05:00
darthrubik 8abb8c9e67 Refactoring to put the create_subregistry code in the tool registry class 2026-04-18 19:21:10 -05:00
darthrubik 6537d078a8 Add CLAUDE.md with architecture and build guidance
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-18 18:54:42 -05:00
darthrubik f05cfd4a7e Add depth-aware visibility for subagent execution
Subagents now print their activity to stderr with a '>' prefix per nesting
level, making it easy to trace arbitrarily deep agent chains. A file-scope
depth counter (RAII-guarded) tracks the current call depth at runtime so
the correct prefix is always computed regardless of how deeply agents nest.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-18 18:46:17 -05:00
darthrubik 07e978f8f9 Add subagent mode via agent-as-tool pattern
Each AgentProfile defines a model and a subset of tools. Profiles are
registered as callable tools in the main harness so the orchestrator LLM
can delegate tasks to specialized subagents. Each invocation runs an
isolated Harness with fresh history; only the final answer is returned,
keeping the orchestrator context clean.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-18 18:45:43 -05:00
darthrubik 5a40ebd8d8 Initial implementation of drharness AI harness
C++20 agentic loop targeting a local Ollama instance via the OpenAI-compatible
/v1/chat/completions API. Includes an extensible tool registry pattern and a
shell command runner as the first tool. Builds with CMake + system libcurl +
nlohmann-json.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-18 18:09:34 -05:00