@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.
- package/README.md +86 -17
- package/dist/cli.js +2 -1
- 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
|
-
|
|
29
|
-
|
|
30
|
-
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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",
|