/** * Relentless — the 6-W human-context extractor. "Never gives up on finding * context" (the v5 RelentlessContextExtractor), rewritten v6-native + sync and * realigned to FAF's no-guess doctrine: it reads EVERY source (manifest + * README, tiered) but FILLS ONLY from sourced evidence. The v5 INFERRED tiers * (guess from project name / tech stack) are deliberately dropped — * sourced-or-empty; `faf go` is where the human confirms. * * Pairs with Turbo-Cat: Turbo-Cat fills STACK slots from file formats; * Relentless fills the 6 HUMAN-CONTEXT slots (who/what/why/where/when/how) by * reading. WHO is the target AUDIENCE (not the package author — a v5 conflation * this rewrite corrects). */ export interface SeededContext { who?: string; what?: string; why?: string; where?: string; when?: string; how?: string; } /** * A sourced 6-W value WITH its provenance — where it came from and how much to * trust it. The honesty gate: a fill the human can audit before confirming. * - `source`: the artifact + locus it was relocated from, e.g. * 'package.json:description' or 'README:## Why'. If we can't name a source, * we don't emit a value — sourced-or-empty, never invented. * - `confidence`: 0..1 by source quality (structured field > named section > * heuristic match). A signal for the seeded/confirm UI, not a score. */ export interface SourcedValue { value: string; source: string; confidence: number; } export interface SeededContextDetailed { who?: SourcedValue; what?: SourcedValue; why?: SourcedValue; where?: SourcedValue; when?: SourcedValue; how?: SourcedValue; } /** * The 6-W extractor WITH provenance — each slot carries {value, source, * confidence}. This is the auditable form: the seeded/confirm UI can show the * human WHERE a value was relocated from before they accept it. */ /** `toolingRoot`: the repo root's package.json is a tooling shell (polyglot repo * — real code is in sibling dirs), so its description/repo/scripts describe the * tooling, not the product. Skip package.json-sourced context; README only. */ export interface RelentlessOpts { toolingRoot?: boolean; } export declare function relentlessContextDetailed(dir: string, opts?: RelentlessOpts): SeededContextDetailed; /** * The bare 6-W extractor — values only, backward-compatible. A pure projection * of `relentlessContextDetailed` (single internal source; identical output to * the pre-provenance version). Existing consumers (claude-faf-mcp's faf_auto) * keep working unchanged; opt into provenance via the Detailed form. */ export declare function relentlessContext(dir: string, opts?: RelentlessOpts): SeededContext;