UNPKG

scai

Version:

> **AI-powered CLI for local code analysis, commit message suggestions, and natural-language queries.** > **100% local • No token cost • Private by design • GDPR-friendly** — made in Denmark/EU with ❤️.

48 lines (47 loc) 1.78 kB
export const resolveExecutionModeStep = { name: "resolveExecutionMode", description: "Derive a hard execution mode from the interpreted user intent. " + "This decision is authoritative and must not be changed later.", run: async (context) => { const intent = context.analysis?.intent; if (!intent) { throw new Error("resolveExecutionMode: missing analysis.intent"); } let mode; let rationale = ""; switch (intent.intentCategory) { case "codingTask": case "refactorTask": mode = "transform"; rationale = "User intent implies code modification."; break; case "debugging": case "planning": mode = "analyze"; rationale = "User intent implies investigation or reasoning."; break; case "question": mode = "analyze"; // <-- run analysis for factual/code questions rationale = "User intent requests factual/code analysis."; break; case "explanation": case "writing": mode = "explain"; rationale = "User intent requests text explanation only."; break; default: mode = "explain"; rationale = "Defaulted to explanation due to unclear intent."; } context.executionControl = { mode, rationale, confidence: intent.confidence, constraints: { allowAnalysis: mode !== "explain", allowPlanning: mode === "transform", allowFileWrites: mode === "transform" } }; } };