/** * The suite live view — renders the whole suite through ONE `runToolLiveView` * shell (the same shell every tool uses): one banner, a `phases` checklist with * one row per step (○ pending → spinner running → ✓/✗ done), and the compact * aggregate as the done frame. The steps themselves run HEADLESS inside * `runSuite` (embedded-render), so the suite owns the entire visible surface. * * This is the "one way of running things" at the render layer: the suite is just * a run whose progress units are its steps. */ import { type RunSuiteInput } from './orchestrator.js'; import type { HostGlue } from '@opensip-cli/cli-live'; import type { SuiteRunResult } from '@opensip-cli/contracts'; import type { ToolRunCompletion } from '@opensip-cli/core'; export interface RenderSuiteLiveArgs { /** The `runSuite` input (the live view supplies `onStepEvent` itself). */ readonly suiteInput: RunSuiteInput; /** One checklist label per step, index-aligned (already deduped/resolved). */ readonly stepLabels: readonly string[]; readonly verbose: boolean; readonly quiet: boolean; readonly projectPath?: string; readonly glue?: HostGlue; } /** * Run a suite through the live shell; returns the completion + the run result. * * @throws {Error} If `produce()` completes without `runSuite` yielding a result * (an internal invariant violation — `produce` always runs to completion * before `runToolLiveView` resolves, so `result` is always set on success). */ export declare function renderSuiteLive(args: RenderSuiteLiveArgs): Promise<{ readonly completion: ToolRunCompletion; readonly result: SuiteRunResult; }>; //# sourceMappingURL=suite-live-view.d.ts.map