faf-cli 6.11.0 → 6.13.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 +34 -7
- package/dist/cli.js +242 -241
- package/dist/cli.js.map +12 -11
- package/dist/detect/dart.d.ts +29 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +129 -127
- package/dist/index.js.map +10 -8
- package/dist/interop/servercard.d.ts +61 -0
- package/dist/interrogate/cargo.d.ts +1 -1
- package/dist/interrogate/readme.d.ts +1 -1
- package/package.json +4 -3
- package/project.faf +1 -1
package/README.md
CHANGED
|
@@ -4,16 +4,16 @@
|
|
|
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
|
|
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>
|
|
11
11
|
</div>
|
|
12
12
|
</div>
|
|
13
13
|
|
|
14
|
-
[](https://www.npmjs.com/package/faf-cli)
|
|
14
|
+
[](https://www.npmjs.com/package/faf-cli)[](https://www.npmjs.com/package/faf-cli)
|
|
15
15
|
[](https://faf.one)
|
|
16
|
-
[](https://www.iana.org/assignments/media-types/application/vnd.faf+yaml)[](https://www.iana.org/assignments/media-types/application/vnd.fafm+yaml)
|
|
17
17
|
[](https://doi.org/10.5281/zenodo.18251362)[](https://doi.org/10.5281/zenodo.20348942)
|
|
18
18
|
|
|
19
19
|
**Home:** [faf.one/cli](https://faf.one/cli)
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
[](https://github.com/Wolfe-Jam/faf-cli/actions/workflows/ci.yml)
|
|
26
26
|
[](https://github.com/Wolfe-Jam/homebrew-faf)
|
|
27
27
|
[](https://opensource.org/licenses/MIT)
|
|
28
|
-
[](https://github.com/Wolfe-Jam/faf)
|
|
29
29
|
|
|
30
30
|
```
|
|
31
31
|
project/
|
|
@@ -63,6 +63,33 @@ Run `faf` with no arguments:
|
|
|
63
63
|
|
|
64
64
|
---
|
|
65
65
|
|
|
66
|
+
## v6.13 — The Dart Edition
|
|
67
|
+
|
|
68
|
+
**faf now understands Dart and Flutter projects.** Content-aware `pubspec.yaml` classification — Flutter app vs reusable package · Dart server (Serverpod / Dart Frog / Shelf) / CLI / MCP — pure Dart stays Dart. The single-source engine faf-python-sdk and the MCPs compose, parity-tested across languages.
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
faf auto # reads pubspec.yaml → Dart/Flutter into project.faf
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
A pubspec alone no longer means "Flutter": `faf` reads the dependencies and classifies — a Flutter app, a reusable package, a Dart server, a CLI, or a Dart MCP server. The detection knowledge lives in one spec (`dart-detection.json`) that faf-cli, faf-python-sdk, and the MCPs all share.
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## v6.12 — The Single-Source Edition
|
|
79
|
+
|
|
80
|
+
**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.
|
|
81
|
+
|
|
82
|
+
```ts
|
|
83
|
+
import { registryMeta, registryName } from 'faf-cli';
|
|
84
|
+
|
|
85
|
+
serverJson.name = registryName(faf); // → one.faf/<name>, derived from project.homepage
|
|
86
|
+
serverJson._meta = registryMeta(faf); // nests one.faf/context under publisher-provided (4 KB cap)
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Honest-first: the block carries `{ faf, mediaType, iana, deterministic, generated }` — **no baked score**. One emitter, every door, byte-identical.
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
66
93
|
## v6.11 — The Ledger Edition
|
|
67
94
|
|
|
68
95
|
**`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:
|
|
@@ -164,9 +191,9 @@ v6 is a ground-up rewrite. All-in on Bun — same toolchain as Claude Code.
|
|
|
164
191
|
| **Language** | TypeScript | TypeScript |
|
|
165
192
|
| **Compile** | Bun bytecode | `bun build --compile` |
|
|
166
193
|
|
|
167
|
-
|
|
194
|
+
880 tests in ~18s. 296KB bundle in 2.4s. Single portable binary, 4 platforms. npx backward-compatible.
|
|
168
195
|
|
|
169
|
-
|
|
196
|
+
32 commands. 880 tests. WJTTC-tested. 93% smaller than v5.
|
|
170
197
|
|
|
171
198
|
```
|
|
172
199
|
commands → interop → core → wasm
|
|
@@ -286,7 +313,7 @@ src/
|
|
|
286
313
|
> **Robust. Reliable. Next-level WJTTC tested.** — The Foundation Edition.
|
|
287
314
|
|
|
288
315
|
```bash
|
|
289
|
-
bun test #
|
|
316
|
+
bun test # 880 tests, 75 files, ~18s
|
|
290
317
|
```
|
|
291
318
|
|
|
292
319
|
- **WJTTC Build Resilience** (13) — every regression class locked.
|