@mrciphersmith/keryx 0.3.38 → 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.
- package/README.md +20 -4
- package/dist/cli.js +3831 -1387
- package/dist/core.js +18 -0
- 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
|
|
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,11 +499,26 @@ 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.
|
|
504
520
|
- **Four doors.** The CLI (`keryx harness run|exec|extension|wave|replay`), JSONL/RPC
|
|
505
|
-
and the loopback HTTP entry (`keryx serve`) share one execution loop; the
|
|
521
|
+
and the loopback HTTP entry (`keryx serve`, whose `ask` decisions become approvals answered once over `/v1/approvals` or `keryx approvals`) share one execution loop; the
|
|
506
522
|
interactive TUI runs its own on the same tool registry and the same policy.
|
|
507
523
|
- **A record you can check.** `keryx harness run --record` writes a run's
|
|
508
524
|
recomputable hash surface and `keryx harness replay` validates a fixture
|
|
@@ -920,12 +936,12 @@ untouched.
|
|
|
920
936
|
|
|
921
937
|
| Limitation | Impact | Alternative |
|
|
922
938
|
|------------|--------|-------------|
|
|
923
|
-
|
|
|
939
|
+
| Remote approvals need a tool registry | The stock `keryx serve` registers no tools, so it raises no approvals; with a registry an `ask` becomes a pending approval answered over `/v1/approvals` or `keryx approvals` | Run tool-using turns locally |
|
|
924
940
|
| Domain allowlist is macOS-only | Domain-level egress policy, credential masking and TLS termination refuse to run on Linux rather than silently doing less | Filesystem containment and network on/off work on both |
|
|
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,
|
|
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 |
|