faf-cli 8.1.0 → 8.2.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/dist/pack.js.map CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../node_modules/yaml/browser/dist/nodes/identity.js", "../node_modules/yaml/browser/dist/visit.js", "../node_modules/yaml/browser/dist/doc/directives.js", "../node_modules/yaml/browser/dist/doc/anchors.js", "../node_modules/yaml/browser/dist/doc/applyReviver.js", "../node_modules/yaml/browser/dist/nodes/toJS.js", "../node_modules/yaml/browser/dist/nodes/Node.js", "../node_modules/yaml/browser/dist/nodes/Alias.js", "../node_modules/yaml/browser/dist/nodes/Scalar.js", "../node_modules/yaml/browser/dist/doc/createNode.js", "../node_modules/yaml/browser/dist/nodes/Collection.js", "../node_modules/yaml/browser/dist/stringify/stringifyComment.js", "../node_modules/yaml/browser/dist/stringify/foldFlowLines.js", "../node_modules/yaml/browser/dist/stringify/stringifyString.js", "../node_modules/yaml/browser/dist/stringify/stringify.js", "../node_modules/yaml/browser/dist/stringify/stringifyPair.js", "../node_modules/yaml/browser/dist/log.js", "../node_modules/yaml/browser/dist/schema/yaml-1.1/merge.js", "../node_modules/yaml/browser/dist/nodes/addPairToJSMap.js", "../node_modules/yaml/browser/dist/nodes/Pair.js", "../node_modules/yaml/browser/dist/stringify/stringifyCollection.js", "../node_modules/yaml/browser/dist/nodes/YAMLMap.js", "../node_modules/yaml/browser/dist/schema/common/map.js", "../node_modules/yaml/browser/dist/nodes/YAMLSeq.js", "../node_modules/yaml/browser/dist/schema/common/seq.js", "../node_modules/yaml/browser/dist/schema/common/string.js", "../node_modules/yaml/browser/dist/schema/common/null.js", "../node_modules/yaml/browser/dist/schema/core/bool.js", "../node_modules/yaml/browser/dist/stringify/stringifyNumber.js", "../node_modules/yaml/browser/dist/schema/core/float.js", "../node_modules/yaml/browser/dist/schema/core/int.js", "../node_modules/yaml/browser/dist/schema/core/schema.js", "../node_modules/yaml/browser/dist/schema/json/schema.js", "../node_modules/yaml/browser/dist/schema/yaml-1.1/binary.js", "../node_modules/yaml/browser/dist/schema/yaml-1.1/pairs.js", "../node_modules/yaml/browser/dist/schema/yaml-1.1/omap.js", "../node_modules/yaml/browser/dist/schema/yaml-1.1/bool.js", "../node_modules/yaml/browser/dist/schema/yaml-1.1/float.js", "../node_modules/yaml/browser/dist/schema/yaml-1.1/int.js", "../node_modules/yaml/browser/dist/schema/yaml-1.1/set.js", "../node_modules/yaml/browser/dist/schema/yaml-1.1/timestamp.js", "../node_modules/yaml/browser/dist/schema/yaml-1.1/schema.js", "../node_modules/yaml/browser/dist/schema/tags.js", "../node_modules/yaml/browser/dist/schema/Schema.js", "../node_modules/yaml/browser/dist/stringify/stringifyDocument.js", "../node_modules/yaml/browser/dist/doc/Document.js", "../node_modules/yaml/browser/dist/parse/cst-visit.js", "../node_modules/yaml/browser/dist/parse/lexer.js", "../node_modules/yaml/browser/dist/public-api.js", "../src/interop/pack.ts"],
3
+ "sources": ["../node_modules/yaml/browser/dist/nodes/identity.js", "../node_modules/yaml/browser/dist/visit.js", "../node_modules/yaml/browser/dist/doc/directives.js", "../node_modules/yaml/browser/dist/doc/anchors.js", "../node_modules/yaml/browser/dist/doc/applyReviver.js", "../node_modules/yaml/browser/dist/nodes/toJS.js", "../node_modules/yaml/browser/dist/nodes/Node.js", "../node_modules/yaml/browser/dist/nodes/Alias.js", "../node_modules/yaml/browser/dist/nodes/Scalar.js", "../node_modules/yaml/browser/dist/doc/createNode.js", "../node_modules/yaml/browser/dist/nodes/Collection.js", "../node_modules/yaml/browser/dist/stringify/stringifyComment.js", "../node_modules/yaml/browser/dist/stringify/foldFlowLines.js", "../node_modules/yaml/browser/dist/stringify/stringifyString.js", "../node_modules/yaml/browser/dist/stringify/stringify.js", "../node_modules/yaml/browser/dist/stringify/stringifyPair.js", "../node_modules/yaml/browser/dist/log.js", "../node_modules/yaml/browser/dist/schema/yaml-1.1/merge.js", "../node_modules/yaml/browser/dist/nodes/addPairToJSMap.js", "../node_modules/yaml/browser/dist/nodes/Pair.js", "../node_modules/yaml/browser/dist/stringify/stringifyCollection.js", "../node_modules/yaml/browser/dist/nodes/YAMLMap.js", "../node_modules/yaml/browser/dist/schema/common/map.js", "../node_modules/yaml/browser/dist/nodes/YAMLSeq.js", "../node_modules/yaml/browser/dist/schema/common/seq.js", "../node_modules/yaml/browser/dist/schema/common/string.js", "../node_modules/yaml/browser/dist/schema/common/null.js", "../node_modules/yaml/browser/dist/schema/core/bool.js", "../node_modules/yaml/browser/dist/stringify/stringifyNumber.js", "../node_modules/yaml/browser/dist/schema/core/float.js", "../node_modules/yaml/browser/dist/schema/core/int.js", "../node_modules/yaml/browser/dist/schema/core/schema.js", "../node_modules/yaml/browser/dist/schema/json/schema.js", "../node_modules/yaml/browser/dist/schema/yaml-1.1/binary.js", "../node_modules/yaml/browser/dist/schema/yaml-1.1/pairs.js", "../node_modules/yaml/browser/dist/schema/yaml-1.1/omap.js", "../node_modules/yaml/browser/dist/schema/yaml-1.1/bool.js", "../node_modules/yaml/browser/dist/schema/yaml-1.1/float.js", "../node_modules/yaml/browser/dist/schema/yaml-1.1/int.js", "../node_modules/yaml/browser/dist/schema/yaml-1.1/set.js", "../node_modules/yaml/browser/dist/schema/yaml-1.1/timestamp.js", "../node_modules/yaml/browser/dist/schema/yaml-1.1/schema.js", "../node_modules/yaml/browser/dist/schema/tags.js", "../node_modules/yaml/browser/dist/schema/Schema.js", "../node_modules/yaml/browser/dist/stringify/stringifyDocument.js", "../node_modules/yaml/browser/dist/doc/Document.js", "../node_modules/yaml/browser/dist/parse/cst-visit.js", "../node_modules/yaml/browser/dist/parse/lexer.js", "../node_modules/yaml/browser/dist/public-api.js", "../src/interop/context-block.ts", "../src/interop/pack.ts"],
4
4
  "sourcesContent": [
5
5
  "const ALIAS = Symbol.for('yaml.alias');\nconst DOC = Symbol.for('yaml.document');\nconst MAP = Symbol.for('yaml.map');\nconst PAIR = Symbol.for('yaml.pair');\nconst SCALAR = Symbol.for('yaml.scalar');\nconst SEQ = Symbol.for('yaml.seq');\nconst NODE_TYPE = Symbol.for('yaml.node.type');\nconst isAlias = (node) => !!node && typeof node === 'object' && node[NODE_TYPE] === ALIAS;\nconst isDocument = (node) => !!node && typeof node === 'object' && node[NODE_TYPE] === DOC;\nconst isMap = (node) => !!node && typeof node === 'object' && node[NODE_TYPE] === MAP;\nconst isPair = (node) => !!node && typeof node === 'object' && node[NODE_TYPE] === PAIR;\nconst isScalar = (node) => !!node && typeof node === 'object' && node[NODE_TYPE] === SCALAR;\nconst isSeq = (node) => !!node && typeof node === 'object' && node[NODE_TYPE] === SEQ;\nfunction isCollection(node) {\n if (node && typeof node === 'object')\n switch (node[NODE_TYPE]) {\n case MAP:\n case SEQ:\n return true;\n }\n return false;\n}\nfunction isNode(node) {\n if (node && typeof node === 'object')\n switch (node[NODE_TYPE]) {\n case ALIAS:\n case MAP:\n case SCALAR:\n case SEQ:\n return true;\n }\n return false;\n}\nconst hasAnchor = (node) => (isScalar(node) || isCollection(node)) && !!node.anchor;\n\nexport { ALIAS, DOC, MAP, NODE_TYPE, PAIR, SCALAR, SEQ, hasAnchor, isAlias, isCollection, isDocument, isMap, isNode, isPair, isScalar, isSeq };\n",
6
6
  "import { isDocument, isNode, isPair, isCollection, isMap, isSeq, isScalar, isAlias } from './nodes/identity.js';\n\nconst BREAK = Symbol('break visit');\nconst SKIP = Symbol('skip children');\nconst REMOVE = Symbol('remove node');\n/**\n * Apply a visitor to an AST node or document.\n *\n * Walks through the tree (depth-first) starting from `node`, calling a\n * `visitor` function with three arguments:\n * - `key`: For sequence values and map `Pair`, the node's index in the\n * collection. Within a `Pair`, `'key'` or `'value'`, correspondingly.\n * `null` for the root node.\n * - `node`: The current node.\n * - `path`: The ancestry of the current node.\n *\n * The return value of the visitor may be used to control the traversal:\n * - `undefined` (default): Do nothing and continue\n * - `visit.SKIP`: Do not visit the children of this node, continue with next\n * sibling\n * - `visit.BREAK`: Terminate traversal completely\n * - `visit.REMOVE`: Remove the current node, then continue with the next one\n * - `Node`: Replace the current node, then continue by visiting it\n * - `number`: While iterating the items of a sequence or map, set the index\n * of the next step. This is useful especially if the index of the current\n * node has changed.\n *\n * If `visitor` is a single function, it will be called with all values\n * encountered in the tree, including e.g. `null` values. Alternatively,\n * separate visitor functions may be defined for each `Map`, `Pair`, `Seq`,\n * `Alias` and `Scalar` node. To define the same visitor function for more than\n * one node type, use the `Collection` (map and seq), `Value` (map, seq & scalar)\n * and `Node` (alias, map, seq & scalar) targets. Of all these, only the most\n * specific defined one will be used for each node.\n */\nfunction visit(node, visitor) {\n const visitor_ = initVisitor(visitor);\n if (isDocument(node)) {\n const cd = visit_(null, node.contents, visitor_, Object.freeze([node]));\n if (cd === REMOVE)\n node.contents = null;\n }\n else\n visit_(null, node, visitor_, Object.freeze([]));\n}\n// Without the `as symbol` casts, TS declares these in the `visit`\n// namespace using `var`, but then complains about that because\n// `unique symbol` must be `const`.\n/** Terminate visit traversal completely */\nvisit.BREAK = BREAK;\n/** Do not visit the children of the current node */\nvisit.SKIP = SKIP;\n/** Remove the current node */\nvisit.REMOVE = REMOVE;\nfunction visit_(key, node, visitor, path) {\n const ctrl = callVisitor(key, node, visitor, path);\n if (isNode(ctrl) || isPair(ctrl)) {\n replaceNode(key, path, ctrl);\n return visit_(key, ctrl, visitor, path);\n }\n if (typeof ctrl !== 'symbol') {\n if (isCollection(node)) {\n path = Object.freeze(path.concat(node));\n for (let i = 0; i < node.items.length; ++i) {\n const ci = visit_(i, node.items[i], visitor, path);\n if (typeof ci === 'number')\n i = ci - 1;\n else if (ci === BREAK)\n return BREAK;\n else if (ci === REMOVE) {\n node.items.splice(i, 1);\n i -= 1;\n }\n }\n }\n else if (isPair(node)) {\n path = Object.freeze(path.concat(node));\n const ck = visit_('key', node.key, visitor, path);\n if (ck === BREAK)\n return BREAK;\n else if (ck === REMOVE)\n node.key = null;\n const cv = visit_('value', node.value, visitor, path);\n if (cv === BREAK)\n return BREAK;\n else if (cv === REMOVE)\n node.value = null;\n }\n }\n return ctrl;\n}\n/**\n * Apply an async visitor to an AST node or document.\n *\n * Walks through the tree (depth-first) starting from `node`, calling a\n * `visitor` function with three arguments:\n * - `key`: For sequence values and map `Pair`, the node's index in the\n * collection. Within a `Pair`, `'key'` or `'value'`, correspondingly.\n * `null` for the root node.\n * - `node`: The current node.\n * - `path`: The ancestry of the current node.\n *\n * The return value of the visitor may be used to control the traversal:\n * - `Promise`: Must resolve to one of the following values\n * - `undefined` (default): Do nothing and continue\n * - `visit.SKIP`: Do not visit the children of this node, continue with next\n * sibling\n * - `visit.BREAK`: Terminate traversal completely\n * - `visit.REMOVE`: Remove the current node, then continue with the next one\n * - `Node`: Replace the current node, then continue by visiting it\n * - `number`: While iterating the items of a sequence or map, set the index\n * of the next step. This is useful especially if the index of the current\n * node has changed.\n *\n * If `visitor` is a single function, it will be called with all values\n * encountered in the tree, including e.g. `null` values. Alternatively,\n * separate visitor functions may be defined for each `Map`, `Pair`, `Seq`,\n * `Alias` and `Scalar` node. To define the same visitor function for more than\n * one node type, use the `Collection` (map and seq), `Value` (map, seq & scalar)\n * and `Node` (alias, map, seq & scalar) targets. Of all these, only the most\n * specific defined one will be used for each node.\n */\nasync function visitAsync(node, visitor) {\n const visitor_ = initVisitor(visitor);\n if (isDocument(node)) {\n const cd = await visitAsync_(null, node.contents, visitor_, Object.freeze([node]));\n if (cd === REMOVE)\n node.contents = null;\n }\n else\n await visitAsync_(null, node, visitor_, Object.freeze([]));\n}\n// Without the `as symbol` casts, TS declares these in the `visit`\n// namespace using `var`, but then complains about that because\n// `unique symbol` must be `const`.\n/** Terminate visit traversal completely */\nvisitAsync.BREAK = BREAK;\n/** Do not visit the children of the current node */\nvisitAsync.SKIP = SKIP;\n/** Remove the current node */\nvisitAsync.REMOVE = REMOVE;\nasync function visitAsync_(key, node, visitor, path) {\n const ctrl = await callVisitor(key, node, visitor, path);\n if (isNode(ctrl) || isPair(ctrl)) {\n replaceNode(key, path, ctrl);\n return visitAsync_(key, ctrl, visitor, path);\n }\n if (typeof ctrl !== 'symbol') {\n if (isCollection(node)) {\n path = Object.freeze(path.concat(node));\n for (let i = 0; i < node.items.length; ++i) {\n const ci = await visitAsync_(i, node.items[i], visitor, path);\n if (typeof ci === 'number')\n i = ci - 1;\n else if (ci === BREAK)\n return BREAK;\n else if (ci === REMOVE) {\n node.items.splice(i, 1);\n i -= 1;\n }\n }\n }\n else if (isPair(node)) {\n path = Object.freeze(path.concat(node));\n const ck = await visitAsync_('key', node.key, visitor, path);\n if (ck === BREAK)\n return BREAK;\n else if (ck === REMOVE)\n node.key = null;\n const cv = await visitAsync_('value', node.value, visitor, path);\n if (cv === BREAK)\n return BREAK;\n else if (cv === REMOVE)\n node.value = null;\n }\n }\n return ctrl;\n}\nfunction initVisitor(visitor) {\n if (typeof visitor === 'object' &&\n (visitor.Collection || visitor.Node || visitor.Value)) {\n return Object.assign({\n Alias: visitor.Node,\n Map: visitor.Node,\n Scalar: visitor.Node,\n Seq: visitor.Node\n }, visitor.Value && {\n Map: visitor.Value,\n Scalar: visitor.Value,\n Seq: visitor.Value\n }, visitor.Collection && {\n Map: visitor.Collection,\n Seq: visitor.Collection\n }, visitor);\n }\n return visitor;\n}\nfunction callVisitor(key, node, visitor, path) {\n if (typeof visitor === 'function')\n return visitor(key, node, path);\n if (isMap(node))\n return visitor.Map?.(key, node, path);\n if (isSeq(node))\n return visitor.Seq?.(key, node, path);\n if (isPair(node))\n return visitor.Pair?.(key, node, path);\n if (isScalar(node))\n return visitor.Scalar?.(key, node, path);\n if (isAlias(node))\n return visitor.Alias?.(key, node, path);\n return undefined;\n}\nfunction replaceNode(key, path, node) {\n const parent = path[path.length - 1];\n if (isCollection(parent)) {\n parent.items[key] = node;\n }\n else if (isPair(parent)) {\n if (key === 'key')\n parent.key = node;\n else\n parent.value = node;\n }\n else if (isDocument(parent)) {\n parent.contents = node;\n }\n else {\n const pt = isAlias(parent) ? 'alias' : 'scalar';\n throw new Error(`Cannot replace node with ${pt} parent`);\n }\n}\n\nexport { visit, visitAsync };\n",
@@ -51,9 +51,10 @@
51
51
  "const BREAK = Symbol('break visit');\nconst SKIP = Symbol('skip children');\nconst REMOVE = Symbol('remove item');\n/**\n * Apply a visitor to a CST document or item.\n *\n * Walks through the tree (depth-first) starting from the root, calling a\n * `visitor` function with two arguments when entering each item:\n * - `item`: The current item, which included the following members:\n * - `start: SourceToken[]` – Source tokens before the key or value,\n * possibly including its anchor or tag.\n * - `key?: Token | null` – Set for pair values. May then be `null`, if\n * the key before the `:` separator is empty.\n * - `sep?: SourceToken[]` – Source tokens between the key and the value,\n * which should include the `:` map value indicator if `value` is set.\n * - `value?: Token` – The value of a sequence item, or of a map pair.\n * - `path`: The steps from the root to the current node, as an array of\n * `['key' | 'value', number]` tuples.\n *\n * The return value of the visitor may be used to control the traversal:\n * - `undefined` (default): Do nothing and continue\n * - `visit.SKIP`: Do not visit the children of this token, continue with\n * next sibling\n * - `visit.BREAK`: Terminate traversal completely\n * - `visit.REMOVE`: Remove the current item, then continue with the next one\n * - `number`: Set the index of the next step. This is useful especially if\n * the index of the current token has changed.\n * - `function`: Define the next visitor for this item. After the original\n * visitor is called on item entry, next visitors are called after handling\n * a non-empty `key` and when exiting the item.\n */\nfunction visit(cst, visitor) {\n if ('type' in cst && cst.type === 'document')\n cst = { start: cst.start, value: cst.value };\n _visit(Object.freeze([]), cst, visitor);\n}\n// Without the `as symbol` casts, TS declares these in the `visit`\n// namespace using `var`, but then complains about that because\n// `unique symbol` must be `const`.\n/** Terminate visit traversal completely */\nvisit.BREAK = BREAK;\n/** Do not visit the children of the current item */\nvisit.SKIP = SKIP;\n/** Remove the current item */\nvisit.REMOVE = REMOVE;\n/** Find the item at `path` from `cst` as the root */\nvisit.itemAtPath = (cst, path) => {\n let item = cst;\n for (const [field, index] of path) {\n const tok = item?.[field];\n if (tok && 'items' in tok) {\n item = tok.items[index];\n }\n else\n return undefined;\n }\n return item;\n};\n/**\n * Get the immediate parent collection of the item at `path` from `cst` as the root.\n *\n * Throws an error if the collection is not found, which should never happen if the item itself exists.\n */\nvisit.parentCollection = (cst, path) => {\n const parent = visit.itemAtPath(cst, path.slice(0, -1));\n const field = path[path.length - 1][0];\n const coll = parent?.[field];\n if (coll && 'items' in coll)\n return coll;\n throw new Error('Parent collection not found');\n};\nfunction _visit(path, item, visitor) {\n let ctrl = visitor(item, path);\n if (typeof ctrl === 'symbol')\n return ctrl;\n for (const field of ['key', 'value']) {\n const token = item[field];\n if (token && 'items' in token) {\n for (let i = 0; i < token.items.length; ++i) {\n const ci = _visit(Object.freeze(path.concat([[field, i]])), token.items[i], visitor);\n if (typeof ci === 'number')\n i = ci - 1;\n else if (ci === BREAK)\n return BREAK;\n else if (ci === REMOVE) {\n token.items.splice(i, 1);\n i -= 1;\n }\n }\n if (typeof ctrl === 'function' && field === 'key')\n ctrl = ctrl(item, path);\n }\n }\n return typeof ctrl === 'function' ? ctrl(item, path) : ctrl;\n}\n\nexport { visit };\n",
52
52
  "import { BOM, DOCUMENT, FLOW_END, SCALAR } from './cst.js';\n\n/*\nSTART -> stream\n\nstream\n directive -> line-end -> stream\n indent + line-end -> stream\n [else] -> line-start\n\nline-end\n comment -> line-end\n newline -> .\n input-end -> END\n\nline-start\n doc-start -> doc\n doc-end -> stream\n [else] -> indent -> block-start\n\nblock-start\n seq-item-start -> block-start\n explicit-key-start -> block-start\n map-value-start -> block-start\n [else] -> doc\n\ndoc\n line-end -> line-start\n spaces -> doc\n anchor -> doc\n tag -> doc\n flow-start -> flow -> doc\n flow-end -> error -> doc\n seq-item-start -> error -> doc\n explicit-key-start -> error -> doc\n map-value-start -> doc\n alias -> doc\n quote-start -> quoted-scalar -> doc\n block-scalar-header -> line-end -> block-scalar(min) -> line-start\n [else] -> plain-scalar(false, min) -> doc\n\nflow\n line-end -> flow\n spaces -> flow\n anchor -> flow\n tag -> flow\n flow-start -> flow -> flow\n flow-end -> .\n seq-item-start -> error -> flow\n explicit-key-start -> flow\n map-value-start -> flow\n alias -> flow\n quote-start -> quoted-scalar -> flow\n comma -> flow\n [else] -> plain-scalar(true, 0) -> flow\n\nquoted-scalar\n quote-end -> .\n [else] -> quoted-scalar\n\nblock-scalar(min)\n newline + peek(indent < min) -> .\n [else] -> block-scalar(min)\n\nplain-scalar(is-flow, min)\n scalar-end(is-flow) -> .\n peek(newline + (indent < min)) -> .\n [else] -> plain-scalar(min)\n*/\nfunction isEmpty(ch) {\n switch (ch) {\n case undefined:\n case ' ':\n case '\\n':\n case '\\r':\n case '\\t':\n return true;\n default:\n return false;\n }\n}\nconst hexDigits = new Set('0123456789ABCDEFabcdef');\nconst tagChars = new Set(\"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()\");\nconst flowIndicatorChars = new Set(',[]{}');\nconst invalidAnchorChars = new Set(' ,[]{}\\n\\r\\t');\nconst isNotAnchorChar = (ch) => !ch || invalidAnchorChars.has(ch);\n/**\n * Splits an input string into lexical tokens, i.e. smaller strings that are\n * easily identifiable by `tokens.tokenType()`.\n *\n * Lexing starts always in a \"stream\" context. Incomplete input may be buffered\n * until a complete token can be emitted.\n *\n * In addition to slices of the original input, the following control characters\n * may also be emitted:\n *\n * - `\\x02` (Start of Text): A document starts with the next token\n * - `\\x18` (Cancel): Unexpected end of flow-mode (indicates an error)\n * - `\\x1f` (Unit Separator): Next token is a scalar value\n * - `\\u{FEFF}` (Byte order mark): Emitted separately outside documents\n */\nclass Lexer {\n constructor() {\n /**\n * Flag indicating whether the end of the current buffer marks the end of\n * all input\n */\n this.atEnd = false;\n /**\n * Explicit indent set in block scalar header, as an offset from the current\n * minimum indent, so e.g. set to 1 from a header `|2+`. Set to -1 if not\n * explicitly set.\n */\n this.blockScalarIndent = -1;\n /**\n * Block scalars that include a + (keep) chomping indicator in their header\n * include trailing empty lines, which are otherwise excluded from the\n * scalar's contents.\n */\n this.blockScalarKeep = false;\n /** Current input */\n this.buffer = '';\n /**\n * Flag noting whether the map value indicator : can immediately follow this\n * node within a flow context.\n */\n this.flowKey = false;\n /** Count of surrounding flow collection levels. */\n this.flowLevel = 0;\n /**\n * Minimum level of indentation required for next lines to be parsed as a\n * part of the current scalar value.\n */\n this.indentNext = 0;\n /** Indentation level of the current line. */\n this.indentValue = 0;\n /** Position of the next \\n character. */\n this.lineEndPos = null;\n /** Stores the state of the lexer if reaching the end of incpomplete input */\n this.next = null;\n /** A pointer to `buffer`; the current position of the lexer. */\n this.pos = 0;\n }\n /**\n * Generate YAML tokens from the `source` string. If `incomplete`,\n * a part of the last line may be left as a buffer for the next call.\n *\n * @returns A generator of lexical tokens\n */\n *lex(source, incomplete = false) {\n if (source) {\n if (typeof source !== 'string')\n throw TypeError('source is not a string');\n this.buffer = this.buffer ? this.buffer + source : source;\n this.lineEndPos = null;\n }\n this.atEnd = !incomplete;\n let next = this.next ?? 'stream';\n while (next && (incomplete || this.hasChars(1)))\n next = yield* this.parseNext(next);\n }\n atLineEnd() {\n let i = this.pos;\n let ch = this.buffer[i];\n while (ch === ' ' || ch === '\\t')\n ch = this.buffer[++i];\n if (!ch || ch === '#' || ch === '\\n')\n return true;\n if (ch === '\\r')\n return this.buffer[i + 1] === '\\n';\n return false;\n }\n charAt(n) {\n return this.buffer[this.pos + n];\n }\n continueScalar(offset) {\n let ch = this.buffer[offset];\n if (this.indentNext > 0) {\n let indent = 0;\n while (ch === ' ')\n ch = this.buffer[++indent + offset];\n if (ch === '\\r') {\n const next = this.buffer[indent + offset + 1];\n if (next === '\\n' || (!next && !this.atEnd))\n return offset + indent + 1;\n }\n return ch === '\\n' || indent >= this.indentNext || (!ch && !this.atEnd)\n ? offset + indent\n : -1;\n }\n if (ch === '-' || ch === '.') {\n const dt = this.buffer.substr(offset, 3);\n if ((dt === '---' || dt === '...') && isEmpty(this.buffer[offset + 3]))\n return -1;\n }\n return offset;\n }\n getLine() {\n let end = this.lineEndPos;\n if (typeof end !== 'number' || (end !== -1 && end < this.pos)) {\n end = this.buffer.indexOf('\\n', this.pos);\n this.lineEndPos = end;\n }\n if (end === -1)\n return this.atEnd ? this.buffer.substring(this.pos) : null;\n if (this.buffer[end - 1] === '\\r')\n end -= 1;\n return this.buffer.substring(this.pos, end);\n }\n hasChars(n) {\n return this.pos + n <= this.buffer.length;\n }\n setNext(state) {\n this.buffer = this.buffer.substring(this.pos);\n this.pos = 0;\n this.lineEndPos = null;\n this.next = state;\n return null;\n }\n peek(n) {\n return this.buffer.substr(this.pos, n);\n }\n *parseNext(next) {\n switch (next) {\n case 'stream':\n return yield* this.parseStream();\n case 'line-start':\n return yield* this.parseLineStart();\n case 'block-start':\n return yield* this.parseBlockStart();\n case 'doc':\n return yield* this.parseDocument();\n case 'flow':\n return yield* this.parseFlowCollection();\n case 'quoted-scalar':\n return yield* this.parseQuotedScalar();\n case 'block-scalar':\n return yield* this.parseBlockScalar();\n case 'plain-scalar':\n return yield* this.parsePlainScalar();\n }\n }\n *parseStream() {\n let line = this.getLine();\n if (line === null)\n return this.setNext('stream');\n if (line[0] === BOM) {\n yield* this.pushCount(1);\n line = line.substring(1);\n }\n if (line[0] === '%') {\n let dirEnd = line.length;\n let cs = line.indexOf('#');\n while (cs !== -1) {\n const ch = line[cs - 1];\n if (ch === ' ' || ch === '\\t') {\n dirEnd = cs - 1;\n break;\n }\n else {\n cs = line.indexOf('#', cs + 1);\n }\n }\n while (true) {\n const ch = line[dirEnd - 1];\n if (ch === ' ' || ch === '\\t')\n dirEnd -= 1;\n else\n break;\n }\n const n = (yield* this.pushCount(dirEnd)) + (yield* this.pushSpaces(true));\n yield* this.pushCount(line.length - n); // possible comment\n this.pushNewline();\n return 'stream';\n }\n if (this.atLineEnd()) {\n const sp = yield* this.pushSpaces(true);\n yield* this.pushCount(line.length - sp);\n yield* this.pushNewline();\n return 'stream';\n }\n yield DOCUMENT;\n return yield* this.parseLineStart();\n }\n *parseLineStart() {\n const ch = this.charAt(0);\n if (!ch && !this.atEnd)\n return this.setNext('line-start');\n if (ch === '-' || ch === '.') {\n if (!this.atEnd && !this.hasChars(4))\n return this.setNext('line-start');\n const s = this.peek(3);\n if ((s === '---' || s === '...') && isEmpty(this.charAt(3))) {\n yield* this.pushCount(3);\n this.indentValue = 0;\n this.indentNext = 0;\n return s === '---' ? 'doc' : 'stream';\n }\n }\n this.indentValue = yield* this.pushSpaces(false);\n if (this.indentNext > this.indentValue && !isEmpty(this.charAt(1)))\n this.indentNext = this.indentValue;\n return yield* this.parseBlockStart();\n }\n *parseBlockStart() {\n const [ch0, ch1] = this.peek(2);\n if (!ch1 && !this.atEnd)\n return this.setNext('block-start');\n if ((ch0 === '-' || ch0 === '?' || ch0 === ':') && isEmpty(ch1)) {\n const n = (yield* this.pushCount(1)) + (yield* this.pushSpaces(true));\n this.indentNext = this.indentValue + 1;\n this.indentValue += n;\n return 'block-start';\n }\n return 'doc';\n }\n *parseDocument() {\n yield* this.pushSpaces(true);\n const line = this.getLine();\n if (line === null)\n return this.setNext('doc');\n let n = yield* this.pushIndicators();\n switch (line[n]) {\n case '#':\n yield* this.pushCount(line.length - n);\n // fallthrough\n case undefined:\n yield* this.pushNewline();\n return yield* this.parseLineStart();\n case '{':\n case '[':\n yield* this.pushCount(1);\n this.flowKey = false;\n this.flowLevel = 1;\n return 'flow';\n case '}':\n case ']':\n // this is an error\n yield* this.pushCount(1);\n return 'doc';\n case '*':\n yield* this.pushUntil(isNotAnchorChar);\n return 'doc';\n case '\"':\n case \"'\":\n return yield* this.parseQuotedScalar();\n case '|':\n case '>':\n n += yield* this.parseBlockScalarHeader();\n n += yield* this.pushSpaces(true);\n yield* this.pushCount(line.length - n);\n yield* this.pushNewline();\n return yield* this.parseBlockScalar();\n default:\n return yield* this.parsePlainScalar();\n }\n }\n *parseFlowCollection() {\n let nl, sp;\n let indent = -1;\n do {\n nl = yield* this.pushNewline();\n if (nl > 0) {\n sp = yield* this.pushSpaces(false);\n this.indentValue = indent = sp;\n }\n else {\n sp = 0;\n }\n sp += yield* this.pushSpaces(true);\n } while (nl + sp > 0);\n const line = this.getLine();\n if (line === null)\n return this.setNext('flow');\n if ((indent !== -1 && indent < this.indentNext && line[0] !== '#') ||\n (indent === 0 &&\n (line.startsWith('---') || line.startsWith('...')) &&\n isEmpty(line[3]))) {\n // Allowing for the terminal ] or } at the same (rather than greater)\n // indent level as the initial [ or { is technically invalid, but\n // failing here would be surprising to users.\n const atFlowEndMarker = indent === this.indentNext - 1 &&\n this.flowLevel === 1 &&\n (line[0] === ']' || line[0] === '}');\n if (!atFlowEndMarker) {\n // this is an error\n this.flowLevel = 0;\n yield FLOW_END;\n return yield* this.parseLineStart();\n }\n }\n let n = 0;\n while (line[n] === ',') {\n n += yield* this.pushCount(1);\n n += yield* this.pushSpaces(true);\n this.flowKey = false;\n }\n n += yield* this.pushIndicators();\n switch (line[n]) {\n case undefined:\n return 'flow';\n case '#':\n yield* this.pushCount(line.length - n);\n return 'flow';\n case '{':\n case '[':\n yield* this.pushCount(1);\n this.flowKey = false;\n this.flowLevel += 1;\n return 'flow';\n case '}':\n case ']':\n yield* this.pushCount(1);\n this.flowKey = true;\n this.flowLevel -= 1;\n return this.flowLevel ? 'flow' : 'doc';\n case '*':\n yield* this.pushUntil(isNotAnchorChar);\n return 'flow';\n case '\"':\n case \"'\":\n this.flowKey = true;\n return yield* this.parseQuotedScalar();\n case ':': {\n const next = this.charAt(1);\n if (this.flowKey || isEmpty(next) || next === ',') {\n this.flowKey = false;\n yield* this.pushCount(1);\n yield* this.pushSpaces(true);\n return 'flow';\n }\n }\n // fallthrough\n default:\n this.flowKey = false;\n return yield* this.parsePlainScalar();\n }\n }\n *parseQuotedScalar() {\n const quote = this.charAt(0);\n let end = this.buffer.indexOf(quote, this.pos + 1);\n if (quote === \"'\") {\n while (end !== -1 && this.buffer[end + 1] === \"'\")\n end = this.buffer.indexOf(\"'\", end + 2);\n }\n else {\n // double-quote\n while (end !== -1) {\n let n = 0;\n while (this.buffer[end - 1 - n] === '\\\\')\n n += 1;\n if (n % 2 === 0)\n break;\n end = this.buffer.indexOf('\"', end + 1);\n }\n }\n // Only looking for newlines within the quotes\n const qb = this.buffer.substring(0, end);\n let nl = qb.indexOf('\\n', this.pos);\n if (nl !== -1) {\n while (nl !== -1) {\n const cs = this.continueScalar(nl + 1);\n if (cs === -1)\n break;\n nl = qb.indexOf('\\n', cs);\n }\n if (nl !== -1) {\n // this is an error caused by an unexpected unindent\n end = nl - (qb[nl - 1] === '\\r' ? 2 : 1);\n }\n }\n if (end === -1) {\n if (!this.atEnd)\n return this.setNext('quoted-scalar');\n end = this.buffer.length;\n }\n yield* this.pushToIndex(end + 1, false);\n return this.flowLevel ? 'flow' : 'doc';\n }\n *parseBlockScalarHeader() {\n this.blockScalarIndent = -1;\n this.blockScalarKeep = false;\n let i = this.pos;\n while (true) {\n const ch = this.buffer[++i];\n if (ch === '+')\n this.blockScalarKeep = true;\n else if (ch > '0' && ch <= '9')\n this.blockScalarIndent = Number(ch) - 1;\n else if (ch !== '-')\n break;\n }\n return yield* this.pushUntil(ch => isEmpty(ch) || ch === '#');\n }\n *parseBlockScalar() {\n let nl = this.pos - 1; // may be -1 if this.pos === 0\n let indent = 0;\n let ch;\n loop: for (let i = this.pos; (ch = this.buffer[i]); ++i) {\n switch (ch) {\n case ' ':\n indent += 1;\n break;\n case '\\n':\n nl = i;\n indent = 0;\n break;\n case '\\r': {\n const next = this.buffer[i + 1];\n if (!next && !this.atEnd)\n return this.setNext('block-scalar');\n if (next === '\\n')\n break;\n } // fallthrough\n default:\n break loop;\n }\n }\n if (!ch && !this.atEnd)\n return this.setNext('block-scalar');\n if (indent >= this.indentNext) {\n if (this.blockScalarIndent === -1)\n this.indentNext = indent;\n else {\n this.indentNext =\n this.blockScalarIndent + (this.indentNext === 0 ? 1 : this.indentNext);\n }\n do {\n const cs = this.continueScalar(nl + 1);\n if (cs === -1)\n break;\n nl = this.buffer.indexOf('\\n', cs);\n } while (nl !== -1);\n if (nl === -1) {\n if (!this.atEnd)\n return this.setNext('block-scalar');\n nl = this.buffer.length;\n }\n }\n // Trailing insufficiently indented tabs are invalid.\n // To catch that during parsing, we include them in the block scalar value.\n let i = nl + 1;\n ch = this.buffer[i];\n while (ch === ' ')\n ch = this.buffer[++i];\n if (ch === '\\t') {\n while (ch === '\\t' || ch === ' ' || ch === '\\r' || ch === '\\n')\n ch = this.buffer[++i];\n nl = i - 1;\n }\n else if (!this.blockScalarKeep) {\n do {\n let i = nl - 1;\n let ch = this.buffer[i];\n if (ch === '\\r')\n ch = this.buffer[--i];\n const lastChar = i; // Drop the line if last char not more indented\n while (ch === ' ')\n ch = this.buffer[--i];\n if (ch === '\\n' && i >= this.pos && i + 1 + indent > lastChar)\n nl = i;\n else\n break;\n } while (true);\n }\n yield SCALAR;\n yield* this.pushToIndex(nl + 1, true);\n return yield* this.parseLineStart();\n }\n *parsePlainScalar() {\n const inFlow = this.flowLevel > 0;\n let end = this.pos - 1;\n let i = this.pos - 1;\n let ch;\n while ((ch = this.buffer[++i])) {\n if (ch === ':') {\n const next = this.buffer[i + 1];\n if (isEmpty(next) || (inFlow && flowIndicatorChars.has(next)))\n break;\n end = i;\n }\n else if (isEmpty(ch)) {\n let next = this.buffer[i + 1];\n if (ch === '\\r') {\n if (next === '\\n') {\n i += 1;\n ch = '\\n';\n next = this.buffer[i + 1];\n }\n else\n end = i;\n }\n if (next === '#' || (inFlow && flowIndicatorChars.has(next)))\n break;\n if (ch === '\\n') {\n const cs = this.continueScalar(i + 1);\n if (cs === -1)\n break;\n i = Math.max(i, cs - 2); // to advance, but still account for ' #'\n }\n }\n else {\n if (inFlow && flowIndicatorChars.has(ch))\n break;\n end = i;\n }\n }\n if (!ch && !this.atEnd)\n return this.setNext('plain-scalar');\n yield SCALAR;\n yield* this.pushToIndex(end + 1, true);\n return inFlow ? 'flow' : 'doc';\n }\n *pushCount(n) {\n if (n > 0) {\n yield this.buffer.substr(this.pos, n);\n this.pos += n;\n return n;\n }\n return 0;\n }\n *pushToIndex(i, allowEmpty) {\n const s = this.buffer.slice(this.pos, i);\n if (s) {\n yield s;\n this.pos += s.length;\n return s.length;\n }\n else if (allowEmpty)\n yield '';\n return 0;\n }\n *pushIndicators() {\n let n = 0;\n loop: while (true) {\n switch (this.charAt(0)) {\n case '!':\n n += yield* this.pushTag();\n n += yield* this.pushSpaces(true);\n continue loop;\n case '&':\n n += yield* this.pushUntil(isNotAnchorChar);\n n += yield* this.pushSpaces(true);\n continue loop;\n case '-': // this is an error\n case '?': // this is an error outside flow collections\n case ':': {\n const inFlow = this.flowLevel > 0;\n const ch1 = this.charAt(1);\n if (isEmpty(ch1) || (inFlow && flowIndicatorChars.has(ch1))) {\n if (!inFlow)\n this.indentNext = this.indentValue + 1;\n else if (this.flowKey)\n this.flowKey = false;\n n += yield* this.pushCount(1);\n n += yield* this.pushSpaces(true);\n continue loop;\n }\n }\n }\n break loop;\n }\n return n;\n }\n *pushTag() {\n if (this.charAt(1) === '<') {\n let i = this.pos + 2;\n let ch = this.buffer[i];\n while (!isEmpty(ch) && ch !== '>')\n ch = this.buffer[++i];\n return yield* this.pushToIndex(ch === '>' ? i + 1 : i, false);\n }\n else {\n let i = this.pos + 1;\n let ch = this.buffer[i];\n while (ch) {\n if (tagChars.has(ch))\n ch = this.buffer[++i];\n else if (ch === '%' &&\n hexDigits.has(this.buffer[i + 1]) &&\n hexDigits.has(this.buffer[i + 2])) {\n ch = this.buffer[(i += 3)];\n }\n else\n break;\n }\n return yield* this.pushToIndex(i, false);\n }\n }\n *pushNewline() {\n const ch = this.buffer[this.pos];\n if (ch === '\\n')\n return yield* this.pushCount(1);\n else if (ch === '\\r' && this.charAt(1) === '\\n')\n return yield* this.pushCount(2);\n else\n return 0;\n }\n *pushSpaces(allowTabs) {\n let i = this.pos - 1;\n let ch;\n do {\n ch = this.buffer[++i];\n } while (ch === ' ' || (allowTabs && ch === '\\t'));\n const n = i - this.pos;\n if (n > 0) {\n yield this.buffer.substr(this.pos, n);\n this.pos = i;\n }\n return n;\n }\n *pushUntil(test) {\n let i = this.pos;\n let ch = this.buffer[i];\n while (!test(ch))\n ch = this.buffer[++i];\n return yield* this.pushToIndex(i, false);\n }\n}\n\nexport { Lexer };\n",
53
53
  "import { Composer } from './compose/composer.js';\nimport { Document } from './doc/Document.js';\nimport { prettifyError, YAMLParseError } from './errors.js';\nimport { warn } from './log.js';\nimport { isDocument } from './nodes/identity.js';\nimport { LineCounter } from './parse/line-counter.js';\nimport { Parser } from './parse/parser.js';\n\nfunction parseOptions(options) {\n const prettyErrors = options.prettyErrors !== false;\n const lineCounter = options.lineCounter || (prettyErrors && new LineCounter()) || null;\n return { lineCounter, prettyErrors };\n}\n/**\n * Parse the input as a stream of YAML documents.\n *\n * Documents should be separated from each other by `...` or `---` marker lines.\n *\n * @returns If an empty `docs` array is returned, it will be of type\n * EmptyStream and contain additional stream information. In\n * TypeScript, you should use `'empty' in docs` as a type guard for it.\n */\nfunction parseAllDocuments(source, options = {}) {\n const { lineCounter, prettyErrors } = parseOptions(options);\n const parser = new Parser(lineCounter?.addNewLine);\n const composer = new Composer(options);\n const docs = Array.from(composer.compose(parser.parse(source)));\n if (prettyErrors && lineCounter)\n for (const doc of docs) {\n doc.errors.forEach(prettifyError(source, lineCounter));\n doc.warnings.forEach(prettifyError(source, lineCounter));\n }\n if (docs.length > 0)\n return docs;\n return Object.assign([], { empty: true }, composer.streamInfo());\n}\n/** Parse an input string into a single YAML.Document */\nfunction parseDocument(source, options = {}) {\n const { lineCounter, prettyErrors } = parseOptions(options);\n const parser = new Parser(lineCounter?.addNewLine);\n const composer = new Composer(options);\n // `doc` is always set by compose.end(true) at the very latest\n let doc = null;\n for (const _doc of composer.compose(parser.parse(source), true, source.length)) {\n if (!doc)\n doc = _doc;\n else if (doc.options.logLevel !== 'silent') {\n doc.errors.push(new YAMLParseError(_doc.range.slice(0, 2), 'MULTIPLE_DOCS', 'Source contains multiple documents; please use YAML.parseAllDocuments()'));\n break;\n }\n }\n if (prettyErrors && lineCounter) {\n doc.errors.forEach(prettifyError(source, lineCounter));\n doc.warnings.forEach(prettifyError(source, lineCounter));\n }\n return doc;\n}\nfunction parse(src, reviver, options) {\n let _reviver = undefined;\n if (typeof reviver === 'function') {\n _reviver = reviver;\n }\n else if (options === undefined && reviver && typeof reviver === 'object') {\n options = reviver;\n }\n const doc = parseDocument(src, options);\n if (!doc)\n return null;\n doc.warnings.forEach(warning => warn(doc.options.logLevel, warning));\n if (doc.errors.length > 0) {\n if (doc.options.logLevel !== 'silent')\n throw doc.errors[0];\n else\n doc.errors = [];\n }\n return doc.toJS(Object.assign({ reviver: _reviver }, options));\n}\nfunction stringify(value, replacer, options) {\n let _replacer = null;\n if (typeof replacer === 'function' || Array.isArray(replacer)) {\n _replacer = replacer;\n }\n else if (options === undefined && replacer) {\n options = replacer;\n }\n if (typeof options === 'string')\n options = options.length;\n if (typeof options === 'number') {\n const indent = Math.round(options);\n options = indent < 1 ? undefined : indent > 8 ? { indent: 8 } : { indent };\n }\n if (value === undefined) {\n const { keepUndefined } = options ?? replacer ?? {};\n if (!keepUndefined)\n return undefined;\n }\n if (isDocument(value) && !_replacer)\n return value.toString(options);\n return new Document(value, _replacer, options).toString(options);\n}\n\nexport { parse, parseAllDocuments, parseDocument, stringify };\n",
54
- "/**\n * The card pack: a few answers in, a `.fafa` written from them, and every card\n * that `.fafa` can feed projected out: the A2A Agent Card, the MCP Server\n * Card, the MCP Registry `server.json`, an AI Catalog and an ARD manifest.\n *\n * Pure: no filesystem and no Node built-ins, so the same code runs in the CLI,\n * in a browser front door and in tests. Neutral by default: a card carries an\n * extension (FAF's or anyone's) only when the caller passes one. `faf cards`\n * passes FAF's own for FAF's agent (see `buildA2ACard` in cards.ts).\n */\nimport { stringify } from 'yaml';\n\nexport const A2A_PROTOCOL_BINDING = 'JSONRPC';\nexport const A2A_PROTOCOL_VERSION = '1.0';\n/** The three FAF-family media types, in family order. */\nexport const FAF_MEDIA_TYPES = [\n 'application/vnd.faf+yaml',\n 'application/vnd.fafm+yaml',\n 'application/vnd.fafa+yaml',\n] as const;\n/** The only `$schema` a Server Card may carry (modelcontextprotocol/ext-server-card). */\nexport const SERVER_CARD_SCHEMA = 'https://static.modelcontextprotocol.io/schemas/v1/server-card.schema.json';\n/** The dated registry schema a `server.json` declares (latest release 2025-12-11). */\nexport const SERVER_JSON_SCHEMA = 'https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json';\nexport const AI_CATALOG_SPEC_VERSION = '1.0';\nexport const FAFA_SPEC_VERSION = '1.0';\n/** Media types a catalog entry uses for each card it lists (AI Catalog's own list). */\nexport const CARD_MEDIA_TYPES = {\n a2a: 'application/a2a-agent-card+json',\n server_card: 'application/mcp-server-card+json',\n fafa: 'application/vnd.fafa+yaml',\n} as const;\n\nexport interface FafaAgent {\n name?: string;\n displayName?: string;\n id?: string;\n vendor?: string;\n version?: string;\n description?: string;\n homepage?: string;\n license?: string;\n}\n\nexport interface FafaCapability {\n name?: string;\n type?: string;\n description?: string;\n tags?: unknown;\n /** MIME type this capability reads, when it's one of the FAF family — drives the skill's `inputModes` and the card's `defaultInputModes`. */\n cites_spec?: string;\n}\n\nexport interface FafaEndpoint {\n protocol?: string;\n transport?: string;\n location?: string;\n version?: string;\n}\n\n/** Facts only some cards carry, kept in the `.fafa` under `metadata.cards` so the file stays the one source. */\nexport interface PackExtras {\n domain?: string;\n repository?: string;\n icon?: string;\n organizationUrl?: string;\n keywords?: string[];\n examples?: string[];\n packages?: PackPackage[];\n}\n\nexport interface PackPackage {\n registryType: string;\n identifier: string;\n version?: string;\n}\n\nexport interface FafaDoc {\n /** `.fafa` spec version this document is authored against, e.g. `\"1.0\"` — not `agent.version`. */\n version?: string;\n agent?: FafaAgent;\n capabilities?: FafaCapability[];\n endpoints?: FafaEndpoint[];\n provenance?: Record<string, unknown>;\n metadata?: { persona?: string; cards?: PackExtras; [key: string]: unknown };\n [key: string]: unknown;\n}\n\nexport interface A2AExtension {\n uri: string;\n description: string;\n required: boolean;\n params: Record<string, unknown>;\n}\n\nexport interface ProjectedA2A {\n name: string;\n description: string;\n supportedInterfaces: Array<{\n url: string;\n protocolBinding: string;\n protocolVersion: string;\n }>;\n /** Omitted entirely when `agent.vendor` or `agent.homepage` is absent — A2A optional, never a guessed org name. */\n provider?: { organization: string; url: string };\n version: string;\n capabilities: {\n streaming: boolean;\n pushNotifications: boolean;\n extendedAgentCard: boolean;\n extensions: A2AExtension[];\n };\n defaultInputModes: string[];\n defaultOutputModes: string[];\n skills: Array<{\n id: string;\n name: string;\n description: string;\n tags: string[];\n inputModes?: string[];\n }>;\n}\n\nexport function a2aEndpoints(fafa: FafaDoc): FafaEndpoint[] {\n return (fafa.endpoints ?? []).filter(\n (e) => String(e.protocol ?? '').toLowerCase() === 'a2a' && e.location,\n );\n}\n\n/** Authored A2A endpoints, else a single `doorUrl`. Never invents a door. */\nexport function a2aDoors(fafa: FafaDoc, opts: { doorUrl?: string } = {}): FafaEndpoint[] {\n const fromDoc = a2aEndpoints(fafa);\n if (fromDoc.length > 0) {return fromDoc;}\n const door = opts.doorUrl?.trim();\n if (door) {\n return [{ protocol: 'a2a', location: door, version: A2A_PROTOCOL_VERSION }];\n }\n return [];\n}\n\n/** `text/plain` plus any FAF media type a capability's `cites_spec` names. */\nfunction defaultA2AInputModes(fafa: FafaDoc): string[] {\n const cited = new Set<string>();\n for (const c of fafa.capabilities ?? []) {\n if (c.cites_spec && (FAF_MEDIA_TYPES as readonly string[]).includes(c.cites_spec)) {\n cited.add(c.cites_spec);\n }\n }\n return ['text/plain', ...cited];\n}\n\n/**\n * The A2A Agent Card from a `.fafa`: every field comes from the document, and\n * `capabilities.extensions` holds exactly the extensions passed (none by default).\n */\nexport function projectA2ACard(\n fafa: FafaDoc,\n opts: { doorUrl?: string; extensions?: A2AExtension[] } = {},\n): ProjectedA2A {\n const agent = fafa.agent ?? {};\n const doors = a2aDoors(fafa, opts);\n if (doors.length === 0) {\n throw new Error(\n \"No A2A endpoint in .fafa (need endpoints[].protocol: a2a + location). Will not invent a door.\",\n );\n }\n const name = String(agent.displayName ?? fafa.metadata?.persona ?? agent.name ?? '').trim();\n const description = String(agent.description ?? '').trim();\n const version = String(agent.version ?? '').trim();\n if (!name || !description || !version) {\n throw new Error('A2A card needs agent.displayName|name, description, version in .fafa');\n }\n // provider is A2A-optional: emit it only when both halves are real, never a guessed org name.\n const organization = String(agent.vendor ?? '').trim();\n const homepage = String(agent.homepage ?? '').trim();\n const provider = organization && homepage ? { organization, url: homepage } : undefined;\n\n const skills = (fafa.capabilities ?? []).map((c) => {\n const id = String(c.name ?? '').trim();\n if (!id) {throw new Error('A2A skill missing capabilities[].name');}\n const tags = Array.isArray(c.tags) ? c.tags.map(String) : [];\n const inputModes =\n c.cites_spec && (FAF_MEDIA_TYPES as readonly string[]).includes(c.cites_spec)\n ? [c.cites_spec, 'text/plain']\n : undefined;\n return {\n id,\n name: id,\n description: String(c.description ?? '').trim() || id,\n tags,\n ...(inputModes ? { inputModes } : {}),\n };\n });\n\n return {\n name,\n description,\n supportedInterfaces: doors.map((e) => ({\n url: String(e.location),\n protocolBinding: A2A_PROTOCOL_BINDING,\n protocolVersion: String(e.version ?? A2A_PROTOCOL_VERSION),\n })),\n ...(provider ? { provider } : {}),\n version,\n capabilities: {\n // Endpoint existence isn't streaming support: FAFA's A2A door explicitly\n // errors message/stream today (-32004). Advertising true would be a\n // claim the door can't back up. Flip this only once a real per-door\n // streaming signal exists in .fafa/project.faf to key off of.\n streaming: false,\n pushNotifications: false,\n extendedAgentCard: false,\n extensions: [...(opts.extensions ?? [])],\n },\n defaultInputModes: defaultA2AInputModes(fafa),\n defaultOutputModes: ['text/plain', 'application/json'],\n skills,\n };\n}\n\n// ---------------------------------------------------------------------------\n// Answers → .fafa\n// ---------------------------------------------------------------------------\n\n/** What someone tells the front door. Keys match the crosswalk's slot ids. */\nexport interface PackAnswers {\n display_name: string;\n handle: string;\n domain: string;\n description: string;\n version: string;\n endpoints?: Array<{ protocol: string; url: string }>;\n skills?: Array<{ name: string; description?: string; type?: string }>;\n organization?: string;\n organization_url?: string;\n homepage?: string;\n icon?: string;\n repository?: string;\n license?: string;\n tags?: string[];\n example_requests?: string[];\n packages?: PackPackage[];\n}\n\nconst HANDLE_RE = /^[a-z0-9][a-z0-9._-]*$/;\nconst DOMAIN_RE = /^(?=.{1,253}$)([a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z]{2,}$/;\n\nfunction clean(s: unknown): string {\n return String(s ?? '').trim();\n}\n\nfunction list(xs: unknown): string[] {\n return Array.isArray(xs) ? xs.map(clean).filter(Boolean) : [];\n}\n\n/** A domain as typed (\"https://www.Example.com/about\") reduced to the name (\"example.com\"). */\nfunction normaliseDomain(raw: unknown): string {\n return clean(raw).toLowerCase().replace(/^https?:\\/\\//, '').replace(/\\/.*$/, '').replace(/^www\\./, '');\n}\n\nfunction checkIdentity(a: PackAnswers, handle: string, domain: string): void {\n const missing = (['display_name', 'description', 'version'] as const).filter((k) => !clean(a[k]));\n if (missing.length) {throw new Error(`Missing answer: ${missing.join(', ')}`);}\n if (!HANDLE_RE.test(handle)) {throw new Error('Short name: lowercase letters, digits, dots, hyphens or underscores.');}\n if (!DOMAIN_RE.test(domain)) {throw new Error(`Domain \"${a.domain}\" is not a domain name (e.g. example.com).`);}\n}\n\nfunction capabilitiesFrom(a: PackAnswers, keywords: string[]): FafaCapability[] {\n return (a.skills ?? [])\n .filter((s) => clean(s.name))\n .map((s) => ({\n name: clean(s.name),\n type: clean(s.type) || 'tool',\n description: clean(s.description) || clean(s.name),\n // A2A requires tags on every skill: the keywords, else the skill's own name.\n tags: keywords.length ? keywords : [clean(s.name).toLowerCase()],\n }));\n}\n\nfunction packagesFrom(a: PackAnswers): PackPackage[] {\n return (a.packages ?? [])\n .filter((p) => clean(p.registryType) && clean(p.identifier))\n .map((p) => ({\n registryType: clean(p.registryType),\n identifier: clean(p.identifier),\n ...(clean(p.version) ? { version: clean(p.version) } : {}),\n }));\n}\n\nfunction endpointsFrom(a: PackAnswers, packages: PackPackage[]): FafaEndpoint[] {\n const endpoints: FafaEndpoint[] = [\n ...(a.endpoints ?? [])\n .filter((e) => clean(e.url))\n .map((e) => ({ protocol: clean(e.protocol).toLowerCase(), transport: 'http', location: clean(e.url) })),\n ...packages.map((p) => ({ protocol: 'mcp', transport: 'stdio', location: p.identifier })),\n ];\n if (endpoints.length === 0) {throw new Error('Missing answer: endpoints (a URL, or a package people install)');}\n return endpoints;\n}\n\nfunction extrasFrom(a: PackAnswers, domain: string, keywords: string[], packages: PackPackage[]): PackExtras {\n const extras: PackExtras = { domain };\n const optional: Array<[keyof PackExtras, string]> = [\n ['repository', clean(a.repository)],\n ['icon', clean(a.icon)],\n ['organizationUrl', clean(a.organization_url)],\n ];\n for (const [key, value] of optional) {\n if (value) {(extras as Record<string, unknown>)[key] = value;}\n }\n if (keywords.length) {extras.keywords = keywords;}\n const examples = list(a.example_requests);\n if (examples.length) {extras.examples = examples;}\n if (packages.length) {extras.packages = packages;}\n return extras;\n}\n\n/** Write the `.fafa` a set of answers describes. Throws, naming the answer, when one is missing or malformed. */\nexport function answersToFafa(a: PackAnswers): FafaDoc {\n const handle = clean(a.handle).toLowerCase();\n const domain = normaliseDomain(a.domain);\n checkIdentity(a, handle, domain);\n const keywords = list(a.tags);\n const packages = packagesFrom(a);\n const agent: FafaAgent = {\n name: handle,\n displayName: clean(a.display_name),\n id: `urn:air:${domain}:agent:${handle}`,\n ...(clean(a.organization) ? { vendor: clean(a.organization) } : {}),\n version: clean(a.version),\n description: clean(a.description),\n homepage: clean(a.homepage) || `https://${domain}`,\n ...(clean(a.license) ? { license: clean(a.license) } : {}),\n };\n return {\n version: FAFA_SPEC_VERSION,\n agent,\n capabilities: capabilitiesFrom(a, keywords),\n endpoints: endpointsFrom(a, packages),\n metadata: { cards: extrasFrom(a, domain, keywords, packages) },\n };\n}\n\n/** The `.fafa` as the YAML document people keep. */\nexport function fafaYaml(fafa: FafaDoc): string {\n return stringify(fafa, { lineWidth: 0 });\n}\n\n// ---------------------------------------------------------------------------\n// .fafa → the other cards\n// ---------------------------------------------------------------------------\n\n/** Where the `.fafa` says it is published: `agent.id` (urn:air), else metadata, else the homepage host. */\nexport function fafaDomain(fafa: FafaDoc): string {\n const id = clean(fafa.agent?.id);\n const m = /^urn:air:([^:]+):/.exec(id);\n if (m) {return m[1];}\n const fromExtras = clean(fafa.metadata?.cards?.domain);\n if (fromExtras) {return fromExtras;}\n try {\n return new URL(clean(fafa.agent?.homepage)).hostname.replace(/^www\\./, '');\n } catch {\n throw new Error('The .fafa names no domain (agent.id urn:air, metadata.cards.domain or agent.homepage).');\n }\n}\n\n/** The stable short name a card is filed under: `agent.name`, lowercased and\n * reduced to the characters an identifier may carry. The `{name}` of\n * `urn:air:{publisher}:{namespace}:{name}` — never a display string. */\nexport function fafaHandle(fafa: FafaDoc): string {\n return handleOf(fafa);\n}\n\nfunction handleOf(fafa: FafaDoc): string {\n const h = clean(fafa.agent?.name).toLowerCase().replace(/[^a-z0-9._-]/g, '-').replace(/^-+|-+$/g, '');\n if (!h) {throw new Error('The .fafa needs agent.name (the short name).');}\n return h;\n}\n\n/** MCP names are reverse-DNS: example.com + weather → com.example/weather. */\nexport function mcpName(fafa: FafaDoc): string {\n return `${fafaDomain(fafa).split('.').reverse().join('.')}/${handleOf(fafa)}`;\n}\n\n/** Server Card and registry descriptions and titles cap at 100 characters. */\nfunction cap100(s: string): string {\n const t = s.replace(/\\s+/g, ' ').trim();\n return t.length <= 100 ? t : `${t.slice(0, 97).trimEnd()}...`;\n}\n\nfunction mcpRemotes(fafa: FafaDoc): Array<{ type: string; url: string }> {\n return (fafa.endpoints ?? [])\n .filter((e) => clean(e.protocol).toLowerCase() === 'mcp' && /^https?:\\/\\//.test(clean(e.location)))\n .map((e) => ({ type: 'streamable-http', url: clean(e.location) }));\n}\n\nfunction repositoryOf(url: string): { url: string; source: string } | undefined {\n if (!url) {return undefined;}\n try {\n const host = new URL(url).hostname.replace(/^www\\./, '');\n return { url, source: host.split('.')[0] };\n } catch {\n return undefined;\n }\n}\n\n/** Identity shared by the Server Card and the registry entry. */\nfunction mcpIdentity(fafa: FafaDoc): Record<string, unknown> {\n const agent = fafa.agent ?? {};\n const extras = fafa.metadata?.cards ?? {};\n const description = clean(agent.description);\n const version = clean(agent.version);\n if (!description || !version) {throw new Error('An MCP card needs agent.description and agent.version in .fafa');}\n const out: Record<string, unknown> = {\n name: mcpName(fafa),\n version,\n description: cap100(description),\n };\n const title = clean(agent.displayName);\n if (title) {out.title = cap100(title);}\n const homepage = clean(agent.homepage);\n if (homepage) {out.websiteUrl = homepage;}\n const repo = repositoryOf(clean(extras.repository));\n if (repo) {out.repository = repo;}\n if (clean(extras.icon)) {out.icons = [{ src: clean(extras.icon) }];}\n return out;\n}\n\n/** The MCP Server Card for a remote MCP server. */\nexport function projectServerCard(fafa: FafaDoc): Record<string, unknown> {\n const remotes = mcpRemotes(fafa);\n if (remotes.length === 0) {\n throw new Error('A Server Card describes a remote MCP server: the .fafa has no mcp endpoint at an http(s) URL.');\n }\n return { $schema: SERVER_CARD_SCHEMA, ...mcpIdentity(fafa), remotes };\n}\n\n/** The MCP Registry `server.json` (publishing it stays the owner's step). */\nexport function projectServerJson(fafa: FafaDoc): Record<string, unknown> {\n const remotes = mcpRemotes(fafa);\n const packages = (fafa.metadata?.cards?.packages ?? []).map((p) => ({\n registryType: clean(p.registryType),\n identifier: clean(p.identifier),\n ...(clean(p.version) ? { version: clean(p.version) } : {}),\n transport: { type: 'stdio' },\n }));\n if (remotes.length === 0 && packages.length === 0) {\n throw new Error('A registry entry needs a package people install or a remote MCP URL.');\n }\n return {\n $schema: SERVER_JSON_SCHEMA,\n ...mcpIdentity(fafa),\n ...(packages.length ? { packages } : {}),\n ...(remotes.length ? { remotes } : {}),\n };\n}\n\nexport type PackCard = 'a2a' | 'server_card' | 'server_json' | 'ai_catalog' | 'ard' | 'fafa';\n\nexport interface CatalogRow {\n identifier: string;\n displayName: string;\n type: string;\n description: string;\n url: string;\n version?: string;\n updatedAt: string;\n}\n\n/** One row per card the domain serves: the A2A card, the Server Card, and the `.fafa` only when asked. */\nexport function catalogRows(fafa: FafaDoc, cards: PackCard[], opts: { now?: string; listFafa?: boolean } = {}): CatalogRow[] {\n const domain = fafaDomain(fafa);\n const handle = handleOf(fafa);\n const agent = fafa.agent ?? {};\n const displayName = clean(agent.displayName) || clean(agent.name);\n const description = clean(agent.description);\n const version = clean(agent.version);\n const now = opts.now ?? new Date().toISOString();\n const row = (ns: string, type: string, url: string): CatalogRow => ({\n identifier: `urn:air:${domain}:${ns}:${handle}`,\n displayName,\n type,\n description,\n url,\n ...(version ? { version } : {}),\n updatedAt: now,\n });\n const rows: CatalogRow[] = [];\n if (cards.includes('a2a')) {rows.push(row('a2a', CARD_MEDIA_TYPES.a2a, `https://${domain}/.well-known/agent-card.json`));}\n if (cards.includes('server_card')) {\n const remote = mcpRemotes(fafa)[0];\n if (remote) {rows.push(row('mcp', CARD_MEDIA_TYPES.server_card, `${remote.url.replace(/\\/+$/, '')}/server-card`));}\n }\n if (opts.listFafa) {rows.push(row('agent', CARD_MEDIA_TYPES.fafa, `https://${domain}/.well-known/fafa`));}\n return rows;\n}\n\n/** Who publishes a catalog: AI Catalog's `host` object. */\nexport interface CatalogHost {\n displayName: string;\n identifier?: string;\n}\n\n/**\n * The catalog's `host` — who publishes these entries. Naming one is what\n * lifts a catalog from Level 1 \"minimal\" to Level 2 \"discoverable\", and\n * `displayName` is the field that does it: the validator takes an empty one\n * as *invalid*, not as minimal. So a `.fafa` that names nobody gets no host\n * at all — a minimal catalog that validates beats a discoverable one that\n * does not. `identifier` rides along whenever the `.fafa` says where it\n * lives, and is left off when it does not.\n */\nexport function catalogHost(fafa: FafaDoc): CatalogHost | undefined {\n const agent = fafa.agent ?? {};\n const displayName = clean(agent.vendor) || clean(agent.displayName) || clean(agent.name);\n if (!displayName) {return undefined;}\n let identifier: string | undefined;\n try {\n identifier = fafaDomain(fafa);\n } catch {\n identifier = undefined;\n }\n return { displayName, ...(identifier ? { identifier } : {}) };\n}\n\n/** The AI Catalog for the domain: every row above, with the host named. */\nexport function projectAiCatalog(fafa: FafaDoc, cards: PackCard[], opts: { now?: string; listFafa?: boolean } = {}): Record<string, unknown> {\n const host = catalogHost(fafa);\n return {\n specVersion: AI_CATALOG_SPEC_VERSION,\n ...(host ? { host } : {}),\n entries: catalogRows(fafa, cards, opts),\n };\n}\n\n/**\n * The search hints ARD reads, from the `.fafa`: `metadata.cards.keywords` and\n * `metadata.cards.examples`. An entry with no `representativeQueries` is, in\n * the conformance CLI's own words, \"a valid catalog entry but not a\n * discoverable ARD entry\" — the semantic index is built from that term.\n */\nexport function ardHints(fafa: FafaDoc): { tags?: string[]; representativeQueries?: string[] } {\n const extras = fafa.metadata?.cards ?? {};\n const tags = list(extras.keywords);\n const queries = list(extras.examples);\n return {\n ...(tags.length ? { tags } : {}),\n ...(queries.length ? { representativeQueries: queries } : {}),\n };\n}\n\n/** The ARD manifest: the catalog, plus the search hints ARD reads. ARD builds\n * on ai-catalog (spec §4), so the document is the same shape — the entries\n * carry more. */\nexport function projectArd(fafa: FafaDoc, cards: PackCard[], opts: { now?: string; listFafa?: boolean } = {}): Record<string, unknown> {\n const host = catalogHost(fafa);\n const hints = ardHints(fafa);\n return {\n specVersion: AI_CATALOG_SPEC_VERSION,\n ...(host ? { host } : {}),\n entries: catalogRows(fafa, cards, opts).map((r) => ({ ...r, ...hints })),\n };\n}\n\nexport interface PackOptions {\n /** Which cards to build; the `.fafa` is always written. */\n cards: PackCard[];\n /** `updatedAt` for catalog rows (tests); otherwise now. */\n now?: string;\n /** List the `.fafa` itself in the catalog and ARD manifest (it is then served at /.well-known/fafa). */\n listFafa?: boolean;\n /** Extensions to put on the A2A card; none by default. */\n a2aExtensions?: A2AExtension[];\n}\n\nexport interface Pack {\n fafa: FafaDoc;\n fafaText: string;\n a2a?: ProjectedA2A;\n server_card?: Record<string, unknown>;\n server_json?: Record<string, unknown>;\n ai_catalog?: Record<string, unknown>;\n ard?: Record<string, unknown>;\n}\n\n/** Every card a `.fafa` can feed, for the cards asked. */\nexport function projectPack(fafa: FafaDoc, opts: PackOptions): Pack {\n const want = new Set(opts.cards);\n const pack: Pack = { fafa, fafaText: fafaYaml(fafa) };\n if (want.has('a2a')) {pack.a2a = projectA2ACard(fafa, { extensions: opts.a2aExtensions });}\n if (want.has('server_card')) {pack.server_card = projectServerCard(fafa);}\n if (want.has('server_json')) {pack.server_json = projectServerJson(fafa);}\n const rowOpts = { now: opts.now, listFafa: opts.listFafa };\n if (want.has('ai_catalog')) {pack.ai_catalog = projectAiCatalog(fafa, opts.cards, rowOpts);}\n if (want.has('ard')) {pack.ard = projectArd(fafa, opts.cards, rowOpts);}\n return pack;\n}\n\n/** Answers in, the `.fafa` and every card asked for out. */\nexport function buildPack(answers: PackAnswers, opts: PackOptions): Pack {\n return projectPack(answersToFafa(answers), opts);\n}\n"
54
+ "/**\n * FAF's context block — what BEST adds to a card. Pure (no Node built-ins), so\n * `faf cards` and the browser-safe pack projector add the same block.\n *\n * The cards ladder: an agent.fafa gives the plain cards (BETTER); a project.faf,\n * resident and used, adds this block to each of them (BEST) — the A2A card's\n * context extension, the Server Card's `_meta[\"one.faf/context\"]`, the registry\n * `server.json`'s publisher-provided `_meta`.\n */\nimport type { FafData } from '../core/types.js';\n\n/** project.faf's IANA media type. */\nexport const FAF_MEDIA_TYPE = 'application/vnd.faf+yaml';\n\n/** A2A extension URI — dereference, not the MCP `_meta` key `one.faf/context`. */\nexport const A2A_CONTEXT_URI = 'https://faf.one/ext/context/v1';\n\nexport const REGISTRY_PUBLISHER_KEY = 'io.modelcontextprotocol.registry/publisher-provided';\nconst REGISTRY_META_CAP = 4096; // official registry cap on publisher-provided JSON (bytes)\n\nexport interface ContextBlockOptions {\n /** Pointer to the .faf context (default: ./project.faf). Pass an absolute URL\n * for a remote/served card (e.g. faf-server-card-ref at context.faf.one). */\n fafPointer?: string;\n /** Optional \"verify the score here\" URL — makes verify-don't-trust actionable\n * (faf-server-card-ref uses https://faf.one). Omitted from the block if unset. */\n scoreEndpoint?: string;\n /** Override timestamp (tests); otherwise .faf `generated`, else now. */\n now?: string;\n}\n\n/**\n * The canonical FAF context-block — the value of `_meta[\"one.faf/context\"]`,\n * identical across every surface (Server Card, registry `server.json`, `.fafa`):\n * one context, every door. Honest-first: no score baked (it would go stale on\n * disk); it points to the .faf and asserts the score is deterministic.\n */\nexport function fafContextBlock(\n data: FafData,\n opts: ContextBlockOptions = {},\n): Record<string, unknown> {\n return {\n faf: opts.fafPointer ?? './project.faf',\n mediaType: FAF_MEDIA_TYPE,\n iana: `https://www.iana.org/assignments/media-types/${FAF_MEDIA_TYPE}`,\n deterministic: true,\n ...(opts.scoreEndpoint ? { scoreEndpoint: opts.scoreEndpoint } : {}),\n generated:\n (data.generated as string | undefined) ?? opts.now ?? new Date().toISOString(),\n };\n}\n\n/**\n * Build the `_meta` for an MCP Registry `server.json`.\n *\n * The SAME canonical context-block as the Server Card, but nested under\n * `io.modelcontextprotocol.registry/publisher-provided` — the ONLY `_meta` key\n * the official registry preserves on publish. Top-level keys (the way the card\n * carries `one.faf/context`) are silently dropped by the registry. Throws if the\n * block exceeds the registry's 4KB cap. Merge the result into an existing\n * `server.json` `_meta`; don't regenerate the manifest (packages/mcpb are tuned).\n */\nexport function registryMeta(\n data: FafData,\n opts: ContextBlockOptions = {},\n): Record<string, unknown> {\n const provided = { 'one.faf/context': fafContextBlock(data, opts) };\n const bytes = new TextEncoder().encode(JSON.stringify(provided)).length;\n if (bytes > REGISTRY_META_CAP) {\n throw new Error(\n `publisher-provided _meta is ${bytes}B — exceeds the registry ${REGISTRY_META_CAP}B cap`,\n );\n }\n return { [REGISTRY_PUBLISHER_KEY]: provided };\n}\n",
55
+ "/**\n * The card pack: a few answers in, a `.fafa` written from them, and every card\n * that `.fafa` can feed projected out: the A2A Agent Card, the MCP Server\n * Card, the MCP Registry `server.json`, an AI Catalog and an ARD manifest.\n *\n * Pure: no filesystem and no Node built-ins, so the same code runs in the CLI,\n * in a browser front door and in tests.\n *\n * The cards ladder, the same as `faf cards`: the `.fafa` is the source of every\n * card and gives the plain cards (BETTER); a project.faf, passed as `faf`, adds\n * FAF's context block to each of them (BEST). A card's identity always comes\n * from the `.fafa`, so moving up to BEST never rewrites it.\n */\nimport { stringify } from 'yaml';\nimport type { FafData } from '../core/types.js';\nimport {\n A2A_CONTEXT_URI,\n fafContextBlock,\n registryMeta,\n type ContextBlockOptions,\n} from './context-block.js';\n\nexport const A2A_PROTOCOL_BINDING = 'JSONRPC';\nexport const A2A_PROTOCOL_VERSION = '1.0';\n/** The three FAF-family media types, in family order. */\nexport const FAF_MEDIA_TYPES = [\n 'application/vnd.faf+yaml',\n 'application/vnd.fafm+yaml',\n 'application/vnd.fafa+yaml',\n] as const;\n/** The only `$schema` a Server Card may carry (modelcontextprotocol/ext-server-card). */\nexport const SERVER_CARD_SCHEMA = 'https://static.modelcontextprotocol.io/schemas/v1/server-card.schema.json';\n/** The dated registry schema a `server.json` declares (latest release 2025-12-11). */\nexport const SERVER_JSON_SCHEMA = 'https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json';\nexport const AI_CATALOG_SPEC_VERSION = '1.0';\nexport const FAFA_SPEC_VERSION = '1.0';\n/** Media types a catalog entry uses for each card it lists (AI Catalog's own list). */\nexport const CARD_MEDIA_TYPES = {\n a2a: 'application/a2a-agent-card+json',\n server_card: 'application/mcp-server-card+json',\n fafa: 'application/vnd.fafa+yaml',\n} as const;\n\nexport interface FafaAgent {\n name?: string;\n displayName?: string;\n id?: string;\n vendor?: string;\n version?: string;\n description?: string;\n homepage?: string;\n license?: string;\n}\n\nexport interface FafaCapability {\n name?: string;\n type?: string;\n description?: string;\n tags?: unknown;\n /** MIME type this capability reads, when it's one of the FAF family — drives the skill's `inputModes` and the card's `defaultInputModes`. */\n cites_spec?: string;\n}\n\nexport interface FafaEndpoint {\n protocol?: string;\n transport?: string;\n location?: string;\n version?: string;\n}\n\n/** Facts only some cards carry, kept in the `.fafa` under `metadata.cards` so the file stays the one source. */\nexport interface PackExtras {\n domain?: string;\n repository?: string;\n icon?: string;\n organizationUrl?: string;\n keywords?: string[];\n examples?: string[];\n packages?: PackPackage[];\n}\n\nexport interface PackPackage {\n registryType: string;\n identifier: string;\n version?: string;\n}\n\nexport interface FafaDoc {\n /** `.fafa` spec version this document is authored against, e.g. `\"1.0\"` — not `agent.version`. */\n version?: string;\n agent?: FafaAgent;\n capabilities?: FafaCapability[];\n endpoints?: FafaEndpoint[];\n provenance?: Record<string, unknown>;\n metadata?: { persona?: string; cards?: PackExtras; [key: string]: unknown };\n [key: string]: unknown;\n}\n\nexport interface A2AExtension {\n uri: string;\n description: string;\n required: boolean;\n params: Record<string, unknown>;\n}\n\nexport interface ProjectedA2A {\n name: string;\n description: string;\n supportedInterfaces: Array<{\n url: string;\n protocolBinding: string;\n protocolVersion: string;\n }>;\n /** Omitted entirely when `agent.vendor` or `agent.homepage` is absent — A2A optional, never a guessed org name. */\n provider?: { organization: string; url: string };\n version: string;\n capabilities: {\n streaming: boolean;\n pushNotifications: boolean;\n extendedAgentCard: boolean;\n extensions: A2AExtension[];\n };\n defaultInputModes: string[];\n defaultOutputModes: string[];\n skills: Array<{\n id: string;\n name: string;\n description: string;\n tags: string[];\n inputModes?: string[];\n }>;\n}\n\nexport function a2aEndpoints(fafa: FafaDoc): FafaEndpoint[] {\n return (fafa.endpoints ?? []).filter(\n (e) => String(e.protocol ?? '').toLowerCase() === 'a2a' && e.location,\n );\n}\n\n/** Authored A2A endpoints, else a single `doorUrl`. Never invents a door. */\nexport function a2aDoors(fafa: FafaDoc, opts: { doorUrl?: string } = {}): FafaEndpoint[] {\n const fromDoc = a2aEndpoints(fafa);\n if (fromDoc.length > 0) {return fromDoc;}\n const door = opts.doorUrl?.trim();\n if (door) {\n return [{ protocol: 'a2a', location: door, version: A2A_PROTOCOL_VERSION }];\n }\n return [];\n}\n\n/** Where the `.fafa` itself is served — the same door the catalog's `agent`\n * row points at, so a card and a catalog never disagree about it. Left off\n * the card, rather than guessed, when the `.fafa` names no domain. */\nfunction fafaPassportUrl(fafa: FafaDoc): string | undefined {\n try {\n return `https://${fafaDomain(fafa)}/.well-known/fafa`;\n } catch {\n return undefined;\n }\n}\n\n/**\n * FAF's context extension for the A2A card (BEST). Its `params` are a superset\n * of {@link fafContextBlock}, enriched with `.fafa`-specific identity that only\n * makes sense for an agent card (agentId, passport, the full FAF media-type\n * family). Nests the base block's `faf`/`mediaType` under `provenance` rather\n * than flattening them, per the extension's own shape (`§7` of the field\n * mapping). The Server Card and registry `_meta` stay on the plain\n * {@link fafContextBlock} shape.\n */\nexport function fafaContextExtension(fafa: FafaDoc, faf: FafData, opts: ContextBlockOptions = {}): A2AExtension {\n const block = fafContextBlock(faf, opts);\n const agent = fafa.agent ?? {};\n const params: Record<string, unknown> = {\n fafaSpecVersion: String(fafa.version ?? FAFA_SPEC_VERSION),\n mediaTypes: [...FAF_MEDIA_TYPES],\n provenance: { faf: block.faf, mediaType: block.mediaType },\n generated: block.generated,\n };\n if (agent.id) {params.agentId = agent.id;}\n const passport = fafaPassportUrl(fafa);\n if (passport) {params.passport = passport;}\n return {\n uri: A2A_CONTEXT_URI,\n description: 'FAF passport and project DNA as typed parts',\n required: false,\n params,\n };\n}\n\n/** `text/plain` plus any FAF media type a capability's `cites_spec` names. */\nfunction defaultA2AInputModes(fafa: FafaDoc): string[] {\n const cited = new Set<string>();\n for (const c of fafa.capabilities ?? []) {\n if (c.cites_spec && (FAF_MEDIA_TYPES as readonly string[]).includes(c.cites_spec)) {\n cited.add(c.cites_spec);\n }\n }\n return ['text/plain', ...cited];\n}\n\n/**\n * The A2A Agent Card from a `.fafa`: every field comes from the document, and\n * `capabilities.extensions` holds exactly the extensions passed (none by default).\n */\nexport function projectA2ACard(\n fafa: FafaDoc,\n opts: { doorUrl?: string; extensions?: A2AExtension[] } = {},\n): ProjectedA2A {\n const agent = fafa.agent ?? {};\n const doors = a2aDoors(fafa, opts);\n if (doors.length === 0) {\n throw new Error(\n \"No A2A endpoint in .fafa (need endpoints[].protocol: a2a + location). Will not invent a door.\",\n );\n }\n const name = String(agent.displayName ?? fafa.metadata?.persona ?? agent.name ?? '').trim();\n const description = String(agent.description ?? '').trim();\n const version = String(agent.version ?? '').trim();\n if (!name || !description || !version) {\n throw new Error('A2A card needs agent.displayName|name, description, version in .fafa');\n }\n // provider is A2A-optional: emit it only when both halves are real, never a guessed org name.\n const organization = String(agent.vendor ?? '').trim();\n const homepage = String(agent.homepage ?? '').trim();\n const provider = organization && homepage ? { organization, url: homepage } : undefined;\n\n const skills = (fafa.capabilities ?? []).map((c) => {\n const id = String(c.name ?? '').trim();\n if (!id) {throw new Error('A2A skill missing capabilities[].name');}\n const tags = Array.isArray(c.tags) ? c.tags.map(String) : [];\n const inputModes =\n c.cites_spec && (FAF_MEDIA_TYPES as readonly string[]).includes(c.cites_spec)\n ? [c.cites_spec, 'text/plain']\n : undefined;\n return {\n id,\n name: id,\n description: String(c.description ?? '').trim() || id,\n tags,\n ...(inputModes ? { inputModes } : {}),\n };\n });\n\n return {\n name,\n description,\n supportedInterfaces: doors.map((e) => ({\n url: String(e.location),\n protocolBinding: A2A_PROTOCOL_BINDING,\n protocolVersion: String(e.version ?? A2A_PROTOCOL_VERSION),\n })),\n ...(provider ? { provider } : {}),\n version,\n capabilities: {\n // Endpoint existence isn't streaming support: FAFA's A2A door explicitly\n // errors message/stream today (-32004). Advertising true would be a\n // claim the door can't back up. Flip this only once a real per-door\n // streaming signal exists in .fafa/project.faf to key off of.\n streaming: false,\n pushNotifications: false,\n extendedAgentCard: false,\n extensions: [...(opts.extensions ?? [])],\n },\n defaultInputModes: defaultA2AInputModes(fafa),\n defaultOutputModes: ['text/plain', 'application/json'],\n skills,\n };\n}\n\n// ---------------------------------------------------------------------------\n// Answers → .fafa\n// ---------------------------------------------------------------------------\n\n/** What someone tells the front door. Keys match the crosswalk's slot ids. */\nexport interface PackAnswers {\n display_name: string;\n handle: string;\n domain: string;\n description: string;\n version: string;\n endpoints?: Array<{ protocol: string; url: string }>;\n skills?: Array<{ name: string; description?: string; type?: string }>;\n organization?: string;\n organization_url?: string;\n homepage?: string;\n icon?: string;\n repository?: string;\n license?: string;\n tags?: string[];\n example_requests?: string[];\n packages?: PackPackage[];\n}\n\nconst HANDLE_RE = /^[a-z0-9][a-z0-9._-]*$/;\n/** npm's own package-name rule: lowercase, URL-safe, optionally `@scope/`, and\n * never starting with `-`, `.` or `_` (a leading `-` would be read as an option). */\nconst NPM_NAME_RE = /^(@[a-z0-9~][a-z0-9-._~]*\\/)?[a-z0-9~][a-z0-9-._~]*$/;\n/** PyPI's project-name rule (PEP 508): letters, digits, `.`, `_`, `-`, starting and\n * ending with a letter or digit. */\nconst PYPI_NAME_RE = /^[A-Za-z0-9]([A-Za-z0-9._-]*[A-Za-z0-9])?$/;\n/** Any other registry's identifier (oci, nuget, ...): no whitespace, and it starts\n * with a letter or digit, so it is never read as an option. */\nconst PACKAGE_ID_RE = /^[A-Za-z0-9][^\\s]*$/;\nconst ENDPOINT_PROTOCOLS = ['a2a', 'mcp'];\nconst DOMAIN_RE = /^(?=.{1,253}$)([a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z]{2,}$/;\n\nfunction clean(s: unknown): string {\n return String(s ?? '').trim();\n}\n\nfunction list(xs: unknown): string[] {\n return Array.isArray(xs) ? xs.map(clean).filter(Boolean) : [];\n}\n\n/** A domain as typed (\"https://www.Example.com/about\") reduced to the name (\"example.com\"). */\nfunction normaliseDomain(raw: unknown): string {\n return clean(raw).toLowerCase().replace(/^https?:\\/\\//, '').replace(/\\/.*$/, '').replace(/^www\\./, '');\n}\n\nfunction checkIdentity(a: PackAnswers, handle: string, domain: string): void {\n const missing = (['display_name', 'description', 'version'] as const).filter((k) => !clean(a[k]));\n if (missing.length) {throw new Error(`Missing answer: ${missing.join(', ')}`);}\n if (!HANDLE_RE.test(handle)) {throw new Error('Short name: lowercase letters, digits, dots, hyphens or underscores.');}\n if (!DOMAIN_RE.test(domain)) {throw new Error(`Domain \"${a.domain}\" is not a domain name (e.g. example.com).`);}\n}\n\nfunction capabilitiesFrom(a: PackAnswers, keywords: string[]): FafaCapability[] {\n return (a.skills ?? [])\n .filter((s) => clean(s.name))\n .map((s) => ({\n name: clean(s.name),\n type: clean(s.type) || 'tool',\n description: clean(s.description) || clean(s.name),\n // A2A requires tags on every skill: the keywords, else the skill's own name.\n tags: keywords.length ? keywords : [clean(s.name).toLowerCase()],\n }));\n}\n\n/** A package people install: an npm one must carry npm's own name, a PyPI one\n * PyPI's, and any other an identifier that cannot be read as an option — the\n * `.fafa` names it as the MCP server's stdio command, so nothing else gets through. */\nfunction packagesFrom(a: PackAnswers): PackPackage[] {\n const packages = (a.packages ?? []).filter((p) => clean(p.registryType) && clean(p.identifier));\n for (const p of packages) {\n const type = clean(p.registryType);\n const id = clean(p.identifier);\n if (type === 'npm' && !NPM_NAME_RE.test(id)) {\n throw new Error(`Package \"${id}\" is not an npm package name (e.g. weather-mcp or @acme/weather).`);\n }\n if (type === 'pypi' && !PYPI_NAME_RE.test(id)) {\n throw new Error(`Package \"${id}\" is not a PyPI package name (e.g. weather-mcp or weather_mcp).`);\n }\n if (type !== 'npm' && type !== 'pypi' && !PACKAGE_ID_RE.test(id)) {\n throw new Error(`Package \"${id}\" is not a ${type} package identifier: it must start with a letter or digit and have no spaces.`);\n }\n }\n return packages\n .map((p) => ({\n registryType: clean(p.registryType),\n identifier: clean(p.identifier),\n ...(clean(p.version) ? { version: clean(p.version) } : {}),\n }));\n}\n\n/** A URL people call: http(s) only, speaking a2a or mcp. */\nfunction checkEndpoint(e: { protocol: string; url: string }): void {\n if (!/^https?:\\/\\/[^\\s/]+/i.test(clean(e.url))) {\n throw new Error(`Where it runs: \"${clean(e.url)}\" is not an http(s) URL (or give an npm package).`);\n }\n if (!ENDPOINT_PROTOCOLS.includes(clean(e.protocol).toLowerCase())) {\n throw new Error(`Protocol \"${clean(e.protocol)}\": a2a or mcp.`);\n }\n}\n\nfunction endpointsFrom(a: PackAnswers, packages: PackPackage[]): FafaEndpoint[] {\n const urls = (a.endpoints ?? []).filter((e) => clean(e.url));\n urls.forEach(checkEndpoint);\n const endpoints: FafaEndpoint[] = [\n ...urls.map((e) => ({ protocol: clean(e.protocol).toLowerCase(), transport: 'http', location: clean(e.url) })),\n ...packages.map((p) => ({ protocol: 'mcp', transport: 'stdio', location: p.identifier })),\n ];\n if (endpoints.length === 0) {throw new Error('Missing answer: endpoints (a URL, or a package people install)');}\n return endpoints;\n}\n\nfunction extrasFrom(a: PackAnswers, domain: string, keywords: string[], packages: PackPackage[]): PackExtras {\n const extras: PackExtras = { domain };\n const optional: Array<[keyof PackExtras, string]> = [\n ['repository', clean(a.repository)],\n ['icon', clean(a.icon)],\n ['organizationUrl', clean(a.organization_url)],\n ];\n for (const [key, value] of optional) {\n if (value) {(extras as Record<string, unknown>)[key] = value;}\n }\n if (keywords.length) {extras.keywords = keywords;}\n const examples = list(a.example_requests);\n if (examples.length) {extras.examples = examples;}\n if (packages.length) {extras.packages = packages;}\n return extras;\n}\n\n/** Write the `.fafa` a set of answers describes. Throws, naming the answer, when one is missing or malformed. */\nexport function answersToFafa(a: PackAnswers): FafaDoc {\n const handle = clean(a.handle).toLowerCase();\n const domain = normaliseDomain(a.domain);\n checkIdentity(a, handle, domain);\n const keywords = list(a.tags);\n const packages = packagesFrom(a);\n const agent: FafaAgent = {\n name: handle,\n displayName: clean(a.display_name),\n id: `urn:air:${domain}:agent:${handle}`,\n ...(clean(a.organization) ? { vendor: clean(a.organization) } : {}),\n version: clean(a.version),\n description: clean(a.description),\n homepage: clean(a.homepage) || `https://${domain}`,\n ...(clean(a.license) ? { license: clean(a.license) } : {}),\n };\n return {\n version: FAFA_SPEC_VERSION,\n agent,\n capabilities: capabilitiesFrom(a, keywords),\n endpoints: endpointsFrom(a, packages),\n metadata: { cards: extrasFrom(a, domain, keywords, packages) },\n };\n}\n\n/** The `.fafa` as the YAML document people keep. */\nexport function fafaYaml(fafa: FafaDoc): string {\n return stringify(fafa, { lineWidth: 0 });\n}\n\n// ---------------------------------------------------------------------------\n// .fafa → the other cards\n// ---------------------------------------------------------------------------\n\n/** Where the `.fafa` says it is published: `agent.id` (urn:air), else metadata, else the homepage host. */\nexport function fafaDomain(fafa: FafaDoc): string {\n const id = clean(fafa.agent?.id);\n const m = /^urn:air:([^:]+):/.exec(id);\n if (m) {return m[1];}\n const fromExtras = clean(fafa.metadata?.cards?.domain);\n if (fromExtras) {return fromExtras;}\n try {\n return new URL(clean(fafa.agent?.homepage)).hostname.replace(/^www\\./, '');\n } catch {\n throw new Error('The .fafa names no domain (agent.id urn:air, metadata.cards.domain or agent.homepage).');\n }\n}\n\n/** The stable short name a card is filed under: `agent.name`, lowercased and\n * reduced to the characters an identifier may carry. The `{name}` of\n * `urn:air:{publisher}:{namespace}:{name}` — never a display string. */\nexport function fafaHandle(fafa: FafaDoc): string {\n return handleOf(fafa);\n}\n\nfunction handleOf(fafa: FafaDoc): string {\n const h = clean(fafa.agent?.name).toLowerCase().replace(/[^a-z0-9._-]/g, '-').replace(/^-+|-+$/g, '');\n if (!h) {throw new Error('The .fafa needs agent.name (the short name).');}\n return h;\n}\n\n/** MCP names are reverse-DNS: example.com + weather → com.example/weather. */\nexport function mcpName(fafa: FafaDoc): string {\n return `${fafaDomain(fafa).split('.').reverse().join('.')}/${handleOf(fafa)}`;\n}\n\n/** Server Card and registry descriptions and titles cap at 100 characters. */\nfunction cap100(s: string): string {\n const t = s.replace(/\\s+/g, ' ').trim();\n return t.length <= 100 ? t : `${t.slice(0, 97).trimEnd()}...`;\n}\n\n/** The `.fafa`'s MCP endpoints at an http(s) URL — what a Server Card describes. */\nexport function mcpRemotes(fafa: FafaDoc): Array<{ type: string; url: string }> {\n return (fafa.endpoints ?? [])\n .filter((e) => clean(e.protocol).toLowerCase() === 'mcp' && /^https?:\\/\\//.test(clean(e.location)))\n .map((e) => ({ type: 'streamable-http', url: clean(e.location) }));\n}\n\nfunction repositoryOf(url: string): { url: string; source: string } | undefined {\n if (!url) {return undefined;}\n try {\n const host = new URL(url).hostname.replace(/^www\\./, '');\n return { url, source: host.split('.')[0] };\n } catch {\n return undefined;\n }\n}\n\n/** Identity shared by the Server Card and the registry entry. */\nfunction mcpIdentity(fafa: FafaDoc): Record<string, unknown> {\n const agent = fafa.agent ?? {};\n const extras = fafa.metadata?.cards ?? {};\n const description = clean(agent.description);\n const version = clean(agent.version);\n if (!description || !version) {throw new Error('An MCP card needs agent.description and agent.version in .fafa');}\n const out: Record<string, unknown> = {\n name: mcpName(fafa),\n version,\n description: cap100(description),\n };\n const title = clean(agent.displayName);\n if (title) {out.title = cap100(title);}\n const homepage = clean(agent.homepage);\n if (homepage) {out.websiteUrl = homepage;}\n const repo = repositoryOf(clean(extras.repository));\n if (repo) {out.repository = repo;}\n if (clean(extras.icon)) {out.icons = [{ src: clean(extras.icon) }];}\n return out;\n}\n\n/** The packages people install, from the `.fafa`, as a registry entry lists them. */\nfunction registryPackages(fafa: FafaDoc): Array<Record<string, unknown>> {\n return (fafa.metadata?.cards?.packages ?? []).map((p) => ({\n registryType: clean(p.registryType),\n identifier: clean(p.identifier),\n ...(clean(p.version) ? { version: clean(p.version) } : {}),\n transport: { type: 'stdio' },\n }));\n}\n\n/** True when the `.fafa` gives a registry entry: a package or a remote MCP URL. */\nexport function hasRegistryEntry(fafa: FafaDoc): boolean {\n return mcpRemotes(fafa).length > 0 || registryPackages(fafa).length > 0;\n}\n\n/** The registry identity from the `.fafa`: `name`, and `title` when it has one. */\nexport function registryIdentity(fafa: FafaDoc): { name: string; title?: string } {\n const title = clean(fafa.agent?.displayName);\n return { name: mcpName(fafa), ...(title ? { title: cap100(title) } : {}) };\n}\n\n/** The MCP Server Card for a remote MCP server. With a project.faf (`faf`,\n * BEST) it carries FAF's context block at `_meta[\"one.faf/context\"]`. */\nexport function projectServerCard(fafa: FafaDoc, faf?: FafData, opts: ContextBlockOptions = {}): Record<string, unknown> {\n const remotes = mcpRemotes(fafa);\n if (remotes.length === 0) {\n throw new Error('A Server Card describes a remote MCP server: the .fafa has no mcp endpoint at an http(s) URL.');\n }\n return {\n $schema: SERVER_CARD_SCHEMA,\n ...mcpIdentity(fafa),\n remotes,\n ...(faf ? { _meta: { 'one.faf/context': fafContextBlock(faf, opts) } } : {}),\n };\n}\n\n/** The MCP Registry `server.json` (publishing it stays the owner's step). With\n * a project.faf (`faf`, BEST) it carries FAF's context block in the registry's\n * publisher-provided `_meta`. */\nexport function projectServerJson(fafa: FafaDoc, faf?: FafData, opts: ContextBlockOptions = {}): Record<string, unknown> {\n const remotes = mcpRemotes(fafa);\n const packages = registryPackages(fafa);\n if (remotes.length === 0 && packages.length === 0) {\n throw new Error('A registry entry needs a package people install or a remote MCP URL.');\n }\n return {\n $schema: SERVER_JSON_SCHEMA,\n ...mcpIdentity(fafa),\n ...(packages.length ? { packages } : {}),\n ...(remotes.length ? { remotes } : {}),\n ...(faf ? { _meta: registryMeta(faf, opts) } : {}),\n };\n}\n\nexport type PackCard = 'a2a' | 'server_card' | 'server_json' | 'ai_catalog' | 'ard' | 'fafa';\n\nexport interface CatalogRow {\n identifier: string;\n displayName: string;\n type: string;\n description: string;\n url: string;\n version?: string;\n updatedAt: string;\n}\n\n/** Options for the catalog rows. */\nexport interface CatalogRowOptions {\n /** `updatedAt` for the rows; otherwise now. */\n now?: string;\n /** List the `.fafa` itself (served at /.well-known/fafa). Default true: it is\n * the source of the cards — what makes them BETTER. */\n listFafa?: boolean;\n /** Public URL of the A2A card; default the domain's /.well-known/agent-card.json. */\n a2aCardUrl?: string;\n /** An A2A door when the `.fafa` names none (as `faf cards --door-url`). */\n doorUrl?: string;\n}\n\n/** Where the A2A card is served — only when it is asked for and the `.fafa`\n * names an A2A door, so a catalog never lists a card nobody wrote. */\nfunction a2aCardUrlFor(fafa: FafaDoc, cards: PackCard[], opts: CatalogRowOptions): string | undefined {\n if (!cards.includes('a2a') || a2aDoors(fafa, opts).length === 0) {return undefined;}\n return opts.a2aCardUrl ?? `https://${fafaDomain(fafa)}/.well-known/agent-card.json`;\n}\n\n/** One row per card the domain serves: the A2A card (when the `.fafa` names an\n * A2A door), the Server Card (when it names a remote MCP URL), and the `.fafa`. */\nexport function catalogRows(fafa: FafaDoc, cards: PackCard[], opts: CatalogRowOptions = {}): CatalogRow[] {\n const domain = fafaDomain(fafa);\n const handle = handleOf(fafa);\n const agent = fafa.agent ?? {};\n const displayName = clean(agent.displayName) || clean(agent.name);\n const description = clean(agent.description);\n const version = clean(agent.version);\n const now = opts.now ?? new Date().toISOString();\n const row = (ns: string, type: string, url: string): CatalogRow => ({\n identifier: `urn:air:${domain}:${ns}:${handle}`,\n displayName,\n type,\n description,\n url,\n ...(version ? { version } : {}),\n updatedAt: now,\n });\n const rows: CatalogRow[] = [];\n const a2aUrl = a2aCardUrlFor(fafa, cards, opts);\n if (a2aUrl) {rows.push(row('a2a', CARD_MEDIA_TYPES.a2a, a2aUrl));}\n if (cards.includes('server_card')) {\n const remote = mcpRemotes(fafa)[0];\n if (remote) {rows.push(row('mcp', CARD_MEDIA_TYPES.server_card, `${remote.url.replace(/\\/+$/, '')}/server-card`));}\n }\n if (opts.listFafa !== false) {rows.push(row('agent', CARD_MEDIA_TYPES.fafa, `https://${domain}/.well-known/fafa`));}\n return rows;\n}\n\n/** Who publishes a catalog: AI Catalog's `host` object. */\nexport interface CatalogHost {\n displayName: string;\n identifier?: string;\n}\n\n/**\n * The catalog's `host` — who publishes these entries. Naming one is what\n * lifts a catalog from Level 1 \"minimal\" to Level 2 \"discoverable\", and\n * `displayName` is the field that does it: the validator takes an empty one\n * as *invalid*, not as minimal. So a `.fafa` that names nobody gets no host\n * at all — a minimal catalog that validates beats a discoverable one that\n * does not. `identifier` rides along whenever the `.fafa` says where it\n * lives, and is left off when it does not.\n */\nexport function catalogHost(fafa: FafaDoc): CatalogHost | undefined {\n const agent = fafa.agent ?? {};\n const displayName = clean(agent.vendor) || clean(agent.displayName) || clean(agent.name);\n if (!displayName) {return undefined;}\n let identifier: string | undefined;\n try {\n identifier = fafaDomain(fafa);\n } catch {\n identifier = undefined;\n }\n return { displayName, ...(identifier ? { identifier } : {}) };\n}\n\n/** The AI Catalog for the domain: every row above, with the host named. */\nexport function projectAiCatalog(fafa: FafaDoc, cards: PackCard[], opts: CatalogRowOptions = {}): Record<string, unknown> {\n const host = catalogHost(fafa);\n return {\n specVersion: AI_CATALOG_SPEC_VERSION,\n ...(host ? { host } : {}),\n entries: catalogRows(fafa, cards, opts),\n };\n}\n\n/**\n * The search hints ARD reads, from the `.fafa`: `metadata.cards.keywords` and\n * `metadata.cards.examples`. An entry with no `representativeQueries` is, in\n * the conformance CLI's own words, \"a valid catalog entry but not a\n * discoverable ARD entry\" — the semantic index is built from that term.\n */\nexport function ardHints(fafa: FafaDoc): { tags?: string[]; representativeQueries?: string[] } {\n const extras = fafa.metadata?.cards ?? {};\n const tags = list(extras.keywords);\n const queries = list(extras.examples);\n return {\n ...(tags.length ? { tags } : {}),\n ...(queries.length ? { representativeQueries: queries } : {}),\n };\n}\n\n/** The ARD manifest: the catalog, plus the search hints ARD reads. ARD builds\n * on ai-catalog (spec §4), so the document is the same shape — the entries\n * carry more. */\nexport function projectArd(fafa: FafaDoc, cards: PackCard[], opts: CatalogRowOptions = {}): Record<string, unknown> {\n const host = catalogHost(fafa);\n const hints = ardHints(fafa);\n return {\n specVersion: AI_CATALOG_SPEC_VERSION,\n ...(host ? { host } : {}),\n entries: catalogRows(fafa, cards, opts).map((r) => ({ ...r, ...hints })),\n };\n}\n\nexport interface PackOptions extends ContextBlockOptions {\n /** Which cards to build; the `.fafa` is always written. */\n cards: PackCard[];\n /** `updatedAt` for catalog rows (tests); otherwise now. */\n now?: string;\n /** List the `.fafa` itself in the catalog and ARD manifest (it is then served\n * at /.well-known/fafa). Default true; `false` leaves it out. */\n listFafa?: boolean;\n /** Extensions to put on the A2A card, besides FAF's own (added with `faf`). */\n a2aExtensions?: A2AExtension[];\n /** project.faf (BEST): adds FAF's context block to the A2A card, the Server\n * Card and server.json. Without it the cards are plain (BETTER). */\n faf?: FafData;\n}\n\nexport interface Pack {\n fafa: FafaDoc;\n fafaText: string;\n a2a?: ProjectedA2A;\n server_card?: Record<string, unknown>;\n server_json?: Record<string, unknown>;\n ai_catalog?: Record<string, unknown>;\n ard?: Record<string, unknown>;\n}\n\n/** Every card a `.fafa` can feed, for the cards asked. */\nexport function projectPack(fafa: FafaDoc, opts: PackOptions): Pack {\n const want = new Set(opts.cards);\n const pack: Pack = { fafa, fafaText: fafaYaml(fafa) };\n const { faf } = opts;\n if (want.has('a2a')) {\n const extensions = [...(opts.a2aExtensions ?? []), ...(faf ? [fafaContextExtension(fafa, faf, opts)] : [])];\n pack.a2a = projectA2ACard(fafa, { extensions });\n }\n if (want.has('server_card')) {pack.server_card = projectServerCard(fafa, faf, opts);}\n if (want.has('server_json')) {pack.server_json = projectServerJson(fafa, faf, opts);}\n const rowOpts = { now: opts.now, listFafa: opts.listFafa };\n if (want.has('ai_catalog')) {pack.ai_catalog = projectAiCatalog(fafa, opts.cards, rowOpts);}\n if (want.has('ard')) {pack.ard = projectArd(fafa, opts.cards, rowOpts);}\n return pack;\n}\n\n/** Answers in, the `.fafa` and every card asked for out. */\nexport function buildPack(answers: PackAnswers, opts: PackOptions): Pack {\n return projectPack(answersToFafa(answers), opts);\n}\n"
55
56
  ],
56
- "mappings": "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",
57
- "debugId": "7885AAE26E02C17964756E2164756E21",
57
+ "mappings": "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",
58
+ "debugId": "F4C90C93DD71C80C64756E2164756E21",
58
59
  "names": []
59
60
  }