/** * Plan Approval Plugin — Trellis plugin for multi-turn planning with * buffered mutations and user approval. * * Registers the plan approval ontology and provides agent tool definitions * that the harness can register for plan-mode interactions. * * @module trellis/plugins/plan-approval */ import type { PluginDef } from '../../core/plugins/types.js'; import type { ToolHandler } from '../../core/agents/types.js'; import type { PlanManager } from './plan-manager.js'; /** * Create the plan approval plugin instance. */ export declare function createPlanApprovalPlugin(): PluginDef; /** * Context required by plan approval tools. */ export interface PlanToolContext { planManager: PlanManager; } /** * Tool: enterPlanMode * * Agent calls this when it wants to plan a set of operations before * executing them. Subsequent plan* tool calls buffer operations. */ export declare function createEnterPlanModeTool(ctx: PlanToolContext): { def: { name: string; description: string; schema: string; }; handler: ToolHandler; }; /** * Tool: planCreateEntity * * Buffer a createEntity operation in the active plan. */ export declare function createPlanCreateEntityTool(ctx: PlanToolContext): { def: { name: string; description: string; schema: string; }; handler: ToolHandler; }; /** * Tool: planUpdateEntity */ export declare function createPlanUpdateEntityTool(ctx: PlanToolContext): { def: { name: string; description: string; schema: string; }; handler: ToolHandler; }; /** * Tool: planAddLink */ export declare function createPlanAddLinkTool(ctx: PlanToolContext): { def: { name: string; description: string; schema: string; }; handler: ToolHandler; }; /** * Tool: submitPlan * * Submit the active plan for user review. This signals the harness to * pause the agent loop and yield control to the caller. * * The tool result includes `_planPending: true` which the harness * recognizes as a signal to set run status to `plan_pending`. */ export declare function createSubmitPlanTool(ctx: PlanToolContext): { def: { name: string; description: string; schema: string; }; handler: ToolHandler; }; /** * Tool: cancelPlan */ export declare function createCancelPlanTool(ctx: PlanToolContext): { def: { name: string; description: string; schema: string; }; handler: ToolHandler; }; /** * Register all plan approval tools with an AgentHarness. */ export declare function registerPlanTools(harness: { registerTool: (def: { name: string; description: string; schema?: string; }, handler: ToolHandler) => Promise; }, ctx: PlanToolContext): Promise; //# sourceMappingURL=plugin.d.ts.map