UNPKG

@sema-agent/core

Version:

Stateless, task-oriented AI agent core

40 lines (39 loc) • 1.64 kB
import { isThinkingLevel } from "../brain/reasoning.js"; import { SCENARIO_REGISTRY } from "./scenario-registry.js"; import { TEACHER_PROFILE } from "./teacher-quickstart.js"; export const DEFAULT_REASONING_INTENSITY = "medium"; function parseMode(raw) { if (raw === undefined || raw === "") return "solo"; if (raw === "solo" || raw === "teacher") return raw; throw new Error(`ORCHESTRATION_MODE="${raw}" is not valid — expected one of: solo, teacher.`); } function parseScenario(raw) { if (raw === undefined || raw === "") return "solo"; if (Object.prototype.hasOwnProperty.call(SCENARIO_REGISTRY, raw)) return raw; throw new Error(`SCENARIO="${raw}" is not a known scenario — expected one of: ${Object.keys(SCENARIO_REGISTRY).join(", ")}.`); } function parseReasoning(raw) { if (raw === undefined || raw === "") return DEFAULT_REASONING_INTENSITY; if (isThinkingLevel(raw)) return raw; throw new Error(`REASONING_INTENSITY="${raw}" is not a valid thinking level — expected one of: ` + `off, minimal, low, medium, high, xhigh, max.`); } export function loadOrchestrationEnv(env = process.env) { const mode = parseMode(env.ORCHESTRATION_MODE); const result = { mode, scenario: parseScenario(env.SCENARIO), reasoning: parseReasoning(env.REASONING_INTENSITY), }; if (mode === "teacher") { result.teacherStudentRole = env.TEACHER_STUDENT_ROLE ?? TEACHER_PROFILE.studentRole; result.teacherAdvisorRole = env.TEACHER_ADVISOR_ROLE ?? TEACHER_PROFILE.advisorRole; } return result; }