@resolveio/server-lib 22.3.157 → 22.3.159
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.
- package/methods/ai-terminal.d.ts +1 -0
- package/methods/ai-terminal.js +133 -3
- package/methods/ai-terminal.js.map +1 -1
- package/package.json +1 -1
- package/util/ai-run-evidence-adapters.d.ts +37 -0
- package/util/ai-run-evidence-adapters.js +988 -79
- package/util/ai-run-evidence-adapters.js.map +1 -1
- package/util/ai-run-evidence.d.ts +1 -1
- package/util/ai-run-evidence.js.map +1 -1
- package/util/ai-runner-manager-autopilot.d.ts +99 -1
- package/util/ai-runner-manager-autopilot.js +370 -41
- package/util/ai-runner-manager-autopilot.js.map +1 -1
- package/util/ai-runner-manager-policy.d.ts +163 -0
- package/util/ai-runner-manager-policy.js +791 -26
- package/util/ai-runner-manager-policy.js.map +1 -1
- package/util/aicoder-runner-v6.d.ts +93 -3
- package/util/aicoder-runner-v6.js +699 -27
- package/util/aicoder-runner-v6.js.map +1 -1
- package/util/support-runner-v5.d.ts +236 -1
- package/util/support-runner-v5.js +1336 -54
- package/util/support-runner-v5.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/util/ai-runner-manager-autopilot.ts"],"names":[],"mappings":"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","file":"ai-runner-manager-autopilot.js","sourcesContent":["import {\n\tassessResolveIOAIManagerEvidenceChange,\n\tResolveIOAIManagerFailureRecord,\n\tResolveIOAIManagerRecoveryActionDispatchRecord,\n\tResolveIOAIManagerRecoveryActionPacket,\n\tResolveIOAIManagerRecoveryCheckpoint,\n\tResolveIOAIManagerRecoveryExecutionDirective,\n\tResolveIOAIManagerRecoveryEvidenceProbe,\n\tResolveIOAIManagerRecoveryPlan\n} from './ai-runner-manager-policy';\n\nexport type ResolveIOAIManagerAutopilotSafetyLevel = 'low' | 'medium' | 'high' | 'blocked';\n\nexport interface ResolveIOAIManagerAutopilotRecommendedAction {\n\taction: string;\n\tlabel: string;\n\treason: string;\n\tsafety: ResolveIOAIManagerAutopilotSafetyLevel;\n\tenabled: boolean;\n\tautoRunnable: boolean;\n\texpectedResult: string;\n\trequiresNewEvidence: boolean;\n\tcanRunProductRepair: boolean;\n\tcanRunExpensiveModel: boolean;\n\tcanResetLoopAfterEvidence: boolean;\n\tdispatchAction?: string;\n}\n\nexport interface ResolveIOAIManagerAutopilotLoopGuard {\n\tstate: 'clear' | 'collecting_evidence' | 'parked' | 'manual_handoff' | 'complete';\n\tblocked: boolean;\n\treason: string;\n\tfailureClass: string;\n\tblocker: string;\n\tblockerFingerprint: string;\n\tevidenceHash: string;\n\tmaterialEvidence: boolean;\n\tevidenceStrength: string;\n\tevidenceSignals: string[];\n\tsameEvidenceDispatchCount: number;\n\tsameEvidenceAlreadyAttempted: boolean;\n\tloopCount: number;\n\tmaxLoopCount: number;\n\tattempts: number;\n\tmaxAttemptsBeforePark: number;\n\tcanResetLoopAfterEvidence: boolean;\n\tresetRequires: string[];\n}\n\nexport interface ResolveIOAIManagerAutopilotRecentDispatch {\n\tdispatchId: string;\n\tactionId: string;\n\tcheckpointId: string;\n\tprobeId: string;\n\tmode: string;\n\tdispatchAction: string;\n\tstatus: string;\n\treason: string;\n\tevidenceHash: string;\n\tblockerFingerprint: string;\n\tartifactPaths: string[];\n\tstartedAt: string;\n\tcompletedAt: string;\n\tcreatedAt: string;\n}\n\nexport interface ResolveIOAIManagerAutopilotSnapshot {\n\tsurface: string;\n\trunId: string;\n\ttitle: string;\n\tstatus: string;\n\tphase: string;\n\tlane: string;\n\tstepType: string;\n\trunKind: string;\n\trecommendedAction: ResolveIOAIManagerAutopilotRecommendedAction;\n\tloopGuard: ResolveIOAIManagerAutopilotLoopGuard;\n\trecovery: {\n\t\tcheckpointId: string;\n\t\trecoveryClass: string;\n\t\tdispatchAction: string;\n\t\tdirectiveAllowed: boolean;\n\t\tevidenceOnly: boolean;\n\t\tproductRepairAllowed: boolean;\n\t\texpensiveModelAllowed: boolean;\n\t\trequiredArtifacts: string[];\n\t\tnextCommands: string[];\n\t\tsuccessCriteria: string[];\n\t\tforbiddenActions: string[];\n\t};\n\trecentDispatches: ResolveIOAIManagerAutopilotRecentDispatch[];\n\tcost: {\n\t\tcurrentRunUsd: number;\n\t\ttotalUsd: number;\n\t\tcurrentRunTokens: number;\n\t\ttotalTokens: number;\n\t\tuntrackedWarning: string;\n\t};\n\tupdatedAt: string;\n}\n\nexport interface ResolveIOAIManagerAutopilotSnapshotInput {\n\tsurface: string;\n\trunId?: string;\n\ttitle?: string;\n\tstatus?: string;\n\tphase?: string;\n\tlane?: string;\n\tstepType?: string;\n\trunKind?: string;\n\tcurrent?: ResolveIOAIManagerFailureRecord;\n\trecoveryPlan?: ResolveIOAIManagerRecoveryPlan;\n\trecoveryCheckpoint?: ResolveIOAIManagerRecoveryCheckpoint;\n\trecoveryEvidenceProbe?: ResolveIOAIManagerRecoveryEvidenceProbe;\n\trecoveryAction?: ResolveIOAIManagerRecoveryActionPacket;\n\trecoveryDirective?: ResolveIOAIManagerRecoveryExecutionDirective;\n\trecoveryDispatchHistory?: ResolveIOAIManagerRecoveryActionDispatchRecord[];\n\tloopCount?: number;\n\tmaxLoopCount?: number;\n\tcurrentRunUsd?: number;\n\ttotalUsd?: number;\n\tcurrentRunTokens?: number;\n\ttotalTokens?: number;\n\tuntrackedCostWarning?: string;\n\tupdatedAt?: Date | string;\n}\n\nfunction cleanText(value: any, max = 1000): string {\n\treturn String(value || '').replace(/\\s+/g, ' ').trim().slice(0, max);\n}\n\nfunction cleanList(value: any, limit = 20, max = 500): string[] {\n\tconst raw = Array.isArray(value) ? value : [];\n\tconst output: string[] = [];\n\tfor (const entry of raw) {\n\t\tconst cleaned = cleanText(entry, max);\n\t\tif (cleaned && !output.includes(cleaned)) {\n\t\t\toutput.push(cleaned);\n\t\t}\n\t\tif (output.length >= limit) {\n\t\t\tbreak;\n\t\t}\n\t}\n\treturn output;\n}\n\nfunction cleanNumber(value: any): number {\n\tconst parsed = Number(value);\n\treturn Number.isFinite(parsed) && parsed > 0 ? parsed : 0;\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\treturn Number.isFinite(parsed.getTime()) ? parsed.toISOString() : new Date().toISOString();\n}\n\nfunction defaultLabelForAction(action: string): string {\n\tswitch (action) {\n\t\tcase 'run_evidence_probe':\n\t\t\treturn 'Collect New Evidence';\n\t\tcase 'run_read_only_diagnosis':\n\t\t\treturn 'Run Diagnosis';\n\t\tcase 'run_infra_repair':\n\t\t\treturn 'Repair Infra';\n\t\tcase 'run_compile_repair':\n\t\t\treturn 'Repair Compile';\n\t\tcase 'run_journey_contract_repair':\n\t\t\treturn 'Repair Journey';\n\t\tcase 'run_business_assertion_repair':\n\t\t\treturn 'Repair Business Proof';\n\t\tcase 'run_release_repair':\n\t\t\treturn 'Repair Release';\n\t\tcase 'run_targeted_product_repair':\n\t\t\treturn 'Run Targeted Repair';\n\t\tcase 'advance':\n\t\t\treturn 'Advance';\n\t\tcase 'continue_gate':\n\t\t\treturn 'Continue Gate';\n\t\tcase 'park_manual':\n\t\t\treturn 'Attach New Evidence';\n\t\tdefault:\n\t\t\treturn action ? cleanText(action.replace(/_/g, ' '), 120) : 'Review Manager State';\n\t}\n}\n\nfunction expectedResultForAction(action: string, evidenceOnly: boolean): string {\n\tif (action === 'park_manual') {\n\t\treturn 'Runner stays parked until new evidence, operator approval, or a changed blocker is recorded.';\n\t}\n\tif (evidenceOnly || action === 'run_evidence_probe' || action === 'run_read_only_diagnosis') {\n\t\treturn 'Runner records a new artifact path or changed evidence hash before any more product repair.';\n\t}\n\tif (action === 'run_infra_repair' || action === 'run_compile_repair' || action === 'run_release_repair') {\n\t\treturn 'Runner repairs only the named deterministic gate and reruns that gate.';\n\t}\n\tif (action === 'run_targeted_product_repair') {\n\t\treturn 'Runner performs one bounded owner-scope repair and then returns to deterministic proof.';\n\t}\n\treturn 'Runner advances only after the current gate has proof.';\n}\n\nfunction safetyFor(input: {\n\taction: string;\n\tenabled: boolean;\n\tevidenceOnly: boolean;\n\tproductRepairAllowed: boolean;\n\texpensiveModelAllowed: boolean;\n}): ResolveIOAIManagerAutopilotSafetyLevel {\n\tif (!input.enabled || input.action === 'park_manual') {\n\t\treturn 'blocked';\n\t}\n\tif (input.evidenceOnly || input.action === 'run_evidence_probe' || input.action === 'run_read_only_diagnosis') {\n\t\treturn 'low';\n\t}\n\tif (input.expensiveModelAllowed || input.action === 'run_targeted_product_repair') {\n\t\treturn 'high';\n\t}\n\tif (input.productRepairAllowed) {\n\t\treturn 'medium';\n\t}\n\treturn 'medium';\n}\n\nfunction resolveDispatchAction(input: ResolveIOAIManagerAutopilotSnapshotInput): string {\n\tconst directiveAction = cleanText(input.recoveryDirective?.dispatchAction, 120);\n\tif (directiveAction) {\n\t\treturn directiveAction;\n\t}\n\tconst actionMode = cleanText(input.recoveryAction?.mode, 120);\n\tswitch (actionMode) {\n\t\tcase 'collect_evidence':\n\t\t\treturn 'run_evidence_probe';\n\t\tcase 'read_only_diagnosis':\n\t\t\treturn 'run_read_only_diagnosis';\n\t\tcase 'repair_infra':\n\t\t\treturn 'run_infra_repair';\n\t\tcase 'repair_compile':\n\t\t\treturn 'run_compile_repair';\n\t\tcase 'repair_journey_contract':\n\t\t\treturn 'run_journey_contract_repair';\n\t\tcase 'repair_business_assertion':\n\t\t\treturn 'run_business_assertion_repair';\n\t\tcase 'repair_release':\n\t\t\treturn 'run_release_repair';\n\t\tcase 'targeted_product_repair':\n\t\t\treturn 'run_targeted_product_repair';\n\t\tcase 'advance':\n\t\t\treturn 'advance';\n\t\tcase 'continue_gate':\n\t\t\treturn 'continue_gate';\n\t\tcase 'manual_review':\n\t\t\treturn 'park_manual';\n\t\tdefault:\n\t\t\treturn input.recoveryCheckpoint?.status === 'parked' ? 'run_evidence_probe' : 'continue_gate';\n\t}\n}\n\nfunction countSameEvidenceDispatches(input: ResolveIOAIManagerAutopilotSnapshotInput, dispatchAction: string): number {\n\tconst checkpointId = cleanText(input.recoveryCheckpoint?.checkpointId || input.recoveryAction?.checkpointId, 160);\n\tconst actionId = cleanText(input.recoveryAction?.actionId, 160);\n\tconst evidenceHash = cleanText(input.current?.evidenceHash || input.recoveryCheckpoint?.evidenceHash, 160);\n\tconst blockerFingerprint = cleanText(input.current?.blockerFingerprint || input.recoveryCheckpoint?.blockerFingerprint, 160);\n\tconst history = Array.isArray(input.recoveryDispatchHistory) ? input.recoveryDispatchHistory : [];\n\treturn history.filter((entry) => {\n\t\tconst sameCheckpoint = checkpointId && cleanText(entry?.checkpointId, 160) === checkpointId;\n\t\tconst sameAction = actionId && cleanText(entry?.actionId, 160) === actionId;\n\t\tconst sameEvidence = !evidenceHash || cleanText(entry?.evidenceHash, 160) === evidenceHash;\n\t\tconst sameBlocker = !blockerFingerprint || cleanText(entry?.blockerFingerprint, 160) === blockerFingerprint;\n\t\tconst sameDispatchAction = !dispatchAction\n\t\t\t|| dispatchAction === 'park_manual'\n\t\t\t|| cleanText(entry?.dispatchAction, 120) === dispatchAction\n\t\t\t|| cleanText(entry?.dispatchAction, 120) === 'park_manual';\n\t\treturn (sameCheckpoint || sameAction) && sameEvidence && sameBlocker && sameDispatchAction;\n\t}).length;\n}\n\nfunction normalizeRecentDispatches(history: ResolveIOAIManagerRecoveryActionDispatchRecord[] | undefined): ResolveIOAIManagerAutopilotRecentDispatch[] {\n\tconst source = Array.isArray(history) ? history.filter(Boolean) : [];\n\treturn source.slice(-5).reverse().map((entry) => ({\n\t\tdispatchId: cleanText(entry?.dispatchId, 160),\n\t\tactionId: cleanText(entry?.actionId, 160),\n\t\tcheckpointId: cleanText(entry?.checkpointId, 160),\n\t\tprobeId: cleanText(entry?.probeId, 160),\n\t\tmode: cleanText(entry?.mode, 120),\n\t\tdispatchAction: cleanText(entry?.dispatchAction, 120),\n\t\tstatus: cleanText(entry?.status, 80),\n\t\treason: cleanText(entry?.reason, 500),\n\t\tevidenceHash: cleanText(entry?.evidenceHash, 160),\n\t\tblockerFingerprint: cleanText(entry?.blockerFingerprint, 160),\n\t\tartifactPaths: cleanList(entry?.artifactPaths, 8, 500),\n\t\tstartedAt: cleanText(entry?.startedAt, 80),\n\t\tcompletedAt: cleanText(entry?.completedAt, 80),\n\t\tcreatedAt: cleanText(entry?.createdAt, 80)\n\t}));\n}\n\nexport function buildResolveIOAIManagerAutopilotSnapshot(\n\tinput: ResolveIOAIManagerAutopilotSnapshotInput\n): ResolveIOAIManagerAutopilotSnapshot {\n\tconst dispatchAction = resolveDispatchAction(input);\n\tconst directiveAllowed = input.recoveryDirective\n\t\t? input.recoveryDirective.allowed === true\n\t\t: input.recoveryAction?.autoRunnable === true;\n\tconst evidenceOnly = input.recoveryDirective?.evidenceOnly === true\n\t\t|| input.recoveryAction?.evidenceOnly === true\n\t\t|| input.recoveryEvidenceProbe?.evidenceOnly === true\n\t\t|| input.recoveryCheckpoint?.status === 'parked';\n\tconst productRepairAllowed = (input.recoveryDirective?.canRunProductRepair ?? input.recoveryDirective?.productRepairAllowed ?? input.recoveryAction?.productRepairAllowed ?? input.recoveryCheckpoint?.productRepairAllowed) === true;\n\tconst expensiveModelAllowed = (input.recoveryDirective?.canRunExpensiveModel ?? input.recoveryDirective?.expensiveModelAllowed ?? input.recoveryAction?.expensiveModelAllowed ?? input.recoveryCheckpoint?.expensiveModelAllowed) === true;\n\tconst requiresNewEvidence = input.recoveryDirective?.requiresNewEvidence === true\n\t\t|| input.recoveryAction?.retryPolicy?.requireNewEvidence === true\n\t\t|| input.recoveryCheckpoint?.status === 'parked';\n\tconst sameEvidenceDispatchCount = countSameEvidenceDispatches(input, dispatchAction);\n\tconst sameEvidenceAlreadyAttempted = requiresNewEvidence && sameEvidenceDispatchCount > 0 && input.recoveryDirective?.newEvidence !== true;\n\tconst checkpointStatus = cleanText(input.recoveryCheckpoint?.status, 80);\n\tconst evidenceAssessment = input.recoveryCheckpoint && input.current\n\t\t? assessResolveIOAIManagerEvidenceChange(input.recoveryCheckpoint, input.current, input.recoveryCheckpoint.objective)\n\t\t: {\n\t\t\tchanged: false,\n\t\t\tmaterial: false,\n\t\t\tstrength: 'none',\n\t\t\tsignals: [] as string[]\n\t\t};\n\tconst loopState = checkpointStatus === 'manual_handoff'\n\t\t? 'manual_handoff'\n\t\t: checkpointStatus === 'complete'\n\t\t\t? 'complete'\n\t\t\t: sameEvidenceAlreadyAttempted || input.recoveryDirective?.allowed === false\n\t\t\t\t? 'parked'\n\t\t\t\t: evidenceOnly && requiresNewEvidence\n\t\t\t\t\t? 'collecting_evidence'\n\t\t\t\t\t: 'clear';\n\tconst enabled = directiveAllowed && !sameEvidenceAlreadyAttempted && loopState !== 'manual_handoff';\n\tconst recommendedAction = sameEvidenceAlreadyAttempted || input.recoveryDirective?.allowed === false\n\t\t? 'park_manual'\n\t\t: dispatchAction;\n\tconst label = cleanText(\n\t\tsameEvidenceAlreadyAttempted\n\t\t\t? 'Attach New Evidence'\n\t\t\t: input.recoveryDirective?.nextActionLabel || input.recoveryAction?.label || defaultLabelForAction(recommendedAction),\n\t\t140\n\t);\n\tconst reason = cleanText(\n\t\tsameEvidenceAlreadyAttempted\n\t\t\t? 'The same recovery action already ran against the same evidence; a new artifact path or changed evidence hash is required.'\n\t\t\t: input.recoveryDirective?.reason || input.recoveryAction?.blockedReason || input.recoveryPlan?.objective || input.current?.blocker || 'Manager can continue the current gate.',\n\t\t1000\n\t);\n\tconst canResetLoopAfterEvidence = input.recoveryDirective?.canResetLoopAfterEvidence === true\n\t\t|| input.recoveryAction?.canResetLoopAfterEvidence === true\n\t\t|| cleanList(input.recoveryCheckpoint?.loopResetEvidence, 20, 500).length > 0;\n\tconst resetRequires = cleanList(\n\t\tinput.recoveryAction?.retryPolicy?.resetLoopWhen?.length\n\t\t\t? input.recoveryAction.retryPolicy.resetLoopWhen\n\t\t\t: input.recoveryCheckpoint?.loopResetEvidence,\n\t\t20,\n\t\t500\n\t);\n\treturn {\n\t\tsurface: cleanText(input.surface || 'unknown', 120),\n\t\trunId: cleanText(input.runId, 160),\n\t\ttitle: cleanText(input.title, 240),\n\t\tstatus: cleanText(input.status || input.recoveryCheckpoint?.status, 80),\n\t\tphase: cleanText(input.phase || input.recoveryDirective?.phase, 80),\n\t\tlane: cleanText(input.lane || input.recoveryDirective?.lane || input.recoveryCheckpoint?.lane || input.current?.lane, 120),\n\t\tstepType: cleanText(input.stepType || input.recoveryDirective?.stepType || input.recoveryCheckpoint?.stepType || input.current?.stepType, 120),\n\t\trunKind: cleanText(input.runKind, 120),\n\t\trecommendedAction: {\n\t\t\taction: recommendedAction,\n\t\t\tlabel,\n\t\t\treason,\n\t\t\tsafety: safetyFor({\n\t\t\t\taction: recommendedAction,\n\t\t\t\tenabled,\n\t\t\t\tevidenceOnly,\n\t\t\t\tproductRepairAllowed,\n\t\t\t\texpensiveModelAllowed\n\t\t\t}),\n\t\t\tenabled,\n\t\t\tautoRunnable: enabled && input.recoveryAction?.autoRunnable !== false,\n\t\t\texpectedResult: expectedResultForAction(recommendedAction, evidenceOnly),\n\t\t\trequiresNewEvidence,\n\t\t\tcanRunProductRepair: enabled && productRepairAllowed,\n\t\t\tcanRunExpensiveModel: enabled && expensiveModelAllowed,\n\t\t\tcanResetLoopAfterEvidence,\n\t\t\tdispatchAction\n\t\t},\n\t\tloopGuard: {\n\t\t\tstate: loopState,\n\t\t\tblocked: loopState === 'parked' || loopState === 'manual_handoff',\n\t\t\treason,\n\t\t\tfailureClass: cleanText(input.current?.failureClass, 120),\n\t\t\tblocker: cleanText(input.current?.blocker || input.current?.summary, 1000),\n\t\t\tblockerFingerprint: cleanText(input.current?.blockerFingerprint || input.recoveryCheckpoint?.blockerFingerprint, 160),\n\t\t\tevidenceHash: cleanText(input.current?.evidenceHash || input.recoveryCheckpoint?.evidenceHash, 160),\n\t\t\tmaterialEvidence: evidenceAssessment.material === true,\n\t\t\tevidenceStrength: cleanText(evidenceAssessment.strength, 40),\n\t\t\tevidenceSignals: cleanList(evidenceAssessment.signals, 12, 120),\n\t\t\tsameEvidenceDispatchCount,\n\t\t\tsameEvidenceAlreadyAttempted,\n\t\t\tloopCount: cleanNumber(input.loopCount),\n\t\t\tmaxLoopCount: cleanNumber(input.maxLoopCount),\n\t\t\tattempts: cleanNumber(input.recoveryCheckpoint?.attempts),\n\t\t\tmaxAttemptsBeforePark: cleanNumber(input.recoveryCheckpoint?.maxAttemptsBeforePark),\n\t\t\tcanResetLoopAfterEvidence,\n\t\t\tresetRequires\n\t\t},\n\t\trecovery: {\n\t\t\tcheckpointId: cleanText(input.recoveryCheckpoint?.checkpointId || input.recoveryAction?.checkpointId, 160),\n\t\t\trecoveryClass: cleanText(input.recoveryCheckpoint?.recoveryClass || input.recoveryAction?.recoveryClass || input.recoveryPlan?.recoveryClass, 120),\n\t\t\tdispatchAction,\n\t\t\tdirectiveAllowed,\n\t\t\tevidenceOnly,\n\t\t\tproductRepairAllowed,\n\t\t\texpensiveModelAllowed,\n\t\t\trequiredArtifacts: cleanList(input.recoveryDirective?.requiredArtifacts?.length ? input.recoveryDirective.requiredArtifacts : input.recoveryAction?.requiredArtifacts, 20, 500),\n\t\t\tnextCommands: cleanList(input.recoveryDirective?.nextCommands?.length ? input.recoveryDirective.nextCommands : input.recoveryAction?.nextCommands, 20, 500),\n\t\t\tsuccessCriteria: cleanList(input.recoveryDirective?.successCriteria?.length ? input.recoveryDirective.successCriteria : input.recoveryAction?.successCriteria, 20, 500),\n\t\t\tforbiddenActions: cleanList(input.recoveryDirective?.forbiddenActions?.length ? input.recoveryDirective.forbiddenActions : input.recoveryAction?.retryPolicy?.stopWhen, 20, 500)\n\t\t},\n\t\trecentDispatches: normalizeRecentDispatches(input.recoveryDispatchHistory),\n\t\tcost: {\n\t\t\tcurrentRunUsd: cleanNumber(input.currentRunUsd),\n\t\t\ttotalUsd: cleanNumber(input.totalUsd),\n\t\t\tcurrentRunTokens: cleanNumber(input.currentRunTokens),\n\t\t\ttotalTokens: cleanNumber(input.totalTokens),\n\t\t\tuntrackedWarning: cleanText(input.untrackedCostWarning || 'Manual Codex sessions outside this runner are not included unless recorded in the usage ledger.', 500)\n\t\t},\n\t\tupdatedAt: isoNow(input.updatedAt)\n\t};\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/util/ai-runner-manager-autopilot.ts"],"names":[],"mappings":"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","file":"ai-runner-manager-autopilot.js","sourcesContent":["import {\n\tassessResolveIOAIManagerEvidenceChange,\n\tdecideResolveIOAIManagerAutonomyPolicy,\n\tResolveIOAIManagerAutonomyPolicyDecision,\n\tResolveIOAIManagerAutonomyPolicyInput,\n\tResolveIOAIManagerFailureRecord,\n\tResolveIOAIManagerRecoveryActionDispatchRecord,\n\tResolveIOAIManagerRecoveryActionPacket,\n\tResolveIOAIManagerRecoveryCheckpoint,\n\tResolveIOAIManagerRecoveryExecutionDirective,\n\tResolveIOAIManagerRecoveryEvidenceProbe,\n\tResolveIOAIManagerRecoveryPlan\n} from './ai-runner-manager-policy';\n\nexport type ResolveIOAIManagerAutopilotSafetyLevel = 'low' | 'medium' | 'high' | 'blocked';\n\nexport interface ResolveIOAIManagerAutopilotRecommendedAction {\n\taction: string;\n\tlabel: string;\n\treason: string;\n\tsafety: ResolveIOAIManagerAutopilotSafetyLevel;\n\tenabled: boolean;\n\tautoRunnable: boolean;\n\texpectedResult: string;\n\trequiresNewEvidence: boolean;\n\tcanRunProductRepair: boolean;\n\tcanRunExpensiveModel: boolean;\n\tcanResetLoopAfterEvidence: boolean;\n\tsingleActionOnly: boolean;\n\tallowedDispatchAction: string;\n\tcostCeilingUsd: number;\n\trequiredStateTransition: string;\n\tproofRequiredBeforeContinuation: boolean;\n\tautonomyMode: string;\n\tautonomyCanAutoDispatch: boolean;\n\tautonomyBlocked: boolean;\n\texpectedValueScore: number;\n\texpectedValueSource: string;\n\texpectedValuePositive: boolean;\n\tevidenceBacked: boolean;\n\tevidenceStrength: string;\n\tdispatchAction?: string;\n}\n\nexport interface ResolveIOAIManagerAutopilotControlAction {\n\taction: string;\n\tlabel: string;\n\tgroup: 'primary' | 'policy' | 'evidence' | 'release' | 'danger';\n\tenabled: boolean;\n\tautoRunnable: boolean;\n\trequiresConfirmation: boolean;\n\tconfirmationReason: string;\n\tsafety: ResolveIOAIManagerAutopilotSafetyLevel;\n\treason: string;\n\tnextCommand: string;\n\texpectedResult: string;\n\tcostCeilingUsd: number;\n}\n\nexport interface ResolveIOAIManagerAutopilotControlGroup {\n\tgroupId: 'policy' | 'evidence' | 'release' | 'danger';\n\tlabel: string;\n\tactions: ResolveIOAIManagerAutopilotControlAction[];\n}\n\nexport interface ResolveIOAIManagerAutopilotControlPolicy {\n\tmode: string;\n\tmodeLabel: string;\n\tmodeDescription: string;\n\tonePrimaryActionOnly: true;\n\tblocked: boolean;\n\tblockedReason: string;\n\tcanAutoDispatch: boolean;\n\trequiresHumanDecision: boolean;\n\tprimaryAction: ResolveIOAIManagerAutopilotControlAction;\n\tsecondaryActionGroups: ResolveIOAIManagerAutopilotControlGroup[];\n\tbudget: {\n\t\tcurrentRunUsd: number;\n\t\ttotalUsd: number;\n\t\tprojectedActionCostUsd: number;\n\t\tprojectedSpendUsd: number;\n\t\tbudgetSoftUsd: number;\n\t\tbudgetHardUsd: number;\n\t\tsoftBudgetExceeded: boolean;\n\t\thardBudgetExceeded: boolean;\n\t\tuntrackedWarning: string;\n\t};\n}\n\nexport interface ResolveIOAIManagerHumanDecisionChoice {\n\tchoiceId: string;\n\tlabel: string;\n\taction: string;\n\tdescription: string;\n\tsafety: ResolveIOAIManagerAutopilotSafetyLevel;\n\trequiresConfirmation: boolean;\n\tnextCommand: string;\n\texpectedResult: string;\n}\n\nexport interface ResolveIOAIManagerHumanDecisionRequest {\n\trequestId: string;\n\trequired: boolean;\n\tstatus: 'not_required' | 'waiting_for_operator';\n\treason: string;\n\tquestion: string;\n\tpreferredChoiceId: string;\n\tevidence: {\n\t\tfailureClass: string;\n\t\tblocker: string;\n\t\tblockerFingerprint: string;\n\t\tevidenceHash: string;\n\t\tcheckpointId: string;\n\t\trecoveryClass: string;\n\t\tdispatchAction: string;\n\t\trequiredArtifacts: string[];\n\t\tforbiddenActions: string[];\n\t\trecentArtifactPaths: string[];\n\t};\n\tchoices: ResolveIOAIManagerHumanDecisionChoice[];\n\tblockedUntil: string[];\n\tcreatedAt: string;\n}\n\nexport interface ResolveIOAIManagerAutopilotLoopGuard {\n\tstate: 'clear' | 'collecting_evidence' | 'parked' | 'manual_handoff' | 'complete';\n\tblocked: boolean;\n\treason: string;\n\tfailureClass: string;\n\tblocker: string;\n\tblockerFingerprint: string;\n\tevidenceHash: string;\n\tmaterialEvidence: boolean;\n\tevidenceStrength: string;\n\tevidenceSignals: string[];\n\tsameEvidenceDispatchCount: number;\n\tsameEvidenceAlreadyAttempted: boolean;\n\tloopCount: number;\n\tmaxLoopCount: number;\n\tattempts: number;\n\tmaxAttemptsBeforePark: number;\n\tcanResetLoopAfterEvidence: boolean;\n\tresetRequires: string[];\n}\n\nexport interface ResolveIOAIManagerAutopilotRecentDispatch {\n\tdispatchId: string;\n\tactionId: string;\n\tcheckpointId: string;\n\tprobeId: string;\n\tmode: string;\n\tdispatchAction: string;\n\tstatus: string;\n\treason: string;\n\tevidenceHash: string;\n\tblockerFingerprint: string;\n\tartifactPaths: string[];\n\tstartedAt: string;\n\tcompletedAt: string;\n\tcreatedAt: string;\n}\n\nexport interface ResolveIOAIManagerAutopilotSnapshot {\n\tsurface: string;\n\trunId: string;\n\ttitle: string;\n\tstatus: string;\n\tphase: string;\n\tlane: string;\n\tstepType: string;\n\trunKind: string;\n\trecommendedAction: ResolveIOAIManagerAutopilotRecommendedAction;\n\tcontrolPolicy: ResolveIOAIManagerAutopilotControlPolicy;\n\tloopGuard: ResolveIOAIManagerAutopilotLoopGuard;\n\trecovery: {\n\t\tcheckpointId: string;\n\t\trecoveryClass: string;\n\t\tdispatchAction: string;\n\t\tsingleActionOnly: boolean;\n\t\tallowedDispatchAction: string;\n\t\tdirectiveAllowed: boolean;\n\t\tevidenceOnly: boolean;\n\t\tproductRepairAllowed: boolean;\n\t\texpensiveModelAllowed: boolean;\n\t\tcostCeilingUsd: number;\n\t\trequiredStateTransition: string;\n\t\tproofRequiredBeforeContinuation: boolean;\n\t\trequiredArtifacts: string[];\n\t\tnextCommands: string[];\n\t\tsuccessCriteria: string[];\n\t\texitCriteria: string[];\n\t\tforbiddenActions: string[];\n\t};\n\tautonomyPolicy: ResolveIOAIManagerAutonomyPolicyDecision;\n\trecentDispatches: ResolveIOAIManagerAutopilotRecentDispatch[];\n\thumanDecision: ResolveIOAIManagerHumanDecisionRequest;\n\tcost: {\n\t\tcurrentRunUsd: number;\n\t\ttotalUsd: number;\n\t\tcurrentRunTokens: number;\n\t\ttotalTokens: number;\n\t\tuntrackedWarning: string;\n\t};\n\tupdatedAt: string;\n}\n\nexport interface ResolveIOAIManagerAutopilotSnapshotInput {\n\tsurface: string;\n\trunId?: string;\n\ttitle?: string;\n\tstatus?: string;\n\tphase?: string;\n\tlane?: string;\n\tstepType?: string;\n\trunKind?: string;\n\tcurrent?: ResolveIOAIManagerFailureRecord;\n\trecoveryPlan?: ResolveIOAIManagerRecoveryPlan;\n\trecoveryCheckpoint?: ResolveIOAIManagerRecoveryCheckpoint;\n\trecoveryEvidenceProbe?: ResolveIOAIManagerRecoveryEvidenceProbe;\n\trecoveryAction?: ResolveIOAIManagerRecoveryActionPacket;\n\trecoveryDirective?: ResolveIOAIManagerRecoveryExecutionDirective;\n\trecoveryDispatchHistory?: ResolveIOAIManagerRecoveryActionDispatchRecord[];\n\tloopCount?: number;\n\tmaxLoopCount?: number;\n\tcurrentRunUsd?: number;\n\ttotalUsd?: number;\n\tcurrentRunTokens?: number;\n\ttotalTokens?: number;\n\tuntrackedCostWarning?: string;\n\tautonomyPolicy?: ResolveIOAIManagerAutonomyPolicyInput;\n\tupdatedAt?: Date | string;\n}\n\nfunction cleanText(value: any, max = 1000): string {\n\treturn String(value || '').replace(/\\s+/g, ' ').trim().slice(0, max);\n}\n\nfunction cleanList(value: any, limit = 20, max = 500): string[] {\n\tconst raw = Array.isArray(value) ? value : [];\n\tconst output: string[] = [];\n\tfor (const entry of raw) {\n\t\tconst cleaned = cleanText(entry, max);\n\t\tif (cleaned && !output.includes(cleaned)) {\n\t\t\toutput.push(cleaned);\n\t\t}\n\t\tif (output.length >= limit) {\n\t\t\tbreak;\n\t\t}\n\t}\n\treturn output;\n}\n\nfunction cleanNumber(value: any): number {\n\tconst parsed = Number(value);\n\treturn Number.isFinite(parsed) && parsed > 0 ? parsed : 0;\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\treturn Number.isFinite(parsed.getTime()) ? parsed.toISOString() : 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\nfunction defaultLabelForAction(action: string): string {\n\tswitch (action) {\n\t\tcase 'run_evidence_probe':\n\t\t\treturn 'Collect New Evidence';\n\t\tcase 'run_read_only_diagnosis':\n\t\t\treturn 'Run Diagnosis';\n\t\tcase 'run_infra_repair':\n\t\t\treturn 'Repair Infra';\n\t\tcase 'run_compile_repair':\n\t\t\treturn 'Repair Compile';\n\t\tcase 'run_journey_contract_repair':\n\t\t\treturn 'Repair Journey';\n\t\tcase 'run_business_assertion_repair':\n\t\t\treturn 'Repair Business Proof';\n\t\tcase 'run_release_repair':\n\t\t\treturn 'Repair Release';\n\t\tcase 'run_targeted_product_repair':\n\t\t\treturn 'Run Targeted Repair';\n\t\tcase 'advance':\n\t\t\treturn 'Advance';\n\t\tcase 'continue_gate':\n\t\t\treturn 'Continue Gate';\n\t\tcase 'park_manual':\n\t\t\treturn 'Attach New Evidence';\n\t\tdefault:\n\t\t\treturn action ? cleanText(action.replace(/_/g, ' '), 120) : 'Review Manager State';\n\t}\n}\n\nfunction expectedResultForAction(action: string, evidenceOnly: boolean): string {\n\tif (action === 'park_manual') {\n\t\treturn 'Runner stays parked until new evidence, operator approval, or a changed blocker is recorded.';\n\t}\n\tif (evidenceOnly || action === 'run_evidence_probe' || action === 'run_read_only_diagnosis') {\n\t\treturn 'Runner records a new artifact path or changed evidence hash before any more product repair.';\n\t}\n\tif (action === 'run_infra_repair' || action === 'run_compile_repair' || action === 'run_release_repair') {\n\t\treturn 'Runner repairs only the named deterministic gate and reruns that gate.';\n\t}\n\tif (action === 'run_targeted_product_repair') {\n\t\treturn 'Runner performs one bounded owner-scope repair and then returns to deterministic proof.';\n\t}\n\treturn 'Runner advances only after the current gate has proof.';\n}\n\nfunction autonomyModeLabel(mode: string): string {\n\tswitch (mode) {\n\t\tcase 'monitor_only':\n\t\t\treturn 'Monitor Only';\n\t\tcase 'auto_retry_within_budget':\n\t\t\treturn 'Auto Retry Within Budget';\n\t\tcase 'manual_only':\n\t\tdefault:\n\t\t\treturn 'Manual Only';\n\t}\n}\n\nfunction autonomyModeDescription(mode: string): string {\n\tswitch (mode) {\n\t\tcase 'monitor_only':\n\t\t\treturn 'Watch the runner and record evidence, but do not dispatch recovery, repair, QA, release, or customer actions.';\n\t\tcase 'auto_retry_within_budget':\n\t\t\treturn 'Auto-dispatch only evidence-backed actions with positive expected value inside the configured budget.';\n\t\tcase 'manual_only':\n\t\tdefault:\n\t\t\treturn 'Show the safest next action, but require an operator to dispatch it.';\n\t}\n}\n\nfunction controlAction(input: {\n\taction: string;\n\tlabel?: string;\n\tgroup: ResolveIOAIManagerAutopilotControlAction['group'];\n\tenabled?: boolean;\n\tautoRunnable?: boolean;\n\trequiresConfirmation?: boolean;\n\tconfirmationReason?: string;\n\tsafety?: ResolveIOAIManagerAutopilotSafetyLevel;\n\treason?: string;\n\tnextCommand?: string;\n\texpectedResult?: string;\n\tcostCeilingUsd?: number;\n}): ResolveIOAIManagerAutopilotControlAction {\n\tconst action = cleanText(input.action, 120) || 'review';\n\treturn {\n\t\taction,\n\t\tlabel: cleanText(input.label, 160) || defaultLabelForAction(action),\n\t\tgroup: input.group,\n\t\tenabled: input.enabled !== false,\n\t\tautoRunnable: input.autoRunnable === true,\n\t\trequiresConfirmation: input.requiresConfirmation === true,\n\t\tconfirmationReason: cleanText(input.confirmationReason, 500),\n\t\tsafety: input.safety || 'medium',\n\t\treason: cleanText(input.reason, 1000),\n\t\tnextCommand: cleanText(input.nextCommand || action, 160),\n\t\texpectedResult: cleanText(input.expectedResult || expectedResultForAction(action, false), 500),\n\t\tcostCeilingUsd: cleanNumber(input.costCeilingUsd)\n\t};\n}\n\nfunction safetyFor(input: {\n\taction: string;\n\tenabled: boolean;\n\tevidenceOnly: boolean;\n\tproductRepairAllowed: boolean;\n\texpensiveModelAllowed: boolean;\n}): ResolveIOAIManagerAutopilotSafetyLevel {\n\tif (!input.enabled || input.action === 'park_manual') {\n\t\treturn 'blocked';\n\t}\n\tif (input.evidenceOnly || input.action === 'run_evidence_probe' || input.action === 'run_read_only_diagnosis') {\n\t\treturn 'low';\n\t}\n\tif (input.expensiveModelAllowed || input.action === 'run_targeted_product_repair') {\n\t\treturn 'high';\n\t}\n\tif (input.productRepairAllowed) {\n\t\treturn 'medium';\n\t}\n\treturn 'medium';\n}\n\nfunction buildControlPolicy(input: {\n\trecommendedAction: ResolveIOAIManagerAutopilotRecommendedAction;\n\tautonomyPolicy: ResolveIOAIManagerAutonomyPolicyDecision;\n\thumanDecision: ResolveIOAIManagerHumanDecisionRequest;\n\trecoveryRequiredArtifacts: string[];\n\trecoveryForbiddenActions: string[];\n\tcurrentRunUsd: number;\n\ttotalUsd: number;\n\tuntrackedWarning: string;\n}): ResolveIOAIManagerAutopilotControlPolicy {\n\tconst recommended = input.recommendedAction;\n\tconst autonomy = input.autonomyPolicy;\n\tconst blocked = recommended.enabled === false || autonomy.blocked === true || recommended.action === 'park_manual';\n\tconst primaryAction = controlAction({\n\t\taction: recommended.action,\n\t\tlabel: recommended.label,\n\t\tgroup: 'primary',\n\t\tenabled: recommended.enabled,\n\t\tautoRunnable: recommended.autoRunnable,\n\t\trequiresConfirmation: recommended.safety === 'high'\n\t\t\t|| recommended.canRunExpensiveModel\n\t\t\t|| recommended.action === 'run_targeted_product_repair'\n\t\t\t|| recommended.action === 'run_release_repair',\n\t\tconfirmationReason: recommended.safety === 'high'\n\t\t\t? 'This can spend model tokens or modify product code; confirm the diagnosis/proof gate is current.'\n\t\t\t: recommended.action === 'run_release_repair'\n\t\t\t\t? 'This can affect release state; confirm hotfix/release evidence first.'\n\t\t\t\t: '',\n\t\tsafety: recommended.safety,\n\t\treason: recommended.reason,\n\t\tnextCommand: recommended.allowedDispatchAction || recommended.dispatchAction || recommended.action,\n\t\texpectedResult: recommended.expectedResult,\n\t\tcostCeilingUsd: recommended.costCeilingUsd\n\t});\n\tconst policyActions = (['manual_only', 'monitor_only', 'auto_retry_within_budget'] as const).map((mode) => controlAction({\n\t\taction: `set_mode:${mode}`,\n\t\tlabel: autonomyModeLabel(mode),\n\t\tgroup: 'policy',\n\t\tenabled: autonomy.mode !== mode,\n\t\tautoRunnable: false,\n\t\trequiresConfirmation: mode === 'auto_retry_within_budget',\n\t\tconfirmationReason: mode === 'auto_retry_within_budget'\n\t\t\t? 'Auto retry will dispatch only evidence-backed actions inside budget, but can still spend runner tokens.'\n\t\t\t: '',\n\t\tsafety: mode === 'auto_retry_within_budget' ? 'medium' : 'low',\n\t\treason: mode === autonomy.mode ? 'Current manager mode.' : autonomyModeDescription(mode),\n\t\tnextCommand: `set_manager_mode_${mode}`,\n\t\texpectedResult: mode === autonomy.mode ? 'Mode is unchanged.' : `Manager switches to ${autonomyModeLabel(mode)}.`,\n\t\tcostCeilingUsd: 0\n\t}));\n\tconst choiceActions = (input.humanDecision.choices || [])\n\t\t.filter((choice) => choice.action !== recommended.action)\n\t\t.map((choice) => controlAction({\n\t\t\taction: choice.action,\n\t\t\tlabel: choice.label,\n\t\t\tgroup: choice.action === 'record_hotfix_evidence' ? 'release' : (choice.action === 'park_manual' ? 'danger' : 'evidence'),\n\t\t\tenabled: true,\n\t\t\tautoRunnable: false,\n\t\t\trequiresConfirmation: choice.requiresConfirmation || choice.action === 'park_manual',\n\t\t\tconfirmationReason: choice.requiresConfirmation\n\t\t\t\t? choice.description\n\t\t\t\t: choice.action === 'park_manual'\n\t\t\t\t\t? 'Parking stops automated progress until new evidence or operator policy changes.'\n\t\t\t\t\t: '',\n\t\t\tsafety: choice.safety,\n\t\t\treason: choice.description,\n\t\t\tnextCommand: choice.nextCommand,\n\t\t\texpectedResult: choice.expectedResult,\n\t\t\tcostCeilingUsd: 0\n\t\t}));\n\tif (recommended.requiresNewEvidence && !choiceActions.some((action) => action.action === 'run_evidence_probe')) {\n\t\tchoiceActions.unshift(controlAction({\n\t\t\taction: 'run_evidence_probe',\n\t\t\tlabel: 'Collect New Evidence',\n\t\t\tgroup: 'evidence',\n\t\t\tenabled: true,\n\t\t\tautoRunnable: false,\n\t\t\trequiresConfirmation: false,\n\t\t\tsafety: 'low',\n\t\t\treason: 'Collect deterministic evidence before another repair loop.',\n\t\t\tnextCommand: 'run_evidence_probe',\n\t\t\texpectedResult: 'A new artifact path or changed evidence hash is recorded.',\n\t\t\tcostCeilingUsd: 0.25\n\t\t}));\n\t}\n\tconst grouped = ([\n\t\t{ groupId: 'policy', label: 'Mode', actions: policyActions },\n\t\t{ groupId: 'evidence', label: 'Evidence', actions: choiceActions.filter((action) => action.group === 'evidence') },\n\t\t{ groupId: 'release', label: 'Release', actions: choiceActions.filter((action) => action.group === 'release') },\n\t\t{ groupId: 'danger', label: 'Danger Zone', actions: choiceActions.filter((action) => action.group === 'danger') }\n\t] as ResolveIOAIManagerAutopilotControlGroup[]).filter((group) => group.actions.length > 0);\n\treturn {\n\t\tmode: autonomy.mode,\n\t\tmodeLabel: autonomyModeLabel(autonomy.mode),\n\t\tmodeDescription: autonomyModeDescription(autonomy.mode),\n\t\tonePrimaryActionOnly: true,\n\t\tblocked,\n\t\tblockedReason: blocked ? cleanText(autonomy.reason || recommended.reason, 1000) : '',\n\t\tcanAutoDispatch: recommended.autoRunnable === true && autonomy.canAutoDispatch === true,\n\t\trequiresHumanDecision: input.humanDecision.required === true || recommended.autoRunnable !== true,\n\t\tprimaryAction,\n\t\tsecondaryActionGroups: grouped,\n\t\tbudget: {\n\t\t\tcurrentRunUsd: input.currentRunUsd,\n\t\t\ttotalUsd: input.totalUsd,\n\t\t\tprojectedActionCostUsd: autonomy.projectedActionCostUsd,\n\t\t\tprojectedSpendUsd: autonomy.projectedSpendUsd,\n\t\t\tbudgetSoftUsd: autonomy.budgetSoftUsd,\n\t\t\tbudgetHardUsd: autonomy.budgetHardUsd,\n\t\t\tsoftBudgetExceeded: autonomy.softBudgetExceeded,\n\t\t\thardBudgetExceeded: autonomy.hardBudgetExceeded,\n\t\t\tuntrackedWarning: input.untrackedWarning\n\t\t}\n\t};\n}\n\nfunction resolveDispatchAction(input: ResolveIOAIManagerAutopilotSnapshotInput): string {\n\tconst directiveAction = cleanText(input.recoveryDirective?.dispatchAction, 120);\n\tif (directiveAction) {\n\t\treturn directiveAction;\n\t}\n\tconst actionMode = cleanText(input.recoveryAction?.mode, 120);\n\tswitch (actionMode) {\n\t\tcase 'collect_evidence':\n\t\t\treturn 'run_evidence_probe';\n\t\tcase 'read_only_diagnosis':\n\t\t\treturn 'run_read_only_diagnosis';\n\t\tcase 'repair_infra':\n\t\t\treturn 'run_infra_repair';\n\t\tcase 'repair_compile':\n\t\t\treturn 'run_compile_repair';\n\t\tcase 'repair_journey_contract':\n\t\t\treturn 'run_journey_contract_repair';\n\t\tcase 'repair_business_assertion':\n\t\t\treturn 'run_business_assertion_repair';\n\t\tcase 'repair_release':\n\t\t\treturn 'run_release_repair';\n\t\tcase 'targeted_product_repair':\n\t\t\treturn 'run_targeted_product_repair';\n\t\tcase 'advance':\n\t\t\treturn 'advance';\n\t\tcase 'continue_gate':\n\t\t\treturn 'continue_gate';\n\t\tcase 'manual_review':\n\t\t\treturn 'park_manual';\n\t\tdefault:\n\t\t\treturn input.recoveryCheckpoint?.status === 'parked' ? 'run_evidence_probe' : 'continue_gate';\n\t}\n}\n\nfunction countSameEvidenceDispatches(input: ResolveIOAIManagerAutopilotSnapshotInput, dispatchAction: string): number {\n\tconst checkpointId = cleanText(input.recoveryCheckpoint?.checkpointId || input.recoveryAction?.checkpointId, 160);\n\tconst actionId = cleanText(input.recoveryAction?.actionId, 160);\n\tconst evidenceHash = cleanText(input.current?.evidenceHash || input.recoveryCheckpoint?.evidenceHash, 160);\n\tconst blockerFingerprint = cleanText(input.current?.blockerFingerprint || input.recoveryCheckpoint?.blockerFingerprint, 160);\n\tconst history = Array.isArray(input.recoveryDispatchHistory) ? input.recoveryDispatchHistory : [];\n\treturn history.filter((entry) => {\n\t\tconst sameCheckpoint = checkpointId && cleanText(entry?.checkpointId, 160) === checkpointId;\n\t\tconst sameAction = actionId && cleanText(entry?.actionId, 160) === actionId;\n\t\tconst sameEvidence = !evidenceHash || cleanText(entry?.evidenceHash, 160) === evidenceHash;\n\t\tconst sameBlocker = !blockerFingerprint || cleanText(entry?.blockerFingerprint, 160) === blockerFingerprint;\n\t\tconst sameDispatchAction = !dispatchAction\n\t\t\t|| dispatchAction === 'park_manual'\n\t\t\t|| cleanText(entry?.dispatchAction, 120) === dispatchAction\n\t\t\t|| cleanText(entry?.dispatchAction, 120) === 'park_manual';\n\t\treturn (sameCheckpoint || sameAction) && sameEvidence && sameBlocker && sameDispatchAction;\n\t}).length;\n}\n\nfunction normalizeRecentDispatches(history: ResolveIOAIManagerRecoveryActionDispatchRecord[] | undefined): ResolveIOAIManagerAutopilotRecentDispatch[] {\n\tconst source = Array.isArray(history) ? history.filter(Boolean) : [];\n\treturn source.slice(-5).reverse().map((entry) => ({\n\t\tdispatchId: cleanText(entry?.dispatchId, 160),\n\t\tactionId: cleanText(entry?.actionId, 160),\n\t\tcheckpointId: cleanText(entry?.checkpointId, 160),\n\t\tprobeId: cleanText(entry?.probeId, 160),\n\t\tmode: cleanText(entry?.mode, 120),\n\t\tdispatchAction: cleanText(entry?.dispatchAction, 120),\n\t\tstatus: cleanText(entry?.status, 80),\n\t\treason: cleanText(entry?.reason, 500),\n\t\tevidenceHash: cleanText(entry?.evidenceHash, 160),\n\t\tblockerFingerprint: cleanText(entry?.blockerFingerprint, 160),\n\t\tartifactPaths: cleanList(entry?.artifactPaths, 8, 500),\n\t\tstartedAt: cleanText(entry?.startedAt, 80),\n\t\tcompletedAt: cleanText(entry?.completedAt, 80),\n\t\tcreatedAt: cleanText(entry?.createdAt, 80)\n\t}));\n}\n\nfunction humanDecisionChoice(\n\tchoiceId: string,\n\tlabel: string,\n\taction: string,\n\tdescription: string,\n\tsafety: ResolveIOAIManagerAutopilotSafetyLevel,\n\tnextCommand: string,\n\texpectedResult: string,\n\trequiresConfirmation = false\n): ResolveIOAIManagerHumanDecisionChoice {\n\treturn {\n\t\tchoiceId,\n\t\tlabel,\n\t\taction,\n\t\tdescription: cleanText(description, 500),\n\t\tsafety,\n\t\trequiresConfirmation,\n\t\tnextCommand,\n\t\texpectedResult: cleanText(expectedResult, 500)\n\t};\n}\n\nfunction buildHumanDecisionRequest(input: {\n\tsnapshot: ResolveIOAIManagerAutopilotSnapshotInput;\n\trecommendedAction: ResolveIOAIManagerAutopilotRecommendedAction;\n\tloopState: ResolveIOAIManagerAutopilotLoopGuard['state'];\n\treason: string;\n\tdispatchAction: string;\n\tsameEvidenceAlreadyAttempted: boolean;\n\trequiresNewEvidence: boolean;\n\trequiredArtifacts: string[];\n\tforbiddenActions: string[];\n\trecentDispatches: ResolveIOAIManagerAutopilotRecentDispatch[];\n\tupdatedAt?: Date | string;\n}): ResolveIOAIManagerHumanDecisionRequest {\n\tconst checkpoint = input.snapshot.recoveryCheckpoint;\n\tconst current = input.snapshot.current || {};\n\tconst recoveryClass = cleanText(checkpoint?.recoveryClass || input.snapshot.recoveryAction?.recoveryClass || input.snapshot.recoveryPlan?.recoveryClass, 120);\n\tconst failureClass = cleanText(current.failureClass, 120);\n\tconst blocker = cleanText(current.blocker || current.summary || input.reason, 1000);\n\tconst evidenceHash = cleanText(current.evidenceHash || checkpoint?.evidenceHash, 160);\n\tconst blockerFingerprint = cleanText(current.blockerFingerprint || checkpoint?.blockerFingerprint, 160);\n\tconst checkpointId = cleanText(checkpoint?.checkpointId || input.snapshot.recoveryAction?.checkpointId, 160);\n\tconst recentArtifactPaths = cleanList(\n\t\tcurrent.artifactPaths?.length\n\t\t\t? current.artifactPaths\n\t\t\t: input.recentDispatches.flatMap((entry) => entry.artifactPaths || []),\n\t\t12,\n\t\t500\n\t);\n\tconst required = input.sameEvidenceAlreadyAttempted\n\t\t|| input.loopState === 'parked'\n\t\t|| input.loopState === 'manual_handoff'\n\t\t|| input.recommendedAction.enabled === false\n\t\t|| input.recommendedAction.action === 'park_manual';\n\tconst baseEvidence = {\n\t\tfailureClass,\n\t\tblocker,\n\t\tblockerFingerprint,\n\t\tevidenceHash,\n\t\tcheckpointId,\n\t\trecoveryClass,\n\t\tdispatchAction: input.dispatchAction,\n\t\trequiredArtifacts: input.requiredArtifacts,\n\t\tforbiddenActions: input.forbiddenActions,\n\t\trecentArtifactPaths\n\t};\n\tconst blockedUntil = input.requiresNewEvidence\n\t\t? Array.from(new Set([\n\t\t\t'new material evidence changes the evidenceHash or blockerFingerprint',\n\t\t\t'new artifact path is recorded from the failed deterministic gate',\n\t\t\t'operator updates scope, diagnosis, budget, or retry policy'\n\t\t]))\n\t\t: [];\n\tif (!required) {\n\t\treturn {\n\t\t\trequestId: stableHash('mgr-human', {\n\t\t\t\tcheckpointId,\n\t\t\t\tevidenceHash,\n\t\t\t\tblockerFingerprint,\n\t\t\t\trequired: false\n\t\t\t}),\n\t\t\trequired: false,\n\t\t\tstatus: 'not_required',\n\t\t\treason: 'No human decision is required for the current bounded next action.',\n\t\t\tquestion: '',\n\t\t\tpreferredChoiceId: '',\n\t\t\tevidence: baseEvidence,\n\t\t\tchoices: [],\n\t\t\tblockedUntil: [],\n\t\t\tcreatedAt: isoNow(input.updatedAt)\n\t\t};\n\t}\n\tconst choices: ResolveIOAIManagerHumanDecisionChoice[] = [];\n\tif (input.requiresNewEvidence || input.sameEvidenceAlreadyAttempted || input.loopState === 'parked') {\n\t\tchoices.push(humanDecisionChoice(\n\t\t\t'attach_new_evidence',\n\t\t\t'Attach New Evidence',\n\t\t\t'run_evidence_probe',\n\t\t\t'Collect a new deterministic artifact before allowing another model/code loop.',\n\t\t\t'low',\n\t\t\t'run_evidence_probe',\n\t\t\t'The runner records a new artifact path or changed evidence hash, then re-evaluates the same gate.'\n\t\t));\n\t}\n\tif (/diagnosis|owner|scope|product_code|business|unknown/i.test(`${recoveryClass} ${failureClass}`)) {\n\t\tchoices.push(humanDecisionChoice(\n\t\t\t'revise_diagnosis',\n\t\t\t'Revise Diagnosis',\n\t\t\t'run_read_only_diagnosis',\n\t\t\t'Run a read-only diagnosis revision to change owner files or proof plan with evidence.',\n\t\t\t'low',\n\t\t\t'run_read_only_diagnosis',\n\t\t\t'The diagnosis gate is updated before any product-code repair is allowed.'\n\t\t));\n\t}\n\tif (/infra|compile/i.test(`${recoveryClass} ${failureClass}`)) {\n\t\tchoices.push(humanDecisionChoice(\n\t\t\t'repair_named_gate',\n\t\t\t/compile/i.test(`${recoveryClass} ${failureClass}`) ? 'Repair Compile Gate' : 'Repair Infra Gate',\n\t\t\t/compile/i.test(`${recoveryClass} ${failureClass}`) ? 'run_compile_repair' : 'run_infra_repair',\n\t\t\t'Repair only the deterministic gate that failed; do not count this as product-code failure.',\n\t\t\t'medium',\n\t\t\t/compile/i.test(`${recoveryClass} ${failureClass}`) ? 'run_compile_repair' : 'run_infra_repair',\n\t\t\t'The named infra/compile gate passes or returns a new blocker hash.',\n\t\t\ttrue\n\t\t));\n\t}\n\tif (/release/i.test(`${recoveryClass} ${failureClass}`)) {\n\t\tchoices.push(humanDecisionChoice(\n\t\t\t'record_hotfix_evidence',\n\t\t\t'Record Hotfix Evidence',\n\t\t\t'record_hotfix_evidence',\n\t\t\t'Record commit, checksum, restart, health, and self-test proof before continuing release repair.',\n\t\t\t'low',\n\t\t\t'record_hotfix_evidence',\n\t\t\t'Hotfix evidence validates and the runner reruns the smallest release gate.'\n\t\t));\n\t}\n\tchoices.push(humanDecisionChoice(\n\t\t'keep_parked',\n\t\t'Keep Parked',\n\t\t'park_manual',\n\t\t'Leave the run parked until a human changes the evidence, scope, budget, or retry policy.',\n\t\t'blocked',\n\t\t'park_manual',\n\t\t'No additional model, QA, repair, publish, or deploy work is queued.'\n\t));\n\tconst dedupedChoices = choices.filter((choice, index, source) => {\n\t\treturn source.findIndex((candidate) => candidate.choiceId === choice.choiceId) === index;\n\t}).slice(0, 4);\n\treturn {\n\t\trequestId: stableHash('mgr-human', {\n\t\t\tcheckpointId,\n\t\t\tevidenceHash,\n\t\t\tblockerFingerprint,\n\t\t\tchoices: dedupedChoices.map((choice) => choice.choiceId)\n\t\t}),\n\t\trequired: true,\n\t\tstatus: 'waiting_for_operator',\n\t\treason: cleanText(input.reason || input.recommendedAction.reason, 1000),\n\t\tquestion: 'Choose the one evidence-backed action that should unblock this runner.',\n\t\tpreferredChoiceId: dedupedChoices[0]?.choiceId || 'keep_parked',\n\t\tevidence: baseEvidence,\n\t\tchoices: dedupedChoices,\n\t\tblockedUntil,\n\t\tcreatedAt: isoNow(input.updatedAt)\n\t};\n}\n\nexport function buildResolveIOAIManagerAutopilotSnapshot(\n\tinput: ResolveIOAIManagerAutopilotSnapshotInput\n): ResolveIOAIManagerAutopilotSnapshot {\n\tconst dispatchAction = resolveDispatchAction(input);\n\tconst directiveAllowed = input.recoveryDirective\n\t\t? input.recoveryDirective.allowed === true\n\t\t: input.recoveryAction?.autoRunnable === true;\n\tconst evidenceOnly = input.recoveryDirective?.evidenceOnly === true\n\t\t|| input.recoveryAction?.evidenceOnly === true\n\t\t|| input.recoveryEvidenceProbe?.evidenceOnly === true\n\t\t|| input.recoveryCheckpoint?.status === 'parked';\n\tconst productRepairAllowed = (input.recoveryDirective?.canRunProductRepair ?? input.recoveryDirective?.productRepairAllowed ?? input.recoveryAction?.productRepairAllowed ?? input.recoveryCheckpoint?.productRepairAllowed) === true;\n\tconst expensiveModelAllowed = (input.recoveryDirective?.canRunExpensiveModel ?? input.recoveryDirective?.expensiveModelAllowed ?? input.recoveryAction?.expensiveModelAllowed ?? input.recoveryCheckpoint?.expensiveModelAllowed) === true;\n\tconst requiresNewEvidence = input.recoveryDirective?.requiresNewEvidence === true\n\t\t|| input.recoveryAction?.retryPolicy?.requireNewEvidence === true\n\t\t|| input.recoveryCheckpoint?.status === 'parked';\n\tconst sameEvidenceDispatchCount = countSameEvidenceDispatches(input, dispatchAction);\n\tconst sameEvidenceAlreadyAttempted = requiresNewEvidence && sameEvidenceDispatchCount > 0 && input.recoveryDirective?.newEvidence !== true;\n\tconst checkpointStatus = cleanText(input.recoveryCheckpoint?.status, 80);\n\tconst evidenceAssessment = input.recoveryCheckpoint && input.current\n\t\t? assessResolveIOAIManagerEvidenceChange(input.recoveryCheckpoint, input.current, input.recoveryCheckpoint.objective)\n\t\t: {\n\t\t\tchanged: false,\n\t\t\tmaterial: false,\n\t\t\tstrength: 'none',\n\t\t\tsignals: [] as string[]\n\t\t};\n\tconst loopState = checkpointStatus === 'manual_handoff'\n\t\t? 'manual_handoff'\n\t\t: checkpointStatus === 'complete'\n\t\t\t? 'complete'\n\t\t\t: sameEvidenceAlreadyAttempted || input.recoveryDirective?.allowed === false\n\t\t\t\t? 'parked'\n\t\t\t\t: evidenceOnly && requiresNewEvidence\n\t\t\t\t\t? 'collecting_evidence'\n\t\t\t\t\t: 'clear';\n\tconst enabled = directiveAllowed && !sameEvidenceAlreadyAttempted && loopState !== 'manual_handoff';\n\tconst recommendedAction = sameEvidenceAlreadyAttempted || input.recoveryDirective?.allowed === false\n\t\t? 'park_manual'\n\t\t: dispatchAction;\n\tconst label = cleanText(\n\t\tsameEvidenceAlreadyAttempted\n\t\t\t? 'Attach New Evidence'\n\t\t\t: input.recoveryDirective?.nextActionLabel || input.recoveryAction?.label || defaultLabelForAction(recommendedAction),\n\t\t140\n\t);\n\tconst reason = cleanText(\n\t\tsameEvidenceAlreadyAttempted\n\t\t\t? 'The same recovery action already ran against the same evidence; a new artifact path or changed evidence hash is required.'\n\t\t\t: input.recoveryDirective?.reason || input.recoveryAction?.blockedReason || input.recoveryPlan?.objective || input.current?.blocker || 'Manager can continue the current gate.',\n\t\t1000\n\t);\n\tconst canResetLoopAfterEvidence = input.recoveryDirective?.canResetLoopAfterEvidence === true\n\t\t|| input.recoveryAction?.canResetLoopAfterEvidence === true\n\t\t|| cleanList(input.recoveryCheckpoint?.loopResetEvidence, 20, 500).length > 0;\n\tconst resetRequires = cleanList(\n\t\tinput.recoveryAction?.retryPolicy?.resetLoopWhen?.length\n\t\t\t? input.recoveryAction.retryPolicy.resetLoopWhen\n\t\t\t: input.recoveryCheckpoint?.loopResetEvidence,\n\t\t20,\n\t\t500\n\t);\n\tconst recoveryRequiredArtifacts = cleanList(input.recoveryDirective?.requiredArtifacts?.length ? input.recoveryDirective.requiredArtifacts : input.recoveryAction?.requiredArtifacts, 20, 500);\n\tconst recoveryForbiddenActions = cleanList(input.recoveryDirective?.forbiddenActions?.length ? input.recoveryDirective.forbiddenActions : input.recoveryAction?.retryPolicy?.stopWhen, 20, 500);\n\tconst singleActionOnly = input.recoveryDirective?.singleActionOnly !== false && input.recoveryAction?.singleActionOnly !== false;\n\tconst allowedDispatchAction = cleanText(input.recoveryDirective?.allowedDispatchAction || input.recoveryAction?.allowedDispatchAction || dispatchAction, 120);\n\tconst costCeilingUsd = cleanNumber(input.recoveryDirective?.costCeilingUsd || input.recoveryAction?.costCeilingUsd);\n\tconst requiredStateTransition = cleanText(input.recoveryDirective?.requiredStateTransition || input.recoveryAction?.requiredStateTransition, 500);\n\tconst proofRequiredBeforeContinuation = input.recoveryDirective?.proofRequiredBeforeContinuation === true || input.recoveryAction?.proofRequiredBeforeContinuation === true;\n\tconst exitCriteria = cleanList(input.recoveryDirective?.exitCriteria?.length ? input.recoveryDirective.exitCriteria : input.recoveryAction?.exitCriteria, 30, 500);\n\tconst currentRunUsd = cleanNumber(input.currentRunUsd);\n\tconst totalUsd = cleanNumber(input.totalUsd);\n\tconst autonomyPolicy = decideResolveIOAIManagerAutonomyPolicy({\n\t\t...(input.autonomyPolicy || {}),\n\t\tcurrentSpendUsd: input.autonomyPolicy?.currentSpendUsd ?? totalUsd,\n\t\tprojectedActionCostUsd: input.autonomyPolicy?.projectedActionCostUsd ?? costCeilingUsd,\n\t\tdispatchAction,\n\t\tnewEvidence: input.autonomyPolicy?.newEvidence ?? evidenceAssessment.changed,\n\t\tmaterialEvidence: input.autonomyPolicy?.materialEvidence ?? evidenceAssessment.material,\n\t\tevidenceStrength: input.autonomyPolicy?.evidenceStrength ?? evidenceAssessment.strength,\n\t\tevidenceSignals: input.autonomyPolicy?.evidenceSignals ?? evidenceAssessment.signals,\n\t\tsameEvidenceAlreadyAttempted: input.autonomyPolicy?.sameEvidenceAlreadyAttempted ?? sameEvidenceAlreadyAttempted\n\t});\n\tconst recentDispatches = normalizeRecentDispatches(input.recoveryDispatchHistory);\n\tconst recommendedActionPacket: ResolveIOAIManagerAutopilotRecommendedAction = {\n\t\taction: recommendedAction,\n\t\tlabel,\n\t\treason,\n\t\tsafety: safetyFor({\n\t\t\taction: recommendedAction,\n\t\t\tenabled,\n\t\t\tevidenceOnly,\n\t\t\tproductRepairAllowed,\n\t\t\texpensiveModelAllowed\n\t\t}),\n\t\tenabled,\n\t\tautoRunnable: enabled && input.recoveryAction?.autoRunnable !== false && autonomyPolicy.canAutoDispatch === true,\n\t\texpectedResult: expectedResultForAction(recommendedAction, evidenceOnly),\n\t\trequiresNewEvidence,\n\t\tcanRunProductRepair: enabled && productRepairAllowed,\n\t\tcanRunExpensiveModel: enabled && expensiveModelAllowed,\n\t\tcanResetLoopAfterEvidence,\n\t\tsingleActionOnly,\n\t\tallowedDispatchAction,\n\t\tcostCeilingUsd,\n\t\trequiredStateTransition,\n\t\tproofRequiredBeforeContinuation,\n\t\tautonomyMode: autonomyPolicy.mode,\n\t\tautonomyCanAutoDispatch: autonomyPolicy.canAutoDispatch,\n\t\tautonomyBlocked: autonomyPolicy.blocked,\n\t\texpectedValueScore: autonomyPolicy.expectedValueScore,\n\t\texpectedValueSource: autonomyPolicy.expectedValueSource,\n\t\texpectedValuePositive: autonomyPolicy.expectedValuePositive,\n\t\tevidenceBacked: autonomyPolicy.evidenceBacked,\n\t\tevidenceStrength: autonomyPolicy.evidenceStrength,\n\t\tdispatchAction\n\t};\n\tconst humanDecision = buildHumanDecisionRequest({\n\t\tsnapshot: input,\n\t\trecommendedAction: recommendedActionPacket,\n\t\tloopState,\n\t\treason,\n\t\tdispatchAction,\n\t\tsameEvidenceAlreadyAttempted,\n\t\trequiresNewEvidence,\n\t\trequiredArtifacts: recoveryRequiredArtifacts,\n\t\tforbiddenActions: recoveryForbiddenActions,\n\t\trecentDispatches,\n\t\tupdatedAt: input.updatedAt\n\t});\n\tconst untrackedWarning = cleanText(input.untrackedCostWarning || 'Manual Codex sessions outside this runner are not included unless recorded in the usage ledger.', 500);\n\tconst controlPolicy = buildControlPolicy({\n\t\trecommendedAction: recommendedActionPacket,\n\t\tautonomyPolicy,\n\t\thumanDecision,\n\t\trecoveryRequiredArtifacts,\n\t\trecoveryForbiddenActions,\n\t\tcurrentRunUsd,\n\t\ttotalUsd,\n\t\tuntrackedWarning\n\t});\n\treturn {\n\t\tsurface: cleanText(input.surface || 'unknown', 120),\n\t\trunId: cleanText(input.runId, 160),\n\t\ttitle: cleanText(input.title, 240),\n\t\tstatus: cleanText(input.status || input.recoveryCheckpoint?.status, 80),\n\t\tphase: cleanText(input.phase || input.recoveryDirective?.phase, 80),\n\t\tlane: cleanText(input.lane || input.recoveryDirective?.lane || input.recoveryCheckpoint?.lane || input.current?.lane, 120),\n\t\tstepType: cleanText(input.stepType || input.recoveryDirective?.stepType || input.recoveryCheckpoint?.stepType || input.current?.stepType, 120),\n\t\trunKind: cleanText(input.runKind, 120),\n\t\trecommendedAction: recommendedActionPacket,\n\t\tcontrolPolicy,\n\t\tloopGuard: {\n\t\t\tstate: loopState,\n\t\t\tblocked: loopState === 'parked' || loopState === 'manual_handoff',\n\t\t\treason,\n\t\t\tfailureClass: cleanText(input.current?.failureClass, 120),\n\t\t\tblocker: cleanText(input.current?.blocker || input.current?.summary, 1000),\n\t\t\tblockerFingerprint: cleanText(input.current?.blockerFingerprint || input.recoveryCheckpoint?.blockerFingerprint, 160),\n\t\t\tevidenceHash: cleanText(input.current?.evidenceHash || input.recoveryCheckpoint?.evidenceHash, 160),\n\t\t\tmaterialEvidence: evidenceAssessment.material === true,\n\t\t\tevidenceStrength: cleanText(evidenceAssessment.strength, 40),\n\t\t\tevidenceSignals: cleanList(evidenceAssessment.signals, 12, 120),\n\t\t\tsameEvidenceDispatchCount,\n\t\t\tsameEvidenceAlreadyAttempted,\n\t\t\tloopCount: cleanNumber(input.loopCount),\n\t\t\tmaxLoopCount: cleanNumber(input.maxLoopCount),\n\t\t\tattempts: cleanNumber(input.recoveryCheckpoint?.attempts),\n\t\t\tmaxAttemptsBeforePark: cleanNumber(input.recoveryCheckpoint?.maxAttemptsBeforePark),\n\t\t\tcanResetLoopAfterEvidence,\n\t\t\tresetRequires\n\t\t},\n\t\trecovery: {\n\t\t\tcheckpointId: cleanText(input.recoveryCheckpoint?.checkpointId || input.recoveryAction?.checkpointId, 160),\n\t\t\trecoveryClass: cleanText(input.recoveryCheckpoint?.recoveryClass || input.recoveryAction?.recoveryClass || input.recoveryPlan?.recoveryClass, 120),\n\t\t\tdispatchAction,\n\t\t\tsingleActionOnly,\n\t\t\tallowedDispatchAction,\n\t\t\tdirectiveAllowed,\n\t\t\tevidenceOnly,\n\t\t\tproductRepairAllowed,\n\t\t\texpensiveModelAllowed,\n\t\t\tcostCeilingUsd,\n\t\t\trequiredStateTransition,\n\t\t\tproofRequiredBeforeContinuation,\n\t\t\trequiredArtifacts: recoveryRequiredArtifacts,\n\t\t\tnextCommands: cleanList(input.recoveryDirective?.nextCommands?.length ? input.recoveryDirective.nextCommands : input.recoveryAction?.nextCommands, 20, 500),\n\t\t\tsuccessCriteria: cleanList(input.recoveryDirective?.successCriteria?.length ? input.recoveryDirective.successCriteria : input.recoveryAction?.successCriteria, 20, 500),\n\t\t\texitCriteria,\n\t\t\tforbiddenActions: recoveryForbiddenActions\n\t\t},\n\t\tautonomyPolicy,\n\t\trecentDispatches,\n\t\thumanDecision,\n\t\tcost: {\n\t\t\tcurrentRunUsd,\n\t\t\ttotalUsd,\n\t\t\tcurrentRunTokens: cleanNumber(input.currentRunTokens),\n\t\t\ttotalTokens: cleanNumber(input.totalTokens),\n\t\t\tuntrackedWarning\n\t\t},\n\t\tupdatedAt: isoNow(input.updatedAt)\n\t};\n}\n"]}
|
|
@@ -200,6 +200,11 @@ export interface ResolveIOAIManagerHotfixEvidence {
|
|
|
200
200
|
serviceRestartEvidence?: string;
|
|
201
201
|
releaseArtifactFingerprint?: string;
|
|
202
202
|
lastReleaseArtifactFingerprint?: string;
|
|
203
|
+
sourceCommitSha?: string;
|
|
204
|
+
githubCommitUrl?: string;
|
|
205
|
+
gitCommitStatus?: string;
|
|
206
|
+
gitPushStatus?: string;
|
|
207
|
+
committedAt?: Date | string;
|
|
203
208
|
forceDeployReason?: string;
|
|
204
209
|
hotfixCannotResolveReason?: string;
|
|
205
210
|
fullDeployRequested?: boolean;
|
|
@@ -217,9 +222,26 @@ export interface ResolveIOAIManagerHotfixEvidenceValidation {
|
|
|
217
222
|
requiredEvidence: string[];
|
|
218
223
|
successEvidence: string[];
|
|
219
224
|
normalized?: ResolveIOAIManagerHotfixEvidence;
|
|
225
|
+
githubCommitGuard: ResolveIOAIManagerHotfixGitProof;
|
|
220
226
|
policy?: ResolveIOAIManagerHotfixFirstReleasePolicy;
|
|
221
227
|
nextAction: 'record_hotfix_evidence' | 'rerun_release_gate' | 'request_force_deploy_reason' | 'allow_one_full_deploy' | 'park_manual';
|
|
222
228
|
}
|
|
229
|
+
export type ResolveIOAIManagerHotfixGitProofStatus = 'not_required' | 'missing' | 'invalid' | 'passed';
|
|
230
|
+
export interface ResolveIOAIManagerHotfixGitProof {
|
|
231
|
+
required: boolean;
|
|
232
|
+
status: ResolveIOAIManagerHotfixGitProofStatus;
|
|
233
|
+
passed: boolean;
|
|
234
|
+
managerMustCommitBeforeHotfix: boolean;
|
|
235
|
+
channel: ResolveIOAIManagerHotfixChannel | '';
|
|
236
|
+
sourceCommitSha: string;
|
|
237
|
+
githubCommitUrl: string;
|
|
238
|
+
githubCommitSha: string;
|
|
239
|
+
gitCommitStatus: string;
|
|
240
|
+
gitPushStatus: string;
|
|
241
|
+
blockers: string[];
|
|
242
|
+
nextCommands: string[];
|
|
243
|
+
requiredEvidence: string[];
|
|
244
|
+
}
|
|
223
245
|
export type ResolveIOAIManagerHotfixContinuationAction = 'record_hotfix_evidence' | 'rerun_release_gate' | 'continue_runner' | 'request_force_deploy_reason' | 'allow_one_full_deploy' | 'park_manual';
|
|
224
246
|
export interface ResolveIOAIManagerHotfixContinuationInput {
|
|
225
247
|
evidence?: any;
|
|
@@ -244,15 +266,68 @@ export interface ResolveIOAIManagerHotfixContinuationDecision {
|
|
|
244
266
|
nextCommands: string[];
|
|
245
267
|
failureClass: string;
|
|
246
268
|
blockerFingerprint: string;
|
|
269
|
+
githubCommitGuard: ResolveIOAIManagerHotfixGitProof;
|
|
247
270
|
validation: ResolveIOAIManagerHotfixEvidenceValidation;
|
|
248
271
|
recordedAt: string;
|
|
249
272
|
}
|
|
273
|
+
export interface ResolveIOAIManagerHotfixCommitGuardDecision {
|
|
274
|
+
active: boolean;
|
|
275
|
+
blocked: boolean;
|
|
276
|
+
reason: string;
|
|
277
|
+
nextAction: 'record_hotfix_evidence' | 'continue';
|
|
278
|
+
channel: ResolveIOAIManagerHotfixChannel | '';
|
|
279
|
+
blockers: string[];
|
|
280
|
+
nextCommands: string[];
|
|
281
|
+
requiredEvidence: string[];
|
|
282
|
+
githubCommitGuard: ResolveIOAIManagerHotfixGitProof;
|
|
283
|
+
validation: ResolveIOAIManagerHotfixEvidenceValidation;
|
|
284
|
+
}
|
|
285
|
+
export type ResolveIOAIManagerHotfixEvidenceRecordSource = 'manual' | 'manager' | 'runner_console' | 'hotfix_script' | 'deploy_script' | 'unknown';
|
|
286
|
+
export interface ResolveIOAIManagerHotfixEvidenceRecordInput extends Partial<ResolveIOAIManagerHotfixEvidence> {
|
|
287
|
+
evidence?: any;
|
|
288
|
+
policy?: ResolveIOAIManagerHotfixFirstReleasePolicy;
|
|
289
|
+
recordId?: string;
|
|
290
|
+
reason?: string;
|
|
291
|
+
recordedBy?: string;
|
|
292
|
+
source?: ResolveIOAIManagerHotfixEvidenceRecordSource | string;
|
|
293
|
+
now?: Date | string;
|
|
294
|
+
}
|
|
295
|
+
export interface ResolveIOAIManagerHotfixEvidenceRecord {
|
|
296
|
+
recordId: string;
|
|
297
|
+
recordedAt: string;
|
|
298
|
+
recordedBy: string;
|
|
299
|
+
source: ResolveIOAIManagerHotfixEvidenceRecordSource | string;
|
|
300
|
+
reason: string;
|
|
301
|
+
channel: ResolveIOAIManagerHotfixChannel | '';
|
|
302
|
+
status: ResolveIOAIManagerHotfixEvidenceStatus;
|
|
303
|
+
nextAction: ResolveIOAIManagerHotfixEvidenceValidation['nextAction'];
|
|
304
|
+
valid: boolean;
|
|
305
|
+
hotfixSatisfied: boolean;
|
|
306
|
+
fullDeployAllowed: boolean;
|
|
307
|
+
fullDeployBlocked: boolean;
|
|
308
|
+
requiredFields: string[];
|
|
309
|
+
missingFields: string[];
|
|
310
|
+
evidence: ResolveIOAIManagerHotfixEvidence | undefined;
|
|
311
|
+
validation: ResolveIOAIManagerHotfixEvidenceValidation;
|
|
312
|
+
sourceCommitSha: string;
|
|
313
|
+
githubCommitUrl: string;
|
|
314
|
+
gitPushStatus: string;
|
|
315
|
+
githubCommitRequired: boolean;
|
|
316
|
+
githubCommitProofPassed: boolean;
|
|
317
|
+
commitProofStatus: 'not_required' | 'missing' | 'invalid' | 'passed';
|
|
318
|
+
managerMustCommitBeforeHotfix: boolean;
|
|
319
|
+
githubCommitGuard: ResolveIOAIManagerHotfixGitProof;
|
|
320
|
+
readyForReleaseGate: boolean;
|
|
321
|
+
readyForContinuation: boolean;
|
|
322
|
+
}
|
|
250
323
|
export interface ResolveIOAIManagerRecoveryActionPacket {
|
|
251
324
|
actionId: string;
|
|
252
325
|
checkpointId: string;
|
|
253
326
|
probeId: string;
|
|
254
327
|
recoveryClass: ResolveIOAIManagerRecoveryClass;
|
|
255
328
|
mode: ResolveIOAIManagerRecoveryAutomationMode;
|
|
329
|
+
singleActionOnly: boolean;
|
|
330
|
+
allowedDispatchAction: ResolveIOAIManagerRecoveryActionDispatchAction;
|
|
256
331
|
label: string;
|
|
257
332
|
lane: string;
|
|
258
333
|
stepType: string;
|
|
@@ -262,11 +337,15 @@ export interface ResolveIOAIManagerRecoveryActionPacket {
|
|
|
262
337
|
autoRunnable: boolean;
|
|
263
338
|
productRepairAllowed: boolean;
|
|
264
339
|
expensiveModelAllowed: boolean;
|
|
340
|
+
costCeilingUsd: number;
|
|
341
|
+
requiredStateTransition: string;
|
|
342
|
+
proofRequiredBeforeContinuation: boolean;
|
|
265
343
|
canResetLoopAfterEvidence: boolean;
|
|
266
344
|
maxAttemptsBeforePark: number;
|
|
267
345
|
requiredArtifacts: string[];
|
|
268
346
|
nextCommands: string[];
|
|
269
347
|
successCriteria: string[];
|
|
348
|
+
exitCriteria: string[];
|
|
270
349
|
retryPolicy: ResolveIOAIManagerRecoveryActionRetryPolicy;
|
|
271
350
|
releasePolicy?: ResolveIOAIManagerHotfixFirstReleasePolicy;
|
|
272
351
|
blockedReason?: string;
|
|
@@ -305,6 +384,7 @@ export interface ResolveIOAIManagerRecoveryActionDispatchInput {
|
|
|
305
384
|
action?: ResolveIOAIManagerRecoveryActionPacket;
|
|
306
385
|
history?: ResolveIOAIManagerRecoveryActionDispatchRecord[];
|
|
307
386
|
current?: ResolveIOAIManagerFailureRecord;
|
|
387
|
+
autonomyPolicy?: ResolveIOAIManagerAutonomyPolicyInput;
|
|
308
388
|
operatorApproved?: boolean;
|
|
309
389
|
now?: Date | string;
|
|
310
390
|
}
|
|
@@ -318,13 +398,84 @@ export interface ResolveIOAIManagerRecoveryActionDispatchDecision {
|
|
|
318
398
|
shouldRecordDispatch: boolean;
|
|
319
399
|
requiresNewEvidence: boolean;
|
|
320
400
|
newEvidence: boolean;
|
|
401
|
+
autonomyPolicy?: ResolveIOAIManagerAutonomyPolicyDecision;
|
|
321
402
|
dispatchRecord?: ResolveIOAIManagerRecoveryActionDispatchRecord;
|
|
322
403
|
}
|
|
404
|
+
export type ResolveIOAIManagerAutonomyMode = 'manual_only' | 'monitor_only' | 'auto_retry_within_budget';
|
|
405
|
+
export interface ResolveIOAIManagerAutonomyPolicyInput {
|
|
406
|
+
mode?: ResolveIOAIManagerAutonomyMode | string;
|
|
407
|
+
currentSpendUsd?: number;
|
|
408
|
+
budgetSoftUsd?: number;
|
|
409
|
+
budgetHardUsd?: number;
|
|
410
|
+
projectedActionCostUsd?: number;
|
|
411
|
+
dispatchAction?: ResolveIOAIManagerRecoveryActionDispatchAction | string;
|
|
412
|
+
expectedValueScore?: number;
|
|
413
|
+
minExpectedValueScore?: number;
|
|
414
|
+
evidenceStrength?: ResolveIOAIManagerEvidenceStrength | string;
|
|
415
|
+
materialEvidence?: boolean;
|
|
416
|
+
newEvidence?: boolean;
|
|
417
|
+
evidenceSignals?: string[];
|
|
418
|
+
sameEvidenceAlreadyAttempted?: boolean;
|
|
419
|
+
allowEvidenceProbeWithoutExpectedValue?: boolean;
|
|
420
|
+
operatorApproved?: boolean;
|
|
421
|
+
}
|
|
422
|
+
export interface ResolveIOAIManagerRetryExpectedValueInput {
|
|
423
|
+
dispatchAction?: ResolveIOAIManagerRecoveryActionDispatchAction | string;
|
|
424
|
+
projectedActionCostUsd?: number;
|
|
425
|
+
currentSpendUsd?: number;
|
|
426
|
+
budgetHardUsd?: number;
|
|
427
|
+
failureClass?: string;
|
|
428
|
+
recoveryClass?: ResolveIOAIManagerRecoveryClass | string;
|
|
429
|
+
evidenceStrength?: ResolveIOAIManagerEvidenceStrength | string;
|
|
430
|
+
materialEvidence?: boolean;
|
|
431
|
+
newEvidence?: boolean;
|
|
432
|
+
evidenceSignals?: string[];
|
|
433
|
+
sameEvidenceAlreadyAttempted?: boolean;
|
|
434
|
+
}
|
|
435
|
+
export interface ResolveIOAIManagerRetryExpectedValueEstimate {
|
|
436
|
+
score: number;
|
|
437
|
+
minScore: number;
|
|
438
|
+
positive: boolean;
|
|
439
|
+
source: 'estimated';
|
|
440
|
+
confidence: 'low' | 'medium' | 'high';
|
|
441
|
+
reason: string;
|
|
442
|
+
signals: string[];
|
|
443
|
+
}
|
|
444
|
+
export interface ResolveIOAIManagerAutonomyPolicyDecision {
|
|
445
|
+
mode: ResolveIOAIManagerAutonomyMode;
|
|
446
|
+
canAutoDispatch: boolean;
|
|
447
|
+
canManualDispatch: boolean;
|
|
448
|
+
blocked: boolean;
|
|
449
|
+
requiresHumanApproval: boolean;
|
|
450
|
+
reason: string;
|
|
451
|
+
currentSpendUsd: number;
|
|
452
|
+
projectedActionCostUsd: number;
|
|
453
|
+
projectedSpendUsd: number;
|
|
454
|
+
budgetSoftUsd: number;
|
|
455
|
+
budgetHardUsd: number;
|
|
456
|
+
softBudgetExceeded: boolean;
|
|
457
|
+
hardBudgetExceeded: boolean;
|
|
458
|
+
dispatchAction: string;
|
|
459
|
+
expectedValueScore: number;
|
|
460
|
+
minExpectedValueScore: number;
|
|
461
|
+
expectedValueKnown: boolean;
|
|
462
|
+
expectedValueSource: 'provided' | 'estimated';
|
|
463
|
+
expectedValuePositive: boolean;
|
|
464
|
+
evidenceStrength: ResolveIOAIManagerEvidenceStrength;
|
|
465
|
+
materialEvidence: boolean;
|
|
466
|
+
newEvidence: boolean;
|
|
467
|
+
evidenceBacked: boolean;
|
|
468
|
+
evidenceSignals: string[];
|
|
469
|
+
recommendedControl: 'manual_only' | 'monitor_only' | 'auto_retry_within_budget' | 'increase_budget_or_manual';
|
|
470
|
+
forbiddenActions: string[];
|
|
471
|
+
requiredEvidence: string[];
|
|
472
|
+
}
|
|
323
473
|
export type ResolveIOAIManagerRecoveryExecutionPhase = 'evidence' | 'diagnosis' | 'infra' | 'compile' | 'journey' | 'business_proof' | 'release' | 'product_repair' | 'advance' | 'manual';
|
|
324
474
|
export interface ResolveIOAIManagerRecoveryExecutionDirectiveInput {
|
|
325
475
|
action?: ResolveIOAIManagerRecoveryActionPacket;
|
|
326
476
|
dispatchDecision?: ResolveIOAIManagerRecoveryActionDispatchDecision;
|
|
327
477
|
current?: ResolveIOAIManagerFailureRecord;
|
|
478
|
+
autonomyPolicy?: ResolveIOAIManagerAutonomyPolicyInput;
|
|
328
479
|
surface?: string;
|
|
329
480
|
now?: Date | string;
|
|
330
481
|
}
|
|
@@ -336,6 +487,8 @@ export interface ResolveIOAIManagerRecoveryExecutionDirective {
|
|
|
336
487
|
allowed: boolean;
|
|
337
488
|
status: ResolveIOAIManagerRecoveryActionDispatchStatus;
|
|
338
489
|
reason: string;
|
|
490
|
+
singleActionOnly: boolean;
|
|
491
|
+
allowedDispatchAction: ResolveIOAIManagerRecoveryActionDispatchAction;
|
|
339
492
|
lane: string;
|
|
340
493
|
stepType: string;
|
|
341
494
|
nextActionLabel: string;
|
|
@@ -344,15 +497,20 @@ export interface ResolveIOAIManagerRecoveryExecutionDirective {
|
|
|
344
497
|
autoRunnable: boolean;
|
|
345
498
|
productRepairAllowed: boolean;
|
|
346
499
|
expensiveModelAllowed: boolean;
|
|
500
|
+
costCeilingUsd: number;
|
|
501
|
+
requiredStateTransition: string;
|
|
502
|
+
proofRequiredBeforeContinuation: boolean;
|
|
347
503
|
canRunProductRepair: boolean;
|
|
348
504
|
canRunExpensiveModel: boolean;
|
|
349
505
|
canResetLoopAfterEvidence: boolean;
|
|
350
506
|
requiresNewEvidence: boolean;
|
|
351
507
|
newEvidence: boolean;
|
|
508
|
+
autonomyPolicy?: ResolveIOAIManagerAutonomyPolicyDecision;
|
|
352
509
|
maxAttemptsBeforePark: number;
|
|
353
510
|
requiredArtifacts: string[];
|
|
354
511
|
nextCommands: string[];
|
|
355
512
|
successCriteria: string[];
|
|
513
|
+
exitCriteria: string[];
|
|
356
514
|
forbiddenActions: string[];
|
|
357
515
|
dispatchRecord?: ResolveIOAIManagerRecoveryActionDispatchRecord;
|
|
358
516
|
releasePolicy?: ResolveIOAIManagerHotfixFirstReleasePolicy;
|
|
@@ -467,11 +625,16 @@ export interface ResolveIOAIManagerRecoveryReplayCase {
|
|
|
467
625
|
fullDeployAllowed?: boolean;
|
|
468
626
|
details?: Record<string, any>;
|
|
469
627
|
}
|
|
628
|
+
export declare function estimateResolveIOAIManagerRetryExpectedValue(input?: ResolveIOAIManagerRetryExpectedValueInput): ResolveIOAIManagerRetryExpectedValueEstimate;
|
|
629
|
+
export declare function decideResolveIOAIManagerAutonomyPolicy(input?: ResolveIOAIManagerAutonomyPolicyInput): ResolveIOAIManagerAutonomyPolicyDecision;
|
|
470
630
|
export declare function normalizeResolveIOAIManagerHotfixEvidence(value: any, policy?: ResolveIOAIManagerHotfixFirstReleasePolicy): ResolveIOAIManagerHotfixEvidence | undefined;
|
|
631
|
+
export declare function evaluateResolveIOAIManagerHotfixGitProof(value: any, channelHint?: ResolveIOAIManagerHotfixChannel | ''): ResolveIOAIManagerHotfixGitProof;
|
|
471
632
|
export declare function validateResolveIOAIManagerHotfixEvidence(value: any, options?: {
|
|
472
633
|
policy?: ResolveIOAIManagerHotfixFirstReleasePolicy;
|
|
473
634
|
}): ResolveIOAIManagerHotfixEvidenceValidation;
|
|
635
|
+
export declare function buildResolveIOAIManagerHotfixEvidenceRecord(input?: ResolveIOAIManagerHotfixEvidenceRecordInput): ResolveIOAIManagerHotfixEvidenceRecord;
|
|
474
636
|
export declare function decideResolveIOAIManagerHotfixContinuation(input?: ResolveIOAIManagerHotfixContinuationInput): ResolveIOAIManagerHotfixContinuationDecision;
|
|
637
|
+
export declare function decideResolveIOAIManagerHotfixCommitGuard(input?: ResolveIOAIManagerHotfixContinuationInput): ResolveIOAIManagerHotfixCommitGuardDecision;
|
|
475
638
|
export declare function buildResolveIOAIManagerHotfixFirstReleasePolicy(input?: ResolveIOAIManagerHotfixFirstReleasePolicyInput): ResolveIOAIManagerHotfixFirstReleasePolicy;
|
|
476
639
|
export declare function isResolveIOAIManagerSafeAutoDispatch(input: ResolveIOAIManagerAutoDispatchPolicyInput | ResolveIOAIManagerRecoveryActionDispatchAction | string | undefined): boolean;
|
|
477
640
|
export declare function normalizeResolveIOAIManagerFailureClass(value: any): string;
|