import { type ModelProviderConfig, type WorkspaceConfig } from '../config/config-types.js'; import { type RdPlanResult } from '../rd/rd-service.js'; import { type TechPlanResult, type TechStatus } from '../tech/tech-service.js'; export type WorkflowMode = 'code' | 'team'; export type CodeMode = 'full-auto' | 'guided' | 'rnd'; export type ModelTier = 'top-tier' | 'mid-tier'; export type ModelRole = 'strongest' | 'execution'; export type WorkflowRoutePolicy = 'code-broad-multi-model' | 'team-rd-limited-multi-model'; export type WorkflowStepStage = 'product-direction' | 'design-direction' | 'tech-direction' | 'tech-review' | 'rd-planning' | 'coding-execution' | 'unit-test-execution' | 'quality-review'; export type WorkflowStepOwner = 'peaks-code' | 'peaks-rd' | 'peaks-tech' | 'human'; export type WorkflowRouterRequest = { sessionId: string; goal: string; mode: WorkflowMode; codeMode?: CodeMode; maxWorkers?: number; dryRun: true; artifactWorkspacePath?: string; workspace?: WorkspaceConfig; config?: { economyMode?: boolean; swarmMode?: boolean; providers?: ModelProviderConfig; }; }; export type WorkflowRouterStep = { readonly id: string; readonly stage: WorkflowStepStage; readonly owner: WorkflowStepOwner; readonly modelTier: ModelTier; readonly modelRole: ModelRole; readonly modelId: string; readonly reason: string; readonly dryRunOnly: true; readonly invokesAgents: false; readonly writesArtifacts: false; readonly dependsOn: readonly string[]; }; export type WorkflowModelRouting = { readonly strongestModel: { readonly modelId: string; readonly uses: readonly WorkflowStepStage[]; }; readonly executionModel: { readonly modelId: string; readonly uses: readonly WorkflowStepStage[]; }; }; export type WorkflowModelAssignment = { readonly stage: WorkflowStepStage; readonly owner: WorkflowStepOwner; readonly modelTier: ModelTier; readonly modelRole: ModelRole; readonly modelId: string; }; export type WorkflowModeStatus = { readonly economyModeEnabled: boolean; readonly swarmModeEnabled: boolean; readonly executionModelId: string; readonly executionModelSource: string; readonly summary: string; }; export type WorkflowRouterPlan = { readonly sessionId: string; readonly goal: string; readonly mode: WorkflowMode; readonly codeMode?: CodeMode; readonly executionMode: 'autonomous'; readonly decisionProfile: string; readonly dryRun: true; readonly routePolicy: WorkflowRoutePolicy; readonly modelRouting: WorkflowModelRouting; readonly modelAssignments: readonly WorkflowModelAssignment[]; readonly modeStatus: WorkflowModeStatus; readonly techStatus: TechStatus; readonly techPlan: TechPlanResult; readonly rdPlan: RdPlanResult; readonly steps: readonly WorkflowRouterStep[]; readonly blockedReasons: readonly string[]; readonly nextActions: readonly string[]; readonly constraints: readonly string[]; }; export declare function isWorkflowMode(mode: string): mode is WorkflowMode; export declare function isCodeMode(value: string): value is CodeMode; export declare function createWorkflowRouterPlan(request: WorkflowRouterRequest): WorkflowRouterPlan;