import type { OrgTask, TaskDag } from './task-dag.js'; import type { OrgDef } from './types.js'; export declare const MAX_LOADOUTS = 15; export declare const TARGET_MIN_LOADOUTS = 5; /** What the boss sees to select by (org_task's description). */ export interface LoadoutSummary { name: string; description?: string; } /** A loadout ready to go into a session's system prompt. Plain data, resolved * once when the session is built, so nothing can change it mid-session. */ export interface ResolvedLoadout { name: string; guidance: string; } /** Errors fail `org validate` and `org run`; warnings are printed only. */ export declare function validateLoadouts(def: Pick, root: string): { errors: string[]; warnings: string[]; }; /** The catalog as the boss's tools present it, or undefined when the org has * none — the signal that keeps every tool byte-identical for such orgs. */ export declare function loadoutCatalog(def: Pick | undefined): LoadoutSummary[] | undefined; /** Build the system-prompt text for a loadout: header, prompt, skills in the * declared order, then the instructions file. Deterministic for a given * config, which is what makes two sessions of the same kind byte-identical. */ export declare function resolveLoadout(def: Pick, name: string, root: string): ResolvedLoadout; /** Why a selection is refused, or null when it is fine (or absent). */ export declare function checkLoadoutSelection(def: Pick, loadout: string | undefined): string | null; /** The loadout a NEW session for `roleId` is built with: that of the role's * first ready task in DAG order. Deterministic, and it is exactly the task * the lazy spawn is happening for when dispatch spawns the role. */ export declare function sessionLoadoutFor(dag: TaskDag | undefined, roleId: string): string | undefined; /** The task reference that opens every dispatch/re-dispatch message. The * loadout rides in the MESSAGE (layer 2), never the prompt, and only when one * was selected — so an org without a catalog sends exactly what it did. */ export declare function taskTag(task: Pick): string; //# sourceMappingURL=loadouts.d.ts.map