@mrciphersmith/keryx 0.2.11 → 0.2.12

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 (3) hide show
  1. package/README.md +86 -17
  2. package/dist/cli.js +2 -1
  3. package/package.json +2 -1
package/README.md CHANGED
@@ -24,10 +24,14 @@ Every agent and every teammate reads the same context, and it is reviewed in a
24
24
  diff like the rest of the code.
25
25
 
26
26
  The core is deterministic, local, offline, and has no required runtime
27
- dependencies.
28
- keryx does not replace your coding agent and does not make engineering
29
- decisions it gives every agent the same project context instead of letting
30
- each one reconstruct the repository from scratch.
27
+ dependencies. keryx does not take your coding agent away and does not make
28
+ engineering decisions for you it gives every agent the same project context
29
+ instead of letting each one reconstruct the repository from scratch.
30
+
31
+ It also ships **an agent runtime of its own**, built directly on that context:
32
+ durable sessions, an allow/ask/deny policy engine, kernel-enforced sandboxing,
33
+ child agents and evidence-gated completion. Keep using Codex, Claude or Cursor,
34
+ run `keryx shell`, or do both — they all read the same project brain.
31
35
 
32
36
  ```bash
33
37
  npm install -g @mrciphersmith/keryx
@@ -68,6 +72,7 @@ alike, whichever agent runtime happens to be open.
68
72
  | Judge readiness | Normalized health reports and a quality gate over lint, types, tests, coverage, complexity |
69
73
  | Coordinate work | Versioned task flows, managed review packages, generated agent skills |
70
74
  | Keep agents inside boundaries | Deterministic secret / PII / prompt-injection scanning, redaction, policy gate, OS sandbox |
75
+ | Run an agent at all | A first-party harness on top of all of the above: durable sessions, allow/ask/deny policy, child agents, evidence-gated completion |
71
76
 
72
77
  ## A typical agent workflow
73
78
 
@@ -134,7 +139,68 @@ affected graph supplies deterministically, in one command.
134
139
  └── flows/ # task flows with frozen acceptance criteria
135
140
  ```
136
141
 
137
- All Markdown and JSON. All diffable. All yours.
142
+ All Markdown and JSON. All diffable. All yours. And readable as a dashboard when
143
+ a human wants to look at it (`keryx dash`):
144
+
145
+ <p align="center">
146
+ <img src="docs/assets/dashboard.png" alt="The keryx dashboard: health score, attention signals, and the enabled modules" width="880">
147
+ </p>
148
+
149
+ ## The agent harness
150
+
151
+ This is the half that makes the other half worth having.
152
+
153
+ > **The agent is ephemeral; the project brain is durable.**
154
+
155
+ keryx ships its own agent runtime — not a wrapper around someone else's. It owns
156
+ the execution loop, the tool registry, permissions, sessions, subagents and
157
+ completion gates, and it assembles its context from the same `.metaproject/`
158
+ graph, wiki, memory, rules, skills, testing, health and security that every other
159
+ agent reads. That combination is the point: an agent that starts a turn already
160
+ knowing the repository, and that cannot end one by asserting it is done.
161
+
162
+ ```bash
163
+ keryx shell # TUI + agent (default UI)
164
+ keryx shell --no-tui # classic readline shell
165
+ keryx shell --chat # chat without tools
166
+ keryx shell --provider ollama --model llama3.1:latest
167
+ ```
168
+
169
+ <p align="center">
170
+ <img src="docs/assets/shell.png" alt="keryx shell: the TUI agent harness with session commands and a project sidebar" width="880">
171
+ </p>
172
+
173
+ What is in it today:
174
+
175
+ - **Provider-neutral loop.** Anthropic, Ollama, OpenRouter and Grok, plus an
176
+ offline fake provider for deterministic runs. Swapping the model does not
177
+ change the loop, the tools or the policy.
178
+ - **Durable sessions, per project.** Append-only event log on disk, resume across
179
+ a process restart, branching, and context compaction that keeps the archive.
180
+ `/resume`, `/compact`, `/new` — and `keryx sessions list|export`.
181
+ - **A policy engine with three answers, not two.** `allow`, `ask`, `deny` over
182
+ paths, commands, tools, network and resources. Filesystem mutation is
183
+ path-checked, security-scanned, approval-bound and recorded as evidence.
184
+ - **Kernel-enforced containment underneath.** The OS sandbox sits *below* the
185
+ policy engine — Seatbelt on macOS, bubblewrap on Linux — with network off/on,
186
+ and on macOS a loopback domain allowlist, credential masking behind a per-run
187
+ sentinel, and opt-in TLS termination. It fails closed when a launcher or a
188
+ posture is missing rather than quietly doing less.
189
+ - **Child agents with budgets.** Dispatch over the canonical
190
+ `subagent-dispatch`/`subagent-result` contracts, token budgets per child,
191
+ bounded parallel scheduling, and a fleet monitor (`keryx agents monitor`).
192
+ - **Completion you can audit.** An evidence ledger backs the completion gate: a
193
+ run that cannot produce the evidence its flow requires does not get to claim
194
+ it finished.
195
+ - **Deterministic replay.** Recorded provider and tool fixtures replay a run with
196
+ no network and no mutation, and report where the state transitions diverge.
197
+ - **Four doors, one loop.** The CLI (`keryx harness run|exec|extension|wave`),
198
+ JSONL/RPC, the TUI, and the loopback HTTP entry (`keryx serve`) all drive the
199
+ same execution loop and the same session state.
200
+
201
+ You do not have to use it. Every module above works with Codex, Claude Code or
202
+ Cursor driving them instead. But if you want an agent that is native to the
203
+ project rather than a guest in it, it is here and it is the same install.
138
204
 
139
205
  ## Core capabilities
140
206
 
@@ -177,6 +243,17 @@ Grouped by what you are trying to do, not by internal module layout.
177
243
  - **mcp** — an opt-in [Model Context Protocol](https://modelcontextprotocol.io)
178
244
  server exposing read-only module services to agents.
179
245
 
246
+ **Run agents inside boundaries**
247
+
248
+ - **harness** — the first-party agent runtime described above: provider-neutral
249
+ loop, durable sessions, policy engine, child agents, evidence-gated completion,
250
+ deterministic replay.
251
+ - **sandbox** — kernel-enforced containment under the policy engine
252
+ (`keryx harness exec`), with filesystem boundaries, network posture and, on
253
+ macOS, a domain allowlist with credential masking.
254
+ - **remote entry** — `keryx serve`, a loopback-bound authenticated HTTP door into
255
+ the same harness, so a bot or a browser workspace can drive a run.
256
+
180
257
  `keryx modules` toggles modules by manifest key; `keryx status` shows what is
181
258
  enabled. Nine modules are on after `init`; `mcp` is opt-in.
182
259
 
@@ -207,18 +284,8 @@ Alternative install paths — the managed installer (`~/.keryx` with a wrapper i
207
284
  `~/.local/bin`), project-local installs, and running from source — are in the
208
285
  [onboarding guide](docs/docs/onboarding.md).
209
286
 
210
- ### Interactive shell
211
-
212
- Bare `keryx` prints the CLI surface. The interactive TUI agent harness starts
213
- with `keryx shell`:
214
-
215
- ```bash
216
- keryx # CLI help
217
- keryx shell # TUI + agent (default UI)
218
- keryx shell --no-tui # classic readline shell
219
- keryx shell --chat # chat without tools
220
- keryx shell --provider ollama --model llama3.1:latest
221
- ```
287
+ Bare `keryx` prints the CLI surface; `keryx shell` starts the agent harness
288
+ described [above](#the-agent-harness).
222
289
 
223
290
  ## Agent integrations
224
291
 
@@ -326,6 +393,8 @@ fails on any detector breaching its committed false-negative threshold. See
326
393
 
327
394
  ## Documentation
328
395
 
396
+ Full documentation site: **<https://mrciphersmith.github.io/keryx/>**
397
+
329
398
  - **[Onboarding](docs/docs/onboarding.md)** — install paths, first-run walkthrough, the build loop.
330
399
  - **[Architecture](docs/docs/architecture.md)** — the four-layer pattern, invariants, cross-module data flows.
331
400
  - **[Module reference](docs/docs/modules.md)** — one section per module: purpose, CLI surface, mechanics, data paths.
package/dist/cli.js CHANGED
@@ -48183,7 +48183,7 @@ Usage:
48183
48183
  // package.json
48184
48184
  var package_default = {
48185
48185
  name: "@mrciphersmith/keryx",
48186
- version: "0.2.11",
48186
+ version: "0.2.12",
48187
48187
  description: "Version-controlled project context for AI coding agents: code graph, architecture wiki, project memory, relevant tests, quality signals, and task flows.",
48188
48188
  private: false,
48189
48189
  publishConfig: {
@@ -48198,6 +48198,7 @@ var package_default = {
48198
48198
  keywords: [
48199
48199
  "ai-agents",
48200
48200
  "coding-agents",
48201
+ "agent-harness",
48201
48202
  "agent-context",
48202
48203
  "repository-context",
48203
48204
  "code-graph",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mrciphersmith/keryx",
3
- "version": "0.2.11",
3
+ "version": "0.2.12",
4
4
  "description": "Version-controlled project context for AI coding agents: code graph, architecture wiki, project memory, relevant tests, quality signals, and task flows.",
5
5
  "private": false,
6
6
  "publishConfig": {
@@ -15,6 +15,7 @@
15
15
  "keywords": [
16
16
  "ai-agents",
17
17
  "coding-agents",
18
+ "agent-harness",
18
19
  "agent-context",
19
20
  "repository-context",
20
21
  "code-graph",