/** * Unified orchestration env parsing (design/96 §定.2 L1, S7) — the single TOC entry that resolves * `ORCHESTRATION_MODE` / `SCENARIO` / `REASONING_INTENSITY` / teacher role names into a structured intent. * * Honesty: this layer parses INTENT only. It does NOT pick models — env names a model **role**, and the * deploy side maps roles to concrete models (the existing model-role体系); we never invent a model env * namespace (design/96 第二轮点6). `REASONING_INTENSITY` is validated against the legal {@link ThinkingLevel} * tiers (off..max) — an illegal value throws (don't silently swallow it). * * Three-layer progressive exposure (design/96 §定.2): L0 = no env → the explicit `solo + standard` default * (not a blank); L1 = a single env switches to a preset; L2 = a full config object (not this layer's job). */ import type { ThinkingLevel } from "../internal/harness.js"; import { type ScenarioId } from "./scenario-registry.js"; /** Orchestration mode parsed from `ORCHESTRATION_MODE`. `solo` = the L0 default (no orchestration). */ export type OrchestrationMode = "solo" | "teacher"; /** The L0 default reasoning intensity ("standard" = the conservative role default, mapped to `medium`). */ export declare const DEFAULT_REASONING_INTENSITY: ThinkingLevel; /** Structured result of {@link loadOrchestrationEnv}. */ export interface OrchestrationEnv { /** From `ORCHESTRATION_MODE`. Default `solo` (L0). */ mode: OrchestrationMode; /** From `SCENARIO`. Default `solo` (L0). */ scenario: ScenarioId; /** From `REASONING_INTENSITY` (validated as a {@link ThinkingLevel}). Default {@link DEFAULT_REASONING_INTENSITY}. */ reasoning: ThinkingLevel; /** Teacher student model **role** name (from `TEACHER_STUDENT_ROLE`, else the preset). Set only in teacher mode. */ teacherStudentRole?: string; /** Teacher advisor model **role** name (from `TEACHER_ADVISOR_ROLE`, else the preset). Set only in teacher mode. */ teacherAdvisorRole?: string; } /** * Parse orchestration intent from env. With NO relevant env set, returns the explicit L0 default * (`solo` + `solo` scenario + `standard`/{@link DEFAULT_REASONING_INTENSITY}) — never a blank. A single env * switches a field (L1). An illegal value for any field throws a clear error (we don't silently swallow). * * This resolves only INTENT — it names a model **role** for teacher mode; the deploy side maps roles to * concrete models (core never picks a model here). */ export declare function loadOrchestrationEnv(env?: Record): OrchestrationEnv; //# sourceMappingURL=env.d.ts.map