/** * FU-1 — role-split execution on one task. * * Architect (plans/critiques) and builder (implements) run CONCURRENTLY as * separate fresh sessions. Phase 1 is self-pairing: same model for both * roles, because role separation alone delivers most of the replicated lift * and needs zero new provider plumbing (E016 §3.2). Cross-model pairs are a * config change, not a code change. */ import type { Api, Model, StreamFunction } from "@earendil-works/pi-ai"; import type { RoleOutput } from "./types.js"; export interface PanelOptions { task: string; architectModel: Model; builderModel: Model; /** Extra context both roles see verbatim (e.g. the immutable gate listing). */ sharedContext?: string; } /** * Run the panel. The two `complete` calls are independent top-level * invocations — each builds its own Context inside `complete`, so there is * no shared message history to leak by construction. * * allSettled, not all: one role's provider failing must not throw away the * other role's completed work. A failed role settles as a RoleOutput with * empty text and its `error` field set; the caller (fuse) records the * partial panel and skips synthesis/gate rather than merging one opinion. */ export declare function runPanel(streamFn: StreamFunction, options: PanelOptions): Promise; //# sourceMappingURL=panel.d.ts.map