/** * Planner: map a resolved {@link Intent} to an ordered {@link Plan} of tool calls * (the built-in tool names from P1). When resolution failed (no column, nothing to * reverse), it returns an empty, low-confidence plan carrying a human-readable note, * so the pipeline can either escalate to an LLM (hybrid) or explain the miss. * * @see plans/ai-reasoning-layer-spec.md (section 4.6) */ import type { GridContext } from './context.js'; import type { ResolveResult } from './entities.js'; import type { Intent, Plan } from './types.js'; /** Turns a resolved intent into a plan. */ export interface Planner { plan(intent: Intent, resolved: ResolveResult, ctx: GridContext): Plan; } /** Create the default rule-based {@link Planner}. */ export declare function createRulePlanner(): Planner;