@vitronai/alethia 0.7.1 → 0.8.1
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 +121 -41
- package/dist/index.d.ts +11 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +569 -43
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/skills/alethia/SKILL.md +27 -5
package/README.md
CHANGED
|
@@ -26,7 +26,7 @@ The cockpit is an **oversight surface**, not an authoring IDE. Humans do not wri
|
|
|
26
26
|
| Who writes the test | a human, in a `.spec` file | an AI agent, in plain English |
|
|
27
27
|
| Per-step policy gate | none | VITRON-EA1 fail-closed, write-high blocked by default |
|
|
28
28
|
| Destructive-action proof | manual review | `alethia_assert_safety` — automated, machine-readable |
|
|
29
|
-
| Speed | ~
|
|
29
|
+
| Speed (per call) | ~200 ms via Playwright MCP, ~2 s via Playwright CLI | ~40 ms — 2-5× faster than Playwright MCP; up to 50× vs Playwright CLI on simple flows — [reproduce the numbers yourself](https://github.com/vitron-ai/alethia-starter#verify-the-faster-than-cdp-based-tools-claim-yourself) |
|
|
30
30
|
| Evidence | screenshots, videos | signed evidence pack with per-step integrity hashes |
|
|
31
31
|
| Network | Telemetry on by default; optional cloud dashboards | **Air-gap deployable** — no cloud product, no telemetry path, bound to 127.0.0.1 |
|
|
32
32
|
|
|
@@ -34,6 +34,18 @@ The cockpit is an **oversight surface**, not an authoring IDE. Humans do not wri
|
|
|
34
34
|
|
|
35
35
|
## Install
|
|
36
36
|
|
|
37
|
+
**Fastest path (Claude Code users):**
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
mkdir -p ~/.claude/skills/alethia && \
|
|
41
|
+
curl -fsSL https://raw.githubusercontent.com/vitron-ai/alethia-mcp/main/skills/alethia/SKILL.md \
|
|
42
|
+
-o ~/.claude/skills/alethia/SKILL.md
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Restart Claude Code. Next time you ask to test a page or run a compliance audit, Claude notices the Alethia tools aren't wired up yet and walks you through installing the bridge with verbatim commands. No README hunt, no mcp.json editing from memory — the skill bootstraps itself.
|
|
46
|
+
|
|
47
|
+
**Traditional path (Claude Desktop / Cursor / Cline / Continue, or if you prefer doing it yourself):**
|
|
48
|
+
|
|
37
49
|
```bash
|
|
38
50
|
npm install -g @vitronai/alethia
|
|
39
51
|
```
|
|
@@ -125,13 +137,15 @@ If you'd rather never manually upgrade, replace the command with:
|
|
|
125
137
|
"mcpServers": {
|
|
126
138
|
"alethia": {
|
|
127
139
|
"command": "npx",
|
|
128
|
-
"args": ["-y", "@vitronai/alethia"]
|
|
140
|
+
"args": ["-y", "@vitronai/alethia@latest"]
|
|
129
141
|
}
|
|
130
142
|
}
|
|
131
143
|
}
|
|
132
144
|
```
|
|
133
145
|
|
|
134
|
-
`npx -y`
|
|
146
|
+
**The `@latest` suffix matters.** Without it, `npx -y` uses whatever it cached on the first run — could be weeks out of date. With `@latest`, npx checks the registry each spawn and pulls a newer version if one exists.
|
|
147
|
+
|
|
148
|
+
Other trade-offs vs. a global install:
|
|
135
149
|
|
|
136
150
|
- **First-spawn latency:** adds 10–30s on a cold npm cache miss.
|
|
137
151
|
- **Supply-chain posture:** every spawn immediately pulls whatever the npm registry is serving. A global install shields you until you explicitly upgrade. For signed-evidence-sensitive use (regulated surfaces, compliance work), the global install is the safer default.
|
|
@@ -148,64 +162,80 @@ To pin a specific runtime version (reproducible CI, bisection, deliberate stay-b
|
|
|
148
162
|
|
|
149
163
|
## Your 5-minute demo
|
|
150
164
|
|
|
151
|
-
|
|
165
|
+
Five literal prompts. Paste each into Claude / Cursor / Cline in order. The agent runs Alethia for you.
|
|
152
166
|
|
|
153
167
|
### 1. Start the bundled demo server
|
|
154
168
|
|
|
155
|
-
|
|
169
|
+
Paste:
|
|
156
170
|
|
|
157
|
-
|
|
171
|
+
> *"Use `alethia_serve_demo` to start the demo server and tell me the base URL."*
|
|
158
172
|
|
|
159
|
-
|
|
173
|
+
Returns something like `http://127.0.0.1:57307`. Every demo page lives under `<base>/<page>.html` — keep the URL handy for the next steps.
|
|
160
174
|
|
|
161
|
-
|
|
175
|
+
### 2. Smoke test the financial dashboard
|
|
162
176
|
|
|
163
|
-
|
|
177
|
+
Paste:
|
|
164
178
|
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
navigate to
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
```
|
|
179
|
+
> *"Call `alethia_tell` with these instructions as a single block:*
|
|
180
|
+
>
|
|
181
|
+
> *navigate to `<base>/financial-dashboard.html`*
|
|
182
|
+
> *assert Risk Monitor is visible*
|
|
183
|
+
> *assert Open Positions is visible*
|
|
184
|
+
> *assert Compliance Checks is visible"*
|
|
172
185
|
|
|
173
|
-
|
|
186
|
+
Expected: 4 steps pass (1 navigate + 3 asserts). Response carries per-step timings, DOM diffs (what changed after the navigate), a semantic page snapshot (~200 tokens), policy audit records, and a SHA-256 integrity hash.
|
|
174
187
|
|
|
175
|
-
### 3.
|
|
188
|
+
### 3. Prove the EA1 safety gate works
|
|
176
189
|
|
|
177
|
-
|
|
190
|
+
Paste:
|
|
178
191
|
|
|
179
|
-
|
|
192
|
+
> *"Call `alethia_tell` with these instructions as one block:*
|
|
193
|
+
>
|
|
194
|
+
> *navigate to `<base>/financial-dashboard.html`*
|
|
195
|
+
> *expect block: click Liquidate All*
|
|
196
|
+
> *expect block: click Purge Audit Log*
|
|
197
|
+
> *expect block: click Wire Funds"*
|
|
180
198
|
|
|
181
|
-
|
|
199
|
+
**`expect block:` is unique to Alethia.** The step passes only when the **EA1 policy gate** — a framework-level safety layer no other E2E tool ships — refuses the action with reason code `DENY_WRITE_HIGH`. Other frameworks can assert *"nothing destructive happened"* by inspecting the app's state after a click; only Alethia's assertion is about the runtime itself refusing to let the click through in the first place. Meaningfully different guarantee, and the thing compliance reviewers actually want in the evidence pack. This run should report all three clicks blocked.
|
|
182
200
|
|
|
183
|
-
|
|
201
|
+
Shortcut if you want Alethia to auto-discover destructive controls instead of naming them:
|
|
184
202
|
|
|
185
|
-
|
|
203
|
+
> *"Use `alethia_assert_safety` against `<base>/financial-dashboard.html`."*
|
|
204
|
+
|
|
205
|
+
Returns a per-action block/allow report with `totalDestructive`, `blocked`, and per-action detail.
|
|
206
|
+
|
|
207
|
+
### 4. Full compliance audit (WCAG + NIST + signed evidence)
|
|
208
|
+
|
|
209
|
+
Paste:
|
|
210
|
+
|
|
211
|
+
> *"Call `alethia_tell` to navigate to `<base>/wcag-audit.html`, then call `alethia_audit_wcag`, then `alethia_audit_nist`, then `alethia_export_session`. Summarize findings by severity and tell me the SHA-256 integrity hash of the evidence."*
|
|
212
|
+
|
|
213
|
+
Expected: a list of WCAG 2.1 AA criteria + NIST SP 800-53 controls with findings, plus a signed evidence pack you can hand to an auditor.
|
|
214
|
+
|
|
215
|
+
### 5. What a "block" is — and why we run one at a time
|
|
216
|
+
|
|
217
|
+
`alethia_propose_tests` returns **named test blocks**, each a cohesive multi-step flow:
|
|
186
218
|
|
|
187
|
-
```
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
"blocked": 3,
|
|
192
|
-
"results": [
|
|
193
|
-
{ "action": "Liquidate All", "blocked": true, "detail": "..." },
|
|
194
|
-
{ "action": "Wire Funds", "blocked": true, "detail": "..." },
|
|
195
|
-
{ "action": "Purge Audit Log", "blocked": true, "detail": "..." }
|
|
196
|
-
]
|
|
197
|
-
}
|
|
219
|
+
```
|
|
220
|
+
Block 1 — Page Structure Verification (4 steps)
|
|
221
|
+
Block 2 — Safe Button Interactions (2 steps)
|
|
222
|
+
Block 3 — EA1 Safety Gate Verification (3 steps, all expect-block)
|
|
198
223
|
```
|
|
199
224
|
|
|
200
|
-
|
|
225
|
+
Calling `alethia_tell` once per block (rather than merging all blocks into one giant NLP string) is deliberate:
|
|
201
226
|
|
|
202
|
-
|
|
227
|
+
- **Each block becomes its own signed `PlanRun`** with its own integrity hash and its own history entry. Merged, you lose the audit boundary.
|
|
228
|
+
- **Named blocks stay named.** "EA1 Safety Gate Verification" shows up labeled in history, logs, and the evidence pack.
|
|
229
|
+
- **One block's failure doesn't sink the others.** Partial success + targeted rerun is the default.
|
|
230
|
+
- **The cockpit UI paints each block as it runs** — partner watching a live demo sees discrete, legible runs rather than one opaque mega-script.
|
|
203
231
|
|
|
204
|
-
|
|
232
|
+
If you don't care about any of those (quick iteration, scratch testing), you can paste multiple blocks' NLP into a single `alethia_tell` — it works, you just give up the boundaries.
|
|
205
233
|
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
234
|
+
---
|
|
235
|
+
|
|
236
|
+
**More paste-ready demos:** see the [agent cookbook](./docs/agent-cookbook.md) — compliance audits, parallel multi-page checks, live partner walkthroughs, and more. Every scenario is a literal prompt you drop into Claude / Cursor / Cline.
|
|
237
|
+
|
|
238
|
+
**Designing a UI to be driven by agents?** See [UI for agents](./docs/ui-for-agents.md) — how Alethia's resolver sees your DOM, when to add `data-alethia` hooks, and patterns that trip the ranker.
|
|
209
239
|
|
|
210
240
|
---
|
|
211
241
|
|
|
@@ -278,6 +308,9 @@ alethia-mcp --debug Run with debug logging on stderr
|
|
|
278
308
|
| `ALETHIA_HIGHLIGHTS` | (unset) | Set to `1` to overlay per-step highlights on the target |
|
|
279
309
|
| `ALETHIA_RUNTIME_VERSION` | (unset) | Pin the bridge to a specific runtime version (e.g. `0.4.0`). By default the bridge queries GitHub Releases for the current latest runtime and downloads that. Use this for reproducible CI, bisection, or deliberately staying on an older runtime. |
|
|
280
310
|
| `ALETHIA_RUNTIME_DIR` | `~/.alethia/runtime` | Where the auto-installed runtime lives. Override for sandboxing or to stash multiple installs. |
|
|
311
|
+
| `ALETHIA_BRIDGE_VERSION` | (unset) | Pin the bridge itself to a specific version (e.g. `0.8.0`). Skips the npm auto-update check. For reproducible CI or deliberate stay-behind. |
|
|
312
|
+
| `ALETHIA_BRIDGE_SRI` | (unset) | Require any auto-downloaded bridge tarball to match this `sha512-<base64>` integrity string. Rejects everything else. For high-assurance deployments. |
|
|
313
|
+
| `ALETHIA_SKIP_AUTO_UPDATE` | (unset) | Set to `1` to disable the bridge's npm registry check entirely. The bridge runs as-installed, no background fetches. |
|
|
281
314
|
|
|
282
315
|
---
|
|
283
316
|
|
|
@@ -287,7 +320,15 @@ alethia-mcp --debug Run with debug logging on stderr
|
|
|
287
320
|
- The runtime listens on `127.0.0.1:47432` over loopback JSON-RPC. No cloud calls, no telemetry.
|
|
288
321
|
- The runtime auto-installs on first use from signed GitHub releases (Ed25519-verified).
|
|
289
322
|
- **The bridge asks GitHub Releases what the current runtime version is on first start** (cached 1h). No RUNTIME_VERSION pin lives in the bridge source, so a globally-installed bridge keeps pulling the current runtime as new ones ship. Pin to a specific version with `ALETHIA_RUNTIME_VERSION=x.y.z` for reproducible CI or bisection.
|
|
323
|
+
- **The bridge also auto-updates itself** (since 0.8.0). On startup it checks npm for a newer published version, verifies the tarball against the SHA-512 integrity hash npm serves, and installs it to `~/.alethia/bridge/<version>/`. Next spawn bootstraps into the new version. Auto-update respects:
|
|
324
|
+
- **Major-version gate:** never crosses `1.x → 2.x` without explicit user action
|
|
325
|
+
- **Rollback:** a new version only becomes "trusted" after it successfully completes an MCP handshake; versions that crash before that get quarantined after 3 attempts
|
|
326
|
+
- **Pin:** `ALETHIA_BRIDGE_VERSION=x.y.z` skips auto-update
|
|
327
|
+
- **Integrity pin:** `ALETHIA_BRIDGE_SRI=sha512-...` rejects anything else
|
|
328
|
+
- **Opt-out:** `ALETHIA_SKIP_AUTO_UPDATE=1` disables entirely
|
|
329
|
+
- **The Claude Code skill auto-refreshes too** (since 0.8.0). The bundled `SKILL.md` travels with every bridge release; each spawn compares it to `~/.claude/skills/alethia/SKILL.md` and overwrites if stale. New playbooks reach every user on their next spawn without any manual step.
|
|
290
330
|
- The cockpit is visible by default — it's the oversight surface where each step is highlighted live. Set `ALETHIA_HEADLESS=1` to hide, or toggle mid-session with `alethia_show_cockpit` / `alethia_hide_cockpit`.
|
|
331
|
+
- Evidence packs returned by `alethia_export_session` are wrapped with bridge name+version and skill content hashes (installed + bundled) for chain-of-custody reconstruction.
|
|
291
332
|
|
|
292
333
|
---
|
|
293
334
|
|
|
@@ -314,6 +355,42 @@ A sensitive field was detected (password, token, credit card, etc.). Override wi
|
|
|
314
355
|
3. Restart your MCP client.
|
|
315
356
|
4. Set `ALETHIA_DEBUG=1` to log bridge traffic on stderr.
|
|
316
357
|
|
|
358
|
+
### "Server transport closed unexpectedly" / bridge exits silently on spawn
|
|
359
|
+
|
|
360
|
+
Your client is spawning a stale bridge. Two likely causes:
|
|
361
|
+
|
|
362
|
+
**If you're using `npx -y @vitronai/alethia`** (without `@latest`), npx is serving a cached version that may predate the fix for this class of bug. Either add the `@latest` suffix to your config args or clear the npx cache:
|
|
363
|
+
|
|
364
|
+
```bash
|
|
365
|
+
rm -rf ~/.npm/_npx
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
Then fully restart your MCP client.
|
|
369
|
+
|
|
370
|
+
**If you're using a global install**, your globally installed bridge is old. Check and upgrade:
|
|
371
|
+
|
|
372
|
+
```bash
|
|
373
|
+
alethia-mcp --version
|
|
374
|
+
# If not the latest published version:
|
|
375
|
+
npm install -g @vitronai/alethia@latest
|
|
376
|
+
```
|
|
377
|
+
|
|
378
|
+
Then fully restart your MCP client (Cmd-Q on macOS, not just close the window).
|
|
379
|
+
|
|
380
|
+
Every 0.6.1+ bridge is symlink-spawn-safe — if you're on a current version and still see this, open an issue at https://github.com/vitron-ai/alethia-mcp/issues.
|
|
381
|
+
|
|
382
|
+
### "I see a new release on GitHub but my runtime hasn't upgraded"
|
|
383
|
+
|
|
384
|
+
The bridge caches the "what is the current runtime version?" lookup for 1 hour so we don't hammer the GitHub API on every spawn. If you want a new release to take effect immediately rather than waiting for cache expiry, bust the cache manually:
|
|
385
|
+
|
|
386
|
+
```bash
|
|
387
|
+
rm ~/.alethia/.latest-release ~/.alethia/.bridge-registry-cache 2>/dev/null
|
|
388
|
+
```
|
|
389
|
+
|
|
390
|
+
Then fully restart your MCP client (Cmd-Q → reopen). On the next spawn the bridge re-queries GitHub + npm, picks up the new versions, downloads + verifies + installs them.
|
|
391
|
+
|
|
392
|
+
The 1h TTL is a deliberate tradeoff. You can shorten it for CI or dev loops via `ALETHIA_SKIP_AUTO_UPDATE=1` + `ALETHIA_RUNTIME_VERSION=x.y.z` (pins an exact runtime, skips the check entirely).
|
|
393
|
+
|
|
317
394
|
---
|
|
318
395
|
|
|
319
396
|
## Go deeper
|
|
@@ -322,6 +399,7 @@ A sensitive field was detected (password, token, credit card, etc.). Override wi
|
|
|
322
399
|
- [VITRON-EA1 safety standard](https://vitron.ai/safety)
|
|
323
400
|
- [FAQ](https://vitron.ai/faq)
|
|
324
401
|
- [Releases](https://github.com/vitron-ai/alethia/releases)
|
|
402
|
+
- [Starter + benchmarks](https://github.com/vitron-ai/alethia-starter) — working starter repo with CI, Playwright comparison kit, and reproducible numbers
|
|
325
403
|
|
|
326
404
|
---
|
|
327
405
|
|
|
@@ -329,7 +407,9 @@ A sensitive field was detected (password, token, credit card, etc.). Override wi
|
|
|
329
407
|
|
|
330
408
|
The Alethia runtime (which this bridge connects to) is local-only **by architecture**, not by default setting. Its signed binary refuses to navigate to any origin outside `file://`, `localhost`, `127.0.0.1`, `.local`, and RFC1918 private ranges. The allowlist is a compile-time constant — **not a CLI flag, env var, MCP argument, profile, or UI toggle**. For partner-specific production-origin access we issue custom-signed builds; we do not ship configurability.
|
|
331
409
|
|
|
332
|
-
|
|
410
|
+
**Full security posture** — threat model, cryptographic chain of custody, supply-chain posture, update cadence, disclosure process — is at [`SECURITY.md`](./SECURITY.md).
|
|
411
|
+
|
|
412
|
+
Abuse reports + vulnerability disclosure: **`gatekeeper@vitron.ai`**.
|
|
333
413
|
|
|
334
414
|
---
|
|
335
415
|
|
package/dist/index.d.ts
CHANGED
|
@@ -10,7 +10,8 @@
|
|
|
10
10
|
* https://github.com/vitron-ai/alethia/releases
|
|
11
11
|
*
|
|
12
12
|
* Alethia is the patent-pending zero-IPC E2E test runtime built for AI agents.
|
|
13
|
-
*
|
|
13
|
+
* ~40 ms per tool call — 2-5x faster than Playwright MCP per flow; up to 50x
|
|
14
|
+
* faster than Playwright CLI on simple flows. Fail-closed by default.
|
|
14
15
|
* Cryptographically chained audit packs. Local-first. Zero telemetry by default.
|
|
15
16
|
* Opt-in cloud features (when they ship — none today).
|
|
16
17
|
*
|
|
@@ -18,7 +19,16 @@
|
|
|
18
19
|
* Patent Pending — U.S. Application No. 19/571,437. The MIT license on this
|
|
19
20
|
* MCP bridge does NOT grant any patent license under U.S. App 19/571,437.
|
|
20
21
|
*/
|
|
22
|
+
export declare const semverParts: (v: string) => [number, number, number];
|
|
23
|
+
export declare const compareSemver: (a: string, b: string) => number;
|
|
24
|
+
export declare const isMajorBoundaryCrossed: (from: string, to: string) => boolean;
|
|
25
|
+
export declare const selectBootstrapTarget: () => {
|
|
26
|
+
version: string;
|
|
27
|
+
jsPath: string;
|
|
28
|
+
installDir: string;
|
|
29
|
+
} | null;
|
|
21
30
|
export declare const __setLatestVersionFetcherForTests: (fn: (() => Promise<string | null>) | null) => void;
|
|
31
|
+
export declare const __BRIDGE_INSTALL_ROOT_FOR_TESTS: () => string;
|
|
22
32
|
export declare const resolveRuntimeVersion: () => Promise<string>;
|
|
23
33
|
export declare const getArtifactName: (runtimeVersion: string) => string | null;
|
|
24
34
|
export declare const getGithubReleaseBase: (runtimeVersion: string) => string;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;GAmBG;AA6HH,eAAO,MAAM,WAAW,GAAI,GAAG,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAO9D,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,GAAG,MAAM,EAAE,GAAG,MAAM,KAAG,MAMpD,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,MAAM,MAAM,EAAE,IAAI,MAAM,KAAG,OACrB,CAAC;AAkH9C,eAAO,MAAM,qBAAqB,QAAO;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,IA8ClG,CAAC;AAkOF,eAAO,MAAM,iCAAiC,GAAI,IAAI,CAAC,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,KAAG,IAE7F,CAAC;AAIF,eAAO,MAAM,+BAA+B,QAAO,MAA6B,CAAC;AAEjF,eAAO,MAAM,qBAAqB,QAAa,OAAO,CAAC,MAAM,CAmC5D,CAAC;AAuDF,eAAO,MAAM,eAAe,GAAI,gBAAgB,MAAM,KAAG,MAAM,GAAG,IAiBjE,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,gBAAgB,MAAM,KAAG,MACe,CAAC;AAsF9E,eAAO,MAAM,+BAA+B,GAAI,mBAAwB,KAAG,MAAM,GAAG,IAsBnF,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -10,7 +10,8 @@
|
|
|
10
10
|
* https://github.com/vitron-ai/alethia/releases
|
|
11
11
|
*
|
|
12
12
|
* Alethia is the patent-pending zero-IPC E2E test runtime built for AI agents.
|
|
13
|
-
*
|
|
13
|
+
* ~40 ms per tool call — 2-5x faster than Playwright MCP per flow; up to 50x
|
|
14
|
+
* faster than Playwright CLI on simple flows. Fail-closed by default.
|
|
14
15
|
* Cryptographically chained audit packs. Local-first. Zero telemetry by default.
|
|
15
16
|
* Opt-in cloud features (when they ship — none today).
|
|
16
17
|
*
|
|
@@ -54,6 +55,13 @@ const ALETHIA_HOST = process.env.ALETHIA_HOST ?? '127.0.0.1';
|
|
|
54
55
|
const ALETHIA_PORT = Number(process.env.ALETHIA_PORT ?? 47432);
|
|
55
56
|
const ALETHIA_TIMEOUT_MS = Number(process.env.ALETHIA_TIMEOUT_MS ?? 60_000);
|
|
56
57
|
const DEBUG = process.env.ALETHIA_DEBUG === '1' || process.argv.includes('--debug');
|
|
58
|
+
// Read update-related env vars via accessors so tests (and long-running
|
|
59
|
+
// sessions where env changes mid-flight) pick up the current value. The
|
|
60
|
+
// module-const pattern would capture these once at load and desync.
|
|
61
|
+
const skipAutoUpdate = () => process.env.ALETHIA_SKIP_AUTO_UPDATE === '1';
|
|
62
|
+
const isBootstrappedChild = () => process.env.ALETHIA_BOOTSTRAPPED === '1';
|
|
63
|
+
const bridgeSriPin = () => process.env.ALETHIA_BRIDGE_SRI ?? null;
|
|
64
|
+
const bridgeVersionPin = () => process.env.ALETHIA_BRIDGE_VERSION ?? null;
|
|
57
65
|
const debug = (...args) => {
|
|
58
66
|
if (DEBUG) {
|
|
59
67
|
process.stderr.write(`[alethia-mcp] ${args.map(String).join(' ')}\n`);
|
|
@@ -70,6 +78,342 @@ const isSkillInstalled = () => {
|
|
|
70
78
|
return false;
|
|
71
79
|
}
|
|
72
80
|
};
|
|
81
|
+
// Paths used by skill auto-refresh. The bundled skill ships with each
|
|
82
|
+
// published @vitronai/alethia tarball; the installed skill lives in the
|
|
83
|
+
// user's ~/.claude/skills. When the two diverge, the installed copy is
|
|
84
|
+
// stale — we overwrite it with the bundled version on bridge startup.
|
|
85
|
+
const BUNDLED_SKILL_PATH = resolve(__dirname, '..', 'skills', 'alethia', 'SKILL.md');
|
|
86
|
+
const INSTALLED_SKILL_PATH = join(homedir(), '.claude', 'skills', 'alethia', 'SKILL.md');
|
|
87
|
+
// Hash a skill file for content-address comparison. SHA-256 is overkill for
|
|
88
|
+
// this (no adversary to defend against at this layer — both files come from
|
|
89
|
+
// trusted channels), but it's the same primitive we use elsewhere and the
|
|
90
|
+
// cost is nanoseconds for a ~10KB markdown file. Returns null if the file
|
|
91
|
+
// doesn't exist or can't be read.
|
|
92
|
+
const hashSkillFile = (path) => {
|
|
93
|
+
try {
|
|
94
|
+
const content = readFileSync(path);
|
|
95
|
+
return createHash('sha256').update(content).digest('hex');
|
|
96
|
+
}
|
|
97
|
+
catch {
|
|
98
|
+
return null;
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
// Called on every bridge startup. If the installed skill is missing or
|
|
102
|
+
// differs from the bundled one, copy the bundled version over. Silently
|
|
103
|
+
// best-effort — a failed refresh should never block the MCP server from
|
|
104
|
+
// starting. Writes a single stderr line when a refresh happens so users
|
|
105
|
+
// running `--debug` can see the update; silent on the no-op path.
|
|
106
|
+
// ---------------------------------------------------------------------------
|
|
107
|
+
// Bridge self-update from the npm registry.
|
|
108
|
+
//
|
|
109
|
+
// Philosophy: the bridge auto-updates from the same signed distribution
|
|
110
|
+
// channel a user would install from manually. Trust root = npm registry.
|
|
111
|
+
// No new trust decision vs. `npm install -g`.
|
|
112
|
+
//
|
|
113
|
+
// Mitigations layered on top:
|
|
114
|
+
// - Integrity (SRI) verification against the hash npm serves in the
|
|
115
|
+
// packument. If the tarball doesn't match, refuse.
|
|
116
|
+
// - Major-version gate: 0.x→0.y is fine; 1.x→2.x requires explicit user
|
|
117
|
+
// action. Prevents "hijacker publishes v99.0.0" taking over.
|
|
118
|
+
// - Version pin: ALETHIA_BRIDGE_VERSION=x.y.z skips auto-update entirely.
|
|
119
|
+
// - SRI pin: ALETHIA_BRIDGE_SRI=sha512-... requires a specific hash.
|
|
120
|
+
// - Opt-out: ALETHIA_skipAutoUpdate()=1 disables the whole thing.
|
|
121
|
+
// - Rollback: a new version only becomes "trusted" after a successful
|
|
122
|
+
// MCP initialize handshake. Versions that crash before that get
|
|
123
|
+
// quarantined after 3 failed attempts.
|
|
124
|
+
// ---------------------------------------------------------------------------
|
|
125
|
+
const BRIDGE_INSTALL_ROOT = join(homedir(), '.alethia', 'bridge');
|
|
126
|
+
const BRIDGE_REGISTRY_CACHE = join(homedir(), '.alethia', '.bridge-registry-cache');
|
|
127
|
+
const BRIDGE_REGISTRY_TTL_MS = 60 * 60 * 1000; // 1h
|
|
128
|
+
const MAX_BOOTSTRAP_ATTEMPTS = 3;
|
|
129
|
+
// Parse "x.y.z" or "x.y.z-pre.N". Returns [major, minor, patch] ints.
|
|
130
|
+
export const semverParts = (v) => {
|
|
131
|
+
const core = v.split('-')[0] ?? v;
|
|
132
|
+
const parts = core.split('.').map((n) => {
|
|
133
|
+
const x = parseInt(n, 10);
|
|
134
|
+
return Number.isFinite(x) ? x : 0;
|
|
135
|
+
});
|
|
136
|
+
return [parts[0] ?? 0, parts[1] ?? 0, parts[2] ?? 0];
|
|
137
|
+
};
|
|
138
|
+
export const compareSemver = (a, b) => {
|
|
139
|
+
const [aM, aN, aP] = semverParts(a);
|
|
140
|
+
const [bM, bN, bP] = semverParts(b);
|
|
141
|
+
if (aM !== bM)
|
|
142
|
+
return aM - bM;
|
|
143
|
+
if (aN !== bN)
|
|
144
|
+
return aN - bN;
|
|
145
|
+
return aP - bP;
|
|
146
|
+
};
|
|
147
|
+
export const isMajorBoundaryCrossed = (from, to) => semverParts(from)[0] !== semverParts(to)[0];
|
|
148
|
+
const readRegistryCache = () => {
|
|
149
|
+
try {
|
|
150
|
+
const raw = JSON.parse(readFileSync(BRIDGE_REGISTRY_CACHE, 'utf8'));
|
|
151
|
+
if (typeof raw.fetchedAt === 'number' && raw.info && typeof raw.info.version === 'string')
|
|
152
|
+
return raw;
|
|
153
|
+
}
|
|
154
|
+
catch { /* no cache */ }
|
|
155
|
+
return null;
|
|
156
|
+
};
|
|
157
|
+
const writeRegistryCache = (info) => {
|
|
158
|
+
try {
|
|
159
|
+
mkdirSync(dirname(BRIDGE_REGISTRY_CACHE), { recursive: true });
|
|
160
|
+
writeFileSync(BRIDGE_REGISTRY_CACHE, JSON.stringify({ fetchedAt: Date.now(), info }));
|
|
161
|
+
}
|
|
162
|
+
catch { /* best-effort */ }
|
|
163
|
+
};
|
|
164
|
+
const fetchPackumentLatest = () => new Promise((resolveFetch) => {
|
|
165
|
+
const req = https.get(`https://registry.npmjs.org/${PKG_NAME}/latest`, { timeout: 3000, headers: { accept: 'application/json', 'user-agent': `${PKG_NAME}/${PKG_VERSION}` } }, (res) => {
|
|
166
|
+
if (res.statusCode !== 200) {
|
|
167
|
+
res.resume();
|
|
168
|
+
return resolveFetch(null);
|
|
169
|
+
}
|
|
170
|
+
let body = '';
|
|
171
|
+
res.setEncoding('utf8');
|
|
172
|
+
res.on('data', (c) => { body += c; if (body.length > 256 * 1024)
|
|
173
|
+
res.destroy(); });
|
|
174
|
+
res.on('end', () => {
|
|
175
|
+
try {
|
|
176
|
+
const pkg = JSON.parse(body);
|
|
177
|
+
if (typeof pkg.version !== 'string' || typeof pkg.dist?.tarball !== 'string' || typeof pkg.dist?.integrity !== 'string') {
|
|
178
|
+
return resolveFetch(null);
|
|
179
|
+
}
|
|
180
|
+
resolveFetch({ version: pkg.version, tarballUrl: pkg.dist.tarball, integrity: pkg.dist.integrity });
|
|
181
|
+
}
|
|
182
|
+
catch {
|
|
183
|
+
resolveFetch(null);
|
|
184
|
+
}
|
|
185
|
+
});
|
|
186
|
+
});
|
|
187
|
+
req.on('error', () => resolveFetch(null));
|
|
188
|
+
req.on('timeout', () => { req.destroy(); resolveFetch(null); });
|
|
189
|
+
});
|
|
190
|
+
// Download a tarball to a temp path. Returns the path on success, null on error.
|
|
191
|
+
const downloadTarball = (url, destPath) => new Promise((resolveDownload) => {
|
|
192
|
+
const doGet = (u, redirects = 0) => {
|
|
193
|
+
if (redirects > 5)
|
|
194
|
+
return resolveDownload(false);
|
|
195
|
+
https.get(u, (res) => {
|
|
196
|
+
if (res.statusCode && res.statusCode >= 300 && res.statusCode < 400 && res.headers.location) {
|
|
197
|
+
res.resume();
|
|
198
|
+
return doGet(res.headers.location, redirects + 1);
|
|
199
|
+
}
|
|
200
|
+
if (res.statusCode !== 200) {
|
|
201
|
+
res.resume();
|
|
202
|
+
return resolveDownload(false);
|
|
203
|
+
}
|
|
204
|
+
const ws = createWriteStream(destPath);
|
|
205
|
+
res.pipe(ws);
|
|
206
|
+
ws.on('finish', () => resolveDownload(true));
|
|
207
|
+
ws.on('error', () => resolveDownload(false));
|
|
208
|
+
res.on('error', () => resolveDownload(false));
|
|
209
|
+
}).on('error', () => resolveDownload(false));
|
|
210
|
+
};
|
|
211
|
+
doGet(url);
|
|
212
|
+
});
|
|
213
|
+
// Verify an SRI integrity string against a file. SRI format: "sha512-<base64>".
|
|
214
|
+
// npm serves sha512 for all modern packages. Reject other algorithms — an
|
|
215
|
+
// attacker shouldn't be able to downgrade us to sha1.
|
|
216
|
+
const verifySri = (filePath, sri) => {
|
|
217
|
+
const match = sri.match(/^sha512-([A-Za-z0-9+/=]+)$/);
|
|
218
|
+
if (!match)
|
|
219
|
+
return false;
|
|
220
|
+
const expectedB64 = match[1];
|
|
221
|
+
try {
|
|
222
|
+
const actualB64 = createHash('sha512').update(readFileSync(filePath)).digest('base64');
|
|
223
|
+
return actualB64 === expectedB64;
|
|
224
|
+
}
|
|
225
|
+
catch {
|
|
226
|
+
return false;
|
|
227
|
+
}
|
|
228
|
+
};
|
|
229
|
+
const readVersionDirState = (versionDir) => {
|
|
230
|
+
return {
|
|
231
|
+
verified: existsSync(join(versionDir, '.verified')),
|
|
232
|
+
attempts: (() => {
|
|
233
|
+
try {
|
|
234
|
+
const raw = readFileSync(join(versionDir, '.bootstrap-attempts'), 'utf8');
|
|
235
|
+
const n = parseInt(raw, 10);
|
|
236
|
+
return Number.isFinite(n) ? n : 0;
|
|
237
|
+
}
|
|
238
|
+
catch {
|
|
239
|
+
return 0;
|
|
240
|
+
}
|
|
241
|
+
})(),
|
|
242
|
+
};
|
|
243
|
+
};
|
|
244
|
+
const incrementBootstrapAttempts = (versionDir) => {
|
|
245
|
+
const current = readVersionDirState(versionDir).attempts;
|
|
246
|
+
const next = current + 1;
|
|
247
|
+
try {
|
|
248
|
+
writeFileSync(join(versionDir, '.bootstrap-attempts'), String(next));
|
|
249
|
+
}
|
|
250
|
+
catch { /* best effort */ }
|
|
251
|
+
return next;
|
|
252
|
+
};
|
|
253
|
+
// Mark the CURRENT running version as verified-working. Called after we
|
|
254
|
+
// produce a valid MCP initialize response. Idempotent.
|
|
255
|
+
const markCurrentVersionVerified = () => {
|
|
256
|
+
// __dirname is .../dist; parent is the install dir for this version.
|
|
257
|
+
const currentInstallDir = resolve(__dirname, '..');
|
|
258
|
+
// If we're running from the globally-installed npm path (not from
|
|
259
|
+
// ~/.alethia/bridge/<version>/), there's nothing to mark — the global
|
|
260
|
+
// install is implicitly trusted.
|
|
261
|
+
if (!currentInstallDir.startsWith(BRIDGE_INSTALL_ROOT))
|
|
262
|
+
return;
|
|
263
|
+
try {
|
|
264
|
+
writeFileSync(join(currentInstallDir, '.verified'), new Date().toISOString());
|
|
265
|
+
}
|
|
266
|
+
catch { /* best effort */ }
|
|
267
|
+
};
|
|
268
|
+
// Determine which bridge version THIS spawn should actually run. May return:
|
|
269
|
+
// - null: run ourselves (we're the newest trusted option)
|
|
270
|
+
// - a path: exec into this dist/index.js instead
|
|
271
|
+
// Honors env pins + rollback + major-version gate.
|
|
272
|
+
export const selectBootstrapTarget = () => {
|
|
273
|
+
if (isBootstrappedChild())
|
|
274
|
+
return null; // already a bootstrap child; don't recurse
|
|
275
|
+
if (skipAutoUpdate())
|
|
276
|
+
return null;
|
|
277
|
+
let candidates = [];
|
|
278
|
+
try {
|
|
279
|
+
candidates = readdirSync(BRIDGE_INSTALL_ROOT, { withFileTypes: true })
|
|
280
|
+
.filter(d => d.isDirectory())
|
|
281
|
+
.map(d => d.name)
|
|
282
|
+
.filter(name => /^\d+\.\d+\.\d+/.test(name));
|
|
283
|
+
}
|
|
284
|
+
catch {
|
|
285
|
+
return null; // no install root yet
|
|
286
|
+
}
|
|
287
|
+
// If user pinned a specific version, honor it.
|
|
288
|
+
const pin = bridgeVersionPin();
|
|
289
|
+
if (pin) {
|
|
290
|
+
if (candidates.includes(pin)) {
|
|
291
|
+
const dir = join(BRIDGE_INSTALL_ROOT, pin);
|
|
292
|
+
const js = join(dir, 'dist', 'index.js');
|
|
293
|
+
if (existsSync(js) && pin !== PKG_VERSION) {
|
|
294
|
+
return { version: pin, jsPath: js, installDir: dir };
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
return null; // pin is us or pin doesn't exist → run ourselves
|
|
298
|
+
}
|
|
299
|
+
// Sort descending by semver, pick the newest that's (a) trusted OR
|
|
300
|
+
// (b) untrusted but under the retry threshold, AND (c) doesn't cross
|
|
301
|
+
// a major boundary from our own version.
|
|
302
|
+
candidates.sort((a, b) => compareSemver(b, a));
|
|
303
|
+
for (const version of candidates) {
|
|
304
|
+
if (compareSemver(version, PKG_VERSION) <= 0)
|
|
305
|
+
continue; // not newer
|
|
306
|
+
if (isMajorBoundaryCrossed(PKG_VERSION, version))
|
|
307
|
+
continue; // gate
|
|
308
|
+
const dir = join(BRIDGE_INSTALL_ROOT, version);
|
|
309
|
+
const js = join(dir, 'dist', 'index.js');
|
|
310
|
+
if (!existsSync(js))
|
|
311
|
+
continue;
|
|
312
|
+
const state = readVersionDirState(dir);
|
|
313
|
+
if (state.verified)
|
|
314
|
+
return { version, jsPath: js, installDir: dir };
|
|
315
|
+
if (state.attempts >= MAX_BOOTSTRAP_ATTEMPTS)
|
|
316
|
+
continue; // quarantined
|
|
317
|
+
// Untrusted but under threshold — try it, and increment attempts
|
|
318
|
+
// BEFORE exec so a crash-during-init is properly counted.
|
|
319
|
+
incrementBootstrapAttempts(dir);
|
|
320
|
+
return { version, jsPath: js, installDir: dir };
|
|
321
|
+
}
|
|
322
|
+
return null;
|
|
323
|
+
};
|
|
324
|
+
// Fire-and-forget: check npm for a newer version, download+verify+install if
|
|
325
|
+
// one exists. Runs after the bridge is up and serving; doesn't block MCP
|
|
326
|
+
// client traffic. The new version takes effect on next spawn.
|
|
327
|
+
const backgroundCheckForNewBridge = async () => {
|
|
328
|
+
if (skipAutoUpdate() || isBootstrappedChild() || bridgeVersionPin())
|
|
329
|
+
return;
|
|
330
|
+
const cached = readRegistryCache();
|
|
331
|
+
const fresh = cached && Date.now() - cached.fetchedAt < BRIDGE_REGISTRY_TTL_MS;
|
|
332
|
+
const info = fresh ? cached.info : await fetchPackumentLatest();
|
|
333
|
+
if (!info)
|
|
334
|
+
return;
|
|
335
|
+
if (!fresh)
|
|
336
|
+
writeRegistryCache(info);
|
|
337
|
+
if (compareSemver(info.version, PKG_VERSION) <= 0)
|
|
338
|
+
return; // not newer
|
|
339
|
+
if (isMajorBoundaryCrossed(PKG_VERSION, info.version)) {
|
|
340
|
+
process.stderr.write(`[alethia] newer bridge ${info.version} available but crosses a major version boundary from ${PKG_VERSION}. ` +
|
|
341
|
+
`Not auto-updating. Run \`npm install -g ${PKG_NAME}@${info.version}\` to accept the upgrade manually.\n`);
|
|
342
|
+
return;
|
|
343
|
+
}
|
|
344
|
+
// If the user pinned an integrity hash, refuse anything else.
|
|
345
|
+
const sriPin = bridgeSriPin();
|
|
346
|
+
if (sriPin && sriPin !== info.integrity) {
|
|
347
|
+
process.stderr.write(`[alethia] refusing to auto-update to ${info.version}: integrity mismatch with ALETHIA_BRIDGE_SRI pin.\n`);
|
|
348
|
+
return;
|
|
349
|
+
}
|
|
350
|
+
const targetDir = join(BRIDGE_INSTALL_ROOT, info.version);
|
|
351
|
+
if (existsSync(join(targetDir, 'dist', 'index.js')))
|
|
352
|
+
return; // already installed
|
|
353
|
+
mkdirSync(BRIDGE_INSTALL_ROOT, { recursive: true });
|
|
354
|
+
const tarballPath = join(BRIDGE_INSTALL_ROOT, `${info.version}.tgz`);
|
|
355
|
+
const downloaded = await downloadTarball(info.tarballUrl, tarballPath);
|
|
356
|
+
if (!downloaded) {
|
|
357
|
+
try {
|
|
358
|
+
rmSync(tarballPath, { force: true });
|
|
359
|
+
}
|
|
360
|
+
catch { /* ignore */ }
|
|
361
|
+
return;
|
|
362
|
+
}
|
|
363
|
+
if (!verifySri(tarballPath, info.integrity)) {
|
|
364
|
+
process.stderr.write(`[alethia] downloaded ${info.version} tarball FAILED integrity check — refusing to install.\n`);
|
|
365
|
+
try {
|
|
366
|
+
rmSync(tarballPath, { force: true });
|
|
367
|
+
}
|
|
368
|
+
catch { /* ignore */ }
|
|
369
|
+
return;
|
|
370
|
+
}
|
|
371
|
+
// Extract the tarball. npm tarballs contain a `package/` prefix; strip it so
|
|
372
|
+
// we end up with dist/, skills/, package.json directly under <version>/.
|
|
373
|
+
mkdirSync(targetDir, { recursive: true });
|
|
374
|
+
try {
|
|
375
|
+
execSync(`tar -xzf "${tarballPath}" -C "${targetDir}" --strip-components=1`, { stdio: 'pipe' });
|
|
376
|
+
}
|
|
377
|
+
catch {
|
|
378
|
+
process.stderr.write(`[alethia] failed to extract ${info.version} tarball.\n`);
|
|
379
|
+
try {
|
|
380
|
+
rmSync(targetDir, { recursive: true, force: true });
|
|
381
|
+
}
|
|
382
|
+
catch { /* ignore */ }
|
|
383
|
+
try {
|
|
384
|
+
rmSync(tarballPath, { force: true });
|
|
385
|
+
}
|
|
386
|
+
catch { /* ignore */ }
|
|
387
|
+
return;
|
|
388
|
+
}
|
|
389
|
+
try {
|
|
390
|
+
rmSync(tarballPath, { force: true });
|
|
391
|
+
}
|
|
392
|
+
catch { /* ignore */ }
|
|
393
|
+
process.stderr.write(`[alethia] installed bridge ${info.version} to ${targetDir}. ` +
|
|
394
|
+
`Takes effect on next MCP client spawn.\n`);
|
|
395
|
+
};
|
|
396
|
+
const refreshSkillIfStale = () => {
|
|
397
|
+
const bundledHash = hashSkillFile(BUNDLED_SKILL_PATH);
|
|
398
|
+
if (!bundledHash)
|
|
399
|
+
return 'no-bundle';
|
|
400
|
+
const installedHash = hashSkillFile(INSTALLED_SKILL_PATH);
|
|
401
|
+
if (installedHash === null)
|
|
402
|
+
return 'not-installed';
|
|
403
|
+
if (installedHash === bundledHash)
|
|
404
|
+
return 'already-current';
|
|
405
|
+
// Installed is stale. Overwrite with bundled.
|
|
406
|
+
try {
|
|
407
|
+
mkdirSync(dirname(INSTALLED_SKILL_PATH), { recursive: true });
|
|
408
|
+
writeFileSync(INSTALLED_SKILL_PATH, readFileSync(BUNDLED_SKILL_PATH));
|
|
409
|
+
process.stderr.write(`[alethia] refreshed Claude Code skill at ${INSTALLED_SKILL_PATH} ` +
|
|
410
|
+
`(hash ${installedHash.slice(0, 8)} → ${bundledHash.slice(0, 8)})\n`);
|
|
411
|
+
return 'refreshed';
|
|
412
|
+
}
|
|
413
|
+
catch {
|
|
414
|
+
return 'not-installed';
|
|
415
|
+
}
|
|
416
|
+
};
|
|
73
417
|
// ---------------------------------------------------------------------------
|
|
74
418
|
// Demo server — serves demo/ files on localhost for preview panels
|
|
75
419
|
// ---------------------------------------------------------------------------
|
|
@@ -186,6 +530,9 @@ let _fetcherForTests = null;
|
|
|
186
530
|
export const __setLatestVersionFetcherForTests = (fn) => {
|
|
187
531
|
_fetcherForTests = fn;
|
|
188
532
|
};
|
|
533
|
+
// Test hooks for bridge self-update. Tests can swap the packument fetcher
|
|
534
|
+
// and inspect the install root without hitting the network.
|
|
535
|
+
export const __BRIDGE_INSTALL_ROOT_FOR_TESTS = () => BRIDGE_INSTALL_ROOT;
|
|
189
536
|
export const resolveRuntimeVersion = async () => {
|
|
190
537
|
const pinned = getPinnedRuntimeVersion();
|
|
191
538
|
if (pinned) {
|
|
@@ -1095,6 +1442,108 @@ const validateToolArgs = (toolName, args) => {
|
|
|
1095
1442
|
return `unknown tool: ${toolName}`;
|
|
1096
1443
|
}
|
|
1097
1444
|
};
|
|
1445
|
+
// ---------------------------------------------------------------------------
|
|
1446
|
+
// Human-readable stderr summary for tool responses.
|
|
1447
|
+
//
|
|
1448
|
+
// Two audiences read this bridge's output:
|
|
1449
|
+
// 1. The MCP client (agent) reads the JSON response on stdout.
|
|
1450
|
+
// 2. The human (developer, CI log reader) scrolls through stderr.
|
|
1451
|
+
//
|
|
1452
|
+
// The agent doesn't need verbose prose — tokens cost real money. The human
|
|
1453
|
+
// wants to see at a glance what happened on each call. We satisfy both by
|
|
1454
|
+
// emitting a compact human summary to stderr on every alethia_tell / parallel
|
|
1455
|
+
// call, completely independent of the JSON shape going to stdout.
|
|
1456
|
+
//
|
|
1457
|
+
// Set ALETHIA_QUIET=1 to disable (useful for automated benchmark harnesses
|
|
1458
|
+
// that parse stderr separately).
|
|
1459
|
+
// ---------------------------------------------------------------------------
|
|
1460
|
+
const humanLogsEnabled = () => process.env.ALETHIA_QUIET !== '1';
|
|
1461
|
+
const humanLog = (line) => {
|
|
1462
|
+
if (humanLogsEnabled()) {
|
|
1463
|
+
process.stderr.write(`${line}\n`);
|
|
1464
|
+
}
|
|
1465
|
+
};
|
|
1466
|
+
const fmtDuration = (ms) => {
|
|
1467
|
+
const n = typeof ms === 'number' ? ms : Number(ms);
|
|
1468
|
+
if (!Number.isFinite(n))
|
|
1469
|
+
return '—';
|
|
1470
|
+
return n >= 1000 ? `${(n / 1000).toFixed(2)}s` : `${Math.round(n)}ms`;
|
|
1471
|
+
};
|
|
1472
|
+
// Parse a stepRun's failure detail into (reason, context lines) for the
|
|
1473
|
+
// diagnostic block. The runtime currently emits failure detail like:
|
|
1474
|
+
// "Step 2/5 failed: Not found: :text(Anvil) | page title: \"X\" | N elements on page | headings: ... | buttons/links: ... | inputs: ..."
|
|
1475
|
+
// The first segment carries the actual "why" (e.g. "Not found: :text(Anvil)").
|
|
1476
|
+
// The trailing segments are page context we want to show indented under it.
|
|
1477
|
+
const parseFailureDetail = (step) => {
|
|
1478
|
+
const detail = typeof step.detail === 'string' ? step.detail : '';
|
|
1479
|
+
if (!detail)
|
|
1480
|
+
return { reason: null, context: [] };
|
|
1481
|
+
const parts = detail.split(' | ').map((s) => s.trim()).filter(Boolean);
|
|
1482
|
+
const first = parts[0] ?? '';
|
|
1483
|
+
// Strip the "Step N/M failed: " prefix if present to keep the reason clean.
|
|
1484
|
+
const reason = first.replace(/^Step\s+\d+\/\d+\s+failed:\s*/i, '').trim() || null;
|
|
1485
|
+
const context = parts.slice(1).slice(0, 6); // cap at 6 context lines
|
|
1486
|
+
return { reason, context };
|
|
1487
|
+
};
|
|
1488
|
+
// Render a compact human-readable summary of an alethia_tell result to stderr.
|
|
1489
|
+
// Accepts whatever shape the runtime returned; gracefully falls back to a
|
|
1490
|
+
// single-line marker if fields are missing.
|
|
1491
|
+
const printTellSummary = (toolName, result) => {
|
|
1492
|
+
if (!humanLogsEnabled())
|
|
1493
|
+
return;
|
|
1494
|
+
if (!result || typeof result !== 'object') {
|
|
1495
|
+
humanLog(`[${toolName}] (no result)`);
|
|
1496
|
+
return;
|
|
1497
|
+
}
|
|
1498
|
+
const r = result;
|
|
1499
|
+
const ok = r.ok !== false; // default true unless explicitly false
|
|
1500
|
+
const run = (r.run && typeof r.run === 'object' ? r.run : r);
|
|
1501
|
+
const name = typeof run.name === 'string' ? run.name : (typeof r.name === 'string' ? r.name : 'unnamed');
|
|
1502
|
+
const elapsed = fmtDuration(run.elapsedMs ?? r.elapsedMs);
|
|
1503
|
+
const stepRuns = Array.isArray(run.stepRuns) ? run.stepRuns : [];
|
|
1504
|
+
const totalSteps = stepRuns.length;
|
|
1505
|
+
const okSteps = stepRuns.filter((s) => typeof s === 'object' && s !== null && s.ok !== false).length;
|
|
1506
|
+
if (ok) {
|
|
1507
|
+
// One-line success summary. Keeps CI logs scannable.
|
|
1508
|
+
humanLog(`[${toolName}] ${name} · ${totalSteps} step${totalSteps === 1 ? '' : 's'} · ${elapsed} · OK`);
|
|
1509
|
+
return;
|
|
1510
|
+
}
|
|
1511
|
+
// Failure — emit multi-line diagnostic block with as much context as we can
|
|
1512
|
+
// extract from the result. Human reading CI should have what they need to
|
|
1513
|
+
// debug without re-running locally.
|
|
1514
|
+
const failedIdx = stepRuns.findIndex((s) => typeof s === 'object' && s !== null && s.ok === false);
|
|
1515
|
+
const failedStep = failedIdx >= 0 ? stepRuns[failedIdx] : null;
|
|
1516
|
+
const failedDetail = failedStep && typeof failedStep.detail === 'string' ? failedStep.detail : '';
|
|
1517
|
+
const topError = typeof r.error === 'string' ? r.error : '';
|
|
1518
|
+
// Compact one-line summary at the top so scanners see the headline.
|
|
1519
|
+
humanLog('─'.repeat(72));
|
|
1520
|
+
humanLog(`[${toolName}] ${name} · FAILED · ${elapsed} · ${okSteps} of ${totalSteps} step${totalSteps === 1 ? '' : 's'} passed`);
|
|
1521
|
+
if (failedStep) {
|
|
1522
|
+
const { reason, context } = parseFailureDetail(failedStep);
|
|
1523
|
+
// Prefer the parsed detail (carries the real "why") over the raw reasonCode
|
|
1524
|
+
// (which is a policy-gate label like ALLOW/DENY, useful for compliance but
|
|
1525
|
+
// not the cause).
|
|
1526
|
+
humanLog(` failed step: ${failedIdx + 1} of ${totalSteps}`);
|
|
1527
|
+
if (reason)
|
|
1528
|
+
humanLog(` reason: ${reason}`);
|
|
1529
|
+
else if (failedStep.error)
|
|
1530
|
+
humanLog(` reason: ${failedStep.error}`);
|
|
1531
|
+
else if (failedStep.reasonCode)
|
|
1532
|
+
humanLog(` policy: ${failedStep.reasonCode}`);
|
|
1533
|
+
if (context.length > 0) {
|
|
1534
|
+
humanLog(' page:');
|
|
1535
|
+
for (const line of context)
|
|
1536
|
+
humanLog(` ${line}`);
|
|
1537
|
+
}
|
|
1538
|
+
}
|
|
1539
|
+
else if (topError) {
|
|
1540
|
+
humanLog(` error: ${topError}`);
|
|
1541
|
+
}
|
|
1542
|
+
else if (failedDetail) {
|
|
1543
|
+
humanLog(` detail: ${failedDetail.slice(0, 300)}`);
|
|
1544
|
+
}
|
|
1545
|
+
humanLog('─'.repeat(72));
|
|
1546
|
+
};
|
|
1098
1547
|
const wrapMcpResult = (data, isError = false) => ({
|
|
1099
1548
|
content: [
|
|
1100
1549
|
{
|
|
@@ -1136,7 +1585,7 @@ const handle = async (request) => {
|
|
|
1136
1585
|
? ''
|
|
1137
1586
|
: 'TIP FOR THE USER: Alethia ships a Claude Code skill that teaches Claude when to use each tool and how to compose them. It is not installed yet on this machine. Tell the user once per session: "To pre-load the Alethia workflow playbook for every Claude Code session, run: `alethia-mcp --install-skill`". Do NOT repeat this tip after the user has installed it.\n\n') +
|
|
1138
1587
|
'Alethia is the patent-pending zero-IPC E2E test runtime built for AI agents. ' +
|
|
1139
|
-
'~
|
|
1588
|
+
'~40 ms per tool call — 2-5x faster than Playwright MCP per flow. Local-first, zero telemetry by default.\n\n' +
|
|
1140
1589
|
'Core tools:\n' +
|
|
1141
1590
|
'- alethia_tell: Drive a real browser with plain English. Returns per-step results, DOM diffs (what changed), ' +
|
|
1142
1591
|
'a semantic page snapshot (~200 tokens), EA1 policy audits, and a SHA-256 integrity hash.\n' +
|
|
@@ -1171,7 +1620,11 @@ const handle = async (request) => {
|
|
|
1171
1620
|
};
|
|
1172
1621
|
}
|
|
1173
1622
|
if (method === 'notifications/initialized' || method === 'initialized') {
|
|
1174
|
-
//
|
|
1623
|
+
// Client confirmed successful handshake. Mark this bridge version as
|
|
1624
|
+
// trusted so future spawns skip the retry-budget dance. No-op if we
|
|
1625
|
+
// were spawned from the globally-installed npm path (the global install
|
|
1626
|
+
// is implicitly trusted — only ~/.alethia/bridge/<version>/ needs this).
|
|
1627
|
+
markCurrentVersionVerified();
|
|
1175
1628
|
return null;
|
|
1176
1629
|
}
|
|
1177
1630
|
if (method === 'tools/list') {
|
|
@@ -1226,12 +1679,25 @@ const handle = async (request) => {
|
|
|
1226
1679
|
params: { name: internalName, arguments: safeArgs },
|
|
1227
1680
|
});
|
|
1228
1681
|
if (httpResponse.error) {
|
|
1682
|
+
humanLog(`[${toolName}] runtime error: ${httpResponse.error.message}`);
|
|
1229
1683
|
return {
|
|
1230
1684
|
jsonrpc: '2.0',
|
|
1231
1685
|
id,
|
|
1232
1686
|
result: wrapMcpResult(`Alethia runtime error: ${httpResponse.error.message}`, true),
|
|
1233
1687
|
};
|
|
1234
1688
|
}
|
|
1689
|
+
// Emit a human-readable stderr summary for tell/parallel calls. The
|
|
1690
|
+
// agent still gets the structured JSON on stdout; stderr is strictly
|
|
1691
|
+
// for humans scrolling a CI log or debugging locally.
|
|
1692
|
+
if (toolName === 'alethia_tell' || toolName === 'alethia_tell_parallel') {
|
|
1693
|
+
try {
|
|
1694
|
+
printTellSummary(toolName, httpResponse.result);
|
|
1695
|
+
}
|
|
1696
|
+
catch {
|
|
1697
|
+
// Never let summary rendering break the bridge — failures here
|
|
1698
|
+
// are strictly cosmetic.
|
|
1699
|
+
}
|
|
1700
|
+
}
|
|
1235
1701
|
// Screenshot responses get special MCP image content blocks
|
|
1236
1702
|
if (toolName === 'alethia_screenshot' && httpResponse.result && typeof httpResponse.result === 'object') {
|
|
1237
1703
|
return {
|
|
@@ -1240,6 +1706,28 @@ const handle = async (request) => {
|
|
|
1240
1706
|
result: wrapMcpScreenshot(httpResponse.result),
|
|
1241
1707
|
};
|
|
1242
1708
|
}
|
|
1709
|
+
// Evidence-pack responses get a bridge-side metadata wrapper with
|
|
1710
|
+
// the bridge version + installed skill content hash. Partners doing
|
|
1711
|
+
// chain-of-custody review can reconstruct the exact
|
|
1712
|
+
// runtime+bridge+skill triple that produced the evidence.
|
|
1713
|
+
if (toolName === 'alethia_export_session' && httpResponse.result && typeof httpResponse.result === 'object') {
|
|
1714
|
+
const wrappedEvidence = {
|
|
1715
|
+
bridge: {
|
|
1716
|
+
name: PKG_NAME,
|
|
1717
|
+
version: PKG_VERSION,
|
|
1718
|
+
},
|
|
1719
|
+
skill: {
|
|
1720
|
+
installedHash: hashSkillFile(INSTALLED_SKILL_PATH),
|
|
1721
|
+
bundledHash: hashSkillFile(BUNDLED_SKILL_PATH),
|
|
1722
|
+
},
|
|
1723
|
+
evidencePack: httpResponse.result,
|
|
1724
|
+
};
|
|
1725
|
+
return {
|
|
1726
|
+
jsonrpc: '2.0',
|
|
1727
|
+
id,
|
|
1728
|
+
result: wrapMcpResult(wrappedEvidence),
|
|
1729
|
+
};
|
|
1730
|
+
}
|
|
1243
1731
|
return {
|
|
1244
1732
|
jsonrpc: '2.0',
|
|
1245
1733
|
id,
|
|
@@ -1334,46 +1822,84 @@ const isMainModule = (() => {
|
|
|
1334
1822
|
}
|
|
1335
1823
|
})();
|
|
1336
1824
|
if (isMainModule) {
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
|
|
1354
|
-
|
|
1355
|
-
|
|
1356
|
-
|
|
1825
|
+
// BOOTSTRAP HANDOFF: if a newer, signature-verified bridge is installed
|
|
1826
|
+
// at ~/.alethia/bridge/<version>/, exec to it instead of running ourselves.
|
|
1827
|
+
// This is how the self-update mechanism hands off control without requiring
|
|
1828
|
+
// the user to re-run `npm install -g`. Runs BEFORE we attach stdio
|
|
1829
|
+
// handlers — the child process inherits our stdio directly.
|
|
1830
|
+
const bootstrapTarget = selectBootstrapTarget();
|
|
1831
|
+
if (bootstrapTarget) {
|
|
1832
|
+
debug(`bootstrapping to bridge ${bootstrapTarget.version} at ${bootstrapTarget.jsPath}`);
|
|
1833
|
+
const child = spawn(process.execPath, [bootstrapTarget.jsPath], {
|
|
1834
|
+
stdio: 'inherit',
|
|
1835
|
+
env: { ...process.env, ALETHIA_BOOTSTRAPPED: '1' },
|
|
1836
|
+
});
|
|
1837
|
+
child.on('exit', (code, signal) => {
|
|
1838
|
+
if (signal)
|
|
1839
|
+
process.kill(process.pid, signal);
|
|
1840
|
+
else
|
|
1841
|
+
process.exit(code ?? 0);
|
|
1842
|
+
});
|
|
1843
|
+
child.on('error', (err) => {
|
|
1844
|
+
process.stderr.write(`[alethia] bootstrap child failed to spawn: ${err.message}; falling back to bundled bridge\n`);
|
|
1845
|
+
// Fall through — let the current process keep running normally below.
|
|
1846
|
+
});
|
|
1847
|
+
}
|
|
1848
|
+
else {
|
|
1849
|
+
// We're the version that's going to serve this session. Continue with
|
|
1850
|
+
// normal startup: skill refresh, stdio handlers, background update check.
|
|
1851
|
+
debug(`starting ${PKG_NAME} v${PKG_VERSION}, target ${ALETHIA_HOST}:${ALETHIA_PORT}, timeout ${ALETHIA_TIMEOUT_MS}ms`);
|
|
1852
|
+
// Auto-refresh the Claude Code skill if the installed copy differs from
|
|
1853
|
+
// the one bundled with this bridge version. No-op if the user never
|
|
1854
|
+
// installed the skill, or if the two match. This is the "users don't
|
|
1855
|
+
// have to manually re-run --install-skill every time we ship a new
|
|
1856
|
+
// playbook" guarantee.
|
|
1857
|
+
refreshSkillIfStale();
|
|
1858
|
+
// Kick off the background check for a newer bridge release. If one
|
|
1859
|
+
// exists and passes integrity verification, it's downloaded + extracted
|
|
1860
|
+
// to ~/.alethia/bridge/<version>/ and takes effect on next spawn. Does
|
|
1861
|
+
// not block the current session — purely ahead-of-time prep.
|
|
1862
|
+
void backgroundCheckForNewBridge().catch(() => { });
|
|
1863
|
+
process.stdin.setEncoding('utf8');
|
|
1864
|
+
let buffer = '';
|
|
1865
|
+
process.stdin.on('data', (chunk) => {
|
|
1866
|
+
buffer += chunk;
|
|
1867
|
+
while (true) {
|
|
1868
|
+
const nl = buffer.indexOf('\n');
|
|
1869
|
+
if (nl === -1)
|
|
1870
|
+
break;
|
|
1871
|
+
const line = buffer.slice(0, nl).trim();
|
|
1872
|
+
buffer = buffer.slice(nl + 1);
|
|
1873
|
+
if (!line)
|
|
1874
|
+
continue;
|
|
1875
|
+
let request;
|
|
1876
|
+
try {
|
|
1877
|
+
request = JSON.parse(line);
|
|
1878
|
+
}
|
|
1879
|
+
catch {
|
|
1880
|
+
write({ jsonrpc: '2.0', id: null, error: { code: -32700, message: 'Parse error' } });
|
|
1881
|
+
continue;
|
|
1882
|
+
}
|
|
1883
|
+
void handle(request).then(write).catch((err) => {
|
|
1884
|
+
write({ jsonrpc: '2.0', id: request.id ?? null, error: { code: -32000, message: err.message } });
|
|
1885
|
+
});
|
|
1357
1886
|
}
|
|
1358
|
-
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
|
|
1369
|
-
|
|
1370
|
-
|
|
1371
|
-
|
|
1372
|
-
|
|
1373
|
-
|
|
1374
|
-
|
|
1375
|
-
};
|
|
1376
|
-
process.on('SIGINT', shutdown('SIGINT'));
|
|
1377
|
-
process.on('SIGTERM', shutdown('SIGTERM'));
|
|
1887
|
+
});
|
|
1888
|
+
process.stdin.on('end', () => {
|
|
1889
|
+
// Set exitCode but DON'T forcibly exit. Pending HTTP responses (e.g. an
|
|
1890
|
+
// in-flight tools/call against an offline runtime) need to write their
|
|
1891
|
+
// error response back before the process is allowed to exit. The Node
|
|
1892
|
+
// event loop will drain naturally and exit with this code once there's
|
|
1893
|
+
// no remaining work.
|
|
1894
|
+
debug('stdin closed, will exit when pending work drains');
|
|
1895
|
+
process.exitCode = 0;
|
|
1896
|
+
});
|
|
1897
|
+
const shutdown = (signal) => () => {
|
|
1898
|
+
debug(`received ${signal}, exiting`);
|
|
1899
|
+
process.exit(0);
|
|
1900
|
+
};
|
|
1901
|
+
process.on('SIGINT', shutdown('SIGINT'));
|
|
1902
|
+
process.on('SIGTERM', shutdown('SIGTERM'));
|
|
1903
|
+
} // end: else branch of bootstrap check
|
|
1378
1904
|
}
|
|
1379
1905
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vitronai/alethia",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "MIT-licensed MCP bridge to the Alethia runtime — the patent-pending zero-IPC E2E test runtime
|
|
3
|
+
"version": "0.8.1",
|
|
4
|
+
"description": "MIT-licensed MCP bridge to the Alethia runtime — the patent-pending zero-IPC E2E test runtime for AI agents. 2-5x faster than Playwright MCP. Signed evidence packs, EA1 fail-closed safety gate, WCAG + NIST 800-53 audits built in. Local-first, zero telemetry. Auto-installs on first use.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"bin": {
|
package/skills/alethia/SKILL.md
CHANGED
|
@@ -37,6 +37,18 @@ Tell the user, verbatim:
|
|
|
37
37
|
|
|
38
38
|
After the user confirms they've completed those steps and restarted, the `alethia_*` tools will be in your next session's tool list. Retry the user's original request then.
|
|
39
39
|
|
|
40
|
+
**If the user says their MCP client logs show "Server transport closed unexpectedly"** or the Alethia bridge appears to start and then immediately exit: they're almost certainly running a stale cached version. Tell them:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
# If your client config uses `npx -y @vitronai/alethia`, clear the npx cache:
|
|
44
|
+
rm -rf ~/.npm/_npx
|
|
45
|
+
|
|
46
|
+
# If you installed globally, upgrade:
|
|
47
|
+
npm install -g @vitronai/alethia@latest
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Then fully quit and relaunch the MCP client (Cmd-Q on macOS). The "Server transport closed unexpectedly" symptom was fixed in bridge 0.6.1; any modern install will not hit it unless something is cached old.
|
|
51
|
+
|
|
40
52
|
## When to use this skill
|
|
41
53
|
|
|
42
54
|
- **"Smoke test this page"** → `alethia_tell` with navigate + asserts
|
|
@@ -88,13 +100,23 @@ alethia_tell({ instructions: "navigate to http://localhost:3000\nassert the page
|
|
|
88
100
|
|
|
89
101
|
### Bootstrap tests on an unknown page
|
|
90
102
|
```
|
|
91
|
-
1. alethia_propose_tests({ url }) → returns candidate
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
103
|
+
1. alethia_propose_tests({ url }) → returns candidate NAMED test blocks.
|
|
104
|
+
Each block is a cohesive multi-step
|
|
105
|
+
flow (page-structure verification,
|
|
106
|
+
safe-button interactions, EA1 safety
|
|
107
|
+
gate verification, table content
|
|
108
|
+
verification, etc.). The safety-gate
|
|
109
|
+
block has expect-block: lines for
|
|
110
|
+
every destructive action discovered.
|
|
111
|
+
2. For EACH block, call alethia_tell({ instructions: <that block's NLP> }).
|
|
96
112
|
```
|
|
97
113
|
|
|
114
|
+
**Run blocks one-at-a-time, not merged.** Each block becomes its own
|
|
115
|
+
signed PlanRun with its own integrity hash and history entry, the
|
|
116
|
+
cockpit UI paints them as discrete runs for anyone watching live, and
|
|
117
|
+
one block's failure doesn't sink the others. Merging is only OK for
|
|
118
|
+
quick scratch testing where you don't care about the audit boundary.
|
|
119
|
+
|
|
98
120
|
### Full compliance audit with signed evidence
|
|
99
121
|
```
|
|
100
122
|
1. alethia_tell({ instructions: "navigate to <url>" })
|