@mrciphersmith/keryx 0.3.39 → 0.3.40

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (4) hide show
  1. package/README.md +18 -2
  2. package/dist/cli.js +2483 -1145
  3. package/dist/core.js +6 -0
  4. package/package.json +1 -1
package/README.md CHANGED
@@ -480,7 +480,8 @@ What is in it today:
480
480
  bounded parallel scheduling, and an offline fleet report over a recorded event
481
481
  log (`keryx agents monitor <events-file>`).
482
482
  - **Vendor CLIs as child agents — off by default.** keryx can hand a bounded,
483
- **read-only** task to a coding CLI you already have installed (`codex exec`,
483
+ **read-only** task (or, for `claude-cli` only, a reviewed write — see below)
484
+ to a coding CLI you already have installed (`codex exec`,
484
485
  `claude -p`, or Google's Antigravity CLI, `agy -p --output-format
485
486
  stream-json`) and host it as a child of the same harness: a disposable git
486
487
  worktree, a stripped environment, a restricted tool roster, the same budget
@@ -498,6 +499,21 @@ What is in it today:
498
499
  `fixtures/external/live/antigravity-cli/2026-09-28/`, produced through
499
500
  keryx's own `agents external run`. `codex-cli`/`claude-cli` remain verified
500
501
  offline against recorded transcripts.
502
+ - **A write from an external agent you review before it lands.**
503
+ `keryx agents external run claude-cli --task "…" --write` runs `claude` in a
504
+ throwaway worktree with only `Read Grep Glob Edit Write` (no shell, no network,
505
+ no MCP). Its diff is captured, secret-redacted, hashed and stored as a pending
506
+ review — nothing reaches your checkout. `keryx agents external review <run-id>`
507
+ shows it; `apply <run-id>` needs a real terminal, shows the diff and asks you to
508
+ type the first 12 hex digits of the patch hash, then creates a NEW local branch
509
+ `external/<run-id>` with one commit. Your current branch and working tree are
510
+ never touched, nothing is pushed and no pull request is opened;
511
+ `discard <run-id>` drops it. There is no flag that skips the confirmation. Only
512
+ `claude-cli` can write (`codex-cli` and `antigravity-cli` refuse `--write`), the
513
+ review is a human reading the diff (a model review is not built), and a full run
514
+ through the installed CLI is not recorded yet. In the TUI: `/external-diff` and a
515
+ sidebar row while a diff waits. See the [external agent write
516
+ guide](docs/docs/guides/external-agent-write.md).
501
517
  - **Completion you can audit.** The completion gate blocks on missing evidence: a
502
518
  run that cannot produce the evidence its flow requires does not get to claim
503
519
  it finished.
@@ -925,7 +941,7 @@ untouched.
925
941
  | No bundled embedding runtime | No semantic ranking in memory search | Lexical memory search remains fully available |
926
942
  | ripgrep is external | `keryx ctx rg` needs `rg` on `PATH` | Install ripgrep, or let the agent read files directly |
927
943
  | Model commands need a credential | Four of the five commands above exit non-zero without one; `wiki enrich` exits `0` and marks the affected pages skipped | Everything else runs deterministically offline |
928
- | External agents are read-only, and unproven against a live vendor process | A delegated CLI can read and search but never write; `worktree-write` is refused with a named reason. The parent gets the child's result and nothing before it — supervision of a running external child is not implemented. Everything is verified offline against recorded transcripts | Use keryx's own child agents for work that must mutate the tree |
944
+ | External agents are read-only, except `claude-cli` write mode, which has no full live run recorded | A delegated CLI can read and search; only `claude-cli` can write, and only as a stored diff a human reviews (`keryx agents external review\|apply\|discard`) that lands as a new local branch — never on your checkout, never pushed. `codex-cli` and `antigravity-cli` refuse `--write` ("write mode is claude-only in this release"). A model review is not built. The parent gets the child's result and nothing before it — supervision of a running external child is not implemented. `claude` and `agy` read-only runs are live-verified; a write run through the installed CLI is not yet | Use keryx's own child agents for work that must mutate the tree, or the [external agent write guide](docs/docs/guides/external-agent-write.md) for a reviewed `claude-cli` diff |
929
945
  | A dispatched `flow-next` task is "done" by checks, not review | `task done` means normal end + a commit on the trigger branch + `keryx health gate` passing in the worktree; nobody has read the diff | Review and merge the `trigger/<flow>-<task>` branch yourself |
930
946
  | `trust` dispatch needs Linux + a working bubblewrap | The hardened unattended sandbox (network off, home hidden, allow-listed env) is bwrap-only; without it — or on macOS — a `trust` dispatch refuses before starting | Use `permissionMode: "ask"` (read-only), or run triggers on a Linux host with bwrap |
931
947
  | `dispatch.network: true` is the host's full network | The agent's commands then reach the internet and every host loopback service; the model call never needs it (it is made outside the sandbox) | Leave `network` off; review the `trigger/*` branch before installing or building it |