/** * The binding shape check: every `$path` binding in a rendered tree resolved * query โ†’ tool โ†’ response shape, walked by pointer, and flowed through its * `$reshape` chain. A binding into fields absent from a KNOWN shape is the * repair contract the screen's bindings-fit check reads (`checking/facts.ts`); * unknown tools and `json` regions stay defensive (the renderer's contained * notice is the runtime backstop). */ import { type ShapeType, type TreeNode } from "@vendoai/core"; import type { TreeQuery } from "./tree.js"; /** v2 spec ยง3 โ€” one per-binding compile error: the repair contract. The * node/prop anchor tells the repair loop WHERE; missing/available tell the * model WHAT to fix. */ export interface BindingShapeError { nodeId: string; /** The top-level prop the binding lives under (bindings may nest inside * arrays/objects within it). */ prop: string; query: string; tool: string; /** The binding's full `$path` (query-name-prefixed JSON Pointer). */ path: string; message: string; missing?: string[]; available?: string[]; } /** * Check every `$path` binding in the emitted nodes against the supplied tool * shapes. Pure and total; returns the per-binding repair list in node/prop * document order. */ export declare const checkBindingShapes: (nodes: readonly TreeNode[], queries: readonly TreeQuery[], toolShapes: Readonly>) => BindingShapeError[]; //# sourceMappingURL=shape-check.d.ts.map