export interface ConfigArgs { subcommand: "show" | "dispatch" | "usage"; resolved: boolean; json: boolean; /** dispatch-only: pipeline name override (defaults to "default" for task, "fix-bug" for bug). */ pipeline?: string; } export interface ConfigArgsError { error: string; } export type ParseConfigResult = ConfigArgs | ConfigArgsError; /** * Parse forge config subcommand arguments. * * @implements {import("./shared-parser.js").SubcommandArgsParser} */ export declare function parseConfigArgs(args: string[]): ParseConfigResult; export interface PersonaModelEntry { persona: string; provider: string; model: string; available: boolean; source: string; } export interface ConfigShowOutput { personaModels: Record; pipelines: Record; } export interface PipelineShowOutput { personaModels: Record; phases: Array<{ role: string; override: string | null; available: boolean; source: string; }>; } type WriteFn = (line: string) => void; export declare function runConfigShow(opts: ConfigArgs, cwd: string, write: WriteFn): Promise; export interface DispatchPhaseRow { pipeline: "default" | "fix-bug"; phaseRole: string; persona: string; requested: { provider: string; model: string; } | null; source: string; /** True if pi.modelRegistry.find(provider, model) returns a Model — i.e. setModel * will actually take effect at dispatch time. False = will silently fall through * to pi's current model. */ registered: boolean | null; /** When registered === true, the exact id the registry returned. May differ from * `requested.model` if pi aliases (e.g. "claude-haiku-4-5" → "claude-haiku-4-5-20251001"). */ registryId: string | null; } export interface DispatchOutput { cwd: string; taskPipeline: string; taskPhases: DispatchPhaseRow[]; bugPhases: DispatchPhaseRow[]; } /** * Walk run-task's PHASES and fix-bug's BUG_PHASES; for each, compute the requested * model via the same resolveModelForPhase the orchestrator uses, and verify that * pi's ModelRegistry can resolve the requested id. Prints a table or JSON. * * No LLM call. No pi session. Pure inspection. */ export declare function runConfigDispatch(args: ConfigArgs, cwd: string, write: (line: string) => void): Promise; export declare function runConfig(args: string[], cwd?: string): Promise; export {};