/** * Canonical operator roster loader. * * The operator roster is a separate, local-model authority surface from the * built-in subagent registry. It loads operator agent definitions from * `getAgentDir()/agents/*.md`, parses their frontmatter (name, description, * tools, model), and guarantees the canonical operator roles * (investigator, tester, synthesizer) always exist. * * Loading is per-file fault-tolerant: an unreadable file, malformed * frontmatter, a missing or duplicate name, or a non-local model produces a * diagnostic for that file only, and the rest of the roster loads unchanged. * * Every loaded operator agent must resolve to the local Qwen model * (`llamacpp-qwen38-bucephalus/qwen3.8-27b`). In strict mode (the default) a * file declaring a non-local model is rejected with a diagnostic and excluded * from the roster; the rest of the roster loads unchanged. */ export declare const OPERATOR_LOCAL_PROVIDER: "llamacpp-qwen38-bucephalus"; export declare const OPERATOR_LOCAL_MODEL: "qwen3.8-27b"; export declare const OPERATOR_LOCAL_MODEL_REFERENCE: "llamacpp-qwen38-bucephalus/qwen3.8-27b"; /** Operator roles that must always be present in the canonical roster. */ export declare const OPERATOR_ROSTER_NAMES: readonly ["investigator", "tester", "synthesizer"]; export type OperatorRosterAgentSource = "file" | "synthesized"; export interface OperatorRosterAgent { name: string; description: string; tools: string[]; /** Normalized local model reference (always the canonical local Qwen). */ model: string; source: OperatorRosterAgentSource; filePath?: string; } export interface OperatorRosterDiagnostic { code: "OPERATOR_ROSTER_FILE_INVALID" | "OPERATOR_ROSTER_FRONTMATTER_INVALID" | "OPERATOR_ROSTER_NAME_MISSING" | "OPERATOR_ROSTER_NAME_DUPLICATE" | "OPERATOR_ROSTER_MODEL_NON_LOCAL"; message: string; path?: string; } export interface OperatorRoster { agents: OperatorRosterAgent[]; diagnostics: OperatorRosterDiagnostic[]; } export interface LoadOperatorRosterOptions { /** Agent config directory. Default: getAgentDir() */ agentDir?: string; /** * Strict mode (default true): files declaring a non-local model are rejected * and excluded from the roster. When false the file still loads, with a * diagnostic, and keeps its declared model reference verbatim. */ strict?: boolean; } /** Accept the local model as a bare id or the full `provider/model` reference. */ export declare function isLocalOperatorModel(value: string): boolean; export declare function loadOperatorRoster(options?: LoadOperatorRosterOptions): OperatorRoster; //# sourceMappingURL=operator-roster.d.ts.map