dfa-mcp-server
Version:
DFA-based workflow MCP server for guiding LLM task completion
115 lines • 3.08 kB
TypeScript
export interface WorkflowDefinition {
name: string;
description?: string;
states: Record<string, StateDefinition>;
initialState: string;
contextUpdater?: (context: WorkflowContext, action: string, data?: any) => WorkflowContext;
progressCalculator?: (instance: WorkflowInstance, definition: WorkflowDefinition) => string;
judgeConfig?: JudgeConfig;
stateValidators?: {
[stateName: string]: {
entryConditions?: (context: WorkflowContext) => ValidationResult;
exitConditions?: (context: WorkflowContext) => ValidationResult;
requiredFields?: string[];
};
};
transitionValidators?: {
[action: string]: (data: any, context: WorkflowContext) => ValidationResult;
};
}
export interface TransitionRule {
condition: string;
target: string;
description?: string;
}
export interface StateDefinition {
transitions?: Record<string, TransitionRule[]>;
final?: boolean;
}
export interface WorkflowInstance {
id: string;
definitionName: string;
currentState: string;
context: WorkflowContext;
createdAt: Date;
updatedAt: Date;
}
export interface WorkflowContext {
[key: string]: any;
}
export interface TransitionResult {
state: string;
context: WorkflowContext;
nextActions: string[];
progress?: string;
complete?: boolean;
}
export interface WorkflowCheckpoint {
id: string;
workflowId: string;
timestamp: Date;
state: string;
context: WorkflowContext;
description?: string;
metadata?: {
createdBy?: string;
reason?: string;
[key: string]: any;
};
}
export interface TransitionLog {
timestamp: Date;
fromState: string;
action: string;
toState: string;
data?: any;
judgeDecision?: JudgeDecision;
}
export interface JudgeConfig {
enabled: boolean;
strictMode?: boolean;
minConfidence?: number;
useLLM?: boolean;
validationRules?: ValidationRule[];
customValidator?: (transition: TransitionAttempt) => JudgeDecision;
}
export interface ValidationRule {
name: string;
description: string;
validate: (transition: TransitionAttempt) => ValidationResult;
}
export interface TransitionAttempt {
workflowId: string;
fromState: string;
action: string;
toState: string;
data?: any;
context: WorkflowContext;
definition: WorkflowDefinition;
}
export interface JudgeDecision {
approved: boolean;
confidence: number;
reasoning: string;
violations?: string[];
suggestions?: string[];
metadata?: any;
}
export interface ValidationResult {
valid: boolean;
confidence: number;
reason?: string;
}
export interface ConditionEvaluation {
condition: string;
result: boolean;
confidence: number;
reasoning: string;
extractedValues?: Record<string, any>;
}
export interface ConditionEvaluationResult {
matchedRule: TransitionRule | null;
evaluations: ConditionEvaluation[];
overallReasoning: string;
}
//# sourceMappingURL=types.d.ts.map