faf 8.4.0 → 8.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli.js.map CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../node_modules/commander/lib/error.js", "../node_modules/commander/lib/argument.js", "../node_modules/commander/lib/help.js", "../node_modules/commander/lib/option.js", "../node_modules/commander/lib/suggestSimilar.js", "../node_modules/commander/lib/command.js", "../node_modules/commander/index.js", "../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/ui/colors.ts", "../node_modules/@anthropic-ai/sdk/internal/tslib.mjs", "../node_modules/@anthropic-ai/sdk/internal/utils/uuid.mjs", "../node_modules/@anthropic-ai/sdk/internal/errors.mjs", "../node_modules/@anthropic-ai/sdk/core/error.mjs", "../node_modules/@anthropic-ai/sdk/internal/utils/values.mjs", "../node_modules/@anthropic-ai/sdk/internal/utils/sleep.mjs", "../node_modules/@anthropic-ai/sdk/version.mjs", "../node_modules/@anthropic-ai/sdk/internal/detect-platform.mjs", "../node_modules/@anthropic-ai/sdk/internal/shims.mjs", "../node_modules/@anthropic-ai/sdk/internal/request-options.mjs", "../node_modules/@anthropic-ai/sdk/internal/utils/query.mjs", "../node_modules/@anthropic-ai/sdk/internal/utils/bytes.mjs", "../node_modules/@anthropic-ai/sdk/internal/decoders/line.mjs", "../node_modules/@anthropic-ai/sdk/internal/utils/log.mjs", "../node_modules/@anthropic-ai/sdk/core/streaming.mjs", "../node_modules/@anthropic-ai/sdk/internal/parse.mjs", "../node_modules/@anthropic-ai/sdk/core/api-promise.mjs", "../node_modules/@anthropic-ai/sdk/core/pagination.mjs", "../node_modules/@anthropic-ai/sdk/internal/uploads.mjs", "../node_modules/@anthropic-ai/sdk/internal/to-file.mjs", "../node_modules/@anthropic-ai/sdk/core/uploads.mjs", "../node_modules/@anthropic-ai/sdk/core/resource.mjs", "../node_modules/@anthropic-ai/sdk/internal/headers.mjs", "../node_modules/@anthropic-ai/sdk/internal/utils/path.mjs", "../node_modules/@anthropic-ai/sdk/resources/beta/environments.mjs", "../node_modules/@anthropic-ai/sdk/lib/stainless-helper-header.mjs", "../node_modules/@anthropic-ai/sdk/resources/beta/files.mjs", "../node_modules/@anthropic-ai/sdk/resources/beta/models.mjs", "../node_modules/@anthropic-ai/sdk/resources/beta/user-profiles.mjs", "../node_modules/@anthropic-ai/sdk/resources/beta/agents/versions.mjs", "../node_modules/@anthropic-ai/sdk/resources/beta/agents/agents.mjs", "../node_modules/@anthropic-ai/sdk/resources/beta/memory-stores/memories.mjs", "../node_modules/@anthropic-ai/sdk/resources/beta/memory-stores/memory-versions.mjs", "../node_modules/@anthropic-ai/sdk/resources/beta/memory-stores/memory-stores.mjs", "../node_modules/@anthropic-ai/sdk/error.mjs", "../node_modules/@anthropic-ai/sdk/internal/constants.mjs", "../node_modules/@anthropic-ai/sdk/lib/beta-parser.mjs", "../node_modules/@anthropic-ai/sdk/_vendor/partial-json-parser/parser.mjs", "../node_modules/@anthropic-ai/sdk/streaming.mjs", "../node_modules/@anthropic-ai/sdk/lib/BetaMessageStream.mjs", "../node_modules/@anthropic-ai/sdk/lib/tools/ToolError.mjs", "../node_modules/@anthropic-ai/sdk/lib/tools/CompactionControl.mjs", "../node_modules/@anthropic-ai/sdk/lib/tools/BetaToolRunner.mjs", "../node_modules/@anthropic-ai/sdk/internal/decoders/jsonl.mjs", "../node_modules/@anthropic-ai/sdk/resources/beta/messages/batches.mjs", "../node_modules/@anthropic-ai/sdk/resources/beta/messages/messages.mjs", "../node_modules/@anthropic-ai/sdk/resources/beta/sessions/events.mjs", "../node_modules/@anthropic-ai/sdk/resources/beta/sessions/resources.mjs", "../node_modules/@anthropic-ai/sdk/resources/beta/sessions/sessions.mjs", "../node_modules/@anthropic-ai/sdk/resources/beta/skills/versions.mjs", "../node_modules/@anthropic-ai/sdk/resources/beta/skills/skills.mjs", "../node_modules/@anthropic-ai/sdk/resources/beta/vaults/credentials.mjs", "../node_modules/@anthropic-ai/sdk/resources/beta/vaults/vaults.mjs", "../node_modules/@anthropic-ai/sdk/resources/beta/beta.mjs", "../node_modules/@anthropic-ai/sdk/resources/completions.mjs", "../node_modules/@anthropic-ai/sdk/lib/parser.mjs", "../node_modules/@anthropic-ai/sdk/lib/MessageStream.mjs", "../node_modules/@anthropic-ai/sdk/resources/messages/batches.mjs", "../node_modules/@anthropic-ai/sdk/resources/messages/messages.mjs", "../node_modules/@anthropic-ai/sdk/resources/models.mjs", "../node_modules/@anthropic-ai/sdk/resources/index.mjs", "../node_modules/@anthropic-ai/sdk/internal/utils/env.mjs", "../node_modules/@anthropic-ai/sdk/client.mjs", "../node_modules/@anthropic-ai/sdk/index.mjs", "../node_modules/commander/esm.mjs", "../src/interop/faf.ts", "../node_modules/yaml/dist/index.js", "../src/core/safe-write.ts", "../src/core/shape.ts", "../src/core/slots.ts", "../src/core/yaml-edit.ts", "../src/core/faf-source.ts", "../src/core/tiers.ts", "../src/wasm/kernel.ts", "../src/core/about.ts", "../src/core/scorer.ts", "../src/core/typed-none.ts", "../src/ui/display.ts", "../src/ui/star-nudge.ts", "../src/commands/score.ts", "../src/commands/init.ts", "../src/core/version.ts", "../src/detect/scanner.ts", "../src/detect/frameworks.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/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/detect/turbo-cat.ts", "../src/detect/turbo-cat-knowledge.ts", "../src/detect/relentless.ts", "../src/detect/assemble.ts", "../src/core/faf-dna.ts", "../src/core/cwd-guard.ts", "../src/core/refusal.ts", "../src/commands/dna.ts", "../src/commands/auto.ts", "../src/commands/loop.ts", "../src/core/interview.ts", "../src/core/loop.ts", "../src/commands/sync.ts", "../src/interop/claude.ts", "../src/interop/inject.ts", "../src/interop/commonmark.ts", "../src/interop/labels.ts", "../src/interop/claude-memory.ts", "../src/interop/command-note.ts", "../src/core/pro.ts", "../src/commands/compile.ts", "../src/commands/decompile.ts", "../src/core/render-hash.ts", "../src/core/json-edit.ts", "../src/commands/check.ts", "../src/core/schema.ts", "../src/commands/export.ts", "../src/interop/agents.ts", "../src/detect/enrich.ts", "../src/interop/cursorrules.ts", "../src/interop/gemini.ts", "../src/interop/copilot-instructions.ts", "../src/interop/grok.ts", "../src/interop/llms.ts", "../src/interop/projecthtml.ts", "../src/interop/servercard.ts", "../src/interop/context-block.ts", "../src/interop/pack.ts", "../src/commands/server-card.ts", "../src/interop/cards.ts", "../src/commands/cards.ts", "../src/commands/card.ts", "../src/commands/show.ts", "../src/commands/git.ts", "../src/detect/git-repo.ts", "../src/commands/diff.ts", "../src/commands/log.ts", "../src/commands/hooks.ts", "../src/commands/info.ts", "../src/detect/formats.ts", "../src/commands/formats.ts", "../src/commands/clear.ts", "../src/commands/convert.ts", "../src/commands/context.ts", "../src/core/drift.ts", "../src/commands/drift.ts", "../src/core/dot-path.ts", "../src/commands/edit.ts", "../src/commands/migrate.ts", "../src/commands/pro.ts", "../src/commands/share.ts", "../src/commands/demo.ts", "../src/commands/search.ts", "../src/commands/taf.ts", "../src/commands/go.ts", "../src/commands/ai.ts", "../src/commands/conductor.ts", "../src/commands/wjttc.ts", "../src/commands/bench.ts", "../src/commands/refresh.ts", "../src/commands/memory.ts", "../src/fafm/types.ts", "../src/fafm/soul.ts", "../src/fafm/from-claude-dir.ts", "../src/cli.ts"],
3
+ "sources": ["../node_modules/commander/lib/error.js", "../node_modules/commander/lib/argument.js", "../node_modules/commander/lib/help.js", "../node_modules/commander/lib/option.js", "../node_modules/commander/lib/suggestSimilar.js", "../node_modules/commander/lib/command.js", "../node_modules/commander/index.js", "../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/ui/colors.ts", "../node_modules/@anthropic-ai/sdk/internal/tslib.mjs", "../node_modules/@anthropic-ai/sdk/internal/utils/uuid.mjs", "../node_modules/@anthropic-ai/sdk/internal/errors.mjs", "../node_modules/@anthropic-ai/sdk/core/error.mjs", "../node_modules/@anthropic-ai/sdk/internal/utils/values.mjs", "../node_modules/@anthropic-ai/sdk/internal/utils/sleep.mjs", "../node_modules/@anthropic-ai/sdk/version.mjs", "../node_modules/@anthropic-ai/sdk/internal/detect-platform.mjs", "../node_modules/@anthropic-ai/sdk/internal/shims.mjs", "../node_modules/@anthropic-ai/sdk/internal/request-options.mjs", "../node_modules/@anthropic-ai/sdk/internal/utils/query.mjs", "../node_modules/@anthropic-ai/sdk/internal/utils/bytes.mjs", "../node_modules/@anthropic-ai/sdk/internal/decoders/line.mjs", "../node_modules/@anthropic-ai/sdk/internal/utils/log.mjs", "../node_modules/@anthropic-ai/sdk/core/streaming.mjs", "../node_modules/@anthropic-ai/sdk/internal/parse.mjs", "../node_modules/@anthropic-ai/sdk/core/api-promise.mjs", "../node_modules/@anthropic-ai/sdk/core/pagination.mjs", "../node_modules/@anthropic-ai/sdk/internal/uploads.mjs", "../node_modules/@anthropic-ai/sdk/internal/to-file.mjs", "../node_modules/@anthropic-ai/sdk/core/uploads.mjs", "../node_modules/@anthropic-ai/sdk/core/resource.mjs", "../node_modules/@anthropic-ai/sdk/internal/headers.mjs", "../node_modules/@anthropic-ai/sdk/internal/utils/path.mjs", "../node_modules/@anthropic-ai/sdk/resources/beta/environments.mjs", "../node_modules/@anthropic-ai/sdk/lib/stainless-helper-header.mjs", "../node_modules/@anthropic-ai/sdk/resources/beta/files.mjs", "../node_modules/@anthropic-ai/sdk/resources/beta/models.mjs", "../node_modules/@anthropic-ai/sdk/resources/beta/user-profiles.mjs", "../node_modules/@anthropic-ai/sdk/resources/beta/agents/versions.mjs", "../node_modules/@anthropic-ai/sdk/resources/beta/agents/agents.mjs", "../node_modules/@anthropic-ai/sdk/resources/beta/memory-stores/memories.mjs", "../node_modules/@anthropic-ai/sdk/resources/beta/memory-stores/memory-versions.mjs", "../node_modules/@anthropic-ai/sdk/resources/beta/memory-stores/memory-stores.mjs", "../node_modules/@anthropic-ai/sdk/error.mjs", "../node_modules/@anthropic-ai/sdk/internal/constants.mjs", "../node_modules/@anthropic-ai/sdk/lib/beta-parser.mjs", "../node_modules/@anthropic-ai/sdk/_vendor/partial-json-parser/parser.mjs", "../node_modules/@anthropic-ai/sdk/streaming.mjs", "../node_modules/@anthropic-ai/sdk/lib/BetaMessageStream.mjs", "../node_modules/@anthropic-ai/sdk/lib/tools/ToolError.mjs", "../node_modules/@anthropic-ai/sdk/lib/tools/CompactionControl.mjs", "../node_modules/@anthropic-ai/sdk/lib/tools/BetaToolRunner.mjs", "../node_modules/@anthropic-ai/sdk/internal/decoders/jsonl.mjs", "../node_modules/@anthropic-ai/sdk/resources/beta/messages/batches.mjs", "../node_modules/@anthropic-ai/sdk/resources/beta/messages/messages.mjs", "../node_modules/@anthropic-ai/sdk/resources/beta/sessions/events.mjs", "../node_modules/@anthropic-ai/sdk/resources/beta/sessions/resources.mjs", "../node_modules/@anthropic-ai/sdk/resources/beta/sessions/sessions.mjs", "../node_modules/@anthropic-ai/sdk/resources/beta/skills/versions.mjs", "../node_modules/@anthropic-ai/sdk/resources/beta/skills/skills.mjs", "../node_modules/@anthropic-ai/sdk/resources/beta/vaults/credentials.mjs", "../node_modules/@anthropic-ai/sdk/resources/beta/vaults/vaults.mjs", "../node_modules/@anthropic-ai/sdk/resources/beta/beta.mjs", "../node_modules/@anthropic-ai/sdk/resources/completions.mjs", "../node_modules/@anthropic-ai/sdk/lib/parser.mjs", "../node_modules/@anthropic-ai/sdk/lib/MessageStream.mjs", "../node_modules/@anthropic-ai/sdk/resources/messages/batches.mjs", "../node_modules/@anthropic-ai/sdk/resources/messages/messages.mjs", "../node_modules/@anthropic-ai/sdk/resources/models.mjs", "../node_modules/@anthropic-ai/sdk/resources/index.mjs", "../node_modules/@anthropic-ai/sdk/internal/utils/env.mjs", "../node_modules/@anthropic-ai/sdk/client.mjs", "../node_modules/@anthropic-ai/sdk/index.mjs", "../node_modules/commander/esm.mjs", "../src/interop/faf.ts", "../node_modules/yaml/dist/index.js", "../src/core/safe-write.ts", "../src/core/shape.ts", "../src/core/slots.ts", "../src/core/yaml-edit.ts", "../src/core/faf-source.ts", "../src/core/tiers.ts", "../src/wasm/kernel.ts", "../src/core/about.ts", "../src/core/scorer.ts", "../src/core/typed-none.ts", "../src/ui/display.ts", "../src/ui/star-nudge.ts", "../src/commands/score.ts", "../src/commands/init.ts", "../src/core/version.ts", "../src/detect/scanner.ts", "../src/detect/frameworks.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/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/detect/turbo-cat.ts", "../src/detect/turbo-cat-knowledge.ts", "../src/detect/relentless.ts", "../src/detect/assemble.ts", "../src/core/faf-dna.ts", "../src/core/dna-gitignore.ts", "../src/core/cwd-guard.ts", "../src/core/refusal.ts", "../src/commands/dna.ts", "../src/commands/auto.ts", "../src/commands/loop.ts", "../src/core/interview.ts", "../src/core/loop.ts", "../src/commands/sync.ts", "../src/interop/claude.ts", "../src/interop/inject.ts", "../src/interop/commonmark.ts", "../src/interop/labels.ts", "../src/interop/claude-memory.ts", "../src/interop/command-note.ts", "../src/core/pro.ts", "../src/commands/compile.ts", "../src/commands/decompile.ts", "../src/core/render-hash.ts", "../src/core/json-edit.ts", "../src/commands/check.ts", "../src/core/schema.ts", "../src/commands/export.ts", "../src/interop/agents.ts", "../src/detect/enrich.ts", "../src/interop/cursorrules.ts", "../src/interop/gemini.ts", "../src/interop/copilot-instructions.ts", "../src/interop/grok.ts", "../src/interop/llms.ts", "../src/interop/projecthtml.ts", "../src/interop/servercard.ts", "../src/interop/context-block.ts", "../src/interop/pack.ts", "../src/commands/server-card.ts", "../src/interop/cards.ts", "../src/commands/cards.ts", "../src/commands/card.ts", "../src/commands/show.ts", "../src/commands/git.ts", "../src/detect/git-repo.ts", "../src/commands/diff.ts", "../src/commands/log.ts", "../src/commands/hooks.ts", "../src/commands/info.ts", "../src/detect/formats.ts", "../src/commands/formats.ts", "../src/commands/clear.ts", "../src/commands/convert.ts", "../src/commands/context.ts", "../src/core/drift.ts", "../src/commands/drift.ts", "../src/commands/edit.ts", "../src/core/dot-path.ts", "../src/commands/migrate.ts", "../src/commands/pro.ts", "../src/commands/share.ts", "../src/commands/demo.ts", "../src/commands/search.ts", "../src/commands/taf.ts", "../src/commands/go.ts", "../src/commands/ai.ts", "../src/commands/conductor.ts", "../src/commands/wjttc.ts", "../src/commands/bench.ts", "../src/commands/refresh.ts", "../src/commands/memory.ts", "../src/fafm/types.ts", "../src/fafm/soul.ts", "../src/fafm/from-claude-dir.ts", "../src/cli.ts"],
4
4
  "sourcesContent": [
5
5
  "/**\n * CommanderError class\n */\nclass CommanderError extends Error {\n /**\n * Constructs the CommanderError class\n * @param {number} exitCode suggested exit code which could be used with process.exit\n * @param {string} code an id string representing the error\n * @param {string} message human-readable description of the error\n */\n constructor(exitCode, code, message) {\n super(message);\n // properly capture stack trace in Node.js\n Error.captureStackTrace(this, this.constructor);\n this.name = this.constructor.name;\n this.code = code;\n this.exitCode = exitCode;\n this.nestedError = undefined;\n }\n}\n\n/**\n * InvalidArgumentError class\n */\nclass InvalidArgumentError extends CommanderError {\n /**\n * Constructs the InvalidArgumentError class\n * @param {string} [message] explanation of why argument is invalid\n */\n constructor(message) {\n super(1, 'commander.invalidArgument', message);\n // properly capture stack trace in Node.js\n Error.captureStackTrace(this, this.constructor);\n this.name = this.constructor.name;\n }\n}\n\nexports.CommanderError = CommanderError;\nexports.InvalidArgumentError = InvalidArgumentError;\n",
6
6
  "const { InvalidArgumentError } = require('./error.js');\n\nclass Argument {\n /**\n * Initialize a new command argument with the given name and description.\n * The default is that the argument is required, and you can explicitly\n * indicate this with <> around the name. Put [] around the name for an optional argument.\n *\n * @param {string} name\n * @param {string} [description]\n */\n\n constructor(name, description) {\n this.description = description || '';\n this.variadic = false;\n this.parseArg = undefined;\n this.defaultValue = undefined;\n this.defaultValueDescription = undefined;\n this.argChoices = undefined;\n\n switch (name[0]) {\n case '<': // e.g. <required>\n this.required = true;\n this._name = name.slice(1, -1);\n break;\n case '[': // e.g. [optional]\n this.required = false;\n this._name = name.slice(1, -1);\n break;\n default:\n this.required = true;\n this._name = name;\n break;\n }\n\n if (this._name.endsWith('...')) {\n this.variadic = true;\n this._name = this._name.slice(0, -3);\n }\n }\n\n /**\n * Return argument name.\n *\n * @return {string}\n */\n\n name() {\n return this._name;\n }\n\n /**\n * @package\n */\n\n _collectValue(value, previous) {\n if (previous === this.defaultValue || !Array.isArray(previous)) {\n return [value];\n }\n\n previous.push(value);\n return previous;\n }\n\n /**\n * Set the default value, and optionally supply the description to be displayed in the help.\n *\n * @param {*} value\n * @param {string} [description]\n * @return {Argument}\n */\n\n default(value, description) {\n this.defaultValue = value;\n this.defaultValueDescription = description;\n return this;\n }\n\n /**\n * Set the custom handler for processing CLI command arguments into argument values.\n *\n * @param {Function} [fn]\n * @return {Argument}\n */\n\n argParser(fn) {\n this.parseArg = fn;\n return this;\n }\n\n /**\n * Only allow argument value to be one of choices.\n *\n * @param {string[]} values\n * @return {Argument}\n */\n\n choices(values) {\n this.argChoices = values.slice();\n this.parseArg = (arg, previous) => {\n if (!this.argChoices.includes(arg)) {\n throw new InvalidArgumentError(\n `Allowed choices are ${this.argChoices.join(', ')}.`,\n );\n }\n if (this.variadic) {\n return this._collectValue(arg, previous);\n }\n return arg;\n };\n return this;\n }\n\n /**\n * Make argument required.\n *\n * @returns {Argument}\n */\n argRequired() {\n this.required = true;\n return this;\n }\n\n /**\n * Make argument optional.\n *\n * @returns {Argument}\n */\n argOptional() {\n this.required = false;\n return this;\n }\n}\n\n/**\n * Takes an argument and returns its human readable equivalent for help usage.\n *\n * @param {Argument} arg\n * @return {string}\n * @private\n */\n\nfunction humanReadableArgName(arg) {\n const nameOutput = arg.name() + (arg.variadic === true ? '...' : '');\n\n return arg.required ? '<' + nameOutput + '>' : '[' + nameOutput + ']';\n}\n\nexports.Argument = Argument;\nexports.humanReadableArgName = humanReadableArgName;\n",
@@ -150,7 +150,7 @@
150
150
  "'use strict';\n\nvar composer = require('./compose/composer.js');\nvar Document = require('./doc/Document.js');\nvar Schema = require('./schema/Schema.js');\nvar errors = require('./errors.js');\nvar Alias = require('./nodes/Alias.js');\nvar identity = require('./nodes/identity.js');\nvar Pair = require('./nodes/Pair.js');\nvar Scalar = require('./nodes/Scalar.js');\nvar YAMLMap = require('./nodes/YAMLMap.js');\nvar YAMLSeq = require('./nodes/YAMLSeq.js');\nvar cst = require('./parse/cst.js');\nvar lexer = require('./parse/lexer.js');\nvar lineCounter = require('./parse/line-counter.js');\nvar parser = require('./parse/parser.js');\nvar publicApi = require('./public-api.js');\nvar visit = require('./visit.js');\n\n\n\nexports.Composer = composer.Composer;\nexports.Document = Document.Document;\nexports.Schema = Schema.Schema;\nexports.YAMLError = errors.YAMLError;\nexports.YAMLParseError = errors.YAMLParseError;\nexports.YAMLWarning = errors.YAMLWarning;\nexports.Alias = Alias.Alias;\nexports.isAlias = identity.isAlias;\nexports.isCollection = identity.isCollection;\nexports.isDocument = identity.isDocument;\nexports.isMap = identity.isMap;\nexports.isNode = identity.isNode;\nexports.isPair = identity.isPair;\nexports.isScalar = identity.isScalar;\nexports.isSeq = identity.isSeq;\nexports.Pair = Pair.Pair;\nexports.Scalar = Scalar.Scalar;\nexports.YAMLMap = YAMLMap.YAMLMap;\nexports.YAMLSeq = YAMLSeq.YAMLSeq;\nexports.CST = cst;\nexports.Lexer = lexer.Lexer;\nexports.LineCounter = lineCounter.LineCounter;\nexports.Parser = parser.Parser;\nexports.parse = publicApi.parse;\nexports.parseAllDocuments = publicApi.parseAllDocuments;\nexports.parseDocument = publicApi.parseDocument;\nexports.stringify = publicApi.stringify;\nexports.visit = visit.visit;\nexports.visitAsync = visit.visitAsync;\n",
151
151
  "/**\n * Safe file access — the one primitive every faf writer, and every read of\n * project context, goes through. It is also the only module in faf that calls\n * a filesystem write, rename, delete, mkdir or chmod API (tests/write-guard\n * enforces that for all of src/).\n *\n * Rule 1 — stay inside the project. Before faf touches a path it resolves it on\n * disk (realpath: every link followed). If that leads outside the project\n * folder, faf refuses. A dangling link is refused — faf never creates a file at\n * the end of a link. Anything whose real path is inside a `.git` folder is\n * refused, always — with two narrow exceptions: faf's own git hook\n * (`allowGitHooks`: one file directly inside the repo's hooks folder), and\n * the repo's own git config file (`allowGitConfig`: the file `config`\n * directly in the folder git names for it), where `faf diff\n * --uninstall-driver` removes the section faf's install wrote.\n *\n * Rule 2 — a link leads to the same kind of file. faf follows a link only to a\n * file with the same name (CLAUDE.md → docs/CLAUDE.md), or from one AI context\n * file to another (CLAUDE.md → AGENTS.md; the set is FAF_CONTEXT_FILES). The\n * link itself survives: faf writes the file it points at. `CLAUDE.md →\n * README.md` or `project.html → package.json` is refused — faf would be\n * writing a file it was never asked to write. A read of project context\n * through a link must land on a .faf or .fafm file instead, so `project.faf →\n * .env` is refused even though .env is in the project — or, for a read of an\n * AI context file, on another AI context file (CLAUDE.md → AGENTS.md), the\n * rule the writers use.\n *\n * Rule 3 — never leave a half-written file. A write goes to a temp file in the\n * same folder, is flushed to disk (fsync), then renamed over the original in\n * one step, keeping the original's permissions. If any step fails the temp\n * file is removed and the original is exactly as it was: \"not written;\n * original kept\". A plain writeFileSync truncates first, so a full disk, a\n * quota or a killed process used to leave the user's file cut short. With\n * `expect` (the bytes the caller read), the file is read again just before the\n * rename and the write is refused if it changed in the meantime. Its mode is\n * checked too: a file made read-only, or given other permissions, while faf\n * was writing is not replaced.\n *\n * Rule 4 — text faf edits is UTF-8. readUtf8 decodes strictly: a UTF-16 file or\n * any bytes that are not UTF-8 are refused, never turned into U+FFFD and\n * written back.\n *\n * Rule 5 — a whole file faf renders replaces a file already there only when\n * faf can prove it wrote it: project.html, the cards, `faf server-card --out`,\n * a `faf taf --output` snapshot and a `faf decompile --output` file must be\n * byte for byte what faf last wrote (their render hash, render-hash.ts); a\n * `.fafb` must carry the FAFB header (see {@link safeReplaceOwned}). Anything\n * else is refused unless the caller passes `force` (the CLI's `--force`).\n *\n * Rule 6 — detection reads stay inside the project. The files faf reads to fill\n * slots and render context (README.md, package.json, pyproject.toml,\n * Cargo.toml, go.mod, …) go through {@link repoFile}: resolved on disk, every\n * link followed. A file whose real path, or the folder it sits in, leaves the\n * project folder, runs through `.git`, or is a dangling link is absent to\n * detection: it does not exist, and reading it gives nothing. A link that\n * stays inside the project is followed (README.md → docs/README.md).\n */\nimport {\n accessSync,\n closeSync,\n constants,\n existsSync,\n fchmodSync,\n fchownSync,\n fsyncSync,\n lstatSync,\n mkdirSync,\n mkdtempSync,\n openSync,\n readdirSync,\n readFileSync,\n readlinkSync,\n realpathSync,\n renameSync,\n rmSync,\n statSync,\n unlinkSync,\n writeFileSync,\n type Dirent,\n type Stats,\n} from 'fs';\nimport { randomBytes } from 'crypto';\nimport { tmpdir } from 'os';\nimport { basename, dirname, isAbsolute, join, relative, resolve, sep } from 'path';\n\n/** Why a path was refused. */\nexport type SafePathReason =\n | 'outside'\n | 'dangling'\n | 'not-a-file'\n | 'not-faf'\n | 'other-file'\n | 'git'\n | 'not-utf8'\n | 'changed'\n | 'not-owned'\n | 'not-yaml'\n | 'unplaceable';\n\n/**\n * A path faf will not read or write, or a file faf will not change. Nothing\n * was written; the file on disk is exactly as it was.\n * - `outside`, `dangling`, `not-a-file`, `not-faf`, `other-file`, `git`: the\n * path is refused (see {@link resolveInside}).\n * - `not-utf8`: the file is not UTF-8 (see {@link readUtf8}).\n * - `changed`: the file changed on disk after faf read it — its bytes, or its\n * mode (see the `expect` option of {@link safeWriteFile}).\n * - `not-owned`: a whole file faf renders is already there and faf cannot\n * prove it wrote every byte of it — it has no faf mark, or it was edited\n * since faf wrote it, or it is from before faf recorded a render hash (see\n * {@link safeReplaceOwned} and render-hash.ts).\n * - `not-yaml`: a .faf faf reads or edits is not valid YAML: \"<file> is not\n * valid YAML (<reason>, line N) — faf left it unchanged\"; or it parses to\n * a scalar or a list, not a mapping; or faf's scoring kernel cannot read\n * it (`faf score`, `faf compile`, `faf refresh`).\n * - `unplaceable`: faf could not place its managed block where its next run\n * finds it again, so it wrote nothing (see inject.ts).\n *\n * `onWrite` is true when faf refused at the write itself — it may have read\n * the file before (a `.faf` read through a link, say) — and false when it\n * refused before reading or writing anything.\n */\nexport class SafePathError extends Error {\n readonly reason: SafePathReason;\n /** The path as the caller named it (absolute). */\n readonly path: string;\n /** True when the refusal came at the write (faf may have read the file first). */\n readonly onWrite: boolean;\n\n constructor(reason: SafePathReason, path: string, message: string, opts: { onWrite?: boolean; cause?: unknown } = {}) {\n super(message, opts.cause === undefined ? undefined : { cause: opts.cause });\n this.name = 'SafePathError';\n this.reason = reason;\n this.path = path;\n this.onWrite = opts.onWrite === true;\n }\n}\n\nexport interface ResolveInsideOptions {\n /** Resolving for a read of project context: a link must end at a `.faf` or\n * `.fafm` file — or, when the name is an AI context file (CLAUDE.md), at\n * another AI context file (CLAUDE.md → AGENTS.md), the rule the writers\n * use. A plain file is read under the name the caller gave. */\n read?: boolean;\n /**\n * Resolving faf's own git hook (`faf hooks`) — one of the two exceptions\n * to the `.git` rule. `dir` must be the repo's hooks folder as git names it\n * (`git rev-parse --git-path hooks`, a folder named `hooks`), and `name` a\n * hook file sitting directly in it (`pre-commit`). Only that file may be\n * inside `.git`; nothing below or beside it. Links are still checked: a\n * link must stay inside the hooks folder's real folder and end at a file of\n * the same name.\n */\n allowGitHooks?: boolean;\n /**\n * Resolving the repo's own git config file (`faf diff --uninstall-driver`)\n * — the other exception to the `.git` rule. `dir` must be the folder git\n * names for it (the folder of `git rev-parse --git-path config`), and `name`\n * the file `config` directly in it. Only that file may be inside `.git`;\n * nothing below or beside it. A link must stay inside that folder and end\n * at a file named `config`.\n */\n allowGitConfig?: boolean;\n}\n\nexport interface SafeWriteOptions {\n /** The project folder the write must stay inside. Default: the file's own folder. */\n root?: string;\n /**\n * The bytes the caller read from the file. Just before the rename the file\n * is read again; when it no longer equals `expect`, the temp file is removed\n * and a SafePathError (`changed`) is thrown: \"<file> changed on disk while\n * faf was writing — not written; original kept\". A string is compared as its\n * UTF-8 bytes. `null` means the caller found no file there: if one has\n * appeared, the write is refused the same way (a missing file stays\n * missing). Omit it to write without the byte check (the mode check below\n * still runs).\n */\n expect?: string | Uint8Array | null;\n /** Write faf's own git hook: see {@link ResolveInsideOptions.allowGitHooks}. `root` is the hooks folder. */\n allowGitHooks?: boolean;\n /** Write the repo's own git config file: see {@link ResolveInsideOptions.allowGitConfig}. `root` is its folder. */\n allowGitConfig?: boolean;\n /** Permission bits for the written file. Default: the original's (a new\n * file gets the default create mode). */\n mode?: number;\n}\n\n/**\n * The files faf's block injector writes — one managed block, every other byte\n * of the file kept. Each injector writer (writeClaudeMd, writeAgentsMd,\n * writeGeminiMd, writeCursorrules, writeCopilotInstructions, writeMemoryMd,\n * writeLlmsTxt, writeClaudeMemory) takes its file name from this table, so\n * the set is exactly the files those writers target. A link from one of these\n * names to another (CLAUDE.md → AGENTS.md) may be followed.\n */\nexport const FAF_CONTEXT_FILES = Object.freeze({\n claude: 'CLAUDE.md',\n agents: 'AGENTS.md',\n gemini: 'GEMINI.md',\n cursorrules: '.cursorrules',\n copilot: 'copilot-instructions.md',\n memory: 'MEMORY.md',\n llms: 'llms.txt',\n} as const);\n\nconst CONTEXT_NAMES = new Set<string>(Object.values(FAF_CONTEXT_FILES).map(n => n.toLowerCase()));\n/** File names compare without case: a case-insensitive disk (macOS, Windows)\n * spells one name several ways. */\nconst sameName = (a: string, b: string): boolean => a.toLowerCase() === b.toLowerCase();\nconst isContextFile = (name: string): boolean => CONTEXT_NAMES.has(name.toLowerCase());\n\n/** True when a path runs through a `.git` folder, or is `.git` itself. */\nfunction inGitDir(p: string): boolean {\n return p.split(/[\\\\/]/).some(part => part.toLowerCase() === '.git');\n}\n\nconst FAF_FILE = /\\.fafm?$/i;\n/** A git hook's file name (`pre-commit`, `commit-msg`, …). */\nconst HOOK_NAME = /^[a-z][a-z0-9-]*$/;\nconst realpath = (p: string): string => realpathSync.native(p);\nconst errnoOf = (e: unknown): string | undefined => (e as NodeJS.ErrnoException | null)?.code;\n\n/** True when `p` is `root` or below it. Both must already be real paths. */\nfunction isInside(root: string, p: string): boolean {\n const rel = relative(root, p);\n return rel === '' || (rel !== '..' && !rel.startsWith(`..${sep}`) && !isAbsolute(rel));\n}\n\n/** Where a link points, as written in the link — for error messages only. */\nfunction linkText(p: string): string {\n try {\n return readlinkSync(p);\n } catch {\n return '?';\n }\n}\n\n/** What a resolve is for: a read of project context, and/or one of the two\n * files faf may reach inside `.git` (its git hook, the repo's git config) —\n * `inGit`: a file directly in `root` may be inside `.git`. */\ninterface ResolveMode {\n read: boolean;\n inGit: boolean;\n}\n\n/** Resolve the final component when it is a link: it must exist, stay inside\n * `root` and out of `.git` (a hook may sit directly in the hooks folder, the\n * git config directly in its folder),\n * be a regular file and — for a read of project context — be a .faf/.fafm\n * file; otherwise have the link's own name, or be an AI context file reached\n * from one. */\nfunction followLink(root: string, requested: string, link: string, mode: ResolveMode): string {\n let real: string;\n try {\n real = realpath(link);\n } catch (e) {\n const code = errnoOf(e);\n if (code === 'ENOENT' || code === 'ELOOP' || code === 'ENOTDIR') {\n throw new SafePathError(\n 'dangling',\n requested,\n `${requested} is a link to ${linkText(link)}, which does not exist. faf does not create files through a link — refused.`,\n );\n }\n throw e;\n }\n if (!isInside(root, real)) {\n throw new SafePathError('outside', requested, `${requested} is a link to ${real}, outside ${root} — refused.`);\n }\n if (inGitDir(real) && !(mode.inGit && dirname(real) === root)) {\n throw new SafePathError('git', requested, `${requested} is a link to ${real}, inside .git/ — refused.`);\n }\n if (!statSync(real).isFile()) {\n throw new SafePathError('not-a-file', requested, `${requested} is a link to ${real}, which is not a regular file — refused.`);\n }\n refuseOtherKind(requested, real, mode.read);\n return real;\n}\n\n/** The file at the end of a link must be the kind the caller asked for: for a\n * read of project context a .faf/.fafm file (or, for an AI context file,\n * another AI context file); otherwise a file with the link's own name, or an\n * AI context file when the link is one too. */\nfunction refuseOtherKind(requested: string, real: string, read: boolean): void {\n const asked = basename(requested);\n const got = basename(real);\n const contextToContext = isContextFile(asked) && isContextFile(got);\n if (read && !FAF_FILE.test(got) && !contextToContext) {\n const kind = isContextFile(asked) ? 'a .faf or .fafm file, nor another AI context file' : 'a .faf or .fafm file';\n throw new SafePathError('not-faf', requested, `${requested} is a link to ${real}, which is not ${kind} — refused.`);\n }\n if (!read && !sameName(asked, got) && !contextToContext) {\n throw new SafePathError(\n 'other-file',\n requested,\n `${requested} is a link to ${real}, a file with another name — refused (faf follows a link only to a file of the same name, or from one AI context file to another).`,\n );\n }\n}\n\n/** With allowGitHooks: `dir` must be a hooks folder and `requested` a hook\n * file directly in it — the whole of the exception. */\nfunction checkHookTarget(dir: string, requested: string, root: string, folder: string): void {\n if (basename(resolve(dir)) !== 'hooks' || !HOOK_NAME.test(basename(requested))) {\n throw new SafePathError('git', requested, `${requested} is not a git hook in a hooks folder — refused.`);\n }\n if (folder !== root) {\n throw new SafePathError('git', requested, `${requested} is not directly in the hooks folder ${root} — refused.`);\n }\n}\n\n/** With allowGitConfig: `requested` must be the file `config` directly in the\n * folder git names for it — the whole of the exception. */\nfunction checkConfigTarget(requested: string, root: string, folder: string): void {\n if (basename(requested) !== 'config' || folder !== root) {\n throw new SafePathError('git', requested, `${requested} is not the git config file directly in ${root} — refused.`);\n }\n}\n\n/**\n * Resolve `name` inside the project folder `dir` and return the real path to\n * read or write — or throw a SafePathError.\n *\n * - the folder the file sits in must resolve to `dir` or below it\n * - a path whose real form runs through `.git` → refused, always (the two\n * exceptions: `allowGitHooks`, a hook file directly in the hooks folder,\n * and `allowGitConfig`, the file `config` directly in its git folder)\n * - a file that does not exist yet → its path inside the project\n * - a regular file → its path (spelled as on disk)\n * - a link → the file it points at, when that exists, is a regular file, is\n * inside the project and out of `.git`, and has the link's own name (or\n * both names are AI context files: CLAUDE.md → AGENTS.md). With `read`, the\n * file must be a .faf/.fafm file instead (`project.faf → config/team.faf`),\n * or — for an AI context file — another AI context file.\n * - anything else (a link out, a dangling link, a link to a file with\n * another name, a folder, a device) → refused\n *\n * `name` may be relative to `dir` or absolute. `dir` and the folder `name` sits\n * in must exist (their ENOENT is thrown as is).\n */\nexport function resolveInside(dir: string, name: string, opts: ResolveInsideOptions = {}): string {\n const root = realpath(resolve(dir));\n const requested = resolve(dir, name);\n const folder = realpath(dirname(requested));\n if (!isInside(root, folder)) {\n throw new SafePathError('outside', requested, `${requested} is in ${folder}, outside ${root} — refused.`);\n }\n const hooks = opts.allowGitHooks === true;\n const gitConfig = opts.allowGitConfig === true;\n if (hooks) {checkHookTarget(dir, requested, root, folder);}\n if (gitConfig) {checkConfigTarget(requested, root, folder);}\n const target = join(folder, basename(requested));\n if (inGitDir(target) && !hooks && !gitConfig) {\n throw new SafePathError(\n 'git',\n requested,\n target === requested ? `${requested} is inside .git/ — refused.` : `${requested} resolves to ${target}, inside .git/ — refused.`,\n );\n }\n let st;\n try {\n st = lstatSync(target);\n } catch (e) {\n if (errnoOf(e) === 'ENOENT') {return target;}\n throw e;\n }\n if (st.isSymbolicLink()) {return followLink(root, requested, target, { read: opts.read === true, inGit: hooks || gitConfig });}\n if (!st.isFile()) {\n throw new SafePathError('not-a-file', requested, `${requested} is not a regular file — refused.`);\n }\n // The name as it is on disk (a case-insensitive disk may spell it differently).\n return realpath(target);\n}\n\nconst UTF8 = new TextDecoder('utf-8', { fatal: true, ignoreBOM: true });\n\n/** `bytes` as text, strictly: see {@link readUtf8}. `path` names the file in the refusal. */\nfunction decodeUtf8(bytes: Uint8Array, path: string): string {\n const utf16Bom = bytes.length >= 2 && ((bytes[0] === 0xff && bytes[1] === 0xfe) || (bytes[0] === 0xfe && bytes[1] === 0xff));\n if (!utf16Bom) {\n try {\n return UTF8.decode(bytes);\n } catch {\n /* not UTF-8: refused below */\n }\n }\n throw new SafePathError('not-utf8', path, `${path} is not UTF-8 — faf left it unchanged`);\n}\n\n/**\n * Read a text file faf may write back — strictly as UTF-8. A UTF-8 BOM is kept\n * (U+FEFF at the start of the text, as a plain read gives it). A UTF-16 BOM\n * (FF FE or FE FF) or any byte sequence that is not UTF-8 is refused with a\n * SafePathError (`not-utf8`): \"<file> is not UTF-8 — faf left it unchanged\". A\n * lenient read would turn those bytes into U+FFFD, and the next write would\n * lose them. Other read errors (ENOENT, EACCES, …) are thrown as they are.\n * `path` is read as given: resolve it with {@link resolveInside} first.\n */\nexport function readUtf8(path: string): string {\n return decodeUtf8(readFileSync(path), path);\n}\n\n/** The bytes at `path`, or null when nothing is there (only ENOENT). */\nexport function readBytesIfPresent(path: string): Buffer | null {\n try {\n return readFileSync(path);\n } catch (e) {\n if (errnoOf(e) === 'ENOENT') {return null;}\n throw e;\n }\n}\n\n/**\n * Where detection may read `rel` in the project folder `dir` — its real path —\n * or null when detection treats it as absent (Rule 6). `rel` names a file or a\n * folder, relative to `dir` (as `join(dir, rel)`). Every link on the way is\n * followed, the folders included; the result is null when:\n * - nothing is there, or a link on the way dangles or loops\n * - the real path leaves `dir` (README.md → ~/.aws/credentials, or a folder\n * on the way that is a link out)\n * - the real path runs through `.git` (README.md → .git/config)\n * A link that stays inside `dir` is followed. `dir` is the folder detection\n * was handed: the project, or a folder below it that detection reads on its\n * own (a subfolder's manifest), so a link may not leave that folder either.\n */\nexport function repoFile(dir: string, rel: string): string | null {\n const full = resolve(join(dir, rel));\n if (!existsSync(full)) {return null;} // not there, or a dangling link\n let root: string;\n let real: string;\n try {\n root = realpath(detectionBoundary(dir));\n real = realpath(full);\n } catch {\n return null; // a loop, or gone meanwhile\n }\n if (!isInside(root, real) || inGitDir(relative(root, real))) {return null;}\n return real;\n}\n\n/** The project folders detection is running in, outermost first (see\n * {@link withRepoRoot}). */\nconst detectionRoots: string[] = [];\n\n/** The folder a read in `dir` may not leave: the outermost project folder\n * detection is running in that holds `dir`, or `dir` itself. */\nfunction detectionBoundary(dir: string): string {\n const base = resolve(dir);\n return detectionRoots.find(r => base === r || base.startsWith(r.endsWith(sep) ? r : r + sep)) ?? base;\n}\n\n/**\n * Run `scan` with `root` as the project folder for every detection read under\n * it: a read in a subfolder (web/package.json) may then follow a link to\n * anywhere inside `root` (../shared/web-package.json), not only inside that\n * subfolder. A link out of `root` is still absent. Subfolder scans use this.\n */\nexport function withRepoRoot<T>(root: string, scan: () => T): T {\n detectionRoots.push(resolve(root));\n try {\n return scan();\n } finally {\n detectionRoots.pop();\n }\n}\n\n/** True when `rel` (a file or a folder) is in the project folder `dir` for\n * detection: see {@link repoFile}. */\nexport function repoExists(dir: string, rel: string): boolean {\n return repoFile(dir, rel) !== null;\n}\n\n/** The text of the file `rel` in the project folder `dir` (UTF-8, read the way\n * detection reads it), or null when detection treats it as absent (see\n * {@link repoFile}), it is not a regular file, or it cannot be read. */\nexport function readRepoFile(dir: string, rel: string): string | null {\n const real = repoFile(dir, rel);\n if (real === null) {return null;}\n try {\n return statSync(real).isFile() ? readFileSync(real, 'utf-8') : null;\n } catch {\n return null;\n }\n}\n\n/** What `rel` is (its real path's stats) in the project folder `dir`, or null\n * when detection treats it as absent (see {@link repoFile}). */\nexport function statRepoFile(dir: string, rel: string): Stats | null {\n const real = repoFile(dir, rel);\n if (real === null) {return null;}\n try {\n return statSync(real);\n } catch {\n return null;\n }\n}\n\n/**\n * The entries of the folder `rel` (default: `dir` itself) in the project\n * folder `dir`, or null when detection treats the folder as absent (see\n * {@link repoFile}) or it cannot be read. A link among them that leaves `dir`,\n * dangles, or leads into `.git` is left out: detection does not see it. Each\n * entry says what it is itself (a link is a link, as readdirSync gives it).\n */\nexport function readRepoDir(dir: string, rel = '.'): Dirent[] | null {\n const real = repoFile(dir, rel);\n if (real === null) {return null;}\n let entries: Dirent[];\n try {\n entries = readdirSync(real, { withFileTypes: true });\n } catch {\n return null;\n }\n return entries.filter(e => !e.isSymbolicLink() || repoFile(dir, join(rel, e.name)) !== null);\n}\n\n/** What to keep from the file already at `target` — its permission bits and\n * owner — or undefined when there is none yet. */\ninterface Kept {\n /** Permission bits given to the new file (rwx for owner, group, other). */\n mode: number;\n /** Every mode bit as it was (setuid, setgid and sticky included), to notice a change. */\n perm: number;\n uid: number;\n gid: number;\n}\n\nfunction existingFile(target: string): Kept | undefined {\n try {\n const st = statSync(target);\n return { mode: st.mode & 0o777, perm: st.mode & 0o7777, uid: st.uid, gid: st.gid };\n } catch (e) {\n if (errnoOf(e) === 'ENOENT') {return undefined;}\n throw e;\n }\n}\n\n/**\n * A write that failed partway — a full disk, a quota, a read-only file, a\n * killed rename — with the file on disk exactly as it was: \"<file>: not\n * written; original kept (<why>)\" (\"not written\" alone when there was no file).\n * `cause` is the error underneath. The CLI prints it as one line.\n */\nexport class NotWrittenError extends Error {\n /** The file that was not written. */\n readonly path: string;\n\n constructor(path: string, message: string, opts: { cause?: unknown } = {}) {\n super(message, { cause: opts.cause });\n this.path = path;\n }\n}\n\nconst changedOnDisk = (target: string): SafePathError =>\n new SafePathError('changed', target, `${target} changed on disk while faf was writing — not written; original kept`, { onWrite: true });\n\n/** Refuse the rename when the file is no longer what the caller read (its\n * bytes, with `expect`), or when its mode changed or it stopped being\n * writable since faf looked at it (`kept`): a file the user made read-only,\n * or gave other permissions, while faf was writing is left as it is. */\nfunction assertUnchanged(target: string, expect: SafeWriteOptions['expect'], kept: Kept | undefined): void {\n if (expect !== undefined) {\n const now = readBytesIfPresent(target);\n const want = expect === null ? null : typeof expect === 'string' ? Buffer.from(expect, 'utf-8') : Buffer.from(expect);\n const same = now === null || want === null ? now === want : now.equals(want);\n if (!same) {throw changedOnDisk(target);}\n }\n if (!kept) {return;}\n let st;\n try {\n st = statSync(target);\n } catch (e) {\n if (errnoOf(e) === 'ENOENT') {return;} // gone: the byte check above decides\n throw e;\n }\n if ((st.mode & 0o7777) !== kept.perm) {throw changedOnDisk(target);}\n try {\n accessSync(target, constants.W_OK);\n } catch {\n throw changedOnDisk(target);\n }\n}\n\n/** Give the temp file the original's owner (best effort: only root, or a\n * group member for the group, may) and exactly its permission bits. */\nfunction keepOwnerAndMode(fd: number, kept: Kept): void {\n if (process.platform !== 'win32') {\n try { fchownSync(fd, kept.uid, kept.gid); } catch { /* not ours to give */ }\n }\n fchmodSync(fd, kept.mode); // the umask narrowed the create mode\n}\n\n/** Flush the folder entry after the rename. Best effort: the data is already\n * safe, and some platforms (Windows) cannot open a folder. */\nfunction syncFolder(folder: string): void {\n if (process.platform === 'win32') {return;}\n try {\n const fd = openSync(folder, 'r');\n try {\n fsyncSync(fd);\n } finally {\n closeSync(fd);\n }\n } catch {\n /* best effort */\n }\n}\n\n/** The temp file a write goes through; `fd` is set while it is open. */\ninterface TempFile {\n path: string;\n fd?: number;\n created: boolean;\n}\n\n/** Create the temp file (never opening anything already at its name — 'wx' is\n * O_CREAT | O_EXCL, a link included), write it in full, keep the original's\n * owner and mode (or give it `mode`), flush it to disk and close it. */\nfunction fillTemp(temp: TempFile, content: string | Uint8Array, kept: Kept | undefined, mode: number | undefined): void {\n temp.fd = openSync(temp.path, 'wx', mode ?? kept?.mode ?? 0o666);\n temp.created = true;\n writeFileSync(temp.fd, content);\n if (kept) {keepOwnerAndMode(temp.fd, kept);}\n if (mode !== undefined) {fchmodSync(temp.fd, mode);}\n fsyncSync(temp.fd);\n closeSync(temp.fd);\n temp.fd = undefined;\n}\n\n/** Close and remove a temp file after a failure. Never touches a file this\n * write did not create. */\nfunction discardTemp(temp: TempFile): void {\n if (temp.fd !== undefined) {\n try { closeSync(temp.fd); } catch { /* already failing */ }\n }\n if (temp.created) {\n try { unlinkSync(temp.path); } catch { /* already failing */ }\n }\n}\n\n/** Write `content` to `target` atomically: temp file in the same folder,\n * fsync, then — when the file is still what the caller read (`expect`), with\n * the same mode, and still writable — rename over. `target` must already be\n * resolved. */\nfunction replaceAtomically(target: string, content: string | Uint8Array, opts: SafeWriteOptions): void {\n const folder = dirname(target);\n const temp: TempFile = {\n path: join(folder, `.${basename(target).slice(0, 100)}.${process.pid}.${randomBytes(6).toString('hex')}.faf-tmp`),\n created: false,\n };\n const kept = existingFile(target);\n try {\n // A file faf may not write in place (read-only) is not replaced either.\n if (kept) {accessSync(target, constants.W_OK);}\n fillTemp(temp, content, kept, opts.mode);\n assertUnchanged(target, opts.expect, kept);\n renameSync(temp.path, target);\n } catch (e) {\n discardTemp(temp);\n if (e instanceof SafePathError) {throw e;}\n const why = errnoOf(e) ?? (e instanceof Error ? e.message : String(e));\n throw new NotWrittenError(target, `${target}: not written${kept ? '; original kept' : ''} (${why})`, { cause: e });\n }\n syncFolder(folder);\n}\n\n/** A refusal raised while writing: the same SafePathError, marked `onWrite`. */\nfunction atWrite(e: unknown): unknown {\n return e instanceof SafePathError && !e.onWrite ? new SafePathError(e.reason, e.path, e.message, { onWrite: true }) : e;\n}\n\n/**\n * Write a file inside a project, safely: resolved with {@link resolveInside}\n * (a link that leaves the project, dangles, or leads to a file with another\n * name, and anything in `.git`, is refused), then replaced atomically (temp\n * file in the same folder, fsync, rename; the original's permissions — and,\n * where the OS allows, its owner — kept). On any failure the original is\n * untouched and the Error says \"not written; original kept\". With `expect`,\n * a file that changed after the caller read it is not replaced either\n * (SafePathError `changed`); nor is one whose mode changed, or that became\n * read-only, while faf was writing. Returns the real path written — the\n * link's target when `path` is an in-project link.\n */\nexport function safeWriteFile(path: string, content: string | Uint8Array, opts: SafeWriteOptions = {}): string {\n const full = resolve(path);\n let target: string;\n try {\n target = resolveInside(opts.root ?? dirname(full), full, { allowGitHooks: opts.allowGitHooks, allowGitConfig: opts.allowGitConfig });\n } catch (e) {\n throw atWrite(e);\n }\n replaceAtomically(target, content, opts);\n return target;\n}\n\n/** Options for {@link safeReplaceOwned}. */\nexport interface ReplaceOwnedOptions {\n /** The project folder the write must stay inside. Default: the file's own folder. */\n root?: string;\n /** True when the bytes already at the path carry faf's own mark (faf wrote them). */\n owns: (existing: Buffer) => boolean;\n /** faf's mark in words, for the refusal: \"the `_meta[\\\"one.faf/context\\\"]` block\". */\n mark: string;\n /** Replace a file without the mark anyway — the explicit overwrite (`--force`). */\n force?: boolean;\n /** The bytes the caller read there earlier (`null`: no file then). When\n * given, the file must still hold them, else SafePathError `changed`. */\n expect?: string | Uint8Array | null;\n}\n\n/**\n * Write a whole file faf renders (project.html, a Server Card, an A2A card, a\n * `.fafb`), replacing a file already at `path` only when faf can prove it wrote\n * it: its bytes carry faf's own mark (`owns`). A file without the mark is\n * refused — SafePathError `not-owned`: \"<file> has no <mark>, so faf did not\n * write it — faf left it unchanged.\" — and stays byte for byte, unless `force`\n * asks to replace it. The link rules and the atomic write are\n * {@link safeWriteFile}'s, and the write is refused if the file changed on\n * disk after faf read it. Returns the real path written.\n */\nexport function safeReplaceOwned(path: string, content: string | Uint8Array, opts: ReplaceOwnedOptions): string {\n const full = resolve(path);\n const root = opts.root ?? dirname(full);\n const target = resolveInside(root, full);\n const existing = readBytesIfPresent(target);\n if (opts.expect !== undefined) {assertUnchanged(target, opts.expect, undefined);}\n if (existing !== null && opts.force !== true && !opts.owns(existing)) {\n throw new SafePathError('not-owned', full, `${full} has no ${opts.mark}, so faf did not write it — faf left it unchanged.`, { onWrite: true });\n }\n return safeWriteFile(target, content, { root, expect: existing });\n}\n\n/**\n * Create the folder `dir` inside the project folder `root`, with any missing\n * folders between them, and return its real path. `root` itself is the\n * caller's own folder: it is created as named when missing. Below it, faf\n * never creates a folder through a link: an existing folder on the way that\n * is a link leading out of `root` (or a dangling link) is refused, as is any\n * part inside `.git` and anything on the way that is not a folder — so\n * `.github → ~/elsewhere` cannot make faf create `~/elsewhere/workflows`.\n */\nexport function makeDirInside(root: string, dir: string = root): string {\n const top = resolve(root);\n mkdirSync(top, { recursive: true });\n const realRoot = realpath(top);\n const want = resolve(top, dir);\n const rel = relative(top, want);\n if (rel === '..' || rel.startsWith(`..${sep}`) || isAbsolute(rel)) {\n throw new SafePathError('outside', want, `${want} is outside ${realRoot} — refused.`, { onWrite: true });\n }\n let cur = realRoot;\n for (const part of rel.split(/[\\\\/]/).filter(Boolean)) {\n const next = join(cur, part);\n if (inGitDir(next)) {\n throw new SafePathError('git', want, `${want} runs through ${next}, inside .git/ — refused.`, { onWrite: true });\n }\n cur = stepInto(realRoot, want, next);\n }\n return cur;\n}\n\n/** One folder on the way down in makeDirInside: made when missing, followed\n * when it is a link that stays inside `root`, refused otherwise. */\nfunction stepInto(root: string, want: string, next: string): string {\n let st;\n try {\n st = lstatSync(next);\n } catch (e) {\n if (errnoOf(e) !== 'ENOENT') {throw e;}\n mkdirSync(next);\n return next;\n }\n let real = next;\n if (st.isSymbolicLink()) {\n try {\n real = realpath(next);\n } catch {\n throw new SafePathError('dangling', want, `${next} is a link to ${linkText(next)}, which does not exist. faf does not create folders through a link — refused.`, { onWrite: true });\n }\n if (!isInside(root, real)) {\n throw new SafePathError('outside', want, `${next} is a link to ${real}, outside ${root} — refused.`, { onWrite: true });\n }\n if (inGitDir(real)) {\n throw new SafePathError('git', want, `${next} is a link to ${real}, inside .git/ — refused.`, { onWrite: true });\n }\n }\n if (!statSync(real).isDirectory()) {\n throw new SafePathError('not-a-file', want, `${next} is not a folder — refused.`, { onWrite: true });\n }\n return real;\n}\n\n/**\n * Remove a file faf wrote — only when it still holds exactly `expect` (the\n * bytes faf wrote or read there) and is a regular file inside `root` (default:\n * its own folder), out of `.git`. A link is never removed (faf did not make\n * it), and a file whose bytes changed is left as it is (SafePathError\n * `changed`). Returns false when nothing was there.\n */\nexport function safeUnlink(path: string, opts: { root?: string; expect: string | Uint8Array }): boolean {\n const full = resolve(path);\n const realRoot = realpath(resolve(opts.root ?? dirname(full)));\n const folder = realpath(dirname(full));\n if (!isInside(realRoot, folder)) {\n throw new SafePathError('outside', full, `${full} is in ${folder}, outside ${realRoot} — refused.`, { onWrite: true });\n }\n const target = join(folder, basename(full));\n if (inGitDir(target)) {\n throw new SafePathError('git', full, `${full} is inside .git/ — refused.`, { onWrite: true });\n }\n let st;\n try {\n st = lstatSync(target);\n } catch (e) {\n if (errnoOf(e) === 'ENOENT') {return false;}\n throw e;\n }\n if (!st.isFile()) {\n throw new SafePathError('not-a-file', full, `${full} is not a regular file faf wrote — left as it is.`, { onWrite: true });\n }\n assertUnchanged(target, opts.expect, undefined);\n unlinkSync(target);\n return true;\n}\n\n/** The temp folders makeTempDir made in this process — the only ones removeTempDir removes. */\nconst TEMP_DIRS = new Set<string>();\n\n/** The marker file makeTempDir writes into every temp folder it makes, and\n * its exact content: `faf clear` removes only a folder that carries it. */\nexport const TEMP_MARKER = '.faf-temp';\nconst TEMP_MARKER_TEXT = 'faf made this temp folder; `faf clear` removes it.\\n';\n\n/** Make a new temp folder for faf's own use — `<os temp>/<prefix>XXXXXX`, a\n * fresh name no one else can have made (mkdtemp) — write faf's marker file\n * into it ({@link TEMP_MARKER}), and return its real path. Anything faf puts\n * there (a clone, say) goes in a subfolder, beside the marker. */\nexport function makeTempDir(prefix: string): string {\n const dir = realpath(mkdtempSync(join(tmpdir(), prefix)));\n TEMP_DIRS.add(dir);\n const fd = openSync(join(dir, TEMP_MARKER), 'wx', 0o644);\n try {\n writeFileSync(fd, TEMP_MARKER_TEXT);\n } finally {\n closeSync(fd);\n }\n return dir;\n}\n\n/** Remove a temp folder {@link makeTempDir} made in this process, with what is\n * in it. Any other folder is refused (an Error; nothing removed). */\nexport function removeTempDir(dir: string): void {\n if (!TEMP_DIRS.has(dir)) {throw new Error(`${dir} is not a temp folder faf made — not removed`);}\n rmSync(dir, { recursive: true, force: true });\n TEMP_DIRS.delete(dir);\n}\n\n/** True when the folder `dir` carries makeTempDir's marker: a regular file\n * (never a link) holding exactly the marker text. */\nfunction hasTempMarker(dir: string): boolean {\n const marker = join(dir, TEMP_MARKER);\n try {\n if (!lstatSync(marker).isFile()) {return false;}\n return readFileSync(marker, 'utf-8') === TEMP_MARKER_TEXT;\n } catch {\n return false;\n }\n}\n\nconst escapeRe = (s: string): string => s.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n\n/**\n * Remove faf's own temp folders left behind by earlier runs (`faf clear`):\n * only folders faf made — entries of the OS temp folder named exactly as\n * mkdtemp names them (`prefix` plus six letters or digits), that are real\n * folders (a link is left alone), belong to this user and carry the marker\n * file {@link makeTempDir} writes into each one. A folder of yours that only\n * starts with the prefix (`faf-git-my-notes`) stays. Returns how many were\n * removed. A folder that cannot be read or removed is skipped.\n */\nexport function removeStaleTempDirs(prefix: string): number {\n const tmp = tmpdir();\n const uid = typeof process.getuid === 'function' ? process.getuid() : undefined;\n const shape = new RegExp(`^${escapeRe(prefix)}[A-Za-z0-9]{6}$`);\n let removed = 0;\n for (const entry of readdirSync(tmp)) {\n if (!shape.test(entry)) {continue;}\n const p = join(tmp, entry);\n try {\n const st = lstatSync(p);\n if (!st.isDirectory() || (uid !== undefined && st.uid !== uid) || !hasTempMarker(p)) {continue;}\n rmSync(p, { recursive: true, force: true });\n removed++;\n } catch {\n /* not ours to remove, or already gone */\n }\n }\n return removed;\n}\n",
152
152
  "/**\n * Shape guards — never spread a scalar.\n *\n * `{ ...'old-init' }` is `{ 0: 'o', 1: 'l', … }` and `{ ...[a, b] }` is\n * `{ 0: a, 1: b }`: spreading a value that is not a mapping silently turns the\n * user's text into index keys, and the next write saves them. Every place that\n * spreads or descends into a parsed .faf / .fafm value checks its shape first\n * and refuses with an Error that names what it found.\n */\nimport { SafePathError } from './safe-write.js';\n\n/** True for a YAML mapping: a plain object, not a list. */\nexport function isMapping(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\n/** Plain words for a value's YAML shape, for error messages: `a string (\"old-init\")`, `a list (2 items)`. */\nexport function describeShape(value: unknown): string {\n if (Array.isArray(value)) {return `a list (${value.length} item${value.length === 1 ? '' : 's'})`;}\n if (value === null || value === undefined) {return 'empty';}\n if (typeof value === 'string') {\n const shown = value.length > 40 ? `${value.slice(0, 40)}…` : value;\n return `a string (${JSON.stringify(shown)})`;\n }\n if (typeof value === 'object') {return 'a mapping';}\n return `a ${typeof value} (${String(value)})`;\n}\n\n/**\n * A parsed .faf document as a mapping. An empty document reads as `{}`; a\n * scalar or a list throws a SafePathError (`not-yaml`), so the CLI prints it\n * as one line — faf never rewrites a file whose shape it does not\n * understand. `source` names the file (or caller) in the error.\n */\nexport function asFafMapping(value: unknown, source: string): Record<string, unknown> {\n if (value === null || value === undefined) {return {};}\n if (!isMapping(value)) {\n throw new SafePathError(\n 'not-yaml',\n source,\n `${source}: a .faf must be a YAML mapping (key: value pairs), but this one is ${describeShape(value)}. ` +\n 'faf left it unchanged — fix it by hand.',\n );\n }\n return value;\n}\n",
153
- "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 26-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 // skills: plain-English instructions for AI — SKILL.md folders, no\n // pipeline. Same 9 slots as documentation, named for what it is.\n skills: ['project', 'human'],\n\n // 12 slots — project + human + universal (build/ci/hosting matters)\n cli: ['project', 'human', 'universal'],\n // skills-plugin: skills published as a plugin (a directory, a\n // marketplace) with a build and CI — the cli shape.\n 'skills-plugin': ['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",
153
+ "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/** The slots a type uses although their categories are not active. Both\n * skills types name their framework (the skills format they ship: Agent\n * Skills, a Claude Code plugin): `skills` 9 + 1 = 10. A `skills-plugin`\n * also names its runtime (what runs its build and scripts): 12 + 2 = 14. */\nexport const APP_TYPE_ADDS: Readonly<Record<string, ReadonlySet<string>>> = {\n skills: new Set(['stack.frontend']),\n 'skills-plugin': new Set(['stack.frontend', 'stack.runtime']),\n};\n\n/** Whether the app-type `type` uses `slot` — the one rule for which slots\n * count: the type's active categories, plus the slots it adds, less the\n * slots a `framework` repo leaves out. `null` when `type` is not an\n * app-type faf knows (then faf 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_ADDS[type]?.has(slot.path)) {return true;}\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 26-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 // skills: plain-English instructions for AI — SKILL.md folders, no\n // pipeline. The 9 slots of documentation, plus framework (APP_TYPE_ADDS):\n // 10 slots.\n skills: ['project', 'human'],\n\n // 12 slots — project + human + universal (build/ci/hosting matters)\n cli: ['project', 'human', 'universal'],\n // skills-plugin: skills published as a plugin (a directory, a\n // marketplace) with a build and CI — the cli shape, plus framework and\n // runtime (APP_TYPE_ADDS): 14 slots.\n 'skills-plugin': ['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",
154
154
  "/**\n * Document-preserving YAML edits — how faf changes a .faf or .fafm that is\n * already on disk.\n *\n * The file is parsed with yaml's `parseDocument`, the change is made on the\n * Document through its node APIs (`set` / `setIn` / `delete`), and only the\n * text of the nodes that changed is rewritten. Every other byte stays as it\n * was: comments, blank lines, key order, quoting, scalar source text (`1.10`,\n * `0x1F90`, a 20-digit integer), anchors and aliases, unknown keys, CRLF line\n * ends and a BOM.\n *\n * Safety net: the spliced text is parsed again and must hold the same data as\n * the changed Document and serialise the same way (comments, styles, anchors;\n * blank lines aside). If it does not (a shape the splicer does not handle),\n * faf writes the Document's own serialisation instead — `toString({\n * lineWidth: 0 })`, which still keeps comments, anchors, unknown keys and the\n * source text of every number it did not change. A change that leaves the\n * data as it was returns the original text untouched — even when that\n * serialisation would differ — so callers skip the write.\n */\n\nimport {\n Document,\n YAMLMap,\n type Alias,\n YAMLSeq,\n isAlias,\n isCollection,\n isMap,\n isNode,\n isScalar,\n isSeq,\n parseDocument,\n type DocumentOptions,\n type Node,\n type Pair,\n type ParseOptions,\n type Scalar,\n type ScalarTag,\n type SchemaOptions,\n type Tags,\n type ToStringOptions,\n} from 'yaml';\nimport { isMapping } from './shape.js';\n\ntype YamlOptions = ParseOptions & DocumentOptions & SchemaOptions;\n\n/** The result of {@link editYaml}. */\nexport interface YamlEditResult {\n /** The new text — the original text when nothing changed. */\n text: string;\n /** False when the change left the document as it was. */\n changed: boolean;\n}\n\n// ─── Scalar source text ──────────────────────────────────────────────────────\n\nconst NUMBER_TAGS = new Set(['tag:yaml.org,2002:int', 'tag:yaml.org,2002:float']);\n\nfunction isScalarTag(tag: Tags[number]): tag is ScalarTag {\n return typeof tag === 'object' && tag.collection === undefined;\n}\n\n/** The number as it was written (`0x1F90`, `12345678901234567890`, `1e3`),\n * when the node still holds the value that text parses to. */\nfunction writtenNumber(node: Scalar, tags: readonly ScalarTag[]): string | undefined {\n const src = node.source;\n if (typeof src !== 'string' || src.includes('\\n') || typeof node.value !== 'number') {return undefined;}\n const tag = tags.find(t => t.default === true && t.test?.test(src));\n if (!tag || !NUMBER_TAGS.has(tag.tag)) {return undefined;}\n let parsed: unknown;\n try {\n parsed = tag.resolve(src, () => undefined, {});\n } catch {\n return undefined;\n }\n return Object.is(isScalar(parsed) ? parsed.value : parsed, node.value) ? src : undefined;\n}\n\n/** The core schema with number tags that re-emit an unchanged number's own\n * text (yaml would print `0x1F90` as `0x1f90` and round a 20-digit integer). */\nfunction keepNumberText(tags: Tags): Tags {\n const scalars = tags.filter(isScalarTag);\n return tags.map(tag => {\n if (!isScalarTag(tag) || !NUMBER_TAGS.has(tag.tag) || !tag.stringify) {return tag;}\n const inner = tag.stringify;\n return {\n ...tag,\n stringify: (item, ctx, onComment, onChompKeep) =>\n writtenNumber(item, scalars) ?? inner(item, ctx, onComment, onChompKeep),\n };\n });\n}\n\n/** Parse options for every document faf edits. */\nexport const EDIT_OPTIONS: YamlOptions = { keepSourceTokens: true, customTags: keepNumberText };\n\n/** What one `key:` line and the line under it say about the file's\n * indentation: a key step, or whether lists under keys are indented. */\nfunction indentHint(line: string, next: string): { indent?: number; indentSeq?: boolean } {\n const parent = /^( *)[^\\s#-][^#]*?:[ \\t]*(?:#.*)?$/.exec(line);\n const child = /^( *)(\\S)/.exec(next);\n if (!parent || !child || child[2] === '#') {return {};}\n const step = child[1].length - parent[1].length;\n if (child[2] === '-') {return step >= 0 ? { indentSeq: step > 0 } : {};}\n return step >= 1 && step <= 8 ? { indent: step } : {};\n}\n\n/** How the file indents: the step under a `key:` line (default 2), and whether\n * a list under a key is indented (`key:\\n - a`, the default) or not. */\nfunction styleOf(src: string): { indent: number; indentSeq: boolean } {\n const lines = src.split(/\\r?\\n/);\n let indent: number | undefined;\n let indentSeq: boolean | undefined;\n for (let i = 0; i + 1 < lines.length; i++) {\n const hint = indentHint(lines[i], lines[i + 1]);\n indent ??= hint.indent;\n indentSeq ??= hint.indentSeq;\n }\n return { indent: indent ?? 2, indentSeq: indentSeq ?? true };\n}\n\n/** Parse `src` for editing; a file that is not valid YAML is refused (an\n * Error whose `cause` is yaml's YAMLParseError, with its line). */\nexport function parseForEdit(src: string, name: string): Document {\n const doc = parseDocument(src, EDIT_OPTIONS);\n if (doc.errors.length > 0) {\n const why = doc.errors[0].message.split('\\n')[0];\n throw new Error(`${name}: not valid YAML (${why}) — faf left it unchanged.`, { cause: doc.errors[0] });\n }\n return doc;\n}\n\n// ─── Splicing ────────────────────────────────────────────────────────────────\n\ninterface Edit {\n start: number;\n end: number;\n text: string;\n seq: number;\n}\n\ninterface Ctx {\n src: string;\n eol: string;\n edits: Edit[];\n piece: ToStringOptions;\n}\n\ntype Slot =\n | { kind: 'value'; key: unknown; col: number }\n | { kind: 'item'; col: number }\n | { kind: 'root' };\n\nfunction push(ctx: Ctx, start: number, end: number, text: string): void {\n ctx.edits.push({ start, end, text, seq: ctx.edits.length });\n}\n\nfunction lineStart(src: string, pos: number): number {\n return src.lastIndexOf('\\n', pos - 1) + 1;\n}\n\n/** The end of the line `pos` is on, after its line break (or the end of text).\n * `pos` already at the start of a line is returned as is. */\nfunction lineEnd(src: string, pos: number): number {\n if (pos > 0 && src[pos - 1] === '\\n') {return pos;}\n const nl = src.indexOf('\\n', pos);\n return nl < 0 ? src.length : nl + 1;\n}\n\n/** `pos` without the line break that ends just before it. */\nfunction beforeBreak(src: string, pos: number): number {\n let q = pos;\n if (src[q - 1] === '\\n') {\n q--;\n if (src[q - 1] === '\\r') {q--;}\n }\n return q;\n}\n\n/** Neither null nor undefined. */\nfunction present<T>(v: T | null | undefined): v is T {\n return v !== null && v !== undefined;\n}\n\nfunction rangeOf(node: unknown): [number, number, number] | undefined {\n const r = isNode(node) ? (node as Node).range : undefined;\n return r ? [r[0], r[1], r[2]] : undefined;\n}\n\n/** A node `b` in the changed Document is the node `a` of the original when it\n * is a clone of it: same class, same source range. New nodes have no range. */\nfunction sameOrigin(a: unknown, b: unknown): boolean {\n const ra = rangeOf(a);\n const rb = rangeOf(b);\n return !!ra && !!rb && ra[0] === rb[0] && ra[1] === rb[1] && ra[2] === rb[2] &&\n (a as object).constructor === (b as object).constructor;\n}\n\nfunction isBlockNode(node: unknown): boolean {\n if (isScalar(node)) {return node.type === 'BLOCK_LITERAL' || node.type === 'BLOCK_FOLDED';}\n return isCollection(node) && !node.flow;\n}\n\ninterface Trivia {\n comment?: string | null;\n commentBefore?: string | null;\n spaceBefore?: boolean;\n anchor?: string;\n tag?: string;\n}\n\nfunction sameTrivia(a: Trivia, b: Trivia): boolean {\n return a.anchor === b.anchor && a.tag === b.tag && a.comment === b.comment &&\n a.commentBefore === b.commentBefore && !!a.spaceBefore === !!b.spaceBefore;\n}\n\nfunction sameScalar(a: Scalar, b: Scalar): boolean {\n return Object.is(a.value, b.value) && a.type === b.type && a.format === b.format &&\n a.minFractionDigits === b.minFractionDigits && sameTrivia(a, b);\n}\n\n/** Render `node` inside a one-item container and return what follows the\n * container's own prefix (`k:` or `-`). Continuation lines are shifted to\n * column `col`. `inline` is true for a single line that follows the prefix\n * after one space. */\nfunction render(ctx: Ctx, build: (doc: Document) => YAMLMap | YAMLSeq, prefix: number, col: number): { inline: boolean; text: string } {\n const doc = new Document(undefined, EDIT_OPTIONS);\n doc.contents = build(doc);\n const out = doc.toString(ctx.piece).replace(/\\n+$/, '');\n const rest = out.slice(prefix);\n const inline = rest.startsWith(' ') && !rest.includes('\\n');\n const pad = ' '.repeat(col);\n const text = rest.replace(/\\n(?=.)/g, `\\n${pad}`).replace(/\\n/g, ctx.eol);\n return { inline, text: inline ? rest.slice(1) : text };\n}\n\n/** `value` as the value of a pair whose key sits at column `col`. */\nfunction renderValue(ctx: Ctx, value: unknown, col: number): { inline: boolean; text: string } {\n return render(ctx, doc => {\n const map = new YAMLMap();\n map.items.push(doc.createPair('k', value));\n return map;\n }, 2, col);\n}\n\n/** `value` as a list item whose `-` sits at column `col` (the text after `- `). */\nfunction renderItem(ctx: Ctx, value: unknown, col: number): { inline: boolean; text: string } | null {\n const piece = render(ctx, () => {\n const seq = new YAMLSeq();\n seq.items.push(value);\n return seq;\n }, 1, col);\n if (piece.inline) {return piece;}\n return piece.text.startsWith(' ') ? { inline: false, text: piece.text.slice(1) } : null;\n}\n\n/** A copy of a node without its trailing comment, for rendering its value alone. */\nfunction valueOnly(node: unknown): unknown {\n if (!isNode(node) || !present((node as Trivia).comment)) {return node;}\n const copy = node.clone() as Node & Trivia;\n copy.comment = undefined;\n return copy;\n}\n\n/** `b` without the anchor and tag it shares with `a`. A node's range starts\n * at its value — `&g` and `!!str` sit in front of it and stay in the text —\n * so the new value is rendered without them, and only the value text inside\n * the range changes (`goal: &g Old` → `goal: &g New`, not `&g &g New`). */\nfunction withoutSharedProps(a: unknown, b: unknown): unknown {\n if (!isNode(a) || !isNode(b)) {return b;}\n const ta = a as Trivia;\n const tb = b as Trivia;\n if ((!ta.anchor && !ta.tag) || ta.anchor !== tb.anchor || ta.tag !== tb.tag) {return b;}\n const copy = b.clone() as Node & Trivia;\n copy.anchor = undefined;\n copy.tag = undefined;\n return copy;\n}\n\n/** Just after the `:` that follows `key`, or -1. */\nfunction afterColon(src: string, key: unknown): number {\n const r = rangeOf(key);\n if (!r) {return -1;}\n let i = r[2];\n while (src[i] === ' ' || src[i] === '\\t') {i++;}\n return src[i] === ':' ? i + 1 : -1;\n}\n\n/** Text for an empty value (`key:` with nothing after it) that gains one. */\nfunction fillEmpty(src: string, at: number, text: string): string {\n const lead = src[at - 1] === ' ' || src[at - 1] === '\\t' ? '' : ' ';\n const tail = src[at] === '#' ? ' ' : '';\n return `${lead}${text}${tail}`;\n}\n\n/** How a replaced node's old text ends, and what its new text looks like. */\ninterface Replacement {\n range: [number, number, number];\n /** The old node's trailing comment stays where it is. */\n keepTail: boolean;\n /** The new node's own trailing comment (rendered in `piece` when the tail goes). */\n newComment: string | null | undefined;\n piece: { inline: boolean; text: string };\n}\n\n/** How `a` is replaced by `b`. `fromColon`: the new text starts right after\n * the key's colon, over the node's anchor and tag too, so they are rendered\n * with it; otherwise the new text starts at the node's range, after them. */\nfunction planReplace(ctx: Ctx, a: unknown, b: unknown, slot: Slot, fromColon = false): Replacement | null {\n const range = rangeOf(a);\n if (!range || slot.kind === 'root') {return null;}\n const oldComment = (a as Trivia).comment;\n const newComment = isNode(b) ? (b as Trivia).comment : undefined;\n const keepTail = !present(oldComment) || oldComment === newComment;\n const valueText = keepTail ? valueOnly(b) : b;\n const shown = fromColon ? valueText : withoutSharedProps(a, valueText);\n const piece = slot.kind === 'value' ? renderValue(ctx, shown, slot.col) : renderItem(ctx, shown, slot.col);\n return piece ? { range, keepTail, newComment, piece } : null;\n}\n\n/** Where the old node's text ends: before its trailing comment when that\n * stays, after it when the comment goes with the node. */\nfunction replaceEnd(src: string, a: unknown, r: [number, number, number], keepTail: boolean): number {\n if (!keepTail) {return beforeBreak(src, lineEnd(src, r[2]));}\n return isBlockNode(a) ? beforeBreak(src, r[1]) : r[1];\n}\n\n/** Replace the node `a` (a pair's value, or a list item) with `b`; `addComment`\n * is a line comment the unchanged-style scalar gains. */\nfunction replace(ctx: Ctx, a: unknown, b: unknown, slot: Slot, addComment?: string): boolean {\n const inRange = planReplace(ctx, a, b, slot);\n if (!inRange) {return false;}\n const end = replaceEnd(ctx.src, a, inRange.range, inRange.keepTail);\n if (inRange.piece.inline && (!isBlockNode(a) || slot.kind === 'item')) {\n replaceInline(ctx, inRange, end, slot, addComment);\n return true;\n }\n // A multi-line value (or a block node replaced): no comment can be carried.\n const tailComment = inRange.keepTail ? (a as Trivia).comment : inRange.newComment;\n if (addComment !== undefined || present(tailComment)) {return false;}\n // A pair's value is rewritten from its key's colon, anchor and tag included.\n const plan = slot.kind === 'value' ? planReplace(ctx, a, b, slot, true) : inRange;\n return plan !== null && replaceBlock(ctx, plan.range[0], end, plan.piece, slot);\n}\n\n/** One line in, one line out: the new value takes the old value's place. */\nfunction replaceInline(ctx: Ctx, plan: Replacement, end: number, slot: Slot, addComment?: string): void {\n const [start, valueEnd] = plan.range;\n const empty = start === valueEnd && slot.kind === 'value';\n const text = empty ? fillEmpty(ctx.src, start, plan.piece.text) : plan.piece.text;\n push(ctx, start, end, text + (addComment === undefined ? '' : ` #${addComment}`));\n}\n\nfunction replaceBlock(ctx: Ctx, start: number, end: number, piece: { inline: boolean; text: string }, slot: Slot): boolean {\n if (slot.kind === 'item') {\n push(ctx, start, end, piece.text);\n return true;\n }\n if (slot.kind !== 'value') {return false;}\n const colon = afterColon(ctx.src, slot.key);\n if (colon < 0) {return false;}\n push(ctx, colon, end, piece.inline ? ` ${piece.text}` : piece.text);\n return true;\n}\n\n/** Same anchor, tag, leading comment and blank line (the trailing comment aside). */\nfunction sameLead(a: Trivia, b: Trivia): boolean {\n return sameTrivia({ ...a, comment: undefined }, { ...b, comment: undefined });\n}\n\n/** The line comment a scalar gains (it had none, the change gives it one). */\nfunction gainedComment(a: Scalar, b: Scalar): string | undefined {\n if (present(a.comment) || typeof b.comment !== 'string') {return undefined;}\n return b.comment.includes('\\n') ? undefined : b.comment;\n}\n\nfunction diffScalar(ctx: Ctx, a: Scalar, b: Scalar, slot: Slot): boolean {\n if (sameScalar(a, b)) {return true;}\n if (!sameLead(a, b)) {return false;}\n const added = gainedComment(a, b);\n if (a.comment !== b.comment && added === undefined) {return false;}\n return replace(ctx, a, b, slot, added);\n}\n\nfunction diffCollection(ctx: Ctx, a: YAMLMap | YAMLSeq, b: YAMLMap | YAMLSeq, slot: Slot): boolean {\n if (!sameTrivia(a, b) || !!a.flow !== !!b.flow) {return false;}\n if (a.flow) {\n return renderValue(ctx, a, 0).text === renderValue(ctx, b, 0).text || replace(ctx, a, b, slot);\n }\n // Every entry gone: the value becomes `{}` / `[]`, not an empty `key:`.\n if (b.items.length === 0) {return replace(ctx, a, b, slot);}\n return isMap(a) ? diffMap(ctx, a, b as YAMLMap) : diffSeq(ctx, a as YAMLSeq, b as YAMLSeq);\n}\n\nfunction diffNode(ctx: Ctx, a: unknown, b: unknown, slot: Slot): boolean {\n if (!sameOrigin(a, b)) {return replace(ctx, a, b, slot);}\n if (isScalar(a)) {return diffScalar(ctx, a, b as Scalar, slot);}\n if (isAlias(a)) {\n return (isAlias(b) && a.source === b.source && sameTrivia(a, b)) || replace(ctx, a, b, slot);\n }\n if (!isCollection(a) || !isCollection(b)) {return false;}\n return diffCollection(ctx, a as YAMLMap | YAMLSeq, b as YAMLMap | YAMLSeq, slot);\n}\n\n/** Column of a block collection's entries (first key, or first `-`). */\nfunction entryColumn(src: string, pos: number): number {\n return pos - lineStart(src, pos);\n}\n\n/** True when only spaces (and, for a list item, its `-`) precede `pos` on its line. */\nfunction startsLine(src: string, pos: number, dash: boolean): boolean {\n const lead = src.slice(lineStart(src, pos), pos);\n return dash ? /^ *- +$/.test(lead) || /^ *$/.test(lead) : /^ *$/.test(lead);\n}\n\nfunction hasLeadingTrivia(node: unknown): boolean {\n return isNode(node) && (present((node as Trivia).commentBefore) || !!(node as Trivia).spaceBefore);\n}\n\n/** End of an entry's last line (after its line break). */\nfunction entryEnd(ctx: Ctx, value: unknown, key?: unknown): number {\n const r = rangeOf(value) ?? rangeOf(key);\n return r ? lineEnd(ctx.src, r[2]) : -1;\n}\n\nfunction renderEntries(ctx: Ctx, container: YAMLMap | YAMLSeq, col: number): string {\n const doc = new Document(undefined, EDIT_OPTIONS);\n doc.contents = container;\n const pad = ' '.repeat(col);\n const lines = doc.toString(ctx.piece).replace(/\\n+$/, '').split('\\n');\n return lines.map(line => (line ? pad + line : line)).join(ctx.eol) + ctx.eol;\n}\n\n/** Insert text for new entries at `at` (a line start, or the end of a file\n * without a final line break — which then still ends without one). */\nfunction insertAt(ctx: Ctx, at: number, body: string): void {\n const openEnd = at === ctx.src.length && at > 0 && !ctx.src.endsWith('\\n');\n push(ctx, at, at, openEnd ? ctx.eol + body.slice(0, -ctx.eol.length) : body);\n}\n\n/** Insert new entries after the entry ending at `afterEnd` (or before the\n * first entry, `first`, when -1). */\nfunction insertEntries(ctx: Ctx, first: unknown, afterEnd: number, container: YAMLMap | YAMLSeq, col: number, dash: boolean): boolean {\n let at = afterEnd;\n if (at < 0) {\n const r = rangeOf(first);\n if (!r || hasLeadingTrivia(first) || !startsLine(ctx.src, r[0], dash)) {return false;}\n at = lineStart(ctx.src, r[0]);\n }\n insertAt(ctx, at, renderEntries(ctx, container, col));\n return true;\n}\n\n/** Start of the lines that belong to an entry: its own line, plus the comment\n * lines and blank lines the parser attached before it. */\nfunction entryStart(src: string, head: unknown, pos: number): number {\n let start = lineStart(src, pos);\n const t = head as Trivia;\n const comments = present(t.commentBefore);\n let blank = !!t.spaceBefore;\n while (start > 0) {\n const prev = lineStart(src, start - 1);\n const line = src.slice(prev, start).trim();\n if (comments && line.startsWith('#')) {\n start = prev;\n } else if (blank && line === '') {\n start = prev;\n blank = false;\n } else {\n break;\n }\n }\n return start;\n}\n\nfunction deleteEntry(ctx: Ctx, head: unknown, value: unknown, dash: boolean): boolean {\n const r = rangeOf(head);\n if (!r || !startsLine(ctx.src, r[0], dash)) {return false;}\n const end = entryEnd(ctx, value, head);\n if (end < 0) {return false;}\n push(ctx, entryStart(ctx.src, head, r[0]), end, '');\n return true;\n}\n\n/** Finds, for a node of the changed Document, the index of the original\n * entry it was cloned from (-1 for a new node). */\nfunction originIndex(items: readonly unknown[], pick: (x: unknown) => unknown): (b: unknown) => number {\n const at = new Map<string, number>();\n const id = (node: unknown): string | undefined => {\n const r = rangeOf(node);\n return r ? r.join(':') : undefined;\n };\n items.forEach((item, i) => {\n const key = id(pick(item));\n if (key !== undefined && !at.has(key)) {at.set(key, i);}\n });\n return (b) => {\n const key = id(pick(b));\n const i = key === undefined ? undefined : at.get(key);\n return i !== undefined && sameOrigin(pick(items[i]), pick(b)) ? i : -1;\n };\n}\n\nfunction sameKey(a: unknown, b: unknown): boolean {\n return isScalar(a) && isScalar(b) ? sameScalar(a, b) : a === b;\n}\n\nfunction diffMap(ctx: Ctx, a: YAMLMap, b: YAMLMap): boolean {\n const firstKey = a.items[0]?.key;\n const kr = rangeOf(firstKey);\n if (!kr) {return false;}\n const col = entryColumn(ctx.src, kr[0]);\n const matched = new Set<number>();\n const flush = (pending: Pair[], last: number): boolean => {\n if (pending.length === 0) {return true;}\n const container = new YAMLMap();\n container.items.push(...pending);\n const end = last < 0 ? -1 : entryEnd(ctx, a.items[last].value, a.items[last].key);\n return insertEntries(ctx, firstKey, end, container, col, false);\n };\n const origin = originIndex(a.items, p => (p as Pair).key);\n let last = -1;\n let pending: Pair[] = [];\n for (const bp of b.items) {\n const ai = origin(bp);\n if (ai < 0) {\n pending.push(bp);\n continue;\n }\n if (ai <= last || !flush(pending, last) || !sameKey(a.items[ai].key, bp.key)) {return false;}\n pending = [];\n if (!diffNode(ctx, a.items[ai].value, bp.value, { kind: 'value', key: a.items[ai].key, col })) {return false;}\n matched.add(ai);\n last = ai;\n }\n if (!flush(pending, last)) {return false;}\n return a.items.every((p, i) => matched.has(i) || deletePair(ctx, a, i));\n}\n\n/** Remove pair `i` of `map`. The first pair of a map that is a list item\n * (`- id: x`) shares its line with the `-`: the next key moves up to it. */\nfunction deletePair(ctx: Ctx, map: YAMLMap, i: number): boolean {\n const pair = map.items[i];\n const r = rangeOf(pair.key);\n if (!r) {return false;}\n if (startsLine(ctx.src, r[0], false)) {return deleteEntry(ctx, pair.key, pair.value, false);}\n const next = map.items[i + 1];\n const nr = rangeOf(next?.key);\n if (i !== 0 || !nr || hasLeadingTrivia(pair.key) || hasLeadingTrivia(next.key)) {return false;}\n push(ctx, r[0], nr[0], '');\n return true;\n}\n\nfunction diffSeq(ctx: Ctx, a: YAMLSeq, b: YAMLSeq): boolean {\n const sr = rangeOf(a);\n if (!sr || a.items.length === 0) {return false;}\n const col = entryColumn(ctx.src, sr[0]);\n const matched = new Set<number>();\n const flush = (pending: unknown[], last: number): boolean => {\n if (pending.length === 0) {return true;}\n const container = new YAMLSeq();\n container.items.push(...pending);\n const end = last < 0 ? -1 : entryEnd(ctx, a.items[last]);\n return insertEntries(ctx, a.items[0], end, container, col, true);\n };\n const origin = originIndex(a.items, x => x);\n let last = -1;\n let pending: unknown[] = [];\n for (const bi of b.items) {\n const ai = origin(bi);\n if (ai < 0) {\n pending.push(bi);\n continue;\n }\n if (ai <= last || !flush(pending, last)) {return false;}\n pending = [];\n if (!diffNode(ctx, a.items[ai], bi, { kind: 'item', col })) {return false;}\n matched.add(ai);\n last = ai;\n }\n if (!flush(pending, last)) {return false;}\n return a.items.every((item, i) => matched.has(i) || deleteEntry(ctx, item, item, true));\n}\n\n/** Apply non-overlapping edits, last first. Returns null on an overlap. */\nfunction applyEdits(src: string, edits: Edit[]): string | null {\n const sorted = [...edits].sort((x, y) => y.start - x.start || y.end - x.end || y.seq - x.seq);\n let out = src;\n let bound = Infinity;\n for (const e of sorted) {\n if (e.end > bound) {return null;}\n out = out.slice(0, e.start) + e.text + out.slice(e.end);\n bound = e.start;\n }\n return out;\n}\n\n/** An empty (or comments-only) document gains its first content. */\nfunction fillDocument(ctx: Ctx, base: Document, b: unknown): boolean {\n if (!isMap(b) && !isSeq(b)) {return false;}\n const lead = ctx.src.length > 0 && !ctx.src.endsWith('\\n') ? ctx.eol : '';\n const gap = base.commentBefore ? ctx.eol : '';\n push(ctx, ctx.src.length, ctx.src.length, lead + gap + renderEntries(ctx, b, 0));\n return true;\n}\n\nfunction spliceRoot(ctx: Ctx, base: Document, next: Document): boolean {\n if (base.commentBefore !== next.commentBefore || base.comment !== next.comment) {return false;}\n const a = base.contents;\n const b = next.contents;\n if (!present(a)) {return !present(b) || fillDocument(ctx, base, b);}\n return present(b) && diffNode(ctx, a, b, { kind: 'root' });\n}\n\nfunction splice(src: string, base: Document, next: Document, eol: string, piece: ToStringOptions): string | null {\n const ctx: Ctx = { src, eol, edits: [], piece };\n if (!spliceRoot(ctx, base, next)) {return null;}\n return applyEdits(src, ctx.edits);\n}\n\n/** Blank lines carry no data outside block scalars, and the parser may pin a\n * blank line to a neighbouring node; the data itself is compared separately. */\nconst withoutBlankLines = (text: string): string => text.replace(/^[ \\t]*\\n/gm, '');\n\n/** True when `text` parses to the same data as `next`, with the same comments,\n * styles and structure (its serialisation equals `want`, blank lines aside). */\nfunction reads(text: string, next: Document, want: string, opts: ToStringOptions): boolean {\n const doc = parseDocument(text, EDIT_OPTIONS);\n if (doc.errors.length > 0 || !sameJs(doc.toJS(), next.toJS())) {return false;}\n const got = doc.toString(opts);\n return got === want || withoutBlankLines(got) === withoutBlankLines(want);\n}\n\n/**\n * Parse `text`, let `mutate` change the Document, and return the new text with\n * every byte outside the changed nodes kept. `name` labels errors (a file that\n * is not valid YAML is refused — nothing is guessed). When the change leaves\n * the data as it was (the same values, whatever the nodes or their order),\n * the original `text` is returned with `changed: false`.\n */\nexport function editYaml(text: string, mutate: (doc: Document) => void, name = 'YAML'): YamlEditResult {\n const { text: out, changed } = editYamlDetailed(text, mutate, name);\n return { text: out, changed };\n}\n\n/** {@link editYaml}, also saying how the text was made: `spliced` is true when\n * only the changed nodes were rewritten, false when faf fell back to the\n * Document's own serialisation (or nothing changed). For tests. */\nexport function editYamlDetailed(\n text: string,\n mutate: (doc: Document) => void,\n name = 'YAML',\n): YamlEditResult & { spliced: boolean } {\n const bom = text.startsWith('\\uFEFF') ? '\\uFEFF' : '';\n const src = text.slice(bom.length);\n const base = parseForEdit(src, name);\n const next = cloneDocument(base);\n mutate(next);\n const unchanged = { text, changed: false, spliced: false };\n // A change that leaves the data as it was writes nothing — not even the\n // Document's own serialisation, which could differ from the file's text.\n if (sameJs(next.toJS(), base.toJS())) {return unchanged;}\n const canon: ToStringOptions = { lineWidth: 0, ...styleOf(src) };\n const want = next.toString(canon);\n if (want === base.toString(canon)) {return unchanged;}\n const eol = src.includes('\\r\\n') ? '\\r\\n' : '\\n';\n const candidate = splice(src, base, next, eol, { ...canon, verifyAliasOrder: false });\n const spliced = candidate !== null && reads(candidate, next, want, canon);\n const out = spliced && candidate !== null ? candidate : want.replace(/\\r?\\n/g, eol);\n return { text: bom + out, changed: bom + out !== text, spliced };\n}\n\n/** `doc.clone()`, keeping the document-end marker (`...`): yaml's clone\n * copies the `%YAML` directive and the `---` start marker but drops `...`,\n * so every edit of a file ending in `...` fell back to a full rewrite. */\nfunction cloneDocument(doc: Document): Document {\n const copy = doc.clone();\n if (doc.directives && copy.directives) {copy.directives.docEnd = doc.directives.docEnd;}\n return copy;\n}\n\n// ─── Applying plain data to a Document ──────────────────────────────────────\n\n/** Deep equality of plain parsed values (mappings compared key by key). */\nexport function sameJs(a: unknown, b: unknown): boolean {\n if (Object.is(a, b)) {return true;}\n if (Array.isArray(a) && Array.isArray(b)) {\n return a.length === b.length && a.every((x, i) => sameJs(x, b[i]));\n }\n if (isMapping(a) && isMapping(b)) {\n const ka = Object.keys(a);\n return ka.length === Object.keys(b).length && ka.every(k => k in b && sameJs(a[k], b[k]));\n }\n return false;\n}\n\nfunction keyText(pair: Pair): string | undefined {\n const k = isScalar(pair.key) ? pair.key.value : pair.key;\n return typeof k === 'string' || typeof k === 'number' || typeof k === 'boolean' ? String(k) : undefined;\n}\n\nfunction findPair(map: YAMLMap, key: string): Pair | undefined {\n return map.items.find(p => keyText(p) === key);\n}\n\nfunction nodeJs(doc: Document, node: unknown): unknown {\n return isNode(node) ? node.toJS(doc) : node;\n}\n\n/** How {@link applyMapData} treats keys the data does not name. */\nexport interface ApplyOptions {\n /** Remove keys of a mapping that the data leaves out (or sets `undefined`).\n * Default false: a key the data does not mention stays exactly as it is. */\n prune?: boolean;\n /** Leave every alias (`*name`) as written, whatever the data holds there:\n * it is never expanded or replaced (see {@link keptAliases}). */\n keepAliases?: boolean;\n}\n\n/** The node already holds `value`, or is an alias kept as written. */\nfunction staysAsWritten(doc: Document, node: unknown, value: unknown, opts: ApplyOptions): boolean {\n return (opts.keepAliases === true && isAlias(node)) || sameJs(nodeJs(doc, node), value);\n}\n\n/**\n * Set `node` to hold `value` with the fewest changes: a mapping is updated key\n * by key, a list item by item (items still there are kept as they are), a\n * scalar in place (its comment, quoting and position kept). Returns the node\n * to store — `node` itself, or a new node when the shape changed.\n */\nexport function applyValue(doc: Document, node: unknown, value: unknown, opts: ApplyOptions = {}): unknown {\n if (staysAsWritten(doc, node, value, opts)) {return node;}\n if (isMapping(value) && isMap(node)) {\n applyMapData(doc, node, value, opts);\n return node;\n }\n if (Array.isArray(value) && isSeq(node)) {\n applySeqData(doc, node, value, opts);\n return node;\n }\n if (!isMapping(value) && !Array.isArray(value) && isScalar(node)) {\n node.value = value;\n return node;\n }\n return withCommentOf(node, doc.createNode(value));\n}\n\n/** `created`, which takes the place of `old`, with `old`'s comments: a\n * scalar or an alias keeps its line comment (`summary: *g # note` →\n * `summary: New # note`); a scalar lifted to a mapping or a list\n * (`project: demo # note`, `stack: # note`) keeps it as a comment line above\n * the new entries, or on the key line when the new value is empty\n * (`stack: {} # note`). */\nfunction withCommentOf(old: unknown, created: Node): Node {\n if (!isScalar(old) && !isAlias(old)) {return created;}\n const was = old as Trivia;\n const target = created as Node & Trivia;\n if (isCollection(created) && created.items.length > 0 && !created.flow) {\n target.commentBefore = joinComments(target.commentBefore, was.commentBefore, was.comment);\n return created;\n }\n if (isCollection(created)) {created.flow = true;}\n target.comment = joinComments(target.comment ?? was.comment);\n target.commentBefore = joinComments(target.commentBefore ?? was.commentBefore);\n return created;\n}\n\n/** Comment texts joined as lines, or undefined when there are none. */\nfunction joinComments(...parts: Array<string | null | undefined>): string | undefined {\n const lines = parts.filter(present);\n return lines.length > 0 ? lines.join('\\n') : undefined;\n}\n\n/** Make `map` hold `data`: changed keys updated in place, new keys appended in\n * `data`'s order. Keys `data` leaves out stay, unless `prune` is set. */\nexport function applyMapData(doc: Document, map: YAMLMap, data: Record<string, unknown>, opts: ApplyOptions = {}): void {\n for (const [key, value] of Object.entries(data)) {\n if (value === undefined) {continue;}\n const pair = findPair(map, key);\n if (pair) {\n pair.value = applyValue(doc, pair.value, value, opts);\n } else {\n map.items.push(doc.createPair(key, value));\n }\n }\n if (!opts.prune) {return;}\n map.items = map.items.filter(p => {\n const key = keyText(p);\n return key === undefined || data[key] !== undefined;\n });\n}\n\n/**\n * Merge `data` into `map`, whose parsed value (the file as it was read) is\n * `before`, writing only the paths where `data` differs from `before`:\n * - a key whose value in `data` equals its value in `before` is not touched\n * — its node stays exactly as written, so an alias (`summary: *g`), a\n * merge key or a comment on it survives even when `data` spells out the\n * value the alias read as (a stale copy never replaces a live `*alias`);\n * - a changed mapping is merged key by key the same way;\n * - any other changed value is set with {@link applyValue};\n * - an alias (`stack: *base`) is never replaced or expanded, at any depth:\n * it stays as written, and a change `data` makes under it is not written\n * ({@link keptAliases} lists those paths);\n * - keys `data` leaves out (or sets `undefined`) stay; new keys are appended.\n * This is how writeFaf applies full .faf data to an existing file.\n */\nexport function mergeData(doc: Document, map: YAMLMap, before: unknown, data: Record<string, unknown>): void {\n const was: Record<string, unknown> = isMapping(before) ? before : {};\n for (const [key, value] of Object.entries(data)) {\n if (value === undefined) {continue;}\n const pair = findPair(map, key);\n if (!pair) {\n map.items.push(doc.createPair(key, value));\n } else if (Object.prototype.hasOwnProperty.call(was, key) && sameJs(was[key], value)) {\n continue; // unchanged: the node stays as written\n } else if (isMapping(value) && isMapping(was[key]) && isMap(pair.value)) {\n mergeData(doc, pair.value, was[key], value);\n } else {\n pair.value = applyValue(doc, pair.value, value, { keepAliases: true });\n }\n }\n}\n\n/** An alias faf left as written: where it is (`stack`, `key_files.2`) and\n * what it says (`*base`). With `kind: 'anchor'` the path holds an anchor an\n * alias reads (`alias` then says `&name`): `faf auto` would have filled it,\n * which would change every alias that reads it, so it is left as written. */\nexport interface KeptAlias {\n path: string;\n alias: string;\n kind?: 'alias' | 'anchor';\n}\n\n/** Every alias in a mapping or list, with its path — not looking through aliases. */\nfunction aliasesIn(node: unknown, path: readonly (string | number)[], out: Array<{ path: (string | number)[]; node: Alias }>): void {\n if (isAlias(node)) {\n out.push({ path: [...path], node });\n } else if (isMap(node)) {\n for (const pair of node.items) {\n const key = keyText(pair);\n if (key !== undefined) {aliasesIn(pair.value, [...path, key], out);}\n }\n } else if (isSeq(node)) {\n node.items.forEach((item, i) => aliasesIn(item, [...path, i], out));\n }\n}\n\n/** The plain value at `path` of parsed data, or undefined. */\nfunction jsAt(data: unknown, path: readonly (string | number)[]): unknown {\n let cur = data;\n for (const step of path) {\n if (Array.isArray(cur) && typeof step === 'number') {\n cur = cur[step];\n } else if (isMapping(cur) && typeof step === 'string') {\n cur = cur[step];\n } else {\n return undefined;\n }\n }\n return cur;\n}\n\n/** The aliases in `doc` where `data` changed the value the file held\n * (`before`) and the alias does not read as the new value — a change under\n * an alias that faf did not write, because it never replaces or expands an\n * alias. A value `data` only repeats (a stale copy of what the alias read\n * as) is not a change. */\nexport function keptAliases(doc: Document, data: unknown, before: unknown): KeptAlias[] {\n const found: Array<{ path: (string | number)[]; node: Alias }> = [];\n aliasesIn(doc.contents, [], found);\n return found\n .filter(({ path, node }) => {\n const want = jsAt(data, path);\n return want !== undefined && !sameJs(jsAt(before, path), want) && !sameJs(node.toJS(doc), want);\n })\n .map(({ path, node }) => ({ path: path.join('.'), alias: `*${node.source}` }));\n}\n\n/** The node at `path` of a Document, and a way to put another node in its\n * place — or null when nothing is there. A list item is put back only over a\n * node the change made (one with no place in the file); an item of the file\n * that moved there is left. */\nfunction slotAt(doc: Document, path: readonly (string | number)[]): { node: unknown; put: (n: Node) => boolean } | null {\n let parent: unknown = doc.contents;\n for (let i = 0; i < path.length - 1 && parent !== undefined; i++) {parent = childAt(parent, path[i]);}\n const step = path[path.length - 1];\n if (isMap(parent) && typeof step === 'string') {\n const pair = findPair(parent, step);\n return pair ? { node: pair.value, put: n => ((pair.value = n), true) } : null;\n }\n if (isSeq(parent) && typeof step === 'number' && step < parent.items.length) {\n const seq = parent;\n const node = seq.items[step];\n return { node, put: n => (rangeOf(node) === undefined ? ((seq.items[step] = n), true) : false) };\n }\n return null;\n}\n\n/** The value a mapping holds under `step`, or a list's item `step`. */\nfunction childAt(node: unknown, step: string | number): unknown {\n if (isMap(node) && typeof step === 'string') {return findPair(node, step)?.value;}\n if (isSeq(node) && typeof step === 'number') {return node.items[step];}\n return undefined;\n}\n\n/**\n * Put back every alias of `before` that `after` (the same Document, changed)\n * holds something else in place of: faf never replaces an alias, so that\n * path keeps the file's `*name` and its change is not written. A key the\n * change removed stays removed. Returns the aliases put back.\n */\nexport function restoreAliases(before: Document, after: Document): KeptAlias[] {\n const found: Array<{ path: (string | number)[]; node: Alias }> = [];\n aliasesIn(before.contents, [], found);\n const kept: KeptAlias[] = [];\n for (const { path, node } of found) {\n const slot = slotAt(after, path);\n if (!slot || (isAlias(slot.node) && slot.node.source === node.source)) {continue;}\n if (!slot.put(node.clone() as Alias)) {continue;}\n kept.push({ path: path.join('.'), alias: `*${node.source}` });\n }\n return kept;\n}\n\n/** Every node with an anchor in `names`, with its path — not looking through aliases. */\nfunction anchoredIn(node: unknown, path: readonly (string | number)[], names: ReadonlySet<string>, out: Array<{ path: (string | number)[]; node: Node }>): void {\n if (!isNode(node) || isAlias(node)) {return;}\n const anchor = (node as Trivia).anchor;\n if (anchor && names.has(anchor)) {out.push({ path: [...path], node });}\n if (isMap(node)) {\n for (const pair of node.items) {\n const key = keyText(pair);\n if (key !== undefined) {anchoredIn(pair.value, [...path, key], names, out);}\n }\n } else if (isSeq(node)) {\n node.items.forEach((item, i) => anchoredIn(item, [...path, i], names, out));\n }\n}\n\n/**\n * Put back every node of `before` that carries an anchor an alias reads\n * (`frontend: &x None` while `ui_library: *x`) and that `after` (the same\n * Document, changed) holds something else in place of: a fill there would\n * change the value of every alias that reads it, so faf leaves the node as\n * written and its change is not written. Returns those paths (`kind:\n * 'anchor'`, `alias` saying `&name`).\n */\nexport function restoreAnchors(before: Document, after: Document): KeptAlias[] {\n const aliases: Array<{ path: (string | number)[]; node: Alias }> = [];\n aliasesIn(before.contents, [], aliases);\n const names = new Set(aliases.map(a => a.node.source));\n if (names.size === 0) {return [];}\n const found: Array<{ path: (string | number)[]; node: Node }> = [];\n anchoredIn(before.contents, [], names, found);\n const kept: KeptAlias[] = [];\n for (const { path, node } of found) {\n const slot = slotAt(after, path);\n if (!slot) {continue;}\n const anchor = (node as Trivia).anchor as string;\n const same = isNode(slot.node) && (slot.node as Trivia).anchor === anchor && sameJs(node.toJS(before), (slot.node as Node).toJS(after));\n if (same || !slot.put(node.clone() as Node)) {continue;}\n kept.push({ path: path.join('.'), alias: `&${anchor}`, kind: 'anchor' });\n }\n return kept;\n}\n\n/** Index pairs [i, j] of a longest common subsequence of `a` and `b`. */\nfunction commonItems(a: readonly unknown[], b: readonly unknown[]): Array<[number, number]> {\n const n = a.length;\n const m = b.length;\n const len: number[][] = Array.from({ length: n + 1 }, () => new Array<number>(m + 1).fill(0));\n for (let i = n - 1; i >= 0; i--) {\n for (let j = m - 1; j >= 0; j--) {\n len[i][j] = sameJs(a[i], b[j]) ? len[i + 1][j + 1] + 1 : Math.max(len[i + 1][j], len[i][j + 1]);\n }\n }\n const pairs: Array<[number, number]> = [];\n for (let i = 0, j = 0; i < n && j < m;) {\n if (sameJs(a[i], b[j])) {\n pairs.push([i, j]);\n i++;\n j++;\n } else if (len[i + 1][j] >= len[i][j + 1]) {\n i++;\n } else {\n j++;\n }\n }\n return pairs;\n}\n\n/** Make `seq` hold `data`. Items that are still there are kept as they are\n * (so removing or adding one item touches only that item); between them,\n * items are changed in place, then removed or added. */\nfunction applySeqData(doc: Document, seq: YAMLSeq, data: unknown[], opts: ApplyOptions): void {\n const old = seq.items;\n const oldJs = old.map(item => nodeJs(doc, item));\n const items: unknown[] = [];\n let i = 0;\n let j = 0;\n for (const [mi, mj] of [...commonItems(oldJs, data), [old.length, data.length] as [number, number]]) {\n for (; i < mi && j < mj; i++, j++) {items.push(applyValue(doc, old[i], data[j], opts));}\n for (; j < mj; j++) {items.push(doc.createNode(data[j]));}\n if (mi < old.length) {items.push(old[mi]);}\n i = mi + 1;\n j = mj + 1;\n }\n seq.items = items;\n}\n\n/**\n * Apply the change from `before` to `after` to `node`, touching nothing the\n * change does not name: for mappings, only keys added, removed or changed\n * between the two are written — a key in the file that neither side mentions\n * stays as it is. Returns the node to store.\n */\nexport function applyChange(doc: Document, node: unknown, before: unknown, after: unknown): unknown {\n if (sameJs(before, after)) {return node;}\n if (!isMapping(before) || !isMapping(after) || !isMap(node)) {return applyValue(doc, node, after);}\n const gone = new Set(Object.keys(before).filter(key => !(key in after) || after[key] === undefined));\n node.items = node.items.filter(p => {\n const key = keyText(p);\n return key === undefined || !gone.has(key);\n });\n for (const [key, value] of Object.entries(after)) {\n if (value === undefined) {continue;}\n const pair = findPair(node, key);\n if (!pair) {\n node.items.push(doc.createPair(key, value));\n } else if (!sameJs(before[key], value)) {\n pair.value = applyChange(doc, pair.value, before[key], value);\n }\n }\n return node;\n}\n\n/** The mapping at `path` (created when absent or empty). Throws when something\n * else is there — faf never replaces a scalar or a list to make room. */\nexport function mapAt(doc: Document, path: readonly string[], name: string): YAMLMap {\n let cur: unknown = doc.contents;\n if (cur === null || cur === undefined) {\n doc.contents = new YAMLMap();\n cur = doc.contents;\n }\n if (!isMap(cur)) {throw new Error(`${name}: the document is not a mapping — faf left it unchanged.`);}\n let map: YAMLMap = cur;\n for (const key of path) {\n const pair = findPair(map, key);\n if (pair && isMap(pair.value)) {\n map = pair.value;\n continue;\n }\n if (pair && !isEmptyValue(pair.value)) {throw new Error(`${name}: ${key} is not a mapping — faf left it unchanged.`);}\n const created = new YAMLMap();\n if (pair) {pair.value = filling(pair.value, created);} else {map.items.push(doc.createPair(key, created));}\n map = created;\n }\n return map;\n}\n\n/**\n * Apply the change `before` → `after` at `path` (see {@link applyChange}).\n * The parent mapping is created when absent; `after === undefined` removes the\n * key. Nothing is touched when the two are equal.\n */\nexport function changeAt(doc: Document, path: readonly string[], before: unknown, after: unknown, name: string): void {\n if (sameJs(before, after)) {return;}\n const parent = mapAt(doc, path.slice(0, -1), name);\n const key = path[path.length - 1];\n const pair = findPair(parent, key);\n if (after === undefined) {\n parent.items = parent.items.filter(p => p !== pair);\n } else if (!pair) {\n parent.items.push(doc.createPair(key, after));\n } else {\n pair.value = applyChange(doc, pair.value, before, after);\n }\n}\n\n/** The list at `path`, created (as an empty list) when absent or empty.\n * Throws when something else is there. */\nexport function seqAt(doc: Document, path: readonly string[], name: string): YAMLSeq {\n const parent = mapAt(doc, path.slice(0, -1), name);\n const key = path[path.length - 1];\n const pair = findPair(parent, key);\n if (pair && isSeq(pair.value)) {return pair.value;}\n if (pair && !isEmptyValue(pair.value)) {throw new Error(`${name}: ${path.join('.')} is not a list — faf left it unchanged.`);}\n const seq = new YAMLSeq();\n if (pair) {pair.value = filling(pair.value, seq);} else {parent.items.push(doc.createPair(key, seq));}\n return seq;\n}\n\n/** `created` taking the place of an empty value (`facts: # note`) that entries\n * are about to fill: the empty value's comment becomes a comment line above\n * those entries, so it is not lost. */\nfunction filling<T extends YAMLMap | YAMLSeq>(empty: unknown, created: T): T {\n if (!isScalar(empty)) {return created;}\n const lines = [empty.commentBefore, empty.comment].filter(present);\n if (lines.length > 0) {created.commentBefore = lines.join('\\n');}\n return created;\n}\n\n/** `key:` with nothing after it (or `~` / `null`). */\nfunction isEmptyValue(value: unknown): boolean {\n if (value === null || value === undefined) {return true;}\n return isScalar(value) && (value.value === null || value.value === undefined);\n}\n\n",
155
155
  "/**\n * Where .faf data came from: the file readFaf read it from (its real path) and\n * the text it read. writeFaf checks a write of that data against it — when the\n * file changed on disk after the read, the write is refused instead of being\n * made over the newer edit. Kept apart from interop/faf.ts so the pure parts\n * of detection (updateExistingFaf) can carry it without importing a module\n * that runs git.\n */\n\n/** The file a data object was read from, and the text read. */\nexport interface FafSource {\n real: string;\n text: string;\n}\n\nconst sources = new WeakMap<object, FafSource>();\n\n/** The source recorded for `data`, if any. */\nexport function fafSourceOf(data: unknown): FafSource | undefined {\n return typeof data === 'object' && data !== null ? sources.get(data) : undefined;\n}\n\n/** Record that `data` holds what `source.text` (read from `source.real`) says. */\nexport function setFafSource(data: object, source: FafSource): void {\n sources.set(data, source);\n}\n\n/** Let `to` — data made from `from` (a copy with empty slots filled, say) —\n * carry the file `from` was read from. Returns `to`. */\nexport function carryFafSource<T extends object>(from: unknown, to: T): T {\n const source = fafSourceOf(from);\n if (source) {sources.set(to, source);}\n return to;\n}\n\nconst fills = new WeakSet<object>();\n\n/** Mark `data` as a fill of the file it was read from — what `faf auto`\n * (updateExistingFaf) makes: detected values in the file's empty slots.\n * writeFaf leaves a node with an anchor that an alias reads as written in\n * such data, since filling it would change every alias. Returns `data`. */\nexport function markAsFill<T extends object>(data: T): T {\n fills.add(data);\n return data;\n}\n\n/** True when `data` was marked with {@link markAsFill}. */\nexport function isFill(data: unknown): boolean {\n return typeof data === 'object' && data !== null && fills.has(data);\n}\n",
156
156
  "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",
@@ -161,9 +161,9 @@
161
161
  "import type { ScoreResult, SlotState } from '../core/types.js';\nimport { tierBadge } from '../core/tiers.js';\nimport { bold, dim, fafCyan, orange } from './colors.js';\nimport { maybeStarNudge } from './star-nudge.js';\n\n/** Display a score result to stdout. `notes` are printed, one per line,\n * right under the score (the typed-none lines of `faf score` / `faf auto`). */\nexport function displayScore(result: ScoreResult, file: string, verbose = false, notes: readonly string[] = []): void {\n if (result.unknown) {\n // An About Repo with no source_score: there is no score to show, so no\n // number, no percentage and no tier — just what is and isn't known.\n const about = result.represents ? `about-repo for ${result.represents}` : 'about-repo';\n console.log(`${dim('—')} ${bold('unknown')} ${dim(`${about} — no about.source_score`)} ${dim('—')} ${file}`);\n return;\n }\n const badge = tierBadge(result.tier);\n const pct = bold(`${result.score}%`);\n console.log(`${badge} ${pct} ${dim(`${result.populated}/${result.active} slots`)} ${dim('—')} ${file}`);\n\n // Trophy = the only recommended state (v6.6.0+). Celebrate explicitly so the\n // user sees Trophy as the destination, not just a tier. Per\n // memory/trophy-is-the-target.md: 100% on the FCL is what makes the layers\n // above (MD instructions, Agents, AI tooling) work — sub-Trophy degrades them.\n if (result.tier.name === 'TROPHY') {\n console.log(dim(' Trophy. AI never has to guess.'));\n } else if (result.empty > 0) {\n // Sub-Trophy is an interim state on the way to Trophy, not an endpoint.\n // Frame the gap as \"N slots from Trophy\" so the next move is obvious.\n const emptyPaths = Object.entries(result.slots)\n .filter(([, state]) => state === 'empty')\n .map(([path]) => path);\n const preview = emptyPaths.slice(0, 3).join(', ');\n const suffix = emptyPaths.length > 3 ? `, +${emptyPaths.length - 3} more` : '';\n const noun = result.empty === 1 ? 'slot' : 'slots';\n console.log(dim(` ${result.empty} ${noun} from Trophy: ${preview}${suffix}`));\n }\n printNotes(notes);\n\n if (verbose) {\n console.log('');\n displaySlotBreakdown(result);\n }\n\n // Capture the reservoir: a quiet star ask after a genuine win (gated in star-nudge.ts).\n maybeStarNudge(result.score);\n}\n\n/** One dim, indented line per note. */\nfunction printNotes(notes: readonly string[]): void {\n for (const note of notes) {console.log(dim(` ${note}`));}\n}\n\n/** Display individual slot states */\nfunction displaySlotBreakdown(result: ScoreResult): void {\n for (const [path, state] of Object.entries(result.slots)) {\n const icon = state === 'populated' ? fafCyan('●')\n : state === 'slotignored' ? dim('—')\n : dim('○');\n console.log(` ${icon} ${state === 'slotignored' ? dim(`${path}: slotignored`) : path}`);\n }\n}\n\n/** Display the FAF header/banner */\nexport function displayHeader(): void {\n console.log(fafCyan(bold('faf')) + dim(' — Foundational AI-Context Format'));\n}\n",
162
162
  "import { existsSync, readFileSync } from 'fs';\nimport { join } from 'path';\nimport { homedir } from 'os';\nimport { dim, orange } from './colors.js';\nimport { makeDirInside, safeReplaceOwned } from '../core/safe-write.js';\n\n/**\n * The star-nudge — capture the reservoir. A CLI has orders of magnitude more\n * users than stars because users never see the repo page; a single quiet ask\n * after a genuine win converts a slice of that usage into the signal ~3 of 4\n * developers check before adopting a project (Borges & Valente, JSS 2018).\n *\n * Discipline (gravity, not spam): only on a real win, only interactively, NEVER\n * in CI (most installs are build machines), throttled to once per 30 days, and\n * CAPPED at a handful of showings for a user's whole life. A local CLI cannot\n * know whether you already starred — that needs YOUR GitHub token — so rather\n * than probe your account, it simply stops asking after MAX_SHOWS. Silence it\n * any time with FAF_NO_NUDGE.\n */\nconst WIN_SCORE = 95; // Silver+ — a genuine \"your context is excellent\" moment\nconst THROTTLE_DAYS = 30;\nconst MAX_SHOWS = 3; // lifetime cap — retire the nudge after this many, starred or not\nconst STATE_DIR = join(homedir(), '.config', 'faf');\nconst STATE_FILE = join(STATE_DIR, 'star-nudge');\nconst REPO = 'github.com/Wolfe-Jam/faf-cli';\n\nexport interface NudgeContext {\n score: number;\n isTTY: boolean;\n isCI: boolean;\n optedOut: boolean;\n shownCount: number;\n lastShownMs: number | null;\n nowMs: number;\n throttleDays?: number;\n maxShows?: number;\n}\n\n/**\n * Pure decision — show only on a genuine win, interactively, never in CI/opted\n * out, not past the lifetime cap, and not within the throttle window. Kept pure\n * so every gate is unit-testable without the filesystem, the clock, or the TTY.\n */\nexport function shouldNudge(c: NudgeContext): boolean {\n if (c.score < WIN_SCORE) {return false;} // only a real win earns the ask\n if (!c.isTTY) {return false;} // never when piped/redirected\n if (c.isCI || c.optedOut) {return false;} // never in CI; honour opt-out\n if (c.shownCount >= (c.maxShows ?? MAX_SHOWS)) {return false;} // retired — never nag forever\n if (c.lastShownMs !== null && c.lastShownMs !== undefined) {\n const windowMs = (c.throttleDays ?? THROTTLE_DAYS) * 86_400_000;\n if (c.nowMs - c.lastShownMs < windowMs) {return false;} // throttled\n }\n return true;\n}\n\ninterface NudgeState {\n shown: number;\n lastShownMs: number | null;\n}\n\nfunction readState(): NudgeState {\n try {\n if (!existsSync(STATE_FILE)) {return { shown: 0, lastShownMs: null };}\n const raw = readFileSync(STATE_FILE, 'utf-8').trim();\n if (raw.startsWith('{')) {\n const j = JSON.parse(raw) as { shown?: number; last?: string };\n const ms = j.last ? Date.parse(j.last) : NaN;\n return {\n shown: Number.isFinite(j.shown as number) ? Number(j.shown) : 0,\n lastShownMs: Number.isFinite(ms) ? ms : null,\n };\n }\n // Back-compat: the first release wrote a plain ISO string — count it as one showing.\n const ms = Date.parse(raw);\n return { shown: 1, lastShownMs: Number.isFinite(ms) ? ms : null };\n } catch {\n return { shown: 0, lastShownMs: null }; // a read error must never block scoring\n }\n}\n\n/** True when `bytes` are the nudge state faf keeps: `{\"shown\":N,\"last\":\"…\"}`,\n * or the first release's plain ISO date. Any other file is left as it is. */\nfunction isNudgeState(bytes: Uint8Array): boolean {\n const raw = new TextDecoder().decode(bytes).trim();\n try {\n const j = JSON.parse(raw) as Record<string, unknown>;\n return typeof j === 'object' && j !== null && Object.keys(j).every(k => k === 'shown' || k === 'last');\n } catch {\n return /^\\d{4}-\\d{2}-\\d{2}T[\\d:.]+Z$/.test(raw);\n }\n}\n\nfunction record(prevShown: number, nowMs: number): void {\n try {\n makeDirInside(STATE_DIR);\n // Atomic, never through a link out of faf's own config folder, and only\n // over a nudge state faf wrote.\n safeReplaceOwned(STATE_FILE, JSON.stringify({ shown: prevShown + 1, last: new Date(nowMs).toISOString() }), {\n root: STATE_DIR,\n owns: isNudgeState,\n mark: 'faf star-nudge state',\n });\n } catch {\n /* a nudge must never fail a command */\n }\n}\n\n/** Emit the one-line star nudge if all gates pass, then record it. Side-effecting wrapper over shouldNudge. */\nexport function maybeStarNudge(score: number): void {\n const nowMs = Date.now();\n const state = readState();\n const show = shouldNudge({\n score,\n isTTY: Boolean(process.stdout.isTTY),\n isCI: Boolean(process.env.CI),\n optedOut: Boolean(process.env.FAF_NO_NUDGE),\n shownCount: state.shown,\n lastShownMs: state.lastShownMs,\n nowMs,\n });\n if (!show) {return;}\n console.log('');\n console.log(` ${orange('★')} ${dim('Enjoying faf-cli? A star helps others find it:')} ${REPO}`);\n record(state.shown, nowMs);\n}\n",
163
163
  "import { findFafFile, readFafRaw, readFaf, readFafFromString, withKernel } from '../interop/faf.js';\nimport { scoreFafYaml, scoreText } from '../core/scorer.js';\nimport { typedNoneHints } from '../core/typed-none.js';\nimport { displayScore } from '../ui/display.js';\nimport { tierBadge } from '../core/tiers.js';\nimport { bold } from '../ui/colors.js';\n\nexport interface ScoreOptions {\n verbose?: boolean;\n status?: boolean;\n json?: boolean;\n}\n\nexport function scoreCommand(file?: string, options: ScoreOptions = {}): void {\n const fafPath = file ?? findFafFile();\n if (!fafPath) {\n console.error(\"Error: project.faf not found\\n\\n Run 'faf init' to create one.\");\n process.exit(2);\n }\n\n const yaml = readFafRaw(fafPath);\n // Parsed first, as every .faf reader does: text that is not valid YAML, or\n // that is a scalar or a list, is the one-line refusal — never the kernel's\n // parse error, never a 0% score. What the kernel itself cannot read is one\n // line too (withKernel).\n readFafFromString(yaml, fafPath);\n // scoreFafYaml short-circuits on about.represents — see core/scorer.ts.\n // About is a repo role, not an app_type.\n const result = withKernel(fafPath, () => scoreFafYaml(yaml));\n\n if (options.json) {\n // The score snapshot — folded in from the former `faf taf`. The scorer\n // result plus self-describing metadata (project/source/faf_version).\n // Deterministic by design: no timestamp, so the same .faf emits the same JSON.\n const data = readFaf(fafPath);\n const snapshot = {\n faf_version: data.faf_version ?? 'unknown',\n project: data.project?.name ?? 'unknown',\n source: fafPath,\n ...result,\n };\n console.log(JSON.stringify(snapshot, null, 2));\n return;\n }\n\n if (options.status) {\n // Compact one-liner for CI/scripts. An unknown score has no tier to show.\n console.log(result.unknown ? `— ${bold(scoreText(result))}` : `${tierBadge(result.tier)} ${bold(scoreText(result))}`);\n return;\n }\n\n // Typed words in a slot — None, N/A, unknown — count as empty: say so\n // under the score, one line per slot (a slot the app-type leaves out: faf\n // auto marks it slotignored). Nothing is written.\n displayScore(result, fafPath, options.verbose, typedNoneHints(yaml, result));\n}\n",
164
- "import { existsSync } from 'fs';\nimport { join } from 'path';\nimport { assembleFreshFaf } from '../detect/assemble.js';\nimport { writeFaf, readFafRaw, withKernel } from '../interop/faf.js';\nimport { scoreFafYaml } from '../core/scorer.js';\nimport { FafDNAManager } from '../core/faf-dna.js';\nimport { displayScore } from '../ui/display.js';\nimport { bold, dim, fafCyan } from '../ui/colors.js';\nimport { assertProjectCwd } from '../core/cwd-guard.js';\nimport { refuseMissingOutputFolder } from '../core/refusal.js';\n\nexport interface InitOptions {\n yolo?: boolean;\n quick?: boolean;\n force?: boolean;\n output?: string;\n}\n\nexport function initCommand(options: InitOptions = {}): void {\n assertProjectCwd(process.cwd(), 'faf init');\n const dir = process.cwd();\n const outputPath = options.output\n ? (options.output.endsWith('.faf') ? options.output : join(dir, options.output))\n : join(dir, 'project.faf');\n\n if (existsSync(outputPath) && !options.force) {\n console.error(`project.faf already exists. Use ${bold('--force')} to overwrite.`);\n process.exit(1);\n }\n // An --output folder that is not there is one line: faf does not create it.\n refuseMissingOutputFolder(options.output);\n\n // Full slot-filling pipeline (shared with `faf auto` + `faf git`).\n const data = assembleFreshFaf(dir);\n // --force is the explicit overwrite: a fresh file, not an update of the old one.\n writeFaf(outputPath, data, { replace: options.force === true });\n\n const yaml = readFafRaw(outputPath);\n const result = withKernel(outputPath, () => scoreFafYaml(yaml));\n\n // Birth DNA — the first heartbeat. Records the honest first score (even 0%)\n // in a separate .faf-dna lineage file (keeps the .faf itself clean).\n const dna = new FafDNAManager(dir);\n if (!dna.exists() || options.force) {\n dna.birth(result.score);\n }\n\n console.log(`${fafCyan('created')} ${outputPath}`);\n displayScore(result, outputPath);\n console.log(dim(` 🧬 Birth DNA ${result.score}% — your journey starts here (faf dna)`));\n\n if (result.score < 100) {\n console.log(dim(`\\n run ${bold(\"'faf go'\")} to fill empty slots`));\n }\n offerBusinessCard(dir, result.score < 100);\n}\n\n/** The business card is the step after project.faf, offered only to a repo\n * that has none yet. It writes nothing. */\nfunction offerBusinessCard(dir: string, afterHint: boolean): void {\n if (hasBusinessCard(dir)) {return;}\n console.log(dim(`${afterHint ? '' : '\\n'} next: ${bold(\"'faf card init'\")} — your repo's business card`));\n}\n\n/** True when the project already has a .fafa: agent.fafa, .fafa or .well-known/fafa. */\nfunction hasBusinessCard(dir: string): boolean {\n return [['agent.fafa'], ['.fafa'], ['.well-known', 'fafa']].some((p) => existsSync(join(dir, ...p)));\n}\n",
164
+ "import { existsSync } from 'fs';\nimport { join } from 'path';\nimport { assembleFreshFaf } from '../detect/assemble.js';\nimport { writeFaf, readFafRaw, withKernel } from '../interop/faf.js';\nimport { scoreFafYaml } from '../core/scorer.js';\nimport { FafDNAManager } from '../core/faf-dna.js';\nimport { dnaGitignoreWarning } from '../core/dna-gitignore.js';\nimport { displayScore } from '../ui/display.js';\nimport { bold, dim, fafCyan } from '../ui/colors.js';\nimport { assertProjectCwd } from '../core/cwd-guard.js';\nimport { refuseMissingOutputFolder } from '../core/refusal.js';\n\nexport interface InitOptions {\n yolo?: boolean;\n quick?: boolean;\n force?: boolean;\n new?: boolean;\n output?: string;\n}\n\nexport function initCommand(options: InitOptions = {}): void {\n assertProjectCwd(process.cwd(), 'faf init');\n const dir = process.cwd();\n const outputPath = options.output\n ? (options.output.endsWith('.faf') ? options.output : join(dir, options.output))\n : join(dir, 'project.faf');\n\n if (options.new && options.force) {\n console.error(`Pick one: ${bold('--new')} keeps .faf-dna, ${bold('--force')} starts a new birth.`);\n process.exit(1);\n }\n const replace = options.force === true || options.new === true;\n if (existsSync(outputPath) && !replace) {\n console.error(`project.faf already exists. Use ${bold('--new')} for a fresh one; .faf-dna is kept as it is.`);\n process.exit(1);\n }\n // An --output folder that is not there is one line: faf does not create it.\n refuseMissingOutputFolder(options.output);\n\n // Full slot-filling pipeline (shared with `faf auto` + `faf git`).\n const data = assembleFreshFaf(dir);\n // --new and --force are the explicit overwrite: a fresh file, not an update of the old one.\n writeFaf(outputPath, data, { replace });\n\n const yaml = readFafRaw(outputPath);\n const result = withKernel(outputPath, () => scoreFafYaml(yaml));\n\n // Birth DNA — the first heartbeat. Records the honest first score (even 0%)\n // in a separate .faf-dna lineage file (keeps the .faf itself clean).\n // A .faf-dna that is there is the birth certificate, which cannot be\n // recreated: only --force starts a new birth. --new never touches it.\n const dna = new FafDNAManager(dir);\n const born = !dna.exists() || options.force === true;\n if (born) {\n dna.birth(result.score);\n }\n\n console.log(`${fafCyan('created')} ${outputPath}`);\n displayScore(result, outputPath);\n console.log(dim(born\n ? ` 🧬 Birth DNA ${result.score}% — your journey starts here (faf dna)`\n : ' 🧬 .faf-dna kept as it is — your birth certificate (faf dna)'));\n const ignored = dnaGitignoreWarning(dir);\n if (ignored) {console.error(`faf: ${ignored}`);}\n\n if (result.score < 100) {\n console.log(dim(`\\n run ${bold(\"'faf go'\")} to fill empty slots`));\n }\n offerBusinessCard(dir, result.score < 100);\n}\n\n/** The business card is the step after project.faf, offered only to a repo\n * that has none yet. It writes nothing. */\nfunction offerBusinessCard(dir: string, afterHint: boolean): void {\n if (hasBusinessCard(dir)) {return;}\n console.log(dim(`${afterHint ? '' : '\\n'} next: ${bold(\"'faf card init'\")} — your repo's business card`));\n}\n\n/** True when the project already has a .fafa: agent.fafa, .fafa or .well-known/fafa. */\nfunction hasBusinessCard(dir: string): boolean {\n return [['agent.fafa'], ['.fafa'], ['.well-known', 'fafa']].some((p) => existsSync(join(dir, ...p)));\n}\n",
165
165
  "/**\n * The `.faf` format series a freshly written file is stamped with — the single\n * source of truth for `faf_version`.\n *\n * Everything that authors a new `.faf` (detect, conductor) and the\n * `migrate` target reads it from here, so the version can never drift file-to-\n * file again. (That drift is exactly what left those paths stranded on the old\n * `2.5.0` while the ecosystem moved to the `3.0` series.)\n */\nexport const FAF_VERSION = '3.0';\n",
166
- "import { join } from 'path';\nimport { readRepoDir, readRepoFile, repoExists, withRepoRoot } from '../core/safe-write.js';\nimport type { DetectedFramework, Signal } from '../core/types.js';\nimport { NO_CLASSIFYING_SIGNALS } from '../core/slots.js';\nimport { FRAMEWORKS } from './frameworks.js';\nimport { detectDartProject } from './dart.js';\nimport { detectGoProject } from './go.js';\nimport { detectCsharpProject, listRootCsprojs } from './csharp.js';\nimport { detectJvmProject, isJvmRoot } from './jvm.js';\nimport { detectRubyProject } from './ruby.js';\nimport { detectSwiftProject } from './swift.js';\n\ninterface PackageJson {\n name?: string;\n version?: string;\n description?: string;\n keywords?: string[];\n dependencies?: Record<string, string>;\n devDependencies?: Record<string, string>;\n scripts?: Record<string, string>;\n type?: string;\n main?: string;\n types?: string;\n exports?: unknown;\n bin?: string | Record<string, string>;\n private?: boolean;\n workspaces?: string[] | { packages?: string[] };\n files?: string[];\n}\n\n/** Read [package].name field from Cargo.toml — naive but adequate. */\nfunction readCargoName(dir: string): string | null {\n const content = readRepoFile(dir, 'Cargo.toml');\n if (content === null) {return null;}\n const m = content.match(/^\\s*\\[package\\][\\s\\S]*?^\\s*name\\s*=\\s*\"([^\"]+)\"/m);\n return m ? m[1] : null;\n}\n\n/** True if Cargo.toml declares one or more `[[bin]]` sections — Rust cli marker. */\nfunction hasCargoBin(dir: string): boolean {\n const content = readRepoFile(dir, 'Cargo.toml');\n return content !== null && /^\\s*\\[\\[bin\\]\\]/m.test(content);\n}\n\n/** Detect SDK signals — keyword-based per the SDK-priority doctrine.\n * Returns the matched evidence string, or null if no SDK signal. */\nfunction detectSdkSignal(dir: string, pkg: PackageJson | null): string | null {\n // pkg.keywords contains 'sdk'\n if (pkg?.keywords?.some(k => /^sdk(?:\\s|-|$)|-sdk$/i.test(k))) {\n return 'package.json keywords contains \"sdk\"';\n }\n // pkg.name contains 'sdk' or '-sdk' suffix\n if (pkg?.name && /(?:^|[-_/])sdk(?:[-_/]|$)/i.test(pkg.name)) {\n return `package.json name \"${pkg.name}\" → sdk`;\n }\n // Cargo.toml [package].name contains 'sdk'\n const cargoName = readCargoName(dir);\n if (cargoName && /(?:^|[-_])sdk(?:[-_]|$)/i.test(cargoName)) {\n return `Cargo.toml name \"${cargoName}\" → sdk`;\n }\n return null;\n}\n\n/** Browser / Chrome extension signal — a manifest.json that declares\n * `manifest_version` (the defining MV2/MV3 trait, absent from PWA web-app\n * manifests). Checked at the repo root and common source/build locations,\n * since extensions often keep the manifest under public/ or src/. */\nfunction detectExtensionSignal(dir: string): string | null {\n const candidates = [\n 'manifest.json',\n 'public/manifest.json',\n 'src/manifest.json',\n 'app/manifest.json',\n 'extension/manifest.json',\n 'dist/manifest.json',\n ];\n for (const rel of candidates) {\n const text = readRepoFile(dir, rel);\n if (text === null) {continue;}\n try {\n const parsed = JSON.parse(text) as { manifest_version?: unknown };\n if (typeof parsed.manifest_version === 'number') {\n return `${rel} manifest_version ${parsed.manifest_version} (browser extension)`;\n }\n } catch { /* not valid JSON / unreadable — keep scanning */ }\n }\n return null;\n}\n\n/** Python data-science dependency detection (pyproject.toml + requirements.txt). */\nfunction detectDataScienceSignal(dir: string): string | null {\n const dsPatterns = /(numpy|pandas|jupyter|scikit-learn|sklearn|pytorch|tensorflow|matplotlib|scipy)/i;\n const pyproject = readRepoFile(dir, 'pyproject.toml');\n if (pyproject !== null) {\n const match = pyproject.match(dsPatterns);\n if (match) {return `pyproject.toml depends on ${match[1]}`;}\n }\n const reqs = readRepoFile(dir, 'requirements.txt');\n if (reqs !== null) {\n const match = reqs.match(dsPatterns);\n if (match) {return `requirements.txt contains ${match[1]}`;}\n }\n return null;\n}\n\n/** Mobile platform signal — JS mobile (React Native / Expo / Capacitor / Ionic)\n * + native ios/android dirs. Flutter/Dart is handled by detectDartProject. */\nfunction detectMobileSignal(dir: string, pkg: PackageJson | null): string | null {\n const mobileDeps = ['react-native', 'expo', '@capacitor/core', '@ionic/core'];\n if (pkg) {\n for (const dep of mobileDeps) {\n if (pkg.dependencies?.[dep] || pkg.devDependencies?.[dep]) {\n return `${dep} dependency`;\n }\n }\n }\n if (repoExists(dir, 'ios') && repoExists(dir, 'android')) {\n return 'ios/ + android/ dirs';\n }\n return null;\n}\n\n/** WASM target detection (Cargo cdylib + wasm32 OR build.zig wasm OR pkg WASM build scripts). */\nfunction detectWasmSignal(dir: string, pkg: PackageJson | null): string | null {\n const cargo = readRepoFile(dir, 'Cargo.toml');\n if (cargo !== null) {\n // crate-type = [\"cdylib\"] is the canonical wasm-output marker\n if (/crate-type\\s*=\\s*\\[[^\\]]*\"cdylib\"/.test(cargo)) {\n return 'Cargo.toml crate-type = [\"cdylib\"]';\n }\n // wasm-bindgen / wasm-pack as deps\n if (/wasm-bindgen|wasm-pack/i.test(cargo)) {\n return 'Cargo.toml wasm-bindgen/wasm-pack';\n }\n }\n // Zig WASM target — build.zig with .wasm or wasm in script\n const buildZig = readRepoFile(dir, 'build.zig');\n if (buildZig !== null && /\\.wasm\\b|wasm32|setOutputFormat\\(\\.wasm/i.test(buildZig)) {\n return 'build.zig wasm target';\n }\n // pkg keywords contains 'wasm' AND no app frameworks\n if (pkg?.keywords?.some(k => /^wasm(?:-|$)|webassembly/i.test(k))) {\n return 'package.json keywords contains \"wasm\"';\n }\n return null;\n}\n\n/** Bare HTML / vanilla site detection. */\nfunction detectHtmlSignal(dir: string, pkg: PackageJson | null): string | null {\n // Must have index.html at root\n if (!repoExists(dir, 'index.html')) {return null;}\n // Must NOT have any frontend deps (those would classify as frontend/website/etc)\n if (pkg?.dependencies || pkg?.devDependencies) {\n const allDeps = { ...(pkg.dependencies ?? {}), ...(pkg.devDependencies ?? {}) };\n const frontendDeps = ['react', 'vue', 'svelte', '@sveltejs/kit', 'next', 'nuxt', 'astro', 'gatsby', 'solid-js', 'qwik'];\n if (frontendDeps.some(d => allDeps[d])) {return null;}\n }\n return 'index.html (vanilla, no frontend framework)';\n}\n\n/** Documentation / spec-only repo signal. */\nfunction detectDocumentationSignal(dir: string, pkg: PackageJson | null): string | null {\n // Strong signal: name or keywords contains 'specification'\n if (pkg?.name && /specification|^@.*\\/spec/i.test(pkg.name)) {\n return `package name \"${pkg.name}\" → documentation`;\n }\n if (pkg?.keywords?.some(k => /^(specification|format-spec|standard)$/i.test(k))) {\n return 'package keywords contains \"specification\"';\n }\n // A publishable CLI/bin package is never \"docs-only\" — even if `files` is\n // npm-publish-narrow (e.g. [\"dist\", \"README.md\"]). Bare `dist`/`src`/`bin`\n // without a trailing slash is still source, not documentation.\n // (agents-md-facts false positive: bin present + files:[\"dist\",\"README.md\",\"LICENSE\"]\n // classified as documentation before the cli check could run.)\n if (pkg?.bin) {\n return null;\n }\n // pkg.files contains only md / examples / assets (no dist/, no src/)\n if (pkg?.files && pkg.files.length > 0) {\n // Match \"dist\", \"dist/\", \"src/cli.ts\", \"*.js\", etc. — bare publish dirs count as source\n const sourcePatterns =\n /^(dist|src|lib|build|bin)(\\/|$)|\\/(dist|src|lib|build|bin)(\\/|$)|(\\.|\\/)(js|ts|tsx|jsx|mjs|cjs|py|rs|go)$/;\n const hasSource = pkg.files.some(f => sourcePatterns.test(f));\n const hasDocs = pkg.files.some(f => /\\.(md|MD)$|examples?\\//.test(f) || f === 'README.md' || f === 'docs' || f === 'docs/');\n if (!hasSource && hasDocs) {\n return 'package.json files = docs/examples only (no source)';\n }\n }\n return null;\n}\n\n/** Marketing / website signal — Astro/Gatsby static OR pkg keywords. */\nfunction detectWebsiteSignal(dir: string, pkg: PackageJson | null, frameworks: DetectedFramework[]): string | null {\n // Astro/Gatsby are typically used for content/marketing sites\n const astroOrGatsby = frameworks.find(f => f.slug === 'astro' || f.slug === 'gatsby');\n if (astroOrGatsby) {return `${astroOrGatsby.name} (static-site framework)`;}\n // pkg.keywords explicitly marketing\n if (pkg?.keywords?.some(k => /^(website|marketing|landing|brochure|portfolio)$/i.test(k))) {\n return 'package keywords contains \"website\"/\"marketing\"/\"landing\"';\n }\n return null;\n}\n\n/** SAAS shape — auth + payments + database + dashboard. */\nfunction detectSaasSignal(dir: string, pkg: PackageJson | null): string | null {\n if (!pkg) {return null;}\n const allDeps = { ...(pkg.dependencies ?? {}), ...(pkg.devDependencies ?? {}) };\n const authDeps = ['@clerk/nextjs', '@clerk/clerk-react', 'next-auth', '@auth/core', 'auth0', '@auth0/nextjs-auth0'];\n const paymentDeps = ['stripe', '@stripe/stripe-js', 'lemonsqueezy'];\n const hasAuth = authDeps.some(d => allDeps[d]);\n const hasPayment = paymentDeps.some(d => allDeps[d]);\n if (hasAuth && hasPayment) {\n return 'auth + payment dependencies';\n }\n return null;\n}\n\n/** MCPaaS (post-MCP platform) shape — multiple MCP signals + hosting + DB. */\nfunction detectMcpaasSignal(dir: string, pkg: PackageJson | null, frameworks: DetectedFramework[]): string | null {\n // pkg.keywords contains 'mcpaas' is the strongest signal\n if (pkg?.keywords?.some(k => /mcpaas/i.test(k))) {\n return 'package keywords contains \"mcpaas\"';\n }\n // pkg.name contains 'mcpaas'\n if (pkg?.name && /mcpaas/i.test(pkg.name)) {\n return `package name \"${pkg.name}\" → mcpaas`;\n }\n // Multi-signal: MCP framework + database + hosting (a platform, not a single server)\n const hasMcp = frameworks.some(f => f.slug === 'mcp');\n const hasDb = frameworks.some(f => f.category === 'database');\n if (hasMcp && hasDb && pkg?.dependencies && Object.keys(pkg.dependencies).length > 10) {\n return 'MCP + database + complex deps (platform shape)';\n }\n return null;\n}\n\n/** Monorepo-root — private workspace with multiple packages, no single dominant FW. */\nfunction detectMonorepoRootSignal(dir: string, pkg: PackageJson | null): string | null {\n if (!pkg?.private) {return null;}\n const hasWorkspaces = !!pkg.workspaces || repoExists(dir, 'pnpm-workspace.yaml');\n if (!hasWorkspaces) {return null;}\n return 'private workspace + multi-package';\n}\n\n/** Top-level dirs that never hold an app component. */\nconst SUBDIR_IGNORE = new Set([\n 'node_modules', 'dist', 'build', 'out', 'vendor', 'target', 'coverage',\n 'docs', 'doc', 'e2e', 'tests', 'test', '__tests__', 'scripts', 'deploy',\n 'bin', 'public', 'examples', 'example', 'fixtures', 'assets', 'static',\n 'migrations', 'config', 'contracts', 'proto', 'protos',\n]);\n\nconst BACKEND_LANG_RE = /^(Python|Go|Rust|Ruby|Java|Kotlin)$/;\n\n/** One app component discovered directly under the repo root. */\nexport interface SubdirStack {\n /** basename */\n name: string;\n /** detectLanguage() of the subdir */\n language: string;\n /** highest-confidence real-stack framework in the subdir (never Docker/CI/etc.) */\n topFramework: string | null;\n frontend: boolean;\n backend: boolean;\n /** a real-stack framework (not infra) was detected — ranks it as the \"primary\" */\n hasFramework: boolean;\n /** a \"this dir IS the app\" marker (manage.py / config.ru / bin/rails) */\n appRoot: boolean;\n}\n\n/** Framework categories that describe the app's own stack (not infra/tooling). */\nconst STACK_FW_CATEGORIES = new Set(['frontend', 'backend', 'database', 'css', 'ui', 'state']);\n\n/** A directory carries a real language manifest (not just tooling/config). */\nfunction hasLanguageManifest(d: string): boolean {\n if (\n repoExists(d, 'pyproject.toml') || repoExists(d, 'manage.py') ||\n repoExists(d, 'setup.py') || fileExists(d, 'requirements*.txt')\n ) {return true;}\n if (repoExists(d, 'go.mod')) {return true;}\n if (repoExists(d, 'Cargo.toml')) {return true;}\n if (repoExists(d, 'Gemfile')) {return true;}\n if (repoExists(d, 'pom.xml') || fileExists(d, 'build.gradle*')) {return true;}\n if (listRootCsprojs(d).length > 0) {return true;}\n const pkg = readPackageJson(d);\n if (pkg && Object.keys(pkg.dependencies ?? {}).length > 0) {return true;}\n return false;\n}\n\n/** Shallow (depth-1) scan for per-subdirectory app stacks. Feeds the polyglot\n * classifier + `main_language` aggregation. A dir counts only when it carries a\n * real language manifest. This is NOT monorepo tooling — it only exists to stop\n * a repo whose real stack lives in subdirs from falling to the `library` lie. */\nexport function detectSubdirStacks(dir: string): SubdirStack[] {\n // The project folder bounds every read below it: a subfolder's manifest may\n // link anywhere inside the project, never out of it.\n return withRepoRoot(dir, () => subdirStacks(dir));\n}\n\nfunction subdirStacks(dir: string): SubdirStack[] {\n const entries = readRepoDir(dir) ?? [];\n const out: SubdirStack[] = [];\n for (const e of entries) {\n if (!e.isDirectory() || e.name.startsWith('.') || SUBDIR_IGNORE.has(e.name)) {continue;}\n const sub = join(dir, e.name);\n if (!hasLanguageManifest(sub)) {continue;}\n const language = detectLanguage(sub);\n if (!language) {continue;}\n const fws = detectFrameworks(sub).filter(f => STACK_FW_CATEGORIES.has(f.category));\n const fe = fws.find(f => f.category === 'frontend');\n const be = fws.find(f => f.category === 'backend');\n const top = fe ?? be ?? fws[0] ?? null;\n out.push({\n name: e.name,\n language,\n topFramework: top?.name ?? null,\n frontend: !!fe,\n backend: !!be || BACKEND_LANG_RE.test(language),\n hasFramework: !!top,\n appRoot:\n repoExists(sub, 'manage.py') ||\n repoExists(sub, 'config.ru') ||\n repoExists(sub, 'bin/rails') ||\n repoExists(sub, 'artisan'),\n });\n }\n return out;\n}\n\n/** Polyglot signal — ≥2 sibling app dirs, ≥2 distinct languages, a frontend AND\n * a backend among them. Returns the `# found:` evidence string, or null. */\nexport function detectPolyglotSignal(dir: string, pkg: PackageJson | null): string | null {\n if (pkg?.workspaces || repoExists(dir, 'pnpm-workspace.yaml')) {return null;}\n const subs = detectSubdirStacks(dir);\n const langs = new Set(subs.map(s => s.language));\n if (subs.length < 2 || langs.size < 2) {return null;}\n if (!subs.some(s => s.frontend) || !subs.some(s => s.backend)) {return null;}\n return `polyglot: ${subs.map(s => `${s.name}/ (${s.language})`).join(', ')}`;\n}\n\n/** Aggregate the polyglot `main_language` string — primary first (a framework-\n * bearing backend dir wins), deduped by language, roles annotated.\n * e.g. \"Python (Django · backend); JavaScript (React · frontend); Go (service)\" */\nexport function detectPolyglotLanguage(dir: string): string | null {\n const subs = detectSubdirStacks(dir);\n if (subs.length < 2) {return null;}\n const score = (s: SubdirStack): number =>\n (s.appRoot ? 2 : 0) +\n (BACKEND_LANG_RE.test(s.language) ? 2 : 0) +\n (s.hasFramework ? 1 : 0) +\n (s.frontend ? 0.5 : 0);\n const ranked = [...subs].sort((a, b) => score(b) - score(a));\n const seen = new Set<string>();\n const parts: string[] = [];\n for (const s of ranked) {\n if (seen.has(s.language)) {continue;}\n seen.add(s.language);\n const role = s.frontend ? 'frontend' : s.backend ? 'backend' : 'service';\n parts.push(s.topFramework ? `${s.language} (${s.topFramework} · ${role})` : `${s.language} (${role})`);\n }\n return parts.join('; ');\n}\n\n/** Read and parse package.json from a directory */\nexport function readPackageJson(dir: string): PackageJson | null {\n const text = readRepoFile(dir, 'package.json');\n if (text === null) {return null;}\n try {\n return JSON.parse(text);\n } catch {\n return null;\n }\n}\n\n/** Scan a directory for files matching patterns */\nfunction fileExists(dir: string, pattern: string): boolean {\n // Handle simple file checks\n if (!pattern.includes('*')) {\n return repoExists(dir, pattern);\n }\n\n // Handle glob patterns like \"next.config.*\" or \".github/workflows/*.yml\"\n const parts = pattern.split('/');\n if (parts.length === 1) {\n // Simple wildcard: \"next.config.*\"\n const prefix = pattern.split('*')[0];\n return (readRepoDir(dir) ?? []).some(e => e.name.startsWith(prefix));\n }\n\n // Multi-level: \".github/workflows/*.yml\"\n const subdir = join(...parts.slice(0, -1));\n const filePattern = parts[parts.length - 1];\n const prefix = filePattern.split('*')[0];\n const suffix = filePattern.split('*')[1] || '';\n return (readRepoDir(dir, subdir) ?? []).some(e => e.name.startsWith(prefix) && e.name.endsWith(suffix));\n}\n\n/** Match a single signal against project data */\nfunction matchSignal(signal: Signal, pkg: PackageJson | null, dir: string): boolean {\n switch (signal.type) {\n case 'dependency':\n return !!(pkg?.dependencies?.[signal.key!]);\n case 'devDependency':\n return !!(pkg?.devDependencies?.[signal.key!]);\n case 'anyDependency': {\n const key = signal.key ?? '';\n return !!(pkg?.dependencies?.[key] || pkg?.devDependencies?.[key]);\n }\n case 'file':\n return fileExists(dir, signal.pattern!);\n case 'content': {\n // File must exist AND contain key (case-insensitive). Used so pom/gradle\n // alone never claim Spring Boot — JVM Edition kill line for tech_stack.\n if (!signal.pattern || !signal.key) {return false;}\n if (!fileExists(dir, signal.pattern)) {return false;}\n // A glob pattern names no one file: there is nothing to read, so no match.\n const body = readRepoFile(dir, signal.pattern);\n return body !== null && body.toLowerCase().includes(signal.key.toLowerCase());\n }\n default:\n return false;\n }\n}\n\n/** Detect frameworks in a directory */\nexport function detectFrameworks(dir: string): DetectedFramework[] {\n const pkg = readPackageJson(dir);\n\n return FRAMEWORKS\n .map(fw => {\n const matched = fw.signals.filter(s => matchSignal(s, pkg, dir));\n const confidence = matched.length / fw.signals.length;\n return { name: fw.name, slug: fw.slug, category: fw.category, confidence };\n })\n .filter(fw => fw.confidence > 0)\n .sort((a, b) => b.confidence - a.confidence);\n}\n\n/** Detect the primary language of a project from its manifests — `''` when\n * there is no evidence. */\nexport function detectLanguage(dir: string): string {\n const pkg = readPackageJson(dir);\n\n // Check for TypeScript\n if (pkg?.devDependencies?.typescript || pkg?.dependencies?.typescript) {return 'TypeScript';}\n if (repoExists(dir, 'tsconfig.json')) {return 'TypeScript';}\n\n // Check for common language indicators\n if (repoExists(dir, 'Cargo.toml')) {return 'Rust';}\n if (repoExists(dir, 'go.mod')) {return 'Go';}\n if (listRootCsprojs(dir).length > 0) {return 'C#';}\n if (repoExists(dir, 'pyproject.toml') || repoExists(dir, 'setup.py')) {return 'Python';}\n if (repoExists(dir, 'Gemfile')) {return 'Ruby';}\n if (isJvmRoot(dir)) {\n const jvm = detectJvmProject(dir);\n if (jvm) {return jvm.mainLanguage === 'Java/Kotlin' ? 'Kotlin' : jvm.mainLanguage;}\n return 'Java';\n }\n if (repoExists(dir, 'Package.swift')) {return 'Swift';}\n if (repoExists(dir, 'build.zig')) {return 'Zig';}\n if (repoExists(dir, 'pubspec.yaml')) {return 'Dart';}\n\n // A package.json with none of the manifests above: JavaScript\n if (pkg) {return 'JavaScript';}\n\n // No evidence: nothing (never a placeholder word for project.faf)\n return '';\n}\n\n/** Project-type detection result + rationale (the #found list).\n * Each `found` entry is a human-readable signal that contributed to the\n * classification — emitted as a YAML comment by `writeFaf` for transparency\n * (\"Glass Hood\" doctrine: the user sees WHY the cli classified as it did). */\nexport interface ProjectTypeDetection {\n type: string;\n /** Signals that matched, in order observed. */\n found: string[];\n}\n\n/** Detect the project type with rationale. The `found` list captures every\n * positive signal that contributed to the classification — used downstream\n * by `writeFaf` to render `# found: <list>` next to `type:` in the .faf.\n *\n * Priority order per v6.6.md doctrine (most-specific first). About is a\n * repo role (`about.represents`), not an app_type — never matches here.\n * Rule: SDK keyword takes priority (sdk wins over library/cli/wasm). */\nexport function detectProjectTypeWithRationale(dir: string): ProjectTypeDetection {\n const pkg = readPackageJson(dir);\n const frameworks = detectFrameworks(dir);\n const found: string[] = [];\n\n // ─── 1. documentation — spec-only / docs-only repos ─────────────────────\n const docSignal = detectDocumentationSignal(dir, pkg);\n if (docSignal) {\n found.push(docSignal);\n return { type: 'documentation', found };\n }\n\n // ─── 2. sdk — SDK keyword/structure WINS over mcpaas/saas/wasm/cli/library ─\n // wolfejam doctrine: if a repo signals SDK (name contains \"-sdk\", keywords\n // contains \"sdk\"), it's an SDK regardless of what platform/wasm/cli signals\n // would also fire. Confirmed for mcpaas-sdk (SDK FOR the platform, not the\n // platform itself).\n const sdkSignal = detectSdkSignal(dir, pkg);\n if (sdkSignal) {\n found.push(sdkSignal);\n return { type: 'sdk', found };\n }\n\n // ─── 3. extension — browser/chrome extension (manifest_version) ─────────\n // manifest_version is the unambiguous MV2/MV3 trait — must beat the framework\n // heuristics below (a framework-built extension would otherwise classify as\n // svelte/frontend/fullstack — confirmed on Stack⚡️Grabber).\n const extensionSignal = detectExtensionSignal(dir);\n if (extensionSignal) {\n found.push(extensionSignal);\n return { type: 'extension', found };\n }\n\n // ─── 4. mcpaas — post-MCP platforms (multiple MCP signals + auth + DB) ──\n const mcpaasSignal = detectMcpaasSignal(dir, pkg, frameworks);\n if (mcpaasSignal) {\n found.push(mcpaasSignal);\n return { type: 'mcpaas', found };\n }\n\n // ─── 5. saas — subscription products (auth + payment) ───────────────────\n const saasSignal = detectSaasSignal(dir, pkg);\n if (saasSignal) {\n found.push(saasSignal);\n return { type: 'saas', found };\n }\n\n // ─── 6. wasm — WASM target in build config ──────────────────────────────\n const wasmSignal = detectWasmSignal(dir, pkg);\n if (wasmSignal) {\n found.push(wasmSignal);\n return { type: 'wasm', found };\n }\n\n // ─── 7. dart/flutter — content-aware pubspec classification. The same\n // manifest backs Flutter apps, Dart CLIs, packages, servers, and MCP\n // servers — branch by deps (Flutter→mobile, Dart MCP→mcp, Dart\n // server→backend, CLI→cli, package→library). Unambiguous Dart. ──────\n const dart = detectDartProject(dir);\n if (dart) {\n found.push(dart.found);\n return { type: dart.appType, found };\n }\n\n // ─── 7a. go — content-aware go.mod classification (same composition as Dart).\n // go.mod alone ≠ backend: MCP · Gin/Echo/… · Cobra/cmd · library. ───\n const go = detectGoProject(dir);\n if (go) {\n found.push(go.found);\n return { type: go.appType, found };\n }\n\n // ─── 7a2. csharp — content-aware .csproj classification.\n // .csproj alone ≠ type: Sdk first · MCP · web/worker · CLI · library. ─\n const csharp = detectCsharpProject(dir);\n if (csharp) {\n found.push(csharp.found);\n return { type: csharp.appType, found };\n }\n\n // ─── 7a3. jvm — content-aware pom/gradle classification.\n // pom/gradle alone ≠ type: plugins · parents · catalogs · MCP · Android/KMP. ─\n const jvm = detectJvmProject(dir);\n if (jvm) {\n found.push(jvm.found);\n return { type: jvm.appType, found };\n }\n\n // ─── 7a4. ruby — content-aware Gemfile classification.\n // Gemfile alone ≠ Rails: gem names · layout · MCP · CLI · library. ─\n const ruby = detectRubyProject(dir);\n if (ruby) {\n found.push(ruby.found);\n return { type: ruby.appType, found };\n }\n\n // ─── 7a5. swift — content-aware Package.swift / Xcode classification.\n // Package.swift alone ≠ app: products · deps · MCP · Vapor · CLI · library. ─\n const swift = detectSwiftProject(dir);\n if (swift) {\n found.push(swift.found);\n return { type: swift.appType, found };\n }\n\n // ─── 7b. mobile — JS mobile platform deps / native dirs ─────────────────\n const mobileSignal = detectMobileSignal(dir, pkg);\n if (mobileSignal) {\n found.push(mobileSignal);\n return { type: 'mobile', found };\n }\n\n // ─── 8. mcp — single MCP server ─────────────────────────────────────────\n const hasMcp = frameworks.some(f => f.slug === 'mcp');\n if (hasMcp) {\n found.push('MCP SDK signal');\n return { type: 'mcp', found };\n }\n\n // ─── 9. cli — Node bin / Cargo [[bin]] / Zig main.zig ───────────────────\n if (pkg?.bin) {\n found.push('package.json bin');\n return { type: 'cli', found };\n }\n if (hasCargoBin(dir)) {\n found.push('Cargo.toml [[bin]]');\n return { type: 'cli', found };\n }\n\n // Zig project-type detection — build.zig + entry-file convention.\n // src/main.zig → cli (executable); src/root.zig → library.\n // main.zig wins when both exist (typical: cli with internal lib exports).\n if (repoExists(dir, 'build.zig')) {\n found.push('build.zig');\n if (repoExists(dir, 'src/main.zig')) {\n found.push('src/main.zig');\n return { type: 'cli', found };\n }\n if (repoExists(dir, 'src/root.zig')) {\n found.push('src/root.zig');\n return { type: 'library', found };\n }\n }\n\n // ─── 10. framework — private workspace + Svelte ──────────────────────────\n const hasSvelte = frameworks.some(f => f.slug === 'svelte' || f.slug === 'sveltekit');\n const isPrivateWorkspace = pkg?.private === true && (\n repoExists(dir, 'pnpm-workspace.yaml') ||\n pkg?.workspaces !== undefined\n );\n if (isPrivateWorkspace && hasSvelte) {\n found.push('private workspace', 'Svelte');\n return { type: 'framework', found };\n }\n\n // ─── 11. svelte — Svelte/SvelteKit app (fullstack by nature) ────────────\n if (hasSvelte) {\n found.push('Svelte/SvelteKit');\n return { type: 'svelte', found };\n }\n\n // ─── 12. enterprise — private workspace + multi-FW (more specific than monorepo-root) ──\n // Must be checked BEFORE monorepo-root (which is private workspace fallback).\n const hasFrontendFw = frameworks.some(f => f.category === 'frontend');\n const hasBackendFw = frameworks.some(f => f.category === 'backend');\n if (\n pkg?.private &&\n (pkg.workspaces || repoExists(dir, 'pnpm-workspace.yaml')) &&\n hasFrontendFw && hasBackendFw\n ) {\n found.push('private workspace + frontend + backend frameworks');\n return { type: 'enterprise', found };\n }\n\n // ─── 13. monorepo-root — private workspace, multi-package, no specific FW story ──\n const monoSignal = detectMonorepoRootSignal(dir, pkg);\n if (monoSignal) {\n found.push(monoSignal);\n return { type: 'monorepo-root', found };\n }\n\n // ─── 14. website — marketing-shape (Astro/Gatsby OR keywords) ───────────\n const websiteSignal = detectWebsiteSignal(dir, pkg, frameworks);\n if (websiteSignal) {\n found.push(websiteSignal);\n return { type: 'website', found };\n }\n\n // ─── 15. fullstack — Next/Nuxt OR (frontend + backend) ──────────────────\n const hasNextOrNuxt = frameworks.some(f => f.slug === 'nextjs' || f.slug === 'nuxt');\n if (hasNextOrNuxt) {\n found.push(frameworks.find(f => f.slug === 'nextjs') ? 'Next.js' : 'Nuxt');\n return { type: 'fullstack', found };\n }\n\n const hasFrontend = frameworks.some(f => f.category === 'frontend');\n const hasBackend = frameworks.some(f => f.category === 'backend');\n if (hasFrontend && hasBackend) {\n found.push('frontend framework', 'backend framework');\n return { type: 'fullstack', found };\n }\n\n // ─── 16. frontend — frontend framework only ─────────────────────────────\n if (hasFrontend) {\n found.push('frontend framework');\n return { type: 'frontend', found };\n }\n\n // ─── 17. backend — backend framework only ───────────────────────────────\n if (hasBackend) {\n found.push('backend framework');\n return { type: 'backend', found };\n }\n\n // ─── 18. data-science — Python DS deps (numpy/pandas/jupyter/sklearn) ───\n const dsSignal = detectDataScienceSignal(dir);\n if (dsSignal) {\n found.push(dsSignal);\n return { type: 'data-science', found };\n }\n\n // ─── 19. html — bare index.html, no framework ──────────────────────────\n const htmlSignal = detectHtmlSignal(dir, pkg);\n if (htmlSignal) {\n found.push(htmlSignal);\n return { type: 'html', found };\n }\n\n // ─── 19b. polyglot — real stack lives in sibling app dirs (FE + BE, ≥2\n // languages). NOT a monorepo tool (that's xai-faf-rust) — this only\n // rescues the repo from the `library` fallback lie below. Uses the\n // existing `fullstack` type (21 slots); no new app_type. ──────────\n const polyglotSignal = detectPolyglotSignal(dir, pkg);\n if (polyglotSignal) {\n found.push(polyglotSignal);\n return { type: 'fullstack', found };\n }\n\n // ─── 20. library — fallback (has main/exports but no bin) ──────────────\n if (pkg?.main && !pkg?.bin) {\n found.push('package.json main (no bin)');\n return { type: 'library', found };\n }\n\n // Default — bare repo with no classifying signals. The type is a\n // classification, not a slot: the file says it is the fallback (`# found:`),\n // and faf auto never writes slotignored over typed words on it.\n found.push(NO_CLASSIFYING_SIGNALS);\n return { type: 'library', found };\n}\n\n/** Detect the project type for slot mapping. Backward-compatible wrapper —\n * returns just the type string. New code should prefer\n * `detectProjectTypeWithRationale` to access the `#found` rationale. */\nexport function detectProjectType(dir: string): string {\n return detectProjectTypeWithRationale(dir).type;\n}\n\n/** Detect the runtime from a runtime file or manifest — `''` when there is\n * no evidence. */\nexport function detectRuntime(dir: string): string {\n if (repoExists(dir, 'bunfig.toml')) {return 'Bun';}\n if (repoExists(dir, 'deno.json') || repoExists(dir, 'deno.jsonc')) {return 'Deno';}\n if (readPackageJson(dir)) {return 'Node.js';}\n if (repoExists(dir, 'Cargo.toml')) {return 'Rust';}\n if (repoExists(dir, 'go.mod')) {return 'Go';}\n if (listRootCsprojs(dir).length > 0) {return '.NET';}\n if (repoExists(dir, 'pubspec.yaml')) {return 'Dart';}\n return '';\n}\n\n/** The JS package managers package.json's `packageManager` field names. */\nconst JS_PACKAGE_MANAGERS = new Set(['npm', 'pnpm', 'yarn', 'bun']);\n\n/** The package manager package.json's `packageManager` field declares\n * (`\"pnpm@9.1.0\"`, corepack's format) — `''` when it names none. */\nfunction declaredPackageManager(dir: string): string {\n const declared = (readPackageJson(dir) as { packageManager?: unknown } | null)?.packageManager;\n if (typeof declared !== 'string') {return '';}\n const name = /^([a-z]+)@/i.exec(declared.trim())?.[1]?.toLowerCase() ?? '';\n return JS_PACKAGE_MANAGERS.has(name) ? name : '';\n}\n\n/** The package manager a non-JS manifest implies, or `''`. */\nfunction manifestPackageManager(dir: string): string {\n if (repoExists(dir, 'pubspec.yaml')) {return 'pub';}\n if (repoExists(dir, 'go.mod')) {return 'go modules';}\n if (listRootCsprojs(dir).length > 0) {return 'NuGet';}\n if (repoExists(dir, 'pom.xml')) {return 'maven';}\n const gradle = ['build.gradle', 'build.gradle.kts', 'settings.gradle', 'settings.gradle.kts'];\n return gradle.some(f => repoExists(dir, f)) ? 'gradle' : '';\n}\n\n/** The JS package manager a committed lockfile names, or `''`. */\nconst LOCKFILES: ReadonlyArray<[file: string, manager: string]> = [\n ['bun.lockb', 'bun'], ['bun.lock', 'bun'], ['pnpm-lock.yaml', 'pnpm'], ['yarn.lock', 'yarn'], ['package-lock.json', 'npm'],\n];\n\n/** Detect the package manager from repo facts — a manifest that implies one,\n * package.json's `packageManager` field, then a lockfile. `''` when there is\n * no evidence: a package.json alone does not say which manager installs it. */\nexport function detectPackageManager(dir: string): string {\n return manifestPackageManager(dir) || declaredPackageManager(dir) || (LOCKFILES.find(([f]) => repoExists(dir, f))?.[1] ?? '');\n}\n\n/** Detect CI/CD */\nexport function detectCicd(dir: string): string | null {\n if (repoExists(dir, '.github/workflows')) {return 'GitHub Actions';}\n if (repoExists(dir, '.gitlab-ci.yml')) {return 'GitLab CI';}\n if (repoExists(dir, '.circleci')) {return 'CircleCI';}\n if (repoExists(dir, 'Jenkinsfile')) {return 'Jenkins';}\n return null;\n}\n\n/** Detect hosting platform — from a platform's own config file. A bare\n * Dockerfile is not one: it shows a container build, not where the app runs. */\nexport function detectHosting(dir: string): string | null {\n if (repoExists(dir, 'vercel.json')) {return 'Vercel';}\n if (repoExists(dir, 'netlify.toml')) {return 'Netlify';}\n if (repoExists(dir, 'wrangler.toml')) {return 'Cloudflare';}\n if (repoExists(dir, 'fly.toml')) {return 'Fly.io';}\n if (repoExists(dir, 'render.yaml')) {return 'Render';}\n return null;\n}\n\n/** Config files that can name a SvelteKit adapter: svelte.config.js up to\n * SvelteKit 2, vite.config.* from SvelteKit 3. */\nconst SVELTE_ADAPTER_CONFIGS = ['svelte.config.js', 'vite.config.ts', 'vite.config.js', 'vite.config.mts', 'vite.config.mjs'];\n\n/** The adapter package's suffix (`vercel`, `node`), from the first config\n * that imports one, else from package.json; null when nothing names one. */\nfunction svelteAdapterName(dir: string): string | null {\n // Match adapter imports: import adapter from '@sveltejs/adapter-vercel'\n // Or: import { adapter } from '@sveltejs/adapter-node'\n // Or: const adapter = require('@sveltejs/adapter-static')\n for (const file of SVELTE_ADAPTER_CONFIGS) {\n const match = readRepoFile(dir, file)?.match(/@sveltejs\\/adapter-(\\w+)/);\n if (match) {return match[1];}\n }\n const pkg = readPackageJson(dir);\n const deps = Object.keys({ ...pkg?.dependencies, ...pkg?.devDependencies });\n return deps.map(d => /^@sveltejs\\/adapter-(\\w+)$/.exec(d)?.[1]).find(Boolean) ?? null;\n}\n\n/** Detect SvelteKit adapter from svelte.config.js, vite.config.* or package.json */\nexport function detectSvelteAdapter(dir: string): string | null {\n const adapter = svelteAdapterName(dir);\n if (adapter) {\n switch (adapter) {\n case 'vercel': return 'Vercel';\n case 'node': return 'Node';\n case 'static': return 'Static';\n case 'cloudflare': return 'Cloudflare';\n case 'netlify': return 'Netlify';\n case 'auto': return 'Auto';\n default: return adapter;\n }\n }\n return null;\n}\n\n/** \"Vite 8\" from the vite range package.json declares (`^8.3.2` → 8), or\n * plain \"Vite\" when the range carries no version number (`latest`). */\nexport function viteLabel(pkg: PackageJson | null): string {\n const range = pkg?.devDependencies?.vite ?? pkg?.dependencies?.vite;\n const major = typeof range === 'string' ? /\\d+/.exec(range)?.[0] : undefined;\n return major === undefined ? 'Vite' : `Vite ${major}`;\n}\n\n/** Detect build tool */\nexport function detectBuildTool(dir: string): string | null {\n const pkg = readPackageJson(dir);\n if (pkg?.devDependencies?.vite || pkg?.dependencies?.vite) {return viteLabel(pkg);}\n if (pkg?.devDependencies?.webpack || pkg?.dependencies?.webpack) {return 'webpack';}\n if (pkg?.devDependencies?.esbuild || pkg?.dependencies?.esbuild) {return 'esbuild';}\n if (repoExists(dir, 'tsconfig.json') && pkg?.devDependencies?.typescript) {return 'TypeScript (tsc)';}\n return null;\n}\n\n/* ─── FAFb v2 chunk helpers (canonical YAML keys read by compile_fafb) ──────\n *\n * These detect content for the brick's `tech_stack`, `key_files`, and\n * `commands` chunks. `architecture` and `context` are deliberately left empty\n * for user fill (architecture overlaps with human_context.how; context is\n * free-form additional signal beyond the 6Ws).\n */\n\n/** Detect a list of important file paths for the `key_files` chunk.\n * Returns up to ~10 entries, ordered by canonical importance. */\nexport function detectKeyFiles(dir: string): string[] {\n const candidates = [\n // Manifests\n 'package.json', 'Cargo.toml', 'pyproject.toml', 'go.mod',\n 'build.zig', 'build.zig.zon',\n // Entry points (TS/JS)\n 'src/index.ts', 'src/index.js', 'src/main.ts', 'src/cli.ts',\n // Entry points (Rust)\n 'src/main.rs', 'src/lib.rs',\n // Entry points (Zig)\n 'src/main.zig', 'src/root.zig',\n // Entry points (Python)\n 'src/__init__.py', 'main.py', '__main__.py',\n // Entry points (Go)\n 'main.go', 'cmd/main.go',\n // Specs / docs\n 'README.md', 'SPECIFICATION.md', 'BINARY-FORMAT.md',\n // Config\n 'tsconfig.json', 'wrangler.toml', 'vercel.json',\n ];\n return candidates.filter(f => repoExists(dir, f));\n}\n\n/** Detect build/test/lint commands for the `commands` chunk.\n * Returns a Record<string, string> mapping command name → shell command. */\nexport function detectCommands(dir: string, pkg: PackageJson | null): Record<string, string> {\n const commands: Record<string, string> = {};\n\n // From package.json scripts (most reliable)\n if (pkg?.scripts) {\n for (const key of ['build', 'test', 'lint', 'dev', 'start']) {\n if (pkg.scripts[key]) {\n // Determine the runner — prefer bun if available, else npm\n const runner = repoExists(dir, 'bun.lock') || repoExists(dir, 'bun.lockb')\n ? 'bun run'\n : 'npm run';\n commands[key] = `${runner} ${key}`;\n }\n }\n }\n\n // Rust: cargo builds and tests every Cargo package. Clippy only when the\n // repo configures it — a Cargo.toml alone does not say the project lints with it.\n if (repoExists(dir, 'Cargo.toml')) {\n if (!commands.build) {commands.build = 'cargo build --release';}\n if (!commands.test) {commands.test = 'cargo test';}\n if (!commands.lint && configuresClippy(dir)) {commands.lint = 'cargo clippy';}\n }\n\n // Zig: build.zig is `zig build`'s own script; `zig build test` only when\n // it defines a test step.\n if (repoExists(dir, 'build.zig')) {\n if (!commands.build) {commands.build = 'zig build';}\n if (!commands.test && /\\.step\\(\\s*\"test\"/.test(readText(dir, 'build.zig'))) {commands.test = 'zig build test';}\n }\n\n // Go: the go tool builds and tests every module.\n if (repoExists(dir, 'go.mod')) {\n if (!commands.build) {commands.build = 'go build ./...';}\n if (!commands.test) {commands.test = 'go test ./...';}\n }\n\n // Python: pytest only when the repo says pytest — a pyproject.toml alone\n // does not (unittest, nox and tox are as common).\n if (!commands.test && usesPytest(dir)) {commands.test = 'pytest';}\n\n return commands;\n}\n\n/** A file's text, or `''` when it cannot be read. */\nfunction readText(dir: string, name: string): string {\n return readRepoFile(dir, name) ?? '';\n}\n\n/** The repo configures Clippy: a clippy.toml, or a `[lints.clippy]` table in Cargo.toml. */\nfunction configuresClippy(dir: string): boolean {\n if (repoExists(dir, 'clippy.toml') || repoExists(dir, '.clippy.toml')) {return true;}\n return /^\\s*\\[(workspace\\.)?lints\\.clippy\\]/m.test(readText(dir, 'Cargo.toml'));\n}\n\n/** The repo says pytest: pytest.ini or conftest.py, or pytest named in\n * pyproject.toml, setup.cfg or tox.ini (its config table or a dependency). */\nfunction usesPytest(dir: string): boolean {\n if (repoExists(dir, 'pytest.ini') || repoExists(dir, 'conftest.py')) {return true;}\n return ['pyproject.toml', 'setup.cfg', 'tox.ini'].some(f => /\\bpytest\\b/.test(readText(dir, f)));\n}\n\n/** Detect a tech-stack list for the `tech_stack` chunk.\n * Combines language + frameworks + runtime into a flat list of strings. */\nexport function detectTechStack(\n dir: string,\n pkg: PackageJson | null,\n frameworks: DetectedFramework[],\n language: string,\n): string[] {\n const stack: string[] = [];\n\n // Language goes first\n if (language && language !== 'Unknown') {stack.push(language);}\n\n // Notable frameworks (frontend / backend / database / build)\n const notableCategories = new Set(['frontend', 'backend', 'database', 'build', 'css', 'state', 'monorepo']);\n for (const fw of frameworks) {\n if (notableCategories.has(fw.category)) {\n stack.push(fw.name);\n }\n }\n\n // Runtime if non-trivial (Node.js by default for JS — only call out Bun/Deno/etc.)\n if (repoExists(dir, 'bunfig.toml')) {stack.push('Bun');}\n else if (repoExists(dir, 'deno.json') || repoExists(dir, 'deno.jsonc')) {stack.push('Deno');}\n\n // Top deps from package.json/Cargo.toml — only if stack is still sparse\n if (stack.length < 3 && pkg?.dependencies) {\n const topDeps = Object.keys(pkg.dependencies).slice(0, 5);\n for (const dep of topDeps) {\n if (!stack.some(s => s.toLowerCase().includes(dep.toLowerCase()))) {\n stack.push(dep);\n }\n }\n }\n\n return stack;\n}\n",
166
+ "import { join } from 'path';\nimport { readRepoDir, readRepoFile, repoExists, withRepoRoot } from '../core/safe-write.js';\nimport type { DetectedFramework, Signal } from '../core/types.js';\nimport { NO_CLASSIFYING_SIGNALS } from '../core/slots.js';\nimport { FRAMEWORKS } from './frameworks.js';\nimport { detectDartProject } from './dart.js';\nimport { detectGoProject } from './go.js';\nimport { detectCsharpProject, listRootCsprojs } from './csharp.js';\nimport { detectJvmProject, isJvmRoot } from './jvm.js';\nimport { detectRubyProject } from './ruby.js';\nimport { detectSwiftProject } from './swift.js';\n\ninterface PackageJson {\n name?: string;\n version?: string;\n description?: string;\n keywords?: string[];\n dependencies?: Record<string, string>;\n devDependencies?: Record<string, string>;\n scripts?: Record<string, string>;\n type?: string;\n main?: string;\n types?: string;\n exports?: unknown;\n bin?: string | Record<string, string>;\n private?: boolean;\n workspaces?: string[] | { packages?: string[] };\n files?: string[];\n}\n\n/** Read [package].name field from Cargo.toml — naive but adequate. */\nfunction readCargoName(dir: string): string | null {\n const content = readRepoFile(dir, 'Cargo.toml');\n if (content === null) {return null;}\n const m = content.match(/^\\s*\\[package\\][\\s\\S]*?^\\s*name\\s*=\\s*\"([^\"]+)\"/m);\n return m ? m[1] : null;\n}\n\n/** True if Cargo.toml declares one or more `[[bin]]` sections — Rust cli marker. */\nfunction hasCargoBin(dir: string): boolean {\n const content = readRepoFile(dir, 'Cargo.toml');\n return content !== null && /^\\s*\\[\\[bin\\]\\]/m.test(content);\n}\n\n/** Detect SDK signals — keyword-based per the SDK-priority doctrine.\n * Returns the matched evidence string, or null if no SDK signal. */\nfunction detectSdkSignal(dir: string, pkg: PackageJson | null): string | null {\n // pkg.keywords contains 'sdk'\n if (pkg?.keywords?.some(k => /^sdk(?:\\s|-|$)|-sdk$/i.test(k))) {\n return 'package.json keywords contains \"sdk\"';\n }\n // pkg.name contains 'sdk' or '-sdk' suffix\n if (pkg?.name && /(?:^|[-_/])sdk(?:[-_/]|$)/i.test(pkg.name)) {\n return `package.json name \"${pkg.name}\" → sdk`;\n }\n // Cargo.toml [package].name contains 'sdk'\n const cargoName = readCargoName(dir);\n if (cargoName && /(?:^|[-_])sdk(?:[-_]|$)/i.test(cargoName)) {\n return `Cargo.toml name \"${cargoName}\" → sdk`;\n }\n return null;\n}\n\n/** Browser / Chrome extension signal — a manifest.json that declares\n * `manifest_version` (the defining MV2/MV3 trait, absent from PWA web-app\n * manifests). Checked at the repo root and common source/build locations,\n * since extensions often keep the manifest under public/ or src/. */\nfunction detectExtensionSignal(dir: string): string | null {\n const candidates = [\n 'manifest.json',\n 'public/manifest.json',\n 'src/manifest.json',\n 'app/manifest.json',\n 'extension/manifest.json',\n 'dist/manifest.json',\n ];\n for (const rel of candidates) {\n const text = readRepoFile(dir, rel);\n if (text === null) {continue;}\n try {\n const parsed = JSON.parse(text) as { manifest_version?: unknown };\n if (typeof parsed.manifest_version === 'number') {\n return `${rel} manifest_version ${parsed.manifest_version} (browser extension)`;\n }\n } catch { /* not valid JSON / unreadable — keep scanning */ }\n }\n return null;\n}\n\n/** Python data-science dependency detection (pyproject.toml + requirements.txt). */\nfunction detectDataScienceSignal(dir: string): string | null {\n const dsPatterns = /(numpy|pandas|jupyter|scikit-learn|sklearn|pytorch|tensorflow|matplotlib|scipy)/i;\n const pyproject = readRepoFile(dir, 'pyproject.toml');\n if (pyproject !== null) {\n const match = pyproject.match(dsPatterns);\n if (match) {return `pyproject.toml depends on ${match[1]}`;}\n }\n const reqs = readRepoFile(dir, 'requirements.txt');\n if (reqs !== null) {\n const match = reqs.match(dsPatterns);\n if (match) {return `requirements.txt contains ${match[1]}`;}\n }\n return null;\n}\n\n/** Mobile platform signal — JS mobile (React Native / Expo / Capacitor / Ionic)\n * + native ios/android dirs. Flutter/Dart is handled by detectDartProject. */\nfunction detectMobileSignal(dir: string, pkg: PackageJson | null): string | null {\n const mobileDeps = ['react-native', 'expo', '@capacitor/core', '@ionic/core'];\n if (pkg) {\n for (const dep of mobileDeps) {\n if (pkg.dependencies?.[dep] || pkg.devDependencies?.[dep]) {\n return `${dep} dependency`;\n }\n }\n }\n if (repoExists(dir, 'ios') && repoExists(dir, 'android')) {\n return 'ios/ + android/ dirs';\n }\n return null;\n}\n\n/** WASM target detection (Cargo cdylib + wasm32 OR build.zig wasm OR pkg WASM build scripts). */\nfunction detectWasmSignal(dir: string, pkg: PackageJson | null): string | null {\n const cargo = readRepoFile(dir, 'Cargo.toml');\n if (cargo !== null) {\n // crate-type = [\"cdylib\"] is the canonical wasm-output marker\n if (/crate-type\\s*=\\s*\\[[^\\]]*\"cdylib\"/.test(cargo)) {\n return 'Cargo.toml crate-type = [\"cdylib\"]';\n }\n // wasm-bindgen / wasm-pack as deps\n if (/wasm-bindgen|wasm-pack/i.test(cargo)) {\n return 'Cargo.toml wasm-bindgen/wasm-pack';\n }\n }\n // Zig WASM target — build.zig with .wasm or wasm in script\n const buildZig = readRepoFile(dir, 'build.zig');\n if (buildZig !== null && /\\.wasm\\b|wasm32|setOutputFormat\\(\\.wasm/i.test(buildZig)) {\n return 'build.zig wasm target';\n }\n // pkg keywords contains 'wasm' AND no app frameworks\n if (pkg?.keywords?.some(k => /^wasm(?:-|$)|webassembly/i.test(k))) {\n return 'package.json keywords contains \"wasm\"';\n }\n return null;\n}\n\n/** Bare HTML / vanilla site detection. */\nfunction detectHtmlSignal(dir: string, pkg: PackageJson | null): string | null {\n // Must have index.html at root\n if (!repoExists(dir, 'index.html')) {return null;}\n // Must NOT have any frontend deps (those would classify as frontend/website/etc)\n if (pkg?.dependencies || pkg?.devDependencies) {\n const allDeps = { ...(pkg.dependencies ?? {}), ...(pkg.devDependencies ?? {}) };\n const frontendDeps = ['react', 'vue', 'svelte', '@sveltejs/kit', 'next', 'nuxt', 'astro', 'gatsby', 'solid-js', 'qwik'];\n if (frontendDeps.some(d => allDeps[d])) {return null;}\n }\n return 'index.html (vanilla, no frontend framework)';\n}\n\n/** Documentation / spec-only repo signal. */\nfunction detectDocumentationSignal(dir: string, pkg: PackageJson | null): string | null {\n // Strong signal: name or keywords contains 'specification'\n if (pkg?.name && /specification|^@.*\\/spec/i.test(pkg.name)) {\n return `package name \"${pkg.name}\" → documentation`;\n }\n if (pkg?.keywords?.some(k => /^(specification|format-spec|standard)$/i.test(k))) {\n return 'package keywords contains \"specification\"';\n }\n // A publishable CLI/bin package is never \"docs-only\" — even if `files` is\n // npm-publish-narrow (e.g. [\"dist\", \"README.md\"]). Bare `dist`/`src`/`bin`\n // without a trailing slash is still source, not documentation.\n // (agents-md-facts false positive: bin present + files:[\"dist\",\"README.md\",\"LICENSE\"]\n // classified as documentation before the cli check could run.)\n if (pkg?.bin) {\n return null;\n }\n // pkg.files contains only md / examples / assets (no dist/, no src/)\n if (pkg?.files && pkg.files.length > 0) {\n // Match \"dist\", \"dist/\", \"src/cli.ts\", \"*.js\", etc. — bare publish dirs count as source\n const sourcePatterns =\n /^(dist|src|lib|build|bin)(\\/|$)|\\/(dist|src|lib|build|bin)(\\/|$)|(\\.|\\/)(js|ts|tsx|jsx|mjs|cjs|py|rs|go)$/;\n const hasSource = pkg.files.some(f => sourcePatterns.test(f));\n const hasDocs = pkg.files.some(f => /\\.(md|MD)$|examples?\\//.test(f) || f === 'README.md' || f === 'docs' || f === 'docs/');\n if (!hasSource && hasDocs) {\n return 'package.json files = docs/examples only (no source)';\n }\n }\n return null;\n}\n\n/** Marketing / website signal — Astro/Gatsby static OR pkg keywords. */\nfunction detectWebsiteSignal(dir: string, pkg: PackageJson | null, frameworks: DetectedFramework[]): string | null {\n // Astro/Gatsby are typically used for content/marketing sites\n const astroOrGatsby = frameworks.find(f => f.slug === 'astro' || f.slug === 'gatsby');\n if (astroOrGatsby) {return `${astroOrGatsby.name} (static-site framework)`;}\n // pkg.keywords explicitly marketing\n if (pkg?.keywords?.some(k => /^(website|marketing|landing|brochure|portfolio)$/i.test(k))) {\n return 'package keywords contains \"website\"/\"marketing\"/\"landing\"';\n }\n return null;\n}\n\n/** SAAS shape — auth + payments + database + dashboard. */\nfunction detectSaasSignal(dir: string, pkg: PackageJson | null): string | null {\n if (!pkg) {return null;}\n const allDeps = { ...(pkg.dependencies ?? {}), ...(pkg.devDependencies ?? {}) };\n const authDeps = ['@clerk/nextjs', '@clerk/clerk-react', 'next-auth', '@auth/core', 'auth0', '@auth0/nextjs-auth0'];\n const paymentDeps = ['stripe', '@stripe/stripe-js', 'lemonsqueezy'];\n const hasAuth = authDeps.some(d => allDeps[d]);\n const hasPayment = paymentDeps.some(d => allDeps[d]);\n if (hasAuth && hasPayment) {\n return 'auth + payment dependencies';\n }\n return null;\n}\n\n/** MCPaaS (post-MCP platform) shape — multiple MCP signals + hosting + DB. */\nfunction detectMcpaasSignal(dir: string, pkg: PackageJson | null, frameworks: DetectedFramework[]): string | null {\n // pkg.keywords contains 'mcpaas' is the strongest signal\n if (pkg?.keywords?.some(k => /mcpaas/i.test(k))) {\n return 'package keywords contains \"mcpaas\"';\n }\n // pkg.name contains 'mcpaas'\n if (pkg?.name && /mcpaas/i.test(pkg.name)) {\n return `package name \"${pkg.name}\" → mcpaas`;\n }\n // Multi-signal: MCP framework + database + hosting (a platform, not a single server)\n const hasMcp = frameworks.some(f => f.slug === 'mcp');\n const hasDb = frameworks.some(f => f.category === 'database');\n if (hasMcp && hasDb && pkg?.dependencies && Object.keys(pkg.dependencies).length > 10) {\n return 'MCP + database + complex deps (platform shape)';\n }\n return null;\n}\n\n/** Monorepo-root — private workspace with multiple packages, no single dominant FW. */\nfunction detectMonorepoRootSignal(dir: string, pkg: PackageJson | null): string | null {\n if (!pkg?.private) {return null;}\n const hasWorkspaces = !!pkg.workspaces || repoExists(dir, 'pnpm-workspace.yaml');\n if (!hasWorkspaces) {return null;}\n return 'private workspace + multi-package';\n}\n\n/** Top-level dirs that never hold an app component. */\nconst SUBDIR_IGNORE = new Set([\n 'node_modules', 'dist', 'build', 'out', 'vendor', 'target', 'coverage',\n 'docs', 'doc', 'e2e', 'tests', 'test', '__tests__', 'scripts', 'deploy',\n 'bin', 'public', 'examples', 'example', 'fixtures', 'assets', 'static',\n 'migrations', 'config', 'contracts', 'proto', 'protos',\n]);\n\nconst BACKEND_LANG_RE = /^(Python|Go|Rust|Ruby|Java|Kotlin)$/;\n\n/** One app component discovered directly under the repo root. */\nexport interface SubdirStack {\n /** basename */\n name: string;\n /** detectLanguage() of the subdir */\n language: string;\n /** highest-confidence real-stack framework in the subdir (never Docker/CI/etc.) */\n topFramework: string | null;\n frontend: boolean;\n backend: boolean;\n /** a real-stack framework (not infra) was detected — ranks it as the \"primary\" */\n hasFramework: boolean;\n /** a \"this dir IS the app\" marker (manage.py / config.ru / bin/rails) */\n appRoot: boolean;\n}\n\n/** Framework categories that describe the app's own stack (not infra/tooling). */\nconst STACK_FW_CATEGORIES = new Set(['frontend', 'backend', 'database', 'css', 'ui', 'state']);\n\n/** A directory carries a real language manifest (not just tooling/config). */\nfunction hasLanguageManifest(d: string): boolean {\n if (\n repoExists(d, 'pyproject.toml') || repoExists(d, 'manage.py') ||\n repoExists(d, 'setup.py') || fileExists(d, 'requirements*.txt')\n ) {return true;}\n if (repoExists(d, 'go.mod')) {return true;}\n if (repoExists(d, 'Cargo.toml')) {return true;}\n if (repoExists(d, 'Gemfile')) {return true;}\n if (repoExists(d, 'pom.xml') || fileExists(d, 'build.gradle*')) {return true;}\n if (listRootCsprojs(d).length > 0) {return true;}\n const pkg = readPackageJson(d);\n if (pkg && Object.keys(pkg.dependencies ?? {}).length > 0) {return true;}\n return false;\n}\n\n/** Shallow (depth-1) scan for per-subdirectory app stacks. Feeds the polyglot\n * classifier + `main_language` aggregation. A dir counts only when it carries a\n * real language manifest. This is NOT monorepo tooling — it only exists to stop\n * a repo whose real stack lives in subdirs from falling to the `library` lie. */\nexport function detectSubdirStacks(dir: string): SubdirStack[] {\n // The project folder bounds every read below it: a subfolder's manifest may\n // link anywhere inside the project, never out of it.\n return withRepoRoot(dir, () => subdirStacks(dir));\n}\n\nfunction subdirStacks(dir: string): SubdirStack[] {\n const entries = readRepoDir(dir) ?? [];\n const out: SubdirStack[] = [];\n for (const e of entries) {\n if (!e.isDirectory() || e.name.startsWith('.') || SUBDIR_IGNORE.has(e.name)) {continue;}\n const sub = join(dir, e.name);\n if (!hasLanguageManifest(sub)) {continue;}\n const language = detectLanguage(sub);\n if (!language) {continue;}\n const fws = detectFrameworks(sub).filter(f => STACK_FW_CATEGORIES.has(f.category));\n const fe = fws.find(f => f.category === 'frontend');\n const be = fws.find(f => f.category === 'backend');\n const top = fe ?? be ?? fws[0] ?? null;\n out.push({\n name: e.name,\n language,\n topFramework: top?.name ?? null,\n frontend: !!fe,\n backend: !!be || BACKEND_LANG_RE.test(language),\n hasFramework: !!top,\n appRoot:\n repoExists(sub, 'manage.py') ||\n repoExists(sub, 'config.ru') ||\n repoExists(sub, 'bin/rails') ||\n repoExists(sub, 'artisan'),\n });\n }\n return out;\n}\n\n/** Polyglot signal — ≥2 sibling app dirs, ≥2 distinct languages, a frontend AND\n * a backend among them. Returns the `# found:` evidence string, or null. */\nexport function detectPolyglotSignal(dir: string, pkg: PackageJson | null): string | null {\n if (pkg?.workspaces || repoExists(dir, 'pnpm-workspace.yaml')) {return null;}\n const subs = detectSubdirStacks(dir);\n const langs = new Set(subs.map(s => s.language));\n if (subs.length < 2 || langs.size < 2) {return null;}\n if (!subs.some(s => s.frontend) || !subs.some(s => s.backend)) {return null;}\n return `polyglot: ${subs.map(s => `${s.name}/ (${s.language})`).join(', ')}`;\n}\n\n/** Aggregate the polyglot `main_language` string — primary first (a framework-\n * bearing backend dir wins), deduped by language, roles annotated.\n * e.g. \"Python (Django · backend); JavaScript (React · frontend); Go (service)\" */\nexport function detectPolyglotLanguage(dir: string): string | null {\n const subs = detectSubdirStacks(dir);\n if (subs.length < 2) {return null;}\n const score = (s: SubdirStack): number =>\n (s.appRoot ? 2 : 0) +\n (BACKEND_LANG_RE.test(s.language) ? 2 : 0) +\n (s.hasFramework ? 1 : 0) +\n (s.frontend ? 0.5 : 0);\n const ranked = [...subs].sort((a, b) => score(b) - score(a));\n const seen = new Set<string>();\n const parts: string[] = [];\n for (const s of ranked) {\n if (seen.has(s.language)) {continue;}\n seen.add(s.language);\n const role = s.frontend ? 'frontend' : s.backend ? 'backend' : 'service';\n parts.push(s.topFramework ? `${s.language} (${s.topFramework} · ${role})` : `${s.language} (${role})`);\n }\n return parts.join('; ');\n}\n\n/** Read and parse package.json from a directory */\nexport function readPackageJson(dir: string): PackageJson | null {\n const text = readRepoFile(dir, 'package.json');\n if (text === null) {return null;}\n try {\n return JSON.parse(text);\n } catch {\n return null;\n }\n}\n\n/** Scan a directory for files matching patterns */\nfunction fileExists(dir: string, pattern: string): boolean {\n // Handle simple file checks\n if (!pattern.includes('*')) {\n return repoExists(dir, pattern);\n }\n\n // Handle glob patterns like \"next.config.*\" or \".github/workflows/*.yml\"\n const parts = pattern.split('/');\n if (parts.length === 1) {\n // Simple wildcard: \"next.config.*\"\n const prefix = pattern.split('*')[0];\n return (readRepoDir(dir) ?? []).some(e => e.name.startsWith(prefix));\n }\n\n // Multi-level: \".github/workflows/*.yml\"\n const subdir = join(...parts.slice(0, -1));\n const filePattern = parts[parts.length - 1];\n const prefix = filePattern.split('*')[0];\n const suffix = filePattern.split('*')[1] || '';\n return (readRepoDir(dir, subdir) ?? []).some(e => e.name.startsWith(prefix) && e.name.endsWith(suffix));\n}\n\n/** Match a single signal against project data */\nfunction matchSignal(signal: Signal, pkg: PackageJson | null, dir: string): boolean {\n switch (signal.type) {\n case 'dependency':\n return !!(pkg?.dependencies?.[signal.key!]);\n case 'devDependency':\n return !!(pkg?.devDependencies?.[signal.key!]);\n case 'anyDependency': {\n const key = signal.key ?? '';\n return !!(pkg?.dependencies?.[key] || pkg?.devDependencies?.[key]);\n }\n case 'file':\n return fileExists(dir, signal.pattern!);\n case 'content': {\n // File must exist AND contain key (case-insensitive). Used so pom/gradle\n // alone never claim Spring Boot — JVM Edition kill line for tech_stack.\n if (!signal.pattern || !signal.key) {return false;}\n if (!fileExists(dir, signal.pattern)) {return false;}\n // A glob pattern names no one file: there is nothing to read, so no match.\n const body = readRepoFile(dir, signal.pattern);\n return body !== null && body.toLowerCase().includes(signal.key.toLowerCase());\n }\n default:\n return false;\n }\n}\n\n/** Detect frameworks in a directory */\nexport function detectFrameworks(dir: string): DetectedFramework[] {\n const pkg = readPackageJson(dir);\n\n return FRAMEWORKS\n .map(fw => {\n const matched = fw.signals.filter(s => matchSignal(s, pkg, dir));\n const confidence = matched.length / fw.signals.length;\n return { name: fw.name, slug: fw.slug, category: fw.category, confidence };\n })\n .filter(fw => fw.confidence > 0)\n .sort((a, b) => b.confidence - a.confidence);\n}\n\n/** Detect the primary language of a project from its manifests — `''` when\n * there is no evidence. */\nexport function detectLanguage(dir: string): string {\n const pkg = readPackageJson(dir);\n\n // Check for TypeScript\n if (pkg?.devDependencies?.typescript || pkg?.dependencies?.typescript) {return 'TypeScript';}\n if (repoExists(dir, 'tsconfig.json')) {return 'TypeScript';}\n\n // Check for common language indicators\n if (repoExists(dir, 'Cargo.toml')) {return 'Rust';}\n if (repoExists(dir, 'go.mod')) {return 'Go';}\n if (listRootCsprojs(dir).length > 0) {return 'C#';}\n if (repoExists(dir, 'pyproject.toml') || repoExists(dir, 'setup.py')) {return 'Python';}\n if (repoExists(dir, 'Gemfile')) {return 'Ruby';}\n if (isJvmRoot(dir)) {\n const jvm = detectJvmProject(dir);\n if (jvm) {return jvm.mainLanguage === 'Java/Kotlin' ? 'Kotlin' : jvm.mainLanguage;}\n return 'Java';\n }\n if (repoExists(dir, 'Package.swift')) {return 'Swift';}\n if (repoExists(dir, 'build.zig')) {return 'Zig';}\n if (repoExists(dir, 'pubspec.yaml')) {return 'Dart';}\n\n // A package.json with none of the manifests above: JavaScript\n if (pkg) {return 'JavaScript';}\n\n // No evidence: nothing (never a placeholder word for project.faf)\n return '';\n}\n\n/** Project-type detection result + rationale (the #found list).\n * Each `found` entry is a human-readable signal that contributed to the\n * classification — emitted as a YAML comment by `writeFaf` for transparency\n * (\"Glass Hood\" doctrine: the user sees WHY the cli classified as it did). */\nexport interface ProjectTypeDetection {\n type: string;\n /** Signals that matched, in order observed. */\n found: string[];\n}\n\n/** The SKILL.md files a repo ships: one at the root (a single skill), or one\n * per skill folder, under `skills/` or at the top level (the Agent Skills\n * layout: a folder per skill). Dot folders are left out — `.claude/skills`\n * holds a project's own skills, not what the repo ships. */\nexport function findSkillFiles(dir: string): string[] {\n const files: string[] = [];\n if (repoExists(dir, 'SKILL.md')) {files.push('SKILL.md');}\n for (const base of ['skills', '']) {\n for (const entry of readRepoDir(dir, base || '.') ?? []) {\n if (!entry.isDirectory() || entry.name.startsWith('.') || entry.name === 'node_modules') {continue;}\n if (base === '' && entry.name === 'skills') {continue;}\n const rel = base ? `${base}/${entry.name}/SKILL.md` : `${entry.name}/SKILL.md`;\n if (repoExists(dir, rel)) {files.push(rel);}\n }\n }\n return files;\n}\n\n/** A skills repo: it ships SKILL.md files. With a Claude Code plugin\n * manifest the skills ship as a plugin (`skills-plugin`). */\nfunction detectSkillsSignal(dir: string): ProjectTypeDetection | null {\n const files = findSkillFiles(dir);\n if (files.length === 0) {return null;}\n const found = [files.length === 1 ? files[0] : `${files.length} SKILL.md folders`];\n if (repoExists(dir, '.claude-plugin/plugin.json')) {\n found.push('.claude-plugin/plugin.json');\n return { type: 'skills-plugin', found };\n }\n return { type: 'skills', found };\n}\n\n/** The skills format a repo ships — the framework slot of the skills\n * app-types: `Claude Code plugin` with a plugin manifest, `Agent Skills`\n * for SKILL.md files alone, `''` when it ships none. */\nexport function detectSkillsFormat(dir: string): string {\n if (findSkillFiles(dir).length === 0) {return '';}\n return repoExists(dir, '.claude-plugin/plugin.json') ? 'Claude Code plugin' : 'Agent Skills';\n}\n\n/** Detect the project type with rationale. The `found` list captures every\n * positive signal that contributed to the classification — used downstream\n * by `writeFaf` to render `# found: <list>` next to `type:` in the .faf.\n *\n * Priority order per v6.6.md doctrine (most-specific first). About is a\n * repo role (`about.represents`), not an app_type — never matches here.\n * Rule: SDK keyword takes priority (sdk wins over library/cli/wasm). */\nexport function detectProjectTypeWithRationale(dir: string): ProjectTypeDetection {\n const pkg = readPackageJson(dir);\n const frameworks = detectFrameworks(dir);\n const found: string[] = [];\n\n // ─── 1. documentation — spec-only / docs-only repos ─────────────────────\n const docSignal = detectDocumentationSignal(dir, pkg);\n if (docSignal) {\n found.push(docSignal);\n return { type: 'documentation', found };\n }\n\n // ─── 2. sdk — SDK keyword/structure WINS over mcpaas/saas/wasm/cli/library ─\n // wolfejam doctrine: if a repo signals SDK (name contains \"-sdk\", keywords\n // contains \"sdk\"), it's an SDK regardless of what platform/wasm/cli signals\n // would also fire. Confirmed for mcpaas-sdk (SDK FOR the platform, not the\n // platform itself).\n const sdkSignal = detectSdkSignal(dir, pkg);\n if (sdkSignal) {\n found.push(sdkSignal);\n return { type: 'sdk', found };\n }\n\n // ─── 3. extension — browser/chrome extension (manifest_version) ─────────\n // manifest_version is the unambiguous MV2/MV3 trait — must beat the framework\n // heuristics below (a framework-built extension would otherwise classify as\n // svelte/frontend/fullstack — confirmed on Stack⚡️Grabber).\n const extensionSignal = detectExtensionSignal(dir);\n if (extensionSignal) {\n found.push(extensionSignal);\n return { type: 'extension', found };\n }\n\n // ─── 4. mcpaas — post-MCP platforms (multiple MCP signals + auth + DB) ──\n const mcpaasSignal = detectMcpaasSignal(dir, pkg, frameworks);\n if (mcpaasSignal) {\n found.push(mcpaasSignal);\n return { type: 'mcpaas', found };\n }\n\n // ─── 5. saas — subscription products (auth + payment) ───────────────────\n const saasSignal = detectSaasSignal(dir, pkg);\n if (saasSignal) {\n found.push(saasSignal);\n return { type: 'saas', found };\n }\n\n // ─── 6. wasm — WASM target in build config ──────────────────────────────\n const wasmSignal = detectWasmSignal(dir, pkg);\n if (wasmSignal) {\n found.push(wasmSignal);\n return { type: 'wasm', found };\n }\n\n // ─── 7. dart/flutter — content-aware pubspec classification. The same\n // manifest backs Flutter apps, Dart CLIs, packages, servers, and MCP\n // servers — branch by deps (Flutter→mobile, Dart MCP→mcp, Dart\n // server→backend, CLI→cli, package→library). Unambiguous Dart. ──────\n const dart = detectDartProject(dir);\n if (dart) {\n found.push(dart.found);\n return { type: dart.appType, found };\n }\n\n // ─── 7a. go — content-aware go.mod classification (same composition as Dart).\n // go.mod alone ≠ backend: MCP · Gin/Echo/… · Cobra/cmd · library. ───\n const go = detectGoProject(dir);\n if (go) {\n found.push(go.found);\n return { type: go.appType, found };\n }\n\n // ─── 7a2. csharp — content-aware .csproj classification.\n // .csproj alone ≠ type: Sdk first · MCP · web/worker · CLI · library. ─\n const csharp = detectCsharpProject(dir);\n if (csharp) {\n found.push(csharp.found);\n return { type: csharp.appType, found };\n }\n\n // ─── 7a3. jvm — content-aware pom/gradle classification.\n // pom/gradle alone ≠ type: plugins · parents · catalogs · MCP · Android/KMP. ─\n const jvm = detectJvmProject(dir);\n if (jvm) {\n found.push(jvm.found);\n return { type: jvm.appType, found };\n }\n\n // ─── 7a4. ruby — content-aware Gemfile classification.\n // Gemfile alone ≠ Rails: gem names · layout · MCP · CLI · library. ─\n const ruby = detectRubyProject(dir);\n if (ruby) {\n found.push(ruby.found);\n return { type: ruby.appType, found };\n }\n\n // ─── 7a5. swift — content-aware Package.swift / Xcode classification.\n // Package.swift alone ≠ app: products · deps · MCP · Vapor · CLI · library. ─\n const swift = detectSwiftProject(dir);\n if (swift) {\n found.push(swift.found);\n return { type: swift.appType, found };\n }\n\n // ─── 7b. mobile — JS mobile platform deps / native dirs ─────────────────\n const mobileSignal = detectMobileSignal(dir, pkg);\n if (mobileSignal) {\n found.push(mobileSignal);\n return { type: 'mobile', found };\n }\n\n // ─── 8. mcp — single MCP server ─────────────────────────────────────────\n const hasMcp = frameworks.some(f => f.slug === 'mcp');\n if (hasMcp) {\n found.push('MCP SDK signal');\n return { type: 'mcp', found };\n }\n\n // ─── 9. cli — Node bin / Cargo [[bin]] / Zig main.zig ───────────────────\n if (pkg?.bin) {\n found.push('package.json bin');\n return { type: 'cli', found };\n }\n if (hasCargoBin(dir)) {\n found.push('Cargo.toml [[bin]]');\n return { type: 'cli', found };\n }\n\n // Zig project-type detection — build.zig + entry-file convention.\n // src/main.zig → cli (executable); src/root.zig → library.\n // main.zig wins when both exist (typical: cli with internal lib exports).\n if (repoExists(dir, 'build.zig')) {\n found.push('build.zig');\n if (repoExists(dir, 'src/main.zig')) {\n found.push('src/main.zig');\n return { type: 'cli', found };\n }\n if (repoExists(dir, 'src/root.zig')) {\n found.push('src/root.zig');\n return { type: 'library', found };\n }\n }\n\n // ─── 10. framework — private workspace + Svelte ──────────────────────────\n const hasSvelte = frameworks.some(f => f.slug === 'svelte' || f.slug === 'sveltekit');\n const isPrivateWorkspace = pkg?.private === true && (\n repoExists(dir, 'pnpm-workspace.yaml') ||\n pkg?.workspaces !== undefined\n );\n if (isPrivateWorkspace && hasSvelte) {\n found.push('private workspace', 'Svelte');\n return { type: 'framework', found };\n }\n\n // ─── 11. svelte — Svelte/SvelteKit app (fullstack by nature) ────────────\n if (hasSvelte) {\n found.push('Svelte/SvelteKit');\n return { type: 'svelte', found };\n }\n\n // ─── 12. enterprise — private workspace + multi-FW (more specific than monorepo-root) ──\n // Must be checked BEFORE monorepo-root (which is private workspace fallback).\n const hasFrontendFw = frameworks.some(f => f.category === 'frontend');\n const hasBackendFw = frameworks.some(f => f.category === 'backend');\n if (\n pkg?.private &&\n (pkg.workspaces || repoExists(dir, 'pnpm-workspace.yaml')) &&\n hasFrontendFw && hasBackendFw\n ) {\n found.push('private workspace + frontend + backend frameworks');\n return { type: 'enterprise', found };\n }\n\n // ─── 13. monorepo-root — private workspace, multi-package, no specific FW story ──\n const monoSignal = detectMonorepoRootSignal(dir, pkg);\n if (monoSignal) {\n found.push(monoSignal);\n return { type: 'monorepo-root', found };\n }\n\n // ─── 14. website — marketing-shape (Astro/Gatsby OR keywords) ───────────\n const websiteSignal = detectWebsiteSignal(dir, pkg, frameworks);\n if (websiteSignal) {\n found.push(websiteSignal);\n return { type: 'website', found };\n }\n\n // ─── 15. fullstack — Next/Nuxt OR (frontend + backend) ──────────────────\n const hasNextOrNuxt = frameworks.some(f => f.slug === 'nextjs' || f.slug === 'nuxt');\n if (hasNextOrNuxt) {\n found.push(frameworks.find(f => f.slug === 'nextjs') ? 'Next.js' : 'Nuxt');\n return { type: 'fullstack', found };\n }\n\n const hasFrontend = frameworks.some(f => f.category === 'frontend');\n const hasBackend = frameworks.some(f => f.category === 'backend');\n if (hasFrontend && hasBackend) {\n found.push('frontend framework', 'backend framework');\n return { type: 'fullstack', found };\n }\n\n // ─── 16. frontend — frontend framework only ─────────────────────────────\n if (hasFrontend) {\n found.push('frontend framework');\n return { type: 'frontend', found };\n }\n\n // ─── 17. backend — backend framework only ───────────────────────────────\n if (hasBackend) {\n found.push('backend framework');\n return { type: 'backend', found };\n }\n\n // ─── 18. data-science — Python DS deps (numpy/pandas/jupyter/sklearn) ───\n const dsSignal = detectDataScienceSignal(dir);\n if (dsSignal) {\n found.push(dsSignal);\n return { type: 'data-science', found };\n }\n\n // ─── 19. html — bare index.html, no framework ──────────────────────────\n const htmlSignal = detectHtmlSignal(dir, pkg);\n if (htmlSignal) {\n found.push(htmlSignal);\n return { type: 'html', found };\n }\n\n // ─── 19b. polyglot — real stack lives in sibling app dirs (FE + BE, ≥2\n // languages). NOT a monorepo tool (that's xai-faf-rust) — this only\n // rescues the repo from the `library` fallback lie below. Uses the\n // existing `fullstack` type (21 slots); no new app_type. ──────────\n const polyglotSignal = detectPolyglotSignal(dir, pkg);\n if (polyglotSignal) {\n found.push(polyglotSignal);\n return { type: 'fullstack', found };\n }\n\n // ─── 20. library — fallback (has main/exports but no bin) ──────────────\n if (pkg?.main && !pkg?.bin) {\n found.push('package.json main (no bin)');\n return { type: 'library', found };\n }\n\n // ─── 21. skills — SKILL.md folders and no code signal above. Last before\n // the fallback, so a CLI that ships a skill (faf-cli's\n // skills/faf-expert) stays a CLI. ─────────────────────────────────\n const skills = detectSkillsSignal(dir);\n if (skills) {\n found.push(...skills.found);\n return { type: skills.type, found };\n }\n\n // Default — bare repo with no classifying signals. The type is a\n // classification, not a slot: the file says it is the fallback (`# found:`),\n // and faf auto never writes slotignored over typed words on it.\n found.push(NO_CLASSIFYING_SIGNALS);\n return { type: 'library', found };\n}\n\n/** Detect the project type for slot mapping. Backward-compatible wrapper —\n * returns just the type string. New code should prefer\n * `detectProjectTypeWithRationale` to access the `#found` rationale. */\nexport function detectProjectType(dir: string): string {\n return detectProjectTypeWithRationale(dir).type;\n}\n\n/** Detect the runtime from a runtime file or manifest — `''` when there is\n * no evidence. */\nexport function detectRuntime(dir: string): string {\n if (repoExists(dir, 'bunfig.toml')) {return 'Bun';}\n if (repoExists(dir, 'deno.json') || repoExists(dir, 'deno.jsonc')) {return 'Deno';}\n if (readPackageJson(dir)) {return 'Node.js';}\n if (repoExists(dir, 'Cargo.toml')) {return 'Rust';}\n if (repoExists(dir, 'go.mod')) {return 'Go';}\n if (listRootCsprojs(dir).length > 0) {return '.NET';}\n if (repoExists(dir, 'pubspec.yaml')) {return 'Dart';}\n return '';\n}\n\n/** The JS package managers package.json's `packageManager` field names. */\nconst JS_PACKAGE_MANAGERS = new Set(['npm', 'pnpm', 'yarn', 'bun']);\n\n/** The package manager package.json's `packageManager` field declares\n * (`\"pnpm@9.1.0\"`, corepack's format) — `''` when it names none. */\nfunction declaredPackageManager(dir: string): string {\n const declared = (readPackageJson(dir) as { packageManager?: unknown } | null)?.packageManager;\n if (typeof declared !== 'string') {return '';}\n const name = /^([a-z]+)@/i.exec(declared.trim())?.[1]?.toLowerCase() ?? '';\n return JS_PACKAGE_MANAGERS.has(name) ? name : '';\n}\n\n/** The package manager a non-JS manifest implies, or `''`. */\nfunction manifestPackageManager(dir: string): string {\n if (repoExists(dir, 'pubspec.yaml')) {return 'pub';}\n if (repoExists(dir, 'go.mod')) {return 'go modules';}\n if (listRootCsprojs(dir).length > 0) {return 'NuGet';}\n if (repoExists(dir, 'pom.xml')) {return 'maven';}\n const gradle = ['build.gradle', 'build.gradle.kts', 'settings.gradle', 'settings.gradle.kts'];\n return gradle.some(f => repoExists(dir, f)) ? 'gradle' : '';\n}\n\n/** The JS package manager a committed lockfile names, or `''`. */\nconst LOCKFILES: ReadonlyArray<[file: string, manager: string]> = [\n ['bun.lockb', 'bun'], ['bun.lock', 'bun'], ['pnpm-lock.yaml', 'pnpm'], ['yarn.lock', 'yarn'], ['package-lock.json', 'npm'],\n];\n\n/** Detect the package manager from repo facts — a manifest that implies one,\n * package.json's `packageManager` field, then a lockfile. `''` when there is\n * no evidence: a package.json alone does not say which manager installs it. */\nexport function detectPackageManager(dir: string): string {\n return manifestPackageManager(dir) || declaredPackageManager(dir) || (LOCKFILES.find(([f]) => repoExists(dir, f))?.[1] ?? '');\n}\n\n/** Detect CI/CD */\nexport function detectCicd(dir: string): string | null {\n if (repoExists(dir, '.github/workflows')) {return 'GitHub Actions';}\n if (repoExists(dir, '.gitlab-ci.yml')) {return 'GitLab CI';}\n if (repoExists(dir, '.circleci')) {return 'CircleCI';}\n if (repoExists(dir, 'Jenkinsfile')) {return 'Jenkins';}\n return null;\n}\n\n/** Detect hosting platform — from a platform's own config file. A bare\n * Dockerfile is not one: it shows a container build, not where the app runs. */\nexport function detectHosting(dir: string): string | null {\n if (repoExists(dir, 'vercel.json')) {return 'Vercel';}\n if (repoExists(dir, 'netlify.toml')) {return 'Netlify';}\n if (repoExists(dir, 'wrangler.toml')) {return 'Cloudflare';}\n if (repoExists(dir, 'fly.toml')) {return 'Fly.io';}\n if (repoExists(dir, 'render.yaml')) {return 'Render';}\n return null;\n}\n\n/** Config files that can name a SvelteKit adapter: svelte.config.js up to\n * SvelteKit 2, vite.config.* from SvelteKit 3. */\nconst SVELTE_ADAPTER_CONFIGS = ['svelte.config.js', 'vite.config.ts', 'vite.config.js', 'vite.config.mts', 'vite.config.mjs'];\n\n/** The adapter package's suffix (`vercel`, `node`), from the first config\n * that imports one, else from package.json; null when nothing names one. */\nfunction svelteAdapterName(dir: string): string | null {\n // Match adapter imports: import adapter from '@sveltejs/adapter-vercel'\n // Or: import { adapter } from '@sveltejs/adapter-node'\n // Or: const adapter = require('@sveltejs/adapter-static')\n for (const file of SVELTE_ADAPTER_CONFIGS) {\n const match = readRepoFile(dir, file)?.match(/@sveltejs\\/adapter-(\\w+)/);\n if (match) {return match[1];}\n }\n const pkg = readPackageJson(dir);\n const deps = Object.keys({ ...pkg?.dependencies, ...pkg?.devDependencies });\n return deps.map(d => /^@sveltejs\\/adapter-(\\w+)$/.exec(d)?.[1]).find(Boolean) ?? null;\n}\n\n/** Detect SvelteKit adapter from svelte.config.js, vite.config.* or package.json */\nexport function detectSvelteAdapter(dir: string): string | null {\n const adapter = svelteAdapterName(dir);\n if (adapter) {\n switch (adapter) {\n case 'vercel': return 'Vercel';\n case 'node': return 'Node';\n case 'static': return 'Static';\n case 'cloudflare': return 'Cloudflare';\n case 'netlify': return 'Netlify';\n case 'auto': return 'Auto';\n default: return adapter;\n }\n }\n return null;\n}\n\n/** \"Vite 8\" from the vite range package.json declares (`^8.3.2` → 8), or\n * plain \"Vite\" when the range carries no version number (`latest`). */\nexport function viteLabel(pkg: PackageJson | null): string {\n const range = pkg?.devDependencies?.vite ?? pkg?.dependencies?.vite;\n const major = typeof range === 'string' ? /\\d+/.exec(range)?.[0] : undefined;\n return major === undefined ? 'Vite' : `Vite ${major}`;\n}\n\n/** Detect build tool */\nexport function detectBuildTool(dir: string): string | null {\n const pkg = readPackageJson(dir);\n if (pkg?.devDependencies?.vite || pkg?.dependencies?.vite) {return viteLabel(pkg);}\n if (pkg?.devDependencies?.webpack || pkg?.dependencies?.webpack) {return 'webpack';}\n if (pkg?.devDependencies?.esbuild || pkg?.dependencies?.esbuild) {return 'esbuild';}\n if (repoExists(dir, 'tsconfig.json') && pkg?.devDependencies?.typescript) {return 'TypeScript (tsc)';}\n return null;\n}\n\n/* ─── FAFb v2 chunk helpers (canonical YAML keys read by compile_fafb) ──────\n *\n * These detect content for the brick's `tech_stack`, `key_files`, and\n * `commands` chunks. `architecture` and `context` are deliberately left empty\n * for user fill (architecture overlaps with human_context.how; context is\n * free-form additional signal beyond the 6Ws).\n */\n\n/** Detect a list of important file paths for the `key_files` chunk.\n * Returns up to ~10 entries, ordered by canonical importance. */\nexport function detectKeyFiles(dir: string): string[] {\n const candidates = [\n // Manifests\n 'package.json', 'Cargo.toml', 'pyproject.toml', 'go.mod',\n 'build.zig', 'build.zig.zon',\n // Entry points (TS/JS)\n 'src/index.ts', 'src/index.js', 'src/main.ts', 'src/cli.ts',\n // Entry points (Rust)\n 'src/main.rs', 'src/lib.rs',\n // Entry points (Zig)\n 'src/main.zig', 'src/root.zig',\n // Entry points (Python)\n 'src/__init__.py', 'main.py', '__main__.py',\n // Entry points (Go)\n 'main.go', 'cmd/main.go',\n // Specs / docs\n 'README.md', 'SPECIFICATION.md', 'BINARY-FORMAT.md',\n // Config\n 'tsconfig.json', 'wrangler.toml', 'vercel.json',\n ];\n return candidates.filter(f => repoExists(dir, f));\n}\n\n/** Detect build/test/lint commands for the `commands` chunk.\n * Returns a Record<string, string> mapping command name → shell command. */\nexport function detectCommands(dir: string, pkg: PackageJson | null): Record<string, string> {\n const commands: Record<string, string> = {};\n\n // From package.json scripts (most reliable)\n if (pkg?.scripts) {\n for (const key of ['build', 'test', 'lint', 'dev', 'start']) {\n if (pkg.scripts[key]) {\n // Determine the runner — prefer bun if available, else npm\n const runner = repoExists(dir, 'bun.lock') || repoExists(dir, 'bun.lockb')\n ? 'bun run'\n : 'npm run';\n commands[key] = `${runner} ${key}`;\n }\n }\n }\n\n // Rust: cargo builds and tests every Cargo package. Clippy only when the\n // repo configures it — a Cargo.toml alone does not say the project lints with it.\n if (repoExists(dir, 'Cargo.toml')) {\n if (!commands.build) {commands.build = 'cargo build --release';}\n if (!commands.test) {commands.test = 'cargo test';}\n if (!commands.lint && configuresClippy(dir)) {commands.lint = 'cargo clippy';}\n }\n\n // Zig: build.zig is `zig build`'s own script; `zig build test` only when\n // it defines a test step.\n if (repoExists(dir, 'build.zig')) {\n if (!commands.build) {commands.build = 'zig build';}\n if (!commands.test && /\\.step\\(\\s*\"test\"/.test(readText(dir, 'build.zig'))) {commands.test = 'zig build test';}\n }\n\n // Go: the go tool builds and tests every module.\n if (repoExists(dir, 'go.mod')) {\n if (!commands.build) {commands.build = 'go build ./...';}\n if (!commands.test) {commands.test = 'go test ./...';}\n }\n\n // Python: pytest only when the repo says pytest — a pyproject.toml alone\n // does not (unittest, nox and tox are as common).\n if (!commands.test && usesPytest(dir)) {commands.test = 'pytest';}\n\n return commands;\n}\n\n/** A file's text, or `''` when it cannot be read. */\nfunction readText(dir: string, name: string): string {\n return readRepoFile(dir, name) ?? '';\n}\n\n/** The repo configures Clippy: a clippy.toml, or a `[lints.clippy]` table in Cargo.toml. */\nfunction configuresClippy(dir: string): boolean {\n if (repoExists(dir, 'clippy.toml') || repoExists(dir, '.clippy.toml')) {return true;}\n return /^\\s*\\[(workspace\\.)?lints\\.clippy\\]/m.test(readText(dir, 'Cargo.toml'));\n}\n\n/** The repo says pytest: pytest.ini or conftest.py, or pytest named in\n * pyproject.toml, setup.cfg or tox.ini (its config table or a dependency). */\nfunction usesPytest(dir: string): boolean {\n if (repoExists(dir, 'pytest.ini') || repoExists(dir, 'conftest.py')) {return true;}\n return ['pyproject.toml', 'setup.cfg', 'tox.ini'].some(f => /\\bpytest\\b/.test(readText(dir, f)));\n}\n\n/** Detect a tech-stack list for the `tech_stack` chunk.\n * Combines language + frameworks + runtime into a flat list of strings. */\nexport function detectTechStack(\n dir: string,\n pkg: PackageJson | null,\n frameworks: DetectedFramework[],\n language: string,\n): string[] {\n const stack: string[] = [];\n\n // Language goes first\n if (language && language !== 'Unknown') {stack.push(language);}\n\n // Notable frameworks (frontend / backend / database / build)\n const notableCategories = new Set(['frontend', 'backend', 'database', 'build', 'css', 'state', 'monorepo']);\n for (const fw of frameworks) {\n if (notableCategories.has(fw.category)) {\n stack.push(fw.name);\n }\n }\n\n // Runtime if non-trivial (Node.js by default for JS — only call out Bun/Deno/etc.)\n if (repoExists(dir, 'bunfig.toml')) {stack.push('Bun');}\n else if (repoExists(dir, 'deno.json') || repoExists(dir, 'deno.jsonc')) {stack.push('Deno');}\n\n // Top deps from package.json/Cargo.toml — only if stack is still sparse\n if (stack.length < 3 && pkg?.dependencies) {\n const topDeps = Object.keys(pkg.dependencies).slice(0, 5);\n for (const dep of topDeps) {\n if (!stack.some(s => s.toLowerCase().includes(dep.toLowerCase()))) {\n stack.push(dep);\n }\n }\n }\n\n return stack;\n}\n",
167
167
  "import type { FrameworkSignature } from '../core/types.js';\n\n/** Data-driven framework signatures — one scanner evaluates all */\nexport const FRAMEWORKS: FrameworkSignature[] = [\n // Frontend Frameworks\n { name: 'Next.js', slug: 'nextjs', category: 'frontend', signals: [\n { type: 'dependency', key: 'next' },\n { type: 'file', pattern: 'next.config.*' },\n ]},\n { name: 'React', slug: 'react', category: 'frontend', signals: [\n { type: 'dependency', key: 'react' },\n ]},\n // SvelteKit apps list the kit as a devDependency, and SvelteKit 3 has no\n // svelte.config.js, so the kit in either place is the signal.\n { name: 'SvelteKit', slug: 'sveltekit', category: 'frontend', signals: [\n { type: 'anyDependency', key: '@sveltejs/kit' },\n { type: 'file', pattern: 'svelte.config.*' },\n ]},\n { name: 'Svelte', slug: 'svelte', category: 'frontend', signals: [\n { type: 'dependency', key: 'svelte' },\n { type: 'devDependency', key: 'svelte' },\n ]},\n { name: 'Vue.js', slug: 'vue', category: 'frontend', signals: [\n { type: 'dependency', key: 'vue' },\n ]},\n { name: 'Nuxt', slug: 'nuxt', category: 'frontend', signals: [\n { type: 'dependency', key: 'nuxt' },\n { type: 'file', pattern: 'nuxt.config.*' },\n ]},\n { name: 'Angular', slug: 'angular', category: 'frontend', signals: [\n { type: 'dependency', key: '@angular/core' },\n { type: 'file', pattern: 'angular.json' },\n ]},\n { name: 'Astro', slug: 'astro', category: 'frontend', signals: [\n { type: 'dependency', key: 'astro' },\n { type: 'file', pattern: 'astro.config.*' },\n ]},\n { name: 'Solid', slug: 'solid', category: 'frontend', signals: [\n { type: 'dependency', key: 'solid-js' },\n ]},\n { name: 'Remix', slug: 'remix', category: 'frontend', signals: [\n { type: 'dependency', key: '@remix-run/react' },\n ]},\n { name: 'Gatsby', slug: 'gatsby', category: 'frontend', signals: [\n { type: 'dependency', key: 'gatsby' },\n { type: 'file', pattern: 'gatsby-config.*' },\n ]},\n { name: 'Qwik', slug: 'qwik', category: 'frontend', signals: [\n { type: 'dependency', key: '@builder.io/qwik' },\n ]},\n\n // SvelteKit Adapters (hosting signal)\n { name: 'Vercel (SvelteKit)', slug: 'adapter-vercel', category: 'hosting', signals: [\n { type: 'dependency', key: '@sveltejs/adapter-vercel' },\n { type: 'devDependency', key: '@sveltejs/adapter-vercel' },\n ]},\n { name: 'Node (SvelteKit)', slug: 'adapter-node', category: 'hosting', signals: [\n { type: 'dependency', key: '@sveltejs/adapter-node' },\n { type: 'devDependency', key: '@sveltejs/adapter-node' },\n ]},\n { name: 'Static (SvelteKit)', slug: 'adapter-static', category: 'hosting', signals: [\n { type: 'dependency', key: '@sveltejs/adapter-static' },\n { type: 'devDependency', key: '@sveltejs/adapter-static' },\n ]},\n { name: 'Cloudflare (SvelteKit)', slug: 'adapter-cloudflare', category: 'hosting', signals: [\n { type: 'dependency', key: '@sveltejs/adapter-cloudflare' },\n { type: 'devDependency', key: '@sveltejs/adapter-cloudflare' },\n ]},\n { name: 'Netlify (SvelteKit)', slug: 'adapter-netlify', category: 'hosting', signals: [\n { type: 'dependency', key: '@sveltejs/adapter-netlify' },\n { type: 'devDependency', key: '@sveltejs/adapter-netlify' },\n ]},\n\n // CSS Frameworks\n { name: 'Tailwind CSS', slug: 'tailwind', category: 'css', signals: [\n { type: 'dependency', key: 'tailwindcss' },\n { type: 'devDependency', key: 'tailwindcss' },\n { type: 'file', pattern: 'tailwind.config.*' },\n ]},\n { name: 'Bootstrap', slug: 'bootstrap', category: 'css', signals: [\n { type: 'dependency', key: 'bootstrap' },\n ]},\n { name: 'Styled Components', slug: 'styled-components', category: 'css', signals: [\n { type: 'dependency', key: 'styled-components' },\n ]},\n\n // UI Libraries\n { name: 'shadcn/ui', slug: 'shadcn', category: 'ui', signals: [\n { type: 'file', pattern: 'components.json' },\n { type: 'dependency', key: '@radix-ui/react-dialog' },\n ]},\n { name: 'Material UI', slug: 'mui', category: 'ui', signals: [\n { type: 'dependency', key: '@mui/material' },\n ]},\n { name: 'Chakra UI', slug: 'chakra', category: 'ui', signals: [\n { type: 'dependency', key: '@chakra-ui/react' },\n ]},\n { name: 'Ant Design', slug: 'antd', category: 'ui', signals: [\n { type: 'dependency', key: 'antd' },\n ]},\n\n // State Management\n { name: 'Redux', slug: 'redux', category: 'state', signals: [\n { type: 'dependency', key: '@reduxjs/toolkit' },\n ]},\n { name: 'Zustand', slug: 'zustand', category: 'state', signals: [\n { type: 'dependency', key: 'zustand' },\n ]},\n { name: 'Jotai', slug: 'jotai', category: 'state', signals: [\n { type: 'dependency', key: 'jotai' },\n ]},\n { name: 'Pinia', slug: 'pinia', category: 'state', signals: [\n { type: 'dependency', key: 'pinia' },\n ]},\n\n // Backend Frameworks\n { name: 'Express', slug: 'express', category: 'backend', signals: [\n { type: 'dependency', key: 'express' },\n ]},\n { name: 'Fastify', slug: 'fastify', category: 'backend', signals: [\n { type: 'dependency', key: 'fastify' },\n ]},\n { name: 'Hono', slug: 'hono', category: 'backend', signals: [\n { type: 'dependency', key: 'hono' },\n ]},\n { name: 'Elysia', slug: 'elysia', category: 'backend', signals: [\n { type: 'dependency', key: 'elysia' },\n ]},\n { name: 'NestJS', slug: 'nestjs', category: 'backend', signals: [\n { type: 'dependency', key: '@nestjs/core' },\n ]},\n { name: 'Koa', slug: 'koa', category: 'backend', signals: [\n { type: 'dependency', key: 'koa' },\n ]},\n { name: 'Django', slug: 'django', category: 'backend', signals: [\n { type: 'file', pattern: 'manage.py' },\n { type: 'file', pattern: 'settings.py' },\n ]},\n // Content-aware — app.py/main.py alone ≠ Flask/FastAPI (generic entry-point\n // filenames; same false-positive shape as the Rails/Spring/Vapor kill lines\n // below). Verified live: gemini-faf-mcp's main.py is a Cloud Functions\n // entry point (functions-framework), not FastAPI — bare-file detection\n // misclassified it before this fix.\n { name: 'Flask', slug: 'flask', category: 'backend', signals: [\n { type: 'content', pattern: 'app.py', key: 'flask' },\n ]},\n { name: 'FastAPI', slug: 'fastapi', category: 'backend', signals: [\n { type: 'content', pattern: 'main.py', key: 'fastapi' },\n ]},\n // Content-aware — Gemfile alone ≠ Rails (Ruby Edition kill line).\n { name: 'Rails', slug: 'rails', category: 'backend', signals: [\n { type: 'content', pattern: 'Gemfile', key: 'rails' },\n { type: 'content', pattern: 'Gemfile.lock', key: 'rails (' },\n { type: 'file', pattern: 'config/application.rb' },\n { type: 'file', pattern: 'config/routes.rb' },\n ]},\n // Content-aware — pom.xml / build.gradle alone ≠ Spring Boot (JVM Edition kill line).\n // `content` signals require the needle in the file body (see matchSignal).\n { name: 'Spring Boot', slug: 'spring', category: 'backend', signals: [\n { type: 'content', pattern: 'pom.xml', key: 'spring-boot' },\n { type: 'content', pattern: 'build.gradle', key: 'springframework.boot' },\n { type: 'content', pattern: 'build.gradle.kts', key: 'springframework.boot' },\n { type: 'content', pattern: 'gradle/libs.versions.toml', key: 'springframework.boot' },\n ]},\n // Content-aware — Package.swift alone ≠ app / Vapor (Swift Edition kill line).\n { name: 'Vapor', slug: 'vapor', category: 'backend', signals: [\n { type: 'content', pattern: 'Package.swift', key: 'vapor/vapor' },\n { type: 'content', pattern: 'Package.swift', key: 'product(name: \"Vapor\"' },\n { type: 'content', pattern: 'Package.swift', key: \"product(name: 'Vapor'\" },\n { type: 'file', pattern: 'Sources/App/configure.swift' },\n ]},\n { name: 'Hummingbird', slug: 'hummingbird', category: 'backend', signals: [\n { type: 'content', pattern: 'Package.swift', key: 'hummingbird-project/hummingbird' },\n { type: 'content', pattern: 'Package.swift', key: 'product(name: \"Hummingbird\"' },\n { type: 'content', pattern: 'Package.swift', key: \"product(name: 'Hummingbird'\" },\n ]},\n\n // Databases\n { name: 'Prisma', slug: 'prisma', category: 'database', signals: [\n { type: 'dependency', key: 'prisma' },\n { type: 'devDependency', key: 'prisma' },\n { type: 'file', pattern: 'prisma/schema.prisma' },\n ]},\n { name: 'Drizzle', slug: 'drizzle', category: 'database', signals: [\n { type: 'dependency', key: 'drizzle-orm' },\n { type: 'file', pattern: 'drizzle.config.*' },\n ]},\n { name: 'TypeORM', slug: 'typeorm', category: 'database', signals: [\n { type: 'dependency', key: 'typeorm' },\n ]},\n { name: 'Mongoose', slug: 'mongoose', category: 'database', signals: [\n { type: 'dependency', key: 'mongoose' },\n ]},\n\n // Build Tools\n { name: 'Vite', slug: 'vite', category: 'build', signals: [\n { type: 'dependency', key: 'vite' },\n { type: 'devDependency', key: 'vite' },\n { type: 'file', pattern: 'vite.config.*' },\n ]},\n { name: 'webpack', slug: 'webpack', category: 'build', signals: [\n { type: 'dependency', key: 'webpack' },\n { type: 'devDependency', key: 'webpack' },\n { type: 'file', pattern: 'webpack.config.*' },\n ]},\n { name: 'esbuild', slug: 'esbuild', category: 'build', signals: [\n { type: 'dependency', key: 'esbuild' },\n { type: 'devDependency', key: 'esbuild' },\n ]},\n { name: 'Turbopack', slug: 'turbopack', category: 'build', signals: [\n { type: 'file', pattern: 'turbo.json' },\n ]},\n\n // Testing\n { name: 'Jest', slug: 'jest', category: 'testing', signals: [\n { type: 'devDependency', key: 'jest' },\n { type: 'file', pattern: 'jest.config.*' },\n ]},\n { name: 'Vitest', slug: 'vitest', category: 'testing', signals: [\n { type: 'devDependency', key: 'vitest' },\n ]},\n { name: 'Playwright', slug: 'playwright', category: 'testing', signals: [\n { type: 'devDependency', key: '@playwright/test' },\n { type: 'file', pattern: 'playwright.config.*' },\n ]},\n { name: 'Cypress', slug: 'cypress', category: 'testing', signals: [\n { type: 'devDependency', key: 'cypress' },\n { type: 'file', pattern: 'cypress.config.*' },\n ]},\n\n // Monorepo Tools\n { name: 'Turborepo', slug: 'turborepo', category: 'monorepo', signals: [\n { type: 'devDependency', key: 'turbo' },\n { type: 'file', pattern: 'turbo.json' },\n ]},\n { name: 'Nx', slug: 'nx', category: 'monorepo', signals: [\n { type: 'devDependency', key: 'nx' },\n { type: 'file', pattern: 'nx.json' },\n ]},\n { name: 'Lerna', slug: 'lerna', category: 'monorepo', signals: [\n { type: 'devDependency', key: 'lerna' },\n { type: 'file', pattern: 'lerna.json' },\n ]},\n\n // MCP / AI\n { name: 'MCP SDK', slug: 'mcp', category: 'ai', signals: [\n { type: 'dependency', key: '@modelcontextprotocol/sdk' },\n ]},\n { name: 'Anthropic SDK', slug: 'anthropic', category: 'ai', signals: [\n { type: 'dependency', key: '@anthropic-ai/sdk' },\n ]},\n { name: 'OpenAI SDK', slug: 'openai', category: 'ai', signals: [\n { type: 'dependency', key: 'openai' },\n ]},\n { name: 'LangChain', slug: 'langchain', category: 'ai', signals: [\n { type: 'dependency', key: 'langchain' },\n ]},\n\n // Hosting / Deploy\n { name: 'Vercel', slug: 'vercel', category: 'hosting', signals: [\n { type: 'file', pattern: 'vercel.json' },\n ]},\n { name: 'Netlify', slug: 'netlify', category: 'hosting', signals: [\n { type: 'file', pattern: 'netlify.toml' },\n ]},\n { name: 'Docker', slug: 'docker', category: 'hosting', signals: [\n { type: 'file', pattern: 'Dockerfile' },\n { type: 'file', pattern: 'docker-compose.yml' },\n ]},\n { name: 'Cloudflare Workers', slug: 'cloudflare', category: 'hosting', signals: [\n { type: 'file', pattern: 'wrangler.toml' },\n { type: 'dependency', key: 'wrangler' },\n ]},\n\n // CI/CD\n { name: 'GitHub Actions', slug: 'github-actions', category: 'cicd', signals: [\n { type: 'file', pattern: '.github/workflows/*.yml' },\n ]},\n\n // Commander (CLI indicator)\n { name: 'Commander.js', slug: 'commander', category: 'cli', signals: [\n { type: 'dependency', key: 'commander' },\n ]},\n];\n",
168
168
  "import { join } from 'path';\nimport { readRepoDir, readRepoFile, repoExists } from '../core/safe-write.js';\nimport spec from './dart-detection.json';\n\n/**\n * Dart/Flutter detection — CONTENT-AWARE pubspec classification.\n *\n * A pubspec.yaml alone does NOT mean Flutter. The same manifest backs Flutter\n * apps, pure-Dart CLIs, packages, servers (Dart Frog / Shelf / Serverpod), and\n * MCP servers (dart_mcp / mcp_server). We read the dependencies and branch —\n * collapsing everything to \"Flutter\" is the bug this module fixes.\n *\n * Single source of truth for Dart: imported by both the v6 scanner (app-type +\n * language) and Turbo-Cat (stack fills), so the two engines agree by construction.\n */\n\nexport type DartAppType = 'mobile' | 'mcp' | 'backend' | 'cli' | 'library';\n\nexport interface DartProject {\n /** faf app_type — Flutter→mobile, Dart MCP→mcp, Dart server→backend, CLI→cli, else library. */\n appType: DartAppType;\n isFlutter: boolean;\n /** Primary framework for the stack (Flutter / Dart Frog / Serverpod / Shelf / …) or ''. */\n framework: string;\n /** Flutter state management (Riverpod / Bloc / Provider / GetX / MobX / Signals) or ''. */\n stateManagement: string;\n /** Routing (go_router / auto_route) or ''. */\n routing: string;\n /** Test framework (flutter_test / test) or ''. */\n testing: string;\n /** Human-readable rationale for the .faf `# found:` comment (Glass Hood). */\n found: string;\n}\n\n// Detection KNOWLEDGE is sourced from dart-detection.json — the single,\n// language-neutral spec faf-cli imports and faf-python-sdk vendors (A+B hybrid).\n// Bolster Dart/Flutter by editing that JSON; every engine inherits it.\nconst FLUTTER_DEPS = spec.flutterDeps as string[];\nconst MCP_DEPS = spec.mcpDeps as string[];\nconst SERVER_FRAMEWORKS = spec.serverFrameworks as Array<[string, string]>;\nconst STATE_MGMT = spec.stateManagement as Array<[string, string]>;\nconst ROUTING = spec.routing as Array<[string, string]>;\n\n/** Collect dependency names from a pubspec's dependencies / dev_dependencies sections. */\nfunction pubspecDeps(content: string): Set<string> {\n const deps = new Set<string>();\n let inDeps = false;\n for (const line of content.split('\\n')) {\n if (/^(dependencies|dev_dependencies|dependency_overrides):\\s*$/.test(line)) {\n inDeps = true;\n continue;\n }\n // A new top-level key (no leading whitespace) ends the dependency section.\n if (/^\\S/.test(line)) {inDeps = false;}\n if (inDeps) {\n const m = line.match(/^\\s{2}([a-zA-Z0-9_]+):/);\n if (m) {deps.add(m[1].toLowerCase());}\n }\n }\n return deps;\n}\n\n/** Classify a Dart/Flutter project from its pubspec.yaml. Returns null if not Dart. */\nexport function detectDartProject(dir: string): DartProject | null {\n const content = readRepoFile(dir, 'pubspec.yaml');\n if (content === null) {return null;}\n\n const deps = pubspecDeps(content);\n const has = (d: string) => deps.has(d.toLowerCase());\n\n // Flutter: the `flutter` SDK dep, a top-level `flutter:` section, or `sdk: flutter`.\n const isFlutter = FLUTTER_DEPS.some(has) || /^flutter:\\s*$/m.test(content) || /\\bsdk:\\s*flutter\\b/.test(content);\n\n const mcpDep = MCP_DEPS.find(has);\n const server = SERVER_FRAMEWORKS.find(([d]) => has(d));\n const stateEntry = STATE_MGMT.find(([d]) => has(d));\n const stateManagement = stateEntry ? stateEntry[1] : '';\n const routeEntry = ROUTING.find(([d]) => has(d));\n const routing = routeEntry ? routeEntry[1] : '';\n const testing = has('flutter_test') ? 'flutter_test' : has('test') ? 'test' : '';\n\n // CLI: a top-level `executables:` section, or bin/*.dart entry points.\n const hasExecutables = /^executables:\\s*$/m.test(content);\n const hasBinDart = (readRepoDir(dir, 'bin') ?? []).some(e => e.name.endsWith('.dart'));\n const isCli = hasExecutables || hasBinDart;\n\n let appType: DartAppType;\n let framework = '';\n let found: string;\n\n if (isFlutter) {\n framework = 'Flutter';\n // App vs package: an app has lib/main.dart (the entry) or `publish_to: none`;\n // a reusable Flutter package has neither — it's publishable, lib/ exports only.\n const isApp = repoExists(dir, join('lib', 'main.dart')) || /^publish_to:\\s*['\"]?none\\b/m.test(content);\n if (isApp) {\n appType = 'mobile';\n found = 'pubspec.yaml (Flutter app)';\n } else {\n appType = 'library';\n found = 'pubspec.yaml (Flutter package)';\n }\n } else if (mcpDep) {\n appType = 'mcp';\n found = `pubspec.yaml + ${mcpDep} (Dart MCP server)`;\n } else if (server) {\n appType = 'backend';\n framework = server[1];\n found = `pubspec.yaml + ${server[0]} (Dart backend)`;\n } else if (isCli) {\n appType = 'cli';\n found = hasExecutables ? 'pubspec.yaml executables: (Dart CLI)' : 'pubspec.yaml + bin/*.dart (Dart CLI)';\n } else {\n appType = 'library';\n found = 'pubspec.yaml (Dart package)';\n }\n\n return { appType, isFlutter, framework, stateManagement, routing, testing, found };\n}\n",
169
169
  "import { join } from 'path';\nimport { readRepoDir, readRepoFile, statRepoFile } from '../core/safe-write.js';\nimport spec from './go-detection.json';\n\n/**\n * Go detection — CONTENT-AWARE go.mod classification.\n *\n * A go.mod alone does NOT mean \"backend\" or \"CLI\". The same module file backs\n * libraries, HTTP servers (Gin / Echo / Fiber / Chi), CLIs (Cobra), and MCP\n * servers (mcp-go). We read require paths and light layout signals, then branch.\n *\n * Same composition pattern as dart.ts: knowledge in go-detection.json, logic here.\n * Turbo-Cat + scanner both call detectGoProject so they agree by construction.\n */\n\nexport type GoAppType = 'mcp' | 'backend' | 'cli' | 'library';\n\nexport interface GoProject {\n /** faf app_type — MCP→mcp, server→backend, CLI→cli, else library. */\n appType: GoAppType;\n /** Module path from `module` line, or ''. */\n modulePath: string;\n /** Primary framework (Gin / Cobra / …) or ''. */\n framework: string;\n /** Human-readable rationale for the .faf `# found:` comment (Glass Hood). */\n found: string;\n}\n\nconst MCP_MODULES = spec.mcpModules as string[];\nconst SERVER_FRAMEWORKS = spec.serverFrameworks as Array<[string, string]>;\nconst CLI_FRAMEWORKS = spec.cliFrameworks as Array<[string, string]>;\n\n/** Collect require module paths from go.mod (require X and require ( … ) blocks). */\nexport function goModRequires(content: string): Set<string> {\n const reqs = new Set<string>();\n let inBlock = false;\n for (const raw of content.split('\\n')) {\n const line = raw.replace(/\\/\\/.*$/, '').trim();\n if (!line) {continue;}\n if (/^require\\s*\\(\\s*$/.test(line)) {\n inBlock = true;\n continue;\n }\n if (inBlock) {\n if (line === ')') {\n inBlock = false;\n continue;\n }\n const m = line.match(/^(\\S+)/);\n if (m) {reqs.add(m[1].toLowerCase());}\n continue;\n }\n // Single-line: require github.com/foo/bar v1.2.3\n const single = line.match(/^require\\s+(\\S+)/);\n if (single && single[1] !== '(') {reqs.add(single[1].toLowerCase());}\n }\n return reqs;\n}\n\n/** True if any require equals or is a subpath of the module path. */\nfunction hasModule(reqs: Set<string>, mod: string): boolean {\n const m = mod.toLowerCase();\n for (const r of reqs) {\n if (r === m || r.startsWith(`${m}/`)) {return true;}\n }\n return false;\n}\n\n/**\n * Longest knowledge-path match wins (echo/v4 over echo), so found strings cite\n * the most specific module entry and versioned paths don't collapse to the base.\n */\nfunction findLongest(\n reqs: Set<string>,\n entries: Array<[string, string]>,\n): [string, string] | undefined {\n let best: [string, string] | undefined;\n for (const e of entries) {\n if (!hasModule(reqs, e[0])) {continue;}\n if (!best || e[0].length > best[0].length) {best = e;}\n }\n return best;\n}\n\nfunction findLongestPath(reqs: Set<string>, paths: string[]): string | undefined {\n let best: string | undefined;\n for (const p of paths) {\n if (!hasModule(reqs, p)) {continue;}\n if (!best || p.length > best.length) {best = p;}\n }\n return best;\n}\n\nfunction extractModulePath(content: string): string {\n const m = content.match(/^module\\s+(\\S+)/m);\n return m ? m[1] : '';\n}\n\n/** Layout signal: cmd/ with Go files → common CLI / multi-main layout. */\nfunction hasCmdDir(dir: string): boolean {\n for (const { name } of readRepoDir(dir, 'cmd') ?? []) {\n const p = join('cmd', name);\n const st = statRepoFile(dir, p);\n if (st?.isDirectory()) {\n if ((readRepoDir(dir, p) ?? []).some(e => e.name.endsWith('.go'))) {return true;}\n } else if (st && name.endsWith('.go')) {\n return true;\n }\n }\n return false;\n}\n\n/** Root main.go that declares package main. */\nfunction hasRootMainPackage(dir: string): boolean {\n const body = readRepoFile(dir, 'main.go');\n return body !== null && /^package\\s+main\\b/m.test(body);\n}\n\n/** Classify a Go project from go.mod (+ light layout). Returns null if not Go. */\nexport function detectGoProject(dir: string): GoProject | null {\n const content = readRepoFile(dir, 'go.mod');\n if (content === null) {return null;}\n\n const modulePath = extractModulePath(content);\n const reqs = goModRequires(content);\n\n const mcpMod = findLongestPath(reqs, MCP_MODULES);\n const server = findLongest(reqs, SERVER_FRAMEWORKS);\n const cliFw = findLongest(reqs, CLI_FRAMEWORKS);\n const cmdLayout = hasCmdDir(dir);\n const rootMain = hasRootMainPackage(dir);\n\n let appType: GoAppType;\n let framework = '';\n let found: string;\n\n // Priority: MCP → server → CLI (deps or layout) → library.\n // go.mod alone is never \"backend\" — pure library modules stay library.\n if (mcpMod) {\n appType = 'mcp';\n found = `go.mod + ${mcpMod} (Go MCP server)`;\n } else if (server) {\n appType = 'backend';\n framework = server[1];\n found = `go.mod + ${server[0]} (Go backend)`;\n } else if (cliFw) {\n appType = 'cli';\n framework = cliFw[1];\n found = `go.mod + ${cliFw[0]} (Go CLI)`;\n } else if (cmdLayout) {\n appType = 'cli';\n found = 'go.mod + cmd/ (Go CLI layout)';\n } else if (rootMain && !server) {\n // package main at root without a known server framework → treat as CLI/tool.\n // (Servers almost always pull gin/echo/fiber; bare main is often a tool.)\n appType = 'cli';\n found = 'go.mod + main.go package main (Go CLI)';\n } else {\n appType = 'library';\n found = 'go.mod (Go module)';\n }\n\n return { appType, modulePath, framework, found };\n}\n",
@@ -171,7 +171,7 @@
171
171
  "import { join } from 'path';\nimport { readRepoDir, readRepoFile, repoExists, statRepoFile } from '../core/safe-write.js';\nimport spec from './jvm-detection.json';\n\n/**\n * JVM (Java / Kotlin) detection — CONTENT-AWARE pom / gradle classification.\n *\n * Kill line: pom / gradle alone ≠ type.\n * One brand: JVM. Android + KMP are facets, not a second \"Kotlin Edition\".\n *\n * Signal graph: settings → modules → plugins/parents/packaging →\n * version catalogs (libs.versions.toml) → deps/starters.\n *\n * Same composition as go.ts / csharp.ts: knowledge in jvm-detection.json.\n */\n\nexport type JvmAppType = 'mcp' | 'backend' | 'cli' | 'library' | 'mobile';\n\nexport interface JvmProject {\n appType: JvmAppType;\n /** Primary framework label (Spring Boot / Quarkus / …) or ''. */\n framework: string;\n buildTool: 'maven' | 'gradle';\n /** Best-effort language signal for slots. */\n mainLanguage: 'Java' | 'Kotlin' | 'Java/Kotlin';\n /** Facets: android · multiplatform (not product brands). */\n facets: string[];\n /** Glass Hood rationale for .faf `# found:`. */\n found: string;\n}\n\ninterface Catalog {\n plugins: Map<string, string>; // alias → plugin id\n libraries: Map<string, string>; // alias → group:artifact\n}\n\ninterface ModuleSignals {\n path: string;\n plugins: Set<string>;\n artifacts: Set<string>; // group:artifact lowercase\n packaging: string;\n parents: Set<string>; // group:artifact\n hasMainClass: boolean;\n hasApplicationPlugin: boolean;\n sourceHints: Set<string>; // androidMain, commonMain, jvmMain, …\n kotlinSources: boolean;\n javaSources: boolean;\n buildTool: 'maven' | 'gradle';\n}\n\nconst MCP_ARTIFACTS = (spec.mcpArtifacts as string[]).map(a => a.toLowerCase());\nconst WEB_PLUGINS = (spec.webPlugins as Array<[string, string]>).map(\n ([id, label]) => [id.toLowerCase(), label] as [string, string],\n);\nconst WEB_PARENTS = (spec.webParents as Array<[string, string]>).map(\n ([id, label]) => [id.toLowerCase(), label] as [string, string],\n);\nconst WEB_ARTIFACTS = (spec.webArtifacts as Array<[string, string]>).map(\n ([id, label]) => [id.toLowerCase(), label] as [string, string],\n);\nconst ANDROID_PLUGINS = (spec.androidPlugins as string[]).map(p => p.toLowerCase());\nconst KMP_PLUGINS = (spec.kmpPlugins as string[]).map(p => p.toLowerCase());\nconst JVM_KOTLIN_PLUGINS = (spec.jvmKotlinPlugins as string[]).map(p => p.toLowerCase());\nconst CLI_PLUGINS = (spec.cliPlugins as Array<[string, string]>).map(\n ([id, label]) => [id.toLowerCase(), label] as [string, string],\n);\nconst CLI_ARTIFACTS = (spec.cliArtifacts as Array<[string, string]>).map(\n ([id, label]) => [id.toLowerCase(), label] as [string, string],\n);\nconst LIBRARY_PLUGINS = (spec.libraryPlugins as string[]).map(p => p.toLowerCase());\n\nconst JVM_ROOT_MARKERS = [\n 'pom.xml',\n 'build.gradle',\n 'build.gradle.kts',\n 'settings.gradle',\n 'settings.gradle.kts',\n];\n\n/** True if directory looks like a JVM project root (or multi-module root). */\nexport function isJvmRoot(dir: string): boolean {\n return JVM_ROOT_MARKERS.some(f => repoExists(dir, f));\n}\n\n/** Minimal TOML-ish parse for gradle/libs.versions.toml plugins + libraries. */\nexport function parseVersionCatalog(content: string): Catalog {\n const plugins = new Map<string, string>();\n const libraries = new Map<string, string>();\n let section = '';\n\n for (const raw of content.split('\\n')) {\n const line = raw.replace(/#.*$/, '').trim();\n if (!line) {continue;}\n const sec = line.match(/^\\[([^\\]]+)\\]$/);\n if (sec) {\n section = sec[1].trim().toLowerCase();\n continue;\n }\n\n // alias = { id = \"org.springframework.boot\", ... }\n const objId = line.match(/^([A-Za-z0-9_.-]+)\\s*=\\s*\\{[^}]*\\bid\\s*=\\s*\"([^\"]+)\"/);\n if (objId && (section === 'plugins' || section.endsWith('.plugins'))) {\n plugins.set(objId[1].replace(/-/g, '.').toLowerCase(), objId[2].toLowerCase());\n plugins.set(objId[1].toLowerCase(), objId[2].toLowerCase());\n continue;\n }\n // alias = { module = \"g:a\", ... } or group + name\n const objMod = line.match(/^([A-Za-z0-9_.-]+)\\s*=\\s*\\{[^}]*\\bmodule\\s*=\\s*\"([^\"]+)\"/);\n if (objMod && (section === 'libraries' || section.endsWith('.libraries'))) {\n const key = objMod[1].toLowerCase();\n libraries.set(key, objMod[2].toLowerCase());\n libraries.set(key.replace(/-/g, '.'), objMod[2].toLowerCase());\n continue;\n }\n const objGroup = line.match(\n /^([A-Za-z0-9_.-]+)\\s*=\\s*\\{[^}]*\\bgroup\\s*=\\s*\"([^\"]+)\"[^}]*\\bname\\s*=\\s*\"([^\"]+)\"/,\n );\n if (objGroup && (section === 'libraries' || section.endsWith('.libraries'))) {\n const ga = `${objGroup[2]}:${objGroup[3]}`.toLowerCase();\n const key = objGroup[1].toLowerCase();\n libraries.set(key, ga);\n libraries.set(key.replace(/-/g, '.'), ga);\n continue;\n }\n // alias = \"g:a:v\" or \"plugin.id:version\"\n const plain = line.match(/^([A-Za-z0-9_.-]+)\\s*=\\s*\"([^\"]+)\"/);\n if (plain) {\n const key = plain[1].toLowerCase();\n const val = plain[2];\n if (section === 'plugins' || section.endsWith('.plugins')) {\n const id = val.split(':')[0].toLowerCase();\n plugins.set(key, id);\n plugins.set(key.replace(/-/g, '.'), id);\n } else if (section === 'libraries' || section.endsWith('.libraries')) {\n const parts = val.split(':');\n if (parts.length >= 2) {\n const ga = `${parts[0]}:${parts[1]}`.toLowerCase();\n libraries.set(key, ga);\n libraries.set(key.replace(/-/g, '.'), ga);\n }\n }\n }\n }\n return { plugins, libraries };\n}\n\nfunction loadCatalog(root: string): Catalog {\n const body = readRepoFile(root, join('gradle', 'libs.versions.toml'));\n if (!body) {return { plugins: new Map(), libraries: new Map() };}\n return parseVersionCatalog(body);\n}\n\n/** Parse settings.gradle(.kts) include lines → relative module paths. */\nexport function parseSettingsIncludes(content: string): string[] {\n const mods: string[] = [];\n // include(\"app\", \"lib\") or include 'app', 'lib' or include(\":app\")\n for (const m of content.matchAll(/include\\s*\\(\\s*([^)]+)\\)/g)) {\n for (const part of m[1].split(',')) {\n const name = part.replace(/['\":\\s]/g, '').replace(/^:/, '');\n if (name) {mods.push(name.replace(/:/g, '/'));}\n }\n }\n for (const m of content.matchAll(/include\\s+((?:['\"][^'\"]+['\"]\\s*,?\\s*)+)/g)) {\n for (const part of m[1].split(',')) {\n const name = part.replace(/['\":\\s]/g, '').replace(/^:/, '');\n if (name) {mods.push(name.replace(/:/g, '/'));}\n }\n }\n // project(\":app\").projectDir = file(\"applications/app\")\n for (const m of content.matchAll(\n /project\\s*\\(\\s*[\"']:([^\"']+)[\"']\\s*\\)\\s*\\.projectDir\\s*=\\s*file\\s*\\(\\s*[\"']([^\"']+)[\"']\\s*\\)/g,\n )) {\n mods.push(m[2].replace(/^\\.\\//, ''));\n }\n return [...new Set(mods)];\n}\n\nfunction extractGradlePlugins(content: string, catalog: Catalog): Set<string> {\n const plugins = new Set<string>();\n // id(\"org.springframework.boot\") version \"…\"\n for (const m of content.matchAll(/\\bid\\s*\\(\\s*[\"']([^\"']+)[\"']\\s*\\)/g)) {\n plugins.add(m[1].toLowerCase());\n }\n // id 'org.springframework.boot'\n for (const m of content.matchAll(/\\bid\\s+['\"]([^'\"]+)['\"]/g)) {\n plugins.add(m[1].toLowerCase());\n }\n // plugins { application · java · `java-library` } bare / backtick ids\n for (const block of content.matchAll(/plugins\\s*\\{([\\s\\S]*?)\\}/g)) {\n for (const raw of block[1].split(/[\\n;]/)) {\n const line = raw.replace(/\\/\\/.*$/, '').trim();\n if (!line || line.startsWith('id') || line.startsWith('kotlin') || line.startsWith('alias')) {\n continue;\n }\n const bare = line.match(/^`([a-zA-Z0-9.-]+)`$/) || line.match(/^([a-zA-Z][a-zA-Z0-9.-]*)$/);\n if (bare) {plugins.add(bare[1].toLowerCase());}\n }\n }\n // kotlin(\"jvm\") / kotlin(\"multiplatform\")\n for (const m of content.matchAll(/\\bkotlin\\s*\\(\\s*[\"']([^\"']+)[\"']\\s*\\)/g)) {\n const k = m[1].toLowerCase();\n if (k === 'jvm') {plugins.add('org.jetbrains.kotlin.jvm');}\n else if (k === 'multiplatform') {plugins.add('org.jetbrains.kotlin.multiplatform');}\n else if (k === 'android') {plugins.add('org.jetbrains.kotlin.android');}\n else {plugins.add(`org.jetbrains.kotlin.${k}`);}\n }\n // alias(libs.plugins.spring.boot) or libs.plugins.spring.boot\n for (const m of content.matchAll(/libs\\.plugins\\.([A-Za-z0-9_.]+)/g)) {\n const alias = m[1].toLowerCase();\n const resolved =\n catalog.plugins.get(alias) ||\n catalog.plugins.get(alias.replace(/\\./g, '-')) ||\n catalog.plugins.get(alias.replace(/-/g, '.'));\n if (resolved) {plugins.add(resolved);}\n else {\n // Heuristic: spring.boot → often org.springframework.boot\n if (alias.includes('spring') && alias.includes('boot')) {\n plugins.add('org.springframework.boot');\n }\n }\n }\n // apply plugin: 'java'\n for (const m of content.matchAll(/apply\\s+plugin\\s*:\\s*['\"]([^'\"]+)['\"]/g)) {\n plugins.add(m[1].toLowerCase());\n }\n return plugins;\n}\n\nfunction extractGradleArtifacts(content: string, catalog: Catalog): Set<string> {\n const arts = new Set<string>();\n // \"g:a:v\" or 'g:a:v'\n for (const m of content.matchAll(/[\"']([A-Za-z0-9_.-]+:[A-Za-z0-9_.-]+)(?::[^\"']+)?[\"']/g)) {\n arts.add(m[1].toLowerCase());\n }\n // libs.spring.boot.starter.web → alias spring-boot-starter-web / spring.boot.starter.web\n for (const m of content.matchAll(/libs\\.([A-Za-z0-9_.]+)/g)) {\n const alias = m[1].toLowerCase();\n if (alias.startsWith('plugins.')) {continue;}\n const keys = [\n alias,\n alias.replace(/\\./g, '-'),\n alias.replace(/-/g, '.'),\n ];\n for (const k of keys) {\n const ga = catalog.libraries.get(k);\n if (ga) {\n arts.add(ga.includes(':') ? ga.split(':').slice(0, 2).join(':') : ga);\n break;\n }\n }\n }\n return arts;\n}\n\nfunction extractMavenSignals(content: string): {\n packaging: string;\n parents: Set<string>;\n artifacts: Set<string>;\n modules: string[];\n} {\n const packaging =\n (content.match(/<packaging>\\s*([^<]+?)\\s*<\\/packaging>/i)?.[1] || 'jar').trim().toLowerCase();\n const parents = new Set<string>();\n const parentBlock = content.match(/<parent>([\\s\\S]*?)<\\/parent>/i);\n if (parentBlock) {\n const g = parentBlock[1].match(/<groupId>\\s*([^<]+?)\\s*<\\/groupId>/i)?.[1]?.trim();\n const a = parentBlock[1].match(/<artifactId>\\s*([^<]+?)\\s*<\\/artifactId>/i)?.[1]?.trim();\n if (g && a) {parents.add(`${g}:${a}`.toLowerCase());}\n }\n const artifacts = new Set<string>();\n for (const m of content.matchAll(/<dependency>([\\s\\S]*?)<\\/dependency>/gi)) {\n const g = m[1].match(/<groupId>\\s*([^<]+?)\\s*<\\/groupId>/i)?.[1]?.trim();\n const a = m[1].match(/<artifactId>\\s*([^<]+?)\\s*<\\/artifactId>/i)?.[1]?.trim();\n if (g && a) {artifacts.add(`${g}:${a}`.toLowerCase());}\n }\n const modules: string[] = [];\n for (const m of content.matchAll(/<module>\\s*([^<]+?)\\s*<\\/module>/gi)) {\n modules.push(m[1].trim());\n }\n return { packaging, parents, artifacts, modules };\n}\n\nfunction hasPlugin(plugins: Set<string>, id: string): boolean {\n const n = id.toLowerCase();\n if (plugins.has(n)) {return true;}\n for (const p of plugins) {\n if (p === n || p.endsWith(`.${n}`) || p === n.replace(/^org\\.gradle\\./, '')) {return true;}\n }\n return false;\n}\n\nfunction findLabeled(\n set: Set<string>,\n entries: Array<[string, string]>,\n mode: 'plugin' | 'artifact' | 'parent',\n): [string, string] | undefined {\n let best: [string, string] | undefined;\n for (const [id, label] of entries) {\n let hit = false;\n if (mode === 'plugin') {hit = hasPlugin(set, id);}\n else {\n hit = set.has(id) || [...set].some(a => a === id || a.startsWith(`${id}:`) || a.startsWith(`${id}.`));\n // artifact prefix match group:artifact\n if (!hit && mode === 'artifact') {\n hit = [...set].some(a => a === id || a.startsWith(`${id}`));\n }\n }\n if (!hit) {continue;}\n if (!best || id.length > best[0].length) {best = [id, label];}\n }\n return best;\n}\n\nfunction hasMcp(artifacts: Set<string>): string | undefined {\n let best: string | undefined;\n for (const id of MCP_ARTIFACTS) {\n for (const a of artifacts) {\n if (a === id || a.startsWith(`${id}:`) || a.startsWith(id.replace(/:mcp$/, ':'))) {\n if (!best || id.length > best.length) {best = id;}\n }\n // any io.modelcontextprotocol\n if (a.startsWith('io.modelcontextprotocol') || a.includes('spring-ai-starter-mcp') || a.includes('spring-ai-mcp')) {\n if (!best || a.length > best.length) {best = a;}\n }\n }\n }\n return best;\n}\n\n/** Source hints under the module folder `rel` of the project folder `root`. */\nfunction probeSources(root: string, rel: string): { kotlin: boolean; java: boolean; hints: Set<string> } {\n const hints = new Set<string>();\n let kotlin = false;\n let java = false;\n const roots = [\n join(rel, 'src'),\n join(rel, 'src', 'main'),\n ];\n const walk = (p: string, depth: number): void => {\n if (depth > 4) {return;}\n const entries = readRepoDir(root, p);\n if (!entries) {return;}\n for (const { name } of entries) {\n if (name === 'androidMain' || name === 'commonMain' || name === 'jvmMain' || name === 'iosMain') {\n hints.add(name);\n }\n const full = join(p, name);\n const st = statRepoFile(root, full);\n if (!st) {continue;}\n if (st.isDirectory()) {walk(full, depth + 1);}\n else if (name.endsWith('.kt') || name.endsWith('.kts')) {kotlin = true;}\n else if (name.endsWith('.java')) {java = true;}\n }\n };\n for (const r of roots) {walk(r, 0);}\n // also check kotlin dsl only at module root as language signal is weak — skip\n return { kotlin, java, hints };\n}\n\nfunction classifyModule(sig: ModuleSignals): Omit<JvmProject, 'buildTool' | 'mainLanguage'> & {\n buildTool: 'maven' | 'gradle';\n mainLanguage: 'Java' | 'Kotlin' | 'Java/Kotlin';\n} {\n const facets: string[] = [];\n const plugins = sig.plugins;\n const arts = sig.artifacts;\n\n const isKmp = KMP_PLUGINS.some(p => hasPlugin(plugins, p)) || sig.sourceHints.has('commonMain');\n const isAndroidApp = hasPlugin(plugins, 'com.android.application');\n const isAndroidLib =\n hasPlugin(plugins, 'com.android.library') ||\n hasPlugin(plugins, 'com.android.kotlin.multiplatform.library');\n if (isAndroidApp || isAndroidLib) {facets.push('android');}\n if (isKmp) {facets.push('multiplatform');}\n\n const mcp = hasMcp(arts);\n const webPlug = findLabeled(plugins, WEB_PLUGINS, 'plugin');\n const webParent = findLabeled(sig.parents, WEB_PARENTS, 'parent');\n const webArt = findLabeled(arts, WEB_ARTIFACTS, 'artifact');\n const cliPlug = findLabeled(plugins, CLI_PLUGINS, 'plugin');\n const cliArt = findLabeled(arts, CLI_ARTIFACTS, 'artifact');\n const isLibPlugin = LIBRARY_PLUGINS.some(p => hasPlugin(plugins, p));\n const isAggregator = sig.packaging === 'pom';\n\n let appType: JvmAppType;\n let framework = '';\n let found: string;\n\n // Priority: KMP facet noted always; Android app → mobile; MCP → mcp; web → backend; CLI → cli; else library\n if (isAndroidApp) {\n appType = 'mobile';\n framework = isKmp ? 'Android+KMP' : 'Android';\n found = `${sig.path || 'root'} + com.android.application (${framework})`;\n } else if (mcp) {\n appType = 'mcp';\n framework = 'MCP';\n facets.push('mcp');\n found = `${sig.path || 'root'} + ${mcp} (JVM MCP server)`;\n } else if (webPlug || webParent || webArt) {\n appType = 'backend';\n framework = webPlug?.[1] || webParent?.[1] || webArt?.[1] || 'JVM';\n const via = webPlug?.[0] || webParent?.[0] || webArt?.[0] || 'web';\n found = `${sig.path || 'root'} + ${via} (JVM backend)`;\n } else if (isKmp && !isAndroidLib) {\n // Shared KMP without android application — library with multiplatform facet\n appType = 'library';\n framework = 'Kotlin Multiplatform';\n found = `${sig.path || 'root'} + kotlin multiplatform (KMP library)`;\n } else if (isAndroidLib) {\n appType = 'library';\n framework = isKmp ? 'Android+KMP' : 'Android';\n found = `${sig.path || 'root'} + android library (${framework})`;\n } else if (cliArt || (sig.hasApplicationPlugin && (sig.hasMainClass || cliPlug)) || (cliPlug && sig.hasMainClass)) {\n appType = 'cli';\n framework = cliArt?.[1] || 'application';\n found = cliArt\n ? `${sig.path || 'root'} + ${cliArt[0]} (JVM CLI)`\n : `${sig.path || 'root'} + application plugin (JVM CLI)`;\n } else if (sig.hasApplicationPlugin && !isLibPlugin) {\n appType = 'cli';\n framework = 'application';\n found = `${sig.path || 'root'} + application plugin (JVM CLI)`;\n } else if (isAggregator) {\n appType = 'library';\n found = `${sig.path || 'root'} + packaging=pom (Maven aggregator/BOM)`;\n } else {\n appType = 'library';\n const lang = sig.kotlinSources && !sig.javaSources ? 'Kotlin' : 'JVM';\n found = `${sig.path || 'root'} (${lang} library)`;\n if (isLibPlugin) {found = `${sig.path || 'root'} + java-library (JVM library)`;}\n }\n\n let mainLanguage: 'Java' | 'Kotlin' | 'Java/Kotlin' = 'Java';\n if (sig.kotlinSources && sig.javaSources) {mainLanguage = 'Java/Kotlin';}\n else if (sig.kotlinSources || JVM_KOTLIN_PLUGINS.some(p => hasPlugin(plugins, p)) || isKmp) {\n mainLanguage = 'Kotlin';\n }\n\n // Dedupe facets\n const uniqFacets = [...new Set(facets)];\n\n return {\n appType,\n framework,\n facets: uniqFacets,\n found,\n buildTool: sig.buildTool,\n mainLanguage,\n };\n}\n\nfunction rank(appType: JvmAppType, facets: string[]): number {\n if (appType === 'mcp') {return 0;}\n if (appType === 'mobile') {return 1;}\n if (facets.includes('multiplatform') && appType === 'backend') {return 2;}\n if (appType === 'backend') {return 3;}\n if (appType === 'cli') {return 4;}\n if (facets.includes('multiplatform')) {return 5;}\n if (facets.includes('android')) {return 6;}\n return 7;\n}\n\nfunction collectGradleModule(root: string, rel: string, catalog: Catalog): ModuleSignals | null {\n const kts = join(rel, 'build.gradle.kts');\n const groovy = join(rel, 'build.gradle');\n const path = repoExists(root, kts) ? kts : repoExists(root, groovy) ? groovy : null;\n if (!path) {return null;}\n const content = readRepoFile(root, path);\n if (!content) {return null;}\n const plugins = extractGradlePlugins(content, catalog);\n const artifacts = extractGradleArtifacts(content, catalog);\n const sources = probeSources(root, rel);\n const hasMainClass =\n /mainClass\\s*[.=]/.test(content) ||\n /mainClassName\\s*=/.test(content) ||\n /Main-Class/.test(content);\n const hasApplicationPlugin =\n hasPlugin(plugins, 'application') ||\n hasPlugin(plugins, 'org.gradle.application');\n\n return {\n path: rel || 'build.gradle',\n plugins,\n artifacts,\n packaging: 'jar',\n parents: new Set(),\n hasMainClass,\n hasApplicationPlugin,\n sourceHints: sources.hints,\n kotlinSources: sources.kotlin || path.endsWith('.kts'),\n javaSources: sources.java,\n buildTool: 'gradle',\n };\n}\n\nfunction collectMavenModule(root: string, rel: string): ModuleSignals | null {\n const content = readRepoFile(root, join(rel, 'pom.xml'));\n if (!content) {return null;}\n const { packaging, parents, artifacts } = extractMavenSignals(content);\n const sources = probeSources(root, rel);\n return {\n path: rel ? `${rel}/pom.xml` : 'pom.xml',\n plugins: new Set(),\n artifacts,\n packaging,\n parents,\n hasMainClass: /<mainClass>/.test(content),\n hasApplicationPlugin: false,\n sourceHints: sources.hints,\n kotlinSources: sources.kotlin,\n javaSources: sources.java,\n buildTool: 'maven',\n };\n}\n\n/**\n * Classify a JVM project directory (Maven and/or Gradle, multi-module aware).\n * Returns null if no JVM markers at this directory.\n */\nexport function detectJvmProject(dir: string): JvmProject | null {\n if (!isJvmRoot(dir)) {return null;}\n\n const catalog = loadCatalog(dir);\n const modules: ModuleSignals[] = [];\n\n // Gradle settings → includes\n let settingsBody: string | null = null;\n for (const s of ['settings.gradle.kts', 'settings.gradle']) {\n if (repoExists(dir, s)) {\n settingsBody = readRepoFile(dir, s);\n break;\n }\n }\n const includes = settingsBody ? parseSettingsIncludes(settingsBody) : [];\n\n // Root gradle module\n const rootGradle = collectGradleModule(dir, '', catalog);\n if (rootGradle) {modules.push(rootGradle);}\n\n for (const inc of includes) {\n const m = collectGradleModule(dir, inc, catalog);\n if (m) {modules.push(m);}\n }\n\n // Maven root + modules\n const rootPom = collectMavenModule(dir, '');\n if (rootPom) {\n modules.push(rootPom);\n const pomContent = readRepoFile(dir, 'pom.xml');\n if (pomContent) {\n const { modules: mavMods } = extractMavenSignals(pomContent);\n for (const mm of mavMods) {\n const m = collectMavenModule(dir, mm);\n if (m) {modules.push(m);}\n }\n }\n }\n\n // Settings-only / empty root: still JVM if settings exist\n if (modules.length === 0 && settingsBody) {\n return {\n appType: 'library',\n framework: '',\n buildTool: 'gradle',\n mainLanguage: 'Java/Kotlin',\n facets: [],\n found: 'settings.gradle (Gradle multi-project root)',\n };\n }\n\n if (modules.length === 0) {return null;}\n\n let best: JvmProject | null = null;\n let bestRank = 999;\n for (const mod of modules) {\n const c = classifyModule(mod);\n const r = rank(c.appType, c.facets);\n if (!best || r < bestRank) {\n best = {\n appType: c.appType,\n framework: c.framework,\n buildTool: c.buildTool,\n mainLanguage: c.mainLanguage,\n facets: c.facets,\n found: c.found,\n };\n bestRank = r;\n }\n }\n\n // Multi-module: if root is aggregator library but a child is better, we already picked child.\n // Enrich found with multi-module note when includes > 0 and best is not root-only\n if (best && includes.length > 0 && !best.found.includes('multi-project')) {\n // leave found as module-specific signal — Glass Hood prefers the decisive signal\n }\n\n return best;\n}\n",
172
172
  "import { join } from 'path';\nimport { readRepoDir, readRepoFile, repoExists, statRepoFile } from '../core/safe-write.js';\nimport spec from './ruby-detection.json';\n\n/**\n * Ruby detection — CONTENT-AWARE Gemfile / gemspec classification.\n *\n * Kill line: Gemfile alone ≠ Rails.\n * Bundler backs libraries, Rails apps, Sinatra/Roda/Grape/Hanami, CLIs, and MCP\n * servers. We read gem names (+ light layout), then branch.\n *\n * Same composition as go.ts / jvm.ts: knowledge in ruby-detection.json.\n */\n\nexport type RubyAppType = 'mcp' | 'backend' | 'cli' | 'library';\n\nexport interface RubyProject {\n appType: RubyAppType;\n /** Primary framework label (Rails / Sinatra / …) or ''. */\n framework: string;\n /** package manager signal */\n packageManager: 'bundler' | 'rubygems';\n /** Glass Hood rationale for .faf `# found:`. */\n found: string;\n}\n\nconst MCP_GEMS = (spec.mcpGems as string[]).map(g => g.toLowerCase());\nconst WEB_GEMS = (spec.webGems as Array<[string, string]>).map(\n ([g, label]) => [g.toLowerCase(), label] as [string, string],\n);\nconst CLI_GEMS = (spec.cliGems as Array<[string, string]>).map(\n ([g, label]) => [g.toLowerCase(), label] as [string, string],\n);\nconst RAILS_LAYOUT = spec.railsLayoutFiles as string[];\n\n/** True if directory looks like a Ruby project root. */\nexport function isRubyRoot(dir: string): boolean {\n return (\n repoExists(dir, 'Gemfile') ||\n repoExists(dir, 'gems.rb') ||\n hasGemspec(dir)\n );\n}\n\nfunction hasGemspec(dir: string): boolean {\n return (readRepoDir(dir) ?? []).some(e => e.name.endsWith('.gemspec'));\n}\n\n/**\n * Extract gem names from a Gemfile / gems.rb (static — does NOT execute Ruby).\n * Handles: gem 'x', gem \"x\", gem :x (rare), gem \"x\", \"1.0\"\n */\nexport function parseGemfileGems(content: string): Set<string> {\n const gems = new Set<string>();\n for (const raw of content.split('\\n')) {\n // Strip comments\n const line = raw.replace(/#.*$/, '').trim();\n if (!line) {continue;}\n // gem 'name' or gem \"name\" optionally followed by comma/version\n const m = line.match(/^\\s*gem\\s+['\"]([^'\"]+)['\"]/i)\n || line.match(/^\\s*gem\\s+:([A-Za-z0-9_.-]+)/i);\n if (m) {gems.add(m[1].toLowerCase());}\n }\n return gems;\n}\n\n/**\n * Extract gem names from Gemfile.lock SPECS sections (static).\n * Lines like \" rails (7.1.0)\" under GEM specs.\n */\nexport function parseGemfileLockGems(content: string): Set<string> {\n const gems = new Set<string>();\n let inSpecs = false;\n for (const raw of content.split('\\n')) {\n const line = raw.replace(/\\r$/, '');\n if (/^\\s*specs:\\s*$/.test(line)) {\n inSpecs = true;\n continue;\n }\n // Leave specs on blank line at column 0 or new top-level section (no indent)\n if (inSpecs) {\n if (/^[A-Z]/.test(line) || line.startsWith('PLATFORMS') || line.startsWith('DEPENDENCIES')\n || line.startsWith('BUNDLED') || line.startsWith('RUBY VERSION') || line.startsWith('CHECKSUMS')) {\n inSpecs = false;\n continue;\n }\n // \" gemname (1.2.3)\" — 4 spaces typical\n const m = line.match(/^\\s{2,}([a-zA-Z0-9_.-]+)\\s*\\(/);\n if (m) {gems.add(m[1].toLowerCase());}\n }\n }\n return gems;\n}\n\n/** Gem names from *.gemspec dependency lines (static). */\nexport function parseGemspecGems(content: string): Set<string> {\n const gems = new Set<string>();\n for (const raw of content.split('\\n')) {\n const line = raw.replace(/#.*$/, '');\n // add_dependency \"x\" / add_runtime_dependency 'x' / add_development_dependency\n const m = line.match(/add_(?:runtime_|development_)?dependency\\s*\\(?\\s*['\"]([^'\"]+)['\"]/i);\n if (m) {gems.add(m[1].toLowerCase());}\n }\n return gems;\n}\n\nfunction collectGems(dir: string): { gems: Set<string>; sources: string[] } {\n const gems = new Set<string>();\n const sources: string[] = [];\n\n for (const name of ['Gemfile', 'gems.rb']) {\n const body = readRepoFile(dir, name);\n if (body) {\n for (const g of parseGemfileGems(body)) {gems.add(g);}\n sources.push(name);\n }\n }\n\n const lock = readRepoFile(dir, 'Gemfile.lock') || readRepoFile(dir, 'gems.locked');\n if (lock) {\n for (const g of parseGemfileLockGems(lock)) {gems.add(g);}\n sources.push('Gemfile.lock');\n }\n\n for (const { name: f } of readRepoDir(dir) ?? []) {\n if (!f.endsWith('.gemspec')) {continue;}\n const body = readRepoFile(dir, f);\n if (body) {\n for (const g of parseGemspecGems(body)) {gems.add(g);}\n sources.push(f);\n }\n }\n\n return { gems, sources };\n}\n\nfunction hasGem(gems: Set<string>, name: string): boolean {\n const n = name.toLowerCase();\n if (gems.has(n)) {return true;}\n // rails engines sometimes appear as path gems still named rails\n return false;\n}\n\nfunction findLabeled(\n gems: Set<string>,\n entries: Array<[string, string]>,\n): [string, string] | undefined {\n let best: [string, string] | undefined;\n for (const [id, label] of entries) {\n if (!hasGem(gems, id)) {continue;}\n // Prefer longer / more specific gem names\n if (!best || id.length > best[0].length) {best = [id, label];}\n }\n return best;\n}\n\nfunction findMcp(gems: Set<string>): string | undefined {\n let best: string | undefined;\n for (const id of MCP_GEMS) {\n if (hasGem(gems, id) && (!best || id.length > best.length)) {best = id;}\n }\n return best;\n}\n\nfunction railsLayoutHit(dir: string): string | undefined {\n for (const rel of RAILS_LAYOUT) {\n if (repoExists(dir, rel)) {return rel;}\n }\n return undefined;\n}\n\n/** True if gemspec or package marks executables / bin tools. */\nfunction hasCliShape(dir: string, gems: Set<string>): { hit: boolean; why: string } {\n const cli = findLabeled(gems, CLI_GEMS);\n if (cli) {return { hit: true, why: cli[0] };}\n\n for (const { name: f } of readRepoDir(dir) ?? []) {\n if (!f.endsWith('.gemspec')) {continue;}\n const body = readRepoFile(dir, f);\n if (body && /executables\\s*=/.test(body) && !/executables\\s*=\\s*\\[\\s*\\]/.test(body)) {\n return { hit: true, why: `${f} executables` };\n }\n }\n\n const binEntries = readRepoDir(dir, 'bin');\n if (binEntries) {\n const bins = binEntries.map(e => e.name).filter(b => {\n if (b === 'setup' || b === 'console' || b === 'rake') {return false;}\n return statRepoFile(dir, join('bin', b))?.isFile() === true;\n });\n // bin/rails alone is Rails, not CLI product\n const nonRails = bins.filter(b => b !== 'rails');\n if (nonRails.length > 0 && !hasGem(gems, 'rails') && !railsLayoutHit(dir)) {\n return { hit: true, why: `bin/${nonRails[0]}` };\n }\n }\n\n return { hit: false, why: '' };\n}\n\n/**\n * Classify a Ruby project from Gemfile / lock / gemspec (+ light layout).\n * Returns null if not a Ruby root.\n */\nexport function detectRubyProject(dir: string): RubyProject | null {\n if (!isRubyRoot(dir)) {return null;}\n\n const { gems, sources } = collectGems(dir);\n const srcLabel = sources[0] || 'Gemfile';\n const packageManager: 'bundler' | 'rubygems' =\n sources.some(s => s === 'Gemfile' || s === 'gems.rb' || s.includes('lock'))\n ? 'bundler'\n : 'rubygems';\n\n const mcp = findMcp(gems);\n const web = findLabeled(gems, WEB_GEMS);\n const railsLayout = railsLayoutHit(dir);\n const hasRailsGem = hasGem(gems, 'rails') || hasGem(gems, 'railties');\n const cliShape = hasCliShape(dir, gems);\n const hasConfigRu = repoExists(dir, 'config.ru');\n\n // Rails is NEVER inferred from Gemfile existence alone.\n // rails gem and/or classic layout required.\n const isRails = hasRailsGem || !!railsLayout;\n\n // Strong web gems (not bare rack without config.ru)\n const strongWeb =\n web &&\n web[1] !== 'Rails' &&\n !(web[0] === 'rack' && !hasConfigRu)\n ? web\n : undefined;\n\n let appType: RubyAppType;\n let framework = '';\n let found: string;\n\n // Priority: MCP → Rails → other web → CLI → library\n // Gemfile alone is never backend.\n if (mcp) {\n appType = 'mcp';\n framework = 'MCP';\n found = `${srcLabel} + gem ${mcp} (Ruby MCP)`;\n } else if (isRails) {\n appType = 'backend';\n framework = 'Rails';\n if (hasRailsGem && railsLayout) {\n found = `${srcLabel} + rails + ${railsLayout} (Rails)`;\n } else if (hasRailsGem) {\n found = `${srcLabel} + gem rails (Rails)`;\n } else {\n found = `${railsLayout} (Rails layout)`;\n }\n } else if (strongWeb) {\n appType = 'backend';\n framework = strongWeb[1];\n found = `${srcLabel} + gem ${strongWeb[0]} (Ruby backend)`;\n } else if (cliShape.hit) {\n appType = 'cli';\n framework = findLabeled(gems, CLI_GEMS)?.[1] || '';\n found = `${srcLabel} + ${cliShape.why} (Ruby CLI)`;\n } else {\n appType = 'library';\n found = `${srcLabel} (Ruby library)`;\n }\n\n return { appType, framework, packageManager, found };\n}\n",
173
173
  "import { join } from 'path';\nimport { readRepoDir, readRepoFile, repoExists, statRepoFile } from '../core/safe-write.js';\nimport spec from './swift-detection.json';\n\n/**\n * Swift detection — CONTENT-AWARE Package.swift / Xcode classification.\n *\n * Kill line: Package.swift alone ≠ app.\n * SPM backs libraries, executables (CLI), server apps (Vapor / Hummingbird),\n * MCP servers (official swift-sdk product MCP), and Xcode client apps.\n * Static token scan only — never execute Package.swift / swift build.\n *\n * Same composition as go.ts / ruby.ts: knowledge in swift-detection.json.\n */\n\nexport type SwiftAppType = 'mcp' | 'backend' | 'cli' | 'app' | 'library';\n\nexport interface SwiftProject {\n appType: SwiftAppType;\n /** Primary framework label (Vapor / Hummingbird / MCP / ArgumentParser / …) or ''. */\n framework: string;\n /** spm when Package.swift; xcode when only xcodeproj; both when combined. */\n packageManager: 'spm' | 'xcode' | 'spm+xcode';\n /** Glass Hood rationale for .faf `# found:`. */\n found: string;\n}\n\nconst MCP_URLS = (spec.mcpPackageUrls as string[]).map(u => u.toLowerCase());\nconst MCP_PRODUCTS = (spec.mcpProducts as string[]).map(p => p.toLowerCase());\nconst SERVER_URLS = (spec.serverPackageUrls as Array<[string, string]>).map(\n ([u, label]) => [u.toLowerCase(), label] as [string, string],\n);\nconst SERVER_PRODUCTS = (spec.serverProducts as Array<[string, string]>).map(\n ([p, label]) => [p.toLowerCase(), label] as [string, string],\n);\nconst CLI_URLS = (spec.cliPackageUrls as Array<[string, string]>).map(\n ([u, label]) => [u.toLowerCase(), label] as [string, string],\n);\nconst CLI_PRODUCTS = (spec.cliProducts as Array<[string, string]>).map(\n ([p, label]) => [p.toLowerCase(), label] as [string, string],\n);\nconst APP_PRODUCT_TYPES = spec.appProductTypes as string[];\nconst CLI_PRODUCT_TYPES = spec.cliProductTypes as string[];\nconst VAPOR_LAYOUT = spec.vaporLayoutFiles as string[];\n\nexport interface PackageSwiftSignals {\n packageUrls: string[];\n productNames: string[]; // .product(name: \"X\")\n hasLibraryProduct: boolean;\n hasExecutableProduct: boolean;\n hasPluginProduct: boolean;\n hasExecutableTarget: boolean;\n hasLibraryTarget: boolean;\n}\n\n/** True if directory looks like a Swift project root. */\nexport function isSwiftRoot(dir: string): boolean {\n return repoExists(dir, 'Package.swift') || listXcodeprojs(dir).length > 0;\n}\n\n/** Root-level *.xcodeproj directory names. */\nexport function listXcodeprojs(dir: string): string[] {\n return (readRepoDir(dir) ?? [])\n .map(e => e.name)\n .filter(f => f.endsWith('.xcodeproj') && statRepoFile(dir, f)?.isDirectory() === true);\n}\n\n/**\n * Static scan of Package.swift — does NOT compile or evaluate Swift.\n * Strips line and block comments best-effort before token extraction.\n */\nexport function parsePackageSwift(content: string): PackageSwiftSignals {\n const stripped = stripSwiftComments(content);\n const lower = stripped.toLowerCase();\n\n const packageUrls: string[] = [];\n // .package(url: \"…\") or .package(url: \"…\", from: …)\n const urlRe = /\\.package\\s*\\(\\s*url\\s*:\\s*\"([^\"]+)\"/gi;\n let m: RegExpExecArray | null;\n while ((m = urlRe.exec(stripped)) !== null) {\n packageUrls.push(m[1]);\n }\n // Alternate: .package(url: \"…\") with single quotes (rare)\n const urlRe2 = /\\.package\\s*\\(\\s*url\\s*:\\s*'([^']+)'/gi;\n while ((m = urlRe2.exec(stripped)) !== null) {\n packageUrls.push(m[1]);\n }\n\n const productNames: string[] = [];\n // .product(name: \"Vapor\", package: \"vapor\")\n const prodRe = /\\.product\\s*\\(\\s*name\\s*:\\s*\"([^\"]+)\"/gi;\n while ((m = prodRe.exec(stripped)) !== null) {\n productNames.push(m[1]);\n }\n const prodRe2 = /\\.product\\s*\\(\\s*name\\s*:\\s*'([^']+)'/gi;\n while ((m = prodRe2.exec(stripped)) !== null) {\n productNames.push(m[1]);\n }\n\n // Product kinds in products: [ … ]\n // .library(name: …) .executable(name: …) .plugin(\n const hasLibraryProduct = /\\.library\\s*\\(/.test(lower);\n const hasExecutableProduct = /\\.executable\\s*\\(/.test(lower);\n // Avoid matching .plugin( on targets if we can — products use Product.plugin / .plugin(\n // Both product and target use .plugin( — still a useful signal when no library/exe.\n const hasPluginProduct = /\\.plugin\\s*\\(/.test(lower) && !hasLibraryProduct && !hasExecutableProduct\n ? true\n : /\\bproducts\\s*:\\s*\\[[\\s\\S]*?\\.plugin\\s*\\(/.test(lower);\n\n const hasExecutableTarget = /\\.executabletarget\\s*\\(/.test(lower);\n // Plain .target( — executableTarget/testTarget use different selectors\n const hasLibraryTarget = /\\.target\\s*\\(/.test(lower) && !hasExecutableTarget\n ? true\n : (lower.match(/\\.target\\s*\\(/g) || []).length >\n (lower.match(/\\.executabletarget\\s*\\(/g) || []).length +\n (lower.match(/\\.testtarget\\s*\\(/g) || []).length;\n return {\n packageUrls,\n productNames,\n hasLibraryProduct,\n hasExecutableProduct,\n hasPluginProduct: !!hasPluginProduct,\n hasExecutableTarget,\n hasLibraryTarget,\n };\n}\n\n/** Best-effort strip of line (//) and block comments for static scan. */\nexport function stripSwiftComments(src: string): string {\n let out = '';\n let i = 0;\n while (i < src.length) {\n // string literal — preserve contents so URLs inside stay intact\n if (src[i] === '\"' || src[i] === \"'\") {\n const q = src[i];\n out += q;\n i++;\n while (i < src.length) {\n if (src[i] === '\\\\' && i + 1 < src.length) {\n out += src[i] + src[i + 1];\n i += 2;\n continue;\n }\n out += src[i];\n if (src[i] === q) {\n i++;\n break;\n }\n i++;\n }\n continue;\n }\n if (src[i] === '/' && src[i + 1] === '/') {\n i += 2;\n while (i < src.length && src[i] !== '\\n') {i++;}\n continue;\n }\n if (src[i] === '/' && src[i + 1] === '*') {\n i += 2;\n while (i < src.length && !(src[i] === '*' && src[i + 1] === '/')) {i++;}\n i += 2;\n continue;\n }\n out += src[i];\n i++;\n }\n return out;\n}\n\nfunction urlHits(urls: string[], needles: string[]): string | undefined {\n const lowerUrls = urls.map(u => u.toLowerCase());\n let best: string | undefined;\n for (const n of needles) {\n for (const u of lowerUrls) {\n if (u.includes(n) && (!best || n.length > best.length)) {best = n;}\n }\n }\n return best;\n}\n\nfunction urlHitsLabeled(\n urls: string[],\n entries: Array<[string, string]>,\n): [string, string] | undefined {\n const lowerUrls = urls.map(u => u.toLowerCase());\n let best: [string, string] | undefined;\n for (const [needle, label] of entries) {\n for (const u of lowerUrls) {\n if (u.includes(needle) && (!best || needle.length > best[0].length)) {\n best = [needle, label];\n }\n }\n }\n return best;\n}\n\nfunction productHitsLabeled(\n products: string[],\n entries: Array<[string, string]>,\n): [string, string] | undefined {\n const lower = products.map(p => p.toLowerCase());\n let best: [string, string] | undefined;\n for (const [name, label] of entries) {\n if (lower.includes(name) && (!best || name.length > best[0].length)) {\n best = [name, label];\n }\n }\n return best;\n}\n\nfunction mcpProductHit(products: string[]): boolean {\n const lower = products.map(p => p.toLowerCase());\n return MCP_PRODUCTS.some(p => lower.includes(p));\n}\n\n/**\n * Light pbxproj grep — no AST. Reads project.pbxproj under each .xcodeproj.\n */\nexport function scanXcodeProductTypes(dir: string): {\n hasApplication: boolean;\n hasTool: boolean;\n hit?: string;\n} {\n let hasApplication = false;\n let hasTool = false;\n let hit: string | undefined;\n for (const xp of listXcodeprojs(dir)) {\n const body = readRepoFile(dir, join(xp, 'project.pbxproj'));\n if (!body) {continue;}\n for (const t of APP_PRODUCT_TYPES) {\n if (body.includes(t)) {\n hasApplication = true;\n hit = t;\n }\n }\n for (const t of CLI_PRODUCT_TYPES) {\n if (body.includes(t)) {\n hasTool = true;\n if (!hit) {hit = t;}\n }\n }\n }\n return { hasApplication, hasTool, hit };\n}\n\nfunction vaporLayoutHit(dir: string): string | undefined {\n for (const rel of VAPOR_LAYOUT) {\n if (repoExists(dir, rel)) {return rel;}\n }\n return undefined;\n}\n\n/**\n * Classify a Swift project from Package.swift (+ light Xcode).\n * Returns null if not a Swift root.\n */\nexport function detectSwiftProject(dir: string): SwiftProject | null {\n if (!isSwiftRoot(dir)) {return null;}\n\n const hasPkg = repoExists(dir, 'Package.swift');\n const xcodeprojs = listXcodeprojs(dir);\n const hasXcode = xcodeprojs.length > 0;\n\n let signals: PackageSwiftSignals | null = null;\n if (hasPkg) {\n const body = readRepoFile(dir, 'Package.swift');\n if (body) {signals = parsePackageSwift(body);}\n }\n\n const xcode = hasXcode ? scanXcodeProductTypes(dir) : { hasApplication: false, hasTool: false };\n const layout = vaporLayoutHit(dir);\n\n const urls = signals?.packageUrls ?? [];\n const products = signals?.productNames ?? [];\n\n const mcpUrl = urlHits(urls, MCP_URLS);\n const mcpProd = mcpProductHit(products);\n const serverUrl = urlHitsLabeled(urls, SERVER_URLS);\n const serverProd = productHitsLabeled(products, SERVER_PRODUCTS);\n const cliUrl = urlHitsLabeled(urls, CLI_URLS);\n const cliProd = productHitsLabeled(products, CLI_PRODUCTS);\n\n const isMcp = !!(mcpUrl || mcpProd);\n const isServer = !!(serverUrl || serverProd || layout);\n const isExecutable =\n !!(signals?.hasExecutableProduct || signals?.hasExecutableTarget);\n const isCliStack = !!(cliUrl || cliProd);\n const isApp = xcode.hasApplication;\n\n const packageManager: SwiftProject['packageManager'] =\n hasPkg && hasXcode ? 'spm+xcode' : hasPkg ? 'spm' : 'xcode';\n\n let appType: SwiftAppType;\n let framework = '';\n let found: string;\n\n // Priority: mcp > backend > app > cli > library\n if (isMcp) {\n appType = 'mcp';\n framework = 'MCP';\n if (mcpProd) {\n found = 'Package.swift + product MCP (Swift MCP)';\n } else {\n found = `Package.swift + ${mcpUrl} (Swift MCP)`;\n }\n } else if (isServer) {\n appType = 'backend';\n framework = serverProd?.[1] || serverUrl?.[1] || (layout ? 'Vapor' : '');\n if (serverProd) {\n found = `Package.swift + product ${serverProd[1]} (Swift backend)`;\n } else if (serverUrl) {\n found = `Package.swift + ${serverUrl[1]} (Swift backend)`;\n } else {\n found = `${layout} (Swift backend layout)`;\n }\n } else if (isApp) {\n appType = 'app';\n framework = '';\n found = `${xcodeprojs[0]} + ${xcode.hit || 'application'} (Swift app)`;\n } else if (isCliStack || (isExecutable && !isServer && !isMcp)) {\n appType = 'cli';\n framework = cliProd?.[1] || cliUrl?.[1] || '';\n if (cliProd) {\n found = `Package.swift + product ${cliProd[1]} (Swift CLI)`;\n } else if (cliUrl) {\n found = `Package.swift + ${cliUrl[1]} (Swift CLI)`;\n } else if (signals?.hasExecutableProduct) {\n found = 'Package.swift + .executable product (Swift CLI)';\n } else {\n found = 'Package.swift + .executableTarget (Swift CLI)';\n }\n } else if (xcode.hasTool && !hasPkg) {\n appType = 'cli';\n found = `${xcodeprojs[0]} + tool productType (Swift CLI)`;\n } else if (hasPkg) {\n appType = 'library';\n if (signals?.hasLibraryProduct) {\n found = 'Package.swift + .library product (Swift library)';\n } else {\n found = 'Package.swift (Swift library)';\n }\n } else {\n // xcodeproj without application/tool productType — weak library/app unknown\n appType = 'library';\n found = `${xcodeprojs[0] || 'xcodeproj'} (Swift — no classifying productType)`;\n }\n\n return { appType, framework, packageManager, found };\n}\n",
174
- "import type { FafData, SlotDef } from '../core/types.js';\nimport { SLOTS, appTypeUsesSlot } from '../core/slots.js';\nimport { FAF_VERSION } from '../core/version.js';\nimport {\n detectFrameworks,\n detectLanguage,\n detectPolyglotLanguage,\n detectSubdirStacks,\n detectProjectTypeWithRationale,\n detectRuntime,\n detectPackageManager,\n detectCicd,\n detectHosting,\n detectBuildTool,\n detectSvelteAdapter,\n readPackageJson,\n detectKeyFiles,\n detectCommands,\n detectTechStack,\n viteLabel,\n} from './scanner.js';\n\n/** The major version of the `svelte` dependency package.json names\n * (`^5.0.0` → 5), or NaN when it names none or no number. */\nfunction svelteMajor(pkg: ReturnType<typeof readPackageJson>): number {\n const range = pkg?.dependencies?.svelte ?? pkg?.devDependencies?.svelte;\n const major = typeof range === 'string' ? /\\d+/.exec(range)?.[0] : undefined;\n return major === undefined ? NaN : Number(major);\n}\n\n/** Detect the project stack from repo facts and build .faf data. A slot with\n * no evidence is left empty (`''`) — never a default. */\nexport function detectStack(dir: string): FafData {\n return detectStackWithFacts(dir).data;\n}\n\n/**\n * {@link detectStack}'s data, and `facts`: the repo's fact for every stack\n * slot (by field — `runtime`, `database`), whatever the app-type — `''` when\n * the repo shows none. detectStack marks a slot its detected type leaves out\n * `slotignored`; `faf auto` fills such a slot from `facts` when the file's own\n * type uses it (a `backend` project whose repo reads as a CLI still gets\n * `runtime: Go` from go.mod).\n */\nexport function detectStackWithFacts(dir: string): { data: FafData; facts: Record<string, string> } {\n const pkg = readPackageJson(dir);\n const frameworks = detectFrameworks(dir);\n const detection = detectProjectTypeWithRationale(dir);\n const projectType = detection.type;\n // Polyglot repos (real stack in sibling dirs) get an aggregated language\n // string instead of the misleading root-only detectLanguage() fallback.\n const isPolyglot = detection.found.some(f => f.startsWith('polyglot:'));\n const language = (isPolyglot && detectPolyglotLanguage(dir)) || detectLanguage(dir);\n const runtime = detectRuntime(dir);\n const pkgManager = detectPackageManager(dir);\n const cicd = detectCicd(dir);\n const hosting = detectHosting(dir);\n const buildTool = detectBuildTool(dir);\n\n // Find specific frameworks by category\n // A project with the kit is a SvelteKit project, whatever plain Svelte scores.\n const frontendFw = frameworks.find(f => f.slug === 'sveltekit') ?? frameworks.find(f => f.category === 'frontend');\n const cssFw = frameworks.find(f => f.category === 'css');\n const uiFw = frameworks.find(f => f.category === 'ui');\n const stateFw = frameworks.find(f => f.category === 'state');\n const backendFw = frameworks.find(f => f.category === 'backend');\n const dbFw = frameworks.find(f => f.category === 'database');\n\n // Which slots the app-type uses (an unknown type reads as library)\n const uses = (slot: SlotDef): boolean => appTypeUsesSlot(projectType, slot) ?? appTypeUsesSlot('library', slot) === true;\n\n // Framework sub-type detection (framework → svelte, framework → nextjs, etc.)\n const isFramework = projectType === 'framework';\n const hasSvelteSignal = frameworks.some(f => f.slug === 'svelte' || f.slug === 'sveltekit');\n const frameworkSubType = isFramework && hasSvelteSignal ? 'svelte' : (isFramework ? null : null);\n\n // Svelte-aware: fires for svelte apps AND framework→svelte repos\n const isSvelte = projectType === 'svelte' || frameworkSubType === 'svelte';\n const svelteAdapter = isSvelte ? detectSvelteAdapter(dir) : null;\n const hasSvelteKit = isSvelte && frameworks.some(f => f.slug === 'sveltekit');\n\n // The repo's fact for each stack slot, whatever the app-type ('' when none).\n const facts: Record<string, string> = {};\n const stackSlots = SLOTS.filter(s => s.path.startsWith('stack.'));\n\n for (const slot of stackSlots) {\n const field = slot.path.replace('stack.', '');\n // Detected values (Svelte-aware overrides applied inline)\n switch (field) {\n case 'frontend': facts[field] = frontendFw?.name ?? ''; break;\n case 'css_framework': facts[field] = cssFw?.name ?? ''; break;\n case 'ui_library': facts[field] = uiFw?.name ?? ''; break;\n case 'state_management':\n // Svelte 5 uses Runes — no external state library needed. Only when\n // package.json says Svelte 5 or later: Svelte 4 has no Runes.\n facts[field] = stateFw?.name ?? (isSvelte && svelteMajor(pkg) >= 5 ? 'Runes' : '');\n break;\n case 'backend':\n // SvelteKit IS the backend (server routes, form actions, hooks)\n facts[field] = isSvelte ? (hasSvelteKit ? 'SvelteKit' : (backendFw?.name ?? '')) : (backendFw?.name ?? '');\n break;\n case 'api_type':\n // SvelteKit uses form actions + server routes\n facts[field] = hasSvelteKit ? 'Server Routes' : '';\n break;\n case 'runtime': facts[field] = runtime; break;\n case 'database':\n // Only populate if ORM actually detected\n facts[field] = dbFw?.name ?? '';\n break;\n case 'connection':\n facts[field] = dbFw?.name ?? '';\n break;\n case 'hosting':\n // Svelte adapter → hosting platform (adapter-vercel = Vercel, etc.)\n if (isSvelte && svelteAdapter) {\n facts[field] = svelteAdapter;\n } else {\n facts[field] = hosting ?? '';\n }\n break;\n case 'build':\n // SvelteKit always builds with Vite; plain Svelte only when the repo says so\n facts[field] = hasSvelteKit ? viteLabel(pkg) : (buildTool ?? '');\n break;\n case 'cicd': facts[field] = cicd ?? ''; break;\n case 'package_manager': facts[field] = pkgManager; break;\n default: facts[field] = ''; break;\n }\n }\n\n // Build stack with slotignored for the slots the app-type leaves out\n // (a framework repo also leaves out the slots framework source code never\n // has — see appTypeUsesSlot)\n const stack: Record<string, string> = {};\n for (const slot of stackSlots) {\n const field = slot.path.replace('stack.', '');\n stack[field] = uses(slot) ? facts[field] : 'slotignored';\n }\n\n // Build monorepo section\n const monorepo: Record<string, string> = {};\n const monorepoSlots = SLOTS.filter(s => s.path.startsWith('monorepo.'));\n for (const slot of monorepoSlots) {\n const field = slot.path.replace('monorepo.', '');\n if (!uses(slot)) {\n monorepo[field] = 'slotignored';\n } else {\n monorepo[field] = '';\n }\n }\n\n // Build project section\n const project: Record<string, string> = {\n name: pkg?.name ?? dir.split('/').pop() ?? 'project',\n // A polyglot repo's root package.json describes the tooling shell, not the\n // product — leave goal for the README interrogator / the human to fill.\n goal: isPolyglot ? '' : (pkg?.description ?? ''),\n main_language: language,\n type: projectType,\n };\n if (isFramework && frameworkSubType) {\n project.framework = frameworkSubType;\n }\n\n // Canonical FAFb v2 chunks (read by faf-fafb compile).\n // Without these keys the brick still compiles, but only from whatever\n // other canonical fields are present. Per v6.6.md + faf-auto-no-guess-no-slop:\n // tech_stack/key_files/commands auto-populate from observable signals;\n // architecture/context stay empty (user fill — architecture overlaps with\n // human_context.how, context is free-form additional signal).\n // Feed detectTechStack the ROOT language (a single token), never the polyglot\n // summary string — that belongs only in project.main_language.\n const techStack = detectTechStack(dir, pkg, frameworks, isPolyglot ? detectLanguage(dir) : language);\n if (isPolyglot) {\n // Add each sibling component's language + top framework (deduped, order-stable).\n for (const s of detectSubdirStacks(dir)) {\n for (const t of [s.language, s.topFramework]) {\n if (t && !techStack.includes(t)) {techStack.push(t);}\n }\n }\n }\n const keyFiles = detectKeyFiles(dir);\n const commands = detectCommands(dir, pkg);\n\n const result: FafData = {\n faf_version: FAF_VERSION,\n project,\n stack,\n human_context: {\n who: '',\n // A polyglot root's package.json describes the tooling shell, not the\n // product — leave `what` for the README interrogator / the human.\n what: isPolyglot ? '' : (pkg?.description ?? ''),\n why: '',\n where: '',\n when: '',\n how: '',\n },\n monorepo,\n // Runtime-only meta. Stripped before YAML serialization by writeFaf,\n // which uses _meta.found to inject `# found: <list>` next to `type:`.\n // Glass Hood doctrine — the user sees WHY the cli classified as it did.\n _meta: { found: detection.found },\n };\n\n // Only emit FAFB top-level keys if non-empty (no slop / empty-list pollution)\n if (techStack.length > 0) {result.tech_stack = techStack;}\n if (keyFiles.length > 0) {result.key_files = keyFiles;}\n if (Object.keys(commands).length > 0) {result.commands = commands;}\n\n return { data: result, facts };\n}\n",
174
+ "import type { FafData, SlotDef } from '../core/types.js';\nimport { SLOTS, appTypeUsesSlot } from '../core/slots.js';\nimport { FAF_VERSION } from '../core/version.js';\nimport {\n detectFrameworks,\n detectLanguage,\n detectPolyglotLanguage,\n detectSubdirStacks,\n detectProjectTypeWithRationale,\n detectRuntime,\n detectPackageManager,\n detectCicd,\n detectHosting,\n detectBuildTool,\n detectSvelteAdapter,\n readPackageJson,\n detectKeyFiles,\n detectCommands,\n detectTechStack,\n detectSkillsFormat,\n viteLabel,\n} from './scanner.js';\n\n/** The major version of the `svelte` dependency package.json names\n * (`^5.0.0` → 5), or NaN when it names none or no number. */\nfunction svelteMajor(pkg: ReturnType<typeof readPackageJson>): number {\n const range = pkg?.dependencies?.svelte ?? pkg?.devDependencies?.svelte;\n const major = typeof range === 'string' ? /\\d+/.exec(range)?.[0] : undefined;\n return major === undefined ? NaN : Number(major);\n}\n\n/** Detect the project stack from repo facts and build .faf data. A slot with\n * no evidence is left empty (`''`) — never a default. */\nexport function detectStack(dir: string): FafData {\n return detectStackWithFacts(dir).data;\n}\n\n/**\n * {@link detectStack}'s data, and `facts`: the repo's fact for every stack\n * slot (by field — `runtime`, `database`), whatever the app-type — `''` when\n * the repo shows none. detectStack marks a slot its detected type leaves out\n * `slotignored`; `faf auto` fills such a slot from `facts` when the file's own\n * type uses it (a `backend` project whose repo reads as a CLI still gets\n * `runtime: Go` from go.mod).\n */\nexport function detectStackWithFacts(dir: string): { data: FafData; facts: Record<string, string> } {\n const pkg = readPackageJson(dir);\n const frameworks = detectFrameworks(dir);\n const detection = detectProjectTypeWithRationale(dir);\n const projectType = detection.type;\n // Polyglot repos (real stack in sibling dirs) get an aggregated language\n // string instead of the misleading root-only detectLanguage() fallback.\n const isPolyglot = detection.found.some(f => f.startsWith('polyglot:'));\n const language = (isPolyglot && detectPolyglotLanguage(dir)) || detectLanguage(dir);\n const runtime = detectRuntime(dir);\n const pkgManager = detectPackageManager(dir);\n const cicd = detectCicd(dir);\n const hosting = detectHosting(dir);\n const buildTool = detectBuildTool(dir);\n\n // Find specific frameworks by category\n // A project with the kit is a SvelteKit project, whatever plain Svelte scores.\n const frontendFw = frameworks.find(f => f.slug === 'sveltekit') ?? frameworks.find(f => f.category === 'frontend');\n const cssFw = frameworks.find(f => f.category === 'css');\n const uiFw = frameworks.find(f => f.category === 'ui');\n const stateFw = frameworks.find(f => f.category === 'state');\n const backendFw = frameworks.find(f => f.category === 'backend');\n const dbFw = frameworks.find(f => f.category === 'database');\n\n // Which slots the app-type uses (an unknown type reads as library)\n const uses = (slot: SlotDef): boolean => appTypeUsesSlot(projectType, slot) ?? appTypeUsesSlot('library', slot) === true;\n\n // Framework sub-type detection (framework → svelte, framework → nextjs, etc.)\n const isFramework = projectType === 'framework';\n const hasSvelteSignal = frameworks.some(f => f.slug === 'svelte' || f.slug === 'sveltekit');\n const frameworkSubType = isFramework && hasSvelteSignal ? 'svelte' : (isFramework ? null : null);\n\n // Svelte-aware: fires for svelte apps AND framework→svelte repos\n const isSvelte = projectType === 'svelte' || frameworkSubType === 'svelte';\n const svelteAdapter = isSvelte ? detectSvelteAdapter(dir) : null;\n const hasSvelteKit = isSvelte && frameworks.some(f => f.slug === 'sveltekit');\n\n // The repo's fact for each stack slot, whatever the app-type ('' when none).\n const facts: Record<string, string> = {};\n const stackSlots = SLOTS.filter(s => s.path.startsWith('stack.'));\n\n for (const slot of stackSlots) {\n const field = slot.path.replace('stack.', '');\n // Detected values (Svelte-aware overrides applied inline)\n switch (field) {\n // The skills app-types name their framework here: the skills format\n case 'frontend': facts[field] = frontendFw?.name ?? detectSkillsFormat(dir); break;\n case 'css_framework': facts[field] = cssFw?.name ?? ''; break;\n case 'ui_library': facts[field] = uiFw?.name ?? ''; break;\n case 'state_management':\n // Svelte 5 uses Runes — no external state library needed. Only when\n // package.json says Svelte 5 or later: Svelte 4 has no Runes.\n facts[field] = stateFw?.name ?? (isSvelte && svelteMajor(pkg) >= 5 ? 'Runes' : '');\n break;\n case 'backend':\n // SvelteKit IS the backend (server routes, form actions, hooks)\n facts[field] = isSvelte ? (hasSvelteKit ? 'SvelteKit' : (backendFw?.name ?? '')) : (backendFw?.name ?? '');\n break;\n case 'api_type':\n // SvelteKit uses form actions + server routes\n facts[field] = hasSvelteKit ? 'Server Routes' : '';\n break;\n case 'runtime': facts[field] = runtime; break;\n case 'database':\n // Only populate if ORM actually detected\n facts[field] = dbFw?.name ?? '';\n break;\n case 'connection':\n facts[field] = dbFw?.name ?? '';\n break;\n case 'hosting':\n // Svelte adapter → hosting platform (adapter-vercel = Vercel, etc.)\n if (isSvelte && svelteAdapter) {\n facts[field] = svelteAdapter;\n } else {\n facts[field] = hosting ?? '';\n }\n break;\n case 'build':\n // SvelteKit always builds with Vite; plain Svelte only when the repo says so\n facts[field] = hasSvelteKit ? viteLabel(pkg) : (buildTool ?? '');\n break;\n case 'cicd': facts[field] = cicd ?? ''; break;\n case 'package_manager': facts[field] = pkgManager; break;\n default: facts[field] = ''; break;\n }\n }\n\n // Build stack with slotignored for the slots the app-type leaves out\n // (a framework repo also leaves out the slots framework source code never\n // has — see appTypeUsesSlot)\n const stack: Record<string, string> = {};\n for (const slot of stackSlots) {\n const field = slot.path.replace('stack.', '');\n stack[field] = uses(slot) ? facts[field] : 'slotignored';\n }\n\n // Build monorepo section\n const monorepo: Record<string, string> = {};\n const monorepoSlots = SLOTS.filter(s => s.path.startsWith('monorepo.'));\n for (const slot of monorepoSlots) {\n const field = slot.path.replace('monorepo.', '');\n if (!uses(slot)) {\n monorepo[field] = 'slotignored';\n } else {\n monorepo[field] = '';\n }\n }\n\n // Build project section\n const project: Record<string, string> = {\n name: pkg?.name ?? dir.split('/').pop() ?? 'project',\n // A polyglot repo's root package.json describes the tooling shell, not the\n // product — leave goal for the README interrogator / the human to fill.\n goal: isPolyglot ? '' : (pkg?.description ?? ''),\n main_language: language,\n type: projectType,\n };\n if (isFramework && frameworkSubType) {\n project.framework = frameworkSubType;\n }\n\n // Canonical FAFb v2 chunks (read by faf-fafb compile).\n // Without these keys the brick still compiles, but only from whatever\n // other canonical fields are present. Per v6.6.md + faf-auto-no-guess-no-slop:\n // tech_stack/key_files/commands auto-populate from observable signals;\n // architecture/context stay empty (user fill — architecture overlaps with\n // human_context.how, context is free-form additional signal).\n // Feed detectTechStack the ROOT language (a single token), never the polyglot\n // summary string — that belongs only in project.main_language.\n const techStack = detectTechStack(dir, pkg, frameworks, isPolyglot ? detectLanguage(dir) : language);\n if (isPolyglot) {\n // Add each sibling component's language + top framework (deduped, order-stable).\n for (const s of detectSubdirStacks(dir)) {\n for (const t of [s.language, s.topFramework]) {\n if (t && !techStack.includes(t)) {techStack.push(t);}\n }\n }\n }\n const keyFiles = detectKeyFiles(dir);\n const commands = detectCommands(dir, pkg);\n\n const result: FafData = {\n faf_version: FAF_VERSION,\n project,\n stack,\n human_context: {\n who: '',\n // A polyglot root's package.json describes the tooling shell, not the\n // product — leave `what` for the README interrogator / the human.\n what: isPolyglot ? '' : (pkg?.description ?? ''),\n why: '',\n where: '',\n when: '',\n how: '',\n },\n monorepo,\n // Runtime-only meta. Stripped before YAML serialization by writeFaf,\n // which uses _meta.found to inject `# found: <list>` next to `type:`.\n // Glass Hood doctrine — the user sees WHY the cli classified as it did.\n _meta: { found: detection.found },\n };\n\n // Only emit FAFB top-level keys if non-empty (no slop / empty-list pollution)\n if (techStack.length > 0) {result.tech_stack = techStack;}\n if (keyFiles.length > 0) {result.key_files = keyFiles;}\n if (Object.keys(commands).length > 0) {result.commands = commands;}\n\n return { data: result, facts };\n}\n",
175
175
  "/**\n * Repo interrogation — extract slot content from README, Cargo.toml,\n * package.json, etc., without guessing or substituting generic slop.\n *\n * Contract (per faf-auto-no-guess-no-slop doctrine):\n * - Each slot has a per-slot evidence anchor\n * - If the anchor is missing → leave empty (do NOT synthesize from other slots)\n * - If the anchor is present but content is generic / too long / structural →\n * leave empty (do NOT settle for slop)\n * - Empty is honest; wrong is a lie\n *\n * Per goal-is-not-a-6w doctrine:\n * - `project.goal` is the elevator pitch / use case — its own anchor\n * - Each `human_context.*` 6W has its own anchor\n * - No slot inherits from / is split-extracted from another\n */\n\n/** Content extracted from a single source file (README, Cargo.toml, etc.) */\nexport interface ExtractedContext {\n project?: {\n /** One-line elevator pitch / use case. README first prose paragraph,\n * ## Use Case section, or Cargo.toml description. */\n goal?: string;\n };\n human_context?: {\n /** Audience — \"## Audience\" / \"for {audience}\" patterns */\n who?: string;\n /** What's being built — \"## About\" / \"## Description\" / \"X is...\" */\n what?: string;\n /** Motivation — \"## Why\" / \"## Motivation\" / \"Problem:\" */\n why?: string;\n /** Where it runs — \"## Deployment\" / \"## Where\" / install-target */\n where?: string;\n /** Status / timeline — \"## Status\" / \"Production since\" / version line */\n when?: string;\n /** Approach — \"## Architecture\" / \"## How it works\" */\n how?: string;\n };\n /** Stack facts pulled from real config files (docker-compose services, …).\n * Higher-precedence than README prose or presence-only guesses for these. */\n stack?: {\n database?: string;\n cache?: string;\n search?: string;\n storage?: string;\n hosting?: string;\n runtime?: string;\n };\n /** Real project commands from Makefile / justfile / Taskfile targets. */\n commands?: Record<string, string>;\n /** Secrets handling — from .env.example / .env.sample presence. */\n security?: {\n secrets?: string;\n example?: string;\n };\n}\n\n/** Confidence threshold rules for extracted text — empty if violated */\nexport const EXTRACTION_LIMITS = {\n /** Minimum length for a slot to be considered worth filling (in chars) */\n MIN_LENGTH: 8,\n /** Maximum length — anything longer is documentation, not a slot fill */\n MAX_LENGTH: 280,\n} as const;\n\n/** Generic slop patterns — extracted text matching these is rejected */\nexport const SLOP_PATTERNS: readonly RegExp[] = [\n /^(see|see\\s+the?)\\s+readme/i,\n /^(tbd|todo|fixme|coming\\s+soon)\\b/i,\n /^(software|application|app|project|tool|library|framework)\\.?$/i,\n /^(for\\s+users|for\\s+developers)\\.?$/i,\n /^(description|goal|name|title)\\.?$/i,\n /^lorem\\s+ipsum/i,\n /^example(\\s+\\w+)?\\.?$/i,\n];\n\n/** Validate extracted text against the no-guess/no-slop doctrine */\nexport function isValidExtraction(text: string): boolean {\n const trimmed = text.trim();\n if (trimmed.length < EXTRACTION_LIMITS.MIN_LENGTH) {return false;}\n if (trimmed.length > EXTRACTION_LIMITS.MAX_LENGTH) {return false;}\n if (SLOP_PATTERNS.some((re) => re.test(trimmed))) {return false;}\n // Reject if text is mostly markdown structure (links, lists, tables)\n if (/^[\\s|\\-*+]/.test(trimmed)) {return false;}\n if (trimmed.split('\\n').length > 4) {return false;} // multi-paragraph blob\n return true;\n}\n",
176
176
  "/**\n * README.md interrogation — extract slot content from semantic markdown anchors.\n *\n * Per faf-auto-no-guess-no-slop:\n * Each extractor looks for a specific anchor (heading, structural pattern).\n * If the anchor is missing or the content fails validation → return undefined.\n * No slot is synthesized from another slot's content.\n */\n\nimport { readRepoFile, repoExists } from '../core/safe-write.js';\nimport { type ExtractedContext, isValidExtraction } from './types.js';\n\n/** Strip badge / image lines + blank lines from the top of a README */\nfunction stripPreamble(content: string): string {\n const lines = content.split('\\n');\n let i = 0;\n // Skip the title line (first H1) and any blank/badge lines after it\n while (i < lines.length && /^(#\\s|$)/.test(lines[i].trim())) {i++;}\n while (i < lines.length) {\n const line = lines[i].trim();\n // Badge lines: [![alt](url)](url) — image links inside markdown links\n if (/^\\[!\\[/.test(line)) { i++; continue; }\n // Standalone images: ![alt](url)\n if (/^!\\[/.test(line)) { i++; continue; }\n // HTML img tags\n if (/^<img\\s/i.test(line)) { i++; continue; }\n // Blank lines\n if (line === '') { i++; continue; }\n break;\n }\n return lines.slice(i).join('\\n');\n}\n\n/** Get the first prose paragraph (single block, no headings/lists/code) */\nfunction firstProseParagraph(content: string): string | null {\n const stripped = stripPreamble(content);\n const lines = stripped.split('\\n');\n const buf: string[] = [];\n for (const raw of lines) {\n const line = raw.trim();\n if (line === '') {\n if (buf.length > 0) {break;}\n continue;\n }\n // Stop at next heading / list / code / quote / table\n if (/^(#|>|```|---|\\||\\s*[-*+]\\s|\\d+\\.\\s)/.test(line)) {break;}\n // Skip pure-bold-tagline lines like \"**For Grok. For the rockets.**\"\n // (these are punchy spirit lines, not informative goal content)\n if (/^\\*\\*[^*]+\\*\\*\\s*$/.test(line) && buf.length === 0) {continue;}\n buf.push(line);\n }\n if (buf.length === 0) {return null;}\n return buf.join(' ').trim();\n}\n\n/** Extract content following a heading whose text matches `pattern` */\nfunction sectionContent(content: string, pattern: RegExp): string | null {\n const lines = content.split('\\n');\n let i = 0;\n while (i < lines.length) {\n const line = lines[i].trim();\n const m = line.match(/^(#{1,6})\\s+(.+)$/);\n if (m && pattern.test(m[2])) {\n const headingLevel = m[1].length;\n // Read prose lines until next heading of same-or-higher level\n const buf: string[] = [];\n i++;\n while (i < lines.length) {\n const next = lines[i].trim();\n const nextHeading = next.match(/^(#{1,6})\\s+/);\n if (nextHeading && nextHeading[1].length <= headingLevel) {break;}\n if (next === '') { if (buf.length > 0) {break;} i++; continue; }\n // Stop at structural elements (code blocks, lists, tables)\n if (/^(>|```|---|\\||\\s*[-*+]\\s|\\d+\\.\\s)/.test(next)) {break;}\n buf.push(next);\n i++;\n }\n if (buf.length === 0) {return null;}\n return buf.join(' ').trim();\n }\n i++;\n }\n return null;\n}\n\n/** Extract `project.goal` — first prose paragraph or ## Use Case / ## Goal */\nexport function extractGoal(content: string): string | undefined {\n // Anchor 1: explicit \"## Use Case\" / \"## Use Cases\" / \"## Goal\" section\n const explicit = sectionContent(content, /^(use\\s+cases?|goal)\\b/i);\n if (explicit && isValidExtraction(explicit)) {return explicit;}\n\n // Anchor 2: first prose paragraph after title/badges\n const tagline = firstProseParagraph(content);\n if (tagline && isValidExtraction(tagline)) {return tagline;}\n\n return undefined;\n}\n\n/** Extract `human_context.what` — ## About / ## Description / ## Overview */\nexport function extractWhat(content: string): string | undefined {\n const text = sectionContent(content, /^(about|description|overview|what(\\s+is\\s+this)?)\\b/i);\n if (text && isValidExtraction(text)) {return text;}\n return undefined;\n}\n\n/** Extract `human_context.who` — ## Audience / ## For Whom / ## Users */\nexport function extractWho(content: string): string | undefined {\n const text = sectionContent(content, /^(audience|users?|for\\s+whom|who(\\s+is\\s+this\\s+for)?)\\b/i);\n if (text && isValidExtraction(text)) {return text;}\n return undefined;\n}\n\n/** Extract `human_context.why` — ## Why / ## Motivation / ## Problem */\nexport function extractWhy(content: string): string | undefined {\n const text = sectionContent(content, /^(why|motivation|problem|rationale)\\b/i);\n if (text && isValidExtraction(text)) {return text;}\n return undefined;\n}\n\n/** Extract `human_context.where` — ## Deployment / ## Where it runs / ## Install */\nexport function extractWhere(content: string): string | undefined {\n // Prefer specific \"where it runs\" / \"deployment\" over generic \"install\"\n const specific = sectionContent(content, /^(deployment|where(\\s+it\\s+runs)?|hosting)\\b/i);\n if (specific && isValidExtraction(specific)) {return specific;}\n return undefined;\n}\n\n/** Extract `human_context.when` — ## Status / ## History / \"Production since\" */\nexport function extractWhen(content: string): string | undefined {\n const text = sectionContent(content, /^(status|history|timeline|since|launched)\\b/i);\n if (text && isValidExtraction(text)) {return text;}\n return undefined;\n}\n\n/** Extract `human_context.how` — ## Architecture / ## How it works / ## Approach */\nexport function extractHow(content: string): string | undefined {\n const text = sectionContent(content, /^(architecture|how(\\s+it\\s+works)?|approach|design)\\b/i);\n if (text && isValidExtraction(text)) {return text;}\n return undefined;\n}\n\n/** Read README.md and extract per-slot content. Returns {} if no README. */\nexport function interrogateReadme(dir: string): ExtractedContext {\n const candidates = ['README.md', 'README.MD', 'Readme.md', 'readme.md'];\n let path: string | null = null;\n for (const name of candidates) {\n if (repoExists(dir, name)) { path = name; break; }\n }\n if (!path) {return {};}\n\n let content = readRepoFile(dir, path);\n if (content === null) {return {};}\n // HTML comment blocks (asset notes, TODO markers, marketing briefs) are not\n // prose — strip before any extraction so their text can't seed a slot.\n content = content.replace(/<!--[\\s\\S]*?-->/g, '');\n\n const result: ExtractedContext = {};\n\n const goal = extractGoal(content);\n if (goal) {result.project = { goal };}\n\n const human: NonNullable<ExtractedContext['human_context']> = {};\n const what = extractWhat(content); if (what) {human.what = what;}\n const who = extractWho(content); if (who) {human.who = who;}\n const why = extractWhy(content); if (why) {human.why = why;}\n const where = extractWhere(content); if (where) {human.where = where;}\n const when = extractWhen(content); if (when) {human.when = when;}\n const how = extractHow(content); if (how) {human.how = how;}\n\n if (Object.keys(human).length > 0) {result.human_context = human;}\n\n return result;\n}\n",
177
177
  "/**\n * Cargo.toml interrogation — extract Rust project metadata.\n *\n * The [package].description field is the Rust ecosystem's equivalent of\n * package.json's `description` — a one-line elevator pitch. It maps to\n * `project.goal` (overarching/use-case framing).\n */\n\nimport { readRepoFile } from '../core/safe-write.js';\nimport { type ExtractedContext, isValidExtraction } from './types.js';\n\n/** Parse a single TOML field from `[package]` table. Naive but adequate for\n * description / authors / repository / license — fields that don't span\n * multiple lines or use complex nested structures. */\nfunction readPackageField(content: string, field: string): string | null {\n const lines = content.split('\\n');\n let inPackageSection = false;\n for (const line of lines) {\n const trimmed = line.trim();\n // Section header\n if (/^\\[/.test(trimmed)) {\n inPackageSection = trimmed === '[package]';\n continue;\n }\n if (!inPackageSection) {continue;}\n // Match `field = \"value\"` or `field=\"value\"`\n const m = trimmed.match(new RegExp(`^${field}\\\\s*=\\\\s*(.+)$`));\n if (m) {\n let value = m[1].trim();\n // Strip trailing comment\n value = value.replace(/\\s*#.*$/, '').trim();\n // Strip surrounding quotes (double or single)\n const quoted = value.match(/^\"((?:[^\"\\\\]|\\\\.)*)\"$/) || value.match(/^'((?:[^'\\\\]|\\\\.)*)'$/);\n if (quoted) {return quoted[1];}\n return value;\n }\n }\n return null;\n}\n\n/** Read Cargo.toml and extract per-slot content. Returns {} if no Cargo.toml. */\nexport function interrogateCargo(dir: string): ExtractedContext {\n const content = readRepoFile(dir, 'Cargo.toml');\n if (content === null) {return {};}\n\n const description = readPackageField(content, 'description');\n if (description && isValidExtraction(description)) {\n return { project: { goal: description } };\n }\n\n return {};\n}\n",
@@ -182,11 +182,12 @@
182
182
  "/**\n * Turbo-Cat™ (= Format-finder) — fills .faf slots from file-format evidence\n * across ~200 formats (the KNOWLEDGE_BASE). Restores the multi-ecosystem\n * manifest interrogation the v6.0 rewrite narrowed to README+Cargo+package.json.\n *\n * v6-native sync port (the v5 engine was async; sync integrates cleanly with\n * `auto`). Two-layer: (1A) config files in the project directory itself,\n * (1B) source extensions below it; priority-wins slot recommendations.\n *\n * Boundary: detection never looks above the project directory. A parent's\n * tsconfig.json, Cargo.toml or vercel.json is another project's evidence —\n * a monorepo package, a subfolder or a new folder under ~ must not inherit it.\n *\n * Used as the LOWEST-precedence filler in `auto`: v6's specific detection wins;\n * Turbo-Cat fills only the slots still empty (esp. non-npm stacks).\n */\n\nimport type { Dirent } from 'fs';\nimport { join, extname, resolve } from 'path';\nimport { readRepoDir, readRepoFile, statRepoFile, withRepoRoot } from '../core/safe-write.js';\nimport { KNOWLEDGE_BASE } from './turbo-cat-knowledge.js';\nimport { detectDartProject } from './dart.js';\nimport { detectGoProject } from './go.js';\nimport { detectCsharpProject } from './csharp.js';\nimport { detectJvmProject } from './jvm.js';\nimport { detectRubyProject } from './ruby.js';\nimport { detectSwiftProject } from './swift.js';\n\nconst IGNORE = new Set([\n 'node_modules', '.git', 'dist', 'build', 'venv', '.venv', '__pycache__',\n 'target', 'coverage', '.next', '.svelte-kit', 'vendor',\n]);\nconst SCAN_EXTS = new Set([\n '.py', '.ts', '.tsx', '.js', '.jsx', '.svelte', '.vue',\n '.rb', '.go', '.rs', '.php', '.java', '.kt', '.swift',\n]);\n\n/** ContextSlots (camelCase + snake_case) → v6 .faf slot path. */\nconst SLOT_MAP: Record<string, [section: string, field: string]> = {\n mainLanguage: ['project', 'main_language'], main_language: ['project', 'main_language'],\n framework: ['stack', 'frontend'],\n cssFramework: ['stack', 'css_framework'], css: ['stack', 'css_framework'],\n uiLibrary: ['stack', 'ui_library'], ui_library: ['stack', 'ui_library'],\n stateManagement: ['stack', 'state_management'], state: ['stack', 'state_management'],\n backend: ['stack', 'backend'],\n apiType: ['stack', 'api_type'], api: ['stack', 'api_type'],\n runtime: ['stack', 'runtime'],\n database: ['stack', 'database'], db: ['stack', 'database'],\n connection: ['stack', 'connection'],\n hosting: ['stack', 'hosting'],\n buildTool: ['stack', 'build'], build_tool: ['stack', 'build'], build: ['stack', 'build'],\n packageManager: ['stack', 'package_manager'], pkg_manager: ['stack', 'package_manager'],\n cicd: ['stack', 'cicd'],\n};\n\n/** A format actually discovered on disk (config-file layer; real files only). */\nexport interface DiscoveredFormat {\n fileName: string;\n /** Derived from the entry's primary slot family (deterministic — real\n * knowledge surfaced, not invented): package-manager, language, framework,\n * backend, database, ci-cd, hosting, build, … */\n category: string;\n priority: number;\n}\n\nexport interface TurboCatResult {\n slotFills: Record<string, string>; // ContextSlots key → value (priority-wins)\n frameworks: string[];\n confirmedCount: number;\n /** Option B (compose spec 2026-06-12): the per-format breakdown consumers\n * display — surfaced so MCPs can DELETE their local format maps entirely. */\n discoveredFormats: DiscoveredFormat[];\n /** Deterministic lowercase signature, e.g. \"typescript-react\" ('unknown-stack' when bare). */\n stackSignature: string;\n}\n\ninterface FoundFormat {\n slots: Record<string, string>;\n priority: number;\n frameworks: string[];\n fileName?: string; // set for the config-file layer (real files on disk)\n}\n\n/** slot-family → display category (first match wins; deterministic). */\nconst CATEGORY_BY_SLOT: Array<[slot: string, category: string]> = [\n ['packageManager', 'package-manager'],\n ['pkg_manager', 'package-manager'],\n ['mainLanguage', 'language'],\n ['main_language', 'language'],\n ['framework', 'framework'],\n ['backend', 'backend'],\n ['database', 'database'],\n ['db', 'database'],\n ['cicd', 'ci-cd'],\n ['hosting', 'hosting'],\n ['buildTool', 'build'],\n ['build_tool', 'build'],\n ['build', 'build'],\n ['runtime', 'runtime'],\n ['cssFramework', 'css'],\n ['css', 'css'],\n ['uiLibrary', 'ui-library'],\n ['stateManagement', 'state-management'],\n ['apiType', 'api'],\n ['api', 'api'],\n];\n\nfunction categoryFor(slots: Record<string, string>, frameworks: string[]): string {\n for (const [slot, category] of CATEGORY_BY_SLOT) {\n if (slot in slots) {return category;}\n }\n return frameworks.length > 0 ? 'framework' : 'config';\n}\n\n/**\n * `manifest.json` is one of the most overloaded filenames in software —\n * Chrome/browser extension, mcpb/MCP manifest, PWA manifest, or plain config.\n * Asserting a Chrome stack from the FILENAME is a guess, and sourced-only\n * forbids guessing (every FAF MCP ships an mcpb manifest.json and was\n * mis-detected as a JS Chrome Extension — the 2026-06-12 blocker).\n *\n * Disambiguate by CONTENT, or assert nothing:\n * chrome — manifest_version is a NUMBER (2/3) AND a chrome field present\n * → the KB's chrome entry applies (as before)\n * mcpb — manifest_version is a STRING (\"0.x\") or MCP fields present\n * → assert NOTHING (real evidence — .ts/tsconfig/deps — wins)\n * pwa — start_url/display/icons → assert nothing\n * unknown/unreadable → assert NOTHING. An honest empty beats a guessed stack.\n */\nfunction classifyManifestJson(dir: string, name: string): 'chrome' | 'other' {\n try {\n const m = JSON.parse(readRepoFile(dir, name) ?? '') as Record<string, unknown>;\n const chromeField = ['background', 'content_scripts', 'action', 'browser_action', 'permissions']\n .some((k) => k in m);\n if (typeof m.manifest_version === 'number' && chromeField) {return 'chrome';}\n return 'other'; // mcpb (string manifest_version / server / tools / display_name), PWA, or plain config\n } catch {\n return 'other'; // unreadable → assert nothing\n }\n}\n\n/** A directory entry that is a regular file (a link counts when it leads to one\n * inside the project; a dangling link, or one out of it, does not).\n * A folder named `go.mod` or `package.json` is not evidence of anything. */\nfunction isFileEntry(dir: string, e: Dirent): boolean {\n if (e.isFile()) {return true;}\n if (!e.isSymbolicLink()) {return false;}\n return statRepoFile(dir, e.name)?.isFile() === true;\n}\n\n/** A directory entry that is a folder (a link counts when it leads to one inside the project). */\nfunction isDirEntry(dir: string, e: Dirent): boolean {\n if (e.isDirectory()) {return true;}\n if (!e.isSymbolicLink()) {return false;}\n return statRepoFile(dir, e.name)?.isDirectory() === true;\n}\n\n/** Layer 1A — config files in the project directory only. Never a parent:\n * the walk up to 10 ancestors (stopping only at the project's own .git) wrote\n * another tree's stack into project.faf. */\nfunction scanConfigFiles(projectDir: string): FoundFormat[] {\n const found: FoundFormat[] = [];\n const cur = resolve(projectDir);\n /** One JVM classification per directory (pom + gradle + settings would triple-fire). */\n const jvmDirsDone = new Set<string>();\n const entries = readRepoDir(cur);\n if (!entries) {return found;}\n for (const e of entries) {\n const f = e.name;\n // Content-aware: *.xcodeproj is a folder (checked below); every other\n // format is a file, so anything else by that name is not evidence.\n if (f.endsWith('.xcodeproj') ? !isDirEntry(cur, e) : !isFileEntry(cur, e)) {continue;}\n // Content-aware: any *.csproj (names vary — not in KNOWLEDGE_BASE by basename).\n // .csproj alone ≠ type: Sdk + packages via detectCsharpProject.\n if (f.toLowerCase().endsWith('.csproj')) {\n const cp = detectCsharpProject(cur);\n if (cp) {\n const slots: Record<string, string> = {\n mainLanguage: 'C#',\n packageManager: 'NuGet',\n buildTool: 'dotnet',\n };\n if (cp.appType === 'backend' && cp.framework) {\n slots.backend = cp.framework;\n } else if (cp.appType === 'cli' && cp.framework) {\n slots.framework = cp.framework;\n } else if (cp.appType === 'mcp') {\n slots.apiType = 'MCP';\n } else if (cp.appType === 'mobile' && cp.framework) {\n slots.framework = cp.framework;\n }\n if (cp.targetFramework) {\n slots.runtime = cp.targetFramework;\n }\n const frameworks = cp.framework ? [cp.framework, 'C#', '.NET'] : ['C#', '.NET'];\n found.push({ slots, priority: 36, frameworks, fileName: f });\n }\n continue;\n }\n\n // Content-aware: *.xcodeproj (directory) — light productType via detectSwiftProject.\n // Prefer Package.swift when both exist (handled below); xcodeproj covers app-only trees.\n if (f.endsWith('.xcodeproj')) {\n const sp = detectSwiftProject(cur);\n if (sp) {\n const slots: Record<string, string> = {\n mainLanguage: 'Swift',\n packageManager: sp.packageManager === 'spm' ? 'spm' : 'Xcode',\n buildTool: sp.packageManager.includes('spm') ? 'swift build' : 'xcodebuild',\n };\n if (sp.appType === 'backend' && sp.framework) {\n slots.backend = sp.framework;\n } else if (sp.appType === 'cli' && sp.framework) {\n slots.framework = sp.framework;\n } else if (sp.appType === 'mcp') {\n slots.apiType = 'MCP';\n } else if (sp.appType === 'app' && sp.framework) {\n slots.framework = sp.framework;\n }\n const frameworks = sp.framework ? [sp.framework, 'Swift'] : ['Swift'];\n found.push({ slots, priority: 36, frameworks, fileName: f });\n }\n continue;\n }\n\n const k = KNOWLEDGE_BASE[f];\n if (!k) {continue;}\n // Sourced-only gate: manifest.json only asserts the chrome stack when\n // its CONTENT proves a chrome extension; mcpb/PWA/unknown assert nothing.\n if (f === 'manifest.json' && classifyManifestJson(cur, f) !== 'chrome') {continue;}\n // Content-aware: pubspec.yaml backs Flutter apps, Dart CLIs/packages,\n // servers, and MCP servers — branch by deps instead of asserting Flutter\n // for everything (the filename-only flattening this engine used to do).\n if (f === 'pubspec.yaml') {\n const dp = detectDartProject(cur);\n if (dp) {\n const slots: Record<string, string> = { mainLanguage: 'Dart', packageManager: 'pub' };\n if (dp.isFlutter) {\n slots.framework = 'Flutter';\n if (dp.stateManagement) {slots.stateManagement = dp.stateManagement;}\n } else if (dp.appType === 'backend' && dp.framework) {\n slots.backend = dp.framework;\n } else if (dp.appType === 'mcp') {\n slots.apiType = 'MCP';\n }\n found.push({ slots, priority: k.priority, frameworks: dp.isFlutter ? ['Flutter', 'Dart'] : ['Dart'], fileName: f });\n continue;\n }\n }\n // Content-aware: go.mod backs libraries, backends, CLIs, MCP — not one bucket.\n if (f === 'go.mod') {\n const gp = detectGoProject(cur);\n if (gp) {\n const slots: Record<string, string> = {\n mainLanguage: 'Go',\n packageManager: 'go modules',\n buildTool: 'go build',\n };\n if (gp.appType === 'backend' && gp.framework) {\n slots.backend = gp.framework;\n } else if (gp.appType === 'cli' && gp.framework) {\n slots.framework = gp.framework;\n } else if (gp.appType === 'mcp') {\n slots.apiType = 'MCP';\n }\n const frameworks = gp.framework ? [gp.framework, 'Go'] : ['Go'];\n found.push({ slots, priority: k.priority, frameworks, fileName: f });\n continue;\n }\n }\n // Content-aware: Gemfile alone ≠ Rails (Ruby Edition).\n if (f === 'Gemfile' || f === 'Gemfile.lock' || f === 'gems.rb') {\n const rp = detectRubyProject(cur);\n if (rp) {\n const slots: Record<string, string> = {\n mainLanguage: 'Ruby',\n packageManager: rp.packageManager,\n };\n if (rp.appType === 'backend' && rp.framework) {\n slots.backend = rp.framework;\n } else if (rp.appType === 'cli' && rp.framework) {\n slots.framework = rp.framework;\n } else if (rp.appType === 'mcp') {\n slots.apiType = 'MCP';\n }\n const frameworks = rp.framework ? [rp.framework, 'Ruby'] : ['Ruby'];\n found.push({\n slots,\n priority: k.priority ?? 35,\n frameworks,\n fileName: f,\n });\n continue;\n }\n }\n // Content-aware: Package.swift alone ≠ app (Swift Edition).\n if (f === 'Package.swift') {\n const sp = detectSwiftProject(cur);\n if (sp) {\n const slots: Record<string, string> = {\n mainLanguage: 'Swift',\n packageManager: sp.packageManager === 'xcode' ? 'Xcode' : 'spm',\n buildTool: 'swift build',\n };\n if (sp.appType === 'backend' && sp.framework) {\n slots.backend = sp.framework;\n } else if (sp.appType === 'cli' && sp.framework) {\n slots.framework = sp.framework;\n } else if (sp.appType === 'mcp') {\n slots.apiType = 'MCP';\n } else if (sp.appType === 'app' && sp.framework) {\n slots.framework = sp.framework;\n }\n const frameworks = sp.framework ? [sp.framework, 'Swift'] : ['Swift'];\n found.push({\n slots,\n priority: k.priority ?? 36,\n frameworks,\n fileName: f,\n });\n continue;\n }\n }\n // Content-aware: pom / gradle alone ≠ type (JVM Edition). One brand JVM;\n // Android/KMP are facets. Version catalogs + multi-module via detectJvmProject.\n if (\n f === 'pom.xml' ||\n f === 'build.gradle' ||\n f === 'build.gradle.kts' ||\n f === 'settings.gradle' ||\n f === 'settings.gradle.kts'\n ) {\n if (jvmDirsDone.has(cur)) {continue;}\n jvmDirsDone.add(cur);\n const jv = detectJvmProject(cur);\n if (jv) {\n const slots: Record<string, string> = {\n mainLanguage: jv.mainLanguage === 'Java/Kotlin' ? 'Kotlin' : jv.mainLanguage,\n packageManager: jv.buildTool === 'maven' ? 'maven' : 'gradle',\n buildTool: jv.buildTool,\n };\n if (jv.appType === 'backend' && jv.framework) {\n slots.backend = jv.framework;\n } else if (jv.appType === 'cli' && jv.framework) {\n slots.framework = jv.framework;\n } else if (jv.appType === 'mcp') {\n slots.apiType = 'MCP';\n } else if (jv.appType === 'mobile') {\n slots.framework = jv.framework || 'Android';\n }\n if (jv.facets.includes('multiplatform')) {\n slots.framework = jv.framework || 'Kotlin Multiplatform';\n }\n const frameworks = jv.framework\n ? [jv.framework, 'JVM', jv.mainLanguage === 'Kotlin' ? 'Kotlin' : 'Java']\n : ['JVM', jv.mainLanguage === 'Kotlin' ? 'Kotlin' : 'Java'];\n found.push({\n slots,\n priority: k.priority ?? 35,\n frameworks,\n fileName: f,\n });\n continue;\n }\n }\n found.push({ slots: (k.slots as Record<string, string>) || {}, priority: k.priority, frameworks: k.frameworks, fileName: f });\n }\n return found;\n}\n\n/** Layer 1B — source extensions present. Extensions assert LANGUAGE only: a .py\n * reliably means Python, but a stray .tsx must not assert \"React\" (frameworks\n * come from config files, Layer 1A). */\nfunction scanExtensions(projectDir: string): FoundFormat[] {\n const found: FoundFormat[] = [];\n for (const ext of withRepoRoot(projectDir, () => collectExtensions(projectDir, 2, { count: 0 }))) {\n const k = KNOWLEDGE_BASE[`*${ext}`];\n const lang = (k?.slots as Record<string, string> | undefined)?.mainLanguage;\n if (lang) {found.push({ slots: { mainLanguage: lang }, priority: k.priority, frameworks: k.frameworks });}\n }\n return found;\n}\n\n/** Scan formats → priority-wins slot recommendations. */\nexport function turboCatScan(projectDir: string): TurboCatResult {\n const found = [...scanConfigFiles(projectDir), ...scanExtensions(projectDir)];\n\n // Analyze — highest priority wins each slot (deterministic, order-independent).\n // Skip ambiguous multi-option hints (e.g. \"npm/yarn/pnpm\") — only confident\n // single values fill; v6's specific detection handles the rest.\n const slotFills: Record<string, string> = {};\n const slotPrio: Record<string, number> = {};\n const fw = new Set<string>();\n for (const item of found) {\n item.frameworks.forEach((f) => fw.add(f));\n for (const [slot, val] of Object.entries(item.slots)) {\n if (val && !val.includes('/') && (!(slot in slotFills) || item.priority > slotPrio[slot])) {\n slotFills[slot] = val;\n slotPrio[slot] = item.priority;\n }\n }\n }\n // Per-format breakdown — real files only, deduped, deterministic order\n // (priority desc, then name) regardless of filesystem enumeration order.\n const seen = new Map<string, DiscoveredFormat>();\n for (const item of found) {\n if (!item.fileName) {continue;}\n if (!seen.has(item.fileName)) {\n seen.set(item.fileName, {\n fileName: item.fileName,\n category: categoryFor(item.slots, item.frameworks),\n priority: item.priority,\n });\n }\n }\n const discoveredFormats = [...seen.values()].sort(\n (a, b) => b.priority - a.priority || a.fileName.localeCompare(b.fileName),\n );\n\n // Deterministic stack signature: language + framework, lowercased, dash-joined.\n const sigParts: string[] = [];\n if (slotFills.mainLanguage) {sigParts.push(slotFills.mainLanguage.toLowerCase());}\n if (slotFills.framework) {sigParts.push(slotFills.framework.toLowerCase());}\n const stackSignature = sigParts.length > 0 ? sigParts.join('-') : 'unknown-stack';\n\n return { slotFills, frameworks: [...fw], confirmedCount: found.length, discoveredFormats, stackSignature };\n}\n\n/** Turbo-Cat slot fills shaped as a v6 .faf partial ({ project, stack }) for fillEmpties. */\nexport function turboCatSlots(projectDir: string): { project?: Record<string, string>; stack?: Record<string, string> } {\n const { slotFills } = turboCatScan(projectDir);\n const out: { project?: Record<string, string>; stack?: Record<string, string> } = {};\n for (const [key, value] of Object.entries(slotFills)) {\n const target = SLOT_MAP[key];\n if (!target || !value) {continue;}\n const [section, field] = target;\n if (section === 'project') {(out.project ??= {})[field] = value;}\n else {(out.stack ??= {})[field] = value;}\n }\n return out;\n}\n\nfunction collectExtensions(dir: string, depth: number, budget: { count: number }): Set<string> {\n const exts = new Set<string>();\n if (depth < 0 || budget.count > 400) {return exts;}\n const entries = readRepoDir(dir);\n if (!entries) {return exts;}\n for (const e of entries) {\n if (budget.count++ > 400) {break;}\n if (!e.isDirectory()) {\n const ext = extname(e.name);\n if (SCAN_EXTS.has(ext)) {exts.add(ext);}\n continue;\n }\n if (IGNORE.has(e.name) || e.name.startsWith('.')) {continue;}\n for (const x of collectExtensions(join(dir, e.name), depth - 1, budget)) {exts.add(x);}\n }\n return exts;\n}\n",
183
183
  "/**\n * 🔺 TURBO-CAT™ FORMAT PYRAMID v3.1.1\n *\n * ROW 20 IN PROGRESS - 199 FORMATS CATALOGUED!\n *\n * Like precious metals in a catalytic converter - each format triggers\n * a specific intelligence reaction. We CAN catalyze ANY format, but only\n * the WORTHY earn a pyramid stone!\n *\n * Pyramid Evolution:\n * ├── Row 17: Sum(1..17) + 1 = 154 (THE SACRED - ACHIEVED 2024)\n * ├── Row 18: Sum(1..18) + 1 = 172 (BEYOND SACRED - ACHIEVED)\n * ├── Row 19: Sum(1..19) + 1 = 190 (ACHIEVED 2025-12-17)\n * └── Row 20: Sum(1..20) + 1 = 211 (IN PROGRESS - 9/21 added)\n *\n * Row 20 Tier 1 Added (2025-12-17):\n * - build.zig.zon (Zig packages)\n * - gleam.toml (Gleam - 2nd most admired 2025)\n * - bunfig.toml (Bun config)\n * - mise.toml / .mise.toml (mise version manager)\n * - manifest.toml (Flox/Nix environments)\n * - justfile (Just command runner - 10k+ stars)\n * - .pre-commit-config.yaml (Git hooks framework)\n * - CLAUDE.md (Claude Code AI context)\n *\n * THE DOCTRINE: To add a new format, PROVE it's better than existing ones!\n *\n * 😽 We are the FORMAT FREAKS - Quality over Quantity!\n * 🏆 199 formats - CHAMPIONSHIP GRADE FORMAT DETECTION\n */\n\n/**\n * A slot value here must name what the file itself proves, in a slot that\n * value fills: `vercel.json` → hosting Vercel; `Dockerfile` → no hosting (it\n * shows a container build, not where the app runs); `jest.config.js` →\n * nothing for CI/CD (Jest is a test runner, not a pipeline). No generic words ('Cloud',\n * 'Containerized', 'API Server'), no language in a framework or backend slot,\n * and no `runtime: Node.js` from a framework config alone — package.json is\n * that fact, and detectRuntime reads it. `faf auto` writes these values into\n * project.faf, so a value that is not a fact about the repo is a guess.\n */\nexport interface FormatKnowledge {\n frameworks: string[]; // Possible frameworks this format indicates\n slots: Partial<ContextSlots>; // Direct Context-On-Demand slot mappings\n priority: number; // Intelligence score (0-35 points)\n intelligence: 'ultra-high' | 'high' | 'medium' | 'low';\n confirmWith?: string[]; // Additional files to check for confirmation\n}\n\nexport interface ContextSlots {\n // Technical slots (1-15) - camelCase versions\n framework: string;\n mainLanguage: string;\n buildTool: string;\n packageManager: string;\n hosting: string;\n backend: string;\n apiType: string;\n cicd: string;\n database: string;\n cssFramework: string;\n uiLibrary: string;\n stateManagement: string;\n server: string;\n connection: string;\n runtime: string;\n // Display slots (for stack display compatibility)\n build: string;\n\n // snake_case versions (for YAML compatibility)\n main_language: string;\n build_tool: string;\n pkg_manager: string;\n api: string;\n css: string;\n ui_library: string;\n state: string;\n db: string;\n\n // Human context slots (16-21)\n targetUser: string;\n coreProblem: string;\n missionPurpose: string;\n deploymentMarket: string;\n timeline: string;\n approach: string;\n}\n\n/**\n * THE KNOWLEDGE BASE\n * \n * Add any file format here and map it to:\n * 1. Frameworks it indicates\n * 2. Context slots it can fill\n * 3. Priority/intelligence score\n * \n * The fab-formats engine will automatically use this knowledge!\n */\nexport const KNOWLEDGE_BASE: Record<string, FormatKnowledge> = {\n // ============================================\n // ULTRA-HIGH VALUE (35 points) - Package Managers\n // ============================================\n \n 'package.json': {\n frameworks: ['Node.js', 'JavaScript', 'TypeScript'],\n slots: {\n packageManager: 'npm/yarn/pnpm',\n mainLanguage: 'JavaScript/TypeScript'\n },\n priority: 35,\n intelligence: 'ultra-high'\n },\n\n 'README.md': {\n frameworks: [], // Can be any framework\n // No slot values: a README's who/what/why is read from its TEXT by the\n // Relentless extractor. Constant guesses here ('developers', …) were\n // asserted for every repo with a README — sourced-only forbids that.\n slots: {},\n priority: 25, // HIGH: Human context goldmine\n intelligence: 'high'\n },\n\n 'requirements.txt': {\n frameworks: ['Python'],\n slots: { \n packageManager: 'pip',\n mainLanguage: 'Python'\n },\n priority: 35,\n intelligence: 'ultra-high'\n },\n \n 'Pipfile': {\n frameworks: ['Python'],\n slots: { \n packageManager: 'pipenv',\n mainLanguage: 'Python'\n },\n priority: 35,\n intelligence: 'ultra-high'\n },\n \n 'pyproject.toml': {\n frameworks: ['Python'],\n slots: {\n mainLanguage: 'Python',\n runtime: 'Python'\n },\n priority: 36,\n intelligence: 'ultra-high'\n },\n \n // Content-aware via detectRubyProject in turbo-cat.ts — Gemfile alone ≠ Rails.\n 'Gemfile': {\n frameworks: ['Ruby'],\n slots: {\n packageManager: 'bundler',\n mainLanguage: 'Ruby'\n },\n priority: 35,\n intelligence: 'ultra-high'\n },\n 'Gemfile.lock': {\n frameworks: ['Ruby'],\n slots: {\n packageManager: 'bundler',\n mainLanguage: 'Ruby'\n },\n priority: 34,\n intelligence: 'high'\n },\n \n 'composer.json': {\n frameworks: ['PHP', 'Laravel', 'Symfony'],\n slots: { \n packageManager: 'composer',\n mainLanguage: 'PHP'\n },\n priority: 35,\n intelligence: 'ultra-high'\n },\n \n 'Cargo.toml': {\n frameworks: ['Rust'],\n slots: {\n packageManager: 'cargo',\n mainLanguage: 'Rust',\n buildTool: 'cargo'\n },\n priority: 36,\n intelligence: 'ultra-high'\n },\n\n 'go.mod': {\n // Filename-only FALLBACK: assert Go + modules, NOT \"backend\" —\n // a go.mod backs libraries, Gin/Echo servers, Cobra CLIs, and MCP servers.\n // turbo-cat.ts reads CONTENT (detectGoProject) and fills framework/backend.\n frameworks: ['Go'],\n slots: {\n packageManager: 'go modules',\n mainLanguage: 'Go',\n buildTool: 'go build'\n },\n priority: 36,\n intelligence: 'ultra-high'\n },\n\n 'Package.swift': {\n // Filename-only FALLBACK: assert Swift + SPM, NOT app/iOS/Vapor —\n // Package.swift alone ≠ app (library · executable · plugin · server · MCP).\n // turbo-cat.ts reads CONTENT (detectSwiftProject) and fills appType signals.\n frameworks: ['Swift'],\n slots: {\n packageManager: 'spm',\n mainLanguage: 'Swift',\n buildTool: 'swift build'\n },\n priority: 36,\n intelligence: 'ultra-high'\n },\n\n // Note: real projects use Named.csproj — turbo-cat.ts handles any *.csproj\n // via content-aware detectCsharpProject. This key is documentation-only\n // fallback if a literal file named \"*.csproj\" ever appears (it won't).\n '*.csproj': {\n frameworks: ['C#', '.NET'],\n slots: {\n packageManager: 'NuGet',\n mainLanguage: 'C#',\n buildTool: 'dotnet'\n },\n priority: 36,\n intelligence: 'ultra-high'\n },\n \n 'pubspec.yaml': {\n // Filename-only FALLBACK: assert Dart + pub, NOT Flutter — a pubspec backs\n // Flutter apps, pure-Dart CLIs/packages/servers, and MCP servers alike.\n // turbo-cat.ts reads the CONTENT (detectDartProject) and adds the framework\n // (Flutter / Dart Frog / …) when the deps actually prove it.\n frameworks: ['Dart'],\n slots: {\n packageManager: 'pub',\n mainLanguage: 'Dart'\n },\n priority: 35,\n intelligence: 'ultra-high'\n },\n \n 'pom.xml': {\n // Filename-only FALLBACK: assert Java + Maven, NOT Spring —\n // a pom backs libraries, Boot apps, aggregators/BOMs, MCP servers.\n // turbo-cat.ts reads CONTENT (detectJvmProject) for appType/framework.\n frameworks: ['Java'],\n slots: {\n packageManager: 'maven',\n mainLanguage: 'Java',\n buildTool: 'maven'\n },\n priority: 35,\n intelligence: 'ultra-high'\n },\n\n 'build.gradle': {\n // Filename-only FALLBACK: assert JVM + Gradle, NOT Spring/Android.\n // Content-aware detectJvmProject fills Spring / Android / KMP / MCP.\n frameworks: ['Java', 'Gradle'],\n slots: {\n packageManager: 'gradle',\n mainLanguage: 'Java',\n buildTool: 'gradle'\n },\n priority: 35,\n intelligence: 'ultra-high'\n },\n\n 'settings.gradle': {\n frameworks: ['Java', 'Gradle'],\n slots: {\n packageManager: 'gradle',\n mainLanguage: 'Java',\n buildTool: 'gradle'\n },\n priority: 34,\n intelligence: 'high'\n },\n\n 'settings.gradle.kts': {\n frameworks: ['Kotlin', 'Gradle'],\n slots: {\n packageManager: 'gradle',\n mainLanguage: 'Kotlin',\n buildTool: 'gradle'\n },\n priority: 34,\n intelligence: 'high'\n },\n\n // ============================================\n // HIGH VALUE (30 points) - JavaScript Frameworks\n // ============================================\n \n 'next.config.js': {\n frameworks: ['Next.js'],\n slots: { \n framework: 'Next.js',\n buildTool: 'Next.js',\n mainLanguage: 'JavaScript',\n server: 'Node.js'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'next.config.mjs': {\n frameworks: ['Next.js'],\n slots: { \n framework: 'Next.js',\n buildTool: 'Next.js',\n mainLanguage: 'JavaScript',\n server: 'Node.js'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'next.config.ts': {\n frameworks: ['Next.js 13+'],\n slots: { \n framework: 'Next.js 13+',\n buildTool: 'Next.js',\n mainLanguage: 'TypeScript',\n server: 'Node.js'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'nuxt.config.js': {\n frameworks: ['Nuxt 2'],\n slots: { \n framework: 'Nuxt 2',\n buildTool: 'Nuxt',\n mainLanguage: 'JavaScript',\n server: 'Node.js'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'nuxt.config.ts': {\n frameworks: ['Nuxt 3'],\n slots: { \n framework: 'Nuxt 3',\n buildTool: 'Nuxt',\n mainLanguage: 'TypeScript',\n server: 'Node.js'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'svelte.config.js': {\n frameworks: ['SvelteKit'],\n slots: { \n framework: 'SvelteKit',\n buildTool: 'Vite',\n mainLanguage: 'JavaScript',\n server: 'Node.js'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'angular.json': {\n frameworks: ['Angular'],\n slots: {\n framework: 'Angular',\n buildTool: 'Angular CLI',\n mainLanguage: 'TypeScript',\n server: 'Node.js'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n // ============================================\n // CHROME EXTENSION SUPPORT\n // ============================================\n\n 'manifest.json': {\n frameworks: ['Chrome Extension', 'Browser Extension'],\n slots: {\n framework: 'Chrome Extension',\n runtime: 'Chrome/Browser',\n mainLanguage: 'JavaScript',\n hosting: 'Chrome Web Store',\n apiType: 'Chrome APIs'\n },\n priority: 35,\n intelligence: 'ultra-high',\n confirmWith: ['popup.html', 'background.js', 'content.js']\n },\n \n 'vue.config.js': {\n frameworks: ['Vue'],\n slots: { \n framework: 'Vue',\n buildTool: 'Vue CLI',\n mainLanguage: 'JavaScript'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'remix.config.js': {\n frameworks: ['Remix'],\n slots: { \n framework: 'Remix',\n mainLanguage: 'JavaScript',\n server: 'Node.js'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'gatsby-config.js': {\n frameworks: ['Gatsby'],\n slots: { \n framework: 'Gatsby',\n buildTool: 'Gatsby',\n mainLanguage: 'JavaScript',\n server: 'Node.js'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'gatsby-config.ts': {\n frameworks: ['Gatsby'],\n slots: { \n framework: 'Gatsby',\n buildTool: 'Gatsby',\n mainLanguage: 'TypeScript',\n server: 'Node.js'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'astro.config.mjs': {\n frameworks: ['Astro'],\n slots: { \n framework: 'Astro',\n buildTool: 'Vite',\n mainLanguage: 'JavaScript',\n server: 'Node.js'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'redwood.toml': {\n frameworks: ['RedwoodJS'],\n slots: { \n framework: 'RedwoodJS',\n buildTool: 'Webpack',\n mainLanguage: 'JavaScript/TypeScript',\n server: 'Node.js',\n database: 'Prisma'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'blitz.config.ts': {\n frameworks: ['Blitz.js'],\n slots: { \n framework: 'Blitz.js',\n buildTool: 'Next.js',\n mainLanguage: 'TypeScript',\n server: 'Node.js',\n database: 'Prisma'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'qwik.config.ts': {\n frameworks: ['Qwik'],\n slots: { \n framework: 'Qwik',\n buildTool: 'Vite',\n mainLanguage: 'TypeScript',\n server: 'Node.js'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n // ============================================\n // HIGH VALUE (30 points) - Backend Frameworks\n // ============================================\n \n 'manage.py': {\n frameworks: ['Django'],\n slots: { \n framework: 'Django',\n backend: 'Django',\n mainLanguage: 'Python',\n server: 'Django',\n apiType: 'Django Views'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'artisan': {\n frameworks: ['Laravel'],\n slots: { \n framework: 'Laravel',\n backend: 'Laravel',\n mainLanguage: 'PHP',\n server: 'PHP',\n apiType: 'Laravel Routes'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'mix.exs': {\n frameworks: ['Phoenix', 'Elixir'],\n slots: { \n framework: 'Phoenix',\n backend: 'Phoenix',\n mainLanguage: 'Elixir',\n server: 'BEAM'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'nest-cli.json': {\n frameworks: ['NestJS'],\n slots: { \n framework: 'NestJS',\n backend: 'NestJS',\n mainLanguage: 'TypeScript',\n server: 'Node.js',\n apiType: 'REST API'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'strapi.config.js': {\n frameworks: ['Strapi'],\n slots: { \n backend: 'Strapi',\n apiType: 'REST API',\n server: 'Node.js'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n // ============================================\n // HIGH VALUE (30 points) - Infrastructure\n // ============================================\n \n // A Dockerfile shows a container build, not where the app runs: no hosting.\n 'Dockerfile': {\n frameworks: ['Docker'],\n slots: {},\n priority: 30,\n intelligence: 'high'\n },\n \n 'docker-compose.yml': {\n frameworks: ['Docker Compose'],\n slots: { \n hosting: 'Docker'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'docker-compose.yaml': {\n frameworks: ['Docker Compose'],\n slots: { \n hosting: 'Docker'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'kubernetes.yml': {\n frameworks: ['Kubernetes'],\n slots: { \n hosting: 'Kubernetes'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'k8s.yaml': {\n frameworks: ['Kubernetes'],\n slots: { \n hosting: 'Kubernetes'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n // ============================================\n // HIGH VALUE (30 points) - Deployment\n // ============================================\n \n 'vercel.json': {\n frameworks: ['Vercel'],\n slots: { \n hosting: 'Vercel',\n cicd: 'Vercel'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'netlify.toml': {\n frameworks: ['Netlify'],\n slots: { \n hosting: 'Netlify',\n cicd: 'Netlify'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'render.yaml': {\n frameworks: ['Render'],\n slots: { \n hosting: 'Render',\n cicd: 'Render'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'fly.toml': {\n frameworks: ['Fly.io'],\n slots: { \n hosting: 'Fly.io',\n cicd: 'Fly.io'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'railway.json': {\n frameworks: ['Railway'],\n slots: { \n hosting: 'Railway',\n cicd: 'Railway'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'railway.toml': {\n frameworks: ['Railway'],\n slots: { \n hosting: 'Railway',\n cicd: 'Railway'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'app.yaml': {\n frameworks: ['Google App Engine'],\n slots: { \n hosting: 'Google Cloud',\n cicd: 'Google Cloud'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'Procfile': {\n frameworks: ['Heroku'],\n slots: { \n hosting: 'Heroku',\n cicd: 'Heroku'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n // ============================================\n // MEDIUM VALUE (25 points) - Build Tools\n // ============================================\n \n 'vite.config.js': {\n frameworks: ['Vite'],\n slots: { \n buildTool: 'Vite'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n 'vite.config.ts': {\n frameworks: ['Vite'],\n slots: { \n buildTool: 'Vite',\n mainLanguage: 'TypeScript'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n 'webpack.config.js': {\n frameworks: ['Webpack'],\n slots: { \n buildTool: 'Webpack'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n 'rollup.config.js': {\n frameworks: ['Rollup'],\n slots: { \n buildTool: 'Rollup'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n 'esbuild.config.js': {\n frameworks: ['esbuild'],\n slots: { \n buildTool: 'esbuild'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n 'parcel.config.js': {\n frameworks: ['Parcel'],\n slots: { \n buildTool: 'Parcel'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n 'snowpack.config.js': {\n frameworks: ['Snowpack'],\n slots: { \n buildTool: 'Snowpack'\n },\n priority: 25,\n intelligence: 'medium'\n },\n\n // ============================================\n // MEDIUM VALUE (25 points) - Language Config\n // ============================================\n \n 'tsconfig.json': {\n frameworks: ['TypeScript'],\n slots: { \n mainLanguage: 'TypeScript'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n 'jsconfig.json': {\n frameworks: ['JavaScript'],\n slots: { \n mainLanguage: 'JavaScript'\n },\n priority: 20,\n intelligence: 'medium'\n },\n \n 'babel.config.js': {\n frameworks: ['Babel'],\n slots: { \n buildTool: 'Babel'\n },\n priority: 20,\n intelligence: 'medium'\n },\n \n '.babelrc': {\n frameworks: ['Babel'],\n slots: { \n buildTool: 'Babel'\n },\n priority: 20,\n intelligence: 'medium'\n },\n\n // ============================================\n // MEDIUM VALUE (25 points) - Testing\n // ============================================\n \n 'jest.config.js': {\n frameworks: ['Jest'],\n slots: { \n },\n priority: 25,\n intelligence: 'medium'\n },\n \n 'jest.config.ts': {\n frameworks: ['Jest'],\n slots: { \n mainLanguage: 'TypeScript'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n 'vitest.config.ts': {\n frameworks: ['Vitest'],\n slots: { \n mainLanguage: 'TypeScript'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n 'cypress.config.js': {\n frameworks: ['Cypress'],\n slots: { \n },\n priority: 25,\n intelligence: 'medium'\n },\n \n 'playwright.config.ts': {\n frameworks: ['Playwright'],\n slots: { \n mainLanguage: 'TypeScript'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n 'karma.conf.js': {\n frameworks: ['Karma'],\n slots: { \n },\n priority: 20,\n intelligence: 'medium'\n },\n \n 'mocha.opts': {\n frameworks: ['Mocha'],\n slots: { \n },\n priority: 20,\n intelligence: 'medium'\n },\n \n '.rspec': {\n frameworks: ['RSpec'],\n slots: { \n mainLanguage: 'Ruby'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n 'pytest.ini': {\n frameworks: ['Pytest'],\n slots: { \n mainLanguage: 'Python'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n 'phpunit.xml': {\n frameworks: ['PHPUnit'],\n slots: { \n mainLanguage: 'PHP'\n },\n priority: 25,\n intelligence: 'medium'\n },\n\n // ============================================\n // MEDIUM VALUE (25 points) - Database/ORM\n // ============================================\n \n 'schema.prisma': {\n frameworks: ['Prisma'],\n slots: { \n database: 'Prisma ORM',\n connection: 'Prisma'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n 'drizzle.config.ts': {\n frameworks: ['Drizzle'],\n slots: { \n database: 'Drizzle ORM',\n connection: 'Drizzle',\n mainLanguage: 'TypeScript'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n 'ormconfig.js': {\n frameworks: ['TypeORM'],\n slots: { \n database: 'TypeORM',\n connection: 'TypeORM'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n 'knexfile.js': {\n frameworks: ['Knex.js'],\n slots: { \n database: 'Knex.js',\n connection: 'Knex.js'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n 'sequelize.config.js': {\n frameworks: ['Sequelize'],\n slots: { \n database: 'Sequelize',\n connection: 'Sequelize'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n 'alembic.ini': {\n frameworks: ['Alembic'],\n slots: { \n database: 'Alembic',\n mainLanguage: 'Python'\n },\n priority: 25,\n intelligence: 'medium'\n },\n\n // ============================================\n // MEDIUM VALUE (25 points) - CI/CD\n // ============================================\n \n '.github/workflows': {\n frameworks: ['GitHub Actions'],\n slots: { \n cicd: 'GitHub Actions'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n '.gitlab-ci.yml': {\n frameworks: ['GitLab CI'],\n slots: { \n cicd: 'GitLab CI'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n 'Jenkinsfile': {\n frameworks: ['Jenkins'],\n slots: { \n cicd: 'Jenkins'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n '.circleci/config.yml': {\n frameworks: ['CircleCI'],\n slots: { \n cicd: 'CircleCI'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n '.travis.yml': {\n frameworks: ['Travis CI'],\n slots: { \n cicd: 'Travis CI'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n 'azure-pipelines.yml': {\n frameworks: ['Azure DevOps'],\n slots: { \n cicd: 'Azure DevOps'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n 'bitbucket-pipelines.yml': {\n frameworks: ['Bitbucket Pipelines'],\n slots: { \n cicd: 'Bitbucket Pipelines'\n },\n priority: 25,\n intelligence: 'medium'\n },\n\n // ============================================\n // MEDIUM VALUE (20 points) - CSS/UI\n // ============================================\n \n 'tailwind.config.js': {\n frameworks: ['Tailwind CSS'],\n slots: { \n cssFramework: 'Tailwind CSS'\n },\n priority: 20,\n intelligence: 'medium'\n },\n \n 'tailwind.config.ts': {\n frameworks: ['Tailwind CSS'],\n slots: { \n cssFramework: 'Tailwind CSS',\n mainLanguage: 'TypeScript'\n },\n priority: 20,\n intelligence: 'medium'\n },\n \n 'postcss.config.js': {\n frameworks: ['PostCSS'],\n slots: { \n cssFramework: 'PostCSS'\n },\n priority: 20,\n intelligence: 'medium'\n },\n \n 'uno.config.ts': {\n frameworks: ['UnoCSS'],\n slots: { \n cssFramework: 'UnoCSS',\n mainLanguage: 'TypeScript'\n },\n priority: 20,\n intelligence: 'medium'\n },\n \n 'styled-components.config.js': {\n frameworks: ['styled-components'],\n slots: { \n cssFramework: 'styled-components',\n uiLibrary: 'styled-components'\n },\n priority: 20,\n intelligence: 'medium'\n },\n \n 'emotion.config.js': {\n frameworks: ['Emotion'],\n slots: { \n cssFramework: 'Emotion',\n uiLibrary: 'Emotion'\n },\n priority: 20,\n intelligence: 'medium'\n },\n\n // ============================================\n // MEDIUM VALUE (25 points) - Mobile\n // ============================================\n \n 'metro.config.js': {\n frameworks: ['React Native'],\n slots: { \n framework: 'React Native',\n mainLanguage: 'JavaScript'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n 'expo.config.js': {\n frameworks: ['Expo'],\n slots: { \n framework: 'React Native',\n buildTool: 'Expo'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n 'app.json': {\n frameworks: ['React Native', 'Expo'],\n slots: { \n framework: 'React Native'\n },\n priority: 20,\n intelligence: 'medium',\n confirmWith: ['expo']\n },\n \n 'capacitor.config.ts': {\n frameworks: ['Capacitor'],\n slots: { \n framework: 'Capacitor',\n mainLanguage: 'TypeScript'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n 'ionic.config.json': {\n frameworks: ['Ionic'],\n slots: { \n framework: 'Ionic',\n uiLibrary: 'Ionic'\n },\n priority: 25,\n intelligence: 'medium'\n },\n\n // ============================================\n // MEDIUM VALUE (25 points) - Monorepo\n // ============================================\n \n 'nx.json': {\n frameworks: ['Nx'],\n slots: { \n buildTool: 'Nx'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n 'turbo.json': {\n frameworks: ['Turborepo'],\n slots: { \n buildTool: 'Turborepo'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n 'lerna.json': {\n frameworks: ['Lerna'],\n slots: { \n buildTool: 'Lerna'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n 'rush.json': {\n frameworks: ['Rush'],\n slots: { \n buildTool: 'Rush'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n 'pnpm-workspace.yaml': {\n frameworks: ['pnpm workspaces'],\n slots: { \n packageManager: 'pnpm',\n buildTool: 'pnpm workspaces'\n },\n priority: 25,\n intelligence: 'medium'\n },\n\n // ============================================\n // LOW VALUE (15 points) - File Extensions\n // These are pattern-based and less definitive\n // ============================================\n \n '*.svelte': {\n frameworks: ['Svelte', 'SvelteKit'],\n slots: { \n framework: 'Svelte'\n },\n priority: 15,\n intelligence: 'low'\n },\n \n '*.vue': {\n frameworks: ['Vue'],\n slots: { \n framework: 'Vue'\n },\n priority: 15,\n intelligence: 'low'\n },\n \n '*.jsx': {\n frameworks: ['React'],\n slots: { \n framework: 'React',\n mainLanguage: 'JavaScript'\n },\n priority: 15,\n intelligence: 'low'\n },\n \n '*.ts': {\n frameworks: ['TypeScript'],\n slots: {\n mainLanguage: 'TypeScript'\n },\n priority: 15,\n intelligence: 'low'\n },\n\n '*.tsx': {\n frameworks: ['React', 'TypeScript'],\n slots: {\n framework: 'React',\n mainLanguage: 'TypeScript'\n },\n priority: 15,\n intelligence: 'low'\n },\n \n '*.py': {\n frameworks: ['Python'],\n slots: { \n mainLanguage: 'Python'\n },\n priority: 15,\n intelligence: 'low'\n },\n \n '*.rb': {\n frameworks: ['Ruby'],\n slots: { \n mainLanguage: 'Ruby'\n },\n priority: 15,\n intelligence: 'low'\n },\n \n '*.php': {\n frameworks: ['PHP'],\n slots: { \n mainLanguage: 'PHP'\n },\n priority: 15,\n intelligence: 'low'\n },\n \n '*.java': {\n frameworks: ['Java'],\n slots: { \n mainLanguage: 'Java'\n },\n priority: 15,\n intelligence: 'low'\n },\n \n '*.kt': {\n frameworks: ['Kotlin'],\n slots: { \n mainLanguage: 'Kotlin'\n },\n priority: 15,\n intelligence: 'low'\n },\n \n '*.swift': {\n frameworks: ['Swift'],\n slots: { \n mainLanguage: 'Swift'\n },\n priority: 15,\n intelligence: 'low'\n },\n \n '*.go': {\n frameworks: ['Go'],\n slots: { \n mainLanguage: 'Go'\n },\n priority: 15,\n intelligence: 'low'\n },\n \n '*.rs': {\n frameworks: ['Rust'],\n slots: { \n mainLanguage: 'Rust'\n },\n priority: 15,\n intelligence: 'low'\n },\n \n '*.dart': {\n frameworks: ['Flutter', 'Dart'],\n slots: { \n mainLanguage: 'Dart'\n },\n priority: 15,\n intelligence: 'low'\n },\n \n '*.ex': {\n frameworks: ['Elixir'],\n slots: { \n mainLanguage: 'Elixir'\n },\n priority: 15,\n intelligence: 'low'\n },\n \n '*.exs': {\n frameworks: ['Elixir'],\n slots: { \n mainLanguage: 'Elixir'\n },\n priority: 15,\n intelligence: 'low'\n },\n \n '*.scala': {\n frameworks: ['Scala'],\n slots: { \n mainLanguage: 'Scala'\n },\n priority: 15,\n intelligence: 'low'\n },\n \n '*.clj': {\n frameworks: ['Clojure'],\n slots: { \n mainLanguage: 'Clojure'\n },\n priority: 15,\n intelligence: 'low'\n },\n \n '*.lua': {\n frameworks: ['Lua'],\n slots: { \n mainLanguage: 'Lua'\n },\n priority: 15,\n intelligence: 'low'\n },\n \n '*.r': {\n frameworks: ['R'],\n slots: { \n mainLanguage: 'R'\n },\n priority: 15,\n intelligence: 'low'\n },\n \n '*.R': {\n frameworks: ['R'],\n slots: { \n mainLanguage: 'R'\n },\n priority: 15,\n intelligence: 'low'\n },\n \n '*.jl': {\n frameworks: ['Julia'],\n slots: { \n mainLanguage: 'Julia'\n },\n priority: 15,\n intelligence: 'low'\n },\n \n '*.nim': {\n frameworks: ['Nim'],\n slots: { \n mainLanguage: 'Nim'\n },\n priority: 15,\n intelligence: 'low'\n },\n \n '*.zig': {\n frameworks: ['Zig'],\n slots: {\n mainLanguage: 'Zig'\n },\n priority: 15,\n intelligence: 'low'\n },\n\n 'build.zig': {\n frameworks: ['Zig'],\n slots: {\n // camelCase slots (standard TURBO-CAT)\n packageManager: 'Zig Package Manager',\n mainLanguage: 'Zig',\n buildTool: 'zig build',\n // snake_case slots (template compatibility)\n build: 'zig build'\n },\n priority: 35,\n intelligence: 'ultra-high'\n },\n\n // ============================================\n // SPECIAL VALUE (20 points) - API/Schema\n // ============================================\n \n 'openapi.json': {\n frameworks: ['OpenAPI'],\n slots: { \n apiType: 'REST API'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'openapi.yaml': {\n frameworks: ['OpenAPI'],\n slots: { \n apiType: 'REST API'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'swagger.json': {\n frameworks: ['Swagger'],\n slots: { \n apiType: 'REST API'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'graphql.schema': {\n frameworks: ['GraphQL'],\n slots: { \n apiType: 'GraphQL'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'schema.graphql': {\n frameworks: ['GraphQL'],\n slots: { \n apiType: 'GraphQL'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n '.graphqlconfig': {\n frameworks: ['GraphQL'],\n slots: { \n apiType: 'GraphQL'\n },\n priority: 25,\n intelligence: 'medium'\n },\n\n // ============================================\n // SPECIAL VALUE (20 points) - State Management\n // ============================================\n \n 'redux.config.js': {\n frameworks: ['Redux'],\n slots: { \n stateManagement: 'Redux'\n },\n priority: 20,\n intelligence: 'medium'\n },\n \n 'mobx.config.js': {\n frameworks: ['MobX'],\n slots: { \n stateManagement: 'MobX'\n },\n priority: 20,\n intelligence: 'medium'\n },\n \n 'vuex.config.js': {\n frameworks: ['Vuex'],\n slots: { \n stateManagement: 'Vuex',\n framework: 'Vue'\n },\n priority: 20,\n intelligence: 'medium'\n },\n \n 'pinia.config.js': {\n frameworks: ['Pinia'],\n slots: { \n stateManagement: 'Pinia',\n framework: 'Vue'\n },\n priority: 20,\n intelligence: 'medium'\n },\n \n 'zustand.config.js': {\n frameworks: ['Zustand'],\n slots: { \n stateManagement: 'Zustand'\n },\n priority: 20,\n intelligence: 'medium'\n },\n\n // ============================================\n // SPECIAL VALUE (15 points) - Linting/Formatting\n // ============================================\n \n '.eslintrc.js': {\n frameworks: ['ESLint'],\n slots: {},\n priority: 15,\n intelligence: 'low'\n },\n \n '.eslintrc.json': {\n frameworks: ['ESLint'],\n slots: {},\n priority: 15,\n intelligence: 'low'\n },\n \n '.prettierrc': {\n frameworks: ['Prettier'],\n slots: {},\n priority: 15,\n intelligence: 'low'\n },\n \n '.prettierrc.json': {\n frameworks: ['Prettier'],\n slots: {},\n priority: 15,\n intelligence: 'low'\n },\n \n 'biome.json': {\n frameworks: ['Biome'],\n slots: {},\n priority: 15,\n intelligence: 'low'\n },\n \n '.editorconfig': {\n frameworks: ['EditorConfig'],\n slots: {},\n priority: 10,\n intelligence: 'low'\n },\n\n // ============================================\n // HIGH VALUE (30 points) - Serverless\n // ============================================\n\n 'serverless.yml': {\n frameworks: ['Serverless Framework'],\n slots: {\n hosting: 'AWS Lambda/Azure/GCP',\n backend: 'Serverless',\n apiType: 'API Gateway'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n 'serverless.yaml': {\n frameworks: ['Serverless Framework'],\n slots: {\n hosting: 'AWS Lambda/Azure/GCP',\n backend: 'Serverless',\n apiType: 'API Gateway'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n 'sam.yaml': {\n frameworks: ['AWS SAM'],\n slots: {\n hosting: 'AWS Lambda',\n backend: 'AWS SAM',\n cicd: 'AWS SAM CLI'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n 'template.yaml': {\n frameworks: ['AWS SAM', 'CloudFormation'],\n slots: {\n hosting: 'AWS',\n backend: 'AWS SAM/CloudFormation',\n cicd: 'AWS'\n },\n priority: 25,\n intelligence: 'medium',\n confirmWith: ['samconfig.toml']\n },\n\n 'amplify.yml': {\n frameworks: ['AWS Amplify'],\n slots: {\n hosting: 'AWS Amplify',\n backend: 'AWS Amplify',\n cicd: 'AWS Amplify'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n // ============================================\n // HIGH VALUE (30 points) - Mobile Native\n // ============================================\n\n 'Podfile': {\n // Softened 2026-08-03 (Swift Edition honesty): CocoaPods is multi-platform\n // (iOS / macOS / tvOS / watchOS) — not iOS-only. Do not stamp appType here.\n frameworks: ['CocoaPods', 'Swift'],\n slots: {\n packageManager: 'CocoaPods',\n mainLanguage: 'Swift/Objective-C'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n 'build.gradle.kts': {\n // Filename-only FALLBACK: Kotlin DSL ≠ Android. Content-aware detectJvmProject.\n frameworks: ['Kotlin', 'Gradle'],\n slots: {\n packageManager: 'gradle',\n mainLanguage: 'Kotlin',\n buildTool: 'gradle'\n },\n priority: 35,\n intelligence: 'ultra-high'\n },\n\n // ============================================\n // HIGH VALUE (30 points) - AI/ML\n // ============================================\n\n '*.ipynb': {\n frameworks: ['Jupyter', 'Python'],\n slots: {\n mainLanguage: 'Python',\n framework: 'Jupyter Notebook'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n 'MLproject': {\n frameworks: ['MLflow'],\n slots: {\n mainLanguage: 'Python',\n backend: 'MLflow'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n 'dvc.yaml': {\n frameworks: ['DVC', 'Data Version Control'],\n slots: {\n mainLanguage: 'Python',\n cicd: 'DVC Pipelines'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n 'dvc.lock': {\n frameworks: ['DVC'],\n slots: {\n },\n priority: 20,\n intelligence: 'medium'\n },\n\n // ============================================\n // ROW 18 - BEYOND THE SACRED 154 (Target: 172)\n // ============================================\n\n // Edge Computing\n 'wrangler.toml': {\n frameworks: ['Cloudflare Workers', 'Cloudflare'],\n slots: {\n hosting: 'Cloudflare Workers',\n backend: 'Cloudflare Workers',\n runtime: 'V8 Isolates'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n // Modern Runtimes\n 'deno.json': {\n frameworks: ['Deno'],\n slots: {\n runtime: 'Deno',\n mainLanguage: 'TypeScript',\n packageManager: 'Deno'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n 'bun.lockb': {\n frameworks: ['Bun'],\n slots: {\n runtime: 'Bun',\n packageManager: 'Bun',\n mainLanguage: 'TypeScript/JavaScript'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n // CI/CD Ecosystem\n 'codecov.yml': {\n frameworks: ['Codecov'],\n slots: {\n },\n priority: 25,\n intelligence: 'high'\n },\n\n 'dependabot.yml': {\n frameworks: ['Dependabot', 'GitHub'],\n slots: {\n },\n priority: 25,\n intelligence: 'high'\n },\n\n 'renovate.json': {\n frameworks: ['Renovate'],\n slots: {\n },\n priority: 25,\n intelligence: 'high'\n },\n\n // Universal Build Tools\n 'Makefile': {\n frameworks: ['Make', 'GNU Make'],\n slots: {\n buildTool: 'Make'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n 'CMakeLists.txt': {\n frameworks: ['CMake', 'C', 'C++'],\n slots: {\n buildTool: 'CMake',\n mainLanguage: 'C/C++'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n 'meson.build': {\n frameworks: ['Meson', 'C', 'C++'],\n slots: {\n buildTool: 'Meson',\n mainLanguage: 'C/C++'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n // ============================================\n // C/C++ LANGUAGE FAMILY - SYSTEMS PROGRAMMING\n // ============================================\n\n '*.c': {\n frameworks: ['C'],\n slots: {\n mainLanguage: 'C'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n '*.cpp': {\n frameworks: ['C++'],\n slots: {\n mainLanguage: 'C++'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n '*.cc': {\n frameworks: ['C++'],\n slots: {\n mainLanguage: 'C++'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n '*.cxx': {\n frameworks: ['C++'],\n slots: {\n mainLanguage: 'C++'\n },\n priority: 25,\n intelligence: 'high'\n },\n\n '*.h': {\n frameworks: ['C', 'C++'],\n slots: {\n mainLanguage: 'C/C++'\n },\n priority: 25,\n intelligence: 'high'\n },\n\n '*.hpp': {\n frameworks: ['C++'],\n slots: {\n mainLanguage: 'C++'\n },\n priority: 25,\n intelligence: 'high'\n },\n\n '*.hxx': {\n frameworks: ['C++'],\n slots: {\n mainLanguage: 'C++'\n },\n priority: 20,\n intelligence: 'medium'\n },\n\n // ============================================\n // ENVIRONMENT FILES - CONFIGURATION\n // ============================================\n\n '.env': {\n frameworks: [],\n slots: {},\n priority: 20,\n intelligence: 'medium'\n },\n\n '.env.example': {\n frameworks: [],\n slots: {},\n priority: 25,\n intelligence: 'high'\n },\n\n '.env.local': {\n frameworks: [],\n slots: {},\n priority: 20,\n intelligence: 'medium'\n },\n\n '.env.development': {\n frameworks: [],\n slots: {},\n priority: 20,\n intelligence: 'medium'\n },\n\n '.env.production': {\n frameworks: [],\n slots: {},\n priority: 20,\n intelligence: 'medium'\n },\n\n // ============================================\n // DEVOPS YAML - KUBERNETES & IaC\n // ============================================\n\n 'skaffold.yaml': {\n frameworks: ['Skaffold', 'Kubernetes'],\n slots: {\n hosting: 'Kubernetes',\n cicd: 'Skaffold'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n 'Chart.yaml': {\n frameworks: ['Helm', 'Kubernetes'],\n slots: {\n hosting: 'Kubernetes'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n 'values.yaml': {\n frameworks: ['Helm', 'Kubernetes'],\n slots: {\n hosting: 'Kubernetes'\n },\n priority: 25,\n intelligence: 'high',\n confirmWith: ['Chart.yaml']\n },\n\n 'pulumi.yaml': {\n frameworks: ['Pulumi'],\n slots: {\n cicd: 'Pulumi'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n 'Pulumi.yaml': {\n frameworks: ['Pulumi'],\n slots: {\n cicd: 'Pulumi'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n 'terragrunt.hcl': {\n frameworks: ['Terragrunt', 'Terraform'],\n slots: {\n cicd: 'Terragrunt'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n 'ansible.yml': {\n frameworks: ['Ansible'],\n slots: {\n cicd: 'Ansible'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n 'playbook.yml': {\n frameworks: ['Ansible'],\n slots: {\n cicd: 'Ansible'\n },\n priority: 25,\n intelligence: 'high'\n },\n\n // ============================================\n // ROW 19 - LANGUAGES & VERSION MANAGERS\n // ============================================\n\n '*.cs': {\n frameworks: ['C#', '.NET', 'Unity'],\n slots: {\n mainLanguage: 'C#'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n '*.m': {\n frameworks: ['Objective-C', 'iOS'],\n slots: {\n mainLanguage: 'Objective-C'\n },\n priority: 25,\n intelligence: 'high'\n },\n\n '.nvmrc': {\n frameworks: ['Node.js', 'nvm'],\n slots: {\n runtime: 'Node.js'\n },\n priority: 25,\n intelligence: 'high'\n },\n\n '.tool-versions': {\n frameworks: ['asdf'],\n slots: {},\n priority: 25,\n intelligence: 'high'\n },\n\n '.ruby-version': {\n frameworks: ['Ruby', 'rbenv'],\n slots: {\n mainLanguage: 'Ruby',\n runtime: 'Ruby'\n },\n priority: 25,\n intelligence: 'high'\n },\n\n '.python-version': {\n frameworks: ['Python', 'pyenv'],\n slots: {\n mainLanguage: 'Python',\n runtime: 'Python'\n },\n priority: 25,\n intelligence: 'high'\n },\n\n '.dockerignore': {\n frameworks: ['Docker'],\n slots: {},\n priority: 20,\n intelligence: 'medium'\n },\n\n '.gitattributes': {\n frameworks: ['Git'],\n slots: {},\n priority: 15,\n intelligence: 'low'\n },\n\n '.npmrc': {\n frameworks: ['npm', 'Node.js'],\n slots: {\n packageManager: 'npm'\n },\n priority: 20,\n intelligence: 'medium'\n },\n\n 'sonar-project.properties': {\n frameworks: ['SonarQube', 'SonarCloud'],\n slots: {\n },\n priority: 25,\n intelligence: 'high'\n },\n\n // ROW 19 COMPLETION - FUNCTIONAL LANGUAGES\n\n '*.fs': {\n frameworks: ['F#', '.NET'],\n slots: {\n mainLanguage: 'F#'\n },\n priority: 25,\n intelligence: 'high'\n },\n\n '*.mm': {\n frameworks: ['Objective-C++', 'iOS', 'macOS'],\n slots: {\n mainLanguage: 'Objective-C++'\n },\n priority: 25,\n intelligence: 'high'\n },\n\n // ============================================\n // ROW 20 - TIER 1 EMERGING TECH (2025)\n // Target: 211 formats (Sum(1..20) + 1)\n // ============================================\n\n // Zig - The Next Systems Language\n 'build.zig.zon': {\n frameworks: ['Zig'],\n slots: {\n mainLanguage: 'Zig',\n packageManager: 'Zig Package Manager',\n buildTool: 'zig build'\n },\n priority: 35,\n intelligence: 'ultra-high'\n },\n\n // Gleam - 2nd Most Admired Language 2025 (Stack Overflow)\n 'gleam.toml': {\n frameworks: ['Gleam', 'BEAM', 'Erlang'],\n slots: {\n mainLanguage: 'Gleam',\n runtime: 'BEAM',\n packageManager: 'Gleam'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n // Bun - Ultra-fast JS Runtime Config\n 'bunfig.toml': {\n frameworks: ['Bun'],\n slots: {\n runtime: 'Bun',\n packageManager: 'Bun',\n buildTool: 'Bun'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n // mise - Modern Version Manager (replaced asdf/rtx)\n 'mise.toml': {\n frameworks: ['mise'],\n slots: {},\n priority: 25,\n intelligence: 'high'\n },\n\n '.mise.toml': {\n frameworks: ['mise'],\n slots: {},\n priority: 25,\n intelligence: 'high'\n },\n\n // Flox - Nix-based Development Environments\n 'manifest.toml': {\n frameworks: ['Flox', 'Nix'],\n slots: {},\n priority: 25,\n intelligence: 'high',\n confirmWith: ['.flox']\n },\n\n // Just - Command Runner (10k+ GitHub stars, Rust ecosystem)\n 'justfile': {\n frameworks: ['Just'],\n slots: {\n buildTool: 'Just'\n },\n priority: 25,\n intelligence: 'high'\n },\n\n // Pre-commit - Git Hooks Framework (industry standard)\n '.pre-commit-config.yaml': {\n frameworks: ['pre-commit'],\n slots: {\n },\n priority: 25,\n intelligence: 'high'\n },\n\n // Claude Code - AI Context (Anthropic Claude Code projects)\n 'CLAUDE.md': {\n frameworks: ['Claude Code'],\n slots: {},\n priority: 30, // High priority - AI context is valuable\n intelligence: 'high',\n confirmWith: ['.claude']\n }\n};\n\n// ============================================\n// HELPER FUNCTIONS\n// ============================================\n\n/**\n * Get knowledge for a specific format\n */\nexport function getFormatKnowledge(format: string): FormatKnowledge | undefined {\n return KNOWLEDGE_BASE[format];\n}\n\n/**\n * Get all format keys\n */\nexport function getAllFormats(): string[] {\n return Object.keys(KNOWLEDGE_BASE);\n}\n\n/**\n * Get high-value formats (priority >= 30)\n */\nexport function getHighValueFormats(): string[] {\n return Object.entries(KNOWLEDGE_BASE)\n .filter(([, knowledge]) => knowledge.priority >= 30)\n .map(([format]) => format);\n}\n\n/**\n * Get formats by intelligence level\n */\nexport function getFormatsByIntelligence(level: FormatKnowledge['intelligence']): string[] {\n return Object.entries(KNOWLEDGE_BASE)\n .filter(([, knowledge]) => knowledge.intelligence === level)\n .map(([format]) => format);\n}\n\n/**\n * Get formats that can fill a specific slot\n */\nexport function getFormatsForSlot(slotName: keyof ContextSlots): string[] {\n return Object.entries(KNOWLEDGE_BASE)\n .filter(([, knowledge]) => slotName in knowledge.slots)\n .map(([format]) => format);\n}\n\n/**\n * Calculate total possible intelligence score\n */\nexport function getMaxIntelligenceScore(): number {\n return Object.values(KNOWLEDGE_BASE)\n .reduce((sum, knowledge) => sum + knowledge.priority, 0);\n}",
184
184
  "/**\n * Relentless — the 6-W human-context extractor. \"Never gives up on finding\n * context\" (the v5 RelentlessContextExtractor), rewritten v6-native + sync and\n * realigned to FAF's no-guess doctrine: it reads EVERY source (manifest +\n * README, tiered) but FILLS ONLY from sourced evidence. The v5 INFERRED tiers\n * (guess from project name / tech stack) are deliberately dropped —\n * sourced-or-empty; `faf go` is where the human confirms.\n *\n * Pairs with Turbo-Cat: Turbo-Cat fills STACK slots from file formats;\n * Relentless fills the 6 HUMAN-CONTEXT slots (who/what/why/where/when/how) by\n * reading. WHO is the target AUDIENCE (not the package author — a v5 conflation\n * this rewrite corrects).\n */\n\nimport { readRepoFile } from '../core/safe-write.js';\n\ninterface PkgJson {\n description?: string;\n repository?: string | { url?: string };\n homepage?: string;\n scripts?: Record<string, string>;\n keywords?: string[];\n}\n\nexport interface SeededContext {\n who?: string;\n what?: string;\n why?: string;\n where?: string;\n when?: string;\n how?: string;\n}\n\n/**\n * A sourced 6-W value WITH its provenance — where it came from and how much to\n * trust it. The honesty gate: a fill the human can audit before confirming.\n * - `source`: the artifact + locus it was relocated from, e.g.\n * 'package.json:description' or 'README:## Why'. If we can't name a source,\n * we don't emit a value — sourced-or-empty, never invented.\n * - `confidence`: 0..1 by source quality (structured field > named section >\n * heuristic match). A signal for the seeded/confirm UI, not a score.\n */\nexport interface SourcedValue {\n value: string;\n source: string;\n confidence: number;\n}\n\nexport interface SeededContextDetailed {\n who?: SourcedValue;\n what?: SourcedValue;\n why?: SourcedValue;\n where?: SourcedValue;\n when?: SourcedValue;\n how?: SourcedValue;\n}\n\nconst sv = (value: string, source: string, confidence: number): SourcedValue => ({ value, source, confidence });\n\n/**\n * The 6-W extractor WITH provenance — each slot carries {value, source,\n * confidence}. This is the auditable form: the seeded/confirm UI can show the\n * human WHERE a value was relocated from before they accept it.\n */\n/** `toolingRoot`: the repo root's package.json is a tooling shell (polyglot repo\n * — real code is in sibling dirs), so its description/repo/scripts describe the\n * tooling, not the product. Skip package.json-sourced context; README only. */\nexport interface RelentlessOpts { toolingRoot?: boolean }\n\nexport function relentlessContextDetailed(dir: string, opts: RelentlessOpts = {}): SeededContextDetailed {\n const pkg = opts.toolingRoot ? null : readPkg(dir);\n const readme = cleanReadme(dir);\n const out: SeededContextDetailed = {};\n const set = (k: keyof SeededContextDetailed, v: SourcedValue | null): void => {\n if (v) {out[k] = v;}\n };\n\n set('what', extractWhat(pkg, readme));\n set('who', extractWho(readme));\n set('why', extractWhy(readme));\n set('where', extractWhere(pkg, readme));\n set('when', extractWhen(readme));\n set('how', extractHow(pkg, readme));\n\n return out;\n}\n\n/**\n * The bare 6-W extractor — values only, backward-compatible. A pure projection\n * of `relentlessContextDetailed` (single internal source; identical output to\n * the pre-provenance version). Existing consumers (claude-faf-mcp's faf_auto)\n * keep working unchanged; opt into provenance via the Detailed form.\n */\nexport function relentlessContext(dir: string, opts: RelentlessOpts = {}): SeededContext {\n const detailed = relentlessContextDetailed(dir, opts);\n const seed: SeededContext = {};\n (Object.keys(detailed) as (keyof SeededContextDetailed)[]).forEach((k) => {\n const sourced = detailed[k];\n if (sourced) {seed[k] = sourced.value;}\n });\n return seed;\n}\n\nfunction readPkg(dir: string): PkgJson | null {\n const text = readRepoFile(dir, 'package.json');\n if (text === null) {return null;}\n try {\n return JSON.parse(text) as PkgJson;\n } catch {\n return null;\n }\n}\n\n/** README with HTML tags + badge lines stripped (so we don't seed shields.io noise). */\nfunction cleanReadme(dir: string): string {\n const txt = readRepoFile(dir, 'README.md');\n if (txt === null) {return '';}\n return txt\n .replace(/<!--[\\s\\S]*?-->/g, '') // HTML comment blocks (asset notes, TODOs — not prose)\n .split('\\n')\n .filter((l) => !/^\\s*\\[!\\[/.test(l) && !/^\\s*!\\[/.test(l)) // badge lines\n .join('\\n')\n .replace(/<[^>]+>/g, '') // HTML tags\n .replace(/!\\[[^\\]]*\\]\\([^)]*\\)/g, '') // inline images/badges\n .trim();\n}\n\nfunction clean(text: string): string {\n return text.replace(/\\s+/g, ' ').replace(/[#*`>]/g, '').trim().slice(0, 280);\n}\n\n/** Share of a string's characters that sit inside markdown/inline links. */\nfunction linkDensity(s: string): number {\n if (!s) {return 0;}\n const linked = (s.match(/\\[[^\\]]*\\]\\([^)]*\\)/g) ?? []).join('').length;\n return linked / s.length;\n}\n\n/** First `## Section` body matching any of the pipe-listed names (min 20 chars).\n * Returns the cleaned body AND the matched heading (for provenance labels).\n * Rejects link-list bodies (nav / roadmap-link rows are not prose). */\nfunction section(readme: string, names: string): { body: string; heading: string } | null {\n const re = new RegExp(`##?\\\\s+(${names})\\\\s*\\\\n+([\\\\s\\\\S]+?)(?:\\\\n\\\\n|\\\\n##?|$)`, 'i');\n const m = readme.match(re);\n if (!m || !m[2] || m[2].trim().length <= 20 || linkDensity(m[2]) > 0.4) {return null;}\n return { body: clean(m[2]), heading: m[1].trim() };\n}\n\n/**\n * True when a README intro paragraph is a callout / nav row / pre-release\n * banner rather than a description. These sit above the real first prose on\n * many repos (future-agi opens with a `> ⚠️ Nightly release…` blockquote) and\n * must not seed `human_context.what`.\n */\nfunction isNonProseIntro(p: string): boolean {\n const t = p.trim();\n // Blockquote callout — GitHub admonitions (> [!NOTE] / > [!WARNING]) included\n if (/^>/.test(t)) {return true;}\n // Pre-release / status banner phrasing\n if (/\\b(nightly (release|build)|pre-?release|work[-\\s]in[-\\s]progress|rough edges|early (access|testing|preview)|use at your own risk|not (yet )?production[-\\s]?ready|expect (rough|breaking)|experimental release)\\b/i.test(t)) {return true;}\n // Nav / link row: 3+ short fragments split on · or |\n const frags = t.split(/[·|]/).map((s) => s.trim()).filter(Boolean);\n if (frags.length >= 3 && frags.every((f) => f.length <= 24)) {return true;}\n return false;\n}\n\n/** First capturing-group match across patterns whose capture meets minLen. */\nfunction firstMatch(text: string, patterns: RegExp[], minLen = 30): string | null {\n for (const re of patterns) {\n const m = text.match(re);\n if (m && m[1] && m[1].trim().length >= minLen) {return clean(m[1]);}\n }\n return null;\n}\n\nfunction extractWhat(pkg: PkgJson | null, readme: string): SourcedValue | null {\n if (pkg?.description && pkg.description.length > 20) {return sv(clean(pkg.description), 'package.json:description', 0.95);}\n const sec = section(readme, 'Purpose|What|About|Overview|Description');\n if (sec) {return sv(sec.body, `README:## ${sec.heading}`, 0.8);}\n const firstReal = readme\n .split(/\\n\\s*\\n/)\n .map((p) => p.replace(/\\s+/g, ' ').trim())\n .find((p) => p.length > 30 && !p.startsWith('#') && !isNonProseIntro(p));\n if (firstReal) {return sv(clean(firstReal), 'README:first-paragraph', 0.5);}\n const fm = firstMatch(readme, [\n /(?:core|main|primary)\\s+(?:problem|challenge)(?:\\s+is)?\\s*:?\\s*([^.\\n]{30,})/i,\n /solves?\\s+(?:the\\s+)?(?:problem\\s+of\\s+)?([^.\\n]{30,})/i,\n ]);\n return fm ? sv(fm, 'README:problem-heuristic', 0.6) : null;\n}\n\nfunction extractWho(readme: string): SourcedValue | null {\n const sec = section(readme, 'Audience|Who|Who is this for|Who it.s for');\n if (sec) {return sv(sec.body, `README:## ${sec.heading}`, 0.8);}\n const fm = firstMatch(\n readme,\n [\n // optional qualifier before the role word, so \"for backend teams\" /\n // \"for indie developers\" match — not just a bare role. Dogfood-caught.\n /\\b(?:designed|built|made)\\s+for\\s+((?:[a-z][a-z-]*\\s+)?(?:developers?|teams?|engineers?|builders?|founders?)[^.\\n]{0,80})/i,\n /\\bfor\\s+((?:[a-z][a-z-]*\\s+)?(?:developers?|teams?|engineers?|builders?|founders?)[^.\\n]{0,80})/i,\n ],\n 8,\n );\n return fm ? sv(fm, 'README:audience-heuristic', 0.6) : null;\n}\n\nfunction extractWhy(readme: string): SourcedValue | null {\n const sec = section(readme, 'Why|Mission|Motivation|Rationale|Vision');\n if (sec) {return sv(sec.body, `README:## ${sec.heading}`, 0.8);}\n // DECLARATIVE only — \"our mission is X\", \"the goal is X\", \"Mission: X\". The\n // bare noun is NOT enough: \"(name + goal + the six Ws)\" must not match (it did,\n // and grabbed the rest of the line — a real bug the provenance dogfood caught).\n const fm = firstMatch(readme, [\n /(?:our\\s+|the\\s+)?(?:mission|purpose|goal)\\s+is\\s+([^.\\n]{30,})/i,\n /\\b(?:mission|purpose|goal)\\s*:\\s*([^.\\n]{30,})/i,\n /(?:built|created|designed)\\s+(?:because|to)\\s+([^.\\n]{30,})/i,\n ]);\n return fm ? sv(fm, 'README:mission-heuristic', 0.6) : null;\n}\n\nfunction extractWhere(pkg: PkgJson | null, readme: string): SourcedValue | null {\n const repo = typeof pkg?.repository === 'string' ? pkg.repository : pkg?.repository?.url;\n if (repo) {return sv(clean(repo.replace(/^git\\+/, '').replace(/\\.git$/, '')), 'package.json:repository', 0.95);}\n if (pkg?.homepage) {return sv(clean(pkg.homepage), 'package.json:homepage', 0.9);}\n const fm = firstMatch(\n readme,\n // {3,80} + minLen 3 so short platform names (\"npm\", \"AWS\") match —\n // \"Published on npm.\" used to slip past the 4-char floor. Dogfood-caught.\n [/\\b(?:deployed|hosted|available|published)\\s+(?:on|at|via)\\s+([^.\\n]{3,80})/i],\n 3,\n );\n return fm ? sv(fm, 'README:deploy-heuristic', 0.6) : null;\n}\n\nfunction extractWhen(readme: string): SourcedValue | null {\n const sec = section(readme, 'Timeline|Status|Release|Roadmap');\n if (sec) {return sv(sec.body, `README:## ${sec.heading}`, 0.8);}\n const fm = firstMatch(\n readme,\n [\n /\\b(production\\s+since\\s+[^.\\n]{4,60})/i,\n /\\b((?:in\\s+)?(?:production|beta|alpha|development)\\s+since\\s+[^.\\n]{4,60})/i,\n /\\bsince\\s+((?:[A-Z][a-z]+\\s+)?\\d{4}[^.\\n]{0,40})/,\n ],\n 4,\n );\n return fm ? sv(fm, 'README:since-heuristic', 0.6) : null;\n}\n\nfunction extractHow(pkg: PkgJson | null, readme: string): SourcedValue | null {\n const scripts = pkg?.scripts ? Object.keys(pkg.scripts) : [];\n const run = ['start', 'dev', 'build'].filter((s) => scripts.includes(s));\n if (run.length) {return sv(clean(run.map((s) => `npm run ${s}`).join(', ')), 'package.json:scripts', 0.9);}\n const usage = section(readme, 'Usage|Getting Started|Install|Installation|Quick Start');\n if (usage) {return sv(usage.body, `README:## ${usage.heading}`, 0.8);}\n const arch = section(readme, 'Architecture|Approach|How it works|Methodology|How');\n return arch ? sv(arch.body, `README:## ${arch.heading}`, 0.7) : null;\n}\n",
185
- "/**\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",
185
+ "/**\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_ADDS,\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 const added = typeof type === 'string' && APP_TYPE_ADDS[type]?.has(slot.path) === true;\n keepUsedSlot(out, base, slot, slot.path.startsWith('stack.') ? facts[slot.path.slice('stack.'.length)] : undefined, added);\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). A slot\n * the type adds by name (`added`) takes none from the file either. 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, added = false): void {\n const locs = slotLocations(slot);\n const real = (loc: string): boolean => !isPlaceholder(fieldAt(out, loc)) && !isSlotIgnored(fieldAt(out, loc));\n for (const loc of locs) {\n if (!isSlotIgnored(fieldAt(out, loc))) {continue;}\n if (added) {\n // A slot the type adds by name (APP_TYPE_ADDS) is required by name, so\n // the file's own `slotignored` there contradicts the type: it opens\n // (empty), or goes when the slot's other name holds a real value.\n putField(out, loc, locs.some(real) ? undefined : '');\n } else if (!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, and not added by\n * the type, 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) || APP_TYPE_ADDS[projectType]?.has(slot.path)) {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",
186
186
  "/**\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",
187
+ "import { spawnSync } from 'child_process';\nimport { readFileSync } from 'fs';\nimport { isAbsolute, join } from 'path';\n\n/**\n * `.faf-dna` is the birth certificate: the honest first score, which cannot be\n * recreated. Gitignored, it is lost on a fresh clone, a new machine or\n * `git clean -X`. Keeping it local is fine with a named reason: a `#` comment\n * on the line just above the ignore line. faf says so only when there is none.\n *\n * Returns the ignore rule as `source:line: pattern` when `.faf-dna` in `dir` is\n * ignored with no reason given, else null. Not a git repo, no git, or a tracked\n * `.faf-dna` (git does not apply ignore rules to it) → null.\n */\nexport function dnaIgnoredWithoutReason(dir: string): string | null {\n const r = spawnSync('git', ['check-ignore', '-v', '--', '.faf-dna'], { cwd: dir, encoding: 'utf-8' });\n if (r.status !== 0 || typeof r.stdout !== 'string') {return null;}\n // \"<source>:<line>:<pattern>\\t<path>\"; source may be relative to the repo top.\n const match = /^(.*):(\\d+):(.*)\\t/.exec(r.stdout);\n if (!match) {return null;}\n const [, source, lineText, pattern] = match;\n if (pattern.startsWith('!')) {return null;}\n if (hasReasonAbove(dir, source, Number(lineText))) {return null;}\n return `${source}:${lineText}: ${pattern}`;\n}\n\n/** True when the line above `line` in `source` is a `#` comment (the named reason). */\nfunction hasReasonAbove(dir: string, source: string, line: number): boolean {\n if (line < 2) {return false;}\n const top = spawnSync('git', ['rev-parse', '--show-toplevel'], { cwd: dir, encoding: 'utf-8' });\n const candidates = isAbsolute(source)\n ? [source]\n : [join(dir, source), ...(top.status === 0 ? [join(top.stdout.trim(), source)] : [])];\n for (const path of candidates) {\n try {\n const above = readFileSync(path, 'utf-8').split(/\\r?\\n/)[line - 2] ?? '';\n return above.trim().startsWith('#');\n } catch {\n // try the next candidate\n }\n }\n return false;\n}\n\n/** The one-line warning, or null when there is nothing to say. */\nexport function dnaGitignoreWarning(dir: string): string | null {\n const rule = dnaIgnoredWithoutReason(dir);\n if (!rule) {return null;}\n return `.faf-dna is gitignored (${rule}): a fresh clone loses the birth certificate. Commit it, or put the reason in a # comment above that line.`;\n}\n",
187
188
  "import { statSync } from 'fs';\nimport { homedir } from 'os';\nimport { parse, resolve } from 'path';\nimport { bold, dim, fafCyan } from '../ui/colors.js';\n\n/**\n * Home / filesystem root are never a FAF project root.\n * Receipt: stranger ran `faf auto` in ~ and got Trophy DNA for \"wolfejam\" —\n * funny, not useful. Dev-notes already say `cd your-project`.\n *\n * Hard refuse for writers (auto / init / go / loop). No --force escape:\n * cd is the product.\n */\n\n/** Same directory on disk, however it is spelled: device + inode, not the path\n * string. Catches a case-variant spelling of home on case-insensitive\n * APFS, a symlink to home, and the macOS Data-volume firmlink of the home\n * folder. An unreadable path, or a filesystem that reports no inode (0),\n * is never \"the same\". */\nfunction sameDir(a: string, b: string): boolean {\n try {\n const sa = statSync(a, { bigint: true });\n const sb = statSync(b, { bigint: true });\n return sa.isDirectory() && sa.ino !== 0n && sa.dev === sb.dev && sa.ino === sb.ino;\n } catch {\n return false;\n }\n}\n\n/** Which non-project root `dir` is — home, the filesystem root — or null. */\nfunction nonProjectRootKind(dir: string): 'home' | 'root' | null {\n const resolved = resolve(dir);\n const home = resolve(homedir());\n const root = parse(resolved).root; // '/' on POSIX, 'C:\\' on Windows\n if (resolved === home) {return 'home';}\n // POSIX root or Windows drive root (C:\\ etc.)\n if (resolved === root || resolved === '/' || /^[A-Za-z]:[\\\\/]?$/.test(resolved)) {return 'root';}\n // Spelled differently — compare identity.\n if (sameDir(resolved, home)) {return 'home';}\n if (sameDir(resolved, root)) {return 'root';}\n return null;\n}\n\n/** True if dir is the user's home directory or the filesystem root — compared\n * by identity (device + inode), not by spelling. */\nexport function isNonProjectRoot(dir: string = process.cwd()): boolean {\n return nonProjectRootKind(dir) !== null;\n}\n\n/**\n * Exit 1 with a clear cd instruction if cwd cannot be a project root.\n * Call at the top of commands that create or interview project.faf.\n */\nexport function assertProjectCwd(dir: string = process.cwd(), command = 'faf'): void {\n const kind = nonProjectRootKind(dir);\n if (kind === null) {return;}\n\n const where = kind === 'home' ? 'your home directory (~)' : 'the filesystem root';\n console.error(`${fafCyan('faf')}: ${where} is not a project.`);\n console.error('');\n console.error(` ${bold('cd')} into a real repo (or any folder you mean to own), then run again:`);\n console.error(dim(` cd /path/to/your-project`));\n console.error(dim(` ${command}`));\n console.error('');\n console.error(dim(' Home will never be a git repo for this. project.faf belongs with the code.'));\n process.exit(1);\n}\n",
188
189
  "/**\n * The one line the CLI prints when faf refuses to touch a file, or a write\n * fails with the file left as it was. A refusal is an answer, not a crash: one\n * line, no stack trace. Shared by the top-level handler (cli.ts) and the\n * multi-target commands (`faf export`, `faf cards`), which print the line for\n * one target and carry on with the others.\n */\nimport { statSync } from 'fs';\nimport { dirname, resolve } from 'path';\nimport { NotWrittenError, SafePathError } from './safe-write.js';\n\n/** What the line adds after the reason: nothing when the reason already says\n * the file was left as it is (not UTF-8, changed on disk, not valid YAML,\n * a block faf could not place), or already says how to replace it; the --force\n * hint for a file faf did not write, when the command has --force; otherwise\n * what faf did not do — \"Nothing was written to it.\" when the refusal came at\n * the write (faf may have read the file first), \"Nothing was read from or\n * written to it.\" when it came before either. */\nexport function refusalTail(e: SafePathError, hasForce: boolean): string {\n if (e.reason === 'not-utf8' || e.reason === 'changed' || e.reason === 'not-yaml' || e.reason === 'unplaceable') {return '';}\n if (e.reason === 'not-owned') {return hasForce && !e.message.includes('--force') ? ' Use --force to replace it.' : '';}\n return e.onWrite ? ' Nothing was written to it.' : ' Nothing was read from or written to it.';\n}\n\n/** True for an error the CLI prints as one line: a refusal (SafePathError) or\n * a write that failed with the original kept (NotWrittenError). */\nexport function isOneLineError(e: unknown): e is SafePathError | NotWrittenError {\n return e instanceof SafePathError || e instanceof NotWrittenError;\n}\n\n/** The one line for `e`: `faf: <reason>` plus {@link refusalTail} for a refusal. */\nexport function oneLine(e: SafePathError | NotWrittenError, hasForce: boolean): string {\n return e instanceof SafePathError ? `faf: ${e.message}${refusalTail(e, hasForce)}` : `faf: ${e.message}`;\n}\n\n/** Refuse an --output (or --out) path whose folder is not there, before\n * anything is written: a NotWrittenError the CLI prints as one line, exit 1\n * — \"<folder> does not exist — nothing written\", or \"<folder> is not a\n * folder — nothing written\" when a file has that name. Nothing happens when\n * `output` is undefined (no --output given) or its folder is there.\n * `faf compile`, `faf decompile`, `faf taf`, `faf init`, `faf server-card`\n * and `faf git` write into a folder that exists and never create one\n * (`faf export --output` does: that folder is the export's own). */\nexport function refuseMissingOutputFolder(output: string | undefined): void {\n if (output === undefined) {return;}\n const folder = dirname(resolve(output));\n let why: string | null;\n try {\n why = statSync(folder).isDirectory() ? null : 'is not a folder';\n } catch (e) {\n const code = (e as NodeJS.ErrnoException | null)?.code;\n if (code !== 'ENOENT' && code !== 'ENOTDIR') {throw e;}\n why = 'does not exist';\n }\n if (why !== null) {throw new NotWrittenError(resolve(output), `${folder} ${why} — nothing written`);}\n}\n",
189
- "import { FafDNAManager } from '../core/faf-dna.js';\nimport { bold, dim, fafCyan, orange } from '../ui/colors.js';\n\n/** After recording growth: when the `.faf-dna` is one faf did not write (and\n * so was left as it is), say why on stderr, in one line. */\nexport function sayWhyDnaIsLeft(dna: FafDNAManager): void {\n const why = dna.readOnlyReason();\n if (why) {console.error(`faf: ${why}`);}\n}\n\n/** `faf dna` — show your FAF DNA journey at a glance: 22% → 85% → 99% ← 92%. */\nexport function dnaCommand(): void {\n const dna = new FafDNAManager(process.cwd());\n if (!dna.load()) {\n // A .faf-dna that is there but cannot be read (not UTF-8, not JSON, …) says why.\n const why = dna.readOnlyReason();\n console.error(why ? `${bold('×')} ${why}` : `${bold('×')} No FAF DNA found. Run ${bold(\"'faf init'\")} to start your journey.`);\n process.exit(1);\n }\n\n const journey = dna.getJourney();\n const info = dna.getBirthDNADisplay()!;\n const born = info.born.split('T')[0] || 'unknown';\n\n console.log();\n console.log(orange(bold('🧬 YOUR FAF DNA')));\n console.log();\n console.log(` ${fafCyan(bold(journey))}`);\n console.log();\n console.log(\n dim(` Birth DNA ${info.birthDNA}% (born ${born}) · current ${info.current}% · growth ${info.growth >= 0 ? '+' : ''}${info.growth}%`),\n );\n\n const why = dna.readOnlyReason();\n if (why) {\n // faf did not write this .faf-dna (another tool's shape, or text faf cannot\n // prove it wrote). faf reads what it can and never rewrites it; growth is\n // not recorded into it. The offer of --force says \"and keeps this one\"\n // because since a3b400d6 a reset carries the life it ends into\n // `priorLineage` — the old wording read as a choice between a fresh start\n // and the record, which is no longer the trade.\n console.log(dim(` ${why} ${bold(\"'faf init --force'\")} starts a fresh lineage and keeps this one.`));\n }\n\n const log = dna.getLog();\n if (log.length > 1) {\n console.log();\n console.log(dim(' history:'));\n for (const line of log) {console.log(dim(` ${line}`));}\n }\n\n // Lives a `faf init --force` ended. Kept in the file since a3b400d6, and shown\n // here because a record nothing displays is a record nobody trusts.\n const prior = dna.load()?.priorLineage ?? [];\n if (prior.length > 0) {\n console.log();\n console.log(dim(` earlier ${prior.length === 1 ? 'life' : 'lives'}:`));\n for (const life of prior) {\n const grew = life.lastScore === life.birthDNA ? `${life.birthDNA}%` : `${life.birthDNA}% → ${life.lastScore}%`;\n console.log(dim(` ${grew} born ${life.born.slice(0, 10)}, reset ${life.endedAt.slice(0, 10)} ${life.certificate}`));\n }\n }\n console.log();\n}\n",
190
+ "import { FafDNAManager, type FafDNA } from '../core/faf-dna.js';\nimport { bold, dim, fafCyan, orange } from '../ui/colors.js';\nimport { dnaGitignoreWarning, dnaIgnoredWithoutReason } from '../core/dna-gitignore.js';\n\n/** After recording growth: when the `.faf-dna` is one faf did not write (and\n * so was left as it is), say why on stderr, in one line. */\nexport function sayWhyDnaIsLeft(dna: FafDNAManager): void {\n const why = dna.readOnlyReason();\n if (why) {console.error(`faf: ${why}`);}\n}\n\nexport interface DnaOptions {\n json?: boolean;\n}\n\n/** The lineage as data: `faf dna --json`. Birth, where it is now, every\n * version, and the earlier lives a reset ended. Written from the file as\n * read, so the same .faf-dna gives the same JSON. `faf_written` is false for\n * a .faf-dna faf did not write, and `note` says why. */\nexport function dnaJson(dna: FafDNAManager, data: FafDNA): Record<string, unknown> {\n const birth = data.birthCertificate;\n const peak = data.growth.milestones.find((m) => m.type === 'peak');\n return {\n born: birth.born,\n birth_dna: birth.birthDNA,\n certificate: birth.certificate,\n current: data.current.score,\n version: data.current.version,\n growth: data.current.score - birth.birthDNA,\n peak: peak ? peak.score : Math.max(birth.birthDNA, ...data.versions.map((v) => v.score)),\n journey: dna.getJourney(),\n versions: data.versions.map((v) => ({\n version: v.version,\n score: v.score,\n timestamp: v.timestamp,\n changes: Array.isArray(v.changes) ? v.changes : [],\n })),\n prior_lives: (data.priorLineage ?? []).map((l) => ({\n born: l.born,\n birth_dna: l.birthDNA,\n last_score: l.lastScore,\n ended_at: l.endedAt,\n certificate: l.certificate,\n })),\n gitignored: dnaIgnoredWithoutReason(process.cwd()) !== null,\n faf_written: dna.readOnlyReason() === null,\n note: dna.readOnlyReason(),\n };\n}\n\n/** `faf dna` — show your FAF DNA journey at a glance: 22% → 85% → 99% ← 92%. */\nexport function dnaCommand(options: DnaOptions = {}): void {\n const dna = new FafDNAManager(process.cwd());\n const data = dna.load();\n if (!data) {\n // A .faf-dna that is there but cannot be read (not UTF-8, not JSON, …) says why.\n const why = dna.readOnlyReason();\n console.error(why ? `${bold('×')} ${why}` : `${bold('×')} No FAF DNA found. Run ${bold(\"'faf init'\")} to start your journey.`);\n process.exit(1);\n }\n\n if (options.json) {\n console.log(JSON.stringify(dnaJson(dna, data), null, 2));\n return;\n }\n\n const journey = dna.getJourney();\n const info = dna.getBirthDNADisplay()!;\n const born = info.born.split('T')[0] || 'unknown';\n\n console.log();\n console.log(orange(bold('🧬 YOUR FAF DNA')));\n console.log();\n console.log(` ${fafCyan(bold(journey))}`);\n console.log();\n console.log(\n dim(` Birth DNA ${info.birthDNA}% (born ${born}) · current ${info.current}% · growth ${info.growth >= 0 ? '+' : ''}${info.growth}%`),\n );\n\n const why = dna.readOnlyReason();\n if (why) {\n // faf did not write this .faf-dna (another tool's shape, or text faf cannot\n // prove it wrote). faf reads what it can and never rewrites it; growth is\n // not recorded into it. That is the protection, not a fault: a birth\n // certificate is never changed or reissued, so faf offers no way round it.\n console.log(dim(` ${why} Your birth certificate is protected: faf never changes it.`));\n }\n\n const ignored = dnaGitignoreWarning(process.cwd());\n if (ignored) {console.log(dim(` ⚠ ${ignored}`));}\n\n const log = dna.getLog();\n if (log.length > 1) {\n console.log();\n console.log(dim(' history:'));\n for (const line of log) {console.log(dim(` ${line}`));}\n }\n\n // Lives a `faf init --force` ended. Kept in the file since a3b400d6, and shown\n // here because a record nothing displays is a record nobody trusts.\n const prior = dna.load()?.priorLineage ?? [];\n if (prior.length > 0) {\n console.log();\n console.log(dim(` earlier ${prior.length === 1 ? 'life' : 'lives'}:`));\n for (const life of prior) {\n const grew = life.lastScore === life.birthDNA ? `${life.birthDNA}%` : `${life.birthDNA}% → ${life.lastScore}%`;\n console.log(dim(` ${grew} born ${life.born.slice(0, 10)}, reset ${life.endedAt.slice(0, 10)} ${life.certificate}`));\n }\n }\n console.log();\n}\n",
190
191
  "import { existsSync } from 'fs';\nimport { join } from 'path';\nimport { assembleFreshFaf, updateExistingFaf } from '../detect/assemble.js';\nimport { aliasKeptNote, writeFaf, readFaf, readFafRaw, withKernel } from '../interop/faf.js';\nimport * as kernel from '../wasm/kernel.js';\nimport { enrichScore } from '../core/scorer.js';\nimport { typedNoneHints } from '../core/typed-none.js';\nimport { FafDNAManager } from '../core/faf-dna.js';\nimport { sayWhyDnaIsLeft } from './dna.js';\nimport { displayScore } from '../ui/display.js';\nimport { bold, dim, fafCyan } from '../ui/colors.js';\nimport { assertProjectCwd } from '../core/cwd-guard.js';\n\nexport function autoCommand(): void {\n assertProjectCwd(process.cwd(), 'faf auto');\n const dir = process.cwd();\n const fafPath = join(dir, 'project.faf');\n\n if (existsSync(fafPath)) {\n // Update: existing wins (preserve user edits), then interrogated → detected →\n // Turbo-Cat (formats) → Relentless (6 W's) fill the remaining empties.\n // Shared with consumers via the public updateExistingFaf export.\n // Only what changed is written; comments and formatting stay as they are.\n // An alias (`stack: *base`) is never expanded to fill a slot under it —\n // it stays as written, and faf says so in one line.\n // A project.faf the scoring kernel cannot read is refused in one line\n // before anything is written — the fill keeps every key, so the kernel\n // could not read the filled file either.\n const existing = readFaf(fafPath);\n withKernel(fafPath, () => kernel.score(readFafRaw(fafPath)));\n const aliases: string[] = [];\n const written = writeFaf(fafPath, updateExistingFaf(dir, existing), {\n onAliasKept: kept => aliases.push(aliasKeptNote(kept)),\n });\n console.log(`${written ? fafCyan('updated') : dim('unchanged')} ${fafPath}`);\n for (const line of aliases) {console.log(dim(` ${line}`));}\n } else {\n // New file: full assembly pipeline (shared with `faf git`).\n writeFaf(fafPath, assembleFreshFaf(dir));\n console.log(`${fafCyan('created')} ${fafPath}`);\n }\n\n const yaml = readFafRaw(fafPath);\n const result = withKernel(fafPath, () => enrichScore(kernel.score(yaml)));\n\n // Record growth on the DNA journey, if a heartbeat exists (faf init births it).\n // A .faf-dna faf did not write is left as it is — say so in one line.\n const dna = new FafDNAManager(dir);\n if (dna.exists()) {\n dna.recordGrowth(result.score, ['faf auto']);\n sayWhyDnaIsLeft(dna);\n }\n\n // A slot the app-type needs that still holds typed words — None, N/A,\n // unknown — (no repo fact filled it) counts as empty: say so under the\n // score, one line per slot. Slots the app-type leaves out are marked by now.\n displayScore(result, fafPath, false, typedNoneHints(yaml, result, { outOfType: false }));\n\n if (result.score < 100) {\n console.log(dim(`\\n run ${bold(\"'faf go'\")} to reach ✪ Trophy`));\n }\n}\n",
191
192
  "import { existsSync } from 'fs';\nimport { join } from 'path';\nimport { autoCommand } from './auto.js';\nimport { readFaf, readFafRaw, withKernel } from '../interop/faf.js';\nimport * as kernel from '../wasm/kernel.js';\nimport { enrichScore } from '../core/scorer.js';\nimport { runLoop } from '../core/loop.js';\nimport type { LoopDeps, LoopRunResult } from '../core/loop.js';\nimport { bold, dim, fafCyan } from '../ui/colors.js';\n\n/**\n * `faf loop` — drive the .faf to 100%, or to the human wall. Sources everything\n * detection can (auto), then reports exactly what only the human can answer.\n * \"100% or ask human\": the loop never invents a human slot to reach 100%.\n *\n * Thin wiring over the tested driver (src/core/loop.ts): the deterministic\n * engine decides; this command supplies the real read / score / auto and renders.\n */\nexport function loopCommand(options: { rounds?: string } = {}): void {\n const dir = process.cwd();\n const fafPath = join(dir, 'project.faf');\n const maxRounds = options.rounds ? Math.max(1, parseInt(options.rounds, 10) || 5) : 5;\n\n const deps: LoopDeps = {\n // No .faf yet → an EMPTY snapshot (score 0, every slot a gap); the loop's\n // first runAuto then creates + sources it. No special bootstrap path.\n read: () =>\n existsSync(fafPath)\n ? { data: readFaf(fafPath) as Record<string, unknown>, yaml: readFafRaw(fafPath) }\n : { data: {}, yaml: '' },\n // What the kernel cannot read is one line; the first score comes before\n // the first auto round, so nothing is written then.\n score: (yaml) => (yaml ? withKernel(fafPath, () => enrichScore(kernel.score(yaml))).score : 0),\n runAuto: () => autoCommand(),\n };\n\n renderLoopResult(runLoop(deps, { maxRounds }));\n}\n\nfunction renderLoopResult(r: LoopRunResult): void {\n if (r.history.length > 1) {\n console.log(dim(`\\n climb: ${r.history.join('% → ')}%`));\n }\n console.log('');\n\n switch (r.status) {\n case 'done':\n console.log(`${fafCyan('done')} — ✪ 100% AI-readiness. The .faf is complete.`);\n break;\n case 'needs-human': {\n const n = r.ask.length;\n console.log(`${bold('Sourced everything detection can.')} ${n} question${n === 1 ? '' : 's'} only you can answer:`);\n for (const a of r.ask) {console.log(` ${dim('•')} ${a.question}`);}\n console.log(dim(`\\n Answer with ${bold(\"'faf go'\")}, or fill them in project.faf directly.`));\n break;\n }\n case 'stuck':\n console.log(`${bold(`Stopped at ${r.score}%.`)} The remaining gaps need evidence detection couldn't find, and there's nothing only you can answer. Add the missing manifests/README, then re-run.`);\n break;\n case 'capped':\n console.log(`${bold(`Stopped at ${r.score}% after ${r.rounds} rounds (the cap).`)} Re-run ${bold(\"'faf loop'\")} to continue, or raise ${dim('--rounds')}.`);\n break;\n case 'no-faf':\n console.log(`No project.faf, and none could be created here. Run ${bold(\"'faf init'\")} first.`);\n break;\n }\n}\n",
192
193
  "/**\n * The 6Ws Interview — SINGLE SOURCE.\n *\n * The canonical question registry for filling a .faf by asking a human (or an\n * agent asking a human). faf-cli OWNS it; consumers (claude-faf-mcp's faf_go,\n * siblings, UIs) IMPORT it — never reimplement, never copy. Decided\n * 2026-06-10: the CLI exports, CFM consumes, zero drift. (CFM's previous\n * hand-maintained registry had already drifted — e.g. its `how` asked \"How\n * should AI assist?\" while the canonical slot semantic is \"How is it built /\n * used?\". This file is the arbiter; slots.ts is its spine.)\n *\n * Shape carries what interactive consumers need: question text, a short\n * header chip, input type, required flag, select options where a closed-ish\n * vocabulary exists. Question SEMANTICS align to core/slots.ts descriptions —\n * the slot is the meaning, the question is just its interview voice.\n *\n * Authoring doctrine baked into the prompts: 6Ws answers are terse LABELS\n * (3-4 words, hard cap <6) — a scannable spec card, not prose.\n */\n\nimport { SLOTS, SLOT_BY_PATH, isPlaceholder } from './slots.js';\nimport type { SeededContextDetailed } from '../detect/relentless.js';\n\n/** Bump when questions/options change — consumers can pin or report it. */\nexport const INTERVIEW_VERSION = 'faf-interview/1';\n\nexport interface InterviewOption {\n label: string;\n value: string;\n description: string;\n}\n\nexport interface InterviewQuestion<P extends string = string> {\n /** Canonical slot path (core/slots.ts is the spine). */\n path: P;\n question: string;\n /** Short chip/header label (max ~12 chars) for option-UI consumers. */\n header: string;\n type: 'text' | 'select';\n required: boolean;\n options?: InterviewOption[];\n}\n\n/**\n * The human/sourced boundary, as TYPES — the load-bearing line in FAF.\n *\n * HumanSlotPath = the 8 things only a human knows (name + goal + the 6Ws).\n * SourcedSlotPath = the slots detection fills (language + the stack).\n *\n * They are DISJOINT by construction. Typing the two interviews against these\n * makes it a COMPILE error to put a sourced slot in the human interview (or\n * vice-versa) — the \"Interview-16\" drift becomes unrepresentable at the Truth,\n * not merely caught by a downstream test. \"I'll remember\" is not a fix; a type\n * is. (claude-faf-mcp's wjttc-faf-go-boundary test is the belt; this is the\n * braces — the source itself can no longer drift.)\n */\nexport type HumanSlotPath =\n | 'project.name'\n | 'project.goal'\n | 'human_context.who'\n | 'human_context.what'\n | 'human_context.why'\n | 'human_context.where'\n | 'human_context.when'\n | 'human_context.how';\n\nexport type SourcedSlotPath =\n | 'project.main_language'\n | 'stack.frontend'\n | 'stack.backend'\n | 'stack.database'\n | 'stack.runtime'\n | 'stack.hosting'\n | 'stack.build'\n | 'stack.cicd';\n\nconst TERSE = '(terse — 3-4 words)';\n\n/**\n * THE 8-Q 6Ws INTERVIEW — the core. Project identity (name + goal) plus the\n * six Ws. Language is deliberately NOT here: detection finds it; humans are\n * only asked what machines cannot derive. The 6Ws are the underivable half.\n */\nexport const SIX_WS_INTERVIEW: InterviewQuestion<HumanSlotPath>[] = [\n {\n path: 'project.name',\n question: 'What is the name of this project?',\n header: 'Name',\n type: 'text',\n required: true,\n },\n {\n path: 'project.goal',\n question: 'What does this project do? (one sentence)',\n header: 'Goal',\n type: 'text',\n required: true,\n },\n {\n path: 'human_context.who',\n question: `Who is this for? ${TERSE}`,\n header: 'Who',\n type: 'text',\n required: true,\n },\n {\n path: 'human_context.what',\n question: `What are they building? ${TERSE}`,\n header: 'What',\n type: 'text',\n required: true,\n },\n {\n path: 'human_context.why',\n question: `Why does it exist? ${TERSE}`,\n header: 'Why',\n type: 'text',\n required: true,\n },\n {\n path: 'human_context.where',\n question: `Where does it run or ship? ${TERSE}`,\n header: 'Where',\n type: 'text',\n required: true,\n },\n {\n path: 'human_context.when',\n question: `When — timeline or stage? ${TERSE}`,\n header: 'When',\n type: 'text',\n required: true,\n },\n {\n path: 'human_context.how',\n question: `How is it built or used? ${TERSE}`,\n header: 'How',\n type: 'text',\n required: true,\n },\n];\n\n/**\n * Stack interview — asked only for slots ACTIVE for the app_type and still\n * empty. Selects where a common vocabulary exists; every select includes\n * Other (specify) and None where absence is legitimate.\n */\nexport const STACK_INTERVIEW: InterviewQuestion<SourcedSlotPath>[] = [\n {\n path: 'project.main_language',\n question: 'What is the primary programming language?',\n header: 'Language',\n type: 'select',\n required: true,\n options: [\n { label: 'TypeScript', value: 'TypeScript', description: 'JavaScript with types' },\n { label: 'JavaScript', value: 'JavaScript', description: 'Vanilla JS or Node.js' },\n { label: 'Python', value: 'Python', description: 'Python 3.x' },\n { label: 'Rust', value: 'Rust', description: 'Systems programming' },\n { label: 'Go', value: 'Go', description: 'Golang' },\n { label: 'Other', value: 'Other', description: 'Specify manually' },\n ],\n },\n {\n path: 'stack.frontend',\n question: 'What frontend framework does it use?',\n header: 'Frontend',\n type: 'select',\n required: false,\n options: [\n { label: 'React', value: 'React', description: 'React.js' },\n { label: 'Vue', value: 'Vue', description: 'Vue.js' },\n { label: 'Svelte', value: 'Svelte', description: 'Svelte/SvelteKit' },\n { label: 'Next.js', value: 'Next.js', description: 'React framework' },\n { label: 'None', value: 'None', description: 'No frontend' },\n { label: 'Other', value: 'Other', description: 'Specify manually' },\n ],\n },\n {\n path: 'stack.backend',\n question: 'What backend framework does it use?',\n header: 'Backend',\n type: 'select',\n required: false,\n options: [\n { label: 'Express', value: 'Express', description: 'Node.js Express' },\n { label: 'Fastify', value: 'Fastify', description: 'Node.js Fastify' },\n { label: 'Django', value: 'Django', description: 'Python Django' },\n { label: 'FastAPI', value: 'FastAPI', description: 'Python FastAPI' },\n { label: 'None', value: 'None', description: 'No backend' },\n { label: 'Other', value: 'Other', description: 'Specify manually' },\n ],\n },\n {\n path: 'stack.database',\n question: 'What database does it use?',\n header: 'Database',\n type: 'select',\n required: false,\n options: [\n { label: 'PostgreSQL', value: 'PostgreSQL', description: 'Postgres' },\n { label: 'MySQL', value: 'MySQL', description: 'MySQL/MariaDB' },\n { label: 'SQLite', value: 'SQLite', description: 'Embedded SQL' },\n { label: 'MongoDB', value: 'MongoDB', description: 'Document store' },\n { label: 'None', value: 'None', description: 'No database' },\n { label: 'Other', value: 'Other', description: 'Specify manually' },\n ],\n },\n {\n path: 'stack.runtime',\n question: 'What runtime does it run on?',\n header: 'Runtime',\n type: 'text',\n required: false,\n },\n {\n path: 'stack.hosting',\n question: 'Where is it hosted or distributed?',\n header: 'Hosting',\n type: 'text',\n required: false,\n },\n {\n path: 'stack.build',\n question: 'What is the build tool?',\n header: 'Build',\n type: 'text',\n required: false,\n },\n {\n path: 'stack.cicd',\n question: 'What CI/CD does it use?',\n header: 'CI/CD',\n type: 'text',\n required: false,\n },\n];\n\n/** The full ordered registry: the 8-Q core first, then stack. */\nexport const INTERVIEW: InterviewQuestion[] = [...SIX_WS_INTERVIEW, ...STACK_INTERVIEW];\n\n/** Lookup by slot path. */\nexport const INTERVIEW_BY_PATH = new Map<string, InterviewQuestion>(\n INTERVIEW.map((q) => [q.path, q]),\n);\n\n/**\n * Plain-object companion to INTERVIEW_BY_PATH. A Map JSON-serializes to `{}`,\n * which reads as \"the export shipped empty\" to any consumer that crosses a\n * serialization boundary (caught by the CFM compose handoff, 2026-06-12).\n * Bridge consumers that serialize should use THIS; in-process consumers can\n * use either.\n */\nexport const INTERVIEW_PATHS: Record<string, InterviewQuestion> = Object.fromEntries(\n INTERVIEW.map((q) => [q.path, q]),\n);\n\n/**\n * Interview voice for ANY slot: the registry question when one exists,\n * otherwise derived from the slot's canonical description — so slot-driven\n * flows (faf go) and registry-driven flows (faf_go) speak the same language.\n */\nexport function questionForSlot(path: string): string {\n const q = INTERVIEW_BY_PATH.get(path);\n if (q) {return q.question;}\n const slot = SLOT_BY_PATH.get(path) ?? SLOTS.find((s) => s.canonical === path);\n return slot ? `${slot.description}?`.replace(/\\?\\?$/, '?') : `${path}?`;\n}\n\n/**\n * The questions still worth asking for a given .faf: registry order, empty\n * (or placeholder) slots only, slotignored skipped — the What-Not is never\n * interviewed. `data` is the parsed .faf object.\n */\nexport function interviewForMissing(\n data: Record<string, unknown>,\n isEmpty: (value: unknown) => boolean,\n): InterviewQuestion[] {\n return INTERVIEW.filter((q) => {\n const parts = q.path.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 cur = undefined;\n break;\n }\n }\n if (cur === 'slotignored') {return false;}\n return isEmpty(cur);\n });\n}\n\n// ── Goal-seed (the 8Qs flow) ─────────────────────────────────────────────────\n//\n// Box 2 (Goal, the one sentence) is the single generative input. seedSixWsFromGoal\n// extracts ONLY verbatim facts the goal LITERALLY contains — the project's own\n// words — never synthesis, inference, or defaults. What it can't pull from the\n// goal text, it leaves empty (the human fills it). Generic/template values are\n// banned even when matched. Output is a set of SUGGESTIONS for the Table-of-8;\n// the human approves before anything is built.\n//\n// Facts only · generic banned · empty beats wrong.\n//\n// Seeds WHAT (the leading noun phrase), WHERE (named platforms/registries), and\n// WHO (a `for <audience>` clause) — the three a goal reliably states. WHY, WHEN,\n// HOW are NOT seeded: a goal rarely states them verbatim (why/when are the\n// human's; how is sourced by Turbo-Cat). Empirically tuned against the FAF fleet.\n\n/** Template slop — banned as a seed value even if literally matched. */\nconst GENERIC_SEED_BAN = new Set([\n 'developers', 'development teams', 'development team', 'teams', 'development',\n 'cloud platform', 'web platform', 'platform', 'best practices',\n 'improve development efficiency', 'development efficiency',\n 'modern development practices', 'modern development', 'test-driven development',\n 'production/stable', 'production', 'stable', 'app', 'project', 'tool',\n]);\n\n/** Platforms / registries / runtimes — WHERE a project ships or runs. Canonical\n * label : the literal token that proves it (word-boundary, case-insensitive). */\nconst WHERE_SIGNALS: Array<[label: string, re: RegExp]> = [\n ['npm', /\\bnpm\\b/i],\n ['PyPI', /\\bpypi\\b/i],\n ['crates.io', /\\bcrates\\.io\\b/i],\n ['Homebrew', /\\bhomebrew\\b/i],\n ['Docker', /\\bdocker\\b/i],\n ['Cloudflare', /\\bcloudflare\\b/i],\n ['Vercel', /\\bvercel\\b/i],\n ['Netlify', /\\bnetlify\\b/i],\n ['AWS', /\\baws\\b/i],\n ['Cloud Run', /\\bcloud run\\b/i],\n ['edge', /\\bedge\\b/i],\n ['browser', /\\bbrowser\\b/i],\n ['WASM', /\\bwasm\\b/i],\n ['GitHub', /\\bgithub\\b/i],\n ['MCP Registry', /\\bmcp registry\\b/i],\n ['Chrome Web Store', /\\bchrome web store\\b/i],\n ['Smithery', /\\bsmithery\\b/i],\n];\n\nconst seedIsGeneric = (s: string): boolean => GENERIC_SEED_BAN.has(s.toLowerCase().trim());\n\n// The 6Ws terse rule: 3-4 words, HARD CAP <6 (max 5) — generous enough for a\n// double-barrel name / compound term, never a sentence. Seeds obey it: take the\n// first ≤5 words, then trim any trailing connective/preposition so a cap never\n// leaves a dangling \"with\"/\"and\"/\"the\".\nconst TERSE_TAIL = /^(?:with|and|or|using|for|to|that|who|whom|whose|the|a|an|in|on|of|via|by|&)$/i;\nfunction tersify(s: string, max = 5): string {\n const words = s.trim().split(/\\s+/).filter(Boolean).slice(0, max);\n while (words.length && TERSE_TAIL.test(words[words.length - 1].replace(/[.,;:]+$/, ''))) {\n words.pop();\n }\n return words.join(' ');\n}\n\nexport interface GoalSeed {\n what?: string;\n where?: string;\n who?: string;\n}\n\n/**\n * Seed the human-context slots from the Goal sentence — verbatim facts only.\n * Returns a partial { what?, where?, who? }; absent keys = \"no fact, ask the\n * human\". Never returns why/when/how (not verbatim-extractable from a goal).\n */\nexport function seedSixWsFromGoal(goal: string): GoalSeed {\n const seed: GoalSeed = {};\n if (!goal || typeof goal !== 'string') {return seed;}\n const g = goal.trim();\n\n // WHAT — the leading noun phrase: drop a leading emoji/symbol, cut at the first\n // structural delimiter, keep a clean 2-6 word verbatim phrase that isn't generic.\n const lead = g\n .replace(/^[^A-Za-z0-9]+/, '')\n .split(/\\s+(?:for|that|which|to)\\s+|\\s+[—–]\\s+|\\s-\\s|:\\s|\\.\\s|,\\s/)[0]\n .trim();\n const whatTerse = tersify(lead); // 3-4 words, cap <6\n if (whatTerse.split(/\\s+/).filter(Boolean).length >= 2 && !seedIsGeneric(whatTerse)) {\n seed.what = whatTerse;\n }\n\n // WHERE — every platform/registry/runtime literally named, deduped, terse.\n const wheres = WHERE_SIGNALS.filter(([, re]) => re.test(g)).map(([label]) => label);\n if (wheres.length) {seed.where = wheres.slice(0, 4).join(', ');}\n\n // WHO — ONLY an explicit audience ROLE: `for developers/teams/engineers/…`,\n // captured to the sentence boundary, qualifier kept. A bare `for <ProperNoun>`\n // is NOT seeded: in a goal that names the TARGET it serves (the AI/tool/format),\n // not the audience — too ambiguous to be a fact. Bare role-word (= generic)\n // dropped. Empty beats wrong; the human states the audience.\n const forAud = g.match(/\\bfor ((?:[A-Za-z][\\w./+-]* )?(?:any |all )?(?:developers?|teams?|engineers?|builders?|users?|integrators?)\\b[^.,;:—]*)/i);\n const whoTerse = tersify((forAud?.[1] || '').trim().replace(/\\s+/g, ' ')); // cap <6\n if (whoTerse && !seedIsGeneric(whoTerse)) {\n seed.who = whoTerse;\n }\n\n return seed;\n}\n\n// ── Table-of-8 (the 8Qs flow keystone) ───────────────────────────────────────\n//\n// The canonical approval table: the 8 questions in flow order, each with its\n// current value, a goal-seeded suggestion where a fact supports one, and a\n// status the consumer renders — filled (already in the .faf), seeded (proposed\n// from a fact, awaiting Tab/Enter approval), or empty (only the human knows).\n// Single-sources the seed→show→approve step so every surface shows the SAME\n// table. Nothing is committed here; the human approves, THEN the .faf is built.\n\nexport type BoxStatus = 'filled' | 'seeded' | 'empty';\n\nexport interface TableOf8Row {\n n: number; // 1-8, flow order\n path: string; // e.g. 'human_context.who'\n header: string; // e.g. 'Who'\n question: string; // the interview prompt\n value: string; // current value, or a seeded suggestion, or ''\n status: BoxStatus;\n seeded: boolean; // true when value is a goal-fact suggestion (not yet in the .faf)\n /** Provenance for a SEEDED row — where the suggestion was sourced from, so the\n * human confirms informed: 'project goal' or a README locus ('README:## Why').\n * Absent on filled/empty rows. */\n source?: string;\n /** 0..1 confidence for a seeded row, by source quality. Absent otherwise. */\n confidence?: number;\n}\n\nexport interface TableOf8 {\n version: string;\n rows: TableOf8Row[]; // exactly 8\n filledCount: number;\n seededCount: number;\n emptyCount: number;\n complete: boolean; // no empty rows\n}\n\nfunction valueAtPath(data: Record<string, unknown>, path: string): unknown {\n let cur: unknown = data;\n for (const part of path.split('.')) {\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\n/** A slot is \"filled\" only with a real value — not empty, not slotignored, not a placeholder. */\nfunction tableValueFilled(v: unknown): v is string {\n if (typeof v !== 'string') {return false;}\n const t = v.trim();\n if (!t || t === 'slotignored') {return false;}\n return !isPlaceholder(t);\n}\n\n/**\n * Build the Table-of-8 from a .faf object (any/empty) + an optional goal and an\n * optional sourced README extraction (relentlessContextDetailed). The goal seeds\n * WHO/WHAT/WHERE via seedSixWsFromGoal (facts only, source 'project goal'); the\n * detailed README form covers WHY/WHEN/HOW and any slot the goal didn't reach,\n * each carrying its own provenance. Rows the .faf already fills are 'filled';\n * seeded ones carry `source`+`confidence` so the human confirms informed; the\n * rest are 'empty' (ask the human). Goal wins over README where both have a\n * fact (the deliberate sentence beats the extraction). Pure.\n */\nexport function buildTableOf8(\n faf: Record<string, unknown>,\n opts: { goal?: string; detailed?: SeededContextDetailed } = {},\n): TableOf8 {\n const data = faf && typeof faf === 'object' ? faf : {};\n const fafGoal = valueAtPath(data, 'project.goal');\n const goalVal = (tableValueFilled(fafGoal) ? String(fafGoal).trim() : '') || (opts.goal ?? '').trim();\n const seed = seedSixWsFromGoal(goalVal);\n const detailed = (opts.detailed ?? {}) as Record<string, { value: string; source: string; confidence: number } | undefined>;\n const goalSeed: Record<string, string | undefined> = {\n 'project.goal': goalVal || undefined,\n 'human_context.what': seed.what,\n 'human_context.where': seed.where,\n 'human_context.who': seed.who,\n };\n\n // A seed for a path: the goal-fact (deliberate, wins) else the sourced README\n // extraction (covers why/when/how + fallback). Each carries its provenance.\n const seedFor = (path: string): { value: string; source: string; confidence: number } | undefined => {\n const g = goalSeed[path];\n if (g) {return { value: g, source: 'project goal', confidence: 0.9 };}\n const w = path.startsWith('human_context.') ? path.slice('human_context.'.length) : '';\n const d = w ? detailed[w] : undefined;\n return d ? { value: d.value, source: d.source, confidence: d.confidence } : undefined;\n };\n\n const rows: TableOf8Row[] = SIX_WS_INTERVIEW.map((q, i) => {\n const base = { n: i + 1, path: q.path, header: q.header, question: q.question };\n const cur = valueAtPath(data, q.path);\n if (tableValueFilled(cur)) {\n return { ...base, value: String(cur).trim(), status: 'filled', seeded: false };\n }\n const s = seedFor(q.path);\n if (s) {\n return { ...base, value: s.value, status: 'seeded', seeded: true, source: s.source, confidence: s.confidence };\n }\n return { ...base, value: '', status: 'empty', seeded: false };\n });\n\n const filledCount = rows.filter((r) => r.status === 'filled').length;\n const seededCount = rows.filter((r) => r.status === 'seeded').length;\n const emptyCount = rows.filter((r) => r.status === 'empty').length;\n return { version: INTERVIEW_VERSION, rows, filledCount, seededCount, emptyCount, complete: emptyCount === 0 };\n}\n",
@@ -235,15 +236,15 @@
235
236
  "import { findFafFile, readFaf } from '../interop/faf.js';\nimport { SLOTS, isPlaceholder } from '../core/slots.js';\nimport { dim, fafCyan } from '../ui/colors.js';\n\n/** Generate compact context dump for AI prompts */\nexport function contextCommand(): void {\n const fafPath = findFafFile();\n if (!fafPath) {\n console.error(\"Error: project.faf not found\\n\\n Run 'faf init' to create one.\");\n process.exit(2);\n }\n\n const data = readFaf(fafPath);\n const lines: string[] = [];\n\n for (const slot of SLOTS) {\n const [section, field] = slot.path.split('.');\n const sectionData = data[section] as Record<string, unknown> | undefined;\n const value = sectionData?.[field];\n\n if (isPlaceholder(value) || value === 'slotignored') {continue;}\n lines.push(`${slot.path}: ${value}`);\n }\n\n if (lines.length === 0) {\n console.log(dim('no populated slots'));\n return;\n }\n\n console.log(lines.join('\\n'));\n}\n",
236
237
  "/**\n * Context-drift engine — SINGLE SOURCE.\n *\n * A pure, snapshot comparison: given a `project.faf` and its directory, report\n * the mtime relationship between the .faf and each AI-context file it feeds\n * (CLAUDE.md, AGENTS.md, .cursorrules, GEMINI.md). A target NEWER than the .faf\n * has drifted — the human edited the context file and the DNA hasn't caught up.\n *\n * No console, no ANSI, no process.exit. The CLI `faf drift` renders the human\n * table on top of this; `faf drift --json` emits this shape with a metadata\n * header; the VS Code extension imports `computeDrift` directly (faf-cli as a\n * library, never a shell-out). One comparison, every consumer.\n */\n\nimport { existsSync, statSync } from 'fs';\nimport { dirname, join } from 'path';\n\n/** AI-context files the .faf feeds — the drift targets, in report order. */\nexport const CONTEXT_FILES = ['CLAUDE.md', 'AGENTS.md', '.cursorrules', 'GEMINI.md'];\n\n/** mtime window (ms) inside which a target counts as in sync with the .faf. */\nexport const DRIFT_TOLERANCE_MS = 1000;\n\n/** 'newer' = target newer than the .faf → needs sync. */\nexport type DriftStatus = 'newer' | 'older' | 'in-sync' | 'missing';\n\nexport interface DriftTarget {\n /** Context-file name, e.g. 'CLAUDE.md'. */\n file: string;\n /** Whether the file exists alongside the .faf. */\n exists: boolean;\n /** File mtime in epoch ms, or null when missing. */\n mtime_ms: number | null;\n /** 'newer' = target newer than the .faf → needs sync. */\n status: DriftStatus;\n /** mtime_ms - source_mtime_ms, or null when missing. */\n delta_ms: number | null;\n}\n\nexport interface DriftReport {\n /** The `project.faf` path compared against. */\n source: string;\n /** .faf mtime in epoch ms. */\n source_mtime_ms: number;\n targets: DriftTarget[];\n /** Count of targets with status 'newer' or 'older'. */\n drifted: number;\n /** Count of targets with status 'in-sync'. */\n in_sync: number;\n /** Count of targets with status 'missing'. */\n missing: number;\n}\n\n/**\n * Compare a `project.faf` against its AI-context files by mtime.\n *\n * @param fafPath path to `project.faf`\n * @param dir directory holding the context files; defaults to the .faf's\n * own directory. Never `process.cwd()` — the CLI passes it\n * explicitly, and a library caller (the VS Code extension)\n * passes the .faf's directory, which for a monorepo sub-package\n * is the package dir, not the workspace root.\n */\nexport function computeDrift(fafPath: string, dir: string = dirname(fafPath)): DriftReport {\n const sourceMtimeMs = statSync(fafPath).mtimeMs;\n\n const targets: DriftTarget[] = CONTEXT_FILES.map((file) => {\n const path = join(dir, file);\n if (!existsSync(path)) {\n return { file, exists: false, mtime_ms: null, status: 'missing', delta_ms: null };\n }\n\n const mtimeMs = statSync(path).mtimeMs;\n const deltaMs = mtimeMs - sourceMtimeMs;\n let status: DriftStatus;\n if (Math.abs(deltaMs) < DRIFT_TOLERANCE_MS) {\n status = 'in-sync';\n } else if (deltaMs > 0) {\n status = 'newer';\n } else {\n status = 'older';\n }\n\n return { file, exists: true, mtime_ms: mtimeMs, status, delta_ms: deltaMs };\n });\n\n return {\n source: fafPath,\n source_mtime_ms: sourceMtimeMs,\n targets,\n drifted: targets.filter((t) => t.status === 'newer' || t.status === 'older').length,\n in_sync: targets.filter((t) => t.status === 'in-sync').length,\n missing: targets.filter((t) => t.status === 'missing').length,\n };\n}\n",
237
238
  "import { findFafFile, readFaf } from '../interop/faf.js';\nimport { computeDrift, type DriftReport } from '../core/drift.js';\nimport { bold, dim, fafCyan } from '../ui/colors.js';\n\nexport interface DriftOptions {\n json?: boolean;\n}\n\n/** Check context drift between .faf and context files */\nexport function driftCommand(options: DriftOptions = {}): void {\n const fafPath = findFafFile();\n if (!fafPath) {\n // `--json` means JSON on every path — a consumer that asked for it should\n // never have to parse a stderr string. Exit 2 still signals the failure.\n if (options.json) {\n console.log(\n JSON.stringify({ error: 'project.faf not found', hint: \"run 'faf init' to create one\" }, null, 2),\n );\n } else {\n console.error(\"Error: project.faf not found\\n\\n Run 'faf init' to create one.\");\n }\n process.exit(2);\n }\n\n const report = computeDrift(fafPath, process.cwd());\n\n if (options.json) {\n // The drift report plus a self-describing metadata header (project /\n // source / faf_version), the same shape `faf score --json` uses. `report`\n // already carries `source`. Raw *_ms numbers only — the consumer formats\n // its own \"5d ago\" so the payload stays deterministic (no Date.now()).\n const data = readFaf(fafPath);\n const snapshot = {\n faf_version: data.faf_version ?? 'unknown',\n project: data.project?.name ?? 'unknown',\n ...report,\n };\n console.log(JSON.stringify(snapshot, null, 2));\n return;\n }\n\n printDriftTable(report);\n}\n\n/** The human view — the formatted mtime table (unchanged output). */\nfunction printDriftTable(report: DriftReport): void {\n console.log(`${fafCyan('drift')} ${dim('— context file sync status')}\\n`);\n console.log(` ${bold('.faf')} ${dim(formatAge(report.source_mtime_ms))}`);\n\n for (const target of report.targets) {\n if (target.status === 'missing' || target.mtime_ms === null) {\n console.log(` ${dim('○')} ${target.file} ${dim('missing')}`);\n continue;\n }\n\n const age = dim(formatAge(target.mtime_ms));\n if (target.status === 'in-sync') {\n console.log(` ${fafCyan('●')} ${target.file} ${dim('in sync')}`);\n } else if (target.status === 'newer') {\n console.log(` ${bold('!')} ${target.file} ${bold('newer')} ${age}`);\n } else {\n console.log(` ${dim('○')} ${target.file} ${dim('older')} ${age}`);\n }\n }\n\n if (report.drifted > 0) {\n console.log(dim(`\\n run ${bold(\"'faf sync'\")} to resolve drift`));\n }\n}\n\nfunction formatAge(mtimeMs: number): string {\n const ago = Date.now() - mtimeMs;\n const secs = Math.floor(ago / 1000);\n if (secs < 60) {return `${secs}s ago`;}\n const mins = Math.floor(secs / 60);\n if (mins < 60) {return `${mins}m ago`;}\n const hours = Math.floor(mins / 60);\n if (hours < 24) {return `${hours}h ago`;}\n const days = Math.floor(hours / 24);\n return `${days}d ago`;\n}\n",
239
+ "import { dirname } from 'path';\nimport { aliasKeptNote, findFafFile, readFaf, readFafRaw, writeFaf } from '../interop/faf.js';\nimport { enrichScore } from '../core/scorer.js';\nimport * as kernel from '../wasm/kernel.js';\nimport { FafDNAManager } from '../core/faf-dna.js';\nimport { sayWhyDnaIsLeft } from './dna.js';\nimport { blockingStep, blockedMessage, setNestedValue } from '../core/dot-path.js';\nimport { fafCyan, dim } from '../ui/colors.js';\n\n/** Edit a .faf field by dot-path */\nexport function editCommand(path: string, value: string): void {\n if (!path || value === undefined) {\n console.error('Usage: faf edit <path> <value>\\n\\n Example: faf edit project.name \"My Project\"');\n process.exit(1);\n }\n\n const fafPath = findFafFile();\n if (!fafPath) {\n console.error(\"Error: project.faf not found\\n\\n Run 'faf init' to create one.\");\n process.exit(2);\n }\n\n const data = readFaf(fafPath);\n const parts = path.split('.');\n\n if (parts.length !== 2) {\n console.error('Error: path must be section.field (e.g. project.name)');\n process.exit(1);\n }\n\n // A section that holds a scalar or a list is never replaced with {} to make\n // room for the field — refuse and leave project.faf as it is.\n const block = blockingStep(data as Record<string, unknown>, path);\n if (block) {\n console.error(`Error: ${blockedMessage(path, block)}`);\n process.exit(1);\n }\n\n setNestedValue(data as Record<string, unknown>, path, value);\n // faf never replaces an alias (`summary: *g`): that edit is not written.\n const kept: string[] = [];\n writeFaf(fafPath, data, { onAliasKept: k => kept.push(aliasKeptNote(k)) });\n if (kept.length > 0) {\n for (const line of kept) {console.error(`Error: ${line}. Change the value its anchor holds, or replace the alias by hand.`);}\n process.exit(1);\n }\n\n console.log(`${fafCyan('updated')} ${path} ${dim('→')} ${value}`);\n recordEditGrowth(fafPath, path);\n}\n\n/** A slot filled by hand moves the score too: record it on the DNA journey,\n * next to the project.faf. The edit is already written, so a file the kernel\n * cannot score just leaves the DNA as it is. */\nfunction recordEditGrowth(fafPath: string, path: string): void {\n const dna = new FafDNAManager(dirname(fafPath));\n if (!dna.exists()) {return;}\n let score: number;\n try {\n score = enrichScore(kernel.score(readFafRaw(fafPath))).score;\n } catch {\n return;\n }\n dna.recordGrowth(score, [`faf edit ${path}`]);\n sayWhyDnaIsLeft(dna);\n}\n",
238
240
  "import { describeShape, isMapping } from './shape.js';\n\n/** Get a nested value from an object by dot-path (undefined when a step is missing or not a mapping). */\nexport function getNestedValue(obj: Record<string, unknown>, path: string): unknown {\n const parts = path.split('.');\n let current: unknown = obj;\n for (const part of parts) {\n if (current === null || current === undefined || typeof current !== 'object') {return undefined;}\n current = (current as Record<string, unknown>)[part];\n }\n return current;\n}\n\n/**\n * The first intermediate step of `path` that holds something other than a\n * mapping — a scalar or a list — as `{ at, value }`, or null when every step is\n * a mapping or absent. Setting `path` would have to replace that value.\n */\nexport function blockingStep(obj: Record<string, unknown>, path: string): { at: string; value: unknown } | null {\n const parts = path.split('.');\n let current: unknown = obj;\n for (let i = 0; i < parts.length - 1; i++) {\n const step = (current as Record<string, unknown>)[parts[i]];\n if (step === null || step === undefined) {return null;}\n if (!isMapping(step)) {return { at: parts.slice(0, i + 1).join('.'), value: step };}\n current = step;\n }\n return null;\n}\n\n/** The refusal message for a blocked `path` — names the path, the step and what is there. */\nexport function blockedMessage(path: string, block: { at: string; value: unknown }): string {\n return `cannot set ${path}: ${block.at} is ${describeShape(block.value)}, not a mapping. ` +\n `faf will not replace it — make ${block.at} a mapping in project.faf by hand, then run again.`;\n}\n\n/**\n * Set a nested value by dot-path. A missing (or null) intermediate step becomes\n * a new mapping. A step that already holds anything else — a scalar or a list —\n * is refused with an Error naming the path: the existing value is never\n * replaced with `{}`, and `obj` is left unchanged.\n */\nexport function setNestedValue(obj: Record<string, unknown>, path: string, value: unknown): void {\n const block = blockingStep(obj, path);\n if (block) {throw new Error(blockedMessage(path, block));}\n const parts = path.split('.');\n let current: Record<string, unknown> = obj;\n for (let i = 0; i < parts.length - 1; i++) {\n if (current[parts[i]] === null || current[parts[i]] === undefined) {\n current[parts[i]] = {};\n }\n current = current[parts[i]] as Record<string, unknown>;\n }\n current[parts[parts.length - 1]] = value;\n}\n",
239
- "import { aliasKeptNote, findFafFile, readFaf, writeFaf } from '../interop/faf.js';\nimport { blockingStep, blockedMessage, setNestedValue } from '../core/dot-path.js';\nimport { fafCyan, dim } from '../ui/colors.js';\n\n/** Edit a .faf field by dot-path */\nexport function editCommand(path: string, value: string): void {\n if (!path || value === undefined) {\n console.error('Usage: faf edit <path> <value>\\n\\n Example: faf edit project.name \"My Project\"');\n process.exit(1);\n }\n\n const fafPath = findFafFile();\n if (!fafPath) {\n console.error(\"Error: project.faf not found\\n\\n Run 'faf init' to create one.\");\n process.exit(2);\n }\n\n const data = readFaf(fafPath);\n const parts = path.split('.');\n\n if (parts.length !== 2) {\n console.error('Error: path must be section.field (e.g. project.name)');\n process.exit(1);\n }\n\n // A section that holds a scalar or a list is never replaced with {} to make\n // room for the field — refuse and leave project.faf as it is.\n const block = blockingStep(data as Record<string, unknown>, path);\n if (block) {\n console.error(`Error: ${blockedMessage(path, block)}`);\n process.exit(1);\n }\n\n setNestedValue(data as Record<string, unknown>, path, value);\n // faf never replaces an alias (`summary: *g`): that edit is not written.\n const kept: string[] = [];\n writeFaf(fafPath, data, { onAliasKept: k => kept.push(aliasKeptNote(k)) });\n if (kept.length > 0) {\n for (const line of kept) {console.error(`Error: ${line}. Change the value its anchor holds, or replace the alias by hand.`);}\n process.exit(1);\n }\n\n console.log(`${fafCyan('updated')} ${path} ${dim('→')} ${value}`);\n}\n",
240
241
  "import { aliasKeptNote, findFafFile, readFaf, writeFaf } from '../interop/faf.js';\nimport { SLOTS } from '../core/slots.js';\nimport { fafCyan, dim, bold } from '../ui/colors.js';\nimport { FAF_VERSION } from '../core/version.js';\n\nconst CURRENT_VERSION = FAF_VERSION;\n\nexport interface MigrateOptions {\n dryRun?: boolean;\n}\n\n/** Migrate .faf to latest version */\nexport function migrateCommand(options: MigrateOptions = {}): void {\n const fafPath = findFafFile();\n if (!fafPath) {\n console.error(\"Error: project.faf not found\\n\\n Run 'faf init' to create one.\");\n process.exit(2);\n }\n\n const data = readFaf(fafPath);\n const oldVersion = data.faf_version ?? 'unknown';\n\n if (oldVersion === CURRENT_VERSION) {\n console.log(`${fafCyan('◆')} migrate already at v${CURRENT_VERSION}`);\n return;\n }\n\n // Update version\n data.faf_version = CURRENT_VERSION;\n\n // Ensure all section roots exist\n if (!data.project) {data.project = {};}\n if (!data.stack) {data.stack = {};}\n if (!data.human_context) {data.human_context = {};}\n if (!data.monorepo) {data.monorepo = {};}\n\n if (options.dryRun) {\n console.log(`${fafCyan('◆')} migrate ${dim('(dry run)')} v${oldVersion} → v${CURRENT_VERSION}`);\n console.log(dim(` would update ${fafPath}`));\n return;\n }\n\n writeFaf(fafPath, data, { onAliasKept: k => console.log(dim(` ${aliasKeptNote(k)}`)) });\n console.log(`${fafCyan('◆')} migrate v${oldVersion} → v${CURRENT_VERSION}`);\n console.log(dim(` updated ${fafPath}`));\n}\n",
241
242
  "import { isPro } from '../core/pro.js';\nimport { bold, dim, fafCyan, orange } from '../ui/colors.js';\n\n/** Pro features & licensing */\nexport function proCommand(subcommand?: string): void {\n if (subcommand === 'features') {\n showFeatures();\n } else if (subcommand === 'activate') {\n activatePro();\n } else {\n showStatus();\n }\n}\n\nfunction showStatus(): void {\n const status = isPro();\n console.log(`${fafCyan('pro')} ${dim('— FAF Pro status')}\\n`);\n console.log(` Status: ${status ? orange(bold('PRO')) : bold('Free')}`);\n console.log('');\n if (!status) {\n console.log(dim(' Upgrade: faf pro activate'));\n }\n}\n\nfunction showFeatures(): void {\n console.log(`${fafCyan('pro')} ${dim('— Pro features')}\\n`);\n const features = [\n ['tri-sync', \".faf → CLAUDE.md + Claude Code's MEMORY.md (faf's block only)\"],\n ['enterprise slots', '33-slot scoring (slots 22-33)'],\n ['advanced analytics', 'Drift tracking & team metrics'],\n ];\n for (const [name, desc] of features) {\n console.log(` ${fafCyan('◆')} ${bold(name)} ${dim('—')} ${desc}`);\n }\n console.log('');\n}\n\nfunction activatePro(): void {\n console.log(`${fafCyan('pro')} ${dim('— activate')}\\n`);\n console.log(' Set FAF_PRO=1 in your environment to enable Pro features.');\n console.log('');\n console.log(dim(' export FAF_PRO=1'));\n console.log('');\n console.log(dim(' Visit: https://faf.one/pro'));\n\n // Try to also open the upgrade URL in the browser. Fire-and-forget;\n // the printed link above is the always-on fallback.\n // `open` v9+ is ESM-only, so we use dynamic import.\n import('open')\n .then(({ default: open }) => open('https://faf.one/pro'))\n .catch(() => {});\n}\n",
242
243
  "import { gzipSync } from 'zlib';\nimport { findFafFile, readFafRaw } from '../interop/faf.js';\nimport { fafCyan, dim } from '../ui/colors.js';\n\nexport interface ShareOptions {\n copy?: boolean;\n raw?: boolean;\n}\n\n/** Share .faf via URL */\nexport function shareCommand(options: ShareOptions = {}): void {\n const fafPath = findFafFile();\n if (!fafPath) {\n console.error(\"Error: project.faf not found\\n\\n Run 'faf init' to create one.\");\n process.exit(2);\n }\n\n const yaml = readFafRaw(fafPath);\n const compressed = gzipSync(Buffer.from(yaml));\n const encoded = compressed.toString('base64url');\n\n if (options.raw) {\n console.log(encoded);\n return;\n }\n\n const url = `https://faf.one/share?d=${encoded}`;\n console.log(`${fafCyan('◆')} share ${dim(fafPath)}\\n`);\n console.log(` ${url}`);\n\n if (options.copy) {\n try {\n const { execSync } = require('child_process');\n const platform = process.platform;\n if (platform === 'darwin') {\n execSync('pbcopy', { input: url });\n } else if (platform === 'linux') {\n execSync('xclip -selection clipboard', { input: url });\n }\n console.log(dim('\\n copied to clipboard'));\n } catch {\n console.log(dim('\\n copy failed — install xclip or pbcopy'));\n }\n }\n}\n",
243
244
  "import { join } from 'path';\nimport { readFafRaw, withKernel } from '../interop/faf.js';\nimport * as kernel from '../wasm/kernel.js';\nimport { enrichScore } from '../core/scorer.js';\nimport { displayScore } from '../ui/display.js';\nimport { fafCyan, dim, bold } from '../ui/colors.js';\nimport { makeTempDir, removeTempDir, safeWriteFile } from '../core/safe-write.js';\n\n/** Demo walkthrough — show what faf does without modifying user's project */\nexport function demoCommand(): void {\n // A fresh temp folder of faf's own (mkdtemp: no one else can have made it),\n // removed at the end — the user's project is never touched.\n const demoDir = makeTempDir('faf-demo-');\n\n console.log(`${fafCyan('demo')} ${dim('— FAF in action')}\\n`);\n\n // Step 1: Create a sample .faf\n const sampleYaml = `faf_version: 2.5.0\nproject:\n name: acme-app\n goal: Full-stack web application for team collaboration\n main_language: TypeScript\nstack:\n frontend: React\n css_framework: Tailwind CSS\n ui_library: shadcn/ui\n state_management: Zustand\n backend: Express\n api_type: REST\n runtime: Node.js\n database: PostgreSQL\n connection: Prisma\n hosting: Vercel\n build: Vite\n cicd: GitHub Actions\n monorepo_tool: slotignored\n package_manager: slotignored\n workspaces: slotignored\n admin: slotignored\n cache: slotignored\n search: slotignored\n storage: slotignored\nmonorepo:\n packages_count: slotignored\n build_orchestrator: slotignored\n versioning_strategy: slotignored\n shared_configs: slotignored\n remote_cache: slotignored\nhuman_context:\n who: Startup engineering team\n what: Real-time collaboration platform\n why: Replace fragmented team tools\n where: Cloud (Vercel + AWS)\n when: \"2026\"\n how: Agile sprints with CI/CD\n`;\n\n const fafPath = join(demoDir, 'project.faf');\n safeWriteFile(fafPath, sampleYaml, { root: demoDir, expect: null });\n\n console.log(` ${bold('1.')} Created sample project.faf`);\n console.log(dim(` ${fafPath}\\n`));\n\n // Step 2: Score it\n console.log(` ${bold('2.')} Scoring...`);\n const result = withKernel(fafPath, () => enrichScore(kernel.score(readFafRaw(fafPath))));\n console.log('');\n displayScore(result, 'project.faf', true);\n\n // Cleanup\n removeTempDir(demoDir);\n\n console.log(`\\n${dim(' Demo complete. Run \"faf init\" in your project to get started.')}`);\n}\n",
244
245
  "import { SLOTS } from '../core/slots.js';\nimport { FORMATS } from '../detect/formats.js';\nimport { bold, dim, fafCyan } from '../ui/colors.js';\n\nexport interface SearchOptions {\n slots?: boolean;\n formats?: boolean;\n}\n\n/** Search slots and formats by keyword */\nexport function searchCommand(query: string, options: SearchOptions = {}): void {\n if (!query) {\n console.error('Usage: faf search <keyword>');\n process.exit(2);\n }\n\n const q = query.toLowerCase();\n const searchAll = !options.slots && !options.formats;\n\n let found = 0;\n\n // Search slots\n if (searchAll || options.slots) {\n const matches = SLOTS.filter(s =>\n s.path.toLowerCase().includes(q) ||\n s.description.toLowerCase().includes(q) ||\n s.category.toLowerCase().includes(q)\n );\n if (matches.length > 0) {\n console.log(`${fafCyan('slots')} ${dim(`— ${matches.length} match${matches.length === 1 ? '' : 'es'}`)}\\n`);\n for (const s of matches) {\n console.log(` ${bold(`#${s.index}`)} ${s.path} ${dim('—')} ${s.description} ${dim(`[${s.category}]`)}`);\n }\n console.log('');\n found += matches.length;\n }\n }\n\n // Search formats\n if (searchAll || options.formats) {\n const matches = FORMATS.filter(f =>\n f.name.toLowerCase().includes(q) ||\n f.extensions.some(e => e.toLowerCase().includes(q)) ||\n f.category.toLowerCase().includes(q)\n );\n if (matches.length > 0) {\n console.log(`${fafCyan('formats')} ${dim(`— ${matches.length} match${matches.length === 1 ? '' : 'es'}`)}\\n`);\n for (const f of matches) {\n console.log(` ${bold(f.name)} ${dim(f.extensions.join(', '))} ${dim(`[${f.category}]`)}`);\n }\n console.log('');\n found += matches.length;\n }\n }\n\n if (found === 0) {\n console.log(dim(` No results for \"${query}\"`));\n }\n}\n",
245
246
  "import { existsSync } from 'fs';\nimport { dirname, join, resolve } from 'path';\nimport { findFafFile, readFaf, readFafRaw, withKernel } from '../interop/faf.js';\nimport { scoreFafYaml } from '../core/scorer.js';\nimport { makeDirInside, repoExists, safeWriteFile } from '../core/safe-write.js';\nimport { writeRendered } from '../core/render-hash.js';\nimport { refuseMissingOutputFolder } from '../core/refusal.js';\nimport { fafCyan, dim, bold } from '../ui/colors.js';\n\nexport interface TafOptions {\n output?: string;\n write?: boolean;\n /** With --output: replace a file faf cannot prove it wrote (edited since, or not a TAF snapshot). */\n force?: boolean;\n}\n\n/** True when `bytes` are a TAF snapshot faf wrote: a JSON object with a\n * `taf_version`. faf replaces an --output file only when it is one. */\nexport function isTafSnapshot(bytes: Uint8Array): boolean {\n try {\n const j = JSON.parse(new TextDecoder().decode(bytes)) as unknown;\n return typeof j === 'object' && j !== null && !Array.isArray(j) && typeof (j as { taf_version?: unknown }).taf_version === 'string';\n } catch {\n return false;\n }\n}\n\nconst FAF_TAF_GIT = 'Wolfe-Jam/faf-taf-git@v2.3.1';\n\n/**\n * `faf taf [subcommand]`\n * (none) — score snapshot — DEPRECATED, folded into `faf score --json` (alias kept one release)\n * setup — write/print the CI step that activates the TAF Receipt Printer\n */\nexport function tafCommand(subcommand?: string | TafOptions, options: TafOptions = {}): void {\n // Back-compat: legacy/direct callers pass options as the first arg\n // (e.g. `tafCommand({ output })`), pre-dating the subcommand dispatch.\n if (subcommand && typeof subcommand === 'object') {\n options = subcommand;\n subcommand = undefined;\n }\n if (subcommand === 'setup') {\n tafSetup(options);\n return;\n }\n tafSnapshot(options);\n}\n\n// ── faf taf setup — the activation bridge ──────────────────────────────────\n// Removes the \"hand-edit YAML\" friction: detects the runner, generates a CI\n// workflow wired to faf-taf-git, prints it (safe default) or writes it\n// (`--write`, non-destructive — never clobbers an existing taf.yml). Needs no\n// .faf — TAF runs on any git repo.\n\ntype Runner = 'bun' | 'pnpm' | 'yarn' | 'npm';\n\nfunction detectRunner(dir: string): Runner {\n if (repoExists(dir, 'bun.lockb') || repoExists(dir, 'bun.lock')) {return 'bun';}\n if (repoExists(dir, 'pnpm-lock.yaml')) {return 'pnpm';}\n if (repoExists(dir, 'yarn.lock')) {return 'yarn';}\n return 'npm';\n}\n\nconst RUNTIME: Record<Runner, { setup: string; install: string; test: string }> = {\n bun: {\n setup: ' - uses: oven-sh/setup-bun@v2',\n install: 'bun install --frozen-lockfile',\n test: 'bun run test',\n },\n pnpm: {\n setup: ' - uses: pnpm/action-setup@v4\\n - uses: actions/setup-node@v4\\n with:\\n node-version: 20',\n install: 'pnpm install --frozen-lockfile',\n test: 'pnpm test',\n },\n yarn: {\n setup: ' - uses: actions/setup-node@v4\\n with:\\n node-version: 20',\n install: 'yarn install --frozen-lockfile',\n test: 'yarn test',\n },\n npm: {\n setup: ' - uses: actions/setup-node@v4\\n with:\\n node-version: 20',\n install: 'npm ci',\n test: 'npm test',\n },\n};\n\nfunction buildTafWorkflow(dir: string): string {\n const head =\n 'name: TAF Receipts\\n' +\n '# Prints a Test Receipt (.taf) on every push — proof over time, cannot be gamed.\\n' +\n '# Written by `faf taf setup`. Docs: https://github.com/Wolfe-Jam/faf-taf-git\\n' +\n 'on:\\n push:\\n pull_request:\\n\\n' +\n 'jobs:\\n taf:\\n runs-on: ubuntu-latest\\n steps:\\n' +\n ' - uses: actions/checkout@v4\\n';\n\n let body: string;\n if (repoExists(dir, 'package.json')) {\n const r = RUNTIME[detectRunner(dir)];\n body =\n `${r.setup}\\n` +\n ` - run: ${r.install}\\n` +\n ' - name: Run tests\\n' +\n ` run: ${r.test} 2>&1 | tee test-output.txt\\n`;\n } else {\n // Non-JS repo — TAF is language-agnostic; leave a clear, honest placeholder.\n body =\n ' # TODO: set up your toolchain, then run your tests writing output to test-output.txt\\n' +\n ' - name: Run tests\\n' +\n ' run: |\\n' +\n ' # e.g. pytest -q 2>&1 | tee test-output.txt (or your test command)\\n' +\n ' echo \"TODO: your test command\" 2>&1 | tee test-output.txt\\n';\n }\n\n const receipt =\n ' - name: Print TAF receipt\\n' +\n ' if: github.event_name == \\'push\\'\\n' +\n ` uses: ${FAF_TAF_GIT}\\n` +\n ' with:\\n' +\n ' test-output-file: test-output.txt\\n' +\n \" auto-commit: 'true'\\n\" +\n \" commit-message: 'chore(taf): update .taf receipt [skip ci]'\\n\" +\n ' target-branch: taf-receipts\\n';\n\n return head + body + receipt;\n}\n\nfunction tafSetup(options: TafOptions): void {\n const dir = process.cwd();\n const workflow = buildTafWorkflow(dir);\n const wfPath = join(dir, '.github', 'workflows', 'taf.yml');\n\n if (options.write) {\n if (existsSync(wfPath)) {\n console.error(`${bold('×')} .github/workflows/taf.yml already exists — not overwriting.`);\n console.error(dim(` Add the faf-taf-git step to your existing workflow, or remove taf.yml and re-run.`));\n return; // non-destructive: refuse, never clobber\n }\n // Never through a linked .github or a taf.yml link (dangling included), and\n // never over a taf.yml that appeared meanwhile.\n makeDirInside(dir, join('.github', 'workflows'));\n safeWriteFile(wfPath, workflow, { root: dir, expect: null });\n console.log(`${fafCyan('◆')} taf wrote .github/workflows/taf.yml`);\n console.log(dim(' commit + push → your first Test Receipt prints to the taf-receipts branch.'));\n return;\n }\n\n console.log(`${fafCyan('TAF setup')} ${dim('— Test Receipt Printer: proof over time, cannot be gamed')}\\n`);\n console.log(dim('Run `faf taf setup --write` to create this, or paste it into a workflow:\\n'));\n console.log(workflow);\n console.log(dim('Then commit + push. One receipt appends to .taf (taf-receipts branch) per CI run.'));\n}\n\n// ── faf taf (default) — score snapshot ──────────────────────────────────────\n/** Generate a TAF score snapshot of the current .faf — DEPRECATED, use `faf score --json`. */\nfunction tafSnapshot(options: TafOptions): void {\n console.error(dim('note: `faf taf` (score snapshot) is deprecated — use `faf score --json`. (`faf taf setup` wires the Receipt Printer.)'));\n const fafPath = findFafFile();\n if (!fafPath) {\n console.error(\"Error: project.faf not found\\n\\n Run 'faf init' to create one.\");\n process.exit(2);\n }\n\n const data = readFaf(fafPath);\n const yaml = readFafRaw(fafPath);\n const result = withKernel(fafPath, () => scoreFafYaml(yaml));\n\n const receipt = {\n taf_version: '1.0.0',\n generated: new Date().toISOString(),\n source: fafPath,\n project: data.project?.name ?? 'unknown',\n faf_version: data.faf_version ?? 'unknown',\n score: result.score,\n tier: result.tier.name,\n populated: result.populated,\n active: result.active,\n total: result.total,\n slots: result.slots,\n };\n\n const json = JSON.stringify(receipt, null, 2);\n\n if (options.output) {\n // An --output folder that is not there is one line: faf does not create it.\n refuseMissingOutputFolder(options.output);\n // Its own folder is the boundary. The snapshot carries faf's render hash\n // (`_meta[\"one.faf/render\"]`); a file there is replaced only while it is\n // byte for byte what faf last wrote, and anything else is left as it is\n // unless --force.\n writeRendered(options.output, json, {\n root: dirname(resolve(options.output)),\n format: 'json',\n hasMark: isTafSnapshot,\n mark: 'TAF snapshot (`taf_version`)',\n force: options.force,\n });\n console.log(`${fafCyan('◆')} taf receipt written to ${options.output}`);\n } else {\n console.log(json);\n }\n}\n",
246
- "import { createInterface } from 'readline';\nimport { join } from 'path';\nimport { aliasKeptNote, findFafFile, readFaf, readFafRaw, withKernel, writeFaf } from '../interop/faf.js';\nimport { SLOTS, SLOTIGNORED, isPlaceholder, isTypedWords } from '../core/slots.js';\nimport type { SlotDef } from '../core/types.js';\nimport { questionForSlot } from '../core/interview.js';\nimport { getNestedValue, setNestedValue, blockingStep, blockedMessage } from '../core/dot-path.js';\nimport * as kernel from '../wasm/kernel.js';\nimport { enrichScore } from '../core/scorer.js';\nimport { displayScore } from '../ui/display.js';\nimport { bold, dim, fafCyan } from '../ui/colors.js';\nimport { assertProjectCwd } from '../core/cwd-guard.js';\nimport { readBytesIfPresent, resolveInside, SafePathError, safeReplaceOwned, safeUnlink } from '../core/safe-write.js';\n\nexport interface GoOptions {\n resume?: boolean;\n}\n\nconst SESSION_FILE = '.faf-session.json';\n\ninterface GoSession {\n slotIndex: number;\n fafPath: string;\n}\n\n/** The session faf wrote in `bytes` (exactly `JSON.stringify({ slotIndex,\n * fafPath })`), or null when they are anything else. */\nexport function goSessionOf(bytes: Uint8Array | null): GoSession | null {\n if (bytes === null) {return null;}\n const text = new TextDecoder().decode(bytes);\n try {\n const j = JSON.parse(text) as Record<string, unknown>;\n const keys = typeof j === 'object' && j !== null && !Array.isArray(j) ? Object.keys(j).sort().join(',') : '';\n if (keys !== 'fafPath,slotIndex' || typeof j.slotIndex !== 'number' || typeof j.fafPath !== 'string') {return null;}\n return JSON.stringify({ slotIndex: j.slotIndex, fafPath: j.fafPath }) === text ? { slotIndex: j.slotIndex, fafPath: j.fafPath } : null;\n } catch {\n return null;\n }\n}\n\n/** The bytes at the session path — through the project's link rules — or\n * null when there is none, or it is refused (said in one line). */\nfunction readSessionBytes(dir: string): Buffer | null {\n try {\n return readBytesIfPresent(resolveInside(dir, SESSION_FILE));\n } catch (e) {\n if (!(e instanceof SafePathError)) {throw e;}\n console.error(dim(` ${SESSION_FILE}: ${e.message}`));\n return null;\n }\n}\n\n/** Save the session for `faf go --resume` — over nothing, or over a session\n * faf wrote; any other file is left as it is. Never throws: the answers\n * are written whatever happens to the session. */\nfunction saveSession(dir: string, session: GoSession): boolean {\n try {\n safeReplaceOwned(join(dir, SESSION_FILE), JSON.stringify(session), {\n root: dir,\n owns: b => goSessionOf(b) !== null,\n mark: 'faf go session',\n });\n return true;\n } catch (e) {\n console.error(dim(` session not saved: ${e instanceof Error ? e.message : String(e)}`));\n return false;\n }\n}\n\n/** Remove the session once the interview is done — only a session faf wrote. */\nfunction clearSession(dir: string): void {\n const bytes = readSessionBytes(dir);\n if (goSessionOf(bytes) === null || bytes === null) {return;}\n try {\n safeUnlink(join(dir, SESSION_FILE), { root: dir, expect: bytes });\n } catch (e) {\n if (!(e instanceof SafePathError)) {throw e;}\n }\n}\n\n/**\n * An answer can only land under a mapping. If a slot's section holds a scalar\n * or a list (older writers stored `project: <name>`), refuse BEFORE asking\n * anything: faf never replaces that value with {}, and no typed answer is lost.\n */\nfunction refuseBlockedSections(data: Record<string, unknown>, paths: string[]): void {\n const blocked = new Map<string, string>(); // step → message, one per section\n for (const path of paths) {\n const block = blockingStep(data, path);\n if (block && !blocked.has(block.at)) {blocked.set(block.at, blockedMessage(path, block));}\n }\n if (blocked.size === 0) {return;}\n console.error(`${bold('×')} go project.faf has a section faf cannot write under — nothing was changed:`);\n for (const msg of blocked.values()) {console.error(` ${msg}`);}\n const project = data.project;\n if (project !== null && project !== undefined && typeof project !== 'object') {\n console.error(dim(\" 'faf auto' moves a bare `project: <name>` to `project.name` for you.\"));\n }\n process.exit(1);\n}\n\n/** The question for `slot`, in the interview voice of the single-source\n * registry (core/interview.ts) — the same question CFM's faf_go and every\n * other consumer asks. Typed words (None, N/A, unknown) are shown as they\n * are, so the person can keep them (Enter) or answer. */\nfunction questionLine(slot: SlotDef, current: unknown): string {\n const keep = isTypedWords(current) ? ` ${dim(`now '${String(current).trim()}' — Enter keeps it`)}` : '';\n return ` ${bold(`#${slot.index}`)} ${questionForSlot(slot.path)} ${dim(`(${slot.path})`)}${keep}: `;\n}\n\n/** Guided interview to gold code */\nexport async function goCommand(options: GoOptions = {}): Promise<void> {\n assertProjectCwd(process.cwd(), 'faf go');\n const fafPath = findFafFile();\n if (!fafPath) {\n console.error(\"Error: project.faf not found\\n\\n Run 'faf init' to create one.\");\n process.exit(2);\n }\n\n const dir = process.cwd();\n\n // Resume session if requested\n let startIndex = 0;\n if (options.resume) {\n const session = goSessionOf(readSessionBytes(dir));\n if (session) {\n startIndex = session.slotIndex;\n console.log(dim(` resuming from slot #${startIndex + 1}`));\n }\n }\n\n const data = readFaf(fafPath);\n // A project.faf the scoring kernel cannot read is refused in one line now,\n // before the interview and before anything is written.\n const current = withKernel(fafPath, () => enrichScore(kernel.score(readFafRaw(fafPath))));\n\n // Find empty slots. Typed words — None / N/A / not applicable, unknown —\n // are an empty slot, so they are asked about like any other; the question\n // shows the words, and Enter keeps them. `slotignored` (the app-type leaves the slot out) is never asked.\n const emptySlots = SLOTS.filter(s => {\n const val = getNestedValue(data as Record<string, unknown>, s.path);\n return isPlaceholder(val) && val !== SLOTIGNORED;\n });\n\n refuseBlockedSections(data as Record<string, unknown>, emptySlots.map(s => s.path));\n\n if (emptySlots.length === 0) {\n console.log(`${fafCyan('◆')} go all slots populated — ✪ Trophy`);\n displayScore(current, fafPath);\n return;\n }\n\n console.log(`${fafCyan('go')} ${dim('— guided interview to ✪ Trophy')}`);\n const noun = emptySlots.length === 1 ? 'slot' : 'slots';\n console.log(dim(` ${emptySlots.length} ${noun} from Trophy. Enter a value, \"skip\" to skip, or \"quit\" to stop.\\n`));\n\n const rl = createInterface({ input: process.stdin, output: process.stdout });\n\n const ask = (prompt: string): Promise<string> =>\n new Promise(resolve => rl.question(prompt, resolve));\n\n let filled = 0;\n let quit = false;\n const slotsToProcess = emptySlots.slice(startIndex);\n\n for (let i = 0; i < slotsToProcess.length; i++) {\n const slot = slotsToProcess[i];\n const answer = await ask(questionLine(slot, getNestedValue(data as Record<string, unknown>, slot.path)));\n\n if (answer.toLowerCase() === 'quit') {\n // Save session for resume\n quit = true;\n if (saveSession(dir, { slotIndex: startIndex + i, fafPath })) {\n console.log(dim(`\\n session saved. Resume with: faf go --resume`));\n }\n break;\n }\n\n if (answer.toLowerCase() === 'skip' || answer.trim() === '') {\n continue;\n }\n\n setNestedValue(data as Record<string, unknown>, slot.path, answer.trim());\n filled++;\n }\n\n rl.close();\n\n if (filled > 0) {\n writeFaf(fafPath, data, { onAliasKept: k => console.log(dim(` ${aliasKeptNote(k)}`)) });\n console.log(`\\n${fafCyan('◆')} go filled ${filled} slot${filled === 1 ? '' : 's'}`);\n }\n\n // Show updated score\n const result = withKernel(fafPath, () => enrichScore(kernel.score(readFafRaw(fafPath))));\n displayScore(result, fafPath);\n\n // Clean up the session file if we finished all slots (a quit keeps it for\n // --resume); only a session faf wrote is removed.\n if (!quit) {clearSession(dir);}\n}\n",
247
+ "import { createInterface } from 'readline';\nimport { dirname, join } from 'path';\nimport { aliasKeptNote, findFafFile, readFaf, readFafRaw, withKernel, writeFaf } from '../interop/faf.js';\nimport { SLOTS, SLOTIGNORED, isPlaceholder, isTypedWords } from '../core/slots.js';\nimport type { SlotDef } from '../core/types.js';\nimport { questionForSlot } from '../core/interview.js';\nimport { getNestedValue, setNestedValue, blockingStep, blockedMessage } from '../core/dot-path.js';\nimport * as kernel from '../wasm/kernel.js';\nimport { enrichScore } from '../core/scorer.js';\nimport { displayScore } from '../ui/display.js';\nimport { FafDNAManager } from '../core/faf-dna.js';\nimport { sayWhyDnaIsLeft } from './dna.js';\nimport { bold, dim, fafCyan } from '../ui/colors.js';\nimport { assertProjectCwd } from '../core/cwd-guard.js';\nimport { readBytesIfPresent, resolveInside, SafePathError, safeReplaceOwned, safeUnlink } from '../core/safe-write.js';\n\nexport interface GoOptions {\n resume?: boolean;\n}\n\nconst SESSION_FILE = '.faf-session.json';\n\ninterface GoSession {\n slotIndex: number;\n fafPath: string;\n}\n\n/** The session faf wrote in `bytes` (exactly `JSON.stringify({ slotIndex,\n * fafPath })`), or null when they are anything else. */\nexport function goSessionOf(bytes: Uint8Array | null): GoSession | null {\n if (bytes === null) {return null;}\n const text = new TextDecoder().decode(bytes);\n try {\n const j = JSON.parse(text) as Record<string, unknown>;\n const keys = typeof j === 'object' && j !== null && !Array.isArray(j) ? Object.keys(j).sort().join(',') : '';\n if (keys !== 'fafPath,slotIndex' || typeof j.slotIndex !== 'number' || typeof j.fafPath !== 'string') {return null;}\n return JSON.stringify({ slotIndex: j.slotIndex, fafPath: j.fafPath }) === text ? { slotIndex: j.slotIndex, fafPath: j.fafPath } : null;\n } catch {\n return null;\n }\n}\n\n/** The bytes at the session path — through the project's link rules — or\n * null when there is none, or it is refused (said in one line). */\nfunction readSessionBytes(dir: string): Buffer | null {\n try {\n return readBytesIfPresent(resolveInside(dir, SESSION_FILE));\n } catch (e) {\n if (!(e instanceof SafePathError)) {throw e;}\n console.error(dim(` ${SESSION_FILE}: ${e.message}`));\n return null;\n }\n}\n\n/** Save the session for `faf go --resume` — over nothing, or over a session\n * faf wrote; any other file is left as it is. Never throws: the answers\n * are written whatever happens to the session. */\nfunction saveSession(dir: string, session: GoSession): boolean {\n try {\n safeReplaceOwned(join(dir, SESSION_FILE), JSON.stringify(session), {\n root: dir,\n owns: b => goSessionOf(b) !== null,\n mark: 'faf go session',\n });\n return true;\n } catch (e) {\n console.error(dim(` session not saved: ${e instanceof Error ? e.message : String(e)}`));\n return false;\n }\n}\n\n/** Remove the session once the interview is done — only a session faf wrote. */\nfunction clearSession(dir: string): void {\n const bytes = readSessionBytes(dir);\n if (goSessionOf(bytes) === null || bytes === null) {return;}\n try {\n safeUnlink(join(dir, SESSION_FILE), { root: dir, expect: bytes });\n } catch (e) {\n if (!(e instanceof SafePathError)) {throw e;}\n }\n}\n\n/**\n * An answer can only land under a mapping. If a slot's section holds a scalar\n * or a list (older writers stored `project: <name>`), refuse BEFORE asking\n * anything: faf never replaces that value with {}, and no typed answer is lost.\n */\nfunction refuseBlockedSections(data: Record<string, unknown>, paths: string[]): void {\n const blocked = new Map<string, string>(); // step → message, one per section\n for (const path of paths) {\n const block = blockingStep(data, path);\n if (block && !blocked.has(block.at)) {blocked.set(block.at, blockedMessage(path, block));}\n }\n if (blocked.size === 0) {return;}\n console.error(`${bold('×')} go project.faf has a section faf cannot write under — nothing was changed:`);\n for (const msg of blocked.values()) {console.error(` ${msg}`);}\n const project = data.project;\n if (project !== null && project !== undefined && typeof project !== 'object') {\n console.error(dim(\" 'faf auto' moves a bare `project: <name>` to `project.name` for you.\"));\n }\n process.exit(1);\n}\n\n/** The question for `slot`, in the interview voice of the single-source\n * registry (core/interview.ts) — the same question CFM's faf_go and every\n * other consumer asks. Typed words (None, N/A, unknown) are shown as they\n * are, so the person can keep them (Enter) or answer. */\nfunction questionLine(slot: SlotDef, current: unknown): string {\n const keep = isTypedWords(current) ? ` ${dim(`now '${String(current).trim()}' — Enter keeps it`)}` : '';\n return ` ${bold(`#${slot.index}`)} ${questionForSlot(slot.path)} ${dim(`(${slot.path})`)}${keep}: `;\n}\n\n/** Guided interview to gold code */\nexport async function goCommand(options: GoOptions = {}): Promise<void> {\n assertProjectCwd(process.cwd(), 'faf go');\n const fafPath = findFafFile();\n if (!fafPath) {\n console.error(\"Error: project.faf not found\\n\\n Run 'faf init' to create one.\");\n process.exit(2);\n }\n\n const dir = process.cwd();\n\n // Resume session if requested\n let startIndex = 0;\n if (options.resume) {\n const session = goSessionOf(readSessionBytes(dir));\n if (session) {\n startIndex = session.slotIndex;\n console.log(dim(` resuming from slot #${startIndex + 1}`));\n }\n }\n\n const data = readFaf(fafPath);\n // A project.faf the scoring kernel cannot read is refused in one line now,\n // before the interview and before anything is written.\n const current = withKernel(fafPath, () => enrichScore(kernel.score(readFafRaw(fafPath))));\n\n // Find empty slots. Typed words — None / N/A / not applicable, unknown —\n // are an empty slot, so they are asked about like any other; the question\n // shows the words, and Enter keeps them. `slotignored` (the app-type leaves the slot out) is never asked.\n const emptySlots = SLOTS.filter(s => {\n const val = getNestedValue(data as Record<string, unknown>, s.path);\n return isPlaceholder(val) && val !== SLOTIGNORED;\n });\n\n refuseBlockedSections(data as Record<string, unknown>, emptySlots.map(s => s.path));\n\n if (emptySlots.length === 0) {\n console.log(`${fafCyan('◆')} go all slots populated — ✪ Trophy`);\n displayScore(current, fafPath);\n return;\n }\n\n console.log(`${fafCyan('go')} ${dim('— guided interview to ✪ Trophy')}`);\n const noun = emptySlots.length === 1 ? 'slot' : 'slots';\n console.log(dim(` ${emptySlots.length} ${noun} from Trophy. Enter a value, \"skip\" to skip, or \"quit\" to stop.\\n`));\n\n const rl = createInterface({ input: process.stdin, output: process.stdout });\n\n const ask = (prompt: string): Promise<string> =>\n new Promise(resolve => rl.question(prompt, resolve));\n\n let filled = 0;\n let quit = false;\n const slotsToProcess = emptySlots.slice(startIndex);\n\n for (let i = 0; i < slotsToProcess.length; i++) {\n const slot = slotsToProcess[i];\n const answer = await ask(questionLine(slot, getNestedValue(data as Record<string, unknown>, slot.path)));\n\n if (answer.toLowerCase() === 'quit') {\n // Save session for resume\n quit = true;\n if (saveSession(dir, { slotIndex: startIndex + i, fafPath })) {\n console.log(dim(`\\n session saved. Resume with: faf go --resume`));\n }\n break;\n }\n\n if (answer.toLowerCase() === 'skip' || answer.trim() === '') {\n continue;\n }\n\n setNestedValue(data as Record<string, unknown>, slot.path, answer.trim());\n filled++;\n }\n\n rl.close();\n\n if (filled > 0) {\n writeFaf(fafPath, data, { onAliasKept: k => console.log(dim(` ${aliasKeptNote(k)}`)) });\n console.log(`\\n${fafCyan('◆')} go filled ${filled} slot${filled === 1 ? '' : 's'}`);\n }\n\n // Show updated score\n const result = withKernel(fafPath, () => enrichScore(kernel.score(readFafRaw(fafPath))));\n displayScore(result, fafPath);\n\n if (filled > 0) {recordGoGrowth(fafPath, result.score, filled);}\n\n // Clean up the session file if we finished all slots (a quit keeps it for\n // --resume); only a session faf wrote is removed.\n if (!quit) {clearSession(dir);}\n}\n\n/** The interview is the biggest climb on the journey: record it on the DNA,\n * next to the project.faf it filled. A .faf-dna faf did not write is left\n * as it is — say so in one line. */\nfunction recordGoGrowth(fafPath: string, score: number, filled: number): void {\n const dna = new FafDNAManager(dirname(fafPath));\n if (!dna.exists()) {return;}\n dna.recordGrowth(score, [`faf go — filled ${filled} slot${filled === 1 ? '' : 's'}`]);\n sayWhyDnaIsLeft(dna);\n}\n",
247
248
  "import { findFafFile, readFafRaw } from '../interop/faf.js';\nimport { bold, dim, fafCyan } from '../ui/colors.js';\n\n/** The one line `faf ai enhance` prints since 7.13, when it was retired.\n * project.faf is not enhanced: a slot holds a repo fact (`faf auto`) or the\n * person's own words (`faf go`), and an AI suggestion is neither. */\nconst AI_ENHANCE_RETIRED =\n \"faf ai enhance was retired in 7.13 — project.faf isn't enhanced: faf auto fills tech slots from repo facts, and you write the 6Ws (faf go).\";\n\n/** `faf ai` — ask Claude for suggestions about project.faf. Read-only:\n * nothing is written. */\nexport async function aiCommand(subcommand?: string): Promise<void> {\n if (subcommand === 'analyze') {\n await analyzeCommand();\n } else if (subcommand === 'enhance') {\n // Retired: say so in one line, write nothing, exit 1.\n console.error(AI_ENHANCE_RETIRED);\n process.exit(1);\n } else {\n console.log(`${fafCyan('ai')} ${dim('— ask Claude for suggestions about project.faf')}\\n`);\n console.log(` ${bold('faf ai analyze')} ${dim('— get improvement suggestions')}`);\n console.log('');\n console.log(dim(' Requires ANTHROPIC_API_KEY environment variable.'));\n }\n}\n\nasync function getClient(): Promise<any> {\n const apiKey = process.env.ANTHROPIC_API_KEY;\n if (!apiKey) {\n console.error('Error: ANTHROPIC_API_KEY not set.\\n\\n export ANTHROPIC_API_KEY=sk-...');\n process.exit(2);\n }\n\n try {\n const { default: Anthropic } = await import('@anthropic-ai/sdk');\n return new Anthropic({ apiKey });\n } catch {\n console.error('Error: @anthropic-ai/sdk not installed.\\n\\n npm install @anthropic-ai/sdk');\n process.exit(2);\n }\n}\n\nasync function analyzeCommand(): Promise<void> {\n const fafPath = findFafFile();\n if (!fafPath) {\n console.error(\"Error: project.faf not found\\n\\n Run 'faf init' to create one.\");\n process.exit(2);\n }\n\n const yaml = readFafRaw(fafPath);\n\n console.log(`${fafCyan('ai')} analyze ${dim('getting suggestions...')}`);\n\n const client = await getClient();\n\n const response = await client.messages.create({\n model: 'claude-haiku-4-5-20251001',\n max_tokens: 1024,\n messages: [{\n role: 'user',\n content: `Analyze this .faf project context file and provide 3-5 specific suggestions for improvement. Focus on completeness, accuracy, and best practices.\\n\\n${yaml}\\n\\nBe concise. One line per suggestion.`,\n }],\n });\n\n console.log('');\n console.log(response.content[0].text);\n}\n",
248
249
  "import { existsSync, readFileSync, readdirSync } from 'fs';\nimport { join, basename } from 'path';\nimport { aliasKeptNote, findFafFile, readFaf, writeFaf } from '../interop/faf.js';\nimport { FAF_VERSION } from '../core/version.js';\nimport { parse } from 'yaml';\nimport { fafCyan, dim, bold } from '../ui/colors.js';\nimport type { FafData } from '../core/types.js';\n\n/** Conductor integration — import/export conductor config */\nexport function conductorCommand(subcommand?: string, path?: string): void {\n if (subcommand === 'import') {\n conductorImport(path);\n } else if (subcommand === 'export') {\n conductorExport();\n } else {\n console.log(`${fafCyan('conductor')} ${dim('— conductor integration')}\\n`);\n console.log(` ${bold('faf conductor import <path>')} ${dim('— import conductor config into .faf')}`);\n console.log(` ${bold('faf conductor export')} ${dim('— author conductor config from .faf')}`);\n }\n}\n\nfunction conductorImport(configPath?: string): void {\n if (!configPath) {\n console.error('Usage: faf conductor import <path>');\n process.exit(2);\n }\n\n if (!existsSync(configPath)) {\n console.error(`Error: path not found: ${configPath}`);\n process.exit(2);\n }\n\n const data: FafData = { faf_version: FAF_VERSION, project: {} };\n\n // Try to read YAML/JSON files from the config directory or file\n if (existsSync(configPath) && configPath.endsWith('.json')) {\n const raw = JSON.parse(readFileSync(configPath, 'utf-8'));\n if (raw.name) {data.project!.name = raw.name;}\n if (raw.description) {data.project!.goal = raw.description;}\n if (raw.language) {data.project!.main_language = raw.language;}\n } else if (existsSync(configPath) && (configPath.endsWith('.yml') || configPath.endsWith('.yaml'))) {\n const raw = parse(readFileSync(configPath, 'utf-8'));\n if (raw.name) {data.project!.name = raw.name;}\n if (raw.description) {data.project!.goal = raw.description;}\n if (raw.language) {data.project!.main_language = raw.language;}\n } else {\n // Directory: scan for config files\n try {\n const files = readdirSync(configPath);\n for (const file of files) {\n const filePath = join(configPath, file);\n if (file.endsWith('.json')) {\n try {\n const raw = JSON.parse(readFileSync(filePath, 'utf-8'));\n if (raw.name && !data.project!.name) {data.project!.name = raw.name;}\n if (raw.description && !data.project!.goal) {data.project!.goal = raw.description;}\n } catch { /* skip malformed files */ }\n }\n }\n } catch {\n console.error(`Error: could not read directory: ${configPath}`);\n process.exit(2);\n }\n }\n\n // Merge into existing .faf or create new\n const dir = process.cwd();\n const existing = findFafFile(dir);\n if (existing) {\n const prev = readFaf(existing);\n if (!prev.project) {prev.project = {};}\n if (data.project!.name && !prev.project.name) {prev.project.name = data.project!.name;}\n if (data.project!.goal && !prev.project.goal) {prev.project.goal = data.project!.goal;}\n if (data.project!.main_language && !prev.project.main_language) {prev.project.main_language = data.project!.main_language;}\n writeFaf(existing, prev, { onAliasKept: k => console.log(dim(` ${aliasKeptNote(k)}`)) });\n console.log(`${fafCyan('◆')} conductor import merged into ${existing}`);\n } else {\n const outPath = join(dir, 'project.faf');\n writeFaf(outPath, data);\n console.log(`${fafCyan('◆')} conductor import created ${outPath}`);\n }\n}\n\nfunction conductorExport(): void {\n const fafPath = findFafFile();\n if (!fafPath) {\n console.error(\"Error: project.faf not found\\n\\n Run 'faf init' to create one.\");\n process.exit(2);\n }\n\n const data = readFaf(fafPath);\n\n const config = {\n name: data.project?.name ?? '',\n description: data.project?.goal ?? '',\n language: data.project?.main_language ?? '',\n stack: data.stack ?? {},\n };\n\n console.log(JSON.stringify(config, null, 2));\n}\n",
249
250
  "/**\n * `faf wjttc` — vendor-neutral test-suite audit.\n *\n * Reads tests across TypeScript / Rust / Python / Zig / Go and classifies\n * each by WJTTC tier (BRAKE / ENGINE / AERO / TYRE / PIT) based on the test name.\n * Tier-balance + untiered-test report. Forward-compatible with TAF receipts.\n *\n * Per the original v6.5.0 brief — \"WJTTC moves from doctrine to enforced\n * discipline. Run anywhere, in any FAF-aware repo, see the tier balance.\"\n */\n\nimport { readdirSync, readFileSync, existsSync } from 'fs';\nimport { join } from 'path';\nimport { bold, dim, fafCyan, orange } from '../ui/colors.js';\n\nexport interface WjttcOptions {\n path?: string;\n strict?: boolean;\n json?: boolean;\n}\n\n// The full WJTTC five: BRAKE (safety) · ENGINE (core) · AERO (polish) ·\n// TYRE (live — the real road) · PIT (operational, when needed). TYRE was the\n// historically-dropped fifth; omitting it mislabels every live test as untiered.\nconst TIERS = ['BRAKE', 'ENGINE', 'AERO', 'TYRE', 'PIT'] as const;\ntype Tier = (typeof TIERS)[number];\ntype Language = 'typescript' | 'rust' | 'python' | 'zig' | 'go';\n\ninterface TestFinding {\n file: string;\n language: Language;\n testName: string;\n tier: Tier | null;\n}\n\nexport interface WjttcReport {\n totalTests: number;\n byTier: Record<Tier, number>;\n untiered: number;\n untieredExamples: string[];\n filesScanned: number;\n byLanguage: Record<string, number>;\n}\n\n// Match tier word with non-alphabetic boundary on both sides — `\\b` treats\n// underscore as a word char, so \"engine_test_001\" wouldn't match. We want\n// any non-alpha (including _, -, :, space) to count as a boundary.\nconst TIER_REGEX = /(?:^|[^A-Za-z])(BRAKE|ENGINE|AERO|TYRE|PIT)(?:[^A-Za-z]|$)/i;\n\n/** Classify a test by name. Returns null if no tier marker is present. */\nexport function detectTier(testName: string): Tier | null {\n const m = testName.match(TIER_REGEX);\n if (!m) {return null;}\n return m[1].toUpperCase() as Tier;\n}\n\n/** Identify a file as a test file by extension/naming convention,\n * returning the language for parser dispatch. */\nexport function classifyTestFile(filename: string): { ok: boolean; lang?: Language } {\n const lower = filename.toLowerCase();\n if (\n lower.endsWith('.test.ts') ||\n lower.endsWith('.test.js') ||\n lower.endsWith('.test.tsx') ||\n lower.endsWith('.test.jsx') ||\n lower.endsWith('.spec.ts') ||\n lower.endsWith('.spec.js')\n ) {\n return { ok: true, lang: 'typescript' };\n }\n if (lower.endsWith('.rs')) {return { ok: true, lang: 'rust' };}\n if (lower.endsWith('_test.go')) {return { ok: true, lang: 'go' };}\n if ((lower.startsWith('test_') || lower.endsWith('_test.py')) && lower.endsWith('.py')) {\n return { ok: true, lang: 'python' };\n }\n // Zig: any .zig file MAY have test blocks; we still scan, but most won't\n if (lower.endsWith('.zig')) {return { ok: true, lang: 'zig' };}\n return { ok: false };\n}\n\n/** Extract test names from file content per language.\n *\n * For TypeScript/JS, the tier marker typically lives on the parent `describe`\n * block (e.g. `describe('WJTTC ENGINE: ...', () => { test('...', () => {}) })`).\n * We track the most recent describe and prepend it to inner test names, so\n * tier detection sees the parent's marker. Also avoids double-counting:\n * describes themselves are NOT emitted as separate test names. */\nexport function extractTestNames(content: string, lang: Language): string[] {\n const names: string[] = [];\n switch (lang) {\n case 'typescript': {\n // Brace-depth-tracked parser. Push a describe onto the stack when its\n // opening `{` is processed; pop when the matching `}` closes the scope.\n // Tests inherit the full describe-stack path so tier markers on parent\n // describes propagate to nested tests. Handles same-line describe+test\n // and multiple sibling describes correctly.\n const callRe = /\\b(describe|test|it)\\s*\\(\\s*(['\"`])((?:\\\\.|(?!\\2).)*)\\2/g;\n const calls: { idx: number; type: 'describe' | 'test'; name: string }[] = [];\n let m: RegExpExecArray | null;\n while ((m = callRe.exec(content)) !== null) {\n calls.push({\n idx: m.index,\n type: m[1] === 'describe' ? 'describe' : 'test',\n name: m[3],\n });\n }\n\n type Frame = { name: string; openDepth: number };\n const stack: Frame[] = [];\n let depth = 0;\n let pendingDescribe: string | null = null;\n let callIdx = 0;\n\n for (let i = 0; i < content.length; i++) {\n // Process calls whose match position is `i`\n while (callIdx < calls.length && calls[callIdx].idx === i) {\n const call = calls[callIdx];\n if (call.type === 'describe') {\n // Wait for the opening `{` of the arrow body before pushing scope.\n pendingDescribe = call.name;\n } else {\n const parents = stack.map(f => f.name);\n const full = parents.length > 0 ? `${parents.join(' > ')} > ${call.name}` : call.name;\n names.push(full);\n }\n callIdx++;\n }\n\n const ch = content[i];\n if (ch === '{') {\n depth++;\n if (pendingDescribe !== null) {\n stack.push({ name: pendingDescribe, openDepth: depth });\n pendingDescribe = null;\n }\n } else if (ch === '}') {\n depth--;\n while (stack.length > 0 && depth < stack[stack.length - 1].openDepth) {\n stack.pop();\n }\n }\n }\n break;\n }\n case 'rust': {\n // #[test] on its own line, then `fn name()` — function name IS the test name.\n const re = /#\\[test\\]\\s*(?:\\r?\\n)\\s*(?:pub\\s+)?fn\\s+([a-zA-Z_][a-zA-Z_0-9]*)/g;\n let m: RegExpExecArray | null;\n while ((m = re.exec(content)) !== null) {names.push(m[1]);}\n break;\n }\n case 'python': {\n // def test_name(...) — function name IS the test name.\n const re = /^\\s*def\\s+(test_[a-zA-Z_0-9]+)\\s*\\(/gm;\n let m: RegExpExecArray | null;\n while ((m = re.exec(content)) !== null) {names.push(m[1]);}\n break;\n }\n case 'zig': {\n // test \"name\" { ... }\n const re = /\\btest\\s+\"((?:\\\\.|[^\"\\\\])+)\"/g;\n let m: RegExpExecArray | null;\n while ((m = re.exec(content)) !== null) {names.push(m[1]);}\n break;\n }\n case 'go': {\n // func TestName(t *testing.T)\n const re = /\\bfunc\\s+(Test[A-Z][a-zA-Z_0-9]*)\\s*\\(/g;\n let m: RegExpExecArray | null;\n while ((m = re.exec(content)) !== null) {names.push(m[1]);}\n break;\n }\n }\n return names;\n}\n\nconst SKIP_DIRS = new Set(['node_modules', '.git', 'target', 'dist', 'build', '.next', '.nuxt', 'coverage']);\n\nfunction walk(dir: string, results: string[] = []): string[] {\n let entries: { name: string; isDirectory(): boolean; isFile(): boolean }[];\n try {\n entries = readdirSync(dir, { withFileTypes: true });\n } catch {\n return results;\n }\n for (const entry of entries) {\n if (SKIP_DIRS.has(entry.name)) {continue;}\n if (entry.name.startsWith('.') && entry.name !== '.') {continue;}\n const full = join(dir, entry.name);\n if (entry.isDirectory()) {walk(full, results);}\n else if (entry.isFile()) {results.push(full);}\n }\n return results;\n}\n\n/** Scan a directory tree and return findings. Pure / testable. */\nexport function scanTests(rootDir: string): TestFinding[] {\n const findings: TestFinding[] = [];\n if (!existsSync(rootDir)) {return findings;}\n const allFiles = walk(rootDir);\n for (const file of allFiles) {\n const filename = file.split('/').pop() ?? '';\n const cls = classifyTestFile(filename);\n if (!cls.ok || !cls.lang) {continue;}\n let content: string;\n try { content = readFileSync(file, 'utf-8'); } catch { continue; }\n // Filter Rust files that don't actually contain #[test] — most src/ files\n if (cls.lang === 'rust' && !/#\\[test\\]/.test(content)) {continue;}\n // Filter Zig files that don't have test blocks\n if (cls.lang === 'zig' && !/\\btest\\s+\"/.test(content)) {continue;}\n const names = extractTestNames(content, cls.lang);\n const relFile = file.replace(`${rootDir}/`, '');\n for (const name of names) {\n findings.push({\n file: relFile,\n language: cls.lang,\n testName: name,\n tier: detectTier(name),\n });\n }\n }\n return findings;\n}\n\n/** Aggregate findings into a tier-balance report. */\nexport function aggregateReport(findings: TestFinding[]): WjttcReport {\n const byTier: Record<Tier, number> = { BRAKE: 0, ENGINE: 0, AERO: 0, TYRE: 0, PIT: 0 };\n const byLanguage: Record<string, number> = {};\n let untiered = 0;\n const untieredExamples: string[] = [];\n const files = new Set<string>();\n\n for (const f of findings) {\n files.add(f.file);\n byLanguage[f.language] = (byLanguage[f.language] ?? 0) + 1;\n if (f.tier) {byTier[f.tier]++;}\n else {\n untiered++;\n if (untieredExamples.length < 5) {\n untieredExamples.push(`${f.file}: ${f.testName}`);\n }\n }\n }\n\n return {\n totalTests: findings.length,\n byTier,\n untiered,\n untieredExamples,\n filesScanned: files.size,\n byLanguage,\n };\n}\n\nfunction printReport(report: WjttcReport): void {\n console.log(`${fafCyan(bold('faf wjttc'))} ${dim('— vendor-neutral test audit')}`);\n console.log('');\n console.log(` Files scanned: ${bold(String(report.filesScanned))}`);\n console.log(` Tests found: ${bold(String(report.totalTests))}`);\n console.log('');\n\n if (report.totalTests === 0) {\n console.log(dim(' no tests found'));\n return;\n }\n\n console.log(dim(' Tiers:'));\n for (const tier of TIERS) {\n const count = report.byTier[tier];\n const pct = ((count / report.totalTests) * 100).toFixed(0);\n const indicator =\n tier === 'BRAKE' ? orange('●') :\n tier === 'ENGINE' ? fafCyan('●') :\n tier === 'AERO' ? dim('●') :\n tier === 'TYRE' ? fafCyan('◐') :\n dim('○');\n console.log(` ${indicator} ${tier.padEnd(7)} ${bold(String(count).padStart(4))} ${dim(`(${pct}%)`)}`);\n }\n if (report.untiered > 0) {\n const pct = ((report.untiered / report.totalTests) * 100).toFixed(0);\n console.log(` ${dim('○')} ${'untiered'.padEnd(7)} ${bold(String(report.untiered).padStart(4))} ${dim(`(${pct}%)`)}`);\n }\n\n if (report.untiered > 0 && report.untieredExamples.length > 0) {\n console.log('');\n console.log(dim(` Untiered examples (first ${report.untieredExamples.length}):`));\n for (const ex of report.untieredExamples) {\n console.log(` ${dim('·')} ${ex}`);\n }\n }\n\n if (Object.keys(report.byLanguage).length > 1) {\n console.log('');\n console.log(dim(' Languages:'));\n for (const [lang, count] of Object.entries(report.byLanguage)) {\n console.log(` ${dim('·')} ${lang.padEnd(12)} ${bold(String(count))}`);\n }\n }\n\n // Coverage hints\n if (report.byTier.BRAKE === 0 && report.totalTests > 0) {\n console.log('');\n console.log(orange(` ⚠ no BRAKE-tier tests — no safety canaries`));\n }\n}\n\nexport function wjttcCommand(options: WjttcOptions = {}): void {\n const root = options.path ?? 'tests';\n const findings = scanTests(root);\n const report = aggregateReport(findings);\n\n if (options.json) {\n console.log(JSON.stringify(report, null, 2));\n } else {\n printReport(report);\n }\n\n if (options.strict && report.untiered > 0) {\n process.exit(1);\n }\n}\n",
@@ -253,9 +254,9 @@
253
254
  "/**\n * .fafm types — INTEROP-aligned with claude-fafm-sdk 1.0.0\n * application/vnd.fafm+yaml v1.1\n */\n\nexport const PRIORITY_ORDER = ['ephemeral', 'standard', 'high', 'critical'] as const;\nexport type Priority = (typeof PRIORITY_ORDER)[number];\n\nexport const PRIORITY_RANK: Record<string, number> = Object.fromEntries(\n PRIORITY_ORDER.map((p, i) => [p, i]),\n);\n\nexport const KNOWLEDGE_TYPES = new Set(['user', 'feedback', 'project', 'reference']);\n\nexport const KNOWN_DOC_KEYS = new Set([\n 'version',\n 'profile',\n 'namepoint',\n 'created',\n 'last_etched',\n 'retention',\n 'index',\n 'memory',\n]);\n\nexport const KNOWN_MEMORY_KEYS = new Set(['facts', 'sessions', 'preferences', 'custom']);\n\nexport const LEGACY_PRIORITY: Record<string, Priority> = {\n low: 'ephemeral',\n medium: 'standard',\n};\n\nexport interface Fact {\n text: string;\n id?: string | null;\n type?: string | null;\n priority: Priority | string;\n tags: string[];\n links: string[];\n timestamp?: string | null;\n source?: string | null;\n /** Unknown fact fields (INTEROP §4) */\n extra: Record<string, unknown>;\n}\n\nexport type Profile = 'voice' | 'knowledge';\n\nexport interface SoulDoc {\n version: string;\n profile: string;\n namepoint: string;\n created: string;\n last_etched: string;\n retention: string;\n index: string[];\n memory: {\n facts: unknown[];\n sessions: unknown[];\n preferences: Record<string, unknown>;\n custom: Record<string, unknown>;\n [key: string]: unknown;\n };\n [key: string]: unknown;\n}\n",
254
255
  "/**\n * Soul — local .fafm model (TS mirror of claude-fafm-sdk 1.0 Soul).\n * INTEROP: load/save fidelity, residual preserve, recall SoT.\n *\n * A soul loaded from a file keeps that file's text. `save` writes only what\n * changed since the load (or the last save) into it — through the YAML\n * Document, so comments, key order, quoting, the `version`, a missing\n * `profile`, a hand-kept `index` and every unknown key stay as they were.\n * Known keys faf does not model in the shape the file has them (a `facts` or\n * `index` written as a mapping, `sessions` as a mapping, …) are kept verbatim;\n * a change that would have to rewrite one is refused, with nothing written.\n */\n\nimport { existsSync } from 'fs';\nimport { dirname, resolve } from 'path';\nimport { isMap as isYamlMap, stringify as stringifyYaml, type Document } from 'yaml';\nimport { SafePathError, readBytesIfPresent, readUtf8, resolveInside, safeWriteFile } from '../core/safe-write.js';\nimport { describeShape, isMapping } from '../core/shape.js';\nimport { applyChange, changeAt, editYaml, parseForEdit, sameJs, seqAt } from '../core/yaml-edit.js';\nimport {\n KNOWN_DOC_KEYS,\n KNOWN_MEMORY_KEYS,\n LEGACY_PRIORITY,\n PRIORITY_RANK,\n type Fact,\n type SoulDoc,\n} from './types.js';\n\nexport function utcNow(): string {\n return new Date().toISOString().replace(/\\.\\d{3}Z$/, 'Z');\n}\n\nfunction isNil(v: unknown): v is null | undefined {\n return v === null || v === undefined;\n}\n\n/** Plain words for a YAML value's shape, for load errors. */\nfunction shapeOf(v: unknown): string {\n if (Array.isArray(v)) {return `a list (${v.length} item${v.length === 1 ? '' : 's'})`;}\n if (isNil(v)) {return 'empty';}\n if (typeof v === 'string') {return `a string (${JSON.stringify(v.length > 40 ? `${v.slice(0, 40)}…` : v)})`;}\n return `a ${typeof v}`;\n}\n\nconst isMap = (v: unknown): v is Record<string, unknown> =>\n typeof v === 'object' && v !== null && !Array.isArray(v);\n\n/** A soul file's real path and text. A soul.fafm link must stay inside its\n * folder and end at a .faf/.fafm file (SafePathError otherwise) — never read\n * ~/.aws/credentials as a soul — and the text must be UTF-8 (a soul that is\n * not is refused, never re-encoded). */\nfunction readSoulText(path: string): { real: string; text: string } {\n const full = resolve(path);\n const real = resolveInside(dirname(full), full, { read: true });\n return { real, text: readUtf8(real) };\n}\n\n/** Write `text` to `path` unless the file already holds exactly these bytes;\n * returns the real path. `loaded` is the file a soul was loaded from and the\n * text read: when this is that file, a text that is still `loaded.text` has\n * nothing new to write (whatever is on disk now stays), and otherwise the\n * file must still hold `loaded.text` — else it changed on disk after the\n * load, and the write is refused (SafePathError `changed`) rather than\n * written over the edit. Any other path — a soul made with no file, or a\n * save to a file the soul was not loaded from — must have no file there,\n * unless `replace` asks to write over it: a file already there is refused\n * with \"<file> already exists — not written; pass { replace: true } (faf\n * memory convert --force) to replace it\" (SafePathError `changed`: it is not\n * the no-file the soul was made for), and one that appears while faf writes\n * with the \"changed on disk\" line. Link rules and the atomic write are\n * safeWriteFile's. */\nfunction writeUnlessSame(path: string, text: string, loaded: { real: string; text: string } | undefined, replace: boolean): string {\n const full = resolve(path);\n const target = resolveInside(dirname(full), full);\n const ownFile = loaded !== undefined && loaded.real === target;\n if (ownFile && loaded.text === text) {return target;}\n let now: Buffer | null | undefined;\n try {\n now = readBytesIfPresent(target);\n } catch {\n now = undefined; // unreadable: the write below says why\n }\n if (now && now.equals(Buffer.from(text, 'utf-8'))) {return target;}\n if (!ownFile && !replace && now) {\n throw new SafePathError(\n 'changed',\n full,\n `${full} already exists — not written; pass { replace: true } (faf memory convert --force) to replace it`,\n { onWrite: true },\n );\n }\n const expect = ownFile ? loaded.text : replace ? now : null;\n return safeWriteFile(path, text, expect === undefined ? {} : { expect });\n}\n\nexport function canonicalPriority(p: string | null | undefined): string {\n if (isNil(p)) {return 'standard';}\n if (LEGACY_PRIORITY[p]) {return LEGACY_PRIORITY[p];}\n if (p in PRIORITY_RANK) {return p;}\n return 'standard';\n}\n\nconst KNOWN_FACT = new Set([\n 'text',\n 'id',\n 'type',\n 'priority',\n 'tags',\n 'links',\n 'timestamp',\n 'source',\n]);\n\nexport function factFromObj(obj: unknown): Fact {\n if (typeof obj === 'string') {\n return {\n text: obj,\n id: null,\n type: null,\n priority: 'standard',\n tags: [],\n links: [],\n timestamp: null,\n source: null,\n extra: {},\n };\n }\n if (!obj || typeof obj !== 'object' || !('text' in obj)) {\n throw new Error(`fact must be a string or a mapping with 'text': ${JSON.stringify(obj)}`);\n }\n const o = obj as Record<string, unknown>;\n const extra: Record<string, unknown> = {};\n for (const [k, v] of Object.entries(o)) {\n if (!KNOWN_FACT.has(k)) {extra[k] = v;}\n }\n return {\n text: String(o.text),\n id: (o.id as string) ?? null,\n type: (o.type as string) ?? null,\n priority: canonicalPriority(o.priority as string | undefined),\n tags: Array.isArray(o.tags) ? (o.tags as string[]).slice() : [],\n links: Array.isArray(o.links) ? (o.links as string[]).slice() : [],\n timestamp: (o.timestamp as string) ?? null,\n source: (o.source as string) ?? null,\n extra,\n };\n}\n\nexport function factToObj(f: Fact): unknown {\n const bare =\n isNil(f.id) &&\n isNil(f.type) &&\n f.tags.length === 0 &&\n f.links.length === 0 &&\n isNil(f.timestamp) &&\n isNil(f.source) &&\n Object.keys(f.extra).length === 0 &&\n f.priority === 'standard';\n if (bare) {return f.text;}\n const out: Record<string, unknown> = { text: f.text };\n if (!isNil(f.id)) {out.id = f.id;}\n if (!isNil(f.type)) {out.type = f.type;}\n out.priority = f.priority;\n if (f.tags.length) {out.tags = f.tags;}\n if (f.links.length) {out.links = f.links;}\n if (!isNil(f.timestamp)) {out.timestamp = f.timestamp;}\n if (!isNil(f.source)) {out.source = f.source;}\n Object.assign(out, f.extra);\n return out;\n}\n\n/** A complete Fact: a bare string, or a partial object (text only, say), is\n * made whole with factFromObj; a complete Fact is kept as it is. */\nfunction asFact(value: unknown): Fact {\n const f = value as Fact;\n const whole = isMap(value) && typeof f.text === 'string' && Array.isArray(f.tags) &&\n Array.isArray(f.links) && isMap(f.extra) && typeof f.priority === 'string';\n return whole ? f : factFromObj(value);\n}\n\n/** A list item that is a fact (a string, or a mapping with `text`), or null. */\nfunction factFromItem(item: unknown): Fact | null {\n if (typeof item === 'string' || (isMap(item) && 'text' in item)) {return factFromObj(item);}\n return null;\n}\n\n/** Filters for {@link Soul.recall}. */\nexport interface RecallOptions {\n tags?: string[];\n type?: string;\n minPriority?: string;\n limit?: number | null;\n}\n\n/** Everything a soul models, as plain values — what the file held at load\n * (or at the last save), compared with the soul's state at save. */\ninterface SoulState {\n top: Record<string, unknown>;\n index: string[];\n sessions: unknown[];\n preferences: Record<string, unknown>;\n custom: Record<string, unknown>;\n extra: Record<string, unknown>;\n memoryExtra: Record<string, unknown>;\n /** Item position in memory.facts → the fact as it was written there. */\n facts: Map<number, unknown>;\n}\n\n/** Where a loaded soul came from. */\ninterface Origin {\n path: string;\n /** The file's real path (links followed), when the text came from disk. */\n real?: string;\n text: string;\n base: SoulState;\n /** Known keys the file has in a shape faf does not model, and that shape\n * (`memory.facts` → 'a mapping'). Kept verbatim. */\n residual: Map<string, string>;\n}\n\nconst TOP_KEYS = ['profile', 'namepoint', 'created', 'last_etched', 'retention'] as const;\n\nexport class Soul {\n namepoint: string;\n profile: string;\n retention: string;\n created: string;\n last_etched: string;\n private _facts: Fact[];\n private _byId: Map<string, number>;\n private _index: string[];\n private _sessions: unknown[];\n private _preferences: Record<string, unknown>;\n private _custom: Record<string, unknown>;\n private _extra: Record<string, unknown>;\n private _memoryExtra: Record<string, unknown>;\n private _version: string | undefined;\n /** The file the soul was loaded from or last saved to. Undefined while the\n * soul was made with no file (in memory, not saved yet): its first save\n * then refuses a file already at the path — one that appeared since the\n * caller found none — unless `replace`. */\n private _origin: Origin | undefined;\n /** Each loaded fact's item position in the file's memory.facts. */\n private _factAt = new WeakMap<Fact, number>();\n /** The index was faf-derived when the soul was loaded (or made, or last\n * saved) — the default save keeps it in step with the facts. */\n private _indexDerived = true;\n /** The index as it was then: an index changed in memory since is the\n * caller's, and the default save leaves it as it is. */\n private _indexAtRecord: string[] = [];\n\n constructor(\n namepoint: string,\n opts: {\n profile?: string;\n facts?: Fact[];\n retention?: string;\n created?: string | null;\n index?: string[];\n sessions?: unknown[];\n preferences?: Record<string, unknown>;\n custom?: Record<string, unknown>;\n extra?: Record<string, unknown>;\n memoryExtra?: Record<string, unknown>;\n } = {},\n ) {\n this.namepoint = namepoint;\n this.profile = opts.profile ?? 'knowledge';\n this.retention = opts.retention ?? 'forever';\n this.created = opts.created ?? utcNow();\n this.last_etched = this.created;\n // Bare strings are facts too: made whole so recall and save see `text`.\n this._facts = opts.facts ? opts.facts.map(asFact) : [];\n this._byId = new Map();\n this._facts.forEach((f, i) => {\n if (!isNil(f.id)) {this._byId.set(f.id, i);}\n });\n this._index = opts.index ? opts.index.slice() : [];\n this._sessions = opts.sessions ? structuredClone(opts.sessions) : [];\n this._preferences = opts.preferences ? { ...opts.preferences } : {};\n this._custom = opts.custom ? { ...opts.custom } : {};\n this._extra = opts.extra ? { ...opts.extra } : {};\n this._memoryExtra = opts.memoryExtra ? { ...opts.memoryExtra } : {};\n // A new soul's index is faf's: none given, or exactly the one faf derives.\n this._indexDerived = opts.index === undefined || sameJs(this._index, this.derivedIndex());\n this._indexAtRecord = this._index.slice();\n }\n\n get facts(): Fact[] {\n return this._facts;\n }\n\n get index(): string[] {\n return this._index;\n }\n\n get sessions(): unknown[] {\n return this._sessions;\n }\n\n get preferences(): Record<string, unknown> {\n return this._preferences;\n }\n\n get custom(): Record<string, unknown> {\n return this._custom;\n }\n\n get extra(): Record<string, unknown> {\n return this._extra;\n }\n\n get memoryExtra(): Record<string, unknown> {\n return this._memoryExtra;\n }\n\n /**\n * Load a soul. The root must be a mapping (anything else is refused). Known\n * keys in a shape faf does not model — `memory.facts` or `index` written as\n * a mapping, `memory.sessions` as a mapping, `memory.preferences` as a list,\n * `memory` itself as a list — load as empty and stay in the file verbatim;\n * so do list items in `memory.facts` that are not facts.\n */\n static load(path: string): Soul {\n if (!existsSync(path)) {\n throw new Error(`soul file not found: ${path}`);\n }\n const { real, text } = readSoulText(path);\n return Soul.fromText(text, path, real);\n }\n\n private static fromText(raw: string, path: string, real?: string): Soul {\n const doc: unknown = parseForEdit(raw, path).toJS();\n // Shape guard: a list or scalar root would be spread into index keys (or\n // dropped) and the next save would write that back. Refuse; change nothing.\n if (!isMap(doc)) {\n throw new Error(`soul is not a YAML mapping: ${path} is ${shapeOf(doc)}`);\n }\n const shape = new ShapeReader();\n const memory = shape.pick('memory', doc.memory, isMapping) ?? {};\n const soul = new Soul(String(doc.namepoint ?? path.replace(/.*\\//, '').replace(/\\.fafm$/, '')), {\n profile: String(doc.profile ?? 'voice'),\n retention: String(doc.retention ?? 'forever'),\n created: (doc.created as string) ?? null,\n ...shape.modelled(doc, memory),\n });\n (shape.pick('memory.facts', memory.facts, Array.isArray) ?? []).forEach((item, i) => {\n const fact = factFromItem(item);\n if (fact) {soul.adopt(fact, i);}\n });\n soul.last_etched = String(doc.last_etched ?? soul.created);\n soul._version = isNil(doc.version) ? undefined : String(doc.version);\n soul._origin = { path, real, text: raw, base: soul.state(), residual: shape.residual };\n soul.recordIndex();\n return soul;\n }\n\n /** Note whether the index is faf-derived now (at load, and after a save). */\n private recordIndex(): void {\n this._indexDerived = this.indexIsDerived();\n this._indexAtRecord = this._index.slice();\n }\n\n /** Take a fact read from item `i` of the file's memory.facts. */\n private adopt(fact: Fact, i: number): void {\n this._facts.push(fact);\n if (!isNil(fact.id)) {this._byId.set(fact.id, this._facts.length - 1);}\n this._factAt.set(fact, i);\n }\n\n static fromFile(path: string): Soul {\n return Soul.load(path);\n }\n\n toDoc(): SoulDoc {\n const memory: SoulDoc['memory'] = {\n facts: this._facts.map(factToObj),\n sessions: structuredClone(this._sessions),\n preferences: structuredClone(this._preferences),\n custom: structuredClone(this._custom),\n };\n for (const [k, v] of Object.entries(this._memoryExtra)) {\n if (!KNOWN_MEMORY_KEYS.has(k)) {memory[k] = structuredClone(v);}\n }\n const doc: SoulDoc = {\n version: this._version ?? '1.1',\n profile: this.profile,\n namepoint: this.namepoint,\n created: this.created,\n last_etched: this.last_etched,\n retention: this.retention,\n index: this._index.slice(),\n memory,\n };\n for (const [k, v] of Object.entries(this._extra)) {\n if (!KNOWN_DOC_KEYS.has(k)) {doc[k] = structuredClone(v);}\n }\n return doc;\n }\n\n toYaml(): string {\n return stringifyYaml(this.toDoc(), { lineWidth: 100 });\n }\n\n /** The index faf derives from the facts (INTEROP §5 formula,\n * `${id ?? '?'} — ${text[:width]}` per fact) — without changing the soul. */\n derivedIndex(width = 80): string[] {\n return this._facts.map((f) => `${f.id ?? '?'} — ${String(f.text).slice(0, width)}`);\n }\n\n /** True when the stored index is exactly the one faf derives from the facts\n * (so faf wrote it, and may rewrite it). A hand-kept index is not. */\n indexIsDerived(width = 80): boolean {\n return !this._origin?.residual.has('index') && sameJs(this._index, this.derivedIndex(width));\n }\n\n rebuildIndex(width = 80): string[] {\n this._index = this.derivedIndex(width);\n // Rebuilt by faf: the default save keeps it in step from here on.\n this._indexDerived = true;\n this._indexAtRecord = this._index.slice();\n return this._index;\n }\n\n /**\n * Write the soul — atomically (a failure leaves the original as it was)\n * and never through a link that leaves the folder or dangles.\n *\n * A soul loaded from a file is written as that file's text with only what\n * changed since the load (or the last save) edited into it; a save that\n * changes nothing writes nothing.\n *\n * The index: `reindex: true` rebuilds it from the facts, `reindex: false`\n * keeps it as it is. Left out, the index is rebuilt only when it was\n * faf-derived — {@link indexIsDerived} when the soul was loaded or last\n * saved; a new soul counts as derived unless it was given an index of its\n * own — and has not been changed in memory since. A hand-kept index is\n * never touched.\n * Refused, with nothing written: a change to a known key the file holds in\n * a shape faf does not model (adding a fact to `memory.facts` written as a\n * mapping, say); a save over the file the soul was loaded from (or last\n * saved to) when that file changed on disk since — SafePathError `changed`,\n * so an edit made meanwhile is never written over; and a save of a soul\n * made with no file (or to a path it was not loaded from) when a file is\n * already there — the same `changed` refusal, so a soul.fafm that appeared\n * after the caller found none is kept. `replace: true` is the explicit\n * overwrite of such a file (`faf memory convert --force`).\n */\n save(path: string, opts: { reindex?: boolean; replace?: boolean } = {}): string {\n const reindex = opts.reindex ?? (this._indexDerived && sameJs(this._index, this._indexAtRecord));\n if (reindex) {this.rebuildIndex();}\n const replace = opts.replace === true;\n const origin = this._origin;\n if (!origin) {\n const text = this.toYaml();\n // Made with no file: nothing may be there now (unless replace).\n const real = writeUnlessSame(path, text, undefined, replace);\n this.settle(path, text, new Map(this._facts.map((f, i) => [f, i])), real);\n return path;\n }\n let positions = new Map<Fact, number>();\n const { text } = editYaml(origin.text, (doc) => {\n positions = this.applyTo(doc, origin, reindex);\n }, path);\n // Refused, with nothing written, if the file changed on disk since the load.\n const real = writeUnlessSame(path, text, origin.real === undefined ? undefined : { real: origin.real, text: origin.text }, replace);\n this.settle(path, text, positions, real);\n return path;\n }\n\n toFile(path: string, opts: { reindex?: boolean; replace?: boolean } = {}): string {\n return this.save(path, opts);\n }\n\n /** After a save: the written text (at `real`) is the new origin. */\n private settle(path: string, text: string, positions: Map<Fact, number>, real: string): void {\n this._factAt = new WeakMap();\n for (const [f, i] of positions) {this._factAt.set(f, i);}\n this._origin = { path, real, text, base: this.state(), residual: this._origin?.residual ?? new Map() };\n this.recordIndex();\n }\n\n /** The soul's modelled state as plain values. */\n private state(): SoulState {\n const facts = new Map<number, unknown>();\n for (const f of this._facts) {\n const at = this._factAt.get(f);\n if (at !== undefined) {facts.set(at, structuredClone(factToObj(f)));}\n }\n return {\n top: Object.fromEntries(TOP_KEYS.map((k) => [k, this[k]])),\n index: this._index.slice(),\n sessions: structuredClone(this._sessions),\n preferences: structuredClone(this._preferences),\n custom: structuredClone(this._custom),\n extra: structuredClone(this._extra),\n memoryExtra: structuredClone(this._memoryExtra),\n facts,\n };\n }\n\n /** Refuse a change that would rewrite a key kept verbatim. */\n private static refuse(origin: Origin, key: string, what: string): never {\n throw new Error(\n `${origin.path}: ${key} is ${origin.residual.get(key)} in the file, not the shape faf writes — ` +\n `faf keeps it as it is and will not ${what}. Nothing written.`,\n );\n }\n\n /** Edit the loaded Document with what changed since `origin.base`; returns\n * each fact's item position in memory.facts afterwards. */\n private applyTo(doc: Document, origin: Origin, reindexed: boolean): Map<Fact, number> {\n const base = origin.base;\n const now = this.state();\n const name = origin.path;\n for (const key of TOP_KEYS) {\n if (base.top[key] !== now.top[key]) {doc.set(key, now.top[key]);}\n }\n if (!sameJs(base.index, now.index)) {\n if (origin.residual.has('index') && !reindexed) {Soul.refuse(origin, 'index', 'replace it');}\n changeAt(doc, ['index'], origin.residual.has('index') ? undefined : base.index, now.index, name);\n }\n for (const key of unionKeys(base.extra, now.extra)) {\n changeAt(doc, [key], base.extra[key], now.extra[key], name);\n }\n this.applyMemory(doc, origin, base, now);\n return this.applyFacts(doc, origin);\n }\n\n private applyMemory(doc: Document, origin: Origin, base: SoulState, now: SoulState): void {\n const parts: Array<[string, unknown, unknown]> = [\n ['sessions', base.sessions, now.sessions],\n ['preferences', base.preferences, now.preferences],\n ['custom', base.custom, now.custom],\n ...unionKeys(base.memoryExtra, now.memoryExtra).map(\n (k): [string, unknown, unknown] => [k, base.memoryExtra[k], now.memoryExtra[k]],\n ),\n ];\n for (const [key, before, after] of parts) {\n if (sameJs(before, after)) {continue;}\n if (origin.residual.has('memory')) {Soul.refuse(origin, 'memory', `change memory.${key}`);}\n if (origin.residual.has(`memory.${key}`)) {Soul.refuse(origin, `memory.${key}`, 'replace it');}\n changeAt(doc, ['memory', key], before, after, origin.path);\n }\n }\n\n /** Which facts are still at their place in the file, and which are new.\n * Kept facts must be in the file's order, new ones after them. */\n private sortFacts(origin: Origin): { kept: Array<[Fact, number]>; added: Fact[] } {\n const kept: Array<[Fact, number]> = [];\n const added: Fact[] = [];\n for (const f of this._facts) {\n const at = this._factAt.get(f);\n if (at === undefined) {\n added.push(f);\n continue;\n }\n if (added.length > 0 || (kept.length > 0 && at <= kept[kept.length - 1][1])) {\n throw new Error(`${origin.path}: the facts were reordered — faf keeps the order soul.fafm has. Nothing written.`);\n }\n kept.push([f, at]);\n }\n return { kept, added };\n }\n\n /** Facts: changed facts are edited where they are (only the fields that\n * changed), deleted ones removed, new ones appended. List items that are\n * not facts are never touched. */\n private applyFacts(doc: Document, origin: Origin): Map<Fact, number> {\n const { kept, added } = this.sortFacts(origin);\n const keptAt = new Set(kept.map(([, at]) => at));\n const gone = [...origin.base.facts.keys()].filter((at) => !keptAt.has(at)).sort((a, b) => b - a);\n const changed = kept.filter(([f, at]) => !sameJs(origin.base.facts.get(at), factToObj(f)));\n const positions = new Map<Fact, number>(kept);\n if (added.length === 0 && gone.length === 0 && changed.length === 0) {return positions;}\n for (const key of ['memory', 'memory.facts']) {\n if (origin.residual.has(key)) {Soul.refuse(origin, key, 'add facts to it');}\n }\n const seq = seqAt(doc, ['memory', 'facts'], origin.path);\n for (const [f, at] of changed) {\n seq.items[at] = editFact(doc, seq.items[at], origin.base.facts.get(at), factToObj(f));\n }\n for (const at of gone) {seq.items.splice(at, 1);}\n for (const [f, at] of kept) {positions.set(f, at - gone.filter((g) => g < at).length);}\n for (const f of added) {\n positions.set(f, seq.items.length);\n seq.items.push(doc.createNode(factToObj(f)));\n }\n return positions;\n }\n\n /** Insert or overwrite a Fact by id, preserving every field it carries (its\n * timestamp included) — the INTEROP merge primitive: on an existing id the\n * whole Fact is replaced. `etch` merges instead. */\n add(fact: Fact): Fact {\n const whole = asFact(fact);\n if (!isNil(whole.id) && this._byId.has(whole.id)) {\n const idx = this._byId.get(whole.id);\n if (idx !== undefined) {\n const at = this._factAt.get(this._facts[idx]);\n this._facts[idx] = whole;\n if (at !== undefined) {this._factAt.set(whole, at);}\n }\n } else {\n this._facts.push(whole);\n if (!isNil(whole.id)) {this._byId.set(whole.id, this._facts.length - 1);}\n }\n if (whole.timestamp && whole.timestamp > (this.last_etched || '')) {\n this.last_etched = whole.timestamp;\n }\n return whole;\n }\n\n /**\n * Write a fact. With an `id` that is already in the soul, the fact is\n * updated in place: the text and timestamp are new, and of the other fields\n * only those passed here change — links, source, tags, type, priority and\n * any extra fields the fact carries are kept (a priority is never lowered\n * unless one is passed). Otherwise the fact is appended.\n */\n etch(\n text: string,\n opts: {\n id?: string;\n type?: string;\n priority?: string;\n tags?: string[];\n links?: string[];\n source?: string;\n } = {},\n ): Fact {\n const existing = isNil(opts.id) ? null : this.getFact(opts.id);\n if (existing) {return this.add(mergeFact(existing, text, opts));}\n return this.add({\n text,\n id: opts.id ?? null,\n type: opts.type ?? null,\n priority: canonicalPriority(opts.priority),\n tags: opts.tags ? opts.tags.slice() : [],\n links: opts.links ? opts.links.slice() : [],\n timestamp: utcNow(),\n source: opts.source ?? null,\n extra: {},\n });\n }\n\n /**\n * Deterministic recall (INTEROP §6). Call it as `recall(query, filters)` or\n * `recall({ query, ...filters })`. Bare-string facts are facts: their text\n * is matched and returned like any other.\n */\n recall(\n query?: string | null | (RecallOptions & { query?: string | null }),\n opts: RecallOptions = {},\n ): Fact[] {\n const filters: RecallOptions = isMap(query) ? { ...query, ...opts } : opts;\n const text = isMap(query) ? query.query : query;\n const floor = PRIORITY_RANK[canonicalPriority(filters.minPriority ?? 'ephemeral')] ?? 0;\n const q = typeof text === 'string' ? text.toLowerCase() : '';\n const wantTags = new Set(filters.tags ?? []);\n const indexed: Array<[number, Fact]> = [];\n this._facts.forEach((f, i) => {\n if (q && !String(f.text ?? '').toLowerCase().includes(q)) {return;}\n if (wantTags.size > 0 && ![...wantTags].some((t) => (f.tags ?? []).includes(t))) {return;}\n if (!isNil(filters.type) && f.type !== filters.type) {return;}\n if ((PRIORITY_RANK[f.priority] ?? 1) < floor) {return;}\n indexed.push([i, f]);\n });\n indexed.sort((a, b) => {\n const pa = PRIORITY_RANK[a[1].priority] ?? 1;\n const pb = PRIORITY_RANK[b[1].priority] ?? 1;\n if (pb !== pa) {return pb - pa;}\n const ta = a[1].timestamp ?? '';\n const tb = b[1].timestamp ?? '';\n if (tb !== ta) {return tb < ta ? -1 : tb > ta ? 1 : 0;}\n return b[0] - a[0]; // insertion index desc\n });\n const results = indexed.map(([, f]) => f);\n if (!isNil(filters.limit)) {return results.slice(0, filters.limit);}\n return results;\n }\n\n getFact(id: string): Fact | null {\n const i = this._byId.get(id);\n return i === undefined ? null : this._facts[i];\n }\n\n deleteFact(id: string): boolean {\n const i = this._byId.get(id);\n if (i === undefined) {return false;}\n this._facts.splice(i, 1);\n this._byId.clear();\n this._facts.forEach((f, j) => {\n if (!isNil(f.id)) {this._byId.set(f.id, j);}\n });\n return true;\n }\n}\n\n/** `existing` with a new text and timestamp, and only the fields passed in\n * `opts` replaced; a priority is never lowered unless one is passed. */\nfunction mergeFact(\n existing: Fact,\n text: string,\n opts: { type?: string; priority?: string; tags?: string[]; links?: string[]; source?: string },\n): Fact {\n const or = <T>(passed: T | undefined, kept: T): T => (isNil(passed) ? kept : passed);\n return {\n ...existing,\n text,\n type: or(opts.type, existing.type),\n priority: isNil(opts.priority) ? existing.priority : canonicalPriority(opts.priority),\n tags: or(opts.tags, existing.tags).slice(),\n links: or(opts.links, existing.links).slice(),\n source: or(opts.source, existing.source),\n timestamp: utcNow(),\n extra: { ...existing.extra },\n };\n}\n\n/** Reads known keys, keeping those in a shape faf does not model as residual. */\nclass ShapeReader {\n readonly residual = new Map<string, string>();\n\n /** `value` when it fits; undefined (and noted as residual) when it does not. */\n pick<T>(key: string, value: unknown, fits: (v: unknown) => v is T): T | undefined {\n if (isNil(value)) {return undefined;}\n if (fits(value)) {return value;}\n this.residual.set(key, describeShape(value));\n return undefined;\n }\n\n /** The Soul constructor options for the index, memory subtrees and unknown keys. */\n modelled(doc: Record<string, unknown>, memory: Record<string, unknown>): {\n index: string[];\n sessions: unknown[];\n preferences: Record<string, unknown>;\n custom: Record<string, unknown>;\n extra: Record<string, unknown>;\n memoryExtra: Record<string, unknown>;\n } {\n return {\n index: (this.pick('index', doc.index, Array.isArray) ?? []).map(String),\n sessions: this.pick('memory.sessions', memory.sessions, Array.isArray) ?? [],\n preferences: structuredClone(this.pick('memory.preferences', memory.preferences, isMapping) ?? {}),\n custom: structuredClone(this.pick('memory.custom', memory.custom, isMapping) ?? {}),\n extra: residualKeys(doc, KNOWN_DOC_KEYS),\n memoryExtra: residualKeys(memory, KNOWN_MEMORY_KEYS),\n };\n }\n}\n\n/** Keys of `obj` outside `known`, deep-copied — the residual a soul carries. */\nfunction residualKeys(obj: Record<string, unknown>, known: ReadonlySet<string>): Record<string, unknown> {\n const out: Record<string, unknown> = {};\n for (const [k, v] of Object.entries(obj)) {\n if (!known.has(k)) {out[k] = structuredClone(v);}\n }\n return out;\n}\n\nfunction unionKeys(a: Record<string, unknown>, b: Record<string, unknown>): string[] {\n return [...new Set([...Object.keys(a), ...Object.keys(b)])];\n}\n\n/** Edit one fact item where it is: only the fields that changed. A bare-string\n * item that gains fields becomes a mapping; a mapping item stays one. */\nfunction editFact(doc: Document, node: unknown, before: unknown, after: unknown): unknown {\n if (!isYamlMap(node)) {return applyChange(doc, node, before, after);}\n const asMap = (v: unknown): unknown => (typeof v === 'string' ? { text: v } : v);\n return applyChange(doc, node, asMap(before), asMap(after));\n}\n",
255
256
  "/**\n * fromClaudeDir — Claude Code memory store → knowledge Soul.\n * Cite: claude-fafm-sdk 1.0 / fafm-engine serialize_memory approach.\n * Not the proof convert_md_to_fafm (entries/v1.0 anti-pattern).\n */\n\nimport { readdirSync, readFileSync, statSync, existsSync } from 'fs';\nimport { join, basename, resolve } from 'path';\nimport { parse as parseYaml } from 'yaml';\nimport { Soul, utcNow } from './soul.js';\nimport { KNOWLEDGE_TYPES, type Fact } from './types.js';\n\nexport const DEFAULT_SKIP = new Set(['MEMORY.md', 'MEMORY-FULL.md', 'README.md']);\n\nconst LINK_RE = /\\[\\[([^\\]]+)\\]\\]/g;\n\nfunction isoMtime(path: string): string {\n const ms = statSync(path).mtimeMs;\n return new Date(ms).toISOString().replace(/\\.\\d{3}Z$/, 'Z');\n}\n\nfunction parseFrontmatter(text: string): { fm: Record<string, unknown> | null; body: string } {\n if (!text.startsWith('---')) {return { fm: null, body: text };}\n const parts = text.split('---');\n if (parts.length < 3) {return { fm: null, body: text };}\n try {\n const fm = parseYaml(parts[1]);\n if (!fm || typeof fm !== 'object') {return { fm: null, body: parts.slice(2).join('---').trim() };}\n return { fm: fm as Record<string, unknown>, body: parts.slice(2).join('---').trim() };\n } catch {\n return { fm: null, body: text };\n }\n}\n\nfunction factFromTopic(path: string, body: string, fm: Record<string, unknown>): Fact | null {\n if (!fm.name) {return null;}\n const meta =\n fm.metadata && typeof fm.metadata === 'object'\n ? (fm.metadata as Record<string, unknown>)\n : {};\n const mtype = meta.type;\n if (typeof mtype !== 'string' || !KNOWLEDGE_TYPES.has(mtype)) {return null;}\n\n const name = String(fm.name).trim();\n const description =\n fm.description !== undefined && fm.description !== null && String(fm.description).trim()\n ? String(fm.description).trim()\n : '';\n const text = description || name;\n\n const extra: Record<string, unknown> = {};\n if (meta.originSessionId) {\n extra.provenance = [`session:${meta.originSessionId}`];\n }\n\n const links = [...new Set([...body.matchAll(LINK_RE)].map((m) => m[1]))].sort();\n\n return {\n text,\n id: name,\n type: mtype,\n priority: 'standard',\n tags: [],\n links,\n timestamp: isoMtime(path),\n source: `claude-code memory: ${basename(path)}`,\n extra,\n };\n}\n\n/**\n * Convert a Claude Code memory directory into a knowledge Soul.\n */\nexport function fromClaudeDir(\n path: string,\n opts: { namepoint?: string; skip?: Set<string> } = {},\n): Soul {\n const root = resolve(path);\n if (!existsSync(root)) {\n throw new Error(`Claude memory directory not found: ${root}`);\n }\n if (!statSync(root).isDirectory()) {\n throw new Error(`Claude memory path is not a directory: ${root}`);\n }\n\n const skip = opts.skip ?? DEFAULT_SKIP;\n const namepoint = opts.namepoint ?? `@claude-code:${basename(root)}`;\n\n const facts: Fact[] = [];\n const files = readdirSync(root)\n .filter((f) => f.endsWith('.md'))\n .sort();\n\n for (const file of files) {\n if (skip.has(file)) {continue;}\n const full = join(root, file);\n let text: string;\n try {\n text = readFileSync(full, 'utf-8');\n } catch {\n continue;\n }\n const { fm, body } = parseFrontmatter(text);\n if (!fm) {continue;}\n const fact = factFromTopic(full, body, fm);\n if (fact) {facts.push(fact);}\n }\n\n const stamps = facts.map((f) => f.timestamp).filter(Boolean) as string[];\n const created = stamps.length ? stamps.reduce((a, b) => (a < b ? a : b)) : utcNow();\n const last = stamps.length ? stamps.reduce((a, b) => (a > b ? a : b)) : created;\n\n const soul = new Soul(namepoint, {\n profile: 'knowledge',\n facts,\n created,\n });\n soul.last_etched = last;\n soul.rebuildIndex();\n return soul;\n}\n",
256
- "#!/usr/bin/env node\n\nimport { Command } from 'commander';\nimport { scoreCommand } from './commands/score.js';\nimport { initCommand } from './commands/init.js';\nimport { dnaCommand } from './commands/dna.js';\nimport { autoCommand } from './commands/auto.js';\nimport { loopCommand } from './commands/loop.js';\nimport { syncCommand } from './commands/sync.js';\nimport { compileCommand } from './commands/compile.js';\nimport { decompileCommand } from './commands/decompile.js';\nimport { checkCommand } from './commands/check.js';\nimport { exportCommand } from './commands/export.js';\nimport { serverCardCommand } from './commands/server-card.js';\nimport { cardsCommand } from './commands/cards.js';\nimport { cardInitCommand } from './commands/card.js';\nimport { showCommand } from './commands/show.js';\nimport { gitCommand } from './commands/git.js';\nimport { diffCommand, diffDriverCommand } from './commands/diff.js';\nimport { logCommand } from './commands/log.js';\nimport { hooksCommand, hooksRun } from './commands/hooks.js';\nimport { infoCommand } from './commands/info.js';\nimport { formatsCommand } from './commands/formats.js';\nimport { clearCommand } from './commands/clear.js';\nimport { convertCommand } from './commands/convert.js';\nimport { contextCommand } from './commands/context.js';\nimport { driftCommand } from './commands/drift.js';\nimport { editCommand } from './commands/edit.js';\nimport { migrateCommand } from './commands/migrate.js';\nimport { proCommand } from './commands/pro.js';\nimport { shareCommand } from './commands/share.js';\nimport { demoCommand } from './commands/demo.js';\nimport { searchCommand } from './commands/search.js';\nimport { tafCommand } from './commands/taf.js';\nimport { goCommand } from './commands/go.js';\nimport { aiCommand } from './commands/ai.js';\nimport { conductorCommand } from './commands/conductor.js';\nimport { wjttcCommand } from './commands/wjttc.js';\nimport { benchCommand } from './commands/bench.js';\nimport { refreshCommand } from './commands/refresh.js';\nimport { memoryCommand } from './commands/memory.js';\nimport { isOneLineError, oneLine } from './core/refusal.js';\n\nconst { version: VERSION } = require('../package.json');\n\nconst program = new Command();\n\nprogram\n .name('faf')\n .description('Foundational AI context + memory — .faf and .fafm for any AI')\n .version(VERSION, '-v, --version');\n\n// === Core Commands (Top 6) ===\n\nprogram\n .command('init')\n .description('Create .faf from your project')\n .option('--yolo', 'Quick init with sensible defaults')\n .option('--quick', 'Alias for --yolo')\n .option('--force', 'Overwrite existing project.faf')\n .option('--output <path>', 'Output path')\n .action((options) => initCommand(options));\n\nprogram\n .command('dna')\n .description('🧬 Show your FAF DNA journey (birth → growth)')\n .action(() => dnaCommand());\n\nprogram\n .command('auto')\n .description('Fill every tech slot from the repo, then score')\n .action(() => autoCommand());\n\nprogram\n .command('loop')\n .description('Drive to 100% — source what we can, then ask only the human')\n .option('-r, --rounds <n>', 'max auto rounds before stopping', '5')\n .action((options) => loopCommand(options));\n\nprogram\n .command('go')\n .description('Guided interview to gold code')\n .option('--resume', 'Resume previous session')\n .action((options) => goCommand(options));\n\nprogram\n .command('score [file]')\n .description('Score a .faf file')\n .option('--verbose', 'Show slot breakdown')\n .option('--status', 'Compact one-liner output')\n .option('--json', 'Output as JSON')\n .action((file, options) => scoreCommand(file, options));\n\nprogram\n .command('bench [action] [answersFile]')\n .description('AI-grounding benchmark — cold vs with-faf (the .faf is the answer key; grade saves .faf-bench.json)')\n .option('--json', 'Output as JSON')\n .option('--cold', 'Grade as the without-context run')\n .option('--faf', 'Grade as the with-context run')\n .option('--tokens <n>', 'Tokens used in the run (reported by the agent)')\n .option('--model <name>', 'Model that answered (reported)')\n .option('--file <path>', 'Path to project.faf (default: discovered)')\n .option('--submit', 'Submit the full-pair receipt to the public bench ledger (mcpaas.live; --endpoint to change)')\n .option('--endpoint <url>', 'Override the submit endpoint')\n .action((action, answersFile, options) => benchCommand(action, answersFile, options));\n\nprogram\n .command('show')\n .description('Render project.faf → project.html and open it')\n .option('--force', 'Replace a project.html faf cannot prove it rendered (edited since, or not faf\\'s)')\n .action((options) => showCommand(options));\n\nprogram\n .command('sync')\n .description('.faf → CLAUDE.md — one way; writes faf\\'s block only; Pro also updates Claude Code\\'s MEMORY.md')\n .option('--watch', 'Watch for changes')\n .action((options) => syncCommand(options));\n\n// === Power Commands ===\n\nprogram\n .command('compile [file]')\n .description('Compile .faf to .fafb binary')\n .option('--output <path>', 'Output path')\n .option('--force', 'Replace an output file that is not a .fafb faf compiled')\n .action((file, options) => compileCommand(file, options));\n\nprogram\n .command('decompile <file>')\n .description('Decompile .fafb to JSON (prints; --output writes a file)')\n .option('--output <path>', 'Output path')\n .option('--force', 'With --output: replace a file faf cannot prove it wrote (edited since, or not a faf decompile)')\n .action((file, options) => decompileCommand(file, options));\n\nprogram\n .command('git <url>')\n .description('Instant scored context from any GitHub repo (any branch/tag with --ref) — shallow-clones to a temp dir, writes ./project.faf (--stdout to print)')\n .option('--ref <ref>', 'Clone at a specific branch or tag (versioned context)')\n .option('--output <path>', 'Write to a custom path (default: ./project.faf)')\n .option('--force', 'Overwrite an existing project.faf')\n .option('--stdout', 'Print the .faf to stdout instead of writing a file')\n .action((url, options) => gitCommand(url, options));\n\nprogram\n .command('diff [range]')\n .description('Semantic context diff between two .faf versions (slot deltas + score). git ranges: <ref>, A..B, A...B')\n .option('--json', 'Emit the delta as structured JSON')\n .option('--install-driver', 'Wire faf diff into native git — `git diff` renders .faf score+slot deltas')\n .option('--uninstall-driver', 'Remove the native-git diff driver')\n .action((range, options) => diffCommand(range, options));\n\nprogram\n .command('diff-driver [args...]', { hidden: true })\n .description('Internal: GIT_EXTERNAL_DIFF handler invoked by git for diff=faf files')\n .action((args) => diffDriverCommand(args ?? []));\n\nprogram\n .command('log')\n .description('Score timeline across git history — the .faf score at every commit that touched it')\n .option('-n, --limit <n>', 'Max commits to show (default 20)')\n .option('--all', 'Show every commit, no cap')\n .option('--reverse', 'Oldest-first instead of newest-first')\n .option('--json', 'Emit the timeline as structured JSON')\n .action((options) => logCommand(options));\n\nprogram\n .command('hooks')\n .description('Pre-commit context guard — scores staged .faf vs HEAD, warns (or --strict blocks) on regression')\n .option('--install', 'Install the pre-commit hook')\n .option('--uninstall', 'Remove the faf hook block (preserves other hooks)')\n .option('--strict', 'With --install: block the commit on a score regression (default: warn only)')\n .action((options) => hooksCommand(options));\n\nprogram\n .command('hooks-run', { hidden: true })\n .description('Internal: the pre-commit context guard the git hook invokes')\n .option('--strict', 'Exit non-zero on a score regression')\n .action((options) => {\n hooksRun(options);\n // The guard runs inside `git commit`: once its line is written, exit, so it\n // can never hold a commit open waiting on a handle (#167). The blocked path\n // already exits inside hooksRun; every path that returns here allows the commit.\n const done = (): never => process.exit(0);\n setTimeout(done, 2000).unref();\n process.stdout.write('', () => process.stderr.write('', done));\n });\n\nprogram\n .command('export')\n .description('Write agent files from .faf — bare: AGENTS.md, .cursorrules, GEMINI.md, Copilot instructions, project.html')\n .option('--agents', 'Author AGENTS.md')\n .option('--cursor', 'Author .cursorrules')\n .option('--gemini', 'Author GEMINI.md')\n .option('--copilot', 'Author .github/copilot-instructions.md (GitHub Copilot)')\n .option('--grok', 'Wire grok-faf-mcp into .grok/config.toml (opt-in; never on --all)')\n .option('--llms', 'Author llms.txt (llmstxt.org view of authored 6Ws — opt-in)')\n .option('--conductor', 'Author conductor config')\n .option('--html', 'Author project.html (visual render of project.faf)')\n .option('--card', 'Author MCP Server Card (./server-card) with the FAF context-block')\n .option('--all', 'Author all formats')\n .option('--output <path>', 'Write exported files to this directory instead of the current one')\n .option('--force', 'Replace a project.html or Server Card faf cannot prove it wrote (edited since, or not faf\\'s)')\n .action((options) => exportCommand(options));\n\nprogram\n .command('server-card')\n .description('Emit the registry server.json identity (name + title + _meta) from project.faf — the cross-language server-card emitter; patches an existing file')\n .option('--in <path>', 'Existing server.json to patch (default: ./server.json)')\n .option('--out <path>', 'Output path (default: same as --in)')\n .option('--faf <path>', 'project.faf path (default: auto-discover)')\n .option('--set-version <version>', 'Set the version field (default: preserve existing). NOTE: not --version, which is the global CLI-version flag')\n .option('--generated <iso>', 'Override the _meta generated stamp (default: preserve existing)')\n .option('--check', 'Print to stdout, do not write (diff/verify — the idempotency-test hook)')\n .option('--force', 'With --out: replace a file faf cannot prove it wrote (edited since, or no faf identity)')\n .action((options) => serverCardCommand(options));\n\nprogram\n .command('cards')\n .description('Write the cards your files allow. BETTER: an agent.fafa → A2A card, MCP Server Card, registry, AI Catalog, ARD (as its endpoints allow). BEST: + project.faf → the same cards with FAF context. An agent.fafa with no mcp endpoint gets no MCP Server Card or registry server.json; nor does a project.faf alone whose type is not mcp, unless asked for with --target (--check prints, writes nothing)')\n .option('--target <list>', 'Comma list: a2a,mcp,registry,catalog,ard (default: whatever inputs allow)')\n .option('--faf <path>', 'project.faf path (default: auto-discover)')\n .option('--fafa <path>', 'agent.fafa path (default: auto-discover)')\n .option('--dir <path>', 'Working directory (default: cwd)')\n .option('--a2a-url <url>', 'Public URL of the A2A card (catalog row)')\n .option('--door-url <url>', 'A2A door when .fafa has no a2a endpoint')\n .option('--faf-pointer <url>', 'Absolute .faf pointer for served cards (default: ./project.faf)')\n .option('--check', 'Print projected cards to stdout, do not write')\n .option('--force', 'Replace a card file faf cannot prove it wrote (edited since, or not faf\\'s)')\n .action((options) => cardsCommand(options));\n\nconst repeat = (value: string, previous: string[] = []) => [...previous, value];\n\nconst card = program.command('card').description('One card at a time');\n\ncard\n .command('init')\n .description('Write an agent.fafa from seven answers: name, short name, domain, what it does, version, where it runs, what it can do')\n .option('--name <name>', 'Name people see, e.g. \"Weather Agent\"')\n .option('--short-name <handle>', 'Short name, lowercase (default: from --name)')\n .option('--domain <domain>', 'Domain it is published under, e.g. example.com')\n .option('--description <text>', 'What it does, one sentence')\n .option('--set-version <version>', 'Its version. NOTE: not --version, which is the global CLI-version flag')\n .option('--url <url>', 'Where it runs: a live endpoint people call over http(s). For something people install (a CLI, a library, a stdio MCP server), use --package')\n .option('--protocol <protocol>', 'Protocol at --url: a2a or mcp (default: a2a)')\n .option('--package <name>', 'Where it runs: a package people install. A bare name is npm; or npm:<name>, pypi:<name>, crates:<name>')\n .option('--kind <kind>', 'What --package is: mcp (an MCP server, the default), cli or library. Only mcp gets MCP cards')\n .option('--homepage <url>', 'Its homepage, an http(s) URL (default: https://<domain>)')\n .option('--skill <skill>', 'What it can do, \"Name: description\" (repeatable)', repeat)\n .option('--example <question>', 'A question people ask it; search finds it by these (repeatable, 2-5)', repeat)\n .option('--dir <path>', 'Working directory (default: cwd)')\n .option('--out <path>', 'Output path (default: ./agent.fafa)')\n .option('--force', 'Replace an existing agent.fafa')\n .action((options) => cardInitCommand(options));\n\nprogram\n .command('check [file]')\n .description('Validate .faf file')\n .option('--strict', 'Require 100% score')\n .option('--fix', 'Auto-fix issues')\n .option('--doctor', 'Full diagnostic')\n .option('--trust', 'Verify trust chain')\n .option('--verbose', 'Show slot breakdown')\n .action((file, options) => checkCommand(file, options));\n\nprogram\n .command('info')\n .description('Show version and system info')\n .option('--version', 'Show version')\n .option('--faq', 'Show FAQ')\n .option('--index', 'Show command index')\n .option('--stacks', 'Show supported stacks')\n .action((options) => infoCommand(options));\n\n// === Phase A Commands ===\n\nprogram\n .command('formats')\n .description('Show supported formats')\n .action(() => formatsCommand());\n\nprogram\n .command('clear')\n .description('Delete faf\\'s cached clones (faf-git-* temp dirs)')\n .action(() => clearCommand());\n\nprogram\n .command('convert')\n .description('Print .faf as YAML or JSON (writes nothing)')\n .option('--json', 'Output as JSON')\n .action((options) => convertCommand(options));\n\nprogram\n .command('context')\n .description('Author context output')\n .action(() => contextCommand());\n\nprogram\n .command('refresh')\n .description('Re-ground on the live .faf — re-score, measure drift vs the DNA baseline, keep .fafb current')\n .option('--json', 'Output as JSON')\n .action((options) => refreshCommand(options));\n\nprogram\n .command('drift')\n .description('Check context drift')\n .option('--json', 'Emit the drift report as structured JSON')\n .action((options) => driftCommand(options));\n\nprogram\n .command('edit <path> <value>')\n .description('Edit .faf fields')\n .action((path, value) => editCommand(path, value));\n\n// === Phase B Commands ===\n\nprogram\n .command('migrate')\n .description('Migrate .faf to latest version')\n .option('--dry-run', 'Preview changes without writing')\n .action((options) => migrateCommand(options));\n\nprogram\n .command('pro [subcommand]')\n .description('Pro features & licensing (activate opens faf.one/pro)')\n .action((subcommand) => proCommand(subcommand));\n\nprogram\n .command('share')\n .description('Print a faf.one share link for .faf (built locally — nothing is sent)')\n .option('--copy', 'Copy to clipboard')\n .option('--raw', 'Output encoded string only')\n .action((options) => shareCommand(options));\n\nprogram\n .command('demo')\n .description('Demo walkthrough')\n .action(() => demoCommand());\n\nprogram\n .command('search <query>')\n .description('Search slots and formats')\n .option('--slots', 'Search slots only')\n .option('--formats', 'Search formats only')\n .action((query, options) => searchCommand(query, options));\n\nprogram\n .command('taf [subcommand]')\n .description('TAF Receipts — `faf taf setup` prints the CI receipt workflow (--write creates it); bare snapshot deprecated → faf score --json')\n .option('--output <path>', 'Write score snapshot to file')\n .option('--write', 'taf setup: create .github/workflows/taf.yml')\n .option('--force', 'With --output: replace a file faf cannot prove it wrote (edited since, or not a TAF snapshot)')\n .action((subcommand, options) => tafCommand(subcommand, options));\n\n// === Phase C Commands ===\n\nprogram\n .command('ai [subcommand]')\n .description('Ask Claude for suggestions about project.faf (analyze) — sends it to the Anthropic API, writes nothing')\n .action((subcommand) => aiCommand(subcommand));\n\nprogram\n .command('conductor [subcommand] [path]')\n .description('Conductor config — import <path> merges into .faf; export prints it')\n .action((subcommand, path) => conductorCommand(subcommand, path));\n\nprogram\n .command('wjttc')\n .description('Audit test suite for WJTTC tier coverage (vendor-neutral)')\n .option('--path <path>', 'Test directory (default: tests)')\n .option('--strict', 'Exit non-zero if any tests are untiered')\n .option('--json', 'Output as JSON for CI consumption')\n .action((options) => wjttcCommand(options));\n\nprogram\n .command('memory [subcommand] [arg]')\n .description('.fafm soul ops — convert Claude memory, etch, recall, ls, show (etch and convert write soul.fafm)')\n .option('-f, --file <path>', 'Soul file (default: ./soul.fafm)')\n .option('-o, --output <path>', 'Output path (convert)')\n .option('--namepoint <handle>', 'Namepoint for new/converted soul')\n .option('--id <id>', 'Fact id (etch)')\n .option('--type <type>', 'Fact type filter / etch type')\n .option('--tag <tags>', 'Comma-separated tags (recall)')\n .option('--priority <level>', 'Min priority floor (recall) or etch priority')\n .option('--limit <n>', 'Max recall hits')\n .option('--json', 'JSON output')\n .option('--force', 'Overwrite an existing soul.fafm (convert)')\n .action((subcommand, arg, options) => memoryCommand(subcommand, arg, options));\n\n// === Soft Deprecation Aliases (v5.x compat) ===\n\nprogram.command('status', { hidden: true }).action(() => scoreCommand(undefined, { status: true }));\nprogram.command('agents', { hidden: true }).action(() => exportCommand({ agents: true }));\nprogram.command('cursor', { hidden: true }).action(() => exportCommand({ cursor: true }));\nprogram.command('gemini', { hidden: true }).action(() => exportCommand({ gemini: true }));\nprogram.command('grok', { hidden: true }).action(() => exportCommand({ grok: true }));\nprogram.command('llms', { hidden: true }).action(() => exportCommand({ llms: true }));\nprogram.command('validate [file]', { hidden: true }).action((file?: string) => checkCommand(file));\nprogram.command('yolo', { hidden: true }).action(() => initCommand({ yolo: true }));\n\n// === Parse and run ===\n\n// No command given → show Nelly header + score + help\nif (process.argv.length <= 2) {\n // Wrap top-level await in an async IIFE so `bun build --compile` accepts it.\n // (Plain `bun build` tolerates top-level await; --compile is stricter.)\n (async () => {\n const { bold, dim, fafCyan } = await import('./ui/colors.js');\n const cwd = process.cwd().replace(process.env.HOME ?? '', '~');\n\n // Nelly — pixel-art elephant (10×6 grid, half-block rendering)\n const G = '\\x1b[38;2;150;150;150m'; // gray fg\n const GB = '\\x1b[48;2;150;150;150m'; // gray bg\n const DF = '\\x1b[38;2;29;29;29m'; // dark fg (▄ trick)\n const DB = '\\x1b[48;2;29;29;29m'; // dark bg\n const RS = '\\x1b[0m';\n console.log('');\n // Row 1: back arc — canonical (March 23, commit 7eb1042)\n // Row 2: body — cell 3 is a SOLID DARK block (DF█ on GB bg) = the eye.\n // The canonical's `${DB}${G}▀` head-curve at cell 3 already put the eye\n // there as a subtle dark-bottom-half. Replacing with a full dark cell\n // makes the eye visible in any rendering (monochrome too) without changing\n // the silhouette width — `█` and `█` are the same character, just\n // re-coloured.\n console.log(`${DB} ${G}▄${GB}███████${DB}${G}▄${RS}`);\n console.log(`${DB} ${GB}${G}█${DF}█${G}███████${RS} ${fafCyan(bold('faf'))} ${dim(`v${VERSION}`)}`);\n const GR = '\\x1b[38;2;39;174;96m'; // grass green\n // Restore Nelly's clean dark gaps between legs (pre-grass-between-feet).\n // The fa74012 fix (\"restore Nelly's eye — revert grass between feet\") was\n // accidentally re-regressed somewhere between v6.0.12 and v6.3.3 (likely the\n // IIFE wrap copied an older line). Pinning the canonical here.\n console.log(`${DB}${G}▀${GB}${DF}▀${DB} ${GB}${G}██${DB} ${GB}${G}██${DB} ${RS} ${dim('Nelly Never Forgets')}`);\n console.log(`${GR}▔▔▔▔▔▔▔▔▔▔▔▔${RS}`);\n console.log(`${dim(` ${ cwd}`)}`);\n console.log('');\n try { await scoreCommand(undefined, { status: true }); } catch {}\n console.log('');\n console.log(` ${dim('Run')} ${fafCyan('faf --help')} ${dim('for commands')}`);\n })();\n} else {\n // Cohesion: present the 7.0 git-native surface as one group in `faf --help`,\n // so diff / log / hooks / driver / git read as a unit — \"feels like git\".\n program.addHelpText(\n 'after',\n [\n '',\n 'Git-native (The GIT Version):',\n ' faf diff [range] semantic context diff + score delta (A..B, A...B)',\n ' faf diff --install-driver make native `git diff` render .faf deltas',\n ' faf log score timeline across history (Proof-Over-Time)',\n ' faf hooks --install pre-commit guard against context regression',\n ' faf git <url> [--ref] instant scored context from any repo, any branch/tag',\n '',\n ' \"FAF is to Context what Git is to Versions.\"',\n '',\n 'What touches what:',\n ' read-only score check dna context drift log convert search share, diff (no --install-driver)',\n ' sends data ai analyze (Anthropic API) · bench --submit (mcpaas.live)',\n ' every command https://docs.faf.one/side-effects',\n '',\n ].join('\\n'),\n );\n // A refused path (a link out of the project, a dangling link), a file that\n // is not UTF-8, one that changed on disk while faf was writing, one faf\n // cannot prove it wrote, or a write that failed with the original kept (a\n // read-only file, a full disk) is an answer, not a crash: say it in one line\n // and exit 1. parseAsync, so a refusal inside an async command (faf go,\n // faf ai) is caught too.\n program.parseAsync(process.argv).catch((e: unknown) => {\n if (!isOneLineError(e)) {throw e;}\n console.error(oneLine(e, commandHasForce()));\n process.exit(1);\n });\n}\n\n/** True when the command being run takes --force. */\nfunction commandHasForce(): boolean {\n const name = process.argv[2];\n const cmd = program.commands.find(c => c.name() === name || c.aliases().includes(name));\n return cmd?.options.some(o => o.long === '--force') ?? false;\n}\n"
257
+ "#!/usr/bin/env node\n\nimport { Command } from 'commander';\nimport { scoreCommand } from './commands/score.js';\nimport { initCommand } from './commands/init.js';\nimport { dnaCommand } from './commands/dna.js';\nimport { autoCommand } from './commands/auto.js';\nimport { loopCommand } from './commands/loop.js';\nimport { syncCommand } from './commands/sync.js';\nimport { compileCommand } from './commands/compile.js';\nimport { decompileCommand } from './commands/decompile.js';\nimport { checkCommand } from './commands/check.js';\nimport { exportCommand } from './commands/export.js';\nimport { serverCardCommand } from './commands/server-card.js';\nimport { cardsCommand } from './commands/cards.js';\nimport { cardInitCommand } from './commands/card.js';\nimport { showCommand } from './commands/show.js';\nimport { gitCommand } from './commands/git.js';\nimport { diffCommand, diffDriverCommand } from './commands/diff.js';\nimport { logCommand } from './commands/log.js';\nimport { hooksCommand, hooksRun } from './commands/hooks.js';\nimport { infoCommand } from './commands/info.js';\nimport { formatsCommand } from './commands/formats.js';\nimport { clearCommand } from './commands/clear.js';\nimport { convertCommand } from './commands/convert.js';\nimport { contextCommand } from './commands/context.js';\nimport { driftCommand } from './commands/drift.js';\nimport { editCommand } from './commands/edit.js';\nimport { migrateCommand } from './commands/migrate.js';\nimport { proCommand } from './commands/pro.js';\nimport { shareCommand } from './commands/share.js';\nimport { demoCommand } from './commands/demo.js';\nimport { searchCommand } from './commands/search.js';\nimport { tafCommand } from './commands/taf.js';\nimport { goCommand } from './commands/go.js';\nimport { aiCommand } from './commands/ai.js';\nimport { conductorCommand } from './commands/conductor.js';\nimport { wjttcCommand } from './commands/wjttc.js';\nimport { benchCommand } from './commands/bench.js';\nimport { refreshCommand } from './commands/refresh.js';\nimport { memoryCommand } from './commands/memory.js';\nimport { isOneLineError, oneLine } from './core/refusal.js';\n\nconst { version: VERSION } = require('../package.json');\n\nconst program = new Command();\n\nprogram\n .name('faf')\n .description('Foundational AI context + memory — .faf and .fafm for any AI')\n .version(VERSION, '-v, --version');\n\n// === Core Commands (Top 6) ===\n\nprogram\n .command('init')\n .description('Create .faf from your project')\n .option('--yolo', 'Quick init with sensible defaults')\n .option('--quick', 'Alias for --yolo')\n .option('--new', 'Replace project.faf with a fresh one; .faf-dna is kept as it is')\n .option('--force', 'Start over: replace project.faf and start a new birth in .faf-dna')\n .option('--output <path>', 'Output path')\n .action((options) => initCommand(options));\n\nprogram\n .command('dna')\n .description('🧬 Show your FAF DNA journey (birth → growth)')\n .option('--json', 'Output the lineage as JSON')\n .action((options) => dnaCommand(options));\n\nprogram\n .command('auto')\n .description('Fill every tech slot from the repo, then score')\n .action(() => autoCommand());\n\nprogram\n .command('loop')\n .description('Drive to 100% — source what we can, then ask only the human')\n .option('-r, --rounds <n>', 'max auto rounds before stopping', '5')\n .action((options) => loopCommand(options));\n\nprogram\n .command('go')\n .description('Guided interview to gold code')\n .option('--resume', 'Resume previous session')\n .action((options) => goCommand(options));\n\nprogram\n .command('score [file]')\n .description('Score a .faf file')\n .option('--verbose', 'Show slot breakdown')\n .option('--status', 'Compact one-liner output')\n .option('--json', 'Output as JSON')\n .action((file, options) => scoreCommand(file, options));\n\nprogram\n .command('bench [action] [answersFile]')\n .description('AI-grounding benchmark — cold vs with-faf (the .faf is the answer key; grade saves .faf-bench.json)')\n .option('--json', 'Output as JSON')\n .option('--cold', 'Grade as the without-context run')\n .option('--faf', 'Grade as the with-context run')\n .option('--tokens <n>', 'Tokens used in the run (reported by the agent)')\n .option('--model <name>', 'Model that answered (reported)')\n .option('--file <path>', 'Path to project.faf (default: discovered)')\n .option('--submit', 'Submit the full-pair receipt to the public bench ledger (mcpaas.live; --endpoint to change)')\n .option('--endpoint <url>', 'Override the submit endpoint')\n .action((action, answersFile, options) => benchCommand(action, answersFile, options));\n\nprogram\n .command('show')\n .description('Render project.faf → project.html and open it')\n .option('--force', 'Replace a project.html faf cannot prove it rendered (edited since, or not faf\\'s)')\n .action((options) => showCommand(options));\n\nprogram\n .command('sync')\n .description('.faf → CLAUDE.md — one way; writes faf\\'s block only; Pro also updates Claude Code\\'s MEMORY.md')\n .option('--watch', 'Watch for changes')\n .action((options) => syncCommand(options));\n\n// === Power Commands ===\n\nprogram\n .command('compile [file]')\n .description('Compile .faf to .fafb binary')\n .option('--output <path>', 'Output path')\n .option('--force', 'Replace an output file that is not a .fafb faf compiled')\n .action((file, options) => compileCommand(file, options));\n\nprogram\n .command('decompile <file>')\n .description('Decompile .fafb to JSON (prints; --output writes a file)')\n .option('--output <path>', 'Output path')\n .option('--force', 'With --output: replace a file faf cannot prove it wrote (edited since, or not a faf decompile)')\n .action((file, options) => decompileCommand(file, options));\n\nprogram\n .command('git <url>')\n .description('Instant scored context from any GitHub repo (any branch/tag with --ref) — shallow-clones to a temp dir, writes ./project.faf (--stdout to print)')\n .option('--ref <ref>', 'Clone at a specific branch or tag (versioned context)')\n .option('--output <path>', 'Write to a custom path (default: ./project.faf)')\n .option('--force', 'Overwrite an existing project.faf')\n .option('--stdout', 'Print the .faf to stdout instead of writing a file')\n .action((url, options) => gitCommand(url, options));\n\nprogram\n .command('diff [range]')\n .description('Semantic context diff between two .faf versions (slot deltas + score). git ranges: <ref>, A..B, A...B')\n .option('--json', 'Emit the delta as structured JSON')\n .option('--install-driver', 'Wire faf diff into native git — `git diff` renders .faf score+slot deltas')\n .option('--uninstall-driver', 'Remove the native-git diff driver')\n .action((range, options) => diffCommand(range, options));\n\nprogram\n .command('diff-driver [args...]', { hidden: true })\n .description('Internal: GIT_EXTERNAL_DIFF handler invoked by git for diff=faf files')\n .action((args) => diffDriverCommand(args ?? []));\n\nprogram\n .command('log')\n .description('Score timeline across git history — the .faf score at every commit that touched it')\n .option('-n, --limit <n>', 'Max commits to show (default 20)')\n .option('--all', 'Show every commit, no cap')\n .option('--reverse', 'Oldest-first instead of newest-first')\n .option('--json', 'Emit the timeline as structured JSON')\n .action((options) => logCommand(options));\n\nprogram\n .command('hooks')\n .description('Pre-commit context guard — scores staged .faf vs HEAD, warns (or --strict blocks) on regression')\n .option('--install', 'Install the pre-commit hook')\n .option('--uninstall', 'Remove the faf hook block (preserves other hooks)')\n .option('--strict', 'With --install: block the commit on a score regression (default: warn only)')\n .action((options) => hooksCommand(options));\n\nprogram\n .command('hooks-run', { hidden: true })\n .description('Internal: the pre-commit context guard the git hook invokes')\n .option('--strict', 'Exit non-zero on a score regression')\n .action((options) => {\n hooksRun(options);\n // The guard runs inside `git commit`: once its line is written, exit, so it\n // can never hold a commit open waiting on a handle (#167). The blocked path\n // already exits inside hooksRun; every path that returns here allows the commit.\n const done = (): never => process.exit(0);\n setTimeout(done, 2000).unref();\n process.stdout.write('', () => process.stderr.write('', done));\n });\n\nprogram\n .command('export')\n .description('Write agent files from .faf — bare: AGENTS.md, .cursorrules, GEMINI.md, Copilot instructions, project.html')\n .option('--agents', 'Author AGENTS.md')\n .option('--cursor', 'Author .cursorrules')\n .option('--gemini', 'Author GEMINI.md')\n .option('--copilot', 'Author .github/copilot-instructions.md (GitHub Copilot)')\n .option('--grok', 'Wire grok-faf-mcp into .grok/config.toml (opt-in; never on --all)')\n .option('--llms', 'Author llms.txt (llmstxt.org view of authored 6Ws — opt-in)')\n .option('--conductor', 'Author conductor config')\n .option('--html', 'Author project.html (visual render of project.faf)')\n .option('--card', 'Author MCP Server Card (./server-card) with the FAF context-block')\n .option('--all', 'Author all formats')\n .option('--output <path>', 'Write exported files to this directory instead of the current one')\n .option('--force', 'Replace a project.html or Server Card faf cannot prove it wrote (edited since, or not faf\\'s)')\n .action((options) => exportCommand(options));\n\nprogram\n .command('server-card')\n .description('Emit the registry server.json identity (name + title + _meta) from project.faf — the cross-language server-card emitter; patches an existing file')\n .option('--in <path>', 'Existing server.json to patch (default: ./server.json)')\n .option('--out <path>', 'Output path (default: same as --in)')\n .option('--faf <path>', 'project.faf path (default: auto-discover)')\n .option('--set-version <version>', 'Set the version field (default: preserve existing). NOTE: not --version, which is the global CLI-version flag')\n .option('--generated <iso>', 'Override the _meta generated stamp (default: preserve existing)')\n .option('--check', 'Print to stdout, do not write (diff/verify — the idempotency-test hook)')\n .option('--force', 'With --out: replace a file faf cannot prove it wrote (edited since, or no faf identity)')\n .action((options) => serverCardCommand(options));\n\nprogram\n .command('cards')\n .description('Write the cards your files allow. BETTER: an agent.fafa → A2A card, MCP Server Card, registry, AI Catalog, ARD (as its endpoints allow). BEST: + project.faf → the same cards with FAF context. An agent.fafa with no mcp endpoint gets no MCP Server Card or registry server.json; nor does a project.faf alone whose type is not mcp, unless asked for with --target (--check prints, writes nothing)')\n .option('--target <list>', 'Comma list: a2a,mcp,registry,catalog,ard (default: whatever inputs allow)')\n .option('--faf <path>', 'project.faf path (default: auto-discover)')\n .option('--fafa <path>', 'agent.fafa path (default: auto-discover)')\n .option('--dir <path>', 'Working directory (default: cwd)')\n .option('--a2a-url <url>', 'Public URL of the A2A card (catalog row)')\n .option('--door-url <url>', 'A2A door when .fafa has no a2a endpoint')\n .option('--faf-pointer <url>', 'Absolute .faf pointer for served cards (default: ./project.faf)')\n .option('--check', 'Print projected cards to stdout, do not write')\n .option('--force', 'Replace a card file faf cannot prove it wrote (edited since, or not faf\\'s)')\n .action((options) => cardsCommand(options));\n\nconst repeat = (value: string, previous: string[] = []) => [...previous, value];\n\nconst card = program.command('card').description('One card at a time');\n\ncard\n .command('init')\n .description('Write an agent.fafa from seven answers: name, short name, domain, what it does, version, where it runs, what it can do')\n .option('--name <name>', 'Name people see, e.g. \"Weather Agent\"')\n .option('--short-name <handle>', 'Short name, lowercase (default: from --name)')\n .option('--domain <domain>', 'Domain it is published under, e.g. example.com')\n .option('--description <text>', 'What it does, one sentence')\n .option('--set-version <version>', 'Its version. NOTE: not --version, which is the global CLI-version flag')\n .option('--url <url>', 'Where it runs: a live endpoint people call over http(s). For something people install (a CLI, a library, a stdio MCP server), use --package')\n .option('--protocol <protocol>', 'Protocol at --url: a2a or mcp (default: a2a)')\n .option('--package <name>', 'Where it runs: a package people install. A bare name is npm; or npm:<name>, pypi:<name>, crates:<name>')\n .option('--kind <kind>', 'What --package is: mcp (an MCP server, the default), cli or library. Only mcp gets MCP cards')\n .option('--homepage <url>', 'Its homepage, an http(s) URL (default: https://<domain>)')\n .option('--skill <skill>', 'What it can do, \"Name: description\" (repeatable)', repeat)\n .option('--example <question>', 'A question people ask it; search finds it by these (repeatable, 2-5)', repeat)\n .option('--dir <path>', 'Working directory (default: cwd)')\n .option('--out <path>', 'Output path (default: ./agent.fafa)')\n .option('--force', 'Replace an existing agent.fafa')\n .action((options) => cardInitCommand(options));\n\nprogram\n .command('check [file]')\n .description('Validate .faf file')\n .option('--strict', 'Require 100% score')\n .option('--fix', 'Auto-fix issues')\n .option('--doctor', 'Full diagnostic')\n .option('--trust', 'Verify trust chain')\n .option('--verbose', 'Show slot breakdown')\n .action((file, options) => checkCommand(file, options));\n\nprogram\n .command('info')\n .description('Show version and system info')\n .option('--version', 'Show version')\n .option('--faq', 'Show FAQ')\n .option('--index', 'Show command index')\n .option('--stacks', 'Show supported stacks')\n .action((options) => infoCommand(options));\n\n// === Phase A Commands ===\n\nprogram\n .command('formats')\n .description('Show supported formats')\n .action(() => formatsCommand());\n\nprogram\n .command('clear')\n .description('Delete faf\\'s cached clones (faf-git-* temp dirs)')\n .action(() => clearCommand());\n\nprogram\n .command('convert')\n .description('Print .faf as YAML or JSON (writes nothing)')\n .option('--json', 'Output as JSON')\n .action((options) => convertCommand(options));\n\nprogram\n .command('context')\n .description('Author context output')\n .action(() => contextCommand());\n\nprogram\n .command('refresh')\n .description('Re-ground on the live .faf — re-score, measure drift vs the DNA baseline, keep .fafb current')\n .option('--json', 'Output as JSON')\n .action((options) => refreshCommand(options));\n\nprogram\n .command('drift')\n .description('Check context drift')\n .option('--json', 'Emit the drift report as structured JSON')\n .action((options) => driftCommand(options));\n\nprogram\n .command('edit <path> <value>')\n .description('Edit .faf fields')\n .action((path, value) => editCommand(path, value));\n\n// === Phase B Commands ===\n\nprogram\n .command('migrate')\n .description('Migrate .faf to latest version')\n .option('--dry-run', 'Preview changes without writing')\n .action((options) => migrateCommand(options));\n\nprogram\n .command('pro [subcommand]')\n .description('Pro features & licensing (activate opens faf.one/pro)')\n .action((subcommand) => proCommand(subcommand));\n\nprogram\n .command('share')\n .description('Print a faf.one share link for .faf (built locally — nothing is sent)')\n .option('--copy', 'Copy to clipboard')\n .option('--raw', 'Output encoded string only')\n .action((options) => shareCommand(options));\n\nprogram\n .command('demo')\n .description('Demo walkthrough')\n .action(() => demoCommand());\n\nprogram\n .command('search <query>')\n .description('Search slots and formats')\n .option('--slots', 'Search slots only')\n .option('--formats', 'Search formats only')\n .action((query, options) => searchCommand(query, options));\n\nprogram\n .command('taf [subcommand]')\n .description('TAF Receipts — `faf taf setup` prints the CI receipt workflow (--write creates it); bare snapshot deprecated → faf score --json')\n .option('--output <path>', 'Write score snapshot to file')\n .option('--write', 'taf setup: create .github/workflows/taf.yml')\n .option('--force', 'With --output: replace a file faf cannot prove it wrote (edited since, or not a TAF snapshot)')\n .action((subcommand, options) => tafCommand(subcommand, options));\n\n// === Phase C Commands ===\n\nprogram\n .command('ai [subcommand]')\n .description('Ask Claude for suggestions about project.faf (analyze) — sends it to the Anthropic API, writes nothing')\n .action((subcommand) => aiCommand(subcommand));\n\nprogram\n .command('conductor [subcommand] [path]')\n .description('Conductor config — import <path> merges into .faf; export prints it')\n .action((subcommand, path) => conductorCommand(subcommand, path));\n\nprogram\n .command('wjttc')\n .description('Audit test suite for WJTTC tier coverage (vendor-neutral)')\n .option('--path <path>', 'Test directory (default: tests)')\n .option('--strict', 'Exit non-zero if any tests are untiered')\n .option('--json', 'Output as JSON for CI consumption')\n .action((options) => wjttcCommand(options));\n\nprogram\n .command('memory [subcommand] [arg]')\n .description('.fafm soul ops — convert Claude memory, etch, recall, ls, show (etch and convert write soul.fafm)')\n .option('-f, --file <path>', 'Soul file (default: ./soul.fafm)')\n .option('-o, --output <path>', 'Output path (convert)')\n .option('--namepoint <handle>', 'Namepoint for new/converted soul')\n .option('--id <id>', 'Fact id (etch)')\n .option('--type <type>', 'Fact type filter / etch type')\n .option('--tag <tags>', 'Comma-separated tags (recall)')\n .option('--priority <level>', 'Min priority floor (recall) or etch priority')\n .option('--limit <n>', 'Max recall hits')\n .option('--json', 'JSON output')\n .option('--force', 'Overwrite an existing soul.fafm (convert)')\n .action((subcommand, arg, options) => memoryCommand(subcommand, arg, options));\n\n// === Soft Deprecation Aliases (v5.x compat) ===\n\nprogram.command('status', { hidden: true }).action(() => scoreCommand(undefined, { status: true }));\nprogram.command('agents', { hidden: true }).action(() => exportCommand({ agents: true }));\nprogram.command('cursor', { hidden: true }).action(() => exportCommand({ cursor: true }));\nprogram.command('gemini', { hidden: true }).action(() => exportCommand({ gemini: true }));\nprogram.command('grok', { hidden: true }).action(() => exportCommand({ grok: true }));\nprogram.command('llms', { hidden: true }).action(() => exportCommand({ llms: true }));\nprogram.command('validate [file]', { hidden: true }).action((file?: string) => checkCommand(file));\nprogram.command('yolo', { hidden: true }).action(() => initCommand({ yolo: true }));\n\n// === Parse and run ===\n\n// No command given → show Nelly header + score + help\nif (process.argv.length <= 2) {\n // Wrap top-level await in an async IIFE so `bun build --compile` accepts it.\n // (Plain `bun build` tolerates top-level await; --compile is stricter.)\n (async () => {\n const { bold, dim, fafCyan } = await import('./ui/colors.js');\n const cwd = process.cwd().replace(process.env.HOME ?? '', '~');\n\n // Nelly — pixel-art elephant (10×6 grid, half-block rendering)\n const G = '\\x1b[38;2;150;150;150m'; // gray fg\n const GB = '\\x1b[48;2;150;150;150m'; // gray bg\n const DF = '\\x1b[38;2;29;29;29m'; // dark fg (▄ trick)\n const DB = '\\x1b[48;2;29;29;29m'; // dark bg\n const RS = '\\x1b[0m';\n console.log('');\n // Row 1: back arc — canonical (March 23, commit 7eb1042)\n // Row 2: body — cell 3 is a SOLID DARK block (DF█ on GB bg) = the eye.\n // The canonical's `${DB}${G}▀` head-curve at cell 3 already put the eye\n // there as a subtle dark-bottom-half. Replacing with a full dark cell\n // makes the eye visible in any rendering (monochrome too) without changing\n // the silhouette width — `█` and `█` are the same character, just\n // re-coloured.\n console.log(`${DB} ${G}▄${GB}███████${DB}${G}▄${RS}`);\n console.log(`${DB} ${GB}${G}█${DF}█${G}███████${RS} ${fafCyan(bold('faf'))} ${dim(`v${VERSION}`)}`);\n const GR = '\\x1b[38;2;39;174;96m'; // grass green\n // Restore Nelly's clean dark gaps between legs (pre-grass-between-feet).\n // The fa74012 fix (\"restore Nelly's eye — revert grass between feet\") was\n // accidentally re-regressed somewhere between v6.0.12 and v6.3.3 (likely the\n // IIFE wrap copied an older line). Pinning the canonical here.\n console.log(`${DB}${G}▀${GB}${DF}▀${DB} ${GB}${G}██${DB} ${GB}${G}██${DB} ${RS} ${dim('Nelly Never Forgets')}`);\n console.log(`${GR}▔▔▔▔▔▔▔▔▔▔▔▔${RS}`);\n console.log(`${dim(` ${ cwd}`)}`);\n console.log('');\n try { await scoreCommand(undefined, { status: true }); } catch {}\n console.log('');\n console.log(` ${dim('Run')} ${fafCyan('faf --help')} ${dim('for commands')}`);\n })();\n} else {\n // Cohesion: present the 7.0 git-native surface as one group in `faf --help`,\n // so diff / log / hooks / driver / git read as a unit — \"feels like git\".\n program.addHelpText(\n 'after',\n [\n '',\n 'Git-native (The GIT Version):',\n ' faf diff [range] semantic context diff + score delta (A..B, A...B)',\n ' faf diff --install-driver make native `git diff` render .faf deltas',\n ' faf log score timeline across history (Proof-Over-Time)',\n ' faf hooks --install pre-commit guard against context regression',\n ' faf git <url> [--ref] instant scored context from any repo, any branch/tag',\n '',\n ' \"FAF is to Context what Git is to Versions.\"',\n '',\n 'What touches what:',\n ' read-only score check dna context drift log convert search share, diff (no --install-driver)',\n ' sends data ai analyze (Anthropic API) · bench --submit (mcpaas.live)',\n ' every command https://docs.faf.one/side-effects',\n '',\n ].join('\\n'),\n );\n // A refused path (a link out of the project, a dangling link), a file that\n // is not UTF-8, one that changed on disk while faf was writing, one faf\n // cannot prove it wrote, or a write that failed with the original kept (a\n // read-only file, a full disk) is an answer, not a crash: say it in one line\n // and exit 1. parseAsync, so a refusal inside an async command (faf go,\n // faf ai) is caught too.\n program.parseAsync(process.argv).catch((e: unknown) => {\n if (!isOneLineError(e)) {throw e;}\n console.error(oneLine(e, commandHasForce()));\n process.exit(1);\n });\n}\n\n/** True when the command being run takes --force. */\nfunction commandHasForce(): boolean {\n const name = process.argv[2];\n const cmd = program.commands.find(c => c.name() === name || c.aliases().includes(name));\n return cmd?.options.some(o => o.long === '--force') ?? false;\n}\n"
257
258
  ],
258
- "mappings": "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",
259
- "debugId": "EBF7CE5EACCAD64064756E2164756E21",
259
+ "mappings": "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",
260
+ "debugId": "C32E756BA79783B964756E2164756E21",
260
261
  "names": []
261
262
  }