@mrciphersmith/keryx 0.3.39 → 0.3.41

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 +25 -2
  2. package/dist/cli.js +2655 -1219
  3. package/dist/core.js +6 -0
  4. package/package.json +1 -1
package/README.md CHANGED
@@ -95,6 +95,13 @@ keryx auth login <provider> # subscription login (device code / OAuth) or API k
95
95
  Inside a running session, `/provider` reopens the same add/reconfigure wizard
96
96
  and `/connect` switches between providers you already configured.
97
97
 
98
+ ChatGPT / Codex model discovery reads the current stable Codex version from npm
99
+ metadata and caches it for one day. **Test** in `/connect` (or
100
+ `keryx providers test openai-codex`) always checks for a newer version before
101
+ listing models. This does not install Codex or poll npm in the background.
102
+ If npm is unavailable, a previously discovered version is reused; without a
103
+ cached version, discovery reports the problem instead of guessing a version.
104
+
98
105
  Once you have more than one provider connected, `keryx routing` (and, inside a
99
106
  session, `/routing`) maps a task category — `review`, `subagents`, and a
100
107
  catalogue of others — to a specific model, so reviews and subagent spawns can
@@ -480,7 +487,8 @@ What is in it today:
480
487
  bounded parallel scheduling, and an offline fleet report over a recorded event
481
488
  log (`keryx agents monitor <events-file>`).
482
489
  - **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`,
490
+ **read-only** task (or, for `claude-cli` only, a reviewed write — see below)
491
+ to a coding CLI you already have installed (`codex exec`,
484
492
  `claude -p`, or Google's Antigravity CLI, `agy -p --output-format
485
493
  stream-json`) and host it as a child of the same harness: a disposable git
486
494
  worktree, a stripped environment, a restricted tool roster, the same budget
@@ -498,6 +506,21 @@ What is in it today:
498
506
  `fixtures/external/live/antigravity-cli/2026-09-28/`, produced through
499
507
  keryx's own `agents external run`. `codex-cli`/`claude-cli` remain verified
500
508
  offline against recorded transcripts.
509
+ - **A write from an external agent you review before it lands.**
510
+ `keryx agents external run claude-cli --task "…" --write` runs `claude` in a
511
+ throwaway worktree with only `Read Grep Glob Edit Write` (no shell, no network,
512
+ no MCP). Its diff is captured, secret-redacted, hashed and stored as a pending
513
+ review — nothing reaches your checkout. `keryx agents external review <run-id>`
514
+ shows it; `apply <run-id>` needs a real terminal, shows the diff and asks you to
515
+ type the first 12 hex digits of the patch hash, then creates a NEW local branch
516
+ `external/<run-id>` with one commit. Your current branch and working tree are
517
+ never touched, nothing is pushed and no pull request is opened;
518
+ `discard <run-id>` drops it. There is no flag that skips the confirmation. Only
519
+ `claude-cli` can write (`codex-cli` and `antigravity-cli` refuse `--write`), the
520
+ review is a human reading the diff (a model review is not built), and a full run
521
+ through the installed CLI is not recorded yet. In the TUI: `/external-diff` and a
522
+ sidebar row while a diff waits. See the [external agent write
523
+ guide](docs/docs/guides/external-agent-write.md).
501
524
  - **Completion you can audit.** The completion gate blocks on missing evidence: a
502
525
  run that cannot produce the evidence its flow requires does not get to claim
503
526
  it finished.
@@ -925,7 +948,7 @@ untouched.
925
948
  | No bundled embedding runtime | No semantic ranking in memory search | Lexical memory search remains fully available |
926
949
  | ripgrep is external | `keryx ctx rg` needs `rg` on `PATH` | Install ripgrep, or let the agent read files directly |
927
950
  | 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 |
951
+ | 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
952
  | 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
953
  | `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
954
  | `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 |