faf-cli 7.13.1 → 7.15.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
@@ -132,44 +132,20 @@ faf memory etch "a durable fact" --id my-fact
132
132
  faf memory show
133
133
  ```
134
134
 
135
- ### What's New in v7.13.1 — The Co-Author Edition
136
-
137
- **A security patch: faf-cli's detection no longer follows a link out of your project, so a hostile repo can't pull a file like `~/.aws/credentials` into project.faf or your AI's context.**
138
-
139
- - **Detection reads stay inside the project.** A README.md, package.json or any other repo file that links outside the project is treated as absent. Links inside the project still work.
140
- - **`faf git` clones with symlinks off**, and never reads a link's path as a file's content.
141
- - **`faf cards` reads `agent.fafa` safely**: a link out of its folder is refused.
142
- - **`slotignored` is shown as `slotignored`**, never N/A.
143
-
144
- #### v7.13.0 — the Edition release
145
-
146
- **You and your AI co-author project.faf — AI fills the tech facts from your repo, you write the 6Ws — and faf-cli only touches what it wrote: links can't lead it outside your project, a failed write keeps the original, and your comments, values and notes stay as you left them.**
147
-
148
- - **faf writes its block, you write the rest.** faf touches only its managed block and its own section. A file with no faf markers is always prefixed, never taken over, even one that starts with faf's old stamp.
149
- - **`project.faf` edits keep your file as written.** Comments, exact values (`1.10` stays `1.10`), anchors and keys faf doesn't know all survive. An edit changes only what it changes, and a no-op writes nothing.
150
- - **If it's a fact, faf fills the slot.** A typed `None` or `N/A` is an empty slot, and the app-type decides which slots count.
151
- - `faf auto` fills a tech slot only from a repo fact. With no fact, the slot stays empty; only `project.type` falls back to `library`, and says so on its line.
152
- - With no fact, your words stay in a slot the app-type uses, and that slot scores 0 until filled.
153
- - In a slot the app-type leaves out, `faf auto` writes `slotignored`: not required, not scored.
154
- - The 6Ws stay yours: faf never replaces your words there, and `faf go` asks for the empty ones.
155
- - **`faf ai enhance` is retired.** project.faf isn't enhanced: tech slots come from repo facts, and the 6Ws come from you.
156
- - **Links and encodings are checked first.** faf refuses, in one line, to write:
157
- - through a link that leaves the project;
158
- - into `.git`, beyond its own hook section and diff driver;
159
- - over a whole file faf didn't render;
160
- - over a file that isn't UTF-8.
161
- - **A whole file faf renders is replaced only when it's still exactly what faf wrote.** project.html and the Server and A2A cards now carry a render hash. If you edited one, faf leaves it and says so; `--force` replaces it.
162
- - **One-time step when upgrading:** faf can't tell whether a project.html, Server Card or A2A card written before 7.13 was edited. The first run that would change one refuses it once, and that run exits 1. Check the file for hand edits, then run the same command once with `--force`; after that faf recognises its own output.
163
- - **A failed write keeps the original.** faf writes to a temp file and renames it into place, so a full disk or a killed process leaves your file as it was. A file you edit while faf is writing is left alone.
164
- - **Memory stays yours.**
165
- - `soul.fafm` keeps its curated index, its facts and its comments, and etching an id that already exists merges into that fact.
166
- - Tri-sync (`FAF_PRO=1`) writes Claude Code's own memory file as one section on top, and Claude's notes stay.
167
- - **Detection stays inside the project.** Turbo-Cat no longer reads parent folders, so a monorepo root's stack no longer leaks into a package.
168
- - **For builders.** New exports: `resolveInside`, `safeWriteFile`, `updateFafFile`, `writeClaudeMemory`, `FafDNAManager`, `authorFafFromRepo`, `registryTitle`, `isNonProjectRoot` and `scoreText`. `writeFaf` on an existing file now merges; pass `{ replace: true }` for the old overwrite.
169
- - **Node 22+.** The engine floor matches CI (22 and 24).
135
+ ### What's New in v7.15.0 — The Pack Edition
136
+
137
+ **Answer a few questions about an agent or MCP server and get every card it needs. faf-cli writes the `.fafa` from the answers and projects it onto the A2A Agent Card, the MCP Server Card, the MCP Registry `server.json`, an AI Catalog and an ARD manifest, in Node or in a browser.**
138
+
139
+ - **The card pack.** `answersToFafa` writes a `.fafa` from a few answers: name, short name, domain, description, version, endpoints and skills. `buildPack` / `projectPack` project it onto the A2A Agent Card, the MCP Server Card, the registry `server.json`, an AI Catalog and an ARD manifest. Facts only some cards carry (repository, icon, keywords, example requests, packages) live in the `.fafa` under `metadata.cards`, so the file stays the one source.
140
+ - **Neutral by default.** A pack card carries no extension and no FAF media type unless the caller passes one. The `.fafa` joins the catalog only with `listFafa`.
141
+ - **`faf-cli/pack`**: the pack as one browser module (`dist/pack.js`, no Node built-ins, types included). In Node, `import { buildPack } from 'faf-cli'` works too.
142
+ - The A2A card core moved into the pack as `projectA2ACard`. `buildA2ACard` and `faf cards` keep their signature and output: FAF's own A2A card is unchanged.
170
143
 
171
144
  **Recent sprint**
172
145
 
146
+ - 🎴 [7.15.0](https://github.com/Wolfe-Jam/faf-cli/releases/tag/v7.15.0) The Pack Edition
147
+ - 🛂 [7.14.0](https://github.com/Wolfe-Jam/faf-cli/releases/tag/v7.14.0) The Passport Edition
148
+ - 🛡️ [7.13.1](https://github.com/Wolfe-Jam/faf-cli/releases/tag/v7.13.1) security: detection reads stay inside the project
173
149
  - 🤝 [7.13.0](https://github.com/Wolfe-Jam/faf-cli/releases/tag/v7.13.0) The Co-Author Edition
174
150
  - 🧩 [7.12.0](https://github.com/Wolfe-Jam/faf-cli/releases/tag/v7.12.0) The Open Renderers Edition
175
151
  - 🖥️ [7.11.0](https://github.com/Wolfe-Jam/faf-cli/releases/tag/v7.11.0) The VS Code Edition