faf-cli 8.2.0 → 8.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -2
- package/dist/cli.js +267 -267
- package/dist/cli.js.map +11 -12
- package/dist/core/safe-write.d.ts +2 -2
- package/dist/core/version.d.ts +1 -1
- package/dist/index.js +29 -29
- package/dist/index.js.map +8 -8
- package/dist/interop/cards.d.ts +1 -1
- package/dist/interop/claude.d.ts +2 -2
- package/dist/interop/faf.d.ts +1 -1
- package/dist/pack.js +3 -3
- package/dist/pack.js.map +3 -3
- package/package.json +1 -1
- package/project.faf +3 -3
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/core/schema.ts", "../src/commands/check.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/recover.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/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/core/schema.ts", "../src/commands/check.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"],
|
|
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",
|
|
@@ -146,9 +146,9 @@
|
|
|
146
146
|
"// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar _BaseAnthropic_instances, _a, _BaseAnthropic_encoder, _BaseAnthropic_baseURLOverridden;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"./internal/tslib.mjs\";\nimport { uuid4 } from \"./internal/utils/uuid.mjs\";\nimport { validatePositiveInteger, isAbsoluteURL, safeJSON } from \"./internal/utils/values.mjs\";\nimport { sleep } from \"./internal/utils/sleep.mjs\";\nimport { castToError, isAbortError } from \"./internal/errors.mjs\";\nimport { getPlatformHeaders } from \"./internal/detect-platform.mjs\";\nimport * as Shims from \"./internal/shims.mjs\";\nimport * as Opts from \"./internal/request-options.mjs\";\nimport { stringifyQuery } from \"./internal/utils/query.mjs\";\nimport { VERSION } from \"./version.mjs\";\nimport * as Errors from \"./core/error.mjs\";\nimport * as Pagination from \"./core/pagination.mjs\";\nimport * as Uploads from \"./core/uploads.mjs\";\nimport * as API from \"./resources/index.mjs\";\nimport { APIPromise } from \"./core/api-promise.mjs\";\nimport { Completions, } from \"./resources/completions.mjs\";\nimport { Models, } from \"./resources/models.mjs\";\nimport { Beta, } from \"./resources/beta/beta.mjs\";\nimport { Messages, } from \"./resources/messages/messages.mjs\";\nimport { isRunningInBrowser } from \"./internal/detect-platform.mjs\";\nimport { buildHeaders } from \"./internal/headers.mjs\";\nimport { readEnv } from \"./internal/utils/env.mjs\";\nimport { formatRequestDetails, loggerFor, parseLogLevel, } from \"./internal/utils/log.mjs\";\nimport { isEmptyObj } from \"./internal/utils/values.mjs\";\nexport const HUMAN_PROMPT = '\\\\n\\\\nHuman:';\nexport const AI_PROMPT = '\\\\n\\\\nAssistant:';\n/**\n * Base class for Anthropic API clients.\n */\nexport class BaseAnthropic {\n /**\n * API Client for interfacing with the Anthropic API.\n *\n * @param {string | null | undefined} [opts.apiKey=process.env['ANTHROPIC_API_KEY'] ?? null]\n * @param {string | null | undefined} [opts.authToken=process.env['ANTHROPIC_AUTH_TOKEN'] ?? null]\n * @param {string} [opts.baseURL=process.env['ANTHROPIC_BASE_URL'] ?? https://api.anthropic.com] - Override the default base URL for the API.\n * @param {number} [opts.timeout=10 minutes] - The maximum amount of time (in milliseconds) the client will wait for a response before timing out.\n * @param {MergedRequestInit} [opts.fetchOptions] - Additional `RequestInit` options to be passed to `fetch` calls.\n * @param {Fetch} [opts.fetch] - Specify a custom `fetch` function implementation.\n * @param {number} [opts.maxRetries=2] - The maximum number of times the client will retry a request.\n * @param {HeadersLike} opts.defaultHeaders - Default headers to include with every request to the API.\n * @param {Record<string, string | undefined>} opts.defaultQuery - Default query parameters to include with every request to the API.\n * @param {boolean} [opts.dangerouslyAllowBrowser=false] - By default, client-side use of this library is not allowed, as it risks exposing your secret API credentials to attackers.\n */\n constructor({ baseURL = readEnv('ANTHROPIC_BASE_URL'), apiKey = readEnv('ANTHROPIC_API_KEY') ?? null, authToken = readEnv('ANTHROPIC_AUTH_TOKEN') ?? null, ...opts } = {}) {\n _BaseAnthropic_instances.add(this);\n _BaseAnthropic_encoder.set(this, void 0);\n const options = {\n apiKey,\n authToken,\n ...opts,\n baseURL: baseURL || `https://api.anthropic.com`,\n };\n if (!options.dangerouslyAllowBrowser && isRunningInBrowser()) {\n throw new Errors.AnthropicError(\"It looks like you're running in a browser-like environment.\\n\\nThis is disabled by default, as it risks exposing your secret API credentials to attackers.\\nIf you understand the risks and have appropriate mitigations in place,\\nyou can set the `dangerouslyAllowBrowser` option to `true`, e.g.,\\n\\nnew Anthropic({ apiKey, dangerouslyAllowBrowser: true });\\n\");\n }\n this.baseURL = options.baseURL;\n this.timeout = options.timeout ?? _a.DEFAULT_TIMEOUT /* 10 minutes */;\n this.logger = options.logger ?? console;\n const defaultLogLevel = 'warn';\n // Set default logLevel early so that we can log a warning in parseLogLevel.\n this.logLevel = defaultLogLevel;\n this.logLevel =\n parseLogLevel(options.logLevel, 'ClientOptions.logLevel', this) ??\n parseLogLevel(readEnv('ANTHROPIC_LOG'), \"process.env['ANTHROPIC_LOG']\", this) ??\n defaultLogLevel;\n this.fetchOptions = options.fetchOptions;\n this.maxRetries = options.maxRetries ?? 2;\n this.fetch = options.fetch ?? Shims.getDefaultFetch();\n __classPrivateFieldSet(this, _BaseAnthropic_encoder, Opts.FallbackEncoder, \"f\");\n this._options = options;\n this.apiKey = typeof apiKey === 'string' ? apiKey : null;\n this.authToken = authToken;\n }\n /**\n * Create a new client instance re-using the same options given to the current client with optional overriding.\n */\n withOptions(options) {\n const client = new this.constructor({\n ...this._options,\n baseURL: this.baseURL,\n maxRetries: this.maxRetries,\n timeout: this.timeout,\n logger: this.logger,\n logLevel: this.logLevel,\n fetch: this.fetch,\n fetchOptions: this.fetchOptions,\n apiKey: this.apiKey,\n authToken: this.authToken,\n ...options,\n });\n return client;\n }\n defaultQuery() {\n return this._options.defaultQuery;\n }\n validateHeaders({ values, nulls }) {\n if (values.get('x-api-key') || values.get('authorization')) {\n return;\n }\n if (this.apiKey && values.get('x-api-key')) {\n return;\n }\n if (nulls.has('x-api-key')) {\n return;\n }\n if (this.authToken && values.get('authorization')) {\n return;\n }\n if (nulls.has('authorization')) {\n return;\n }\n throw new Error('Could not resolve authentication method. Expected either apiKey or authToken to be set. Or for one of the \"X-Api-Key\" or \"Authorization\" headers to be explicitly omitted');\n }\n async authHeaders(opts) {\n return buildHeaders([await this.apiKeyAuth(opts), await this.bearerAuth(opts)]);\n }\n async apiKeyAuth(opts) {\n if (this.apiKey == null) {\n return undefined;\n }\n return buildHeaders([{ 'X-Api-Key': this.apiKey }]);\n }\n async bearerAuth(opts) {\n if (this.authToken == null) {\n return undefined;\n }\n return buildHeaders([{ Authorization: `Bearer ${this.authToken}` }]);\n }\n /**\n * Basic re-implementation of `qs.stringify` for primitive types.\n */\n stringifyQuery(query) {\n return stringifyQuery(query);\n }\n getUserAgent() {\n return `${this.constructor.name}/JS ${VERSION}`;\n }\n defaultIdempotencyKey() {\n return `stainless-node-retry-${uuid4()}`;\n }\n makeStatusError(status, error, message, headers) {\n return Errors.APIError.generate(status, error, message, headers);\n }\n buildURL(path, query, defaultBaseURL) {\n const baseURL = (!__classPrivateFieldGet(this, _BaseAnthropic_instances, \"m\", _BaseAnthropic_baseURLOverridden).call(this) && defaultBaseURL) || this.baseURL;\n const url = isAbsoluteURL(path) ?\n new URL(path)\n : new URL(baseURL + (baseURL.endsWith('/') && path.startsWith('/') ? path.slice(1) : path));\n const defaultQuery = this.defaultQuery();\n const pathQuery = Object.fromEntries(url.searchParams);\n if (!isEmptyObj(defaultQuery) || !isEmptyObj(pathQuery)) {\n query = { ...pathQuery, ...defaultQuery, ...query };\n }\n if (typeof query === 'object' && query && !Array.isArray(query)) {\n url.search = this.stringifyQuery(query);\n }\n return url.toString();\n }\n _calculateNonstreamingTimeout(maxTokens) {\n const defaultTimeout = 10 * 60;\n const expectedTimeout = (60 * 60 * maxTokens) / 128000;\n if (expectedTimeout > defaultTimeout) {\n throw new Errors.AnthropicError('Streaming is required for operations that may take longer than 10 minutes. ' +\n 'See https://github.com/anthropics/anthropic-sdk-typescript#streaming-responses for more details');\n }\n return defaultTimeout * 1000;\n }\n /**\n * Used as a callback for mutating the given `FinalRequestOptions` object.\n */\n async prepareOptions(options) { }\n /**\n * Used as a callback for mutating the given `RequestInit` object.\n *\n * This is useful for cases where you want to add certain headers based off of\n * the request properties, e.g. `method` or `url`.\n */\n async prepareRequest(request, { url, options }) { }\n get(path, opts) {\n return this.methodRequest('get', path, opts);\n }\n post(path, opts) {\n return this.methodRequest('post', path, opts);\n }\n patch(path, opts) {\n return this.methodRequest('patch', path, opts);\n }\n put(path, opts) {\n return this.methodRequest('put', path, opts);\n }\n delete(path, opts) {\n return this.methodRequest('delete', path, opts);\n }\n methodRequest(method, path, opts) {\n return this.request(Promise.resolve(opts).then((opts) => {\n return { method, path, ...opts };\n }));\n }\n request(options, remainingRetries = null) {\n return new APIPromise(this, this.makeRequest(options, remainingRetries, undefined));\n }\n async makeRequest(optionsInput, retriesRemaining, retryOfRequestLogID) {\n const options = await optionsInput;\n const maxRetries = options.maxRetries ?? this.maxRetries;\n if (retriesRemaining == null) {\n retriesRemaining = maxRetries;\n }\n await this.prepareOptions(options);\n const { req, url, timeout } = await this.buildRequest(options, {\n retryCount: maxRetries - retriesRemaining,\n });\n await this.prepareRequest(req, { url, options });\n /** Not an API request ID, just for correlating local log entries. */\n const requestLogID = 'log_' + ((Math.random() * (1 << 24)) | 0).toString(16).padStart(6, '0');\n const retryLogStr = retryOfRequestLogID === undefined ? '' : `, retryOf: ${retryOfRequestLogID}`;\n const startTime = Date.now();\n loggerFor(this).debug(`[${requestLogID}] sending request`, formatRequestDetails({\n retryOfRequestLogID,\n method: options.method,\n url,\n options,\n headers: req.headers,\n }));\n if (options.signal?.aborted) {\n throw new Errors.APIUserAbortError();\n }\n const controller = new AbortController();\n const response = await this.fetchWithTimeout(url, req, timeout, controller).catch(castToError);\n const headersTime = Date.now();\n if (response instanceof globalThis.Error) {\n const retryMessage = `retrying, ${retriesRemaining} attempts remaining`;\n if (options.signal?.aborted) {\n throw new Errors.APIUserAbortError();\n }\n // detect native connection timeout errors\n // deno throws \"TypeError: error sending request for url (https://example/): client error (Connect): tcp connect error: Operation timed out (os error 60): Operation timed out (os error 60)\"\n // undici throws \"TypeError: fetch failed\" with cause \"ConnectTimeoutError: Connect Timeout Error (attempted address: example:443, timeout: 1ms)\"\n // others do not provide enough information to distinguish timeouts from other connection errors\n const isTimeout = isAbortError(response) ||\n /timed? ?out/i.test(String(response) + ('cause' in response ? String(response.cause) : ''));\n if (retriesRemaining) {\n loggerFor(this).info(`[${requestLogID}] connection ${isTimeout ? 'timed out' : 'failed'} - ${retryMessage}`);\n loggerFor(this).debug(`[${requestLogID}] connection ${isTimeout ? 'timed out' : 'failed'} (${retryMessage})`, formatRequestDetails({\n retryOfRequestLogID,\n url,\n durationMs: headersTime - startTime,\n message: response.message,\n }));\n return this.retryRequest(options, retriesRemaining, retryOfRequestLogID ?? requestLogID);\n }\n loggerFor(this).info(`[${requestLogID}] connection ${isTimeout ? 'timed out' : 'failed'} - error; no more retries left`);\n loggerFor(this).debug(`[${requestLogID}] connection ${isTimeout ? 'timed out' : 'failed'} (error; no more retries left)`, formatRequestDetails({\n retryOfRequestLogID,\n url,\n durationMs: headersTime - startTime,\n message: response.message,\n }));\n if (isTimeout) {\n throw new Errors.APIConnectionTimeoutError();\n }\n throw new Errors.APIConnectionError({ cause: response });\n }\n const specialHeaders = [...response.headers.entries()]\n .filter(([name]) => name === 'request-id')\n .map(([name, value]) => ', ' + name + ': ' + JSON.stringify(value))\n .join('');\n const responseInfo = `[${requestLogID}${retryLogStr}${specialHeaders}] ${req.method} ${url} ${response.ok ? 'succeeded' : 'failed'} with status ${response.status} in ${headersTime - startTime}ms`;\n if (!response.ok) {\n const shouldRetry = await this.shouldRetry(response);\n if (retriesRemaining && shouldRetry) {\n const retryMessage = `retrying, ${retriesRemaining} attempts remaining`;\n // We don't need the body of this response.\n await Shims.CancelReadableStream(response.body);\n loggerFor(this).info(`${responseInfo} - ${retryMessage}`);\n loggerFor(this).debug(`[${requestLogID}] response error (${retryMessage})`, formatRequestDetails({\n retryOfRequestLogID,\n url: response.url,\n status: response.status,\n headers: response.headers,\n durationMs: headersTime - startTime,\n }));\n return this.retryRequest(options, retriesRemaining, retryOfRequestLogID ?? requestLogID, response.headers);\n }\n const retryMessage = shouldRetry ? `error; no more retries left` : `error; not retryable`;\n loggerFor(this).info(`${responseInfo} - ${retryMessage}`);\n const errText = await response.text().catch((err) => castToError(err).message);\n const errJSON = safeJSON(errText);\n const errMessage = errJSON ? undefined : errText;\n loggerFor(this).debug(`[${requestLogID}] response error (${retryMessage})`, formatRequestDetails({\n retryOfRequestLogID,\n url: response.url,\n status: response.status,\n headers: response.headers,\n message: errMessage,\n durationMs: Date.now() - startTime,\n }));\n const err = this.makeStatusError(response.status, errJSON, errMessage, response.headers);\n throw err;\n }\n loggerFor(this).info(responseInfo);\n loggerFor(this).debug(`[${requestLogID}] response start`, formatRequestDetails({\n retryOfRequestLogID,\n url: response.url,\n status: response.status,\n headers: response.headers,\n durationMs: headersTime - startTime,\n }));\n return { response, options, controller, requestLogID, retryOfRequestLogID, startTime };\n }\n getAPIList(path, Page, opts) {\n return this.requestAPIList(Page, opts && 'then' in opts ?\n opts.then((opts) => ({ method: 'get', path, ...opts }))\n : { method: 'get', path, ...opts });\n }\n requestAPIList(Page, options) {\n const request = this.makeRequest(options, null, undefined);\n return new Pagination.PagePromise(this, request, Page);\n }\n async fetchWithTimeout(url, init, ms, controller) {\n const { signal, method, ...options } = init || {};\n // Avoid creating a closure over `this`, `init`, or `options` to prevent memory leaks.\n // An arrow function like `() => controller.abort()` captures the surrounding scope,\n // which includes the request body and other large objects. When the user passes a\n // long-lived AbortSignal, the listener prevents those objects from being GC'd for\n // the lifetime of the signal. Using `.bind()` only retains a reference to the\n // controller itself.\n const abort = this._makeAbort(controller);\n if (signal)\n signal.addEventListener('abort', abort, { once: true });\n const timeout = setTimeout(abort, ms);\n const isReadableBody = (globalThis.ReadableStream && options.body instanceof globalThis.ReadableStream) ||\n (typeof options.body === 'object' && options.body !== null && Symbol.asyncIterator in options.body);\n const fetchOptions = {\n signal: controller.signal,\n ...(isReadableBody ? { duplex: 'half' } : {}),\n method: 'GET',\n ...options,\n };\n if (method) {\n // Custom methods like 'patch' need to be uppercased\n // See https://github.com/nodejs/undici/issues/2294\n fetchOptions.method = method.toUpperCase();\n }\n try {\n // use undefined this binding; fetch errors if bound to something else in browser/cloudflare\n return await this.fetch.call(undefined, url, fetchOptions);\n }\n finally {\n clearTimeout(timeout);\n }\n }\n async shouldRetry(response) {\n // Note this is not a standard header.\n const shouldRetryHeader = response.headers.get('x-should-retry');\n // If the server explicitly says whether or not to retry, obey.\n if (shouldRetryHeader === 'true')\n return true;\n if (shouldRetryHeader === 'false')\n return false;\n // Retry on request timeouts.\n if (response.status === 408)\n return true;\n // Retry on lock timeouts.\n if (response.status === 409)\n return true;\n // Retry on rate limits.\n if (response.status === 429)\n return true;\n // Retry internal errors.\n if (response.status >= 500)\n return true;\n return false;\n }\n async retryRequest(options, retriesRemaining, requestLogID, responseHeaders) {\n let timeoutMillis;\n // Note the `retry-after-ms` header may not be standard, but is a good idea and we'd like proactive support for it.\n const retryAfterMillisHeader = responseHeaders?.get('retry-after-ms');\n if (retryAfterMillisHeader) {\n const timeoutMs = parseFloat(retryAfterMillisHeader);\n if (!Number.isNaN(timeoutMs)) {\n timeoutMillis = timeoutMs;\n }\n }\n // About the Retry-After header: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Retry-After\n const retryAfterHeader = responseHeaders?.get('retry-after');\n if (retryAfterHeader && !timeoutMillis) {\n const timeoutSeconds = parseFloat(retryAfterHeader);\n if (!Number.isNaN(timeoutSeconds)) {\n timeoutMillis = timeoutSeconds * 1000;\n }\n else {\n timeoutMillis = Date.parse(retryAfterHeader) - Date.now();\n }\n }\n // If the API asks us to wait a certain amount of time, just do what it\n // says, but otherwise calculate a default\n if (timeoutMillis === undefined) {\n const maxRetries = options.maxRetries ?? this.maxRetries;\n timeoutMillis = this.calculateDefaultRetryTimeoutMillis(retriesRemaining, maxRetries);\n }\n await sleep(timeoutMillis);\n return this.makeRequest(options, retriesRemaining - 1, requestLogID);\n }\n calculateDefaultRetryTimeoutMillis(retriesRemaining, maxRetries) {\n const initialRetryDelay = 0.5;\n const maxRetryDelay = 8.0;\n const numRetries = maxRetries - retriesRemaining;\n // Apply exponential backoff, but not more than the max.\n const sleepSeconds = Math.min(initialRetryDelay * Math.pow(2, numRetries), maxRetryDelay);\n // Apply some jitter, take up to at most 25 percent of the retry time.\n const jitter = 1 - Math.random() * 0.25;\n return sleepSeconds * jitter * 1000;\n }\n calculateNonstreamingTimeout(maxTokens, maxNonstreamingTokens) {\n const maxTime = 60 * 60 * 1000; // 60 minutes\n const defaultTime = 60 * 10 * 1000; // 10 minutes\n const expectedTime = (maxTime * maxTokens) / 128000;\n if (expectedTime > defaultTime || (maxNonstreamingTokens != null && maxTokens > maxNonstreamingTokens)) {\n throw new Errors.AnthropicError('Streaming is required for operations that may take longer than 10 minutes. See https://github.com/anthropics/anthropic-sdk-typescript#long-requests for more details');\n }\n return defaultTime;\n }\n async buildRequest(inputOptions, { retryCount = 0 } = {}) {\n const options = { ...inputOptions };\n const { method, path, query, defaultBaseURL } = options;\n const url = this.buildURL(path, query, defaultBaseURL);\n if ('timeout' in options)\n validatePositiveInteger('timeout', options.timeout);\n options.timeout = options.timeout ?? this.timeout;\n const { bodyHeaders, body } = this.buildBody({ options });\n const reqHeaders = await this.buildHeaders({ options: inputOptions, method, bodyHeaders, retryCount });\n const req = {\n method,\n headers: reqHeaders,\n ...(options.signal && { signal: options.signal }),\n ...(globalThis.ReadableStream &&\n body instanceof globalThis.ReadableStream && { duplex: 'half' }),\n ...(body && { body }),\n ...(this.fetchOptions ?? {}),\n ...(options.fetchOptions ?? {}),\n };\n return { req, url, timeout: options.timeout };\n }\n async buildHeaders({ options, method, bodyHeaders, retryCount, }) {\n let idempotencyHeaders = {};\n if (this.idempotencyHeader && method !== 'get') {\n if (!options.idempotencyKey)\n options.idempotencyKey = this.defaultIdempotencyKey();\n idempotencyHeaders[this.idempotencyHeader] = options.idempotencyKey;\n }\n const headers = buildHeaders([\n idempotencyHeaders,\n {\n Accept: 'application/json',\n 'User-Agent': this.getUserAgent(),\n 'X-Stainless-Retry-Count': String(retryCount),\n ...(options.timeout ? { 'X-Stainless-Timeout': String(Math.trunc(options.timeout / 1000)) } : {}),\n ...getPlatformHeaders(),\n ...(this._options.dangerouslyAllowBrowser ?\n { 'anthropic-dangerous-direct-browser-access': 'true' }\n : undefined),\n 'anthropic-version': '2023-06-01',\n },\n await this.authHeaders(options),\n this._options.defaultHeaders,\n bodyHeaders,\n options.headers,\n ]);\n this.validateHeaders(headers);\n return headers.values;\n }\n _makeAbort(controller) {\n // note: we can't just inline this method inside `fetchWithTimeout()` because then the closure\n // would capture all request options, and cause a memory leak.\n return () => controller.abort();\n }\n buildBody({ options: { body, headers: rawHeaders } }) {\n if (!body) {\n return { bodyHeaders: undefined, body: undefined };\n }\n const headers = buildHeaders([rawHeaders]);\n if (\n // Pass raw type verbatim\n ArrayBuffer.isView(body) ||\n body instanceof ArrayBuffer ||\n body instanceof DataView ||\n (typeof body === 'string' &&\n // Preserve legacy string encoding behavior for now\n headers.values.has('content-type')) ||\n // `Blob` is superset of `File`\n (globalThis.Blob && body instanceof globalThis.Blob) ||\n // `FormData` -> `multipart/form-data`\n body instanceof FormData ||\n // `URLSearchParams` -> `application/x-www-form-urlencoded`\n body instanceof URLSearchParams ||\n // Send chunked stream (each chunk has own `length`)\n (globalThis.ReadableStream && body instanceof globalThis.ReadableStream)) {\n return { bodyHeaders: undefined, body: body };\n }\n else if (typeof body === 'object' &&\n (Symbol.asyncIterator in body ||\n (Symbol.iterator in body && 'next' in body && typeof body.next === 'function'))) {\n return { bodyHeaders: undefined, body: Shims.ReadableStreamFrom(body) };\n }\n else if (typeof body === 'object' &&\n headers.values.get('content-type') === 'application/x-www-form-urlencoded') {\n return {\n bodyHeaders: { 'content-type': 'application/x-www-form-urlencoded' },\n body: this.stringifyQuery(body),\n };\n }\n else {\n return __classPrivateFieldGet(this, _BaseAnthropic_encoder, \"f\").call(this, { body, headers });\n }\n }\n}\n_a = BaseAnthropic, _BaseAnthropic_encoder = new WeakMap(), _BaseAnthropic_instances = new WeakSet(), _BaseAnthropic_baseURLOverridden = function _BaseAnthropic_baseURLOverridden() {\n return this.baseURL !== 'https://api.anthropic.com';\n};\nBaseAnthropic.Anthropic = _a;\nBaseAnthropic.HUMAN_PROMPT = HUMAN_PROMPT;\nBaseAnthropic.AI_PROMPT = AI_PROMPT;\nBaseAnthropic.DEFAULT_TIMEOUT = 600000; // 10 minutes\nBaseAnthropic.AnthropicError = Errors.AnthropicError;\nBaseAnthropic.APIError = Errors.APIError;\nBaseAnthropic.APIConnectionError = Errors.APIConnectionError;\nBaseAnthropic.APIConnectionTimeoutError = Errors.APIConnectionTimeoutError;\nBaseAnthropic.APIUserAbortError = Errors.APIUserAbortError;\nBaseAnthropic.NotFoundError = Errors.NotFoundError;\nBaseAnthropic.ConflictError = Errors.ConflictError;\nBaseAnthropic.RateLimitError = Errors.RateLimitError;\nBaseAnthropic.BadRequestError = Errors.BadRequestError;\nBaseAnthropic.AuthenticationError = Errors.AuthenticationError;\nBaseAnthropic.InternalServerError = Errors.InternalServerError;\nBaseAnthropic.PermissionDeniedError = Errors.PermissionDeniedError;\nBaseAnthropic.UnprocessableEntityError = Errors.UnprocessableEntityError;\nBaseAnthropic.toFile = Uploads.toFile;\n/**\n * API Client for interfacing with the Anthropic API.\n */\nexport class Anthropic extends BaseAnthropic {\n constructor() {\n super(...arguments);\n this.completions = new API.Completions(this);\n this.messages = new API.Messages(this);\n this.models = new API.Models(this);\n this.beta = new API.Beta(this);\n }\n}\nAnthropic.Completions = Completions;\nAnthropic.Messages = Messages;\nAnthropic.Models = Models;\nAnthropic.Beta = Beta;\n//# sourceMappingURL=client.mjs.map",
|
|
147
147
|
"// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nexport { Anthropic as default } from \"./client.mjs\";\nexport { toFile } from \"./core/uploads.mjs\";\nexport { APIPromise } from \"./core/api-promise.mjs\";\nexport { BaseAnthropic, Anthropic, HUMAN_PROMPT, AI_PROMPT } from \"./client.mjs\";\nexport { PagePromise } from \"./core/pagination.mjs\";\nexport { AnthropicError, APIError, APIConnectionError, APIConnectionTimeoutError, APIUserAbortError, NotFoundError, ConflictError, RateLimitError, BadRequestError, AuthenticationError, InternalServerError, PermissionDeniedError, UnprocessableEntityError, } from \"./core/error.mjs\";\n//# sourceMappingURL=index.mjs.map",
|
|
148
148
|
"import commander from './index.js';\n\n// wrapper to provide named exports for ESM.\nexport const {\n program,\n createCommand,\n createArgument,\n createOption,\n CommanderError,\n InvalidArgumentError,\n InvalidOptionArgumentError, // deprecated old name\n Command,\n Argument,\n Option,\n Help,\n} = commander;\n",
|
|
149
|
-
"import { lstatSync } from 'fs';\nimport { join, dirname, basename, resolve } from 'path';\nimport { execFileSync } from 'child_process';\nimport { YAMLParseError, isMap, isScalar, parse, stringify, type Document } from 'yaml';\nimport type { FafData } from '../core/types.js';\nimport { asFafMapping, describeShape } from '../core/shape.js';\nimport { isPlaceholder } from '../core/slots.js';\nimport { SafePathError, readBytesIfPresent, readUtf8, resolveInside, safeWriteFile } from '../core/safe-write.js';\nimport { editYaml, keptAliases, mergeData, restoreAliases, restoreAnchors, type KeptAlias } from '../core/yaml-edit.js';\nimport { fafSourceOf, isFill, setFafSource, type FafSource } from '../core/faf-source.js';\n\n/** The real path to read for the .faf at `path`. A link must stay inside the\n * folder the .faf sits in and end at a .faf/.fafm file — `project.faf →\n * ~/.aws/credentials` or `project.faf → .env` throws a SafePathError, and\n * nothing is read. */\nfunction fafToRead(path: string): string {\n const full = resolve(path);\n return resolveInside(dirname(full), full, { read: true });\n}\n\n/** yaml's YAMLParseError behind `e` (thrown by yaml, or the cause of\n * parseForEdit's refusal), or null. */\nfunction yamlParseError(e: unknown): YAMLParseError | null {\n if (e instanceof YAMLParseError) {return e;}\n const cause = (e as { cause?: unknown } | null)?.cause;\n return cause instanceof YAMLParseError ? cause : null;\n}\n\n/** A .faf that is not valid YAML, as one line (SafePathError `not-yaml`):\n * \"<file> is not valid YAML (<reason>, line N) — faf left it unchanged\". */\nfunction notValidYaml(path: string, err: YAMLParseError): SafePathError {\n const reason = err.message.split('\\n')[0].replace(/ at line \\d+, column \\d+:?\\s*$/, '').replace(/:\\s*$/, '');\n const line = err.linePos?.[0]?.line;\n const full = resolve(path);\n return new SafePathError('not-yaml', full, `${full} is not valid YAML (${reason}${line === undefined ? '' : `, line ${line}`}) — faf left it unchanged`, { cause: err });\n}\n\n/** Run `call` — a call into faf's scoring kernel with the text of the .faf\n * at `path` (or the bytes of the .fafb there) — and turn a rejection by the\n * kernel into the one-line refusal. The kernel throws a bare string (or an\n * Error) for text it cannot read, some of which yaml reads (a 30-digit\n * integer, nesting past the kernel's depth limit); that becomes a\n * SafePathError (`not-yaml`): \"<file>: faf's scoring kernel could not read\n * it (<reason>) — faf left it unchanged\". A SafePathError from `call` passes\n * through as it is. Every command that hands project.faf (or a .fafb) to\n * the kernel calls it through here, after it has read the file as a .faf\n * ({@link readFaf}, or {@link readFafFromString} with the path); one that\n * edits project.faf (`faf auto`, `faf go`, `faf sync --direction pull`)\n * asks the kernel before it writes, so the line is true. `faf diff` and\n * `faf log` score a version the kernel cannot read as 0 instead. */\nexport function withKernel<T>(path: string, call: () => T): T {\n try {\n return call();\n } catch (e) {\n if (e instanceof SafePathError) {throw e;}\n const why = (e instanceof Error ? e.message : String(e)).split('\\n')[0].trim();\n const full = resolve(path);\n throw new SafePathError('not-yaml', full, `${full}: faf's scoring kernel could not read it (${why}) — faf left it unchanged`, { cause: e });\n }\n}\n\n/** Read and parse a .faf file. Always a mapping: an empty file reads as `{}`;\n * a file that parses to a scalar or a list throws a SafePathError\n * (`not-yaml`, one line) instead of handing callers a value they would\n * spread into character keys. A file\n * that is not valid YAML throws a SafePathError (`not-yaml`): \"<file> is not\n * valid YAML (<reason>, line N) — faf left it unchanged\". A link that\n * leaves the folder, or does not end at a .faf/.fafm file, is refused, and so\n * is a file that is not UTF-8. The data remembers the text it was read from:\n * writeFaf refuses to write it back over a file that changed since. */\nexport function readFaf(path: string): FafData {\n const real = fafToRead(path);\n const text = readUtf8(real);\n let parsed: unknown;\n try {\n parsed = parse(text);\n } catch (e) {\n const yamlError = yamlParseError(e);\n if (yamlError) {throw notValidYaml(path, yamlError);}\n throw e;\n }\n const data = asFafMapping(parsed, path) as FafData;\n setFafSource(data, { real, text });\n return data;\n}\n\n/** Serialize .faf data to YAML text — the exact bytes writeFaf writes for a\n * new file (an existing file is updated in place instead).\n *\n * If `data._meta.found` is present, it's stripped before serialization and\n * rendered as a `# found: <list>` YAML comment next to the `type:` field —\n * Glass Hood doctrine: the user sees WHY the cli classified the project as\n * it did. `_meta` is a runtime hint, never a serialized .faf field. Used by\n * writeFaf and by `faf git --stdout`. */\nexport function serializeFaf(data: FafData): string {\n const meta = (data as FafData & { _meta?: { found?: string[] } })._meta;\n // Strip _meta before serialization — it's never part of the .faf schema.\n const cleanData: FafData = { ...data };\n delete (cleanData as Record<string, unknown>)._meta;\n\n let text = stringify(cleanData, { lineWidth: 0 });\n\n // Inject `# found: ...` next to `type:` if rationale was provided.\n if (meta?.found && meta.found.length > 0) {\n const comment = meta.found.join(' + ');\n // Match ` type: <value>` — only inject if there isn't already a comment.\n text = text.replace(\n /^(\\s+type:\\s+\\S+)(\\s*)$/m,\n (match, prefix: string, trailing: string) => {\n if (trailing.includes('#')) {return match;}\n return `${prefix} # found: ${comment}`;\n },\n );\n }\n\n return text;\n}\n\n/** What {@link updateFafFile} did. */\nexport interface UpdateFafResult {\n /** True when the file changed on disk; false when the change was a no-op and\n * nothing was written. */\n written: boolean;\n /** The file's text after the update (its original text when nothing changed). */\n text: string;\n /** Aliases the change would have replaced, left as written: `path` is where\n * (`stack`), `alias` what the file says there (`*base`). faf never replaces\n * or expands an alias; the change at that path is not written. */\n keptAliases?: KeptAlias[];\n}\n\nexport type { KeptAlias };\n\n/**\n * Update an existing .faf in place, keeping every byte the change does not\n * touch. The file is parsed with yaml's `parseDocument`; `mutate` changes the\n * Document through its node APIs (`doc.setIn(['stack', 'database'], 'Postgres')`,\n * `doc.deleteIn([...])`, `doc.getIn([...], true)`); only the text of the nodes\n * that changed is rewritten. Comments, blank lines, key order, quoting, scalar\n * source text (`version: 1.10`, `0x1F90`, a 20-digit integer), anchors, unknown\n * keys (a user's own `_meta` included), CRLF, a BOM and the `%YAML` / `---` /\n * `...` framing survive — nothing folds at 80 columns. When the change leaves\n * the data as it was, nothing is written (`written: false`), even if faf's own\n * layout of the file would differ.\n *\n * An alias the change replaces (`doc.set('stack', …)` over `stack: *base`)\n * is put back: faf never replaces or expands an alias, so that path stays as\n * written and is listed in `keptAliases`; the rest of the change is written.\n *\n * The file must exist. The same link rules as {@link readFaf} (a link must\n * stay in the folder and end at a .faf/.fafm file) and the atomic write of\n * `safeWriteFile` apply; the write itself goes only through a link to a file\n * of the same name. A file that is not valid YAML (SafePathError `not-yaml`,\n * one line), or not UTF-8, is refused (nothing written); so is a file that\n * parses to a scalar or a list — the same `not-yaml` refusal readFaf gives,\n * before `mutate` is called — anything `mutate` throws, and a file that\n * changed on disk while faf was writing.\n */\nexport function updateFafFile(path: string, mutate: (doc: Document) => void): UpdateFafResult {\n return updateFaf(path, mutate, undefined);\n}\n\n/** updateFafFile, checked against `base` — the read the caller's data came\n * from — when it is a read of this same file. `after` runs on the changed\n * Document once its aliases are back (with the file's data before the\n * change), and may list more of them. `keepAnchors` (a fill): a node with an\n * anchor that an alias reads is put back as written too. */\nfunction updateFaf(\n path: string,\n mutate: (doc: Document) => void,\n base: FafSource | undefined,\n after?: (doc: Document, before: unknown) => KeptAlias[],\n keepAnchors = false,\n): UpdateFafResult {\n const real = fafToRead(path);\n const text = readUtf8(real);\n let kept: KeptAlias[] = [];\n let result: ReturnType<typeof editYaml>;\n try {\n result = editYaml(text, doc => {\n // A scalar or a list is refused before `mutate` sees it.\n refuseNotMapping(doc, path);\n const before = doc.clone();\n mutate(doc);\n kept = restoreAliases(before, doc);\n if (keepAnchors) {kept = [...kept, ...restoreAnchors(before, doc)];}\n if (after) {kept = [...kept, ...after(doc, before.toJS()).filter(k => !kept.some(x => x.path === k.path))];}\n }, path);\n } catch (e) {\n const yamlError = yamlParseError(e);\n if (yamlError) {throw notValidYaml(path, yamlError);}\n throw e;\n }\n if (!result.changed) {return { written: false, text, keptAliases: kept };}\n // The file must still be what the caller's data was read from (else a stale\n // read would write over a newer edit), and what faf read here.\n safeWriteFile(path, result.text, { expect: base && base.real === real ? base.text : text });\n return { written: true, text: result.text, keptAliases: kept };\n}\n\n/** Options for {@link writeFaf}. */\nexport interface WriteFafOptions {\n /** Write a fresh file from `data` even when one exists — the explicit\n * overwrite (`faf init --force`, `faf git --force`). Default: an existing\n * file is updated in place with {@link updateFafFile}. */\n replace?: boolean;\n /** Called for each alias of an existing file that `data` would change\n * (`stack: *base` while `data.stack` has more keys): faf leaves it as\n * written — it never replaces or expands an alias — and that path is not\n * written. For a fill (data from updateExistingFaf) it is also called for\n * each node with an anchor an alias reads that the fill would change\n * (`kind: 'anchor'`). `faf auto` prints one line for each. */\n onAliasKept?: (kept: KeptAlias) => void;\n}\n\n/** The one line faf prints for an alias (or an anchor an alias reads) it left as written. */\nexport function aliasKeptNote(kept: KeptAlias): string {\n if (kept.kind === 'anchor') {return `${kept.path} holds an anchor (${kept.alias}) that an alias reads — faf left it as written`;}\n return `${kept.path} is an alias (${kept.alias}) — faf left it as written`;\n}\n\n/** True when something is already at `path` (a file or a link). */\nfunction exists(path: string): boolean {\n try {\n lstatSync(path);\n return true;\n } catch {\n return false;\n }\n}\n\n/** `project.type` as the file has it, before a write. */\nfunction projectType(doc: Document): unknown {\n const node = doc.getIn(['project', 'type'], true);\n return isScalar(node) ? node.value : node;\n}\n\n/** A .faf Document whose root is a scalar or a list is refused — the same\n * SafePathError (`not-yaml`) {@link readFaf} throws: \"<file>: a .faf must be\n * a YAML mapping (key: value pairs), but this one is a string (\"…\"). faf left\n * it unchanged — fix it by hand.\" An empty document passes. */\nfunction refuseNotMapping(doc: Document, path: string): void {\n const root = doc.contents;\n if (root !== null && root !== undefined && !isMap(root)) {\n throw new SafePathError('not-yaml', resolve(path), `${path}: a .faf must be a YAML mapping (key: value pairs), but this one is ${describeShape(doc.toJS())}. faf left it unchanged — fix it by hand.`);\n }\n}\n\n/** Make the .faf Document hold `data`, changing only what `data` changes:\n * the file's own data is read first and only the paths where `data` differs\n * from it are written ({@link mergeData}) — a value `data` merely repeats\n * (the text an alias read as, say) is never written over the node the file\n * has. faf's runtime `_meta` (detection rationale) is never written: a\n * `_meta` in `data` is faf's own unless the file already carries a `_meta`\n * key — then it is the user's, kept like any other key. The `# found:`\n * rationale is written only next to a `type:` this write fills; a type\n * already in the file is left exactly as it is. */\nfunction applyFafData(doc: Document, data: FafData, path: string): void {\n refuseNotMapping(doc, path);\n const root = doc.contents;\n const fileHasMeta = isMap(root) && root.items.some(p => isScalar(p.key) && p.key.value === '_meta');\n const { _meta: meta, ...rest } = data as FafData & { _meta?: { found?: string[] } };\n const typeBefore = projectType(doc);\n const before: unknown = isMap(root) ? doc.toJS() : {};\n const map = isMap(root) ? root : doc.createNode({});\n doc.contents = map;\n mergeData(doc, map, before, fileHasMeta ? { ...data } : rest);\n if (!fileHasMeta) {addFoundRationale(doc, meta?.found, typeBefore);}\n}\n\n/** `data` as applyFafData writes it: faf's runtime `_meta` left out unless\n * the file has a `_meta` of its own. */\nfunction withoutRuntimeMeta(doc: Document, data: FafData): unknown {\n const root = doc.contents;\n if (isMap(root) && root.items.some(p => isScalar(p.key) && p.key.value === '_meta')) {return data;}\n const { _meta: _ignored, ...rest } = data as FafData & { _meta?: unknown };\n return rest;\n}\n\n/** `# found: …` next to `project.type` — only when this write filled it. */\nfunction addFoundRationale(doc: Document, found: string[] | undefined, typeBefore: unknown): void {\n if (!found || found.length === 0 || !isPlaceholder(typeBefore)) {return;}\n const node = doc.getIn(['project', 'type'], true);\n if (isScalar(node) && !isPlaceholder(node.value) && (node.comment === null || node.comment === undefined)) {\n node.comment = ` found: ${found.join(' + ')}`;\n }\n}\n\n/** Write a .faf file from data — atomically (temp file, fsync, rename; a\n * failure leaves the original as it was), and never through a link that\n * leaves the folder or dangles (SafePathError). An in-project link is written\n * through and stays a link.\n *\n * An existing file is updated in place ({@link updateFafFile}): `data` is\n * compared with what the file holds, and only the values that changed are\n * rewritten — so comments, formatting, source text and key order survive, a\n * value `data` merely repeats (the text an alias `*g` read as, say) never\n * replaces the node the file has, and a write that changes nothing writes\n * nothing. A key the file has and `data` leaves out is kept (faf removes\n * nothing it did not write). Pass `{ replace: true }` to overwrite the file\n * with a fresh render instead. Returns false when nothing was written.\n *\n * An alias in the file (`stack: *base`) is never replaced or expanded: it\n * stays as written, and a change `data` makes under it is not written —\n * `opts.onAliasKept` hears of each such path. When `data` is a fill (from\n * updateExistingFaf), a node with an anchor that an alias reads is left as\n * written as well (filling it would change every alias), and reported the\n * same way with `kind: 'anchor'`.\n *\n * When `data` came from readFaf of this file (directly, or through\n * updateExistingFaf), the write is refused if the file changed on disk since\n * that read (SafePathError `changed`: \"not written; original kept\"), so an\n * edit made meanwhile is never written over. A new file is not written over\n * one that appeared meanwhile. */\nexport function writeFaf(path: string, data: FafData, opts: WriteFafOptions = {}): boolean {\n if (!opts.replace && exists(path)) {\n const result = updateFaf(path, doc => applyFafData(doc, data, path), fafSourceOf(data), (doc, before) => keptAliases(doc, withoutRuntimeMeta(doc, data), before), isFill(data));\n setFafSource(data, { real: fafToRead(path), text: result.text });\n for (const kept of result.keptAliases ?? []) {opts.onAliasKept?.(kept);}\n return result.written;\n }\n const full = resolve(path);\n const text = serializeFaf(data);\n const expect = exists(path) ? readBytesIfPresent(resolveInside(dirname(full), full)) : null;\n const real = safeWriteFile(path, text, { expect });\n setFafSource(data, { real, text });\n return true;\n}\n\n/** Read raw YAML text from a .faf file (the same link rules as readFaf; a\n * file that is not UTF-8 is refused). */\nexport function readFafRaw(path: string): string {\n return readUtf8(fafToRead(path));\n}\n\n/** Parse .faf data from a YAML string — e.g. the output of `git show <ref>:project.faf`.\n * The readers above are path-only; `faf diff` needs to parse a version that\n * lives in git history, never on disk. With `path` (the file the text was\n * read from) the text is read as {@link readFaf} reads a file: text that is\n * not valid YAML throws a SafePathError (`not-yaml`) naming it, and so does\n * text that parses to a scalar or a list (faf's shape check,\n * `asFafMapping`); empty text reads as `{}`. Without `path`, the parsed\n * value as it is, or yaml's own error. */\nexport function readFafFromString(text: string, path?: string): FafData {\n let parsed: unknown;\n try {\n parsed = parse(text);\n } catch (e) {\n const yamlError = yamlParseError(e);\n if (path !== undefined && yamlError) {throw notValidYaml(path, yamlError);}\n throw e;\n }\n return (path === undefined ? parsed : asFafMapping(parsed, path)) as FafData;\n}\n\n/** True when `full` is a .faf faf may read: a regular file, or a link that\n * stays inside `folder` and ends at a .faf/.fafm file. Nothing there, or a\n * folder that happens to be named `.faf`, is not a candidate. A link that\n * leaves `folder`, dangles or ends anywhere else throws a SafePathError —\n * refused out loud, never skipped (skipping would let `faf init` create a\n * file through it). */\nfunction isFafCandidate(folder: string, full: string): boolean {\n let st;\n try {\n st = lstatSync(full);\n } catch {\n return false;\n }\n if (!st.isSymbolicLink() && !st.isFile()) {return false;}\n resolveInside(folder, resolve(full), { read: true });\n return true;\n}\n\n/** Find the .faf file in a directory (walks up one level). The path is\n * returned as spelled; a symlinked candidate must pass the readFaf link rules\n * or this throws a SafePathError. */\nexport function findFafFile(dir: string = process.cwd()): string | null {\n const candidates = ['project.faf', '.faf'];\n // Use path.join for cross-platform separator handling — earlier\n // template-literal `${dir}/${name}` produced forward-slash paths\n // even on Windows, breaking strict path equality and any consumer\n // that path-compared the result.\n for (const name of candidates) {\n const full = join(dir, name);\n if (isFafCandidate(dir, full)) {return full;}\n }\n // Walk up one level — use path.dirname for cross-platform parent\n // resolution. The earlier regex `dir.replace(/\\/[^/]+$/, '')`\n // only matched POSIX separators and silently no-op'd on Windows.\n const parent = dirname(dir);\n if (parent !== dir) {\n for (const name of candidates) {\n const full = join(parent, name);\n if (isFafCandidate(parent, full)) {return full;}\n }\n }\n return null;\n}\n\n/** Repo-root-relative path of a .faf, computed BY git — runtime- and OS-independent.\n * Replaces `path.relative(top, fafPath)`, which breaks on Windows when git's\n * long-form `--show-toplevel` and an 8.3 short-name cwd (e.g. `RUNNER~1`) disagree.\n * git resolves both representations internally and emits forward slashes; works for\n * tracked AND untracked .faf (it's the cwd's location under the root, not file status).\n * Caller must already be inside a git repo. */\nexport function gitRepoRel(fafPath: string, cwd: string = process.cwd()): string {\n const prefix = execFileSync('git', ['-C', dirname(fafPath), 'rev-parse', '--show-prefix'], {\n cwd,\n encoding: 'utf-8',\n }).trim(); // '' at repo root, or 'sub/dir/' (trailing slash)\n return prefix + basename(fafPath);\n}\n",
|
|
149
|
+
"import { lstatSync } from 'fs';\nimport { join, dirname, basename, resolve } from 'path';\nimport { execFileSync } from 'child_process';\nimport { YAMLParseError, isMap, isScalar, parse, stringify, type Document } from 'yaml';\nimport type { FafData } from '../core/types.js';\nimport { asFafMapping, describeShape } from '../core/shape.js';\nimport { isPlaceholder } from '../core/slots.js';\nimport { SafePathError, readBytesIfPresent, readUtf8, resolveInside, safeWriteFile } from '../core/safe-write.js';\nimport { editYaml, keptAliases, mergeData, restoreAliases, restoreAnchors, type KeptAlias } from '../core/yaml-edit.js';\nimport { fafSourceOf, isFill, setFafSource, type FafSource } from '../core/faf-source.js';\n\n/** The real path to read for the .faf at `path`. A link must stay inside the\n * folder the .faf sits in and end at a .faf/.fafm file — `project.faf →\n * ~/.aws/credentials` or `project.faf → .env` throws a SafePathError, and\n * nothing is read. */\nfunction fafToRead(path: string): string {\n const full = resolve(path);\n return resolveInside(dirname(full), full, { read: true });\n}\n\n/** yaml's YAMLParseError behind `e` (thrown by yaml, or the cause of\n * parseForEdit's refusal), or null. */\nfunction yamlParseError(e: unknown): YAMLParseError | null {\n if (e instanceof YAMLParseError) {return e;}\n const cause = (e as { cause?: unknown } | null)?.cause;\n return cause instanceof YAMLParseError ? cause : null;\n}\n\n/** A .faf that is not valid YAML, as one line (SafePathError `not-yaml`):\n * \"<file> is not valid YAML (<reason>, line N) — faf left it unchanged\". */\nfunction notValidYaml(path: string, err: YAMLParseError): SafePathError {\n const reason = err.message.split('\\n')[0].replace(/ at line \\d+, column \\d+:?\\s*$/, '').replace(/:\\s*$/, '');\n const line = err.linePos?.[0]?.line;\n const full = resolve(path);\n return new SafePathError('not-yaml', full, `${full} is not valid YAML (${reason}${line === undefined ? '' : `, line ${line}`}) — faf left it unchanged`, { cause: err });\n}\n\n/** Run `call` — a call into faf's scoring kernel with the text of the .faf\n * at `path` (or the bytes of the .fafb there) — and turn a rejection by the\n * kernel into the one-line refusal. The kernel throws a bare string (or an\n * Error) for text it cannot read, some of which yaml reads (a 30-digit\n * integer, nesting past the kernel's depth limit); that becomes a\n * SafePathError (`not-yaml`): \"<file>: faf's scoring kernel could not read\n * it (<reason>) — faf left it unchanged\". A SafePathError from `call` passes\n * through as it is. Every command that hands project.faf (or a .fafb) to\n * the kernel calls it through here, after it has read the file as a .faf\n * ({@link readFaf}, or {@link readFafFromString} with the path); one that\n * edits project.faf (`faf auto`, `faf go`)\n * asks the kernel before it writes, so the line is true. `faf diff` and\n * `faf log` score a version the kernel cannot read as 0 instead. */\nexport function withKernel<T>(path: string, call: () => T): T {\n try {\n return call();\n } catch (e) {\n if (e instanceof SafePathError) {throw e;}\n const why = (e instanceof Error ? e.message : String(e)).split('\\n')[0].trim();\n const full = resolve(path);\n throw new SafePathError('not-yaml', full, `${full}: faf's scoring kernel could not read it (${why}) — faf left it unchanged`, { cause: e });\n }\n}\n\n/** Read and parse a .faf file. Always a mapping: an empty file reads as `{}`;\n * a file that parses to a scalar or a list throws a SafePathError\n * (`not-yaml`, one line) instead of handing callers a value they would\n * spread into character keys. A file\n * that is not valid YAML throws a SafePathError (`not-yaml`): \"<file> is not\n * valid YAML (<reason>, line N) — faf left it unchanged\". A link that\n * leaves the folder, or does not end at a .faf/.fafm file, is refused, and so\n * is a file that is not UTF-8. The data remembers the text it was read from:\n * writeFaf refuses to write it back over a file that changed since. */\nexport function readFaf(path: string): FafData {\n const real = fafToRead(path);\n const text = readUtf8(real);\n let parsed: unknown;\n try {\n parsed = parse(text);\n } catch (e) {\n const yamlError = yamlParseError(e);\n if (yamlError) {throw notValidYaml(path, yamlError);}\n throw e;\n }\n const data = asFafMapping(parsed, path) as FafData;\n setFafSource(data, { real, text });\n return data;\n}\n\n/** Serialize .faf data to YAML text — the exact bytes writeFaf writes for a\n * new file (an existing file is updated in place instead).\n *\n * If `data._meta.found` is present, it's stripped before serialization and\n * rendered as a `# found: <list>` YAML comment next to the `type:` field —\n * Glass Hood doctrine: the user sees WHY the cli classified the project as\n * it did. `_meta` is a runtime hint, never a serialized .faf field. Used by\n * writeFaf and by `faf git --stdout`. */\nexport function serializeFaf(data: FafData): string {\n const meta = (data as FafData & { _meta?: { found?: string[] } })._meta;\n // Strip _meta before serialization — it's never part of the .faf schema.\n const cleanData: FafData = { ...data };\n delete (cleanData as Record<string, unknown>)._meta;\n\n let text = stringify(cleanData, { lineWidth: 0 });\n\n // Inject `# found: ...` next to `type:` if rationale was provided.\n if (meta?.found && meta.found.length > 0) {\n const comment = meta.found.join(' + ');\n // Match ` type: <value>` — only inject if there isn't already a comment.\n text = text.replace(\n /^(\\s+type:\\s+\\S+)(\\s*)$/m,\n (match, prefix: string, trailing: string) => {\n if (trailing.includes('#')) {return match;}\n return `${prefix} # found: ${comment}`;\n },\n );\n }\n\n return text;\n}\n\n/** What {@link updateFafFile} did. */\nexport interface UpdateFafResult {\n /** True when the file changed on disk; false when the change was a no-op and\n * nothing was written. */\n written: boolean;\n /** The file's text after the update (its original text when nothing changed). */\n text: string;\n /** Aliases the change would have replaced, left as written: `path` is where\n * (`stack`), `alias` what the file says there (`*base`). faf never replaces\n * or expands an alias; the change at that path is not written. */\n keptAliases?: KeptAlias[];\n}\n\nexport type { KeptAlias };\n\n/**\n * Update an existing .faf in place, keeping every byte the change does not\n * touch. The file is parsed with yaml's `parseDocument`; `mutate` changes the\n * Document through its node APIs (`doc.setIn(['stack', 'database'], 'Postgres')`,\n * `doc.deleteIn([...])`, `doc.getIn([...], true)`); only the text of the nodes\n * that changed is rewritten. Comments, blank lines, key order, quoting, scalar\n * source text (`version: 1.10`, `0x1F90`, a 20-digit integer), anchors, unknown\n * keys (a user's own `_meta` included), CRLF, a BOM and the `%YAML` / `---` /\n * `...` framing survive — nothing folds at 80 columns. When the change leaves\n * the data as it was, nothing is written (`written: false`), even if faf's own\n * layout of the file would differ.\n *\n * An alias the change replaces (`doc.set('stack', …)` over `stack: *base`)\n * is put back: faf never replaces or expands an alias, so that path stays as\n * written and is listed in `keptAliases`; the rest of the change is written.\n *\n * The file must exist. The same link rules as {@link readFaf} (a link must\n * stay in the folder and end at a .faf/.fafm file) and the atomic write of\n * `safeWriteFile` apply; the write itself goes only through a link to a file\n * of the same name. A file that is not valid YAML (SafePathError `not-yaml`,\n * one line), or not UTF-8, is refused (nothing written); so is a file that\n * parses to a scalar or a list — the same `not-yaml` refusal readFaf gives,\n * before `mutate` is called — anything `mutate` throws, and a file that\n * changed on disk while faf was writing.\n */\nexport function updateFafFile(path: string, mutate: (doc: Document) => void): UpdateFafResult {\n return updateFaf(path, mutate, undefined);\n}\n\n/** updateFafFile, checked against `base` — the read the caller's data came\n * from — when it is a read of this same file. `after` runs on the changed\n * Document once its aliases are back (with the file's data before the\n * change), and may list more of them. `keepAnchors` (a fill): a node with an\n * anchor that an alias reads is put back as written too. */\nfunction updateFaf(\n path: string,\n mutate: (doc: Document) => void,\n base: FafSource | undefined,\n after?: (doc: Document, before: unknown) => KeptAlias[],\n keepAnchors = false,\n): UpdateFafResult {\n const real = fafToRead(path);\n const text = readUtf8(real);\n let kept: KeptAlias[] = [];\n let result: ReturnType<typeof editYaml>;\n try {\n result = editYaml(text, doc => {\n // A scalar or a list is refused before `mutate` sees it.\n refuseNotMapping(doc, path);\n const before = doc.clone();\n mutate(doc);\n kept = restoreAliases(before, doc);\n if (keepAnchors) {kept = [...kept, ...restoreAnchors(before, doc)];}\n if (after) {kept = [...kept, ...after(doc, before.toJS()).filter(k => !kept.some(x => x.path === k.path))];}\n }, path);\n } catch (e) {\n const yamlError = yamlParseError(e);\n if (yamlError) {throw notValidYaml(path, yamlError);}\n throw e;\n }\n if (!result.changed) {return { written: false, text, keptAliases: kept };}\n // The file must still be what the caller's data was read from (else a stale\n // read would write over a newer edit), and what faf read here.\n safeWriteFile(path, result.text, { expect: base && base.real === real ? base.text : text });\n return { written: true, text: result.text, keptAliases: kept };\n}\n\n/** Options for {@link writeFaf}. */\nexport interface WriteFafOptions {\n /** Write a fresh file from `data` even when one exists — the explicit\n * overwrite (`faf init --force`, `faf git --force`). Default: an existing\n * file is updated in place with {@link updateFafFile}. */\n replace?: boolean;\n /** Called for each alias of an existing file that `data` would change\n * (`stack: *base` while `data.stack` has more keys): faf leaves it as\n * written — it never replaces or expands an alias — and that path is not\n * written. For a fill (data from updateExistingFaf) it is also called for\n * each node with an anchor an alias reads that the fill would change\n * (`kind: 'anchor'`). `faf auto` prints one line for each. */\n onAliasKept?: (kept: KeptAlias) => void;\n}\n\n/** The one line faf prints for an alias (or an anchor an alias reads) it left as written. */\nexport function aliasKeptNote(kept: KeptAlias): string {\n if (kept.kind === 'anchor') {return `${kept.path} holds an anchor (${kept.alias}) that an alias reads — faf left it as written`;}\n return `${kept.path} is an alias (${kept.alias}) — faf left it as written`;\n}\n\n/** True when something is already at `path` (a file or a link). */\nfunction exists(path: string): boolean {\n try {\n lstatSync(path);\n return true;\n } catch {\n return false;\n }\n}\n\n/** `project.type` as the file has it, before a write. */\nfunction projectType(doc: Document): unknown {\n const node = doc.getIn(['project', 'type'], true);\n return isScalar(node) ? node.value : node;\n}\n\n/** A .faf Document whose root is a scalar or a list is refused — the same\n * SafePathError (`not-yaml`) {@link readFaf} throws: \"<file>: a .faf must be\n * a YAML mapping (key: value pairs), but this one is a string (\"…\"). faf left\n * it unchanged — fix it by hand.\" An empty document passes. */\nfunction refuseNotMapping(doc: Document, path: string): void {\n const root = doc.contents;\n if (root !== null && root !== undefined && !isMap(root)) {\n throw new SafePathError('not-yaml', resolve(path), `${path}: a .faf must be a YAML mapping (key: value pairs), but this one is ${describeShape(doc.toJS())}. faf left it unchanged — fix it by hand.`);\n }\n}\n\n/** Make the .faf Document hold `data`, changing only what `data` changes:\n * the file's own data is read first and only the paths where `data` differs\n * from it are written ({@link mergeData}) — a value `data` merely repeats\n * (the text an alias read as, say) is never written over the node the file\n * has. faf's runtime `_meta` (detection rationale) is never written: a\n * `_meta` in `data` is faf's own unless the file already carries a `_meta`\n * key — then it is the user's, kept like any other key. The `# found:`\n * rationale is written only next to a `type:` this write fills; a type\n * already in the file is left exactly as it is. */\nfunction applyFafData(doc: Document, data: FafData, path: string): void {\n refuseNotMapping(doc, path);\n const root = doc.contents;\n const fileHasMeta = isMap(root) && root.items.some(p => isScalar(p.key) && p.key.value === '_meta');\n const { _meta: meta, ...rest } = data as FafData & { _meta?: { found?: string[] } };\n const typeBefore = projectType(doc);\n const before: unknown = isMap(root) ? doc.toJS() : {};\n const map = isMap(root) ? root : doc.createNode({});\n doc.contents = map;\n mergeData(doc, map, before, fileHasMeta ? { ...data } : rest);\n if (!fileHasMeta) {addFoundRationale(doc, meta?.found, typeBefore);}\n}\n\n/** `data` as applyFafData writes it: faf's runtime `_meta` left out unless\n * the file has a `_meta` of its own. */\nfunction withoutRuntimeMeta(doc: Document, data: FafData): unknown {\n const root = doc.contents;\n if (isMap(root) && root.items.some(p => isScalar(p.key) && p.key.value === '_meta')) {return data;}\n const { _meta: _ignored, ...rest } = data as FafData & { _meta?: unknown };\n return rest;\n}\n\n/** `# found: …` next to `project.type` — only when this write filled it. */\nfunction addFoundRationale(doc: Document, found: string[] | undefined, typeBefore: unknown): void {\n if (!found || found.length === 0 || !isPlaceholder(typeBefore)) {return;}\n const node = doc.getIn(['project', 'type'], true);\n if (isScalar(node) && !isPlaceholder(node.value) && (node.comment === null || node.comment === undefined)) {\n node.comment = ` found: ${found.join(' + ')}`;\n }\n}\n\n/** Write a .faf file from data — atomically (temp file, fsync, rename; a\n * failure leaves the original as it was), and never through a link that\n * leaves the folder or dangles (SafePathError). An in-project link is written\n * through and stays a link.\n *\n * An existing file is updated in place ({@link updateFafFile}): `data` is\n * compared with what the file holds, and only the values that changed are\n * rewritten — so comments, formatting, source text and key order survive, a\n * value `data` merely repeats (the text an alias `*g` read as, say) never\n * replaces the node the file has, and a write that changes nothing writes\n * nothing. A key the file has and `data` leaves out is kept (faf removes\n * nothing it did not write). Pass `{ replace: true }` to overwrite the file\n * with a fresh render instead. Returns false when nothing was written.\n *\n * An alias in the file (`stack: *base`) is never replaced or expanded: it\n * stays as written, and a change `data` makes under it is not written —\n * `opts.onAliasKept` hears of each such path. When `data` is a fill (from\n * updateExistingFaf), a node with an anchor that an alias reads is left as\n * written as well (filling it would change every alias), and reported the\n * same way with `kind: 'anchor'`.\n *\n * When `data` came from readFaf of this file (directly, or through\n * updateExistingFaf), the write is refused if the file changed on disk since\n * that read (SafePathError `changed`: \"not written; original kept\"), so an\n * edit made meanwhile is never written over. A new file is not written over\n * one that appeared meanwhile. */\nexport function writeFaf(path: string, data: FafData, opts: WriteFafOptions = {}): boolean {\n if (!opts.replace && exists(path)) {\n const result = updateFaf(path, doc => applyFafData(doc, data, path), fafSourceOf(data), (doc, before) => keptAliases(doc, withoutRuntimeMeta(doc, data), before), isFill(data));\n setFafSource(data, { real: fafToRead(path), text: result.text });\n for (const kept of result.keptAliases ?? []) {opts.onAliasKept?.(kept);}\n return result.written;\n }\n const full = resolve(path);\n const text = serializeFaf(data);\n const expect = exists(path) ? readBytesIfPresent(resolveInside(dirname(full), full)) : null;\n const real = safeWriteFile(path, text, { expect });\n setFafSource(data, { real, text });\n return true;\n}\n\n/** Read raw YAML text from a .faf file (the same link rules as readFaf; a\n * file that is not UTF-8 is refused). */\nexport function readFafRaw(path: string): string {\n return readUtf8(fafToRead(path));\n}\n\n/** Parse .faf data from a YAML string — e.g. the output of `git show <ref>:project.faf`.\n * The readers above are path-only; `faf diff` needs to parse a version that\n * lives in git history, never on disk. With `path` (the file the text was\n * read from) the text is read as {@link readFaf} reads a file: text that is\n * not valid YAML throws a SafePathError (`not-yaml`) naming it, and so does\n * text that parses to a scalar or a list (faf's shape check,\n * `asFafMapping`); empty text reads as `{}`. Without `path`, the parsed\n * value as it is, or yaml's own error. */\nexport function readFafFromString(text: string, path?: string): FafData {\n let parsed: unknown;\n try {\n parsed = parse(text);\n } catch (e) {\n const yamlError = yamlParseError(e);\n if (path !== undefined && yamlError) {throw notValidYaml(path, yamlError);}\n throw e;\n }\n return (path === undefined ? parsed : asFafMapping(parsed, path)) as FafData;\n}\n\n/** True when `full` is a .faf faf may read: a regular file, or a link that\n * stays inside `folder` and ends at a .faf/.fafm file. Nothing there, or a\n * folder that happens to be named `.faf`, is not a candidate. A link that\n * leaves `folder`, dangles or ends anywhere else throws a SafePathError —\n * refused out loud, never skipped (skipping would let `faf init` create a\n * file through it). */\nfunction isFafCandidate(folder: string, full: string): boolean {\n let st;\n try {\n st = lstatSync(full);\n } catch {\n return false;\n }\n if (!st.isSymbolicLink() && !st.isFile()) {return false;}\n resolveInside(folder, resolve(full), { read: true });\n return true;\n}\n\n/** Find the .faf file in a directory (walks up one level). The path is\n * returned as spelled; a symlinked candidate must pass the readFaf link rules\n * or this throws a SafePathError. */\nexport function findFafFile(dir: string = process.cwd()): string | null {\n const candidates = ['project.faf', '.faf'];\n // Use path.join for cross-platform separator handling — earlier\n // template-literal `${dir}/${name}` produced forward-slash paths\n // even on Windows, breaking strict path equality and any consumer\n // that path-compared the result.\n for (const name of candidates) {\n const full = join(dir, name);\n if (isFafCandidate(dir, full)) {return full;}\n }\n // Walk up one level — use path.dirname for cross-platform parent\n // resolution. The earlier regex `dir.replace(/\\/[^/]+$/, '')`\n // only matched POSIX separators and silently no-op'd on Windows.\n const parent = dirname(dir);\n if (parent !== dir) {\n for (const name of candidates) {\n const full = join(parent, name);\n if (isFafCandidate(parent, full)) {return full;}\n }\n }\n return null;\n}\n\n/** Repo-root-relative path of a .faf, computed BY git — runtime- and OS-independent.\n * Replaces `path.relative(top, fafPath)`, which breaks on Windows when git's\n * long-form `--show-toplevel` and an 8.3 short-name cwd (e.g. `RUNNER~1`) disagree.\n * git resolves both representations internally and emits forward slashes; works for\n * tracked AND untracked .faf (it's the cwd's location under the root, not file status).\n * Caller must already be inside a git repo. */\nexport function gitRepoRel(fafPath: string, cwd: string = process.cwd()): string {\n const prefix = execFileSync('git', ['-C', dirname(fafPath), 'rev-parse', '--show-prefix'], {\n cwd,\n encoding: 'utf-8',\n }).trim(); // '' at repo root, or 'sub/dir/' (trailing slash)\n return prefix + basename(fafPath);\n}\n",
|
|
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
|
-
"/**\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 (`faf recover` reads CLAUDE.md →\n * AGENTS.md), the 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",
|
|
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
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 24-type ladder —\n * detectable apps + `encyclopedia` (curated knowledge) + `intent` (seed).\n * About is NOT an app_type — it is a repo role (`about.represents`).\n * (See v6.6.md doctrine memory + fafipedia-vs-grokipedia-architecture.)\n * Sorted ascending by active slot count for readability.\n *\n * v6.5.0 changes vs prior:\n * - Added `universal` to cli / library / mcp / frontend / data-science.\n * These types ship/build/CI somewhere — slotignoring those slots was\n * losing real signal. (cli/library: 9→12; mcp/data-science: 14→17;\n * frontend: 13→16.)\n * - Order is by ascending slot count, not insertion order.\n */\nexport const APP_TYPE_CATEGORIES: Record<string, SlotCategory[]> = {\n // 9 slots — minimal (project meta + human only)\n documentation: ['project', 'human'],\n // intent: the human-intent SEED type, produced by builder.faf.one — a human\n // captures name/goal + the 6 Ws (no stack yet). Same 9 active slots as\n // documentation, but named honestly: it is intent awaiting a stack. An AI that\n // fills the stack re-types it to the real app_type (cli/mcp/frontend/…). Reads\n // honestly even if abandoned (\"intent captured, never built\").\n intent: ['project', 'human'],\n // encyclopedia: same shape as documentation — content repo with project\n // metadata + human context. Used by FAFipedia and similar curated-knowledge\n // surfaces. Per fafipedia-vs-grokipedia-architecture doctrine, this is the\n // structured, git-versioned, agent-consumable knowledge layer. Each .fafi\n // file under an encyclopedia repo is itself a valid .faf (inclusion marker).\n encyclopedia: ['project', 'human'],\n\n // 12 slots — project + human + universal (build/ci/hosting matters)\n cli: ['project', 'human', 'universal'],\n library: ['project', 'human', 'universal'],\n sdk: ['project', 'human', 'universal'],\n wasm: ['project', 'human', 'universal'],\n html: ['project', 'human', 'universal'],\n // server-card: a published MCP Server Card (discovery manifest) — artifact-class\n // like sdk/wasm/html. Identity + human context + build/ship matter; frontend,\n // backend and DB are slotignored. By design it carries the FAF context-block in the\n // card's `_meta[\"one.faf/context\"]` by default — so anyone generating a Server\n // Card through FAF gets FAF context for free. See faf-server-card-ref.\n 'server-card': ['project', 'human', 'universal'],\n\n // 16 slots — project + frontend + human + universal\n frontend: ['project', 'frontend', 'human', 'universal'],\n website: ['project', 'frontend', 'human', 'universal'],\n mobile: ['project', 'frontend', 'human', 'universal'],\n // Swift / Apple client apps (iOS/macOS/…) — same ladder as mobile; name is\n // `app` so SPM libraries/servers/CLIs are not forced into \"mobile\".\n app: ['project', 'frontend', 'human', 'universal'],\n // browser/chrome extension — popup/content-script UI + build/CI/store\n // (manifest_version), NO backend. Detected via manifest_version in scanner.ts.\n extension: ['project', 'frontend', 'human', 'universal'],\n\n // 17 slots — project + backend + universal + human\n mcp: ['project', 'backend', 'human', 'universal'],\n backend: ['project', 'backend', 'universal', 'human'],\n 'data-science': ['project', 'backend', 'human', 'universal'],\n\n // 21 slots — full base ladder\n fullstack: ['project', 'frontend', 'backend', 'universal', 'human'],\n svelte: ['project', 'frontend', 'backend', 'universal', 'human'],\n framework: ['project', 'frontend', 'backend', 'universal', 'human'],\n 'monorepo-root': ['project', 'human', 'enterprise_infra', 'enterprise_app', 'enterprise_ops'],\n\n // 24-25 slots — platform / SaaS shapes (base + selected enterprise)\n mcpaas: ['project', 'backend', 'universal', 'human', 'enterprise_app', 'enterprise_ops'],\n saas: ['project', 'frontend', 'backend', 'universal', 'human', 'enterprise_app'],\n\n // 33 slots — full enterprise\n enterprise: ['project', 'frontend', 'backend', 'universal', 'human', 'enterprise_infra', 'enterprise_app', 'enterprise_ops'],\n};\n",
|
|
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",
|
|
@@ -162,7 +162,7 @@
|
|
|
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
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}\n",
|
|
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,
|
|
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
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",
|
|
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",
|
|
@@ -191,8 +191,8 @@
|
|
|
191
191
|
"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
192
|
"/**\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",
|
|
193
193
|
"/**\n * The faf_loop decision core — the brain of \"100% or ask human\".\n *\n * A pure, snapshot decision: given a parsed .faf, classify its remaining gaps\n * as SOURCEABLE (detection can fill — language, stack: no human needed) or\n * HUMAN (only the human knows — the goal + the 6Ws), and return a verdict:\n *\n * done — nothing left (or already 100%). Stop, success.\n * can-source — sourceable gaps remain → the loop runs auto and re-scores.\n * needs-human — ONLY human gaps remain → the wall; ask (or seed-and-confirm).\n *\n * The classification IS the human/sourced boundary at runtime: a slot is human\n * iff its slot category is 'human' (the 6Ws) or it's the goal sentence. The\n * loop sources everything it can FIRST (minimise human asks); only when the\n * sourceable well is dry does it turn to the human. It never invents a human\n * slot to reach 100% — needs-human is a legitimate, honest terminal, not a\n * failure.\n *\n * This is the deterministic engine the CLI `faf loop` and the agentic\n * `/faf-loop` skill both decide from. Orchestration (run auto, re-score, the\n * no-progress + iteration-cap guards) lives in the command on top of this.\n */\n\nimport { INTERVIEW, questionForSlot } from './interview.js';\nimport { SLOT_BY_PATH, isPlaceholder } from './slots.js';\n\nexport type LoopStatus = 'done' | 'can-source' | 'needs-human';\n\nexport interface LoopGaps {\n /** Empty active slots only the human can give — the goal + the 6Ws. */\n human: string[];\n /** Empty active slots detection can fill — language + the stack. */\n sourceable: string[];\n}\n\nexport interface LoopVerdict {\n status: LoopStatus;\n score: number;\n gaps: LoopGaps;\n /** The questions to put to the human — populated only when status is\n * 'needs-human' (sourceable work is done; the human is all that's left). */\n ask: Array<{ path: string; question: string }>;\n}\n\n/** Default empty test: null/undefined, blank, or a placeholder token. The\n * What-Not (`slotignored`) is handled separately — it is never a gap. */\nexport function isEmptyValue(value: unknown): boolean {\n if (value === null || value === undefined) {return true;}\n if (typeof value === 'string') {\n const t = value.trim();\n return t === '' || isPlaceholder(t);\n }\n return false;\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 path is HUMAN (only the human can give it) iff it is the goal sentence or\n * its slot category is 'human' (the 6Ws). Everything else — name, language,\n * the stack — is sourceable by detection. */\nexport function isHumanSlot(path: string): boolean {\n if (path === 'project.goal') {return true;}\n return SLOT_BY_PATH.get(path)?.category === 'human';\n}\n\n/**\n * Classify the empty, non-ignored interviewable slots of a .faf into human vs\n * sourceable. Scope = the interviewable slots (the 6Ws + name + goal + the core\n * stack); `slotignored` (the What-Not) is never a gap.\n */\nexport function classifyGaps(\n data: Record<string, unknown>,\n isEmpty: (value: unknown) => boolean = isEmptyValue,\n): LoopGaps {\n const human: string[] = [];\n const sourceable: string[] = [];\n for (const q of INTERVIEW) {\n const v = valueAtPath(data, q.path);\n if (v === 'slotignored') {continue;} // the What-Not is never interviewed\n if (!isEmpty(v)) {continue;} // already filled\n (isHumanSlot(q.path) ? human : sourceable).push(q.path);\n }\n return { human, sourceable };\n}\n\n/**\n * The loop verdict for a .faf snapshot. `score` is the current AI-readiness\n * score (the loop's termination test). Precedence is deliberate: source\n * everything possible BEFORE asking the human — so 'can-source' wins while any\n * sourceable gap remains, and 'needs-human' fires only once they're exhausted.\n */\nexport function loopVerdict(\n score: number,\n data: Record<string, unknown>,\n isEmpty: (value: unknown) => boolean = isEmptyValue,\n): LoopVerdict {\n const gaps = classifyGaps(data, isEmpty);\n let status: LoopStatus;\n if (score >= 100 || (gaps.human.length === 0 && gaps.sourceable.length === 0)) {\n status = 'done';\n } else if (gaps.sourceable.length > 0) {\n status = 'can-source';\n } else {\n status = 'needs-human';\n }\n const ask = status === 'needs-human' ? humanAsk(gaps) : [];\n return { status, score, gaps, ask };\n}\n\n/** The questions to put to the human for a set of gaps — its human slots,\n * paired with their interview prompt. The single source for the ask. */\nfunction humanAsk(gaps: LoopGaps): Array<{ path: string; question: string }> {\n return gaps.human.map((path) => ({ path, question: questionForSlot(path) }));\n}\n\n// ── Orchestration ────────────────────────────────────────────────────────────\n//\n// runLoop drives the snapshot verdict to a terminal: read → score → verdict →\n// (can-source) run auto → repeat. Dependencies are INJECTED so the driver is\n// pure and testable without real file IO; the CLI `faf loop` wires the real\n// read / score / auto. Two safety rails, because a loop that runs auto must\n// never spin: a hard round cap, and no-progress detection (if a round of auto\n// doesn't lift the score, the sourceable well is dry — stop, don't churn).\n\nexport type LoopRunStatus =\n | 'done' // reached 100% / no gaps — success\n | 'needs-human' // sourceable exhausted; only the human can finish (honest wall)\n | 'stuck' // sourceable gaps auto can't fill, and no human gaps to ask\n | 'capped' // hit the round cap still making progress\n | 'no-faf'; // nothing to read — caller must create one first\n\nexport interface LoopDeps {\n /** The current .faf as {data, yaml}, or null when none exists. */\n read(): { data: Record<string, unknown>; yaml: string } | null;\n /** Score raw .faf yaml → 0..100 (the termination test). */\n score(yaml: string): number;\n /** Source what detection can (auto): fill the stack and WRITE the .faf. */\n runAuto(): void;\n}\n\nexport interface LoopRunOptions {\n /** Hard cap on auto rounds (default 5). */\n maxRounds?: number;\n isEmpty?: (value: unknown) => boolean;\n}\n\nexport interface LoopRunResult {\n status: LoopRunStatus;\n score: number;\n /** Auto rounds actually run. */\n rounds: number;\n /** Score after each read — the climb, for narration. */\n history: number[];\n /** The human questions to put — populated only when status is 'needs-human'. */\n ask: Array<{ path: string; question: string }>;\n}\n\nexport function runLoop(deps: LoopDeps, opts: LoopRunOptions = {}): LoopRunResult {\n const maxRounds = Math.max(1, opts.maxRounds ?? 5);\n const isEmpty = opts.isEmpty ?? isEmptyValue;\n const history: number[] = [];\n let rounds = 0;\n\n // One iteration per read; at most maxRounds auto runs between them.\n for (let i = 0; i <= maxRounds; i++) {\n const snap = deps.read();\n if (!snap) {return { status: 'no-faf', score: 0, rounds, history, ask: [] };}\n\n const score = deps.score(snap.yaml);\n history.push(score);\n const verdict = loopVerdict(score, snap.data, isEmpty);\n\n if (verdict.status === 'done') {\n return { status: 'done', score, rounds, history, ask: [] };\n }\n if (verdict.status === 'needs-human') {\n return { status: 'needs-human', score, rounds, history, ask: verdict.ask };\n }\n\n // can-source — but did the LAST auto round actually move the score?\n if (history.length >= 2 && score <= history[history.length - 2]) {\n // No progress: the sourceable well is dry (auto can't fill what's left).\n // Defer to the human if there are human gaps; otherwise we're stuck.\n // Build the ask from gaps.human directly — `verdict.ask` is empty here\n // (the verdict is 'can-source', which never carries questions).\n return verdict.gaps.human.length\n ? { status: 'needs-human', score, rounds, history, ask: humanAsk(verdict.gaps) }\n : { status: 'stuck', score, rounds, history, ask: [] };\n }\n\n if (rounds >= maxRounds) {\n return { status: 'capped', score, rounds, history, ask: humanAsk(verdict.gaps) };\n }\n\n deps.runAuto();\n rounds++;\n }\n\n // Defined fallthrough (the cap check above returns first in practice).\n const last = history[history.length - 1] ?? 0;\n return { status: 'capped', score: last, rounds, history, ask: [] };\n}\n",
|
|
194
|
-
"import { existsSync } from 'fs';\nimport { join
|
|
195
|
-
"import { existsSync, statSync } from 'fs';\nimport { join } from 'path';\nimport type { FafData } from '../core/types.js';\nimport { injectFafBlock } from './inject.js';\nimport { slotLabel } from './labels.js';\nimport { FAF_CONTEXT_FILES, readUtf8, resolveInside } from '../core/safe-write.js';\n\nconst CLAUDE_MD = FAF_CONTEXT_FILES.claude;\nconst SYNC_MARKER = 'STATUS: SYNC ACTIVE';\n\n/** Read CLAUDE.md from a directory. A CLAUDE.md link that leaves the\n * directory, or leads to a file that is not an AI context file, is refused\n * (SafePathError) and nothing is read; CLAUDE.md → AGENTS.md is read\n * through. A CLAUDE.md that is not UTF-8 is refused too
|
|
194
|
+
"import { existsSync } from 'fs';\nimport { join } from 'path';\nimport { findFafFile, readFaf, readFafRaw, withKernel } from '../interop/faf.js';\nimport { writeClaudeMd, renderClaudeMd } from '../interop/claude.js';\nimport { writeClaudeMemory, type ClaudeMemoryAction } from '../interop/claude-memory.js';\nimport { legacyStampNoteAt } from '../interop/inject.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 { isPro } from '../core/pro.js';\n\nexport interface SyncOptions {\n watch?: boolean;\n}\n\nexport function syncCommand(options: SyncOptions = {}): void {\n const dir = process.cwd();\n const fafPath = findFafFile(dir);\n\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 claudePath = join(dir, 'CLAUDE.md');\n\n // sync is one-way: .faf → CLAUDE.md. Nothing is read back into .faf.\n pushSync(fafPath, dir);\n\n // tri-sync: .faf → Claude Code's MEMORY.md (Pro)\n if (isPro()) {\n triSync(fafPath, dir);\n }\n\n if (options.watch) {\n console.log(dim('watching for changes... (Ctrl+C to stop)'));\n watchSync(fafPath, claudePath, dir);\n }\n}\n\nfunction pushSync(fafPath: string, dir: string): void {\n const data = readFaf(fafPath);\n const content = renderClaudeMd(data);\n // Read before the write: a CLAUDE.md led by faf's old stamp is prefixed,\n // never reclaimed — say so in one line.\n const note = legacyStampNoteAt(join(dir, 'CLAUDE.md'), 'CLAUDE.md');\n writeClaudeMd(dir, content);\n console.log(`${fafCyan('◆')} sync .faf → CLAUDE.md`);\n if (note) {console.log(dim(` ${note}`));}\n\n const result = withKernel(fafPath, () => enrichScore(kernel.score(readFafRaw(fafPath))));\n displayScore(result, fafPath);\n}\n\nconst MEMORY_ACTION: Record<ClaudeMemoryAction, string> = {\n created: 'created',\n updated: 'block updated',\n migrated: 'earlier tri-sync section replaced by the block',\n added: \"block added on top; Claude's notes kept\",\n unchanged: 'unchanged',\n};\n\n/**\n * Pro tri-sync: write faf's block into the MEMORY.md Claude Code loads for\n * this project (~/.claude/projects/<id>/memory/MEMORY.md — see\n * interop/claude-memory.ts). Claude's own notes in that file are kept byte\n * for byte; a run that changes nothing writes nothing. One direction only:\n * .faf → MEMORY.md (nothing is read back into .faf).\n */\nfunction triSync(fafPath: string, dir: string): void {\n try {\n const r = writeClaudeMemory(dir, readFaf(fafPath));\n console.log(`${fafCyan('◆')} sync .faf → MEMORY.md ${dim(`${MEMORY_ACTION[r.action]} — ${r.path}`)}`);\n for (const w of r.warnings) {console.log(dim(` ${w}`));}\n } catch (e) {\n console.error(`${bold('×')} sync .faf → MEMORY.md ${e instanceof Error ? e.message : String(e)}`);\n process.exitCode = 1;\n }\n}\n\nfunction watchSync(fafPath: string, claudePath: string, dir: string): void {\n const { watch } = require('fs');\n let debounce: ReturnType<typeof setTimeout> | null = null;\n\n const handler = () => {\n if (debounce) {clearTimeout(debounce);}\n debounce = setTimeout(() => {\n console.log(dim('change detected...'));\n pushSync(fafPath, dir);\n if (isPro()) {triSync(fafPath, dir);}\n }, 200);\n };\n\n watch(fafPath, handler);\n if (existsSync(claudePath)) {watch(claudePath, handler);}\n}\n",
|
|
195
|
+
"import { existsSync, statSync } from 'fs';\nimport { join } from 'path';\nimport type { FafData } from '../core/types.js';\nimport { injectFafBlock } from './inject.js';\nimport { slotLabel } from './labels.js';\nimport { FAF_CONTEXT_FILES, readUtf8, resolveInside } from '../core/safe-write.js';\n\nconst CLAUDE_MD = FAF_CONTEXT_FILES.claude;\nconst SYNC_MARKER = 'STATUS: SYNC ACTIVE';\n\n/** Read CLAUDE.md from a directory. A CLAUDE.md link that leaves the\n * directory, or leads to a file that is not an AI context file, is refused\n * (SafePathError) and nothing is read; CLAUDE.md → AGENTS.md is read\n * through. A CLAUDE.md that is not UTF-8 is refused too. Library export;\n * `faf sync` never reads CLAUDE.md back into project.faf. */\nexport function readClaudeMd(dir: string): string | null {\n const path = join(dir, CLAUDE_MD);\n if (!existsSync(path)) {return null;}\n return readUtf8(resolveInside(dir, CLAUDE_MD));\n}\n\n/** Write CLAUDE.md — non-destructive: injects/updates the faf block, preserves the rest. */\nexport function writeClaudeMd(dir: string, content: string): void {\n injectFafBlock(join(dir, CLAUDE_MD), content);\n}\n\n/** Get mtime of CLAUDE.md */\nexport function claudeMdMtime(dir: string): number | null {\n const path = join(dir, CLAUDE_MD);\n if (!existsSync(path)) {return null;}\n return statSync(path).mtimeMs;\n}\n\n/** Optional knobs for the 2-line FAF stamp. */\nexport interface FafMetaOpts {\n /** Canonical structured-truth file the md claims (default `project.faf`).\n * Use for AI-context md (CLAUDE/GEMINI/AGENTS/.cursorrules). */\n claim?: string;\n /** Role identifier (`readme`, `changelog`, `skill`, …).\n * Use for repo-meta md whose primary reader is human. Mutually exclusive with `claim`. */\n doc?: string;\n /** Current AI-readiness score (0–100). */\n score?: number;\n /** Sister-product family — `FAF` (default), `TAF`, `WJTTC`, … */\n family?: string;\n /** Other docs in the repo the reader should know about. */\n siblings?: string[];\n}\n\n/**\n * Build the canonical 2-line FAF stamp.\n *\n * Line 1 — positional identity: `name | lang | type | description`\n * Line 2 — key=value navigation/state: `claim=… | score=… | family=… | siblings=…`\n *\n * Spec: `memory/cross-ai-2-line-meta-stamp.md`. Issue #64.\n */\nexport function fafMetaTag(data: FafData, opts: FafMetaOpts = {}): string {\n const name = String(data.project?.name ?? '').trim();\n const lang = String(data.project?.main_language ?? '').trim();\n const type = String(data.project?.type ?? '').trim();\n const desc = String(data.project?.goal ?? '').trim();\n const line1 = `<!-- faf: ${[name, lang, type, desc].join(' | ')} -->`;\n\n const kv: string[] = [];\n if (opts.doc) {\n kv.push(`doc=${opts.doc}`);\n } else {\n kv.push(`claim=${opts.claim ?? 'project.faf'}`);\n }\n if (typeof opts.score === 'number') {kv.push(`score=${opts.score}`);}\n kv.push(`family=${opts.family ?? 'FAF'}`);\n if (opts.siblings && opts.siblings.length > 0) {\n kv.push(`siblings=${opts.siblings.join(',')}`);\n }\n const line2 = `<!-- faf: ${kv.join(' | ')} -->`;\n\n return `${line1}\\n${line2}`;\n}\n\n/** Render CLAUDE.md content from .faf data */\nexport function renderClaudeMd(data: FafData): string {\n const lines: string[] = [];\n const name = data.project?.name ?? 'Project';\n const lang = data.project?.main_language ?? '';\n const goal = data.project?.goal ?? '';\n\n // Meta tag — project DNA, invisible to renderers, visible to AI\n lines.push(fafMetaTag(data));\n lines.push('');\n\n // Title\n lines.push(`# CLAUDE.md — ${name}`);\n lines.push('');\n\n // What This Is\n if (goal) {\n lines.push('## What This Is');\n lines.push('');\n lines.push(goal);\n lines.push('');\n }\n\n // Stack — only non-ignored slots\n const stack = data.stack ?? {};\n const stackEntries: string[] = [];\n if (lang) {stackEntries.push(`**Language:** ${lang}`);}\n for (const [key, val] of Object.entries(stack)) {\n if (val && val !== 'slotignored' && String(val).trim()) {\n stackEntries.push(`**${slotLabel(`stack.${key}`)}:** ${val}`);\n }\n }\n if (stackEntries.length > 0) {\n lines.push('## Stack');\n lines.push('');\n for (const entry of stackEntries) {\n lines.push(`- ${entry}`);\n }\n lines.push('');\n }\n\n // Context — from human_context (the 6Ws)\n const hc = data.human_context ?? {};\n const contextEntries = ([\n ['who', hc.who], ['what', hc.what], ['why', hc.why],\n ['where', hc.where], ['when', hc.when], ['how', hc.how],\n ] as [string, unknown][])\n .filter(([, v]) => v && String(v).trim())\n .map(([k, v]) => `- **${slotLabel(`human_context.${k}`)}:** ${v}`);\n\n if (contextEntries.length > 0) {\n lines.push('## Context');\n lines.push('');\n lines.push(...contextEntries);\n lines.push('');\n }\n\n // Sync footer\n lines.push('---');\n lines.push('');\n lines.push(`*${SYNC_MARKER} — ${new Date().toISOString()}*`);\n lines.push('');\n\n return lines.join('\\n');\n}\n\n/** Strip a trailing `vN`, `vN.N`, `vN.N.N…` version token from a project name.\n * Requires whitespace before the `v` so hyphenated names like `mcpaas-vue` or\n * `faf-cli-v6` are preserved. Issue #64 sibling — see #62. */\nfunction stripVersionTrailer(name: string): string {\n return name.replace(/\\s+v\\d+(?:\\.\\d+)*\\s*$/i, '').trim();\n}\n\n/** Extract project data from CLAUDE.md content (pull direction) */\nexport function parseClaudeMd(content: string): Partial<FafData> {\n const data: Partial<FafData> = { project: {} };\n\n // New format: \"# CLAUDE.md — project-name\"\n const titleMatch = content.match(/^# CLAUDE\\.md\\s*[—–-]\\s*(.+)$/m);\n if (titleMatch) {data.project!.name = stripVersionTrailer(titleMatch[1].trim());}\n\n // Old format fallback: \"**Name:** value\"\n if (!data.project!.name) {\n const nameMatch = content.match(/\\*\\*Name:\\*\\*\\s*(.+)/);\n if (nameMatch) {data.project!.name = stripVersionTrailer(nameMatch[1].trim());}\n }\n\n // New format: paragraph after \"## What This Is\"\n const whatMatch = content.match(/## What This Is\\s*\\n\\s*\\n(.+)/);\n if (whatMatch) {data.project!.goal = whatMatch[1].trim();}\n\n // Old format fallback: \"**What Building:** value\"\n if (!data.project!.goal) {\n const goalMatch = content.match(/\\*\\*What Building:\\*\\*\\s*(.+)/);\n if (goalMatch) {data.project!.goal = goalMatch[1].trim();}\n }\n\n // New format: \"**Language:** value\" under Stack\n const langMatch = content.match(/\\*\\*Language:\\*\\*\\s*(.+)/);\n if (langMatch) {data.project!.main_language = langMatch[1].trim();}\n\n // Old format fallback: \"**Main Language:** value\"\n if (!data.project!.main_language) {\n const oldLangMatch = content.match(/\\*\\*Main Language:\\*\\*\\s*(.+)/);\n if (oldLangMatch) {data.project!.main_language = oldLangMatch[1].trim();}\n }\n\n return data;\n}\n",
|
|
196
196
|
"import { dirname, resolve } from 'path';\nimport { SafePathError, readUtf8, resolveInside, safeWriteFile } from '../core/safe-write.js';\nimport { BlockReader, MAX_OPEN_CONTAINERS, type HiddenIn } from './commonmark.js';\n\n/**\n * Block markers for the faf-managed front section.\n *\n * Markdown files (AGENTS.md, CLAUDE.md, GEMINI.md) use HTML comments; non-markdown\n * files (.cursorrules) pass hash-comment markers via the `start`/`end` args.\n */\nexport const FAF_START = '<!-- faf:start -->';\nexport const FAF_END = '<!-- faf:end -->';\n\nconst BOM = '\\uFEFF';\n\n/** Split into lines keeping each line's own terminator (\\r\\n, \\r or \\n). */\nexport function linesWithEnds(text: string): string[] {\n return text.match(/[^\\r\\n]*(?:\\r\\n|\\r|\\n|$)/g)?.filter((l, i, a) => l !== '' || i < a.length - 1) ?? [];\n}\n\nexport const stripEnd = (line: string): string => line.replace(/\\r?\\n$|\\r$/, '');\n/** A line as the marker rules see it: terminator, a leading BOM and trailing whitespace dropped. */\nconst bareLine = (line: string): string => stripEnd(line).replace(/^\\uFEFF/, '').trimEnd();\n\n// ─── Markdown regions: two readings ──────────────────────────────────────────\n//\n// Text in fenced or indented code, in a raw HTML block (<pre>, <script>,\n// <style>, <textarea>, <?…?>, <!X…>, <![CDATA[…]]>) or in a multi-line HTML\n// comment is shown as code, or not shown at all — a marker line there is an\n// example, never a marker. faf reads every file two ways (commonmark.ts):\n// (a) as CommonMark reads it: list items and block quotes included. A list\n// item's lines sit at its content column (a tab after the marker\n// advances to the next multiple of 4); a fence or raw block opened in a\n// list item closes at that column and ends when the item does; no\n// fence opens inside an HTML block of types 6 or 7 (<div>, <details>,\n// a lone tag) until a blank line;\n// (b) plainly, every line at column 0: the same blocks, with no list items\n// and no block quotes.\n// A START/END pair is faf's block only when both readings find that same\n// pair. When they differ the file is the user's, and faf prefixes: when in\n// doubt, prefix. A file that nests more than MAX_OPEN_CONTAINERS block quotes,\n// lists and list items before faf's block is one faf cannot read for sure:\n// the reading stops there, and faf prefixes too.\n\n/** One reading's search: the latest START seen, and the pair once found. */\ninterface Search {\n reader: BlockReader;\n start: number;\n found: { start: number; end: number } | null;\n}\n\n/** One line of the text, where it starts, and its BOM-free content. */\ninterface ScanLine {\n offset: number;\n /** Where the line's text starts (after a line-1 BOM). */\n from: number;\n /** Where the line's text ends (before its terminator). */\n to: number;\n content: string;\n}\n\nfunction* scanLines(text: string): Generator<ScanLine> {\n let offset = 0;\n for (const line of linesWithEnds(text)) {\n const body = stripEnd(line);\n const bom = offset === 0 && body.charCodeAt(0) === 0xfeff ? 1 : 0;\n yield { offset, from: offset + bom, to: offset + body.length, content: body.slice(bom) };\n offset += line.length;\n }\n}\n\n/** Move each reading that shows `line` on: a START there becomes its latest\n * START, an END after a START completes its pair. */\nfunction advance(shown: Search[], line: ScanLine, isStart: (l: string) => boolean, isEnd: (l: string) => boolean): void {\n const end = shown.some(r => r.start !== -1) && isEnd(line.content);\n const start = isStart(line.content);\n for (const r of shown) {\n if (r.start !== -1 && end) {\n r.found = { start: r.start, end: line.to };\n } else if (start) {\n r.start = line.from;\n }\n }\n}\n\n/**\n * faf's marked range in `text`: in each reading, the last START line before\n * the first END line after it (the innermost pair — text between an earlier\n * START and the last one is kept), both outside every Markdown region. The\n * two readings must find the same pair; otherwise there is no range. Returns\n * the char range covering both lines (the END line's terminator excluded), or\n * null. A leading BOM on line 1 stays outside the range. `isStart` and\n * `isEnd` are asked about each line shown as text in at least one reading,\n * once, in order, on the line with its terminator and that BOM removed. Past\n * MAX_OPEN_CONTAINERS open containers the CommonMark reading stops, and there\n * is no range (a pair found before that point still counts). Time grows with\n * the text's length, not with how deep it nests.\n */\nexport function findMarkedRange(\n text: string,\n isStart: (line: string) => boolean,\n isEnd: (line: string) => boolean,\n): { start: number; end: number } | null {\n const [a, b]: Search[] = [new BlockReader(true), new BlockReader(false)].map(reader => ({ reader, start: -1, found: null }));\n for (const line of scanLines(text)) {\n const hidden = [a, b].map(r => r.reader.line(line.content));\n if (a.reader.tooDeep) {return null;} // nested too deep to read for sure: the file is the user's\n const shown = [a, b].filter((_, i) => hidden[i] === null);\n if (shown.length > 0) {advance(shown, line, isStart, isEnd);}\n // Both readings end their pair on this same line, or they do not agree.\n if (a.found || b.found) {return a.found && b.found && a.found.start === b.found.start ? a.found : null;}\n }\n return null;\n}\n\n/** A whole marker line at column 0: exactly the marker text (a CRLF line's\n * `\\r` is its terminator). Trailing spaces or tabs make it text, not a marker. */\nconst markerLine = (marker: string) => (line: string): boolean => line === marker;\n\n/**\n * Locate the faf-managed block in `text`: a START marker line and the first\n * END marker line after it, both outside fenced and indented code, raw HTML\n * blocks and multi-line HTML comments, under both readings (see\n * {@link findMarkedRange}). Returns the char range covering both marker lines\n * (terminator of the END line excluded), or null when there is no complete\n * block both readings agree on.\n *\n * Markers are matched as WHOLE LINES at column 0 — exactly the marker text,\n * nothing after it — never as substrings. Substring search was a real bug\n * (7.1.4–7.11.0): renderAgentsMd quoted the marker tokens in its own\n * blockquote, so on every re-run `indexOf(end)` hit the quote, cut the old\n * block in half and appended its stale tail below the new block — `faf\n * export --agents` grew AGENTS.md by ~49 lines per run. The same happened to\n * users who documented the markers in a code fence above the block.\n *\n * Two START lines before an END: the pair is the last START and that END.\n * faf's own body never holds a column-0 START (see {@link wrapFafBlock}), so\n * the text between the two STARTs is the user's and stays. A START with no\n * END is not a block: the caller treats \"no block\" as a user file and\n * prefixes — it never reclaims. faf's own block is always found again where\n * faf put it (see {@link placeFafBlock}).\n */\nexport function findFafBlock(\n text: string,\n start: string = FAF_START,\n end: string = FAF_END,\n): { start: number; end: number } | null {\n return findMarkedRange(text, markerLine(start), markerLine(end));\n}\n\n/** For each reading that would hide a line of `end` after `text`: the line\n * that ends the region it sits in (null when no single line does). */\nfunction closersFor(text: string, end: string): Array<string | null> {\n const closers: Array<string | null> = [];\n for (const containers of [true, false]) {\n const reader = new BlockReader(containers);\n for (const line of linesWithEnds(text)) {reader.line(stripEnd(line));}\n if (reader.clone().line(end) !== null) {closers.push(reader.closer());}\n }\n return closers;\n}\n\n/** No line of faf's own body leaves more block quotes, lists and list items\n * open than this (as CommonMark reads it) — far below the reader's cap,\n * MAX_OPEN_CONTAINERS, so the next run always reads the block to its end,\n * quoted (one quote more) or not. See {@link capDepth}. */\nexport const BODY_MAX_CONTAINERS = 16;\n\n/** The same lines, with the marker that would open a block quote, list or\n * list item past BODY_MAX_CONTAINERS escaped with a backslash — `\\>` for a\n * quote, `\\-` / `\\*` / `\\+` for a bullet, `1\\.` for an ordered item — so\n * that line opens nothing more and shows the same text (a .faf value holding\n * a 101-deep `>>>…` quote, or a list nested 52 levels deep). Every line\n * within the cap is left exactly as it is. */\nfunction capDepth(lines: string[]): string[] {\n const reader = new BlockReader(true);\n return lines.map(line => {\n const at = reader.overflowAt(stripEnd(line), BODY_MAX_CONTAINERS);\n let out = line;\n if (at >= 0) {\n const ordered = /^\\d{1,9}(?=[.)])/.exec(line.slice(at));\n const mark = ordered ? at + ordered[0].length : at;\n out = `${line.slice(0, mark)}\\\\${line.slice(mark)}`;\n }\n reader.line(stripEnd(out));\n return out;\n });\n}\n\n/** faf's own body, made safe to wrap between its markers:\n * - a body line that is itself a marker line (a .faf value that documents\n * the markers, say — with or without trailing spaces) would let the next\n * write cut the block there and grow the file every run — it is indented\n * one space: no longer a column-0 marker, and the text is unchanged;\n * - a body that nests block quotes or lists past BODY_MAX_CONTAINERS would\n * stop the next run's reading inside the block, and faf would prefix a\n * second block — the marker that goes past it is escaped (see\n * {@link capDepth});\n * - a body that leaves fenced code, a raw HTML block or a comment open (a\n * .faf value holding a ``` line, say) would hide the END line from the\n * next scan, and faf would prefix a second block — the region is closed\n * on a line of its own at the end of the body, in each reading. A closer\n * that would hide the END line in the other reading is not added: such a\n * body is quoted by {@link placeFafBlock} instead. */\nfunction guardBody(body: string, start: string, end: string): string {\n const lines = capDepth(linesWithEnds(body).map(line => {\n const bare = bareLine(line);\n return bare === start || bare === end ? ` ${line}` : line;\n }));\n let text = lines.join('');\n let hiding = closersFor(text, end);\n while (hiding.length > 0 && hiding[0] !== null) {\n const next = `${text}\\n${hiding[0]}`;\n const after = closersFor(next, end);\n if (after.length >= hiding.length) {break;}\n text = next;\n hiding = after;\n }\n return text;\n}\n\n/** The same block with every body line quoted (`> `; a blank line `>`): a\n * block quote in the CommonMark reading and plain text in the column-0 one,\n * so no body line can hide the END line in either — whatever the text\n * before the block leaves open. The fallback for a body the closers cannot\n * settle. */\nfunction quoteBody(wrapped: string, start: string, end: string): string {\n const body = wrapped.slice(start.length + 1, wrapped.length - end.length - 1);\n const quoted = linesWithEnds(body).map(line => (stripEnd(line) === '' ? `>${line}` : `> ${line}`)).join('');\n return `${start}\\n${quoted}\\n${end}`;\n}\n\n/**\n * `head`, faf's block (`wrapped`, from {@link wrapFafBlock}) and `tail` as one\n * text in which {@link findFafBlock} finds the block exactly where it was put\n * — so the next write updates it in place and never stacks a second one. A\n * body that would not be found there (it leaves a region open in only one\n * reading, or the text before it holds a raw HTML block the body continues)\n * is quoted line by line instead. If even that is not found, it throws a\n * SafePathError (`unplaceable`) naming `path` (the file being written):\n * \"<file>: faf could not place its block where the next run finds it again —\n * faf left it unchanged\" — one line, and nothing is written.\n */\nexport function placeFafBlock(\n head: string,\n wrapped: string,\n tail: string,\n start: string = FAF_START,\n end: string = FAF_END,\n path = 'the file',\n): string {\n const placed = (block: string): string | null => {\n const text = `${head}${block}${tail}`;\n const found = findFafBlock(text, start, end);\n return found && found.start === head.length && found.end === head.length + block.length ? text : null;\n };\n const text = placed(wrapped) ?? placed(quoteBody(wrapped, start, end));\n if (text === null) {\n throw new SafePathError('unplaceable', path, `${path}: faf could not place its block where the next run finds it again — faf left it unchanged`, { onWrite: true });\n }\n return text;\n}\n\n/** The managed block: START, the body (guarded — see guardBody), END. */\nexport function wrapFafBlock(block: string, start: string = FAF_START, end: string = FAF_END): string {\n return `${start}\\n${guardBody(block.trim(), start, end)}\\n${end}`;\n}\n\n/** The file's new text: `existing` (null when there is no file) with `wrapped`\n * as its managed block, placed where the next scan finds it again (see\n * {@link placeFafBlock}; `path` names the file in its refusal). */\nexport function withFafBlock(existing: string | null, wrapped: string, start: string = FAF_START, end: string = FAF_END, path?: string): string {\n // 1. No file → just the block.\n if (existing === null) {return placeFafBlock('', wrapped, '\\n', start, end, path);}\n\n // 2. A complete block → replace only the managed block; keep everything around it.\n const found = findFafBlock(existing, start, end);\n if (found) {return placeFafBlock(existing.slice(0, found.start), wrapped, existing.slice(found.end), start, end, path);}\n\n // 3. Everything else → prefix the block and keep every byte already there. A\n // file with no marker lines is the user's, whatever its first line says —\n // a faf-looking stamp or footer proves nothing. A leading BOM stays at byte 0.\n const bom = existing.startsWith(BOM) ? BOM : '';\n return placeFafBlock(bom, wrapped, `\\n\\n${existing.slice(bom.length)}`, start, end, path);\n}\n\n/** Read a resolved path, or null when nothing is there yet. Only ENOENT reads\n * as \"no file\"; any other error is thrown, so a file faf could not read is\n * never treated as empty and written fresh. The text is decoded strictly: a\n * file that is not UTF-8 (a UTF-16 file, cp1252 bytes) is refused\n * (SafePathError `not-utf8`) and left as it is — see readUtf8. */\nexport function readIfPresent(path: string): string | null {\n try {\n return readUtf8(path);\n } catch (e) {\n if ((e as NodeJS.ErrnoException).code === 'ENOENT') {return null;}\n throw e;\n }\n}\n\nexport interface InjectOptions {\n /** The project folder the file must stay inside. Default: the file's own\n * folder. Pass it when the file sits in a subfolder (`.github/…`), so a\n * linked subfolder cannot carry the write out of the project. */\n root?: string;\n}\n\n/**\n * Non-destructively write a faf-managed block into a file.\n *\n * - file does not exist → create it containing just the block\n * - file has the markers → replace ONLY the content between them (update in place)\n * - anything else → PREFIX the block; everything already there is preserved\n * (a leading BOM stays at byte 0)\n *\n * faf replaces only text it can prove it wrote: what sits between its own\n * marker lines. A file with no marker lines is never reclaimed, whatever it\n * starts or ends with. Idempotent: re-running updates the managed block in\n * place and never duplicates it. Enhance, never replace.\n *\n * The file is resolved inside its project first: a link that leads outside,\n * a dangling link, a link to a file with another name (CLAUDE.md → README.md)\n * and anything in `.git` are refused (SafePathError) and nothing is written; a\n * link to a file of the same name, or between AI context files (CLAUDE.md →\n * AGENTS.md), is written through and stays a link. A file that is not UTF-8\n * is refused and left as it is. The write is atomic — a failure leaves the\n * original exactly as it was — and is refused if the file changed on disk\n * after faf read it. A block faf cannot place where its next run finds it\n * again is refused too (SafePathError `unplaceable`), and nothing is written.\n */\nexport function injectFafBlock(\n path: string,\n block: string,\n start: string = FAF_START,\n end: string = FAF_END,\n opts: InjectOptions = {},\n): void {\n const wrapped = wrapFafBlock(block, start, end);\n const full = resolve(path);\n const root = opts.root ?? dirname(full);\n const target = resolveInside(root, full);\n const existing = readIfPresent(target);\n safeWriteFile(target, withFafBlock(existing, wrapped, start, end, full), { root, expect: existing });\n}\n\n/** faf's old metastamp line — the two-line `<!-- faf: … -->` stamp older faf\n * versions put at the top of CLAUDE.md and friends, with no markers. */\nconst LEGACY_STAMP = '<!-- faf:';\n\n/** How the note names the region an old START line sits in. */\nfunction regionName(hidden: HiddenIn): string {\n if (hidden === 'code fence') {return 'a code fence';}\n if (hidden === 'indented code') {return 'an indented code block';}\n if (hidden === 'comment') {return 'an HTML comment';}\n return hidden === 'html' ? 'an HTML block' : `a ${hidden} block`;\n}\n\n/** The region a whole-line START of `text` sits in — in either reading — or\n * null when every START line is shown as text (or there is none). `'too\n * deep'` when a whole-line START sits past the point where the file nests\n * more than MAX_OPEN_CONTAINERS containers (faf stopped reading there). */\nfunction hiddenStart(text: string, start: string): HiddenIn | 'too deep' | null {\n const readers = [new BlockReader(true), new BlockReader(false)];\n let deep = false;\n for (const { content } of scanLines(text)) {\n if (deep) {\n if (content === start) {return 'too deep';}\n continue;\n }\n const [a, b] = readers.map(r => r.line(content));\n deep = readers[0].tooDeep;\n const hidden = a ?? b;\n if (content === start && (deep || hidden !== null)) {return deep ? 'too deep' : hidden;}\n }\n return null;\n}\n\n/** Whether a whole-line START or END of `text` is shown as text in at least\n * one reading. Only asked once {@link findFafBlock} has found no block, so a\n * marker line still shown there is one faf could not pair up: a truncated\n * block an older faf left behind, or a pair the two readings disagree about.\n * Markers are compared exactly as findFafBlock compares them — whole line,\n * column 0, trailing whitespace making it text. Past the point where the\n * file nests more than MAX_OPEN_CONTAINERS containers faf stopped reading,\n * so nothing beyond it counts (that region has its own note). */\nfunction visibleOrphanMarker(text: string, start: string, end: string): boolean {\n const readers = [new BlockReader(true), new BlockReader(false)];\n for (const { content } of scanLines(text)) {\n const hidden = readers.map(r => r.line(content));\n if (readers[0].tooDeep) {return false;}\n if ((content === start || content === end) && hidden.some(h => h === null)) {return true;}\n }\n return false;\n}\n\n/**\n * The one line the CLI prints when faf's block goes on top of a file that has\n * no block of its own but holds older faf text — or null:\n * - the file's first line is faf's old metastamp (`<!-- faf: … -->`): faf\n * never reclaims such a file (it cannot prove it wrote the text), so the\n * old faf text stays below the new block;\n * - a whole-line START marker sits inside a code fence, a raw HTML block\n * or an HTML comment (in either reading — see {@link findFafBlock}): the\n * older block there is an example to faf, and stays below the new one;\n * - a whole-line START marker sits past more than MAX_OPEN_CONTAINERS\n * nested lists or quotes: faf did not read that far, and the older block\n * stays below the new one;\n * - a whole-line START or END marker is shown as text with no matching pair\n * — a block an older faf truncated, or a pair the two readings read\n * differently. faf cannot prove where that block ended, so it is left\n * exactly as it is and the new block goes on top. Without this line the\n * file is the one case in this family that is prefixed in silence: it\n * carries faf's own marker text, so it looks most like faf's to a reader\n * and least like it to faf.\n * `label` names the file (`CLAUDE.md`). `existing` is the file's text before\n * the write (null when there was none). faf-mcp and claude-faf-mcp print the\n * same line through this export.\n */\nexport function legacyStampNote(\n label: string,\n existing: string | null,\n start: string = FAF_START,\n end: string = FAF_END,\n): string | null {\n if (existing === null || findFafBlock(existing, start, end)) {return null;}\n const first = bareLine(linesWithEnds(existing)[0] ?? '');\n if (first.startsWith(LEGACY_STAMP) && first !== start && first !== end) {\n return `${label}: faf's block is now on top; the old faf text below it is left as you had it — delete it by hand if you no longer want it.`;\n }\n const hidden = hiddenStart(existing, start);\n if (hidden === 'too deep') {\n return `${label}: faf's block is now on top; the file nests more than ${MAX_OPEN_CONTAINERS} lists or quotes before an older faf block, so faf did not read that far — the older block is left as you had it; delete it by hand if you no longer want it.`;\n }\n if (hidden !== null) {\n return `${label}: faf's block is now on top; an older faf block below sits inside ${regionName(hidden)} and is left as you had it — delete it by hand if you no longer want it.`;\n }\n if (visibleOrphanMarker(existing, start, end)) {\n return `${label}: faf's block is now on top; an older faf marker line below it has no matching pair, so the text there is left as you had it — delete it by hand if you no longer want it.`;\n }\n return null;\n}\n\n/** {@link legacyStampNote} for the file at `path`, read the way\n * injectFafBlock reads it — before the write. Null when there is no note, or\n * when the file cannot be read (the write itself then says why). */\nexport function legacyStampNoteAt(\n path: string,\n label: string,\n start: string = FAF_START,\n end: string = FAF_END,\n opts: InjectOptions = {},\n): string | null {\n try {\n const full = resolve(path);\n return legacyStampNote(label, readIfPresent(resolveInside(opts.root ?? dirname(full), full)), start, end);\n } catch {\n return null;\n }\n}\n",
|
|
197
197
|
"/**\n * CommonMark's block structure, line by line — just enough of it to say which\n * lines Markdown shows as code, or hides in a raw HTML block or a multi-line\n * comment. faf uses it to tell its own marker lines from marker examples.\n *\n * The algorithm is the reference implementation's (commonmark.js, spec 0.31):\n * each line first continues the open containers (block quotes, list items —\n * a list item's lines sit at its content column, a tab after the marker\n * advancing to the next multiple of 4), then may open new blocks, then is\n * added to the innermost open block or continues a paragraph lazily. Only\n * what decides block structure is kept: no inline parsing, no link reference\n * definitions, no tables.\n *\n * A reader made with `containers: false` reads every line at column 0 with no\n * block quotes and no list items — the plain reading a text editor, an older\n * faf or another tool may apply. faf takes a block as its own only when both\n * readings agree (see inject.ts).\n *\n * What a line counts as hidden in:\n * - fenced code (its opening and closing lines included) and indented code;\n * - an HTML block of types 1-5 — <pre>/<script>/<style>/<textarea> up to the\n * closing tag, a comment up to `-->`, <?…?>, <!X…>, <![CDATA[…]]> — except\n * a comment that opens and closes on the one line (faf's own marker\n * lines are such comments);\n * - not an HTML block of types 6 or 7 (<div>, <details>, any lone tag): a\n * comment inside raw HTML is still a comment. No fence or other block\n * opens inside one until a blank line ends it.\n *\n * Speed: each line costs time in proportion to its length, however deep the\n * nesting — the reader never re-reads the rest of a line per nesting level.\n * Past MAX_OPEN_CONTAINERS open block quotes, lists and list items the reader\n * stops reading (`tooDeep`): faf cannot say for sure where such a file's\n * regions are, so the file is the user's — faf's block goes on top and every\n * byte stays.\n */\n\nconst CODE_INDENT = 4;\n\n/** More open block quotes, lists and list items than this, and a reader stops\n * reading (see {@link BlockReader.tooDeep}). */\nexport const MAX_OPEN_CONTAINERS = 100;\n\nconst TAGNAME = '[A-Za-z][A-Za-z0-9-]*';\nconst ATTRIBUTENAME = '[a-zA-Z_:][a-zA-Z0-9:._-]*';\nconst ATTRIBUTEVALUE = '(?:[^\"\\'=<>`\\\\x00-\\\\x20]+|\\'[^\\']*\\'|\"[^\"]*\")';\nconst ATTRIBUTE = `(?:\\\\s+${ATTRIBUTENAME}(?:\\\\s*=\\\\s*${ATTRIBUTEVALUE})?)`;\nconst OPENTAG = `<${TAGNAME}${ATTRIBUTE}*\\\\s*/?>`;\nconst CLOSETAG = `</${TAGNAME}\\\\s*>`;\nconst BLOCK_NAMES =\n 'address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|' +\n 'fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|' +\n 'menuitem|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul';\n\n/** HTML block start conditions, types 1-7 (index 0 is type 1). */\nconst HTML_OPEN: readonly RegExp[] = [\n /^<(script|pre|style|textarea)(?=\\s|>|$)/i,\n /^<!--/,\n /^<\\?/,\n /^<![A-Za-z]/,\n /^<!\\[CDATA\\[/,\n new RegExp(`^</?(?:${BLOCK_NAMES})(?=\\\\s|/?>|$)`, 'i'),\n new RegExp(`^(?:${OPENTAG}|${CLOSETAG})\\\\s*$`, 'i'),\n];\n/** End conditions of HTML block types 1-5 (types 6 and 7 end at a blank line). */\nconst HTML_CLOSE: readonly RegExp[] = [/<\\/(?:script|pre|style|textarea)>/i, /-->/, /\\?>/, />/, /\\]\\]>/];\n/** The line that meets each end condition of types 1-5 (type 1 names its tag). */\nconst HTML_CLOSER: readonly string[] = ['', '-->', '?>', '>', ']]>'];\n\n// Line rules, matched where the reader stands (sticky: no copy of the rest of the line).\nconst MAYBE_SPECIAL = /[#`~*+_=<>0-9-]/;\nconst ORDERED = /(\\d{1,9})([.)])/y;\nconst ATX_HEADING = /#{1,6}(?:[ \\t]+|$)/y;\nconst FENCE_OPEN = /`{3,}(?!.*`)|~{3,}/y;\nconst FENCE_CLOSE = /(?:`{3,}|~{3,})(?=[ \\t]*$)/y;\nconst SETEXT_LINE = /(?:=+|-+)[ \\t]*$/y;\nconst NON_SPACE = /[^ \\t\\f\\v\\r\\n]/;\n\n/** `re` (sticky) matched at `pos` of `text`, or null. */\nfunction matchAt(re: RegExp, text: string, pos: number): RegExpExecArray | null {\n re.lastIndex = pos;\n return re.exec(text);\n}\n\nconst isContainer = (kind: Kind): boolean => kind === 'quote' || kind === 'list' || kind === 'item';\n\n/** For each position of `ln`: 1 when the rest of the line from there is a\n * thematic break — three or more of one of `*`, `-`, `_`, starting there,\n * with only spaces and tabs between and after them. One pass from the end,\n * so the check costs the same however often a line asks it. */\nfunction thematicBreaks(ln: string): Uint8Array {\n const ok = new Uint8Array(ln.length);\n const marks = '*-_';\n const count = [0, 0, 0];\n const pure = [true, true, true]; // only this mark, spaces and tabs after i\n for (let i = ln.length - 1; i >= 0; i--) {\n const c = ln[i];\n const space = c === ' ' || c === '\\t';\n for (let k = 0; k < 3; k++) {\n if (c === marks[k]) {count[k]++;} else if (!space) {pure[k] = false;}\n }\n const k = marks.indexOf(c);\n ok[i] = k >= 0 && pure[k] && count[k] >= 3 ? 1 : 0;\n }\n return ok;\n}\n\ninterface ListData {\n bullet: string | null;\n delimiter: string | null;\n markerOffset: number;\n padding: number;\n}\n\ninterface Fence {\n char: string;\n len: number;\n offset: number;\n}\n\ntype Block =\n | { kind: 'document' | 'quote' | 'paragraph' | 'heading' | 'break'; hasChild?: boolean }\n | { kind: 'list'; list: ListData; hasChild?: boolean }\n | { kind: 'item'; list: ListData; hasChild?: boolean }\n | { kind: 'code'; fence: Fence | null; hasChild?: boolean }\n | { kind: 'html'; type: number; tag: string; hasChild?: boolean };\n\ntype Kind = Block['kind'];\n\n/** What hides a line: its region, as faf names it to the user. */\nexport type HiddenIn = 'code fence' | 'indented code' | 'html' | 'comment' | `<${string}>`;\n\n/** 0: no; 1: yes, a container; 2: yes, and the line is done with (a leaf). */\ntype Step = 0 | 1 | 2;\n\nconst isSpaceOrTab = (c: string | undefined): boolean => c === ' ' || c === '\\t';\n\nfunction canContain(parent: Kind, child: Kind): boolean {\n if (parent === 'document' || parent === 'quote' || parent === 'item') {return child !== 'item';}\n return parent === 'list' && child === 'item';\n}\n\nconst acceptsLines = (kind: Kind): boolean => kind === 'paragraph' || kind === 'code' || kind === 'html';\n\nfunction copyBlock(b: Block): Block {\n if (b.kind === 'list' || b.kind === 'item') {return { ...b, list: { ...b.list } };}\n if (b.kind === 'code') {return { ...b, fence: b.fence && { ...b.fence } };}\n return { ...b };\n}\n\n/** Feeds a text line by line (terminators removed) and says which lines are hidden. */\nexport class BlockReader {\n private stack: Block[] = [{ kind: 'document' }];\n // The line being read, and where the reader stands in it.\n private ln = '';\n private offset = 0;\n private column = 0;\n private nextNonspace = 0;\n private nextNonspaceColumn = 0;\n private indent = 0;\n private indented = false;\n private blank = false;\n private allClosed = true;\n private matched = 0;\n private htmlStarted = false;\n private hiddenIn: HiddenIn | null = null;\n /** Where the last whitespace scan of this line started (-1: none yet). */\n private scannedFrom = -1;\n /** Per line, lazily: 1 where the rest of the line is a thematic break. */\n private breaks: Uint8Array | null = null;\n private deep = false;\n /** With a limit (see {@link overflowAt}): open containers allowed, and\n * where the line first opened one past it (-1: nowhere yet). */\n private limit = -1;\n private overflow = -1;\n private readonly starts: ReadonlyArray<(container: Block) => Step>;\n\n /** `containers: false` — the plain column-0 reading: no block quotes, no list items. */\n constructor(private readonly containers: boolean = true) {\n this.starts = [\n () => this.startQuote(),\n () => this.startHeading(),\n () => this.startFence(),\n c => this.startHtml(c),\n c => this.startSetext(c),\n () => this.startBreak(),\n c => this.startItem(c),\n () => this.startIndentedCode(),\n ];\n }\n\n /** An independent copy, for trying lines out. */\n clone(): BlockReader {\n const copy = new BlockReader(this.containers);\n copy.stack = this.stack.map(copyBlock);\n copy.deep = this.deep;\n return copy;\n }\n\n /**\n * Where in `ln` a reader in this state would open a block quote, list or\n * list item past `limit` open ones — the offset of that quote's `>` or that\n * item's marker — or -1 when the line leaves at most `limit` open. This\n * reader does not move: a copy reads the line.\n */\n overflowAt(ln: string, limit: number): number {\n const probe = this.clone();\n probe.limit = limit;\n probe.line(ln);\n return probe.overflow;\n }\n\n /** True once more than MAX_OPEN_CONTAINERS block quotes, lists and list\n * items were open at once. The reader then stops reading: what it says\n * about that line and every later one means nothing, and a caller treats\n * the file as one it cannot read for sure. */\n get tooDeep(): boolean {\n return this.deep;\n }\n\n /** Read one line (no terminator). Returns what hides it, or null when it is shown as text. */\n line(ln: string): HiddenIn | null {\n if (this.deep) {return null;}\n this.ln = ln;\n this.offset = 0;\n this.column = 0;\n this.blank = false;\n this.htmlStarted = false;\n this.hiddenIn = null;\n this.scannedFrom = -1;\n this.breaks = null;\n const container = this.continueContainers();\n if (container < 0) {return this.hiddenIn;} // a closing fence: the line is its last\n const leaf = this.openBlocks(container);\n if (this.deep) {return null;}\n // A lazy paragraph line (a list item's or a quote's paragraph, run on) is text.\n if (!this.allClosed && !this.blank && this.tip.kind === 'paragraph') {return null;}\n this.closeUnmatched();\n this.addText(leaf);\n return this.hiddenIn;\n }\n\n /** The line that would close the region a column-0 line would now be hidden\n * in (a fence or an HTML block of types 1-5 at the top level), or null. */\n closer(): string | null {\n if (this.stack.length !== 2) {return null;}\n const b = this.stack[1];\n if (b.kind === 'code') {return b.fence ? b.fence.char.repeat(b.fence.len) : null;}\n if (b.kind !== 'html' || b.type > 5) {return null;}\n return b.type === 1 ? `</${b.tag}>` : HTML_CLOSER[b.type - 1];\n }\n\n private get tip(): Block {\n return this.stack[this.stack.length - 1];\n }\n\n /** Step 1: the open containers the line continues. Returns the index of the\n * last one it continues, or -1 when it closed a fence. */\n private continueContainers(): number {\n const oldTip = this.stack.length - 1;\n let container = 0;\n while (container < oldTip) {\n this.findNextNonspace();\n const res = this.continues(this.stack[container + 1], container + 1);\n if (res === 2) {return -1;}\n if (res === 1) {break;}\n container++;\n }\n this.allClosed = container === oldTip;\n this.matched = container;\n return container;\n }\n\n /** Step 2: the blocks the line opens, from the container at `index`. Returns the block the rest of the line goes to. */\n private openBlocks(index: number): Block {\n let container = this.stack[index];\n let leaf = container.kind !== 'paragraph' && acceptsLines(container.kind);\n while (!leaf && !this.deep) {\n this.findNextNonspace();\n const at = this.nextNonspace;\n if (!this.indented && !MAYBE_SPECIAL.test(this.ln.charAt(at))) {break;}\n let res: Step = 0;\n for (const start of this.starts) {\n res = start(container);\n if (res !== 0) {break;}\n }\n if (res === 0) {break;}\n this.noteOverflow(at, res);\n container = this.tip;\n leaf = res === 2;\n }\n if (!leaf) {this.advanceNextNonspace();}\n return container;\n }\n\n /** A block just opened at `at` (`res` 1: a container): with a limit set,\n * remember the first place the line went past it (below the document\n * only containers are open when a container is added). */\n private noteOverflow(at: number, res: Step): void {\n if (res === 1 && this.limit >= 0 && this.overflow < 0 && this.stack.length - 1 > this.limit) {this.overflow = at;}\n }\n\n /** Step 3: the rest of the line goes to `block`. */\n private addText(block: Block): void {\n if (block.kind === 'code') {\n this.hiddenIn = block.fence ? 'code fence' : 'indented code';\n } else if (block.kind === 'html') {\n this.addHtmlLine(block);\n } else if (!acceptsLines(block.kind) && this.offset < this.ln.length && !this.blank) {\n this.addChild({ kind: 'paragraph' });\n }\n }\n\n private addHtmlLine(block: Extract<Block, { kind: 'html' }>): void {\n if (block.type > 5) {return;}\n const closes = HTML_CLOSE[block.type - 1].test(this.ln.slice(this.offset));\n const oneLineComment = this.htmlStarted && block.type === 2 && closes;\n if (!oneLineComment) {this.hiddenIn = block.type === 1 ? `<${block.tag}>` : block.type === 2 ? 'comment' : 'html';}\n if (closes) {this.stack.pop();}\n }\n\n /** Does the line continue the open block `b` (at `index`)? 0 yes, 1 no, 2 it closed a fence. */\n private continues(b: Block, index: number): Step {\n switch (b.kind) {\n case 'quote':\n return this.continueQuote();\n case 'item':\n return this.continueItem(b);\n case 'code':\n return b.fence ? this.continueFence(b.fence, index) : this.continueIndentedCode();\n default:\n return this.continueOther(b);\n }\n }\n\n /** The document and a list always continue; a heading or a break never\n * does; a paragraph and an HTML block of type 6 or 7 end at a blank line. */\n private continueOther(b: Block): Step {\n if (b.kind === 'heading' || b.kind === 'break') {return 1;}\n const endsAtBlank = b.kind === 'paragraph' || (b.kind === 'html' && b.type >= 6);\n return endsAtBlank && this.blank ? 1 : 0;\n }\n\n private continueQuote(): Step {\n if (this.indented || this.ch !== '>') {return 1;}\n this.advanceNextNonspace();\n this.advanceOffset(1, false);\n if (isSpaceOrTab(this.ln[this.offset])) {this.advanceOffset(1, true);}\n return 0;\n }\n\n private continueItem(b: Extract<Block, { kind: 'item' }>): Step {\n const width = b.list.markerOffset + b.list.padding;\n if (this.blank) {\n if (!b.hasChild) {return 1;} // a blank line after an empty list item ends it\n this.advanceNextNonspace();\n } else if (this.indent >= width) {\n this.advanceOffset(width, true);\n } else {\n return 1;\n }\n return 0;\n }\n\n private continueFence(fence: Fence, index: number): Step {\n const m = this.indent <= 3 && this.ch === fence.char ? matchAt(FENCE_CLOSE, this.ln, this.nextNonspace) : null;\n if (m && m[0].length >= fence.len) {\n this.stack.length = index;\n this.hiddenIn = 'code fence';\n return 2;\n }\n for (let i = fence.offset; i > 0 && isSpaceOrTab(this.ln[this.offset]); i--) {this.advanceOffset(1, true);}\n return 0;\n }\n\n private continueIndentedCode(): Step {\n if (this.indent >= CODE_INDENT) {\n this.advanceOffset(CODE_INDENT, true);\n } else if (this.blank) {\n this.advanceNextNonspace();\n } else {\n return 1;\n }\n return 0;\n }\n\n /** The character at the next non-space position ('' at the line's end). */\n private get ch(): string {\n return this.ln.charAt(this.nextNonspace);\n }\n\n /** True when the rest of the line, from the next non-space position, is a\n * thematic break (see {@link thematicBreaks}; worked out once per line). */\n private breakAhead(): boolean {\n this.breaks ??= thematicBreaks(this.ln);\n return this.breaks[this.nextNonspace] === 1;\n }\n\n private startQuote(): Step {\n if (!this.containers || this.indented || this.ch !== '>') {return 0;}\n this.advanceNextNonspace();\n this.advanceOffset(1, false);\n if (isSpaceOrTab(this.ln[this.offset])) {this.advanceOffset(1, true);}\n this.closeUnmatched();\n this.addChild({ kind: 'quote' });\n return 1;\n }\n\n private startHeading(): Step {\n if (this.indented || this.ch !== '#' || !matchAt(ATX_HEADING, this.ln, this.nextNonspace)) {return 0;}\n this.closeUnmatched();\n this.addChild({ kind: 'heading' });\n this.offset = this.ln.length;\n return 2;\n }\n\n private startFence(): Step {\n const c = this.ch;\n const m = this.indented || (c !== '`' && c !== '~') ? null : matchAt(FENCE_OPEN, this.ln, this.nextNonspace);\n if (!m) {return 0;}\n this.closeUnmatched();\n this.addChild({ kind: 'code', fence: { char: m[0][0], len: m[0].length, offset: this.indent } });\n this.advanceNextNonspace();\n this.advanceOffset(m[0].length, false);\n return 2;\n }\n\n private startHtml(container: Block): Step {\n if (this.indented || this.ch !== '<') {return 0;}\n const lazy = !this.allClosed && !this.blank && this.tip.kind === 'paragraph';\n const type7 = container.kind !== 'paragraph' && !lazy; // type 7 cannot interrupt a paragraph\n const rest = this.ln.slice(this.nextNonspace); // once: an HTML start ends the line's block openers\n for (let type = 1; type <= (type7 ? 7 : 6); type++) {\n const m = HTML_OPEN[type - 1].exec(rest);\n if (m) {\n this.closeUnmatched();\n this.addChild({ kind: 'html', type, tag: type === 1 ? m[1].toLowerCase() : '' });\n this.htmlStarted = true;\n return 2;\n }\n }\n return 0;\n }\n\n private startSetext(container: Block): Step {\n const c = this.ch;\n if (this.indented || container.kind !== 'paragraph' || (c !== '=' && c !== '-') || !matchAt(SETEXT_LINE, this.ln, this.nextNonspace)) {return 0;}\n this.closeUnmatched();\n this.stack[this.stack.length - 1] = { kind: 'heading' }; // the paragraph becomes a heading\n this.offset = this.ln.length;\n return 2;\n }\n\n private startBreak(): Step {\n if (this.indented || !this.breakAhead()) {return 0;}\n this.closeUnmatched();\n this.addChild({ kind: 'break' });\n this.offset = this.ln.length;\n return 2;\n }\n\n private startItem(container: Block): Step {\n if (!this.containers || (this.indented && container.kind !== 'list')) {return 0;}\n const data = this.listMarker(container);\n if (!data) {return 0;}\n this.closeUnmatched();\n const tip = this.tip;\n if (tip.kind !== 'list' || tip.list.bullet !== data.bullet || tip.list.delimiter !== data.delimiter) {\n this.addChild({ kind: 'list', list: data });\n }\n this.addChild({ kind: 'item', list: data, hasChild: false });\n return 1;\n }\n\n private startIndentedCode(): Step {\n if (!this.indented || this.tip.kind === 'paragraph' || this.blank) {return 0;}\n this.advanceOffset(CODE_INDENT, true);\n this.closeUnmatched();\n this.addChild({ kind: 'code', fence: null });\n return 2;\n }\n\n /** The list marker at the reader's position: its kind, where it sits and\n * its content column (padding); null when there is none. */\n private listMarker(container: Block): ListData | null {\n if (this.indent >= 4) {return null;}\n const marker = this.markerAt(container);\n if (!marker) {return null;}\n const markerOffset = this.indent;\n this.advanceNextNonspace();\n this.advanceOffset(marker.width, true);\n return { ...marker.kind, markerOffset, padding: this.paddingAfter(marker.width) };\n }\n\n /** A bullet or an ordered marker followed by a space, a tab or the line's end. */\n private markerAt(container: Block): { width: number; kind: Pick<ListData, 'bullet' | 'delimiter'> } | null {\n const inParagraph = container.kind === 'paragraph';\n const found = this.markerKind(inParagraph);\n if (!found) {return null;}\n const after = this.ln[this.nextNonspace + found.width];\n if (!(after === undefined || isSpaceOrTab(after))) {return null;}\n // A list item that interrupts a paragraph cannot start with a blank line.\n if (inParagraph && !NON_SPACE.test(this.ln.slice(this.nextNonspace + found.width))) {return null;}\n return found;\n }\n\n private markerKind(inParagraph: boolean): { width: number; kind: Pick<ListData, 'bullet' | 'delimiter'> } | null {\n const c = this.ch;\n if (c === '*' || c === '+' || c === '-') {return { width: 1, kind: { bullet: c, delimiter: null } };}\n const ordered = c >= '0' && c <= '9' ? matchAt(ORDERED, this.ln, this.nextNonspace) : null;\n // An ordered list interrupts a paragraph only when it starts at 1.\n if (!ordered || (inParagraph && Number(ordered[1]) !== 1)) {return null;}\n return { width: ordered[0].length, kind: { bullet: null, delimiter: ordered[2] } };\n }\n\n /** The columns from the marker to the item's content: 1-4 spaces (or tabs\n * to that many columns) after it; with 5 or more, or none (a blank item),\n * the content starts one column after the marker. */\n private paddingAfter(width: number): number {\n const startCol = this.column;\n const startOffset = this.offset;\n do {\n this.advanceOffset(1, true);\n } while (this.column - startCol < 5 && isSpaceOrTab(this.ln[this.offset]));\n const spaces = this.column - startCol;\n if (spaces >= 1 && spaces < 5 && this.ln[this.offset] !== undefined) {return width + spaces;}\n this.column = startCol;\n this.offset = startOffset;\n if (isSpaceOrTab(this.ln[this.offset])) {this.advanceOffset(1, true);}\n return width + 1;\n }\n\n private addChild(block: Block): void {\n while (!canContain(this.tip.kind, block.kind)) {this.stack.pop();}\n this.tip.hasChild = true;\n this.stack.push(block);\n // Below the document only containers are open when a container is added\n // (a leaf is always the tip, and it was closed to make room).\n if (isContainer(block.kind) && this.stack.length - 1 > MAX_OPEN_CONTAINERS) {this.deep = true;}\n }\n\n private closeUnmatched(): void {\n if (!this.allClosed) {\n this.stack.length = this.matched + 1;\n this.allClosed = true;\n }\n }\n\n /** The next non-space position from where the reader stands, its column,\n * and the indent to it. A second call from inside the same run of spaces\n * and tabs reuses the first scan (the column a run ends at does not depend\n * on where in the run the scan starts), so a line is scanned once however\n * many containers it continues. */\n private findNextNonspace(): void {\n const ln = this.ln;\n let i = this.offset;\n let cols = this.column;\n if (this.scannedFrom !== -1 && this.offset >= this.scannedFrom && this.offset <= this.nextNonspace) {\n i = this.nextNonspace;\n cols = this.nextNonspaceColumn;\n } else {\n this.scannedFrom = this.offset;\n for (; i < ln.length; i++) {\n if (ln[i] === ' ') {\n cols++;\n } else if (ln[i] === '\\t') {\n cols += 4 - (cols % 4);\n } else {\n break;\n }\n }\n }\n this.blank = i >= ln.length;\n this.nextNonspace = i;\n this.nextNonspaceColumn = cols;\n this.indent = cols - this.column;\n this.indented = this.indent >= CODE_INDENT;\n }\n\n private advanceNextNonspace(): void {\n this.offset = this.nextNonspace;\n this.column = this.nextNonspaceColumn;\n }\n\n /** Move `count` characters on (or, with `columns`, `count` columns: a tab may be taken in part). */\n private advanceOffset(count: number, columns: boolean): void {\n let left = count;\n while (left > 0 && this.offset < this.ln.length) {\n if (this.ln[this.offset] !== '\\t') {\n this.offset++;\n this.column++;\n left--;\n continue;\n }\n const toTab = 4 - (this.column % 4);\n const partial = columns && toTab > left;\n this.column += partial ? left : toTab;\n this.offset += partial ? 0 : 1;\n left -= columns ? Math.min(toTab, left) : 1;\n }\n }\n}\n",
|
|
198
198
|
"/**\n * Shared label formatting for the AI-context emitters (CLAUDE.md, AGENTS.md,\n * .github/copilot-instructions.md). ONE acronym-aware Title-Caser so `api_type`\n * renders \"API Type\" everywhere — not \"Api Type\" in one file and a raw\n * `api_type` key in another. Unified 2026-06-25 (faf-cli 6.15.1).\n *\n * Labels are registry-first: `slotLabel()` reads the canonical label from the\n * slot registry (\"know your stack\"); the acronym-aware `titleLabel()` is only a\n * fallback for off-registry freeform keys.\n */\n\nimport { SLOT_BY_PATH } from '../core/slots.js';\n\n/** All-caps acronym tokens that stay upper-cased inside a Title-Cased label. */\nexport const ACRONYMS = new Set([\n 'API', 'CI', 'CD', 'MCP', 'CLI', 'SDK', 'UI', 'UX', 'AI', 'ML', 'DB', 'ORM',\n 'OS', 'HTTP', 'HTTPS', 'REST', 'RPC', 'JSON', 'YAML', 'XML', 'SQL', 'CSS',\n 'HTML', 'AWS', 'GCP', 'CDN', 'DNS', 'JWT', 'ID', 'IP', 'URL', 'URI', 'TS', 'JS',\n]);\n\n/**\n * snake_case → Title Case, acronym-aware.\n * `api_type` → \"API Type\", `mcp_sdk` → \"MCP SDK\", `runtime` → \"Runtime\".\n */\nexport function titleLabel(key: string): string {\n return key\n .split('_')\n .map((w) => {\n if (!w) {return w;}\n const up = w.toUpperCase();\n return ACRONYMS.has(up) ? up : w.charAt(0).toUpperCase() + w.slice(1);\n })\n .join(' ');\n}\n\n/** A slot value that carries real content (not empty, not slotignored). */\nexport function filled(v: unknown): v is string {\n return typeof v === 'string' && v.trim() !== '' && v.trim() !== 'slotignored';\n}\n\n/**\n * The canonical display label for a .faf slot path, sourced from the slot\n * registry (\"know your stack\") — `stack.cicd` → \"CI/CD\", `stack.api_type` → \"API\".\n * Resolves legacy OR canonical paths (SLOT_BY_PATH is dual-keyed). Falls back to\n * the acronym-aware Title-Caser for off-registry freeform keys.\n */\nexport function slotLabel(path: string): string {\n const slot = SLOT_BY_PATH.get(path);\n if (slot?.label) {return slot.label;}\n const key = path.includes('.') ? path.slice(path.lastIndexOf('.') + 1) : path;\n return titleLabel(key);\n}\n",
|
|
@@ -216,9 +216,9 @@
|
|
|
216
216
|
"import { join } from 'path';\nimport { deprecate } from 'node:util';\nimport type { FafData, ScoreResult } from '../core/types.js';\nimport { FAF_HEX } from '../ui/colors.js';\nimport { writeRendered } from '../core/render-hash.js';\n\n/**\n * project.html — the visual render of project.faf.\n *\n * A \"show-me\" for .faf: rendered from the current project.faf, opens in any\n * browser, zero deps, self-contained. NOT a format, NOT a mime-type, NOT an\n * IANA application — a derived view that registers nothing and adds zero spec\n * surface. The inverse of style-source.html (that one is authored; this is\n * rendered). Deterministic on purpose: no timestamps, so a re-run only\n * diffs when project.faf actually changed (versioned like .fafb).\n *\n * Humans like visuals. We gave them one.\n */\n\n// Tier glyph + accent. Glyphs = canonical tier symbols (core/tiers.ts).\n// BRAND colors DERIVE from ui/colors.ts FAF_HEX (single source — change there,\n// propagates to CLI + here). STATUS: warning/error hex for HTML (CLI has no\n// status band colors). Two registers: brand (orange Trophy/Gold · cyan Silver ·\n// deep-cyan Bronze)\n// + status (HTML affords color the CLI can't). Green #00BF63 reserved for the\n// GO/✅ all-pass state, never a tier band. Neutral = theme grey, not brand.\nconst ORANGE = FAF_HEX.orange; // brand — derived\nconst CYAN = FAF_HEX.cyan; // brand — derived (Silver)\nconst CYAN_DEEP = FAF_HEX.cyanDeep; // brand — derived (Bronze: same lane, one rung down)\nconst WARNING = '#FF9500'; // --faf-warning (status: caution)\nconst ERROR = '#FF3B30'; // --faf-error (status: danger)\nconst NEUTRAL_BRIGHT = '#E6EDF3'; // theme grey — \"good, not done, no alarm\"\nconst NEUTRAL_DIM = '#6E7681'; // theme grey — empty\nconst TIER_VIS: Record<string, { glyph: string; color: string }> = {\n TROPHY: { glyph: '✪', color: ORANGE },\n GOLD: { glyph: '★', color: ORANGE },\n SILVER: { glyph: '◆', color: CYAN },\n BRONZE: { glyph: '◇', color: CYAN_DEEP },\n GREEN: { glyph: '●', color: NEUTRAL_BRIGHT },\n YELLOW: { glyph: '●', color: WARNING },\n RED: { glyph: '○', color: ERROR },\n WHITE: { glyph: '♡', color: NEUTRAL_DIM },\n};\n\n/** HTML-escape — project.faf content is arbitrary; never inject raw. */\nfunction esc(v: unknown): string {\n return String(v ?? '')\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n}\n\nconst SIX_W = ['who', 'what', 'why', 'where', 'when', 'how'] as const;\n\nfunction rows(entries: [string, unknown][]): string {\n return entries\n .filter(([, v]) => v !== undefined && v !== null && String(v).trim() !== '')\n .map(\n ([k, v]) =>\n `<div class=\"row\"><div class=\"k\">${esc(k)}</div><div class=\"v\">${esc(v)}</div></div>`,\n )\n .join('\\n');\n}\n\n/** Render project.faf data + its score into a self-contained HTML string. */\nexport function renderProjectHtml(\n data: FafData,\n result: ScoreResult,\n fafPath = 'project.faf',\n): string {\n const name = esc(data.project?.name ?? 'Project');\n const tierName = result.tier?.name ?? 'WHITE';\n const vis = TIER_VIS[tierName] ?? TIER_VIS.WHITE;\n const scoreText = result.inherited\n ? result.represents\n ? `inherited from ${esc(result.represents)}`\n : 'inherited'\n : `${result.score}%`;\n // Trophy = earned (not an About-repo inherited 100 — that one displays, doesn't earn).\n const isTrophy = tierName === 'TROPHY' && !result.inherited;\n\n // 6 W's first, in canonical order, then any other human_context keys.\n const hc = data.human_context ?? {};\n const sixW: [string, unknown][] = SIX_W.map((w) => [w, hc[w]]);\n const otherHc = Object.entries(hc).filter(\n ([k]) => !SIX_W.includes(k as (typeof SIX_W)[number]),\n );\n\n const projectMeta: [string, unknown][] = [\n ['goal', data.project?.goal],\n ['main_language', data.project?.main_language],\n ['type', data.project?.type],\n ['framework', (data.project as Record<string, unknown> | undefined)?.framework],\n ['faf_version', data.faf_version],\n ];\n\n const stackEntries = Object.entries(data.stack ?? {});\n const stackActive = stackEntries.filter(\n ([, v]) => v && v !== 'slotignored' && String(v).trim() !== '',\n );\n const stackIgnored = stackEntries.filter(([, v]) => v === 'slotignored').length;\n\n return `<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>${name} — project.faf</title>\n<meta name=\"description\" content=\"Visual render of project.faf. Authored by faf — humans like visuals, we gave them one.\">\n<meta name=\"robots\" content=\"index,follow\">\n<style>\n*{margin:0;padding:0;box-sizing:border-box}\nbody{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;background:#0a0a0a;color:#e6edf3;line-height:1.55;padding:48px 20px}\n.wrap{max-width:880px;margin:0 auto}\n.bar{height:3px;border-radius:2px;background:linear-gradient(90deg,transparent,${vis.color},transparent);margin-bottom:40px}\nheader{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;margin-bottom:8px}\nh1{font-size:2.2rem;font-weight:800;letter-spacing:-1px}\n.badge{font-size:1.05rem;font-weight:800;color:${vis.color};white-space:nowrap}\n.score{font-size:1.05rem;font-weight:700;color:#8b949e}\n.eyebrow{font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:#6e7681;margin-bottom:36px}\nsection{margin-bottom:34px}\nh2{font-size:12px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:${vis.color};margin-bottom:14px;padding-bottom:6px;border-bottom:1px solid rgba(255,255,255,.07)}\n.row{display:flex;gap:18px;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.04)}\n.k{flex:0 0 150px;color:#8b949e;font-size:.9rem;text-transform:capitalize}\n.v{flex:1;color:#e6edf3;font-size:.95rem;word-break:break-word}\n.meter{height:8px;border-radius:4px;background:rgba(255,255,255,.06);overflow:hidden;margin:6px 0 10px}\n.meter span{display:block;height:100%;background:${vis.color};width:${Math.max(0, Math.min(100, result.score))}%}\n.award{font-size:.95rem}\n.statline{margin-bottom:32px}\n.awd-pre{color:#6E7681}\n.awd-win{color:#FFFFFF;font-weight:700}\n.muted{color:#6e7681;font-size:.85rem}\nfooter{margin-top:48px;padding-top:20px;border-top:1px solid rgba(255,255,255,.07);font-size:.82rem;color:#6e7681}\nfooter strong{color:#e6edf3}\n@media(max-width:560px){.row{flex-direction:column;gap:2px}.k{flex:none}}\n</style>\n</head>\n<body>\n<div class=\"wrap\">\n<div class=\"bar\"></div>\n<div class=\"eyebrow\">project.faf · visual render</div>\n<header>\n<h1>${name}</h1>\n<span class=\"badge\">${vis.glyph} ${esc(tierName)}</span>\n<span class=\"score\">${scoreText}</span>\n</header>\n<div class=\"meter\"><span></span></div>\n${\n isTrophy\n ? '<p class=\"award statline\"><span class=\"awd-pre\">✅ All Required slots filled.</span> <span class=\"awd-win\">100% Trophy ✪ Awarded</span></p>'\n : `<p class=\"muted statline\">${result.populated}/${result.active} slots populated · ${result.total} total${stackIgnored ? ` · ${stackIgnored} slotignored` : ''}</p>`\n}\n\n<section>\n<h2>The 6 W's</h2>\n${rows(sixW) || '<p class=\"muted\">No human_context yet.</p>'}\n${otherHc.length ? rows(otherHc) : ''}\n</section>\n\n<section>\n<h2>Project</h2>\n${rows(projectMeta) || '<p class=\"muted\">—</p>'}\n</section>\n\n<section>\n<h2>Stack</h2>\n${\n stackActive.length\n ? rows(stackActive)\n : '<p class=\"muted\">No active stack slots.</p>'\n}\n</section>\n\n<footer>\nRendered on-demand from your current <strong>${esc(fafPath)}</strong><br>\n<strong>Humans like visuals. <span style=\"color:#00D4D4\">We gave them one.</span></strong>\n</footer>\n</div>\n</body>\n</html>\n`;\n}\n\n/** The start of faf's mark in every project.html it renders: the description\n * line (`<meta name=\"description\" content=\"Visual render of project.faf. …\n * by faf — …\">`). */\nconst HTML_MARK = '<meta name=\"description\" content=\"Visual render of project.faf.';\n\n/** True when `bytes` are a project.html faf rendered: a line that is faf's\n * description meta (every faf release has written it). */\nexport function hasProjectHtmlMark(bytes: Uint8Array): boolean {\n return new TextDecoder()\n .decode(bytes)\n .split(/\\r?\\n/)\n .some(line => line.trim().startsWith(HTML_MARK) && line.includes(' by faf'));\n}\n\n/** Options for {@link writeProjectHtml}. */\nexport interface ProjectHtmlWriteOptions {\n /** Replace a project.html faf cannot prove it wrote — no faf mark, edited\n * since faf wrote it, or from before 7.13 — the explicit overwrite\n * (`--force`). Default: it is refused and left as it is. */\n force?: boolean;\n}\n\n/** Write project.html beside project.faf (repo root) — atomically, and never\n * through a link that leaves `dir` or dangles (SafePathError). The page\n * carries faf's render hash (`<meta name=\"faf-render\" content=\"sha256:…\">`,\n * the hash of the page without that line). A project.html already there is\n * replaced only when it is byte for byte what faf last wrote (its hash still\n * fits); a page edited since, a hand-written page, or a page from before 7.13\n * that is not exactly faf's render of `data` is refused (SafePathError\n * `not-owned`) and left byte for byte, unless `force`. */\nexport function writeProjectHtml(\n dir: string,\n data: FafData,\n result: ScoreResult,\n fafPath = 'project.faf',\n write: ProjectHtmlWriteOptions = {},\n): void {\n writeRendered(join(dir, 'project.html'), renderProjectHtml(data, result, fafPath), {\n root: dir,\n format: 'html',\n hasMark: hasProjectHtmlMark,\n mark: \"faf mark (the `Visual render of project.faf` description line)\",\n force: write.force,\n });\n}\n\n/** @deprecated Use {@link renderProjectHtml}. Removed in the next major. */\nexport const generateProjectHtml = deprecate(\n renderProjectHtml,\n 'faf-cli: generateProjectHtml is deprecated, use renderProjectHtml',\n 'FAF0001',\n);\n",
|
|
217
217
|
"import { join } from 'path';\nimport { deprecate } from 'node:util';\nimport type { FafData } from '../core/types.js';\nimport { writeRendered } from '../core/render-hash.js';\nimport { editJsonText } from '../core/json-edit.js';\nimport { SERVER_CARD_SCHEMA } from './pack.js';\nimport { REGISTRY_PUBLISHER_KEY, fafContextBlock } from './context-block.js';\n// The context block lives in context-block.ts (pure, shared with the pack projector).\nexport { REGISTRY_PUBLISHER_KEY, fafContextBlock, registryMeta } from './context-block.js';\n\n/**\n * Build an MCP Server Card (SEP-2127) from a .faf.\n *\n * The card is a published discovery manifest. By design it carries the FAF\n * context-block in `_meta[\"one.faf/context\"]` — so every Server Card produced\n * through FAF ships FAF context by default. This emitter is the SINGLE SOURCE of\n * the block — faf-server-card-ref and `.fafa` provenance compose it (never\n * hand-roll), so every surface is byte-identical by construction: one context,\n * one source, every door.\n *\n * Honest-first: no score is baked (it would go stale on disk); the block points\n * to the .faf and asserts the score is deterministic. The card omits `remotes`\n * unless a deployment URL is supplied — it must not claim an endpoint it lacks.\n */\n\nexport interface ServerCardOptions {\n /** Pointer to the .faf context (default: ./project.faf). Pass an absolute URL\n * for a remote/served card (e.g. faf-server-card-ref at context.faf.one). */\n fafPointer?: string;\n /** Optional live endpoint; adds a streamable-http remote when set. */\n remoteUrl?: string;\n /** Optional \"verify the score here\" URL — makes verify-don't-trust actionable\n * (faf-server-card-ref uses https://faf.one). Omitted from the block if unset. */\n scoreEndpoint?: string;\n /** Override timestamp (tests); otherwise .faf `generated`, else now. */\n now?: string;\n}\n\nconst SCHEMA = SERVER_CARD_SCHEMA;\nconst NAME_RE = /^[a-zA-Z0-9.-]+\\/[a-zA-Z0-9._-]+$/;\n\n/** Derive a reverse-DNS `namespace/name` for the card. */\nfunction serverName(data: FafData): string {\n const raw = String(data.project?.name ?? 'project').trim();\n if (raw.includes('/') && NAME_RE.test(raw)) {return raw;} // already namespaced\n\n const homepage = (data.project?.homepage ??\n data.project?.website ??\n data.project?.url) as string | undefined;\n let ns = 'local';\n if (homepage) {\n try {\n const host = new URL(homepage).hostname.replace(/^www\\./, '');\n ns = host.split('.').reverse().join('.'); // faf.one -> one.faf\n } catch {\n /* keep 'local' */\n }\n }\n const name = raw.replace(/[^a-zA-Z0-9._-]/g, '-').replace(/^-+|-+$/g, '') || 'project';\n return `${ns}/${name}`;\n}\n\n/** Server Card `description` is capped at 100 chars; never empty. */\nfunction clampDescription(data: FafData): string {\n const src = String(\n data.project?.goal ?? data.context ?? data.project?.name ?? 'MCP server',\n )\n .replace(/\\s+/g, ' ')\n .trim();\n if (!src) {return 'MCP server';}\n return src.length <= 100 ? src : `${src.slice(0, 97).trimEnd() }...`;\n}\n\n/** Build the Server Card object from .faf data. */\nexport function buildServerCard(\n data: FafData,\n opts: ServerCardOptions = {},\n): Record<string, unknown> {\n const card: Record<string, unknown> = {\n $schema: SCHEMA,\n name: serverName(data),\n version: String(data.project?.version ?? '0.1.0'),\n description: clampDescription(data),\n };\n\n const title = registryTitle(data) ?? (data.project?.name as string | undefined);\n if (title && title.length <= 100) {card.title = title;}\n\n const homepage = (data.project?.homepage ??\n data.project?.website ??\n data.project?.url) as string | undefined;\n if (homepage) {card.websiteUrl = homepage;}\n\n if (opts.remoteUrl) {\n card.remotes = [{ type: 'streamable-http', url: opts.remoteUrl }];\n }\n\n // The canonical FAF context-block — parity with faf-server-card-ref + .fafa.\n card._meta = { 'one.faf/context': fafContextBlock(data, opts) };\n\n return card;\n}\n\n/** The canonical reverse-DNS registry name, e.g. `one.faf/claude-faf-mcp`.\n *\n * HOMEPAGE REQUIRED: the namespace is derived from `project.homepage`'s host\n * (faf.one -> one.faf). With no homepage/website/url the namespace falls back\n * to `local/<name>`. This can't silently ship — the migration is guarded\n * (`rewrite-server-json.ts` refuses any name that isn't `one.faf/*`) — but set\n * `homepage: https://faf.one` in the .faf to get the correct `one.faf/<name>`. */\nexport function registryName(data: FafData): string {\n return serverName(data);\n}\n\n/** The display title for a registry `server.json` — the human-readable card name\n * (e.g. \"Claude FAF\"), sourced from `project.title` in the .faf. This is the\n * SINGLE SOURCE of the title across the fleet: JS emitters import it, and the\n * `faf server-card` CLI uses it so Python/Rust repos compose the identical\n * value (compose-not-fork). Distinct from `registryName` (the reverse-DNS id).\n * Returns undefined when unset or >100 chars (the registry cap) so the field is\n * omitted rather than shipped invalid — GitHub's registry then derives a name\n * from the namespace, so set `project.title` to control the display. */\nexport function registryTitle(data: FafData): string | undefined {\n const raw = (data.project as { title?: unknown } | undefined)?.title;\n if (typeof raw === 'string') {\n const t = raw.trim();\n if (t && t.length <= 100) {return t;}\n }\n return undefined;\n}\n\n/** The parsed JSON in `bytes`, or undefined when they are not JSON. */\nfunction jsonOf(bytes: Uint8Array): unknown {\n try {\n return JSON.parse(new TextDecoder().decode(bytes).replace(/^\\uFEFF/, ''));\n } catch {\n return undefined;\n }\n}\n\nconst isObj = (v: unknown): v is Record<string, unknown> => typeof v === 'object' && v !== null && !Array.isArray(v);\n\n/** True when `bytes` are a Server Card faf wrote: JSON carrying the FAF\n * context-block at `_meta[\"one.faf/context\"]`, as every card faf has\n * written does. */\nexport function hasServerCardMark(bytes: Uint8Array): boolean {\n const j = jsonOf(bytes);\n return isObj(j) && isObj(j._meta) && isObj(j._meta['one.faf/context']);\n}\n\n/** True when `bytes` are a registry `server.json` carrying faf's identity:\n * `_meta[REGISTRY_PUBLISHER_KEY][\"one.faf/context\"]`. */\nexport function hasRegistryMark(bytes: Uint8Array): boolean {\n const j = jsonOf(bytes);\n const provided = isObj(j) && isObj(j._meta) ? j._meta[REGISTRY_PUBLISHER_KEY] : undefined;\n return isObj(provided) && isObj(provided['one.faf/context']);\n}\n\n/** Options for the card writers ({@link writeServerCard}, `faf cards`). */\nexport interface CardWriteOptions {\n /** Replace a card faf cannot prove it wrote — no faf mark, edited since\n * faf wrote it, or from before 7.13 — the explicit overwrite (`--force`).\n * Default: such a file is refused and left as it is. */\n force?: boolean;\n}\n\n/** Write the Server Card to a `server-card` file. Returns the path.\n * Per experimental-ext-server-card#22 the reserved location is\n * `<streamable-http-url>/server-card` (no longer `.well-known`); serve the\n * emitted file there as `application/mcp-server-card+json`.\n *\n * The card carries faf's render hash at `_meta[\"one.faf/render\"]` (the hash\n * of the card without that key; the Server Card schema leaves `_meta` open\n * for namespaced keys). A `server-card` already there is replaced only when\n * it is byte for byte what faf last wrote (its hash still fits); a card edited\n * since, a hand-written card, or a card from before 7.13 that is not exactly\n * faf's render of `data` is refused (SafePathError `not-owned`) and left byte\n * for byte, unless `force`. The write is atomic and never goes through a link\n * that leaves `dir` or dangles. */\nexport function writeServerCard(\n dir: string,\n data: FafData,\n opts: ServerCardOptions = {},\n write: CardWriteOptions = {},\n): string {\n const card = buildServerCard(data, opts);\n const out = join(dir, 'server-card');\n writeRendered(out, `${JSON.stringify(card, null, 2) }\\n`, {\n root: dir,\n format: 'json',\n hasMark: hasServerCardMark,\n mark: 'FAF context-block (`_meta[\"one.faf/context\"]`)',\n force: write.force,\n });\n return out;\n}\n\n/** The identity faf owns in a registry `server.json`. */\nexport interface ServerJsonIdentity {\n /** The reverse-DNS registry name ({@link registryName}). */\n name: string;\n /** The display title ({@link registryTitle}); when undefined the file's own title is kept. */\n title?: string;\n /** A version to set (`--set-version`); when undefined the file's own is kept. */\n version?: string;\n /** The `_meta` faf writes ({@link registryMeta}); absent for a plain\n * registry identity from a .fafa (BETTER), which leaves `_meta` as it is. */\n meta?: Record<string, unknown>;\n}\n\n/**\n * Put faf's identity into the text of a registry `server.json`, changing\n * nothing else: the `name` value, the `title` (only when faf has one — the\n * file's own title is kept otherwise), a `version` asked for, and the keys of\n * faf's context-block under `_meta[REGISTRY_PUBLISHER_KEY][\"one.faf/context\"]`.\n * Each is a text edit of that one value, or the key added when missing; no\n * field is deleted, and every other byte — key order, a 20-digit number, an\n * array on one line, spacing, CRLF — stays as it was. Throws a JsonEditError,\n * changing nothing, when the text cannot be edited that way (not valid JSON,\n * not an object, a key repeated on the way, a `_meta` that is not an object).\n */\nexport function patchServerJson(text: string, identity: ServerJsonIdentity): { text: string; changed: boolean } {\n const patch: Record<string, unknown> = {\n name: identity.name,\n title: identity.title,\n version: identity.version,\n _meta: identity.meta,\n };\n return editJsonText(text, patch, {\n '': { name: ['$schema'], title: ['name'], version: ['description', 'title', 'name'] },\n });\n}\n\n/** @deprecated Use {@link buildServerCard}. Removed in the next major. */\nexport const generateServerCard = deprecate(\n buildServerCard,\n 'faf-cli: generateServerCard is deprecated, use buildServerCard',\n 'FAF0002',\n);\n",
|
|
218
218
|
"/**\n * FAF's context block — what BEST adds to a card. Pure (no Node built-ins), so\n * `faf cards` and the browser-safe pack projector add the same block.\n *\n * The cards ladder: an agent.fafa gives the plain cards (BETTER); a project.faf,\n * resident and used, adds this block to each of them (BEST) — the A2A card's\n * context extension, the Server Card's `_meta[\"one.faf/context\"]`, the registry\n * `server.json`'s publisher-provided `_meta`.\n */\nimport type { FafData } from '../core/types.js';\n\n/** project.faf's IANA media type. */\nexport const FAF_MEDIA_TYPE = 'application/vnd.faf+yaml';\n\n/** A2A extension URI — dereference, not the MCP `_meta` key `one.faf/context`. */\nexport const A2A_CONTEXT_URI = 'https://faf.one/ext/context/v1';\n\nexport const REGISTRY_PUBLISHER_KEY = 'io.modelcontextprotocol.registry/publisher-provided';\nconst REGISTRY_META_CAP = 4096; // official registry cap on publisher-provided JSON (bytes)\n\nexport interface ContextBlockOptions {\n /** Pointer to the .faf context (default: ./project.faf). Pass an absolute URL\n * for a remote/served card (e.g. faf-server-card-ref at context.faf.one). */\n fafPointer?: string;\n /** Optional \"verify the score here\" URL — makes verify-don't-trust actionable\n * (faf-server-card-ref uses https://faf.one). Omitted from the block if unset. */\n scoreEndpoint?: string;\n /** Override timestamp (tests); otherwise .faf `generated`, else now. */\n now?: string;\n}\n\n/**\n * The canonical FAF context-block — the value of `_meta[\"one.faf/context\"]`,\n * identical across every surface (Server Card, registry `server.json`, `.fafa`):\n * one context, every door. Honest-first: no score baked (it would go stale on\n * disk); it points to the .faf and asserts the score is deterministic.\n */\nexport function fafContextBlock(\n data: FafData,\n opts: ContextBlockOptions = {},\n): Record<string, unknown> {\n return {\n faf: opts.fafPointer ?? './project.faf',\n mediaType: FAF_MEDIA_TYPE,\n iana: `https://www.iana.org/assignments/media-types/${FAF_MEDIA_TYPE}`,\n deterministic: true,\n ...(opts.scoreEndpoint ? { scoreEndpoint: opts.scoreEndpoint } : {}),\n generated:\n (data.generated as string | undefined) ?? opts.now ?? new Date().toISOString(),\n };\n}\n\n/**\n * Build the `_meta` for an MCP Registry `server.json`.\n *\n * The SAME canonical context-block as the Server Card, but nested under\n * `io.modelcontextprotocol.registry/publisher-provided` — the ONLY `_meta` key\n * the official registry preserves on publish. Top-level keys (the way the card\n * carries `one.faf/context`) are silently dropped by the registry. Throws if the\n * block exceeds the registry's 4KB cap. Merge the result into an existing\n * `server.json` `_meta`; don't regenerate the manifest (packages/mcpb are tuned).\n */\nexport function registryMeta(\n data: FafData,\n opts: ContextBlockOptions = {},\n): Record<string, unknown> {\n const provided = { 'one.faf/context': fafContextBlock(data, opts) };\n const bytes = new TextEncoder().encode(JSON.stringify(provided)).length;\n if (bytes > REGISTRY_META_CAP) {\n throw new Error(\n `publisher-provided _meta is ${bytes}B — exceeds the registry ${REGISTRY_META_CAP}B cap`,\n );\n }\n return { [REGISTRY_PUBLISHER_KEY]: provided };\n}\n",
|
|
219
|
-
"/**\n * The card pack: a few answers in, a `.fafa` written from them, and every card\n * that `.fafa` can feed projected out: the A2A Agent Card, the MCP Server\n * Card, the MCP Registry `server.json`, an AI Catalog and an ARD manifest.\n *\n * Pure: no filesystem and no Node built-ins, so the same code runs in the CLI,\n * in a browser front door and in tests.\n *\n * The cards ladder, the same as `faf cards`: the `.fafa` is the source of every\n * card and gives the plain cards (BETTER); a project.faf, passed as `faf`, adds\n * FAF's context block to each of them (BEST). A card's identity always comes\n * from the `.fafa`, so moving up to BEST never rewrites it.\n */\nimport { stringify } from 'yaml';\nimport type { FafData } from '../core/types.js';\nimport {\n A2A_CONTEXT_URI,\n fafContextBlock,\n registryMeta,\n type ContextBlockOptions,\n} from './context-block.js';\n\nexport const A2A_PROTOCOL_BINDING = 'JSONRPC';\nexport const A2A_PROTOCOL_VERSION = '1.0';\n/** The three FAF-family media types, in family order. */\nexport const FAF_MEDIA_TYPES = [\n 'application/vnd.faf+yaml',\n 'application/vnd.fafm+yaml',\n 'application/vnd.fafa+yaml',\n] as const;\n/** The only `$schema` a Server Card may carry (modelcontextprotocol/ext-server-card). */\nexport const SERVER_CARD_SCHEMA = 'https://static.modelcontextprotocol.io/schemas/v1/server-card.schema.json';\n/** The dated registry schema a `server.json` declares (latest release 2025-12-11). */\nexport const SERVER_JSON_SCHEMA = 'https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json';\nexport const AI_CATALOG_SPEC_VERSION = '1.0';\nexport const FAFA_SPEC_VERSION = '1.0';\n/** Media types a catalog entry uses for each card it lists (AI Catalog's own list). */\nexport const CARD_MEDIA_TYPES = {\n a2a: 'application/a2a-agent-card+json',\n server_card: 'application/mcp-server-card+json',\n fafa: 'application/vnd.fafa+yaml',\n} as const;\n\nexport interface FafaAgent {\n name?: string;\n displayName?: string;\n id?: string;\n vendor?: string;\n version?: string;\n description?: string;\n homepage?: string;\n license?: string;\n}\n\nexport interface FafaCapability {\n name?: string;\n type?: string;\n description?: string;\n tags?: unknown;\n /** MIME type this capability reads, when it's one of the FAF family — drives the skill's `inputModes` and the card's `defaultInputModes`. */\n cites_spec?: string;\n}\n\nexport interface FafaEndpoint {\n protocol?: string;\n transport?: string;\n location?: string;\n version?: string;\n}\n\n/** Facts only some cards carry, kept in the `.fafa` under `metadata.cards` so the file stays the one source. */\nexport interface PackExtras {\n domain?: string;\n repository?: string;\n icon?: string;\n organizationUrl?: string;\n keywords?: string[];\n examples?: string[];\n packages?: PackPackage[];\n}\n\nexport interface PackPackage {\n registryType: string;\n identifier: string;\n version?: string;\n}\n\nexport interface FafaDoc {\n /** `.fafa` spec version this document is authored against, e.g. `\"1.0\"` — not `agent.version`. */\n version?: string;\n agent?: FafaAgent;\n capabilities?: FafaCapability[];\n endpoints?: FafaEndpoint[];\n provenance?: Record<string, unknown>;\n metadata?: { persona?: string; cards?: PackExtras; [key: string]: unknown };\n [key: string]: unknown;\n}\n\nexport interface A2AExtension {\n uri: string;\n description: string;\n required: boolean;\n params: Record<string, unknown>;\n}\n\nexport interface ProjectedA2A {\n name: string;\n description: string;\n supportedInterfaces: Array<{\n url: string;\n protocolBinding: string;\n protocolVersion: string;\n }>;\n /** Omitted entirely when `agent.vendor` or `agent.homepage` is absent — A2A optional, never a guessed org name. */\n provider?: { organization: string; url: string };\n version: string;\n capabilities: {\n streaming: boolean;\n pushNotifications: boolean;\n extendedAgentCard: boolean;\n extensions: A2AExtension[];\n };\n defaultInputModes: string[];\n defaultOutputModes: string[];\n skills: Array<{\n id: string;\n name: string;\n description: string;\n tags: string[];\n inputModes?: string[];\n }>;\n}\n\nexport function a2aEndpoints(fafa: FafaDoc): FafaEndpoint[] {\n return (fafa.endpoints ?? []).filter(\n (e) => String(e.protocol ?? '').toLowerCase() === 'a2a' && e.location,\n );\n}\n\n/** Authored A2A endpoints, else a single `doorUrl`. Never invents a door. */\nexport function a2aDoors(fafa: FafaDoc, opts: { doorUrl?: string } = {}): FafaEndpoint[] {\n const fromDoc = a2aEndpoints(fafa);\n if (fromDoc.length > 0) {return fromDoc;}\n const door = opts.doorUrl?.trim();\n if (door) {\n return [{ protocol: 'a2a', location: door, version: A2A_PROTOCOL_VERSION }];\n }\n return [];\n}\n\n/** Where the `.fafa` itself is served — the same door the catalog's `agent`\n * row points at, so a card and a catalog never disagree about it. Left off\n * the card, rather than guessed, when the `.fafa` names no domain. */\nfunction fafaPassportUrl(fafa: FafaDoc): string | undefined {\n try {\n return `https://${fafaDomain(fafa)}/.well-known/fafa`;\n } catch {\n return undefined;\n }\n}\n\n/**\n * FAF's context extension for the A2A card (BEST). Its `params` are a superset\n * of {@link fafContextBlock}, enriched with `.fafa`-specific identity that only\n * makes sense for an agent card (agentId, passport, the full FAF media-type\n * family). Nests the base block's `faf`/`mediaType` under `provenance` rather\n * than flattening them, per the extension's own shape (`§7` of the field\n * mapping). The Server Card and registry `_meta` stay on the plain\n * {@link fafContextBlock} shape.\n */\nexport function fafaContextExtension(fafa: FafaDoc, faf: FafData, opts: ContextBlockOptions = {}): A2AExtension {\n const block = fafContextBlock(faf, opts);\n const agent = fafa.agent ?? {};\n const params: Record<string, unknown> = {\n fafaSpecVersion: String(fafa.version ?? FAFA_SPEC_VERSION),\n mediaTypes: [...FAF_MEDIA_TYPES],\n provenance: { faf: block.faf, mediaType: block.mediaType },\n generated: block.generated,\n };\n if (agent.id) {params.agentId = agent.id;}\n const passport = fafaPassportUrl(fafa);\n if (passport) {params.passport = passport;}\n return {\n uri: A2A_CONTEXT_URI,\n description: 'FAF passport and project DNA as typed parts',\n required: false,\n params,\n };\n}\n\n/** `text/plain` plus any FAF media type a capability's `cites_spec` names. */\nfunction defaultA2AInputModes(fafa: FafaDoc): string[] {\n const cited = new Set<string>();\n for (const c of fafa.capabilities ?? []) {\n if (c.cites_spec && (FAF_MEDIA_TYPES as readonly string[]).includes(c.cites_spec)) {\n cited.add(c.cites_spec);\n }\n }\n return ['text/plain', ...cited];\n}\n\n/**\n * The A2A Agent Card from a `.fafa`: every field comes from the document, and\n * `capabilities.extensions` holds exactly the extensions passed (none by default).\n */\nexport function projectA2ACard(\n fafa: FafaDoc,\n opts: { doorUrl?: string; extensions?: A2AExtension[] } = {},\n): ProjectedA2A {\n const agent = fafa.agent ?? {};\n const doors = a2aDoors(fafa, opts);\n if (doors.length === 0) {\n throw new Error(\n \"No A2A endpoint in .fafa (need endpoints[].protocol: a2a + location). Will not invent a door.\",\n );\n }\n const name = String(agent.displayName ?? fafa.metadata?.persona ?? agent.name ?? '').trim();\n const description = String(agent.description ?? '').trim();\n const version = String(agent.version ?? '').trim();\n if (!name || !description || !version) {\n throw new Error('A2A card needs agent.displayName|name, description, version in .fafa');\n }\n // provider is A2A-optional: emit it only when both halves are real, never a guessed org name.\n const organization = String(agent.vendor ?? '').trim();\n const homepage = String(agent.homepage ?? '').trim();\n const provider = organization && homepage ? { organization, url: homepage } : undefined;\n\n const skills = (fafa.capabilities ?? []).map((c) => {\n const id = String(c.name ?? '').trim();\n if (!id) {throw new Error('A2A skill missing capabilities[].name');}\n const tags = Array.isArray(c.tags) ? c.tags.map(String) : [];\n const inputModes =\n c.cites_spec && (FAF_MEDIA_TYPES as readonly string[]).includes(c.cites_spec)\n ? [c.cites_spec, 'text/plain']\n : undefined;\n return {\n id,\n name: id,\n description: String(c.description ?? '').trim() || id,\n tags,\n ...(inputModes ? { inputModes } : {}),\n };\n });\n\n return {\n name,\n description,\n supportedInterfaces: doors.map((e) => ({\n url: String(e.location),\n protocolBinding: A2A_PROTOCOL_BINDING,\n protocolVersion: String(e.version ?? A2A_PROTOCOL_VERSION),\n })),\n ...(provider ? { provider } : {}),\n version,\n capabilities: {\n // Endpoint existence isn't streaming support: FAFA's A2A door explicitly\n // errors message/stream today (-32004). Advertising true would be a\n // claim the door can't back up. Flip this only once a real per-door\n // streaming signal exists in .fafa/project.faf to key off of.\n streaming: false,\n pushNotifications: false,\n extendedAgentCard: false,\n extensions: [...(opts.extensions ?? [])],\n },\n defaultInputModes: defaultA2AInputModes(fafa),\n defaultOutputModes: ['text/plain', 'application/json'],\n skills,\n };\n}\n\n// ---------------------------------------------------------------------------\n// Answers → .fafa\n// ---------------------------------------------------------------------------\n\n/** What someone tells the front door. Keys match the crosswalk's slot ids. */\nexport interface PackAnswers {\n display_name: string;\n handle: string;\n domain: string;\n description: string;\n version: string;\n endpoints?: Array<{ protocol: string; url: string }>;\n skills?: Array<{ name: string; description?: string; type?: string }>;\n organization?: string;\n organization_url?: string;\n homepage?: string;\n icon?: string;\n repository?: string;\n license?: string;\n tags?: string[];\n example_requests?: string[];\n packages?: PackPackage[];\n}\n\nconst HANDLE_RE = /^[a-z0-9][a-z0-9._-]*$/;\n/** npm's own package-name rule: lowercase, URL-safe, optionally `@scope/`, and\n * never starting with `-`, `.` or `_` (a leading `-` would be read as an option). */\nconst NPM_NAME_RE = /^(@[a-z0-9~][a-z0-9-._~]*\\/)?[a-z0-9~][a-z0-9-._~]*$/;\n/** PyPI's project-name rule (PEP 508): letters, digits, `.`, `_`, `-`, starting and\n * ending with a letter or digit. */\nconst PYPI_NAME_RE = /^[A-Za-z0-9]([A-Za-z0-9._-]*[A-Za-z0-9])?$/;\n/** Any other registry's identifier (oci, nuget, ...): no whitespace, and it starts\n * with a letter or digit, so it is never read as an option. */\nconst PACKAGE_ID_RE = /^[A-Za-z0-9][^\\s]*$/;\nconst ENDPOINT_PROTOCOLS = ['a2a', 'mcp'];\nconst DOMAIN_RE = /^(?=.{1,253}$)([a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z]{2,}$/;\n\nfunction clean(s: unknown): string {\n return String(s ?? '').trim();\n}\n\nfunction list(xs: unknown): string[] {\n return Array.isArray(xs) ? xs.map(clean).filter(Boolean) : [];\n}\n\n/** A domain as typed (\"https://www.Example.com/about\") reduced to the name (\"example.com\"). */\nfunction normaliseDomain(raw: unknown): string {\n return clean(raw).toLowerCase().replace(/^https?:\\/\\//, '').replace(/\\/.*$/, '').replace(/^www\\./, '');\n}\n\nfunction checkIdentity(a: PackAnswers, handle: string, domain: string): void {\n const missing = (['display_name', 'description', 'version'] as const).filter((k) => !clean(a[k]));\n if (missing.length) {throw new Error(`Missing answer: ${missing.join(', ')}`);}\n if (!HANDLE_RE.test(handle)) {throw new Error('Short name: lowercase letters, digits, dots, hyphens or underscores.');}\n if (!DOMAIN_RE.test(domain)) {throw new Error(`Domain \"${a.domain}\" is not a domain name (e.g. example.com).`);}\n}\n\nfunction capabilitiesFrom(a: PackAnswers, keywords: string[]): FafaCapability[] {\n return (a.skills ?? [])\n .filter((s) => clean(s.name))\n .map((s) => ({\n name: clean(s.name),\n type: clean(s.type) || 'tool',\n description: clean(s.description) || clean(s.name),\n // A2A requires tags on every skill: the keywords, else the skill's own name.\n tags: keywords.length ? keywords : [clean(s.name).toLowerCase()],\n }));\n}\n\n/** A package people install: an npm one must carry npm's own name, a PyPI one\n * PyPI's, and any other an identifier that cannot be read as an option — the\n * `.fafa` names it as the MCP server's stdio command, so nothing else gets through. */\nfunction packagesFrom(a: PackAnswers): PackPackage[] {\n const packages = (a.packages ?? []).filter((p) => clean(p.registryType) && clean(p.identifier));\n for (const p of packages) {\n const type = clean(p.registryType);\n const id = clean(p.identifier);\n if (type === 'npm' && !NPM_NAME_RE.test(id)) {\n throw new Error(`Package \"${id}\" is not an npm package name (e.g. weather-mcp or @acme/weather).`);\n }\n if (type === 'pypi' && !PYPI_NAME_RE.test(id)) {\n throw new Error(`Package \"${id}\" is not a PyPI package name (e.g. weather-mcp or weather_mcp).`);\n }\n if (type !== 'npm' && type !== 'pypi' && !PACKAGE_ID_RE.test(id)) {\n throw new Error(`Package \"${id}\" is not a ${type} package identifier: it must start with a letter or digit and have no spaces.`);\n }\n }\n return packages\n .map((p) => ({\n registryType: clean(p.registryType),\n identifier: clean(p.identifier),\n ...(clean(p.version) ? { version: clean(p.version) } : {}),\n }));\n}\n\n/** A URL people call: http(s) only, speaking a2a or mcp. */\nfunction checkEndpoint(e: { protocol: string; url: string }): void {\n if (!/^https?:\\/\\/[^\\s/]+/i.test(clean(e.url))) {\n throw new Error(`Where it runs: \"${clean(e.url)}\" is not an http(s) URL (or give an npm package).`);\n }\n if (!ENDPOINT_PROTOCOLS.includes(clean(e.protocol).toLowerCase())) {\n throw new Error(`Protocol \"${clean(e.protocol)}\": a2a or mcp.`);\n }\n}\n\nfunction endpointsFrom(a: PackAnswers, packages: PackPackage[]): FafaEndpoint[] {\n const urls = (a.endpoints ?? []).filter((e) => clean(e.url));\n urls.forEach(checkEndpoint);\n const endpoints: FafaEndpoint[] = [\n ...urls.map((e) => ({ protocol: clean(e.protocol).toLowerCase(), transport: 'http', location: clean(e.url) })),\n ...packages.map((p) => ({ protocol: 'mcp', transport: 'stdio', location: p.identifier })),\n ];\n if (endpoints.length === 0) {throw new Error('Missing answer: endpoints (a URL, or a package people install)');}\n return endpoints;\n}\n\nfunction extrasFrom(a: PackAnswers, domain: string, keywords: string[], packages: PackPackage[]): PackExtras {\n const extras: PackExtras = { domain };\n const optional: Array<[keyof PackExtras, string]> = [\n ['repository', clean(a.repository)],\n ['icon', clean(a.icon)],\n ['organizationUrl', clean(a.organization_url)],\n ];\n for (const [key, value] of optional) {\n if (value) {(extras as Record<string, unknown>)[key] = value;}\n }\n if (keywords.length) {extras.keywords = keywords;}\n const examples = list(a.example_requests);\n if (examples.length) {extras.examples = examples;}\n if (packages.length) {extras.packages = packages;}\n return extras;\n}\n\n/** Write the `.fafa` a set of answers describes. Throws, naming the answer, when one is missing or malformed. */\nexport function answersToFafa(a: PackAnswers): FafaDoc {\n const handle = clean(a.handle).toLowerCase();\n const domain = normaliseDomain(a.domain);\n checkIdentity(a, handle, domain);\n const keywords = list(a.tags);\n const packages = packagesFrom(a);\n const agent: FafaAgent = {\n name: handle,\n displayName: clean(a.display_name),\n id: `urn:air:${domain}:agent:${handle}`,\n ...(clean(a.organization) ? { vendor: clean(a.organization) } : {}),\n version: clean(a.version),\n description: clean(a.description),\n homepage: clean(a.homepage) || `https://${domain}`,\n ...(clean(a.license) ? { license: clean(a.license) } : {}),\n };\n return {\n version: FAFA_SPEC_VERSION,\n agent,\n capabilities: capabilitiesFrom(a, keywords),\n endpoints: endpointsFrom(a, packages),\n metadata: { cards: extrasFrom(a, domain, keywords, packages) },\n };\n}\n\n/** The `.fafa` as the YAML document people keep. */\nexport function fafaYaml(fafa: FafaDoc): string {\n return stringify(fafa, { lineWidth: 0 });\n}\n\n// ---------------------------------------------------------------------------\n// .fafa → the other cards\n// ---------------------------------------------------------------------------\n\n/** Where the `.fafa` says it is published: `agent.id` (urn:air), else metadata, else the homepage host. */\nexport function fafaDomain(fafa: FafaDoc): string {\n const id = clean(fafa.agent?.id);\n const m = /^urn:air:([^:]+):/.exec(id);\n if (m) {return m[1];}\n const fromExtras = clean(fafa.metadata?.cards?.domain);\n if (fromExtras) {return fromExtras;}\n try {\n return new URL(clean(fafa.agent?.homepage)).hostname.replace(/^www\\./, '');\n } catch {\n throw new Error('The .fafa names no domain (agent.id urn:air, metadata.cards.domain or agent.homepage).');\n }\n}\n\n/** The stable short name a card is filed under: `agent.name`, lowercased and\n * reduced to the characters an identifier may carry. The `{name}` of\n * `urn:air:{publisher}:{namespace}:{name}` — never a display string. */\nexport function fafaHandle(fafa: FafaDoc): string {\n return handleOf(fafa);\n}\n\nfunction handleOf(fafa: FafaDoc): string {\n const h = clean(fafa.agent?.name).toLowerCase().replace(/[^a-z0-9._-]/g, '-').replace(/^-+|-+$/g, '');\n if (!h) {throw new Error('The .fafa needs agent.name (the short name).');}\n return h;\n}\n\n/** MCP names are reverse-DNS: example.com + weather → com.example/weather. */\nexport function mcpName(fafa: FafaDoc): string {\n return `${fafaDomain(fafa).split('.').reverse().join('.')}/${handleOf(fafa)}`;\n}\n\n/** Server Card and registry descriptions and titles cap at 100 characters. */\nfunction cap100(s: string): string {\n const t = s.replace(/\\s+/g, ' ').trim();\n return t.length <= 100 ? t : `${t.slice(0, 97).trimEnd()}...`;\n}\n\n/** The `.fafa`'s MCP endpoints at an http(s) URL — what a Server Card describes. */\nexport function mcpRemotes(fafa: FafaDoc): Array<{ type: string; url: string }> {\n return (fafa.endpoints ?? [])\n .filter((e) => clean(e.protocol).toLowerCase() === 'mcp' && /^https?:\\/\\//.test(clean(e.location)))\n .map((e) => ({ type: 'streamable-http', url: clean(e.location) }));\n}\n\nfunction repositoryOf(url: string): { url: string; source: string } | undefined {\n if (!url) {return undefined;}\n try {\n const host = new URL(url).hostname.replace(/^www\\./, '');\n return { url, source: host.split('.')[0] };\n } catch {\n return undefined;\n }\n}\n\n/** Identity shared by the Server Card and the registry entry. */\nfunction mcpIdentity(fafa: FafaDoc): Record<string, unknown> {\n const agent = fafa.agent ?? {};\n const extras = fafa.metadata?.cards ?? {};\n const description = clean(agent.description);\n const version = clean(agent.version);\n if (!description || !version) {throw new Error('An MCP card needs agent.description and agent.version in .fafa');}\n const out: Record<string, unknown> = {\n name: mcpName(fafa),\n version,\n description: cap100(description),\n };\n const title = clean(agent.displayName);\n if (title) {out.title = cap100(title);}\n const homepage = clean(agent.homepage);\n if (homepage) {out.websiteUrl = homepage;}\n const repo = repositoryOf(clean(extras.repository));\n if (repo) {out.repository = repo;}\n if (clean(extras.icon)) {out.icons = [{ src: clean(extras.icon) }];}\n return out;\n}\n\n/** The packages people install, from the `.fafa`, as a registry entry lists them. */\nfunction registryPackages(fafa: FafaDoc): Array<Record<string, unknown>> {\n return (fafa.metadata?.cards?.packages ?? []).map((p) => ({\n registryType: clean(p.registryType),\n identifier: clean(p.identifier),\n ...(clean(p.version) ? { version: clean(p.version) } : {}),\n transport: { type: 'stdio' },\n }));\n}\n\n/** True when the `.fafa` gives a registry entry: a package or a remote MCP URL. */\nexport function hasRegistryEntry(fafa: FafaDoc): boolean {\n return mcpRemotes(fafa).length > 0 || registryPackages(fafa).length > 0;\n}\n\n/** The registry identity from the `.fafa`: `name`, and `title` when it has one. */\nexport function registryIdentity(fafa: FafaDoc): { name: string; title?: string } {\n const title = clean(fafa.agent?.displayName);\n return { name: mcpName(fafa), ...(title ? { title: cap100(title) } : {}) };\n}\n\n/** The MCP Server Card for a remote MCP server. With a project.faf (`faf`,\n * BEST) it carries FAF's context block at `_meta[\"one.faf/context\"]`. */\nexport function projectServerCard(fafa: FafaDoc, faf?: FafData, opts: ContextBlockOptions = {}): Record<string, unknown> {\n const remotes = mcpRemotes(fafa);\n if (remotes.length === 0) {\n throw new Error('A Server Card describes a remote MCP server: the .fafa has no mcp endpoint at an http(s) URL.');\n }\n return {\n $schema: SERVER_CARD_SCHEMA,\n ...mcpIdentity(fafa),\n remotes,\n ...(faf ? { _meta: { 'one.faf/context': fafContextBlock(faf, opts) } } : {}),\n };\n}\n\n/** The MCP Registry `server.json` (publishing it stays the owner's step). With\n * a project.faf (`faf`, BEST) it carries FAF's context block in the registry's\n * publisher-provided `_meta`. */\nexport function projectServerJson(fafa: FafaDoc, faf?: FafData, opts: ContextBlockOptions = {}): Record<string, unknown> {\n const remotes = mcpRemotes(fafa);\n const packages = registryPackages(fafa);\n if (remotes.length === 0 && packages.length === 0) {\n throw new Error('A registry entry needs a package people install or a remote MCP URL.');\n }\n return {\n $schema: SERVER_JSON_SCHEMA,\n ...mcpIdentity(fafa),\n ...(packages.length ? { packages } : {}),\n ...(remotes.length ? { remotes } : {}),\n ...(faf ? { _meta: registryMeta(faf, opts) } : {}),\n };\n}\n\nexport type PackCard = 'a2a' | 'server_card' | 'server_json' | 'ai_catalog' | 'ard' | 'fafa';\n\nexport interface CatalogRow {\n identifier: string;\n displayName: string;\n type: string;\n description: string;\n url: string;\n version?: string;\n updatedAt: string;\n}\n\n/** Options for the catalog rows. */\nexport interface CatalogRowOptions {\n /** `updatedAt` for the rows; otherwise now. */\n now?: string;\n /** List the `.fafa` itself (served at /.well-known/fafa). Default true: it is\n * the source of the cards — what makes them BETTER. */\n listFafa?: boolean;\n /** Public URL of the A2A card; default the domain's /.well-known/agent-card.json. */\n a2aCardUrl?: string;\n /** An A2A door when the `.fafa` names none (as `faf cards --door-url`). */\n doorUrl?: string;\n}\n\n/** Where the A2A card is served — only when it is asked for and the `.fafa`\n * names an A2A door, so a catalog never lists a card nobody wrote. */\nfunction a2aCardUrlFor(fafa: FafaDoc, cards: PackCard[], opts: CatalogRowOptions): string | undefined {\n if (!cards.includes('a2a') || a2aDoors(fafa, opts).length === 0) {return undefined;}\n return opts.a2aCardUrl ?? `https://${fafaDomain(fafa)}/.well-known/agent-card.json`;\n}\n\n/** One row per card the domain serves: the A2A card (when the `.fafa` names an\n * A2A door), the Server Card (when it names a remote MCP URL), and the `.fafa`. */\nexport function catalogRows(fafa: FafaDoc, cards: PackCard[], opts: CatalogRowOptions = {}): CatalogRow[] {\n const domain = fafaDomain(fafa);\n const handle = handleOf(fafa);\n const agent = fafa.agent ?? {};\n const displayName = clean(agent.displayName) || clean(agent.name);\n const description = clean(agent.description);\n const version = clean(agent.version);\n const now = opts.now ?? new Date().toISOString();\n const row = (ns: string, type: string, url: string): CatalogRow => ({\n identifier: `urn:air:${domain}:${ns}:${handle}`,\n displayName,\n type,\n description,\n url,\n ...(version ? { version } : {}),\n updatedAt: now,\n });\n const rows: CatalogRow[] = [];\n const a2aUrl = a2aCardUrlFor(fafa, cards, opts);\n if (a2aUrl) {rows.push(row('a2a', CARD_MEDIA_TYPES.a2a, a2aUrl));}\n if (cards.includes('server_card')) {\n const remote = mcpRemotes(fafa)[0];\n if (remote) {rows.push(row('mcp', CARD_MEDIA_TYPES.server_card, `${remote.url.replace(/\\/+$/, '')}/server-card`));}\n }\n if (opts.listFafa !== false) {rows.push(row('agent', CARD_MEDIA_TYPES.fafa, `https://${domain}/.well-known/fafa`));}\n return rows;\n}\n\n/** Who publishes a catalog: AI Catalog's `host` object. */\nexport interface CatalogHost {\n displayName: string;\n identifier?: string;\n}\n\n/**\n * The catalog's `host` — who publishes these entries. Naming one is what\n * lifts a catalog from Level 1 \"minimal\" to Level 2 \"discoverable\", and\n * `displayName` is the field that does it: the validator takes an empty one\n * as *invalid*, not as minimal. So a `.fafa` that names nobody gets no host\n * at all — a minimal catalog that validates beats a discoverable one that\n * does not. `identifier` rides along whenever the `.fafa` says where it\n * lives, and is left off when it does not.\n */\nexport function catalogHost(fafa: FafaDoc): CatalogHost | undefined {\n const agent = fafa.agent ?? {};\n const displayName = clean(agent.vendor) || clean(agent.displayName) || clean(agent.name);\n if (!displayName) {return undefined;}\n let identifier: string | undefined;\n try {\n identifier = fafaDomain(fafa);\n } catch {\n identifier = undefined;\n }\n return { displayName, ...(identifier ? { identifier } : {}) };\n}\n\n/** The AI Catalog for the domain: every row above, with the host named. */\nexport function projectAiCatalog(fafa: FafaDoc, cards: PackCard[], opts: CatalogRowOptions = {}): Record<string, unknown> {\n const host = catalogHost(fafa);\n return {\n specVersion: AI_CATALOG_SPEC_VERSION,\n ...(host ? { host } : {}),\n entries: catalogRows(fafa, cards, opts),\n };\n}\n\n/**\n * The search hints ARD reads, from the `.fafa`: `metadata.cards.keywords` and\n * `metadata.cards.examples`. An entry with no `representativeQueries` is, in\n * the conformance CLI's own words, \"a valid catalog entry but not a\n * discoverable ARD entry\" — the semantic index is built from that term.\n */\nexport function ardHints(fafa: FafaDoc): { tags?: string[]; representativeQueries?: string[] } {\n const extras = fafa.metadata?.cards ?? {};\n const tags = list(extras.keywords);\n const queries = list(extras.examples);\n return {\n ...(tags.length ? { tags } : {}),\n ...(queries.length ? { representativeQueries: queries } : {}),\n };\n}\n\n/** The ARD manifest: the catalog, plus the search hints ARD reads. ARD builds\n * on ai-catalog (spec §4), so the document is the same shape — the entries\n * carry more. */\nexport function projectArd(fafa: FafaDoc, cards: PackCard[], opts: CatalogRowOptions = {}): Record<string, unknown> {\n const host = catalogHost(fafa);\n const hints = ardHints(fafa);\n return {\n specVersion: AI_CATALOG_SPEC_VERSION,\n ...(host ? { host } : {}),\n entries: catalogRows(fafa, cards, opts).map((r) => ({ ...r, ...hints })),\n };\n}\n\nexport interface PackOptions extends ContextBlockOptions {\n /** Which cards to build; the `.fafa` is always written. */\n cards: PackCard[];\n /** `updatedAt` for catalog rows (tests); otherwise now. */\n now?: string;\n /** List the `.fafa` itself in the catalog and ARD manifest (it is then served\n * at /.well-known/fafa). Default true; `false` leaves it out. */\n listFafa?: boolean;\n /** Extensions to put on the A2A card, besides FAF's own (added with `faf`). */\n a2aExtensions?: A2AExtension[];\n /** project.faf (BEST): adds FAF's context block to the A2A card, the Server\n * Card and server.json. Without it the cards are plain (BETTER). */\n faf?: FafData;\n}\n\nexport interface Pack {\n fafa: FafaDoc;\n fafaText: string;\n a2a?: ProjectedA2A;\n server_card?: Record<string, unknown>;\n server_json?: Record<string, unknown>;\n ai_catalog?: Record<string, unknown>;\n ard?: Record<string, unknown>;\n}\n\n/** Every card a `.fafa` can feed, for the cards asked. */\nexport function projectPack(fafa: FafaDoc, opts: PackOptions): Pack {\n const want = new Set(opts.cards);\n const pack: Pack = { fafa, fafaText: fafaYaml(fafa) };\n const { faf } = opts;\n if (want.has('a2a')) {\n const extensions = [...(opts.a2aExtensions ?? []), ...(faf ? [fafaContextExtension(fafa, faf, opts)] : [])];\n pack.a2a = projectA2ACard(fafa, { extensions });\n }\n if (want.has('server_card')) {pack.server_card = projectServerCard(fafa, faf, opts);}\n if (want.has('server_json')) {pack.server_json = projectServerJson(fafa, faf, opts);}\n const rowOpts = { now: opts.now, listFafa: opts.listFafa };\n if (want.has('ai_catalog')) {pack.ai_catalog = projectAiCatalog(fafa, opts.cards, rowOpts);}\n if (want.has('ard')) {pack.ard = projectArd(fafa, opts.cards, rowOpts);}\n return pack;\n}\n\n/** Answers in, the `.fafa` and every card asked for out. */\nexport function buildPack(answers: PackAnswers, opts: PackOptions): Pack {\n return projectPack(answersToFafa(answers), opts);\n}\n",
|
|
219
|
+
"/**\n * The card pack: a few answers in, a `.fafa` written from them, and every card\n * that `.fafa` can feed projected out: the A2A Agent Card, the MCP Server\n * Card, the MCP Registry `server.json`, an AI Catalog and an ARD manifest.\n *\n * Pure: no filesystem and no Node built-ins, so the same code runs in the CLI,\n * in a browser front door and in tests.\n *\n * The cards ladder, the same as `faf cards`: the `.fafa` is the source of every\n * card and gives the plain cards (BETTER); a project.faf, passed as `faf`, adds\n * FAF's context block to each of them (BEST). A card's identity always comes\n * from the `.fafa`, so moving up to BEST never rewrites it.\n */\nimport { stringify } from 'yaml';\nimport type { FafData } from '../core/types.js';\nimport {\n A2A_CONTEXT_URI,\n fafContextBlock,\n registryMeta,\n type ContextBlockOptions,\n} from './context-block.js';\n\nexport const A2A_PROTOCOL_BINDING = 'JSONRPC';\nexport const A2A_PROTOCOL_VERSION = '1.0';\n/** The three FAF-family media types, in family order. */\nexport const FAF_MEDIA_TYPES = [\n 'application/vnd.faf+yaml',\n 'application/vnd.fafm+yaml',\n 'application/vnd.fafa+yaml',\n] as const;\n/** The only `$schema` a Server Card may carry (modelcontextprotocol/ext-server-card). */\nexport const SERVER_CARD_SCHEMA = 'https://static.modelcontextprotocol.io/schemas/v1/server-card.schema.json';\n/** The dated registry schema a `server.json` declares (latest release 2025-12-11). */\nexport const SERVER_JSON_SCHEMA = 'https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json';\nexport const AI_CATALOG_SPEC_VERSION = '1.0';\nexport const FAFA_SPEC_VERSION = '1.0';\n/** Media types a catalog entry uses for each card it lists (AI Catalog's own list). */\nexport const CARD_MEDIA_TYPES = {\n a2a: 'application/a2a-agent-card+json',\n server_card: 'application/mcp-server-card+json',\n fafa: 'application/vnd.fafa+yaml',\n} as const;\n\nexport interface FafaAgent {\n name?: string;\n displayName?: string;\n id?: string;\n vendor?: string;\n version?: string;\n description?: string;\n homepage?: string;\n license?: string;\n}\n\nexport interface FafaCapability {\n name?: string;\n type?: string;\n description?: string;\n tags?: unknown;\n /** MIME type this capability reads, when it's one of the FAF family — drives the skill's `inputModes` and the card's `defaultInputModes`. */\n cites_spec?: string;\n}\n\nexport interface FafaEndpoint {\n protocol?: string;\n transport?: string;\n location?: string;\n version?: string;\n}\n\n/** Facts only some cards carry, kept in the `.fafa` under `metadata.cards` so the file stays the one source. */\nexport interface PackExtras {\n domain?: string;\n repository?: string;\n icon?: string;\n organizationUrl?: string;\n keywords?: string[];\n examples?: string[];\n packages?: PackPackage[];\n}\n\nexport interface PackPackage {\n registryType: string;\n identifier: string;\n version?: string;\n}\n\nexport interface FafaDoc {\n /** `.fafa` spec version this document is authored against, e.g. `\"1.0\"` — not `agent.version`. */\n version?: string;\n agent?: FafaAgent;\n capabilities?: FafaCapability[];\n endpoints?: FafaEndpoint[];\n provenance?: Record<string, unknown>;\n metadata?: { persona?: string; cards?: PackExtras; [key: string]: unknown };\n [key: string]: unknown;\n}\n\nexport interface A2AExtension {\n uri: string;\n description: string;\n required: boolean;\n params: Record<string, unknown>;\n}\n\nexport interface ProjectedA2A {\n name: string;\n description: string;\n supportedInterfaces: Array<{\n url: string;\n protocolBinding: string;\n protocolVersion: string;\n }>;\n /** Omitted entirely when `agent.vendor` or `agent.homepage` is absent — A2A optional, never a guessed org name. */\n provider?: { organization: string; url: string };\n version: string;\n capabilities: {\n streaming: boolean;\n pushNotifications: boolean;\n extendedAgentCard: boolean;\n extensions: A2AExtension[];\n };\n defaultInputModes: string[];\n defaultOutputModes: string[];\n skills: Array<{\n id: string;\n name: string;\n description: string;\n tags: string[];\n inputModes?: string[];\n }>;\n}\n\nexport function a2aEndpoints(fafa: FafaDoc): FafaEndpoint[] {\n return (fafa.endpoints ?? []).filter(\n (e) => String(e.protocol ?? '').toLowerCase() === 'a2a' && e.location,\n );\n}\n\n/** Authored A2A endpoints, else a single `doorUrl`. Never invents a door. */\nexport function a2aDoors(fafa: FafaDoc, opts: { doorUrl?: string } = {}): FafaEndpoint[] {\n const fromDoc = a2aEndpoints(fafa);\n if (fromDoc.length > 0) {return fromDoc;}\n const door = opts.doorUrl?.trim();\n if (door) {\n return [{ protocol: 'a2a', location: door, version: A2A_PROTOCOL_VERSION }];\n }\n return [];\n}\n\n/** Where the `.fafa` itself is served — the same door the catalog's `agent`\n * row points at, so a card and a catalog never disagree about it. Left off\n * the card, rather than guessed, when the `.fafa` names no domain. */\nfunction fafaPassportUrl(fafa: FafaDoc): string | undefined {\n try {\n return `https://${fafaDomain(fafa)}/.well-known/fafa`;\n } catch {\n return undefined;\n }\n}\n\n/**\n * FAF's context extension for the A2A card (BEST). Its `params` are a superset\n * of {@link fafContextBlock}, enriched with `.fafa`-specific identity that only\n * makes sense for an agent card (agentId, passport, the full FAF media-type\n * family). Nests the base block's `faf`/`mediaType` under `provenance` rather\n * than flattening them, per the extension's own shape (`§7` of the field\n * mapping). The Server Card and registry `_meta` stay on the plain\n * {@link fafContextBlock} shape.\n */\nexport function fafaContextExtension(fafa: FafaDoc, faf: FafData, opts: ContextBlockOptions = {}): A2AExtension {\n const block = fafContextBlock(faf, opts);\n const agent = fafa.agent ?? {};\n const params: Record<string, unknown> = {\n fafaSpecVersion: String(fafa.version ?? FAFA_SPEC_VERSION),\n mediaTypes: [...FAF_MEDIA_TYPES],\n provenance: { faf: block.faf, mediaType: block.mediaType },\n generated: block.generated,\n };\n if (agent.id) {params.agentId = agent.id;}\n const passport = fafaPassportUrl(fafa);\n if (passport) {params.passport = passport;}\n return {\n uri: A2A_CONTEXT_URI,\n description: 'FAF passport and project DNA as typed parts',\n required: false,\n params,\n };\n}\n\n/** `text/plain` plus any FAF media type a capability's `cites_spec` names. */\nfunction defaultA2AInputModes(fafa: FafaDoc): string[] {\n const cited = new Set<string>();\n for (const c of fafa.capabilities ?? []) {\n if (c.cites_spec && (FAF_MEDIA_TYPES as readonly string[]).includes(c.cites_spec)) {\n cited.add(c.cites_spec);\n }\n }\n return ['text/plain', ...cited];\n}\n\n/**\n * The A2A Agent Card from a `.fafa`: every field comes from the document, and\n * `capabilities.extensions` holds exactly the extensions passed (none by default).\n */\nexport function projectA2ACard(\n fafa: FafaDoc,\n opts: { doorUrl?: string; extensions?: A2AExtension[] } = {},\n): ProjectedA2A {\n const agent = fafa.agent ?? {};\n const doors = a2aDoors(fafa, opts);\n if (doors.length === 0) {\n throw new Error(\n \"No A2A endpoint in .fafa (need endpoints[].protocol: a2a + location). Will not invent a door.\",\n );\n }\n const name = String(agent.displayName ?? fafa.metadata?.persona ?? agent.name ?? '').trim();\n const description = String(agent.description ?? '').trim();\n const version = String(agent.version ?? '').trim();\n if (!name || !description || !version) {\n throw new Error('A2A card needs agent.displayName|name, description, version in .fafa');\n }\n // provider is A2A-optional: emit it only when both halves are real, never a guessed org name.\n const organization = String(agent.vendor ?? '').trim();\n const homepage = String(agent.homepage ?? '').trim();\n const provider = organization && homepage ? { organization, url: homepage } : undefined;\n\n const skills = (fafa.capabilities ?? []).map((c) => {\n const id = String(c.name ?? '').trim();\n if (!id) {throw new Error('A2A skill missing capabilities[].name');}\n const tags = Array.isArray(c.tags) ? c.tags.map(String) : [];\n const inputModes =\n c.cites_spec && (FAF_MEDIA_TYPES as readonly string[]).includes(c.cites_spec)\n ? [c.cites_spec, 'text/plain']\n : undefined;\n return {\n id,\n name: id,\n description: String(c.description ?? '').trim() || id,\n tags,\n ...(inputModes ? { inputModes } : {}),\n };\n });\n\n return {\n name,\n description,\n supportedInterfaces: doors.map((e) => ({\n url: String(e.location),\n protocolBinding: A2A_PROTOCOL_BINDING,\n protocolVersion: String(e.version ?? A2A_PROTOCOL_VERSION),\n })),\n ...(provider ? { provider } : {}),\n version,\n capabilities: {\n // Endpoint existence isn't streaming support: FAFA's A2A door explicitly\n // errors message/stream today (-32004). Advertising true would be a\n // claim the door can't back up. Flip this only once a real per-door\n // streaming signal exists in .fafa/project.faf to key off of.\n streaming: false,\n pushNotifications: false,\n extendedAgentCard: false,\n extensions: [...(opts.extensions ?? [])],\n },\n defaultInputModes: defaultA2AInputModes(fafa),\n defaultOutputModes: ['text/plain', 'application/json'],\n skills,\n };\n}\n\n// ---------------------------------------------------------------------------\n// Answers → .fafa\n// ---------------------------------------------------------------------------\n\n/** What someone tells the front door. Keys match the crosswalk's slot ids. */\nexport interface PackAnswers {\n display_name: string;\n handle: string;\n domain: string;\n description: string;\n version: string;\n endpoints?: Array<{ protocol: string; url: string }>;\n skills?: Array<{ name: string; description?: string; type?: string }>;\n organization?: string;\n organization_url?: string;\n homepage?: string;\n icon?: string;\n repository?: string;\n license?: string;\n tags?: string[];\n example_requests?: string[];\n packages?: PackPackage[];\n}\n\nconst HANDLE_RE = /^[a-z0-9][a-z0-9._-]*$/;\n/** npm's own package-name rule: lowercase, URL-safe, optionally `@scope/`, and\n * never starting with `-`, `.` or `_` (a leading `-` would be read as an option). */\nconst NPM_NAME_RE = /^(@[a-z0-9~][a-z0-9-._~]*\\/)?[a-z0-9~][a-z0-9-._~]*$/;\n/** PyPI's project-name rule (PEP 508): letters, digits, `.`, `_`, `-`, starting and\n * ending with a letter or digit. */\nconst PYPI_NAME_RE = /^[A-Za-z0-9]([A-Za-z0-9._-]*[A-Za-z0-9])?$/;\n/** Any other registry's identifier (oci, nuget, ...): no whitespace, and it starts\n * with a letter or digit, so it is never read as an option. */\nconst PACKAGE_ID_RE = /^[A-Za-z0-9][^\\s]*$/;\nconst ENDPOINT_PROTOCOLS = ['a2a', 'mcp'];\nconst DOMAIN_RE = /^(?=.{1,253}$)([a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z]{2,}$/;\n\nfunction clean(s: unknown): string {\n return String(s ?? '').trim();\n}\n\nfunction list(xs: unknown): string[] {\n return Array.isArray(xs) ? xs.map(clean).filter(Boolean) : [];\n}\n\n/** A domain as typed (\"https://www.Example.com/about\") reduced to the name (\"example.com\"). */\nfunction normaliseDomain(raw: unknown): string {\n return clean(raw).toLowerCase().replace(/^https?:\\/\\//, '').replace(/\\/.*$/, '').replace(/^www\\./, '');\n}\n\nfunction checkIdentity(a: PackAnswers, handle: string, domain: string): void {\n const missing = (['display_name', 'description', 'version'] as const).filter((k) => !clean(a[k]));\n if (missing.length) {throw new Error(`Missing answer: ${missing.join(', ')}`);}\n if (!HANDLE_RE.test(handle)) {throw new Error('Short name: lowercase letters, digits, dots, hyphens or underscores.');}\n if (!DOMAIN_RE.test(domain)) {throw new Error(`Domain \"${a.domain}\" is not a domain name (e.g. example.com).`);}\n}\n\nfunction capabilitiesFrom(a: PackAnswers, keywords: string[]): FafaCapability[] {\n return (a.skills ?? [])\n .filter((s) => clean(s.name))\n .map((s) => ({\n name: clean(s.name),\n type: clean(s.type) || 'tool',\n description: clean(s.description) || clean(s.name),\n // A2A requires tags on every skill: the keywords, else the skill's own name.\n tags: keywords.length ? keywords : [clean(s.name).toLowerCase()],\n }));\n}\n\n/** A package people install: an npm one must carry npm's own name, a PyPI one\n * PyPI's, and any other an identifier that cannot be read as an option — the\n * `.fafa` names it as the MCP server's stdio command, so nothing else gets through. */\nfunction packagesFrom(a: PackAnswers): PackPackage[] {\n const packages = (a.packages ?? []).filter((p) => clean(p.registryType) && clean(p.identifier));\n for (const p of packages) {\n const type = clean(p.registryType);\n const id = clean(p.identifier);\n if (type === 'npm' && !NPM_NAME_RE.test(id)) {\n throw new Error(`Package \"${id}\" is not an npm package name (e.g. weather-mcp or @acme/weather).`);\n }\n if (type === 'pypi' && !PYPI_NAME_RE.test(id)) {\n throw new Error(`Package \"${id}\" is not a PyPI package name (e.g. weather-mcp or weather_mcp).`);\n }\n if (type !== 'npm' && type !== 'pypi' && !PACKAGE_ID_RE.test(id)) {\n throw new Error(`Package \"${id}\" is not a ${type} package identifier: it must start with a letter or digit and have no spaces.`);\n }\n }\n return packages\n .map((p) => ({\n registryType: clean(p.registryType),\n identifier: clean(p.identifier),\n ...(clean(p.version) ? { version: clean(p.version) } : {}),\n }));\n}\n\n/** True for a whole http(s) URL with a host and no whitespace anywhere — not\n * just one that starts like one (`https://ok.example.com/x y` is refused). */\nfunction isHttpUrl(s: string): boolean {\n if (/\\s/.test(s)) {return false;}\n try {\n const u = new URL(s);\n return (u.protocol === 'http:' || u.protocol === 'https:') && u.hostname !== '';\n } catch {\n return false;\n }\n}\n\n/** A URL people call: http(s) only, speaking a2a or mcp. */\nfunction checkEndpoint(e: { protocol: string; url: string }): void {\n if (!isHttpUrl(clean(e.url))) {\n throw new Error(`Where it runs: \"${clean(e.url)}\" is not an http(s) URL (or give an npm package).`);\n }\n if (!ENDPOINT_PROTOCOLS.includes(clean(e.protocol).toLowerCase())) {\n throw new Error(`Protocol \"${clean(e.protocol)}\": a2a or mcp.`);\n }\n}\n\nfunction endpointsFrom(a: PackAnswers, packages: PackPackage[]): FafaEndpoint[] {\n const urls = (a.endpoints ?? []).filter((e) => clean(e.url));\n urls.forEach(checkEndpoint);\n const endpoints: FafaEndpoint[] = [\n ...urls.map((e) => ({ protocol: clean(e.protocol).toLowerCase(), transport: 'http', location: clean(e.url) })),\n ...packages.map((p) => ({ protocol: 'mcp', transport: 'stdio', location: p.identifier })),\n ];\n if (endpoints.length === 0) {throw new Error('Missing answer: endpoints (a URL, or a package people install)');}\n return endpoints;\n}\n\nfunction extrasFrom(a: PackAnswers, domain: string, keywords: string[], packages: PackPackage[]): PackExtras {\n const extras: PackExtras = { domain };\n const optional: Array<[keyof PackExtras, string]> = [\n ['repository', clean(a.repository)],\n ['icon', clean(a.icon)],\n ['organizationUrl', clean(a.organization_url)],\n ];\n for (const [key, value] of optional) {\n if (value) {(extras as Record<string, unknown>)[key] = value;}\n }\n if (keywords.length) {extras.keywords = keywords;}\n const examples = list(a.example_requests);\n if (examples.length) {extras.examples = examples;}\n if (packages.length) {extras.packages = packages;}\n return extras;\n}\n\n/** Write the `.fafa` a set of answers describes. Throws, naming the answer, when one is missing or malformed. */\nexport function answersToFafa(a: PackAnswers): FafaDoc {\n const handle = clean(a.handle).toLowerCase();\n const domain = normaliseDomain(a.domain);\n checkIdentity(a, handle, domain);\n const keywords = list(a.tags);\n const packages = packagesFrom(a);\n const agent: FafaAgent = {\n name: handle,\n displayName: clean(a.display_name),\n id: `urn:air:${domain}:agent:${handle}`,\n ...(clean(a.organization) ? { vendor: clean(a.organization) } : {}),\n version: clean(a.version),\n description: clean(a.description),\n homepage: clean(a.homepage) || `https://${domain}`,\n ...(clean(a.license) ? { license: clean(a.license) } : {}),\n };\n return {\n version: FAFA_SPEC_VERSION,\n agent,\n capabilities: capabilitiesFrom(a, keywords),\n endpoints: endpointsFrom(a, packages),\n metadata: { cards: extrasFrom(a, domain, keywords, packages) },\n };\n}\n\n/** The `.fafa` as the YAML document people keep. */\nexport function fafaYaml(fafa: FafaDoc): string {\n return stringify(fafa, { lineWidth: 0 });\n}\n\n// ---------------------------------------------------------------------------\n// .fafa → the other cards\n// ---------------------------------------------------------------------------\n\n/** Where the `.fafa` says it is published: `agent.id` (urn:air), else metadata, else the homepage host. */\nexport function fafaDomain(fafa: FafaDoc): string {\n const id = clean(fafa.agent?.id);\n const m = /^urn:air:([^:]+):/.exec(id);\n if (m) {return m[1];}\n const fromExtras = clean(fafa.metadata?.cards?.domain);\n if (fromExtras) {return fromExtras;}\n try {\n return new URL(clean(fafa.agent?.homepage)).hostname.replace(/^www\\./, '');\n } catch {\n throw new Error('The .fafa names no domain (agent.id urn:air, metadata.cards.domain or agent.homepage).');\n }\n}\n\n/** The stable short name a card is filed under: `agent.name`, lowercased and\n * reduced to the characters an identifier may carry. The `{name}` of\n * `urn:air:{publisher}:{namespace}:{name}` — never a display string. */\nexport function fafaHandle(fafa: FafaDoc): string {\n return handleOf(fafa);\n}\n\nfunction handleOf(fafa: FafaDoc): string {\n const h = clean(fafa.agent?.name).toLowerCase().replace(/[^a-z0-9._-]/g, '-').replace(/^-+|-+$/g, '');\n if (!h) {throw new Error('The .fafa needs agent.name (the short name).');}\n return h;\n}\n\n/** MCP names are reverse-DNS: example.com + weather → com.example/weather. */\nexport function mcpName(fafa: FafaDoc): string {\n return `${fafaDomain(fafa).split('.').reverse().join('.')}/${handleOf(fafa)}`;\n}\n\n/** Server Card and registry descriptions and titles cap at 100 characters. */\nfunction cap100(s: string): string {\n const t = s.replace(/\\s+/g, ' ').trim();\n return t.length <= 100 ? t : `${t.slice(0, 97).trimEnd()}...`;\n}\n\n/** The `.fafa`'s MCP endpoints at an http(s) URL — what a Server Card describes. */\nexport function mcpRemotes(fafa: FafaDoc): Array<{ type: string; url: string }> {\n return (fafa.endpoints ?? [])\n .filter((e) => clean(e.protocol).toLowerCase() === 'mcp' && /^https?:\\/\\//.test(clean(e.location)))\n .map((e) => ({ type: 'streamable-http', url: clean(e.location) }));\n}\n\nfunction repositoryOf(url: string): { url: string; source: string } | undefined {\n if (!url) {return undefined;}\n try {\n const host = new URL(url).hostname.replace(/^www\\./, '');\n return { url, source: host.split('.')[0] };\n } catch {\n return undefined;\n }\n}\n\n/** Identity shared by the Server Card and the registry entry. */\nfunction mcpIdentity(fafa: FafaDoc): Record<string, unknown> {\n const agent = fafa.agent ?? {};\n const extras = fafa.metadata?.cards ?? {};\n const description = clean(agent.description);\n const version = clean(agent.version);\n if (!description || !version) {throw new Error('An MCP card needs agent.description and agent.version in .fafa');}\n const out: Record<string, unknown> = {\n name: mcpName(fafa),\n version,\n description: cap100(description),\n };\n const title = clean(agent.displayName);\n if (title) {out.title = cap100(title);}\n const homepage = clean(agent.homepage);\n if (homepage) {out.websiteUrl = homepage;}\n const repo = repositoryOf(clean(extras.repository));\n if (repo) {out.repository = repo;}\n if (clean(extras.icon)) {out.icons = [{ src: clean(extras.icon) }];}\n return out;\n}\n\n/** The packages people install, from the `.fafa`, as a registry entry lists them. */\nfunction registryPackages(fafa: FafaDoc): Array<Record<string, unknown>> {\n return (fafa.metadata?.cards?.packages ?? []).map((p) => ({\n registryType: clean(p.registryType),\n identifier: clean(p.identifier),\n ...(clean(p.version) ? { version: clean(p.version) } : {}),\n transport: { type: 'stdio' },\n }));\n}\n\n/** True when the `.fafa` gives a registry entry: a package or a remote MCP URL. */\nexport function hasRegistryEntry(fafa: FafaDoc): boolean {\n return mcpRemotes(fafa).length > 0 || registryPackages(fafa).length > 0;\n}\n\n/** The registry identity from the `.fafa`: `name`, and `title` when it has one. */\nexport function registryIdentity(fafa: FafaDoc): { name: string; title?: string } {\n const title = clean(fafa.agent?.displayName);\n return { name: mcpName(fafa), ...(title ? { title: cap100(title) } : {}) };\n}\n\n/** The MCP Server Card for a remote MCP server. With a project.faf (`faf`,\n * BEST) it carries FAF's context block at `_meta[\"one.faf/context\"]`. */\nexport function projectServerCard(fafa: FafaDoc, faf?: FafData, opts: ContextBlockOptions = {}): Record<string, unknown> {\n const remotes = mcpRemotes(fafa);\n if (remotes.length === 0) {\n throw new Error('A Server Card describes a remote MCP server: the .fafa has no mcp endpoint at an http(s) URL.');\n }\n return {\n $schema: SERVER_CARD_SCHEMA,\n ...mcpIdentity(fafa),\n remotes,\n ...(faf ? { _meta: { 'one.faf/context': fafContextBlock(faf, opts) } } : {}),\n };\n}\n\n/** The MCP Registry `server.json` (publishing it stays the owner's step). With\n * a project.faf (`faf`, BEST) it carries FAF's context block in the registry's\n * publisher-provided `_meta`. */\nexport function projectServerJson(fafa: FafaDoc, faf?: FafData, opts: ContextBlockOptions = {}): Record<string, unknown> {\n const remotes = mcpRemotes(fafa);\n const packages = registryPackages(fafa);\n if (remotes.length === 0 && packages.length === 0) {\n throw new Error('A registry entry needs a package people install or a remote MCP URL.');\n }\n return {\n $schema: SERVER_JSON_SCHEMA,\n ...mcpIdentity(fafa),\n ...(packages.length ? { packages } : {}),\n ...(remotes.length ? { remotes } : {}),\n ...(faf ? { _meta: registryMeta(faf, opts) } : {}),\n };\n}\n\nexport type PackCard = 'a2a' | 'server_card' | 'server_json' | 'ai_catalog' | 'ard' | 'fafa';\n\nexport interface CatalogRow {\n identifier: string;\n displayName: string;\n type: string;\n description: string;\n url: string;\n version?: string;\n updatedAt: string;\n}\n\n/** Options for the catalog rows. */\nexport interface CatalogRowOptions {\n /** `updatedAt` for the rows; otherwise now. */\n now?: string;\n /** List the `.fafa` itself (served at /.well-known/fafa). Default true: it is\n * the source of the cards — what makes them BETTER. */\n listFafa?: boolean;\n /** Public URL of the A2A card; default the domain's /.well-known/agent-card.json. */\n a2aCardUrl?: string;\n /** An A2A door when the `.fafa` names none (as `faf cards --door-url`). */\n doorUrl?: string;\n}\n\n/** Where the A2A card is served — only when it is asked for and the `.fafa`\n * names an A2A door, so a catalog never lists a card nobody wrote. */\nfunction a2aCardUrlFor(fafa: FafaDoc, cards: PackCard[], opts: CatalogRowOptions): string | undefined {\n if (!cards.includes('a2a') || a2aDoors(fafa, opts).length === 0) {return undefined;}\n return opts.a2aCardUrl ?? `https://${fafaDomain(fafa)}/.well-known/agent-card.json`;\n}\n\n/** One row per card the domain serves: the A2A card (when the `.fafa` names an\n * A2A door), the Server Card (when it names a remote MCP URL), and the `.fafa`. */\nexport function catalogRows(fafa: FafaDoc, cards: PackCard[], opts: CatalogRowOptions = {}): CatalogRow[] {\n const domain = fafaDomain(fafa);\n const handle = handleOf(fafa);\n const agent = fafa.agent ?? {};\n const displayName = clean(agent.displayName) || clean(agent.name);\n const description = clean(agent.description);\n const version = clean(agent.version);\n const now = opts.now ?? new Date().toISOString();\n const row = (ns: string, type: string, url: string): CatalogRow => ({\n identifier: `urn:air:${domain}:${ns}:${handle}`,\n displayName,\n type,\n description,\n url,\n ...(version ? { version } : {}),\n updatedAt: now,\n });\n const rows: CatalogRow[] = [];\n const a2aUrl = a2aCardUrlFor(fafa, cards, opts);\n if (a2aUrl) {rows.push(row('a2a', CARD_MEDIA_TYPES.a2a, a2aUrl));}\n if (cards.includes('server_card')) {\n const remote = mcpRemotes(fafa)[0];\n if (remote) {rows.push(row('mcp', CARD_MEDIA_TYPES.server_card, `${remote.url.replace(/\\/+$/, '')}/server-card`));}\n }\n if (opts.listFafa !== false) {rows.push(row('agent', CARD_MEDIA_TYPES.fafa, `https://${domain}/.well-known/fafa`));}\n return rows;\n}\n\n/** Who publishes a catalog: AI Catalog's `host` object. */\nexport interface CatalogHost {\n displayName: string;\n identifier?: string;\n}\n\n/**\n * The catalog's `host` — who publishes these entries. Naming one is what\n * lifts a catalog from Level 1 \"minimal\" to Level 2 \"discoverable\", and\n * `displayName` is the field that does it: the validator takes an empty one\n * as *invalid*, not as minimal. So a `.fafa` that names nobody gets no host\n * at all — a minimal catalog that validates beats a discoverable one that\n * does not. `identifier` rides along whenever the `.fafa` says where it\n * lives, and is left off when it does not.\n */\nexport function catalogHost(fafa: FafaDoc): CatalogHost | undefined {\n const agent = fafa.agent ?? {};\n const displayName = clean(agent.vendor) || clean(agent.displayName) || clean(agent.name);\n if (!displayName) {return undefined;}\n let identifier: string | undefined;\n try {\n identifier = fafaDomain(fafa);\n } catch {\n identifier = undefined;\n }\n return { displayName, ...(identifier ? { identifier } : {}) };\n}\n\n/** The AI Catalog for the domain: every row above, with the host named. */\nexport function projectAiCatalog(fafa: FafaDoc, cards: PackCard[], opts: CatalogRowOptions = {}): Record<string, unknown> {\n const host = catalogHost(fafa);\n return {\n specVersion: AI_CATALOG_SPEC_VERSION,\n ...(host ? { host } : {}),\n entries: catalogRows(fafa, cards, opts),\n };\n}\n\n/**\n * The search hints ARD reads, from the `.fafa`: `metadata.cards.keywords` and\n * `metadata.cards.examples`. An entry with no `representativeQueries` is, in\n * the conformance CLI's own words, \"a valid catalog entry but not a\n * discoverable ARD entry\" — the semantic index is built from that term.\n */\nexport function ardHints(fafa: FafaDoc): { tags?: string[]; representativeQueries?: string[] } {\n const extras = fafa.metadata?.cards ?? {};\n const tags = list(extras.keywords);\n const queries = list(extras.examples);\n return {\n ...(tags.length ? { tags } : {}),\n ...(queries.length ? { representativeQueries: queries } : {}),\n };\n}\n\n/** The ARD manifest: the catalog, plus the search hints ARD reads. ARD builds\n * on ai-catalog (spec §4), so the document is the same shape — the entries\n * carry more. */\nexport function projectArd(fafa: FafaDoc, cards: PackCard[], opts: CatalogRowOptions = {}): Record<string, unknown> {\n const host = catalogHost(fafa);\n const hints = ardHints(fafa);\n return {\n specVersion: AI_CATALOG_SPEC_VERSION,\n ...(host ? { host } : {}),\n entries: catalogRows(fafa, cards, opts).map((r) => ({ ...r, ...hints })),\n };\n}\n\nexport interface PackOptions extends ContextBlockOptions {\n /** Which cards to build; the `.fafa` is always written. */\n cards: PackCard[];\n /** `updatedAt` for catalog rows (tests); otherwise now. */\n now?: string;\n /** List the `.fafa` itself in the catalog and ARD manifest (it is then served\n * at /.well-known/fafa). Default true; `false` leaves it out. */\n listFafa?: boolean;\n /** Extensions to put on the A2A card, besides FAF's own (added with `faf`). */\n a2aExtensions?: A2AExtension[];\n /** project.faf (BEST): adds FAF's context block to the A2A card, the Server\n * Card and server.json. Without it the cards are plain (BETTER). */\n faf?: FafData;\n}\n\nexport interface Pack {\n fafa: FafaDoc;\n fafaText: string;\n a2a?: ProjectedA2A;\n server_card?: Record<string, unknown>;\n server_json?: Record<string, unknown>;\n ai_catalog?: Record<string, unknown>;\n ard?: Record<string, unknown>;\n}\n\n/** Every card a `.fafa` can feed, for the cards asked. */\nexport function projectPack(fafa: FafaDoc, opts: PackOptions): Pack {\n const want = new Set(opts.cards);\n const pack: Pack = { fafa, fafaText: fafaYaml(fafa) };\n const { faf } = opts;\n if (want.has('a2a')) {\n const extensions = [...(opts.a2aExtensions ?? []), ...(faf ? [fafaContextExtension(fafa, faf, opts)] : [])];\n pack.a2a = projectA2ACard(fafa, { extensions });\n }\n if (want.has('server_card')) {pack.server_card = projectServerCard(fafa, faf, opts);}\n if (want.has('server_json')) {pack.server_json = projectServerJson(fafa, faf, opts);}\n const rowOpts = { now: opts.now, listFafa: opts.listFafa };\n if (want.has('ai_catalog')) {pack.ai_catalog = projectAiCatalog(fafa, opts.cards, rowOpts);}\n if (want.has('ard')) {pack.ard = projectArd(fafa, opts.cards, rowOpts);}\n return pack;\n}\n\n/** Answers in, the `.fafa` and every card asked for out. */\nexport function buildPack(answers: PackAnswers, opts: PackOptions): Pack {\n return projectPack(answersToFafa(answers), opts);\n}\n",
|
|
220
220
|
"import { existsSync, lstatSync } from 'fs';\nimport { dirname, resolve } from 'path';\nimport { findFafFile, readFaf } from '../interop/faf.js';\nimport { REGISTRY_PUBLISHER_KEY, hasRegistryMark, patchServerJson } from '../interop/servercard.js';\nimport { projectCards } from '../interop/cards.js';\nimport { readUtf8, resolveInside, safeWriteFile } from '../core/safe-write.js';\nimport { writeRendered } from '../core/render-hash.js';\nimport { JsonEditError } from '../core/json-edit.js';\nimport { refuseMissingOutputFolder } from '../core/refusal.js';\nimport { dim, fafCyan } from '../ui/colors.js';\n\nexport interface ServerCardCommandOptions {\n in?: string;\n out?: string;\n faf?: string;\n setVersion?: string;\n generated?: string;\n check?: boolean;\n /** With --out: replace a file faf cannot prove it wrote (edited since, or no faf identity). */\n force?: boolean;\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/** The `generated` stamp faf's block already has in the file, if any. */\nfunction existingGenerated(text: string): string | undefined {\n try {\n const j = JSON.parse(text.replace(/^\\uFEFF/, '')) as {\n _meta?: Record<string, { 'one.faf/context'?: { generated?: unknown } } | undefined>;\n };\n const g = j?._meta?.[REGISTRY_PUBLISHER_KEY]?.['one.faf/context']?.generated;\n return typeof g === 'string' ? g : undefined;\n } catch {\n return undefined; // not JSON: the edit below says so\n }\n}\n\n/**\n * `faf server-card` — put the EMITTED IDENTITY (name + title + _meta) from\n * project.faf into an existing MCP-registry server.json, and change nothing\n * else. The single CROSS-LANGUAGE server-card emitter: TS, Python, and Rust\n * builds all call it, so identity is composed from ONE source — never forked\n * per repo. (JS repos may instead import `registryTitle`/`registryName`/\n * `registryMeta`/`patchServerJson` directly; the CLI exists so Python/Rust\n * reach the same source.)\n *\n * An in-place text edit: only the value of `name`, of `title` (when\n * project.faf has one — else the file's own title is kept), of `version`\n * (with --set-version; NOT --version, which is the global CLI-version flag)\n * and faf's context-block keys under `_meta` change, or are added when\n * missing. No field is deleted; key order, large integers and array layout\n * stay byte for byte. A server.json that cannot be edited that way is\n * refused in one line. It does NOT invent packages/version/sha (those are\n * per-release and per-registry). --check prints the result to stdout without\n * writing (the idempotency-test hook). --out writes the result to another\n * file, with faf's render hash in its `_meta`, and replaces that file only\n * while it is byte for byte what faf last wrote there (or with --force).\n */\nexport function serverCardCommand(options: ServerCardCommandOptions = {}): void {\n const fafPath = options.faf ? resolve(options.faf) : findFafFile();\n if (!fafPath || !existsSync(fafPath)) {\n console.error(\"Error: project.faf not found\\n\\n Run 'faf init' to create one.\");\n process.exit(2);\n }\n const data = readFaf(fafPath);\n\n const inPath = resolve(options.in ?? './server.json');\n const inRoot = options.in ? dirname(inPath) : process.cwd();\n if (!present(inPath)) {\n console.error(\n `Error: ${inPath} not found.\\n\\n 'faf server-card' patches the identity into an existing registry server.json;\\n it does not create packages/icons. Seed a server.json first, then run this.`,\n );\n process.exit(2);\n }\n // Resolved before it is read: a server.json that is a link out of the\n // project (or dangles, or leads to a file with another name) is refused.\n const inReal = resolveInside(inRoot, inPath);\n const text = readUtf8(inReal);\n\n // Preserve the release-managed `generated` stamp so the emit stays idempotent\n // (no spurious churn on re-run); --generated overrides it at release time.\n // One stamp for the whole run, so every block the projector builds agrees.\n const now = options.generated ?? existingGenerated(text) ?? new Date().toISOString();\n\n // Compose the identity from the one projector (registry target).\n const projected = projectCards({\n faf: data,\n targets: ['registry'],\n opts: { fafPointer: './project.faf', now },\n });\n const name = projected.registry!.name;\n const title = projected.registry!.title;\n\n let next: { text: string; changed: boolean };\n try {\n next = patchServerJson(text, { name, title, version: options.setVersion, meta: projected.registry!._meta });\n } catch (e) {\n if (!(e instanceof JsonEditError)) {throw e;}\n console.error(`faf: ${inPath}: ${e.message} — faf cannot change only its identity keys, so it left the file unchanged.`);\n process.exit(1);\n }\n\n if (options.check) {\n process.stdout.write(next.text);\n return;\n }\n const outPath = resolve(options.out ?? inPath);\n const titleNote = title ?? '(none in project.faf — the file\\'s own kept)';\n if (outPath === inPath) {\n if (next.changed) {safeWriteFile(inReal, next.text, { root: inRoot, expect: text });}\n } else {\n // An --out folder that is not there is one line: faf does not create it.\n refuseMissingOutputFolder(outPath);\n // A file of faf's own: it carries faf's render hash (`_meta[\"one.faf/render\"]`,\n // which the registry schema allows and the registry drops on publish) and\n // is replaced only while it is byte for byte what faf last wrote there.\n writeRendered(outPath, next.text, {\n root: options.out ? dirname(outPath) : process.cwd(),\n format: 'json',\n hasMark: hasRegistryMark,\n mark: 'faf identity (`_meta` publisher-provided `one.faf/context`)',\n force: options.force,\n });\n }\n console.error(\n `${fafCyan('✓')} ${outPath} — name=${name} title=${titleNote} ${dim(\n next.changed || outPath !== inPath ? '(identity emitted from faf-cli)' : '(unchanged)',\n )}`,\n );\n}\n",
|
|
221
|
-
"import { existsSync } from 'fs';\nimport { basename, dirname, join } from 'path';\nimport { deprecate } from 'node:util';\nimport { parse } from 'yaml';\nimport type { FafData } from '../core/types.js';\nimport { makeDirInside, readUtf8, resolveInside } from '../core/safe-write.js';\nimport { writeRendered, type RenderedResult } from '../core/render-hash.js';\nimport { editJsonText, upsertJsonRows } from '../core/json-edit.js';\nimport {\n a2aDoors,\n ardHints,\n catalogHost,\n catalogRows,\n fafaContextExtension,\n hasRegistryEntry,\n mcpRemotes,\n projectA2ACard,\n projectServerCard,\n registryIdentity,\n type CatalogHost,\n type FafaDoc,\n type ProjectedA2A,\n} from './pack.js';\nimport {\n fafContextBlock,\n buildServerCard,\n hasRegistryMark,\n hasServerCardMark,\n registryMeta,\n registryName,\n registryTitle,\n type ServerCardOptions,\n} from './servercard.js';\nimport { A2A_CONTEXT_URI } from './context-block.js';\n\nexport { A2A_CONTEXT_URI } from './context-block.js';\n// The .fafa types, the A2A card core and its helpers live in pack.ts (pure, no\n// Node built-ins) so the CLI and a browser front door share one projector.\nexport {\n A2A_PROTOCOL_BINDING,\n A2A_PROTOCOL_VERSION,\n FAF_MEDIA_TYPES,\n a2aEndpoints,\n a2aDoors,\n} from './pack.js';\nexport type { FafaAgent, FafaCapability, FafaEndpoint, FafaDoc, ProjectedA2A } from './pack.js';\n\nexport type CardTarget = 'a2a' | 'mcp' | 'registry' | 'catalog' | 'ard';\nexport const CARD_TARGETS: CardTarget[] = ['a2a', 'mcp', 'registry', 'catalog', 'ard'];\n\nexport interface ProjectCardsOptions extends ServerCardOptions {\n /** Public URL of the emitted A2A card (catalog row). */\n a2aCardUrl?: string;\n /** Caller-supplied A2A door when `.fafa` has no `endpoints[].protocol: a2a`. */\n doorUrl?: string;\n}\n\nexport interface CatalogEntry {\n identifier: string;\n displayName?: string;\n type: string;\n description?: string;\n url: string;\n updatedAt?: string;\n /** ARD's search hints — on the ARD manifest's rows only. */\n tags?: string[];\n representativeQueries?: string[];\n}\n\nexport interface AiCatalog {\n specVersion: string;\n host?: Record<string, unknown>;\n entries: CatalogEntry[];\n [key: string]: unknown;\n}\n\nexport interface ProjectedCards {\n /** faf's context block — only when a project.faf was given (BEST). */\n block?: Record<string, unknown>;\n a2a?: ProjectedA2A;\n mcp?: Record<string, unknown>;\n registry?: {\n name: string;\n title?: string;\n /** FAF's context block (BEST); absent from a plain registry identity (BETTER). */\n _meta?: Record<string, unknown>;\n };\n catalog?: CatalogEntry[];\n /** The same rows, carrying ARD's search hints — the ARD manifest. */\n ard?: CatalogEntry[];\n /** Who publishes the catalog — written only into a catalog that names\n * nobody yet. An existing `host` is the site's, and is never touched. */\n catalogHost?: CatalogHost;\n}\n\nexport function readFafa(path: string): FafaDoc {\n // A .fafa that links out of its folder is refused (SafePathError), never read:\n // a hostile repo's agent.fafa -> ~/.aws/credentials would otherwise be parsed\n // and quoted in an error. A link to a same-name file inside the folder is fine.\n return parse(readUtf8(resolveInside(dirname(path), basename(path)))) as FafaDoc;\n}\n\n/** Discover agent.fafa / .fafa (cwd, then one parent). */\nexport function findFafaFile(dir: string = process.cwd()): string | null {\n const candidates = ['agent.fafa', '.fafa'];\n for (const name of candidates) {\n const full = join(dir, name);\n if (existsSync(full)) {return full;}\n }\n const parent = dirname(dir);\n if (parent !== dir) {\n for (const name of candidates) {\n const full = join(parent, name);\n if (existsSync(full)) {return full;}\n }\n }\n return null;\n}\n\n/** Build the A2A Agent Card (JSON) from a .fafa: the core card\n * ({@link projectA2ACard}). With a project.faf (BEST) it carries FAF's\n * context extension; with none (BETTER) it is the plain A2A card — the\n * .fafa is its source, and nothing on it points at a project.faf. */\nexport function buildA2ACard(\n fafa: FafaDoc,\n faf?: FafData,\n opts: ProjectCardsOptions = {},\n): ProjectedA2A {\n // Checked before the extension is built, so a card with no door fails the\n // same way it always has, before anything reads the .faf.\n if (a2aDoors(fafa, opts).length === 0) {\n throw new Error(\n \"No A2A endpoint in .fafa (need endpoints[].protocol: a2a + location). Will not invent a door.\",\n );\n }\n return projectA2ACard(fafa, {\n doorUrl: opts.doorUrl,\n extensions: faf ? [fafaContextExtension(fafa, faf, opts)] : [],\n });\n}\n\n/** @deprecated Use {@link buildA2ACard}. Removed in the next major. */\nexport const generateA2ACard = deprecate(\n buildA2ACard,\n 'faf-cli: generateA2ACard is deprecated, use buildA2ACard',\n 'FAF0003',\n);\n\n/**\n * The catalog rows for this agent — the pack projector's own\n * ({@link catalogRows}), so `faf cards` and the pack list the same rows: the\n * A2A card (when the `.fafa` names an A2A door), the Server Card (when it names\n * a remote MCP URL) and the `.fafa` itself, keyed\n * `urn:air:{publisher}:{namespace}:{name}`, where the publisher is the domain\n * the `.fafa` *declares* (`agent.id`'s urn:air, `metadata.cards.domain`, else\n * the homepage host) and the name is the handle.\n *\n * Throws, rather than inventing either half, when the `.fafa` names no domain:\n * an identifier is a catalog's primary key, and `urn:air:local:…` published to\n * the world is worse than a refusal a line of YAML fixes.\n */\nexport function catalogEntriesFor(\n fafa: FafaDoc,\n faf: FafData = {},\n opts: ProjectCardsOptions = {},\n): CatalogEntry[] {\n return catalogRows(fafa, ['a2a', 'server_card'], {\n now: opts.now ?? (faf.generated as string | undefined) ?? new Date().toISOString(),\n a2aCardUrl: opts.a2aCardUrl,\n doorUrl: opts.doorUrl,\n });\n}\n\n/** The row in `entries` that is faf's own row `row`: the one whose\n * identifier is exactly faf's (`urn:air:<host>:a2a:<slug>` or\n * `urn:air:<host>:agent:<slug>`). Never matched by type or URL — a row of\n * yours for another agent, or another card of the same type, is not faf's. */\nfunction catalogMatchIndex(entries: CatalogEntry[], row: CatalogEntry): number {\n return entries.findIndex((e) => e.identifier === row.identifier);\n}\n\n/** Upsert projector entries into an existing catalog. Leaves every other row\n * alone: a row is faf's only when its identifier is exactly faf's (never by\n * type or URL). On match, only url / type / updatedAt move — host copy\n * (title, tags) stays; any other faf row is appended. `host` names the\n * publisher on a catalog that names none — an existing one is the site's own\n * and stays as it is. */\nexport function upsertCatalog(\n existing: AiCatalog | undefined,\n incoming: CatalogEntry[],\n host?: CatalogHost,\n): AiCatalog {\n const opened: AiCatalog = existing\n ? { ...existing, entries: [...(existing.entries ?? [])] }\n : { specVersion: '1.0', entries: [] };\n // A host the catalog already names is the site's own — never overwritten.\n // A missing one is added where the spec shows it: straight after specVersion.\n const base: AiCatalog =\n host && opened.host === undefined\n ? (({ specVersion, ...rest }) => ({ specVersion, host: { ...host }, ...rest }))(opened)\n : opened;\n for (const row of incoming) {\n const i = catalogMatchIndex(base.entries, row);\n if (i >= 0) {\n base.entries[i] = {\n ...base.entries[i],\n url: row.url,\n type: row.type,\n ...(row.updatedAt ? { updatedAt: row.updatedAt } : {}),\n };\n } else {\n base.entries.push(row);\n }\n }\n return base;\n}\n\n/** The keys of a catalog row faf updates in place (its own row only). */\nconst CATALOG_ROW_UPDATES = ['url', 'type', 'updatedAt'] as const;\n\n/**\n * {@link upsertCatalog} as a text edit of the catalog's JSON: faf's own rows\n * (identifier exactly faf's) get their url / type / updatedAt values changed\n * in place, faf's other rows are appended after the last entry, and every\n * other byte — your rows, their order and layout, other keys — stays. With no\n * text (no catalog yet) a new catalog is returned. `host` names the publisher\n * (AI Catalog Level 2 \"discoverable\") and is added, after `specVersion`, only\n * to a catalog that names none: a `host` already in the file is the site's own\n * and is left byte for byte. Throws a JsonEditError, changing nothing, when\n * the catalog cannot be edited that way (not a JSON object, `entries` not an\n * array, faf's row there twice, …).\n */\nexport function upsertCatalogText(\n text: string | null,\n incoming: CatalogEntry[],\n host?: CatalogHost,\n): { text: string; changed: boolean } {\n if (text === null) {\n const fresh = { specVersion: '1.0', ...(host ? { host } : {}), entries: incoming };\n return { text: `${JSON.stringify(fresh, null, 2)}\\n`, changed: true };\n }\n const rows = upsertJsonRows(text, 'entries', incoming as unknown as Record<string, unknown>[], {\n id: 'identifier',\n update: CATALOG_ROW_UPDATES,\n });\n if (!host || namesHost(rows.text)) {return rows;}\n const named = editJsonText(rows.text, { host }, { '': { host: ['specVersion'] } });\n return { text: named.text, changed: rows.changed || named.changed };\n}\n\n/** True when the catalog JSON already names a `host` — any value, including\n * null or one the spec would refuse. Whatever is there is the site's. */\nfunction namesHost(text: string): boolean {\n try {\n const doc = JSON.parse(text) as Record<string, unknown>;\n return Object.prototype.hasOwnProperty.call(doc, 'host');\n } catch {\n return true; // Unparseable: add nothing.\n }\n}\n\n/** The cards an agent.fafa gives with no project.faf (BETTER): the A2A card\n * (when it names an A2A door), the MCP Server Card (when it names a remote MCP\n * URL), the registry server.json (a remote or a package), the AI Catalog, ARD. */\nexport function betterTargets(fafa: FafaDoc, opts: ProjectCardsOptions = {}): CardTarget[] {\n return [\n ...(a2aDoors(fafa, opts).length > 0 ? ['a2a' as const] : []),\n ...(mcpRemotes(fafa).length > 0 ? ['mcp' as const] : []),\n ...(hasRegistryEntry(fafa) ? ['registry' as const] : []),\n 'catalog',\n 'ard',\n ];\n}\n\n/**\n * Project the cards. The ladder — BETTER is the .fafa, BEST is project.faf:\n * an agent.fafa alone gives the plain cards ({@link betterTargets}); a\n * project.faf, resident and used, adds FAF's context block to each (the A2A\n * card's extension, the Server Card's and server.json's `_meta`). A card's\n * identity comes from the .fafa at both rungs. With a project.faf and no MCP\n * endpoint in the .fafa (an MCP server's own repo), the Server Card and the\n * registry identity come from project.faf, as `faf server-card` writes them.\n */\nexport function projectCards(input: {\n /** project.faf — absent means BETTER. */\n faf?: FafData;\n fafa?: FafaDoc;\n targets?: CardTarget[];\n opts?: ProjectCardsOptions;\n}): ProjectedCards {\n const opts = input.opts ?? {};\n const faf = input.faf;\n const fafa = input.fafa;\n const all = faf ? CARD_TARGETS : fafa ? betterTargets(fafa, opts) : [];\n const wanted = new Set(input.targets?.length ? input.targets : all);\n const out: ProjectedCards = {};\n if (faf) {out.block = fafContextBlock(faf, opts);}\n\n if (wanted.has('mcp')) {\n if (fafa && mcpRemotes(fafa).length > 0) {\n out.mcp = projectServerCard(fafa, faf, opts);\n } else if (faf) {\n out.mcp = buildServerCard(faf, opts);\n } else {\n throw new Error('A Server Card needs an MCP endpoint at an http(s) URL in the .fafa, or a project.faf.');\n }\n }\n if (wanted.has('registry')) {\n if (fafa && hasRegistryEntry(fafa)) {\n out.registry = { ...registryIdentity(fafa), ...(faf ? { _meta: registryMeta(faf, opts) } : {}) };\n } else if (faf) {\n const title = registryTitle(faf);\n out.registry = {\n name: registryName(faf),\n ...(title ? { title } : {}),\n _meta: registryMeta(faf, opts),\n };\n } else {\n throw new Error('A registry entry needs a package or a remote MCP URL in the .fafa, or a project.faf.');\n }\n }\n\n if (wanted.has('a2a') || wanted.has('catalog') || wanted.has('ard')) {\n if (!input.fafa) {\n if (input.targets?.some((t) => t === 'a2a' || t === 'catalog' || t === 'ard')) {\n throw new Error('A2A/catalog/ARD require a .fafa (agent.fafa). Will not invent an agent.');\n }\n }\n }\n\n if (wanted.has('a2a') && input.fafa) {\n if (a2aDoors(input.fafa, opts).length === 0) {\n if (input.targets?.includes('a2a')) {\n throw new Error(\n \"No A2A endpoint in .fafa (need endpoints[].protocol: a2a + location). Will not invent a door.\",\n );\n }\n } else {\n out.a2a = buildA2ACard(input.fafa, faf, opts);\n }\n }\n\n if ((wanted.has('catalog') || wanted.has('ard')) && input.fafa) {\n const rows = catalogEntriesFor(input.fafa, faf, opts);\n if (wanted.has('catalog')) {out.catalog = rows;}\n if (wanted.has('ard')) {\n // ARD builds on ai-catalog: the same rows, carrying the hints its\n // semantic index is built from.\n const hints = ardHints(input.fafa);\n out.ard = rows.map((r) => ({ ...r, ...hints }));\n }\n const host = catalogHost(input.fafa);\n if (host) {out.catalogHost = host;}\n }\n\n assertSameBlock(out);\n return out;\n}\n\n/**\n * Same underlying context on every emitted door. MCP and registry carry\n * {@link fafContextBlock} byte-identically. A2A's extension params are a\n * deliberate, richer superset (agentId, passport, mediaTypes — see\n * {@link fafaExtensionParams}), so the check there is narrower: its nested\n * `provenance.faf` / `provenance.mediaType` must match the same block's\n * `faf` / `mediaType` — the same pointer, not a byte-identical payload.\n */\nexport function assertSameBlock(cards: ProjectedCards): void {\n // BETTER: no project.faf, so no block on any card.\n if (!cards.block) {return;}\n const want = JSON.stringify(cards.block);\n const got: string[] = [];\n if (cards.mcp) {\n const meta = cards.mcp._meta as { 'one.faf/context': unknown };\n got.push(JSON.stringify(meta['one.faf/context']));\n }\n if (cards.registry?._meta) {\n const pp = cards.registry._meta['io.modelcontextprotocol.registry/publisher-provided'] as {\n 'one.faf/context': unknown;\n };\n got.push(JSON.stringify(pp['one.faf/context']));\n }\n for (const g of got) {\n if (g !== want) {\n throw new Error('context block drifted across card targets — one projector, one block');\n }\n }\n if (cards.a2a) {\n const ext = cards.a2a.capabilities.extensions?.find((e) => e.uri === A2A_CONTEXT_URI);\n if (!ext) {throw new Error('A2A card has no FAF context extension, but a project.faf was given');}\n const params = ext.params as {\n provenance?: { faf?: unknown; mediaType?: unknown };\n };\n const block = cards.block as { faf?: unknown; mediaType?: unknown };\n if (\n params.provenance?.faf !== block.faf ||\n params.provenance?.mediaType !== block.mediaType\n ) {\n throw new Error('A2A extension provenance drifted from the context block — one context, every door');\n }\n }\n}\n\n/** True when `bytes` are an A2A Agent Card faf wrote: JSON whose\n * `capabilities.extensions` carry the FAF context extension\n * ({@link A2A_CONTEXT_URI}), as every card faf has written does. */\nexport function hasA2ACardMark(bytes: Uint8Array): boolean {\n let j: unknown;\n try {\n j = JSON.parse(new TextDecoder().decode(bytes).replace(/^\\uFEFF/, ''));\n } catch {\n return false;\n }\n const caps = typeof j === 'object' && j !== null ? (j as { capabilities?: { extensions?: unknown } }).capabilities : undefined;\n const exts = caps?.extensions;\n return Array.isArray(exts) && exts.some(e => typeof e === 'object' && e !== null && (e as { uri?: unknown }).uri === A2A_CONTEXT_URI);\n}\n\n/** True when `bytes` carry any of faf's card marks: the MCP Server Card's\n * `_meta[\"one.faf/context\"]`, a registry server.json's publisher-provided\n * `one.faf/context`, or the A2A card's FAF context extension. */\nexport function hasFafCardMark(bytes: Uint8Array): boolean {\n return hasServerCardMark(bytes) || hasRegistryMark(bytes) || hasA2ACardMark(bytes);\n}\n\n/** Options for {@link writeJson}. */\nexport interface WriteJsonOptions {\n /** True when the bytes already at the path carry faf's older mark (a file\n * faf wrote before render hashes). Default: one of faf's card marks\n * ({@link hasFafCardMark}). */\n owns?: (existing: Buffer) => boolean;\n /** faf's mark in words, for the refusal. */\n mark?: string;\n /** Replace a file faf cannot prove it wrote anyway — the explicit overwrite (`--force`). */\n force?: boolean;\n}\n\n/** Write `value` as JSON (2-space, final newline) with faf's render hash at\n * `_meta[\"one.faf/render\"]` — atomically, and never through a link that\n * leaves `root` (default: the file's own folder) or dangles. The folder is\n * created when missing, never through a link that leaves `root`. A file\n * already there is replaced only when it is byte for byte what faf last wrote\n * (its render hash still fits); a file edited since, one without faf's mark,\n * or one from before 7.13 that is not exactly this JSON is refused\n * (SafePathError `not-owned`) and left byte for byte, unless `force`.\n * Returns what it did: `created`, `updated`, or `unchanged` (the file\n * already held exactly these bytes, and nothing was written). */\nexport function writeJson(path: string, value: unknown, root?: string, write: WriteJsonOptions = {}): RenderedResult {\n makeDirInside(root ?? dirname(path), dirname(path));\n return writeRendered(path, `${JSON.stringify(value, null, 2)}\\n`, {\n root: root ?? dirname(path),\n format: 'json',\n hasMark: write.owns ?? hasFafCardMark,\n mark: write.mark ?? 'FAF context-block (a faf card mark)',\n force: write.force,\n }).result;\n}\n\n/** True when `bytes` are JSON laid out exactly as faf writes it (2-space\n * JSON and a final newline), so re-writing it loses nothing: no hand\n * formatting, no repeated key, no number JSON cannot hold exactly. */\nexport function isFafJsonLayout(bytes: Uint8Array): boolean {\n const text = new TextDecoder().decode(bytes);\n try {\n return `${JSON.stringify(JSON.parse(text), null, 2)}\\n` === text;\n } catch {\n return false;\n }\n}\n\nexport function parseTargets(raw?: string): CardTarget[] | undefined {\n if (!raw) {return undefined;}\n const parts = raw.split(',').map((s) => s.trim().toLowerCase()).filter(Boolean);\n const bad = parts.filter((p) => !CARD_TARGETS.includes(p as CardTarget));\n if (bad.length) {\n throw new Error(`unknown card target: ${bad.join(', ')} (use ${CARD_TARGETS.join(',')})`);\n }\n return parts as CardTarget[];\n}\n",
|
|
221
|
+
"import { existsSync } from 'fs';\nimport { basename, dirname, join } from 'path';\nimport { deprecate } from 'node:util';\nimport { parse } from 'yaml';\nimport type { FafData } from '../core/types.js';\nimport { makeDirInside, readUtf8, resolveInside } from '../core/safe-write.js';\nimport { writeRendered, type RenderedResult } from '../core/render-hash.js';\nimport { editJsonText, upsertJsonRows } from '../core/json-edit.js';\nimport {\n a2aDoors,\n ardHints,\n catalogHost,\n catalogRows,\n fafaContextExtension,\n hasRegistryEntry,\n mcpRemotes,\n projectA2ACard,\n projectServerCard,\n registryIdentity,\n type CatalogHost,\n type FafaDoc,\n type ProjectedA2A,\n} from './pack.js';\nimport {\n fafContextBlock,\n buildServerCard,\n hasRegistryMark,\n hasServerCardMark,\n registryMeta,\n registryName,\n registryTitle,\n type ServerCardOptions,\n} from './servercard.js';\nimport { A2A_CONTEXT_URI } from './context-block.js';\n\nexport { A2A_CONTEXT_URI } from './context-block.js';\n// The .fafa types, the A2A card core and its helpers live in pack.ts (pure, no\n// Node built-ins) so the CLI and a browser front door share one projector.\nexport {\n A2A_PROTOCOL_BINDING,\n A2A_PROTOCOL_VERSION,\n FAF_MEDIA_TYPES,\n a2aEndpoints,\n a2aDoors,\n} from './pack.js';\nexport type { FafaAgent, FafaCapability, FafaEndpoint, FafaDoc, ProjectedA2A } from './pack.js';\n\nexport type CardTarget = 'a2a' | 'mcp' | 'registry' | 'catalog' | 'ard';\nexport const CARD_TARGETS: CardTarget[] = ['a2a', 'mcp', 'registry', 'catalog', 'ard'];\n\nexport interface ProjectCardsOptions extends ServerCardOptions {\n /** Public URL of the emitted A2A card (catalog row). */\n a2aCardUrl?: string;\n /** Caller-supplied A2A door when `.fafa` has no `endpoints[].protocol: a2a`. */\n doorUrl?: string;\n}\n\nexport interface CatalogEntry {\n identifier: string;\n displayName?: string;\n type: string;\n description?: string;\n url: string;\n updatedAt?: string;\n /** ARD's search hints — on the ARD manifest's rows only. */\n tags?: string[];\n representativeQueries?: string[];\n}\n\nexport interface AiCatalog {\n specVersion: string;\n host?: Record<string, unknown>;\n entries: CatalogEntry[];\n [key: string]: unknown;\n}\n\nexport interface ProjectedCards {\n /** faf's context block — only when a project.faf was given (BEST). */\n block?: Record<string, unknown>;\n a2a?: ProjectedA2A;\n mcp?: Record<string, unknown>;\n registry?: {\n name: string;\n title?: string;\n /** FAF's context block (BEST); absent from a plain registry identity (BETTER). */\n _meta?: Record<string, unknown>;\n };\n catalog?: CatalogEntry[];\n /** The same rows, carrying ARD's search hints — the ARD manifest. */\n ard?: CatalogEntry[];\n /** Who publishes the catalog — written only into a catalog that names\n * nobody yet. An existing `host` is the site's, and is never touched. */\n catalogHost?: CatalogHost;\n}\n\nexport function readFafa(path: string): FafaDoc {\n // A .fafa that links out of its folder is refused (SafePathError), never read:\n // a hostile repo's agent.fafa -> ~/.aws/credentials would otherwise be parsed\n // and quoted in an error. A link to a same-name file inside the folder is fine.\n return parse(readUtf8(resolveInside(dirname(path), basename(path)))) as FafaDoc;\n}\n\n/** Discover agent.fafa / .fafa (cwd, then one parent). */\nexport function findFafaFile(dir: string = process.cwd()): string | null {\n const candidates = ['agent.fafa', '.fafa'];\n for (const name of candidates) {\n const full = join(dir, name);\n if (existsSync(full)) {return full;}\n }\n const parent = dirname(dir);\n if (parent !== dir) {\n for (const name of candidates) {\n const full = join(parent, name);\n if (existsSync(full)) {return full;}\n }\n }\n return null;\n}\n\n/** Build the A2A Agent Card (JSON) from a .fafa: the core card\n * ({@link projectA2ACard}). With a project.faf (BEST) it carries FAF's\n * context extension; with none (BETTER) it is the plain A2A card — the\n * .fafa is its source, and nothing on it points at a project.faf. */\nexport function buildA2ACard(\n fafa: FafaDoc,\n faf?: FafData,\n opts: ProjectCardsOptions = {},\n): ProjectedA2A {\n // Checked before the extension is built, so a card with no door fails the\n // same way it always has, before anything reads the .faf.\n if (a2aDoors(fafa, opts).length === 0) {\n throw new Error(\n \"No A2A endpoint in .fafa (need endpoints[].protocol: a2a + location). Will not invent a door.\",\n );\n }\n return projectA2ACard(fafa, {\n doorUrl: opts.doorUrl,\n extensions: faf ? [fafaContextExtension(fafa, faf, opts)] : [],\n });\n}\n\n/** @deprecated Use {@link buildA2ACard}. Removed in the next major. */\nexport const generateA2ACard = deprecate(\n buildA2ACard,\n 'faf-cli: generateA2ACard is deprecated, use buildA2ACard',\n 'FAF0003',\n);\n\n/**\n * The catalog rows for this agent — the pack projector's own\n * ({@link catalogRows}), so `faf cards` and the pack list the same rows: the\n * A2A card (when the `.fafa` names an A2A door), the Server Card (when it names\n * a remote MCP URL) and the `.fafa` itself, keyed\n * `urn:air:{publisher}:{namespace}:{name}`, where the publisher is the domain\n * the `.fafa` *declares* (`agent.id`'s urn:air, `metadata.cards.domain`, else\n * the homepage host) and the name is the handle.\n *\n * Throws, rather than inventing either half, when the `.fafa` names no domain:\n * an identifier is a catalog's primary key, and `urn:air:local:…` published to\n * the world is worse than a refusal a line of YAML fixes.\n */\nexport function catalogEntriesFor(\n fafa: FafaDoc,\n faf: FafData = {},\n opts: ProjectCardsOptions = {},\n): CatalogEntry[] {\n return catalogRows(fafa, ['a2a', 'server_card'], {\n now: opts.now ?? (faf.generated as string | undefined) ?? new Date().toISOString(),\n a2aCardUrl: opts.a2aCardUrl,\n doorUrl: opts.doorUrl,\n });\n}\n\n/** The row in `entries` that is faf's own row `row`: the one whose\n * identifier is exactly faf's (`urn:air:<host>:a2a:<slug>` or\n * `urn:air:<host>:agent:<slug>`). Never matched by type or URL — a row of\n * yours for another agent, or another card of the same type, is not faf's. */\nfunction catalogMatchIndex(entries: CatalogEntry[], row: CatalogEntry): number {\n return entries.findIndex((e) => e.identifier === row.identifier);\n}\n\n/** Upsert projector entries into an existing catalog. Leaves every other row\n * alone: a row is faf's only when its identifier is exactly faf's (never by\n * type or URL). On match, only url / type / updatedAt move — host copy\n * (title, tags) stays; any other faf row is appended. `host` names the\n * publisher on a catalog that names none — an existing one is the site's own\n * and stays as it is. */\nexport function upsertCatalog(\n existing: AiCatalog | undefined,\n incoming: CatalogEntry[],\n host?: CatalogHost,\n): AiCatalog {\n const opened: AiCatalog = existing\n ? { ...existing, entries: [...(existing.entries ?? [])] }\n : { specVersion: '1.0', entries: [] };\n // A host the catalog already names is the site's own — never overwritten.\n // A missing one is added where the spec shows it: straight after specVersion.\n const base: AiCatalog =\n host && opened.host === undefined\n ? (({ specVersion, ...rest }) => ({ specVersion, host: { ...host }, ...rest }))(opened)\n : opened;\n for (const row of incoming) {\n const i = catalogMatchIndex(base.entries, row);\n if (i >= 0) {\n base.entries[i] = {\n ...base.entries[i],\n url: row.url,\n type: row.type,\n ...(row.updatedAt ? { updatedAt: row.updatedAt } : {}),\n };\n } else {\n base.entries.push(row);\n }\n }\n return base;\n}\n\n/** The keys of a catalog row faf updates in place (its own row only). */\nconst CATALOG_ROW_UPDATES = ['url', 'type', 'updatedAt'] as const;\n\n/** faf's rows as they will be written over `text`'s: a row whose url and type\n * are unchanged keeps the updatedAt it has (a run that changes nothing writes\n * nothing); a row whose url or type changed is stamped `changedAt`, so a\n * reader that refreshes on updatedAt sees the change. New rows keep their own.\n * `text` that is not JSON is left to upsertJsonRows, which reports it. */\nfunction restamp(text: string, incoming: CatalogEntry[], changedAt: string): CatalogEntry[] {\n let existing: CatalogEntry[] = [];\n try {\n const entries = (JSON.parse(text.replace(/^\\uFEFF/, '')) as { entries?: unknown }).entries;\n existing = Array.isArray(entries) ? (entries as CatalogEntry[]) : [];\n } catch {\n return incoming;\n }\n return incoming.map((row) => {\n const old = existing.find((e) => e && typeof e === 'object' && e.identifier === row.identifier);\n if (!old) {return row;}\n const same = old.url === row.url && old.type === row.type;\n return { ...row, updatedAt: same ? (old.updatedAt ?? row.updatedAt) : changedAt };\n });\n}\n\n/**\n * {@link upsertCatalog} as a text edit of the catalog's JSON: faf's own rows\n * (identifier exactly faf's) get their url / type / updatedAt values changed\n * in place, faf's other rows are appended after the last entry, and every\n * other byte — your rows, their order and layout, other keys — stays. With no\n * text (no catalog yet) a new catalog is returned. `host` names the publisher\n * (AI Catalog Level 2 \"discoverable\") and is added, after `specVersion`, only\n * to a catalog that names none: a `host` already in the file is the site's own\n * and is left byte for byte. Throws a JsonEditError, changing nothing, when\n * the catalog cannot be edited that way (not a JSON object, `entries` not an\n * array, faf's row there twice, …).\n */\nexport function upsertCatalogText(\n text: string | null,\n incoming: CatalogEntry[],\n host?: CatalogHost,\n changedAt: string = new Date().toISOString(),\n): { text: string; changed: boolean } {\n if (text === null) {\n const fresh = { specVersion: '1.0', ...(host ? { host } : {}), entries: incoming };\n return { text: `${JSON.stringify(fresh, null, 2)}\\n`, changed: true };\n }\n const rows = upsertJsonRows(text, 'entries', restamp(text, incoming, changedAt) as unknown as Record<string, unknown>[], {\n id: 'identifier',\n update: CATALOG_ROW_UPDATES,\n });\n if (!host || namesHost(rows.text)) {return rows;}\n const named = editJsonText(rows.text, { host }, { '': { host: ['specVersion'] } });\n return { text: named.text, changed: rows.changed || named.changed };\n}\n\n/** True when the catalog JSON already names a `host` — any value, including\n * null or one the spec would refuse. Whatever is there is the site's. */\nfunction namesHost(text: string): boolean {\n try {\n const doc = JSON.parse(text) as Record<string, unknown>;\n return Object.prototype.hasOwnProperty.call(doc, 'host');\n } catch {\n return true; // Unparseable: add nothing.\n }\n}\n\n/** The cards an agent.fafa gives with no project.faf (BETTER): the A2A card\n * (when it names an A2A door), the MCP Server Card (when it names a remote MCP\n * URL), the registry server.json (a remote or a package), the AI Catalog, ARD. */\nexport function betterTargets(fafa: FafaDoc, opts: ProjectCardsOptions = {}): CardTarget[] {\n return [\n ...(a2aDoors(fafa, opts).length > 0 ? ['a2a' as const] : []),\n ...(mcpRemotes(fafa).length > 0 ? ['mcp' as const] : []),\n ...(hasRegistryEntry(fafa) ? ['registry' as const] : []),\n 'catalog',\n 'ard',\n ];\n}\n\n/**\n * Project the cards. The ladder — BETTER is the .fafa, BEST is project.faf:\n * an agent.fafa alone gives the plain cards ({@link betterTargets}); a\n * project.faf, resident and used, adds FAF's context block to each (the A2A\n * card's extension, the Server Card's and server.json's `_meta`). A card's\n * identity comes from the .fafa at both rungs. With a project.faf and no MCP\n * endpoint in the .fafa (an MCP server's own repo), the Server Card and the\n * registry identity come from project.faf, as `faf server-card` writes them.\n */\nexport function projectCards(input: {\n /** project.faf — absent means BETTER. */\n faf?: FafData;\n fafa?: FafaDoc;\n targets?: CardTarget[];\n opts?: ProjectCardsOptions;\n}): ProjectedCards {\n const opts = input.opts ?? {};\n const faf = input.faf;\n const fafa = input.fafa;\n const all = faf ? CARD_TARGETS : fafa ? betterTargets(fafa, opts) : [];\n const wanted = new Set(input.targets?.length ? input.targets : all);\n const out: ProjectedCards = {};\n if (faf) {out.block = fafContextBlock(faf, opts);}\n\n if (wanted.has('mcp')) {\n if (fafa && mcpRemotes(fafa).length > 0) {\n out.mcp = projectServerCard(fafa, faf, opts);\n } else if (faf) {\n out.mcp = buildServerCard(faf, opts);\n } else {\n throw new Error('A Server Card needs an MCP endpoint at an http(s) URL in the .fafa, or a project.faf.');\n }\n }\n if (wanted.has('registry')) {\n if (fafa && hasRegistryEntry(fafa)) {\n out.registry = { ...registryIdentity(fafa), ...(faf ? { _meta: registryMeta(faf, opts) } : {}) };\n } else if (faf) {\n const title = registryTitle(faf);\n out.registry = {\n name: registryName(faf),\n ...(title ? { title } : {}),\n _meta: registryMeta(faf, opts),\n };\n } else {\n throw new Error('A registry entry needs a package or a remote MCP URL in the .fafa, or a project.faf.');\n }\n }\n\n if (wanted.has('a2a') || wanted.has('catalog') || wanted.has('ard')) {\n if (!input.fafa) {\n if (input.targets?.some((t) => t === 'a2a' || t === 'catalog' || t === 'ard')) {\n throw new Error('A2A/catalog/ARD require a .fafa (agent.fafa). Will not invent an agent.');\n }\n }\n }\n\n if (wanted.has('a2a') && input.fafa) {\n if (a2aDoors(input.fafa, opts).length === 0) {\n if (input.targets?.includes('a2a')) {\n throw new Error(\n \"No A2A endpoint in .fafa (need endpoints[].protocol: a2a + location). Will not invent a door.\",\n );\n }\n } else {\n out.a2a = buildA2ACard(input.fafa, faf, opts);\n }\n }\n\n if ((wanted.has('catalog') || wanted.has('ard')) && input.fafa) {\n const rows = catalogEntriesFor(input.fafa, faf, opts);\n if (wanted.has('catalog')) {out.catalog = rows;}\n if (wanted.has('ard')) {\n // ARD builds on ai-catalog: the same rows, carrying the hints its\n // semantic index is built from.\n const hints = ardHints(input.fafa);\n out.ard = rows.map((r) => ({ ...r, ...hints }));\n }\n const host = catalogHost(input.fafa);\n if (host) {out.catalogHost = host;}\n }\n\n assertSameBlock(out);\n return out;\n}\n\n/**\n * Same underlying context on every emitted door. MCP and registry carry\n * {@link fafContextBlock} byte-identically. A2A's extension params are a\n * deliberate, richer superset (agentId, passport, mediaTypes — see\n * {@link fafaExtensionParams}), so the check there is narrower: its nested\n * `provenance.faf` / `provenance.mediaType` must match the same block's\n * `faf` / `mediaType` — the same pointer, not a byte-identical payload.\n */\nexport function assertSameBlock(cards: ProjectedCards): void {\n // BETTER: no project.faf, so no block on any card.\n if (!cards.block) {return;}\n const want = JSON.stringify(cards.block);\n const got: string[] = [];\n if (cards.mcp) {\n const meta = cards.mcp._meta as { 'one.faf/context': unknown };\n got.push(JSON.stringify(meta['one.faf/context']));\n }\n if (cards.registry?._meta) {\n const pp = cards.registry._meta['io.modelcontextprotocol.registry/publisher-provided'] as {\n 'one.faf/context': unknown;\n };\n got.push(JSON.stringify(pp['one.faf/context']));\n }\n for (const g of got) {\n if (g !== want) {\n throw new Error('context block drifted across card targets — one projector, one block');\n }\n }\n if (cards.a2a) {\n const ext = cards.a2a.capabilities.extensions?.find((e) => e.uri === A2A_CONTEXT_URI);\n if (!ext) {throw new Error('A2A card has no FAF context extension, but a project.faf was given');}\n const params = ext.params as {\n provenance?: { faf?: unknown; mediaType?: unknown };\n };\n const block = cards.block as { faf?: unknown; mediaType?: unknown };\n if (\n params.provenance?.faf !== block.faf ||\n params.provenance?.mediaType !== block.mediaType\n ) {\n throw new Error('A2A extension provenance drifted from the context block — one context, every door');\n }\n }\n}\n\n/** True when `bytes` are an A2A Agent Card faf wrote: JSON whose\n * `capabilities.extensions` carry the FAF context extension\n * ({@link A2A_CONTEXT_URI}), as every card faf has written does. */\nexport function hasA2ACardMark(bytes: Uint8Array): boolean {\n let j: unknown;\n try {\n j = JSON.parse(new TextDecoder().decode(bytes).replace(/^\\uFEFF/, ''));\n } catch {\n return false;\n }\n const caps = typeof j === 'object' && j !== null ? (j as { capabilities?: { extensions?: unknown } }).capabilities : undefined;\n const exts = caps?.extensions;\n return Array.isArray(exts) && exts.some(e => typeof e === 'object' && e !== null && (e as { uri?: unknown }).uri === A2A_CONTEXT_URI);\n}\n\n/** True when `bytes` carry any of faf's card marks: the MCP Server Card's\n * `_meta[\"one.faf/context\"]`, a registry server.json's publisher-provided\n * `one.faf/context`, or the A2A card's FAF context extension. */\nexport function hasFafCardMark(bytes: Uint8Array): boolean {\n return hasServerCardMark(bytes) || hasRegistryMark(bytes) || hasA2ACardMark(bytes);\n}\n\n/** Options for {@link writeJson}. */\nexport interface WriteJsonOptions {\n /** True when the bytes already at the path carry faf's older mark (a file\n * faf wrote before render hashes). Default: one of faf's card marks\n * ({@link hasFafCardMark}). */\n owns?: (existing: Buffer) => boolean;\n /** faf's mark in words, for the refusal. */\n mark?: string;\n /** Replace a file faf cannot prove it wrote anyway — the explicit overwrite (`--force`). */\n force?: boolean;\n}\n\n/** Write `value` as JSON (2-space, final newline) with faf's render hash at\n * `_meta[\"one.faf/render\"]` — atomically, and never through a link that\n * leaves `root` (default: the file's own folder) or dangles. The folder is\n * created when missing, never through a link that leaves `root`. A file\n * already there is replaced only when it is byte for byte what faf last wrote\n * (its render hash still fits); a file edited since, one without faf's mark,\n * or one from before 7.13 that is not exactly this JSON is refused\n * (SafePathError `not-owned`) and left byte for byte, unless `force`.\n * Returns what it did: `created`, `updated`, or `unchanged` (the file\n * already held exactly these bytes, and nothing was written). */\nexport function writeJson(path: string, value: unknown, root?: string, write: WriteJsonOptions = {}): RenderedResult {\n makeDirInside(root ?? dirname(path), dirname(path));\n return writeRendered(path, `${JSON.stringify(value, null, 2)}\\n`, {\n root: root ?? dirname(path),\n format: 'json',\n hasMark: write.owns ?? hasFafCardMark,\n mark: write.mark ?? 'FAF context-block (a faf card mark)',\n force: write.force,\n }).result;\n}\n\n/** True when `bytes` are JSON laid out exactly as faf writes it (2-space\n * JSON and a final newline), so re-writing it loses nothing: no hand\n * formatting, no repeated key, no number JSON cannot hold exactly. */\nexport function isFafJsonLayout(bytes: Uint8Array): boolean {\n const text = new TextDecoder().decode(bytes);\n try {\n return `${JSON.stringify(JSON.parse(text), null, 2)}\\n` === text;\n } catch {\n return false;\n }\n}\n\nexport function parseTargets(raw?: string): CardTarget[] | undefined {\n if (!raw) {return undefined;}\n const parts = raw.split(',').map((s) => s.trim().toLowerCase()).filter(Boolean);\n const bad = parts.filter((p) => !CARD_TARGETS.includes(p as CardTarget));\n if (bad.length) {\n throw new Error(`unknown card target: ${bad.join(', ')} (use ${CARD_TARGETS.join(',')})`);\n }\n return parts as CardTarget[];\n}\n",
|
|
222
222
|
"import { existsSync, lstatSync } from 'fs';\nimport { dirname, join, resolve } from 'path';\nimport { findFafFile, readFaf } from '../interop/faf.js';\nimport type { FafData } from '../core/types.js';\nimport {\n A2A_CONTEXT_URI,\n betterTargets,\n findFafaFile,\n hasA2ACardMark,\n parseTargets,\n projectCards,\n readFafa,\n upsertCatalogText,\n writeJson,\n type CardTarget,\n} from '../interop/cards.js';\nimport { REGISTRY_PUBLISHER_KEY, hasServerCardMark, patchServerJson } from '../interop/servercard.js';\nimport { hasRegistryEntry } from '../interop/pack.js';\nimport { SafePathError, makeDirInside, readUtf8, resolveInside, safeWriteFile } from '../core/safe-write.js';\nimport { JsonEditError } from '../core/json-edit.js';\nimport { isOneLineError, oneLine } from '../core/refusal.js';\nimport { dim, fafCyan } from '../ui/colors.js';\n\n/** The `name` an existing server.json carries, or null when it has none (or\n * is not JSON: patchServerJson reports that). */\nfunction publishedName(text: string): string | null {\n try {\n const name = (JSON.parse(text) as { name?: unknown }).name;\n return typeof name === 'string' && name !== '' ? name : null;\n } catch {\n return null;\n }\n}\n\nexport interface CardsCommandOptions {\n target?: string;\n faf?: string;\n fafa?: string;\n check?: boolean;\n dir?: string;\n a2aUrl?: string;\n doorUrl?: string;\n fafPointer?: string;\n /** Replace a card file faf cannot prove it wrote (edited since, or no faf mark). */\n force?: boolean;\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\ntype Json = Record<string, unknown>;\nconst obj = (v: unknown): Json | undefined => (typeof v === 'object' && v !== null && !Array.isArray(v) ? (v as Json) : undefined);\n\n/** The `updatedAt` of the .fafa row faf writes into a catalog or ARD file. */\nfunction fafaRowStamp(j: Json): unknown {\n const rows = Array.isArray(j.entries) ? j.entries.map(obj) : [];\n return rows.find((r) => r?.type === 'application/vnd.fafa+yaml' && /^urn:air:[^:]+:agent:/.test(String(r?.identifier)))?.updatedAt;\n}\n\n/** Where each card file keeps the `generated` stamp of faf's context block. */\nconst STAMPS: Array<{ target: CardTarget; file: string[]; stamp: (j: Json) => unknown }> = [\n // The registry server.json first: `faf server-card --generated` sets its stamp at release time.\n { target: 'registry', file: ['server.json'], stamp: j => obj(obj(obj(j._meta)?.[REGISTRY_PUBLISHER_KEY])?.['one.faf/context'])?.generated },\n { target: 'mcp', file: ['server-card'], stamp: j => obj(obj(j._meta)?.['one.faf/context'])?.generated },\n {\n target: 'a2a',\n file: ['.well-known', 'agent-card.json'],\n stamp: j => {\n const exts = obj(j.capabilities)?.extensions;\n const ext = Array.isArray(exts) ? exts.map(obj).find(e => e?.uri === A2A_CONTEXT_URI) : undefined;\n return obj(ext?.params)?.generated;\n },\n },\n // BETTER has no context block: the catalog and ARD keep the `updatedAt` of\n // faf's own .fafa row, so a run that changes nothing writes nothing.\n { target: 'catalog', file: ['.well-known', 'ai-catalog.json'], stamp: fafaRowStamp },\n { target: 'ard', file: ['.well-known', 'ard.json'], stamp: fafaRowStamp },\n];\n\n/** The `generated` stamp faf's context block already has in a card file this\n * run edits — server.json, then the Server Card, then the A2A card — kept for\n * the whole run, as `faf server-card` keeps it, so a run that changes nothing\n * writes nothing. undefined when none has one. A file faf may not read here\n * (a link out of the project, not UTF-8, not JSON) is skipped; its own write\n * says why. */\nfunction keptStamp(dir: string, targets: CardTarget[] | undefined): string | undefined {\n for (const { target, file, stamp } of STAMPS) {\n const path = join(dir, ...file);\n // Only the files this run projects (no --target: every door, as projectCards reads it).\n if ((targets?.length && !targets.includes(target)) || !present(path)) {continue;}\n try {\n const j = obj(JSON.parse(readUtf8(resolveInside(dir, path)).replace(/^\\uFEFF/, '')));\n const g = j ? stamp(j) : undefined;\n if (typeof g === 'string') {return g;}\n } catch {\n // not read here: the write of this file refuses it in one line\n }\n }\n return undefined;\n}\n\n/**\n * `faf cards` — one projector. .fafa → A2A · MCP · registry · catalog · ARD (BETTER); + project.faf → FAF context on each (BEST).\n * Same fafContextBlock on every door. Does not invent a door or an agent.\n * The block's `generated` stamp is the one the card files already carry\n * (see {@link keptStamp}), else the time of this run; a card that would not\n * change is not written, and is listed as unchanged.\n */\nexport function cardsCommand(options: CardsCommandOptions = {}): void {\n const dir = options.dir ? resolve(options.dir) : process.cwd();\n let targets: CardTarget[] | undefined;\n try {\n targets = parseTargets(options.target);\n } catch (e) {\n console.error(`Error: ${(e as Error).message}`);\n process.exit(2);\n }\n\n const fafaPath = options.fafa ? resolve(options.fafa) : findFafaFile(dir);\n const fafa = fafaPath && existsSync(fafaPath) ? readFafa(fafaPath) : undefined;\n\n // The ladder — BETTER is the .fafa, BEST is project.faf. An agent.fafa alone\n // gives the plain cards its endpoints allow (A2A, MCP Server Card, registry,\n // AI Catalog, ARD); a project.faf, resident and used, adds FAF's context\n // block to each. With no project.faf, nothing points at one.\n const fafPath = options.faf ? resolve(options.faf) : findFafFile(dir);\n const hasFaf = Boolean(fafPath && existsSync(fafPath));\n if (!hasFaf) {\n if (!fafa) {\n console.error(`Error: no agent.fafa or project.faf here\\n\\n Cards start from an agent.fafa: faf card init\\n For project.faf: faf init`);\n process.exit(2);\n }\n const better = betterTargets(fafa, { doorUrl: options.doorUrl });\n // MCP or registry asked for that the .fafa cannot give: a project.faf could.\n if (targets?.some((t) => (t === 'mcp' || t === 'registry') && !better.includes(t))) {\n const alone = `\\n With only an agent.fafa: faf cards --target ${better.join(',')}`;\n console.error(`Error: project.faf not found\\n\\n Run 'faf init' to create one.${alone}`);\n process.exit(2);\n }\n }\n const faf: FafData | undefined = hasFaf ? readFaf(fafPath as string) : undefined;\n\n let projected;\n try {\n projected = projectCards({\n faf,\n fafa,\n targets,\n opts: {\n a2aCardUrl: options.a2aUrl,\n doorUrl: options.doorUrl,\n fafPointer: options.fafPointer,\n // One stamp for the whole run, so every door carries the same block:\n // the one the cards already carry, so a run that changes nothing\n // writes nothing; else now.\n now: keptStamp(dir, targets) ?? new Date().toISOString(),\n },\n });\n } catch (e) {\n console.error(`Error: ${(e as Error).message}`);\n process.exit(2);\n }\n\n if (options.check) {\n process.stdout.write(`${JSON.stringify(projected, null, 2)}\\n`);\n return;\n }\n\n // Each target is written on its own: a refusal for one (a card edited\n // since faf wrote it, say) is printed in one line, the others still run,\n // and the command exits 1 at the end.\n const written: Array<{ out: string; changed: boolean }> = [];\n const force = options.force === true;\n let refused = 0;\n // `own` names what faf changes in a file it shares with you (a JsonEditError\n // says why it cannot change only that). `write` returns whether it wrote.\n const run = (out: string, write: () => boolean, own = 'its own keys'): void => {\n try {\n written.push({ out, changed: write() });\n } catch (e) {\n if (e instanceof JsonEditError) {\n console.error(`faf: ${out}: ${e.message} — faf cannot change only ${own}, so it left the file unchanged.`);\n } else if (isOneLineError(e)) {\n console.error(oneLine(e, true));\n } else {\n throw e;\n }\n refused++;\n }\n };\n if (projected.a2a) {\n const out = join(dir, '.well-known', 'agent-card.json');\n run(out, () => writeJson(out, projected.a2a, dir, { owns: hasA2ACardMark, mark: `faf render hash or FAF context extension (${A2A_CONTEXT_URI})`, force }) !== 'unchanged');\n }\n if (projected.mcp) {\n const out = join(dir, 'server-card');\n run(out, () => writeJson(out, projected.mcp, dir, { owns: hasServerCardMark, mark: 'faf render hash or FAF context-block (`_meta[\"one.faf/context\"]`)', force }) !== 'unchanged');\n }\n if (projected.catalog) {\n // The catalog is shared: faf updates only its own rows (identifier\n // exactly faf's) and appends the rest, as a text edit — every other row\n // and every other byte stays. The one key it may add is `host`, and only\n // to a catalog that names none: the publisher a catalog needs to be\n // discoverable rather than merely minimal. A host already there is the\n // site's own and is never touched.\n const out = join(dir, '.well-known', 'ai-catalog.json');\n const rows = projected.catalog;\n run(out, () => {\n makeDirInside(dir, dirname(out));\n const real = resolveInside(dir, out);\n const text = present(out) ? readUtf8(real) : null;\n const next = upsertCatalogText(text, rows, projected.catalogHost);\n if (next.changed) {safeWriteFile(real, next.text, { root: dir, expect: text });}\n return next.changed;\n }, 'its own rows');\n }\n if (projected.ard) {\n // ARD's own conformance CLI (v0.9.1): \"A consumer MUST fetch\n // /.well-known/ard.json. Consulting the predecessor\n // /.well-known/ai-catalog.json is permitted (MAY) but not required.\"\n // The spec prose still names ai-catalog.json (§4.1, §6.1), so a site\n // serving both is served by writing both — same rows, ARD's carrying the\n // hints its semantic index is built from.\n const out = join(dir, '.well-known', 'ard.json');\n const rows = projected.ard;\n run(out, () => {\n makeDirInside(dir, dirname(out));\n const real = resolveInside(dir, out);\n const text = present(out) ? readUtf8(real) : null;\n const next = upsertCatalogText(text, rows, projected.catalogHost);\n if (next.changed) {safeWriteFile(real, next.text, { root: dir, expect: text });}\n return next.changed;\n }, 'its own rows');\n // A manifest with no representativeQueries is valid and unfindable:\n // registries build their semantic index from that term. The spec asks for\n // 2-5 (ARD v0.9 §Entry). Say so rather than write a card nobody can find.\n if (!rows.some((r) => r.representativeQueries?.length)) {\n console.error(\n `${dim('note')} ${out}: no representativeQueries — registries build their search index from these, so the entries are a valid catalog but will not be found. Add 2-5 to the .fafa as metadata.cards.examples.`,\n );\n }\n }\n if (projected.registry) {\n const inPath = join(dir, 'server.json');\n if (present(inPath)) {\n // Only faf's identity keys change, in place; every other byte stays.\n const registry = projected.registry;\n run(inPath, () => {\n const real = resolveInside(dir, inPath);\n const text = readUtf8(real);\n // A published server.json keeps its name when the identity comes from the\n // .fafa (new in 8.2): a rename moves the next registry publish to another\n // namespace, so it takes --force. A project.faf identity sets the name as\n // `faf server-card` always has.\n const published = publishedName(text);\n const fromFafa = fafa !== undefined && hasRegistryEntry(fafa);\n if (!force && fromFafa && published && published !== registry.name) {\n throw new SafePathError(\n 'not-owned',\n real,\n `${inPath} is published as \"${published}\" and the .fafa gives \"${registry.name}\" — faf left the name as it is, because a rename moves the next registry publish to another namespace. Use --force to rename it.`,\n );\n }\n const next = patchServerJson(text, { name: registry.name, title: registry.title, meta: registry._meta });\n if (next.changed) {safeWriteFile(real, next.text, { root: dir, expect: text });}\n return next.changed;\n }, 'its identity keys');\n } else if (targets?.includes('registry')) {\n console.error(\n `Error: ${inPath} not found.\\n\\n Registry target patches an existing server.json. Seed one first.`,\n );\n process.exit(2);\n }\n }\n\n if (written.length === 0 && refused === 0) {\n console.error(\n `${fafCyan('faf cards')} ${dim('nothing to write — need .fafa for A2A/catalog/ARD; server.json for registry')}`,\n );\n return;\n }\n for (const { out, changed } of written) {\n console.error(`${fafCyan('✓')} ${out}${changed ? '' : ` ${dim('(unchanged)')}`}`);\n }\n if (!hasFaf) {\n console.error(dim('BETTER: cards from your agent.fafa. BEST: add your project.faf (faf init) for FAF context on every card.'));\n }\n if (refused > 0) {process.exit(1);}\n}\n",
|
|
223
223
|
"/**\n * faf card init — write an agent.fafa from the seven answers.\n *\n * Seven answers describe an agent or a server: name, short name, domain, what\n * it does, version, where it runs, what it can do. `answersToFafa` turns them\n * into a valid .fafa; this command asks for them (or takes them as flags) and\n * writes the file `faf cards` projects every card from.\n */\nimport { existsSync, readFileSync } from 'fs';\nimport { join, resolve } from 'path';\nimport { createInterface } from 'readline';\nimport { answersToFafa, fafaYaml, type PackAnswers } from '../interop/pack.js';\nimport { findFafFile } from '../interop/faf.js';\nimport { cardsCommand } from './cards.js';\nimport { betterTargets, readFafa, type CardTarget } from '../interop/cards.js';\nimport { safeWriteFile } from '../core/safe-write.js';\nimport { dim, fafCyan } from '../ui/colors.js';\n\nexport interface CardInitOptions {\n name?: string;\n shortName?: string;\n domain?: string;\n description?: string;\n setVersion?: string;\n url?: string;\n protocol?: string;\n package?: string;\n skill?: string[];\n example?: string[];\n dir?: string;\n out?: string;\n force?: boolean;\n}\n\n/** Ask one question, return the answer (trimmed). Injected in tests. */\nexport type Ask = (question: string) => Promise<string>;\n\nconst PROTOCOLS = ['a2a', 'mcp'];\n\n/** Each card's name, as a person reads it. */\nconst CARD_NAMES: Record<CardTarget, string> = {\n a2a: 'A2A card',\n mcp: 'MCP Server Card',\n registry: 'registry server.json',\n catalog: 'AI Catalog',\n ard: 'ARD',\n};\n\n/** \"Weather Agent\" → \"weather-agent\": the short name a URN can carry. */\nexport function shortNameFrom(name: string): string {\n return name\n .toLowerCase()\n .replace(/[^a-z0-9._-]+/g, '-')\n .replace(/^[^a-z0-9]+/, '')\n .replace(/-+$/, '');\n}\n\n/** \"Get forecast: A three-day forecast\" → { name, description }. */\nexport function parseSkill(raw: string): { name: string; description?: string } {\n const i = raw.indexOf(':');\n if (i < 0) {return { name: raw.trim() };}\n const description = raw.slice(i + 1).trim();\n return { name: raw.slice(0, i).trim(), ...(description ? { description } : {}) };\n}\n\n/** The version in ./package.json, if there is one — a sensible default. */\nfunction packageVersion(dir: string): string | undefined {\n try {\n const v = JSON.parse(readFileSync(join(dir, 'package.json'), 'utf-8')).version;\n return typeof v === 'string' && v.trim() ? v.trim() : undefined;\n } catch {\n return undefined;\n }\n}\n\n/** \"Where it runs\": anything with a scheme is a URL (npm names never carry a\n * `:`), so `javascript:…` is refused as a URL, not kept as a package. */\nfunction whereItRuns(answers: PackAnswers, where: string, protocol: string): void {\n if (where.includes(':')) {\n answers.endpoints = [{ protocol, url: where }];\n } else {\n answers.packages = [{ registryType: 'npm', identifier: where }];\n }\n}\n\n/** A flag's value, trimmed ('' when absent). */\nfunction flag(v: string | undefined): string {\n return (v ?? '').trim();\n}\n\n/** Answers from flags only. Missing ones stay missing; `answersToFafa` names them. */\nexport function answersFromFlags(o: CardInitOptions): PackAnswers {\n const name = flag(o.name);\n const answers: PackAnswers = {\n display_name: name,\n handle: flag(o.shortName) || shortNameFrom(name),\n domain: flag(o.domain),\n description: flag(o.description),\n version: flag(o.setVersion),\n skills: (o.skill ?? []).map(parseSkill).filter((s) => s.name),\n example_requests: (o.example ?? []).map(flag).filter(Boolean),\n };\n if (o.url) {whereItRuns(answers, flag(o.url), flag(o.protocol).toLowerCase() || 'a2a');}\n if (o.package) {answers.packages = [{ registryType: 'npm', identifier: flag(o.package) }];}\n return answers;\n}\n\n/** Ask, offering a default; an empty reply takes it. */\nfunction withDefault(ask: Ask): (q: string, def?: string) => Promise<string> {\n return async (q, def) => (await ask(def ? `${q} ${dim(`(${def})`)}: ` : `${q}: `)).trim() || def || '';\n}\n\n/** Ask for items until an empty reply, or `max`. */\nasync function askList(ask: Ask, first: string, more: string, max: number): Promise<string[]> {\n const items: string[] = [];\n while (items.length < max) {\n const got = (await ask(`${items.length ? more : first}: `)).trim();\n if (!got) {break;}\n items.push(got);\n }\n return items;\n}\n\nasync function askWhere(a: PackAnswers, ask: Ask): Promise<void> {\n const q = withDefault(ask);\n const where = await q('Where it runs — a URL people call, or an npm package');\n if (!where) {return;}\n let protocol = 'a2a';\n if (/^https?:\\/\\//i.test(where)) {\n const said = (await q('Protocol at that URL — a2a or mcp', 'a2a')).toLowerCase();\n protocol = PROTOCOLS.includes(said) ? said : 'a2a';\n }\n whereItRuns(a, where, protocol);\n}\n\nasync function askSkills(ask: Ask): Promise<Array<{ name: string; description?: string }>> {\n const skills: Array<{ name: string; description?: string }> = [];\n for (;;) {\n const [name] = await askList(ask, skills.length ? 'Another thing it can do (Enter to finish)' : 'What it can do — one capability, e.g. Get forecast', '', 1);\n if (!name) {break;}\n const description = (await ask(` ${dim('what it does')}: `)).trim();\n skills.push({ name, ...(description ? { description } : {}) });\n }\n return skills;\n}\n\n/** Fill whatever the flags left empty by asking. */\nexport async function askMissing(answers: PackAnswers, ask: Ask, dir: string): Promise<PackAnswers> {\n const a = { ...answers };\n const q = withDefault(ask);\n a.display_name ||= await q('Name — what people see, e.g. Weather Agent');\n a.handle ||= await q('Short name — lowercase, no spaces', shortNameFrom(a.display_name));\n a.domain ||= await q('Domain — where it is published, e.g. example.com');\n a.description ||= await q('What it does — one sentence');\n a.version ||= await q('Version', packageVersion(dir) ?? '0.1.0');\n if (!a.endpoints?.length && !a.packages?.length) {await askWhere(a, ask);}\n if (!a.skills?.length) {a.skills = await askSkills(ask);}\n if (!a.example_requests?.length) {\n a.example_requests = await askList(ask, 'A question people ask it — search finds it by these (2-5)', 'Another (Enter to finish)', 5);\n }\n return a;\n}\n\n/** Answers → the .fafa text. Throws, naming the answer, when one is missing. */\nexport function fafaFromAnswers(answers: PackAnswers): string {\n if (!answers.skills?.length) {throw new Error('Missing answer: what it can do (at least one capability)');}\n return fafaYaml(answersToFafa(answers));\n}\n\nfunction complete(o: CardInitOptions): boolean {\n return Boolean(o.name && o.domain && o.description && o.setVersion && (o.url || o.package) && o.skill?.length);\n}\n\n/** A person at a terminal (or a test's `ask`), or nobody to ask. */\nfunction asker(ask?: Ask): { ask?: Ask; close: () => void } {\n if (ask) {return { ask, close: () => {} };}\n if (!process.stdin.isTTY) {return { close: () => {} };}\n const rl = createInterface({ input: process.stdin, output: process.stdout });\n return { ask: (q) => new Promise((r) => rl.question(q, r)), close: () => rl.close() };\n}\n\nexport async function cardInitCommand(options: CardInitOptions = {}, ask?: Ask): Promise<void> {\n const dir = resolve(options.dir ?? process.cwd());\n const out = resolve(dir, options.out ?? 'agent.fafa');\n\n if (existsSync(out) && !options.force) {\n console.error(`Error: ${out} already exists — edit it, or use --force to replace it.`);\n process.exit(2);\n }\n\n // Flags first; a person at a terminal is asked for the rest.\n const person = complete(options) ? { close: () => {} } : asker(ask);\n try {\n let answers = answersFromFlags(options);\n if (person.ask) {\n if (!ask) {console.log(`${fafCyan('card init')} ${dim('— seven answers, one agent.fafa')}\\n`);}\n answers = await askMissing(answers, person.ask, dir);\n }\n\n let text: string;\n try {\n text = fafaFromAnswers(answers);\n } catch (e) {\n console.error(`Error: ${(e as Error).message}`);\n process.exit(2);\n }\n\n safeWriteFile(out, text, { root: dir });\n console.log(`${fafCyan('✓')} ${out}`);\n if ((answers.example_requests ?? []).length < 2) {\n console.error(`${dim('note')} add 2-5 questions people ask it (metadata.cards.examples) — search finds it by these.`);\n }\n\n // BETTER: the cards this file gives alone, offered (registry only patches a server.json already there).\n const better = betterTargets(readFafa(out)).filter((t) => t !== 'registry' || existsSync(join(dir, 'server.json')));\n const named = better.map((t) => CARD_NAMES[t]).join(', ');\n if (person.ask) {\n const go = (await person.ask(`Write your ${named} now? ${dim('(Y/n)')} `)).trim().toLowerCase();\n if (go === '' || go.startsWith('y')) {\n cardsCommand({ dir, fafa: out, target: better.join(',') });\n return;\n }\n }\n console.log(dim(` next: faf cards --target ${better.join(',')}`));\n if (!findFafFile(dir)) {\n console.log(dim(' BEST: add your project.faf (faf init) for FAF context on every card.'));\n }\n } finally {\n person.close();\n }\n}\n",
|
|
224
224
|
"import { join } from 'path';\nimport open from 'open';\nimport { findFafFile, readFaf, readFafRaw, withKernel } from '../interop/faf.js';\nimport { writeProjectHtml } from '../interop/projecthtml.js';\nimport { scoreFafYaml } from '../core/scorer.js';\nimport { dim, fafCyan } from '../ui/colors.js';\n\n/**\n * `faf show` — render the current project.faf → project.html and open it.\n *\n * Register-1 \"instant local view\": one verb = render + open. Reuses the\n * EXACT export --html pipeline (single source — no new render logic).\n * Headless/CI never crashes: writes the file, prints the path, exits 0.\n */\n\n/** Open a file in the OS default browser via the canonical `open` package\n * (externalized by the build — never reinvent platform opener logic).\n * Returns false (no throw) when skipped or it fails — graceful by design. */\nfunction openInBrowser(file: string): boolean {\n if (process.env.CI) {return false;} // headless/CI — don't launch a browser\n try {\n void open(file).catch(() => undefined); // best-effort, never throws\n return true;\n } catch {\n return false;\n }\n}\n\nexport interface ShowOptions {\n /** Replace a project.html faf cannot prove it rendered (edited since, or no faf mark). */\n force?: boolean;\n}\n\nexport function showCommand(options: ShowOptions = {}): 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 dir = process.cwd();\n const data = readFaf(fafPath);\n // Real scorer — never a reimplementation. Same pipeline as export --html.\n const result = withKernel(fafPath, () => scoreFafYaml(readFafRaw(fafPath)));\n writeProjectHtml(dir, data, result, fafPath, { force: options.force });\n\n const htmlPath = join(dir, 'project.html');\n const opened = openInBrowser(htmlPath);\n console.log(` project.html`);\n console.log(\n opened\n ? `${fafCyan('opened')} ${dim('in your browser')}`\n : `${fafCyan('rendered')} ${dim(`file://${htmlPath}`)}`,\n );\n}\n",
|
|
@@ -237,7 +237,6 @@
|
|
|
237
237
|
"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",
|
|
238
238
|
"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
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
|
-
"import { existsSync, lstatSync } from 'fs';\nimport { join } from 'path';\nimport { aliasKeptNote, findFafFile, readFaf, writeFaf } from '../interop/faf.js';\nimport { parseClaudeMd } from '../interop/claude.js';\nimport { SafePathError, readUtf8, resolveInside } from '../core/safe-write.js';\nimport { oneLine } from '../core/refusal.js';\nimport { fafCyan, dim, bold } from '../ui/colors.js';\nimport type { FafData } from '../core/types.js';\nimport { FAF_VERSION } from '../core/version.js';\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/** A context file to recover from, read the way faf reads project context:\n * inside the project only (a link must stay in it and end at a .faf/.fafm\n * file, or at another AI context file — CLAUDE.md → AGENTS.md, the rule the\n * writers use; never ~/.aws/credentials behind an AGENTS.md link, never\n * README.md behind a CLAUDE.md link) and strictly as UTF-8 (a cp1252 file is\n * never turned into U+FFFD). null when it is not there, or when it is\n * refused — the refusal is printed as its one line and the file is skipped\n * as a source. */\nfunction readSource(dir: string, name: string, refused: string[]): string | null {\n if (!present(join(dir, name))) {return null;}\n try {\n return readUtf8(resolveInside(dir, name, { read: true }));\n } catch (e) {\n if (!(e instanceof SafePathError)) {throw e;}\n console.error(oneLine(e, false));\n refused.push(name);\n return null;\n }\n}\n\n/** Recover .faf from context files (CLAUDE.md, AGENTS.md, GEMINI.md, .cursorrules) */\nexport function recoverCommand(): void {\n const dir = process.cwd();\n const sources: string[] = [];\n const refused: string[] = [];\n const data: FafData = { faf_version: FAF_VERSION, project: {} };\n\n // Try CLAUDE.md first (richest source)\n const claude = readSource(dir, 'CLAUDE.md', refused);\n if (claude !== null) {\n const parsed = parseClaudeMd(claude);\n if (parsed.project?.name) {data.project!.name = parsed.project.name;}\n if (parsed.project?.goal) {data.project!.goal = parsed.project.goal;}\n if (parsed.project?.main_language) {data.project!.main_language = parsed.project.main_language;}\n sources.push('CLAUDE.md');\n }\n\n // Try AGENTS.md\n const agents = readSource(dir, 'AGENTS.md', refused);\n if (agents !== null) {\n if (!data.project!.name) {\n const m = agents.match(/^#\\s+(.+)/m);\n if (m) {data.project!.name = m[1].trim();}\n }\n sources.push('AGENTS.md');\n }\n\n // Try GEMINI.md\n const gemini = readSource(dir, 'GEMINI.md', refused);\n if (gemini !== null) {\n if (!data.project!.name) {\n const m = gemini.match(/^#\\s+(.+)/m);\n if (m) {data.project!.name = m[1].trim();}\n }\n sources.push('GEMINI.md');\n }\n\n // Try .cursorrules\n const cursorPath = join(dir, '.cursorrules');\n if (existsSync(cursorPath)) {\n sources.push('.cursorrules');\n }\n\n if (sources.length === 0) {\n if (refused.length > 0) {\n console.error(`Nothing to recover from: ${refused.join(', ')} ${refused.length === 1 ? 'was' : 'were'} refused (above), and no other context file is there. Nothing was written.`);\n process.exit(1);\n }\n console.error('No context files found (CLAUDE.md, AGENTS.md, GEMINI.md, .cursorrules).');\n process.exit(2);\n }\n\n // Merge into existing .faf if present, otherwise create new\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('◆')} recover merged into ${existing}`);\n } else {\n const outPath = join(dir, 'project.faf');\n writeFaf(outPath, data);\n console.log(`${fafCyan('◆')} recover created ${outPath}`);\n }\n\n console.log(dim(` sources: ${sources.join(', ')}`));\n}\n",
|
|
241
240
|
"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",
|
|
242
241
|
"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",
|
|
243
242
|
"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",
|
|
@@ -254,9 +253,9 @@
|
|
|
254
253
|
"/**\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",
|
|
255
254
|
"/**\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",
|
|
256
255
|
"/**\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",
|
|
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 { recoverCommand } from './commands/recover.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 — writes faf\\'s block only; Pro also updates Claude Code\\'s MEMORY.md (--direction pull: Trophy-gated backfill into .faf)')\n .option('--watch', 'Watch for changes')\n .option('--direction <dir>', 'auto|push write CLAUDE.md from .faf; pull backfills .faf at ✪ Trophy', 'auto')\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) => hooksRun(options));\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 (--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 URL people call')\n .option('--protocol <protocol>', 'Protocol at --url: a2a or mcp (default: a2a)')\n .option('--package <name>', 'Where it runs: an npm package people install')\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('recover')\n .description('Recover .faf from context files')\n .action(() => recoverCommand());\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('bi-sync', { hidden: true }).action(() => syncCommand());\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"
|
|
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) => hooksRun(options));\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 (--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 URL people call')\n .option('--protocol <protocol>', 'Protocol at --url: a2a or mcp (default: a2a)')\n .option('--package <name>', 'Where it runs: an npm package people install')\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"
|
|
258
257
|
],
|
|
259
|
-
"mappings": "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",
|
|
260
|
-
"debugId": "
|
|
258
|
+
"mappings": "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",
|
|
259
|
+
"debugId": "A17F825B9AE1628D64756E2164756E21",
|
|
261
260
|
"names": []
|
|
262
261
|
}
|