@resolveio/server-lib 22.3.138 → 22.3.139

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/util/ai-runner-manager-policy.ts"],"names":[],"mappings":"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","file":"ai-runner-manager-policy.js","sourcesContent":["export type ResolveIOAIManagerAction =\n\t| 'continue'\n\t| 'retry_infra'\n\t| 'reset_loop_budget'\n\t| 'park_repeated_failure'\n\t| 'park_ping_pong'\n\t| 'manual_handoff';\n\nexport interface ResolveIOAIManagerFailureRecord {\n\toutcome?: string;\n\tlane?: string;\n\tstepType?: string;\n\tfailureClass?: string;\n\tblocker?: string;\n\tblockerFingerprint?: string;\n\tevidenceHash?: string;\n\tchangedFiles?: string[];\n\tartifactPaths?: string[];\n\tsummary?: string;\n\trecordedAt?: Date | string;\n}\n\nexport type ResolveIOAIManagerRecoveryClass =\n\t| 'advance_after_proof'\n\t| 'diagnosis_only'\n\t| 'diagnosis_revision'\n\t| 'infra_repair'\n\t| 'compile_repair'\n\t| 'journey_contract_repair'\n\t| 'business_proof_repair'\n\t| 'release_repair'\n\t| 'product_code_repair'\n\t| 'blocked_until_new_evidence'\n\t| 'manual_handoff'\n\t| 'continue';\n\nexport interface ResolveIOAIManagerRecoveryPlan {\n\trecoveryClass: ResolveIOAIManagerRecoveryClass;\n\tlane: string;\n\tstepType: string;\n\tnextActionLabel: string;\n\tobjective: string;\n\tallowedAction: string;\n\tproductRepairAllowed: boolean;\n\texpensiveModelAllowed: boolean;\n\tmaxAttemptsBeforePark: number;\n\tfiniteSteps: string[];\n\trequiredEvidence: string[];\n\tloopResetEvidence: string[];\n\tforbiddenActions: string[];\n\tnotes: string[];\n}\n\nexport type ResolveIOAIManagerRecoveryCheckpointStatus =\n\t| 'active'\n\t| 'parked'\n\t| 'manual_handoff'\n\t| 'complete';\n\nexport interface ResolveIOAIManagerRecoveryCheckpoint {\n\tcheckpointId: string;\n\trecoveryClass: ResolveIOAIManagerRecoveryClass;\n\tstatus: ResolveIOAIManagerRecoveryCheckpointStatus;\n\tlane: string;\n\tstepType: string;\n\tallowedAction: string;\n\tproductRepairAllowed: boolean;\n\texpensiveModelAllowed: boolean;\n\tattempts: number;\n\tmaxAttemptsBeforePark: number;\n\tblockerFingerprint: string;\n\tevidenceHash: string;\n\tchangedFiles: string[];\n\tartifactPaths: string[];\n\trequiredEvidence: string[];\n\tloopResetEvidence: string[];\n\tforbiddenActions: string[];\n\tobjective: string;\n\tnextActionLabel: string;\n\tcreatedAt: string;\n\tupdatedAt: string;\n}\n\nexport type ResolveIOAIManagerRecoveryEvidenceProbeStepKind =\n\t| 'read_only_diagnosis'\n\t| 'rerun_same_gate'\n\t| 'infra_preflight'\n\t| 'compile_check'\n\t| 'route_probe'\n\t| 'business_assertion'\n\t| 'journey_validation'\n\t| 'release_status'\n\t| 'diff_scope_check'\n\t| 'operator_review';\n\nexport interface ResolveIOAIManagerRecoveryEvidenceProbeStep {\n\tid: string;\n\tkind: ResolveIOAIManagerRecoveryEvidenceProbeStepKind;\n\tlabel: string;\n\tobjective: string;\n\trequired: boolean;\n\tcommandHint?: string;\n\tartifactExpectation: string;\n\tsuccessSignal: string;\n}\n\nexport interface ResolveIOAIManagerRecoveryEvidenceProbe {\n\tprobeId: string;\n\tcheckpointId: string;\n\trecoveryClass: ResolveIOAIManagerRecoveryClass;\n\tlane: string;\n\tstepType: string;\n\tobjective: string;\n\tevidenceOnly: boolean;\n\tproductRepairAllowed: boolean;\n\texpensiveModelAllowed: boolean;\n\tevidenceHashBefore: string;\n\tblockerFingerprint: string;\n\tsteps: ResolveIOAIManagerRecoveryEvidenceProbeStep[];\n\trequiredArtifacts: string[];\n\tacceptanceEvidence: string[];\n\tstopConditions: string[];\n\tloopResetEvidence: string[];\n\tcreatedAt: string;\n}\n\nexport type ResolveIOAIManagerRecoveryAutomationMode =\n\t| 'advance'\n\t| 'collect_evidence'\n\t| 'read_only_diagnosis'\n\t| 'repair_infra'\n\t| 'repair_compile'\n\t| 'repair_journey_contract'\n\t| 'repair_business_assertion'\n\t| 'repair_release'\n\t| 'targeted_product_repair'\n\t| 'manual_review'\n\t| 'continue_gate';\n\nexport interface ResolveIOAIManagerRecoveryActionRetryPolicy {\n\tallowImmediateRetry: boolean;\n\trequireNewEvidence: boolean;\n\tresetLoopWhen: string[];\n\tstopWhen: string[];\n}\n\nexport interface ResolveIOAIManagerRecoveryActionPacket {\n\tactionId: string;\n\tcheckpointId: string;\n\tprobeId: string;\n\trecoveryClass: ResolveIOAIManagerRecoveryClass;\n\tmode: ResolveIOAIManagerRecoveryAutomationMode;\n\tlabel: string;\n\tlane: string;\n\tstepType: string;\n\tprimaryStepKind: ResolveIOAIManagerRecoveryEvidenceProbeStepKind | 'none';\n\tobjective: string;\n\tevidenceOnly: boolean;\n\tautoRunnable: boolean;\n\tproductRepairAllowed: boolean;\n\texpensiveModelAllowed: boolean;\n\tcanResetLoopAfterEvidence: boolean;\n\tmaxAttemptsBeforePark: number;\n\trequiredArtifacts: string[];\n\tnextCommands: string[];\n\tsuccessCriteria: string[];\n\tretryPolicy: ResolveIOAIManagerRecoveryActionRetryPolicy;\n\tblockedReason?: string;\n\tcreatedAt: string;\n}\n\nexport type ResolveIOAIManagerRecoveryActionDispatchAction =\n\t| 'run_evidence_probe'\n\t| 'run_read_only_diagnosis'\n\t| 'run_infra_repair'\n\t| 'run_compile_repair'\n\t| 'run_journey_contract_repair'\n\t| 'run_business_assertion_repair'\n\t| 'run_release_repair'\n\t| 'run_targeted_product_repair'\n\t| 'advance'\n\t| 'continue_gate'\n\t| 'park_manual';\n\nexport type ResolveIOAIManagerRecoveryActionDispatchStatus =\n\t| 'queued'\n\t| 'started'\n\t| 'completed'\n\t| 'failed'\n\t| 'parked';\n\nexport interface ResolveIOAIManagerRecoveryActionDispatchRecord {\n\tdispatchId: string;\n\tactionId: string;\n\tcheckpointId: string;\n\tprobeId: string;\n\tmode: ResolveIOAIManagerRecoveryAutomationMode;\n\tdispatchAction: ResolveIOAIManagerRecoveryActionDispatchAction;\n\tstatus: ResolveIOAIManagerRecoveryActionDispatchStatus;\n\tevidenceHash: string;\n\tblockerFingerprint: string;\n\tproductRepairAllowed: boolean;\n\texpensiveModelAllowed: boolean;\n\treason: string;\n\tartifactPaths: string[];\n\tstartedAt?: string;\n\tcompletedAt?: string;\n\tcreatedAt: string;\n}\n\nexport interface ResolveIOAIManagerRecoveryActionDispatchInput {\n\taction?: ResolveIOAIManagerRecoveryActionPacket;\n\thistory?: ResolveIOAIManagerRecoveryActionDispatchRecord[];\n\tcurrent?: ResolveIOAIManagerFailureRecord;\n\toperatorApproved?: boolean;\n\tnow?: Date | string;\n}\n\nexport interface ResolveIOAIManagerRecoveryActionDispatchDecision {\n\tdispatchAction: ResolveIOAIManagerRecoveryActionDispatchAction;\n\tallowed: boolean;\n\treason: string;\n\tstatus: ResolveIOAIManagerRecoveryActionDispatchStatus;\n\tcanRunProductRepair: boolean;\n\tcanRunExpensiveModel: boolean;\n\tshouldRecordDispatch: boolean;\n\trequiresNewEvidence: boolean;\n\tnewEvidence: boolean;\n\tdispatchRecord?: ResolveIOAIManagerRecoveryActionDispatchRecord;\n}\n\nexport interface ResolveIOAIManagerRecoveryCheckpointInput {\n\tplan: ResolveIOAIManagerRecoveryPlan;\n\tcurrent?: ResolveIOAIManagerFailureRecord;\n\tpreviousCheckpoint?: ResolveIOAIManagerRecoveryCheckpoint;\n\tnow?: Date | string;\n}\n\nexport type ResolveIOAIManagerRecoveryGateAction =\n\t| 'allow'\n\t| 'collect_new_evidence'\n\t| 'reject_action'\n\t| 'manual_handoff'\n\t| 'complete';\n\nexport interface ResolveIOAIManagerRecoveryGateInput {\n\tcheckpoint: ResolveIOAIManagerRecoveryCheckpoint;\n\tcurrent?: ResolveIOAIManagerFailureRecord;\n\tproposedAction?: string;\n\toperatorApproved?: boolean;\n\tnow?: Date | string;\n}\n\nexport interface ResolveIOAIManagerRecoveryGateDecision {\n\taction: ResolveIOAIManagerRecoveryGateAction;\n\treason: string;\n\tcanRunProductRepair: boolean;\n\tcanRunExpensiveModel: boolean;\n\tshouldResetLoopBudget: boolean;\n\tshouldIncrementAttempt: boolean;\n\tnewEvidence: boolean;\n\tblockerFingerprint: string;\n\tevidenceHash: string;\n\tmissingEvidence: string[];\n\tcheckpoint: ResolveIOAIManagerRecoveryCheckpoint;\n}\n\nexport interface ResolveIOAIManagerRecoveryEvidenceProbeInput {\n\tcheckpoint: ResolveIOAIManagerRecoveryCheckpoint;\n\tcurrent?: ResolveIOAIManagerFailureRecord;\n\tnow?: Date | string;\n}\n\nexport interface ResolveIOAIManagerRecoveryActionPacketInput {\n\tplan?: ResolveIOAIManagerRecoveryPlan;\n\tcheckpoint: ResolveIOAIManagerRecoveryCheckpoint;\n\tprobe?: ResolveIOAIManagerRecoveryEvidenceProbe;\n\tcurrent?: ResolveIOAIManagerFailureRecord;\n\tnow?: Date | string;\n}\n\nexport interface ResolveIOAIManagerRecoveryPlanInput {\n\taction?: ResolveIOAIManagerAction | string;\n\treason?: string;\n\tfailureClass?: string;\n\tlane?: string;\n\tstepType?: string;\n\tblocker?: string;\n\tsameFailureCount?: number;\n\tpingPongCount?: number;\n\tnewEvidence?: boolean;\n\tproductRepairFailure?: boolean;\n\tchangedFiles?: string[];\n\tartifactPaths?: string[];\n\tmaxSameFailureRepeats?: number;\n}\n\nexport interface ResolveIOAIManagerPolicyInput {\n\thistory?: ResolveIOAIManagerFailureRecord[];\n\tcurrent?: ResolveIOAIManagerFailureRecord;\n\tmaxSameFailureRepeats?: number;\n\tmaxPingPongTransitions?: number;\n\tinfraFailureClasses?: string[];\n\tignoredFailureClasses?: string[];\n}\n\nexport interface ResolveIOAIManagerPolicyDecision {\n\taction: ResolveIOAIManagerAction;\n\treason: string;\n\tfailureClass: string;\n\tblockerFingerprint: string;\n\tevidenceHash: string;\n\tsameFailureCount: number;\n\tpingPongCount: number;\n\tnewEvidence: boolean;\n\tloopBudgetShouldReset: boolean;\n\tproductRepairFailure: boolean;\n\trecoveryPlan: ResolveIOAIManagerRecoveryPlan;\n\trecoveryCheckpoint: ResolveIOAIManagerRecoveryCheckpoint;\n\trecoveryEvidenceProbe: ResolveIOAIManagerRecoveryEvidenceProbe;\n\trecoveryAction: ResolveIOAIManagerRecoveryActionPacket;\n}\n\nfunction cleanText(value: any, max = 2000): string {\n\treturn String(value || '').replace(/\\s+/g, ' ').trim().slice(0, max);\n}\n\nfunction cleanList(values: any, limit = 40, max = 500): string[] {\n\tif (!Array.isArray(values)) {\n\t\treturn [];\n\t}\n\tconst result: string[] = [];\n\tfor (const value of values) {\n\t\tconst normalized = cleanText(value, max);\n\t\tif (normalized && !result.includes(normalized)) {\n\t\t\tresult.push(normalized);\n\t\t}\n\t\tif (result.length >= limit) {\n\t\t\tbreak;\n\t\t}\n\t}\n\treturn result;\n}\n\nfunction isoNow(value?: Date | string): string {\n\tif (value instanceof Date) {\n\t\treturn value.toISOString();\n\t}\n\tconst parsed = value ? new Date(value) : new Date();\n\tif (Number.isFinite(parsed.getTime())) {\n\t\treturn parsed.toISOString();\n\t}\n\treturn new Date().toISOString();\n}\n\nfunction stableHash(prefix: string, value: any): string {\n\tconst normalized = typeof value === 'string'\n\t\t? cleanText(value, 12000)\n\t\t: JSON.stringify(value || {});\n\tlet hash = 0;\n\tfor (let index = 0; index < normalized.length; index += 1) {\n\t\thash = ((hash << 5) - hash + normalized.charCodeAt(index)) | 0;\n\t}\n\treturn `${prefix}-${Math.abs(hash).toString(36) || '0'}`;\n}\n\nexport function normalizeResolveIOAIManagerFailureClass(value: any): string {\n\tconst normalized = cleanText(value, 80)\n\t\t.toLowerCase()\n\t\t.replace(/[\\s-]+/g, '_');\n\tif (!normalized) {\n\t\treturn 'unknown';\n\t}\n\tif (/^(qa_infra|infrastructure|harness|puppeteer|chrome|mongo|port|startup)$/.test(normalized)) {\n\t\treturn 'infra';\n\t}\n\tif (/^(build|compile|typescript|tsc|angular_build|ng_build)$/.test(normalized)) {\n\t\treturn 'compile';\n\t}\n\tif (/^(false_pass|route_only|missing_business_proof)$/.test(normalized)) {\n\t\treturn 'business';\n\t}\n\treturn normalized.slice(0, 80);\n}\n\nexport function fingerprintResolveIOAIManagerBlocker(value: any): string {\n\tconst normalized = cleanText(value, 4000)\n\t\t.toLowerCase()\n\t\t.replace(/[a-f0-9]{16,}/g, '<id>')\n\t\t.replace(/\\b\\d{2,}\\b/g, '<n>')\n\t\t.replace(/\\bline\\s+<n>\\b/g, 'line <n>')\n\t\t.replace(/https?:\\/\\/\\S+/g, '<url>')\n\t\t.replace(/\\s+/g, ' ')\n\t\t.trim();\n\treturn stableHash('mgr-blocker', normalized);\n}\n\nfunction resolveResolveIOAIManagerBlockerFingerprint(\n\trecord: ResolveIOAIManagerFailureRecord | undefined,\n\tfallback?: any\n): string {\n\tconst blockerText = cleanText(record?.blocker || record?.summary, 4000);\n\tif (blockerText) {\n\t\treturn fingerprintResolveIOAIManagerBlocker(blockerText);\n\t}\n\tconst explicit = cleanText(record?.blockerFingerprint, 120);\n\tif (explicit) {\n\t\treturn explicit;\n\t}\n\treturn fingerprintResolveIOAIManagerBlocker(fallback || '');\n}\n\nexport function hashResolveIOAIManagerEvidence(record: ResolveIOAIManagerFailureRecord | undefined): string {\n\tif (!record) {\n\t\treturn stableHash('mgr-evidence', '');\n\t}\n\tconst explicit = cleanText(record.evidenceHash, 120);\n\tif (explicit) {\n\t\treturn explicit;\n\t}\n\treturn stableHash('mgr-evidence', {\n\t\tfailureClass: normalizeResolveIOAIManagerFailureClass(record.failureClass),\n\t\tblocker: cleanText(record.blocker || record.summary, 2000),\n\t\tchangedFiles: cleanList(record.changedFiles, 80, 500).sort(),\n\t\tartifactPaths: cleanList(record.artifactPaths, 80, 500).sort()\n\t});\n}\n\nexport function buildResolveIOAIManagerRecoveryCheckpoint(\n\tinput: ResolveIOAIManagerRecoveryCheckpointInput\n): ResolveIOAIManagerRecoveryCheckpoint {\n\tconst plan = input.plan;\n\tconst current = input.current || {};\n\tconst blockerFingerprint = resolveResolveIOAIManagerBlockerFingerprint(current, plan.objective);\n\tconst evidenceHash = hashResolveIOAIManagerEvidence(current);\n\tconst changedFiles = cleanList(current.changedFiles, 80, 500);\n\tconst artifactPaths = cleanList(current.artifactPaths, 80, 500);\n\tconst previous = input.previousCheckpoint;\n\tconst sameCheckpointBase = previous\n\t\t&& previous.recoveryClass === plan.recoveryClass\n\t\t&& previous.lane === plan.lane\n\t\t&& previous.stepType === plan.stepType\n\t\t&& previous.blockerFingerprint === blockerFingerprint\n\t\t&& previous.evidenceHash === evidenceHash;\n\tconst attempts = sameCheckpointBase ? Math.max(0, Number(previous.attempts || 0)) + 1 : 1;\n\tconst status: ResolveIOAIManagerRecoveryCheckpointStatus = plan.recoveryClass === 'manual_handoff'\n\t\t? 'manual_handoff'\n\t\t: plan.recoveryClass === 'blocked_until_new_evidence'\n\t\t\t? 'parked'\n\t\t\t: plan.recoveryClass === 'advance_after_proof'\n\t\t\t\t? 'complete'\n\t\t\t\t: 'active';\n\tconst now = isoNow(input.now);\n\tconst checkpointId = stableHash('mgr-recovery', {\n\t\trecoveryClass: plan.recoveryClass,\n\t\tlane: plan.lane,\n\t\tstepType: plan.stepType,\n\t\tallowedAction: plan.allowedAction,\n\t\tblockerFingerprint,\n\t\tevidenceHash\n\t});\n\treturn {\n\t\tcheckpointId,\n\t\trecoveryClass: plan.recoveryClass,\n\t\tstatus,\n\t\tlane: plan.lane,\n\t\tstepType: plan.stepType,\n\t\tallowedAction: plan.allowedAction,\n\t\tproductRepairAllowed: plan.productRepairAllowed,\n\t\texpensiveModelAllowed: plan.expensiveModelAllowed,\n\t\tattempts,\n\t\tmaxAttemptsBeforePark: plan.maxAttemptsBeforePark,\n\t\tblockerFingerprint,\n\t\tevidenceHash,\n\t\tchangedFiles,\n\t\tartifactPaths,\n\t\trequiredEvidence: cleanList(plan.requiredEvidence, 40, 500),\n\t\tloopResetEvidence: cleanList(plan.loopResetEvidence, 40, 500),\n\t\tforbiddenActions: cleanList(plan.forbiddenActions, 40, 500),\n\t\tobjective: cleanText(plan.objective, 1000),\n\t\tnextActionLabel: cleanText(plan.nextActionLabel, 160),\n\t\tcreatedAt: sameCheckpointBase && previous?.createdAt ? previous.createdAt : now,\n\t\tupdatedAt: now\n\t};\n}\n\nfunction makeRecoveryEvidenceProbeStep(\n\tid: string,\n\tkind: ResolveIOAIManagerRecoveryEvidenceProbeStepKind,\n\tlabel: string,\n\tobjective: string,\n\tartifactExpectation: string,\n\tsuccessSignal: string,\n\toptions: Partial<Pick<ResolveIOAIManagerRecoveryEvidenceProbeStep, 'required' | 'commandHint'>> = {}\n): ResolveIOAIManagerRecoveryEvidenceProbeStep {\n\treturn {\n\t\tid,\n\t\tkind,\n\t\tlabel,\n\t\tobjective: cleanText(objective, 1000),\n\t\trequired: options.required !== false,\n\t\t...(options.commandHint ? { commandHint: cleanText(options.commandHint, 500) } : {}),\n\t\tartifactExpectation: cleanText(artifactExpectation, 500),\n\t\tsuccessSignal: cleanText(successSignal, 500)\n\t};\n}\n\nfunction recoveryEvidenceProbeStepsFor(\n\tcheckpoint: ResolveIOAIManagerRecoveryCheckpoint\n): ResolveIOAIManagerRecoveryEvidenceProbeStep[] {\n\tconst base = [\n\t\tmakeRecoveryEvidenceProbeStep(\n\t\t\t'snapshot_current_blocker',\n\t\t\t'rerun_same_gate',\n\t\t\t'Snapshot Current Blocker',\n\t\t\t'Capture the current blocker, failure class, evidence hash, changed files, and artifact paths before any new repair.',\n\t\t\t'runner-evidence/current-blocker.json',\n\t\t\t'Snapshot includes the same checkpointId, blockerFingerprint, and evidenceHashBefore.'\n\t\t)\n\t];\n\tif (checkpoint.recoveryClass === 'diagnosis_only' || checkpoint.recoveryClass === 'diagnosis_revision') {\n\t\treturn [\n\t\t\t...base,\n\t\t\tmakeRecoveryEvidenceProbeStep(\n\t\t\t\t'collect_read_only_root_cause_evidence',\n\t\t\t\t'read_only_diagnosis',\n\t\t\t\t'Collect Read-Only Root-Cause Evidence',\n\t\t\t\tcheckpoint.recoveryClass === 'diagnosis_revision'\n\t\t\t\t\t? 'Collect new evidence that proves the current owner_files or failing_path is wrong before broadening scope.'\n\t\t\t\t\t: 'Reproduce or classify the issue and record the exact customer complaint, expected result, observed result, route/module, and account context.',\n\t\t\t\t'runner-evidence/diagnosis-readonly.md',\n\t\t\t\t'Evidence supports one falsifiable accepted hypothesis and at least one rejected alternative.'\n\t\t\t),\n\t\t\tmakeRecoveryEvidenceProbeStep(\n\t\t\t\t'validate_diagnosis_gate',\n\t\t\t\t'read_only_diagnosis',\n\t\t\t\t'Validate Diagnosis Gate',\n\t\t\t\t'Validate issue_case, accepted_hypothesis, rejected_alternatives, failing_path, owner_files, and before/action/after proof_plan.',\n\t\t\t\t'runner-evidence/diagnosis-gate.json',\n\t\t\t\t'Diagnosis gate validates before product-code repair is allowed.'\n\t\t\t)\n\t\t];\n\t}\n\tif (checkpoint.recoveryClass === 'infra_repair') {\n\t\treturn [\n\t\t\t...base,\n\t\t\tmakeRecoveryEvidenceProbeStep(\n\t\t\t\t'run_infra_preflight',\n\t\t\t\t'infra_preflight',\n\t\t\t\t'Run Infra Preflight',\n\t\t\t\t'Check Puppeteer/Chrome, ports, Mongo/settings, cache state, startup commands, and server/client process health.',\n\t\t\t\t'runner-evidence/infra-preflight.log',\n\t\t\t\t'The same infra gate either passes or returns a new infra blocker hash.',\n\t\t\t\t{ commandHint: 'runner preflight: puppeteer/chrome/mongo/ports/startup' }\n\t\t\t)\n\t\t];\n\t}\n\tif (checkpoint.recoveryClass === 'compile_repair') {\n\t\treturn [\n\t\t\t...base,\n\t\t\tmakeRecoveryEvidenceProbeStep(\n\t\t\t\t'rerun_compile_gate',\n\t\t\t\t'compile_check',\n\t\t\t\t'Rerun Compile Gate',\n\t\t\t\t'Rerun the same deterministic compile/build command and capture the first actionable error.',\n\t\t\t\t'runner-evidence/compile.log',\n\t\t\t\t'Compile passes or the first failing error changes.',\n\t\t\t\t{ commandHint: 'same finite build/compile command from the failed gate' }\n\t\t\t)\n\t\t];\n\t}\n\tif (checkpoint.recoveryClass === 'journey_contract_repair') {\n\t\treturn [\n\t\t\t...base,\n\t\t\tmakeRecoveryEvidenceProbeStep(\n\t\t\t\t'validate_journey_contract',\n\t\t\t\t'journey_validation',\n\t\t\t\t'Validate Journey Contract',\n\t\t\t\t'Validate docs/APP_JOURNEY_CONTRACT.md has first/next/last workflow, route/action/method mapping, seeded data story, completion states, and QA assertions.',\n\t\t\t\t'runner-evidence/journey-contract-validation.json',\n\t\t\t\t'Journey contract validates before build tasks continue.'\n\t\t\t),\n\t\t\tmakeRecoveryEvidenceProbeStep(\n\t\t\t\t'verify_hub_workflow_mapping',\n\t\t\t\t'journey_validation',\n\t\t\t\t'Verify Hub Workflow Mapping',\n\t\t\t\t'Confirm the hub CTA and screen sequence implement the journey contract instead of link-only navigation.',\n\t\t\t\t'runner-evidence/hub-workflow-map.json',\n\t\t\t\t'Primary hub action maps to a real route/action/method/calculation and next state.'\n\t\t\t)\n\t\t];\n\t}\n\tif (checkpoint.recoveryClass === 'business_proof_repair' || checkpoint.recoveryClass === 'product_code_repair') {\n\t\treturn [\n\t\t\t...base,\n\t\t\tmakeRecoveryEvidenceProbeStep(\n\t\t\t\t'rerun_business_assertion',\n\t\t\t\t'business_assertion',\n\t\t\t\t'Rerun Business Assertion',\n\t\t\t\t'Run the exact issue/app promise proof and capture before/action/after DOM/data evidence.',\n\t\t\t\t'runner-evidence/business-assertion.json',\n\t\t\t\t'Business assertion passes, or the observed failure changes with a new artifact path.'\n\t\t\t),\n\t\t\tmakeRecoveryEvidenceProbeStep(\n\t\t\t\t'check_diff_scope',\n\t\t\t\t'diff_scope_check',\n\t\t\t\t'Check Diff Scope',\n\t\t\t\t'Compare changed files against the current diagnosis/journey owner scope before another code repair.',\n\t\t\t\t'runner-evidence/diff-scope.json',\n\t\t\t\t'Changed files are in scope, or diagnosis/journey scope is revised with evidence.'\n\t\t\t)\n\t\t];\n\t}\n\tif (checkpoint.recoveryClass === 'release_repair') {\n\t\treturn [\n\t\t\t...base,\n\t\t\tmakeRecoveryEvidenceProbeStep(\n\t\t\t\t'collect_release_status',\n\t\t\t\t'release_status',\n\t\t\t\t'Collect Release Status',\n\t\t\t\t'Collect publish/deploy/build-instance/domain/CloudFront status and the last actionable deploy error.',\n\t\t\t\t'runner-evidence/release-status.json',\n\t\t\t\t'Release gate passes or returns a new release blocker hash without product-code repair.'\n\t\t\t)\n\t\t];\n\t}\n\tif (checkpoint.recoveryClass === 'manual_handoff') {\n\t\treturn [\n\t\t\t...base,\n\t\t\tmakeRecoveryEvidenceProbeStep(\n\t\t\t\t'operator_review_checkpoint',\n\t\t\t\t'operator_review',\n\t\t\t\t'Operator Review Checkpoint',\n\t\t\t\t'Expose budget, blocker, evidence hash, and the minimum policy/scope change needed before another expensive loop.',\n\t\t\t\t'runner-evidence/operator-review.json',\n\t\t\t\t'Operator approves a new scope/policy or provides new external evidence.'\n\t\t\t)\n\t\t];\n\t}\n\treturn [\n\t\t...base,\n\t\tmakeRecoveryEvidenceProbeStep(\n\t\t\t'rerun_same_deterministic_gate',\n\t\t\t'rerun_same_gate',\n\t\t\t'Rerun Same Deterministic Gate',\n\t\t\t'Rerun the exact failed check and capture new logs/artifacts without changing product code first.',\n\t\t\t'runner-evidence/retry-gate.log',\n\t\t\t'Gate passes, or evidenceHash/blockerFingerprint/artifactPaths change.'\n\t\t)\n\t];\n}\n\nexport function buildResolveIOAIManagerRecoveryEvidenceProbe(\n\tinput: ResolveIOAIManagerRecoveryEvidenceProbeInput\n): ResolveIOAIManagerRecoveryEvidenceProbe {\n\tconst checkpoint = input.checkpoint;\n\tconst now = isoNow(input.now);\n\tconst steps = recoveryEvidenceProbeStepsFor(checkpoint);\n\tconst requiredArtifacts = Array.from(new Set(steps\n\t\t.filter((step) => step.required)\n\t\t.map((step) => step.artifactExpectation)\n\t\t.filter(Boolean)));\n\treturn {\n\t\tprobeId: stableHash('mgr-probe', {\n\t\t\tcheckpointId: checkpoint.checkpointId,\n\t\t\trecoveryClass: checkpoint.recoveryClass,\n\t\t\tevidenceHash: checkpoint.evidenceHash,\n\t\t\tblockerFingerprint: checkpoint.blockerFingerprint\n\t\t}),\n\t\tcheckpointId: checkpoint.checkpointId,\n\t\trecoveryClass: checkpoint.recoveryClass,\n\t\tlane: checkpoint.lane,\n\t\tstepType: checkpoint.stepType,\n\t\tobjective: checkpoint.status === 'parked'\n\t\t\t? 'Collect new evidence before any additional expensive model/code repair.'\n\t\t\t: cleanText(checkpoint.objective, 1000),\n\t\tevidenceOnly: checkpoint.status === 'parked'\n\t\t\t|| checkpoint.recoveryClass === 'diagnosis_only'\n\t\t\t|| checkpoint.recoveryClass === 'diagnosis_revision'\n\t\t\t|| checkpoint.recoveryClass === 'infra_repair'\n\t\t\t|| checkpoint.recoveryClass === 'compile_repair'\n\t\t\t|| checkpoint.recoveryClass === 'release_repair',\n\t\tproductRepairAllowed: checkpoint.productRepairAllowed && checkpoint.status !== 'parked',\n\t\texpensiveModelAllowed: checkpoint.expensiveModelAllowed && checkpoint.status !== 'parked',\n\t\tevidenceHashBefore: checkpoint.evidenceHash,\n\t\tblockerFingerprint: checkpoint.blockerFingerprint,\n\t\tsteps,\n\t\trequiredArtifacts,\n\t\tacceptanceEvidence: Array.from(new Set([\n\t\t\t...checkpoint.requiredEvidence,\n\t\t\t...checkpoint.loopResetEvidence,\n\t\t\t...steps.map((step) => step.successSignal)\n\t\t].map((entry) => cleanText(entry, 500)).filter(Boolean))).slice(0, 30),\n\t\tstopConditions: Array.from(new Set([\n\t\t\t...checkpoint.forbiddenActions,\n\t\t\t'no new evidence hash',\n\t\t\t'no new artifact path',\n\t\t\t'product-code repair requested while evidenceOnly is true'\n\t\t].map((entry) => cleanText(entry, 500)).filter(Boolean))).slice(0, 30),\n\t\tloopResetEvidence: checkpoint.loopResetEvidence,\n\t\tcreatedAt: now\n\t};\n}\n\nfunction recoveryAutomationModeFor(\n\tcheckpoint: ResolveIOAIManagerRecoveryCheckpoint\n): ResolveIOAIManagerRecoveryAutomationMode {\n\tif (checkpoint.status === 'manual_handoff' || checkpoint.recoveryClass === 'manual_handoff') {\n\t\treturn 'manual_review';\n\t}\n\tif (checkpoint.status === 'complete' || checkpoint.recoveryClass === 'advance_after_proof') {\n\t\treturn 'advance';\n\t}\n\tif (checkpoint.status === 'parked' || checkpoint.recoveryClass === 'blocked_until_new_evidence') {\n\t\treturn 'collect_evidence';\n\t}\n\tif (checkpoint.recoveryClass === 'diagnosis_only' || checkpoint.recoveryClass === 'diagnosis_revision') {\n\t\treturn 'read_only_diagnosis';\n\t}\n\tif (checkpoint.recoveryClass === 'infra_repair') {\n\t\treturn 'repair_infra';\n\t}\n\tif (checkpoint.recoveryClass === 'compile_repair') {\n\t\treturn 'repair_compile';\n\t}\n\tif (checkpoint.recoveryClass === 'journey_contract_repair') {\n\t\treturn 'repair_journey_contract';\n\t}\n\tif (checkpoint.recoveryClass === 'business_proof_repair') {\n\t\treturn 'repair_business_assertion';\n\t}\n\tif (checkpoint.recoveryClass === 'release_repair') {\n\t\treturn 'repair_release';\n\t}\n\tif (checkpoint.recoveryClass === 'product_code_repair') {\n\t\treturn 'targeted_product_repair';\n\t}\n\treturn 'continue_gate';\n}\n\nfunction recoveryActionLabelFor(mode: ResolveIOAIManagerRecoveryAutomationMode, checkpoint: ResolveIOAIManagerRecoveryCheckpoint): string {\n\tconst explicit = cleanText(checkpoint.nextActionLabel, 120);\n\tif (explicit && mode !== 'collect_evidence') {\n\t\treturn explicit;\n\t}\n\tconst labels: Record<ResolveIOAIManagerRecoveryAutomationMode, string> = {\n\t\tadvance: 'Advance To Next Gate',\n\t\tcollect_evidence: 'Collect New Evidence',\n\t\tread_only_diagnosis: 'Run Diagnosis Evidence Pass',\n\t\trepair_infra: 'Repair Infra Gate',\n\t\trepair_compile: 'Repair Compile Gate',\n\t\trepair_journey_contract: 'Repair Journey Contract',\n\t\trepair_business_assertion: 'Repair Business Proof',\n\t\trepair_release: 'Repair Release Gate',\n\t\ttargeted_product_repair: 'Run Targeted Repair',\n\t\tmanual_review: 'Manual Review',\n\t\tcontinue_gate: 'Continue Current Gate'\n\t};\n\treturn labels[mode];\n}\n\nfunction recoveryActionAutoRunnable(\n\tmode: ResolveIOAIManagerRecoveryAutomationMode,\n\tprobe: ResolveIOAIManagerRecoveryEvidenceProbe\n): boolean {\n\tif (mode === 'manual_review') {\n\t\treturn false;\n\t}\n\tif (mode === 'advance' || mode === 'continue_gate') {\n\t\treturn true;\n\t}\n\tif (mode === 'targeted_product_repair' || mode === 'read_only_diagnosis' || mode === 'repair_journey_contract' || mode === 'repair_business_assertion') {\n\t\treturn true;\n\t}\n\treturn probe.steps.some((step) => step.commandHint || step.kind === 'rerun_same_gate' || step.kind === 'release_status' || step.kind === 'diff_scope_check');\n}\n\nexport function buildResolveIOAIManagerRecoveryActionPacket(\n\tinput: ResolveIOAIManagerRecoveryActionPacketInput\n): ResolveIOAIManagerRecoveryActionPacket {\n\tconst checkpoint = input.checkpoint;\n\tconst probe = input.probe || buildResolveIOAIManagerRecoveryEvidenceProbe({\n\t\tcheckpoint,\n\t\tcurrent: input.current,\n\t\tnow: input.now\n\t});\n\tconst mode = recoveryAutomationModeFor(checkpoint);\n\tconst primaryStep = probe.steps.find((step) => step.required && step.id !== 'snapshot_current_blocker')\n\t\t|| probe.steps.find((step) => step.required)\n\t\t|| probe.steps[0];\n\tconst evidenceOnly = probe.evidenceOnly || mode === 'collect_evidence' || mode === 'repair_infra' || mode === 'repair_compile' || mode === 'repair_release';\n\tconst requireNewEvidence = mode === 'collect_evidence'\n\t\t|| checkpoint.status === 'parked'\n\t\t|| checkpoint.attempts >= checkpoint.maxAttemptsBeforePark;\n\tconst stopWhen = Array.from(new Set([\n\t\t...probe.stopConditions,\n\t\t...(requireNewEvidence ? ['same blocker fingerprint and same evidence hash after probe'] : [])\n\t].map((entry) => cleanText(entry, 500)).filter(Boolean))).slice(0, 30);\n\tconst resetLoopWhen = Array.from(new Set([\n\t\t...checkpoint.loopResetEvidence,\n\t\t...probe.loopResetEvidence,\n\t\t...(requireNewEvidence ? ['changed evidence hash', 'new artifact path'] : [])\n\t].map((entry) => cleanText(entry, 500)).filter(Boolean))).slice(0, 30);\n\tconst nextCommands = probe.steps\n\t\t.map((step) => cleanText(step.commandHint || `${step.kind}:${step.id}`, 500))\n\t\t.filter(Boolean)\n\t\t.slice(0, 12);\n\tconst now = isoNow(input.now);\n\treturn {\n\t\tactionId: stableHash('mgr-action', {\n\t\t\tcheckpointId: checkpoint.checkpointId,\n\t\t\tprobeId: probe.probeId,\n\t\t\tmode,\n\t\t\tevidenceHash: checkpoint.evidenceHash,\n\t\t\tblockerFingerprint: checkpoint.blockerFingerprint\n\t\t}),\n\t\tcheckpointId: checkpoint.checkpointId,\n\t\tprobeId: probe.probeId,\n\t\trecoveryClass: checkpoint.recoveryClass,\n\t\tmode,\n\t\tlabel: recoveryActionLabelFor(mode, checkpoint),\n\t\tlane: checkpoint.lane,\n\t\tstepType: checkpoint.stepType,\n\t\tprimaryStepKind: primaryStep?.kind || 'none',\n\t\tobjective: mode === 'collect_evidence'\n\t\t\t? probe.objective\n\t\t\t: cleanText(checkpoint.objective || probe.objective, 1000),\n\t\tevidenceOnly,\n\t\tautoRunnable: recoveryActionAutoRunnable(mode, probe),\n\t\tproductRepairAllowed: checkpoint.productRepairAllowed && !evidenceOnly && checkpoint.status !== 'parked',\n\t\texpensiveModelAllowed: checkpoint.expensiveModelAllowed && checkpoint.status !== 'parked',\n\t\tcanResetLoopAfterEvidence: resetLoopWhen.length > 0,\n\t\tmaxAttemptsBeforePark: checkpoint.maxAttemptsBeforePark,\n\t\trequiredArtifacts: probe.requiredArtifacts.slice(0, 20),\n\t\tnextCommands,\n\t\tsuccessCriteria: probe.acceptanceEvidence.slice(0, 20),\n\t\tretryPolicy: {\n\t\t\tallowImmediateRetry: checkpoint.status !== 'parked' && mode !== 'manual_review',\n\t\t\trequireNewEvidence,\n\t\t\tresetLoopWhen,\n\t\t\tstopWhen\n\t\t},\n\t\t...(mode === 'collect_evidence' ? { blockedReason: 'Manager parked this loop until the recovery action records new evidence.' } : {}),\n\t\tcreatedAt: now\n\t};\n}\n\nfunction dispatchActionForMode(mode: ResolveIOAIManagerRecoveryAutomationMode): ResolveIOAIManagerRecoveryActionDispatchAction {\n\tconst map: Record<ResolveIOAIManagerRecoveryAutomationMode, ResolveIOAIManagerRecoveryActionDispatchAction> = {\n\t\tadvance: 'advance',\n\t\tcollect_evidence: 'run_evidence_probe',\n\t\tread_only_diagnosis: 'run_read_only_diagnosis',\n\t\trepair_infra: 'run_infra_repair',\n\t\trepair_compile: 'run_compile_repair',\n\t\trepair_journey_contract: 'run_journey_contract_repair',\n\t\trepair_business_assertion: 'run_business_assertion_repair',\n\t\trepair_release: 'run_release_repair',\n\t\ttargeted_product_repair: 'run_targeted_product_repair',\n\t\tmanual_review: 'park_manual',\n\t\tcontinue_gate: 'continue_gate'\n\t};\n\treturn map[mode] || 'park_manual';\n}\n\nfunction buildRecoveryDispatchRecord(\n\taction: ResolveIOAIManagerRecoveryActionPacket,\n\tdispatchAction: ResolveIOAIManagerRecoveryActionDispatchAction,\n\tstatus: ResolveIOAIManagerRecoveryActionDispatchStatus,\n\treason: string,\n\tcurrent?: ResolveIOAIManagerFailureRecord,\n\tnow?: Date | string\n): ResolveIOAIManagerRecoveryActionDispatchRecord {\n\tconst evidenceHash = current?.evidenceHash || action.checkpointId || action.actionId;\n\tconst blockerFingerprint = resolveResolveIOAIManagerBlockerFingerprint(current, action.objective);\n\tconst artifactPaths = cleanList(current?.artifactPaths, 20, 500);\n\tconst createdAt = isoNow(now);\n\treturn {\n\t\tdispatchId: stableHash('mgr-dispatch', {\n\t\t\tactionId: action.actionId,\n\t\t\tdispatchAction,\n\t\t\tevidenceHash,\n\t\t\tblockerFingerprint,\n\t\t\tstatus\n\t\t}),\n\t\tactionId: action.actionId,\n\t\tcheckpointId: action.checkpointId,\n\t\tprobeId: action.probeId,\n\t\tmode: action.mode,\n\t\tdispatchAction,\n\t\tstatus,\n\t\tevidenceHash,\n\t\tblockerFingerprint,\n\t\tproductRepairAllowed: action.productRepairAllowed && dispatchAction === 'run_targeted_product_repair',\n\t\texpensiveModelAllowed: action.expensiveModelAllowed && dispatchAction !== 'run_evidence_probe',\n\t\treason,\n\t\tartifactPaths,\n\t\t...(status === 'started' ? { startedAt: createdAt } : {}),\n\t\t...(status === 'completed' ? { completedAt: createdAt } : {}),\n\t\tcreatedAt\n\t};\n}\n\nexport function decideResolveIOAIManagerRecoveryActionDispatch(\n\tinput: ResolveIOAIManagerRecoveryActionDispatchInput\n): ResolveIOAIManagerRecoveryActionDispatchDecision {\n\tconst action = input.action;\n\tconst history = Array.isArray(input.history) ? input.history.filter(Boolean).slice(-50) : [];\n\tconst current = input.current || {};\n\tif (!action) {\n\t\treturn {\n\t\t\tdispatchAction: 'park_manual',\n\t\t\tallowed: false,\n\t\t\treason: 'recovery_dispatch_missing_action',\n\t\t\tstatus: 'parked',\n\t\t\tcanRunProductRepair: false,\n\t\t\tcanRunExpensiveModel: false,\n\t\t\tshouldRecordDispatch: false,\n\t\t\trequiresNewEvidence: true,\n\t\t\tnewEvidence: false\n\t\t};\n\t}\n\tconst dispatchAction = dispatchActionForMode(action.mode);\n\tconst evidenceHash = current.evidenceHash || action.checkpointId || action.actionId;\n\tconst blockerFingerprint = resolveResolveIOAIManagerBlockerFingerprint(current, action.objective);\n\tconst sameActionHistory = history.filter((entry) => entry.actionId === action.actionId);\n\tconst sameEvidenceHistory = sameActionHistory.filter((entry) => entry.evidenceHash === evidenceHash\n\t\t&& entry.blockerFingerprint === blockerFingerprint);\n\tconst activeDispatch = sameEvidenceHistory.find((entry) => entry.status === 'queued' || entry.status === 'started');\n\tconst completedDispatch = sameEvidenceHistory.find((entry) => entry.status === 'completed' || entry.status === 'failed');\n\tconst newEvidence = sameActionHistory.length > 0 && sameEvidenceHistory.length === 0;\n\tconst requiresNewEvidence = action.retryPolicy.requireNewEvidence === true;\n\tconst manualOnly = action.mode === 'manual_review' || !action.autoRunnable;\n\tconst productDispatch = dispatchAction === 'run_targeted_product_repair';\n\tconst expensiveDispatch = !['run_evidence_probe', 'advance', 'continue_gate', 'park_manual'].includes(dispatchAction);\n\tif (manualOnly && input.operatorApproved !== true) {\n\t\tconst record = buildRecoveryDispatchRecord(action, 'park_manual', 'parked', 'recovery_dispatch_requires_manual_review', current, input.now);\n\t\treturn {\n\t\t\tdispatchAction: 'park_manual',\n\t\t\tallowed: false,\n\t\t\treason: record.reason,\n\t\t\tstatus: 'parked',\n\t\t\tcanRunProductRepair: false,\n\t\t\tcanRunExpensiveModel: false,\n\t\t\tshouldRecordDispatch: true,\n\t\t\trequiresNewEvidence,\n\t\t\tnewEvidence,\n\t\t\tdispatchRecord: record\n\t\t};\n\t}\n\tif (productDispatch && action.productRepairAllowed !== true) {\n\t\tconst record = buildRecoveryDispatchRecord(action, 'park_manual', 'parked', 'recovery_dispatch_product_repair_not_allowed', current, input.now);\n\t\treturn {\n\t\t\tdispatchAction: 'park_manual',\n\t\t\tallowed: false,\n\t\t\treason: record.reason,\n\t\t\tstatus: 'parked',\n\t\t\tcanRunProductRepair: false,\n\t\t\tcanRunExpensiveModel: false,\n\t\t\tshouldRecordDispatch: true,\n\t\t\trequiresNewEvidence: true,\n\t\t\tnewEvidence,\n\t\t\tdispatchRecord: record\n\t\t};\n\t}\n\tif (activeDispatch) {\n\t\treturn {\n\t\t\tdispatchAction: 'park_manual',\n\t\t\tallowed: false,\n\t\t\treason: 'recovery_dispatch_already_running_for_same_evidence',\n\t\t\tstatus: 'parked',\n\t\t\tcanRunProductRepair: false,\n\t\t\tcanRunExpensiveModel: false,\n\t\t\tshouldRecordDispatch: false,\n\t\t\trequiresNewEvidence: true,\n\t\t\tnewEvidence: false\n\t\t};\n\t}\n\tif (completedDispatch && requiresNewEvidence && !newEvidence) {\n\t\tconst record = buildRecoveryDispatchRecord(action, 'park_manual', 'parked', 'recovery_dispatch_same_evidence_already_attempted', current, input.now);\n\t\treturn {\n\t\t\tdispatchAction: 'park_manual',\n\t\t\tallowed: false,\n\t\t\treason: record.reason,\n\t\t\tstatus: 'parked',\n\t\t\tcanRunProductRepair: false,\n\t\t\tcanRunExpensiveModel: false,\n\t\t\tshouldRecordDispatch: true,\n\t\t\trequiresNewEvidence: true,\n\t\t\tnewEvidence: false,\n\t\t\tdispatchRecord: record\n\t\t};\n\t}\n\tconst status: ResolveIOAIManagerRecoveryActionDispatchStatus = dispatchAction === 'advance' || dispatchAction === 'continue_gate'\n\t\t? 'completed'\n\t\t: 'started';\n\tconst record = buildRecoveryDispatchRecord(action, dispatchAction, status, 'recovery_dispatch_allowed', current, input.now);\n\treturn {\n\t\tdispatchAction,\n\t\tallowed: true,\n\t\treason: 'recovery_dispatch_allowed',\n\t\tstatus,\n\t\tcanRunProductRepair: productDispatch && action.productRepairAllowed === true,\n\t\tcanRunExpensiveModel: expensiveDispatch && action.expensiveModelAllowed === true,\n\t\tshouldRecordDispatch: true,\n\t\trequiresNewEvidence,\n\t\tnewEvidence,\n\t\tdispatchRecord: record\n\t};\n}\n\nexport function appendResolveIOAIManagerRecoveryActionDispatch(\n\thistory: ResolveIOAIManagerRecoveryActionDispatchRecord[] | undefined,\n\trecord: ResolveIOAIManagerRecoveryActionDispatchRecord | undefined,\n\tlimit = 50\n): ResolveIOAIManagerRecoveryActionDispatchRecord[] {\n\tconst existing = Array.isArray(history) ? history.filter(Boolean) : [];\n\tif (!record) {\n\t\treturn existing.slice(-limit);\n\t}\n\tconst deduped = existing.filter((entry) => entry.dispatchId !== record.dispatchId);\n\treturn [...deduped, record].slice(-limit);\n}\n\nfunction listHasNewEntry(current: string[], previous: string[]): boolean {\n\tconst existing = new Set(previous.map((entry) => cleanText(entry, 500)).filter(Boolean));\n\treturn current.some((entry) => {\n\t\tconst normalized = cleanText(entry, 500);\n\t\treturn !!normalized && !existing.has(normalized);\n\t});\n}\n\nfunction proposedActionIsProductRepair(value: any): boolean {\n\tconst normalized = cleanText(value, 120);\n\treturn /product|code|repair|build|business|journey|workflow/i.test(normalized)\n\t\t&& !/infra|compile|diagnosis|manual|evidence|release|publish/i.test(normalized);\n}\n\nexport function decideResolveIOAIManagerRecoveryGate(\n\tinput: ResolveIOAIManagerRecoveryGateInput\n): ResolveIOAIManagerRecoveryGateDecision {\n\tconst checkpoint = input.checkpoint;\n\tconst hasCurrent = !!input.current;\n\tconst current = input.current || {};\n\tconst blockerFingerprint = hasCurrent\n\t\t? resolveResolveIOAIManagerBlockerFingerprint(current, checkpoint.objective)\n\t\t: checkpoint.blockerFingerprint;\n\tconst evidenceHash = hasCurrent ? hashResolveIOAIManagerEvidence(current) : checkpoint.evidenceHash;\n\tconst changedFiles = hasCurrent ? cleanList(current.changedFiles, 80, 500) : checkpoint.changedFiles;\n\tconst artifactPaths = hasCurrent ? cleanList(current.artifactPaths, 80, 500) : checkpoint.artifactPaths;\n\tconst evidenceChanged = evidenceHash !== checkpoint.evidenceHash\n\t\t|| blockerFingerprint !== checkpoint.blockerFingerprint\n\t\t|| listHasNewEntry(changedFiles, checkpoint.changedFiles)\n\t\t|| listHasNewEntry(artifactPaths, checkpoint.artifactPaths);\n\tconst proposedAction = cleanText(input.proposedAction || checkpoint.allowedAction, 120);\n\tconst productRepairRequested = proposedActionIsProductRepair(proposedAction);\n\tconst missingEvidence = checkpoint.requiredEvidence.filter((required) => {\n\t\tconst normalized = cleanText(required, 120).toLowerCase();\n\t\tif (!normalized) {\n\t\t\treturn false;\n\t\t}\n\t\tif (/artifact|log|proof|gate|evidence/.test(normalized)) {\n\t\t\treturn !artifactPaths.length && !current.evidenceHash;\n\t\t}\n\t\tif (/diff|changed files|owner|scope|file/.test(normalized)) {\n\t\t\treturn !changedFiles.length;\n\t\t}\n\t\treturn false;\n\t});\n\tconst makeDecision = (\n\t\taction: ResolveIOAIManagerRecoveryGateAction,\n\t\treason: string,\n\t\toverrides: Partial<ResolveIOAIManagerRecoveryGateDecision> = {}\n\t): ResolveIOAIManagerRecoveryGateDecision => ({\n\t\taction,\n\t\treason,\n\t\tcanRunProductRepair: checkpoint.productRepairAllowed,\n\t\tcanRunExpensiveModel: checkpoint.expensiveModelAllowed,\n\t\tshouldResetLoopBudget: false,\n\t\tshouldIncrementAttempt: action === 'allow',\n\t\tnewEvidence: evidenceChanged,\n\t\tblockerFingerprint,\n\t\tevidenceHash,\n\t\tmissingEvidence,\n\t\tcheckpoint: {\n\t\t\t...checkpoint,\n\t\t\tupdatedAt: isoNow(input.now)\n\t\t},\n\t\t...overrides\n\t});\n\n\tif (checkpoint.status === 'complete') {\n\t\treturn makeDecision('complete', 'recovery_gate_checkpoint_already_complete', {\n\t\t\tcanRunProductRepair: false,\n\t\t\tcanRunExpensiveModel: false,\n\t\t\tshouldIncrementAttempt: false\n\t\t});\n\t}\n\tif (checkpoint.status === 'manual_handoff' && input.operatorApproved !== true) {\n\t\treturn makeDecision('manual_handoff', 'recovery_gate_manual_handoff_requires_operator_approval', {\n\t\t\tcanRunProductRepair: false,\n\t\t\tcanRunExpensiveModel: false,\n\t\t\tshouldIncrementAttempt: false\n\t\t});\n\t}\n\tif (productRepairRequested && !checkpoint.productRepairAllowed) {\n\t\treturn makeDecision('reject_action', 'recovery_gate_product_repair_not_allowed_for_checkpoint', {\n\t\t\tcanRunProductRepair: false,\n\t\t\tcanRunExpensiveModel: false,\n\t\t\tshouldIncrementAttempt: false\n\t\t});\n\t}\n\tif (checkpoint.status === 'parked' && !evidenceChanged) {\n\t\treturn makeDecision('collect_new_evidence', 'recovery_gate_parked_until_new_evidence', {\n\t\t\tcanRunProductRepair: false,\n\t\t\tcanRunExpensiveModel: false,\n\t\t\tshouldIncrementAttempt: false\n\t\t});\n\t}\n\tif (checkpoint.attempts >= checkpoint.maxAttemptsBeforePark && !evidenceChanged) {\n\t\treturn makeDecision('collect_new_evidence', 'recovery_gate_attempt_limit_requires_new_evidence', {\n\t\t\tcanRunProductRepair: false,\n\t\t\tcanRunExpensiveModel: false,\n\t\t\tshouldIncrementAttempt: false\n\t\t});\n\t}\n\tif (evidenceChanged) {\n\t\tconst currentFailureClass = normalizeResolveIOAIManagerFailureClass(current.failureClass);\n\t\tconst currentCanRunProductRepair = checkpoint.productRepairAllowed\n\t\t\t|| !/^(infra|compile|diagnosis|release)$/i.test(currentFailureClass);\n\t\treturn makeDecision('allow', 'recovery_gate_new_evidence_unblocks_retry', {\n\t\t\tcanRunProductRepair: currentCanRunProductRepair,\n\t\t\tcanRunExpensiveModel: checkpoint.expensiveModelAllowed || currentCanRunProductRepair,\n\t\t\tshouldResetLoopBudget: true\n\t\t});\n\t}\n\treturn makeDecision('allow', 'recovery_gate_action_allowed');\n}\n\nfunction failureKey(record: ResolveIOAIManagerFailureRecord | undefined): string {\n\tif (!record) {\n\t\treturn '';\n\t}\n\tconst failureClass = normalizeResolveIOAIManagerFailureClass(record.failureClass);\n\tconst blockerFingerprint = resolveResolveIOAIManagerBlockerFingerprint(record);\n\treturn `${cleanText(record.lane, 80)}:${cleanText(record.stepType, 80)}:${failureClass}:${blockerFingerprint}`;\n}\n\nfunction failureEvidenceKey(record: ResolveIOAIManagerFailureRecord | undefined): string {\n\treturn `${failureKey(record)}:${hashResolveIOAIManagerEvidence(record)}`;\n}\n\nfunction isPassingOutcome(record: ResolveIOAIManagerFailureRecord | undefined): boolean {\n\treturn /^(pass|accepted|ready_to_publish|published|ready_for_merge|complete|completed)$/i.test(cleanText(record?.outcome, 80));\n}\n\nfunction isManualOutcome(record: ResolveIOAIManagerFailureRecord | undefined): boolean {\n\treturn /^(manual_handoff|park_manual|stopped)$/i.test(cleanText(record?.outcome, 80));\n}\n\nexport function buildResolveIOAIManagerRecoveryPlan(input: ResolveIOAIManagerRecoveryPlanInput = {}): ResolveIOAIManagerRecoveryPlan {\n\tconst action = cleanText(input.action, 80) || 'continue';\n\tconst reason = cleanText(input.reason, 240);\n\tconst failureClass = normalizeResolveIOAIManagerFailureClass(input.failureClass);\n\tconst lane = cleanText(input.lane, 80) || 'supervisor';\n\tconst stepType = cleanText(input.stepType, 80) || 'unknown';\n\tconst blocker = cleanText(input.blocker, 700);\n\tconst changedFiles = cleanList(input.changedFiles, 12, 240);\n\tconst artifactPaths = cleanList(input.artifactPaths, 12, 240);\n\tconst maxAttemptsBeforePark = Math.max(1, Number(input.maxSameFailureRepeats || 3) || 3);\n\tconst commonNotes = [\n\t\treason ? `policy_reason=${reason}` : '',\n\t\tblocker ? `blocker=${blocker}` : '',\n\t\tchangedFiles.length ? `changed_files=${changedFiles.join(', ')}` : '',\n\t\tartifactPaths.length ? `artifacts=${artifactPaths.join(', ')}` : ''\n\t].filter(Boolean);\n\tconst base: Omit<ResolveIOAIManagerRecoveryPlan, 'recoveryClass' | 'nextActionLabel' | 'objective' | 'allowedAction' | 'productRepairAllowed' | 'expensiveModelAllowed' | 'finiteSteps' | 'requiredEvidence' | 'loopResetEvidence' | 'forbiddenActions'> = {\n\t\tlane,\n\t\tstepType,\n\t\tmaxAttemptsBeforePark,\n\t\tnotes: commonNotes\n\t};\n\tconst makePlan = (\n\t\trecoveryClass: ResolveIOAIManagerRecoveryClass,\n\t\tnextActionLabel: string,\n\t\tobjective: string,\n\t\tallowedAction: string,\n\t\tproductRepairAllowed: boolean,\n\t\texpensiveModelAllowed: boolean,\n\t\tfiniteSteps: string[],\n\t\trequiredEvidence: string[],\n\t\tloopResetEvidence: string[],\n\t\tforbiddenActions: string[]\n\t): ResolveIOAIManagerRecoveryPlan => ({\n\t\t...base,\n\t\trecoveryClass,\n\t\tnextActionLabel,\n\t\tobjective,\n\t\tallowedAction,\n\t\tproductRepairAllowed,\n\t\texpensiveModelAllowed,\n\t\tfiniteSteps,\n\t\trequiredEvidence,\n\t\tloopResetEvidence,\n\t\tforbiddenActions\n\t});\n\tif (action === 'reset_loop_budget') {\n\t\treturn makePlan(\n\t\t\t'advance_after_proof',\n\t\t\t'Advance After Proof',\n\t\t\t'Checkpoint the passing evidence and move to the next required gate.',\n\t\t\t'advance_to_next_gate',\n\t\t\tfalse,\n\t\t\tfalse,\n\t\t\t[\n\t\t\t\t'Record the passing artifact, changed files, and gate result.',\n\t\t\t\t'Reset the loop counter because a real gate passed.',\n\t\t\t\t'Select the next unmet deterministic gate instead of repeating the previous repair.'\n\t\t\t],\n\t\t\t['passing gate record', 'artifact or log proving the passed check'],\n\t\t\t['new passing gate result', 'new business proof artifact'],\n\t\t\t['rerun the same repair after a pass', 'mark accepted without the required downstream gate']\n\t\t);\n\t}\n\tif (action === 'manual_handoff') {\n\t\treturn makePlan(\n\t\t\t'manual_handoff',\n\t\t\t'Manual Review',\n\t\t\t'Stop autonomous repair and expose the blocker, evidence, and last safe state.',\n\t\t\t'manual_review_only',\n\t\t\tfalse,\n\t\t\tfalse,\n\t\t\t[\n\t\t\t\t'Freeze further product-code edits.',\n\t\t\t\t'Show the blocker fingerprint, evidence hash, and prior attempts.',\n\t\t\t\t'Require a human edit to classification, scope, or retry policy before another model/code loop.'\n\t\t\t],\n\t\t\t['blocker fingerprint', 'evidence hash', 'attempt history'],\n\t\t\t['manual policy change', 'new external evidence'],\n\t\t\t['start another automatic model repair', 'hide the failed evidence']\n\t\t);\n\t}\n\tif (action === 'budget_stop') {\n\t\treturn makePlan(\n\t\t\t'manual_handoff',\n\t\t\t'Budget Stop Review',\n\t\t\t'Stop autonomous model/code loops until a cheaper scoped next action is selected.',\n\t\t\t'budget_review_only',\n\t\t\tfalse,\n\t\t\tfalse,\n\t\t\t[\n\t\t\t\t'Freeze further model repair loops.',\n\t\t\t\t'Show the prompt/token/runtime budget that tripped the guard.',\n\t\t\t\t'Select a cheaper deterministic gate, infra repair, diagnosis revision, or manual scope edit before resuming.'\n\t\t\t],\n\t\t\t['budget guard reason', 'latest prompt estimate', 'last blocker/evidence hash'],\n\t\t\t['manual scope reduction', 'new deterministic evidence', 'approved budget policy change'],\n\t\t\t['start another broad model prompt', 'reset budget without new evidence', 'hide cost context']\n\t\t);\n\t}\n\tif (failureClass === 'diagnosis' || stepType === 'diagnosis_gate') {\n\t\treturn makePlan(\n\t\t\t'diagnosis_only',\n\t\t\t'Run Diagnosis Gate',\n\t\t\t'Produce a falsifiable root-cause diagnosis before any repair.',\n\t\t\t'read_only_diagnosis',\n\t\t\tfalse,\n\t\t\ttrue,\n\t\t\t[\n\t\t\t\t'Reproduce or explicitly classify the customer issue.',\n\t\t\t\t'Accept one falsifiable hypothesis and record rejected alternatives.',\n\t\t\t\t'Identify the frontend/backend/shared failing path.',\n\t\t\t\t'Select a small owner_files set.',\n\t\t\t\t'Define exact before/action/after business proof.'\n\t\t\t],\n\t\t\t['issue_case', 'accepted_hypothesis', 'rejected_alternatives', 'failing_path', 'owner_files', 'proof_plan'],\n\t\t\t['new reproduction artifact', 'new query/log/code evidence', 'validated diagnosis gate'],\n\t\t\t['edit product code', 'run broad repo repair', 'accept route-load evidence as success']\n\t\t);\n\t}\n\tif (failureClass === 'owner_scope' || failureClass === 'out_of_scope' || /out.?of.?scope|owner_files/i.test(reason)) {\n\t\treturn makePlan(\n\t\t\t'diagnosis_revision',\n\t\t\t'Revise Diagnosis Scope',\n\t\t\t'Revise owner_files only when new evidence proves the current scope is wrong.',\n\t\t\t'diagnosis_revision_only',\n\t\t\tfalse,\n\t\t\ttrue,\n\t\t\t[\n\t\t\t\t'Compare changed files against the diagnosis owner_files.',\n\t\t\t\t'Collect evidence proving why the new file is in the failing path.',\n\t\t\t\t'Update accepted_hypothesis, failing_path, owner_files, and proof_plan together.',\n\t\t\t\t'Resume repair only after the revised gate validates.'\n\t\t\t],\n\t\t\t['out-of-scope file list', 'new failing-path evidence', 'revalidated diagnosis gate'],\n\t\t\t['revised owner_files with evidence', 'new business proof requirement'],\n\t\t\t['keep broad edits without diagnosis', 'add convenience refactors', 'continue repair outside owner_files']\n\t\t);\n\t}\n\tif (action === 'retry_infra') {\n\t\tconst isCompile = failureClass === 'compile';\n\t\treturn makePlan(\n\t\t\tisCompile ? 'compile_repair' : 'infra_repair',\n\t\t\tisCompile ? 'Repair Compile Gate' : 'Repair Infra Gate',\n\t\t\tisCompile\n\t\t\t\t? 'Fix the deterministic compile/build blocker before spending another product repair loop.'\n\t\t\t\t: 'Fix the deterministic harness/browser/server/Mongo blocker before product repair.',\n\t\t\tisCompile ? 'compile_repair_only' : 'infra_repair_only',\n\t\t\tfalse,\n\t\t\tfalse,\n\t\t\tisCompile\n\t\t\t\t? [\n\t\t\t\t\t'Read the exact compile/build log and identify the first actionable error.',\n\t\t\t\t\t'Fix missing dependency, stale artifact, command, cache, or type wiring required by the compile gate.',\n\t\t\t\t\t'Rerun the same finite compile command.',\n\t\t\t\t\t'Return the compile log artifact and status.'\n\t\t\t\t]\n\t\t\t\t: [\n\t\t\t\t\t'Run preflight for Puppeteer, Chrome executable, ports, Mongo/settings, and startup command.',\n\t\t\t\t\t'Repair only the failing harness/environment item.',\n\t\t\t\t\t'Rerun the same infra check.',\n\t\t\t\t\t'Return the infra log and pass/fail status.'\n\t\t\t\t],\n\t\t\tisCompile\n\t\t\t\t? ['compile command', 'compile log artifact', 'first failing error fixed or still failing']\n\t\t\t\t: ['preflight command', 'infra log artifact', 'specific repaired environment item'],\n\t\t\t['same check now passes', 'new infra/compile blocker hash'],\n\t\t\t['run product-code model repair', 'count this as product failure', 'accept route/business success without the compile/infra gate']\n\t\t);\n\t}\n\tif (action === 'park_repeated_failure' || action === 'park_ping_pong') {\n\t\treturn makePlan(\n\t\t\t'blocked_until_new_evidence',\n\t\t\taction === 'park_ping_pong' ? 'Park Ping-Pong Loop' : 'Park Repeated Failure',\n\t\t\t'Stop the current loop until new evidence changes the diagnosis, route, or repair target.',\n\t\t\t'collect_new_evidence_only',\n\t\t\tfalse,\n\t\t\tfalse,\n\t\t\t[\n\t\t\t\t'Do not rerun the same prompt or same repair.',\n\t\t\t\t'Show the repeated blocker and evidence hash.',\n\t\t\t\t'Collect a new artifact: failing DOM state, stack trace, network response, Mongo delta, compile log, or revised diagnosis.',\n\t\t\t\t'Reset the loop only after the new evidence hash changes.'\n\t\t\t],\n\t\t\t['same failure count', 'blocker fingerprint', 'evidence hash'],\n\t\t\t['changed evidence hash', 'new artifact path', 'revised diagnosis or journey contract'],\n\t\t\t['alternate between two failed patches', 'increase loop budget without evidence', 'hide the park reason']\n\t\t);\n\t}\n\tif (failureClass === 'journey') {\n\t\treturn makePlan(\n\t\t\t'journey_contract_repair',\n\t\t\t'Repair Journey Contract',\n\t\t\t'Fix the first/next/last workflow contract before app code work continues.',\n\t\t\t'journey_contract_repair',\n\t\t\tfalse,\n\t\t\ttrue,\n\t\t\t[\n\t\t\t\t'Open docs/APP_JOURNEY_CONTRACT.md.',\n\t\t\t\t'Define first_screen, north_star_workflow, screen_sequence, data_story, completion_states, and qa_assertions.',\n\t\t\t\t'Ensure each CTA maps to an action, route, method, calculation, or state transition.',\n\t\t\t\t'Validate that sample data can drive the promised workflow.'\n\t\t\t],\n\t\t\t['validated journey_contract JSON', 'CTA-to-action mapping', 'workflow QA assertions'],\n\t\t\t['journey validation passes', 'new workflow QA rows generated'],\n\t\t\t['build empty routes', 'add link-only dashboard actions', 'defer workflow design to wow pass']\n\t\t);\n\t}\n\tif (failureClass === 'release') {\n\t\treturn makePlan(\n\t\t\t'release_repair',\n\t\t\t'Repair Release Gate',\n\t\t\t'Repair deploy/publish/sample-data release evidence without rewriting working app flow.',\n\t\t\t'release_repair_only',\n\t\t\tfalse,\n\t\t\tfalse,\n\t\t\t[\n\t\t\t\t'Read the deploy/publish/sample-data log.',\n\t\t\t\t'Identify whether the blocker is domain, asset, seed data, route, permission, or CDN.',\n\t\t\t\t'Repair the release artifact/config/seed issue.',\n\t\t\t\t'Rerun only the failed release gate.'\n\t\t\t],\n\t\t\t['deploy or publish log', 'sample-data status', 'failed release gate rerun'],\n\t\t\t['release gate passes', 'new release blocker hash'],\n\t\t\t['change core workflow after business QA passed', 'mark accepted from scorecard only', 'rerun full builder loop']\n\t\t);\n\t}\n\tif (failureClass === 'business' || failureClass === 'qa_evidence' || failureClass === 'route') {\n\t\treturn makePlan(\n\t\t\t'business_proof_repair',\n\t\t\t'Repair Business Proof',\n\t\t\t'Fix the exact failing workflow assertion and prove before/action/after behavior.',\n\t\t\t'business_repair',\n\t\t\ttrue,\n\t\t\ttrue,\n\t\t\t[\n\t\t\t\t'Open the failing QA row or proof_plan.',\n\t\t\t\t'Trace the UI action to method/publication/query/calculation.',\n\t\t\t\t'Patch the smallest owner or workflow files.',\n\t\t\t\t'Rerun only the failed business assertion.',\n\t\t\t\t'Record DOM/data/Mongo/artifact proof.'\n\t\t\t],\n\t\t\t['failing assertion', 'action trace', 'business proof artifact'],\n\t\t\t['business assertion passes', 'new failed assertion with new evidence'],\n\t\t\t['treat route load as success', 'rerun unrelated QA rows first', 'accept scorecard-only evidence']\n\t\t);\n\t}\n\tif (input.productRepairFailure !== false || failureClass === 'product_code') {\n\t\treturn makePlan(\n\t\t\t'product_code_repair',\n\t\t\t'Run Targeted Product Repair',\n\t\t\t'Repair the current product-code blocker with the smallest scoped edit and immediate proof.',\n\t\t\t'targeted_product_repair',\n\t\t\ttrue,\n\t\t\ttrue,\n\t\t\t[\n\t\t\t\t'Inspect the current blocker, artifacts, changed files, and owner/workflow scope.',\n\t\t\t\t'Form one small repair hypothesis.',\n\t\t\t\t'Patch only files justified by the active diagnosis or journey contract.',\n\t\t\t\t'Rerun the smallest failed gate.',\n\t\t\t\t'Record new evidence before any additional loop.'\n\t\t\t],\n\t\t\t['owner/workflow scope', 'repair diff', 'failed gate rerun artifact'],\n\t\t\t['new evidence hash', 'same gate passes'],\n\t\t\t['broad repo search-and-edit', 'rerun the same prompt without inspecting artifacts', 'change unrelated UI polish']\n\t\t);\n\t}\n\treturn makePlan(\n\t\t'continue',\n\t\t'Continue Current Gate',\n\t\t'Continue the current lane because no blocking loop or infra condition was detected.',\n\t\t'continue',\n\t\tfalse,\n\t\tfalse,\n\t\t[\n\t\t\t'Use the active lane memory.',\n\t\t\t'Run the next finite gate.',\n\t\t\t'Record artifacts and evidence hash.'\n\t\t],\n\t\t['active lane memory', 'finite gate artifact'],\n\t\t['new gate result', 'new artifact path'],\n\t\t['spawn duplicate runners', 'advance without evidence']\n\t);\n}\n\nfunction collectOpenTail(records: ResolveIOAIManagerFailureRecord[]): ResolveIOAIManagerFailureRecord[] {\n\tconst tail: ResolveIOAIManagerFailureRecord[] = [];\n\tfor (let index = records.length - 1; index >= 0; index -= 1) {\n\t\tconst record = records[index];\n\t\tif (isPassingOutcome(record)) {\n\t\t\tbreak;\n\t\t}\n\t\ttail.unshift(record);\n\t}\n\treturn tail;\n}\n\nfunction countSameFailure(records: ResolveIOAIManagerFailureRecord[], current: ResolveIOAIManagerFailureRecord): number {\n\tconst currentKey = failureEvidenceKey(current);\n\tlet count = 0;\n\tfor (let index = records.length - 1; index >= 0; index -= 1) {\n\t\tconst record = records[index];\n\t\tif (isPassingOutcome(record)) {\n\t\t\tbreak;\n\t\t}\n\t\tif (failureEvidenceKey(record) !== currentKey) {\n\t\t\tbreak;\n\t\t}\n\t\tcount += 1;\n\t}\n\treturn count;\n}\n\nfunction countPingPong(records: ResolveIOAIManagerFailureRecord[], current: ResolveIOAIManagerFailureRecord): number {\n\tconst tail = collectOpenTail(records).filter((record) => {\n\t\treturn cleanText(record.lane, 80) === cleanText(current.lane, 80)\n\t\t\t&& cleanText(record.stepType, 80) === cleanText(current.stepType, 80);\n\t});\n\tif (tail.length < 4) {\n\t\treturn 0;\n\t}\n\tconst keys = tail.map(failureKey).filter(Boolean);\n\tconst last = keys.slice(-6);\n\tif (last.length < 4) {\n\t\treturn 0;\n\t}\n\tconst distinct = Array.from(new Set(last));\n\tif (distinct.length !== 2) {\n\t\treturn 0;\n\t}\n\tfor (let index = 2; index < last.length; index += 1) {\n\t\tif (last[index] !== last[index - 2]) {\n\t\t\treturn 0;\n\t\t}\n\t}\n\treturn last.length - 1;\n}\n\nexport function decideResolveIOAIManagerPolicy(input: ResolveIOAIManagerPolicyInput): ResolveIOAIManagerPolicyDecision {\n\tconst history = Array.isArray(input.history) ? input.history : [];\n\tconst current = input.current || history[history.length - 1] || {};\n\tconst failureClass = normalizeResolveIOAIManagerFailureClass(current.failureClass);\n\tconst blockerFingerprint = resolveResolveIOAIManagerBlockerFingerprint(current);\n\tconst evidenceHash = hashResolveIOAIManagerEvidence(current);\n\tconst previous = history.length > 1 ? history[history.length - 2] : undefined;\n\tconst previousSameFailure = previous && failureKey(previous) === failureKey(current);\n\tconst previousEvidenceHash = previousSameFailure ? hashResolveIOAIManagerEvidence(previous) : '';\n\tconst newEvidence = !!previousSameFailure && !!previousEvidenceHash && previousEvidenceHash !== evidenceHash;\n\tconst sameFailureCount = countSameFailure(history, current);\n\tconst pingPongCount = countPingPong(history, current);\n\tconst maxSameFailureRepeats = Math.max(1, Number(input.maxSameFailureRepeats || 3) || 3);\n\tconst maxPingPongTransitions = Math.max(3, Number(input.maxPingPongTransitions || 3) || 3);\n\tconst infraClasses = new Set((input.infraFailureClasses || ['infra', 'compile']).map(normalizeResolveIOAIManagerFailureClass));\n\tconst ignoredClasses = new Set((input.ignoredFailureClasses || []).map(normalizeResolveIOAIManagerFailureClass));\n\tconst base = {\n\t\tfailureClass,\n\t\tblockerFingerprint,\n\t\tevidenceHash,\n\t\tsameFailureCount,\n\t\tpingPongCount,\n\t\tnewEvidence,\n\t\tloopBudgetShouldReset: false,\n\t\tproductRepairFailure: !infraClasses.has(failureClass) && !ignoredClasses.has(failureClass)\n\t};\n\tconst withPlan = (\n\t\taction: ResolveIOAIManagerAction,\n\t\treason: string,\n\t\toverrides: Partial<Omit<ResolveIOAIManagerPolicyDecision, 'action' | 'reason' | 'recoveryPlan' | 'recoveryCheckpoint'>> = {}\n\t): ResolveIOAIManagerPolicyDecision => {\n\t\tconst merged = {\n\t\t\t...base,\n\t\t\t...overrides\n\t\t};\n\t\tconst recoveryPlan = buildResolveIOAIManagerRecoveryPlan({\n\t\t\taction,\n\t\t\treason,\n\t\t\tfailureClass: merged.failureClass,\n\t\t\tlane: current.lane,\n\t\t\tstepType: current.stepType,\n\t\t\tblocker: current.blocker || current.summary,\n\t\t\tsameFailureCount: merged.sameFailureCount,\n\t\t\tpingPongCount: merged.pingPongCount,\n\t\t\tnewEvidence: merged.newEvidence,\n\t\t\tproductRepairFailure: merged.productRepairFailure,\n\t\t\tchangedFiles: current.changedFiles,\n\t\t\tartifactPaths: current.artifactPaths,\n\t\t\tmaxSameFailureRepeats\n\t\t});\n\t\tconst recoveryCheckpoint = buildResolveIOAIManagerRecoveryCheckpoint({\n\t\t\tplan: recoveryPlan,\n\t\t\tcurrent\n\t\t});\n\t\tconst recoveryEvidenceProbe = buildResolveIOAIManagerRecoveryEvidenceProbe({\n\t\t\tcheckpoint: recoveryCheckpoint,\n\t\t\tcurrent\n\t\t});\n\t\treturn {\n\t\t\t...merged,\n\t\t\taction,\n\t\t\treason,\n\t\t\trecoveryPlan,\n\t\t\trecoveryCheckpoint,\n\t\t\trecoveryEvidenceProbe,\n\t\t\trecoveryAction: buildResolveIOAIManagerRecoveryActionPacket({\n\t\t\t\tplan: recoveryPlan,\n\t\t\t\tcheckpoint: recoveryCheckpoint,\n\t\t\t\tprobe: recoveryEvidenceProbe,\n\t\t\t\tcurrent\n\t\t\t})\n\t\t};\n\t};\n\tif (isPassingOutcome(current)) {\n\t\treturn withPlan('reset_loop_budget', 'manager_policy_progress_passed', {\n\t\t\tloopBudgetShouldReset: true,\n\t\t\tproductRepairFailure: false\n\t\t});\n\t}\n\tif (isManualOutcome(current)) {\n\t\treturn withPlan('manual_handoff', 'manager_policy_manual_or_stopped');\n\t}\n\tif (infraClasses.has(failureClass)) {\n\t\treturn withPlan('retry_infra', 'manager_policy_infra_failure_routes_to_infra_repair', {\n\t\t\tproductRepairFailure: false\n\t\t});\n\t}\n\tif (pingPongCount >= maxPingPongTransitions) {\n\t\treturn withPlan('park_ping_pong', 'manager_policy_ping_pong_failure_loop');\n\t}\n\tif (sameFailureCount >= maxSameFailureRepeats && !newEvidence) {\n\t\treturn withPlan('park_repeated_failure', 'manager_policy_same_failure_without_new_evidence');\n\t}\n\tif (newEvidence || !previousSameFailure) {\n\t\treturn withPlan('continue', newEvidence\n\t\t\t\t? 'manager_policy_new_evidence_resets_loop_budget'\n\t\t\t\t: 'manager_policy_new_failure_or_lane', {\n\t\t\tloopBudgetShouldReset: true\n\t\t});\n\t}\n\treturn withPlan('continue', 'manager_policy_retry_below_repeat_limit');\n}\n"]}
1
+ {"version":3,"sources":["../../src/util/ai-runner-manager-policy.ts"],"names":[],"mappings":"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","file":"ai-runner-manager-policy.js","sourcesContent":["export type ResolveIOAIManagerAction =\n\t| 'continue'\n\t| 'retry_infra'\n\t| 'reset_loop_budget'\n\t| 'park_repeated_failure'\n\t| 'park_ping_pong'\n\t| 'manual_handoff';\n\nexport interface ResolveIOAIManagerFailureRecord {\n\toutcome?: string;\n\tlane?: string;\n\tstepType?: string;\n\tfailureClass?: string;\n\tblocker?: string;\n\tblockerFingerprint?: string;\n\tevidenceHash?: string;\n\tchangedFiles?: string[];\n\tartifactPaths?: string[];\n\tsummary?: string;\n\trecordedAt?: Date | string;\n}\n\nexport type ResolveIOAIManagerRecoveryClass =\n\t| 'advance_after_proof'\n\t| 'diagnosis_only'\n\t| 'diagnosis_revision'\n\t| 'infra_repair'\n\t| 'compile_repair'\n\t| 'journey_contract_repair'\n\t| 'business_proof_repair'\n\t| 'release_repair'\n\t| 'product_code_repair'\n\t| 'blocked_until_new_evidence'\n\t| 'manual_handoff'\n\t| 'continue';\n\nexport interface ResolveIOAIManagerRecoveryPlan {\n\trecoveryClass: ResolveIOAIManagerRecoveryClass;\n\tlane: string;\n\tstepType: string;\n\tnextActionLabel: string;\n\tobjective: string;\n\tallowedAction: string;\n\tproductRepairAllowed: boolean;\n\texpensiveModelAllowed: boolean;\n\tmaxAttemptsBeforePark: number;\n\tfiniteSteps: string[];\n\trequiredEvidence: string[];\n\tloopResetEvidence: string[];\n\tforbiddenActions: string[];\n\tnotes: string[];\n}\n\nexport type ResolveIOAIManagerRecoveryCheckpointStatus =\n\t| 'active'\n\t| 'parked'\n\t| 'manual_handoff'\n\t| 'complete';\n\nexport interface ResolveIOAIManagerRecoveryCheckpoint {\n\tcheckpointId: string;\n\trecoveryClass: ResolveIOAIManagerRecoveryClass;\n\tstatus: ResolveIOAIManagerRecoveryCheckpointStatus;\n\tlane: string;\n\tstepType: string;\n\tallowedAction: string;\n\tproductRepairAllowed: boolean;\n\texpensiveModelAllowed: boolean;\n\tattempts: number;\n\tmaxAttemptsBeforePark: number;\n\tblockerFingerprint: string;\n\tevidenceHash: string;\n\tchangedFiles: string[];\n\tartifactPaths: string[];\n\trequiredEvidence: string[];\n\tloopResetEvidence: string[];\n\tforbiddenActions: string[];\n\tobjective: string;\n\tnextActionLabel: string;\n\tcreatedAt: string;\n\tupdatedAt: string;\n}\n\nexport type ResolveIOAIManagerRecoveryEvidenceProbeStepKind =\n\t| 'read_only_diagnosis'\n\t| 'rerun_same_gate'\n\t| 'infra_preflight'\n\t| 'compile_check'\n\t| 'route_probe'\n\t| 'business_assertion'\n\t| 'journey_validation'\n\t| 'release_status'\n\t| 'diff_scope_check'\n\t| 'operator_review';\n\nexport interface ResolveIOAIManagerRecoveryEvidenceProbeStep {\n\tid: string;\n\tkind: ResolveIOAIManagerRecoveryEvidenceProbeStepKind;\n\tlabel: string;\n\tobjective: string;\n\trequired: boolean;\n\tcommandHint?: string;\n\tartifactExpectation: string;\n\tsuccessSignal: string;\n}\n\nexport interface ResolveIOAIManagerRecoveryEvidenceProbe {\n\tprobeId: string;\n\tcheckpointId: string;\n\trecoveryClass: ResolveIOAIManagerRecoveryClass;\n\tlane: string;\n\tstepType: string;\n\tobjective: string;\n\tevidenceOnly: boolean;\n\tproductRepairAllowed: boolean;\n\texpensiveModelAllowed: boolean;\n\tevidenceHashBefore: string;\n\tblockerFingerprint: string;\n\tsteps: ResolveIOAIManagerRecoveryEvidenceProbeStep[];\n\trequiredArtifacts: string[];\n\tacceptanceEvidence: string[];\n\tstopConditions: string[];\n\tloopResetEvidence: string[];\n\tcreatedAt: string;\n}\n\nexport type ResolveIOAIManagerRecoveryAutomationMode =\n\t| 'advance'\n\t| 'collect_evidence'\n\t| 'read_only_diagnosis'\n\t| 'repair_infra'\n\t| 'repair_compile'\n\t| 'repair_journey_contract'\n\t| 'repair_business_assertion'\n\t| 'repair_release'\n\t| 'targeted_product_repair'\n\t| 'manual_review'\n\t| 'continue_gate';\n\nexport interface ResolveIOAIManagerRecoveryActionRetryPolicy {\n\tallowImmediateRetry: boolean;\n\trequireNewEvidence: boolean;\n\tresetLoopWhen: string[];\n\tstopWhen: string[];\n}\n\nexport interface ResolveIOAIManagerRecoveryActionPacket {\n\tactionId: string;\n\tcheckpointId: string;\n\tprobeId: string;\n\trecoveryClass: ResolveIOAIManagerRecoveryClass;\n\tmode: ResolveIOAIManagerRecoveryAutomationMode;\n\tlabel: string;\n\tlane: string;\n\tstepType: string;\n\tprimaryStepKind: ResolveIOAIManagerRecoveryEvidenceProbeStepKind | 'none';\n\tobjective: string;\n\tevidenceOnly: boolean;\n\tautoRunnable: boolean;\n\tproductRepairAllowed: boolean;\n\texpensiveModelAllowed: boolean;\n\tcanResetLoopAfterEvidence: boolean;\n\tmaxAttemptsBeforePark: number;\n\trequiredArtifacts: string[];\n\tnextCommands: string[];\n\tsuccessCriteria: string[];\n\tretryPolicy: ResolveIOAIManagerRecoveryActionRetryPolicy;\n\tblockedReason?: string;\n\tcreatedAt: string;\n}\n\nexport type ResolveIOAIManagerRecoveryActionDispatchAction =\n\t| 'run_evidence_probe'\n\t| 'run_read_only_diagnosis'\n\t| 'run_infra_repair'\n\t| 'run_compile_repair'\n\t| 'run_journey_contract_repair'\n\t| 'run_business_assertion_repair'\n\t| 'run_release_repair'\n\t| 'run_targeted_product_repair'\n\t| 'advance'\n\t| 'continue_gate'\n\t| 'park_manual';\n\nexport type ResolveIOAIManagerRecoveryActionDispatchStatus =\n\t| 'queued'\n\t| 'started'\n\t| 'completed'\n\t| 'failed'\n\t| 'parked';\n\nexport interface ResolveIOAIManagerRecoveryActionDispatchRecord {\n\tdispatchId: string;\n\tactionId: string;\n\tcheckpointId: string;\n\tprobeId: string;\n\tmode: ResolveIOAIManagerRecoveryAutomationMode;\n\tdispatchAction: ResolveIOAIManagerRecoveryActionDispatchAction;\n\tstatus: ResolveIOAIManagerRecoveryActionDispatchStatus;\n\tevidenceHash: string;\n\tblockerFingerprint: string;\n\tproductRepairAllowed: boolean;\n\texpensiveModelAllowed: boolean;\n\treason: string;\n\tartifactPaths: string[];\n\tstartedAt?: string;\n\tcompletedAt?: string;\n\tcreatedAt: string;\n}\n\nexport interface ResolveIOAIManagerRecoveryActionDispatchInput {\n\taction?: ResolveIOAIManagerRecoveryActionPacket;\n\thistory?: ResolveIOAIManagerRecoveryActionDispatchRecord[];\n\tcurrent?: ResolveIOAIManagerFailureRecord;\n\toperatorApproved?: boolean;\n\tnow?: Date | string;\n}\n\nexport interface ResolveIOAIManagerRecoveryActionDispatchDecision {\n\tdispatchAction: ResolveIOAIManagerRecoveryActionDispatchAction;\n\tallowed: boolean;\n\treason: string;\n\tstatus: ResolveIOAIManagerRecoveryActionDispatchStatus;\n\tcanRunProductRepair: boolean;\n\tcanRunExpensiveModel: boolean;\n\tshouldRecordDispatch: boolean;\n\trequiresNewEvidence: boolean;\n\tnewEvidence: boolean;\n\tdispatchRecord?: ResolveIOAIManagerRecoveryActionDispatchRecord;\n}\n\nexport type ResolveIOAIManagerRecoveryExecutionPhase =\n\t| 'evidence'\n\t| 'diagnosis'\n\t| 'infra'\n\t| 'compile'\n\t| 'journey'\n\t| 'business_proof'\n\t| 'release'\n\t| 'product_repair'\n\t| 'advance'\n\t| 'manual';\n\nexport interface ResolveIOAIManagerRecoveryExecutionDirectiveInput {\n\taction?: ResolveIOAIManagerRecoveryActionPacket;\n\tdispatchDecision?: ResolveIOAIManagerRecoveryActionDispatchDecision;\n\tcurrent?: ResolveIOAIManagerFailureRecord;\n\tsurface?: string;\n\tnow?: Date | string;\n}\n\nexport interface ResolveIOAIManagerRecoveryExecutionDirective {\n\tdirectiveId: string;\n\tsurface: string;\n\tdispatchAction: ResolveIOAIManagerRecoveryActionDispatchAction;\n\tphase: ResolveIOAIManagerRecoveryExecutionPhase;\n\tallowed: boolean;\n\tstatus: ResolveIOAIManagerRecoveryActionDispatchStatus;\n\treason: string;\n\tlane: string;\n\tstepType: string;\n\tnextActionLabel: string;\n\trerunReason: string;\n\tevidenceOnly: boolean;\n\tautoRunnable: boolean;\n\tproductRepairAllowed: boolean;\n\texpensiveModelAllowed: boolean;\n\tcanRunProductRepair: boolean;\n\tcanRunExpensiveModel: boolean;\n\tcanResetLoopAfterEvidence: boolean;\n\trequiresNewEvidence: boolean;\n\tnewEvidence: boolean;\n\tmaxAttemptsBeforePark: number;\n\trequiredArtifacts: string[];\n\tnextCommands: string[];\n\tsuccessCriteria: string[];\n\tforbiddenActions: string[];\n\tdispatchRecord?: ResolveIOAIManagerRecoveryActionDispatchRecord;\n\tcreatedAt: string;\n}\n\nexport interface ResolveIOAIManagerRecoveryCheckpointInput {\n\tplan: ResolveIOAIManagerRecoveryPlan;\n\tcurrent?: ResolveIOAIManagerFailureRecord;\n\tpreviousCheckpoint?: ResolveIOAIManagerRecoveryCheckpoint;\n\tnow?: Date | string;\n}\n\nexport type ResolveIOAIManagerRecoveryGateAction =\n\t| 'allow'\n\t| 'collect_new_evidence'\n\t| 'reject_action'\n\t| 'manual_handoff'\n\t| 'complete';\n\nexport interface ResolveIOAIManagerRecoveryGateInput {\n\tcheckpoint: ResolveIOAIManagerRecoveryCheckpoint;\n\tcurrent?: ResolveIOAIManagerFailureRecord;\n\tproposedAction?: string;\n\toperatorApproved?: boolean;\n\tnow?: Date | string;\n}\n\nexport interface ResolveIOAIManagerRecoveryGateDecision {\n\taction: ResolveIOAIManagerRecoveryGateAction;\n\treason: string;\n\tcanRunProductRepair: boolean;\n\tcanRunExpensiveModel: boolean;\n\tshouldResetLoopBudget: boolean;\n\tshouldIncrementAttempt: boolean;\n\tnewEvidence: boolean;\n\tblockerFingerprint: string;\n\tevidenceHash: string;\n\tmissingEvidence: string[];\n\tcheckpoint: ResolveIOAIManagerRecoveryCheckpoint;\n}\n\nexport interface ResolveIOAIManagerRecoveryEvidenceProbeInput {\n\tcheckpoint: ResolveIOAIManagerRecoveryCheckpoint;\n\tcurrent?: ResolveIOAIManagerFailureRecord;\n\tnow?: Date | string;\n}\n\nexport interface ResolveIOAIManagerRecoveryActionPacketInput {\n\tplan?: ResolveIOAIManagerRecoveryPlan;\n\tcheckpoint: ResolveIOAIManagerRecoveryCheckpoint;\n\tprobe?: ResolveIOAIManagerRecoveryEvidenceProbe;\n\tcurrent?: ResolveIOAIManagerFailureRecord;\n\tnow?: Date | string;\n}\n\nexport interface ResolveIOAIManagerRecoveryPlanInput {\n\taction?: ResolveIOAIManagerAction | string;\n\treason?: string;\n\tfailureClass?: string;\n\tlane?: string;\n\tstepType?: string;\n\tblocker?: string;\n\tsameFailureCount?: number;\n\tpingPongCount?: number;\n\tnewEvidence?: boolean;\n\tproductRepairFailure?: boolean;\n\tchangedFiles?: string[];\n\tartifactPaths?: string[];\n\tmaxSameFailureRepeats?: number;\n}\n\nexport interface ResolveIOAIManagerPolicyInput {\n\thistory?: ResolveIOAIManagerFailureRecord[];\n\tcurrent?: ResolveIOAIManagerFailureRecord;\n\tmaxSameFailureRepeats?: number;\n\tmaxPingPongTransitions?: number;\n\tinfraFailureClasses?: string[];\n\tignoredFailureClasses?: string[];\n}\n\nexport interface ResolveIOAIManagerPolicyDecision {\n\taction: ResolveIOAIManagerAction;\n\treason: string;\n\tfailureClass: string;\n\tblockerFingerprint: string;\n\tevidenceHash: string;\n\tsameFailureCount: number;\n\tpingPongCount: number;\n\tnewEvidence: boolean;\n\tloopBudgetShouldReset: boolean;\n\tproductRepairFailure: boolean;\n\trecoveryPlan: ResolveIOAIManagerRecoveryPlan;\n\trecoveryCheckpoint: ResolveIOAIManagerRecoveryCheckpoint;\n\trecoveryEvidenceProbe: ResolveIOAIManagerRecoveryEvidenceProbe;\n\trecoveryAction: ResolveIOAIManagerRecoveryActionPacket;\n}\n\nfunction cleanText(value: any, max = 2000): string {\n\treturn String(value || '').replace(/\\s+/g, ' ').trim().slice(0, max);\n}\n\nfunction cleanList(values: any, limit = 40, max = 500): string[] {\n\tif (!Array.isArray(values)) {\n\t\treturn [];\n\t}\n\tconst result: string[] = [];\n\tfor (const value of values) {\n\t\tconst normalized = cleanText(value, max);\n\t\tif (normalized && !result.includes(normalized)) {\n\t\t\tresult.push(normalized);\n\t\t}\n\t\tif (result.length >= limit) {\n\t\t\tbreak;\n\t\t}\n\t}\n\treturn result;\n}\n\nfunction isoNow(value?: Date | string): string {\n\tif (value instanceof Date) {\n\t\treturn value.toISOString();\n\t}\n\tconst parsed = value ? new Date(value) : new Date();\n\tif (Number.isFinite(parsed.getTime())) {\n\t\treturn parsed.toISOString();\n\t}\n\treturn new Date().toISOString();\n}\n\nfunction stableHash(prefix: string, value: any): string {\n\tconst normalized = typeof value === 'string'\n\t\t? cleanText(value, 12000)\n\t\t: JSON.stringify(value || {});\n\tlet hash = 0;\n\tfor (let index = 0; index < normalized.length; index += 1) {\n\t\thash = ((hash << 5) - hash + normalized.charCodeAt(index)) | 0;\n\t}\n\treturn `${prefix}-${Math.abs(hash).toString(36) || '0'}`;\n}\n\nexport function normalizeResolveIOAIManagerFailureClass(value: any): string {\n\tconst normalized = cleanText(value, 80)\n\t\t.toLowerCase()\n\t\t.replace(/[\\s-]+/g, '_');\n\tif (!normalized) {\n\t\treturn 'unknown';\n\t}\n\tif (/^(qa_infra|infrastructure|harness|puppeteer|chrome|mongo|port|startup)$/.test(normalized)) {\n\t\treturn 'infra';\n\t}\n\tif (/^(build|compile|typescript|tsc|angular_build|ng_build)$/.test(normalized)) {\n\t\treturn 'compile';\n\t}\n\tif (/^(false_pass|route_only|missing_business_proof)$/.test(normalized)) {\n\t\treturn 'business';\n\t}\n\treturn normalized.slice(0, 80);\n}\n\nexport function fingerprintResolveIOAIManagerBlocker(value: any): string {\n\tconst normalized = cleanText(value, 4000)\n\t\t.toLowerCase()\n\t\t.replace(/[a-f0-9]{16,}/g, '<id>')\n\t\t.replace(/\\b\\d{2,}\\b/g, '<n>')\n\t\t.replace(/\\bline\\s+<n>\\b/g, 'line <n>')\n\t\t.replace(/https?:\\/\\/\\S+/g, '<url>')\n\t\t.replace(/\\s+/g, ' ')\n\t\t.trim();\n\treturn stableHash('mgr-blocker', normalized);\n}\n\nfunction resolveResolveIOAIManagerBlockerFingerprint(\n\trecord: ResolveIOAIManagerFailureRecord | undefined,\n\tfallback?: any\n): string {\n\tconst blockerText = cleanText(record?.blocker || record?.summary, 4000);\n\tif (blockerText) {\n\t\treturn fingerprintResolveIOAIManagerBlocker(blockerText);\n\t}\n\tconst explicit = cleanText(record?.blockerFingerprint, 120);\n\tif (explicit) {\n\t\treturn explicit;\n\t}\n\treturn fingerprintResolveIOAIManagerBlocker(fallback || '');\n}\n\nexport function hashResolveIOAIManagerEvidence(record: ResolveIOAIManagerFailureRecord | undefined): string {\n\tif (!record) {\n\t\treturn stableHash('mgr-evidence', '');\n\t}\n\tconst explicit = cleanText(record.evidenceHash, 120);\n\tif (explicit) {\n\t\treturn explicit;\n\t}\n\treturn stableHash('mgr-evidence', {\n\t\tfailureClass: normalizeResolveIOAIManagerFailureClass(record.failureClass),\n\t\tblocker: cleanText(record.blocker || record.summary, 2000),\n\t\tchangedFiles: cleanList(record.changedFiles, 80, 500).sort(),\n\t\tartifactPaths: cleanList(record.artifactPaths, 80, 500).sort()\n\t});\n}\n\nexport function buildResolveIOAIManagerRecoveryCheckpoint(\n\tinput: ResolveIOAIManagerRecoveryCheckpointInput\n): ResolveIOAIManagerRecoveryCheckpoint {\n\tconst plan = input.plan;\n\tconst current = input.current || {};\n\tconst blockerFingerprint = resolveResolveIOAIManagerBlockerFingerprint(current, plan.objective);\n\tconst evidenceHash = hashResolveIOAIManagerEvidence(current);\n\tconst changedFiles = cleanList(current.changedFiles, 80, 500);\n\tconst artifactPaths = cleanList(current.artifactPaths, 80, 500);\n\tconst previous = input.previousCheckpoint;\n\tconst sameCheckpointBase = previous\n\t\t&& previous.recoveryClass === plan.recoveryClass\n\t\t&& previous.lane === plan.lane\n\t\t&& previous.stepType === plan.stepType\n\t\t&& previous.blockerFingerprint === blockerFingerprint\n\t\t&& previous.evidenceHash === evidenceHash;\n\tconst attempts = sameCheckpointBase ? Math.max(0, Number(previous.attempts || 0)) + 1 : 1;\n\tconst status: ResolveIOAIManagerRecoveryCheckpointStatus = plan.recoveryClass === 'manual_handoff'\n\t\t? 'manual_handoff'\n\t\t: plan.recoveryClass === 'blocked_until_new_evidence'\n\t\t\t? 'parked'\n\t\t\t: plan.recoveryClass === 'advance_after_proof'\n\t\t\t\t? 'complete'\n\t\t\t\t: 'active';\n\tconst now = isoNow(input.now);\n\tconst checkpointId = stableHash('mgr-recovery', {\n\t\trecoveryClass: plan.recoveryClass,\n\t\tlane: plan.lane,\n\t\tstepType: plan.stepType,\n\t\tallowedAction: plan.allowedAction,\n\t\tblockerFingerprint,\n\t\tevidenceHash\n\t});\n\treturn {\n\t\tcheckpointId,\n\t\trecoveryClass: plan.recoveryClass,\n\t\tstatus,\n\t\tlane: plan.lane,\n\t\tstepType: plan.stepType,\n\t\tallowedAction: plan.allowedAction,\n\t\tproductRepairAllowed: plan.productRepairAllowed,\n\t\texpensiveModelAllowed: plan.expensiveModelAllowed,\n\t\tattempts,\n\t\tmaxAttemptsBeforePark: plan.maxAttemptsBeforePark,\n\t\tblockerFingerprint,\n\t\tevidenceHash,\n\t\tchangedFiles,\n\t\tartifactPaths,\n\t\trequiredEvidence: cleanList(plan.requiredEvidence, 40, 500),\n\t\tloopResetEvidence: cleanList(plan.loopResetEvidence, 40, 500),\n\t\tforbiddenActions: cleanList(plan.forbiddenActions, 40, 500),\n\t\tobjective: cleanText(plan.objective, 1000),\n\t\tnextActionLabel: cleanText(plan.nextActionLabel, 160),\n\t\tcreatedAt: sameCheckpointBase && previous?.createdAt ? previous.createdAt : now,\n\t\tupdatedAt: now\n\t};\n}\n\nfunction makeRecoveryEvidenceProbeStep(\n\tid: string,\n\tkind: ResolveIOAIManagerRecoveryEvidenceProbeStepKind,\n\tlabel: string,\n\tobjective: string,\n\tartifactExpectation: string,\n\tsuccessSignal: string,\n\toptions: Partial<Pick<ResolveIOAIManagerRecoveryEvidenceProbeStep, 'required' | 'commandHint'>> = {}\n): ResolveIOAIManagerRecoveryEvidenceProbeStep {\n\treturn {\n\t\tid,\n\t\tkind,\n\t\tlabel,\n\t\tobjective: cleanText(objective, 1000),\n\t\trequired: options.required !== false,\n\t\t...(options.commandHint ? { commandHint: cleanText(options.commandHint, 500) } : {}),\n\t\tartifactExpectation: cleanText(artifactExpectation, 500),\n\t\tsuccessSignal: cleanText(successSignal, 500)\n\t};\n}\n\nfunction recoveryEvidenceProbeStepsFor(\n\tcheckpoint: ResolveIOAIManagerRecoveryCheckpoint\n): ResolveIOAIManagerRecoveryEvidenceProbeStep[] {\n\tconst base = [\n\t\tmakeRecoveryEvidenceProbeStep(\n\t\t\t'snapshot_current_blocker',\n\t\t\t'rerun_same_gate',\n\t\t\t'Snapshot Current Blocker',\n\t\t\t'Capture the current blocker, failure class, evidence hash, changed files, and artifact paths before any new repair.',\n\t\t\t'runner-evidence/current-blocker.json',\n\t\t\t'Snapshot includes the same checkpointId, blockerFingerprint, and evidenceHashBefore.'\n\t\t)\n\t];\n\tif (checkpoint.recoveryClass === 'diagnosis_only' || checkpoint.recoveryClass === 'diagnosis_revision') {\n\t\treturn [\n\t\t\t...base,\n\t\t\tmakeRecoveryEvidenceProbeStep(\n\t\t\t\t'collect_read_only_root_cause_evidence',\n\t\t\t\t'read_only_diagnosis',\n\t\t\t\t'Collect Read-Only Root-Cause Evidence',\n\t\t\t\tcheckpoint.recoveryClass === 'diagnosis_revision'\n\t\t\t\t\t? 'Collect new evidence that proves the current owner_files or failing_path is wrong before broadening scope.'\n\t\t\t\t\t: 'Reproduce or classify the issue and record the exact customer complaint, expected result, observed result, route/module, and account context.',\n\t\t\t\t'runner-evidence/diagnosis-readonly.md',\n\t\t\t\t'Evidence supports one falsifiable accepted hypothesis and at least one rejected alternative.'\n\t\t\t),\n\t\t\tmakeRecoveryEvidenceProbeStep(\n\t\t\t\t'validate_diagnosis_gate',\n\t\t\t\t'read_only_diagnosis',\n\t\t\t\t'Validate Diagnosis Gate',\n\t\t\t\t'Validate issue_case, accepted_hypothesis, rejected_alternatives, failing_path, owner_files, and before/action/after proof_plan.',\n\t\t\t\t'runner-evidence/diagnosis-gate.json',\n\t\t\t\t'Diagnosis gate validates before product-code repair is allowed.'\n\t\t\t)\n\t\t];\n\t}\n\tif (checkpoint.recoveryClass === 'infra_repair') {\n\t\treturn [\n\t\t\t...base,\n\t\t\tmakeRecoveryEvidenceProbeStep(\n\t\t\t\t'run_infra_preflight',\n\t\t\t\t'infra_preflight',\n\t\t\t\t'Run Infra Preflight',\n\t\t\t\t'Check Puppeteer/Chrome, ports, Mongo/settings, cache state, startup commands, and server/client process health.',\n\t\t\t\t'runner-evidence/infra-preflight.log',\n\t\t\t\t'The same infra gate either passes or returns a new infra blocker hash.',\n\t\t\t\t{ commandHint: 'runner preflight: puppeteer/chrome/mongo/ports/startup' }\n\t\t\t)\n\t\t];\n\t}\n\tif (checkpoint.recoveryClass === 'compile_repair') {\n\t\treturn [\n\t\t\t...base,\n\t\t\tmakeRecoveryEvidenceProbeStep(\n\t\t\t\t'rerun_compile_gate',\n\t\t\t\t'compile_check',\n\t\t\t\t'Rerun Compile Gate',\n\t\t\t\t'Rerun the same deterministic compile/build command and capture the first actionable error.',\n\t\t\t\t'runner-evidence/compile.log',\n\t\t\t\t'Compile passes or the first failing error changes.',\n\t\t\t\t{ commandHint: 'same finite build/compile command from the failed gate' }\n\t\t\t)\n\t\t];\n\t}\n\tif (checkpoint.recoveryClass === 'journey_contract_repair') {\n\t\treturn [\n\t\t\t...base,\n\t\t\tmakeRecoveryEvidenceProbeStep(\n\t\t\t\t'validate_journey_contract',\n\t\t\t\t'journey_validation',\n\t\t\t\t'Validate Journey Contract',\n\t\t\t\t'Validate docs/APP_JOURNEY_CONTRACT.md has first/next/last workflow, route/action/method mapping, seeded data story, completion states, and QA assertions.',\n\t\t\t\t'runner-evidence/journey-contract-validation.json',\n\t\t\t\t'Journey contract validates before build tasks continue.'\n\t\t\t),\n\t\t\tmakeRecoveryEvidenceProbeStep(\n\t\t\t\t'verify_hub_workflow_mapping',\n\t\t\t\t'journey_validation',\n\t\t\t\t'Verify Hub Workflow Mapping',\n\t\t\t\t'Confirm the hub CTA and screen sequence implement the journey contract instead of link-only navigation.',\n\t\t\t\t'runner-evidence/hub-workflow-map.json',\n\t\t\t\t'Primary hub action maps to a real route/action/method/calculation and next state.'\n\t\t\t)\n\t\t];\n\t}\n\tif (checkpoint.recoveryClass === 'business_proof_repair' || checkpoint.recoveryClass === 'product_code_repair') {\n\t\treturn [\n\t\t\t...base,\n\t\t\tmakeRecoveryEvidenceProbeStep(\n\t\t\t\t'rerun_business_assertion',\n\t\t\t\t'business_assertion',\n\t\t\t\t'Rerun Business Assertion',\n\t\t\t\t'Run the exact issue/app promise proof and capture before/action/after DOM/data evidence.',\n\t\t\t\t'runner-evidence/business-assertion.json',\n\t\t\t\t'Business assertion passes, or the observed failure changes with a new artifact path.'\n\t\t\t),\n\t\t\tmakeRecoveryEvidenceProbeStep(\n\t\t\t\t'check_diff_scope',\n\t\t\t\t'diff_scope_check',\n\t\t\t\t'Check Diff Scope',\n\t\t\t\t'Compare changed files against the current diagnosis/journey owner scope before another code repair.',\n\t\t\t\t'runner-evidence/diff-scope.json',\n\t\t\t\t'Changed files are in scope, or diagnosis/journey scope is revised with evidence.'\n\t\t\t)\n\t\t];\n\t}\n\tif (checkpoint.recoveryClass === 'release_repair') {\n\t\treturn [\n\t\t\t...base,\n\t\t\tmakeRecoveryEvidenceProbeStep(\n\t\t\t\t'collect_release_status',\n\t\t\t\t'release_status',\n\t\t\t\t'Collect Release Status',\n\t\t\t\t'Collect publish/deploy/build-instance/domain/CloudFront status and the last actionable deploy error.',\n\t\t\t\t'runner-evidence/release-status.json',\n\t\t\t\t'Release gate passes or returns a new release blocker hash without product-code repair.'\n\t\t\t)\n\t\t];\n\t}\n\tif (checkpoint.recoveryClass === 'manual_handoff') {\n\t\treturn [\n\t\t\t...base,\n\t\t\tmakeRecoveryEvidenceProbeStep(\n\t\t\t\t'operator_review_checkpoint',\n\t\t\t\t'operator_review',\n\t\t\t\t'Operator Review Checkpoint',\n\t\t\t\t'Expose budget, blocker, evidence hash, and the minimum policy/scope change needed before another expensive loop.',\n\t\t\t\t'runner-evidence/operator-review.json',\n\t\t\t\t'Operator approves a new scope/policy or provides new external evidence.'\n\t\t\t)\n\t\t];\n\t}\n\treturn [\n\t\t...base,\n\t\tmakeRecoveryEvidenceProbeStep(\n\t\t\t'rerun_same_deterministic_gate',\n\t\t\t'rerun_same_gate',\n\t\t\t'Rerun Same Deterministic Gate',\n\t\t\t'Rerun the exact failed check and capture new logs/artifacts without changing product code first.',\n\t\t\t'runner-evidence/retry-gate.log',\n\t\t\t'Gate passes, or evidenceHash/blockerFingerprint/artifactPaths change.'\n\t\t)\n\t];\n}\n\nexport function buildResolveIOAIManagerRecoveryEvidenceProbe(\n\tinput: ResolveIOAIManagerRecoveryEvidenceProbeInput\n): ResolveIOAIManagerRecoveryEvidenceProbe {\n\tconst checkpoint = input.checkpoint;\n\tconst now = isoNow(input.now);\n\tconst steps = recoveryEvidenceProbeStepsFor(checkpoint);\n\tconst requiredArtifacts = Array.from(new Set(steps\n\t\t.filter((step) => step.required)\n\t\t.map((step) => step.artifactExpectation)\n\t\t.filter(Boolean)));\n\treturn {\n\t\tprobeId: stableHash('mgr-probe', {\n\t\t\tcheckpointId: checkpoint.checkpointId,\n\t\t\trecoveryClass: checkpoint.recoveryClass,\n\t\t\tevidenceHash: checkpoint.evidenceHash,\n\t\t\tblockerFingerprint: checkpoint.blockerFingerprint\n\t\t}),\n\t\tcheckpointId: checkpoint.checkpointId,\n\t\trecoveryClass: checkpoint.recoveryClass,\n\t\tlane: checkpoint.lane,\n\t\tstepType: checkpoint.stepType,\n\t\tobjective: checkpoint.status === 'parked'\n\t\t\t? 'Collect new evidence before any additional expensive model/code repair.'\n\t\t\t: cleanText(checkpoint.objective, 1000),\n\t\tevidenceOnly: checkpoint.status === 'parked'\n\t\t\t|| checkpoint.recoveryClass === 'diagnosis_only'\n\t\t\t|| checkpoint.recoveryClass === 'diagnosis_revision'\n\t\t\t|| checkpoint.recoveryClass === 'infra_repair'\n\t\t\t|| checkpoint.recoveryClass === 'compile_repair'\n\t\t\t|| checkpoint.recoveryClass === 'release_repair',\n\t\tproductRepairAllowed: checkpoint.productRepairAllowed && checkpoint.status !== 'parked',\n\t\texpensiveModelAllowed: checkpoint.expensiveModelAllowed && checkpoint.status !== 'parked',\n\t\tevidenceHashBefore: checkpoint.evidenceHash,\n\t\tblockerFingerprint: checkpoint.blockerFingerprint,\n\t\tsteps,\n\t\trequiredArtifacts,\n\t\tacceptanceEvidence: Array.from(new Set([\n\t\t\t...checkpoint.requiredEvidence,\n\t\t\t...checkpoint.loopResetEvidence,\n\t\t\t...steps.map((step) => step.successSignal)\n\t\t].map((entry) => cleanText(entry, 500)).filter(Boolean))).slice(0, 30),\n\t\tstopConditions: Array.from(new Set([\n\t\t\t...checkpoint.forbiddenActions,\n\t\t\t'no new evidence hash',\n\t\t\t'no new artifact path',\n\t\t\t'product-code repair requested while evidenceOnly is true'\n\t\t].map((entry) => cleanText(entry, 500)).filter(Boolean))).slice(0, 30),\n\t\tloopResetEvidence: checkpoint.loopResetEvidence,\n\t\tcreatedAt: now\n\t};\n}\n\nfunction recoveryAutomationModeFor(\n\tcheckpoint: ResolveIOAIManagerRecoveryCheckpoint\n): ResolveIOAIManagerRecoveryAutomationMode {\n\tif (checkpoint.status === 'manual_handoff' || checkpoint.recoveryClass === 'manual_handoff') {\n\t\treturn 'manual_review';\n\t}\n\tif (checkpoint.status === 'complete' || checkpoint.recoveryClass === 'advance_after_proof') {\n\t\treturn 'advance';\n\t}\n\tif (checkpoint.status === 'parked' || checkpoint.recoveryClass === 'blocked_until_new_evidence') {\n\t\treturn 'collect_evidence';\n\t}\n\tif (checkpoint.recoveryClass === 'diagnosis_only' || checkpoint.recoveryClass === 'diagnosis_revision') {\n\t\treturn 'read_only_diagnosis';\n\t}\n\tif (checkpoint.recoveryClass === 'infra_repair') {\n\t\treturn 'repair_infra';\n\t}\n\tif (checkpoint.recoveryClass === 'compile_repair') {\n\t\treturn 'repair_compile';\n\t}\n\tif (checkpoint.recoveryClass === 'journey_contract_repair') {\n\t\treturn 'repair_journey_contract';\n\t}\n\tif (checkpoint.recoveryClass === 'business_proof_repair') {\n\t\treturn 'repair_business_assertion';\n\t}\n\tif (checkpoint.recoveryClass === 'release_repair') {\n\t\treturn 'repair_release';\n\t}\n\tif (checkpoint.recoveryClass === 'product_code_repair') {\n\t\treturn 'targeted_product_repair';\n\t}\n\treturn 'continue_gate';\n}\n\nfunction recoveryActionLabelFor(mode: ResolveIOAIManagerRecoveryAutomationMode, checkpoint: ResolveIOAIManagerRecoveryCheckpoint): string {\n\tconst explicit = cleanText(checkpoint.nextActionLabel, 120);\n\tif (explicit && mode !== 'collect_evidence') {\n\t\treturn explicit;\n\t}\n\tconst labels: Record<ResolveIOAIManagerRecoveryAutomationMode, string> = {\n\t\tadvance: 'Advance To Next Gate',\n\t\tcollect_evidence: 'Collect New Evidence',\n\t\tread_only_diagnosis: 'Run Diagnosis Evidence Pass',\n\t\trepair_infra: 'Repair Infra Gate',\n\t\trepair_compile: 'Repair Compile Gate',\n\t\trepair_journey_contract: 'Repair Journey Contract',\n\t\trepair_business_assertion: 'Repair Business Proof',\n\t\trepair_release: 'Repair Release Gate',\n\t\ttargeted_product_repair: 'Run Targeted Repair',\n\t\tmanual_review: 'Manual Review',\n\t\tcontinue_gate: 'Continue Current Gate'\n\t};\n\treturn labels[mode];\n}\n\nfunction recoveryActionAutoRunnable(\n\tmode: ResolveIOAIManagerRecoveryAutomationMode,\n\tprobe: ResolveIOAIManagerRecoveryEvidenceProbe\n): boolean {\n\tif (mode === 'manual_review') {\n\t\treturn false;\n\t}\n\tif (mode === 'advance' || mode === 'continue_gate') {\n\t\treturn true;\n\t}\n\tif (mode === 'targeted_product_repair' || mode === 'read_only_diagnosis' || mode === 'repair_journey_contract' || mode === 'repair_business_assertion') {\n\t\treturn true;\n\t}\n\treturn probe.steps.some((step) => step.commandHint || step.kind === 'rerun_same_gate' || step.kind === 'release_status' || step.kind === 'diff_scope_check');\n}\n\nexport function buildResolveIOAIManagerRecoveryActionPacket(\n\tinput: ResolveIOAIManagerRecoveryActionPacketInput\n): ResolveIOAIManagerRecoveryActionPacket {\n\tconst checkpoint = input.checkpoint;\n\tconst probe = input.probe || buildResolveIOAIManagerRecoveryEvidenceProbe({\n\t\tcheckpoint,\n\t\tcurrent: input.current,\n\t\tnow: input.now\n\t});\n\tconst mode = recoveryAutomationModeFor(checkpoint);\n\tconst primaryStep = probe.steps.find((step) => step.required && step.id !== 'snapshot_current_blocker')\n\t\t|| probe.steps.find((step) => step.required)\n\t\t|| probe.steps[0];\n\tconst evidenceOnly = probe.evidenceOnly || mode === 'collect_evidence' || mode === 'repair_infra' || mode === 'repair_compile' || mode === 'repair_release';\n\tconst requireNewEvidence = mode === 'collect_evidence'\n\t\t|| checkpoint.status === 'parked'\n\t\t|| checkpoint.attempts >= checkpoint.maxAttemptsBeforePark;\n\tconst stopWhen = Array.from(new Set([\n\t\t...probe.stopConditions,\n\t\t...(requireNewEvidence ? ['same blocker fingerprint and same evidence hash after probe'] : [])\n\t].map((entry) => cleanText(entry, 500)).filter(Boolean))).slice(0, 30);\n\tconst resetLoopWhen = Array.from(new Set([\n\t\t...checkpoint.loopResetEvidence,\n\t\t...probe.loopResetEvidence,\n\t\t...(requireNewEvidence ? ['changed evidence hash', 'new artifact path'] : [])\n\t].map((entry) => cleanText(entry, 500)).filter(Boolean))).slice(0, 30);\n\tconst nextCommands = probe.steps\n\t\t.map((step) => cleanText(step.commandHint || `${step.kind}:${step.id}`, 500))\n\t\t.filter(Boolean)\n\t\t.slice(0, 12);\n\tconst now = isoNow(input.now);\n\treturn {\n\t\tactionId: stableHash('mgr-action', {\n\t\t\tcheckpointId: checkpoint.checkpointId,\n\t\t\tprobeId: probe.probeId,\n\t\t\tmode,\n\t\t\tevidenceHash: checkpoint.evidenceHash,\n\t\t\tblockerFingerprint: checkpoint.blockerFingerprint\n\t\t}),\n\t\tcheckpointId: checkpoint.checkpointId,\n\t\tprobeId: probe.probeId,\n\t\trecoveryClass: checkpoint.recoveryClass,\n\t\tmode,\n\t\tlabel: recoveryActionLabelFor(mode, checkpoint),\n\t\tlane: checkpoint.lane,\n\t\tstepType: checkpoint.stepType,\n\t\tprimaryStepKind: primaryStep?.kind || 'none',\n\t\tobjective: mode === 'collect_evidence'\n\t\t\t? probe.objective\n\t\t\t: cleanText(checkpoint.objective || probe.objective, 1000),\n\t\tevidenceOnly,\n\t\tautoRunnable: recoveryActionAutoRunnable(mode, probe),\n\t\tproductRepairAllowed: checkpoint.productRepairAllowed && !evidenceOnly && checkpoint.status !== 'parked',\n\t\texpensiveModelAllowed: checkpoint.expensiveModelAllowed && checkpoint.status !== 'parked',\n\t\tcanResetLoopAfterEvidence: resetLoopWhen.length > 0,\n\t\tmaxAttemptsBeforePark: checkpoint.maxAttemptsBeforePark,\n\t\trequiredArtifacts: probe.requiredArtifacts.slice(0, 20),\n\t\tnextCommands,\n\t\tsuccessCriteria: probe.acceptanceEvidence.slice(0, 20),\n\t\tretryPolicy: {\n\t\t\tallowImmediateRetry: checkpoint.status !== 'parked' && mode !== 'manual_review',\n\t\t\trequireNewEvidence,\n\t\t\tresetLoopWhen,\n\t\t\tstopWhen\n\t\t},\n\t\t...(mode === 'collect_evidence' ? { blockedReason: 'Manager parked this loop until the recovery action records new evidence.' } : {}),\n\t\tcreatedAt: now\n\t};\n}\n\nfunction dispatchActionForMode(mode: ResolveIOAIManagerRecoveryAutomationMode): ResolveIOAIManagerRecoveryActionDispatchAction {\n\tconst map: Record<ResolveIOAIManagerRecoveryAutomationMode, ResolveIOAIManagerRecoveryActionDispatchAction> = {\n\t\tadvance: 'advance',\n\t\tcollect_evidence: 'run_evidence_probe',\n\t\tread_only_diagnosis: 'run_read_only_diagnosis',\n\t\trepair_infra: 'run_infra_repair',\n\t\trepair_compile: 'run_compile_repair',\n\t\trepair_journey_contract: 'run_journey_contract_repair',\n\t\trepair_business_assertion: 'run_business_assertion_repair',\n\t\trepair_release: 'run_release_repair',\n\t\ttargeted_product_repair: 'run_targeted_product_repair',\n\t\tmanual_review: 'park_manual',\n\t\tcontinue_gate: 'continue_gate'\n\t};\n\treturn map[mode] || 'park_manual';\n}\n\nfunction buildRecoveryDispatchRecord(\n\taction: ResolveIOAIManagerRecoveryActionPacket,\n\tdispatchAction: ResolveIOAIManagerRecoveryActionDispatchAction,\n\tstatus: ResolveIOAIManagerRecoveryActionDispatchStatus,\n\treason: string,\n\tcurrent?: ResolveIOAIManagerFailureRecord,\n\tnow?: Date | string\n): ResolveIOAIManagerRecoveryActionDispatchRecord {\n\tconst evidenceHash = current?.evidenceHash || action.checkpointId || action.actionId;\n\tconst blockerFingerprint = resolveResolveIOAIManagerBlockerFingerprint(current, action.objective);\n\tconst artifactPaths = cleanList(current?.artifactPaths, 20, 500);\n\tconst createdAt = isoNow(now);\n\treturn {\n\t\tdispatchId: stableHash('mgr-dispatch', {\n\t\t\tactionId: action.actionId,\n\t\t\tdispatchAction,\n\t\t\tevidenceHash,\n\t\t\tblockerFingerprint,\n\t\t\tstatus\n\t\t}),\n\t\tactionId: action.actionId,\n\t\tcheckpointId: action.checkpointId,\n\t\tprobeId: action.probeId,\n\t\tmode: action.mode,\n\t\tdispatchAction,\n\t\tstatus,\n\t\tevidenceHash,\n\t\tblockerFingerprint,\n\t\tproductRepairAllowed: action.productRepairAllowed && dispatchAction === 'run_targeted_product_repair',\n\t\texpensiveModelAllowed: action.expensiveModelAllowed && dispatchAction !== 'run_evidence_probe',\n\t\treason,\n\t\tartifactPaths,\n\t\t...(status === 'started' ? { startedAt: createdAt } : {}),\n\t\t...(status === 'completed' ? { completedAt: createdAt } : {}),\n\t\tcreatedAt\n\t};\n}\n\nexport function decideResolveIOAIManagerRecoveryActionDispatch(\n\tinput: ResolveIOAIManagerRecoveryActionDispatchInput\n): ResolveIOAIManagerRecoveryActionDispatchDecision {\n\tconst action = input.action;\n\tconst history = Array.isArray(input.history) ? input.history.filter(Boolean).slice(-50) : [];\n\tconst current = input.current || {};\n\tif (!action) {\n\t\treturn {\n\t\t\tdispatchAction: 'park_manual',\n\t\t\tallowed: false,\n\t\t\treason: 'recovery_dispatch_missing_action',\n\t\t\tstatus: 'parked',\n\t\t\tcanRunProductRepair: false,\n\t\t\tcanRunExpensiveModel: false,\n\t\t\tshouldRecordDispatch: false,\n\t\t\trequiresNewEvidence: true,\n\t\t\tnewEvidence: false\n\t\t};\n\t}\n\tconst dispatchAction = dispatchActionForMode(action.mode);\n\tconst evidenceHash = current.evidenceHash || action.checkpointId || action.actionId;\n\tconst blockerFingerprint = resolveResolveIOAIManagerBlockerFingerprint(current, action.objective);\n\tconst sameActionHistory = history.filter((entry) => entry.actionId === action.actionId);\n\tconst sameEvidenceHistory = sameActionHistory.filter((entry) => entry.evidenceHash === evidenceHash\n\t\t&& entry.blockerFingerprint === blockerFingerprint);\n\tconst activeDispatch = sameEvidenceHistory.find((entry) => entry.status === 'queued' || entry.status === 'started');\n\tconst completedDispatch = sameEvidenceHistory.find((entry) => entry.status === 'completed' || entry.status === 'failed');\n\tconst newEvidence = sameActionHistory.length > 0 && sameEvidenceHistory.length === 0;\n\tconst requiresNewEvidence = action.retryPolicy.requireNewEvidence === true;\n\tconst manualOnly = action.mode === 'manual_review' || !action.autoRunnable;\n\tconst productDispatch = dispatchAction === 'run_targeted_product_repair';\n\tconst expensiveDispatch = !['run_evidence_probe', 'advance', 'continue_gate', 'park_manual'].includes(dispatchAction);\n\tif (manualOnly && input.operatorApproved !== true) {\n\t\tconst record = buildRecoveryDispatchRecord(action, 'park_manual', 'parked', 'recovery_dispatch_requires_manual_review', current, input.now);\n\t\treturn {\n\t\t\tdispatchAction: 'park_manual',\n\t\t\tallowed: false,\n\t\t\treason: record.reason,\n\t\t\tstatus: 'parked',\n\t\t\tcanRunProductRepair: false,\n\t\t\tcanRunExpensiveModel: false,\n\t\t\tshouldRecordDispatch: true,\n\t\t\trequiresNewEvidence,\n\t\t\tnewEvidence,\n\t\t\tdispatchRecord: record\n\t\t};\n\t}\n\tif (productDispatch && action.productRepairAllowed !== true) {\n\t\tconst record = buildRecoveryDispatchRecord(action, 'park_manual', 'parked', 'recovery_dispatch_product_repair_not_allowed', current, input.now);\n\t\treturn {\n\t\t\tdispatchAction: 'park_manual',\n\t\t\tallowed: false,\n\t\t\treason: record.reason,\n\t\t\tstatus: 'parked',\n\t\t\tcanRunProductRepair: false,\n\t\t\tcanRunExpensiveModel: false,\n\t\t\tshouldRecordDispatch: true,\n\t\t\trequiresNewEvidence: true,\n\t\t\tnewEvidence,\n\t\t\tdispatchRecord: record\n\t\t};\n\t}\n\tif (activeDispatch) {\n\t\treturn {\n\t\t\tdispatchAction: 'park_manual',\n\t\t\tallowed: false,\n\t\t\treason: 'recovery_dispatch_already_running_for_same_evidence',\n\t\t\tstatus: 'parked',\n\t\t\tcanRunProductRepair: false,\n\t\t\tcanRunExpensiveModel: false,\n\t\t\tshouldRecordDispatch: false,\n\t\t\trequiresNewEvidence: true,\n\t\t\tnewEvidence: false\n\t\t};\n\t}\n\tif (completedDispatch && requiresNewEvidence && !newEvidence) {\n\t\tconst record = buildRecoveryDispatchRecord(action, 'park_manual', 'parked', 'recovery_dispatch_same_evidence_already_attempted', current, input.now);\n\t\treturn {\n\t\t\tdispatchAction: 'park_manual',\n\t\t\tallowed: false,\n\t\t\treason: record.reason,\n\t\t\tstatus: 'parked',\n\t\t\tcanRunProductRepair: false,\n\t\t\tcanRunExpensiveModel: false,\n\t\t\tshouldRecordDispatch: true,\n\t\t\trequiresNewEvidence: true,\n\t\t\tnewEvidence: false,\n\t\t\tdispatchRecord: record\n\t\t};\n\t}\n\tconst status: ResolveIOAIManagerRecoveryActionDispatchStatus = dispatchAction === 'advance' || dispatchAction === 'continue_gate'\n\t\t? 'completed'\n\t\t: 'started';\n\tconst record = buildRecoveryDispatchRecord(action, dispatchAction, status, 'recovery_dispatch_allowed', current, input.now);\n\treturn {\n\t\tdispatchAction,\n\t\tallowed: true,\n\t\treason: 'recovery_dispatch_allowed',\n\t\tstatus,\n\t\tcanRunProductRepair: productDispatch && action.productRepairAllowed === true,\n\t\tcanRunExpensiveModel: expensiveDispatch && action.expensiveModelAllowed === true,\n\t\tshouldRecordDispatch: true,\n\t\trequiresNewEvidence,\n\t\tnewEvidence,\n\t\tdispatchRecord: record\n\t};\n}\n\nexport function appendResolveIOAIManagerRecoveryActionDispatch(\n\thistory: ResolveIOAIManagerRecoveryActionDispatchRecord[] | undefined,\n\trecord: ResolveIOAIManagerRecoveryActionDispatchRecord | undefined,\n\tlimit = 50\n): ResolveIOAIManagerRecoveryActionDispatchRecord[] {\n\tconst existing = Array.isArray(history) ? history.filter(Boolean) : [];\n\tif (!record) {\n\t\treturn existing.slice(-limit);\n\t}\n\tconst deduped = existing.filter((entry) => entry.dispatchId !== record.dispatchId);\n\treturn [...deduped, record].slice(-limit);\n}\n\nfunction recoveryExecutionPhaseForDispatch(\n\tdispatchAction: ResolveIOAIManagerRecoveryActionDispatchAction\n): ResolveIOAIManagerRecoveryExecutionPhase {\n\tconst map: Record<ResolveIOAIManagerRecoveryActionDispatchAction, ResolveIOAIManagerRecoveryExecutionPhase> = {\n\t\trun_evidence_probe: 'evidence',\n\t\trun_read_only_diagnosis: 'diagnosis',\n\t\trun_infra_repair: 'infra',\n\t\trun_compile_repair: 'compile',\n\t\trun_journey_contract_repair: 'journey',\n\t\trun_business_assertion_repair: 'business_proof',\n\t\trun_release_repair: 'release',\n\t\trun_targeted_product_repair: 'product_repair',\n\t\tadvance: 'advance',\n\t\tcontinue_gate: 'advance',\n\t\tpark_manual: 'manual'\n\t};\n\treturn map[dispatchAction] || 'manual';\n}\n\nfunction recoveryDirectiveReason(\n\taction: ResolveIOAIManagerRecoveryActionPacket | undefined,\n\tdecision: ResolveIOAIManagerRecoveryActionDispatchDecision,\n\tcurrent?: ResolveIOAIManagerFailureRecord\n): string {\n\tconst blocker = cleanText(current?.blocker || current?.summary || '', 260);\n\tconst label = cleanText(action?.label, 120) || decision.dispatchAction;\n\tconst objective = cleanText(action?.objective, 260);\n\treturn [\n\t\t`MANAGER_RECOVERY:${decision.dispatchAction}`,\n\t\t`label=${label}`,\n\t\tdecision.reason ? `reason=${decision.reason}` : '',\n\t\tblocker ? `blocker=${blocker}` : '',\n\t\tobjective ? `objective=${objective}` : ''\n\t].filter(Boolean).join(' | ');\n}\n\nexport function buildResolveIOAIManagerRecoveryExecutionDirective(\n\tinput: ResolveIOAIManagerRecoveryExecutionDirectiveInput\n): ResolveIOAIManagerRecoveryExecutionDirective {\n\tconst action = input.action;\n\tconst dispatchDecision = input.dispatchDecision || decideResolveIOAIManagerRecoveryActionDispatch({\n\t\taction,\n\t\tcurrent: input.current,\n\t\tnow: input.now\n\t});\n\tconst dispatchAction = dispatchDecision.dispatchAction;\n\tconst now = isoNow(input.now);\n\tconst phase = recoveryExecutionPhaseForDispatch(dispatchAction);\n\tconst lane = cleanText(action?.lane || input.current?.lane || '', 120);\n\tconst stepType = cleanText(action?.stepType || input.current?.stepType || '', 120);\n\tconst rerunReason = recoveryDirectiveReason(action, dispatchDecision, input.current);\n\tconst surface = cleanText(input.surface || 'runner', 120);\n\treturn {\n\t\tdirectiveId: stableHash('mgr-directive', {\n\t\t\tsurface,\n\t\t\tactionId: action?.actionId || '',\n\t\t\tdispatchAction,\n\t\t\treason: dispatchDecision.reason,\n\t\t\tevidenceHash: dispatchDecision.dispatchRecord?.evidenceHash || input.current?.evidenceHash || ''\n\t\t}),\n\t\tsurface,\n\t\tdispatchAction,\n\t\tphase,\n\t\tallowed: dispatchDecision.allowed,\n\t\tstatus: dispatchDecision.status,\n\t\treason: dispatchDecision.reason,\n\t\tlane,\n\t\tstepType,\n\t\tnextActionLabel: cleanText(action?.label, 160) || dispatchAction,\n\t\trerunReason,\n\t\tevidenceOnly: action?.evidenceOnly !== false || dispatchAction === 'run_evidence_probe',\n\t\tautoRunnable: action?.autoRunnable === true,\n\t\tproductRepairAllowed: action?.productRepairAllowed === true,\n\t\texpensiveModelAllowed: action?.expensiveModelAllowed === true,\n\t\tcanRunProductRepair: dispatchDecision.canRunProductRepair,\n\t\tcanRunExpensiveModel: dispatchDecision.canRunExpensiveModel,\n\t\tcanResetLoopAfterEvidence: action?.canResetLoopAfterEvidence === true,\n\t\trequiresNewEvidence: dispatchDecision.requiresNewEvidence,\n\t\tnewEvidence: dispatchDecision.newEvidence,\n\t\tmaxAttemptsBeforePark: Math.max(1, Number(action?.maxAttemptsBeforePark || 1) || 1),\n\t\trequiredArtifacts: cleanList(action?.requiredArtifacts, 20, 500),\n\t\tnextCommands: cleanList(action?.nextCommands, 20, 500),\n\t\tsuccessCriteria: cleanList(action?.successCriteria, 20, 500),\n\t\tforbiddenActions: action?.productRepairAllowed === true\n\t\t\t? []\n\t\t\t: ['Do not run product-code repair from this directive unless canRunProductRepair is true.'],\n\t\t...(dispatchDecision.dispatchRecord ? { dispatchRecord: dispatchDecision.dispatchRecord } : {}),\n\t\tcreatedAt: now\n\t};\n}\n\nfunction listHasNewEntry(current: string[], previous: string[]): boolean {\n\tconst existing = new Set(previous.map((entry) => cleanText(entry, 500)).filter(Boolean));\n\treturn current.some((entry) => {\n\t\tconst normalized = cleanText(entry, 500);\n\t\treturn !!normalized && !existing.has(normalized);\n\t});\n}\n\nfunction proposedActionIsProductRepair(value: any): boolean {\n\tconst normalized = cleanText(value, 120);\n\treturn /product|code|repair|build|business|journey|workflow/i.test(normalized)\n\t\t&& !/infra|compile|diagnosis|manual|evidence|release|publish/i.test(normalized);\n}\n\nexport function decideResolveIOAIManagerRecoveryGate(\n\tinput: ResolveIOAIManagerRecoveryGateInput\n): ResolveIOAIManagerRecoveryGateDecision {\n\tconst checkpoint = input.checkpoint;\n\tconst hasCurrent = !!input.current;\n\tconst current = input.current || {};\n\tconst blockerFingerprint = hasCurrent\n\t\t? resolveResolveIOAIManagerBlockerFingerprint(current, checkpoint.objective)\n\t\t: checkpoint.blockerFingerprint;\n\tconst evidenceHash = hasCurrent ? hashResolveIOAIManagerEvidence(current) : checkpoint.evidenceHash;\n\tconst changedFiles = hasCurrent ? cleanList(current.changedFiles, 80, 500) : checkpoint.changedFiles;\n\tconst artifactPaths = hasCurrent ? cleanList(current.artifactPaths, 80, 500) : checkpoint.artifactPaths;\n\tconst evidenceChanged = evidenceHash !== checkpoint.evidenceHash\n\t\t|| blockerFingerprint !== checkpoint.blockerFingerprint\n\t\t|| listHasNewEntry(changedFiles, checkpoint.changedFiles)\n\t\t|| listHasNewEntry(artifactPaths, checkpoint.artifactPaths);\n\tconst proposedAction = cleanText(input.proposedAction || checkpoint.allowedAction, 120);\n\tconst productRepairRequested = proposedActionIsProductRepair(proposedAction);\n\tconst missingEvidence = checkpoint.requiredEvidence.filter((required) => {\n\t\tconst normalized = cleanText(required, 120).toLowerCase();\n\t\tif (!normalized) {\n\t\t\treturn false;\n\t\t}\n\t\tif (/artifact|log|proof|gate|evidence/.test(normalized)) {\n\t\t\treturn !artifactPaths.length && !current.evidenceHash;\n\t\t}\n\t\tif (/diff|changed files|owner|scope|file/.test(normalized)) {\n\t\t\treturn !changedFiles.length;\n\t\t}\n\t\treturn false;\n\t});\n\tconst makeDecision = (\n\t\taction: ResolveIOAIManagerRecoveryGateAction,\n\t\treason: string,\n\t\toverrides: Partial<ResolveIOAIManagerRecoveryGateDecision> = {}\n\t): ResolveIOAIManagerRecoveryGateDecision => ({\n\t\taction,\n\t\treason,\n\t\tcanRunProductRepair: checkpoint.productRepairAllowed,\n\t\tcanRunExpensiveModel: checkpoint.expensiveModelAllowed,\n\t\tshouldResetLoopBudget: false,\n\t\tshouldIncrementAttempt: action === 'allow',\n\t\tnewEvidence: evidenceChanged,\n\t\tblockerFingerprint,\n\t\tevidenceHash,\n\t\tmissingEvidence,\n\t\tcheckpoint: {\n\t\t\t...checkpoint,\n\t\t\tupdatedAt: isoNow(input.now)\n\t\t},\n\t\t...overrides\n\t});\n\n\tif (checkpoint.status === 'complete') {\n\t\treturn makeDecision('complete', 'recovery_gate_checkpoint_already_complete', {\n\t\t\tcanRunProductRepair: false,\n\t\t\tcanRunExpensiveModel: false,\n\t\t\tshouldIncrementAttempt: false\n\t\t});\n\t}\n\tif (checkpoint.status === 'manual_handoff' && input.operatorApproved !== true) {\n\t\treturn makeDecision('manual_handoff', 'recovery_gate_manual_handoff_requires_operator_approval', {\n\t\t\tcanRunProductRepair: false,\n\t\t\tcanRunExpensiveModel: false,\n\t\t\tshouldIncrementAttempt: false\n\t\t});\n\t}\n\tif (productRepairRequested && !checkpoint.productRepairAllowed) {\n\t\treturn makeDecision('reject_action', 'recovery_gate_product_repair_not_allowed_for_checkpoint', {\n\t\t\tcanRunProductRepair: false,\n\t\t\tcanRunExpensiveModel: false,\n\t\t\tshouldIncrementAttempt: false\n\t\t});\n\t}\n\tif (checkpoint.status === 'parked' && !evidenceChanged) {\n\t\treturn makeDecision('collect_new_evidence', 'recovery_gate_parked_until_new_evidence', {\n\t\t\tcanRunProductRepair: false,\n\t\t\tcanRunExpensiveModel: false,\n\t\t\tshouldIncrementAttempt: false\n\t\t});\n\t}\n\tif (checkpoint.attempts >= checkpoint.maxAttemptsBeforePark && !evidenceChanged) {\n\t\treturn makeDecision('collect_new_evidence', 'recovery_gate_attempt_limit_requires_new_evidence', {\n\t\t\tcanRunProductRepair: false,\n\t\t\tcanRunExpensiveModel: false,\n\t\t\tshouldIncrementAttempt: false\n\t\t});\n\t}\n\tif (evidenceChanged) {\n\t\tconst currentFailureClass = normalizeResolveIOAIManagerFailureClass(current.failureClass);\n\t\tconst currentCanRunProductRepair = checkpoint.productRepairAllowed\n\t\t\t|| !/^(infra|compile|diagnosis|release)$/i.test(currentFailureClass);\n\t\treturn makeDecision('allow', 'recovery_gate_new_evidence_unblocks_retry', {\n\t\t\tcanRunProductRepair: currentCanRunProductRepair,\n\t\t\tcanRunExpensiveModel: checkpoint.expensiveModelAllowed || currentCanRunProductRepair,\n\t\t\tshouldResetLoopBudget: true\n\t\t});\n\t}\n\treturn makeDecision('allow', 'recovery_gate_action_allowed');\n}\n\nfunction failureKey(record: ResolveIOAIManagerFailureRecord | undefined): string {\n\tif (!record) {\n\t\treturn '';\n\t}\n\tconst failureClass = normalizeResolveIOAIManagerFailureClass(record.failureClass);\n\tconst blockerFingerprint = resolveResolveIOAIManagerBlockerFingerprint(record);\n\treturn `${cleanText(record.lane, 80)}:${cleanText(record.stepType, 80)}:${failureClass}:${blockerFingerprint}`;\n}\n\nfunction failureEvidenceKey(record: ResolveIOAIManagerFailureRecord | undefined): string {\n\treturn `${failureKey(record)}:${hashResolveIOAIManagerEvidence(record)}`;\n}\n\nfunction isPassingOutcome(record: ResolveIOAIManagerFailureRecord | undefined): boolean {\n\treturn /^(pass|accepted|ready_to_publish|published|ready_for_merge|complete|completed)$/i.test(cleanText(record?.outcome, 80));\n}\n\nfunction isManualOutcome(record: ResolveIOAIManagerFailureRecord | undefined): boolean {\n\treturn /^(manual_handoff|park_manual|stopped)$/i.test(cleanText(record?.outcome, 80));\n}\n\nexport function buildResolveIOAIManagerRecoveryPlan(input: ResolveIOAIManagerRecoveryPlanInput = {}): ResolveIOAIManagerRecoveryPlan {\n\tconst action = cleanText(input.action, 80) || 'continue';\n\tconst reason = cleanText(input.reason, 240);\n\tconst failureClass = normalizeResolveIOAIManagerFailureClass(input.failureClass);\n\tconst lane = cleanText(input.lane, 80) || 'supervisor';\n\tconst stepType = cleanText(input.stepType, 80) || 'unknown';\n\tconst blocker = cleanText(input.blocker, 700);\n\tconst changedFiles = cleanList(input.changedFiles, 12, 240);\n\tconst artifactPaths = cleanList(input.artifactPaths, 12, 240);\n\tconst maxAttemptsBeforePark = Math.max(1, Number(input.maxSameFailureRepeats || 3) || 3);\n\tconst commonNotes = [\n\t\treason ? `policy_reason=${reason}` : '',\n\t\tblocker ? `blocker=${blocker}` : '',\n\t\tchangedFiles.length ? `changed_files=${changedFiles.join(', ')}` : '',\n\t\tartifactPaths.length ? `artifacts=${artifactPaths.join(', ')}` : ''\n\t].filter(Boolean);\n\tconst base: Omit<ResolveIOAIManagerRecoveryPlan, 'recoveryClass' | 'nextActionLabel' | 'objective' | 'allowedAction' | 'productRepairAllowed' | 'expensiveModelAllowed' | 'finiteSteps' | 'requiredEvidence' | 'loopResetEvidence' | 'forbiddenActions'> = {\n\t\tlane,\n\t\tstepType,\n\t\tmaxAttemptsBeforePark,\n\t\tnotes: commonNotes\n\t};\n\tconst makePlan = (\n\t\trecoveryClass: ResolveIOAIManagerRecoveryClass,\n\t\tnextActionLabel: string,\n\t\tobjective: string,\n\t\tallowedAction: string,\n\t\tproductRepairAllowed: boolean,\n\t\texpensiveModelAllowed: boolean,\n\t\tfiniteSteps: string[],\n\t\trequiredEvidence: string[],\n\t\tloopResetEvidence: string[],\n\t\tforbiddenActions: string[]\n\t): ResolveIOAIManagerRecoveryPlan => ({\n\t\t...base,\n\t\trecoveryClass,\n\t\tnextActionLabel,\n\t\tobjective,\n\t\tallowedAction,\n\t\tproductRepairAllowed,\n\t\texpensiveModelAllowed,\n\t\tfiniteSteps,\n\t\trequiredEvidence,\n\t\tloopResetEvidence,\n\t\tforbiddenActions\n\t});\n\tif (action === 'reset_loop_budget') {\n\t\treturn makePlan(\n\t\t\t'advance_after_proof',\n\t\t\t'Advance After Proof',\n\t\t\t'Checkpoint the passing evidence and move to the next required gate.',\n\t\t\t'advance_to_next_gate',\n\t\t\tfalse,\n\t\t\tfalse,\n\t\t\t[\n\t\t\t\t'Record the passing artifact, changed files, and gate result.',\n\t\t\t\t'Reset the loop counter because a real gate passed.',\n\t\t\t\t'Select the next unmet deterministic gate instead of repeating the previous repair.'\n\t\t\t],\n\t\t\t['passing gate record', 'artifact or log proving the passed check'],\n\t\t\t['new passing gate result', 'new business proof artifact'],\n\t\t\t['rerun the same repair after a pass', 'mark accepted without the required downstream gate']\n\t\t);\n\t}\n\tif (action === 'manual_handoff') {\n\t\treturn makePlan(\n\t\t\t'manual_handoff',\n\t\t\t'Manual Review',\n\t\t\t'Stop autonomous repair and expose the blocker, evidence, and last safe state.',\n\t\t\t'manual_review_only',\n\t\t\tfalse,\n\t\t\tfalse,\n\t\t\t[\n\t\t\t\t'Freeze further product-code edits.',\n\t\t\t\t'Show the blocker fingerprint, evidence hash, and prior attempts.',\n\t\t\t\t'Require a human edit to classification, scope, or retry policy before another model/code loop.'\n\t\t\t],\n\t\t\t['blocker fingerprint', 'evidence hash', 'attempt history'],\n\t\t\t['manual policy change', 'new external evidence'],\n\t\t\t['start another automatic model repair', 'hide the failed evidence']\n\t\t);\n\t}\n\tif (action === 'budget_stop') {\n\t\treturn makePlan(\n\t\t\t'manual_handoff',\n\t\t\t'Budget Stop Review',\n\t\t\t'Stop autonomous model/code loops until a cheaper scoped next action is selected.',\n\t\t\t'budget_review_only',\n\t\t\tfalse,\n\t\t\tfalse,\n\t\t\t[\n\t\t\t\t'Freeze further model repair loops.',\n\t\t\t\t'Show the prompt/token/runtime budget that tripped the guard.',\n\t\t\t\t'Select a cheaper deterministic gate, infra repair, diagnosis revision, or manual scope edit before resuming.'\n\t\t\t],\n\t\t\t['budget guard reason', 'latest prompt estimate', 'last blocker/evidence hash'],\n\t\t\t['manual scope reduction', 'new deterministic evidence', 'approved budget policy change'],\n\t\t\t['start another broad model prompt', 'reset budget without new evidence', 'hide cost context']\n\t\t);\n\t}\n\tif (failureClass === 'diagnosis' || stepType === 'diagnosis_gate') {\n\t\treturn makePlan(\n\t\t\t'diagnosis_only',\n\t\t\t'Run Diagnosis Gate',\n\t\t\t'Produce a falsifiable root-cause diagnosis before any repair.',\n\t\t\t'read_only_diagnosis',\n\t\t\tfalse,\n\t\t\ttrue,\n\t\t\t[\n\t\t\t\t'Reproduce or explicitly classify the customer issue.',\n\t\t\t\t'Accept one falsifiable hypothesis and record rejected alternatives.',\n\t\t\t\t'Identify the frontend/backend/shared failing path.',\n\t\t\t\t'Select a small owner_files set.',\n\t\t\t\t'Define exact before/action/after business proof.'\n\t\t\t],\n\t\t\t['issue_case', 'accepted_hypothesis', 'rejected_alternatives', 'failing_path', 'owner_files', 'proof_plan'],\n\t\t\t['new reproduction artifact', 'new query/log/code evidence', 'validated diagnosis gate'],\n\t\t\t['edit product code', 'run broad repo repair', 'accept route-load evidence as success']\n\t\t);\n\t}\n\tif (failureClass === 'owner_scope' || failureClass === 'out_of_scope' || /out.?of.?scope|owner_files/i.test(reason)) {\n\t\treturn makePlan(\n\t\t\t'diagnosis_revision',\n\t\t\t'Revise Diagnosis Scope',\n\t\t\t'Revise owner_files only when new evidence proves the current scope is wrong.',\n\t\t\t'diagnosis_revision_only',\n\t\t\tfalse,\n\t\t\ttrue,\n\t\t\t[\n\t\t\t\t'Compare changed files against the diagnosis owner_files.',\n\t\t\t\t'Collect evidence proving why the new file is in the failing path.',\n\t\t\t\t'Update accepted_hypothesis, failing_path, owner_files, and proof_plan together.',\n\t\t\t\t'Resume repair only after the revised gate validates.'\n\t\t\t],\n\t\t\t['out-of-scope file list', 'new failing-path evidence', 'revalidated diagnosis gate'],\n\t\t\t['revised owner_files with evidence', 'new business proof requirement'],\n\t\t\t['keep broad edits without diagnosis', 'add convenience refactors', 'continue repair outside owner_files']\n\t\t);\n\t}\n\tif (action === 'retry_infra') {\n\t\tconst isCompile = failureClass === 'compile';\n\t\treturn makePlan(\n\t\t\tisCompile ? 'compile_repair' : 'infra_repair',\n\t\t\tisCompile ? 'Repair Compile Gate' : 'Repair Infra Gate',\n\t\t\tisCompile\n\t\t\t\t? 'Fix the deterministic compile/build blocker before spending another product repair loop.'\n\t\t\t\t: 'Fix the deterministic harness/browser/server/Mongo blocker before product repair.',\n\t\t\tisCompile ? 'compile_repair_only' : 'infra_repair_only',\n\t\t\tfalse,\n\t\t\tfalse,\n\t\t\tisCompile\n\t\t\t\t? [\n\t\t\t\t\t'Read the exact compile/build log and identify the first actionable error.',\n\t\t\t\t\t'Fix missing dependency, stale artifact, command, cache, or type wiring required by the compile gate.',\n\t\t\t\t\t'Rerun the same finite compile command.',\n\t\t\t\t\t'Return the compile log artifact and status.'\n\t\t\t\t]\n\t\t\t\t: [\n\t\t\t\t\t'Run preflight for Puppeteer, Chrome executable, ports, Mongo/settings, and startup command.',\n\t\t\t\t\t'Repair only the failing harness/environment item.',\n\t\t\t\t\t'Rerun the same infra check.',\n\t\t\t\t\t'Return the infra log and pass/fail status.'\n\t\t\t\t],\n\t\t\tisCompile\n\t\t\t\t? ['compile command', 'compile log artifact', 'first failing error fixed or still failing']\n\t\t\t\t: ['preflight command', 'infra log artifact', 'specific repaired environment item'],\n\t\t\t['same check now passes', 'new infra/compile blocker hash'],\n\t\t\t['run product-code model repair', 'count this as product failure', 'accept route/business success without the compile/infra gate']\n\t\t);\n\t}\n\tif (action === 'park_repeated_failure' || action === 'park_ping_pong') {\n\t\treturn makePlan(\n\t\t\t'blocked_until_new_evidence',\n\t\t\taction === 'park_ping_pong' ? 'Park Ping-Pong Loop' : 'Park Repeated Failure',\n\t\t\t'Stop the current loop until new evidence changes the diagnosis, route, or repair target.',\n\t\t\t'collect_new_evidence_only',\n\t\t\tfalse,\n\t\t\tfalse,\n\t\t\t[\n\t\t\t\t'Do not rerun the same prompt or same repair.',\n\t\t\t\t'Show the repeated blocker and evidence hash.',\n\t\t\t\t'Collect a new artifact: failing DOM state, stack trace, network response, Mongo delta, compile log, or revised diagnosis.',\n\t\t\t\t'Reset the loop only after the new evidence hash changes.'\n\t\t\t],\n\t\t\t['same failure count', 'blocker fingerprint', 'evidence hash'],\n\t\t\t['changed evidence hash', 'new artifact path', 'revised diagnosis or journey contract'],\n\t\t\t['alternate between two failed patches', 'increase loop budget without evidence', 'hide the park reason']\n\t\t);\n\t}\n\tif (failureClass === 'journey') {\n\t\treturn makePlan(\n\t\t\t'journey_contract_repair',\n\t\t\t'Repair Journey Contract',\n\t\t\t'Fix the first/next/last workflow contract before app code work continues.',\n\t\t\t'journey_contract_repair',\n\t\t\tfalse,\n\t\t\ttrue,\n\t\t\t[\n\t\t\t\t'Open docs/APP_JOURNEY_CONTRACT.md.',\n\t\t\t\t'Define first_screen, north_star_workflow, screen_sequence, data_story, completion_states, and qa_assertions.',\n\t\t\t\t'Ensure each CTA maps to an action, route, method, calculation, or state transition.',\n\t\t\t\t'Validate that sample data can drive the promised workflow.'\n\t\t\t],\n\t\t\t['validated journey_contract JSON', 'CTA-to-action mapping', 'workflow QA assertions'],\n\t\t\t['journey validation passes', 'new workflow QA rows generated'],\n\t\t\t['build empty routes', 'add link-only dashboard actions', 'defer workflow design to wow pass']\n\t\t);\n\t}\n\tif (failureClass === 'release') {\n\t\treturn makePlan(\n\t\t\t'release_repair',\n\t\t\t'Repair Release Gate',\n\t\t\t'Repair deploy/publish/sample-data release evidence without rewriting working app flow.',\n\t\t\t'release_repair_only',\n\t\t\tfalse,\n\t\t\tfalse,\n\t\t\t[\n\t\t\t\t'Read the deploy/publish/sample-data log.',\n\t\t\t\t'Identify whether the blocker is domain, asset, seed data, route, permission, or CDN.',\n\t\t\t\t'Repair the release artifact/config/seed issue.',\n\t\t\t\t'Rerun only the failed release gate.'\n\t\t\t],\n\t\t\t['deploy or publish log', 'sample-data status', 'failed release gate rerun'],\n\t\t\t['release gate passes', 'new release blocker hash'],\n\t\t\t['change core workflow after business QA passed', 'mark accepted from scorecard only', 'rerun full builder loop']\n\t\t);\n\t}\n\tif (failureClass === 'business' || failureClass === 'qa_evidence' || failureClass === 'route') {\n\t\treturn makePlan(\n\t\t\t'business_proof_repair',\n\t\t\t'Repair Business Proof',\n\t\t\t'Fix the exact failing workflow assertion and prove before/action/after behavior.',\n\t\t\t'business_repair',\n\t\t\ttrue,\n\t\t\ttrue,\n\t\t\t[\n\t\t\t\t'Open the failing QA row or proof_plan.',\n\t\t\t\t'Trace the UI action to method/publication/query/calculation.',\n\t\t\t\t'Patch the smallest owner or workflow files.',\n\t\t\t\t'Rerun only the failed business assertion.',\n\t\t\t\t'Record DOM/data/Mongo/artifact proof.'\n\t\t\t],\n\t\t\t['failing assertion', 'action trace', 'business proof artifact'],\n\t\t\t['business assertion passes', 'new failed assertion with new evidence'],\n\t\t\t['treat route load as success', 'rerun unrelated QA rows first', 'accept scorecard-only evidence']\n\t\t);\n\t}\n\tif (input.productRepairFailure !== false || failureClass === 'product_code') {\n\t\treturn makePlan(\n\t\t\t'product_code_repair',\n\t\t\t'Run Targeted Product Repair',\n\t\t\t'Repair the current product-code blocker with the smallest scoped edit and immediate proof.',\n\t\t\t'targeted_product_repair',\n\t\t\ttrue,\n\t\t\ttrue,\n\t\t\t[\n\t\t\t\t'Inspect the current blocker, artifacts, changed files, and owner/workflow scope.',\n\t\t\t\t'Form one small repair hypothesis.',\n\t\t\t\t'Patch only files justified by the active diagnosis or journey contract.',\n\t\t\t\t'Rerun the smallest failed gate.',\n\t\t\t\t'Record new evidence before any additional loop.'\n\t\t\t],\n\t\t\t['owner/workflow scope', 'repair diff', 'failed gate rerun artifact'],\n\t\t\t['new evidence hash', 'same gate passes'],\n\t\t\t['broad repo search-and-edit', 'rerun the same prompt without inspecting artifacts', 'change unrelated UI polish']\n\t\t);\n\t}\n\treturn makePlan(\n\t\t'continue',\n\t\t'Continue Current Gate',\n\t\t'Continue the current lane because no blocking loop or infra condition was detected.',\n\t\t'continue',\n\t\tfalse,\n\t\tfalse,\n\t\t[\n\t\t\t'Use the active lane memory.',\n\t\t\t'Run the next finite gate.',\n\t\t\t'Record artifacts and evidence hash.'\n\t\t],\n\t\t['active lane memory', 'finite gate artifact'],\n\t\t['new gate result', 'new artifact path'],\n\t\t['spawn duplicate runners', 'advance without evidence']\n\t);\n}\n\nfunction collectOpenTail(records: ResolveIOAIManagerFailureRecord[]): ResolveIOAIManagerFailureRecord[] {\n\tconst tail: ResolveIOAIManagerFailureRecord[] = [];\n\tfor (let index = records.length - 1; index >= 0; index -= 1) {\n\t\tconst record = records[index];\n\t\tif (isPassingOutcome(record)) {\n\t\t\tbreak;\n\t\t}\n\t\ttail.unshift(record);\n\t}\n\treturn tail;\n}\n\nfunction countSameFailure(records: ResolveIOAIManagerFailureRecord[], current: ResolveIOAIManagerFailureRecord): number {\n\tconst currentKey = failureEvidenceKey(current);\n\tlet count = 0;\n\tfor (let index = records.length - 1; index >= 0; index -= 1) {\n\t\tconst record = records[index];\n\t\tif (isPassingOutcome(record)) {\n\t\t\tbreak;\n\t\t}\n\t\tif (failureEvidenceKey(record) !== currentKey) {\n\t\t\tbreak;\n\t\t}\n\t\tcount += 1;\n\t}\n\treturn count;\n}\n\nfunction countPingPong(records: ResolveIOAIManagerFailureRecord[], current: ResolveIOAIManagerFailureRecord): number {\n\tconst tail = collectOpenTail(records).filter((record) => {\n\t\treturn cleanText(record.lane, 80) === cleanText(current.lane, 80)\n\t\t\t&& cleanText(record.stepType, 80) === cleanText(current.stepType, 80);\n\t});\n\tif (tail.length < 4) {\n\t\treturn 0;\n\t}\n\tconst keys = tail.map(failureKey).filter(Boolean);\n\tconst last = keys.slice(-6);\n\tif (last.length < 4) {\n\t\treturn 0;\n\t}\n\tconst distinct = Array.from(new Set(last));\n\tif (distinct.length !== 2) {\n\t\treturn 0;\n\t}\n\tfor (let index = 2; index < last.length; index += 1) {\n\t\tif (last[index] !== last[index - 2]) {\n\t\t\treturn 0;\n\t\t}\n\t}\n\treturn last.length - 1;\n}\n\nexport function decideResolveIOAIManagerPolicy(input: ResolveIOAIManagerPolicyInput): ResolveIOAIManagerPolicyDecision {\n\tconst history = Array.isArray(input.history) ? input.history : [];\n\tconst current = input.current || history[history.length - 1] || {};\n\tconst failureClass = normalizeResolveIOAIManagerFailureClass(current.failureClass);\n\tconst blockerFingerprint = resolveResolveIOAIManagerBlockerFingerprint(current);\n\tconst evidenceHash = hashResolveIOAIManagerEvidence(current);\n\tconst previous = history.length > 1 ? history[history.length - 2] : undefined;\n\tconst previousSameFailure = previous && failureKey(previous) === failureKey(current);\n\tconst previousEvidenceHash = previousSameFailure ? hashResolveIOAIManagerEvidence(previous) : '';\n\tconst newEvidence = !!previousSameFailure && !!previousEvidenceHash && previousEvidenceHash !== evidenceHash;\n\tconst sameFailureCount = countSameFailure(history, current);\n\tconst pingPongCount = countPingPong(history, current);\n\tconst maxSameFailureRepeats = Math.max(1, Number(input.maxSameFailureRepeats || 3) || 3);\n\tconst maxPingPongTransitions = Math.max(3, Number(input.maxPingPongTransitions || 3) || 3);\n\tconst infraClasses = new Set((input.infraFailureClasses || ['infra', 'compile']).map(normalizeResolveIOAIManagerFailureClass));\n\tconst ignoredClasses = new Set((input.ignoredFailureClasses || []).map(normalizeResolveIOAIManagerFailureClass));\n\tconst base = {\n\t\tfailureClass,\n\t\tblockerFingerprint,\n\t\tevidenceHash,\n\t\tsameFailureCount,\n\t\tpingPongCount,\n\t\tnewEvidence,\n\t\tloopBudgetShouldReset: false,\n\t\tproductRepairFailure: !infraClasses.has(failureClass) && !ignoredClasses.has(failureClass)\n\t};\n\tconst withPlan = (\n\t\taction: ResolveIOAIManagerAction,\n\t\treason: string,\n\t\toverrides: Partial<Omit<ResolveIOAIManagerPolicyDecision, 'action' | 'reason' | 'recoveryPlan' | 'recoveryCheckpoint'>> = {}\n\t): ResolveIOAIManagerPolicyDecision => {\n\t\tconst merged = {\n\t\t\t...base,\n\t\t\t...overrides\n\t\t};\n\t\tconst recoveryPlan = buildResolveIOAIManagerRecoveryPlan({\n\t\t\taction,\n\t\t\treason,\n\t\t\tfailureClass: merged.failureClass,\n\t\t\tlane: current.lane,\n\t\t\tstepType: current.stepType,\n\t\t\tblocker: current.blocker || current.summary,\n\t\t\tsameFailureCount: merged.sameFailureCount,\n\t\t\tpingPongCount: merged.pingPongCount,\n\t\t\tnewEvidence: merged.newEvidence,\n\t\t\tproductRepairFailure: merged.productRepairFailure,\n\t\t\tchangedFiles: current.changedFiles,\n\t\t\tartifactPaths: current.artifactPaths,\n\t\t\tmaxSameFailureRepeats\n\t\t});\n\t\tconst recoveryCheckpoint = buildResolveIOAIManagerRecoveryCheckpoint({\n\t\t\tplan: recoveryPlan,\n\t\t\tcurrent\n\t\t});\n\t\tconst recoveryEvidenceProbe = buildResolveIOAIManagerRecoveryEvidenceProbe({\n\t\t\tcheckpoint: recoveryCheckpoint,\n\t\t\tcurrent\n\t\t});\n\t\treturn {\n\t\t\t...merged,\n\t\t\taction,\n\t\t\treason,\n\t\t\trecoveryPlan,\n\t\t\trecoveryCheckpoint,\n\t\t\trecoveryEvidenceProbe,\n\t\t\trecoveryAction: buildResolveIOAIManagerRecoveryActionPacket({\n\t\t\t\tplan: recoveryPlan,\n\t\t\t\tcheckpoint: recoveryCheckpoint,\n\t\t\t\tprobe: recoveryEvidenceProbe,\n\t\t\t\tcurrent\n\t\t\t})\n\t\t};\n\t};\n\tif (isPassingOutcome(current)) {\n\t\treturn withPlan('reset_loop_budget', 'manager_policy_progress_passed', {\n\t\t\tloopBudgetShouldReset: true,\n\t\t\tproductRepairFailure: false\n\t\t});\n\t}\n\tif (isManualOutcome(current)) {\n\t\treturn withPlan('manual_handoff', 'manager_policy_manual_or_stopped');\n\t}\n\tif (infraClasses.has(failureClass)) {\n\t\treturn withPlan('retry_infra', 'manager_policy_infra_failure_routes_to_infra_repair', {\n\t\t\tproductRepairFailure: false\n\t\t});\n\t}\n\tif (pingPongCount >= maxPingPongTransitions) {\n\t\treturn withPlan('park_ping_pong', 'manager_policy_ping_pong_failure_loop');\n\t}\n\tif (sameFailureCount >= maxSameFailureRepeats && !newEvidence) {\n\t\treturn withPlan('park_repeated_failure', 'manager_policy_same_failure_without_new_evidence');\n\t}\n\tif (newEvidence || !previousSameFailure) {\n\t\treturn withPlan('continue', newEvidence\n\t\t\t\t? 'manager_policy_new_evidence_resets_loop_budget'\n\t\t\t\t: 'manager_policy_new_failure_or_lane', {\n\t\t\tloopBudgetShouldReset: true\n\t\t});\n\t}\n\treturn withPlan('continue', 'manager_policy_retry_below_repeat_limit');\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { ResolveIOAIManagerRecoveryCheckpoint, ResolveIOAIManagerRecoveryActionPacket, ResolveIOAIManagerRecoveryActionDispatchRecord, ResolveIOAIManagerRecoveryEvidenceProbe, ResolveIOAIManagerRecoveryPlan } from './ai-runner-manager-policy';
1
+ import { ResolveIOAIManagerRecoveryCheckpoint, ResolveIOAIManagerRecoveryActionPacket, ResolveIOAIManagerRecoveryActionDispatchRecord, ResolveIOAIManagerRecoveryExecutionDirective, ResolveIOAIManagerRecoveryEvidenceProbe, ResolveIOAIManagerRecoveryPlan } from './ai-runner-manager-policy';
2
2
  export type ResolveIOAICoderV6Lane = 'intake' | 'plan' | 'build' | 'qa' | 'repair' | 'review' | 'publish';
3
3
  export type ResolveIOAICoderV6StepType = 'intake' | 'journey_contract' | 'journey_validation' | 'plan' | 'task' | 'workflow_build' | 'workflow_qa' | 'build' | 'qa' | 'repair' | 'review' | 'test_deploy' | 'live_deploy' | 'publish' | 'cleanup';
4
4
  export type ResolveIOAICoderV6Outcome = 'pass' | 'needs_repair' | 'retry_same_step' | 'park_manual' | 'budget_stop' | 'infra_retry' | 'ready_to_publish' | 'published';
@@ -125,6 +125,7 @@ export interface ResolveIOAICoderV6StateBundle {
125
125
  aiCoderV6RecoveryEvidenceProbe?: ResolveIOAIManagerRecoveryEvidenceProbe;
126
126
  aiCoderV6RecoveryAction?: ResolveIOAIManagerRecoveryActionPacket;
127
127
  aiCoderV6RecoveryDispatchHistory?: ResolveIOAIManagerRecoveryActionDispatchRecord[];
128
+ aiCoderV6RecoveryDirective?: ResolveIOAIManagerRecoveryExecutionDirective;
128
129
  }
129
130
  export interface ResolveIOAICoderV6InitializeInput {
130
131
  runKind: ResolveIOAICoderV6RunKind;
@@ -277,7 +277,8 @@ function initializeResolveIOAICoderV6State(input) {
277
277
  aiCoderV6RecoveryAction: existing.aiCoderV6RecoveryAction,
278
278
  aiCoderV6RecoveryDispatchHistory: Array.isArray(existing.aiCoderV6RecoveryDispatchHistory)
279
279
  ? existing.aiCoderV6RecoveryDispatchHistory.slice(-50)
280
- : []
280
+ : [],
281
+ aiCoderV6RecoveryDirective: existing.aiCoderV6RecoveryDirective
281
282
  };
282
283
  }
283
284
  function recordResolveIOAICoderV6Step(bundle, step) {