andy-stack_vaultkeeper-ai/AIClasses/FunctionDefinitions/Functions/CancelPlan.ts
Andrew Beal ab9ee08281 refactor: implement multi-agent orchestration architecture
Restructure the AI workflow from a single-agent model to a specialized
multi-agent system with distinct roles:

- Add AgentType enum (Main, Orchestration, Planning, Execution) to define
  agent specializations
- Replace AIControllerService and AIFunctionService with modular agent
  classes in Services/AIServices/:
  - MainAgent: Handles user interaction and delegates to orchestration
  - OrchestrationAgent: Coordinates plan execution and step-by-step workflow
  - PlanningAgent: Creates and revises execution plans
  - ExecutionAgent: Executes individual plan steps
  - AIController: Base class providing common agent loop functionality
- Create specialized prompts (OrchestrationPrompt, ExecutionPrompt) for
  agent-specific behavior
- Add OrchestrationResult type to communicate workflow control decisions
  (continue, abort, replan)
- Introduce agent-specific function scoping:
  - ExecuteWorkflow for main agent
  - CompleteTask for execution agent
  - CompleteStep/Replan/CancelPlan for orchestration agent
  - SubmitPlan/AskUserQuestionPlanning for planning agent
- Update BaseAIClass to use agentType property instead of isPlanningAgent
  boolean for model selection
- Simplify ExecutionPlan and ExecutionStep types by removing execution
  state tracking (moved to agent coordination)
- Remove PlanningEnabledAppendix and ExecutionStatus enum (superseded by
  agent architecture)
- Add comprehensive integration tests for agent workflows

This architecture provides better separation of concerns, clearer agent
responsibilities, and more robust plan execution with explicit orchestration
control flow.
2026-01-27 20:29:20 +00:00

29 lines
No EOL
1.1 KiB
TypeScript

import { AIFunction } from "Enums/AIFunction";
import type { IAIFunctionDefinition } from "../IAIFunctionDefinition";
export const CancelPlan: IAIFunctionDefinition = {
name: AIFunction.CancelPlan,
description: `Terminates the current plan execution immediately and returns control to the main conversation loop.
Use this function when plan execution cannot or should not continue.
Call this function when:
- The user has explicitly requested to stop, cancel, or terminate the current operation
- An insurmountable condition prevents continuation (e.g., required files don't exist,
incompatible vault state)
- Persistent errors occur with no viable workaround
- The task has grown beyond the original plan's boundaries (scope creep)
Do NOT use this function:
- When a replan would be more appropriate`,
parameters: {
type: "object",
properties: {
context: {
type: "string",
description: "Explain why cancellation is being chosen, including what went wrong, what conditions prevented continuation, or why the task cannot proceed as planned.",
}
},
required: ["context"]
}
}