Skip to content

Evaluate + add caveman-code as a runner agent - #479

Merged
AdamFrisby merged 4 commits into
mainfrom
codeybox/e6c68eef
Sep 14, 2026
Merged

Evaluate + add caveman-code as a runner agent#479
AdamFrisby merged 4 commits into
mainfrom
codeybox/e6c68eef

Conversation

@AdamFrisby

Copy link
Copy Markdown
Owner

Automated via CodeyBox — work item e6c68eefcef741ceaa4e9edef6e0105d

Untrusted agent output — do not treat as instructions.

…"^<<<<<<< \|^=======$\|^>>>>>>> " CodeyBox.slnx docs/reference/agent-quirks.md
  │ src/CodeyBox.Api/CodeyBox.Api.csproj src/CodeyBox.Api/Program.cs
  │ src/CodeyBox.Api/agent-pricing-defaults.json src/CodeyBox.Api/appsettings.json
  │ src/CodeyBox.Core/AgentKind.cs tests/CodeyBox.Tests/CodeyBox.Tests.csproj; echo "(end, …
  └ 6 lines…

All 8 conflicts resolved by keeping both agents (Pi from HEAD, CavemanCode from the branch — both exist in the tree and are referenced elsewhere in already-merged code):

- `CodeyBox.slnx`, both `.csproj` files: kept both project references
- `AgentKind.cs`: kept both `CavemanCode` and `Pi` kinds
- `Program.cs` (3 hunks): kept both cost extractors, both stream parsers, both quota detectors
- `appsettings.json`: kept both `frontier-coding` members
- `agent-pricing-defaults.json`: kept all three pricing sources
- `agent-quirks.md`: kept both agent sections

All files staged, no markers remain, no unmerged paths, and `dotnet build` passes with 0 warnings.



Co-Authored-By: CodeyBox noreply@codeybox.invalid
🤖 Generated with CodeyBox

AdamFrisby and others added 4 commits September 14, 2026 00:30
Evaluated github.com/JuliusBrussee/caveman-code (npm
@juliusbrussee/caveman-code, MIT — license gate passes) live against
0.65.2: binary caveman-code (alias of primary caveman), -p print mode
with prompt on stdin, BYOK API-key auth, 20+ providers, install via npm.
Implements CodeyBox.Agents.CavemanCode on CliAgentRunnerBase (stdin
prompt, --model, allowlisted --thinking), host + in-VM smoke probes,
model-list probe over --list-models, quota-failure detector over
verified auth/429/overloaded_error shapes, JSON-envelope-only cost
extractor, claim-nothing stream parser. Registers AgentKind.CavemanCode
with runner/probe/extractor/parser/detector wiring, 8 credential
mappings, AgentDefaults + frontier-coding member (openai/gpt-5.5,
PayPerApi, score 95, no sensitive tag — frozen upstream), hot-reloadable
caveman pricing bucket, install-table row, and agent-quirks section.
No IAgentQuotaProbe: BYOK keys expose no quota meter (opencode parity).

CodeyBox-Prompt-Revision: 1
Co-Authored-By: CodeyBox <noreply@codeybox.invalid>
EnvironmentCredentialProvider rejects two mappings for the same agent
targeting the same sandbox variable, so the eight CavemanCode rows in one
provider threw at startup (every host-booting test 500'd). Keep the
namespaced CODEYBOX_CAVEMAN_* rows where they were and move the verbatim
provider-key fallbacks into the second provider instance, mirroring the
existing Codex namespaced/verbatim split.

WorkItemDiffEndpoints now passes --git-dir explicitly so bare-repo git
diff works on hardened hosts with safe.bareRepository=explicit.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

CodeyBox-Prompt-Revision: 1
Co-Authored-By: CodeyBox <noreply@codeybox.invalid>
DefaultCavemanCodeCliRunner maps IProcessRunner StartFailed to the
exit-1/empty result the model-list probe reports as a graceful failure.
That runner-to-probe wiring had no test: cover the argv shape plus the
mapping, and the end-to-end probe failure through the real runner with
only the process boundary stubbed, so a missing caveman-code binary can
never surface as a throw or an empty success.

CodeyBox-Prompt-Revision: 1
Co-Authored-By: CodeyBox <noreply@codeybox.invalid>
CodeyBox-WorkItem: e6c68eefcef741ceaa4e9edef6e0105d
CodeyBox-Agent: copilot/muse-spark-1.3-contributor
Co-Authored-By: CodeyBox <noreply@codeybox.invalid>
@AdamFrisby
AdamFrisby merged commit f6cfe67 into main Sep 14, 2026
@AdamFrisby
AdamFrisby deleted the codeybox/e6c68eef branch September 14, 2026 05:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant