faf-cli 7.11.0 → 7.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -8,6 +8,15 @@
8
8
  */
9
9
  /** Build a fresh .faf for `dir` using the full slot-filling pipeline. */
10
10
  export declare function assembleFreshFaf(dir: string): Record<string, unknown>;
11
+ /**
12
+ * Update an EXISTING .faf for `dir`. Existing values win; interrogated → detected
13
+ * → Turbo-Cat (formats) → Relentless (6 W's) fill only the remaining empties.
14
+ * This is exactly the chain `faf auto` runs on an existing file — exported so
15
+ * consumers (faf-mcp's faf_auto) compose it instead of re-deriving it and
16
+ * drifting (they used to merge assembleFreshFaf's slotignore'd output over the
17
+ * existing file, losing interrogated facts such as a docker-compose Redis).
18
+ */
19
+ export declare function updateExistingFaf(dir: string, existing: Record<string, unknown>): Record<string, unknown>;
11
20
  /** Fill empty/placeholder slots in `target` with values from `source`.
12
21
  * `target` wins when its slot is non-empty. Empty here is per `isPlaceholder`
13
22
  * (covers '', null, undefined, and known placeholder strings) — this is what
@@ -0,0 +1,11 @@
1
+ import type { FafData } from '../core/types.js';
2
+ /**
3
+ * Enrich .faf data with facts DETECTED from the repo at export time, so a lean
4
+ * or stale .faf still yields a complete AGENTS.md — the "frictionless, any repo"
5
+ * goal. Fill-if-absent: hand-authored .faf values always WIN; detection only
6
+ * fills the gaps. Pure (returns a shallow copy; never mutates the input).
7
+ *
8
+ * Detects: build/test/lint commands, key files/entry points, and secrets
9
+ * (.env presence — location only, never the values).
10
+ */
11
+ export declare function enrichFromRepo(dir: string, data: FafData): FafData;
package/dist/index.d.ts CHANGED
@@ -7,10 +7,10 @@ export { validateFaf } from './core/schema.js';
7
7
  export { findFafFile, readFaf, readFafRaw } from './interop/faf.js';
8
8
  export { computeDrift } from './core/drift.js';
9
9
  export type { DriftReport, DriftTarget, DriftStatus } from './core/drift.js';
10
- export { generateProjectHtml, writeProjectHtml } from './interop/projecthtml.js';
11
- export { generateServerCard, writeServerCard, fafContextBlock, registryMeta, registryName, REGISTRY_PUBLISHER_KEY, } from './interop/servercard.js';
10
+ export { renderProjectHtml, generateProjectHtml, writeProjectHtml } from './interop/projecthtml.js';
11
+ export { buildServerCard, generateServerCard, writeServerCard, fafContextBlock, registryMeta, registryName, REGISTRY_PUBLISHER_KEY, } from './interop/servercard.js';
12
12
  export type { ServerCardOptions } from './interop/servercard.js';
13
- export { projectCards, readFafa, findFafaFile, generateA2ACard, upsertCatalog, A2A_CONTEXT_URI, } from './interop/cards.js';
13
+ export { projectCards, readFafa, findFafaFile, buildA2ACard, generateA2ACard, upsertCatalog, A2A_CONTEXT_URI, } from './interop/cards.js';
14
14
  export type { FafaDoc, CardTarget, ProjectedCards } from './interop/cards.js';
15
15
  export { Soul as FafmSoul, fromClaudeDir, canonicalPriority, utcNow, PRIORITY_ORDER, PRIORITY_RANK, KNOWLEDGE_TYPES, } from './fafm/index.js';
16
16
  export type { Fact as FafmFact, SoulDoc, Profile as FafmProfile } from './fafm/index.js';
@@ -24,5 +24,14 @@ export { turboCatScan, turboCatSlots } from './detect/turbo-cat.js';
24
24
  export type { TurboCatResult, DiscoveredFormat } from './detect/turbo-cat.js';
25
25
  export { relentlessContext, relentlessContextDetailed } from './detect/relentless.js';
26
26
  export type { SeededContext, SeededContextDetailed, SourcedValue } from './detect/relentless.js';
27
- export { assembleFreshFaf } from './detect/assemble.js';
27
+ export { assembleFreshFaf, updateExistingFaf, fillEmpties } from './detect/assemble.js';
28
+ export { renderAgentsMd, writeAgentsMd } from './interop/agents.js';
29
+ export { renderGeminiMd, writeGeminiMd } from './interop/gemini.js';
30
+ export { renderCursorrules, writeCursorrules } from './interop/cursorrules.js';
31
+ export { renderCopilotInstructions, writeCopilotInstructions } from './interop/copilot-instructions.js';
32
+ export { renderClaudeMd, writeClaudeMd, readClaudeMd, parseClaudeMd, fafMetaTag } from './interop/claude.js';
33
+ export type { FafMetaOpts } from './interop/claude.js';
34
+ export { injectFafBlock, findFafBlock, FAF_START, FAF_END } from './interop/inject.js';
35
+ export { enrichFromRepo } from './detect/enrich.js';
36
+ export { serializeFaf, writeFaf } from './interop/faf.js';
28
37
  export * as kernel from './wasm/kernel.js';