faf 7.16.2 → 8.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../node_modules/yaml/dist/nodes/identity.js", "../node_modules/yaml/dist/visit.js", "../node_modules/yaml/dist/doc/directives.js", "../node_modules/yaml/dist/doc/anchors.js", "../node_modules/yaml/dist/doc/applyReviver.js", "../node_modules/yaml/dist/nodes/toJS.js", "../node_modules/yaml/dist/nodes/Node.js", "../node_modules/yaml/dist/nodes/Alias.js", "../node_modules/yaml/dist/nodes/Scalar.js", "../node_modules/yaml/dist/doc/createNode.js", "../node_modules/yaml/dist/nodes/Collection.js", "../node_modules/yaml/dist/stringify/stringifyComment.js", "../node_modules/yaml/dist/stringify/foldFlowLines.js", "../node_modules/yaml/dist/stringify/stringifyString.js", "../node_modules/yaml/dist/stringify/stringify.js", "../node_modules/yaml/dist/stringify/stringifyPair.js", "../node_modules/yaml/dist/log.js", "../node_modules/yaml/dist/schema/yaml-1.1/merge.js", "../node_modules/yaml/dist/nodes/addPairToJSMap.js", "../node_modules/yaml/dist/nodes/Pair.js", "../node_modules/yaml/dist/stringify/stringifyCollection.js", "../node_modules/yaml/dist/nodes/YAMLMap.js", "../node_modules/yaml/dist/schema/common/map.js", "../node_modules/yaml/dist/nodes/YAMLSeq.js", "../node_modules/yaml/dist/schema/common/seq.js", "../node_modules/yaml/dist/schema/common/string.js", "../node_modules/yaml/dist/schema/common/null.js", "../node_modules/yaml/dist/schema/core/bool.js", "../node_modules/yaml/dist/stringify/stringifyNumber.js", "../node_modules/yaml/dist/schema/core/float.js", "../node_modules/yaml/dist/schema/core/int.js", "../node_modules/yaml/dist/schema/core/schema.js", "../node_modules/yaml/dist/schema/json/schema.js", "../node_modules/yaml/dist/schema/yaml-1.1/binary.js", "../node_modules/yaml/dist/schema/yaml-1.1/pairs.js", "../node_modules/yaml/dist/schema/yaml-1.1/omap.js", "../node_modules/yaml/dist/schema/yaml-1.1/bool.js", "../node_modules/yaml/dist/schema/yaml-1.1/float.js", "../node_modules/yaml/dist/schema/yaml-1.1/int.js", "../node_modules/yaml/dist/schema/yaml-1.1/set.js", "../node_modules/yaml/dist/schema/yaml-1.1/timestamp.js", "../node_modules/yaml/dist/schema/yaml-1.1/schema.js", "../node_modules/yaml/dist/schema/tags.js", "../node_modules/yaml/dist/schema/Schema.js", "../node_modules/yaml/dist/stringify/stringifyDocument.js", "../node_modules/yaml/dist/doc/Document.js", "../node_modules/yaml/dist/errors.js", "../node_modules/yaml/dist/compose/resolve-props.js", "../node_modules/yaml/dist/compose/util-contains-newline.js", "../node_modules/yaml/dist/compose/util-flow-indent-check.js", "../node_modules/yaml/dist/compose/util-map-includes.js", "../node_modules/yaml/dist/compose/resolve-block-map.js", "../node_modules/yaml/dist/compose/resolve-block-seq.js", "../node_modules/yaml/dist/compose/resolve-end.js", "../node_modules/yaml/dist/compose/resolve-flow-collection.js", "../node_modules/yaml/dist/compose/compose-collection.js", "../node_modules/yaml/dist/compose/resolve-block-scalar.js", "../node_modules/yaml/dist/compose/resolve-flow-scalar.js", "../node_modules/yaml/dist/compose/compose-scalar.js", "../node_modules/yaml/dist/compose/util-empty-scalar-position.js", "../node_modules/yaml/dist/compose/compose-node.js", "../node_modules/yaml/dist/compose/compose-doc.js", "../node_modules/yaml/dist/compose/composer.js", "../node_modules/yaml/dist/parse/cst-scalar.js", "../node_modules/yaml/dist/parse/cst-stringify.js", "../node_modules/yaml/dist/parse/cst-visit.js", "../node_modules/yaml/dist/parse/cst.js", "../node_modules/yaml/dist/parse/lexer.js", "../node_modules/yaml/dist/parse/line-counter.js", "../node_modules/yaml/dist/parse/parser.js", "../node_modules/yaml/dist/public-api.js", "../src/core/slots.ts", "../src/ui/colors.ts", "../src/core/tiers.ts", "../src/wasm/kernel.ts", "../src/core/about.ts", "../src/core/scorer.ts", "../src/core/schema.ts", "../src/interop/faf.ts", "../node_modules/yaml/dist/index.js", "../src/core/safe-write.ts", "../src/core/shape.ts", "../src/core/yaml-edit.ts", "../src/core/faf-source.ts", "../src/core/cwd-guard.ts", "../src/core/drift.ts", "../src/interop/projecthtml.ts", "../src/core/render-hash.ts", "../src/core/json-edit.ts", "../src/interop/servercard.ts", "../src/interop/pack.ts", "../src/interop/cards.ts", "../src/fafm/types.ts", "../src/fafm/soul.ts", "../src/fafm/from-claude-dir.ts", "../src/core/interview.ts", "../src/core/loop.ts", "../src/commands/bench.ts", "../src/detect/turbo-cat.ts", "../src/detect/turbo-cat-knowledge.ts", "../src/detect/dart.ts", "../src/detect/go.ts", "../src/detect/csharp.ts", "../src/detect/jvm.ts", "../src/detect/ruby.ts", "../src/detect/swift.ts", "../src/detect/relentless.ts", "../src/core/version.ts", "../src/detect/scanner.ts", "../src/detect/frameworks.ts", "../src/detect/stack.ts", "../src/interrogate/types.ts", "../src/interrogate/readme.ts", "../src/interrogate/cargo.ts", "../src/interrogate/compose.ts", "../src/interrogate/build-files.ts", "../src/interrogate/env.ts", "../src/interrogate/index.ts", "../src/core/typed-none.ts", "../src/detect/assemble.ts", "../src/detect/git-repo.ts", "../src/core/faf-dna.ts", "../src/interop/agents.ts", "../src/interop/claude.ts", "../src/interop/inject.ts", "../src/interop/commonmark.ts", "../src/interop/labels.ts", "../src/interop/gemini.ts", "../src/interop/cursorrules.ts", "../src/interop/copilot-instructions.ts", "../src/interop/claude-memory.ts", "../src/detect/enrich.ts"],
3
+ "sources": ["../node_modules/yaml/dist/nodes/identity.js", "../node_modules/yaml/dist/visit.js", "../node_modules/yaml/dist/doc/directives.js", "../node_modules/yaml/dist/doc/anchors.js", "../node_modules/yaml/dist/doc/applyReviver.js", "../node_modules/yaml/dist/nodes/toJS.js", "../node_modules/yaml/dist/nodes/Node.js", "../node_modules/yaml/dist/nodes/Alias.js", "../node_modules/yaml/dist/nodes/Scalar.js", "../node_modules/yaml/dist/doc/createNode.js", "../node_modules/yaml/dist/nodes/Collection.js", "../node_modules/yaml/dist/stringify/stringifyComment.js", "../node_modules/yaml/dist/stringify/foldFlowLines.js", "../node_modules/yaml/dist/stringify/stringifyString.js", "../node_modules/yaml/dist/stringify/stringify.js", "../node_modules/yaml/dist/stringify/stringifyPair.js", "../node_modules/yaml/dist/log.js", "../node_modules/yaml/dist/schema/yaml-1.1/merge.js", "../node_modules/yaml/dist/nodes/addPairToJSMap.js", "../node_modules/yaml/dist/nodes/Pair.js", "../node_modules/yaml/dist/stringify/stringifyCollection.js", "../node_modules/yaml/dist/nodes/YAMLMap.js", "../node_modules/yaml/dist/schema/common/map.js", "../node_modules/yaml/dist/nodes/YAMLSeq.js", "../node_modules/yaml/dist/schema/common/seq.js", "../node_modules/yaml/dist/schema/common/string.js", "../node_modules/yaml/dist/schema/common/null.js", "../node_modules/yaml/dist/schema/core/bool.js", "../node_modules/yaml/dist/stringify/stringifyNumber.js", "../node_modules/yaml/dist/schema/core/float.js", "../node_modules/yaml/dist/schema/core/int.js", "../node_modules/yaml/dist/schema/core/schema.js", "../node_modules/yaml/dist/schema/json/schema.js", "../node_modules/yaml/dist/schema/yaml-1.1/binary.js", "../node_modules/yaml/dist/schema/yaml-1.1/pairs.js", "../node_modules/yaml/dist/schema/yaml-1.1/omap.js", "../node_modules/yaml/dist/schema/yaml-1.1/bool.js", "../node_modules/yaml/dist/schema/yaml-1.1/float.js", "../node_modules/yaml/dist/schema/yaml-1.1/int.js", "../node_modules/yaml/dist/schema/yaml-1.1/set.js", "../node_modules/yaml/dist/schema/yaml-1.1/timestamp.js", "../node_modules/yaml/dist/schema/yaml-1.1/schema.js", "../node_modules/yaml/dist/schema/tags.js", "../node_modules/yaml/dist/schema/Schema.js", "../node_modules/yaml/dist/stringify/stringifyDocument.js", "../node_modules/yaml/dist/doc/Document.js", "../node_modules/yaml/dist/errors.js", "../node_modules/yaml/dist/compose/resolve-props.js", "../node_modules/yaml/dist/compose/util-contains-newline.js", "../node_modules/yaml/dist/compose/util-flow-indent-check.js", "../node_modules/yaml/dist/compose/util-map-includes.js", "../node_modules/yaml/dist/compose/resolve-block-map.js", "../node_modules/yaml/dist/compose/resolve-block-seq.js", "../node_modules/yaml/dist/compose/resolve-end.js", "../node_modules/yaml/dist/compose/resolve-flow-collection.js", "../node_modules/yaml/dist/compose/compose-collection.js", "../node_modules/yaml/dist/compose/resolve-block-scalar.js", "../node_modules/yaml/dist/compose/resolve-flow-scalar.js", "../node_modules/yaml/dist/compose/compose-scalar.js", "../node_modules/yaml/dist/compose/util-empty-scalar-position.js", "../node_modules/yaml/dist/compose/compose-node.js", "../node_modules/yaml/dist/compose/compose-doc.js", "../node_modules/yaml/dist/compose/composer.js", "../node_modules/yaml/dist/parse/cst-scalar.js", "../node_modules/yaml/dist/parse/cst-stringify.js", "../node_modules/yaml/dist/parse/cst-visit.js", "../node_modules/yaml/dist/parse/cst.js", "../node_modules/yaml/dist/parse/lexer.js", "../node_modules/yaml/dist/parse/line-counter.js", "../node_modules/yaml/dist/parse/parser.js", "../node_modules/yaml/dist/public-api.js", "../src/core/slots.ts", "../src/ui/colors.ts", "../src/core/tiers.ts", "../src/wasm/kernel.ts", "../src/core/about.ts", "../src/core/scorer.ts", "../src/core/schema.ts", "../src/interop/faf.ts", "../node_modules/yaml/dist/index.js", "../src/core/safe-write.ts", "../src/core/shape.ts", "../src/core/yaml-edit.ts", "../src/core/faf-source.ts", "../src/core/cwd-guard.ts", "../src/core/drift.ts", "../src/interop/projecthtml.ts", "../src/core/render-hash.ts", "../src/core/json-edit.ts", "../src/interop/servercard.ts", "../src/interop/pack.ts", "../src/interop/cards.ts", "../src/fafm/types.ts", "../src/fafm/soul.ts", "../src/fafm/from-claude-dir.ts", "../src/core/interview.ts", "../src/core/loop.ts", "../src/commands/bench.ts", "../src/detect/turbo-cat.ts", "../src/detect/turbo-cat-knowledge.ts", "../src/detect/dart.ts", "../src/detect/go.ts", "../src/detect/csharp.ts", "../src/detect/jvm.ts", "../src/detect/ruby.ts", "../src/detect/swift.ts", "../src/detect/relentless.ts", "../src/core/version.ts", "../src/detect/scanner.ts", "../src/detect/frameworks.ts", "../src/detect/stack.ts", "../src/interrogate/types.ts", "../src/interrogate/readme.ts", "../src/interrogate/cargo.ts", "../src/interrogate/compose.ts", "../src/interrogate/build-files.ts", "../src/interrogate/env.ts", "../src/interrogate/index.ts", "../src/core/typed-none.ts", "../src/detect/assemble.ts", "../src/detect/git-repo.ts", "../src/core/faf-dna.ts", "../src/interop/agents.ts", "../src/interop/claude.ts", "../src/interop/inject.ts", "../src/interop/commonmark.ts", "../src/interop/labels.ts", "../src/interop/command-note.ts", "../src/interop/gemini.ts", "../src/interop/cursorrules.ts", "../src/interop/copilot-instructions.ts", "../src/interop/claude-memory.ts", "../src/detect/enrich.ts"],
4
4
  "sourcesContent": [
5
5
  "'use strict';\n\nconst 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\nexports.ALIAS = ALIAS;\nexports.DOC = DOC;\nexports.MAP = MAP;\nexports.NODE_TYPE = NODE_TYPE;\nexports.PAIR = PAIR;\nexports.SCALAR = SCALAR;\nexports.SEQ = SEQ;\nexports.hasAnchor = hasAnchor;\nexports.isAlias = isAlias;\nexports.isCollection = isCollection;\nexports.isDocument = isDocument;\nexports.isMap = isMap;\nexports.isNode = isNode;\nexports.isPair = isPair;\nexports.isScalar = isScalar;\nexports.isSeq = isSeq;\n",
6
6
  "'use strict';\n\nvar identity = require('./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 (identity.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 (identity.isNode(ctrl) || identity.isPair(ctrl)) {\n replaceNode(key, path, ctrl);\n return visit_(key, ctrl, visitor, path);\n }\n if (typeof ctrl !== 'symbol') {\n if (identity.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 (identity.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 (identity.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 (identity.isNode(ctrl) || identity.isPair(ctrl)) {\n replaceNode(key, path, ctrl);\n return visitAsync_(key, ctrl, visitor, path);\n }\n if (typeof ctrl !== 'symbol') {\n if (identity.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 (identity.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 (identity.isMap(node))\n return visitor.Map?.(key, node, path);\n if (identity.isSeq(node))\n return visitor.Seq?.(key, node, path);\n if (identity.isPair(node))\n return visitor.Pair?.(key, node, path);\n if (identity.isScalar(node))\n return visitor.Scalar?.(key, node, path);\n if (identity.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 (identity.isCollection(parent)) {\n parent.items[key] = node;\n }\n else if (identity.isPair(parent)) {\n if (key === 'key')\n parent.key = node;\n else\n parent.value = node;\n }\n else if (identity.isDocument(parent)) {\n parent.contents = node;\n }\n else {\n const pt = identity.isAlias(parent) ? 'alias' : 'scalar';\n throw new Error(`Cannot replace node with ${pt} parent`);\n }\n}\n\nexports.visit = visit;\nexports.visitAsync = visitAsync;\n",
@@ -73,10 +73,10 @@
73
73
  "'use strict';\n\n/**\n * Tracks newlines during parsing in order to provide an efficient API for\n * determining the one-indexed `{ line, col }` position for any offset\n * within the input.\n */\nclass LineCounter {\n constructor() {\n this.lineStarts = [];\n /**\n * Should be called in ascending order. Otherwise, call\n * `lineCounter.lineStarts.sort()` before calling `linePos()`.\n */\n this.addNewLine = (offset) => this.lineStarts.push(offset);\n /**\n * Performs a binary search and returns the 1-indexed { line, col }\n * position of `offset`. If `line === 0`, `addNewLine` has never been\n * called or `offset` is before the first known newline.\n */\n this.linePos = (offset) => {\n let low = 0;\n let high = this.lineStarts.length;\n while (low < high) {\n const mid = (low + high) >> 1; // Math.floor((low + high) / 2)\n if (this.lineStarts[mid] < offset)\n low = mid + 1;\n else\n high = mid;\n }\n if (this.lineStarts[low] === offset)\n return { line: low + 1, col: 1 };\n if (low === 0)\n return { line: 0, col: offset };\n const start = this.lineStarts[low - 1];\n return { line: low, col: offset - start + 1 };\n };\n }\n}\n\nexports.LineCounter = LineCounter;\n",
74
74
  "'use strict';\n\nvar node_process = require('process');\nvar cst = require('./cst.js');\nvar lexer = require('./lexer.js');\n\nfunction includesToken(list, type) {\n for (let i = 0; i < list.length; ++i)\n if (list[i].type === type)\n return true;\n return false;\n}\nfunction findNonEmptyIndex(list) {\n for (let i = 0; i < list.length; ++i) {\n switch (list[i].type) {\n case 'space':\n case 'comment':\n case 'newline':\n break;\n default:\n return i;\n }\n }\n return -1;\n}\nfunction isFlowToken(token) {\n switch (token?.type) {\n case 'alias':\n case 'scalar':\n case 'single-quoted-scalar':\n case 'double-quoted-scalar':\n case 'flow-collection':\n return true;\n default:\n return false;\n }\n}\nfunction getPrevProps(parent) {\n switch (parent.type) {\n case 'document':\n return parent.start;\n case 'block-map': {\n const it = parent.items[parent.items.length - 1];\n return it.sep ?? it.start;\n }\n case 'block-seq':\n return parent.items[parent.items.length - 1].start;\n /* istanbul ignore next should not happen */\n default:\n return [];\n }\n}\n/** Note: May modify input array */\nfunction getFirstKeyStartProps(prev) {\n if (prev.length === 0)\n return [];\n let i = prev.length;\n loop: while (--i >= 0) {\n switch (prev[i].type) {\n case 'doc-start':\n case 'explicit-key-ind':\n case 'map-value-ind':\n case 'seq-item-ind':\n case 'newline':\n break loop;\n }\n }\n while (prev[++i]?.type === 'space') {\n /* loop */\n }\n return prev.splice(i, prev.length);\n}\nfunction arrayPushArray(target, source) {\n // May exhaust call stack with large `source` array\n if (source.length < 1e5)\n Array.prototype.push.apply(target, source);\n else\n for (let i = 0; i < source.length; ++i)\n target.push(source[i]);\n}\nfunction fixFlowSeqItems(fc) {\n if (fc.start.type === 'flow-seq-start') {\n for (const it of fc.items) {\n if (it.sep &&\n !it.value &&\n !includesToken(it.start, 'explicit-key-ind') &&\n !includesToken(it.sep, 'map-value-ind')) {\n if (it.key)\n it.value = it.key;\n delete it.key;\n if (isFlowToken(it.value)) {\n if (it.value.end)\n arrayPushArray(it.value.end, it.sep);\n else\n it.value.end = it.sep;\n }\n else\n arrayPushArray(it.start, it.sep);\n delete it.sep;\n }\n }\n }\n}\n/**\n * A YAML concrete syntax tree (CST) parser\n *\n * ```ts\n * const src: string = ...\n * for (const token of new Parser().parse(src)) {\n * // token: Token\n * }\n * ```\n *\n * To use the parser with a user-provided lexer:\n *\n * ```ts\n * function* parse(source: string, lexer: Lexer) {\n * const parser = new Parser()\n * for (const lexeme of lexer.lex(source))\n * yield* parser.next(lexeme)\n * yield* parser.end()\n * }\n *\n * const src: string = ...\n * const lexer = new Lexer()\n * for (const token of parse(src, lexer)) {\n * // token: Token\n * }\n * ```\n */\nclass Parser {\n /**\n * @param onNewLine - If defined, called separately with the start position of\n * each new line (in `parse()`, including the start of input).\n */\n constructor(onNewLine) {\n /** If true, space and sequence indicators count as indentation */\n this.atNewLine = true;\n /** If true, next token is a scalar value */\n this.atScalar = false;\n /** Current indentation level */\n this.indent = 0;\n /** Current offset since the start of parsing */\n this.offset = 0;\n /** On the same line with a block map key */\n this.onKeyLine = false;\n /** Top indicates the node that's currently being built */\n this.stack = [];\n /** The source of the current token, set in parse() */\n this.source = '';\n /** The type of the current token, set in parse() */\n this.type = '';\n // Must be defined after `next()`\n this.lexer = new lexer.Lexer();\n this.onNewLine = onNewLine;\n }\n /**\n * Parse `source` as a YAML stream.\n * If `incomplete`, a part of the last line may be left as a buffer for the next call.\n *\n * Errors are not thrown, but yielded as `{ type: 'error', message }` tokens.\n *\n * @returns A generator of tokens representing each directive, document, and other structure.\n */\n *parse(source, incomplete = false) {\n if (this.onNewLine && this.offset === 0)\n this.onNewLine(0);\n for (const lexeme of this.lexer.lex(source, incomplete))\n yield* this.next(lexeme);\n if (!incomplete)\n yield* this.end();\n }\n /**\n * Advance the parser by the `source` of one lexical token.\n */\n *next(source) {\n this.source = source;\n if (node_process.env.LOG_TOKENS)\n console.log('|', cst.prettyToken(source));\n if (this.atScalar) {\n this.atScalar = false;\n yield* this.step();\n this.offset += source.length;\n return;\n }\n const type = cst.tokenType(source);\n if (!type) {\n const message = `Not a YAML token: ${source}`;\n yield* this.pop({ type: 'error', offset: this.offset, message, source });\n this.offset += source.length;\n }\n else if (type === 'scalar') {\n this.atNewLine = false;\n this.atScalar = true;\n this.type = 'scalar';\n }\n else {\n this.type = type;\n yield* this.step();\n switch (type) {\n case 'newline':\n this.atNewLine = true;\n this.indent = 0;\n if (this.onNewLine)\n this.onNewLine(this.offset + source.length);\n break;\n case 'space':\n if (this.atNewLine && source[0] === ' ')\n this.indent += source.length;\n break;\n case 'explicit-key-ind':\n case 'map-value-ind':\n case 'seq-item-ind':\n if (this.atNewLine)\n this.indent += source.length;\n break;\n case 'doc-mode':\n case 'flow-error-end':\n return;\n default:\n this.atNewLine = false;\n }\n this.offset += source.length;\n }\n }\n /** Call at end of input to push out any remaining constructions */\n *end() {\n while (this.stack.length > 0)\n yield* this.pop();\n }\n get sourceToken() {\n const st = {\n type: this.type,\n offset: this.offset,\n indent: this.indent,\n source: this.source\n };\n return st;\n }\n *step() {\n const top = this.peek(1);\n if (this.type === 'doc-end' && top?.type !== 'doc-end') {\n while (this.stack.length > 0)\n yield* this.pop();\n this.stack.push({\n type: 'doc-end',\n offset: this.offset,\n source: this.source\n });\n return;\n }\n if (!top)\n return yield* this.stream();\n switch (top.type) {\n case 'document':\n return yield* this.document(top);\n case 'alias':\n case 'scalar':\n case 'single-quoted-scalar':\n case 'double-quoted-scalar':\n return yield* this.scalar(top);\n case 'block-scalar':\n return yield* this.blockScalar(top);\n case 'block-map':\n return yield* this.blockMap(top);\n case 'block-seq':\n return yield* this.blockSequence(top);\n case 'flow-collection':\n return yield* this.flowCollection(top);\n case 'doc-end':\n return yield* this.documentEnd(top);\n }\n /* istanbul ignore next should not happen */\n yield* this.pop();\n }\n peek(n) {\n return this.stack[this.stack.length - n];\n }\n *pop(error) {\n const token = error ?? this.stack.pop();\n /* istanbul ignore if should not happen */\n if (!token) {\n const message = 'Tried to pop an empty stack';\n yield { type: 'error', offset: this.offset, source: '', message };\n }\n else if (this.stack.length === 0) {\n yield token;\n }\n else {\n const top = this.peek(1);\n if (token.type === 'block-scalar') {\n // Block scalars use their parent rather than header indent\n token.indent = 'indent' in top ? top.indent : 0;\n }\n else if (token.type === 'flow-collection' && top.type === 'document') {\n // Ignore all indent for top-level flow collections\n token.indent = 0;\n }\n if (token.type === 'flow-collection')\n fixFlowSeqItems(token);\n switch (top.type) {\n case 'document':\n top.value = token;\n break;\n case 'block-scalar':\n top.props.push(token); // error\n break;\n case 'block-map': {\n const it = top.items[top.items.length - 1];\n if (it.value) {\n top.items.push({ start: [], key: token, sep: [] });\n this.onKeyLine = true;\n return;\n }\n else if (it.sep) {\n it.value = token;\n }\n else {\n Object.assign(it, { key: token, sep: [] });\n this.onKeyLine = !it.explicitKey;\n return;\n }\n break;\n }\n case 'block-seq': {\n const it = top.items[top.items.length - 1];\n if (it.value)\n top.items.push({ start: [], value: token });\n else\n it.value = token;\n break;\n }\n case 'flow-collection': {\n const it = top.items[top.items.length - 1];\n if (!it || it.value)\n top.items.push({ start: [], key: token, sep: [] });\n else if (it.sep)\n it.value = token;\n else\n Object.assign(it, { key: token, sep: [] });\n return;\n }\n /* istanbul ignore next should not happen */\n default:\n yield* this.pop();\n yield* this.pop(token);\n }\n if ((top.type === 'document' ||\n top.type === 'block-map' ||\n top.type === 'block-seq') &&\n (token.type === 'block-map' || token.type === 'block-seq')) {\n const last = token.items[token.items.length - 1];\n if (last &&\n !last.sep &&\n !last.value &&\n last.start.length > 0 &&\n findNonEmptyIndex(last.start) === -1 &&\n (token.indent === 0 ||\n last.start.every(st => st.type !== 'comment' || st.indent < token.indent))) {\n if (top.type === 'document')\n top.end = last.start;\n else\n top.items.push({ start: last.start });\n token.items.splice(-1, 1);\n }\n }\n }\n }\n *stream() {\n switch (this.type) {\n case 'directive-line':\n yield { type: 'directive', offset: this.offset, source: this.source };\n return;\n case 'byte-order-mark':\n case 'space':\n case 'comment':\n case 'newline':\n yield this.sourceToken;\n return;\n case 'doc-mode':\n case 'doc-start': {\n const doc = {\n type: 'document',\n offset: this.offset,\n start: []\n };\n if (this.type === 'doc-start')\n doc.start.push(this.sourceToken);\n this.stack.push(doc);\n return;\n }\n }\n yield {\n type: 'error',\n offset: this.offset,\n message: `Unexpected ${this.type} token in YAML stream`,\n source: this.source\n };\n }\n *document(doc) {\n if (doc.value)\n return yield* this.lineEnd(doc);\n switch (this.type) {\n case 'doc-start': {\n if (findNonEmptyIndex(doc.start) !== -1) {\n yield* this.pop();\n yield* this.step();\n }\n else\n doc.start.push(this.sourceToken);\n return;\n }\n case 'anchor':\n case 'tag':\n case 'space':\n case 'comment':\n case 'newline':\n doc.start.push(this.sourceToken);\n return;\n }\n const bv = this.startBlockValue(doc);\n if (bv)\n this.stack.push(bv);\n else {\n yield {\n type: 'error',\n offset: this.offset,\n message: `Unexpected ${this.type} token in YAML document`,\n source: this.source\n };\n }\n }\n *scalar(scalar) {\n if (this.type === 'map-value-ind') {\n const prev = getPrevProps(this.peek(2));\n const start = getFirstKeyStartProps(prev);\n let sep;\n if (scalar.end) {\n sep = scalar.end;\n sep.push(this.sourceToken);\n delete scalar.end;\n }\n else\n sep = [this.sourceToken];\n const map = {\n type: 'block-map',\n offset: scalar.offset,\n indent: scalar.indent,\n items: [{ start, key: scalar, sep }]\n };\n this.onKeyLine = true;\n this.stack[this.stack.length - 1] = map;\n }\n else\n yield* this.lineEnd(scalar);\n }\n *blockScalar(scalar) {\n switch (this.type) {\n case 'space':\n case 'comment':\n case 'newline':\n scalar.props.push(this.sourceToken);\n return;\n case 'scalar':\n scalar.source = this.source;\n // block-scalar source includes trailing newline\n this.atNewLine = true;\n this.indent = 0;\n if (this.onNewLine) {\n let nl = this.source.indexOf('\\n') + 1;\n while (nl !== 0) {\n this.onNewLine(this.offset + nl);\n nl = this.source.indexOf('\\n', nl) + 1;\n }\n }\n yield* this.pop();\n break;\n /* istanbul ignore next should not happen */\n default:\n yield* this.pop();\n yield* this.step();\n }\n }\n *blockMap(map) {\n const it = map.items[map.items.length - 1];\n // it.sep is true-ish if pair already has key or : separator\n switch (this.type) {\n case 'newline':\n this.onKeyLine = false;\n if (it.value) {\n const end = 'end' in it.value ? it.value.end : undefined;\n const last = Array.isArray(end) ? end[end.length - 1] : undefined;\n if (last?.type === 'comment')\n end?.push(this.sourceToken);\n else\n map.items.push({ start: [this.sourceToken] });\n }\n else if (it.sep) {\n it.sep.push(this.sourceToken);\n }\n else {\n it.start.push(this.sourceToken);\n }\n return;\n case 'space':\n case 'comment':\n if (it.value) {\n map.items.push({ start: [this.sourceToken] });\n }\n else if (it.sep) {\n it.sep.push(this.sourceToken);\n }\n else {\n if (this.atIndentedComment(it.start, map.indent)) {\n const prev = map.items[map.items.length - 2];\n const end = prev?.value?.end;\n if (Array.isArray(end)) {\n arrayPushArray(end, it.start);\n end.push(this.sourceToken);\n map.items.pop();\n return;\n }\n }\n it.start.push(this.sourceToken);\n }\n return;\n }\n if (this.indent >= map.indent) {\n const atMapIndent = !this.onKeyLine && this.indent === map.indent;\n const atNextItem = atMapIndent &&\n (it.sep || it.explicitKey) &&\n this.type !== 'seq-item-ind';\n // For empty nodes, assign newline-separated not indented empty tokens to following node\n let start = [];\n if (atNextItem && it.sep && !it.value) {\n const nl = [];\n for (let i = 0; i < it.sep.length; ++i) {\n const st = it.sep[i];\n switch (st.type) {\n case 'newline':\n nl.push(i);\n break;\n case 'space':\n break;\n case 'comment':\n if (st.indent > map.indent)\n nl.length = 0;\n break;\n default:\n nl.length = 0;\n }\n }\n if (nl.length >= 2)\n start = it.sep.splice(nl[1]);\n }\n switch (this.type) {\n case 'anchor':\n case 'tag':\n if (atNextItem || it.value) {\n start.push(this.sourceToken);\n map.items.push({ start });\n this.onKeyLine = true;\n }\n else if (it.sep) {\n it.sep.push(this.sourceToken);\n }\n else {\n it.start.push(this.sourceToken);\n }\n return;\n case 'explicit-key-ind':\n if (!it.sep && !it.explicitKey) {\n it.start.push(this.sourceToken);\n it.explicitKey = true;\n }\n else if (atNextItem || it.value) {\n start.push(this.sourceToken);\n map.items.push({ start, explicitKey: true });\n }\n else {\n this.stack.push({\n type: 'block-map',\n offset: this.offset,\n indent: this.indent,\n items: [{ start: [this.sourceToken], explicitKey: true }]\n });\n }\n this.onKeyLine = true;\n return;\n case 'map-value-ind':\n if (it.explicitKey) {\n if (!it.sep) {\n if (includesToken(it.start, 'newline')) {\n Object.assign(it, { key: null, sep: [this.sourceToken] });\n }\n else {\n const start = getFirstKeyStartProps(it.start);\n this.stack.push({\n type: 'block-map',\n offset: this.offset,\n indent: this.indent,\n items: [{ start, key: null, sep: [this.sourceToken] }]\n });\n }\n }\n else if (it.value) {\n map.items.push({ start: [], key: null, sep: [this.sourceToken] });\n }\n else if (includesToken(it.sep, 'map-value-ind')) {\n this.stack.push({\n type: 'block-map',\n offset: this.offset,\n indent: this.indent,\n items: [{ start, key: null, sep: [this.sourceToken] }]\n });\n }\n else if (isFlowToken(it.key) &&\n !includesToken(it.sep, 'newline')) {\n const start = getFirstKeyStartProps(it.start);\n const key = it.key;\n const sep = it.sep;\n sep.push(this.sourceToken);\n // @ts-expect-error type guard is wrong here\n delete it.key;\n // @ts-expect-error type guard is wrong here\n delete it.sep;\n this.stack.push({\n type: 'block-map',\n offset: this.offset,\n indent: this.indent,\n items: [{ start, key, sep }]\n });\n }\n else if (start.length > 0) {\n // Not actually at next item\n it.sep = it.sep.concat(start, this.sourceToken);\n }\n else {\n it.sep.push(this.sourceToken);\n }\n }\n else {\n if (!it.sep) {\n Object.assign(it, { key: null, sep: [this.sourceToken] });\n }\n else if (it.value || atNextItem) {\n map.items.push({ start, key: null, sep: [this.sourceToken] });\n }\n else if (includesToken(it.sep, 'map-value-ind')) {\n this.stack.push({\n type: 'block-map',\n offset: this.offset,\n indent: this.indent,\n items: [{ start: [], key: null, sep: [this.sourceToken] }]\n });\n }\n else {\n it.sep.push(this.sourceToken);\n }\n }\n this.onKeyLine = true;\n return;\n case 'alias':\n case 'scalar':\n case 'single-quoted-scalar':\n case 'double-quoted-scalar': {\n const fs = this.flowScalar(this.type);\n if (atNextItem || it.value) {\n map.items.push({ start, key: fs, sep: [] });\n this.onKeyLine = true;\n }\n else if (it.sep) {\n this.stack.push(fs);\n }\n else {\n Object.assign(it, { key: fs, sep: [] });\n this.onKeyLine = true;\n }\n return;\n }\n default: {\n const bv = this.startBlockValue(map);\n if (bv) {\n if (bv.type === 'block-seq') {\n if (!it.explicitKey &&\n it.sep &&\n !includesToken(it.sep, 'newline')) {\n yield* this.pop({\n type: 'error',\n offset: this.offset,\n message: 'Unexpected block-seq-ind on same line with key',\n source: this.source\n });\n return;\n }\n }\n else if (atMapIndent) {\n map.items.push({ start });\n }\n this.stack.push(bv);\n return;\n }\n }\n }\n }\n yield* this.pop();\n yield* this.step();\n }\n *blockSequence(seq) {\n const it = seq.items[seq.items.length - 1];\n switch (this.type) {\n case 'newline':\n if (it.value) {\n const end = 'end' in it.value ? it.value.end : undefined;\n const last = Array.isArray(end) ? end[end.length - 1] : undefined;\n if (last?.type === 'comment')\n end?.push(this.sourceToken);\n else\n seq.items.push({ start: [this.sourceToken] });\n }\n else\n it.start.push(this.sourceToken);\n return;\n case 'space':\n case 'comment':\n if (it.value)\n seq.items.push({ start: [this.sourceToken] });\n else {\n if (this.atIndentedComment(it.start, seq.indent)) {\n const prev = seq.items[seq.items.length - 2];\n const end = prev?.value?.end;\n if (Array.isArray(end)) {\n arrayPushArray(end, it.start);\n end.push(this.sourceToken);\n seq.items.pop();\n return;\n }\n }\n it.start.push(this.sourceToken);\n }\n return;\n case 'anchor':\n case 'tag':\n if (it.value || this.indent <= seq.indent)\n break;\n it.start.push(this.sourceToken);\n return;\n case 'seq-item-ind':\n if (this.indent !== seq.indent)\n break;\n if (it.value || includesToken(it.start, 'seq-item-ind'))\n seq.items.push({ start: [this.sourceToken] });\n else\n it.start.push(this.sourceToken);\n return;\n }\n if (this.indent > seq.indent) {\n const bv = this.startBlockValue(seq);\n if (bv) {\n this.stack.push(bv);\n return;\n }\n }\n yield* this.pop();\n yield* this.step();\n }\n *flowCollection(fc) {\n const it = fc.items[fc.items.length - 1];\n if (this.type === 'flow-error-end') {\n let top;\n do {\n yield* this.pop();\n top = this.peek(1);\n } while (top?.type === 'flow-collection');\n }\n else if (fc.end.length === 0) {\n switch (this.type) {\n case 'comma':\n case 'explicit-key-ind':\n if (!it || it.sep)\n fc.items.push({ start: [this.sourceToken] });\n else\n it.start.push(this.sourceToken);\n return;\n case 'map-value-ind':\n if (!it || it.value)\n fc.items.push({ start: [], key: null, sep: [this.sourceToken] });\n else if (it.sep)\n it.sep.push(this.sourceToken);\n else\n Object.assign(it, { key: null, sep: [this.sourceToken] });\n return;\n case 'space':\n case 'comment':\n case 'newline':\n case 'anchor':\n case 'tag':\n if (!it || it.value)\n fc.items.push({ start: [this.sourceToken] });\n else if (it.sep)\n it.sep.push(this.sourceToken);\n else\n it.start.push(this.sourceToken);\n return;\n case 'alias':\n case 'scalar':\n case 'single-quoted-scalar':\n case 'double-quoted-scalar': {\n const fs = this.flowScalar(this.type);\n if (!it || it.value)\n fc.items.push({ start: [], key: fs, sep: [] });\n else if (it.sep)\n this.stack.push(fs);\n else\n Object.assign(it, { key: fs, sep: [] });\n return;\n }\n case 'flow-map-end':\n case 'flow-seq-end':\n fc.end.push(this.sourceToken);\n return;\n }\n const bv = this.startBlockValue(fc);\n /* istanbul ignore else should not happen */\n if (bv)\n this.stack.push(bv);\n else {\n yield* this.pop();\n yield* this.step();\n }\n }\n else {\n const parent = this.peek(2);\n if (parent.type === 'block-map' &&\n ((this.type === 'map-value-ind' && parent.indent === fc.indent) ||\n (this.type === 'newline' &&\n !parent.items[parent.items.length - 1].sep))) {\n yield* this.pop();\n yield* this.step();\n }\n else if (this.type === 'map-value-ind' &&\n parent.type !== 'flow-collection') {\n const prev = getPrevProps(parent);\n const start = getFirstKeyStartProps(prev);\n fixFlowSeqItems(fc);\n const sep = fc.end.splice(1, fc.end.length);\n sep.push(this.sourceToken);\n const map = {\n type: 'block-map',\n offset: fc.offset,\n indent: fc.indent,\n items: [{ start, key: fc, sep }]\n };\n this.onKeyLine = true;\n this.stack[this.stack.length - 1] = map;\n }\n else {\n yield* this.lineEnd(fc);\n }\n }\n }\n flowScalar(type) {\n if (this.onNewLine) {\n let nl = this.source.indexOf('\\n') + 1;\n while (nl !== 0) {\n this.onNewLine(this.offset + nl);\n nl = this.source.indexOf('\\n', nl) + 1;\n }\n }\n return {\n type,\n offset: this.offset,\n indent: this.indent,\n source: this.source\n };\n }\n startBlockValue(parent) {\n switch (this.type) {\n case 'alias':\n case 'scalar':\n case 'single-quoted-scalar':\n case 'double-quoted-scalar':\n return this.flowScalar(this.type);\n case 'block-scalar-header':\n return {\n type: 'block-scalar',\n offset: this.offset,\n indent: this.indent,\n props: [this.sourceToken],\n source: ''\n };\n case 'flow-map-start':\n case 'flow-seq-start':\n return {\n type: 'flow-collection',\n offset: this.offset,\n indent: this.indent,\n start: this.sourceToken,\n items: [],\n end: []\n };\n case 'seq-item-ind':\n return {\n type: 'block-seq',\n offset: this.offset,\n indent: this.indent,\n items: [{ start: [this.sourceToken] }]\n };\n case 'explicit-key-ind': {\n this.onKeyLine = true;\n const prev = getPrevProps(parent);\n const start = getFirstKeyStartProps(prev);\n start.push(this.sourceToken);\n return {\n type: 'block-map',\n offset: this.offset,\n indent: this.indent,\n items: [{ start, explicitKey: true }]\n };\n }\n case 'map-value-ind': {\n this.onKeyLine = true;\n const prev = getPrevProps(parent);\n const start = getFirstKeyStartProps(prev);\n return {\n type: 'block-map',\n offset: this.offset,\n indent: this.indent,\n items: [{ start, key: null, sep: [this.sourceToken] }]\n };\n }\n }\n return null;\n }\n atIndentedComment(start, indent) {\n if (this.type !== 'comment')\n return false;\n if (this.indent <= indent)\n return false;\n return start.every(st => st.type === 'newline' || st.type === 'space');\n }\n *documentEnd(docEnd) {\n if (this.type !== 'doc-mode') {\n if (docEnd.end)\n docEnd.end.push(this.sourceToken);\n else\n docEnd.end = [this.sourceToken];\n if (this.type === 'newline')\n yield* this.pop();\n }\n }\n *lineEnd(token) {\n switch (this.type) {\n case 'comma':\n case 'doc-start':\n case 'doc-end':\n case 'flow-seq-end':\n case 'flow-map-end':\n case 'map-value-ind':\n yield* this.pop();\n yield* this.step();\n break;\n case 'newline':\n this.onKeyLine = false;\n // fallthrough\n case 'space':\n case 'comment':\n default:\n // all other values are errors\n if (token.end)\n token.end.push(this.sourceToken);\n else\n token.end = [this.sourceToken];\n if (this.type === 'newline')\n yield* this.pop();\n }\n }\n}\n\nexports.Parser = Parser;\n",
75
75
  "'use strict';\n\nvar composer = require('./compose/composer.js');\nvar Document = require('./doc/Document.js');\nvar errors = require('./errors.js');\nvar log = require('./log.js');\nvar identity = require('./nodes/identity.js');\nvar lineCounter = require('./parse/line-counter.js');\nvar parser = require('./parse/parser.js');\n\nfunction parseOptions(options) {\n const prettyErrors = options.prettyErrors !== false;\n const lineCounter$1 = options.lineCounter || (prettyErrors && new lineCounter.LineCounter()) || null;\n return { lineCounter: lineCounter$1, 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$1 = new parser.Parser(lineCounter?.addNewLine);\n const composer$1 = new composer.Composer(options);\n const docs = Array.from(composer$1.compose(parser$1.parse(source)));\n if (prettyErrors && lineCounter)\n for (const doc of docs) {\n doc.errors.forEach(errors.prettifyError(source, lineCounter));\n doc.warnings.forEach(errors.prettifyError(source, lineCounter));\n }\n if (docs.length > 0)\n return docs;\n return Object.assign([], { empty: true }, composer$1.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$1 = new parser.Parser(lineCounter?.addNewLine);\n const composer$1 = new composer.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$1.compose(parser$1.parse(source), true, source.length)) {\n if (!doc)\n doc = _doc;\n else if (doc.options.logLevel !== 'silent') {\n doc.errors.push(new errors.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(errors.prettifyError(source, lineCounter));\n doc.warnings.forEach(errors.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 => log.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 (identity.isDocument(value) && !_replacer)\n return value.toString(options);\n return new Document.Document(value, _replacer, options).toString(options);\n}\n\nexports.parse = parse;\nexports.parseAllDocuments = parseAllDocuments;\nexports.parseDocument = parseDocument;\nexports.stringify = stringify;\n",
76
- "import type { SlotDef, SlotCategory } from './types.js';\n\n/** All 33 Mk4 canonical slots */\nexport const SLOTS: SlotDef[] = [\n // Project Meta (3)\n { index: 1, path: 'project.name', label: 'Name', description: 'Project name', category: 'project' },\n { index: 2, path: 'project.goal', label: 'Goal', description: 'Goal (use case)', category: 'project' },\n { index: 3, path: 'project.main_language', label: 'Language', description: 'Primary language', category: 'project' },\n\n // Human Context (6)\n { index: 4, path: 'human_context.who', label: 'Who', description: 'Who is this for?', category: 'human' },\n { index: 5, path: 'human_context.what', label: 'What', description: 'What are they building', category: 'human' },\n { index: 6, path: 'human_context.why', label: 'Why', description: 'Why does it exist', category: 'human' },\n { index: 7, path: 'human_context.where', label: 'Where', description: 'Where does it run', category: 'human' },\n { index: 8, path: 'human_context.when', label: 'When', description: 'When was it started / timeline', category: 'human' },\n { index: 9, path: 'human_context.how', label: 'How', description: 'How is it built', category: 'human' },\n\n // Frontend Stack (4)\n { index: 10, path: 'stack.frontend', canonical: 'stack.framework', label: 'Framework', description: 'Framework (React, Svelte, etc.)', category: 'frontend' },\n { index: 11, path: 'stack.css_framework', canonical: 'stack.css', label: 'CSS', description: 'CSS framework', category: 'frontend' },\n { index: 12, path: 'stack.ui_library', label: 'UI Library', description: 'UI component library', category: 'frontend' },\n { index: 13, path: 'stack.state_management', canonical: 'stack.state', label: 'State', description: 'State management', category: 'frontend' },\n\n // Backend Stack (5)\n { index: 14, path: 'stack.backend', label: 'Backend', description: 'Backend framework', category: 'backend' },\n { index: 15, path: 'stack.api_type', canonical: 'stack.api', label: 'API', description: 'API style (REST, GraphQL, etc.)', category: 'backend' },\n { index: 16, path: 'stack.runtime', label: 'Runtime', description: 'Runtime (Node, Bun, Python, etc.)', category: 'backend' },\n { index: 17, path: 'stack.database', canonical: 'stack.db', label: 'Database', description: 'Database', category: 'backend' },\n { index: 18, path: 'stack.connection', label: 'Connection', description: 'Connection method (Prisma, etc.)', category: 'backend' },\n\n // Universal Stack (3)\n { index: 19, path: 'stack.hosting', label: 'Hosting', description: 'Hosting platform', category: 'universal' },\n { index: 20, path: 'stack.build', label: 'Build', description: 'Build tool', category: 'universal' },\n { index: 21, path: 'stack.cicd', label: 'CI/CD', description: 'CI/CD', category: 'universal' },\n\n // Enterprise Infra (5)\n { index: 22, path: 'stack.monorepo_tool', label: 'Monorepo', description: 'Monorepo tool', category: 'enterprise_infra' },\n { index: 23, path: 'stack.package_manager', canonical: 'stack.pkg_manager', label: 'Package Manager', description: 'Package manager', category: 'enterprise_infra' },\n { index: 24, path: 'stack.workspaces', label: 'Workspaces', description: 'Workspace configuration', category: 'enterprise_infra' },\n { index: 25, path: 'monorepo.packages_count', label: 'Packages', description: 'Number of packages', category: 'enterprise_infra' },\n { index: 26, path: 'monorepo.build_orchestrator', label: 'Build Orchestrator', description: 'Build orchestration tool', category: 'enterprise_infra' },\n\n // Enterprise App (4)\n { index: 27, path: 'stack.admin', label: 'Admin', description: 'Admin panel', category: 'enterprise_app' },\n { index: 28, path: 'stack.cache', label: 'Cache', description: 'Caching layer', category: 'enterprise_app' },\n { index: 29, path: 'stack.search', label: 'Search', description: 'Search engine', category: 'enterprise_app' },\n { index: 30, path: 'stack.storage', label: 'Storage', description: 'Object storage', category: 'enterprise_app' },\n\n // Enterprise Ops (3)\n { index: 31, path: 'monorepo.versioning_strategy', label: 'Versioning', description: 'Version strategy', category: 'enterprise_ops' },\n { index: 32, path: 'monorepo.shared_configs', label: 'Shared Configs', description: 'Shared configs', category: 'enterprise_ops' },\n { index: 33, path: 'monorepo.remote_cache', label: 'Remote Cache', description: 'Remote build cache', category: 'enterprise_ops' },\n];\n\n/** Slot lookup by path — dual-keyed (current on-wire `path` AND Mk4 `canonical`\n * where defined) so callers can look up by either name. See issue #66. */\nexport const SLOT_BY_PATH = new Map<string, SlotDef>(\n SLOTS.flatMap(s => s.canonical ? [[s.path, s], [s.canonical, s]] : [[s.path, s]])\n);\n\n/** Mk4 canonical → current on-wire path. Used by read helpers to resolve\n * a canonical name back to the path that read/write/kernel actually uses\n * today. Empty for slots whose path is already canonical. */\nexport const CANONICAL_TO_CURRENT: ReadonlyMap<string, string> = new Map(\n SLOTS.filter(s => s.canonical).map(s => [s.canonical as string, s.path])\n);\n\n/** Current on-wire path → Mk4 canonical. Used by display helpers when the\n * UI wants to surface the forward-spec name. */\nexport const CURRENT_TO_CANONICAL: ReadonlyMap<string, string> = new Map(\n SLOTS.filter(s => s.canonical).map(s => [s.path, s.canonical as string])\n);\n\n/** Resolve any path (legacy or canonical) to the slot definition. */\nexport function getSlotByAnyPath(path: string): SlotDef | undefined {\n return SLOT_BY_PATH.get(path);\n}\n\n/** Read a value from a .faf data object, checking both the slot's current\n * `path` and its Mk4 `canonical` (if defined). Returns the first non-undefined\n * value. Lets the cli read .faf files that contain either legacy or canonical\n * keys without forcing a migration. */\nexport function readSlotValue(\n data: Record<string, unknown>,\n slot: SlotDef\n): unknown {\n const tryPath = (p: string): unknown => {\n const parts = p.split('.');\n let cur: unknown = data;\n for (const part of parts) {\n if (cur && typeof cur === 'object' && part in (cur as Record<string, unknown>)) {\n cur = (cur as Record<string, unknown>)[part];\n } else {\n return undefined;\n }\n }\n return cur;\n };\n const primary = tryPath(slot.path);\n if (primary !== undefined) {return primary;}\n if (slot.canonical) {return tryPath(slot.canonical);}\n return undefined;\n}\n\n/** Slots grouped by category */\nexport function slotsByCategory(category: SlotCategory): SlotDef[] {\n return SLOTS.filter(s => s.category === category);\n}\n\n/** Base-tier slots (1-21) — used by score_faf */\nexport const BASE_SLOTS = SLOTS.filter(s => s.index <= 21);\n\n/** Enterprise-tier slots (1-33) — used by score_faf_enterprise */\nexport const ENTERPRISE_SLOTS = SLOTS;\n\n/** Placeholder values treated as Empty */\nexport const PLACEHOLDERS = new Set([\n 'describe your project goal',\n 'development teams',\n 'cloud platform',\n 'null',\n 'none',\n 'unknown',\n 'n/a',\n 'not applicable',\n]);\n\n/** `None`, `N/A`, `not applicable` (any case):\n * a typed none — counts as an empty slot. It scores 0 until filled; faf auto\n * fills a tech slot from a repo fact and otherwise keeps the words as typed.\n * Only in a tech slot the app-type leaves out does faf auto write\n * `slotignored` over them — the app-type's decision, never the words'. */\nexport const EXPLICIT_NONE: ReadonlySet<string> = new Set(['none', 'n/a', 'not applicable']);\n\n/** The value that marks a slot as not required and not scored (the What-Not).\n * It comes only from the app-type; a typed word never means it. */\nexport const SLOTIGNORED = 'slotignored';\n\n/** True for a typed none — counts as an empty slot: `None`, `N/A`,\n * `not applicable`, `none` (any case, any padding). */\nexport function isExplicitNone(value: unknown): boolean {\n return typeof value === 'string' && EXPLICIT_NONE.has(value.trim().toLowerCase());\n}\n\n/** True for words typed into a slot that do not fill it: a typed none\n * (`None`, `N/A`, `not applicable`) or any other placeholder word\n * (`unknown`, `null` written as a string, …), any case, any padding. Like a\n * typed none, they count as an empty slot, and faf keeps them as typed until\n * a repo fact fills a tech slot (or, in a tech slot the app-type leaves out,\n * `faf auto` marks it `slotignored`). An empty value (`''`, YAML null) is\n * not typed words. */\nexport function isTypedWords(value: unknown): boolean {\n return typeof value === 'string' && value.trim() !== '' && isPlaceholder(value);\n}\n\n/** Check if a value is a placeholder (empty) */\nexport function isPlaceholder(value: unknown): boolean {\n if (value === null || value === undefined || value === '') {return true;}\n if (typeof value === 'string') {\n return PLACEHOLDERS.has(value.toLowerCase().trim());\n }\n if (Array.isArray(value) && value.length === 0) {return true;}\n if (typeof value === 'object' && Object.keys(value as object).length === 0) {return true;}\n return false;\n}\n\n/** The `# found:` note of a type detection chose with no classifying signal\n * (its `library` fallback). A type carrying it is faf's fallback, not a fact\n * about the repo: `faf auto` writes no `slotignored` over typed words on it,\n * and `faf score` promises none. */\nexport const NO_CLASSIFYING_SIGNALS = 'no classifying signals — fallback';\n\n/** The slots a `framework` repo leaves out although their categories are\n * active: framework source code has no CSS framework, UI library, database,\n * connection or hosting of its own. */\nconst FRAMEWORK_LEAVES_OUT: ReadonlySet<string> = new Set([\n 'stack.css_framework', 'stack.ui_library', 'stack.database', 'stack.connection', 'stack.hosting',\n]);\n\n/** Whether the app-type `type` uses `slot` — the one rule for which slots\n * count: the type's active categories, less the slots a `framework` repo\n * leaves out. `null` when `type` is not an app-type faf knows (then faf\n * cannot tell, and decides nothing from it). */\nexport function appTypeUsesSlot(type: unknown, slot: SlotDef): boolean | null {\n if (typeof type !== 'string' || !Object.prototype.hasOwnProperty.call(APP_TYPE_CATEGORIES, type)) {return null;}\n if (!APP_TYPE_CATEGORIES[type].includes(slot.category)) {return false;}\n return !(type === 'framework' && FRAMEWORK_LEAVES_OUT.has(slot.path));\n}\n\n/** App-type to active category mapping. The canonical 24-type ladder —\n * detectable apps + `encyclopedia` (curated knowledge) + `intent` (seed).\n * About is NOT an app_type — it is a repo role (`about.represents`).\n * (See v6.6.md doctrine memory + fafipedia-vs-grokipedia-architecture.)\n * Sorted ascending by active slot count for readability.\n *\n * v6.5.0 changes vs prior:\n * - Added `universal` to cli / library / mcp / frontend / data-science.\n * These types ship/build/CI somewhere — slotignoring those slots was\n * losing real signal. (cli/library: 9→12; mcp/data-science: 14→17;\n * frontend: 13→16.)\n * - Order is by ascending slot count, not insertion order.\n */\nexport const APP_TYPE_CATEGORIES: Record<string, SlotCategory[]> = {\n // 9 slots — minimal (project meta + human only)\n documentation: ['project', 'human'],\n // intent: the human-intent SEED type, produced by builder.faf.one — a human\n // captures name/goal + the 6 Ws (no stack yet). Same 9 active slots as\n // documentation, but named honestly: it is intent awaiting a stack. An AI that\n // fills the stack re-types it to the real app_type (cli/mcp/frontend/…). Reads\n // honestly even if abandoned (\"intent captured, never built\").\n intent: ['project', 'human'],\n // encyclopedia: same shape as documentation — content repo with project\n // metadata + human context. Used by FAFipedia and similar curated-knowledge\n // surfaces. Per fafipedia-vs-grokipedia-architecture doctrine, this is the\n // structured, git-versioned, agent-consumable knowledge layer. Each .fafi\n // file under an encyclopedia repo is itself a valid .faf (inclusion marker).\n encyclopedia: ['project', 'human'],\n\n // 12 slots — project + human + universal (build/ci/hosting matters)\n cli: ['project', 'human', 'universal'],\n library: ['project', 'human', 'universal'],\n sdk: ['project', 'human', 'universal'],\n wasm: ['project', 'human', 'universal'],\n html: ['project', 'human', 'universal'],\n // server-card: a published MCP Server Card (discovery manifest) — artifact-class\n // like sdk/wasm/html. Identity + human context + build/ship matter; frontend,\n // backend and DB are slotignored. By design it carries the FAF context-block in the\n // card's `_meta[\"one.faf/context\"]` by default — so anyone generating a Server\n // Card through FAF gets FAF context for free. See faf-server-card-ref.\n 'server-card': ['project', 'human', 'universal'],\n\n // 16 slots — project + frontend + human + universal\n frontend: ['project', 'frontend', 'human', 'universal'],\n website: ['project', 'frontend', 'human', 'universal'],\n mobile: ['project', 'frontend', 'human', 'universal'],\n // Swift / Apple client apps (iOS/macOS/…) — same ladder as mobile; name is\n // `app` so SPM libraries/servers/CLIs are not forced into \"mobile\".\n app: ['project', 'frontend', 'human', 'universal'],\n // browser/chrome extension — popup/content-script UI + build/CI/store\n // (manifest_version), NO backend. Detected via manifest_version in scanner.ts.\n extension: ['project', 'frontend', 'human', 'universal'],\n\n // 17 slots — project + backend + universal + human\n mcp: ['project', 'backend', 'human', 'universal'],\n backend: ['project', 'backend', 'universal', 'human'],\n 'data-science': ['project', 'backend', 'human', 'universal'],\n\n // 21 slots — full base ladder\n fullstack: ['project', 'frontend', 'backend', 'universal', 'human'],\n svelte: ['project', 'frontend', 'backend', 'universal', 'human'],\n framework: ['project', 'frontend', 'backend', 'universal', 'human'],\n 'monorepo-root': ['project', 'human', 'enterprise_infra', 'enterprise_app', 'enterprise_ops'],\n\n // 24-25 slots — platform / SaaS shapes (base + selected enterprise)\n mcpaas: ['project', 'backend', 'universal', 'human', 'enterprise_app', 'enterprise_ops'],\n saas: ['project', 'frontend', 'backend', 'universal', 'human', 'enterprise_app'],\n\n // 33 slots — full enterprise\n enterprise: ['project', 'frontend', 'backend', 'universal', 'human', 'enterprise_infra', 'enterprise_app', 'enterprise_ops'],\n};\n",
76
+ "import type { SlotDef, SlotCategory } from './types.js';\n\n/** All 33 Mk4 canonical slots */\nexport const SLOTS: SlotDef[] = [\n // Project Meta (3)\n { index: 1, path: 'project.name', label: 'Name', description: 'Project name', category: 'project' },\n { index: 2, path: 'project.goal', label: 'Goal', description: 'Goal (use case)', category: 'project' },\n { index: 3, path: 'project.main_language', label: 'Language', description: 'Primary language', category: 'project' },\n\n // Human Context (6)\n { index: 4, path: 'human_context.who', label: 'Who', description: 'Who is this for?', category: 'human' },\n { index: 5, path: 'human_context.what', label: 'What', description: 'What are they building', category: 'human' },\n { index: 6, path: 'human_context.why', label: 'Why', description: 'Why does it exist', category: 'human' },\n { index: 7, path: 'human_context.where', label: 'Where', description: 'Where does it run', category: 'human' },\n { index: 8, path: 'human_context.when', label: 'When', description: 'When was it started / timeline', category: 'human' },\n { index: 9, path: 'human_context.how', label: 'How', description: 'How is it built', category: 'human' },\n\n // Frontend Stack (4)\n { index: 10, path: 'stack.frontend', canonical: 'stack.framework', label: 'Framework', description: 'Framework (React, Svelte, etc.)', category: 'frontend' },\n { index: 11, path: 'stack.css_framework', canonical: 'stack.css', label: 'CSS', description: 'CSS framework', category: 'frontend' },\n { index: 12, path: 'stack.ui_library', label: 'UI Library', description: 'UI component library', category: 'frontend' },\n { index: 13, path: 'stack.state_management', canonical: 'stack.state', label: 'State', description: 'State management', category: 'frontend' },\n\n // Backend Stack (5)\n { index: 14, path: 'stack.backend', label: 'Backend', description: 'Backend framework', category: 'backend' },\n { index: 15, path: 'stack.api_type', canonical: 'stack.api', label: 'API', description: 'API style (REST, GraphQL, etc.)', category: 'backend' },\n { index: 16, path: 'stack.runtime', label: 'Runtime', description: 'Runtime (Node, Bun, Python, etc.)', category: 'backend' },\n { index: 17, path: 'stack.database', canonical: 'stack.db', label: 'Database', description: 'Database', category: 'backend' },\n { index: 18, path: 'stack.connection', label: 'Connection', description: 'Connection method (Prisma, etc.)', category: 'backend' },\n\n // Universal Stack (3)\n { index: 19, path: 'stack.hosting', label: 'Hosting', description: 'Hosting platform', category: 'universal' },\n { index: 20, path: 'stack.build', label: 'Build', description: 'Build tool', category: 'universal' },\n { index: 21, path: 'stack.cicd', label: 'CI/CD', description: 'CI/CD', category: 'universal' },\n\n // Enterprise Infra (5)\n { index: 22, path: 'stack.monorepo_tool', label: 'Monorepo', description: 'Monorepo tool', category: 'enterprise_infra' },\n { index: 23, path: 'stack.package_manager', canonical: 'stack.pkg_manager', label: 'Package Manager', description: 'Package manager', category: 'enterprise_infra' },\n { index: 24, path: 'stack.workspaces', label: 'Workspaces', description: 'Workspace configuration', category: 'enterprise_infra' },\n { index: 25, path: 'monorepo.packages_count', label: 'Packages', description: 'Number of packages', category: 'enterprise_infra' },\n { index: 26, path: 'monorepo.build_orchestrator', label: 'Build Orchestrator', description: 'Build orchestration tool', category: 'enterprise_infra' },\n\n // Enterprise App (4)\n { index: 27, path: 'stack.admin', label: 'Admin', description: 'Admin panel', category: 'enterprise_app' },\n { index: 28, path: 'stack.cache', label: 'Cache', description: 'Caching layer', category: 'enterprise_app' },\n { index: 29, path: 'stack.search', label: 'Search', description: 'Search engine', category: 'enterprise_app' },\n { index: 30, path: 'stack.storage', label: 'Storage', description: 'Object storage', category: 'enterprise_app' },\n\n // Enterprise Ops (3)\n { index: 31, path: 'monorepo.versioning_strategy', label: 'Versioning', description: 'Version strategy', category: 'enterprise_ops' },\n { index: 32, path: 'monorepo.shared_configs', label: 'Shared Configs', description: 'Shared configs', category: 'enterprise_ops' },\n { index: 33, path: 'monorepo.remote_cache', label: 'Remote Cache', description: 'Remote build cache', category: 'enterprise_ops' },\n];\n\n/** Slot lookup by path — dual-keyed (current on-wire `path` AND Mk4 `canonical`\n * where defined) so callers can look up by either name. See issue #66. */\nexport const SLOT_BY_PATH = new Map<string, SlotDef>(\n SLOTS.flatMap(s => s.canonical ? [[s.path, s], [s.canonical, s]] : [[s.path, s]])\n);\n\n/** Mk4 canonical → current on-wire path. Used by read helpers to resolve\n * a canonical name back to the path that read/write/kernel actually uses\n * today. Empty for slots whose path is already canonical. */\nexport const CANONICAL_TO_CURRENT: ReadonlyMap<string, string> = new Map(\n SLOTS.filter(s => s.canonical).map(s => [s.canonical as string, s.path])\n);\n\n/** Current on-wire path → Mk4 canonical. Used by display helpers when the\n * UI wants to surface the forward-spec name. */\nexport const CURRENT_TO_CANONICAL: ReadonlyMap<string, string> = new Map(\n SLOTS.filter(s => s.canonical).map(s => [s.path, s.canonical as string])\n);\n\n/** Resolve any path (legacy or canonical) to the slot definition. */\nexport function getSlotByAnyPath(path: string): SlotDef | undefined {\n return SLOT_BY_PATH.get(path);\n}\n\n/** Read a value from a .faf data object, checking both the slot's current\n * `path` and its Mk4 `canonical` (if defined). Returns the first non-undefined\n * value. Lets the cli read .faf files that contain either legacy or canonical\n * keys without forcing a migration. */\nexport function readSlotValue(\n data: Record<string, unknown>,\n slot: SlotDef\n): unknown {\n const tryPath = (p: string): unknown => {\n const parts = p.split('.');\n let cur: unknown = data;\n for (const part of parts) {\n if (cur && typeof cur === 'object' && part in (cur as Record<string, unknown>)) {\n cur = (cur as Record<string, unknown>)[part];\n } else {\n return undefined;\n }\n }\n return cur;\n };\n const primary = tryPath(slot.path);\n if (primary !== undefined) {return primary;}\n if (slot.canonical) {return tryPath(slot.canonical);}\n return undefined;\n}\n\n/** Slots grouped by category */\nexport function slotsByCategory(category: SlotCategory): SlotDef[] {\n return SLOTS.filter(s => s.category === category);\n}\n\n/** Base-tier slots (1-21) — the slots faf-cli fills; the other 12 are `slotignored` */\nexport const BASE_SLOTS = SLOTS.filter(s => s.index <= 21);\n\n/** Enterprise-tier slots (1-33) — used by score_faf_enterprise */\nexport const ENTERPRISE_SLOTS = SLOTS;\n\n/** Placeholder values treated as Empty */\nexport const PLACEHOLDERS = new Set([\n 'describe your project goal',\n 'development teams',\n 'cloud platform',\n 'null',\n 'none',\n 'unknown',\n 'tbd',\n 'todo',\n 'n/a',\n 'not applicable',\n]);\n\n/** `None`, `N/A`, `not applicable` (any case):\n * a typed none — counts as an empty slot. It scores 0 until filled; faf auto\n * fills a tech slot from a repo fact and otherwise keeps the words as typed.\n * Only in a tech slot the app-type leaves out does faf auto write\n * `slotignored` over them — the app-type's decision, never the words'. */\nexport const EXPLICIT_NONE: ReadonlySet<string> = new Set(['none', 'n/a', 'not applicable']);\n\n/** The value that marks a slot as not required and not scored (the What-Not).\n * It comes only from the app-type; a typed word never means it. */\nexport const SLOTIGNORED = 'slotignored';\n\n/** True for a typed none — counts as an empty slot: `None`, `N/A`,\n * `not applicable`, `none` (any case, any padding). */\nexport function isExplicitNone(value: unknown): boolean {\n return typeof value === 'string' && EXPLICIT_NONE.has(value.trim().toLowerCase());\n}\n\n/** True for words typed into a slot that do not fill it: a typed none\n * (`None`, `N/A`, `not applicable`) or any other placeholder word\n * (`unknown`, `null` written as a string, …), any case, any padding. Like a\n * typed none, they count as an empty slot, and faf keeps them as typed until\n * a repo fact fills a tech slot (or, in a tech slot the app-type leaves out,\n * `faf auto` marks it `slotignored`). An empty value (`''`, YAML null) is\n * not typed words. */\nexport function isTypedWords(value: unknown): boolean {\n return typeof value === 'string' && value.trim() !== '' && isPlaceholder(value);\n}\n\n/** Check if a value is a placeholder (empty) */\nexport function isPlaceholder(value: unknown): boolean {\n if (value === null || value === undefined || value === '') {return true;}\n if (typeof value === 'string') {\n return PLACEHOLDERS.has(value.toLowerCase().trim());\n }\n if (Array.isArray(value) && value.length === 0) {return true;}\n if (typeof value === 'object' && Object.keys(value as object).length === 0) {return true;}\n return false;\n}\n\n/** The `# found:` note of a type detection chose with no classifying signal\n * (its `library` fallback). A type carrying it is faf's fallback, not a fact\n * about the repo: `faf auto` writes no `slotignored` over typed words on it,\n * and `faf score` promises none. */\nexport const NO_CLASSIFYING_SIGNALS = 'no classifying signals — fallback';\n\n/** The slots a `framework` repo leaves out although their categories are\n * active: framework source code has no CSS framework, UI library, database,\n * connection or hosting of its own. */\nconst FRAMEWORK_LEAVES_OUT: ReadonlySet<string> = new Set([\n 'stack.css_framework', 'stack.ui_library', 'stack.database', 'stack.connection', 'stack.hosting',\n]);\n\n/** Whether the app-type `type` uses `slot` — the one rule for which slots\n * count: the type's active categories, less the slots a `framework` repo\n * leaves out. `null` when `type` is not an app-type faf knows (then faf\n * cannot tell, and decides nothing from it). */\nexport function appTypeUsesSlot(type: unknown, slot: SlotDef): boolean | null {\n if (typeof type !== 'string' || !Object.prototype.hasOwnProperty.call(APP_TYPE_CATEGORIES, type)) {return null;}\n if (!APP_TYPE_CATEGORIES[type].includes(slot.category)) {return false;}\n return !(type === 'framework' && FRAMEWORK_LEAVES_OUT.has(slot.path));\n}\n\n/** App-type to active category mapping. The canonical 24-type ladder —\n * detectable apps + `encyclopedia` (curated knowledge) + `intent` (seed).\n * About is NOT an app_type — it is a repo role (`about.represents`).\n * (See v6.6.md doctrine memory + fafipedia-vs-grokipedia-architecture.)\n * Sorted ascending by active slot count for readability.\n *\n * v6.5.0 changes vs prior:\n * - Added `universal` to cli / library / mcp / frontend / data-science.\n * These types ship/build/CI somewhere — slotignoring those slots was\n * losing real signal. (cli/library: 9→12; mcp/data-science: 14→17;\n * frontend: 13→16.)\n * - Order is by ascending slot count, not insertion order.\n */\nexport const APP_TYPE_CATEGORIES: Record<string, SlotCategory[]> = {\n // 9 slots — minimal (project meta + human only)\n documentation: ['project', 'human'],\n // intent: the human-intent SEED type, produced by builder.faf.one — a human\n // captures name/goal + the 6 Ws (no stack yet). Same 9 active slots as\n // documentation, but named honestly: it is intent awaiting a stack. An AI that\n // fills the stack re-types it to the real app_type (cli/mcp/frontend/…). Reads\n // honestly even if abandoned (\"intent captured, never built\").\n intent: ['project', 'human'],\n // encyclopedia: same shape as documentation — content repo with project\n // metadata + human context. Used by FAFipedia and similar curated-knowledge\n // surfaces. Per fafipedia-vs-grokipedia-architecture doctrine, this is the\n // structured, git-versioned, agent-consumable knowledge layer. Each .fafi\n // file under an encyclopedia repo is itself a valid .faf (inclusion marker).\n encyclopedia: ['project', 'human'],\n\n // 12 slots — project + human + universal (build/ci/hosting matters)\n cli: ['project', 'human', 'universal'],\n library: ['project', 'human', 'universal'],\n sdk: ['project', 'human', 'universal'],\n wasm: ['project', 'human', 'universal'],\n html: ['project', 'human', 'universal'],\n // server-card: a published MCP Server Card (discovery manifest) — artifact-class\n // like sdk/wasm/html. Identity + human context + build/ship matter; frontend,\n // backend and DB are slotignored. By design it carries the FAF context-block in the\n // card's `_meta[\"one.faf/context\"]` by default — so anyone generating a Server\n // Card through FAF gets FAF context for free. See faf-server-card-ref.\n 'server-card': ['project', 'human', 'universal'],\n\n // 16 slots — project + frontend + human + universal\n frontend: ['project', 'frontend', 'human', 'universal'],\n website: ['project', 'frontend', 'human', 'universal'],\n mobile: ['project', 'frontend', 'human', 'universal'],\n // Swift / Apple client apps (iOS/macOS/…) — same ladder as mobile; name is\n // `app` so SPM libraries/servers/CLIs are not forced into \"mobile\".\n app: ['project', 'frontend', 'human', 'universal'],\n // browser/chrome extension — popup/content-script UI + build/CI/store\n // (manifest_version), NO backend. Detected via manifest_version in scanner.ts.\n extension: ['project', 'frontend', 'human', 'universal'],\n\n // 17 slots — project + backend + universal + human\n mcp: ['project', 'backend', 'human', 'universal'],\n backend: ['project', 'backend', 'universal', 'human'],\n 'data-science': ['project', 'backend', 'human', 'universal'],\n\n // 21 slots — full base ladder\n fullstack: ['project', 'frontend', 'backend', 'universal', 'human'],\n svelte: ['project', 'frontend', 'backend', 'universal', 'human'],\n framework: ['project', 'frontend', 'backend', 'universal', 'human'],\n 'monorepo-root': ['project', 'human', 'enterprise_infra', 'enterprise_app', 'enterprise_ops'],\n\n // 24-25 slots — platform / SaaS shapes (base + selected enterprise)\n mcpaas: ['project', 'backend', 'universal', 'human', 'enterprise_app', 'enterprise_ops'],\n saas: ['project', 'frontend', 'backend', 'universal', 'human', 'enterprise_app'],\n\n // 33 slots — full enterprise\n enterprise: ['project', 'frontend', 'backend', 'universal', 'human', 'enterprise_infra', 'enterprise_app', 'enterprise_ops'],\n};\n",
77
77
  "// ANSI color helpers — zero deps\n// Design: black/white text by default. Cyan + orange are the only brand colors.\nconst esc = (code: string) => (s: string) => `\\x1b[${code}m${s}\\x1b[0m`;\n\nexport const bold = esc('1');\nexport const dim = esc('2');\nexport const italic = esc('3');\n\n// Brand colors only — no red/green/yellow rainbow.\n// FAF_HEX is the single source of record for brand hex — ANSI fns below\n// AND HTML renders (project.html) derive from it. Change here, propagates.\nexport const FAF_HEX = {\n cyan: '#00D4D4', // Silver tier · interaction\n cyanDeep: '#0E8C8C', // Bronze tier — same cyan lane, one rung down\n orange: '#FF6B35', // Trophy/Gold · CTAs\n} as const;\n\nexport const fafCyan = (s: string) => `\\x1b[38;2;0;212;212m${s}\\x1b[0m`; // #00D4D4\nexport const fafCyanDeep = (s: string) => `\\x1b[38;2;14;140;140m${s}\\x1b[0m`; // #0E8C8C\nexport const orange = (s: string) => `\\x1b[38;5;208m${s}\\x1b[0m`;\n",
78
78
  "import type { TierInfo } from './types.js';\nimport { bold, dim, fafCyan, fafCyanDeep, orange } from '../ui/colors.js';\n\n/** Tier boundaries — ordered from highest to lowest\n *\n * Indicators (work surfaces — CLI · code · docs · receipts):\n * ✪ Proof Seal (Trophy 100% — work glyph; social still uses 🏆; brand uses Trophy Mark PNG)\n * ★ filled star (gold — orange)\n * ◆ filled diamond (silver — cyan)\n * ◇ open diamond (bronze — deep cyan, one rung below silver)\n * ● filled circle (mid tiers)\n * ○ open circle (low — dim)\n * ♡ heart (empty — good luck)\n *\n * All three 100% glyphs mean the same score: ✪ work · 🏆 social · Trophy Mark (PNG) visual.\n */\nexport const TIERS: TierInfo[] = [\n { name: 'TROPHY', indicator: `${orange('✪')} ${orange('TROPHY')}`, threshold: 100 },\n { name: 'GOLD', indicator: `${orange(bold('★'))} ${orange('GOLD')}`, threshold: 99 },\n { name: 'SILVER', indicator: `${fafCyan('◆')} ${fafCyan('SILVER')}`, threshold: 95 },\n { name: 'BRONZE', indicator: `${fafCyanDeep('◇')} ${fafCyanDeep('BRONZE')}`, threshold: 85 },\n { name: 'GREEN', indicator: `${bold('●')} GREEN`, threshold: 70 },\n { name: 'YELLOW', indicator: `${dim('●')} YELLOW`, threshold: 55 },\n { name: 'RED', indicator: `${dim('○')} RED`, threshold: 1 },\n { name: 'WHITE', indicator: `${dim('♡')}`, threshold: 0 },\n];\n\n/** Get the display badge for a tier */\nexport function tierBadge(tier: TierInfo): string {\n return tier.indicator;\n}\n\n/** Get tier info for a given score */\nexport function getTier(score: number): TierInfo {\n for (const tier of TIERS) {\n if (score >= tier.threshold) {return tier;}\n }\n return TIERS[TIERS.length - 1]; // White\n}\n\n/** Get the next tier above the current score (for progress display) */\nexport function getNextTier(score: number): TierInfo | null {\n const current = getTier(score);\n const idx = TIERS.indexOf(current);\n return idx > 0 ? TIERS[idx - 1] : null;\n}\n",
79
- "import type { KernelScoreResult, FafbInfo, SlotState } from '../core/types.js';\nimport { CANONICAL_TO_CURRENT } from '../core/slots.js';\n\n// faf-scoring-kernel is CommonJS with synchronous WASM loading\n \nlet kernel: typeof import('faf-scoring-kernel') | null = null;\n\nfunction getKernel(): typeof import('faf-scoring-kernel') {\n if (kernel) {return kernel;}\n try {\n const loaded = require('faf-scoring-kernel') as typeof import('faf-scoring-kernel');\n kernel = loaded;\n return loaded;\n } catch {\n throw new Error(\n 'faf-scoring-kernel not installed.\\n\\n Run: npm install faf-scoring-kernel\\n'\n );\n }\n}\n\n/** The text the kernel scores: a leading UTF-8 BOM (U+FEFF) left out. The\n * kernel reads a BOM before a file's second top-level key as a second YAML\n * document and throws; the file itself keeps its BOM. */\nconst withoutBom = (yaml: string): string => (yaml.startsWith('\\uFEFF') ? yaml.slice(1) : yaml);\n\n/** Score a .faf YAML string (21 base slots), as the file is. A typed None /\n * N/A / not applicable at a slot is an empty slot, as in every engine. A\n * leading BOM is not scored (`faf auto` and `faf score` read a BOM file). */\n/** Kernel Mk4 names (`stack.css`) → CLI on-wire paths (`stack.css_framework`). */\nfunction remapScore(result: KernelScoreResult): KernelScoreResult {\n const slots: Record<string, SlotState> = {};\n for (const [key, state] of Object.entries(result.slots ?? {})) {\n slots[CANONICAL_TO_CURRENT.get(key) ?? key] = state;\n }\n return { ...result, slots };\n}\n\nexport function score(yaml: string): KernelScoreResult {\n return remapScore(JSON.parse(getKernel().score_faf(withoutBom(yaml))));\n}\n\n/** Score a .faf YAML string (33 enterprise slots), as the file is (a leading BOM is not scored). */\nexport function scoreEnterprise(yaml: string): KernelScoreResult {\n return remapScore(JSON.parse(getKernel().score_faf_enterprise(withoutBom(yaml))));\n}\n\n/** Validate .faf YAML (a leading BOM is left out, as in {@link score}: `faf check` reads a BOM file). */\nexport function validate(yaml: string): boolean {\n return getKernel().validate_faf(withoutBom(yaml));\n}\n\n/** Compile .faf YAML to FAFb binary (a leading BOM is not compiled, as in\n * {@link score}: `faf compile` and `faf refresh` read a BOM file). */\nexport function compile(yaml: string): Uint8Array {\n return getKernel().compile_fafb(withoutBom(yaml));\n}\n\n/** Decompile FAFb binary to JSON info */\nexport function decompile(bytes: Uint8Array): FafbInfo {\n return JSON.parse(getKernel().decompile_fafb(bytes));\n}\n\n/** Get FAFb file metadata */\nexport function fafbInfo(bytes: Uint8Array): FafbInfo {\n return JSON.parse(getKernel().fafb_info(bytes));\n}\n\n/** Score a compiled .fafb — same JSON shape as {@link score}. */\nexport function scoreFafb(bytes: Uint8Array): KernelScoreResult {\n return remapScore(JSON.parse(getKernel().score_fafb(bytes)));\n}\n\n/** Get WASM SDK version */\nexport function sdkVersion(): string {\n return getKernel().sdk_version();\n}\n",
79
+ "import type { KernelScoreResult, FafbInfo, SlotState } from '../core/types.js';\nimport { CANONICAL_TO_CURRENT } from '../core/slots.js';\n\n// faf-scoring-kernel is CommonJS with synchronous WASM loading\n \nlet kernel: typeof import('faf-scoring-kernel') | null = null;\n\nfunction getKernel(): typeof import('faf-scoring-kernel') {\n if (kernel) {return kernel;}\n try {\n const loaded = require('faf-scoring-kernel') as typeof import('faf-scoring-kernel');\n kernel = loaded;\n return loaded;\n } catch {\n throw new Error(\n 'faf-scoring-kernel not installed.\\n\\n Run: npm install faf-scoring-kernel\\n'\n );\n }\n}\n\n/** The text the kernel scores: a leading UTF-8 BOM (U+FEFF) left out. The\n * kernel reads a BOM before a file's second top-level key as a second YAML\n * document and throws; the file itself keeps its BOM. */\nconst withoutBom = (yaml: string): string => (yaml.startsWith('\\uFEFF') ? yaml.slice(1) : yaml);\n\n/** Score a .faf YAML string (always 33 slots — a 21-slot file carries the 12\n * enterprise slots as `slotignored`), as the file is. A typed None /\n * N/A / not applicable at a slot is an empty slot, as in every engine. A\n * leading BOM is not scored (`faf auto` and `faf score` read a BOM file). */\n/** Kernel Mk4 names (`stack.css`) → CLI on-wire paths (`stack.css_framework`). */\nfunction remapScore(result: KernelScoreResult): KernelScoreResult {\n const slots: Record<string, SlotState> = {};\n for (const [key, state] of Object.entries(result.slots ?? {})) {\n slots[CANONICAL_TO_CURRENT.get(key) ?? key] = state;\n }\n return { ...result, slots };\n}\n\nexport function score(yaml: string): KernelScoreResult {\n return remapScore(JSON.parse(getKernel().score_faf(withoutBom(yaml))));\n}\n\n/** Same as {@link score} (always 33) — kept for existing callers (a leading BOM is not scored). */\nexport function scoreEnterprise(yaml: string): KernelScoreResult {\n return remapScore(JSON.parse(getKernel().score_faf_enterprise(withoutBom(yaml))));\n}\n\n/** Validate .faf YAML (a leading BOM is left out, as in {@link score}: `faf check` reads a BOM file). */\nexport function validate(yaml: string): boolean {\n return getKernel().validate_faf(withoutBom(yaml));\n}\n\n/** Compile .faf YAML to FAFb binary (a leading BOM is not compiled, as in\n * {@link score}: `faf compile` and `faf refresh` read a BOM file). */\nexport function compile(yaml: string): Uint8Array {\n return getKernel().compile_fafb(withoutBom(yaml));\n}\n\n/** Decompile FAFb binary to JSON info */\nexport function decompile(bytes: Uint8Array): FafbInfo {\n return JSON.parse(getKernel().decompile_fafb(bytes));\n}\n\n/** Get FAFb file metadata */\nexport function fafbInfo(bytes: Uint8Array): FafbInfo {\n return JSON.parse(getKernel().fafb_info(bytes));\n}\n\n/** Score a compiled .fafb — same JSON shape as {@link score}. */\nexport function scoreFafb(bytes: Uint8Array): KernelScoreResult {\n return remapScore(JSON.parse(getKernel().score_fafb(bytes)));\n}\n\n/** Get WASM SDK version */\nexport function sdkVersion(): string {\n return getKernel().sdk_version();\n}\n",
80
80
  "/** About is a repo role, not an app_type.\n *\n * Signal: the `about:` block with `represents: owner/repo`.\n * Score is inherited (`about.source_score`) or unknown (−1 / —).\n */\n\nexport const REPRESENTS_RE = /^[A-Za-z0-9_.-]+\\/[A-Za-z0-9_.-]+$/;\n\nexport interface AboutDecl {\n represents: string;\n sourceScore: number; // −1 when missing or out of range\n}\n\n/** Parsed .faf object: About iff about.represents is a non-empty string. */\nexport function isAboutFaf(data: { about?: { represents?: unknown } } | null | undefined): boolean {\n const r = data?.about?.represents;\n return typeof r === 'string' && r.length > 0;\n}\n\n/**\n * Hot-path YAML detect — no parser.\n * About = an `about:` map that contains `represents:`.\n * `app_type: about` is not a type and does not trigger this.\n */\nexport function aboutFromYaml(yaml: string): AboutDecl | null {\n const block = yaml.match(/^about:\\s*\\n((?:[ \\t]+.*\\n?)*)/m);\n if (!block) {return null;}\n const body = block[1] ?? '';\n const representsMatch = body.match(/^[ \\t]+represents:\\s*(\\S+)\\s*$/m);\n if (!representsMatch) {return null;}\n const represents = representsMatch[1];\n const scoreMatch = body.match(/^[ \\t]+source_score:\\s*(\\d+)\\s*$/m);\n let sourceScore = -1;\n if (scoreMatch) {\n const n = parseInt(scoreMatch[1], 10);\n if (n >= 0 && n <= 100) {sourceScore = n;}\n }\n return { represents, sourceScore };\n}\n",
81
81
  "import type { KernelScoreResult, ScoreResult } from './types.js';\nimport { getTier, TIERS } from './tiers.js';\nimport * as kernel from '../wasm/kernel.js';\nimport { aboutFromYaml } from './about.js';\n\n/** A score as text for display: `85%`, or `unknown (—)` when the result says\n * the score is not known (`unknown: true` — an About Repo with no\n * source_score). Never `-1%`. */\nexport function scoreText(result: Pick<ScoreResult, 'score' | 'unknown'>): string {\n return result.unknown ? 'unknown (—)' : `${result.score}%`;\n}\n\n/** Convert kernel result into enriched ScoreResult */\nexport function enrichScore(kernel: KernelScoreResult): ScoreResult {\n return {\n score: kernel.score,\n tier: getTier(kernel.score),\n populated: kernel.populated,\n empty: kernel.empty,\n ignored: kernel.ignored,\n active: kernel.active,\n total: kernel.total,\n slots: kernel.slots,\n };\n}\n\n/**\n * Score a .faf YAML string with About-Repo short-circuit.\n *\n * About is a repo role, not an app_type. The signal is the `about:` block\n * (`about.represents`). The scorer reads `about.source_score` and emits\n * that directly — no slot scoring, no kernel call.\n *\n * Optional: `about.source_score: <number>` — without it the score is not\n * known: the result carries `unknown: true` (with score -1 and a White tier\n * as placeholders). Render that as \"unknown\" (—), never as \"-1/100\" or \"-1%\".\n *\n * Doctrine: memory/private-source-public-about-pattern.md.\n *\n * For apps: delegates to kernel.score() + enrichScore().\n */\nexport function scoreFafYaml(yaml: string): ScoreResult {\n const about = aboutFromYaml(yaml);\n if (about) {\n const score = about.sourceScore;\n return {\n score,\n tier: score >= 0 ? getTier(score) : TIERS[TIERS.length - 1],\n populated: 0,\n empty: 0,\n ignored: 0,\n active: 0,\n total: 0,\n slots: {},\n inherited: true,\n represents: about.represents,\n ...(score < 0 ? { unknown: true } : {}),\n };\n }\n\n return enrichScore(kernel.score(yaml));\n}\n",
82
82
  "import type { FafData } from './types.js';\nimport { REPRESENTS_RE, isAboutFaf } from './about.js';\n\n/** Validate a parsed .faf object */\nexport function validateFaf(data: unknown): { valid: boolean; errors: string[] } {\n const errors: string[] = [];\n\n if (!data || typeof data !== 'object') {\n errors.push('File is not a valid YAML mapping');\n return { valid: false, errors };\n }\n\n const faf = data as FafData;\n\n if (!faf.faf_version) {\n errors.push('Missing required field: faf_version');\n }\n\n if (!faf.project?.name) {\n errors.push('Missing required field: project.name');\n }\n\n // about is a repo role, not an app_type.\n if (faf.app_type === 'about') {\n errors.push(\"about is not an app_type — declare about.represents (owner/repo) instead\");\n }\n\n // About Repo: the about: block is the signal. represents is required.\n if (faf.about !== undefined) {\n if (!isAboutFaf(faf) || typeof faf.about.represents !== 'string') {\n errors.push('about.represents is required (owner/repo of the source codebase)');\n } else if (!REPRESENTS_RE.test(faf.about.represents)) {\n errors.push(`about.represents must be \"owner/repo\" format (got: ${faf.about.represents})`);\n }\n if (faf.about.source_score !== undefined) {\n const s = faf.about.source_score;\n if (typeof s !== 'number' || s < 0 || s > 100) {\n errors.push(`about.source_score must be a number 0-100 (got: ${s})`);\n }\n }\n }\n\n return { valid: errors.length === 0, errors };\n}\n",
@@ -123,19 +123,20 @@
123
123
  "/**\n * Words typed into a slot — a typed None / N/A / not applicable, or any other\n * placeholder word (`unknown`, `\"null\"`) — are an empty slot: they score 0\n * until filled. The app-type alone decides which slots count, and\n * `slotignored` comes only from the app-type — typed words never take a slot\n * out. So `faf score` and `faf auto` say, one line per slot, where typed\n * words still sit, and never show a slot the app-type needs as slotignored.\n */\nimport { isScalar, parseDocument } from 'yaml';\nimport { APP_TYPE_CATEGORIES, NO_CLASSIFYING_SIGNALS, SLOTS, appTypeUsesSlot, isTypedWords } from './slots.js';\nimport { isMapping } from './shape.js';\nimport type { ScoreResult } from './types.js';\n\n/** `section.field` of a parsed .faf (every slot path has two parts). */\nfunction valueAt(data: Record<string, unknown>, path: string): unknown {\n const [section, field] = path.split('.');\n const s = data[section];\n return isMapping(s) ? s[field] : undefined;\n}\n\n/** True when the .faf text's `project.type` line carries faf's\n * `# found: no classifying signals — fallback` note: the type is the\n * `library` detection fell back to, not a fact, and decides no slot. */\nexport function typeIsFallback(text: string): boolean {\n try {\n const node = parseDocument(text, { logLevel: 'error' }).getIn(['project', 'type'], true);\n return isScalar(node) && typeof node.comment === 'string' && node.comment.includes(NO_CLASSIFYING_SIGNALS);\n } catch {\n return false;\n }\n}\n\n/** The line for one slot that holds typed words, by whether the app-type\n * uses it (null: the type decides nothing — read as a library, the second\n * kind of line never given), or null for no line. */\nfunction hintFor(path: string, words: string, uses: boolean | null, inLibrary: boolean, outOfType: boolean): string | null {\n if (uses === true || (uses === null && inLibrary)) {\n return `${path} says '${words}' — this app-type needs it, so it counts as empty until filled.`;\n }\n if (uses === false && outOfType) {\n return `${path} says '${words}' — this app-type doesn't use it; faf auto marks it slotignored.`;\n }\n return null;\n}\n\n/** The .faf text as a mapping, or null when it does not parse to one (no\n * warnings printed). */\nfunction mappingOf(yaml: string): Record<string, unknown> | null {\n try {\n const doc = parseDocument(yaml, { logLevel: 'error' });\n if (doc.errors.length > 0) {return null;}\n const data: unknown = doc.toJS();\n return isMapping(data) ? data : null;\n } catch {\n return null;\n }\n}\n\n/** Which hint lines {@link typedNoneHints} gives. */\nexport interface TypedNoneHintOptions {\n /** Also give the line for a slot the app-type leaves out (default true).\n * `faf auto` passes false: by then it has marked those slots. */\n outOfType?: boolean;\n}\n\n/**\n * One line for each slot that `result` scores as empty and that holds typed\n * words, by the file's app-type (`project.type`):\n * - a slot the app-type needs:\n * `<slot> says '<words>' — this app-type needs it, so it counts as empty until filled.`\n * - a slot the app-type leaves out (before `faf auto` has run):\n * `<slot> says '<words>' — this app-type doesn't use it; faf auto marks it slotignored.`\n * A file whose type faf does not know, or whose type is the `library`\n * detection fell back to (see {@link typeIsFallback}), gives the first line\n * for the slots a library needs (as faf's detection reads such a file) and no\n * second line. Reads `yaml` only; nothing is written. YAML that does not parse\n * to a mapping gives no lines.\n */\nexport function typedNoneHints(yaml: string, result: Pick<ScoreResult, 'slots'>, opts: TypedNoneHintOptions = {}): string[] {\n const data = mappingOf(yaml);\n if (data === null) {return [];}\n const type = isMapping(data.project) && !typeIsFallback(yaml) ? data.project.type : undefined;\n const lines: string[] = [];\n for (const slot of SLOTS) {\n const value = valueAt(data, slot.path);\n if (result.slots[slot.path] !== 'empty' || !isTypedWords(value)) {continue;}\n const inLibrary = APP_TYPE_CATEGORIES.library.includes(slot.category);\n const line = hintFor(slot.path, String(value).trim(), appTypeUsesSlot(type, slot), inLibrary, opts.outOfType !== false);\n if (line !== null) {lines.push(line);}\n }\n return lines;\n}\n",
124
124
  "/**\n * Shared .faf assembly pipeline. The full slot-filling flow used to build a\n * FRESH .faf for a directory:\n * detect → interrogate → slotignore inactive categories → Turbo-Cat → Relentless\n *\n * Used by BOTH `faf auto` (new-file path) and `faf git` (cloned repo) so they\n * can't drift — `faf git` previously ran detectStack alone (~33% vs ~75%).\n */\n\nimport { detectStack, detectStackWithFacts } from './stack.js';\nimport { interrogateRepo } from '../interrogate/index.js';\nimport { turboCatSlots } from './turbo-cat.js';\nimport { relentlessContext } from './relentless.js';\nimport {\n APP_TYPE_CATEGORIES,\n NO_CLASSIFYING_SIGNALS,\n SLOTS,\n SLOT_BY_PATH,\n SLOTIGNORED,\n appTypeUsesSlot,\n isPlaceholder,\n isTypedWords,\n} from '../core/slots.js';\nimport type { SlotDef } from '../core/types.js';\nimport { asFafMapping, isMapping } from '../core/shape.js';\nimport { carryFafSource, fafSourceOf, markAsFill } from '../core/faf-source.js';\nimport { typeIsFallback } from '../core/typed-none.js';\n\n/** Build a fresh .faf for `dir` using the full slot-filling pipeline. */\nexport function assembleFreshFaf(dir: string): Record<string, unknown> {\n const detected = detectStack(dir) as Record<string, unknown>;\n const facts = interrogateRepo(dir);\n\n // File-facts (stack / commands / security — docker-compose, Makefile, .env)\n // are ground truth: they WIN over detectStack's root-only presence guesses.\n const factLayer: Record<string, unknown> = {};\n if (facts.stack) {factLayer.stack = facts.stack;}\n if (facts.commands) {factLayer.commands = facts.commands;}\n if (facts.security) {factLayer.security = facts.security;}\n // Prose (goal / 6Ws — README, Cargo.toml) fills empties only.\n const proseLayer: Record<string, unknown> = {};\n if (facts.project) {proseLayer.project = facts.project;}\n if (facts.human_context) {proseLayer.human_context = facts.human_context;}\n\n const seeded = fillEmpties(fillEmpties(factLayer, detected), proseLayer);\n applySlotIgnore(seeded);\n // Polyglot repos: the root package.json is a tooling shell — don't let its\n // description/scripts seed the product's 6Ws.\n const found = (detected._meta as { found?: string[] } | undefined)?.found ?? [];\n const toolingRoot = found.some(f => f.startsWith('polyglot:'));\n const withFormats = fillEmpties(seeded, turboCatSlots(dir) as Record<string, unknown>);\n return fillEmpties(withFormats, { human_context: relentlessContext(dir, { toolingRoot }) } as Record<string, unknown>);\n}\n\n/**\n * Update an EXISTING .faf for `dir`. Existing values win; interrogated → detected\n * → Turbo-Cat (formats) → Relentless (6 W's) fill only the remaining empties.\n * This is exactly the chain `faf auto` runs on an existing file — exported so\n * consumers (faf-mcp's faf_auto) compose it instead of re-deriving it and\n * drifting (they used to merge assembleFreshFaf's slotignore'd output over the\n * existing file, losing interrogated facts such as a docker-compose Redis).\n *\n * Shape: `existing` must be a mapping (an empty document, null, reads as `{}`);\n * a scalar or a list throws rather than being spread into character keys. A\n * non-null scalar `project:` (older writers stored `project: <name>`) is lifted\n * to `{ name: String(value) }`, so the name is kept and the rest can be filled.\n *\n * Words typed into a slot — a typed none (`None` / `N/A` / `not applicable`)\n * or any other placeholder word (`unknown`, `\"null\"`), any case — are an\n * empty slot: they score 0 until filled.\n * - In a tech slot (every slot but the 6Ws) a repo fact fills it: \"if it's\n * a fact, fill the slot\". With no fact the words stay exactly as the file\n * has them, comment included; faf never writes `''` over them.\n * - In a tech slot the file's app-type (`project.type`) leaves out, the\n * app-type's decision is the fact: with no repo fact, the slot becomes\n * `slotignored` in place of the words, an empty value or a\n * placeholder. A real value there is kept. `slotignored` comes only from\n * the app-type — in a slot the app-type uses, it is never written, even\n * when detection reads the repo as another type; such a slot gets the\n * repo's fact for it instead (`runtime: Go` from go.mod), or keeps what\n * it had. A `project.type` faf does not know decides nothing, and neither\n * does the `library` detection falls back to when the repo has no\n * classifying signal.\n * - In a 6W (`human_context.*`) the words are the person's: auto never\n * replaces them (`faf go` asks).\n * A slot that says `slotignored` under either of its names (`stack.db` for\n * `stack.database`) gets no detected value under either. A slot the file\n * names only by its Mk4 name (`stack.db`) keeps that name: faf adds no\n * on-wire twin (`stack.database`), and a repo fact fills the name the file\n * uses.\n *\n * The result is marked as a fill: writeFaf leaves a node with an anchor that\n * an alias reads as written (`frontend: &x None` with `ui_library: *x`) —\n * filling it would change every alias — and reports it like a kept alias.\n */\nexport function updateExistingFaf(dir: string, existing: Record<string, unknown>): Record<string, unknown> {\n const base = liftScalarProject(asFafMapping(existing, 'updateExistingFaf: the existing .faf'));\n const { data, facts } = detectStackWithFacts(dir);\n const detected = data as Record<string, unknown>;\n const withInterrogated = fillEmpties(base, interrogateRepo(dir) as Record<string, unknown>);\n const merged = fillEmpties(withInterrogated, detected);\n const withFormats = fillEmpties(merged, turboCatSlots(dir) as Record<string, unknown>);\n const filled = useFileSlotNames(fillEmpties(withFormats, { human_context: relentlessContext(dir) } as Record<string, unknown>), base);\n const decided = scoredNamesInStep(appTypeIsFact(existing, base, detected)\n ? applyAppType(keepNotApplicable(filled, base), base, facts)\n : keepNotApplicable(filled, base), base);\n // The result is the read `existing` came from, filled: writeFaf checks it\n // against that read, so an edit made while detection ran is never written over.\n return markAsFill(carryFafSource(existing, decided));\n}\n\n/** True when the app-type the filled file will declare is a fact: a type the\n * file names (unless its line carries faf's `# found: no classifying signals\n * — fallback` note, as the `library` faf fell back to does), or one detection\n * fills in from a classifying signal. faf's fallback decides no slot, on\n * this run or a later one. */\nfunction appTypeIsFact(existing: Record<string, unknown>, base: Record<string, unknown>, detected: Record<string, unknown>): boolean {\n if (!isPlaceholder(fieldAt(base, 'project.type'))) {\n const text = fafSourceOf(existing)?.text;\n return text === undefined || !typeIsFallback(text);\n }\n const found = (detected._meta as { found?: string[] } | undefined)?.found ?? [];\n return !found.includes(NO_CLASSIFYING_SIGNALS);\n}\n\n/** The places a slot can live: its on-wire path and its Mk4 canonical name. */\nfunction slotLocations(slot: SlotDef): string[] {\n return slot.canonical ? [slot.path, slot.canonical] : [slot.path];\n}\n\n/** `section.field` of a .faf data object (every slot path has two parts). */\nfunction fieldAt(data: Record<string, unknown>, path: string): unknown {\n const [section, field] = path.split('.');\n const s = data[section];\n return isMapping(s) ? s[field] : undefined;\n}\n\n/** Set (or, with `undefined`, remove) `section.field`, copying the section so\n * the caller's objects are never changed. Setting the value the field\n * already holds leaves the section as it is (no copy, no change for the\n * merge to see). */\nfunction putField(data: Record<string, unknown>, path: string, value: unknown): void {\n const [section, field] = path.split('.');\n const s = data[section];\n if (!isMapping(s)) {return;}\n if (value === undefined ? !(field in s) : s[field] === value) {return;}\n const copy = { ...s };\n if (value === undefined) {\n delete copy[field];\n } else {\n copy[field] = value;\n }\n data[section] = copy;\n}\n\n/** `slotignored`: the app-type leaves the slot out. Typed words are not this. */\nconst isSlotIgnored = (v: unknown): boolean => typeof v === 'string' && v.trim() === SLOTIGNORED;\n\n/** True when `base` says `slotignored` under one of the slot's names and\n * holds no real value under any of them. */\nfunction decidedNotApplicable(base: Record<string, unknown>, locs: string[]): boolean {\n const values = locs.map(loc => fieldAt(base, loc));\n return values.some(isSlotIgnored) && values.every(v => isPlaceholder(v) || isSlotIgnored(v));\n}\n\n/** After filling: a slot `base` marks `slotignored` gets no detected value\n * under any of its names — each keeps exactly what `base` had there. Only\n * `slotignored` is kept this way; typed words are an empty slot, and a fact\n * fills it (see fillEmpties). */\nfunction keepNotApplicable(filled: Record<string, unknown>, base: Record<string, unknown>): Record<string, unknown> {\n const out = { ...filled };\n for (const slot of SLOTS) {\n const locs = slotLocations(slot);\n if (!decidedNotApplicable(base, locs)) {continue;}\n for (const loc of locs) {\n const before = fieldAt(base, loc);\n if (fieldAt(out, loc) !== before) {putField(out, loc, before);}\n }\n }\n return out;\n}\n\n/** True when `data` has a key at `section.field` (whatever its value). */\nfunction hasField(data: Record<string, unknown>, path: string): boolean {\n const [section, field] = path.split('.');\n const s = data[section];\n return isMapping(s) && Object.prototype.hasOwnProperty.call(s, field);\n}\n\n/** A slot the file names only by its Mk4 name (`stack.db`, not\n * `stack.database`) keeps that one name: the on-wire twin the fill added is\n * taken out again, and a repo fact it carried fills the Mk4 name when that\n * holds no real value (empty, or typed words) — \"if it's a fact, fill the\n * slot\", under the name the file uses. */\nfunction useFileSlotNames(filled: Record<string, unknown>, base: Record<string, unknown>): Record<string, unknown> {\n const out = { ...filled };\n for (const slot of SLOTS) {\n if (!slot.canonical || !hasField(base, slot.canonical) || hasField(base, slot.path)) {continue;}\n const twin = fieldAt(out, slot.path);\n putField(out, slot.path, undefined);\n const own = fieldAt(out, slot.canonical);\n if (isFact(twin) && isPlaceholder(own)) {putField(out, slot.canonical, twin);}\n }\n return out;\n}\n\n/** The scoring kernel reads a slot under its on-wire name (`stack.database`),\n * never its Mk4 name (`stack.db`). When the file names a slot only by its\n * Mk4 name, faf keeps the on-wire name in step with it — a repo fact or\n * `slotignored` — so the score counts what the file says. faf adds that\n * key; the file's own line is left as the steps above decided. A Mk4 name\n * that still holds no real value (empty, or typed words) adds nothing: the\n * slot is empty under either name. */\nfunction scoredNamesInStep(decided: Record<string, unknown>, base: Record<string, unknown>): Record<string, unknown> {\n const out = { ...decided };\n for (const slot of SLOTS) {\n if (!slot.canonical || !hasField(base, slot.canonical) || hasField(base, slot.path)) {continue;}\n const own = fieldAt(out, slot.canonical);\n if (isFact(own) || isSlotIgnored(own)) {putField(out, slot.path, own);}\n }\n return out;\n}\n\n/** The file's app-type decides which tech slots count (after filling, so a\n * type detection filled in counts too; a type faf does not know decides\n * nothing):\n * - a slot it leaves out that holds no real value under either of its\n * names — only empty values, placeholders or typed words — becomes\n * `slotignored`, under each of the slot's names the file has (or its\n * on-wire name when it has neither);\n * - a slot it uses never takes `slotignored` from detection (which may have\n * read the repo as another type): it gets the repo's fact for it from\n * `facts` (detection's fact for every stack slot, whatever the type), or\n * keeps what `base` had there (`''` when `base` had nothing). A\n * `slotignored` of the file's own stays. */\nfunction applyAppType(filled: Record<string, unknown>, base: Record<string, unknown>, facts: Record<string, string> = {}): Record<string, unknown> {\n const project = filled.project;\n const type = isMapping(project) ? project.type : undefined;\n const out = { ...filled };\n for (const slot of SLOTS) {\n if (slot.category === 'human' || slot.category === 'project') {continue;}\n const uses = appTypeUsesSlot(type, slot);\n if (uses === null) {return filled;}\n if (uses) {\n keepUsedSlot(out, base, slot, slot.path.startsWith('stack.') ? facts[slot.path.slice('stack.'.length)] : undefined);\n } else {\n markLeftOutSlot(out, slot);\n }\n }\n return out;\n}\n\n/** A slot the app-type uses takes no `slotignored` from detection: each name\n * of it gets back what `base` had there (`''` when it had nothing). Then,\n * when the repo has a fact for the slot (`fact`, detection's value whatever\n * the type) and the slot holds no real value under any of its names, each\n * name the file has that holds none — empty, or typed words, never the\n * file's own `slotignored` — gets the fact (the on-wire name when it has\n * neither): \"if it's a fact, fill the slot\". */\nfunction keepUsedSlot(out: Record<string, unknown>, base: Record<string, unknown>, slot: SlotDef, fact: string | undefined): void {\n const locs = slotLocations(slot);\n for (const loc of locs) {\n if (isSlotIgnored(fieldAt(out, loc)) && !isSlotIgnored(fieldAt(base, loc))) {\n putField(out, loc, hasField(base, loc) ? fieldAt(base, loc) : '');\n }\n }\n if (!isFact(fact)) {return;}\n const present = locs.filter(loc => hasField(out, loc));\n if (present.some(loc => !isPlaceholder(fieldAt(out, loc)))) {return;} // a real value (or the file's slotignored) stays\n for (const loc of present.length > 0 ? present : [slot.path]) {putField(out, loc, fact);}\n}\n\n/** A slot the app-type leaves out, with no real value under either of its\n * names, becomes `slotignored` under each name the file has (or its on-wire\n * name when it has neither). A real value there is kept. */\nfunction markLeftOutSlot(out: Record<string, unknown>, slot: SlotDef): void {\n const present = slotLocations(slot).filter(loc => hasField(out, loc));\n const real = (loc: string): boolean => !isPlaceholder(fieldAt(out, loc)) && !isSlotIgnored(fieldAt(out, loc));\n if (present.some(real)) {return;}\n for (const loc of present.length > 0 ? present : [slot.path]) {\n if (isPlaceholder(fieldAt(out, loc))) {putField(out, loc, SLOTIGNORED);}\n }\n}\n\n/** `project: <scalar>` → `project: { name: String(value) }`. A list is left as it is\n * (fillEmpties never descends into or spreads a list). Returns a new object. */\nfunction liftScalarProject(data: Record<string, unknown>): Record<string, unknown> {\n const project = data.project;\n if (project === null || project === undefined || isMapping(project) || Array.isArray(project)) {return data;}\n return { ...data, project: { name: String(project) } };\n}\n\n/** Mark slots outside the app-type's active categories as `slotignored`. */\nfunction applySlotIgnore(seeded: Record<string, unknown>): void {\n const projectType = (seeded.project as { type?: string } | undefined)?.type ?? 'library';\n const activeCategories = APP_TYPE_CATEGORIES[projectType] || APP_TYPE_CATEGORIES.library;\n for (const slot of SLOTS) {\n if (activeCategories.includes(slot.category)) {continue;}\n const [section, field] = slot.path.split('.');\n if (section === 'stack' && seeded.stack) {\n (seeded.stack as Record<string, string>)[field] = 'slotignored';\n }\n if (section === 'monorepo' && seeded.monorepo) {\n (seeded.monorepo as Record<string, string>)[field] = 'slotignored';\n }\n }\n}\n\n/** Fill empty slots in `target` with values from `source`. `target` wins\n * when its slot is non-empty. Empty here is '', null, undefined, an empty\n * list or mapping — this is what lets interrogated/detected values overwrite\n * the empty-string defaults that detectStack writes to human_context.\n *\n * Typed words — a typed none (`None`, `N/A`, `not applicable`) or any other\n * placeholder word (`unknown`, `\"null\"`), any case — are an empty slot, but\n * only a fact replaces them: in a tech slot (every slot but the 6Ws, under\n * either of its names) a source value that is real content — not empty, not\n * a placeholder, not `slotignored` — fills it. Anything else leaves the\n * words exactly as they are: no fact, a 6W (`human_context.*`, the\n * person's), or a place that is not a slot.\n *\n * A `_meta` the target already carries (the user's own) is never filled\n * over: faf's runtime `_meta` from `source` is merged only into a target\n * without one. */\nexport function fillEmpties(\n target: Record<string, unknown>,\n source: Record<string, unknown>,\n): Record<string, unknown> {\n return fillAt(target, source, '');\n}\n\n/** A tech slot: any slot but the 6Ws, under its path or its canonical name. */\nfunction isTechSlot(path: string): boolean {\n const slot = SLOT_BY_PATH.get(path);\n return slot !== undefined && slot.category !== 'human';\n}\n\n/** A value the repo gave for a slot: real content. Not empty, not a\n * placeholder or typed words, and not `slotignored` (the app-type's word,\n * never a fact about the repo). */\nfunction isFact(value: unknown): boolean {\n if (typeof value === 'number' || typeof value === 'boolean') {return true;}\n return typeof value === 'string' && value.trim() !== '' && !isPlaceholder(value) && !isSlotIgnored(value);\n}\n\n/** True when `value` may replace typed words at `path`: a fact, in a tech slot. */\nfunction factFillsTypedNone(path: string, value: unknown): boolean {\n return isTechSlot(path) && isFact(value);\n}\n\nfunction fillAt(target: Record<string, unknown>, source: Record<string, unknown>, prefix: string): Record<string, unknown> {\n const result = { ...target };\n for (const [key, value] of Object.entries(source)) {\n const existing = result[key];\n const path = prefix ? `${prefix}.${key}` : key;\n if (path === '_meta' && existing !== undefined) {continue;}\n if (isTypedWords(existing)) {\n // Typed words are an empty slot: a fact fills a tech slot; otherwise the words stay.\n if (factFillsTypedNone(path, value)) {result[key] = value;}\n continue;\n }\n if (isPlaceholder(existing)) {\n result[key] = value;\n } else if (isMapping(value) && isMapping(existing)) {\n result[key] = fillAt(existing, value, path);\n }\n }\n return result;\n}\n",
125
125
  "/**\n * The pure parts of `faf git` — no git, no network, no child process.\n *\n * `faf git <url>` validates the URL, clones the repo into a temp folder, and\n * authors a fresh .faf from it with the same pipeline `faf auto` runs. The\n * clone is the only step that runs git, and it stays in the CLI command. The\n * rest lives here so consumers (claude-faf-mcp's faf_git, faf-mcp) compose it:\n * they fetch the repo their own way, then call `authorFafFromRepo(dir)` and get\n * the same .faf `faf git` would write — canonical keys, scored by faf's own\n * scorer — instead of a hand-rolled extractor with its own schema.\n */\n\nimport type { FafData } from '../core/types.js';\nimport { assembleFreshFaf } from './assemble.js';\nimport { readPackageJson } from './scanner.js';\n\n/**\n * Validate + normalize a GitHub repo reference into a safe clone URL.\n *\n * A `faf git` URL is an untrusted CLI/MCP argument. This gate rejects any\n * shell metacharacter or whitespace, and only ever returns a URL built from a\n * strict allowlist pattern — defense in depth alongside the no-shell\n * `execFileSync` clone (which already makes argument injection structurally\n * impossible). Nothing carrying a metacharacter or control char ever reaches\n * `git`: metachars are caught here; anything else fails the allowlist below.\n *\n * Accepts:\n * owner/repo · github.com/owner/repo · https://github.com/owner/repo\n * (optional `.git` suffix, optional trailing slash; full http(s) URLs to\n * any host pass through with a single `.git` suffix)\n *\n * Throws on empty / malformed / unsafe input.\n */\nexport function normalizeGitUrl(input: string): string {\n const url = (input ?? '').trim();\n if (!url) {\n throw new Error('Please provide a GitHub URL.');\n }\n // Reject shell metacharacters and whitespace up front for a clear error.\n if (/[\\s;&|`$(){}<>\\\\^'\"!*?[\\]]/.test(url)) {\n throw new Error(`Refusing unsafe URL: ${JSON.stringify(input)}`);\n }\n\n const bare = url.replace(/\\/+$/, '').replace(/\\.git$/i, '');\n\n // owner/repo shorthand (optionally github.com-prefixed, no scheme) → canonical https\n const short = bare.match(\n /^(?:github\\.com\\/)?([A-Za-z0-9][A-Za-z0-9._-]*)\\/([A-Za-z0-9][A-Za-z0-9._-]*)$/,\n );\n if (short) {\n return `https://github.com/${short[1]}/${short[2]}.git`;\n }\n\n // full http(s) URL → ensure exactly one `.git` suffix (strict allowlist chars)\n if (/^https?:\\/\\/[A-Za-z0-9._\\-/:@~%]+$/.test(bare)) {\n return `${bare}.git`;\n }\n\n throw new Error(`Not a recognized GitHub repo URL: ${JSON.stringify(input)}`);\n}\n\n/** The repo name from a normalized clone URL: .../owner/repo.git → repo. */\nexport function repoNameFromUrl(repoUrl: string): string {\n return repoUrl.replace(/\\.git$/i, '').replace(/\\/+$/, '').split('/').pop() || 'project';\n}\n\nexport interface AuthorFafFromRepoOptions {\n /** The repo's URL (a clone URL, or any form `normalizeGitUrl` accepts).\n * When the fetched folder gives the project no name of its own (no\n * package.json name), the project is named after the repo instead of the\n * folder it was fetched into. */\n repoUrl?: string;\n}\n\n/**\n * Author a fresh .faf, as data, from a repo that is already on disk — the\n * function form of `faf git`. Pass the folder you cloned or unpacked the repo\n * into. Runs the full `faf auto` pipeline (detect → interrogate → slotignore →\n * Turbo-Cat → Relentless) on that folder only, and returns the FafData —\n * nothing is written, nothing is fetched, no git is run.\n *\n * Write it with `writeFaf` and score the written text with `scoreFafYaml`, so\n * the score you report is the one faf reports.\n */\nexport function authorFafFromRepo(dir: string, opts: AuthorFafFromRepoOptions = {}): FafData {\n const data = assembleFreshFaf(dir) as FafData;\n // Name the project after the REPO, not the folder it was fetched into — but\n // only when the name IS that folder fallback (detectStack's\n // `pkg.name ?? dir.split('/').pop()`); a real package.json name is kept.\n if (opts.repoUrl && data.project && !readPackageJson(dir)?.name && data.project.name === dir.split('/').pop()) {\n data.project.name = repoNameFromUrl(opts.repoUrl);\n }\n return data;\n}\n",
126
- "/**\n * FAF DNA — the lifecycle of AI context. The \"first heartbeat\".\n *\n * Every project.faf gets a `.faf-dna` lineage record (separate file, NOT\n * embedded in the .faf — so it's compatible with the clean dialect):\n * - Birth Certificate: the honest first score (even 0%) — the \"before\" picture\n * - Growth Record: version history as the score improves\n * - Journey: the one-line story, e.g. \"22% → 85% → 99% ← 92%\"\n *\n * Birth DNA = the raw slot-based score at init. The growth from Birth DNA to\n * the current score is the demonstrated value of FAF.\n *\n * Restored 2026-05-21 — silently dropped in the v6.0 clean-architecture rewrite\n * (it was never knowingly removed). Ported from v5 (sync, v6-native, load-compatible).\n *\n * Other shapes. `.faf-dna` is committed lineage, and other tools have written\n * it in their own shape (claude-faf-mcp's faf_dna wrote `milestones` at the top\n * level and no `versions` or `growth`). Reading never throws on such a file: it\n * reads what it can, and missing parts are derived from what is there. Writing\n * is different: recordGrowth rewrites the file only when faf can prove it wrote\n * every byte — the file is in faf's shape AND its text is exactly faf's own\n * serialisation of what it holds (`JSON.stringify(data, null, 2)` and a final\n * newline), and nothing faf would replace carries a note of the user's. Hand\n * formatting, CRLF, reordered keys, a repeated key or a number JSON cannot hold\n * exactly (a 20-digit id) would all be lost in a rewrite, so such a file — like\n * one in another shape — is read and left exactly as it is, and\n * `readOnlyReason()` says why in one line. `faf init --force` starts a fresh\n * lineage when you ask it to.\n */\n\nimport { existsSync, lstatSync } from 'fs';\nimport { join, basename } from 'path';\nimport { createHash } from 'crypto';\nimport { readBytesIfPresent, readUtf8, resolveInside, safeWriteFile } from './safe-write.js';\n\nexport interface BirthCertificate {\n born: string; // ISO timestamp\n birthDNA: number; // honest first score (raw slot-based, even 0)\n birthDNASource: 'init' | 'legacy';\n projectDNA: string; // 16-char hash of initial state\n certificate: string; // FAF-YYYY-PROJECT-XXXX\n}\n\nexport interface VersionEntry {\n version: string; // v1.0.0, v1.0.1, …\n timestamp: string; // ISO\n score: number;\n changes: string[];\n growth: number; // points above Birth DNA\n}\n\n/** Journey markers only — not score tiers.\n * Tiers live solely in tiers.ts (Trophy 100 · Gold 99 · Silver 95 · Bronze 85 · …).\n * There is no championship / elite / perfect milestone. */\nexport interface Milestone {\n type: 'birth' | 'doubled' | 'peak' | 'current';\n score: number;\n date: string; // ISO\n version: string;\n label: string;\n emoji: string;\n}\n\nexport interface FafDNA {\n birthCertificate: BirthCertificate;\n versions: VersionEntry[];\n current: { version: string; score: number; lastSync: string };\n growth: { totalGrowth: number; daysActive: number; milestones: Milestone[] };\n lastModified: string;\n format: 'faf-dna-v1';\n}\n\ntype Json = Record<string, unknown>;\n\nconst isObject = (v: unknown): v is Json => typeof v === 'object' && v !== null && !Array.isArray(v);\nconst isNum = (v: unknown): v is number => typeof v === 'number' && Number.isFinite(v);\nconst isStr = (v: unknown): v is string => typeof v === 'string';\nconst VERSION_RE = /^v?\\d+\\.\\d+\\.\\d+$/;\nconst MILESTONE_TYPES = new Set(['birth', 'doubled', 'peak', 'current']);\n\n/** A version entry faf wrote: a semver-ish version and a numeric score. */\nfunction isVersionEntry(v: unknown): v is VersionEntry {\n return isObject(v) && isStr(v.version) && VERSION_RE.test(v.version) && isNum(v.score);\n}\n\n/**\n * True when `raw` is a `.faf-dna` in the shape faf writes: a birth certificate\n * with a birth date and a numeric Birth DNA, a non-empty `versions` list whose\n * entries carry a version and a score, a `current` score and version, and a\n * `growth.milestones` list of entries. Only such a file is ever added to\n * (unknown extra keys in it are kept).\n */\nconst birthOk = (bc: unknown): boolean => isObject(bc) && isNum(bc.birthDNA) && isStr(bc.born);\nconst versionsOk = (v: unknown): boolean => Array.isArray(v) && v.length > 0 && v.every(isVersionEntry);\nconst currentOk = (c: unknown): boolean => isObject(c) && isNum(c.score) && isStr(c.version);\nconst growthOk = (g: unknown): boolean => isObject(g) && Array.isArray(g.milestones) && g.milestones.every(isObject);\n\nfunction hasFafShape(raw: unknown): raw is FafDNA {\n return isObject(raw) && birthOk(raw.birthCertificate) && versionsOk(raw.versions) && currentOk(raw.current) && growthOk(raw.growth);\n}\n\n/** True when something is at `path` — a file, or a link (even a dangling one). */\nfunction present(path: string): boolean {\n try {\n lstatSync(path);\n return true;\n } catch {\n return false;\n }\n}\n\n/** faf's own serialisation of a `.faf-dna` — the exact text save() writes. */\nconst serialise = (dna: unknown): string => `${JSON.stringify(dna, null, 2)}\\n`;\n\n/** What faf writes in `current` and in a milestone. recordGrowth replaces\n * `current` and the peak / current milestones whole, so a key of the user's\n * in one of them would be lost. */\nconst CURRENT_KEYS = new Set(['version', 'score', 'lastSync']);\nconst MILESTONE_KEYS = new Set(['type', 'score', 'date', 'version', 'label', 'emoji']);\nconst onlyKeys = (o: object, keys: Set<string>): boolean => Object.keys(o).every((k) => keys.has(k));\n\n/** The label and emoji faf gives each milestone it writes. */\nconst MILESTONE_TEXT: Record<Milestone['type'], { label: string; emoji: string }> = {\n birth: { label: 'Birth', emoji: '🐣' },\n doubled: { label: 'Doubled', emoji: '2️⃣' },\n peak: { label: 'Peak', emoji: '🏔️' },\n current: { label: 'Current', emoji: '📍' },\n};\n\n/** The milestones recordGrowth replaces: the peak and the current one. */\nconst replaced = (dna: FafDNA): Milestone[] => dna.growth.milestones.filter((m) => m.type === 'peak' || m.type === 'current');\n\n/** True when every object recordGrowth replaces holds only keys faf writes there. */\nconst onlyFafKeys = (dna: FafDNA): boolean =>\n onlyKeys(dna.current, CURRENT_KEYS) && replaced(dna).every((m) => onlyKeys(m, MILESTONE_KEYS));\n\n/** True when the peak and current milestones carry faf's own label and emoji\n * for their type — a relabelled one is the user's text. */\nconst fafLabels = (dna: FafDNA): boolean =>\n replaced(dna).every((m) => m.label === MILESTONE_TEXT[m.type].label && m.emoji === MILESTONE_TEXT[m.type].emoji);\n\n/** True when every object recordGrowth replaces is exactly what faf writes there. */\nfunction growthLosesNothing(dna: FafDNA): boolean {\n return onlyFafKeys(dna) && fafLabels(dna);\n}\n\n/** Why faf leaves a `.faf-dna` as it is, in one line. */\nconst NOT_FAF_SHAPE = \".faf-dna is not in faf's shape: faf reads it and leaves it as it is.\";\nconst NOT_FAF_TEXT =\n '.faf-dna is not exactly as faf wrote it (hand formatting, key order, a repeated key or a number JSON cannot hold exactly): faf reads it and leaves it as it is.';\nconst USER_NOTE =\n '.faf-dna has a key of yours in an entry faf would replace (current, or the peak or current milestone): faf reads it and leaves it as it is.';\nconst USER_LABEL =\n '.faf-dna has a label or emoji of yours on a milestone faf would replace (the peak or current one): faf reads it and leaves it as it is.';\nconst NO_BIRTH = '.faf-dna has no birth certificate faf can read: faf leaves it as it is.';\n\n/** Milestones as the journey reads them: well-formed entries only. */\nfunction readMilestones(v: unknown): Milestone[] {\n if (!Array.isArray(v)) {return [];}\n return v.filter((m): m is Milestone => isObject(m) && isStr(m.type) && MILESTONE_TYPES.has(m.type) && isNum(m.score));\n}\n\n/**\n * A readable view of a `.faf-dna` in any shape, or null when there is no usable\n * birth certificate (no numeric Birth DNA). Missing parts are derived from what\n * is there — `growth.milestones` falls back to a top-level `milestones`, the\n * current score to the last version or the Birth DNA — so the journey reads\n * without throwing. The view is for reading; it is never written back.\n */\nconst str = (v: unknown, fallback = ''): string => (isStr(v) ? v : fallback);\n\n/** Well-formed version entries, each with every field the log reads. */\nfunction readVersions(v: unknown, birthDNA: number): VersionEntry[] {\n if (!Array.isArray(v)) {return [];}\n return v.filter(isVersionEntry).map((e) => ({\n version: e.version,\n timestamp: str(e.timestamp),\n score: e.score,\n changes: Array.isArray(e.changes) ? e.changes.filter(isStr) : [],\n growth: isNum(e.growth) ? e.growth : e.score - birthDNA,\n }));\n}\n\n/** The current score and version: as written, else the last version, else birth. */\nfunction readCurrent(cur: Json, last: VersionEntry | undefined, birthDNA: number, born: string): FafDNA['current'] {\n return {\n version: str(cur.version, last?.version ?? 'v1.0.0'),\n score: isNum(cur.score) ? cur.score : (last?.score ?? birthDNA),\n lastSync: str(cur.lastSync, born),\n };\n}\n\nfunction readableView(raw: unknown): FafDNA | null {\n if (!isObject(raw) || !isObject(raw.birthCertificate) || !isNum(raw.birthCertificate.birthDNA)) {return null;}\n const bc = raw.birthCertificate;\n const birthDNA = bc.birthDNA as number;\n const born = str(bc.born);\n const versions = readVersions(raw.versions, birthDNA);\n const current = readCurrent(isObject(raw.current) ? raw.current : {}, versions[versions.length - 1], birthDNA, born);\n const growth = isObject(raw.growth) ? raw.growth : {};\n return {\n birthCertificate: {\n born,\n birthDNA,\n birthDNASource: bc.birthDNASource === 'legacy' ? 'legacy' : 'init',\n projectDNA: str(bc.projectDNA),\n certificate: str(bc.certificate),\n },\n versions,\n current,\n growth: {\n totalGrowth: current.score - birthDNA,\n daysActive: isNum(growth.daysActive) ? growth.daysActive : 0,\n milestones: readMilestones(Array.isArray(growth.milestones) ? growth.milestones : raw.milestones),\n },\n lastModified: str(raw.lastModified, born),\n format: 'faf-dna-v1',\n };\n}\n\n/**\n * The `.faf-dna` lineage of one project: birth, growth and the journey line.\n * This is the API `faf init` (birth), `faf auto` / `faf refresh` (recordGrowth)\n * and `faf dna` (getJourney, getBirthDNADisplay, getLog) use.\n *\n * - `birth(score)` starts a new lineage and writes it, replacing any\n * `.faf-dna` there (check `exists()` first unless a fresh start is meant —\n * `faf init` births only when there is none, or with `--force`).\n * - `recordGrowth(score, changes)` adds a version when the score changed.\n * It adds only to a file faf can prove it wrote (see the file header);\n * for any other file it writes nothing and returns null, and\n * `readOnlyReason()` says why.\n * - Reads never throw: a missing, unreadable, non-UTF-8 or non-JSON file,\n * or one with no usable birth certificate, reads as null / '' / [].\n *\n * Every write is atomic and stays inside the project: a `.faf-dna` link that\n * leads out of the project, dangles or leads to a file with another name is\n * refused (and reads as absent). A write is refused, too, when the file\n * changed on disk after this manager read it (another `faf` process recorded\n * growth meanwhile, say): SafePathError `changed`, nothing written.\n */\nexport class FafDNAManager {\n private readonly projectPath: string;\n private readonly dnaPath: string;\n private dna: FafDNA | null = null;\n /** True when the loaded file is one faf wrote (so it may be added to). */\n private own = false;\n /** The text read from `.faf-dna` (or last written), for the write's check. */\n private text: string | undefined;\n /** Why the file is read only, when it is; null when faf may add to it. */\n private reason: string | null = null;\n /** True once this manager found no `.faf-dna` (exists / load / birth) and\n * has not written one since: a birth then refuses a file that appeared\n * meanwhile instead of writing over it. */\n private sawNoFile = false;\n\n constructor(projectPath: string) {\n this.projectPath = projectPath;\n this.dnaPath = join(projectPath, '.faf-dna');\n }\n\n exists(): boolean {\n const there = existsSync(this.dnaPath);\n if (!there && !present(this.dnaPath)) {this.sawNoFile = true;}\n return there;\n }\n\n /** Birth — the first heartbeat. Writes the birth certificate with the honest first score.\n * When this manager found no `.faf-dna` (now, or at an earlier exists() /\n * load()), a file that appeared since is refused (SafePathError `changed`)\n * rather than written over; over a `.faf-dna` that is there, birth starts a\n * fresh lineage (`faf init --force`). */\n birth(birthDNA: number): FafDNA {\n if (!present(this.dnaPath)) {this.sawNoFile = true;}\n const now = new Date().toISOString();\n this.own = true;\n this.dna = {\n birthCertificate: {\n born: now,\n birthDNA,\n birthDNASource: 'init',\n projectDNA: this.generateProjectDNA(),\n certificate: this.generateCertificate(),\n },\n versions: [{ version: 'v1.0.0', timestamp: now, score: birthDNA, changes: ['Birth — initial context'], growth: 0 }],\n current: { version: 'v1.0.0', score: birthDNA, lastSync: now },\n growth: {\n totalGrowth: 0,\n daysActive: 0,\n milestones: [{ type: 'birth', score: birthDNA, date: now, version: 'v1.0.0', label: 'Birth', emoji: '🐣' }],\n },\n lastModified: now,\n format: 'faf-dna-v1',\n };\n this.save();\n return this.dna;\n }\n\n /** True when `.faf-dna` exists and is one faf wrote — in faf's shape, and\n * exactly faf's own text — so recordGrowth may add to it. Any other file is\n * read, not written. */\n isFafShape(): boolean {\n return this.load() !== null && this.own;\n }\n\n /** Why faf leaves this `.faf-dna` as it is, in one plain line — or null when\n * there is none, or recordGrowth may add to it. */\n readOnlyReason(): string | null {\n this.load();\n return this.own ? null : this.reason;\n }\n\n /** Record growth — a new score on the journey. Returns null when there is no\n * DNA yet, or when the file is in another tool's shape (nothing is written). */\n recordGrowth(newScore: number, changes: string[]): FafDNA | null {\n if (!this.dna && !this.load()) {return null;}\n if (!this.own) {return null;}\n const dna = this.dna!;\n if (newScore === dna.current.score) {return dna;} // no change, no new version\n\n const now = new Date().toISOString();\n const birthDNA = dna.birthCertificate.birthDNA;\n const growth = newScore - birthDNA;\n const newVersion = this.incrementVersion(dna.versions[dna.versions.length - 1].version);\n\n dna.versions.push({ version: newVersion, timestamp: now, score: newScore, changes, growth });\n dna.current = { version: newVersion, score: newScore, lastSync: now };\n dna.growth.totalGrowth = growth;\n dna.growth.daysActive = this.daysSince(dna.birthCertificate.born);\n this.updateMilestones(newScore, newVersion, now);\n this.save();\n return dna;\n }\n\n /** The one-line journey: e.g. \"22% → 85% → 99% ← 92%\". */\n getJourney(): string {\n if (!this.dna && !this.load()) {return '';}\n const dna = this.dna!;\n const birth = dna.birthCertificate.birthDNA;\n const peak = dna.growth.milestones.find((m) => m.type === 'peak');\n const current = dna.current.score;\n\n let journey = `${birth}%`;\n if (peak && peak.score !== birth) {\n journey += ` → ${peak.score}%`;\n if (current < peak.score) {journey += ` ← ${current}%`;}\n } else if (current !== birth) {\n journey += ` → ${current}%`;\n }\n return journey;\n }\n\n getBirthDNADisplay(): { current: number; birthDNA: number; growth: number; born: string } | null {\n if (!this.dna && !this.load()) {return null;}\n const dna = this.dna!;\n return {\n current: dna.current.score,\n birthDNA: dna.birthCertificate.birthDNA,\n growth: dna.current.score - dna.birthCertificate.birthDNA,\n born: isStr(dna.birthCertificate.born) ? dna.birthCertificate.born : '',\n };\n }\n\n /** Complete version history, newest last. */\n getLog(): string[] {\n if (!this.dna && !this.load()) {return [];}\n return this.dna!.versions.map((v) => {\n const emoji = v.growth > 50 ? '🚀' : v.growth > 20 ? '📈' : '📊';\n const day = isStr(v.timestamp) ? v.timestamp.split('T')[0] : '';\n const changes = Array.isArray(v.changes) ? v.changes.filter(isStr).join(', ') : '';\n return `${v.version} — ${v.score}% ${emoji} (${day}) ${changes}`;\n });\n }\n\n /** Load `.faf-dna`. Never throws: missing, unreadable, not UTF-8, not JSON, a\n * refused link, or no usable birth certificate → null. A file faf did not\n * write (another shape, or not exactly faf's text) loads as a readable view\n * (see the file header). */\n load(): FafDNA | null {\n if (this.dna) {return this.dna;}\n if (!existsSync(this.dnaPath)) {\n if (!present(this.dnaPath)) {this.sawNoFile = true;}\n return null;\n }\n const read = this.read();\n if (read === null) {return null;}\n const { text, raw } = read;\n if (hasFafShape(raw) && serialise(raw) === text && growthLosesNothing(raw)) {\n this.own = true;\n this.reason = null;\n this.dna = raw;\n } else {\n this.own = false;\n this.dna = readableView(raw);\n this.reason = !this.dna ? NO_BIRTH : !hasFafShape(raw) ? NOT_FAF_SHAPE : serialise(raw) !== text ? NOT_FAF_TEXT\n : onlyFafKeys(raw) ? USER_LABEL : USER_NOTE;\n }\n this.text = text;\n return this.dna;\n }\n\n /** The file's text (strict UTF-8) and its JSON, or null with the reason noted. */\n private read(): { text: string; raw: unknown } | null {\n let text: string;\n try {\n text = readUtf8(resolveInside(this.projectPath, '.faf-dna'));\n } catch (e) {\n this.reason = e instanceof Error ? e.message : String(e);\n return null;\n }\n try {\n return { text, raw: JSON.parse(text) as unknown };\n } catch {\n this.reason = '.faf-dna is not JSON: faf leaves it as it is.';\n return null;\n }\n }\n\n private save(): void {\n if (!this.dna) {return;}\n this.dna.lastModified = new Date().toISOString();\n const text = serialise(this.dna);\n // The file must still be what this manager read (or, when it found none,\n // still be absent; before any read, what is there now): another process's\n // growth — or a .faf-dna that appeared meanwhile — is never written over.\n const expect = this.text ?? (this.sawNoFile ? null : readBytesIfPresent(resolveInside(this.projectPath, '.faf-dna')));\n // Atomic, and never through a link that leaves the project or dangles.\n safeWriteFile(this.dnaPath, text, { root: this.projectPath, expect });\n this.text = text;\n this.sawNoFile = false;\n }\n\n private generateProjectDNA(): string {\n return createHash('sha256')\n .update([this.projectPath, Date.now().toString(), Math.random().toString(36)].join(':'))\n .digest('hex')\n .substring(0, 16);\n }\n\n private generateCertificate(): string {\n const year = new Date().getFullYear();\n const rand = Math.random().toString(36).substring(2, 6).toUpperCase();\n const proj = basename(this.projectPath).replace(/[^A-Z0-9]/gi, '').toUpperCase().substring(0, 8).padEnd(4, 'X');\n return `FAF-${year}-${proj}-${rand}`;\n }\n\n private incrementVersion(version: string): string {\n const [maj, min, patch] = version.replace('v', '').split('.').map(Number);\n return `v${maj}.${min}.${patch + 1}`;\n }\n\n private daysSince(iso: string): number {\n return Math.floor((Date.now() - new Date(iso).getTime()) / 86_400_000);\n }\n\n private updateMilestones(score: number, version: string, now: string): void {\n if (!this.dna) {return;}\n const ms = this.dna.growth.milestones;\n const has = (t: Milestone['type']) => ms.some((m) => m.type === t);\n const add = (type: Milestone['type']) =>\n ms.push({ type, score, date: now, version, ...MILESTONE_TEXT[type] });\n\n if (score >= this.dna.birthCertificate.birthDNA * 2 && score > 0 && !has('doubled')) {add('doubled');}\n\n const peak = ms.find((m) => m.type === 'peak');\n if (!peak || score > peak.score) {\n if (peak) {ms.splice(ms.indexOf(peak), 1);}\n add('peak');\n }\n const cur = ms.findIndex((m) => m.type === 'current');\n if (cur >= 0) {ms.splice(cur, 1);}\n add('current');\n }\n}\n",
127
- "import { join } from 'path';\nimport type { FafData } from '../core/types.js';\nimport { FAF_CONTEXT_FILES } from '../core/safe-write.js';\nimport { fafMetaTag } from './claude.js';\nimport { injectFafBlock } from './inject.js';\nimport { filled, slotLabel, titleLabel } from './labels.js';\n\n/** A value carrying real content — non-empty, not slotignored, non-empty array. */\nconst present = (v: unknown): boolean =>\n v !== null && v !== undefined && v !== '' && v !== 'slotignored' && !(Array.isArray(v) && v.length === 0);\n\n/** Render a slot value for inline display (arrays → comma list). */\nconst fmtVal = (v: unknown): string => (Array.isArray(v) ? v.join(', ') : String(v));\n\n/** Preference keys that describe human↔assistant interaction, NOT repo conventions. Excluded from AGENTS.md. */\nconst HUMAN_PREF = new Set([\n 'commit_style', 'communication', 'response_style', 'explanation_level', 'explanations', 'documentation', 'code_first',\n]);\n\n/** Stack keys that are context/marketing, not actual stack. Kept out of the Stack section. */\nconst NON_STACK = new Set(['target_user', 'core_problem', 'mission_purpose']);\n\n/**\n * Author a BETTER-shaped AGENTS.md from .faf data (+ repo enrichment at export).\n *\n * Deterministic projection from curated TRUTH — facts, not hallucinated prose\n * (Gloaguen: LLM freewrite hurts). Sections: orientation · setup · verify ·\n * map · conventions · three-tier guardrails · DoD · when stuck · security ·\n * commit. Human Context (who/why marketing) is intentionally omitted — that\n * belongs in README / project.faf, not agent ops.\n *\n * Design: BETTER guide + hand exemplar (faf-cli AGENTS.md) + agents-md-facts.\n */\nexport function renderAgentsMd(data: FafData): string {\n const lines: string[] = [];\n const push = (s = '') => lines.push(s);\n\n const ai = data.ai_instructions as\n | { warnings?: string[]; working_style?: Record<string, unknown> }\n | undefined;\n const prefs = data.preferences as Record<string, unknown> | undefined;\n const instant = data.instant_context as { key_files?: string[] } | undefined;\n const security = data.security as\n | { secrets?: string; example?: string; never?: string[] }\n | undefined;\n const commands = data.commands;\n const keyFiles = data.key_files ?? instant?.key_files;\n // Integration branch — git-flow repos PR into `dev`/`develop`, not `main`.\n // Read from project.default_branch; default `main`.\n const branch = present(data.project?.default_branch) ? String(data.project?.default_branch) : 'main';\n\n const entries = commands ? Object.entries(commands).filter(([, v]) => present(v)) : [];\n // Mutually exclusive so a key like `test:check` classifies ONCE (as a test).\n const testCmds = entries.filter(([k]) => /test/i.test(k));\n const lintCmds = entries.filter(([k]) => /lint|check/i.test(k) && !/test/i.test(k));\n const setupRaw = entries.filter(([k]) => !/test|lint|check/i.test(k));\n // Stable setup order: install → build → dev → start → other (enrich merge order is nondeterministic)\n const setupRank = (k: string): number => {\n const n = k.toLowerCase();\n if (/install|deps/.test(n)) {return 0;}\n if (/^build$|build/.test(n) && !/rebuild/.test(n)) {return 1;}\n if (/^dev$|develop/.test(n)) {return 2;}\n if (/^start$|run/.test(n)) {return 3;}\n return 4;\n };\n const setupCmds = [...setupRaw].sort((a, b) => setupRank(a[0]) - setupRank(b[0]) || a[0].localeCompare(b[0]));\n // Verify bar: tests first, then lint/typecheck (matches BETTER / agents-md-facts)\n const verifyCmds = [...testCmds, ...lintCmds];\n const testCmd = testCmds[0]?.[1];\n const buildCmd = setupCmds.find(([k]) => /build/i.test(k))?.[1];\n\n push(fafMetaTag(data));\n push();\n push(`# AGENTS.md — ${data.project?.name ?? 'Project'}`);\n push();\n\n // §1 Orientation — one line: what it is · language · type · version\n const bits: string[] = [];\n if (data.project?.main_language) {bits.push(String(data.project.main_language));}\n if (present(data.project?.type)) {bits.push(`type: ${String(data.project?.type)}`);}\n if (present(data.project?.version)) {bits.push(`v${String(data.project?.version)}`);}\n let orientation = data.project?.goal ? String(data.project.goal).trim() : '';\n if (bits.length) {orientation += (orientation ? ' — ' : '') + bits.join(' · ');}\n if (orientation) {\n push(orientation);\n push();\n }\n // Never spell the marker tokens out in prose: any injector that searches for\n // them (ours until 7.12.0, and other tools') would take the quote for the block.\n push('> Authored by faf — do not edit the managed block; refresh with `faf export --agents`. Hand-written content outside the managed block is preserved.');\n push();\n\n // §2 Setup & build\n if (setupCmds.length) {\n push('## Setup & build');\n push();\n push('```bash');\n for (const [k, v] of setupCmds) {push(`${v} # ${k}`);}\n push('```');\n push();\n }\n\n // §3 Run the tests — verify bar (tests + lint/typecheck)\n if (verifyCmds.length) {\n push('## Run the tests');\n push();\n push('```bash');\n for (const [, v] of verifyCmds) {push(v);}\n push('```');\n push();\n }\n\n // §4 Where things live — a `Path | Role` table when any entry carries a\n // \" — role\" annotation; a plain list when they're all bare paths.\n if (keyFiles && keyFiles.length) {\n push('## Where things live');\n push();\n const rows = keyFiles.map((f) => {\n const s = String(f);\n const at = s.indexOf(' — ');\n return at > 0 ? { path: s.slice(0, at), role: s.slice(at + 3) } : { path: s, role: '' };\n });\n if (rows.some((r) => r.role)) {\n push('| Path | Role |');\n push('|------|------|');\n for (const r of rows) {push(`| \\`${r.path}\\` | ${r.role} |`);}\n } else {\n for (const r of rows) {push(`- \\`${r.path}\\``);}\n }\n push();\n }\n\n // §5 Conventions — real repo constraints only (human↔assistant prefs excluded)\n const conventions = new Map<string, string>();\n const collect = (obj: Record<string, unknown> | undefined) => {\n if (!obj) {return;}\n for (const [k, v] of Object.entries(obj)) {\n if (HUMAN_PREF.has(k) || !present(v)) {continue;}\n const label = titleLabel(k);\n if (!conventions.has(label)) {conventions.set(label, fmtVal(v));}\n }\n };\n collect(ai?.working_style);\n collect(prefs);\n const detectedConv = (data.conventions as string[] | undefined) ?? [];\n if (conventions.size || detectedConv.length) {\n push('## Conventions');\n push();\n for (const [label, val] of conventions) {push(`- **${label}:** ${val}`);}\n for (const c of detectedConv) {if (present(c)) {push(`- ${c}`);}}\n push();\n }\n\n // §6 Guardrails — Always / Ask first / Never (three-tier BETTER)\n const warnings = (ai?.warnings ?? []).filter((w) => present(w));\n const always: string[] = ['read the tree'];\n if (testCmd) {always.push(`run the tests (\\`${testCmd}\\`)`);}\n if (buildCmd) {always.push('build the project');}\n for (const [, v] of lintCmds.slice(0, 1)) {always.push(`\\`${v}\\``);}\n\n push('## Guardrails');\n push();\n for (const w of warnings) {push(`- ${w}`);}\n push(`- **Always OK:** ${[...new Set(always)].join(' · ')}.`);\n push('- **Ask first:** dependency installs, deletions, migrations, schema changes, publish/release.');\n // Enable-then-restrict: safe path first, then the landmine\n push(`- **Never:** force-push · push straight to \\`${branch}\\` (branch and open a PR) · commit secrets.`);\n push();\n\n // §7 Definition of Done\n const dod: string[] = [];\n for (const [, v] of lintCmds) {dod.push(`\\`${v}\\` exits 0`);}\n for (const [, v] of testCmds) {dod.push(`\\`${v}\\` passes`);}\n dod.push('changes committed with a conventional message');\n push('## Definition of Done');\n push();\n push(`Done when: ${[...new Set(dod)].join(' · ')}.`);\n push();\n\n // §8 When stuck — static BETTER default (cheap, high value)\n push('## When stuck');\n push();\n push(\n `Ask a clarifying question, propose a short plan, or open a draft PR with notes — do not push large speculative changes to \\`${branch}\\`.`,\n );\n push();\n\n // §9 Security & secrets — when detected (never the values)\n if (security && (present(security.secrets) || (security.never ?? []).length)) {\n push('## Security & secrets');\n push();\n if (present(security.secrets)) {\n const ex = present(security.example) ? ` (see \\`${security.example}\\`)` : '';\n push(`- Secrets live in \\`${security.secrets}\\`${ex}. Never read or commit them.`);\n }\n for (const n of security.never ?? []) {if (present(n)) {push(`- Never read or commit \\`${n}\\`.`);}}\n push();\n }\n\n // §10 Commit & PR — always (defaults + optional commit_style)\n push('## Commit & PR');\n push();\n if (prefs && present(prefs.commit_style)) {\n push(`- Commit style: ${fmtVal(prefs.commit_style)}`);\n } else {\n push('- Conventional Commits preferred (`feat:`, `fix:`, `chore:`, …).');\n }\n push(`- Branch off \\`${branch}\\` and open a PR — never commit to \\`${branch}\\` directly.`);\n push('- If build/test scripts or layout change, refresh this file in the **same PR** (`faf export --agents`).');\n push();\n\n // Stack (reference) — actual stack only; omit empty / all-slotignored noise\n if (data.stack) {\n const stack: string[] = [];\n for (const [key, value] of Object.entries(data.stack)) {\n if (NON_STACK.has(key)) {continue;}\n if (filled(value)) {stack.push(`- **${slotLabel(`stack.${key}`)}:** ${value.trim()}`);}\n }\n if (stack.length) {\n push('## Stack');\n push();\n for (const s of stack) {push(s);}\n push();\n }\n }\n\n // No Human Context section — who/why marketing is README / .faf DNA, not agent ops (BETTER).\n\n const gen = data.generated;\n if (present(gen)) {push(`*Context authored: ${String(gen)}*`);}\n\n return lines.join('\\n');\n}\n\n/** Write AGENTS.md — non-destructive: injects/updates the faf block, preserves the rest. */\nexport function writeAgentsMd(dir: string, data: FafData): void {\n injectFafBlock(join(dir, FAF_CONTEXT_FILES.agents), renderAgentsMd(data));\n}\n",
126
+ "/**\n * FAF DNA — the lifecycle of AI context. The \"first heartbeat\".\n *\n * Every project.faf gets a `.faf-dna` lineage record (separate file, NOT\n * embedded in the .faf — so it's compatible with the clean dialect):\n * - Birth Certificate: the honest first score (even 0%) — the \"before\" picture\n * - Growth Record: version history as the score improves\n * - Journey: the one-line story, e.g. \"22% → 85% → 99% ← 92%\"\n *\n * Birth DNA = the raw slot-based score at init. The growth from Birth DNA to\n * the current score is the demonstrated value of FAF.\n *\n * Restored 2026-05-21 — silently dropped in the v6.0 clean-architecture rewrite\n * (it was never knowingly removed). Ported from v5 (sync, v6-native, load-compatible).\n *\n * Other shapes. `.faf-dna` is committed lineage, and other tools have written\n * it in their own shape (claude-faf-mcp's faf_dna wrote `milestones` at the top\n * level and no `versions` or `growth`). Reading never throws on such a file: it\n * reads what it can, and missing parts are derived from what is there. Writing\n * is different: recordGrowth rewrites the file only when faf can prove it wrote\n * every byte — the file is in faf's shape AND its text is exactly faf's own\n * serialisation of what it holds (`JSON.stringify(data, null, 2)` and a final\n * newline), and nothing faf would replace carries a note of the user's. Hand\n * formatting, CRLF, reordered keys, a repeated key or a number JSON cannot hold\n * exactly (a 20-digit id) would all be lost in a rewrite, so such a file — like\n * one in another shape — is read and left exactly as it is, and\n * `readOnlyReason()` says why in one line. `faf init --force` starts a fresh\n * lineage when you ask it to.\n */\n\nimport { existsSync, lstatSync } from 'fs';\nimport { join, basename } from 'path';\nimport { createHash } from 'crypto';\nimport { readBytesIfPresent, readUtf8, resolveInside, safeWriteFile } from './safe-write.js';\n\nexport interface BirthCertificate {\n born: string; // ISO timestamp\n birthDNA: number; // honest first score (raw slot-based, even 0)\n birthDNASource: 'init' | 'legacy';\n projectDNA: string; // 16-char hash of initial state\n certificate: string; // FAF-YYYY-PROJECT-XXXX\n}\n\nexport interface VersionEntry {\n version: string; // v1.0.0, v1.0.1, …\n timestamp: string; // ISO\n score: number;\n changes: string[];\n growth: number; // points above Birth DNA\n}\n\n/** Journey markers only — not score tiers.\n * Tiers live solely in tiers.ts (Trophy 100 · Gold 99 · Silver 95 · Bronze 85 · …).\n * There is no championship / elite / perfect milestone. */\nexport interface Milestone {\n type: 'birth' | 'doubled' | 'peak' | 'current';\n score: number;\n date: string; // ISO\n version: string;\n label: string;\n emoji: string;\n}\n\n/**\n * A lineage a reset ended. `faf init --force` starts a fresh certificate, and\n * the life before it is kept here rather than erased — a birth score is the one\n * value in this format that cannot be recreated, so a reset is a REBIRTH, not a\n * deletion. Chains: a project reset twice keeps both earlier lives, oldest first.\n */\nexport interface PriorLineage {\n born: string; // ISO — when that life started\n birthDNA: number; // its honest first score\n certificate: string; // FAF-YYYY-PROJECT-XXXX\n projectDNA: string;\n lastScore: number; // where it had reached when the reset ended it\n endedAt: string; // ISO — when the reset happened\n}\n\nexport interface FafDNA {\n birthCertificate: BirthCertificate;\n versions: VersionEntry[];\n current: { version: string; score: number; lastSync: string };\n growth: { totalGrowth: number; daysActive: number; milestones: Milestone[] };\n lastModified: string;\n format: 'faf-dna-v1';\n /** Lives ended by a reset, oldest first. Absent when there has never been one. */\n priorLineage?: PriorLineage[];\n}\n\ntype Json = Record<string, unknown>;\n\nconst isObject = (v: unknown): v is Json => typeof v === 'object' && v !== null && !Array.isArray(v);\nconst isNum = (v: unknown): v is number => typeof v === 'number' && Number.isFinite(v);\nconst isStr = (v: unknown): v is string => typeof v === 'string';\nconst VERSION_RE = /^v?\\d+\\.\\d+\\.\\d+$/;\nconst MILESTONE_TYPES = new Set(['birth', 'doubled', 'peak', 'current']);\n\n/** A version entry faf wrote: a semver-ish version and a numeric score. */\nfunction isVersionEntry(v: unknown): v is VersionEntry {\n return isObject(v) && isStr(v.version) && VERSION_RE.test(v.version) && isNum(v.score);\n}\n\n/**\n * True when `raw` is a `.faf-dna` in the shape faf writes: a birth certificate\n * with a birth date and a numeric Birth DNA, a non-empty `versions` list whose\n * entries carry a version and a score, a `current` score and version, and a\n * `growth.milestones` list of entries. Only such a file is ever added to\n * (unknown extra keys in it are kept).\n */\n/**\n * The honest first score, whatever the file calls it. faf has written it as\n * `birthDNA` since 2026-05-21 (fa8dec45); every `.faf-dna` born between\n * 2025-09-20 and that date carries `birthWeight` instead — and BOTH declare\n * `format: 'faf-dna-v1'`, so the version string cannot tell them apart. Such a\n * file is read, never migrated: a birth score is the one value in this format\n * that cannot be recreated, so faf does not rewrite the file to rename a field.\n */\nconst birthScore = (bc: Json): number | null =>\n isNum(bc.birthDNA) ? bc.birthDNA : (isNum(bc.birthWeight) ? bc.birthWeight : null);\n\nconst birthOk = (bc: unknown): boolean => isObject(bc) && isNum(bc.birthDNA) && isStr(bc.born);\nconst isPriorLineage = (v: unknown): v is PriorLineage =>\n isObject(v) && isStr(v.born) && isNum(v.birthDNA) && isNum(v.lastScore) && isStr(v.endedAt);\n\nconst versionsOk = (v: unknown): boolean => Array.isArray(v) && v.length > 0 && v.every(isVersionEntry);\nconst currentOk = (c: unknown): boolean => isObject(c) && isNum(c.score) && isStr(c.version);\nconst growthOk = (g: unknown): boolean => isObject(g) && Array.isArray(g.milestones) && g.milestones.every(isObject);\n\nfunction hasFafShape(raw: unknown): raw is FafDNA {\n return isObject(raw) && birthOk(raw.birthCertificate) && versionsOk(raw.versions) && currentOk(raw.current) && growthOk(raw.growth);\n}\n\n/** True when something is at `path` — a file, or a link (even a dangling one). */\nfunction present(path: string): boolean {\n try {\n lstatSync(path);\n return true;\n } catch {\n return false;\n }\n}\n\n/** faf's own serialisation of a `.faf-dna` — the exact text save() writes. */\nconst serialise = (dna: unknown): string => `${JSON.stringify(dna, null, 2)}\\n`;\n\n/** What faf writes in `current` and in a milestone. recordGrowth replaces\n * `current` and the peak / current milestones whole, so a key of the user's\n * in one of them would be lost. */\nconst CURRENT_KEYS = new Set(['version', 'score', 'lastSync']);\nconst MILESTONE_KEYS = new Set(['type', 'score', 'date', 'version', 'label', 'emoji']);\nconst onlyKeys = (o: object, keys: Set<string>): boolean => Object.keys(o).every((k) => keys.has(k));\n\n/** The label and emoji faf gives each milestone it writes. */\nconst MILESTONE_TEXT: Record<Milestone['type'], { label: string; emoji: string }> = {\n birth: { label: 'Birth', emoji: '🐣' },\n doubled: { label: 'Doubled', emoji: '2️⃣' },\n peak: { label: 'Peak', emoji: '🏔️' },\n current: { label: 'Current', emoji: '📍' },\n};\n\n/** The milestones recordGrowth replaces: the peak and the current one. */\nconst replaced = (dna: FafDNA): Milestone[] => dna.growth.milestones.filter((m) => m.type === 'peak' || m.type === 'current');\n\n/** True when every object recordGrowth replaces holds only keys faf writes there. */\nconst onlyFafKeys = (dna: FafDNA): boolean =>\n onlyKeys(dna.current, CURRENT_KEYS) && replaced(dna).every((m) => onlyKeys(m, MILESTONE_KEYS));\n\n/** True when the peak and current milestones carry faf's own label and emoji\n * for their type — a relabelled one is the user's text. */\nconst fafLabels = (dna: FafDNA): boolean =>\n replaced(dna).every((m) => m.label === MILESTONE_TEXT[m.type].label && m.emoji === MILESTONE_TEXT[m.type].emoji);\n\n/** True when every object recordGrowth replaces is exactly what faf writes there. */\nfunction growthLosesNothing(dna: FafDNA): boolean {\n return onlyFafKeys(dna) && fafLabels(dna);\n}\n\n/** Why faf leaves a `.faf-dna` as it is, in one line. */\nconst NOT_FAF_SHAPE = \".faf-dna is not in faf's shape: faf reads it and leaves it as it is.\";\nconst NOT_FAF_TEXT =\n '.faf-dna is not exactly as faf wrote it (hand formatting, key order, a repeated key or a number JSON cannot hold exactly): faf reads it and leaves it as it is.';\nconst USER_NOTE =\n '.faf-dna has a key of yours in an entry faf would replace (current, or the peak or current milestone): faf reads it and leaves it as it is.';\nconst USER_LABEL =\n '.faf-dna has a label or emoji of yours on a milestone faf would replace (the peak or current one): faf reads it and leaves it as it is.';\nconst NO_BIRTH = '.faf-dna has no birth certificate faf can read: faf leaves it as it is.';\n\n/** Milestones as the journey reads them: well-formed entries only. */\nfunction readMilestones(v: unknown): Milestone[] {\n if (!Array.isArray(v)) {return [];}\n return v.filter((m): m is Milestone => isObject(m) && isStr(m.type) && MILESTONE_TYPES.has(m.type) && isNum(m.score));\n}\n\n/**\n * A readable view of a `.faf-dna` in any shape, or null when there is no usable\n * birth certificate (no numeric Birth DNA). Missing parts are derived from what\n * is there — `growth.milestones` falls back to a top-level `milestones`, the\n * current score to the last version or the Birth DNA — so the journey reads\n * without throwing. The view is for reading; it is never written back.\n */\nconst str = (v: unknown, fallback = ''): string => (isStr(v) ? v : fallback);\n\n/** Well-formed version entries, each with every field the log reads. */\nfunction readVersions(v: unknown, birthDNA: number): VersionEntry[] {\n if (!Array.isArray(v)) {return [];}\n return v.filter(isVersionEntry).map((e) => ({\n version: e.version,\n timestamp: str(e.timestamp),\n score: e.score,\n changes: Array.isArray(e.changes) ? e.changes.filter(isStr) : [],\n growth: isNum(e.growth) ? e.growth : e.score - birthDNA,\n }));\n}\n\n/** The current score and version: as written, else the last version, else birth. */\nfunction readCurrent(cur: Json, last: VersionEntry | undefined, birthDNA: number, born: string): FafDNA['current'] {\n return {\n version: str(cur.version, last?.version ?? 'v1.0.0'),\n score: isNum(cur.score) ? cur.score : (last?.score ?? birthDNA),\n lastSync: str(cur.lastSync, born),\n };\n}\n\nfunction readableView(raw: unknown): FafDNA | null {\n if (!isObject(raw) || !isObject(raw.birthCertificate)) {return null;}\n const bc = raw.birthCertificate;\n const birthDNA = birthScore(bc);\n if (birthDNA === null) {return null;}\n const born = str(bc.born);\n const versions = readVersions(raw.versions, birthDNA);\n const current = readCurrent(isObject(raw.current) ? raw.current : {}, versions[versions.length - 1], birthDNA, born);\n const growth = isObject(raw.growth) ? raw.growth : {};\n return {\n birthCertificate: {\n born,\n birthDNA,\n birthDNASource: bc.birthDNASource === 'legacy' || bc.birthWeightSource === 'legacy' ? 'legacy' : 'init',\n projectDNA: str(bc.projectDNA),\n certificate: str(bc.certificate),\n },\n versions,\n current,\n growth: {\n totalGrowth: current.score - birthDNA,\n daysActive: isNum(growth.daysActive) ? growth.daysActive : 0,\n milestones: readMilestones(Array.isArray(growth.milestones) ? growth.milestones : raw.milestones),\n },\n lastModified: str(raw.lastModified, born),\n format: 'faf-dna-v1',\n // Carried even out of a shape faf will not write to: losing earlier lives\n // while merely READING the file would be the very thing this guards against.\n ...(Array.isArray(raw.priorLineage) && raw.priorLineage.some(isPriorLineage)\n ? { priorLineage: raw.priorLineage.filter(isPriorLineage) }\n : {}),\n };\n}\n\n/**\n * The `.faf-dna` lineage of one project: birth, growth and the journey line.\n * This is the API `faf init` (birth), `faf auto` / `faf refresh` (recordGrowth)\n * and `faf dna` (getJourney, getBirthDNADisplay, getLog) use.\n *\n * - `birth(score)` starts a new lineage and writes it, replacing any\n * `.faf-dna` there (check `exists()` first unless a fresh start is meant —\n * `faf init` births only when there is none, or with `--force`).\n * - `recordGrowth(score, changes)` adds a version when the score changed.\n * It adds only to a file faf can prove it wrote (see the file header);\n * for any other file it writes nothing and returns null, and\n * `readOnlyReason()` says why.\n * - Reads never throw: a missing, unreadable, non-UTF-8 or non-JSON file,\n * or one with no usable birth certificate, reads as null / '' / [].\n *\n * Every write is atomic and stays inside the project: a `.faf-dna` link that\n * leads out of the project, dangles or leads to a file with another name is\n * refused (and reads as absent). A write is refused, too, when the file\n * changed on disk after this manager read it (another `faf` process recorded\n * growth meanwhile, say): SafePathError `changed`, nothing written.\n */\nexport class FafDNAManager {\n private readonly projectPath: string;\n private readonly dnaPath: string;\n private dna: FafDNA | null = null;\n /** True when the loaded file is one faf wrote (so it may be added to). */\n private own = false;\n /** The text read from `.faf-dna` (or last written), for the write's check. */\n private text: string | undefined;\n /** Why the file is read only, when it is; null when faf may add to it. */\n private reason: string | null = null;\n /** True once this manager found no `.faf-dna` (exists / load / birth) and\n * has not written one since: a birth then refuses a file that appeared\n * meanwhile instead of writing over it. */\n private sawNoFile = false;\n\n constructor(projectPath: string) {\n this.projectPath = projectPath;\n this.dnaPath = join(projectPath, '.faf-dna');\n }\n\n exists(): boolean {\n const there = existsSync(this.dnaPath);\n if (!there && !present(this.dnaPath)) {this.sawNoFile = true;}\n return there;\n }\n\n /** Birth — the first heartbeat. Writes the birth certificate with the honest first score.\n * When this manager found no `.faf-dna` (now, or at an earlier exists() /\n * load()), a file that appeared since is refused (SafePathError `changed`)\n * rather than written over; over a `.faf-dna` that is there, birth starts a\n * fresh lineage (`faf init --force`). */\n /** The lives this birth is about to end, oldest first — the one already on\n * disk, plus any it had itself inherited. Empty when there is no readable\n * `.faf-dna`, so a first birth writes no `priorLineage` key at all. */\n private endingLineage(): PriorLineage[] {\n // Deliberately NOT load(): that records what this manager has read, and\n // save()'s guard uses exactly that to refuse a write over a `.faf-dna` which\n // appeared since. Reading here to carry a lineage forward must not make the\n // manager believe it has seen the file (owner rule T11).\n const on = this.dna ?? (() => {\n const r = this.read();\n return r === null ? null : readableView(r.raw);\n })();\n const view = on;\n if (!view) {return [];}\n const bc = view.birthCertificate;\n return [\n ...(view.priorLineage ?? []),\n {\n born: bc.born,\n birthDNA: bc.birthDNA,\n certificate: bc.certificate,\n projectDNA: bc.projectDNA,\n lastScore: view.current.score,\n endedAt: new Date().toISOString(),\n },\n ];\n }\n\n birth(birthDNA: number): FafDNA {\n // Read what is here BEFORE overwriting it: a reset ends a life, it does not\n // unhappen one. Any shape faf can read contributes, including the\n // `birthWeight` files faf itself wrote before 2026-05-21.\n const priorLineage = this.endingLineage();\n if (!present(this.dnaPath)) {this.sawNoFile = true;}\n const now = new Date().toISOString();\n this.own = true;\n this.dna = {\n birthCertificate: {\n born: now,\n birthDNA,\n birthDNASource: 'init',\n projectDNA: this.generateProjectDNA(),\n certificate: this.generateCertificate(),\n },\n versions: [{ version: 'v1.0.0', timestamp: now, score: birthDNA, changes: ['Birth — initial context'], growth: 0 }],\n current: { version: 'v1.0.0', score: birthDNA, lastSync: now },\n growth: {\n totalGrowth: 0,\n daysActive: 0,\n milestones: [{ type: 'birth', score: birthDNA, date: now, version: 'v1.0.0', label: 'Birth', emoji: '🐣' }],\n },\n lastModified: now,\n format: 'faf-dna-v1',\n ...(priorLineage.length > 0 ? { priorLineage } : {}),\n };\n this.save();\n return this.dna;\n }\n\n /** True when `.faf-dna` exists and is one faf wrote — in faf's shape, and\n * exactly faf's own text — so recordGrowth may add to it. Any other file is\n * read, not written. */\n isFafShape(): boolean {\n return this.load() !== null && this.own;\n }\n\n /** Why faf leaves this `.faf-dna` as it is, in one plain line — or null when\n * there is none, or recordGrowth may add to it. */\n readOnlyReason(): string | null {\n this.load();\n return this.own ? null : this.reason;\n }\n\n /** Record growth — a new score on the journey. Returns null when there is no\n * DNA yet, or when the file is in another tool's shape (nothing is written). */\n recordGrowth(newScore: number, changes: string[]): FafDNA | null {\n if (!this.dna && !this.load()) {return null;}\n if (!this.own) {return null;}\n const dna = this.dna!;\n if (newScore === dna.current.score) {return dna;} // no change, no new version\n\n const now = new Date().toISOString();\n const birthDNA = dna.birthCertificate.birthDNA;\n const growth = newScore - birthDNA;\n const newVersion = this.incrementVersion(dna.versions[dna.versions.length - 1].version);\n\n dna.versions.push({ version: newVersion, timestamp: now, score: newScore, changes, growth });\n dna.current = { version: newVersion, score: newScore, lastSync: now };\n dna.growth.totalGrowth = growth;\n dna.growth.daysActive = this.daysSince(dna.birthCertificate.born);\n this.updateMilestones(newScore, newVersion, now);\n this.save();\n return dna;\n }\n\n /** The one-line journey: e.g. \"22% → 85% → 99% ← 92%\". */\n getJourney(): string {\n if (!this.dna && !this.load()) {return '';}\n const dna = this.dna!;\n const birth = dna.birthCertificate.birthDNA;\n const peak = dna.growth.milestones.find((m) => m.type === 'peak');\n const current = dna.current.score;\n\n let journey = `${birth}%`;\n if (peak && peak.score !== birth) {\n journey += ` → ${peak.score}%`;\n if (current < peak.score) {journey += ` ← ${current}%`;}\n } else if (current !== birth) {\n journey += ` → ${current}%`;\n }\n return journey;\n }\n\n getBirthDNADisplay(): { current: number; birthDNA: number; growth: number; born: string } | null {\n if (!this.dna && !this.load()) {return null;}\n const dna = this.dna!;\n return {\n current: dna.current.score,\n birthDNA: dna.birthCertificate.birthDNA,\n growth: dna.current.score - dna.birthCertificate.birthDNA,\n born: isStr(dna.birthCertificate.born) ? dna.birthCertificate.born : '',\n };\n }\n\n /** Complete version history, newest last. */\n getLog(): string[] {\n if (!this.dna && !this.load()) {return [];}\n return this.dna!.versions.map((v) => {\n const emoji = v.growth > 50 ? '🚀' : v.growth > 20 ? '📈' : '📊';\n const day = isStr(v.timestamp) ? v.timestamp.split('T')[0] : '';\n const changes = Array.isArray(v.changes) ? v.changes.filter(isStr).join(', ') : '';\n return `${v.version} — ${v.score}% ${emoji} (${day}) ${changes}`;\n });\n }\n\n /** Load `.faf-dna`. Never throws: missing, unreadable, not UTF-8, not JSON, a\n * refused link, or no usable birth certificate → null. A file faf did not\n * write (another shape, or not exactly faf's text) loads as a readable view\n * (see the file header). */\n load(): FafDNA | null {\n if (this.dna) {return this.dna;}\n if (!existsSync(this.dnaPath)) {\n if (!present(this.dnaPath)) {this.sawNoFile = true;}\n return null;\n }\n const read = this.read();\n if (read === null) {return null;}\n const { text, raw } = read;\n if (hasFafShape(raw) && serialise(raw) === text && growthLosesNothing(raw)) {\n this.own = true;\n this.reason = null;\n this.dna = raw;\n } else {\n this.own = false;\n this.dna = readableView(raw);\n this.reason = !this.dna ? NO_BIRTH : !hasFafShape(raw) ? NOT_FAF_SHAPE : serialise(raw) !== text ? NOT_FAF_TEXT\n : onlyFafKeys(raw) ? USER_LABEL : USER_NOTE;\n }\n this.text = text;\n return this.dna;\n }\n\n /** The file's text (strict UTF-8) and its JSON, or null with the reason noted. */\n private read(): { text: string; raw: unknown } | null {\n let text: string;\n try {\n text = readUtf8(resolveInside(this.projectPath, '.faf-dna'));\n } catch (e) {\n this.reason = e instanceof Error ? e.message : String(e);\n return null;\n }\n try {\n return { text, raw: JSON.parse(text) as unknown };\n } catch {\n this.reason = '.faf-dna is not JSON: faf leaves it as it is.';\n return null;\n }\n }\n\n private save(): void {\n if (!this.dna) {return;}\n this.dna.lastModified = new Date().toISOString();\n const text = serialise(this.dna);\n // The file must still be what this manager read (or, when it found none,\n // still be absent; before any read, what is there now): another process's\n // growth — or a .faf-dna that appeared meanwhile — is never written over.\n const expect = this.text ?? (this.sawNoFile ? null : readBytesIfPresent(resolveInside(this.projectPath, '.faf-dna')));\n // Atomic, and never through a link that leaves the project or dangles.\n safeWriteFile(this.dnaPath, text, { root: this.projectPath, expect });\n this.text = text;\n this.sawNoFile = false;\n }\n\n private generateProjectDNA(): string {\n return createHash('sha256')\n .update([this.projectPath, Date.now().toString(), Math.random().toString(36)].join(':'))\n .digest('hex')\n .substring(0, 16);\n }\n\n private generateCertificate(): string {\n const year = new Date().getFullYear();\n const rand = Math.random().toString(36).substring(2, 6).toUpperCase();\n const proj = basename(this.projectPath).replace(/[^A-Z0-9]/gi, '').toUpperCase().substring(0, 8).padEnd(4, 'X');\n return `FAF-${year}-${proj}-${rand}`;\n }\n\n private incrementVersion(version: string): string {\n const [maj, min, patch] = version.replace('v', '').split('.').map(Number);\n return `v${maj}.${min}.${patch + 1}`;\n }\n\n private daysSince(iso: string): number {\n return Math.floor((Date.now() - new Date(iso).getTime()) / 86_400_000);\n }\n\n private updateMilestones(score: number, version: string, now: string): void {\n if (!this.dna) {return;}\n const ms = this.dna.growth.milestones;\n const has = (t: Milestone['type']) => ms.some((m) => m.type === t);\n const add = (type: Milestone['type']) =>\n ms.push({ type, score, date: now, version, ...MILESTONE_TEXT[type] });\n\n if (score >= this.dna.birthCertificate.birthDNA * 2 && score > 0 && !has('doubled')) {add('doubled');}\n\n const peak = ms.find((m) => m.type === 'peak');\n if (!peak || score > peak.score) {\n if (peak) {ms.splice(ms.indexOf(peak), 1);}\n add('peak');\n }\n const cur = ms.findIndex((m) => m.type === 'current');\n if (cur >= 0) {ms.splice(cur, 1);}\n add('current');\n }\n}\n",
127
+ "import { join } from 'path';\nimport type { FafData } from '../core/types.js';\nimport { FAF_CONTEXT_FILES } from '../core/safe-write.js';\nimport { fafMetaTag } from './claude.js';\nimport { injectFafBlock } from './inject.js';\nimport { filled, slotLabel, titleLabel } from './labels.js';\nimport { splitCommandNote, commandOnly } from './command-note.js';\n\n/** A value carrying real content — non-empty, not slotignored, non-empty array. */\nconst present = (v: unknown): boolean =>\n v !== null && v !== undefined && v !== '' && v !== 'slotignored' && !(Array.isArray(v) && v.length === 0);\n\n/** Render a slot value for inline display (arrays → comma list). */\nconst fmtVal = (v: unknown): string => (Array.isArray(v) ? v.join(', ') : String(v));\n\n/** Preference keys that describe human↔assistant interaction, NOT repo conventions. Excluded from AGENTS.md. */\nconst HUMAN_PREF = new Set([\n 'commit_style', 'communication', 'response_style', 'explanation_level', 'explanations', 'documentation', 'code_first',\n]);\n\n/** Stack keys that are context/marketing, not actual stack. Kept out of the Stack section. */\nconst NON_STACK = new Set(['target_user', 'core_problem', 'mission_purpose']);\n\n/**\n * Author a BETTER-shaped AGENTS.md from .faf data (+ repo enrichment at export).\n *\n * Deterministic projection from curated TRUTH — facts, not hallucinated prose\n * (Gloaguen: LLM freewrite hurts). Sections: orientation · setup · verify ·\n * map · conventions · three-tier guardrails · DoD · when stuck · security ·\n * commit. Human Context (who/why marketing) is intentionally omitted — that\n * belongs in README / project.faf, not agent ops.\n *\n * Design: BETTER guide + hand exemplar (faf-cli AGENTS.md) + agents-md-facts.\n */\nexport function renderAgentsMd(data: FafData): string {\n const lines: string[] = [];\n const push = (s = '') => lines.push(s);\n\n const ai = data.ai_instructions as\n | { warnings?: string[]; working_style?: Record<string, unknown> }\n | undefined;\n const prefs = data.preferences as Record<string, unknown> | undefined;\n const instant = data.instant_context as { key_files?: string[] } | undefined;\n const security = data.security as\n | { secrets?: string; example?: string; never?: string[] }\n | undefined;\n const commands = data.commands;\n const keyFiles = data.key_files ?? instant?.key_files;\n // Integration branch — git-flow repos PR into `dev`/`develop`, not `main`.\n // Read from project.default_branch; default `main`.\n const branch = present(data.project?.default_branch) ? String(data.project?.default_branch) : 'main';\n\n const entries = commands ? Object.entries(commands).filter(([, v]) => present(v)) : [];\n // Mutually exclusive so a key like `test:check` classifies ONCE (as a test).\n const testCmds = entries.filter(([k]) => /test/i.test(k));\n const lintCmds = entries.filter(([k]) => /lint|check/i.test(k) && !/test/i.test(k));\n const setupRaw = entries.filter(([k]) => !/test|lint|check/i.test(k));\n // Stable setup order: install → build → dev → start → other (enrich merge order is nondeterministic)\n const setupRank = (k: string): number => {\n const n = k.toLowerCase();\n if (/install|deps/.test(n)) {return 0;}\n if (/^build$|build/.test(n) && !/rebuild/.test(n)) {return 1;}\n if (/^dev$|develop/.test(n)) {return 2;}\n if (/^start$|run/.test(n)) {return 3;}\n return 4;\n };\n const setupCmds = [...setupRaw].sort((a, b) => setupRank(a[0]) - setupRank(b[0]) || a[0].localeCompare(b[0]));\n // Verify bar: tests first, then lint/typecheck (matches BETTER / agents-md-facts)\n const verifyCmds = [...testCmds, ...lintCmds];\n // Prose and checklists show the command alone — a note belongs in a comment.\n const buildEntry = setupCmds.find(([k]) => /build/i.test(k));\n const testCmd = testCmds[0] ? commandOnly(testCmds[0][1]) : undefined;\n const buildCmd = buildEntry ? commandOnly(buildEntry[1]) : undefined;\n\n push(fafMetaTag(data));\n push();\n push(`# AGENTS.md — ${data.project?.name ?? 'Project'}`);\n push();\n\n // §1 Orientation — one line: what it is · language · type · version\n const bits: string[] = [];\n if (data.project?.main_language) {bits.push(String(data.project.main_language));}\n if (present(data.project?.type)) {bits.push(`type: ${String(data.project?.type)}`);}\n if (present(data.project?.version)) {bits.push(`v${String(data.project?.version)}`);}\n let orientation = data.project?.goal ? String(data.project.goal).trim() : '';\n if (bits.length) {orientation += (orientation ? ' — ' : '') + bits.join(' · ');}\n if (orientation) {\n push(orientation);\n push();\n }\n // Never spell the marker tokens out in prose: any injector that searches for\n // them (ours until 7.12.0, and other tools') would take the quote for the block.\n push('> Authored by faf — do not edit the managed block; refresh with `faf export --agents`. Hand-written content outside the managed block is preserved.');\n push();\n\n // §2 Setup & build\n if (setupCmds.length) {\n push('## Setup & build');\n push();\n push('```bash');\n for (const [k, v] of setupCmds) {\n const { cmd, note } = splitCommandNote(v);\n push(`${cmd} # ${note ?? k}`);\n }\n push('```');\n push();\n }\n\n // §3 Run the tests — verify bar (tests + lint/typecheck)\n if (verifyCmds.length) {\n push('## Run the tests');\n push();\n push('```bash');\n for (const [, v] of verifyCmds) {\n const { cmd, note } = splitCommandNote(v);\n push(note ? `${cmd} # ${note}` : cmd);\n }\n push('```');\n push();\n }\n\n // §4 Where things live — a `Path | Role` table when any entry carries a\n // \" — role\" annotation; a plain list when they're all bare paths.\n if (keyFiles && keyFiles.length) {\n push('## Where things live');\n push();\n const rows = keyFiles.map((f) => {\n const s = String(f);\n const at = s.indexOf(' — ');\n return at > 0 ? { path: s.slice(0, at), role: s.slice(at + 3) } : { path: s, role: '' };\n });\n if (rows.some((r) => r.role)) {\n push('| Path | Role |');\n push('|------|------|');\n for (const r of rows) {push(`| \\`${r.path}\\` | ${r.role} |`);}\n } else {\n for (const r of rows) {push(`- \\`${r.path}\\``);}\n }\n push();\n }\n\n // §5 Conventions — real repo constraints only (human↔assistant prefs excluded)\n const conventions = new Map<string, string>();\n const collect = (obj: Record<string, unknown> | undefined) => {\n if (!obj) {return;}\n for (const [k, v] of Object.entries(obj)) {\n if (HUMAN_PREF.has(k) || !present(v)) {continue;}\n const label = titleLabel(k);\n if (!conventions.has(label)) {conventions.set(label, fmtVal(v));}\n }\n };\n collect(ai?.working_style);\n collect(prefs);\n const detectedConv = (data.conventions as string[] | undefined) ?? [];\n if (conventions.size || detectedConv.length) {\n push('## Conventions');\n push();\n for (const [label, val] of conventions) {push(`- **${label}:** ${val}`);}\n for (const c of detectedConv) {if (present(c)) {push(`- ${c}`);}}\n push();\n }\n\n // §6 Guardrails — Always / Ask first / Never (three-tier BETTER)\n const warnings = (ai?.warnings ?? []).filter((w) => present(w));\n const always: string[] = ['read the tree'];\n if (testCmd) {always.push(`run the tests (\\`${testCmd}\\`)`);}\n if (buildCmd) {always.push('build the project');}\n for (const [, v] of lintCmds.slice(0, 1)) {always.push(`\\`${commandOnly(v)}\\``);}\n\n push('## Guardrails');\n push();\n for (const w of warnings) {push(`- ${w}`);}\n push(`- **Always OK:** ${[...new Set(always)].join(' · ')}.`);\n push('- **Ask first:** dependency installs, deletions, migrations, schema changes, publish/release.');\n // Enable-then-restrict: safe path first, then the landmine\n push(`- **Never:** force-push · push straight to \\`${branch}\\` (branch and open a PR) · commit secrets.`);\n push();\n\n // §7 Definition of Done\n const dod: string[] = [];\n for (const [, v] of lintCmds) {dod.push(`\\`${commandOnly(v)}\\` exits 0`);}\n for (const [, v] of testCmds) {dod.push(`\\`${commandOnly(v)}\\` passes`);}\n dod.push('changes committed with a conventional message');\n push('## Definition of Done');\n push();\n push(`Done when: ${[...new Set(dod)].join(' · ')}.`);\n push();\n\n // §8 When stuck — static BETTER default (cheap, high value)\n push('## When stuck');\n push();\n push(\n `Ask a clarifying question, propose a short plan, or open a draft PR with notes — do not push large speculative changes to \\`${branch}\\`.`,\n );\n push();\n\n // §9 Security & secrets — when detected (never the values)\n if (security && (present(security.secrets) || (security.never ?? []).length)) {\n push('## Security & secrets');\n push();\n if (present(security.secrets)) {\n const ex = present(security.example) ? ` (see \\`${security.example}\\`)` : '';\n push(`- Secrets live in \\`${security.secrets}\\`${ex}. Never read or commit them.`);\n }\n for (const n of security.never ?? []) {if (present(n)) {push(`- Never read or commit \\`${n}\\`.`);}}\n push();\n }\n\n // §10 Commit & PR — always (defaults + optional commit_style)\n push('## Commit & PR');\n push();\n if (prefs && present(prefs.commit_style)) {\n push(`- Commit style: ${fmtVal(prefs.commit_style)}`);\n } else {\n push('- Conventional Commits preferred (`feat:`, `fix:`, `chore:`, …).');\n }\n push(`- Branch off \\`${branch}\\` and open a PR — never commit to \\`${branch}\\` directly.`);\n push('- If build/test scripts or layout change, refresh this file in the **same PR** (`faf export --agents`).');\n push();\n\n // Stack (reference) — actual stack only; omit empty / all-slotignored noise\n if (data.stack) {\n const stack: string[] = [];\n for (const [key, value] of Object.entries(data.stack)) {\n if (NON_STACK.has(key)) {continue;}\n if (filled(value)) {stack.push(`- **${slotLabel(`stack.${key}`)}:** ${value.trim()}`);}\n }\n if (stack.length) {\n push('## Stack');\n push();\n for (const s of stack) {push(s);}\n push();\n }\n }\n\n // No Human Context section — who/why marketing is README / .faf DNA, not agent ops (BETTER).\n\n const gen = data.generated;\n if (present(gen)) {push(`*Context authored: ${String(gen)}*`);}\n\n return lines.join('\\n');\n}\n\n/** Write AGENTS.md — non-destructive: injects/updates the faf block, preserves the rest. */\nexport function writeAgentsMd(dir: string, data: FafData): void {\n injectFafBlock(join(dir, FAF_CONTEXT_FILES.agents), renderAgentsMd(data));\n}\n",
128
128
  "import { existsSync, statSync } from 'fs';\nimport { join } from 'path';\nimport type { FafData } from '../core/types.js';\nimport { injectFafBlock } from './inject.js';\nimport { slotLabel } from './labels.js';\nimport { FAF_CONTEXT_FILES, readUtf8, resolveInside } from '../core/safe-write.js';\n\nconst CLAUDE_MD = FAF_CONTEXT_FILES.claude;\nconst SYNC_MARKER = 'STATUS: SYNC ACTIVE';\n\n/** Read CLAUDE.md from a directory. A CLAUDE.md link that leaves the\n * directory, or leads to a file that is not an AI context file, is refused\n * (SafePathError) and nothing is read; CLAUDE.md → AGENTS.md is read\n * through. A CLAUDE.md that is not UTF-8 is refused too (`faf sync --direction\n * pull` writes what it reads into project.faf). */\nexport function readClaudeMd(dir: string): string | null {\n const path = join(dir, CLAUDE_MD);\n if (!existsSync(path)) {return null;}\n return readUtf8(resolveInside(dir, CLAUDE_MD));\n}\n\n/** Write CLAUDE.md — non-destructive: injects/updates the faf block, preserves the rest. */\nexport function writeClaudeMd(dir: string, content: string): void {\n injectFafBlock(join(dir, CLAUDE_MD), content);\n}\n\n/** Get mtime of CLAUDE.md */\nexport function claudeMdMtime(dir: string): number | null {\n const path = join(dir, CLAUDE_MD);\n if (!existsSync(path)) {return null;}\n return statSync(path).mtimeMs;\n}\n\n/** Optional knobs for the 2-line FAF stamp. */\nexport interface FafMetaOpts {\n /** Canonical structured-truth file the md claims (default `project.faf`).\n * Use for AI-context md (CLAUDE/GEMINI/AGENTS/.cursorrules). */\n claim?: string;\n /** Role identifier (`readme`, `changelog`, `skill`, …).\n * Use for repo-meta md whose primary reader is human. Mutually exclusive with `claim`. */\n doc?: string;\n /** Current AI-readiness score (0–100). */\n score?: number;\n /** Sister-product family — `FAF` (default), `TAF`, `WJTTC`, … */\n family?: string;\n /** Other docs in the repo the reader should know about. */\n siblings?: string[];\n}\n\n/**\n * Build the canonical 2-line FAF stamp.\n *\n * Line 1 — positional identity: `name | lang | type | description`\n * Line 2 — key=value navigation/state: `claim=… | score=… | family=… | siblings=…`\n *\n * Spec: `memory/cross-ai-2-line-meta-stamp.md`. Issue #64.\n */\nexport function fafMetaTag(data: FafData, opts: FafMetaOpts = {}): string {\n const name = String(data.project?.name ?? '').trim();\n const lang = String(data.project?.main_language ?? '').trim();\n const type = String(data.project?.type ?? '').trim();\n const desc = String(data.project?.goal ?? '').trim();\n const line1 = `<!-- faf: ${[name, lang, type, desc].join(' | ')} -->`;\n\n const kv: string[] = [];\n if (opts.doc) {\n kv.push(`doc=${opts.doc}`);\n } else {\n kv.push(`claim=${opts.claim ?? 'project.faf'}`);\n }\n if (typeof opts.score === 'number') {kv.push(`score=${opts.score}`);}\n kv.push(`family=${opts.family ?? 'FAF'}`);\n if (opts.siblings && opts.siblings.length > 0) {\n kv.push(`siblings=${opts.siblings.join(',')}`);\n }\n const line2 = `<!-- faf: ${kv.join(' | ')} -->`;\n\n return `${line1}\\n${line2}`;\n}\n\n/** Render CLAUDE.md content from .faf data */\nexport function renderClaudeMd(data: FafData): string {\n const lines: string[] = [];\n const name = data.project?.name ?? 'Project';\n const lang = data.project?.main_language ?? '';\n const goal = data.project?.goal ?? '';\n\n // Meta tag — project DNA, invisible to renderers, visible to AI\n lines.push(fafMetaTag(data));\n lines.push('');\n\n // Title\n lines.push(`# CLAUDE.md — ${name}`);\n lines.push('');\n\n // What This Is\n if (goal) {\n lines.push('## What This Is');\n lines.push('');\n lines.push(goal);\n lines.push('');\n }\n\n // Stack — only non-ignored slots\n const stack = data.stack ?? {};\n const stackEntries: string[] = [];\n if (lang) {stackEntries.push(`**Language:** ${lang}`);}\n for (const [key, val] of Object.entries(stack)) {\n if (val && val !== 'slotignored' && String(val).trim()) {\n stackEntries.push(`**${slotLabel(`stack.${key}`)}:** ${val}`);\n }\n }\n if (stackEntries.length > 0) {\n lines.push('## Stack');\n lines.push('');\n for (const entry of stackEntries) {\n lines.push(`- ${entry}`);\n }\n lines.push('');\n }\n\n // Context — from human_context (the 6Ws)\n const hc = data.human_context ?? {};\n const contextEntries = ([\n ['who', hc.who], ['what', hc.what], ['why', hc.why],\n ['where', hc.where], ['when', hc.when], ['how', hc.how],\n ] as [string, unknown][])\n .filter(([, v]) => v && String(v).trim())\n .map(([k, v]) => `- **${slotLabel(`human_context.${k}`)}:** ${v}`);\n\n if (contextEntries.length > 0) {\n lines.push('## Context');\n lines.push('');\n lines.push(...contextEntries);\n lines.push('');\n }\n\n // Sync footer\n lines.push('---');\n lines.push('');\n lines.push(`*${SYNC_MARKER} — ${new Date().toISOString()}*`);\n lines.push('');\n\n return lines.join('\\n');\n}\n\n/** Strip a trailing `vN`, `vN.N`, `vN.N.N…` version token from a project name.\n * Requires whitespace before the `v` so hyphenated names like `mcpaas-vue` or\n * `faf-cli-v6` are preserved. Issue #64 sibling — see #62. */\nfunction stripVersionTrailer(name: string): string {\n return name.replace(/\\s+v\\d+(?:\\.\\d+)*\\s*$/i, '').trim();\n}\n\n/** Extract project data from CLAUDE.md content (pull direction) */\nexport function parseClaudeMd(content: string): Partial<FafData> {\n const data: Partial<FafData> = { project: {} };\n\n // New format: \"# CLAUDE.md — project-name\"\n const titleMatch = content.match(/^# CLAUDE\\.md\\s*[—–-]\\s*(.+)$/m);\n if (titleMatch) {data.project!.name = stripVersionTrailer(titleMatch[1].trim());}\n\n // Old format fallback: \"**Name:** value\"\n if (!data.project!.name) {\n const nameMatch = content.match(/\\*\\*Name:\\*\\*\\s*(.+)/);\n if (nameMatch) {data.project!.name = stripVersionTrailer(nameMatch[1].trim());}\n }\n\n // New format: paragraph after \"## What This Is\"\n const whatMatch = content.match(/## What This Is\\s*\\n\\s*\\n(.+)/);\n if (whatMatch) {data.project!.goal = whatMatch[1].trim();}\n\n // Old format fallback: \"**What Building:** value\"\n if (!data.project!.goal) {\n const goalMatch = content.match(/\\*\\*What Building:\\*\\*\\s*(.+)/);\n if (goalMatch) {data.project!.goal = goalMatch[1].trim();}\n }\n\n // New format: \"**Language:** value\" under Stack\n const langMatch = content.match(/\\*\\*Language:\\*\\*\\s*(.+)/);\n if (langMatch) {data.project!.main_language = langMatch[1].trim();}\n\n // Old format fallback: \"**Main Language:** value\"\n if (!data.project!.main_language) {\n const oldLangMatch = content.match(/\\*\\*Main Language:\\*\\*\\s*(.+)/);\n if (oldLangMatch) {data.project!.main_language = oldLangMatch[1].trim();}\n }\n\n return data;\n}\n",
129
- "import { dirname, resolve } from 'path';\nimport { SafePathError, readUtf8, resolveInside, safeWriteFile } from '../core/safe-write.js';\nimport { BlockReader, MAX_OPEN_CONTAINERS, type HiddenIn } from './commonmark.js';\n\n/**\n * Block markers for the faf-managed front section.\n *\n * Markdown files (AGENTS.md, CLAUDE.md, GEMINI.md) use HTML comments; non-markdown\n * files (.cursorrules) pass hash-comment markers via the `start`/`end` args.\n */\nexport const FAF_START = '<!-- faf:start -->';\nexport const FAF_END = '<!-- faf:end -->';\n\nconst BOM = '\\uFEFF';\n\n/** Split into lines keeping each line's own terminator (\\r\\n, \\r or \\n). */\nexport function linesWithEnds(text: string): string[] {\n return text.match(/[^\\r\\n]*(?:\\r\\n|\\r|\\n|$)/g)?.filter((l, i, a) => l !== '' || i < a.length - 1) ?? [];\n}\n\nexport const stripEnd = (line: string): string => line.replace(/\\r?\\n$|\\r$/, '');\n/** A line as the marker rules see it: terminator, a leading BOM and trailing whitespace dropped. */\nconst bareLine = (line: string): string => stripEnd(line).replace(/^\\uFEFF/, '').trimEnd();\n\n// ─── Markdown regions: two readings ──────────────────────────────────────────\n//\n// Text in fenced or indented code, in a raw HTML block (<pre>, <script>,\n// <style>, <textarea>, <?…?>, <!X…>, <![CDATA[…]]>) or in a multi-line HTML\n// comment is shown as code, or not shown at all — a marker line there is an\n// example, never a marker. faf reads every file two ways (commonmark.ts):\n// (a) as CommonMark reads it: list items and block quotes included. A list\n// item's lines sit at its content column (a tab after the marker\n// advances to the next multiple of 4); a fence or raw block opened in a\n// list item closes at that column and ends when the item does; no\n// fence opens inside an HTML block of types 6 or 7 (<div>, <details>,\n// a lone tag) until a blank line;\n// (b) plainly, every line at column 0: the same blocks, with no list items\n// and no block quotes.\n// A START/END pair is faf's block only when both readings find that same\n// pair. When they differ the file is the user's, and faf prefixes: when in\n// doubt, prefix. A file that nests more than MAX_OPEN_CONTAINERS block quotes,\n// lists and list items before faf's block is one faf cannot read for sure:\n// the reading stops there, and faf prefixes too.\n\n/** One reading's search: the latest START seen, and the pair once found. */\ninterface Search {\n reader: BlockReader;\n start: number;\n found: { start: number; end: number } | null;\n}\n\n/** One line of the text, where it starts, and its BOM-free content. */\ninterface ScanLine {\n offset: number;\n /** Where the line's text starts (after a line-1 BOM). */\n from: number;\n /** Where the line's text ends (before its terminator). */\n to: number;\n content: string;\n}\n\nfunction* scanLines(text: string): Generator<ScanLine> {\n let offset = 0;\n for (const line of linesWithEnds(text)) {\n const body = stripEnd(line);\n const bom = offset === 0 && body.charCodeAt(0) === 0xfeff ? 1 : 0;\n yield { offset, from: offset + bom, to: offset + body.length, content: body.slice(bom) };\n offset += line.length;\n }\n}\n\n/** Move each reading that shows `line` on: a START there becomes its latest\n * START, an END after a START completes its pair. */\nfunction advance(shown: Search[], line: ScanLine, isStart: (l: string) => boolean, isEnd: (l: string) => boolean): void {\n const end = shown.some(r => r.start !== -1) && isEnd(line.content);\n const start = isStart(line.content);\n for (const r of shown) {\n if (r.start !== -1 && end) {\n r.found = { start: r.start, end: line.to };\n } else if (start) {\n r.start = line.from;\n }\n }\n}\n\n/**\n * faf's marked range in `text`: in each reading, the last START line before\n * the first END line after it (the innermost pair — text between an earlier\n * START and the last one is kept), both outside every Markdown region. The\n * two readings must find the same pair; otherwise there is no range. Returns\n * the char range covering both lines (the END line's terminator excluded), or\n * null. A leading BOM on line 1 stays outside the range. `isStart` and\n * `isEnd` are asked about each line shown as text in at least one reading,\n * once, in order, on the line with its terminator and that BOM removed. Past\n * MAX_OPEN_CONTAINERS open containers the CommonMark reading stops, and there\n * is no range (a pair found before that point still counts). Time grows with\n * the text's length, not with how deep it nests.\n */\nexport function findMarkedRange(\n text: string,\n isStart: (line: string) => boolean,\n isEnd: (line: string) => boolean,\n): { start: number; end: number } | null {\n const [a, b]: Search[] = [new BlockReader(true), new BlockReader(false)].map(reader => ({ reader, start: -1, found: null }));\n for (const line of scanLines(text)) {\n const hidden = [a, b].map(r => r.reader.line(line.content));\n if (a.reader.tooDeep) {return null;} // nested too deep to read for sure: the file is the user's\n const shown = [a, b].filter((_, i) => hidden[i] === null);\n if (shown.length > 0) {advance(shown, line, isStart, isEnd);}\n // Both readings end their pair on this same line, or they do not agree.\n if (a.found || b.found) {return a.found && b.found && a.found.start === b.found.start ? a.found : null;}\n }\n return null;\n}\n\n/** A whole marker line at column 0: exactly the marker text (a CRLF line's\n * `\\r` is its terminator). Trailing spaces or tabs make it text, not a marker. */\nconst markerLine = (marker: string) => (line: string): boolean => line === marker;\n\n/**\n * Locate the faf-managed block in `text`: a START marker line and the first\n * END marker line after it, both outside fenced and indented code, raw HTML\n * blocks and multi-line HTML comments, under both readings (see\n * {@link findMarkedRange}). Returns the char range covering both marker lines\n * (terminator of the END line excluded), or null when there is no complete\n * block both readings agree on.\n *\n * Markers are matched as WHOLE LINES at column 0 — exactly the marker text,\n * nothing after it — never as substrings. Substring search was a real bug\n * (7.1.4–7.11.0): renderAgentsMd quoted the marker tokens in its own\n * blockquote, so on every re-run `indexOf(end)` hit the quote, cut the old\n * block in half and appended its stale tail below the new block — `faf\n * export --agents` grew AGENTS.md by ~49 lines per run. The same happened to\n * users who documented the markers in a code fence above the block.\n *\n * Two START lines before an END: the pair is the last START and that END.\n * faf's own body never holds a column-0 START (see {@link wrapFafBlock}), so\n * the text between the two STARTs is the user's and stays. A START with no\n * END is not a block: the caller treats \"no block\" as a user file and\n * prefixes — it never reclaims. faf's own block is always found again where\n * faf put it (see {@link placeFafBlock}).\n */\nexport function findFafBlock(\n text: string,\n start: string = FAF_START,\n end: string = FAF_END,\n): { start: number; end: number } | null {\n return findMarkedRange(text, markerLine(start), markerLine(end));\n}\n\n/** For each reading that would hide a line of `end` after `text`: the line\n * that ends the region it sits in (null when no single line does). */\nfunction closersFor(text: string, end: string): Array<string | null> {\n const closers: Array<string | null> = [];\n for (const containers of [true, false]) {\n const reader = new BlockReader(containers);\n for (const line of linesWithEnds(text)) {reader.line(stripEnd(line));}\n if (reader.clone().line(end) !== null) {closers.push(reader.closer());}\n }\n return closers;\n}\n\n/** No line of faf's own body leaves more block quotes, lists and list items\n * open than this (as CommonMark reads it) — far below the reader's cap,\n * MAX_OPEN_CONTAINERS, so the next run always reads the block to its end,\n * quoted (one quote more) or not. See {@link capDepth}. */\nexport const BODY_MAX_CONTAINERS = 16;\n\n/** The same lines, with the marker that would open a block quote, list or\n * list item past BODY_MAX_CONTAINERS escaped with a backslash — `\\>` for a\n * quote, `\\-` / `\\*` / `\\+` for a bullet, `1\\.` for an ordered item — so\n * that line opens nothing more and shows the same text (a .faf value holding\n * a 101-deep `>>>…` quote, or a list nested 52 levels deep). Every line\n * within the cap is left exactly as it is. */\nfunction capDepth(lines: string[]): string[] {\n const reader = new BlockReader(true);\n return lines.map(line => {\n const at = reader.overflowAt(stripEnd(line), BODY_MAX_CONTAINERS);\n let out = line;\n if (at >= 0) {\n const ordered = /^\\d{1,9}(?=[.)])/.exec(line.slice(at));\n const mark = ordered ? at + ordered[0].length : at;\n out = `${line.slice(0, mark)}\\\\${line.slice(mark)}`;\n }\n reader.line(stripEnd(out));\n return out;\n });\n}\n\n/** faf's own body, made safe to wrap between its markers:\n * - a body line that is itself a marker line (a .faf value that documents\n * the markers, say — with or without trailing spaces) would let the next\n * write cut the block there and grow the file every run — it is indented\n * one space: no longer a column-0 marker, and the text is unchanged;\n * - a body that nests block quotes or lists past BODY_MAX_CONTAINERS would\n * stop the next run's reading inside the block, and faf would prefix a\n * second block — the marker that goes past it is escaped (see\n * {@link capDepth});\n * - a body that leaves fenced code, a raw HTML block or a comment open (a\n * .faf value holding a ``` line, say) would hide the END line from the\n * next scan, and faf would prefix a second block — the region is closed\n * on a line of its own at the end of the body, in each reading. A closer\n * that would hide the END line in the other reading is not added: such a\n * body is quoted by {@link placeFafBlock} instead. */\nfunction guardBody(body: string, start: string, end: string): string {\n const lines = capDepth(linesWithEnds(body).map(line => {\n const bare = bareLine(line);\n return bare === start || bare === end ? ` ${line}` : line;\n }));\n let text = lines.join('');\n let hiding = closersFor(text, end);\n while (hiding.length > 0 && hiding[0] !== null) {\n const next = `${text}\\n${hiding[0]}`;\n const after = closersFor(next, end);\n if (after.length >= hiding.length) {break;}\n text = next;\n hiding = after;\n }\n return text;\n}\n\n/** The same block with every body line quoted (`> `; a blank line `>`): a\n * block quote in the CommonMark reading and plain text in the column-0 one,\n * so no body line can hide the END line in either — whatever the text\n * before the block leaves open. The fallback for a body the closers cannot\n * settle. */\nfunction quoteBody(wrapped: string, start: string, end: string): string {\n const body = wrapped.slice(start.length + 1, wrapped.length - end.length - 1);\n const quoted = linesWithEnds(body).map(line => (stripEnd(line) === '' ? `>${line}` : `> ${line}`)).join('');\n return `${start}\\n${quoted}\\n${end}`;\n}\n\n/**\n * `head`, faf's block (`wrapped`, from {@link wrapFafBlock}) and `tail` as one\n * text in which {@link findFafBlock} finds the block exactly where it was put\n * — so the next write updates it in place and never stacks a second one. A\n * body that would not be found there (it leaves a region open in only one\n * reading, or the text before it holds a raw HTML block the body continues)\n * is quoted line by line instead. If even that is not found, it throws a\n * SafePathError (`unplaceable`) naming `path` (the file being written):\n * \"<file>: faf could not place its block where the next run finds it again —\n * faf left it unchanged\" — one line, and nothing is written.\n */\nexport function placeFafBlock(\n head: string,\n wrapped: string,\n tail: string,\n start: string = FAF_START,\n end: string = FAF_END,\n path = 'the file',\n): string {\n const placed = (block: string): string | null => {\n const text = `${head}${block}${tail}`;\n const found = findFafBlock(text, start, end);\n return found && found.start === head.length && found.end === head.length + block.length ? text : null;\n };\n const text = placed(wrapped) ?? placed(quoteBody(wrapped, start, end));\n if (text === null) {\n throw new SafePathError('unplaceable', path, `${path}: faf could not place its block where the next run finds it again — faf left it unchanged`, { onWrite: true });\n }\n return text;\n}\n\n/** The managed block: START, the body (guarded — see guardBody), END. */\nexport function wrapFafBlock(block: string, start: string = FAF_START, end: string = FAF_END): string {\n return `${start}\\n${guardBody(block.trim(), start, end)}\\n${end}`;\n}\n\n/** The file's new text: `existing` (null when there is no file) with `wrapped`\n * as its managed block, placed where the next scan finds it again (see\n * {@link placeFafBlock}; `path` names the file in its refusal). */\nexport function withFafBlock(existing: string | null, wrapped: string, start: string = FAF_START, end: string = FAF_END, path?: string): string {\n // 1. No file → just the block.\n if (existing === null) {return placeFafBlock('', wrapped, '\\n', start, end, path);}\n\n // 2. A complete block → replace only the managed block; keep everything around it.\n const found = findFafBlock(existing, start, end);\n if (found) {return placeFafBlock(existing.slice(0, found.start), wrapped, existing.slice(found.end), start, end, path);}\n\n // 3. Everything else → prefix the block and keep every byte already there. A\n // file with no marker lines is the user's, whatever its first line says —\n // a faf-looking stamp or footer proves nothing. A leading BOM stays at byte 0.\n const bom = existing.startsWith(BOM) ? BOM : '';\n return placeFafBlock(bom, wrapped, `\\n\\n${existing.slice(bom.length)}`, start, end, path);\n}\n\n/** Read a resolved path, or null when nothing is there yet. Only ENOENT reads\n * as \"no file\"; any other error is thrown, so a file faf could not read is\n * never treated as empty and written fresh. The text is decoded strictly: a\n * file that is not UTF-8 (a UTF-16 file, cp1252 bytes) is refused\n * (SafePathError `not-utf8`) and left as it is — see readUtf8. */\nexport function readIfPresent(path: string): string | null {\n try {\n return readUtf8(path);\n } catch (e) {\n if ((e as NodeJS.ErrnoException).code === 'ENOENT') {return null;}\n throw e;\n }\n}\n\nexport interface InjectOptions {\n /** The project folder the file must stay inside. Default: the file's own\n * folder. Pass it when the file sits in a subfolder (`.github/…`), so a\n * linked subfolder cannot carry the write out of the project. */\n root?: string;\n}\n\n/**\n * Non-destructively write a faf-managed block into a file.\n *\n * - file does not exist → create it containing just the block\n * - file has the markers → replace ONLY the content between them (update in place)\n * - anything else → PREFIX the block; everything already there is preserved\n * (a leading BOM stays at byte 0)\n *\n * faf replaces only text it can prove it wrote: what sits between its own\n * marker lines. A file with no marker lines is never reclaimed, whatever it\n * starts or ends with. Idempotent: re-running updates the managed block in\n * place and never duplicates it. Enhance, never replace.\n *\n * The file is resolved inside its project first: a link that leads outside,\n * a dangling link, a link to a file with another name (CLAUDE.md → README.md)\n * and anything in `.git` are refused (SafePathError) and nothing is written; a\n * link to a file of the same name, or between AI context files (CLAUDE.md →\n * AGENTS.md), is written through and stays a link. A file that is not UTF-8\n * is refused and left as it is. The write is atomic — a failure leaves the\n * original exactly as it was — and is refused if the file changed on disk\n * after faf read it. A block faf cannot place where its next run finds it\n * again is refused too (SafePathError `unplaceable`), and nothing is written.\n */\nexport function injectFafBlock(\n path: string,\n block: string,\n start: string = FAF_START,\n end: string = FAF_END,\n opts: InjectOptions = {},\n): void {\n const wrapped = wrapFafBlock(block, start, end);\n const full = resolve(path);\n const root = opts.root ?? dirname(full);\n const target = resolveInside(root, full);\n const existing = readIfPresent(target);\n safeWriteFile(target, withFafBlock(existing, wrapped, start, end, full), { root, expect: existing });\n}\n\n/** faf's old metastamp line — the two-line `<!-- faf: … -->` stamp older faf\n * versions put at the top of CLAUDE.md and friends, with no markers. */\nconst LEGACY_STAMP = '<!-- faf:';\n\n/** How the note names the region an old START line sits in. */\nfunction regionName(hidden: HiddenIn): string {\n if (hidden === 'code fence') {return 'a code fence';}\n if (hidden === 'indented code') {return 'an indented code block';}\n if (hidden === 'comment') {return 'an HTML comment';}\n return hidden === 'html' ? 'an HTML block' : `a ${hidden} block`;\n}\n\n/** The region a whole-line START of `text` sits in — in either reading — or\n * null when every START line is shown as text (or there is none). `'too\n * deep'` when a whole-line START sits past the point where the file nests\n * more than MAX_OPEN_CONTAINERS containers (faf stopped reading there). */\nfunction hiddenStart(text: string, start: string): HiddenIn | 'too deep' | null {\n const readers = [new BlockReader(true), new BlockReader(false)];\n let deep = false;\n for (const { content } of scanLines(text)) {\n if (deep) {\n if (content === start) {return 'too deep';}\n continue;\n }\n const [a, b] = readers.map(r => r.line(content));\n deep = readers[0].tooDeep;\n const hidden = a ?? b;\n if (content === start && (deep || hidden !== null)) {return deep ? 'too deep' : hidden;}\n }\n return null;\n}\n\n/**\n * The one line the CLI prints when faf's block goes on top of a file that has\n * no block of its own but holds older faf text — or null:\n * - the file's first line is faf's old metastamp (`<!-- faf: … -->`): faf\n * never reclaims such a file (it cannot prove it wrote the text), so the\n * old faf text stays below the new block;\n * - a whole-line START marker sits inside a code fence, a raw HTML block\n * or an HTML comment (in either reading — see {@link findFafBlock}): the\n * older block there is an example to faf, and stays below the new one;\n * - a whole-line START marker sits past more than MAX_OPEN_CONTAINERS\n * nested lists or quotes: faf did not read that far, and the older block\n * stays below the new one.\n * `label` names the file (`CLAUDE.md`). `existing` is the file's text before\n * the write (null when there was none). faf-mcp and claude-faf-mcp print the\n * same line through this export.\n */\nexport function legacyStampNote(\n label: string,\n existing: string | null,\n start: string = FAF_START,\n end: string = FAF_END,\n): string | null {\n if (existing === null || findFafBlock(existing, start, end)) {return null;}\n const first = bareLine(linesWithEnds(existing)[0] ?? '');\n if (first.startsWith(LEGACY_STAMP) && first !== start && first !== end) {\n return `${label}: faf's block is now on top; the old faf text below it is left as you had it — delete it by hand if you no longer want it.`;\n }\n const hidden = hiddenStart(existing, start);\n if (hidden === null) {return null;}\n if (hidden === 'too deep') {\n return `${label}: faf's block is now on top; the file nests more than ${MAX_OPEN_CONTAINERS} lists or quotes before an older faf block, so faf did not read that far — the older block is left as you had it; delete it by hand if you no longer want it.`;\n }\n return `${label}: faf's block is now on top; an older faf block below sits inside ${regionName(hidden)} and is left as you had it — delete it by hand if you no longer want it.`;\n}\n\n/** {@link legacyStampNote} for the file at `path`, read the way\n * injectFafBlock reads it — before the write. Null when there is no note, or\n * when the file cannot be read (the write itself then says why). */\nexport function legacyStampNoteAt(\n path: string,\n label: string,\n start: string = FAF_START,\n end: string = FAF_END,\n opts: InjectOptions = {},\n): string | null {\n try {\n const full = resolve(path);\n return legacyStampNote(label, readIfPresent(resolveInside(opts.root ?? dirname(full), full)), start, end);\n } catch {\n return null;\n }\n}\n",
129
+ "import { dirname, resolve } from 'path';\nimport { SafePathError, readUtf8, resolveInside, safeWriteFile } from '../core/safe-write.js';\nimport { BlockReader, MAX_OPEN_CONTAINERS, type HiddenIn } from './commonmark.js';\n\n/**\n * Block markers for the faf-managed front section.\n *\n * Markdown files (AGENTS.md, CLAUDE.md, GEMINI.md) use HTML comments; non-markdown\n * files (.cursorrules) pass hash-comment markers via the `start`/`end` args.\n */\nexport const FAF_START = '<!-- faf:start -->';\nexport const FAF_END = '<!-- faf:end -->';\n\nconst BOM = '\\uFEFF';\n\n/** Split into lines keeping each line's own terminator (\\r\\n, \\r or \\n). */\nexport function linesWithEnds(text: string): string[] {\n return text.match(/[^\\r\\n]*(?:\\r\\n|\\r|\\n|$)/g)?.filter((l, i, a) => l !== '' || i < a.length - 1) ?? [];\n}\n\nexport const stripEnd = (line: string): string => line.replace(/\\r?\\n$|\\r$/, '');\n/** A line as the marker rules see it: terminator, a leading BOM and trailing whitespace dropped. */\nconst bareLine = (line: string): string => stripEnd(line).replace(/^\\uFEFF/, '').trimEnd();\n\n// ─── Markdown regions: two readings ──────────────────────────────────────────\n//\n// Text in fenced or indented code, in a raw HTML block (<pre>, <script>,\n// <style>, <textarea>, <?…?>, <!X…>, <![CDATA[…]]>) or in a multi-line HTML\n// comment is shown as code, or not shown at all — a marker line there is an\n// example, never a marker. faf reads every file two ways (commonmark.ts):\n// (a) as CommonMark reads it: list items and block quotes included. A list\n// item's lines sit at its content column (a tab after the marker\n// advances to the next multiple of 4); a fence or raw block opened in a\n// list item closes at that column and ends when the item does; no\n// fence opens inside an HTML block of types 6 or 7 (<div>, <details>,\n// a lone tag) until a blank line;\n// (b) plainly, every line at column 0: the same blocks, with no list items\n// and no block quotes.\n// A START/END pair is faf's block only when both readings find that same\n// pair. When they differ the file is the user's, and faf prefixes: when in\n// doubt, prefix. A file that nests more than MAX_OPEN_CONTAINERS block quotes,\n// lists and list items before faf's block is one faf cannot read for sure:\n// the reading stops there, and faf prefixes too.\n\n/** One reading's search: the latest START seen, and the pair once found. */\ninterface Search {\n reader: BlockReader;\n start: number;\n found: { start: number; end: number } | null;\n}\n\n/** One line of the text, where it starts, and its BOM-free content. */\ninterface ScanLine {\n offset: number;\n /** Where the line's text starts (after a line-1 BOM). */\n from: number;\n /** Where the line's text ends (before its terminator). */\n to: number;\n content: string;\n}\n\nfunction* scanLines(text: string): Generator<ScanLine> {\n let offset = 0;\n for (const line of linesWithEnds(text)) {\n const body = stripEnd(line);\n const bom = offset === 0 && body.charCodeAt(0) === 0xfeff ? 1 : 0;\n yield { offset, from: offset + bom, to: offset + body.length, content: body.slice(bom) };\n offset += line.length;\n }\n}\n\n/** Move each reading that shows `line` on: a START there becomes its latest\n * START, an END after a START completes its pair. */\nfunction advance(shown: Search[], line: ScanLine, isStart: (l: string) => boolean, isEnd: (l: string) => boolean): void {\n const end = shown.some(r => r.start !== -1) && isEnd(line.content);\n const start = isStart(line.content);\n for (const r of shown) {\n if (r.start !== -1 && end) {\n r.found = { start: r.start, end: line.to };\n } else if (start) {\n r.start = line.from;\n }\n }\n}\n\n/**\n * faf's marked range in `text`: in each reading, the last START line before\n * the first END line after it (the innermost pair — text between an earlier\n * START and the last one is kept), both outside every Markdown region. The\n * two readings must find the same pair; otherwise there is no range. Returns\n * the char range covering both lines (the END line's terminator excluded), or\n * null. A leading BOM on line 1 stays outside the range. `isStart` and\n * `isEnd` are asked about each line shown as text in at least one reading,\n * once, in order, on the line with its terminator and that BOM removed. Past\n * MAX_OPEN_CONTAINERS open containers the CommonMark reading stops, and there\n * is no range (a pair found before that point still counts). Time grows with\n * the text's length, not with how deep it nests.\n */\nexport function findMarkedRange(\n text: string,\n isStart: (line: string) => boolean,\n isEnd: (line: string) => boolean,\n): { start: number; end: number } | null {\n const [a, b]: Search[] = [new BlockReader(true), new BlockReader(false)].map(reader => ({ reader, start: -1, found: null }));\n for (const line of scanLines(text)) {\n const hidden = [a, b].map(r => r.reader.line(line.content));\n if (a.reader.tooDeep) {return null;} // nested too deep to read for sure: the file is the user's\n const shown = [a, b].filter((_, i) => hidden[i] === null);\n if (shown.length > 0) {advance(shown, line, isStart, isEnd);}\n // Both readings end their pair on this same line, or they do not agree.\n if (a.found || b.found) {return a.found && b.found && a.found.start === b.found.start ? a.found : null;}\n }\n return null;\n}\n\n/** A whole marker line at column 0: exactly the marker text (a CRLF line's\n * `\\r` is its terminator). Trailing spaces or tabs make it text, not a marker. */\nconst markerLine = (marker: string) => (line: string): boolean => line === marker;\n\n/**\n * Locate the faf-managed block in `text`: a START marker line and the first\n * END marker line after it, both outside fenced and indented code, raw HTML\n * blocks and multi-line HTML comments, under both readings (see\n * {@link findMarkedRange}). Returns the char range covering both marker lines\n * (terminator of the END line excluded), or null when there is no complete\n * block both readings agree on.\n *\n * Markers are matched as WHOLE LINES at column 0 — exactly the marker text,\n * nothing after it — never as substrings. Substring search was a real bug\n * (7.1.4–7.11.0): renderAgentsMd quoted the marker tokens in its own\n * blockquote, so on every re-run `indexOf(end)` hit the quote, cut the old\n * block in half and appended its stale tail below the new block — `faf\n * export --agents` grew AGENTS.md by ~49 lines per run. The same happened to\n * users who documented the markers in a code fence above the block.\n *\n * Two START lines before an END: the pair is the last START and that END.\n * faf's own body never holds a column-0 START (see {@link wrapFafBlock}), so\n * the text between the two STARTs is the user's and stays. A START with no\n * END is not a block: the caller treats \"no block\" as a user file and\n * prefixes — it never reclaims. faf's own block is always found again where\n * faf put it (see {@link placeFafBlock}).\n */\nexport function findFafBlock(\n text: string,\n start: string = FAF_START,\n end: string = FAF_END,\n): { start: number; end: number } | null {\n return findMarkedRange(text, markerLine(start), markerLine(end));\n}\n\n/** For each reading that would hide a line of `end` after `text`: the line\n * that ends the region it sits in (null when no single line does). */\nfunction closersFor(text: string, end: string): Array<string | null> {\n const closers: Array<string | null> = [];\n for (const containers of [true, false]) {\n const reader = new BlockReader(containers);\n for (const line of linesWithEnds(text)) {reader.line(stripEnd(line));}\n if (reader.clone().line(end) !== null) {closers.push(reader.closer());}\n }\n return closers;\n}\n\n/** No line of faf's own body leaves more block quotes, lists and list items\n * open than this (as CommonMark reads it) — far below the reader's cap,\n * MAX_OPEN_CONTAINERS, so the next run always reads the block to its end,\n * quoted (one quote more) or not. See {@link capDepth}. */\nexport const BODY_MAX_CONTAINERS = 16;\n\n/** The same lines, with the marker that would open a block quote, list or\n * list item past BODY_MAX_CONTAINERS escaped with a backslash — `\\>` for a\n * quote, `\\-` / `\\*` / `\\+` for a bullet, `1\\.` for an ordered item — so\n * that line opens nothing more and shows the same text (a .faf value holding\n * a 101-deep `>>>…` quote, or a list nested 52 levels deep). Every line\n * within the cap is left exactly as it is. */\nfunction capDepth(lines: string[]): string[] {\n const reader = new BlockReader(true);\n return lines.map(line => {\n const at = reader.overflowAt(stripEnd(line), BODY_MAX_CONTAINERS);\n let out = line;\n if (at >= 0) {\n const ordered = /^\\d{1,9}(?=[.)])/.exec(line.slice(at));\n const mark = ordered ? at + ordered[0].length : at;\n out = `${line.slice(0, mark)}\\\\${line.slice(mark)}`;\n }\n reader.line(stripEnd(out));\n return out;\n });\n}\n\n/** faf's own body, made safe to wrap between its markers:\n * - a body line that is itself a marker line (a .faf value that documents\n * the markers, say — with or without trailing spaces) would let the next\n * write cut the block there and grow the file every run — it is indented\n * one space: no longer a column-0 marker, and the text is unchanged;\n * - a body that nests block quotes or lists past BODY_MAX_CONTAINERS would\n * stop the next run's reading inside the block, and faf would prefix a\n * second block — the marker that goes past it is escaped (see\n * {@link capDepth});\n * - a body that leaves fenced code, a raw HTML block or a comment open (a\n * .faf value holding a ``` line, say) would hide the END line from the\n * next scan, and faf would prefix a second block — the region is closed\n * on a line of its own at the end of the body, in each reading. A closer\n * that would hide the END line in the other reading is not added: such a\n * body is quoted by {@link placeFafBlock} instead. */\nfunction guardBody(body: string, start: string, end: string): string {\n const lines = capDepth(linesWithEnds(body).map(line => {\n const bare = bareLine(line);\n return bare === start || bare === end ? ` ${line}` : line;\n }));\n let text = lines.join('');\n let hiding = closersFor(text, end);\n while (hiding.length > 0 && hiding[0] !== null) {\n const next = `${text}\\n${hiding[0]}`;\n const after = closersFor(next, end);\n if (after.length >= hiding.length) {break;}\n text = next;\n hiding = after;\n }\n return text;\n}\n\n/** The same block with every body line quoted (`> `; a blank line `>`): a\n * block quote in the CommonMark reading and plain text in the column-0 one,\n * so no body line can hide the END line in either — whatever the text\n * before the block leaves open. The fallback for a body the closers cannot\n * settle. */\nfunction quoteBody(wrapped: string, start: string, end: string): string {\n const body = wrapped.slice(start.length + 1, wrapped.length - end.length - 1);\n const quoted = linesWithEnds(body).map(line => (stripEnd(line) === '' ? `>${line}` : `> ${line}`)).join('');\n return `${start}\\n${quoted}\\n${end}`;\n}\n\n/**\n * `head`, faf's block (`wrapped`, from {@link wrapFafBlock}) and `tail` as one\n * text in which {@link findFafBlock} finds the block exactly where it was put\n * — so the next write updates it in place and never stacks a second one. A\n * body that would not be found there (it leaves a region open in only one\n * reading, or the text before it holds a raw HTML block the body continues)\n * is quoted line by line instead. If even that is not found, it throws a\n * SafePathError (`unplaceable`) naming `path` (the file being written):\n * \"<file>: faf could not place its block where the next run finds it again —\n * faf left it unchanged\" — one line, and nothing is written.\n */\nexport function placeFafBlock(\n head: string,\n wrapped: string,\n tail: string,\n start: string = FAF_START,\n end: string = FAF_END,\n path = 'the file',\n): string {\n const placed = (block: string): string | null => {\n const text = `${head}${block}${tail}`;\n const found = findFafBlock(text, start, end);\n return found && found.start === head.length && found.end === head.length + block.length ? text : null;\n };\n const text = placed(wrapped) ?? placed(quoteBody(wrapped, start, end));\n if (text === null) {\n throw new SafePathError('unplaceable', path, `${path}: faf could not place its block where the next run finds it again — faf left it unchanged`, { onWrite: true });\n }\n return text;\n}\n\n/** The managed block: START, the body (guarded — see guardBody), END. */\nexport function wrapFafBlock(block: string, start: string = FAF_START, end: string = FAF_END): string {\n return `${start}\\n${guardBody(block.trim(), start, end)}\\n${end}`;\n}\n\n/** The file's new text: `existing` (null when there is no file) with `wrapped`\n * as its managed block, placed where the next scan finds it again (see\n * {@link placeFafBlock}; `path` names the file in its refusal). */\nexport function withFafBlock(existing: string | null, wrapped: string, start: string = FAF_START, end: string = FAF_END, path?: string): string {\n // 1. No file → just the block.\n if (existing === null) {return placeFafBlock('', wrapped, '\\n', start, end, path);}\n\n // 2. A complete block → replace only the managed block; keep everything around it.\n const found = findFafBlock(existing, start, end);\n if (found) {return placeFafBlock(existing.slice(0, found.start), wrapped, existing.slice(found.end), start, end, path);}\n\n // 3. Everything else → prefix the block and keep every byte already there. A\n // file with no marker lines is the user's, whatever its first line says —\n // a faf-looking stamp or footer proves nothing. A leading BOM stays at byte 0.\n const bom = existing.startsWith(BOM) ? BOM : '';\n return placeFafBlock(bom, wrapped, `\\n\\n${existing.slice(bom.length)}`, start, end, path);\n}\n\n/** Read a resolved path, or null when nothing is there yet. Only ENOENT reads\n * as \"no file\"; any other error is thrown, so a file faf could not read is\n * never treated as empty and written fresh. The text is decoded strictly: a\n * file that is not UTF-8 (a UTF-16 file, cp1252 bytes) is refused\n * (SafePathError `not-utf8`) and left as it is — see readUtf8. */\nexport function readIfPresent(path: string): string | null {\n try {\n return readUtf8(path);\n } catch (e) {\n if ((e as NodeJS.ErrnoException).code === 'ENOENT') {return null;}\n throw e;\n }\n}\n\nexport interface InjectOptions {\n /** The project folder the file must stay inside. Default: the file's own\n * folder. Pass it when the file sits in a subfolder (`.github/…`), so a\n * linked subfolder cannot carry the write out of the project. */\n root?: string;\n}\n\n/**\n * Non-destructively write a faf-managed block into a file.\n *\n * - file does not exist → create it containing just the block\n * - file has the markers → replace ONLY the content between them (update in place)\n * - anything else → PREFIX the block; everything already there is preserved\n * (a leading BOM stays at byte 0)\n *\n * faf replaces only text it can prove it wrote: what sits between its own\n * marker lines. A file with no marker lines is never reclaimed, whatever it\n * starts or ends with. Idempotent: re-running updates the managed block in\n * place and never duplicates it. Enhance, never replace.\n *\n * The file is resolved inside its project first: a link that leads outside,\n * a dangling link, a link to a file with another name (CLAUDE.md → README.md)\n * and anything in `.git` are refused (SafePathError) and nothing is written; a\n * link to a file of the same name, or between AI context files (CLAUDE.md →\n * AGENTS.md), is written through and stays a link. A file that is not UTF-8\n * is refused and left as it is. The write is atomic — a failure leaves the\n * original exactly as it was — and is refused if the file changed on disk\n * after faf read it. A block faf cannot place where its next run finds it\n * again is refused too (SafePathError `unplaceable`), and nothing is written.\n */\nexport function injectFafBlock(\n path: string,\n block: string,\n start: string = FAF_START,\n end: string = FAF_END,\n opts: InjectOptions = {},\n): void {\n const wrapped = wrapFafBlock(block, start, end);\n const full = resolve(path);\n const root = opts.root ?? dirname(full);\n const target = resolveInside(root, full);\n const existing = readIfPresent(target);\n safeWriteFile(target, withFafBlock(existing, wrapped, start, end, full), { root, expect: existing });\n}\n\n/** faf's old metastamp line — the two-line `<!-- faf: … -->` stamp older faf\n * versions put at the top of CLAUDE.md and friends, with no markers. */\nconst LEGACY_STAMP = '<!-- faf:';\n\n/** How the note names the region an old START line sits in. */\nfunction regionName(hidden: HiddenIn): string {\n if (hidden === 'code fence') {return 'a code fence';}\n if (hidden === 'indented code') {return 'an indented code block';}\n if (hidden === 'comment') {return 'an HTML comment';}\n return hidden === 'html' ? 'an HTML block' : `a ${hidden} block`;\n}\n\n/** The region a whole-line START of `text` sits in — in either reading — or\n * null when every START line is shown as text (or there is none). `'too\n * deep'` when a whole-line START sits past the point where the file nests\n * more than MAX_OPEN_CONTAINERS containers (faf stopped reading there). */\nfunction hiddenStart(text: string, start: string): HiddenIn | 'too deep' | null {\n const readers = [new BlockReader(true), new BlockReader(false)];\n let deep = false;\n for (const { content } of scanLines(text)) {\n if (deep) {\n if (content === start) {return 'too deep';}\n continue;\n }\n const [a, b] = readers.map(r => r.line(content));\n deep = readers[0].tooDeep;\n const hidden = a ?? b;\n if (content === start && (deep || hidden !== null)) {return deep ? 'too deep' : hidden;}\n }\n return null;\n}\n\n/** Whether a whole-line START or END of `text` is shown as text in at least\n * one reading. Only asked once {@link findFafBlock} has found no block, so a\n * marker line still shown there is one faf could not pair up: a truncated\n * block an older faf left behind, or a pair the two readings disagree about.\n * Markers are compared exactly as findFafBlock compares them — whole line,\n * column 0, trailing whitespace making it text. Past the point where the\n * file nests more than MAX_OPEN_CONTAINERS containers faf stopped reading,\n * so nothing beyond it counts (that region has its own note). */\nfunction visibleOrphanMarker(text: string, start: string, end: string): boolean {\n const readers = [new BlockReader(true), new BlockReader(false)];\n for (const { content } of scanLines(text)) {\n const hidden = readers.map(r => r.line(content));\n if (readers[0].tooDeep) {return false;}\n if ((content === start || content === end) && hidden.some(h => h === null)) {return true;}\n }\n return false;\n}\n\n/**\n * The one line the CLI prints when faf's block goes on top of a file that has\n * no block of its own but holds older faf text — or null:\n * - the file's first line is faf's old metastamp (`<!-- faf: … -->`): faf\n * never reclaims such a file (it cannot prove it wrote the text), so the\n * old faf text stays below the new block;\n * - a whole-line START marker sits inside a code fence, a raw HTML block\n * or an HTML comment (in either reading — see {@link findFafBlock}): the\n * older block there is an example to faf, and stays below the new one;\n * - a whole-line START marker sits past more than MAX_OPEN_CONTAINERS\n * nested lists or quotes: faf did not read that far, and the older block\n * stays below the new one;\n * - a whole-line START or END marker is shown as text with no matching pair\n * — a block an older faf truncated, or a pair the two readings read\n * differently. faf cannot prove where that block ended, so it is left\n * exactly as it is and the new block goes on top. Without this line the\n * file is the one case in this family that is prefixed in silence: it\n * carries faf's own marker text, so it looks most like faf's to a reader\n * and least like it to faf.\n * `label` names the file (`CLAUDE.md`). `existing` is the file's text before\n * the write (null when there was none). faf-mcp and claude-faf-mcp print the\n * same line through this export.\n */\nexport function legacyStampNote(\n label: string,\n existing: string | null,\n start: string = FAF_START,\n end: string = FAF_END,\n): string | null {\n if (existing === null || findFafBlock(existing, start, end)) {return null;}\n const first = bareLine(linesWithEnds(existing)[0] ?? '');\n if (first.startsWith(LEGACY_STAMP) && first !== start && first !== end) {\n return `${label}: faf's block is now on top; the old faf text below it is left as you had it — delete it by hand if you no longer want it.`;\n }\n const hidden = hiddenStart(existing, start);\n if (hidden === 'too deep') {\n return `${label}: faf's block is now on top; the file nests more than ${MAX_OPEN_CONTAINERS} lists or quotes before an older faf block, so faf did not read that far — the older block is left as you had it; delete it by hand if you no longer want it.`;\n }\n if (hidden !== null) {\n return `${label}: faf's block is now on top; an older faf block below sits inside ${regionName(hidden)} and is left as you had it — delete it by hand if you no longer want it.`;\n }\n if (visibleOrphanMarker(existing, start, end)) {\n return `${label}: faf's block is now on top; an older faf marker line below it has no matching pair, so the text there is left as you had it — delete it by hand if you no longer want it.`;\n }\n return null;\n}\n\n/** {@link legacyStampNote} for the file at `path`, read the way\n * injectFafBlock reads it — before the write. Null when there is no note, or\n * when the file cannot be read (the write itself then says why). */\nexport function legacyStampNoteAt(\n path: string,\n label: string,\n start: string = FAF_START,\n end: string = FAF_END,\n opts: InjectOptions = {},\n): string | null {\n try {\n const full = resolve(path);\n return legacyStampNote(label, readIfPresent(resolveInside(opts.root ?? dirname(full), full)), start, end);\n } catch {\n return null;\n }\n}\n",
130
130
  "/**\n * CommonMark's block structure, line by line — just enough of it to say which\n * lines Markdown shows as code, or hides in a raw HTML block or a multi-line\n * comment. faf uses it to tell its own marker lines from marker examples.\n *\n * The algorithm is the reference implementation's (commonmark.js, spec 0.31):\n * each line first continues the open containers (block quotes, list items —\n * a list item's lines sit at its content column, a tab after the marker\n * advancing to the next multiple of 4), then may open new blocks, then is\n * added to the innermost open block or continues a paragraph lazily. Only\n * what decides block structure is kept: no inline parsing, no link reference\n * definitions, no tables.\n *\n * A reader made with `containers: false` reads every line at column 0 with no\n * block quotes and no list items — the plain reading a text editor, an older\n * faf or another tool may apply. faf takes a block as its own only when both\n * readings agree (see inject.ts).\n *\n * What a line counts as hidden in:\n * - fenced code (its opening and closing lines included) and indented code;\n * - an HTML block of types 1-5 — <pre>/<script>/<style>/<textarea> up to the\n * closing tag, a comment up to `-->`, <?…?>, <!X…>, <![CDATA[…]]> — except\n * a comment that opens and closes on the one line (faf's own marker\n * lines are such comments);\n * - not an HTML block of types 6 or 7 (<div>, <details>, any lone tag): a\n * comment inside raw HTML is still a comment. No fence or other block\n * opens inside one until a blank line ends it.\n *\n * Speed: each line costs time in proportion to its length, however deep the\n * nesting — the reader never re-reads the rest of a line per nesting level.\n * Past MAX_OPEN_CONTAINERS open block quotes, lists and list items the reader\n * stops reading (`tooDeep`): faf cannot say for sure where such a file's\n * regions are, so the file is the user's — faf's block goes on top and every\n * byte stays.\n */\n\nconst CODE_INDENT = 4;\n\n/** More open block quotes, lists and list items than this, and a reader stops\n * reading (see {@link BlockReader.tooDeep}). */\nexport const MAX_OPEN_CONTAINERS = 100;\n\nconst TAGNAME = '[A-Za-z][A-Za-z0-9-]*';\nconst ATTRIBUTENAME = '[a-zA-Z_:][a-zA-Z0-9:._-]*';\nconst ATTRIBUTEVALUE = '(?:[^\"\\'=<>`\\\\x00-\\\\x20]+|\\'[^\\']*\\'|\"[^\"]*\")';\nconst ATTRIBUTE = `(?:\\\\s+${ATTRIBUTENAME}(?:\\\\s*=\\\\s*${ATTRIBUTEVALUE})?)`;\nconst OPENTAG = `<${TAGNAME}${ATTRIBUTE}*\\\\s*/?>`;\nconst CLOSETAG = `</${TAGNAME}\\\\s*>`;\nconst BLOCK_NAMES =\n 'address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|' +\n 'fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|' +\n 'menuitem|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul';\n\n/** HTML block start conditions, types 1-7 (index 0 is type 1). */\nconst HTML_OPEN: readonly RegExp[] = [\n /^<(script|pre|style|textarea)(?=\\s|>|$)/i,\n /^<!--/,\n /^<\\?/,\n /^<![A-Za-z]/,\n /^<!\\[CDATA\\[/,\n new RegExp(`^</?(?:${BLOCK_NAMES})(?=\\\\s|/?>|$)`, 'i'),\n new RegExp(`^(?:${OPENTAG}|${CLOSETAG})\\\\s*$`, 'i'),\n];\n/** End conditions of HTML block types 1-5 (types 6 and 7 end at a blank line). */\nconst HTML_CLOSE: readonly RegExp[] = [/<\\/(?:script|pre|style|textarea)>/i, /-->/, /\\?>/, />/, /\\]\\]>/];\n/** The line that meets each end condition of types 1-5 (type 1 names its tag). */\nconst HTML_CLOSER: readonly string[] = ['', '-->', '?>', '>', ']]>'];\n\n// Line rules, matched where the reader stands (sticky: no copy of the rest of the line).\nconst MAYBE_SPECIAL = /[#`~*+_=<>0-9-]/;\nconst ORDERED = /(\\d{1,9})([.)])/y;\nconst ATX_HEADING = /#{1,6}(?:[ \\t]+|$)/y;\nconst FENCE_OPEN = /`{3,}(?!.*`)|~{3,}/y;\nconst FENCE_CLOSE = /(?:`{3,}|~{3,})(?=[ \\t]*$)/y;\nconst SETEXT_LINE = /(?:=+|-+)[ \\t]*$/y;\nconst NON_SPACE = /[^ \\t\\f\\v\\r\\n]/;\n\n/** `re` (sticky) matched at `pos` of `text`, or null. */\nfunction matchAt(re: RegExp, text: string, pos: number): RegExpExecArray | null {\n re.lastIndex = pos;\n return re.exec(text);\n}\n\nconst isContainer = (kind: Kind): boolean => kind === 'quote' || kind === 'list' || kind === 'item';\n\n/** For each position of `ln`: 1 when the rest of the line from there is a\n * thematic break — three or more of one of `*`, `-`, `_`, starting there,\n * with only spaces and tabs between and after them. One pass from the end,\n * so the check costs the same however often a line asks it. */\nfunction thematicBreaks(ln: string): Uint8Array {\n const ok = new Uint8Array(ln.length);\n const marks = '*-_';\n const count = [0, 0, 0];\n const pure = [true, true, true]; // only this mark, spaces and tabs after i\n for (let i = ln.length - 1; i >= 0; i--) {\n const c = ln[i];\n const space = c === ' ' || c === '\\t';\n for (let k = 0; k < 3; k++) {\n if (c === marks[k]) {count[k]++;} else if (!space) {pure[k] = false;}\n }\n const k = marks.indexOf(c);\n ok[i] = k >= 0 && pure[k] && count[k] >= 3 ? 1 : 0;\n }\n return ok;\n}\n\ninterface ListData {\n bullet: string | null;\n delimiter: string | null;\n markerOffset: number;\n padding: number;\n}\n\ninterface Fence {\n char: string;\n len: number;\n offset: number;\n}\n\ntype Block =\n | { kind: 'document' | 'quote' | 'paragraph' | 'heading' | 'break'; hasChild?: boolean }\n | { kind: 'list'; list: ListData; hasChild?: boolean }\n | { kind: 'item'; list: ListData; hasChild?: boolean }\n | { kind: 'code'; fence: Fence | null; hasChild?: boolean }\n | { kind: 'html'; type: number; tag: string; hasChild?: boolean };\n\ntype Kind = Block['kind'];\n\n/** What hides a line: its region, as faf names it to the user. */\nexport type HiddenIn = 'code fence' | 'indented code' | 'html' | 'comment' | `<${string}>`;\n\n/** 0: no; 1: yes, a container; 2: yes, and the line is done with (a leaf). */\ntype Step = 0 | 1 | 2;\n\nconst isSpaceOrTab = (c: string | undefined): boolean => c === ' ' || c === '\\t';\n\nfunction canContain(parent: Kind, child: Kind): boolean {\n if (parent === 'document' || parent === 'quote' || parent === 'item') {return child !== 'item';}\n return parent === 'list' && child === 'item';\n}\n\nconst acceptsLines = (kind: Kind): boolean => kind === 'paragraph' || kind === 'code' || kind === 'html';\n\nfunction copyBlock(b: Block): Block {\n if (b.kind === 'list' || b.kind === 'item') {return { ...b, list: { ...b.list } };}\n if (b.kind === 'code') {return { ...b, fence: b.fence && { ...b.fence } };}\n return { ...b };\n}\n\n/** Feeds a text line by line (terminators removed) and says which lines are hidden. */\nexport class BlockReader {\n private stack: Block[] = [{ kind: 'document' }];\n // The line being read, and where the reader stands in it.\n private ln = '';\n private offset = 0;\n private column = 0;\n private nextNonspace = 0;\n private nextNonspaceColumn = 0;\n private indent = 0;\n private indented = false;\n private blank = false;\n private allClosed = true;\n private matched = 0;\n private htmlStarted = false;\n private hiddenIn: HiddenIn | null = null;\n /** Where the last whitespace scan of this line started (-1: none yet). */\n private scannedFrom = -1;\n /** Per line, lazily: 1 where the rest of the line is a thematic break. */\n private breaks: Uint8Array | null = null;\n private deep = false;\n /** With a limit (see {@link overflowAt}): open containers allowed, and\n * where the line first opened one past it (-1: nowhere yet). */\n private limit = -1;\n private overflow = -1;\n private readonly starts: ReadonlyArray<(container: Block) => Step>;\n\n /** `containers: false` — the plain column-0 reading: no block quotes, no list items. */\n constructor(private readonly containers: boolean = true) {\n this.starts = [\n () => this.startQuote(),\n () => this.startHeading(),\n () => this.startFence(),\n c => this.startHtml(c),\n c => this.startSetext(c),\n () => this.startBreak(),\n c => this.startItem(c),\n () => this.startIndentedCode(),\n ];\n }\n\n /** An independent copy, for trying lines out. */\n clone(): BlockReader {\n const copy = new BlockReader(this.containers);\n copy.stack = this.stack.map(copyBlock);\n copy.deep = this.deep;\n return copy;\n }\n\n /**\n * Where in `ln` a reader in this state would open a block quote, list or\n * list item past `limit` open ones — the offset of that quote's `>` or that\n * item's marker — or -1 when the line leaves at most `limit` open. This\n * reader does not move: a copy reads the line.\n */\n overflowAt(ln: string, limit: number): number {\n const probe = this.clone();\n probe.limit = limit;\n probe.line(ln);\n return probe.overflow;\n }\n\n /** True once more than MAX_OPEN_CONTAINERS block quotes, lists and list\n * items were open at once. The reader then stops reading: what it says\n * about that line and every later one means nothing, and a caller treats\n * the file as one it cannot read for sure. */\n get tooDeep(): boolean {\n return this.deep;\n }\n\n /** Read one line (no terminator). Returns what hides it, or null when it is shown as text. */\n line(ln: string): HiddenIn | null {\n if (this.deep) {return null;}\n this.ln = ln;\n this.offset = 0;\n this.column = 0;\n this.blank = false;\n this.htmlStarted = false;\n this.hiddenIn = null;\n this.scannedFrom = -1;\n this.breaks = null;\n const container = this.continueContainers();\n if (container < 0) {return this.hiddenIn;} // a closing fence: the line is its last\n const leaf = this.openBlocks(container);\n if (this.deep) {return null;}\n // A lazy paragraph line (a list item's or a quote's paragraph, run on) is text.\n if (!this.allClosed && !this.blank && this.tip.kind === 'paragraph') {return null;}\n this.closeUnmatched();\n this.addText(leaf);\n return this.hiddenIn;\n }\n\n /** The line that would close the region a column-0 line would now be hidden\n * in (a fence or an HTML block of types 1-5 at the top level), or null. */\n closer(): string | null {\n if (this.stack.length !== 2) {return null;}\n const b = this.stack[1];\n if (b.kind === 'code') {return b.fence ? b.fence.char.repeat(b.fence.len) : null;}\n if (b.kind !== 'html' || b.type > 5) {return null;}\n return b.type === 1 ? `</${b.tag}>` : HTML_CLOSER[b.type - 1];\n }\n\n private get tip(): Block {\n return this.stack[this.stack.length - 1];\n }\n\n /** Step 1: the open containers the line continues. Returns the index of the\n * last one it continues, or -1 when it closed a fence. */\n private continueContainers(): number {\n const oldTip = this.stack.length - 1;\n let container = 0;\n while (container < oldTip) {\n this.findNextNonspace();\n const res = this.continues(this.stack[container + 1], container + 1);\n if (res === 2) {return -1;}\n if (res === 1) {break;}\n container++;\n }\n this.allClosed = container === oldTip;\n this.matched = container;\n return container;\n }\n\n /** Step 2: the blocks the line opens, from the container at `index`. Returns the block the rest of the line goes to. */\n private openBlocks(index: number): Block {\n let container = this.stack[index];\n let leaf = container.kind !== 'paragraph' && acceptsLines(container.kind);\n while (!leaf && !this.deep) {\n this.findNextNonspace();\n const at = this.nextNonspace;\n if (!this.indented && !MAYBE_SPECIAL.test(this.ln.charAt(at))) {break;}\n let res: Step = 0;\n for (const start of this.starts) {\n res = start(container);\n if (res !== 0) {break;}\n }\n if (res === 0) {break;}\n this.noteOverflow(at, res);\n container = this.tip;\n leaf = res === 2;\n }\n if (!leaf) {this.advanceNextNonspace();}\n return container;\n }\n\n /** A block just opened at `at` (`res` 1: a container): with a limit set,\n * remember the first place the line went past it (below the document\n * only containers are open when a container is added). */\n private noteOverflow(at: number, res: Step): void {\n if (res === 1 && this.limit >= 0 && this.overflow < 0 && this.stack.length - 1 > this.limit) {this.overflow = at;}\n }\n\n /** Step 3: the rest of the line goes to `block`. */\n private addText(block: Block): void {\n if (block.kind === 'code') {\n this.hiddenIn = block.fence ? 'code fence' : 'indented code';\n } else if (block.kind === 'html') {\n this.addHtmlLine(block);\n } else if (!acceptsLines(block.kind) && this.offset < this.ln.length && !this.blank) {\n this.addChild({ kind: 'paragraph' });\n }\n }\n\n private addHtmlLine(block: Extract<Block, { kind: 'html' }>): void {\n if (block.type > 5) {return;}\n const closes = HTML_CLOSE[block.type - 1].test(this.ln.slice(this.offset));\n const oneLineComment = this.htmlStarted && block.type === 2 && closes;\n if (!oneLineComment) {this.hiddenIn = block.type === 1 ? `<${block.tag}>` : block.type === 2 ? 'comment' : 'html';}\n if (closes) {this.stack.pop();}\n }\n\n /** Does the line continue the open block `b` (at `index`)? 0 yes, 1 no, 2 it closed a fence. */\n private continues(b: Block, index: number): Step {\n switch (b.kind) {\n case 'quote':\n return this.continueQuote();\n case 'item':\n return this.continueItem(b);\n case 'code':\n return b.fence ? this.continueFence(b.fence, index) : this.continueIndentedCode();\n default:\n return this.continueOther(b);\n }\n }\n\n /** The document and a list always continue; a heading or a break never\n * does; a paragraph and an HTML block of type 6 or 7 end at a blank line. */\n private continueOther(b: Block): Step {\n if (b.kind === 'heading' || b.kind === 'break') {return 1;}\n const endsAtBlank = b.kind === 'paragraph' || (b.kind === 'html' && b.type >= 6);\n return endsAtBlank && this.blank ? 1 : 0;\n }\n\n private continueQuote(): Step {\n if (this.indented || this.ch !== '>') {return 1;}\n this.advanceNextNonspace();\n this.advanceOffset(1, false);\n if (isSpaceOrTab(this.ln[this.offset])) {this.advanceOffset(1, true);}\n return 0;\n }\n\n private continueItem(b: Extract<Block, { kind: 'item' }>): Step {\n const width = b.list.markerOffset + b.list.padding;\n if (this.blank) {\n if (!b.hasChild) {return 1;} // a blank line after an empty list item ends it\n this.advanceNextNonspace();\n } else if (this.indent >= width) {\n this.advanceOffset(width, true);\n } else {\n return 1;\n }\n return 0;\n }\n\n private continueFence(fence: Fence, index: number): Step {\n const m = this.indent <= 3 && this.ch === fence.char ? matchAt(FENCE_CLOSE, this.ln, this.nextNonspace) : null;\n if (m && m[0].length >= fence.len) {\n this.stack.length = index;\n this.hiddenIn = 'code fence';\n return 2;\n }\n for (let i = fence.offset; i > 0 && isSpaceOrTab(this.ln[this.offset]); i--) {this.advanceOffset(1, true);}\n return 0;\n }\n\n private continueIndentedCode(): Step {\n if (this.indent >= CODE_INDENT) {\n this.advanceOffset(CODE_INDENT, true);\n } else if (this.blank) {\n this.advanceNextNonspace();\n } else {\n return 1;\n }\n return 0;\n }\n\n /** The character at the next non-space position ('' at the line's end). */\n private get ch(): string {\n return this.ln.charAt(this.nextNonspace);\n }\n\n /** True when the rest of the line, from the next non-space position, is a\n * thematic break (see {@link thematicBreaks}; worked out once per line). */\n private breakAhead(): boolean {\n this.breaks ??= thematicBreaks(this.ln);\n return this.breaks[this.nextNonspace] === 1;\n }\n\n private startQuote(): Step {\n if (!this.containers || this.indented || this.ch !== '>') {return 0;}\n this.advanceNextNonspace();\n this.advanceOffset(1, false);\n if (isSpaceOrTab(this.ln[this.offset])) {this.advanceOffset(1, true);}\n this.closeUnmatched();\n this.addChild({ kind: 'quote' });\n return 1;\n }\n\n private startHeading(): Step {\n if (this.indented || this.ch !== '#' || !matchAt(ATX_HEADING, this.ln, this.nextNonspace)) {return 0;}\n this.closeUnmatched();\n this.addChild({ kind: 'heading' });\n this.offset = this.ln.length;\n return 2;\n }\n\n private startFence(): Step {\n const c = this.ch;\n const m = this.indented || (c !== '`' && c !== '~') ? null : matchAt(FENCE_OPEN, this.ln, this.nextNonspace);\n if (!m) {return 0;}\n this.closeUnmatched();\n this.addChild({ kind: 'code', fence: { char: m[0][0], len: m[0].length, offset: this.indent } });\n this.advanceNextNonspace();\n this.advanceOffset(m[0].length, false);\n return 2;\n }\n\n private startHtml(container: Block): Step {\n if (this.indented || this.ch !== '<') {return 0;}\n const lazy = !this.allClosed && !this.blank && this.tip.kind === 'paragraph';\n const type7 = container.kind !== 'paragraph' && !lazy; // type 7 cannot interrupt a paragraph\n const rest = this.ln.slice(this.nextNonspace); // once: an HTML start ends the line's block openers\n for (let type = 1; type <= (type7 ? 7 : 6); type++) {\n const m = HTML_OPEN[type - 1].exec(rest);\n if (m) {\n this.closeUnmatched();\n this.addChild({ kind: 'html', type, tag: type === 1 ? m[1].toLowerCase() : '' });\n this.htmlStarted = true;\n return 2;\n }\n }\n return 0;\n }\n\n private startSetext(container: Block): Step {\n const c = this.ch;\n if (this.indented || container.kind !== 'paragraph' || (c !== '=' && c !== '-') || !matchAt(SETEXT_LINE, this.ln, this.nextNonspace)) {return 0;}\n this.closeUnmatched();\n this.stack[this.stack.length - 1] = { kind: 'heading' }; // the paragraph becomes a heading\n this.offset = this.ln.length;\n return 2;\n }\n\n private startBreak(): Step {\n if (this.indented || !this.breakAhead()) {return 0;}\n this.closeUnmatched();\n this.addChild({ kind: 'break' });\n this.offset = this.ln.length;\n return 2;\n }\n\n private startItem(container: Block): Step {\n if (!this.containers || (this.indented && container.kind !== 'list')) {return 0;}\n const data = this.listMarker(container);\n if (!data) {return 0;}\n this.closeUnmatched();\n const tip = this.tip;\n if (tip.kind !== 'list' || tip.list.bullet !== data.bullet || tip.list.delimiter !== data.delimiter) {\n this.addChild({ kind: 'list', list: data });\n }\n this.addChild({ kind: 'item', list: data, hasChild: false });\n return 1;\n }\n\n private startIndentedCode(): Step {\n if (!this.indented || this.tip.kind === 'paragraph' || this.blank) {return 0;}\n this.advanceOffset(CODE_INDENT, true);\n this.closeUnmatched();\n this.addChild({ kind: 'code', fence: null });\n return 2;\n }\n\n /** The list marker at the reader's position: its kind, where it sits and\n * its content column (padding); null when there is none. */\n private listMarker(container: Block): ListData | null {\n if (this.indent >= 4) {return null;}\n const marker = this.markerAt(container);\n if (!marker) {return null;}\n const markerOffset = this.indent;\n this.advanceNextNonspace();\n this.advanceOffset(marker.width, true);\n return { ...marker.kind, markerOffset, padding: this.paddingAfter(marker.width) };\n }\n\n /** A bullet or an ordered marker followed by a space, a tab or the line's end. */\n private markerAt(container: Block): { width: number; kind: Pick<ListData, 'bullet' | 'delimiter'> } | null {\n const inParagraph = container.kind === 'paragraph';\n const found = this.markerKind(inParagraph);\n if (!found) {return null;}\n const after = this.ln[this.nextNonspace + found.width];\n if (!(after === undefined || isSpaceOrTab(after))) {return null;}\n // A list item that interrupts a paragraph cannot start with a blank line.\n if (inParagraph && !NON_SPACE.test(this.ln.slice(this.nextNonspace + found.width))) {return null;}\n return found;\n }\n\n private markerKind(inParagraph: boolean): { width: number; kind: Pick<ListData, 'bullet' | 'delimiter'> } | null {\n const c = this.ch;\n if (c === '*' || c === '+' || c === '-') {return { width: 1, kind: { bullet: c, delimiter: null } };}\n const ordered = c >= '0' && c <= '9' ? matchAt(ORDERED, this.ln, this.nextNonspace) : null;\n // An ordered list interrupts a paragraph only when it starts at 1.\n if (!ordered || (inParagraph && Number(ordered[1]) !== 1)) {return null;}\n return { width: ordered[0].length, kind: { bullet: null, delimiter: ordered[2] } };\n }\n\n /** The columns from the marker to the item's content: 1-4 spaces (or tabs\n * to that many columns) after it; with 5 or more, or none (a blank item),\n * the content starts one column after the marker. */\n private paddingAfter(width: number): number {\n const startCol = this.column;\n const startOffset = this.offset;\n do {\n this.advanceOffset(1, true);\n } while (this.column - startCol < 5 && isSpaceOrTab(this.ln[this.offset]));\n const spaces = this.column - startCol;\n if (spaces >= 1 && spaces < 5 && this.ln[this.offset] !== undefined) {return width + spaces;}\n this.column = startCol;\n this.offset = startOffset;\n if (isSpaceOrTab(this.ln[this.offset])) {this.advanceOffset(1, true);}\n return width + 1;\n }\n\n private addChild(block: Block): void {\n while (!canContain(this.tip.kind, block.kind)) {this.stack.pop();}\n this.tip.hasChild = true;\n this.stack.push(block);\n // Below the document only containers are open when a container is added\n // (a leaf is always the tip, and it was closed to make room).\n if (isContainer(block.kind) && this.stack.length - 1 > MAX_OPEN_CONTAINERS) {this.deep = true;}\n }\n\n private closeUnmatched(): void {\n if (!this.allClosed) {\n this.stack.length = this.matched + 1;\n this.allClosed = true;\n }\n }\n\n /** The next non-space position from where the reader stands, its column,\n * and the indent to it. A second call from inside the same run of spaces\n * and tabs reuses the first scan (the column a run ends at does not depend\n * on where in the run the scan starts), so a line is scanned once however\n * many containers it continues. */\n private findNextNonspace(): void {\n const ln = this.ln;\n let i = this.offset;\n let cols = this.column;\n if (this.scannedFrom !== -1 && this.offset >= this.scannedFrom && this.offset <= this.nextNonspace) {\n i = this.nextNonspace;\n cols = this.nextNonspaceColumn;\n } else {\n this.scannedFrom = this.offset;\n for (; i < ln.length; i++) {\n if (ln[i] === ' ') {\n cols++;\n } else if (ln[i] === '\\t') {\n cols += 4 - (cols % 4);\n } else {\n break;\n }\n }\n }\n this.blank = i >= ln.length;\n this.nextNonspace = i;\n this.nextNonspaceColumn = cols;\n this.indent = cols - this.column;\n this.indented = this.indent >= CODE_INDENT;\n }\n\n private advanceNextNonspace(): void {\n this.offset = this.nextNonspace;\n this.column = this.nextNonspaceColumn;\n }\n\n /** Move `count` characters on (or, with `columns`, `count` columns: a tab may be taken in part). */\n private advanceOffset(count: number, columns: boolean): void {\n let left = count;\n while (left > 0 && this.offset < this.ln.length) {\n if (this.ln[this.offset] !== '\\t') {\n this.offset++;\n this.column++;\n left--;\n continue;\n }\n const toTab = 4 - (this.column % 4);\n const partial = columns && toTab > left;\n this.column += partial ? left : toTab;\n this.offset += partial ? 0 : 1;\n left -= columns ? Math.min(toTab, left) : 1;\n }\n }\n}\n",
131
131
  "/**\n * Shared label formatting for the AI-context emitters (CLAUDE.md, AGENTS.md,\n * .github/copilot-instructions.md). ONE acronym-aware Title-Caser so `api_type`\n * renders \"API Type\" everywhere — not \"Api Type\" in one file and a raw\n * `api_type` key in another. Unified 2026-06-25 (faf-cli 6.15.1).\n *\n * Labels are registry-first: `slotLabel()` reads the canonical label from the\n * slot registry (\"know your stack\"); the acronym-aware `titleLabel()` is only a\n * fallback for off-registry freeform keys.\n */\n\nimport { SLOT_BY_PATH } from '../core/slots.js';\n\n/** All-caps acronym tokens that stay upper-cased inside a Title-Cased label. */\nexport const ACRONYMS = new Set([\n 'API', 'CI', 'CD', 'MCP', 'CLI', 'SDK', 'UI', 'UX', 'AI', 'ML', 'DB', 'ORM',\n 'OS', 'HTTP', 'HTTPS', 'REST', 'RPC', 'JSON', 'YAML', 'XML', 'SQL', 'CSS',\n 'HTML', 'AWS', 'GCP', 'CDN', 'DNS', 'JWT', 'ID', 'IP', 'URL', 'URI', 'TS', 'JS',\n]);\n\n/**\n * snake_case → Title Case, acronym-aware.\n * `api_type` → \"API Type\", `mcp_sdk` → \"MCP SDK\", `runtime` → \"Runtime\".\n */\nexport function titleLabel(key: string): string {\n return key\n .split('_')\n .map((w) => {\n if (!w) {return w;}\n const up = w.toUpperCase();\n return ACRONYMS.has(up) ? up : w.charAt(0).toUpperCase() + w.slice(1);\n })\n .join(' ');\n}\n\n/** A slot value that carries real content (not empty, not slotignored). */\nexport function filled(v: unknown): v is string {\n return typeof v === 'string' && v.trim() !== '' && v.trim() !== 'slotignored';\n}\n\n/**\n * The canonical display label for a .faf slot path, sourced from the slot\n * registry (\"know your stack\") — `stack.cicd` → \"CI/CD\", `stack.api_type` → \"API\".\n * Resolves legacy OR canonical paths (SLOT_BY_PATH is dual-keyed). Falls back to\n * the acronym-aware Title-Caser for off-registry freeform keys.\n */\nexport function slotLabel(path: string): string {\n const slot = SLOT_BY_PATH.get(path);\n if (slot?.label) {return slot.label;}\n const key = path.includes('.') ? path.slice(path.lastIndexOf('.') + 1) : path;\n return titleLabel(key);\n}\n",
132
- "import { join } from 'path';\nimport type { FafData } from '../core/types.js';\nimport { FAF_CONTEXT_FILES } from '../core/safe-write.js';\nimport { fafMetaTag } from './claude.js';\nimport { injectFafBlock } from './inject.js';\nimport { filled, slotLabel } from './labels.js';\n\n/** A value carrying real content — non-empty, not slotignored, non-empty array. */\nconst present = (v: unknown): boolean =>\n v !== null && v !== undefined && v !== '' && v !== 'slotignored' && !(Array.isArray(v) && v.length === 0);\n\n/** Stack keys that are context/marketing, not actual stack. Kept out of the Stack section (mirrors agents.ts). */\nconst NON_STACK = new Set(['target_user', 'core_problem', 'mission_purpose']);\n\n/**\n * Render GEMINI.md content from .faf data (+ repo enrichment at export).\n *\n * Matches Gemini CLI's own GEMINI.md convention (hierarchical, concatenation-\n * friendly, `@file.md`-importable): commands, key files, and confirmation-\n * required actions — not the AGENTS.md BETTER ladder, which is a different\n * spec for a different reader.\n */\nexport function renderGeminiMd(data: FafData): string {\n const lines: string[] = [];\n\n const instant = data.instant_context as { key_files?: string[] } | undefined;\n const commands = data.commands;\n const keyFiles = data.key_files ?? instant?.key_files;\n\n const entries = commands ? Object.entries(commands).filter(([, v]) => present(v)) : [];\n // Mutually exclusive so a key like `test:check` classifies ONCE (as a test).\n const testCmds = entries.filter(([k]) => /test/i.test(k));\n const lintCmds = entries.filter(([k]) => /lint|check/i.test(k) && !/test/i.test(k));\n const setupRaw = entries.filter(([k]) => !/test|lint|check/i.test(k));\n // Stable setup order: install → build → dev → start → other (enrich merge order is nondeterministic)\n const setupRank = (k: string): number => {\n const n = k.toLowerCase();\n if (/install|deps/.test(n)) {return 0;}\n if (/^build$|build/.test(n) && !/rebuild/.test(n)) {return 1;}\n if (/^dev$|develop/.test(n)) {return 2;}\n if (/^start$|run/.test(n)) {return 3;}\n return 4;\n };\n const setupCmds = [...setupRaw].sort((a, b) => setupRank(a[0]) - setupRank(b[0]) || a[0].localeCompare(b[0]));\n const verifyCmds = [...testCmds, ...lintCmds];\n\n lines.push(fafMetaTag(data));\n lines.push('');\n lines.push(`# GEMINI.md — ${data.project?.name ?? 'Project'}`);\n lines.push('');\n lines.push('> Authored from project.faf — refresh with `faf export --gemini`.');\n lines.push('');\n\n if (data.project?.name) {lines.push(`Project: ${data.project.name}`);}\n if (data.project?.goal) {lines.push(`Goal: ${data.project.goal}`);}\n if (data.project?.main_language) {lines.push(`Language: ${data.project.main_language}`);}\n\n if (setupCmds.length) {\n lines.push('');\n lines.push('## Setup & build');\n lines.push('');\n lines.push('```bash');\n for (const [k, v] of setupCmds) {lines.push(`${v} # ${k}`);}\n lines.push('```');\n }\n\n if (verifyCmds.length) {\n lines.push('');\n lines.push('## Test & verify');\n lines.push('');\n lines.push('```bash');\n for (const [, v] of verifyCmds) {lines.push(v);}\n lines.push('```');\n }\n\n if (keyFiles && keyFiles.length) {\n lines.push('');\n lines.push('## Where things live');\n lines.push('');\n for (const f of keyFiles) {lines.push(`- \\`${f}\\``);}\n }\n\n if (data.stack) {\n const stack: string[] = [];\n for (const [key, value] of Object.entries(data.stack)) {\n if (NON_STACK.has(key)) {continue;}\n if (filled(value)) {stack.push(`- ${slotLabel(`stack.${key}`)}: ${value.trim()}`);}\n }\n if (stack.length) {\n lines.push('');\n lines.push('## Stack');\n for (const s of stack) {lines.push(s);}\n }\n }\n\n // Universal safety default — always renders, same as AGENTS.md's Guardrails.\n lines.push('');\n lines.push('## Before changing things');\n lines.push('');\n lines.push('- Ask first: dependency installs, deletions, migrations, schema changes, publish/release.');\n lines.push('- Never: force-push · push straight to `main` · commit secrets.');\n\n lines.push('');\n return lines.join('\\n');\n}\n\n/** Write GEMINI.md — non-destructive: injects/updates the faf block, preserves the rest. */\nexport function writeGeminiMd(dir: string, data: FafData): void {\n injectFafBlock(join(dir, FAF_CONTEXT_FILES.gemini), renderGeminiMd(data));\n}\n",
132
+ "/**\n * A command value may carry its own note: `cmd — note`.\n *\n * `key_files` already works this way (`path — role`), and the authors turn\n * that into a `| Path | Role |` table. Commands get the same convention, so a\n * `.faf` can say what a script actually does:\n *\n * ```yaml\n * commands:\n * build: bun run build — clean, bundle cli+index, then tsc\n * ```\n *\n * authors as:\n *\n * ```bash\n * bun run build # clean, bundle cli+index, then tsc\n * ```\n *\n * Without a note the behaviour is unchanged — the key is the comment, exactly\n * as before. The separator is the em dash with spaces around it, matching\n * `key_files`; a bare hyphen is left alone, because shell commands are full of\n * them (`--force`, `-rf`).\n *\n * Every consumer of `data.commands` must split before it renders, or the note\n * leaks into the command itself — an authored `bun run build — clean…` that a\n * reader would try to run.\n */\n\n/** The separator a command value uses to carry its note. */\nexport const NOTE_SEPARATOR = ' — ';\n\nexport interface CommandAndNote {\n /** The command to run, with any note removed. */\n cmd: string;\n /** The note the value carried, or null when it carried none. */\n note: string | null;\n}\n\n/**\n * Split a command value into the command and its note.\n *\n * @param value a `commands` value, e.g. `bun run build` or `bun run build — clean, then tsc`\n */\nexport function splitCommandNote(value: unknown): CommandAndNote {\n const s = String(value ?? '').trim();\n const at = s.indexOf(NOTE_SEPARATOR);\n if (at <= 0) {return { cmd: s, note: null };}\n\n const cmd = s.slice(0, at).trim();\n const note = s.slice(at + NOTE_SEPARATOR.length).trim();\n // A separator with nothing useful on one side is not a note.\n if (!cmd || !note) {return { cmd: s, note: null };}\n return { cmd, note };\n}\n\n/** The command alone — for prose and for authors that show no comments. */\nexport function commandOnly(value: unknown): string {\n return splitCommandNote(value).cmd;\n}\n",
133
+ "import { join } from 'path';\nimport type { FafData } from '../core/types.js';\nimport { FAF_CONTEXT_FILES } from '../core/safe-write.js';\nimport { fafMetaTag } from './claude.js';\nimport { injectFafBlock } from './inject.js';\nimport { filled, slotLabel } from './labels.js';\nimport { splitCommandNote } from './command-note.js';\n\n/** A value carrying real content — non-empty, not slotignored, non-empty array. */\nconst present = (v: unknown): boolean =>\n v !== null && v !== undefined && v !== '' && v !== 'slotignored' && !(Array.isArray(v) && v.length === 0);\n\n/** Stack keys that are context/marketing, not actual stack. Kept out of the Stack section (mirrors agents.ts). */\nconst NON_STACK = new Set(['target_user', 'core_problem', 'mission_purpose']);\n\n/**\n * Render GEMINI.md content from .faf data (+ repo enrichment at export).\n *\n * Matches Gemini CLI's own GEMINI.md convention (hierarchical, concatenation-\n * friendly, `@file.md`-importable): commands, key files, and confirmation-\n * required actions — not the AGENTS.md BETTER ladder, which is a different\n * spec for a different reader.\n */\nexport function renderGeminiMd(data: FafData): string {\n const lines: string[] = [];\n\n const instant = data.instant_context as { key_files?: string[] } | undefined;\n const commands = data.commands;\n const keyFiles = data.key_files ?? instant?.key_files;\n\n const entries = commands ? Object.entries(commands).filter(([, v]) => present(v)) : [];\n // Mutually exclusive so a key like `test:check` classifies ONCE (as a test).\n const testCmds = entries.filter(([k]) => /test/i.test(k));\n const lintCmds = entries.filter(([k]) => /lint|check/i.test(k) && !/test/i.test(k));\n const setupRaw = entries.filter(([k]) => !/test|lint|check/i.test(k));\n // Stable setup order: install → build → dev → start → other (enrich merge order is nondeterministic)\n const setupRank = (k: string): number => {\n const n = k.toLowerCase();\n if (/install|deps/.test(n)) {return 0;}\n if (/^build$|build/.test(n) && !/rebuild/.test(n)) {return 1;}\n if (/^dev$|develop/.test(n)) {return 2;}\n if (/^start$|run/.test(n)) {return 3;}\n return 4;\n };\n const setupCmds = [...setupRaw].sort((a, b) => setupRank(a[0]) - setupRank(b[0]) || a[0].localeCompare(b[0]));\n const verifyCmds = [...testCmds, ...lintCmds];\n\n lines.push(fafMetaTag(data));\n lines.push('');\n lines.push(`# GEMINI.md — ${data.project?.name ?? 'Project'}`);\n lines.push('');\n lines.push('> Authored from project.faf — refresh with `faf export --gemini`.');\n lines.push('');\n\n if (data.project?.name) {lines.push(`Project: ${data.project.name}`);}\n if (data.project?.goal) {lines.push(`Goal: ${data.project.goal}`);}\n if (data.project?.main_language) {lines.push(`Language: ${data.project.main_language}`);}\n\n if (setupCmds.length) {\n lines.push('');\n lines.push('## Setup & build');\n lines.push('');\n lines.push('```bash');\n for (const [k, v] of setupCmds) {\n const { cmd, note } = splitCommandNote(v);\n lines.push(`${cmd} # ${note ?? k}`);\n }\n lines.push('```');\n }\n\n if (verifyCmds.length) {\n lines.push('');\n lines.push('## Test & verify');\n lines.push('');\n lines.push('```bash');\n for (const [, v] of verifyCmds) {\n const { cmd, note } = splitCommandNote(v);\n lines.push(note ? `${cmd} # ${note}` : cmd);\n }\n lines.push('```');\n }\n\n if (keyFiles && keyFiles.length) {\n lines.push('');\n lines.push('## Where things live');\n lines.push('');\n for (const f of keyFiles) {lines.push(`- \\`${f}\\``);}\n }\n\n if (data.stack) {\n const stack: string[] = [];\n for (const [key, value] of Object.entries(data.stack)) {\n if (NON_STACK.has(key)) {continue;}\n if (filled(value)) {stack.push(`- ${slotLabel(`stack.${key}`)}: ${value.trim()}`);}\n }\n if (stack.length) {\n lines.push('');\n lines.push('## Stack');\n for (const s of stack) {lines.push(s);}\n }\n }\n\n // Universal safety default — always renders, same as AGENTS.md's Guardrails.\n lines.push('');\n lines.push('## Before changing things');\n lines.push('');\n lines.push('- Ask first: dependency installs, deletions, migrations, schema changes, publish/release.');\n lines.push('- Never: force-push · push straight to `main` · commit secrets.');\n\n lines.push('');\n return lines.join('\\n');\n}\n\n/** Write GEMINI.md — non-destructive: injects/updates the faf block, preserves the rest. */\nexport function writeGeminiMd(dir: string, data: FafData): void {\n injectFafBlock(join(dir, FAF_CONTEXT_FILES.gemini), renderGeminiMd(data));\n}\n",
133
134
  "import { join } from 'path';\nimport type { FafData } from '../core/types.js';\nimport { FAF_CONTEXT_FILES } from '../core/safe-write.js';\nimport { fafMetaTag } from './claude.js';\nimport { injectFafBlock } from './inject.js';\nimport { filled, slotLabel } from './labels.js';\n\n/** Render .cursorrules content from .faf data */\nexport function renderCursorrules(data: FafData): string {\n const lines: string[] = [];\n\n lines.push(fafMetaTag(data));\n lines.push('');\n lines.push('# .cursorrules');\n lines.push(`# Authored from project.faf — ${data.project?.name ?? 'Project'}`);\n lines.push('');\n\n if (data.project?.main_language) {\n lines.push(`language: ${data.project.main_language}`);\n }\n\n if (data.stack) {\n lines.push('');\n lines.push('# Stack');\n for (const [key, value] of Object.entries(data.stack)) {\n if (filled(value)) {\n lines.push(`# ${slotLabel(`stack.${key}`)}: ${value.trim()}`);\n }\n }\n }\n\n lines.push('');\n return lines.join('\\n');\n}\n\n/** Write .cursorrules — non-destructive: injects/updates the faf block (hash-comment markers), preserves the rest. */\nexport function writeCursorrules(dir: string, data: FafData): void {\n injectFafBlock(join(dir, FAF_CONTEXT_FILES.cursorrules), renderCursorrules(data), '# faf:start', '# faf:end');\n}\n",
134
135
  "import { join } from 'path';\nimport type { FafData } from '../core/types.js';\nimport { FAF_CONTEXT_FILES, makeDirInside } from '../core/safe-write.js';\nimport { fafMetaTag } from './claude.js';\nimport { FAF_END, FAF_START, injectFafBlock } from './inject.js';\nimport { filled, slotLabel } from './labels.js';\n\n/**\n * Command slots → the imperative verb that introduces them in \"## Build & run\".\n * Today the .faf carries `build` (+ `cicd`, handled separately). The rest land\n * with Option B (schema enrichment); the emitter already consumes them, so B is\n * pure data — no emitter rework. Order = the order a contributor runs them.\n */\nconst COMMAND_VERBS: ReadonlyArray<readonly [string, string]> = [\n ['install', 'Install with'],\n ['build', 'Build with'],\n ['test', 'Test with'],\n ['lint', 'Lint with'],\n ['run', 'Run with'],\n ['start', 'Start with'],\n ['dev', 'Run the dev server with'],\n];\nconst COMMAND_SLOTS = new Set<string>([...COMMAND_VERBS.map(([k]) => k), 'cicd']);\n\n/**\n * Render `.github/copilot-instructions.md` content from .faf data.\n *\n * GitHub Copilot's repository-wide custom-instructions file — the WIDEST-supported\n * instruction surface (web chat, code review, VS Code, JetBrains, Visual Studio,\n * Eclipse, Xcode, Copilot CLI, coding agent), injected into EVERY request.\n *\n * Built to GitHub's published custom-instructions guidance:\n * short, self-contained, imperative INSTRUCTIONS — not a metadata dump. So we lead\n * with the goal as a prose overview, Title-Case labels (acronym-aware), surface the\n * build/run steps as copy-pasteable commands, keep it compact, and avoid every named\n * anti-pattern (no tone/length rules, no external references). Deliberately NOT a\n * clone of AGENTS.md (which it outranks in-repo) — they are complementary.\n *\n * Strictly faithful to the .faf — nothing invented (GitHub bans speculative,\n * task-specific instructions). Future-proof: the command section + Title-Caser\n * already consume the richer slots Option B will add (test/lint/run, …), so this\n * emitter is built once and grows with the data.\n */\nexport function renderCopilotInstructions(data: FafData): string {\n const lines: string[] = [];\n const name = data.project?.name ?? 'Project';\n\n lines.push(fafMetaTag(data));\n lines.push('');\n lines.push(`# GitHub Copilot Instructions — ${name}`);\n lines.push('');\n lines.push(\n '> Authored from project.faf by FAF. Copilot reads these instructions on every request in this repository — keep them short and broadly applicable.',\n );\n lines.push('');\n\n // Project Overview — the goal as prose (not a `- **Goal:**` bullet).\n if (filled(data.project?.goal)) {\n lines.push(data.project!.goal!.trim());\n lines.push('');\n }\n\n // Tech stack — Title-Cased (acronym-aware) labels, Language first; command slots below.\n const stack = data.stack ?? {};\n const stackEntries: string[] = [];\n if (filled(data.project?.main_language)) {\n stackEntries.push(`- **Language:** ${data.project!.main_language!.trim()}`);\n }\n for (const [key, val] of Object.entries(stack)) {\n if (COMMAND_SLOTS.has(key)) {continue;}\n if (filled(val)) {stackEntries.push(`- **${slotLabel(`stack.${key}`)}:** ${val.trim()}`);}\n }\n if (stackEntries.length > 0) {\n lines.push('## Tech stack', '', ...stackEntries, '');\n }\n\n // Build & run — surface real commands imperatively (GitHub's highest-value section).\n const cmds: string[] = [];\n for (const [slot, verb] of COMMAND_VERBS) {\n const val = (stack as Record<string, unknown>)[slot];\n if (filled(val)) {cmds.push(`- ${verb} \\`${val.trim()}\\`.`);}\n }\n if (filled(stack.cicd)) {cmds.push(`- CI runs on ${stack.cicd.trim()}.`);}\n if (cmds.length > 0) {\n lines.push('## Build & run', '', ...cmds, '');\n }\n\n // Project context — the 6Ws, Title-Cased (mirrors CLAUDE.md), as orientation.\n const hc = data.human_context ?? {};\n const sixW: [string, unknown][] = [\n ['who', hc.who], ['what', hc.what], ['why', hc.why],\n ['where', hc.where], ['when', hc.when], ['how', hc.how],\n ];\n const ctx = sixW.filter(([, v]) => filled(v)).map(([k, v]) => `- **${slotLabel(`human_context.${k}`)}:** ${(v as string).trim()}`);\n if (ctx.length > 0) {\n lines.push('## Project context', '', ...ctx, '');\n }\n\n return lines.join('\\n');\n}\n\n/**\n * Write `.github/copilot-instructions.md` — non-destructive (injects/updates the\n * faf block, preserves the rest). Creates the `.github/` directory if absent.\n * The project folder is the boundary: a `.github` linked outside it is refused.\n */\nexport function writeCopilotInstructions(dir: string, data: FafData): void {\n makeDirInside(dir, '.github');\n injectFafBlock(join(dir, '.github', FAF_CONTEXT_FILES.copilot), renderCopilotInstructions(data), FAF_START, FAF_END, {\n root: dir,\n });\n}\n",
135
- "/**\n * Claude Code auto-memory — the MEMORY.md Claude Code loads at the start of a\n * session: `<config>/projects/<project-id>/memory/MEMORY.md`.\n *\n * Moved here from claude-faf-mcp (its tri-sync writer and path resolver) so\n * every FAF tool shares one copy, with what the audit found fixed.\n *\n * WHERE the file is — Claude Code's own rule (mirrored from Claude Code 2.1.x):\n * - Project root: the canonical git root of the folder — the first folder at\n * or above it that has a `.git` (a folder or a file). A linked worktree\n * resolves to its main checkout, so every worktree shares one memory. A\n * folder that is not in git is its own root.\n * - Project id: that path with every character outside [a-zA-Z0-9] replaced\n * by `-` (so `/home/me/my_app` → `-home-me-my-app`). An id longer than\n * 200 characters is cut to 200 and gets `-` plus a base-36 hash of the\n * full path.\n * - Base: CLAUDE_CODE_REMOTE_MEMORY_DIR when set, else Claude's config\n * folder: CLAUDE_CONFIG_DIR, else ~/.claude.\n * Not read: Claude Code's `autoMemoryDirectory` setting (or any other\n * override of the whole memory folder). When one is set, pass `memoryDir`.\n *\n * WHAT faf writes — one managed block (the same markers and injector as\n * CLAUDE.md). Everything else in the file is Claude's and is kept byte for\n * byte, CRLF line ends and a BOM included:\n * - no MEMORY.md → the file is created with the block\n * - faf's block is there → only the text between its marker lines changes\n * - claude-faf-mcp's earlier section (its `# Project Context (from\n * project.faf)` line through its `*This section is managed by tri-sync.`\n * line, both whole lines) → replaced in place by the block, once\n * - anything else → the block goes on top; nothing is removed\n * Markers match whole lines only (faf's own exactly), never substrings, and\n * only outside fenced code, raw HTML blocks and multi-line HTML comments, as\n * both CommonMark and a plain column-0 reading see them (a note that quotes\n * the block or the old section is an example, not a marker; see inject.ts).\n * When the block goes on top of a file whose older faf block sits in such a\n * region, the result's warnings say so in one line. Only a missing file reads\n * as \"no file\": any other read error is thrown and nothing is written, and a\n * file that is not UTF-8 is refused. The write is atomic, is refused if the\n * file changed on disk after faf read it, and a run that changes nothing\n * writes nothing.\n */\n\nimport { existsSync, lstatSync, readFileSync, realpathSync, statSync } from 'fs';\nimport { homedir } from 'os';\nimport { basename, dirname, join, resolve } from 'path';\nimport type { FafData } from '../core/types.js';\nimport { FAF_CONTEXT_FILES, makeDirInside, resolveInside, safeWriteFile } from '../core/safe-write.js';\nimport {\n findFafBlock,\n findMarkedRange,\n legacyStampNote,\n placeFafBlock,\n readIfPresent,\n withFafBlock,\n wrapFafBlock,\n} from './inject.js';\nimport { filled, slotLabel } from './labels.js';\n\n/** Claude Code cuts a project id at this length and adds a hash. */\nconst MAX_ID = 200;\n/** Claude Code loads this many lines of MEMORY.md into a session. */\nconst LOADED_LINES = 200;\n/** Longest list faf puts in the block (commands, key files), so the block\n * stays short and leaves Claude's own notes inside the loaded lines. */\nconst LIST_CAP = 12;\n\n/** claude-faf-mcp's earlier section: its heading line and its closing line. */\nconst LEGACY_START = '# Project Context (from project.faf)';\nconst LEGACY_END_PREFIX = '*This section is managed by tri-sync.';\n\nexport interface ClaudeMemoryOptions {\n /** Claude Code's config folder. Default: CLAUDE_CODE_REMOTE_MEMORY_DIR,\n * else CLAUDE_CONFIG_DIR, else ~/.claude. */\n configDir?: string;\n /** The memory folder itself, when you know better than the rule (Claude\n * Code's `autoMemoryDirectory` setting, say). Skips the resolver. */\n memoryDir?: string;\n}\n\n/** What `writeClaudeMemory` did. */\nexport type ClaudeMemoryAction = 'created' | 'updated' | 'migrated' | 'added' | 'unchanged';\n\nexport interface ClaudeMemoryResult {\n /** The MEMORY.md (its real path). */\n path: string;\n /**\n * - `created` there was no MEMORY.md; it now holds the block\n * - `updated` faf's block was replaced in place\n * - `migrated` claude-faf-mcp's earlier section was replaced by the block\n * - `added` the file had neither; the block went on top\n * - `unchanged` the block was already exactly this; nothing was written\n */\n action: ClaudeMemoryAction;\n /** False when nothing was written (`unchanged`). */\n written: boolean;\n /** Every byte outside faf's block is still in the file, in place — checked\n * by reading the file back after the write. */\n preserved: boolean;\n /** Lines in the file now. */\n lines: number;\n /** Plain-words notes (e.g. lines past the 200 Claude Code loads). */\n warnings: string[];\n}\n\n/** What is in the MEMORY.md Claude Code loads for a project (read only). */\nexport interface ClaudeMemoryStatus {\n /** The MEMORY.md path (whether or not it exists). */\n path: string;\n exists: boolean;\n /** Lines in the file. */\n lines: number;\n /** faf's block is in the file. */\n hasBlock: boolean;\n /** Lines in faf's block, its marker lines included (0 when there is none). */\n blockLines: number;\n /** claude-faf-mcp's earlier tri-sync section is in the file (the next write replaces it). */\n hasLegacySection: boolean;\n /** Non-blank lines outside faf's block: Claude's own notes. */\n otherLines: number;\n /** Plain-words notes (e.g. lines past the 200 Claude Code loads). */\n warnings: string[];\n}\n\n/** Claude Code's 32-bit string hash (over UTF-16 code units). */\nfunction claudeHash(s: string): number {\n let h = 0;\n for (let i = 0; i < s.length; i++) {\n h = ((h << 5) - h + s.charCodeAt(i)) | 0;\n }\n return h;\n}\n\n/**\n * Claude Code's folder name for a project path: every character outside\n * [a-zA-Z0-9] becomes `-`; past 200 characters the id is cut to 200 and gets\n * `-` plus a base-36 hash of the full path. `/home/me/my_app` → `-home-me-my-app`.\n * Pass the project root (see {@link claudeProjectRoot}), not any folder.\n */\nexport function claudeProjectId(projectRoot: string): string {\n const id = projectRoot.replace(/[^a-zA-Z0-9]/g, '-');\n if (id.length <= MAX_ID) {return id;}\n return `${id.slice(0, MAX_ID)}-${Math.abs(claudeHash(projectRoot)).toString(36)}`;\n}\n\n/** A `.git` Claude Code counts: a folder or a file (a link that leads to one). */\nfunction isGitEntry(p: string): boolean {\n try {\n const st = lstatSync(p);\n if (st.isSymbolicLink()) {\n const target = statSync(p);\n return target.isDirectory() || target.isFile();\n }\n return st.isDirectory() || st.isFile();\n } catch {\n return false;\n }\n}\n\n/** A plain file (not a link) — the only kind of worktree pointer file followed. */\nfunction isPlainFile(p: string): boolean {\n try {\n return lstatSync(p).isFile();\n } catch {\n return false;\n }\n}\n\n/** The first folder at or above `start` with a `.git`, or null. */\nfunction findGitRoot(start: string): string | null {\n let cur = start;\n for (;;) {\n if (isGitEntry(join(cur, '.git'))) {return cur;}\n const parent = dirname(cur);\n if (parent === cur) {return null;}\n cur = parent;\n }\n}\n\n/**\n * The main checkout of a linked worktree, or `root` itself. Follows git's own\n * pointers and trusts them only when they agree: `.git` is a file saying\n * `gitdir: <dir>`, `<dir>/commondir` names the shared git folder, `<dir>` sits\n * in that folder's `worktrees/`, and `<dir>/gitdir` points back at this\n * `.git`. Anything else (a plain `.git` folder, a submodule, a mismatch) → `root`.\n */\nfunction canonicalGitRoot(root: string): string {\n let pointer: string;\n try {\n pointer = readFileSync(join(root, '.git'), 'utf-8').trim();\n } catch {\n return root; // a .git folder: already the main checkout\n }\n try {\n if (!pointer.startsWith('gitdir:')) {return root;}\n const gitDir = resolve(root, pointer.slice('gitdir:'.length).trim());\n const commondirFile = join(gitDir, 'commondir');\n if (!isPlainFile(commondirFile)) {return root;}\n const common = resolve(gitDir, readFileSync(commondirFile, 'utf-8').trim());\n if (resolve(dirname(gitDir)) !== join(common, 'worktrees')) {return root;}\n const backFile = join(gitDir, 'gitdir');\n if (!isPlainFile(backFile)) {return root;}\n const back = readFileSync(backFile, 'utf-8').trim();\n if (realpathSync(resolve(gitDir, back)) !== join(realpathSync(root), '.git')) {return root;}\n if (basename(common) !== '.git') {\n // A bare repo with worktrees: its folder is the root, unless it is itself inside a checkout.\n return isGitEntry(join(common, '.git')) ? root : common;\n }\n return dirname(common);\n } catch {\n return root;\n }\n}\n\n/**\n * The project root Claude Code keys a folder's memory by: the canonical git\n * root (a linked worktree → its main checkout), or the folder itself when it\n * is not in git. The folder is resolved on disk first (links followed), as\n * Claude Code sees its working folder; the result is NFC-normalized.\n */\nexport function claudeProjectRoot(dir: string): string {\n let start = resolve(dir);\n try {\n start = realpathSync.native(start);\n } catch {\n /* not on disk: keep the resolved path */\n }\n const gitRoot = findGitRoot(start);\n return (gitRoot ? canonicalGitRoot(gitRoot) : start).normalize('NFC');\n}\n\n/** `<config>/projects/<project-id>/memory` for the project `dir` is in. */\nexport function resolveClaudeMemoryDir(dir: string, opts: ClaudeMemoryOptions = {}): string {\n if (opts.memoryDir) {return resolve(opts.memoryDir);}\n const base =\n opts.configDir ||\n process.env.CLAUDE_CODE_REMOTE_MEMORY_DIR ||\n process.env.CLAUDE_CONFIG_DIR ||\n join(homedir(), '.claude');\n return join(resolve(base), 'projects', claudeProjectId(claudeProjectRoot(dir)), 'memory').normalize('NFC');\n}\n\n/** The MEMORY.md Claude Code loads for the project `dir` is in. */\nexport function resolveClaudeMemoryPath(dir: string, opts: ClaudeMemoryOptions = {}): string {\n return join(resolveClaudeMemoryDir(dir, opts), FAF_CONTEXT_FILES.memory);\n}\n\n/** Stack keys that are context, not stack (kept out of the Stack list). */\nconst NON_STACK = new Set(['target_user', 'core_problem', 'mission_purpose']);\nconst SIX_WS = ['who', 'what', 'why', 'where', 'when', 'how'] as const;\n\n/**\n * The block body faf keeps in MEMORY.md, from .faf data: a short project\n * summary (name, goal, language, type), the filled stack slots, the 6 Ws,\n * and up to 12 commands and key files. Kept short on purpose — Claude Code\n * loads only the first 200 lines, and the rest of the file is Claude's.\n */\nexport function renderClaudeMemory(data: FafData): string {\n const project = data.project ?? {};\n const summary: [string, unknown][] = [['Goal', project.goal], ['Language', project.main_language], ['Type', project.type]];\n const hc = data.human_context ?? {};\n const keyFiles = Array.isArray(data.key_files) ? data.key_files : [];\n\n const lines = [\n '## Project context — from project.faf',\n '',\n `- **Name:** ${filled(project.name) ? project.name : 'Project'}`,\n ...summary.filter(([, v]) => filled(v)).map(([label, v]) => `- **${label}:** ${v as string}`),\n ...section('Stack', Object.entries(data.stack ?? {})\n .filter(([k, v]) => !NON_STACK.has(k) && filled(v))\n .map(([k, v]) => `- **${slotLabel(`stack.${k}`)}:** ${v as string}`)),\n ...section('Context', SIX_WS.filter(w => filled(hc[w])).map(w => `- **${slotLabel(`human_context.${w}`)}:** ${hc[w] as string}`)),\n ...section('Commands', Object.entries(data.commands ?? {})\n .filter(([, v]) => filled(v))\n .slice(0, LIST_CAP)\n .map(([k, v]) => `- ${k}: \\`${v}\\``)),\n ...section('Key files', keyFiles.filter(filled).slice(0, LIST_CAP).map(f => `- ${f}`)),\n '',\n \"*faf keeps this block in step with project.faf. Everything outside it is Claude's own and is kept as written.*\",\n ];\n return lines.join('\\n');\n}\n\n/** A `### title` section after a blank line, or nothing when it has no items. */\nfunction section(title: string, items: string[]): string[] {\n return items.length > 0 ? ['', `### ${title}`, ...items] : [];\n}\n\n/** claude-faf-mcp's earlier section: its heading as a whole line at column 0,\n * through the first later line that starts with its closing text — both\n * outside fenced code, raw HTML blocks and multi-line HTML comments (the\n * injector's own CommonMark scanner). The range covers both lines (the\n * closing line's terminator excluded), or null. A heading whose closing\n * line appears only inside a fence (a note quoting the old section) is not\n * a section: the file is Claude's, and the block goes on top. */\nfunction findLegacySection(text: string): { start: number; end: number } | null {\n return findMarkedRange(\n text,\n line => line.trimEnd() === LEGACY_START,\n line => line.startsWith(LEGACY_END_PREFIX),\n );\n}\n\n/** Lines in a text (a final line break does not start another line). */\nfunction countLines(text: string): number {\n if (text === '') {return 0;}\n const breaks = text.match(/\\r\\n|\\r|\\n/g)?.length ?? 0;\n return /(\\r\\n|\\r|\\n)$/.test(text) ? breaks : breaks + 1;\n}\n\ninterface Plan {\n text: string;\n action: Exclude<ClaudeMemoryAction, 'unchanged'>;\n /** Text before and after faf's block that must come back unchanged. */\n head: string;\n tail: string;\n}\n\n/** The new file text, and what of the old text must survive around the\n * block. `path` names the file when faf cannot place its block there (a\n * SafePathError `unplaceable`; nothing is written). */\nfunction plan(existing: string | null, wrapped: string, path: string): Plan {\n if (existing === null) {\n return { text: withFafBlock(null, wrapped, undefined, undefined, path), action: 'created', head: '', tail: '' };\n }\n const block = findFafBlock(existing);\n const range = block ?? findLegacySection(existing);\n if (range) {\n const head = existing.slice(0, range.start);\n const tail = existing.slice(range.end);\n return { text: placeFafBlock(head, wrapped, tail, undefined, undefined, path), action: block ? 'updated' : 'migrated', head, tail };\n }\n const bom = existing.startsWith('\\uFEFF') ? '\\uFEFF' : '';\n return { text: withFafBlock(existing, wrapped, undefined, undefined, path), action: 'added', head: bom, tail: existing.slice(bom.length) };\n}\n\n/** The 200-line note, when the text is past what Claude Code loads. */\nfunction lineWarnings(lines: number): string[] {\n return lines > LOADED_LINES\n ? [`MEMORY.md is ${lines} lines. Claude Code loads the first ${LOADED_LINES}; lines after that are kept in the file but not loaded.`]\n : [];\n}\n\n/**\n * Read what is in the MEMORY.md Claude Code loads for the project `dir` is in:\n * whether faf's block (or claude-faf-mcp's earlier section) is there, and how\n * many lines are Claude's own. Reads only; never creates or writes anything.\n * A file that exists but cannot be read throws.\n */\nexport function claudeMemoryStatus(dir: string, opts: ClaudeMemoryOptions = {}): ClaudeMemoryStatus {\n const memoryDir = resolveClaudeMemoryDir(dir, opts);\n const path = join(memoryDir, FAF_CONTEXT_FILES.memory);\n const empty = { path, exists: false, lines: 0, hasBlock: false, blockLines: 0, hasLegacySection: false, otherLines: 0, warnings: [] };\n if (!existsSync(memoryDir)) {return empty;}\n const text = readIfPresent(resolveInside(memoryDir, FAF_CONTEXT_FILES.memory));\n if (text === null) {return empty;}\n const block = findFafBlock(text);\n const outside = block ? `${text.slice(0, block.start)}${text.slice(block.end)}` : text;\n const lines = countLines(text);\n return {\n path,\n exists: true,\n lines,\n hasBlock: block !== null,\n blockLines: block ? countLines(text.slice(block.start, block.end)) : 0,\n hasLegacySection: !block && findLegacySection(text) !== null,\n otherLines: outside.split(/\\r\\n|\\r|\\n/).filter(l => l.replace(/^\\uFEFF/, '').trim() !== '').length,\n warnings: lineWarnings(lines),\n };\n}\n\n/**\n * Write faf's block into the MEMORY.md Claude Code loads for the project `dir`\n * is in (see the file header for the path rule and what is kept). Creates the\n * memory folder when it is not there yet. Throws — having written nothing —\n * when the file cannot be read (other than not existing), is not UTF-8, is a\n * link that leaves the memory folder, changed on disk while faf was writing,\n * cannot be written (the original is kept), or is one where faf cannot place\n * its block where its next run finds it again (SafePathError `unplaceable`,\n * the same one-line refusal as injectFafBlock).\n */\nexport function writeClaudeMemory(dir: string, data: FafData, opts: ClaudeMemoryOptions = {}): ClaudeMemoryResult {\n const memoryDir = resolveClaudeMemoryDir(dir, opts);\n makeDirInside(memoryDir);\n const path = resolveInside(memoryDir, FAF_CONTEXT_FILES.memory);\n const existing = readIfPresent(path);\n const next = plan(existing, wrapFafBlock(renderClaudeMemory(data)), path);\n\n if (next.text === existing) {\n const lines = countLines(existing);\n return { path, action: 'unchanged', written: false, preserved: true, lines, warnings: lineWarnings(lines) };\n }\n\n const written = safeWriteFile(path, next.text, { root: memoryDir, expect: existing });\n const after = readFileSync(written, 'utf-8');\n const preserved = after === next.text && after.startsWith(next.head) && after.endsWith(next.tail);\n const lines = countLines(after);\n // The block went on top of a file whose older faf block sits in a code\n // fence or comment: say so, as `faf sync` does for CLAUDE.md.\n const older = next.action === 'added' ? legacyStampNote(FAF_CONTEXT_FILES.memory, existing) : null;\n return { path: written, action: next.action, written: true, preserved, lines, warnings: [...(older ? [older] : []), ...lineWarnings(lines)] };\n}\n",
136
+ "/**\n * Claude Code auto-memory — the MEMORY.md Claude Code loads at the start of a\n * session: `<config>/projects/<project-id>/memory/MEMORY.md`.\n *\n * Moved here from claude-faf-mcp (its tri-sync writer and path resolver) so\n * every FAF tool shares one copy, with what the audit found fixed.\n *\n * WHERE the file is — Claude Code's own rule (mirrored from Claude Code 2.1.x):\n * - Project root: the canonical git root of the folder — the first folder at\n * or above it that has a `.git` (a folder or a file). A linked worktree\n * resolves to its main checkout, so every worktree shares one memory. A\n * folder that is not in git is its own root.\n * - Project id: that path with every character outside [a-zA-Z0-9] replaced\n * by `-` (so `/home/me/my_app` → `-home-me-my-app`). An id longer than\n * 200 characters is cut to 200 and gets `-` plus a base-36 hash of the\n * full path.\n * - Base: CLAUDE_CODE_REMOTE_MEMORY_DIR when set, else Claude's config\n * folder: CLAUDE_CONFIG_DIR, else ~/.claude.\n * Not read: Claude Code's `autoMemoryDirectory` setting (or any other\n * override of the whole memory folder). When one is set, pass `memoryDir`.\n *\n * WHAT faf writes — one managed block (the same markers and injector as\n * CLAUDE.md). Everything else in the file is Claude's and is kept byte for\n * byte, CRLF line ends and a BOM included:\n * - no MEMORY.md → the file is created with the block\n * - faf's block is there → only the text between its marker lines changes\n * - claude-faf-mcp's earlier section (its `# Project Context (from\n * project.faf)` line through its `*This section is managed by tri-sync.`\n * line, both whole lines) → replaced in place by the block, once\n * - anything else → the block goes on top; nothing is removed\n * Markers match whole lines only (faf's own exactly), never substrings, and\n * only outside fenced code, raw HTML blocks and multi-line HTML comments, as\n * both CommonMark and a plain column-0 reading see them (a note that quotes\n * the block or the old section is an example, not a marker; see inject.ts).\n * When the block goes on top of a file whose older faf block sits in such a\n * region, the result's warnings say so in one line. Only a missing file reads\n * as \"no file\": any other read error is thrown and nothing is written, and a\n * file that is not UTF-8 is refused. The write is atomic, is refused if the\n * file changed on disk after faf read it, and a run that changes nothing\n * writes nothing.\n */\n\nimport { existsSync, lstatSync, readFileSync, realpathSync, statSync } from 'fs';\nimport { homedir } from 'os';\nimport { basename, dirname, join, resolve } from 'path';\nimport type { FafData } from '../core/types.js';\nimport { FAF_CONTEXT_FILES, makeDirInside, resolveInside, safeWriteFile } from '../core/safe-write.js';\nimport {\n findFafBlock,\n findMarkedRange,\n legacyStampNote,\n placeFafBlock,\n readIfPresent,\n withFafBlock,\n wrapFafBlock,\n} from './inject.js';\nimport { filled, slotLabel } from './labels.js';\nimport { commandOnly } from './command-note.js';\n\n/** Claude Code cuts a project id at this length and adds a hash. */\nconst MAX_ID = 200;\n/** Claude Code loads this many lines of MEMORY.md into a session. */\nconst LOADED_LINES = 200;\n/** Longest list faf puts in the block (commands, key files), so the block\n * stays short and leaves Claude's own notes inside the loaded lines. */\nconst LIST_CAP = 12;\n\n/** claude-faf-mcp's earlier section: its heading line and its closing line. */\nconst LEGACY_START = '# Project Context (from project.faf)';\nconst LEGACY_END_PREFIX = '*This section is managed by tri-sync.';\n\nexport interface ClaudeMemoryOptions {\n /** Claude Code's config folder. Default: CLAUDE_CODE_REMOTE_MEMORY_DIR,\n * else CLAUDE_CONFIG_DIR, else ~/.claude. */\n configDir?: string;\n /** The memory folder itself, when you know better than the rule (Claude\n * Code's `autoMemoryDirectory` setting, say). Skips the resolver. */\n memoryDir?: string;\n}\n\n/** What `writeClaudeMemory` did. */\nexport type ClaudeMemoryAction = 'created' | 'updated' | 'migrated' | 'added' | 'unchanged';\n\nexport interface ClaudeMemoryResult {\n /** The MEMORY.md (its real path). */\n path: string;\n /**\n * - `created` there was no MEMORY.md; it now holds the block\n * - `updated` faf's block was replaced in place\n * - `migrated` claude-faf-mcp's earlier section was replaced by the block\n * - `added` the file had neither; the block went on top\n * - `unchanged` the block was already exactly this; nothing was written\n */\n action: ClaudeMemoryAction;\n /** False when nothing was written (`unchanged`). */\n written: boolean;\n /** Every byte outside faf's block is still in the file, in place — checked\n * by reading the file back after the write. */\n preserved: boolean;\n /** Lines in the file now. */\n lines: number;\n /** Plain-words notes (e.g. lines past the 200 Claude Code loads). */\n warnings: string[];\n}\n\n/** What is in the MEMORY.md Claude Code loads for a project (read only). */\nexport interface ClaudeMemoryStatus {\n /** The MEMORY.md path (whether or not it exists). */\n path: string;\n exists: boolean;\n /** Lines in the file. */\n lines: number;\n /** faf's block is in the file. */\n hasBlock: boolean;\n /** Lines in faf's block, its marker lines included (0 when there is none). */\n blockLines: number;\n /** claude-faf-mcp's earlier tri-sync section is in the file (the next write replaces it). */\n hasLegacySection: boolean;\n /** Non-blank lines outside faf's block: Claude's own notes. */\n otherLines: number;\n /** Plain-words notes (e.g. lines past the 200 Claude Code loads). */\n warnings: string[];\n}\n\n/** Claude Code's 32-bit string hash (over UTF-16 code units). */\nfunction claudeHash(s: string): number {\n let h = 0;\n for (let i = 0; i < s.length; i++) {\n h = ((h << 5) - h + s.charCodeAt(i)) | 0;\n }\n return h;\n}\n\n/**\n * Claude Code's folder name for a project path: every character outside\n * [a-zA-Z0-9] becomes `-`; past 200 characters the id is cut to 200 and gets\n * `-` plus a base-36 hash of the full path. `/home/me/my_app` → `-home-me-my-app`.\n * Pass the project root (see {@link claudeProjectRoot}), not any folder.\n */\nexport function claudeProjectId(projectRoot: string): string {\n const id = projectRoot.replace(/[^a-zA-Z0-9]/g, '-');\n if (id.length <= MAX_ID) {return id;}\n return `${id.slice(0, MAX_ID)}-${Math.abs(claudeHash(projectRoot)).toString(36)}`;\n}\n\n/** A `.git` Claude Code counts: a folder or a file (a link that leads to one). */\nfunction isGitEntry(p: string): boolean {\n try {\n const st = lstatSync(p);\n if (st.isSymbolicLink()) {\n const target = statSync(p);\n return target.isDirectory() || target.isFile();\n }\n return st.isDirectory() || st.isFile();\n } catch {\n return false;\n }\n}\n\n/** A plain file (not a link) — the only kind of worktree pointer file followed. */\nfunction isPlainFile(p: string): boolean {\n try {\n return lstatSync(p).isFile();\n } catch {\n return false;\n }\n}\n\n/** The first folder at or above `start` with a `.git`, or null. */\nfunction findGitRoot(start: string): string | null {\n let cur = start;\n for (;;) {\n if (isGitEntry(join(cur, '.git'))) {return cur;}\n const parent = dirname(cur);\n if (parent === cur) {return null;}\n cur = parent;\n }\n}\n\n/**\n * The main checkout of a linked worktree, or `root` itself. Follows git's own\n * pointers and trusts them only when they agree: `.git` is a file saying\n * `gitdir: <dir>`, `<dir>/commondir` names the shared git folder, `<dir>` sits\n * in that folder's `worktrees/`, and `<dir>/gitdir` points back at this\n * `.git`. Anything else (a plain `.git` folder, a submodule, a mismatch) → `root`.\n */\nfunction canonicalGitRoot(root: string): string {\n let pointer: string;\n try {\n pointer = readFileSync(join(root, '.git'), 'utf-8').trim();\n } catch {\n return root; // a .git folder: already the main checkout\n }\n try {\n if (!pointer.startsWith('gitdir:')) {return root;}\n const gitDir = resolve(root, pointer.slice('gitdir:'.length).trim());\n const commondirFile = join(gitDir, 'commondir');\n if (!isPlainFile(commondirFile)) {return root;}\n const common = resolve(gitDir, readFileSync(commondirFile, 'utf-8').trim());\n if (resolve(dirname(gitDir)) !== join(common, 'worktrees')) {return root;}\n const backFile = join(gitDir, 'gitdir');\n if (!isPlainFile(backFile)) {return root;}\n const back = readFileSync(backFile, 'utf-8').trim();\n if (realpathSync(resolve(gitDir, back)) !== join(realpathSync(root), '.git')) {return root;}\n if (basename(common) !== '.git') {\n // A bare repo with worktrees: its folder is the root, unless it is itself inside a checkout.\n return isGitEntry(join(common, '.git')) ? root : common;\n }\n return dirname(common);\n } catch {\n return root;\n }\n}\n\n/**\n * The project root Claude Code keys a folder's memory by: the canonical git\n * root (a linked worktree → its main checkout), or the folder itself when it\n * is not in git. The folder is resolved on disk first (links followed), as\n * Claude Code sees its working folder; the result is NFC-normalized.\n */\nexport function claudeProjectRoot(dir: string): string {\n let start = resolve(dir);\n try {\n start = realpathSync.native(start);\n } catch {\n /* not on disk: keep the resolved path */\n }\n const gitRoot = findGitRoot(start);\n return (gitRoot ? canonicalGitRoot(gitRoot) : start).normalize('NFC');\n}\n\n/** `<config>/projects/<project-id>/memory` for the project `dir` is in. */\nexport function resolveClaudeMemoryDir(dir: string, opts: ClaudeMemoryOptions = {}): string {\n if (opts.memoryDir) {return resolve(opts.memoryDir);}\n const base =\n opts.configDir ||\n process.env.CLAUDE_CODE_REMOTE_MEMORY_DIR ||\n process.env.CLAUDE_CONFIG_DIR ||\n join(homedir(), '.claude');\n return join(resolve(base), 'projects', claudeProjectId(claudeProjectRoot(dir)), 'memory').normalize('NFC');\n}\n\n/** The MEMORY.md Claude Code loads for the project `dir` is in. */\nexport function resolveClaudeMemoryPath(dir: string, opts: ClaudeMemoryOptions = {}): string {\n return join(resolveClaudeMemoryDir(dir, opts), FAF_CONTEXT_FILES.memory);\n}\n\n/** Stack keys that are context, not stack (kept out of the Stack list). */\nconst NON_STACK = new Set(['target_user', 'core_problem', 'mission_purpose']);\nconst SIX_WS = ['who', 'what', 'why', 'where', 'when', 'how'] as const;\n\n/**\n * The block body faf keeps in MEMORY.md, from .faf data: a short project\n * summary (name, goal, language, type), the filled stack slots, the 6 Ws,\n * and up to 12 commands and key files. Kept short on purpose — Claude Code\n * loads only the first 200 lines, and the rest of the file is Claude's.\n */\nexport function renderClaudeMemory(data: FafData): string {\n const project = data.project ?? {};\n const summary: [string, unknown][] = [['Goal', project.goal], ['Language', project.main_language], ['Type', project.type]];\n const hc = data.human_context ?? {};\n const keyFiles = Array.isArray(data.key_files) ? data.key_files : [];\n\n const lines = [\n '## Project context — from project.faf',\n '',\n `- **Name:** ${filled(project.name) ? project.name : 'Project'}`,\n ...summary.filter(([, v]) => filled(v)).map(([label, v]) => `- **${label}:** ${v as string}`),\n ...section('Stack', Object.entries(data.stack ?? {})\n .filter(([k, v]) => !NON_STACK.has(k) && filled(v))\n .map(([k, v]) => `- **${slotLabel(`stack.${k}`)}:** ${v as string}`)),\n ...section('Context', SIX_WS.filter(w => filled(hc[w])).map(w => `- **${slotLabel(`human_context.${w}`)}:** ${hc[w] as string}`)),\n ...section('Commands', Object.entries(data.commands ?? {})\n .filter(([, v]) => filled(v))\n .slice(0, LIST_CAP)\n .map(([k, v]) => `- ${k}: \\`${commandOnly(v)}\\``)),\n ...section('Key files', keyFiles.filter(filled).slice(0, LIST_CAP).map(f => `- ${f}`)),\n '',\n \"*faf keeps this block in step with project.faf. Everything outside it is Claude's own and is kept as written.*\",\n ];\n return lines.join('\\n');\n}\n\n/** A `### title` section after a blank line, or nothing when it has no items. */\nfunction section(title: string, items: string[]): string[] {\n return items.length > 0 ? ['', `### ${title}`, ...items] : [];\n}\n\n/** claude-faf-mcp's earlier section: its heading as a whole line at column 0,\n * through the first later line that starts with its closing text — both\n * outside fenced code, raw HTML blocks and multi-line HTML comments (the\n * injector's own CommonMark scanner). The range covers both lines (the\n * closing line's terminator excluded), or null. A heading whose closing\n * line appears only inside a fence (a note quoting the old section) is not\n * a section: the file is Claude's, and the block goes on top. */\nfunction findLegacySection(text: string): { start: number; end: number } | null {\n return findMarkedRange(\n text,\n line => line.trimEnd() === LEGACY_START,\n line => line.startsWith(LEGACY_END_PREFIX),\n );\n}\n\n/** Lines in a text (a final line break does not start another line). */\nfunction countLines(text: string): number {\n if (text === '') {return 0;}\n const breaks = text.match(/\\r\\n|\\r|\\n/g)?.length ?? 0;\n return /(\\r\\n|\\r|\\n)$/.test(text) ? breaks : breaks + 1;\n}\n\ninterface Plan {\n text: string;\n action: Exclude<ClaudeMemoryAction, 'unchanged'>;\n /** Text before and after faf's block that must come back unchanged. */\n head: string;\n tail: string;\n}\n\n/** The new file text, and what of the old text must survive around the\n * block. `path` names the file when faf cannot place its block there (a\n * SafePathError `unplaceable`; nothing is written). */\nfunction plan(existing: string | null, wrapped: string, path: string): Plan {\n if (existing === null) {\n return { text: withFafBlock(null, wrapped, undefined, undefined, path), action: 'created', head: '', tail: '' };\n }\n const block = findFafBlock(existing);\n const range = block ?? findLegacySection(existing);\n if (range) {\n const head = existing.slice(0, range.start);\n const tail = existing.slice(range.end);\n return { text: placeFafBlock(head, wrapped, tail, undefined, undefined, path), action: block ? 'updated' : 'migrated', head, tail };\n }\n const bom = existing.startsWith('\\uFEFF') ? '\\uFEFF' : '';\n return { text: withFafBlock(existing, wrapped, undefined, undefined, path), action: 'added', head: bom, tail: existing.slice(bom.length) };\n}\n\n/** The 200-line note, when the text is past what Claude Code loads. */\nfunction lineWarnings(lines: number): string[] {\n return lines > LOADED_LINES\n ? [`MEMORY.md is ${lines} lines. Claude Code loads the first ${LOADED_LINES}; lines after that are kept in the file but not loaded.`]\n : [];\n}\n\n/**\n * Read what is in the MEMORY.md Claude Code loads for the project `dir` is in:\n * whether faf's block (or claude-faf-mcp's earlier section) is there, and how\n * many lines are Claude's own. Reads only; never creates or writes anything.\n * A file that exists but cannot be read throws.\n */\nexport function claudeMemoryStatus(dir: string, opts: ClaudeMemoryOptions = {}): ClaudeMemoryStatus {\n const memoryDir = resolveClaudeMemoryDir(dir, opts);\n const path = join(memoryDir, FAF_CONTEXT_FILES.memory);\n const empty = { path, exists: false, lines: 0, hasBlock: false, blockLines: 0, hasLegacySection: false, otherLines: 0, warnings: [] };\n if (!existsSync(memoryDir)) {return empty;}\n const text = readIfPresent(resolveInside(memoryDir, FAF_CONTEXT_FILES.memory));\n if (text === null) {return empty;}\n const block = findFafBlock(text);\n const outside = block ? `${text.slice(0, block.start)}${text.slice(block.end)}` : text;\n const lines = countLines(text);\n return {\n path,\n exists: true,\n lines,\n hasBlock: block !== null,\n blockLines: block ? countLines(text.slice(block.start, block.end)) : 0,\n hasLegacySection: !block && findLegacySection(text) !== null,\n otherLines: outside.split(/\\r\\n|\\r|\\n/).filter(l => l.replace(/^\\uFEFF/, '').trim() !== '').length,\n warnings: lineWarnings(lines),\n };\n}\n\n/**\n * Write faf's block into the MEMORY.md Claude Code loads for the project `dir`\n * is in (see the file header for the path rule and what is kept). Creates the\n * memory folder when it is not there yet. Throws — having written nothing —\n * when the file cannot be read (other than not existing), is not UTF-8, is a\n * link that leaves the memory folder, changed on disk while faf was writing,\n * cannot be written (the original is kept), or is one where faf cannot place\n * its block where its next run finds it again (SafePathError `unplaceable`,\n * the same one-line refusal as injectFafBlock).\n */\nexport function writeClaudeMemory(dir: string, data: FafData, opts: ClaudeMemoryOptions = {}): ClaudeMemoryResult {\n const memoryDir = resolveClaudeMemoryDir(dir, opts);\n makeDirInside(memoryDir);\n const path = resolveInside(memoryDir, FAF_CONTEXT_FILES.memory);\n const existing = readIfPresent(path);\n const next = plan(existing, wrapFafBlock(renderClaudeMemory(data)), path);\n\n if (next.text === existing) {\n const lines = countLines(existing);\n return { path, action: 'unchanged', written: false, preserved: true, lines, warnings: lineWarnings(lines) };\n }\n\n const written = safeWriteFile(path, next.text, { root: memoryDir, expect: existing });\n const after = readFileSync(written, 'utf-8');\n const preserved = after === next.text && after.startsWith(next.head) && after.endsWith(next.tail);\n const lines = countLines(after);\n // The block went on top of a file whose older faf block sits in a code\n // fence or comment: say so, as `faf sync` does for CLAUDE.md.\n const older = next.action === 'added' ? legacyStampNote(FAF_CONTEXT_FILES.memory, existing) : null;\n return { path: written, action: next.action, written: true, preserved, lines, warnings: [...(older ? [older] : []), ...lineWarnings(lines)] };\n}\n",
136
137
  "import type { FafData } from '../core/types.js';\nimport { readRepoFile, repoExists } from '../core/safe-write.js';\nimport { detectCommands, detectKeyFiles } from './scanner.js';\n\ntype Pkg = {\n type?: string;\n scripts?: Record<string, string>;\n devDependencies?: Record<string, string>;\n} | null;\n\n/**\n * Detect the toolchain that governs code conventions. Emits POINTERS (\"obey the\n * configs\"), never restated lint rules — restating toolchain-enforced rules is a\n * known AGENTS.md anti-pattern (ASDLC \"toolchain-first\").\n */\nfunction detectConventions(dir: string, pkg: Pkg): string[] {\n const conv: string[] = [];\n const has = (f: string): boolean => repoExists(dir, f);\n const read = (f: string): string => readRepoFile(dir, f) ?? '';\n\n if (has('tsconfig.json') && /\"strict\"\\s*:\\s*true/.test(read('tsconfig.json'))) {\n conv.push('TypeScript strict mode (tsconfig.json)');\n }\n if (pkg?.type === 'module') {conv.push('ESM modules (`type: module`)');}\n\n const tools: string[] = [];\n const dev = pkg?.devDependencies ?? {};\n if (\n has('.eslintrc') || has('.eslintrc.json') || has('.eslintrc.cjs') ||\n has('eslint.config.js') || has('eslint.config.mjs') || 'eslint' in dev\n ) {\n tools.push('ESLint');\n }\n if (has('.prettierrc') || has('.prettierrc.json') || has('prettier.config.js') || 'prettier' in dev) {\n tools.push('Prettier');\n }\n const py = has('pyproject.toml') ? read('pyproject.toml') : '';\n if (/\\[tool\\.black\\]/.test(py)) {tools.push('black');}\n if (/\\[tool\\.ruff\\]/.test(py)) {tools.push('ruff');}\n if (/\\[tool\\.mypy\\]/.test(py)) {tools.push('mypy');}\n if (has('rustfmt.toml') || has('.rustfmt.toml')) {tools.push('rustfmt');}\n if (tools.length) {conv.push(`Style enforced by ${tools.join(' · ')} — obey the configs`);}\n\n return conv;\n}\n\n/**\n * Enrich .faf data with facts DETECTED from the repo at export time, so a lean\n * or stale .faf still yields a complete AGENTS.md — the \"frictionless, any repo\"\n * goal. Fill-if-absent: hand-authored .faf values always WIN; detection only\n * fills the gaps. Pure (returns a shallow copy; never mutates the input).\n *\n * Detects: build/test/lint commands, key files/entry points, and secrets\n * (.env presence — location only, never the values).\n */\nexport function enrichFromRepo(dir: string, data: FafData): FafData {\n const out: FafData = { ...data };\n\n let pkg: unknown = null;\n const pj = readRepoFile(dir, 'package.json');\n if (pj !== null) {\n try {\n pkg = JSON.parse(pj);\n } catch {\n pkg = null;\n }\n }\n\n // Commands: detected fills gaps; any hand-authored command key wins.\n const detected = detectCommands(dir, pkg as never);\n if (Object.keys(detected).length) {\n out.commands = { ...detected, ...(data.commands ?? {}) };\n }\n\n // Key files: keep the hand-authored list if present, else use detected.\n const existing =\n data.key_files ?? (data.instant_context as { key_files?: string[] } | undefined)?.key_files;\n if (!existing || existing.length === 0) {\n const files = detectKeyFiles(dir);\n if (files.length) {out.key_files = files;}\n }\n\n // Security: detect a secrets file (.env), keep hand-authored if present.\n if (!data.security) {\n const envFiles = ['.env', '.env.local', '.env.development'];\n const secrets = envFiles.find((f) => repoExists(dir, f));\n if (secrets) {\n const example = ['.env.example', '.env.sample', '.env.template'].find((f) =>\n repoExists(dir, f),\n );\n out.security = { secrets, ...(example ? { example } : {}) };\n }\n }\n\n // Conventions: detect the governing toolchain (fill-if-absent).\n if (!data.conventions) {\n const conv = detectConventions(dir, pkg as Pkg);\n if (conv.length) {out.conventions = conv;}\n }\n\n return out;\n}\n"
137
138
  ],
138
- "mappings": "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",
139
- "debugId": "870E6F9B3110320864756E2164756E21",
139
+ "mappings": "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",
140
+ "debugId": "1D6AC875426AD28064756E2164756E21",
140
141
  "names": []
141
142
  }