/** * Team defaults for autopilot: the `autopilot:` section of the committed * `.aidlc/config.yaml` (init-sets-work-mode/AC-21..AC-23). * * Only the cost cap, the release step, the stops and notifications are team decisions. The agent, its * permissions and how many items build at once belong to the machine that runs * them, so those keys are never read from a committed file — a clone must not be * able to hand an agent full access on somebody else's machine. * * @module */ import type { AutopilotConfig } from './state.js'; import { type PausePhase, type StopAt } from './stops.js'; /** * Preset names, never a command: a name resolved against `releasePresets` can only * select a command the code already offers (init-sets-work-mode/AC-18). */ export declare const TEAM_RELEASE_IDS: readonly ["repo-script", "merge-only"]; export type TeamReleaseId = (typeof TEAM_RELEASE_IDS)[number]; export interface TeamDefaults { /** null = no cap. */ cost_cap_usd?: number | null; /** null = no cap; a positive whole number of tokens (cost-in-tokens/AC-11). */ cost_cap_tokens?: number | null; release?: TeamReleaseId; stop_at?: StopAt; pause_after?: PausePhase[]; notify?: boolean; } /** * The validated `autopilot:` section of `/.aidlc/config.yaml`. Never * throws; a missing or unreadable file is no defaults. * * Invalid values are dropped rather than reported: this runs on every autopilot * pass, and a warning repeated each minute in a background log is read after the * run, not before it (init-sets-work-mode/AC-23). */ export declare function loadTeamDefaults(projectRoot: string): TeamDefaults; /** * The config autopilot runs with: the machine's own over the team's, key by key. * * A key the machine sets wins even when its value is null (no cap, merge only), so * the test is presence, not `??`. A machine with no config stays not set up whatever * the repo says: only the machine names an agent (init-sets-work-mode/AC-21, AC-22). */ export declare function withTeamDefaults(machine: AutopilotConfig | null, team: TeamDefaults, projectRoot: string): AutopilotConfig | null; //# sourceMappingURL=team.d.ts.map