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
JavaScript
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"
}
};
}
};