/** * audit-code free_form_intent interpreter consumer. * * Bridges the audit-tools/shared clause interpreter to the pinned * FreeFormIntentInterpretation seam contract (N-X06). * * INV-S04: the verbatim free_form_intent string MUST NOT appear in any output * field. All fields are derived signals only. */ import type { FreeFormIntentInterpretation, IntentCheckpoint } from "audit-tools/shared"; /** * Interpret a free-form intent string into the versioned seam contract shape. * * Delegates to interpretIntent (clause-aware) from audit-tools/shared and * maps the output onto FreeFormIntentInterpretation. * * @param freeFormIntent - Raw free_form_intent from IntentCheckpoint (may be empty). */ export declare function interpretFreeFormIntentForAudit(freeFormIntent: string): FreeFormIntentInterpretation; /** A blocking checkpoint question that the host has not yet answered. */ export interface UnresolvedConstraintClause { /** * Stable clause identity — the resolution key (CE-004). A `constraint_clauses` * entry resolves this clause when its `clause_id` matches, NOT when its * rendered `checkpoint_question` matches (two distinct clauses can render to * the same question). The host recorder threads this back so the * answer is keyed on identity. */ clause_id: string; /** The original unencodable clause text. */ text: string; /** The blocking question that must be answered before planning proceeds. */ checkpoint_question: string; } /** * Compute the blocking checkpoint questions raised by an intent checkpoint's * `free_form_intent` that the host has NOT yet resolved. * * An unencodable clause is "resolved" only when the checkpoint carries a * `constraint_clauses` entry for it — matched on CLAUSE IDENTITY (`clause_id`), * not the rendered `checkpoint_question` (CE-004: the question is a derived, * non-injective presentation string, so keying on it collapses two distinct * directives that render identically and answering one silently resolves both). * A legacy entry written before clause ids existed (no `clause_id`) still * resolves by `checkpoint_question` so old checkpoints keep working. Until a * clause is resolved it is an unanswered blocking question — returned here so the * orchestrator keeps the `intent_checkpoint_current` obligation unsatisfied * (re-firing `confirm_intent`) rather than silently dropping the directive at * planning time. * * Deterministic — delegates clause decomposition + encodability + identity to the * single shared authority (`interpretFreeFormIntentForAudit` → shared * `interpretIntent`). */ export declare function unresolvedConstraintClauses(checkpoint: IntentCheckpoint | undefined): UnresolvedConstraintClause[]; //# sourceMappingURL=intentInterpreter.d.ts.map