scai
Version:
> **AI-powered CLI for local code analysis, commit message suggestions, and natural-language queries.** 100% local, private, GDPR-friendly, made in Denmark/EU with ❤️.
61 lines (60 loc) • 2.76 kB
JavaScript
// src/utils/planActions.ts
export const PLAN_ACTIONS = [
// =====================================================
// INFORMATION ACQUISITION PHASE
// Purpose: gather raw information, no interpretation
// =====================================================
{
action: "fileSearch",
groups: ["info"],
description: "Search the repository for files matching a query, filename, extension, or pattern. " +
"Use when the user references files or concepts not already present in context."
},
// =====================================================
// ROUTING / PLANNING PHASE
// Purpose: decide how execution should proceed
// =====================================================
/* {
action: "routeTask",
groups: ["routing"],
description:
"Decide execution strategy based on semantic intent and scope. " +
"Determines whether to proceed with direct execution, recursive planning, or plan-only output. " +
"Produces executionMode and optional subtask definitions."
}, */
// =====================================================
// TRANSFORM PHASE
// Purpose: produce concrete changes or artifacts
// =====================================================
{
action: "codeTransform",
groups: ["transform"],
description: "Generate concrete code changes according to the execution plan and selected source files. " +
"This produces structured patches or full file rewrites, but does NOT write anything to disk. " +
"It should only be planned when actual code modifications are required, never for analysis purposes. " +
"Must complete successfully before any 'writeFile' steps are executed."
},
{
action: "writeFile",
groups: ["transform"],
description: "Persist file changes to disk. " +
"This action MUST ONLY be planned if codeTransform has already produced output, " +
"and MUST come after codeTransform in the plan."
},
{
action: "cleanup",
groups: ["transform"],
description: "Normalize or post-process generated output into valid, machine-consumable structures. " +
"Used when strict JSON or schema adherence is required."
},
// =====================================================
// FINALIZE PHASE
// Purpose: commit results and respond to the user
// =====================================================
{
action: "finalAnswer",
groups: ["finalize"],
description: "Produce the final user-facing response, explanation, or report. " +
"Summarizes actions taken and results produced."
},
];