faf-cli 7.0.0 → 7.0.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.
@@ -20,3 +20,10 @@ export declare function readFafRaw(path: string): string;
20
20
  export declare function readFafFromString(text: string): FafData;
21
21
  /** Find the .faf file in a directory (walks up) */
22
22
  export declare function findFafFile(dir?: string): string | null;
23
+ /** Repo-root-relative path of a .faf, computed BY git — runtime- and OS-independent.
24
+ * Replaces `path.relative(top, fafPath)`, which breaks on Windows when git's
25
+ * long-form `--show-toplevel` and an 8.3 short-name cwd (e.g. `RUNNER~1`) disagree.
26
+ * git resolves both representations internally and emits forward slashes; works for
27
+ * tracked AND untracked .faf (it's the cwd's location under the root, not file status).
28
+ * Caller must already be inside a git repo. */
29
+ export declare function gitRepoRel(fafPath: string, cwd?: string): string;
@@ -54,6 +54,15 @@ export declare function registryMeta(data: FafData, opts?: ServerCardOptions): R
54
54
  * (`rewrite-server-json.ts` refuses any name that isn't `one.faf/*`) — but set
55
55
  * `homepage: https://faf.one` in the .faf to get the correct `one.faf/<name>`. */
56
56
  export declare function registryName(data: FafData): string;
57
+ /** The display title for a registry `server.json` — the human-readable card name
58
+ * (e.g. "Claude FAF"), sourced from `project.title` in the .faf. This is the
59
+ * SINGLE SOURCE of the title across the fleet: JS emitters import it, and the
60
+ * `faf server-card` CLI uses it so Python/Rust repos compose the identical
61
+ * value (compose-not-fork). Distinct from `registryName` (the reverse-DNS id).
62
+ * Returns undefined when unset or >100 chars (the registry cap) so the field is
63
+ * omitted rather than shipped invalid — GitHub's registry then derives a name
64
+ * from the namespace, so set `project.title` to control the display. */
65
+ export declare function registryTitle(data: FafData): string | undefined;
57
66
  /** Write the Server Card to a `server-card` file. Returns the path.
58
67
  * Per experimental-ext-server-card#22 the reserved location is
59
68
  * `<streamable-http-url>/server-card` (no longer `.well-known`); serve the
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "faf-cli",
3
- "version": "7.0.0",
3
+ "version": "7.0.1",
4
4
  "description": "Persistent AI Context Standard — project DNA for AI. IANA-registered. Anthropic-merged.",
5
5
  "type": "module",
6
6
  "icon": "https://faf.one/orange-smiley.svg",
package/project.faf CHANGED
@@ -37,3 +37,11 @@ monorepo:
37
37
  versioning_strategy: slotignored
38
38
  shared_configs: slotignored
39
39
  remote_cache: slotignored
40
+ surfaces:
41
+ # Distribution map — the machine-checkable form of human_context.where. Score-neutral.
42
+ auto: # derived from manifests; regenerate with `faf surface --sync`
43
+ - { type: npm, id: faf-cli, source: "package.json#name" }
44
+ - { type: github, id: Wolfe-Jam/faf-cli, source: "package.json#repository" }
45
+ declared: # hand-authored: surfaces the manifests don't carry + targets
46
+ - { type: npm, id: faf, status: live } # dual-publish alias (faf-cli ⇄ faf)
47
+ - { type: homebrew, id: faf-cli, status: live }