/** * plan-pre-action-bootstrap — pure planner for the pre-action bootstrap * phases through the bailout window (ADR-0052). * * Does NOT mutate the process-wide logger, enter a scope, or open a * datastore. Returns a {@link PreActionBootstrapPlan} the hook (or tests) * pass to the post-bailout executor. */ import { type CommandScopeRequirement, type LoggerOptions, type ProjectContext } from '@opensip-cli/core'; import { PRE_ACTION_PHASES } from './pre-action-bootstrap-phases.js'; import type { CliDefaults } from './cli-defaults.js'; import type { CommandScopeIndex } from '../commands/command-scope-index.js'; import type { HostCommandRuntimePolicy } from '../commands/host-runtime-access.js'; export type BootstrapPlanningMode = 'tentative' | 'authoritative'; export interface PlanPreActionBootstrapInput { readonly opts: Record; readonly cwd: string; readonly cwdExplicit: boolean; readonly runId: string; readonly commandName: string; readonly commandPath: string; readonly commandScopes: CommandScopeIndex; readonly explicitConfigPath?: string; /** * Tentative planning performs side-effect-free discovery only. It never * emits warnings, runs bailout guards, or mutates the caller's options. */ readonly planningMode?: BootstrapPlanningMode; } export interface PreActionBootstrapPlan { readonly runId: string; readonly cwd: string; readonly cwdExplicit: boolean; readonly opts: Record; readonly cliDefaults: CliDefaults; readonly project: ProjectContext; readonly commandName: string; readonly commandPath: string; readonly commandScope: CommandScopeRequirement; readonly jsonOutput: boolean; readonly runtimePolicy: HostCommandRuntimePolicy; /** Per-run logger options computed after bailouts (ADR-0053). */ readonly runLoggerOptions: LoggerOptions; readonly completedThrough: typeof PRE_ACTION_PHASES.resolveProject | typeof PRE_ACTION_PHASES.bailoutWindow; } /** * Plan phases 1–4 (read options through bailout window). Throws * {@link BootstrapError} on config-resolve or bailout failures. * * @throws {BootstrapError} When config resolution fails or an early bootstrap * guard bails out before project side effects are allowed. */ export declare function planPreActionBootstrap(input: PlanPreActionBootstrapInput): PreActionBootstrapPlan; //# sourceMappingURL=plan-pre-action-bootstrap.d.ts.map