Watch
0
0
Fork
You've already forked hyperhive
0

agent: say claude-code is only on PATH for the claude runtime in acp.command

This commit is contained in:
atlas 2026-11-04 21:02:49 +01:00
commit 3cc4fdb54c
2 changed files with 12 additions and 2 deletions

View file

@ -133,7 +133,10 @@ at the container level to allowlist `claude-code` specifically —
scoped, only this one package, because each per-agent
`nixosConfiguration` evaluates its own nixpkgs instance and the
operator's host-level `allowUnfree` does **not** propagate in.
Operators don't need to set anything on their side.
Operators don't need to set anything on their side. Only `runtime = "claude"`
agents get `claude` and the allowance; an ACP agent whose `acp.command`
needs `claude` adds `pkgs.claude-code` and
`nixpkgs.config.allowUnfreePackages = [ "claude-code" ]` itself.
That same isolation is why an agent can't pick a claude out of a
_different_ nixpkgs by itself: a container only ever sees the one

View file

@ -264,7 +264,14 @@ in
type = lib.types.str;
default = "";
example = lib.literalExpression ''"''${pkgs.opencode}/bin/opencode"'';
description = "Program the harness spawns as its ACP agent (`HIVE_ACP_COMMAND`).";
description = ''
Program the harness spawns as its ACP agent (`HIVE_ACP_COMMAND`).
`claude` is on PATH only when `services.hyperhive.agent.runtime` is
`"claude"`. A command that runs `claude` (a Claude ACP adapter, say)
needs `pkgs.claude-code` in `environment.systemPackages` and
`"claude-code"` in `nixpkgs.config.allowUnfreePackages`.
'';
};
args = lib.mkOption {