faf-cli 6.10.1 → 6.12.0

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 CHANGED
@@ -4,7 +4,7 @@
4
4
  <div style="display: flex; align-items: center; gap: 12px;">
5
5
  <img src="https://www.faf.one/orange-smiley.svg" alt="FAF" width="40" />
6
6
  <div>
7
- <h1 style="margin: 0; color: #000000;">faf-cli — The Composed Edition</h1>
7
+ <h1 style="margin: 0; color: #000000;">faf-cli — The Single-Source Edition</h1>
8
8
  <p style="margin: 2px 0 0 0; font-size: 0.85em; letter-spacing: 0.12em; opacity: 0.7; text-transform: uppercase;"><strong>Persistent AI Context Standard</strong></p>
9
9
  <p style="margin: 6px 0 0 0;"><strong>Persistent Project Context for AI.</strong></p>
10
10
  <p style="margin: 0;"><strong>Define once. Run anywhere.</strong></p>
@@ -63,6 +63,31 @@ Run `faf` with no arguments:
63
63
 
64
64
  ---
65
65
 
66
+ ## v6.12 — The Single-Source Edition
67
+
68
+ **faf-cli is now the single source for the registry `_meta`** — it emits the `one.faf/context` block every FAF MCP server composes: `registryMeta`/`registryName`/`fafContextBlock`, one deterministic projection, byte-identical, end-to-end across every surface, verifiable by sha, re-derivable instantly on-demand.
69
+
70
+ ```ts
71
+ import { registryMeta, registryName } from 'faf-cli';
72
+
73
+ serverJson.name = registryName(faf); // → one.faf/<name>, derived from project.homepage
74
+ serverJson._meta = registryMeta(faf); // nests one.faf/context under publisher-provided (4 KB cap)
75
+ ```
76
+
77
+ Honest-first: the block carries `{ faf, mediaType, iana, deterministic, generated }` — **no baked score**. One emitter, every door, byte-identical.
78
+
79
+ ---
80
+
81
+ ## v6.11 — The Ledger Edition
82
+
83
+ **`faf bench --submit` posts your cold-vs-grounded receipt to the public ledger — the context bench goes public, one command.** Run the grounding benchmark, then submit the full pair receipt:
84
+
85
+ ```bash
86
+ faf bench --submit
87
+ ```
88
+
89
+ The benchmark stops being a private number and becomes a shared, verifiable receipt on the public ledger. Also new: `relentlessContext` / `assembleFreshFaf` and the `buildTableOf8` interview keystone join the public API.
90
+
66
91
  ## v6.10 — The Composed Edition
67
92
 
68
93
  **Every FAF MCP composes single-source engines, never reimplements them.** Turbo-Cat (the ~200-format knowledge base) and the bench engine join the public API, alongside scoring and the 6Ws Interview:
@@ -154,9 +179,9 @@ v6 is a ground-up rewrite. All-in on Bun — same toolchain as Claude Code.
154
179
  | **Language** | TypeScript | TypeScript |
155
180
  | **Compile** | Bun bytecode | `bun build --compile` |
156
181
 
157
- 408 tests in ~13s. 296KB bundle in 2.4s. Single portable binary, 4 platforms. npx backward-compatible.
182
+ 880 tests in ~18s. 296KB bundle in 2.4s. Single portable binary, 4 platforms. npx backward-compatible.
158
183
 
159
- 26 commands. 408 tests. WJTTC-tested. 93% smaller than v5.
184
+ 32 commands. 880 tests. WJTTC-tested. 93% smaller than v5.
160
185
 
161
186
  ```
162
187
  commands → interop → core → wasm
@@ -276,7 +301,7 @@ src/
276
301
  > **Robust. Reliable. Next-level WJTTC tested.** — The Foundation Edition.
277
302
 
278
303
  ```bash
279
- bun test # 408 tests, 42 files, ~13s
304
+ bun test # 880 tests, 75 files, ~18s
280
305
  ```
281
306
 
282
307
  - **WJTTC Build Resilience** (13) — every regression class locked.