dfa-mcp-server
Version:
DFA-based workflow MCP server for guiding LLM task completion
52 lines • 2.1 kB
TypeScript
import { WorkflowDefinition, WorkflowInstance, TransitionResult, WorkflowContext, WorkflowCheckpoint, JudgeDecision } from './types.js';
export declare class WorkflowEngine {
private definitions;
private instances;
private checkpoints;
private workflowDir;
private checkpointDir;
private judgeEngine;
constructor(workflowDir?: string);
initialize(): Promise<void>;
registerWorkflow(definition: WorkflowDefinition): Promise<void>;
listWorkflows(): Array<{
name: string;
description?: string;
}>;
createWorkflow(type: string, initialContext?: WorkflowContext): Promise<WorkflowInstance>;
transition(workflowId: string, action: string, data?: any, expectedTargetState?: string): Promise<TransitionResult>;
getStatus(workflowId: string): Promise<TransitionResult>;
private updateContext;
private calculateProgress;
/**
* Check context size and return truncated version if too large
*/
private getSafeContext;
private saveInstance;
private loadInstances;
private logTransition;
createCheckpoint(workflowId: string, description?: string, metadata?: any): Promise<WorkflowCheckpoint>;
rollbackToCheckpoint(workflowId: string, checkpointId: string): Promise<TransitionResult>;
listCheckpoints(workflowId: string): Promise<WorkflowCheckpoint[]>;
private saveCheckpoint;
private loadCheckpoints;
private saveDefinition;
private loadDefinitions;
/**
* Validate a transition without executing it
*/
validateTransition(workflowId: string, action: string, data?: any, expectedTargetState?: string): Promise<JudgeDecision>;
/**
* Get judge decision history for a workflow
*/
getJudgeHistory(workflowId: string, limit?: number, offset?: number): Promise<{
decisions: JudgeDecision[];
total: number;
hasMore: boolean;
}>;
/**
* Update judge configuration for a workflow
*/
updateJudgeConfig(workflowName: string, judgeConfig: any): Promise<void>;
}
//# sourceMappingURL=workflow-engine.d.ts.map