trellis
Version:
Agentic State Engine — event-sourced causal graph with branching, decision traces, and realtime sync for AI-native applications
110 lines • 2.88 kB
TypeScript
/**
* 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<string>;
}, ctx: PlanToolContext): Promise<string[]>;
//# sourceMappingURL=plugin.d.ts.map