import type { WorkflowNodeContext } from "../workflows/types.js"; import { type AutodocInput, type DocumentedPlan } from "./autodoc.workflow.js"; import { type AutoplanInput, type AutoplanReady } from "./autoplan.workflow.js"; import type { VerificationCheck } from "./change-verification.workflow.js"; import { type PlanApprovalContinue, type NormalizedPlanApprovalInput, type PlanApprovalPolicy, type PlanApprovalResolution, type ResolvedPlanApprovalPolicy } from "./plan-approval.workflow.js"; import { parsePreparedWorkspace, type PreparedWorkspace } from "./workspace-preparation.workflow.js"; export type PlanChangeInput = { task: string; scope?: string; constraints?: string[]; repository?: string; documents?: string[]; previousPlan?: unknown; newEvidence?: unknown; approval?: PlanApprovalPolicy; preparedWorkspace?: PreparedWorkspace; directDefaultBranchAuthorized?: boolean; verificationChecks?: VerificationCheck[]; }; export type NormalizedPlanChangeInput = Omit & { approval: ResolvedPlanApprovalPolicy; }; export type PlanChangeReady = { status: "ready"; plan: unknown; planDigest: string; documents: string[]; revision: number; approval: PlanApprovalResolution; documentation: DocumentedPlan["documentation"]; }; export type PlanChangeBlocked = { status: "blocked"; reason: string; evidence: unknown; }; export declare const planChangeWorkflow: import("../workflows/types.js").WorkflowDefinition PlanChangeReady; }; readonly blocked: { readonly from: "blocked"; readonly validate: (value: unknown) => PlanChangeBlocked; }; }, { readonly design: import("../workflows/types.js").WorkflowIncludeDefinition AutoplanReady; }; readonly blocked: { readonly from: "blocked"; readonly validate: (value: unknown) => import("./autoplan.workflow.js").AutoplanBlocked; }; }, { readonly readySummary: import("../workflows/types.js").WorkflowIncludeDefinition import("./plain-summary.workflow.js").PlainSummaryResult; }; }, import("../workflows/types.js").WorkflowIncludeMap> & { nodes: { readonly summarize: import("../workflows/types.js").AssistantAgentNodeDefinition; readonly finish: import("../workflows/types.js").ComputeNodeDefinition; }; includes?: import("../workflows/types.js").WorkflowIncludeMap; exits?: { readonly completed: { readonly from: "finish"; readonly validate: (value: unknown) => import("./plain-summary.workflow.js").PlainSummaryResult; }; }; }>; readonly blockedSummary: import("../workflows/types.js").WorkflowIncludeDefinition import("./plain-summary.workflow.js").PlainSummaryResult; }; }, import("../workflows/types.js").WorkflowIncludeMap> & { nodes: { readonly summarize: import("../workflows/types.js").AssistantAgentNodeDefinition; readonly finish: import("../workflows/types.js").ComputeNodeDefinition; }; includes?: import("../workflows/types.js").WorkflowIncludeMap; exits?: { readonly completed: { readonly from: "finish"; readonly validate: (value: unknown) => import("./plain-summary.workflow.js").PlainSummaryResult; }; }; }>; }> & { nodes: { readonly frame: import("../workflows/types.js").SubmittedAgentNodeDefinition; readonly propose: import("../workflows/types.js").SubmittedAgentNodeDefinition; readonly ideal: import("../workflows/types.js").SubmittedAgentNodeDefinition; readonly choose: import("../workflows/types.js").SubmittedAgentNodeDefinition; readonly plan: import("../workflows/types.js").SubmittedAgentNodeDefinition; readonly blocked: import("../workflows/types.js").ComputeNodeDefinition; readonly finalize: import("../workflows/types.js").ComputeNodeDefinition; }; includes?: { readonly readySummary: import("../workflows/types.js").WorkflowIncludeDefinition import("./plain-summary.workflow.js").PlainSummaryResult; }; }, import("../workflows/types.js").WorkflowIncludeMap> & { nodes: { readonly summarize: import("../workflows/types.js").AssistantAgentNodeDefinition; readonly finish: import("../workflows/types.js").ComputeNodeDefinition; }; includes?: import("../workflows/types.js").WorkflowIncludeMap; exits?: { readonly completed: { readonly from: "finish"; readonly validate: (value: unknown) => import("./plain-summary.workflow.js").PlainSummaryResult; }; }; }>; readonly blockedSummary: import("../workflows/types.js").WorkflowIncludeDefinition import("./plain-summary.workflow.js").PlainSummaryResult; }; }, import("../workflows/types.js").WorkflowIncludeMap> & { nodes: { readonly summarize: import("../workflows/types.js").AssistantAgentNodeDefinition; readonly finish: import("../workflows/types.js").ComputeNodeDefinition; }; includes?: import("../workflows/types.js").WorkflowIncludeMap; exits?: { readonly completed: { readonly from: "finish"; readonly validate: (value: unknown) => import("./plain-summary.workflow.js").PlainSummaryResult; }; }; }>; }; exits?: { readonly ready: { readonly from: "finalize"; readonly validate: (value: unknown) => AutoplanReady; }; readonly blocked: { readonly from: "blocked"; readonly validate: (value: unknown) => import("./autoplan.workflow.js").AutoplanBlocked; }; }; }>; readonly documentation: import("../workflows/types.js").WorkflowIncludeDefinition DocumentedPlan; }; readonly blocked: { readonly from: "blocked"; readonly validate: (value: unknown) => import("./autodoc.workflow.js").AutodocBlocked; }; }, { readonly workspace: import("../workflows/types.js").WorkflowIncludeDefinition { route: "ready" | "propose" | "blocked"; selectedMode?: import("./workspace-preparation.workflow.js").PreparedWorkspaceMode; preparedWorkspace?: PreparedWorkspace; repository: string; baseBranch: string; baseRevision?: string; currentBranch?: string; preExistingChangedPaths: string[]; reason: string; evidence: string[]; }; }; }, import("../workflows/types.js").WorkflowIncludeMap> & { nodes: { readonly inspect: import("../workflows/types.js").FunctionActionNodeDefinition; readonly propose: import("../workflows/types.js").SubmittedAgentNodeDefinition; readonly apply: import("../workflows/types.js").FunctionActionNodeDefinition; readonly ready: import("../workflows/types.js").ComputeNodeDefinition; readonly blocked: import("../workflows/types.js").ComputeNodeDefinition; }; includes?: import("../workflows/types.js").WorkflowIncludeMap; exits?: { readonly ready: { readonly from: "ready"; readonly validate: typeof parsePreparedWorkspace; }; readonly blocked: { readonly from: "blocked"; readonly validate: (value: unknown) => { route: "ready" | "propose" | "blocked"; selectedMode?: import("./workspace-preparation.workflow.js").PreparedWorkspaceMode; preparedWorkspace?: PreparedWorkspace; repository: string; baseBranch: string; baseRevision?: string; currentBranch?: string; preExistingChangedPaths: string[]; reason: string; evidence: string[]; }; }; }; }>; readonly verification: import("../workflows/types.js").WorkflowIncludeDefinition import("./change-verification.workflow.js").ChangeVerificationResult; }; readonly blocked: { readonly from: "blocked"; readonly validate: (value: unknown) => import("./change-verification.workflow.js").ChangeVerificationResult; }; }, import("../workflows/types.js").WorkflowIncludeMap> & { nodes: { readonly selectChecks: import("../workflows/types.js").ComputeNodeDefinition; readonly planChecks: import("../workflows/types.js").SubmittedAgentNodeDefinition; readonly runCandidate: import("../workflows/types.js").FunctionActionNodeDefinition; readonly runBase: import("../workflows/types.js").FunctionActionNodeDefinition; readonly classify: import("../workflows/types.js").ComputeNodeDefinition; readonly repairGuard: import("../workflows/types.js").ComputeNodeDefinition; readonly mechanicalRepair: import("../workflows/types.js").FunctionActionNodeDefinition; readonly semanticRepair: import("../workflows/types.js").SubmittedAgentNodeDefinition; readonly judge: import("../workflows/types.js").SubmittedAgentNodeDefinition; readonly ready: import("../workflows/types.js").ComputeNodeDefinition; readonly blocked: import("../workflows/types.js").ComputeNodeDefinition; }; includes?: import("../workflows/types.js").WorkflowIncludeMap; exits?: { readonly ready: { readonly from: "ready"; readonly validate: (value: unknown) => import("./change-verification.workflow.js").ChangeVerificationResult; }; readonly blocked: { readonly from: "blocked"; readonly validate: (value: unknown) => import("./change-verification.workflow.js").ChangeVerificationResult; }; }; }>; }> & { nodes: { readonly prepare: import("../workflows/types.js").ComputeNodeDefinition; readonly locatePlan: import("../workflows/types.js").SubmittedAgentNodeDefinition; readonly workspaceGuard: import("../workflows/types.js").ComputeNodeDefinition; readonly inspectDocumentation: import("../workflows/types.js").SubmittedAgentNodeDefinition; readonly updateDocumentation: import("../workflows/types.js").SubmittedAgentNodeDefinition; readonly finalize: import("../workflows/types.js").ComputeNodeDefinition; readonly blocked: import("../workflows/types.js").ComputeNodeDefinition; }; includes?: { readonly workspace: import("../workflows/types.js").WorkflowIncludeDefinition { route: "ready" | "propose" | "blocked"; selectedMode?: import("./workspace-preparation.workflow.js").PreparedWorkspaceMode; preparedWorkspace?: PreparedWorkspace; repository: string; baseBranch: string; baseRevision?: string; currentBranch?: string; preExistingChangedPaths: string[]; reason: string; evidence: string[]; }; }; }, import("../workflows/types.js").WorkflowIncludeMap> & { nodes: { readonly inspect: import("../workflows/types.js").FunctionActionNodeDefinition; readonly propose: import("../workflows/types.js").SubmittedAgentNodeDefinition; readonly apply: import("../workflows/types.js").FunctionActionNodeDefinition; readonly ready: import("../workflows/types.js").ComputeNodeDefinition; readonly blocked: import("../workflows/types.js").ComputeNodeDefinition; }; includes?: import("../workflows/types.js").WorkflowIncludeMap; exits?: { readonly ready: { readonly from: "ready"; readonly validate: typeof parsePreparedWorkspace; }; readonly blocked: { readonly from: "blocked"; readonly validate: (value: unknown) => { route: "ready" | "propose" | "blocked"; selectedMode?: import("./workspace-preparation.workflow.js").PreparedWorkspaceMode; preparedWorkspace?: PreparedWorkspace; repository: string; baseBranch: string; baseRevision?: string; currentBranch?: string; preExistingChangedPaths: string[]; reason: string; evidence: string[]; }; }; }; }>; readonly verification: import("../workflows/types.js").WorkflowIncludeDefinition import("./change-verification.workflow.js").ChangeVerificationResult; }; readonly blocked: { readonly from: "blocked"; readonly validate: (value: unknown) => import("./change-verification.workflow.js").ChangeVerificationResult; }; }, import("../workflows/types.js").WorkflowIncludeMap> & { nodes: { readonly selectChecks: import("../workflows/types.js").ComputeNodeDefinition; readonly planChecks: import("../workflows/types.js").SubmittedAgentNodeDefinition; readonly runCandidate: import("../workflows/types.js").FunctionActionNodeDefinition; readonly runBase: import("../workflows/types.js").FunctionActionNodeDefinition; readonly classify: import("../workflows/types.js").ComputeNodeDefinition; readonly repairGuard: import("../workflows/types.js").ComputeNodeDefinition; readonly mechanicalRepair: import("../workflows/types.js").FunctionActionNodeDefinition; readonly semanticRepair: import("../workflows/types.js").SubmittedAgentNodeDefinition; readonly judge: import("../workflows/types.js").SubmittedAgentNodeDefinition; readonly ready: import("../workflows/types.js").ComputeNodeDefinition; readonly blocked: import("../workflows/types.js").ComputeNodeDefinition; }; includes?: import("../workflows/types.js").WorkflowIncludeMap; exits?: { readonly ready: { readonly from: "ready"; readonly validate: (value: unknown) => import("./change-verification.workflow.js").ChangeVerificationResult; }; readonly blocked: { readonly from: "blocked"; readonly validate: (value: unknown) => import("./change-verification.workflow.js").ChangeVerificationResult; }; }; }>; }; exits?: { readonly ready: { readonly from: "finalize"; readonly validate: (value: unknown) => DocumentedPlan; }; readonly blocked: { readonly from: "blocked"; readonly validate: (value: unknown) => import("./autodoc.workflow.js").AutodocBlocked; }; }; }>; readonly approval: import("../workflows/types.js").WorkflowIncludeDefinition PlanApprovalContinue; }; readonly stop: { readonly from: "stopped"; readonly validate: (value: unknown) => import("./plan-approval.workflow.js").PlanApprovalStop; }; readonly replan: { readonly from: "replan"; readonly validate: (value: unknown) => import("./plan-approval.workflow.js").PlanApprovalReplan; }; }, import("../workflows/types.js").WorkflowIncludeMap> & { nodes: { readonly routePolicy: import("../workflows/types.js").ComputeNodeDefinition; readonly approve: import("../workflows/types.js").WorkflowNodeCommon & { nodeType: "checkpoint"; summary?: string; run?: (context: WorkflowNodeContext) => import("../workflows/types.js").MaybePromise; humanDecision?: import("../workflows/types.js").HumanDecisionNodeContract; } & { readonly __humanChoices?: { readonly continue: { readonly label: "Yes, continue"; }; readonly stop: { readonly label: "No, stop"; }; readonly replan: { readonly label: "Replan"; readonly input: import("../workflows/types.js").HumanDecisionTextInput & { name: "instructions"; }; }; }; }; readonly continued: import("../workflows/types.js").ComputeNodeDefinition; readonly stopped: import("../workflows/types.js").ComputeNodeDefinition; readonly replan: import("../workflows/types.js").ComputeNodeDefinition; }; includes?: import("../workflows/types.js").WorkflowIncludeMap; exits?: { readonly continue: { readonly from: "continued"; readonly validate: (value: unknown) => PlanApprovalContinue; }; readonly stop: { readonly from: "stopped"; readonly validate: (value: unknown) => import("./plan-approval.workflow.js").PlanApprovalStop; }; readonly replan: { readonly from: "replan"; readonly validate: (value: unknown) => import("./plan-approval.workflow.js").PlanApprovalReplan; }; }; }>; }> & { nodes: { readonly start: import("../workflows/types.js").ComputeNodeDefinition; readonly assessPlan: import("../workflows/types.js").ComputeNodeDefinition; readonly replanGuard: import("../workflows/types.js").ComputeNodeDefinition; readonly finalize: import("../workflows/types.js").ComputeNodeDefinition; readonly blocked: import("../workflows/types.js").ComputeNodeDefinition; }; includes?: { readonly design: import("../workflows/types.js").WorkflowIncludeDefinition AutoplanReady; }; readonly blocked: { readonly from: "blocked"; readonly validate: (value: unknown) => import("./autoplan.workflow.js").AutoplanBlocked; }; }, { readonly readySummary: import("../workflows/types.js").WorkflowIncludeDefinition import("./plain-summary.workflow.js").PlainSummaryResult; }; }, import("../workflows/types.js").WorkflowIncludeMap> & { nodes: { readonly summarize: import("../workflows/types.js").AssistantAgentNodeDefinition; readonly finish: import("../workflows/types.js").ComputeNodeDefinition; }; includes?: import("../workflows/types.js").WorkflowIncludeMap; exits?: { readonly completed: { readonly from: "finish"; readonly validate: (value: unknown) => import("./plain-summary.workflow.js").PlainSummaryResult; }; }; }>; readonly blockedSummary: import("../workflows/types.js").WorkflowIncludeDefinition import("./plain-summary.workflow.js").PlainSummaryResult; }; }, import("../workflows/types.js").WorkflowIncludeMap> & { nodes: { readonly summarize: import("../workflows/types.js").AssistantAgentNodeDefinition; readonly finish: import("../workflows/types.js").ComputeNodeDefinition; }; includes?: import("../workflows/types.js").WorkflowIncludeMap; exits?: { readonly completed: { readonly from: "finish"; readonly validate: (value: unknown) => import("./plain-summary.workflow.js").PlainSummaryResult; }; }; }>; }> & { nodes: { readonly frame: import("../workflows/types.js").SubmittedAgentNodeDefinition; readonly propose: import("../workflows/types.js").SubmittedAgentNodeDefinition; readonly ideal: import("../workflows/types.js").SubmittedAgentNodeDefinition; readonly choose: import("../workflows/types.js").SubmittedAgentNodeDefinition; readonly plan: import("../workflows/types.js").SubmittedAgentNodeDefinition; readonly blocked: import("../workflows/types.js").ComputeNodeDefinition; readonly finalize: import("../workflows/types.js").ComputeNodeDefinition; }; includes?: { readonly readySummary: import("../workflows/types.js").WorkflowIncludeDefinition import("./plain-summary.workflow.js").PlainSummaryResult; }; }, import("../workflows/types.js").WorkflowIncludeMap> & { nodes: { readonly summarize: import("../workflows/types.js").AssistantAgentNodeDefinition; readonly finish: import("../workflows/types.js").ComputeNodeDefinition; }; includes?: import("../workflows/types.js").WorkflowIncludeMap; exits?: { readonly completed: { readonly from: "finish"; readonly validate: (value: unknown) => import("./plain-summary.workflow.js").PlainSummaryResult; }; }; }>; readonly blockedSummary: import("../workflows/types.js").WorkflowIncludeDefinition import("./plain-summary.workflow.js").PlainSummaryResult; }; }, import("../workflows/types.js").WorkflowIncludeMap> & { nodes: { readonly summarize: import("../workflows/types.js").AssistantAgentNodeDefinition; readonly finish: import("../workflows/types.js").ComputeNodeDefinition; }; includes?: import("../workflows/types.js").WorkflowIncludeMap; exits?: { readonly completed: { readonly from: "finish"; readonly validate: (value: unknown) => import("./plain-summary.workflow.js").PlainSummaryResult; }; }; }>; }; exits?: { readonly ready: { readonly from: "finalize"; readonly validate: (value: unknown) => AutoplanReady; }; readonly blocked: { readonly from: "blocked"; readonly validate: (value: unknown) => import("./autoplan.workflow.js").AutoplanBlocked; }; }; }>; readonly documentation: import("../workflows/types.js").WorkflowIncludeDefinition DocumentedPlan; }; readonly blocked: { readonly from: "blocked"; readonly validate: (value: unknown) => import("./autodoc.workflow.js").AutodocBlocked; }; }, { readonly workspace: import("../workflows/types.js").WorkflowIncludeDefinition { route: "ready" | "propose" | "blocked"; selectedMode?: import("./workspace-preparation.workflow.js").PreparedWorkspaceMode; preparedWorkspace?: PreparedWorkspace; repository: string; baseBranch: string; baseRevision?: string; currentBranch?: string; preExistingChangedPaths: string[]; reason: string; evidence: string[]; }; }; }, import("../workflows/types.js").WorkflowIncludeMap> & { nodes: { readonly inspect: import("../workflows/types.js").FunctionActionNodeDefinition; readonly propose: import("../workflows/types.js").SubmittedAgentNodeDefinition; readonly apply: import("../workflows/types.js").FunctionActionNodeDefinition; readonly ready: import("../workflows/types.js").ComputeNodeDefinition; readonly blocked: import("../workflows/types.js").ComputeNodeDefinition; }; includes?: import("../workflows/types.js").WorkflowIncludeMap; exits?: { readonly ready: { readonly from: "ready"; readonly validate: typeof parsePreparedWorkspace; }; readonly blocked: { readonly from: "blocked"; readonly validate: (value: unknown) => { route: "ready" | "propose" | "blocked"; selectedMode?: import("./workspace-preparation.workflow.js").PreparedWorkspaceMode; preparedWorkspace?: PreparedWorkspace; repository: string; baseBranch: string; baseRevision?: string; currentBranch?: string; preExistingChangedPaths: string[]; reason: string; evidence: string[]; }; }; }; }>; readonly verification: import("../workflows/types.js").WorkflowIncludeDefinition import("./change-verification.workflow.js").ChangeVerificationResult; }; readonly blocked: { readonly from: "blocked"; readonly validate: (value: unknown) => import("./change-verification.workflow.js").ChangeVerificationResult; }; }, import("../workflows/types.js").WorkflowIncludeMap> & { nodes: { readonly selectChecks: import("../workflows/types.js").ComputeNodeDefinition; readonly planChecks: import("../workflows/types.js").SubmittedAgentNodeDefinition; readonly runCandidate: import("../workflows/types.js").FunctionActionNodeDefinition; readonly runBase: import("../workflows/types.js").FunctionActionNodeDefinition; readonly classify: import("../workflows/types.js").ComputeNodeDefinition; readonly repairGuard: import("../workflows/types.js").ComputeNodeDefinition; readonly mechanicalRepair: import("../workflows/types.js").FunctionActionNodeDefinition; readonly semanticRepair: import("../workflows/types.js").SubmittedAgentNodeDefinition; readonly judge: import("../workflows/types.js").SubmittedAgentNodeDefinition; readonly ready: import("../workflows/types.js").ComputeNodeDefinition; readonly blocked: import("../workflows/types.js").ComputeNodeDefinition; }; includes?: import("../workflows/types.js").WorkflowIncludeMap; exits?: { readonly ready: { readonly from: "ready"; readonly validate: (value: unknown) => import("./change-verification.workflow.js").ChangeVerificationResult; }; readonly blocked: { readonly from: "blocked"; readonly validate: (value: unknown) => import("./change-verification.workflow.js").ChangeVerificationResult; }; }; }>; }> & { nodes: { readonly prepare: import("../workflows/types.js").ComputeNodeDefinition; readonly locatePlan: import("../workflows/types.js").SubmittedAgentNodeDefinition; readonly workspaceGuard: import("../workflows/types.js").ComputeNodeDefinition; readonly inspectDocumentation: import("../workflows/types.js").SubmittedAgentNodeDefinition; readonly updateDocumentation: import("../workflows/types.js").SubmittedAgentNodeDefinition; readonly finalize: import("../workflows/types.js").ComputeNodeDefinition; readonly blocked: import("../workflows/types.js").ComputeNodeDefinition; }; includes?: { readonly workspace: import("../workflows/types.js").WorkflowIncludeDefinition { route: "ready" | "propose" | "blocked"; selectedMode?: import("./workspace-preparation.workflow.js").PreparedWorkspaceMode; preparedWorkspace?: PreparedWorkspace; repository: string; baseBranch: string; baseRevision?: string; currentBranch?: string; preExistingChangedPaths: string[]; reason: string; evidence: string[]; }; }; }, import("../workflows/types.js").WorkflowIncludeMap> & { nodes: { readonly inspect: import("../workflows/types.js").FunctionActionNodeDefinition; readonly propose: import("../workflows/types.js").SubmittedAgentNodeDefinition; readonly apply: import("../workflows/types.js").FunctionActionNodeDefinition; readonly ready: import("../workflows/types.js").ComputeNodeDefinition; readonly blocked: import("../workflows/types.js").ComputeNodeDefinition; }; includes?: import("../workflows/types.js").WorkflowIncludeMap; exits?: { readonly ready: { readonly from: "ready"; readonly validate: typeof parsePreparedWorkspace; }; readonly blocked: { readonly from: "blocked"; readonly validate: (value: unknown) => { route: "ready" | "propose" | "blocked"; selectedMode?: import("./workspace-preparation.workflow.js").PreparedWorkspaceMode; preparedWorkspace?: PreparedWorkspace; repository: string; baseBranch: string; baseRevision?: string; currentBranch?: string; preExistingChangedPaths: string[]; reason: string; evidence: string[]; }; }; }; }>; readonly verification: import("../workflows/types.js").WorkflowIncludeDefinition import("./change-verification.workflow.js").ChangeVerificationResult; }; readonly blocked: { readonly from: "blocked"; readonly validate: (value: unknown) => import("./change-verification.workflow.js").ChangeVerificationResult; }; }, import("../workflows/types.js").WorkflowIncludeMap> & { nodes: { readonly selectChecks: import("../workflows/types.js").ComputeNodeDefinition; readonly planChecks: import("../workflows/types.js").SubmittedAgentNodeDefinition; readonly runCandidate: import("../workflows/types.js").FunctionActionNodeDefinition; readonly runBase: import("../workflows/types.js").FunctionActionNodeDefinition; readonly classify: import("../workflows/types.js").ComputeNodeDefinition; readonly repairGuard: import("../workflows/types.js").ComputeNodeDefinition; readonly mechanicalRepair: import("../workflows/types.js").FunctionActionNodeDefinition; readonly semanticRepair: import("../workflows/types.js").SubmittedAgentNodeDefinition; readonly judge: import("../workflows/types.js").SubmittedAgentNodeDefinition; readonly ready: import("../workflows/types.js").ComputeNodeDefinition; readonly blocked: import("../workflows/types.js").ComputeNodeDefinition; }; includes?: import("../workflows/types.js").WorkflowIncludeMap; exits?: { readonly ready: { readonly from: "ready"; readonly validate: (value: unknown) => import("./change-verification.workflow.js").ChangeVerificationResult; }; readonly blocked: { readonly from: "blocked"; readonly validate: (value: unknown) => import("./change-verification.workflow.js").ChangeVerificationResult; }; }; }>; }; exits?: { readonly ready: { readonly from: "finalize"; readonly validate: (value: unknown) => DocumentedPlan; }; readonly blocked: { readonly from: "blocked"; readonly validate: (value: unknown) => import("./autodoc.workflow.js").AutodocBlocked; }; }; }>; readonly approval: import("../workflows/types.js").WorkflowIncludeDefinition PlanApprovalContinue; }; readonly stop: { readonly from: "stopped"; readonly validate: (value: unknown) => import("./plan-approval.workflow.js").PlanApprovalStop; }; readonly replan: { readonly from: "replan"; readonly validate: (value: unknown) => import("./plan-approval.workflow.js").PlanApprovalReplan; }; }, import("../workflows/types.js").WorkflowIncludeMap> & { nodes: { readonly routePolicy: import("../workflows/types.js").ComputeNodeDefinition; readonly approve: import("../workflows/types.js").WorkflowNodeCommon & { nodeType: "checkpoint"; summary?: string; run?: (context: WorkflowNodeContext) => import("../workflows/types.js").MaybePromise; humanDecision?: import("../workflows/types.js").HumanDecisionNodeContract; } & { readonly __humanChoices?: { readonly continue: { readonly label: "Yes, continue"; }; readonly stop: { readonly label: "No, stop"; }; readonly replan: { readonly label: "Replan"; readonly input: import("../workflows/types.js").HumanDecisionTextInput & { name: "instructions"; }; }; }; }; readonly continued: import("../workflows/types.js").ComputeNodeDefinition; readonly stopped: import("../workflows/types.js").ComputeNodeDefinition; readonly replan: import("../workflows/types.js").ComputeNodeDefinition; }; includes?: import("../workflows/types.js").WorkflowIncludeMap; exits?: { readonly continue: { readonly from: "continued"; readonly validate: (value: unknown) => PlanApprovalContinue; }; readonly stop: { readonly from: "stopped"; readonly validate: (value: unknown) => import("./plan-approval.workflow.js").PlanApprovalStop; }; readonly replan: { readonly from: "replan"; readonly validate: (value: unknown) => import("./plan-approval.workflow.js").PlanApprovalReplan; }; }; }>; }; exits?: { readonly ready: { readonly from: "finalize"; readonly validate: (value: unknown) => PlanChangeReady; }; readonly blocked: { readonly from: "blocked"; readonly validate: (value: unknown) => PlanChangeBlocked; }; }; }; export default planChangeWorkflow;