faf-cli 7.13.0 → 7.14.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 +11 -26
- package/dist/cli.js +279 -279
- package/dist/cli.js.map +29 -29
- package/dist/core/safe-write.d.ts +97 -0
- package/dist/core/slots.d.ts +2 -2
- package/dist/core/typed-none.d.ts +1 -1
- package/dist/detect/assemble.d.ts +1 -1
- package/dist/index.js +156 -156
- package/dist/index.js.map +24 -24
- package/dist/interop/cards.d.ts +18 -3
- package/package.json +1 -1
- package/project.faf +3 -3
package/dist/interop/cards.d.ts
CHANGED
|
@@ -2,9 +2,11 @@ import type { FafData } from '../core/types.js';
|
|
|
2
2
|
import { type RenderedResult } from '../core/render-hash.js';
|
|
3
3
|
import { type ServerCardOptions } from './servercard.js';
|
|
4
4
|
/** A2A extension URI — dereference, not the MCP `_meta` key `one.faf/context`. */
|
|
5
|
-
export declare const A2A_CONTEXT_URI = "https://faf.one/context";
|
|
5
|
+
export declare const A2A_CONTEXT_URI = "https://faf.one/ext/context/v1";
|
|
6
6
|
export declare const A2A_PROTOCOL_BINDING = "JSONRPC";
|
|
7
7
|
export declare const A2A_PROTOCOL_VERSION = "1.0";
|
|
8
|
+
/** The three FAF-family media types the extension advertises, in family order. */
|
|
9
|
+
export declare const FAF_MEDIA_TYPES: readonly ["application/vnd.faf+yaml", "application/vnd.fafm+yaml", "application/vnd.fafa+yaml"];
|
|
8
10
|
export type CardTarget = 'a2a' | 'mcp' | 'registry' | 'catalog';
|
|
9
11
|
export declare const CARD_TARGETS: CardTarget[];
|
|
10
12
|
export interface FafaAgent {
|
|
@@ -20,6 +22,8 @@ export interface FafaCapability {
|
|
|
20
22
|
name?: string;
|
|
21
23
|
description?: string;
|
|
22
24
|
tags?: unknown;
|
|
25
|
+
/** MIME type this capability reads, when it's one of the FAF family — drives the skill's `inputModes` and the card's `defaultInputModes`. */
|
|
26
|
+
cites_spec?: string;
|
|
23
27
|
}
|
|
24
28
|
export interface FafaEndpoint {
|
|
25
29
|
protocol?: string;
|
|
@@ -28,6 +32,8 @@ export interface FafaEndpoint {
|
|
|
28
32
|
version?: string;
|
|
29
33
|
}
|
|
30
34
|
export interface FafaDoc {
|
|
35
|
+
/** `.fafa` spec version this document is authored against, e.g. `"1.0"` — not `agent.version`. */
|
|
36
|
+
version?: string;
|
|
31
37
|
agent?: FafaAgent;
|
|
32
38
|
capabilities?: FafaCapability[];
|
|
33
39
|
endpoints?: FafaEndpoint[];
|
|
@@ -51,7 +57,8 @@ export interface ProjectedA2A {
|
|
|
51
57
|
protocolBinding: string;
|
|
52
58
|
protocolVersion: string;
|
|
53
59
|
}>;
|
|
54
|
-
|
|
60
|
+
/** Omitted entirely when `agent.vendor` or `agent.homepage` is absent — A2A optional, never a guessed org name. */
|
|
61
|
+
provider?: {
|
|
55
62
|
organization: string;
|
|
56
63
|
url: string;
|
|
57
64
|
};
|
|
@@ -74,6 +81,7 @@ export interface ProjectedA2A {
|
|
|
74
81
|
name: string;
|
|
75
82
|
description: string;
|
|
76
83
|
tags: string[];
|
|
84
|
+
inputModes?: string[];
|
|
77
85
|
}>;
|
|
78
86
|
}
|
|
79
87
|
export interface CatalogEntry {
|
|
@@ -136,7 +144,14 @@ export declare function projectCards(input: {
|
|
|
136
144
|
targets?: CardTarget[];
|
|
137
145
|
opts?: ProjectCardsOptions;
|
|
138
146
|
}): ProjectedCards;
|
|
139
|
-
/**
|
|
147
|
+
/**
|
|
148
|
+
* Same underlying context on every emitted door. MCP and registry carry
|
|
149
|
+
* {@link fafContextBlock} byte-identically. A2A's extension params are a
|
|
150
|
+
* deliberate, richer superset (agentId, passport, mediaTypes — see
|
|
151
|
+
* {@link fafaExtensionParams}), so the check there is narrower: its nested
|
|
152
|
+
* `provenance.faf` / `provenance.mediaType` must match the same block's
|
|
153
|
+
* `faf` / `mediaType` — the same pointer, not a byte-identical payload.
|
|
154
|
+
*/
|
|
140
155
|
export declare function assertSameBlock(cards: ProjectedCards): void;
|
|
141
156
|
/** True when `bytes` are an A2A Agent Card faf wrote: JSON whose
|
|
142
157
|
* `capabilities.extensions` carry the FAF context extension
|
package/package.json
CHANGED
package/project.faf
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
faf_version: "3.0"
|
|
2
2
|
project:
|
|
3
3
|
name: faf-cli
|
|
4
|
-
version: "7.
|
|
5
|
-
goal: "CLI for IANA-registered `.faf` + `.fafm` — context DNA and portable agent memory. TypeScript, Bun-native since v6. package faf-cli v7.
|
|
4
|
+
version: "7.14.0"
|
|
5
|
+
goal: "CLI for IANA-registered `.faf` + `.fafm` — context DNA and portable agent memory. TypeScript, Bun-native since v6. package faf-cli v7.14.0 The Passport Edition."
|
|
6
6
|
main_language: TypeScript
|
|
7
7
|
type: cli # found: package.json bin
|
|
8
8
|
# Commands + key_files feed `faf export --agents` (hand values win over detection).
|
|
@@ -58,7 +58,7 @@ human_context:
|
|
|
58
58
|
what: Persistent AI Context Standard — project DNA for AI. IANA-registered. Anthropic-merged.
|
|
59
59
|
why: Eliminates 91% context re-discovery tax — define once, AI remembers forever
|
|
60
60
|
where: npm registry, Homebrew, GitHub
|
|
61
|
-
when: Production since September 2025; Bun-native since v6; current package 7.
|
|
61
|
+
when: Production since September 2025; Bun-native since v6; current package 7.14.0
|
|
62
62
|
how: bunx faf-cli auto, then project.faf versions with your code — faf show renders it human-visible
|
|
63
63
|
monorepo:
|
|
64
64
|
packages_count: slotignored
|