/** * build-per-run-scope — thin, pure(ish) builder for the per-invocation RunScope. * * Extracted from pre-action-hook (and cli-context assembly) to address * composition-root concentration (GA architectural blocker #2). * * The hook remains the sequencer of high-level steps (project resolution, * bailouts, logger config, update nag). This builder owns the exact * scope-construction + wiring of: * - signalSink (cloud) * - toolConfig + configDocument (ADR-0023 one-reader) * - targets (ADR-0037) * - contributeScope from all registered tools * - capability registry wiring * - RunScope construction with explicit inputs * * Inputs are explicit so the builder is testable in isolation and the * hook stays focused on orchestration. */ import { type Logger, type ProjectContext, RunScope } from '@opensip-cli/core'; import type { BuildPerRunScopeInput } from './build-per-run-scope-contract.js'; export type { BuildPerRunScopeInput } from './build-per-run-scope-contract.js'; export interface BuildInspectionOnlyScopeInput { readonly project: ProjectContext; readonly runId: string; } export interface BuildInspectionOnlyScopeResult { readonly scope: RunScope; readonly logger: Logger; } /** * Minimal non-persistent scope for `status`. No config composition, cloud * sink, datastore factory, report state, Tool hook, or file logger is touched. */ export declare function buildInspectionOnlyScope(input: BuildInspectionOnlyScopeInput): BuildInspectionOnlyScopeResult; /** * Build the per-run RunScope + perform the post-construction wiring * (contributeScope, capabilities, toolConfig, targets). * * This is the extracted builder. It is intentionally not 100% pure * (it calls into config resolution, signal sink selection, etc.) * but all inputs are explicit and side effects are contained. */ export declare function buildPerRunScope(input: BuildPerRunScopeInput): RunScope; //# sourceMappingURL=build-per-run-scope.d.ts.map