@resolveio/server-lib 22.3.217 → 22.3.218
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/support-runner-v5.ts"],"names":[],"mappings":"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","file":"support-runner-v5.js","sourcesContent":["import {\n\tbuildResolveIOAIManagerRecoveryCheckpoint,\n\tbuildResolveIOAIManagerRecoveryActionPacket,\n\tbuildResolveIOAIManagerRecoveryEvidenceProbe,\n\tbuildResolveIOAIManagerRecoveryPlan,\n\tbuildResolveIOAIManagerHotfixDurabilityContract,\n\tdecideResolveIOAIManagerHotfixContinuation,\n\tdecideResolveIOAIManagerAutonomyPolicy,\n\tdecideResolveIOAIManagerPolicy,\n\thashResolveIOAIManagerEvidence,\n\tResolveIOAIManagerHotfixContinuationDecision,\n\tResolveIOAIManagerHotfixDurabilityContract,\n\tResolveIOAIManagerHotfixFirstReleasePolicy,\n\tResolveIOAIManagerEvidenceStrength,\n\tResolveIOAIManagerAutonomyPolicyDecision,\n\tResolveIOAIManagerAutonomyPolicyInput,\n\tResolveIOAIManagerRecoveryCheckpoint,\n\tResolveIOAIManagerRecoveryActionPacket,\n\tResolveIOAIManagerRecoveryActionDispatchAction,\n\tResolveIOAIManagerRecoveryActionDispatchRecord,\n\tResolveIOAIManagerRecoveryExecutionDirective,\n\tResolveIOAIManagerRecoveryEvidenceProbe,\n\tResolveIOAIManagerRecoveryPlan,\n\tResolveIOAIManagerRecoveryPlanInput\n} from './ai-runner-manager-policy';\n\nexport type ResolveIOSupportV5StepType =\n\t| 'diagnosis_gate'\n\t| 'reproduction_probe'\n\t| 'issue_class_probe'\n\t| 'business_proof'\n\t| 'compile_check'\n\t| 'startup_check'\n\t| 'live_seed'\n\t| 'auth_bootstrap'\n\t| 'route_probe'\n\t| 'qa_row'\n\t| 'build_repair'\n\t| 'qa_retest'\n\t| 'pr_review'\n\t| 'artifact_package'\n\t| 'cleanup';\n\nexport type ResolveIOSupportV5Outcome =\n\t| 'pass'\n\t| 'needs_repair'\n\t| 'retry_same_step'\n\t| 'park_manual'\n\t| 'budget_stop'\n\t| 'infra_retry'\n\t| 'ready_for_merge';\n\nexport type ResolveIOSupportV5Lane = 'build' | 'qa' | 'review' | 'supervisor';\n\nexport type ResolveIOSupportIssueClass =\n\t| 'no_op_submit'\n\t| 'missing_wrong_data'\n\t| 'filter_query_mismatch'\n\t| 'invoice_pdf_export'\n\t| 'upload_import'\n\t| 'route_auth_hydration'\n\t| 'slow_query_performance';\n\nexport type ResolveIOSupportDiagnosisGateStatus = 'missing' | 'incomplete' | 'blocked' | 'passed';\n\nexport type ResolveIOSupportV5FailureClass =\n\t| 'diagnosis'\n\t| 'infra'\n\t| 'compile'\n\t| 'route'\n\t| 'business'\n\t| 'product_code'\n\t| 'qa_evidence'\n\t| 'release'\n\t| 'unknown';\n\nexport interface ResolveIOSupportDiagnosisIssueCase {\n\tcustomer_complaint: string;\n\texpected_result: string;\n\tobserved_result: string;\n\troute_module: string;\n\taccount_customer_context: string;\n\treproduction_status: 'reproduced' | 'blocked' | 'classified';\n\treproduction_blocker?: string;\n}\n\nexport interface ResolveIOSupportDiagnosisHypothesis {\n\tstatement: string;\n\tfalsifiable_test: string;\n\tevidence: string[];\n}\n\nexport interface ResolveIOSupportDiagnosisFailingPath {\n\tfrontend?: string;\n\tbackend?: string;\n\tshared_library?: string;\n\tdata_query?: string;\n\tdescription: string;\n}\n\nexport interface ResolveIOSupportDiagnosisBusinessProofContract {\n\tissue_class: ResolveIOSupportIssueClass;\n\tsetup_state: string;\n\taction_under_test: string;\n\texpected_business_state_change: string;\n\tprohibited_false_pass: string;\n\tproof_artifacts: string[];\n\tdata_or_dom_assertion: string;\n}\n\nexport interface ResolveIOSupportDiagnosisProofPlan {\n\tbefore: string;\n\tbefore_state_unavailable_reason?: string;\n\taction: string;\n\tafter: string;\n\tbusiness_assertion: string;\n\troute?: string;\n\tdata_assertion?: string;\n\tartifact_expectation?: string;\n\tbusiness_proof_contract?: ResolveIOSupportDiagnosisBusinessProofContract;\n}\n\nexport interface ResolveIOSupportDiagnosisHint {\n\tid?: string;\n\tticketNumber?: string;\n\ttitle?: string;\n\toutcome?: string;\n\tissueClass?: string;\n\townerFiles?: string[];\n\tcommitSha?: string;\n\tcommitMessage?: string;\n\treason?: string;\n}\n\nexport type ResolveIOSupportSimilarCaseSource = 'airun' | 'support_ticket' | 'git_commit' | 'manual';\n\nexport interface ResolveIOSupportSimilarCaseCandidate extends ResolveIOSupportDiagnosisHint {\n\tsource: ResolveIOSupportSimilarCaseSource;\n\tsummary?: string;\n\tkeywords?: string[];\n\tupdatedAt?: string;\n\tmetadata?: Record<string, any>;\n}\n\nexport interface ResolveIOSupportSimilarCaseRankedHint extends ResolveIOSupportDiagnosisHint {\n\tsource: ResolveIOSupportSimilarCaseSource;\n\tscore: number;\n\tstructuredSignals: string[];\n\tadvisoryOnly: true;\n}\n\nexport interface ResolveIOSupportSimilarCaseSelectionInput {\n\tissueClass?: ResolveIOSupportIssueClass | string;\n\townerFiles?: any;\n\ttext?: any;\n\tcandidates?: any[];\n\tlimit?: number;\n\tnow?: Date | string;\n}\n\nexport interface ResolveIOSupportSimilarCaseSelection {\n\tranked: ResolveIOSupportSimilarCaseRankedHint[];\n\tsimilarTickets: ResolveIOSupportSimilarCaseRankedHint[];\n\tsimilarCommits: ResolveIOSupportSimilarCaseRankedHint[];\n\tignoredCount: number;\n\tgeneratedAt: string;\n}\n\nexport type ResolveIOSupportDiagnosisEvidencePackStatus =\n\t| 'needs_diagnosis'\n\t| 'diagnosis_ready'\n\t| 'blocked';\n\nexport interface ResolveIOSupportIssueClassProbeCatalogEntry {\n\tissue_class: ResolveIOSupportIssueClass;\n\tprobe_type: ResolveIOSupportV5StepType;\n\tfailure_class: ResolveIOSupportV5FailureClass;\n\taction: string;\n\tproof_required: string;\n\trequired_artifacts: string[];\n\tacceptance_gate: 'aiqa_business_assertion';\n\tfalse_pass_blockers: string[];\n}\n\nexport interface ResolveIOSupportDiagnosisEvidencePack {\n\tpackId: string;\n\tstatus: ResolveIOSupportDiagnosisEvidencePackStatus;\n\treadOnly: true;\n\tsourceEditsAllowed: false;\n\trootCauseFirstRequired: true;\n\trequiredOutputKey: 'support_diagnosis_gate';\n\trequiredFields: string[];\n\trequiredEvidence: string[];\n\tforbiddenActions: string[];\n\tdiagnosisValid: boolean;\n\tdiagnosisStatus: ResolveIOSupportDiagnosisGateStatus;\n\tvalidationBlockers: string[];\n\tissueClassHint?: ResolveIOSupportIssueClass;\n\townerFileHints: string[];\n\tactiveMicrotaskId?: string;\n\tsimilarCaseSelection: ResolveIOSupportSimilarCaseSelection;\n\tissueClassProbeCatalog: ResolveIOSupportIssueClassProbeCatalogEntry[];\n\tproofMatrix?: ResolveIOSupportDiagnosisProofMatrix;\n\tstructuredFacts: Record<string, any>;\n\tgeneratedAt: string;\n}\n\nexport interface ResolveIOSupportDiagnosisEvidencePackInput {\n\tbundle?: ResolveIOSupportV5StateBundle;\n\tdiagnosisGate?: any;\n\tsimilarCaseHints?: any;\n\tissueClass?: ResolveIOSupportIssueClass | string;\n\townerFiles?: any;\n\ttext?: any;\n\tticketContext?: Record<string, any>;\n\tnow?: Date | string;\n}\n\nexport interface ResolveIOSupportDiagnosisEvidence {\n\tid?: string;\n\ttype: 'ticket' | 'browser' | 'mongo' | 'log' | 'code' | 'commit' | 'qa' | 'other';\n\tsummary: string;\n\tartifactPath?: string;\n\townerFiles?: string[];\n\tevidenceRefs?: string[];\n}\n\nexport interface ResolveIOSupportDiagnosisGate {\n\tissue_case: ResolveIOSupportDiagnosisIssueCase;\n\tissue_class: ResolveIOSupportIssueClass;\n\taccepted_hypothesis: ResolveIOSupportDiagnosisHypothesis;\n\trejected_alternatives: string[];\n\tfailing_path: ResolveIOSupportDiagnosisFailingPath;\n\towner_files: string[];\n\tproof_plan: ResolveIOSupportDiagnosisProofPlan;\n\tsimilar_tickets?: ResolveIOSupportDiagnosisHint[];\n\tsimilar_commits?: ResolveIOSupportDiagnosisHint[];\n\tevidence: ResolveIOSupportDiagnosisEvidence[];\n\tstatus: ResolveIOSupportDiagnosisGateStatus;\n\tupdatedAt?: string;\n}\n\nexport interface ResolveIOSupportDiagnosisGateValidation {\n\tvalid: boolean;\n\tstatus: ResolveIOSupportDiagnosisGateStatus;\n\tblockers: string[];\n\tnormalized?: ResolveIOSupportDiagnosisGate;\n\tevidenceQuality?: ResolveIOSupportDiagnosisEvidenceQuality;\n\tproofMatrix?: ResolveIOSupportDiagnosisProofMatrix;\n}\n\nexport interface ResolveIOSupportDiagnosisEvidenceQuality {\n\tvalid: boolean;\n\tblockers: string[];\n\tevidenceTypes: ResolveIOSupportDiagnosisEvidence['type'][];\n\treproductionEvidenceTypes: ResolveIOSupportDiagnosisEvidence['type'][];\n\trootCauseEvidenceTypes: ResolveIOSupportDiagnosisEvidence['type'][];\n\tartifactBackedEvidenceCount: number;\n\trouteOnlyReproductionEvidenceCount: number;\n\tbusinessReproductionEvidenceCount: number;\n\thasTicketContext: boolean;\n\thasRootCauseEvidence: boolean;\n\thasReproductionEvidence: boolean;\n}\n\nexport interface ResolveIOSupportDiagnosisProofMatrixEvidenceRef {\n\tevidenceId: string;\n\ttype: ResolveIOSupportDiagnosisEvidence['type'];\n\tsummary: string;\n\tartifactPath?: string;\n\townerFiles: string[];\n}\n\nexport interface ResolveIOSupportDiagnosisProofMatrixOwnerFile {\n\townerFile: string;\n\tcovered: boolean;\n\tevidenceIds: string[];\n\tfailingPathFields: string[];\n}\n\nexport interface ResolveIOSupportDiagnosisProofMatrix {\n\tmatrixId: string;\n\tstatus: 'ready' | 'incomplete';\n\tissueClass?: ResolveIOSupportIssueClass;\n\townerFiles: string[];\n\treproductionEvidence: ResolveIOSupportDiagnosisProofMatrixEvidenceRef[];\n\trootCauseEvidence: ResolveIOSupportDiagnosisProofMatrixEvidenceRef[];\n\townerFileCoverage: ResolveIOSupportDiagnosisProofMatrixOwnerFile[];\n\tbusinessProofArtifacts: string[];\n\tproofPlanChecks: {\n\t\tbeforeActionAfter: boolean;\n\t\tbusinessAssertion: boolean;\n\t\tbusinessProofContract: boolean;\n\t\tdataOrDomAssertion: boolean;\n\t};\n\tblockers: string[];\n\tgeneratedAt: string;\n}\n\nexport type ResolveIOSupportCustomerReplyAction =\n\t| 'draft_resolution_reply'\n\t| 'ask_clarification'\n\t| 'hold_internal';\n\nexport type ResolveIOSupportHumanReviewType =\n\t| 'diagnosis_gate'\n\t| 'owner_scoped_repair'\n\t| 'business_proof_qa'\n\t| 'release_hotfix'\n\t| 'customer_resolution_reply'\n\t| 'customer_clarification'\n\t| 'new_evidence'\n\t| 'internal_hold';\n\nexport interface ResolveIOSupportHumanReviewPacket {\n\treviewType: ResolveIOSupportHumanReviewType;\n\ttitle: string;\n\tsummary: string;\n\tprimaryAction: string;\n\tquestion?: string;\n\tcustomerFacingDraftAllowed: boolean;\n\tcustomerSendAllowed: boolean;\n\trequiresHumanApproval: boolean;\n\tsafety: 'safe_to_draft' | 'needs_clarification' | 'internal_hold';\n\treason: string;\n\tblockers: string[];\n\trequiredEvidence: string[];\n\tevidenceRefs: string[];\n\tnextCommands: string[];\n\tforbiddenActions: string[];\n\tcostRisk: 'free_or_deterministic' | 'small_model_or_qa' | 'expensive_model' | 'release_or_customer_send';\n\tcreatedAt: string;\n}\n\nexport interface ResolveIOSupportHumanDecisionChoice {\n\tchoiceId: string;\n\tlabel: string;\n\taction: string;\n\tdescription: string;\n\tsafety: 'low' | 'medium' | 'high';\n\trequiresConfirmation: boolean;\n\tnextCommand: string;\n\texpectedResult: string;\n\tallowedWithoutCodexMonitor: boolean;\n}\n\nexport interface ResolveIOSupportHumanDecisionRequest {\n\trequestId: string;\n\trequired: boolean;\n\tstatus: 'not_required' | 'waiting_for_operator' | 'auto_dispatch_allowed';\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\tsameFailureCount: number;\n\t\tpingPongCount: number;\n\t\tevidenceStrength: ResolveIOAIManagerEvidenceStrength;\n\t\trequiredResetEvidence: string[];\n\t\trecentArtifactPaths: string[];\n\t\tchangedFiles: string[];\n\t\tnextActionContractId: string;\n\t};\n\tchoices: ResolveIOSupportHumanDecisionChoice[];\n\tblockedUntil: string[];\n\tautoDispatchAllowed: boolean;\n\tcreatedAt: string;\n}\n\nexport interface ResolveIOSupportCustomerReplyPolicyInput {\n\tdiagnosisGate?: any;\n\tissueClassProbePlan?: any;\n\toutcomeLabel?: string;\n\tconfidence?: any;\n\tbusinessAssertionStatus?: string;\n\tbusinessAssertions?: any[];\n\tbusinessProofArtifacts?: any[];\n\tpreviousProofFingerprint?: string;\n\tpreviousArtifactFingerprint?: string;\n\tunresolvedBlockers?: any[];\n\treleaseStatus?: string;\n\treleaseEvidence?: any;\n\thotfixEvidence?: any;\n\treleasePolicy?: ResolveIOAIManagerHotfixFirstReleasePolicy;\n\treleaseGatePassed?: boolean;\n}\n\nexport type ResolveIOSupportClarificationMissingField =\n\t| 'reproduction_blocker'\n\t| 'expected_result'\n\t| 'observed_result'\n\t| 'account_customer_context'\n\t| 'example_record_or_action_path';\n\nexport interface ResolveIOSupportClarificationContract {\n\tcontractId: string;\n\tstatus: 'ready' | 'blocked';\n\tmissingField: ResolveIOSupportClarificationMissingField;\n\tquestion: string;\n\tsourceBlockers: string[];\n\toneQuestionOnly: boolean;\n\tcustomerFacingDraftAllowed: boolean;\n\tcustomerSendAllowed: boolean;\n\tparksTicketUntilCustomerReply: boolean;\n\tnextCommands: string[];\n\tforbiddenActions: string[];\n\trequiredEvidence: string[];\n\tcreatedAt: string;\n}\n\nexport type ResolveIOSupportCustomerReplyReadinessStatus =\n\t| 'draft_ready'\n\t| 'clarification_required'\n\t| 'blocked_until_diagnosis'\n\t| 'blocked_until_probe_plan'\n\t| 'blocked_until_confidence'\n\t| 'blocked_until_runner_blocker'\n\t| 'blocked_until_release_hotfix'\n\t| 'blocked_until_business_proof'\n\t| 'blocked_until_business_proof_artifact'\n\t| 'blocked_until_human_approval'\n\t| 'internal_blocked';\n\nexport interface ResolveIOSupportCustomerReplyReadinessContract {\n\tcontractId: string;\n\tstatus: ResolveIOSupportCustomerReplyReadinessStatus;\n\tpolicyAction: ResolveIOSupportCustomerReplyAction;\n\treviewType: ResolveIOSupportHumanReviewType;\n\tprimaryCommand: string;\n\tcanDraftCustomerReply: boolean;\n\tcanSendCustomerReply: boolean;\n\trequiresHumanApproval: boolean;\n\tproofBacked: boolean;\n\tbusinessProofReady: boolean;\n\treleaseReady: boolean;\n\tdiagnosisReady: boolean;\n\tissueClassProbePlanReady: boolean;\n\tclarificationRequired: boolean;\n\treason: string;\n\tblockers: string[];\n\trequiredEvidence: string[];\n\tevidenceRefs: string[];\n\tnextCommands: string[];\n\tforbiddenActions: string[];\n\tcreatedAt: string;\n}\n\nexport interface ResolveIOSupportCustomerReplyReadinessContractInput {\n\tpolicy: ResolveIOSupportCustomerReplyPolicy;\n\tdiagnosisValidation?: ResolveIOSupportDiagnosisGateValidation;\n\tissueClassProbePlanValidation?: ResolveIOSupportIssueClassProbePlanValidation;\n\tbusinessProofReadiness?: ResolveIOSupportBusinessProofReadiness;\n\treleaseGate?: {\n\t\tblocked?: boolean;\n\t\tstatus?: string;\n\t\tblockers?: string[];\n\t\trequiredEvidence?: string[];\n\t\tnextCommands?: string[];\n\t};\n\tnow?: Date | string;\n}\n\nexport interface ResolveIOSupportCustomerReplyPolicy {\n\taction: ResolveIOSupportCustomerReplyAction;\n\tcanDraftCustomerReply: boolean;\n\tcanSendCustomerReply: boolean;\n\tconfidenceLevel: 'high' | 'medium' | 'low' | 'unknown';\n\tsafety: 'safe_to_draft' | 'needs_clarification' | 'internal_hold';\n\treason: string;\n\trequiredEvidence: string[];\n\tclarificationQuestion?: string;\n\tclarificationContract?: ResolveIOSupportClarificationContract;\n\thumanReviewPacket?: ResolveIOSupportHumanReviewPacket;\n\tdraftBasis?: {\n\t\tissueClass: ResolveIOSupportIssueClass;\n\t\tissueClassProbePlanId?: string;\n\t\tissueClassProbePlanStatus?: ResolveIOSupportIssueClassProbePlanStatus;\n\t\tbusinessProof: string;\n\t\tartifactCount: number;\n\t};\n\treadinessContract?: ResolveIOSupportCustomerReplyReadinessContract;\n}\n\nexport interface ResolveIOSupportIssueClassProbe {\n\tissue_class: ResolveIOSupportIssueClass;\n\tprobe_type: ResolveIOSupportV5StepType;\n\tfailure_class: ResolveIOSupportV5FailureClass;\n\tobjective: string;\n\troute?: string;\n\taction: string;\n\tbrowser_steps: string[];\n\texpected_evidence: string;\n\texpected_business_proof: string;\n\tdata_proof_requirements: string[];\n\trequired_artifacts: string[];\n\tqa_rows: ResolveIOSupportIssueClassProbeQaRow[];\n\tactive_qa_row?: ResolveIOSupportIssueClassProbeQaRow;\n\taiqa_business_assertion_template: ResolveIOSupportIssueClassProbeAssertionTemplate;\n\tstate_transition: {\n\t\tbefore: string;\n\t\taction: string;\n\t\tafter: string;\n\t\tassertion: string;\n\t};\n\tacceptance_gate: 'aiqa_business_assertion';\n\tblocks_acceptance_without_business_assertion: boolean;\n\tfalse_pass_blockers?: string[];\n}\n\nexport interface ResolveIOSupportIssueClassProbeQaRow {\n\trow_id: string;\n\tissue_class: ResolveIOSupportIssueClass;\n\tprobe_type: ResolveIOSupportV5StepType;\n\troute?: string;\n\taction_under_test: string;\n\tbrowser_steps: string[];\n\texpected_result: string;\n\texpected_dom_or_data_proof: string;\n\trequired_artifacts: string[];\n\tfalse_pass_blockers: string[];\n\tstate_transition: {\n\t\tbefore: string;\n\t\taction: string;\n\t\tafter: string;\n\t\tassertion: string;\n\t};\n\tacceptance_gate: 'aiqa_business_assertion';\n\trequires_aiqa_business_assertion: true;\n\troute_only_is_false_pass: true;\n\tmobile_viewport_required: boolean;\n}\n\nexport interface ResolveIOSupportIssueClassProbeAssertionTemplate {\n\tassertion: string;\n\tstatus: 'pending';\n\tworkflow: string;\n\troute?: string;\n\tbefore: string;\n\taction: string;\n\texpected: string;\n\tobserved: string;\n\tdataProof: string;\n\tartifactPaths: string[];\n\tmetadata: {\n\t\tsupportDiagnosisProof: true;\n\t\tissueClass: ResolveIOSupportIssueClass;\n\t\tprobePlanRequired: true;\n\t\trouteOnlyIsFalsePass: true;\n\t};\n}\n\nexport type ResolveIOSupportIssueClassProbePlanStatus = 'missing' | 'incomplete' | 'ready';\n\nexport interface ResolveIOSupportIssueClassProbePlan {\n\tplanId: string;\n\tstatus: ResolveIOSupportIssueClassProbePlanStatus;\n\tissue_class?: ResolveIOSupportIssueClass;\n\tdiagnosisValid: boolean;\n\tprobes: ResolveIOSupportIssueClassProbe[];\n\tactiveProbe?: ResolveIOSupportIssueClassProbe;\n\tqaRows: ResolveIOSupportIssueClassProbeQaRow[];\n\tactiveQaRow?: ResolveIOSupportIssueClassProbeQaRow;\n\trequiredArtifacts: string[];\n\tacceptanceGate: 'aiqa_business_assertion';\n\tfalsePassBlockers: string[];\n\tblockers: string[];\n\tgeneratedAt: string;\n}\n\nexport interface ResolveIOSupportIssueClassProbePlanValidation {\n\tvalid: boolean;\n\tstatus: ResolveIOSupportIssueClassProbePlanStatus;\n\tblockers: string[];\n\tnormalized?: ResolveIOSupportIssueClassProbePlan;\n\tactiveProbe?: ResolveIOSupportIssueClassProbe;\n}\n\nexport interface ResolveIOSupportBusinessProofAssertion {\n\tassertion: string;\n\tstatus: string;\n\tworkflow?: string;\n\troute?: string;\n\tbefore?: string;\n\taction?: string;\n\texpected?: string;\n\tafter?: string;\n\tobserved?: string;\n\tdataProof?: string;\n\tmongoDelta?: Record<string, any>;\n\tartifactPaths: string[];\n\tmessage?: string;\n\tacceptanceBlocked?: boolean;\n\trouteOnly?: boolean;\n\tmetadata?: Record<string, any>;\n}\n\nexport interface ResolveIOSupportBusinessProofReadinessInput {\n\tdiagnosisGate?: any;\n\toutcomeLabel?: string;\n\tbusinessAssertionStatus?: string;\n\tbusinessAssertions?: any[];\n\tbusinessProofArtifacts?: any[];\n\tpreviousProofFingerprint?: string;\n\tpreviousArtifactFingerprint?: string;\n}\n\nexport interface ResolveIOSupportBusinessProofReadiness {\n\tready: boolean;\n\tstatus: 'missing' | 'route_only' | 'failed' | 'blocked' | 'weak' | 'stale' | 'passed';\n\treason: string;\n\tblockers: string[];\n\trequiredEvidence: string[];\n\tartifactPaths: string[];\n\tproofFingerprint: string;\n\tartifactFingerprint: string;\n\tproofFreshness: 'missing' | 'fresh' | 'same_as_previous' | 'stale_artifact' | 'unknown';\n\tmatchedAssertion?: ResolveIOSupportBusinessProofAssertion;\n}\n\nexport interface ResolveIOSupportV5RepeatStopInput {\n\thistory: ResolveIOSupportV5StepRecord[];\n\tfailureClass?: ResolveIOSupportV5FailureClass | string;\n\tblocker?: string;\n\tevidence?: any;\n\tevidenceHash?: string;\n\tchangedFiles?: any;\n\tartifactPaths?: any;\n\tlimit?: number;\n\tignoreInfra?: boolean;\n}\n\nexport interface ResolveIOSupportV5RepeatStopDecision {\n\tshouldStop: boolean;\n\trepeatedCount: number;\n\tfailureClass: string;\n\tblockerFingerprint: string;\n\tevidenceHash: string;\n\tnewEvidence?: boolean;\n\tmaterialEvidence?: boolean;\n\tevidenceStrength?: ResolveIOAIManagerEvidenceStrength;\n\tevidenceSignals?: string[];\n\treason: string;\n}\n\nexport type ResolveIOSupportEvidenceFreshnessStatus =\n\t| 'missing'\n\t| 'fresh'\n\t| 'retry_below_limit'\n\t| 'material_evidence'\n\t| 'weak_evidence'\n\t| 'stale_repeated'\n\t| 'ping_pong'\n\t| 'infra_ignored';\n\nexport interface ResolveIOSupportEvidenceFreshness {\n\tstatus: ResolveIOSupportEvidenceFreshnessStatus;\n\tfailureClass: string;\n\tblockerFingerprint: string;\n\tevidenceHash: string;\n\tsameFailureCount: number;\n\tpingPongCount: number;\n\tnewEvidence: boolean;\n\tmaterialEvidence: boolean;\n\tevidenceStrength: ResolveIOAIManagerEvidenceStrength;\n\tevidenceSignals: string[];\n\tloopBudgetShouldReset: boolean;\n\tcanRetry: boolean;\n\tmustCollectNewEvidence: boolean;\n\tproductRepairFailure: boolean;\n\treason: string;\n\trequiredResetEvidence: string[];\n\tchangedFiles: string[];\n\tartifactPaths: string[];\n}\n\nexport type ResolveIOSupportEvidenceProbeContractStatus = 'ready' | 'blocked';\n\nexport type ResolveIOSupportEvidenceProbeContractType =\n\t| 'issue_class_probe'\n\t| 'business_proof'\n\t| 'preflight'\n\t| 'release'\n\t| 'manual';\n\nexport interface ResolveIOSupportEvidenceProbeContract {\n\tcontractId: string;\n\tstatus: ResolveIOSupportEvidenceProbeContractStatus;\n\tprobeType: ResolveIOSupportEvidenceProbeContractType;\n\tevidenceOnly: true;\n\tproductRepairAllowed: false;\n\tcanRunWithoutCodexMonitor: boolean;\n\tissueClass?: ResolveIOSupportIssueClass;\n\tplanId?: string;\n\tactiveRoute?: string;\n\tactionUnderTest?: string;\n\texpectedBusinessProof?: string;\n\tstateTransition?: ResolveIOSupportIssueClassProbe['state_transition'];\n\tstartingFailureClass: string;\n\tstartingBlockerFingerprint: string;\n\tstartingEvidenceHash: string;\n\tsameFailureCount: number;\n\tpingPongCount: number;\n\trequiredNewSignals: string[];\n\trequiredArtifacts: string[];\n\tacceptableEvidence: string[];\n\tblockers: string[];\n\tforbiddenActions: string[];\n\tnextCommands: string[];\n\tcreatedAt: string;\n}\n\nexport interface ResolveIOSupportEvidenceProbeContractValidation {\n\tvalid: boolean;\n\tstatus: ResolveIOSupportEvidenceProbeContractStatus;\n\tblockers: string[];\n\tnormalized?: ResolveIOSupportEvidenceProbeContract;\n}\n\nexport type ResolveIOSupportPreflightCheckName =\n\t| 'puppeteer_module'\n\t| 'chrome_executable'\n\t| 'chrome_launch'\n\t| 'node_version'\n\t| 'npm_install'\n\t| 'settings_file'\n\t| 'mongo_connection'\n\t| 'server_startup'\n\t| 'client_startup'\n\t| 'port_availability'\n\t| 'compile'\n\t| 'cache_state'\n\t| 'seed_data'\n\t| 'unknown';\n\nexport type ResolveIOSupportPreflightCheckStatus = 'pass' | 'fail' | 'blocked' | 'warn' | 'unknown';\n\nexport interface ResolveIOSupportPreflightCheck {\n\tname: ResolveIOSupportPreflightCheckName;\n\tstatus: ResolveIOSupportPreflightCheckStatus;\n\tsummary: string;\n\tfailureClass: 'infra' | 'compile' | 'unknown';\n\tcommand?: string;\n\tdurationMs?: number;\n\tartifactPaths: string[];\n\tevidence: string[];\n\trecordedAt: string;\n}\n\nexport type ResolveIOSupportPreflightGateStatus =\n\t| 'passed'\n\t| 'missing'\n\t| 'infra_failed'\n\t| 'compile_failed'\n\t| 'blocked'\n\t| 'unknown';\n\nexport type ResolveIOSupportPreflightNextCommand =\n\t| 'continue_to_diagnosis'\n\t| 'run_support_v5_preflight'\n\t| 'run_support_v5_infra_repair'\n\t| 'run_support_v5_compile_repair';\n\nexport interface ResolveIOSupportPreflightGateInput {\n\trequired?: boolean;\n\tstatus?: ResolveIOSupportPreflightGateStatus | string;\n\tready?: boolean;\n\tchecks?: any[];\n\tinfraChecks?: any[];\n\tcompileResult?: any;\n\tstartupChecks?: any[];\n\tblockers?: any;\n\trequiredEvidence?: any;\n\tartifactPaths?: any;\n\tevidenceHash?: string;\n\trecordedAt?: Date | string;\n}\n\nexport interface ResolveIOSupportPreflightGate {\n\tready: boolean;\n\trequired: boolean;\n\tstatus: ResolveIOSupportPreflightGateStatus;\n\tfailureClass: 'infra' | 'compile' | 'unknown';\n\tchecks: ResolveIOSupportPreflightCheck[];\n\tfailedChecks: ResolveIOSupportPreflightCheck[];\n\tblockers: string[];\n\trequiredEvidence: string[];\n\tartifactPaths: string[];\n\tnextCommand: ResolveIOSupportPreflightNextCommand;\n\tblocksProductRepair: boolean;\n\tblocksModelRepair: boolean;\n\tevidenceHash: string;\n\trecordedAt: string;\n}\n\nexport type ResolveIOSupportV5RepairGateAction =\n\t| 'diagnose_only'\n\t| 'infra_repair_only'\n\t| 'allow_product_repair'\n\t| 'reject_out_of_scope'\n\t| 'park_repeated_failure';\n\nexport interface ResolveIOSupportV5RepairGateInput {\n\tdiagnosisGate?: any;\n\tpreflightGate?: ResolveIOSupportPreflightGateInput | ResolveIOSupportPreflightGate;\n\tactiveStepType?: ResolveIOSupportV5StepType | string;\n\tchangedFiles?: any;\n\tartifactPaths?: any;\n\tfailureClass?: ResolveIOSupportV5FailureClass | string;\n\tblocker?: string;\n\tevidence?: any;\n\tevidenceHash?: string;\n\thistory?: ResolveIOSupportV5StepRecord[];\n\tmaxOwnerFiles?: number;\n\tmaxRepeatedNoProgress?: number;\n\tallowTestsOutsideOwnerFiles?: boolean;\n}\n\nexport interface ResolveIOSupportV5RepairGateDecision {\n\taction: ResolveIOSupportV5RepairGateAction;\n\tcanEditProductCode: boolean;\n\tblockers: string[];\n\townerFiles: string[];\n\tissueClass?: ResolveIOSupportIssueClass;\n\tproofPlan?: ResolveIOSupportDiagnosisProofPlan;\n\townerScopedRepairContract: ResolveIOSupportOwnerScopedRepairContract;\n\toutsideOwnerFiles: string[];\n\tpreflightGate: ResolveIOSupportPreflightGate;\n\trepeatedFailure?: ResolveIOSupportV5RepeatStopDecision;\n\tdiagnosisValidation: ResolveIOSupportDiagnosisGateValidation;\n\trecoveryPlan: ResolveIOAIManagerRecoveryPlan;\n\trecoveryCheckpoint: ResolveIOAIManagerRecoveryCheckpoint;\n\trecoveryEvidenceProbe: ResolveIOAIManagerRecoveryEvidenceProbe;\n\trecoveryAction: ResolveIOAIManagerRecoveryActionPacket;\n}\n\nexport interface ResolveIOSupportOwnerScopedRepairPatchUnit {\n\townerFile: string;\n\tcoverageEvidenceIds: string[];\n\tfailingPathFields: string[];\n\trepairPurpose: string;\n\trequiredLocalChecks: string[];\n}\n\nexport interface ResolveIOSupportOwnerScopedRepairContract {\n\tcontractId: string;\n\tstatus: 'ready' | 'blocked';\n\tsourceEditsAllowed: boolean;\n\tcanRunWithoutCodexMonitor: boolean;\n\tissueClass?: ResolveIOSupportIssueClass;\n\townerFiles: string[];\n\tproofMatrixId: string;\n\tchangedFiles: string[];\n\toutsideOwnerFiles: string[];\n\tpatchUnits: ResolveIOSupportOwnerScopedRepairPatchUnit[];\n\trequiredEvidenceBeforeRepair: string[];\n\trequiredEvidenceAfterRepair: string[];\n\tnextCommands: string[];\n\tforbiddenActions: string[];\n\tblockers: string[];\n\tcreatedAt: string;\n}\n\nexport type ResolveIOSupportV5MicrotaskStatus =\n\t| 'pending'\n\t| 'in_progress'\n\t| 'pass'\n\t| 'needs_repair'\n\t| 'blocked'\n\t| 'parked';\n\nexport type ResolveIOSupportV5MicrotaskType =\n\t| ResolveIOSupportV5StepType\n\t| 'planning'\n\t| 'scope_slice'\n\t| 'product_repair'\n\t| 'runner_repair';\n\nexport interface ResolveIOSupportV5PromptBudget {\n\tinitialPlannerCap: number;\n\tbuildMicrotaskCap: number;\n\tbuildMicrotaskHardCap: number;\n\tqaMicrotaskCap: number;\n\tqaMicrotaskHardCap: number;\n\trepairMicrotaskCap: number;\n\trepairMicrotaskHardCap: number;\n}\n\nexport interface ResolveIOSupportV5Microtask {\n\tmicrotaskId: string;\n\tlane: ResolveIOSupportV5Lane;\n\ttype: ResolveIOSupportV5MicrotaskType;\n\tstatus: ResolveIOSupportV5MicrotaskStatus;\n\tobjective: string;\n\ttargetFiles: string[];\n\tcontextRefs: string[];\n\tselfGate: string;\n\tacceptanceProof: string;\n\tthreadKey: string;\n\tpromptTokenEstimate?: number;\n\tattempts: number;\n\tdependsOn: string[];\n\tparentScopeId?: string;\n\tblocker?: string;\n\tcreatedAt: string;\n\tupdatedAt: string;\n}\n\nexport interface ResolveIOSupportV5UsageSection {\n\tname: string;\n\ttokenEstimate: number;\n}\n\nexport interface ResolveIOSupportV5MicrotaskUsage {\n\tmicrotaskId: string;\n\tlane: ResolveIOSupportV5Lane;\n\tmodel?: string;\n\tthreadKey?: string;\n\treuseThread: boolean;\n\tfreshReason?: string;\n\tpromptTokenEstimate: number;\n\tpromptSections: ResolveIOSupportV5UsageSection[];\n\tactualInputTokens?: number;\n\tactualCachedInputTokens?: number;\n\tactualOutputTokens?: number;\n\tdurationMs?: number;\n\toutcome?: ResolveIOSupportV5Outcome | ResolveIOSupportV5MicrotaskStatus;\n\trecordedAt: string;\n}\n\nexport interface ResolveIOSupportV5Budget {\n\tmaxPromptTokensPerNonInitialStep: number;\n\tmaxLoopsPerTicket: number;\n\tmaxRepeatedNoProgress: number;\n\tmaxRuntimeMinutesPerLoop: number;\n\ttotalPromptTokenEstimate: number;\n\ttotalRuntimeMs: number;\n\tloopCount: number;\n}\n\nexport interface ResolveIOSupportV5LaneMemory {\n\tlane: ResolveIOSupportV5Lane;\n\tmodel: string;\n\tthreadKey: string;\n\tscopeSummary: string;\n\tactiveBlocker: string;\n\tactiveQaRow?: {\n\t\tindex?: number;\n\t\tworkflow?: string;\n\t\troute?: string;\n\t\tassertion?: string;\n\t\tstatus?: string;\n\t};\n\tchangedFiles: string[];\n\tartifactPaths: string[];\n\tlatestPromptTokenEstimate?: number;\n\tupdatedAt: string;\n}\n\nexport interface ResolveIOSupportV5FailureFingerprint {\n\tstepType: ResolveIOSupportV5StepType;\n\tfailureClass: string;\n\tblockerFingerprint: string;\n\tevidenceHash: string;\n\trecordedAt: string;\n}\n\nexport interface ResolveIOSupportV5SupervisorState {\n\tversion: 'v5';\n\tstatus: 'active' | 'parked' | 'complete';\n\tcurrentGoal: string;\n\tapprovedScope: string;\n\tprBranch: string;\n\tactiveStep: ResolveIOSupportV5StepType;\n\tactiveBlocker: string;\n\tlastGoodCheckpoint: string;\n\tcurrentQaRow?: ResolveIOSupportV5LaneMemory['activeQaRow'];\n\tprocessLease?: {\n\t\trunId?: string;\n\t\ttoken?: string;\n\t\tgeneration?: number;\n\t\tworkspace?: string;\n\t\tlane?: string;\n\t};\n\tartifactLinks: string[];\n\tnoEmailUnlessApproved: boolean;\n\tupdatedAt: string;\n}\n\nexport interface ResolveIOSupportV5StepRecord {\n\tmicrotaskId?: string;\n\tstepType: ResolveIOSupportV5StepType;\n\toutcome: ResolveIOSupportV5Outcome;\n\tlane: ResolveIOSupportV5Lane;\n\tmodel?: string;\n\tthreadKey?: string;\n\tpromptTokenEstimate?: number;\n\truntimeMs?: number;\n\tsummary: string;\n\tblocker?: string;\n\tchangedFiles?: string[];\n\tartifactPaths?: string[];\n\tdiagnosisGate?: ResolveIOSupportDiagnosisGate;\n\tpreflightGate?: ResolveIOSupportPreflightGate;\n\tfailureClass?: ResolveIOSupportV5FailureClass | string;\n\tblockerFingerprint?: string;\n\tevidenceHash?: string;\n\trecordedAt: string;\n}\n\nexport interface ResolveIOSupportV5RunnerIncident {\n\tincidentClass: string;\n\tsummary: string;\n\tstepType?: ResolveIOSupportV5StepType;\n\tblockerFingerprint?: string;\n\tartifactPaths?: string[];\n\trecordedAt: string;\n}\n\nexport interface ResolveIOSupportV5StateBundle {\n\tsupportWorkflowVersion: 'v5';\n\tsupportV5SupervisorState: ResolveIOSupportV5SupervisorState;\n\tsupportV5DiagnosisGate?: ResolveIOSupportDiagnosisGate;\n\tsupportV5DiagnosisEvidencePack?: ResolveIOSupportDiagnosisEvidencePack;\n\tsupportV5IssueClassProbePlan?: ResolveIOSupportIssueClassProbePlan;\n\tsupportV5PreflightGate?: ResolveIOSupportPreflightGate;\n\tsupportV5LaneMemory: {\n\t\tbuild: ResolveIOSupportV5LaneMemory;\n\t\tqa: ResolveIOSupportV5LaneMemory;\n\t};\n\tsupportV5StepHistory: ResolveIOSupportV5StepRecord[];\n\tsupportV5Budget: ResolveIOSupportV5Budget;\n\tsupportV5RunnerIncidents: ResolveIOSupportV5RunnerIncident[];\n\tsupportV5MicrotaskLedger: ResolveIOSupportV5Microtask[];\n\tsupportV5ActiveMicrotaskId?: string;\n\tsupportV5ScopeDigest?: string;\n\tsupportV5MicrotaskUsageHistory: ResolveIOSupportV5MicrotaskUsage[];\n\tsupportV5FailureFingerprints?: ResolveIOSupportV5FailureFingerprint[];\n\tsupportV5RecoveryPlan?: ResolveIOAIManagerRecoveryPlan;\n\tsupportV5RecoveryCheckpoint?: ResolveIOAIManagerRecoveryCheckpoint;\n\tsupportV5RecoveryEvidenceProbe?: ResolveIOAIManagerRecoveryEvidenceProbe;\n\tsupportV5RecoveryAction?: ResolveIOAIManagerRecoveryActionPacket;\n\tsupportV5RecoveryDispatchHistory?: ResolveIOAIManagerRecoveryActionDispatchRecord[];\n\tsupportV5RecoveryDirective?: ResolveIOAIManagerRecoveryExecutionDirective;\n}\n\nexport interface ResolveIOSupportV5InitializeInput {\n\tjobId: string;\n\tticketId?: string;\n\tticketNumber?: string;\n\ttitle?: string;\n\tdescription?: string;\n\tapprovedScopeRequirements?: string[];\n\tapprovedScopeHours?: number | null;\n\tprBranch?: string;\n\tbuildThreadKey?: string;\n\tqaThreadKey?: string;\n\tprocessLease?: ResolveIOSupportV5SupervisorState['processLease'];\n\tnow?: Date | string;\n\texisting?: Partial<ResolveIOSupportV5StateBundle>;\n}\n\nexport interface ResolveIOSupportV5StepInput {\n\tmicrotaskId?: string;\n\tstepType: ResolveIOSupportV5StepType;\n\toutcome: ResolveIOSupportV5Outcome;\n\tlane: ResolveIOSupportV5Lane;\n\tmodel?: string;\n\tthreadKey?: string;\n\tpromptTokenEstimate?: number;\n\truntimeMs?: number;\n\tsummary?: string;\n\tblocker?: string;\n\tchangedFiles?: string[];\n\tartifactPaths?: string[];\n\tdiagnosisGate?: ResolveIOSupportDiagnosisGate;\n\tpreflightGate?: ResolveIOSupportPreflightGateInput | ResolveIOSupportPreflightGate;\n\tfailureClass?: ResolveIOSupportV5FailureClass | string;\n\tevidenceHash?: string;\n\tactiveQaRow?: ResolveIOSupportV5LaneMemory['activeQaRow'];\n\tnow?: Date | string;\n}\n\nexport interface ResolveIOSupportV5ContinuationDecision {\n\taction: 'continue' | 'park';\n\treason: string;\n\tnextStep: ResolveIOSupportV5StepType;\n\trepeatedNoProgressCount: number;\n\tbudgetExceeded: boolean;\n\trecoveryPlan: ResolveIOAIManagerRecoveryPlan;\n\trecoveryCheckpoint: ResolveIOAIManagerRecoveryCheckpoint;\n\trecoveryEvidenceProbe: ResolveIOAIManagerRecoveryEvidenceProbe;\n\trecoveryAction: ResolveIOAIManagerRecoveryActionPacket;\n}\n\nexport type ResolveIOSupportV5AutonomousNextAction =\n\t| 'run_diagnosis_gate'\n\t| 'ask_customer_clarification'\n\t| 'repair_infra_only'\n\t| 'revise_diagnosis_scope'\n\t| 'run_owner_scoped_repair'\n\t| 'run_business_proof_qa'\n\t| 'create_pr'\n\t| 'run_a_grade_pr_review'\n\t| 'repair_release_hotfix_first'\n\t| 'collect_new_evidence'\n\t| 'draft_customer_reply'\n\t| 'ready_for_release_gate'\n\t| 'park_manual';\n\nexport type ResolveIOSupportContinuationProofCheckpointStatus =\n\t| 'waiting_for_state_transition'\n\t| 'waiting_for_proof'\n\t| 'waiting_for_new_evidence'\n\t| 'ready_to_continue';\n\nexport interface ResolveIOSupportContinuationProofCheckpoint {\n\trequired: boolean;\n\tstatus: ResolveIOSupportContinuationProofCheckpointStatus;\n\taction: ResolveIOSupportV5AutonomousNextAction;\n\treason: string;\n\tstartingFailureClass: string;\n\tstartingBlockerFingerprint: string;\n\tstartingEvidenceHash: string;\n\trequiredEvidence: string[];\n\trequiredResetEvidence: string[];\n\tsuccessRequiresNewEvidence: boolean;\n\tblocksProductRepairUntilChangedEvidence: boolean;\n\tnextAction: string;\n}\n\nexport type ResolveIOSupportRootCauseReadinessStatus =\n\t| 'diagnosis_required'\n\t| 'customer_clarification_required'\n\t| 'infra_repair_only'\n\t| 'scope_revision_required'\n\t| 'owner_scoped_repair_ready'\n\t| 'business_proof_required'\n\t| 'pr_packaging_ready'\n\t| 'pr_review_required'\n\t| 'release_hotfix_required'\n\t| 'release_gate_ready'\n\t| 'customer_reply_draft_ready'\n\t| 'collect_new_evidence'\n\t| 'parked';\n\nexport interface ResolveIOSupportRootCauseReadiness {\n\tstatus: ResolveIOSupportRootCauseReadinessStatus;\n\tnextGate: 'diagnosis' | 'infra' | 'scope' | 'repair' | 'business_proof' | 'release' | 'customer_reply' | 'evidence' | 'manual';\n\tnextCommand: string;\n\trootCauseFirstSatisfied: boolean;\n\tdiagnosisValid: boolean;\n\townerFilesReady: boolean;\n\tproofPlanReady: boolean;\n\tproofMatrixReady: boolean;\n\townerScopedRepairContractReady: boolean;\n\tbusinessProofReady: boolean;\n\tinfraOnly: boolean;\n\tsameFailureParked: boolean;\n\tcanEditProductCode: boolean;\n\tcanRunIssueClassProbe: boolean;\n\tcanRunBusinessProofQa: boolean;\n\tcanRelease: boolean;\n\tcanDraftCustomerReply: boolean;\n\trequiresHumanDecision: boolean;\n\tissueClassProbePlanReady: boolean;\n\tpreflightReady: boolean;\n\tpreflightStatus: ResolveIOSupportPreflightGateStatus;\n\tpreflightFailureClass: 'infra' | 'compile' | 'unknown';\n\treason: string;\n\tblockers: string[];\n\townerFiles: string[];\n\tissueClass?: ResolveIOSupportIssueClass;\n\texpectedProof?: string;\n\tproofMatrix?: ResolveIOSupportDiagnosisProofMatrix;\n\townerScopedRepairContract?: ResolveIOSupportOwnerScopedRepairContract;\n\tissueClassProbes?: ResolveIOSupportIssueClassProbe[];\n\tissueClassProbePlan?: ResolveIOSupportIssueClassProbePlan;\n\tbusinessProofStatus?: ResolveIOSupportBusinessProofReadiness['status'];\n\tproofFingerprint?: string;\n\tartifactFingerprint?: string;\n\tproofFreshness?: ResolveIOSupportBusinessProofReadiness['proofFreshness'];\n\tpreflightGate?: ResolveIOSupportPreflightGate;\n}\n\nexport type ResolveIOSupportNextActionCostRisk =\n\t| 'free_or_deterministic'\n\t| 'small_model_or_qa'\n\t| 'expensive_model'\n\t| 'release_or_customer_send'\n\t| 'manual_blocked';\n\nexport interface ResolveIOSupportNextActionContract {\n\tcontractId: string;\n\taction: ResolveIOSupportV5AutonomousNextAction;\n\tlabel: string;\n\tprimaryCommand: string;\n\tlane: ResolveIOSupportV5Lane | 'release' | 'customer' | 'supervisor';\n\tstepType: ResolveIOSupportV5StepType | 'release_gate' | 'customer_reply';\n\tsafeToAutoRun: boolean;\n\trequiresHumanApproval: boolean;\n\tcanRunWithoutCodexMonitor: boolean;\n\tcodexFallbackRequired: boolean;\n\tcodexFallbackReason: string;\n\tcostRisk: ResolveIOSupportNextActionCostRisk;\n\trootCauseFirstSatisfied: boolean;\n\tdecisionBasis: {\n\t\tdiagnosisValid: boolean;\n\t\townerFilesReady: boolean;\n\t\tproofPlanReady: boolean;\n\t\tproofMatrixReady: boolean;\n\t\tproofMatrixId?: string;\n\t\townerScopedRepairContractReady: boolean;\n\t\townerScopedRepairContractId?: string;\n\t\tbusinessProofReady: boolean;\n\t\tevidenceFreshnessStatus: ResolveIOSupportEvidenceFreshnessStatus;\n\t\tevidenceStrength: ResolveIOAIManagerEvidenceStrength;\n\t\tfailureClass: string;\n\t\tblockerFingerprint: string;\n\t\tevidenceHash: string;\n\t\tsameFailureCount: number;\n\t\tissueClassProbePlanReady: boolean;\n\t\tpreflightReady: boolean;\n\t\tpreflightStatus: ResolveIOSupportPreflightGateStatus;\n\t\tpreflightFailureClass: 'infra' | 'compile' | 'unknown';\n\t\tpreflightEvidenceHash: string;\n\t\thotfixCommitRequired: boolean;\n\t\tliveHotfixBlockedUntilCommit: boolean;\n\t\tevidenceProbeContractReady?: boolean;\n\t\tevidenceProbeContractId?: string;\n\t\tautonomyMode?: ResolveIOAIManagerAutonomyPolicyDecision['mode'];\n\t\tautonomyCanAutoDispatch?: boolean;\n\t\tautonomyReason?: string;\n\t\tautonomyExpectedValueScore?: number;\n\t\tautonomyExpectedValuePositive?: boolean;\n\t\tautonomyProjectedSpendUsd?: number;\n\t\tautonomyApprovalRequired?: boolean;\n\t\tautonomyApprovalApproved?: boolean;\n\t\tautonomyApprovalBoundaryValid?: boolean;\n\t\tautonomyApprovalDecisionKind?: string;\n\t\tautonomyApprovalAction?: string;\n\t\tapprovedScopeHours?: number;\n\t\tmaxAutoHoursWithoutApproval?: number;\n\t\toverMaxAutoHours?: boolean;\n\t\tbugNotBug?: string;\n\t\tbugNotBugClassificationApproved?: boolean;\n\t\tscopeFingerprint?: string;\n\t\tscopeChangedSinceApproval?: boolean;\n\t\townerFileFingerprint?: string;\n\t\tapprovedOwnerFileFingerprint?: string;\n\t\townerFilesChangedSinceApproval?: boolean;\n\t\townerFilesAddedSinceApproval?: string[];\n\t\townerFilesRemovedSinceApproval?: string[];\n\t\tdiagnosisScopeFingerprint?: string;\n\t\tpreviousDiagnosisScopeFingerprint?: string;\n\t\tdiagnosisScopeIncluded?: boolean;\n\t\tdiagnosisScopeValid?: boolean;\n\t\tdiagnosisScopeChangedSinceApproval?: boolean;\n\t\tdiagnosisScopeFields?: string[];\n\t\tdiagnosisScopeBlockers?: string[];\n\t\trequiresOperatorApprovalForAnyScopeChange?: boolean;\n\t\tleSixHourScopeCanAutofixAfterApproval?: boolean;\n\t\tonTheFlyScopeChangeApprovalRequired?: boolean;\n\t\tafterApprovalAutopilotUntilAGrade?: boolean;\n\t\tautopilotCompletionStatus?: string;\n\t\tautopilotCompletionPhase?: string;\n\t\tautopilotCompletionNextAction?: string;\n\t\tautopilotCompletionReady?: boolean;\n\t};\n\tpreconditions: string[];\n\texpectedStateTransition: string;\n\tsuccessEvidence: string[];\n\tstopConditions: string[];\n\tforbiddenActions: string[];\n\townerFiles: string[];\n\tblockers: string[];\n\tnextCommands: string[];\n\tcreatedAt: string;\n}\n\nexport type ResolveIOSupportNextActionContractValidationStatus =\n\t| 'ready'\n\t| 'manual_required'\n\t| 'blocked';\n\nexport interface ResolveIOSupportNextActionContractValidation {\n\tvalid: boolean;\n\tstatus: ResolveIOSupportNextActionContractValidationStatus;\n\tblockers: string[];\n\twarnings: string[];\n\tnormalized?: ResolveIOSupportNextActionContract;\n}\n\nexport type ResolveIOSupportManagerExecutionPacketStatus =\n\t| 'auto_ready'\n\t| 'manual_required'\n\t| 'blocked';\n\nexport type ResolveIOSupportManagerExecutionRetryScope =\n\t| 'none'\n\t| 'diagnosis_only'\n\t| 'infra_only'\n\t| 'owner_files_only'\n\t| 'business_proof_only'\n\t| 'pr_packaging_only'\n\t| 'pr_review_only'\n\t| 'release_hotfix_only'\n\t| 'customer_draft_only'\n\t| 'evidence_only';\n\nexport interface ResolveIOSupportProofResetContract {\n\tcontractId: string;\n\tstatus: 'ready' | 'manual_required' | 'blocked';\n\taction: ResolveIOSupportV5AutonomousNextAction;\n\tretryScope: ResolveIOSupportManagerExecutionRetryScope;\n\tmaxAttemptsBeforeFreshEvidence: number;\n\tstartingFailureClass: string;\n\tstartingBlockerFingerprint: string;\n\tstartingEvidenceHash: string;\n\trequiredResetEvidence: string[];\n\tproofRequiredBeforeContinuation: string[];\n\tstopConditions: string[];\n\tcanRunWithoutCodexMonitor: boolean;\n\tsourceNextActionContractId: string;\n\tcreatedAt: string;\n}\n\nexport interface ResolveIOSupportManagerExecutionPacket {\n\tpacketId: string;\n\tstatus: ResolveIOSupportManagerExecutionPacketStatus;\n\taction: ResolveIOSupportV5AutonomousNextAction;\n\tlabel: string;\n\tprimaryCommand: string;\n\tlane: ResolveIOSupportV5Lane | 'release' | 'customer' | 'supervisor';\n\tstepType: ResolveIOSupportV5StepType | 'release_gate' | 'customer_reply';\n\texecuteNow: boolean;\n\tcanRunWithoutCodexMonitor: boolean;\n\tcodexFallbackRequired: boolean;\n\tretryScope: ResolveIOSupportManagerExecutionRetryScope;\n\tmaxAttemptsBeforeFreshEvidence: number;\n\tcostRisk: ResolveIOSupportNextActionCostRisk;\n\tproofRequiredBeforeContinuation: string[];\n\texpectedStateTransition: string;\n\tstopConditions: string[];\n\tforbiddenActions: string[];\n\townerFiles: string[];\n\tnextCommands: string[];\n\tproofResetContract: ResolveIOSupportProofResetContract;\n\tblockers: string[];\n\tvalidation: ResolveIOSupportNextActionContractValidation;\n\tcreatedAt: string;\n}\n\nexport interface ResolveIOSupportV5AutonomousDecisionInput {\n\tbundle: ResolveIOSupportV5StateBundle;\n\tchangedFiles?: any;\n\tfailureClass?: ResolveIOSupportV5FailureClass | string;\n\tblocker?: any;\n\tevidence?: any;\n\tevidenceHash?: string;\n\toutcomeLabel?: string;\n\tconfidence?: any;\n\tbusinessAssertionStatus?: string;\n\tbusinessAssertions?: any[];\n\tbusinessProofArtifacts?: any[];\n\tartifactPaths?: any;\n\tpreviousProofFingerprint?: string;\n\tpreviousArtifactFingerprint?: string;\n\tunresolvedBlockers?: any[];\n\treleaseStatus?: string;\n\thotfixEvidence?: any;\n\treleasePolicy?: ResolveIOAIManagerHotfixFirstReleasePolicy;\n\treleaseGatePassed?: boolean;\n\tprReadinessContract?: any;\n\tprReviewContract?: any;\n\tpreflightGate?: ResolveIOSupportPreflightGateInput | ResolveIOSupportPreflightGate;\n\tautonomyApproval?: any;\n\tproductRepairDispatchGuard?: any;\n\trequireAutonomyApprovalForProductRepair?: boolean;\n\tautonomyPolicy?: ResolveIOAIManagerAutonomyPolicyInput;\n\toperatorApproved?: boolean;\n\tmaxOwnerFiles?: number;\n\tnow?: Date | string;\n}\n\nexport interface ResolveIOSupportAutonomyApprovalContract {\n\tcontractId: string;\n\tstatus: 'approved_autopilot' | 'approval_required' | 'missing';\n\tapproved: boolean;\n\tapprovedAt?: string;\n\tapprovedBy?: string;\n\tdecisionKind: string;\n\tapprovalAction: string;\n\tpreferredChoiceId: string;\n\tcanApproveFromConsole: boolean;\n\testimatedHours?: number;\n\testimatedHoursKnown: boolean;\n\tmaxAutoHoursWithoutApproval: number;\n\toverMaxAutoHours: boolean;\n\texplicitOverLimitApproval: boolean;\n\tbugNotBug: string;\n\tbugNotBugKnown: boolean;\n\tbugNotBugClassificationApproved: boolean;\n\trequiresOverLimitApproval: boolean;\n\trequiresScopeReapproval: boolean;\n\trequiresOwnerFileReapproval: boolean;\n\trequiresIntakeReapproval: boolean;\n\trequiresDiagnosisScopeReapproval: boolean;\n\trequiresClassificationApproval: boolean;\n\trequiresEstimateHours: boolean;\n\tchangeApprovalMode: string;\n\tafterApprovalAutopilotUntilAGrade: boolean;\n\ttargetGrade: string;\n\tterminalTarget: string;\n\tqaScreenshotsRequired: boolean;\n\tbeforeActionAfterBusinessProofRequired: boolean;\n\taiqaBusinessAssertionRequired: boolean;\n\townerFiles: string[];\n\tapprovedOwnerFiles: string[];\n\tcurrentOwnerFiles: string[];\n\tscopeFingerprint: string;\n\tpreviousScopeFingerprint: string;\n\tscopeChangedSinceApproval: boolean;\n\townerFileFingerprint: string;\n\tapprovedOwnerFileFingerprint: string;\n\townerFilesChangedSinceApproval: boolean;\n\townerFilesAddedSinceApproval: string[];\n\townerFilesRemovedSinceApproval: string[];\n\tdiagnosisScopeFingerprint: string;\n\tpreviousDiagnosisScopeFingerprint: string;\n\tdiagnosisScopeIncluded: boolean;\n\tdiagnosisScopeValid: boolean;\n\tdiagnosisScopeChangedSinceApproval: boolean;\n\tdiagnosisScopeFields: string[];\n\tdiagnosisScopeBlockers: string[];\n\trequiresOperatorApprovalForAnyScopeChange: boolean;\n\tleSixHourScopeCanAutofixAfterApproval: boolean;\n\tonTheFlyScopeChangeApprovalRequired: boolean;\n\trequiredCompletionEvidence: string[];\n\tforbiddenWithoutReapproval: string[];\n\tallowedAutoActions: string[];\n\tblockers: string[];\n\tautopilotApprovalBoundaryValid: boolean;\n}\n\nexport interface ResolveIOSupportProductRepairDispatchGuard {\n\tguard: 'support_autonomy_product_repair_dispatch_guard';\n\tstatus: 'allowed' | 'blocked';\n\tallowed: boolean;\n\taction: ResolveIOSupportV5AutonomousNextAction | string;\n\teditsProductCode: boolean;\n\tcanEditProductCode: boolean;\n\tautoContinueAfterApproval: boolean;\n\tnextAction: string;\n\treason: string;\n\tapprovalContractId: string;\n\tcontinuationContractMode: string;\n\tterminalTarget: string;\n\tnextProofPhases: string[];\n\tallowedAutoActions: string[];\n\tforbiddenActions: string[];\n\townerFiles: string[];\n\tapprovedOwnerFiles: string[];\n\tcurrentOwnerFiles: string[];\n\tscopeFingerprint: string;\n\townerFileFingerprint: string;\n\tapprovedOwnerFileFingerprint: string;\n\townerFilesChangedSinceApproval: boolean;\n\townerFilesAddedSinceApproval: string[];\n\townerFilesRemovedSinceApproval: string[];\n\trequiresOverLimitApproval: boolean;\n\trequiresScopeReapproval: boolean;\n\trequiresOwnerFileReapproval: boolean;\n\trequiresDiagnosisScopeReapproval: boolean;\n\trequiredCompletionEvidence: string[];\n\tblockers: string[];\n}\n\nexport type ResolveIOSupportAutopilotCompletionPhase =\n\t| 'not_required'\n\t| 'approval_required'\n\t| 'diagnosis'\n\t| 'preflight'\n\t| 'repair'\n\t| 'business_proof'\n\t| 'pr_packaging'\n\t| 'pr_review'\n\t| 'park_before_merge_release_customer';\n\nexport type ResolveIOSupportAutopilotCompletionStatus =\n\t| 'not_required'\n\t| 'blocked'\n\t| 'in_progress'\n\t| 'ready_for_pr'\n\t| 'complete';\n\nexport type ResolveIOSupportAutopilotCompletionNextAction =\n\t| ResolveIOSupportV5AutonomousNextAction\n\t| 'approve_support_autonomy'\n\t| 'approve_support_autonomy_over_limit'\n\t| 'create_pr'\n\t| 'run_a_grade_pr_review'\n\t| 'park_before_merge_release_or_customer_send';\n\nexport interface ResolveIOSupportAutopilotCompletionProgress {\n\tcontractId: string;\n\tmode: 'approved_scope_to_a_grade_pr';\n\tstatus: ResolveIOSupportAutopilotCompletionStatus;\n\tactivePhase: ResolveIOSupportAutopilotCompletionPhase;\n\tnextAction: ResolveIOSupportAutopilotCompletionNextAction;\n\tnextCommand: string;\n\treason: string;\n\tapproved: boolean;\n\tapprovalBoundaryValid: boolean;\n\tapprovalContractId: string;\n\ttargetGrade: string;\n\tterminalTarget: string;\n\tbusinessProofReady: boolean;\n\thasScreenshotOrTrace: boolean;\n\tchangedFilesReady: boolean;\n\tprReadinessReady: boolean;\n\tprReviewReady: boolean;\n\tprReviewStatus: string;\n\tprReviewContractId: string;\n\tprReviewStrictGatePassed: boolean;\n\tprReviewStrictGateReason: string;\n\tprReviewExecutionGrade: string;\n\tprReviewArtifactsGrade: string;\n\tprReviewPullRequestGrade: string;\n\tpullRequestUrl: string;\n\tpullRequestStatus: string;\n\tcanContinueWithoutCodexMonitor: boolean;\n\tcanAutoDispatchNext: boolean;\n\trequiresHumanApproval: boolean;\n\tcompletedEvidence: string[];\n\tmissingEvidence: string[];\n\trequiredEvidence: string[];\n\tforbiddenActions: string[];\n\tblockers: string[];\n\tcreatedAt: string;\n}\n\nexport interface ResolveIOSupportV5AutonomousDecision {\n\taction: ResolveIOSupportV5AutonomousNextAction;\n\tlabel: string;\n\treason: string;\n\tcanRunAutonomously: boolean;\n\tcanEditProductCode: boolean;\n\tcanRunModel: boolean;\n\tcanRunQa: boolean;\n\tcanPrepareHotfixPatch: boolean;\n\tcanHotfixBackend: boolean;\n\tliveHotfixBlockedUntilCommit: boolean;\n\tcanDraftCustomerReply: boolean;\n\tcanSendCustomerReply: boolean;\n\tlane: ResolveIOSupportV5Lane | 'release' | 'customer' | 'supervisor';\n\tstepType: ResolveIOSupportV5StepType | 'release_gate' | 'customer_reply';\n\tmicrotaskId?: string;\n\tprimaryCommand: string;\n\tnextCommands: string[];\n\trequiredEvidence: string[];\n\tforbiddenActions: string[];\n\tblockers: string[];\n\townerFiles: string[];\n\tissueClass?: ResolveIOSupportIssueClass;\n\texpectedProof?: string;\n\tissueClassProbes: ResolveIOSupportIssueClassProbe[];\n\tissueClassProbePlan?: ResolveIOSupportIssueClassProbePlan;\n\tissueClassProbePlanValidation: ResolveIOSupportIssueClassProbePlanValidation;\n\tactiveMicrotask?: ResolveIOSupportV5Microtask;\n\tdiagnosisValidation: ResolveIOSupportDiagnosisGateValidation;\n\trepairGate: ResolveIOSupportV5RepairGateDecision;\n\tcontinuation: ResolveIOSupportV5ContinuationDecision;\n\tcustomerReplyPolicy: ResolveIOSupportCustomerReplyPolicy;\n\tcustomerReplyReadiness: ResolveIOSupportCustomerReplyReadinessContract;\n\tbusinessProofReadiness: ResolveIOSupportBusinessProofReadiness;\n\tevidenceFreshness: ResolveIOSupportEvidenceFreshness;\n\tpreflightGate: ResolveIOSupportPreflightGate;\n\trootCauseReadiness: ResolveIOSupportRootCauseReadiness;\n\tcontinuationProofCheckpoint: ResolveIOSupportContinuationProofCheckpoint;\n\tnextActionContract: ResolveIOSupportNextActionContract;\n\tmanagerExecutionPacket: ResolveIOSupportManagerExecutionPacket;\n\thumanReviewPacket: ResolveIOSupportHumanReviewPacket;\n\thumanDecisionRequest?: ResolveIOSupportHumanDecisionRequest;\n\tevidenceProbeContract?: ResolveIOSupportEvidenceProbeContract;\n\tautonomyApproval?: ResolveIOSupportAutonomyApprovalContract;\n\tproductRepairDispatchGuard?: ResolveIOSupportProductRepairDispatchGuard;\n\tautopilotCompletionProgress?: ResolveIOSupportAutopilotCompletionProgress;\n\tautonomyPolicy?: ResolveIOAIManagerAutonomyPolicyDecision;\n\thotfixContinuation?: ResolveIOAIManagerHotfixContinuationDecision;\n\thotfixDurabilityContract?: ResolveIOAIManagerHotfixDurabilityContract;\n\trecordedAt: string;\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 cleanText(value: any, max = 2000): string {\n\tif (value === undefined || value === null) {\n\t\treturn '';\n\t}\n\tif (Array.isArray(value)) {\n\t\treturn value\n\t\t\t.map((entry) => cleanListEntryText(entry, max))\n\t\t\t.filter(Boolean)\n\t\t\t.join(' ')\n\t\t\t.replace(/\\s+/g, ' ')\n\t\t\t.trim()\n\t\t\t.slice(0, max);\n\t}\n\tif (typeof value === 'object') {\n\t\tif (value instanceof Date) {\n\t\t\treturn value.toISOString().slice(0, max);\n\t\t}\n\t\treturn '';\n\t}\n\treturn String(value || '').replace(/\\s+/g, ' ').trim().slice(0, max);\n}\n\nfunction cleanListEntryText(value: any, max = 500): string {\n\tif (value && typeof value === 'object' && !Array.isArray(value)) {\n\t\tconst source = value as Record<string, any>;\n\t\tconst hypothesis = cleanListEntryText(source.hypothesis, Math.floor(max / 2));\n\t\tconst whyRejected = cleanListEntryText(source.why_rejected || source.whyRejected || source.reason_rejected || source.reasonRejected || source.rejection_reason || source.rejectionReason || source.reason, Math.floor(max / 2));\n\t\tif (hypothesis && whyRejected) {\n\t\t\treturn `${hypothesis} rejected because ${whyRejected}`.slice(0, max);\n\t\t}\n\t\tfor (const field of [\n\t\t\t'path',\n\t\t\t'file',\n\t\t\t'filePath',\n\t\t\t'file_path',\n\t\t\t'ownerFile',\n\t\t\t'owner_file',\n\t\t\t'targetFile',\n\t\t\t'target_file',\n\t\t\t'sourceFile',\n\t\t\t'source_file',\n\t\t\t'artifactPath',\n\t\t\t'artifact_path',\n\t\t\t'request_classification',\n\t\t\t'requestClassification',\n\t\t\t'classification_rationale',\n\t\t\t'classificationRationale',\n\t\t\t'behavior_type',\n\t\t\t'behaviorType',\n\t\t\t'summary',\n\t\t\t'detail',\n\t\t\t'message',\n\t\t\t'description',\n\t\t\t'rationale',\n\t\t\t'proof_required',\n\t\t\t'proofRequired',\n\t\t\t'reported',\n\t\t\t'verified',\n\t\t\t'reported_path',\n\t\t\t'reportedPath',\n\t\t\t'verified_path',\n\t\t\t'verifiedPath',\n\t\t\t'rejection_reason',\n\t\t\t'rejectionReason',\n\t\t\t'reason',\n\t\t\t'fact',\n\t\t\t'value',\n\t\t\t'label',\n\t\t\t'id'\n\t\t]) {\n\t\t\tconst candidate = cleanListEntryText(source[field], max);\n\t\t\tif (candidate) {\n\t\t\t\treturn candidate;\n\t\t\t}\n\t\t}\n\t\treturn '';\n\t}\n\treturn cleanText(value, max);\n}\n\nfunction cleanList(values: any, limit = 20, 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 = cleanListEntryText(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 cleanObject(value: any): Record<string, any> {\n\treturn value && typeof value === 'object' && !Array.isArray(value) ? value : {};\n}\n\nfunction cleanNumber(value: any): number | undefined {\n\tconst parsed = Number(value);\n\treturn Number.isFinite(parsed) ? parsed : undefined;\n}\n\nfunction supportApprovalExplicitlyApprovesOverLimit(value: Record<string, any>): boolean {\n\treturn value.approve_over_max_hours === true\n\t\t|| value.approveOverMaxHours === true\n\t\t|| value.approve_over_six_hours === true\n\t\t|| value.approveOverSixHours === true\n\t\t|| value.over_limit_approved === true\n\t\t|| value.overLimitApproved === true\n\t\t|| value.over_max_auto_hours_approved === true\n\t\t|| value.overMaxAutoHoursApproved === true\n\t\t|| value.operator_approved_over_limit === true\n\t\t|| value.operatorApprovedOverLimit === true;\n}\n\nfunction normalizeResolveIOSupportAutonomyApprovalContract(\n\tvalue: any,\n\toptions: {\n\t\trequired?: boolean;\n\t\taction?: ResolveIOSupportV5AutonomousNextAction | string;\n\t\townerFiles?: any;\n\t\tnow?: Date | string;\n\t} = {}\n): ResolveIOSupportAutonomyApprovalContract | undefined {\n\tconst source = cleanObject(value);\n\tconst required = options.required === true;\n\tif (!Object.keys(source).length && !required) {\n\t\treturn undefined;\n\t}\n\tconst ownerFiles = cleanList(source.owner_files || source.ownerFiles || options.ownerFiles, 80, 500)\n\t\t.map(normalizeOwnerFilePath)\n\t\t.filter(Boolean);\n\tconst approvedOwnerFiles = cleanList(source.approved_owner_files || source.approvedOwnerFiles || ownerFiles, 80, 500)\n\t\t.map(normalizeOwnerFilePath)\n\t\t.filter(Boolean);\n\tconst currentOwnerFiles = cleanList(source.current_owner_files || source.currentOwnerFiles || ownerFiles, 80, 500)\n\t\t.map(normalizeOwnerFilePath)\n\t\t.filter(Boolean);\n\tconst ownerFileFingerprint = cleanText(\n\t\tsource.owner_file_fingerprint\n\t\t|| source.ownerFileFingerprint\n\t\t|| (currentOwnerFiles.length ? hashResolveIOSupportV5Evidence({ ownerFiles: currentOwnerFiles.slice().sort() }).slice(0, 18) : ''),\n\t\t180\n\t);\n\tconst approvedOwnerFileFingerprint = cleanText(\n\t\tsource.approved_owner_file_fingerprint\n\t\t|| source.approvedOwnerFileFingerprint\n\t\t|| (approvedOwnerFiles.length ? hashResolveIOSupportV5Evidence({ ownerFiles: approvedOwnerFiles.slice().sort() }).slice(0, 18) : ''),\n\t\t180\n\t);\n\tconst currentOwnerFileSet = new Set(currentOwnerFiles);\n\tconst approvedOwnerFileSet = new Set(approvedOwnerFiles);\n\tconst ownerFilesAddedSinceApproval = cleanList(source.owner_files_added_since_approval || source.ownerFilesAddedSinceApproval, 80, 500)\n\t\t.map(normalizeOwnerFilePath)\n\t\t.filter(Boolean);\n\tconst ownerFilesRemovedSinceApproval = cleanList(source.owner_files_removed_since_approval || source.ownerFilesRemovedSinceApproval, 80, 500)\n\t\t.map(normalizeOwnerFilePath)\n\t\t.filter(Boolean);\n\tconst computedOwnerFilesAdded = currentOwnerFiles.filter((entry) => !approvedOwnerFileSet.has(entry));\n\tconst computedOwnerFilesRemoved = approvedOwnerFiles.filter((entry) => !currentOwnerFileSet.has(entry));\n\tconst ownerFilesChangedSinceApproval = source.owner_files_changed_since_approval === true\n\t\t|| source.ownerFilesChangedSinceApproval === true\n\t\t|| computedOwnerFilesAdded.length > 0\n\t\t|| computedOwnerFilesRemoved.length > 0\n\t\t|| (!!ownerFileFingerprint && !!approvedOwnerFileFingerprint && ownerFileFingerprint !== approvedOwnerFileFingerprint);\n\tconst scopeFingerprint = cleanText(source.scope_fingerprint || source.scopeFingerprint, 180);\n\tconst previousScopeFingerprint = cleanText(source.previous_scope_fingerprint || source.previousScopeFingerprint, 180);\n\tconst diagnosisScopeFingerprint = cleanText(source.diagnosis_scope_fingerprint || source.diagnosisScopeFingerprint, 180);\n\tconst previousDiagnosisScopeFingerprint = cleanText(source.previous_diagnosis_scope_fingerprint || source.previousDiagnosisScopeFingerprint, 180);\n\tconst diagnosisScopeChangedSinceApproval = source.diagnosis_scope_changed_since_approval === true\n\t\t|| source.diagnosisScopeChangedSinceApproval === true\n\t\t|| (!!diagnosisScopeFingerprint && !!previousDiagnosisScopeFingerprint && diagnosisScopeFingerprint !== previousDiagnosisScopeFingerprint);\n\tconst aggregateScopeFingerprintChanged = source.scope_changed_since_approval === true\n\t\t|| source.scopeChangedSinceApproval === true\n\t\t|| (!!scopeFingerprint && !!previousScopeFingerprint && scopeFingerprint !== previousScopeFingerprint);\n\tconst explicitScopeReapprovalRequired = source.requires_scope_reapproval === true || source.requiresScopeReapproval === true;\n\tconst intakeChangedSinceApproval = source.intake_edited_after_approval === true || source.intakeEditedAfterApproval === true;\n\tconst scopeChangedSinceApproval = explicitScopeReapprovalRequired\n\t\t|| (aggregateScopeFingerprintChanged && (ownerFilesChangedSinceApproval || diagnosisScopeChangedSinceApproval || intakeChangedSinceApproval));\n\tconst onTheFlyScopeChangeApprovalRequired = source.on_the_fly_scope_change_approval_required === true\n\t\t|| source.onTheFlyScopeChangeApprovalRequired === true\n\t\t|| scopeChangedSinceApproval\n\t\t|| ownerFilesChangedSinceApproval\n\t\t|| diagnosisScopeChangedSinceApproval;\n\tconst estimatedHours = cleanNumber(source.estimated_hours ?? source.estimatedHours);\n\tconst maxAutoHoursWithoutApproval = cleanNumber(source.max_auto_hours_without_approval ?? source.maxAutoHoursWithoutApproval) || 6;\n\tconst overMaxAutoHours = source.over_max_auto_hours === true\n\t\t|| source.overMaxAutoHours === true\n\t\t|| (estimatedHours !== undefined && estimatedHours > maxAutoHoursWithoutApproval);\n\tconst explicitOverLimitApproval = supportApprovalExplicitlyApprovesOverLimit(source);\n\tconst bugNotBug = cleanText(source.bug_not_bug || source.bugNotBug, 80);\n\tconst bugNotBugKnown = source.bug_not_bug_known === true\n\t\t|| source.bugNotBugKnown === true\n\t\t|| bugNotBug === 'bug'\n\t\t|| bugNotBug === 'not_bug'\n\t\t|| bugNotBug === 'not bug';\n\tconst bugNotBugClassificationApproved = source.bug_not_bug_classification_approved === true\n\t\t|| source.bugNotBugClassificationApproved === true;\n\tconst afterApprovalAutopilotUntilAGrade = source.after_approval_autopilot_until_a_grade === true\n\t\t|| source.afterApprovalAutopilotUntilAGrade === true\n\t\t|| source.autopilot_after_approval_until_a_grade === true\n\t\t|| source.autopilotAfterApprovalUntilAGrade === true;\n\tconst completionContract = cleanObject(source.autopilot_completion_contract || source.autopilotCompletionContract);\n\tconst approved = source.approved === true;\n\tconst blockers = Array.from(new Set([\n\t\t...cleanList(source.blockers, 40, 500),\n\t\t...(!Object.keys(source).length && required ? ['Support autonomy approval is required before product-code repair.'] : []),\n\t\t...(source.requires_over_limit_approval === true || source.requiresOverLimitApproval === true ? ['Estimated work is over the automatic hour ceiling and requires operator approval.'] : []),\n\t\t...(explicitScopeReapprovalRequired || scopeChangedSinceApproval ? ['The approved support scope changed and requires on-the-fly reapproval.'] : []),\n\t\t...(source.requires_owner_file_reapproval === true || source.requiresOwnerFileReapproval === true || ownerFilesChangedSinceApproval ? ['The owner-file set changed after approval and requires reapproval.'] : []),\n\t\t...(source.requires_intake_reapproval === true || source.requiresIntakeReapproval === true ? ['The support intake/classification changed after approval and requires reapproval.'] : []),\n\t\t...(source.requires_diagnosis_scope_reapproval === true || source.requiresDiagnosisScopeReapproval === true || diagnosisScopeChangedSinceApproval ? ['The accepted diagnosis/proof scope changed after approval and requires reapproval.'] : []),\n\t\t...(source.requires_classification_approval === true || source.requiresClassificationApproval === true ? ['Bug/not-bug classification must be approved before product-code repair.'] : []),\n\t\t...(source.requires_estimate_hours === true || source.requiresEstimateHours === true ? ['Estimated hours must be recorded before product-code repair.'] : []),\n\t\t...(approved && bugNotBugKnown !== true ? ['Bug/not-bug classification must be set before approved support autopilot can repair product code.'] : []),\n\t\t...(approved && bugNotBugClassificationApproved !== true ? ['Bug/not-bug classification must be approved before approved support autopilot can repair product code.'] : []),\n\t\t...(approved && estimatedHours === undefined ? ['Estimated hours must be recorded before approved support autopilot can repair product code.'] : []),\n\t\t...(approved && overMaxAutoHours && explicitOverLimitApproval !== true ? [`Estimated work is ${estimatedHours} hours, above the ${maxAutoHoursWithoutApproval}-hour autonomy ceiling, and needs explicit over-limit operator approval.`] : [])\n\t])).slice(0, 40);\n\tconst status: ResolveIOSupportAutonomyApprovalContract['status'] = approved && blockers.length === 0\n\t\t? 'approved_autopilot'\n\t\t: Object.keys(source).length ? 'approval_required' : 'missing';\n\tconst decisionKind = cleanText(source.decision_kind || source.decisionKind || source.approval_kind || source.approvalKind, 120)\n\t\t|| (status === 'approved_autopilot'\n\t\t\t? 'approved_autopilot'\n\t\t\t: overMaxAutoHours && explicitOverLimitApproval !== true\n\t\t\t\t? 'over_limit_approval_required'\n\t\t\t\t: bugNotBugClassificationApproved !== true\n\t\t\t\t\t? 'classification_approval_required'\n\t\t\t\t\t: 'operator_approval_required');\n\tconst approvalAction = cleanText(source.approval_action || source.approvalAction, 120)\n\t\t|| (decisionKind === 'over_limit_approval_required' ? 'approve_support_autonomy_over_limit' : 'approve_support_autonomy');\n\treturn {\n\t\tcontractId: cleanText(source.contract_id || source.contractId, 180)\n\t\t\t|| stableIdFromText('support-autonomy-approval', [\n\t\t\t\tdecisionKind,\n\t\t\t\townerFiles.join('|'),\n\t\t\t\tString(estimatedHours ?? ''),\n\t\t\t\tisoNow(options.now).slice(0, 16)\n\t\t\t].join('\\n')),\n\t\tstatus,\n\t\tapproved: status === 'approved_autopilot',\n\t\tapprovedAt: cleanText(source.approved_at || source.approvedAt, 80) || undefined,\n\t\tapprovedBy: cleanText(source.approved_by || source.approvedBy, 160) || undefined,\n\t\tdecisionKind,\n\t\tapprovalAction,\n\t\tpreferredChoiceId: cleanText(source.preferred_choice_id || source.preferredChoiceId, 120)\n\t\t\t|| (approvalAction === 'approve_support_autonomy_over_limit' ? 'approve_over_limit_autonomy' : 'approve_auto_fix_le_6h_bug'),\n\t\tcanApproveFromConsole: source.can_approve_from_console !== false && source.canApproveFromConsole !== false,\n\t\testimatedHours,\n\t\testimatedHoursKnown: estimatedHours !== undefined || source.estimated_hours_known === true || source.estimatedHoursKnown === true,\n\t\tmaxAutoHoursWithoutApproval,\n\t\toverMaxAutoHours,\n\t\texplicitOverLimitApproval,\n\t\tbugNotBug,\n\t\tbugNotBugKnown,\n\t\tbugNotBugClassificationApproved,\n\t\trequiresOverLimitApproval: source.requires_over_limit_approval === true || source.requiresOverLimitApproval === true || (overMaxAutoHours && explicitOverLimitApproval !== true),\n\t\trequiresScopeReapproval: explicitScopeReapprovalRequired || scopeChangedSinceApproval,\n\t\trequiresOwnerFileReapproval: source.requires_owner_file_reapproval === true || source.requiresOwnerFileReapproval === true || ownerFilesChangedSinceApproval,\n\t\trequiresIntakeReapproval: source.requires_intake_reapproval === true || source.requiresIntakeReapproval === true,\n\t\trequiresDiagnosisScopeReapproval: source.requires_diagnosis_scope_reapproval === true || source.requiresDiagnosisScopeReapproval === true || diagnosisScopeChangedSinceApproval,\n\t\trequiresClassificationApproval: source.requires_classification_approval === true || source.requiresClassificationApproval === true || bugNotBugClassificationApproved !== true,\n\t\trequiresEstimateHours: source.requires_estimate_hours === true || source.requiresEstimateHours === true || estimatedHours === undefined,\n\t\tchangeApprovalMode: cleanText(source.change_approval_mode || source.changeApprovalMode, 120) || 'on_the_fly_reapproval_required',\n\t\tafterApprovalAutopilotUntilAGrade,\n\t\ttargetGrade: cleanText(source.target_grade || source.targetGrade || completionContract.target_grade || completionContract.targetGrade || 'A', 20),\n\t\tterminalTarget: cleanText(\n\t\t\tsource.terminal_target\n\t\t\t|| source.terminalTarget\n\t\t\t|| completionContract.required_terminal_state\n\t\t\t|| completionContract.requiredTerminalState,\n\t\t\t800\n\t\t) || 'A-grade PR with QA screenshots, AIQaBusinessAssertion before/action/after proof, source commit proof, and changed files inside owner_files',\n\t\tqaScreenshotsRequired: source.qa_screenshots_required === true || source.qaScreenshotsRequired === true,\n\t\tbeforeActionAfterBusinessProofRequired: source.before_action_after_business_proof_required === true || source.beforeActionAfterBusinessProofRequired === true,\n\t\taiqaBusinessAssertionRequired: source.aiqa_business_assertion_required === true || source.aiqaBusinessAssertionRequired === true,\n\t\townerFiles,\n\t\tapprovedOwnerFiles,\n\t\tcurrentOwnerFiles,\n\t\tscopeFingerprint,\n\t\tpreviousScopeFingerprint,\n\t\tscopeChangedSinceApproval,\n\t\townerFileFingerprint,\n\t\tapprovedOwnerFileFingerprint,\n\t\townerFilesChangedSinceApproval,\n\t\townerFilesAddedSinceApproval: ownerFilesAddedSinceApproval.length ? ownerFilesAddedSinceApproval : computedOwnerFilesAdded,\n\t\townerFilesRemovedSinceApproval: ownerFilesRemovedSinceApproval.length ? ownerFilesRemovedSinceApproval : computedOwnerFilesRemoved,\n\t\tdiagnosisScopeFingerprint,\n\t\tpreviousDiagnosisScopeFingerprint,\n\t\tdiagnosisScopeIncluded: source.diagnosis_scope_included === true || source.diagnosisScopeIncluded === true || !!diagnosisScopeFingerprint,\n\t\tdiagnosisScopeValid: source.diagnosis_scope_valid === true || source.diagnosisScopeValid === true,\n\t\tdiagnosisScopeChangedSinceApproval,\n\t\tdiagnosisScopeFields: cleanList(source.diagnosis_scope_fields || source.diagnosisScopeFields, 40, 160),\n\t\tdiagnosisScopeBlockers: cleanList(source.diagnosis_scope_blockers || source.diagnosisScopeBlockers, 40, 500),\n\t\trequiresOperatorApprovalForAnyScopeChange: source.requires_operator_approval_for_any_scope_change !== false && source.requiresOperatorApprovalForAnyScopeChange !== false,\n\t\tleSixHourScopeCanAutofixAfterApproval: source.le_six_hour_scope_can_autofix_after_approval === true\n\t\t\t|| source.leSixHourScopeCanAutofixAfterApproval === true\n\t\t\t|| (status === 'approved_autopilot' && estimatedHours !== undefined && estimatedHours <= maxAutoHoursWithoutApproval),\n\t\tonTheFlyScopeChangeApprovalRequired,\n\t\trequiredCompletionEvidence: cleanList(source.required_completion_evidence || source.requiredCompletionEvidence || completionContract.required_evidence || completionContract.requiredEvidence, 40, 500),\n\t\tforbiddenWithoutReapproval: cleanList(source.forbidden_without_reapproval || source.forbiddenWithoutReapproval, 40, 500),\n\t\tallowedAutoActions: cleanList(source.allowed_auto_actions || source.allowedAutoActions, 40, 240),\n\t\tblockers,\n\t\tautopilotApprovalBoundaryValid: status === 'approved_autopilot'\n\t};\n}\n\nfunction buildResolveIOSupportProductRepairDispatchGuard(input: {\n\taction: ResolveIOSupportV5AutonomousNextAction | string;\n\tapproval?: ResolveIOSupportAutonomyApprovalContract;\n\teditsProductCode: boolean;\n\townerFiles?: any;\n\tnow?: Date | string;\n}): ResolveIOSupportProductRepairDispatchGuard | undefined {\n\tif (!input.approval && !input.editsProductCode) {\n\t\treturn undefined;\n\t}\n\tconst ownerFiles = cleanList(input.ownerFiles || input.approval?.ownerFiles, 80, 500)\n\t\t.map(normalizeOwnerFilePath)\n\t\t.filter(Boolean);\n\tconst approval = input.approval;\n\tconst allowed = input.editsProductCode ? approval?.autopilotApprovalBoundaryValid === true : true;\n\tconst nextAction = allowed\n\t\t? (input.editsProductCode ? 'run_targeted_product_repair' : 'continue_non_product_action')\n\t\t: approval?.approvalAction || 'approve_support_autonomy';\n\tconst terminalTarget = approval?.terminalTarget\n\t\t|| 'A-grade PR with QA screenshots, AIQaBusinessAssertion before/action/after proof, source commit proof, and changed files inside owner_files';\n\tconst requiredCompletionEvidence = approval?.requiredCompletionEvidence?.length\n\t\t? approval.requiredCompletionEvidence\n\t\t: [\n\t\t\t'A-grade execution/artifacts/pull_request review',\n\t\t\t'GitHub PR URL',\n\t\t\t'QA screenshots with captions',\n\t\t\t'AIQaBusinessAssertion before/action/after business proof',\n\t\t\t'changed files subset of approved owner_files'\n\t\t];\n\treturn {\n\t\tguard: 'support_autonomy_product_repair_dispatch_guard',\n\t\tstatus: allowed ? 'allowed' : 'blocked',\n\t\tallowed,\n\t\taction: input.action,\n\t\teditsProductCode: input.editsProductCode,\n\t\tcanEditProductCode: allowed && input.editsProductCode,\n\t\tautoContinueAfterApproval: allowed && input.editsProductCode,\n\t\tnextAction,\n\t\treason: allowed\n\t\t\t? 'Approved bounded support autonomy allows this product-code repair inside the current owner-file and diagnosis scope.'\n\t\t\t: approval?.blockers.join(' | ') || 'Support autonomy approval is required before product-code repair.',\n\t\tapprovalContractId: approval?.contractId || '',\n\t\tcontinuationContractMode: 'approved_scope_to_a_grade_pr',\n\t\tterminalTarget,\n\t\tnextProofPhases: [\n\t\t\t'confirm_support_diagnosis_gate',\n\t\t\t'run_owner_scoped_repair',\n\t\t\t'run_compile_preflight',\n\t\t\t'run_business_proof_qa_with_screenshots',\n\t\t\t'create_or_update_pr',\n\t\t\t'run_a_grade_review',\n\t\t\t'park_before_merge_release_or_customer_send'\n\t\t],\n\t\tallowedAutoActions: [\n\t\t\t'run_read_only_diagnosis',\n\t\t\t'run_owner_scoped_repair',\n\t\t\t'run_compile_preflight',\n\t\t\t'run_business_proof_qa',\n\t\t\t'create_or_update_pr',\n\t\t\t'auto_improve_until_a_grade'\n\t\t],\n\t\tforbiddenActions: approval?.forbiddenWithoutReapproval?.length ? approval.forbiddenWithoutReapproval : [\n\t\t\t'estimated_hours greater than max_auto_hours_without_approval',\n\t\t\t'bug/not-bug classification change',\n\t\t\t'owner_files expansion or edit outside SupportDiagnosisGate owner_files',\n\t\t\t'accepted_hypothesis, failing_path, issue_case, or proof_plan change',\n\t\t\t'customer success reply, merge, release, or deploy before AIQaBusinessAssertion proof'\n\t\t],\n\t\townerFiles,\n\t\tapprovedOwnerFiles: approval?.approvedOwnerFiles?.length ? approval.approvedOwnerFiles : ownerFiles,\n\t\tcurrentOwnerFiles: approval?.currentOwnerFiles?.length ? approval.currentOwnerFiles : ownerFiles,\n\t\tscopeFingerprint: approval?.scopeFingerprint || '',\n\t\townerFileFingerprint: approval?.ownerFileFingerprint || '',\n\t\tapprovedOwnerFileFingerprint: approval?.approvedOwnerFileFingerprint || '',\n\t\townerFilesChangedSinceApproval: approval?.ownerFilesChangedSinceApproval === true,\n\t\townerFilesAddedSinceApproval: approval?.ownerFilesAddedSinceApproval || [],\n\t\townerFilesRemovedSinceApproval: approval?.ownerFilesRemovedSinceApproval || [],\n\t\trequiresOverLimitApproval: approval?.requiresOverLimitApproval === true,\n\t\trequiresScopeReapproval: approval?.requiresScopeReapproval === true,\n\t\trequiresOwnerFileReapproval: approval?.requiresOwnerFileReapproval === true,\n\t\trequiresDiagnosisScopeReapproval: approval?.requiresDiagnosisScopeReapproval === true,\n\t\trequiredCompletionEvidence,\n\t\tblockers: approval?.blockers || []\n\t};\n}\n\nfunction supportAutopilotArtifactListHasScreenshotOrTrace(values: any): boolean {\n\treturn cleanList(values, 80, 500).some((entry) => {\n\t\tconst text = entry.toLowerCase();\n\t\treturn /screenshot|trace|video|har|browser-artifact|qa-artifact/.test(text)\n\t\t\t|| /\\.(png|jpe?g|webp|gif|zip|trace|har|webm|mp4)(\\?|#|$)/i.test(entry);\n\t});\n}\n\nfunction supportAutopilotGradeMeetsA(value: any): boolean {\n\treturn /^(A\\+|A|A-)$/i.test(cleanText(value, 20));\n}\n\nfunction normalizeSupportAutopilotPrReviewContract(value: any): {\n\tcontractId: string;\n\tstatus: string;\n\tready: boolean;\n\tstrictGatePassed: boolean;\n\tstrictGateReason: string;\n\texecutionGrade: string;\n\tartifactsGrade: string;\n\tpullRequestGrade: string;\n\tevidenceRefs: string[];\n\tblockers: string[];\n\tnextAction: string;\n\tfailureClass: string;\n\tblockerFingerprint: string;\n\tevidenceHash: string;\n\tcontinuationContract: Record<string, any>;\n} {\n\tconst contract = cleanObject(value);\n\tconst grades = cleanObject(contract.grades);\n\tconst executionGrade = cleanText(\n\t\tcontract.execution_grade\n\t\t|| contract.executionGrade\n\t\t|| grades.execution\n\t\t|| grades.execution_grade\n\t\t|| grades.executionGrade,\n\t\t20\n\t).toUpperCase();\n\tconst artifactsGrade = cleanText(\n\t\tcontract.artifacts_grade\n\t\t|| contract.artifactsGrade\n\t\t|| grades.artifacts\n\t\t|| grades.artifacts_grade\n\t\t|| grades.artifactsGrade,\n\t\t20\n\t).toUpperCase();\n\tconst pullRequestGrade = cleanText(\n\t\tcontract.pull_request_grade\n\t\t|| contract.pullRequestGrade\n\t\t|| grades.pull_request\n\t\t|| grades.pullRequest\n\t\t|| grades.pr\n\t\t|| grades.pr_grade,\n\t\t20\n\t).toUpperCase();\n\tconst strictGatePassed = contract.strict_gate_passed === true\n\t\t|| contract.strictGatePassed === true\n\t\t|| contract.passes_strict_gate === true\n\t\t|| contract.passesStrictGate === true;\n\tconst ready = contract.ready === true\n\t\t|| strictGatePassed === true\n\t\t|| (\n\t\t\tsupportAutopilotGradeMeetsA(executionGrade)\n\t\t\t&& supportAutopilotGradeMeetsA(artifactsGrade)\n\t\t\t&& supportAutopilotGradeMeetsA(pullRequestGrade)\n\t\t\t&& cleanText(contract.status, 120).toLowerCase() === 'passed'\n\t\t);\n\tconst status = cleanText(contract.status, 120)\n\t\t|| (ready ? 'passed' : Object.keys(contract).length ? 'blocked' : 'missing');\n\treturn {\n\t\tcontractId: cleanText(contract.contract_id || contract.contractId, 180),\n\t\tstatus,\n\t\tready,\n\t\tstrictGatePassed: ready && strictGatePassed !== false,\n\t\tstrictGateReason: cleanText(contract.strict_gate_reason || contract.strictGateReason || contract.reason, 500),\n\t\texecutionGrade,\n\t\tartifactsGrade,\n\t\tpullRequestGrade,\n\t\tevidenceRefs: cleanList(contract.evidence_refs || contract.evidenceRefs || contract.artifacts || contract.artifact_paths || contract.artifactPaths, 80, 500),\n\t\tblockers: cleanList(contract.blockers, 40, 500),\n\t\tnextAction: cleanText(contract.next_action || contract.nextAction || contract.continuation_contract?.action || contract.continuationContract?.action, 160),\n\t\tfailureClass: cleanText(contract.failure_class || contract.failureClass || contract.continuation_contract?.failure_class || contract.continuationContract?.failureClass, 120),\n\t\tblockerFingerprint: cleanText(contract.blocker_fingerprint || contract.blockerFingerprint || contract.continuation_contract?.blocker_fingerprint || contract.continuationContract?.blockerFingerprint, 180),\n\t\tevidenceHash: cleanText(contract.evidence_hash || contract.evidenceHash || contract.continuation_contract?.evidence_hash || contract.continuationContract?.evidenceHash, 180),\n\t\tcontinuationContract: cleanObject(contract.continuation_contract || contract.continuationContract)\n\t};\n}\n\nfunction buildResolveIOSupportAutopilotCompletionProgress(input: {\n\tapproval?: ResolveIOSupportAutonomyApprovalContract;\n\tproductRepairDispatchGuard?: ResolveIOSupportProductRepairDispatchGuard;\n\taction: ResolveIOSupportV5AutonomousNextAction;\n\tdiagnosisValid: boolean;\n\tpreflightGate: ResolveIOSupportPreflightGate;\n\tbusinessProofReadiness: ResolveIOSupportBusinessProofReadiness;\n\tbusinessProofArtifacts?: any;\n\tchangedFiles?: any;\n\tprReadinessContract?: any;\n\tprReviewContract?: any;\n\tnow?: Date | string;\n}): ResolveIOSupportAutopilotCompletionProgress | undefined {\n\tconst approval = input.approval;\n\tconst prReadinessContract = cleanObject(input.prReadinessContract);\n\tconst hasApprovalSource = !!approval || Object.keys(prReadinessContract).length > 0;\n\tif (!hasApprovalSource) {\n\t\treturn undefined;\n\t}\n\tconst createdAt = isoNow(input.now);\n\tconst prStatus = cleanText(prReadinessContract.status, 120).toLowerCase();\n\tconst prReady = prReadinessContract.ready === true || prStatus === 'ready';\n\tconst prReview = normalizeSupportAutopilotPrReviewContract(input.prReviewContract);\n\tconst prReviewReady = prReview.ready === true;\n\tconst pullRequestUrl = cleanText(\n\t\tprReadinessContract.pull_request_url\n\t\t|| prReadinessContract.pullRequestUrl,\n\t\t500\n\t);\n\tconst pullRequestStatus = cleanText(\n\t\tprReadinessContract.pull_request_status\n\t\t|| prReadinessContract.pullRequestStatus,\n\t\t120\n\t);\n\tconst businessProofArtifacts = cleanList([\n\t\t...cleanList(input.businessProofArtifacts, 80, 500),\n\t\t...cleanList(input.businessProofReadiness.artifactPaths, 80, 500),\n\t\t...cleanList(prReadinessContract.business_proof_artifacts || prReadinessContract.businessProofArtifacts, 80, 500)\n\t], 120, 500);\n\tconst changedFiles = cleanList([\n\t\t...cleanList(input.changedFiles, 80, 500),\n\t\t...cleanList(prReadinessContract.modified_files || prReadinessContract.modifiedFiles, 80, 500)\n\t], 120, 500).map(normalizeOwnerFilePath).filter(Boolean);\n\tconst businessProofReady = input.businessProofReadiness.ready === true\n\t\t|| prReadinessContract.business_proof_ready === true\n\t\t|| prReadinessContract.businessProofReady === true;\n\tconst hasScreenshotOrTrace = supportAutopilotArtifactListHasScreenshotOrTrace(businessProofArtifacts);\n\tconst changedFilesReady = changedFiles.length > 0;\n\tconst approvalBoundaryValid = approval?.autopilotApprovalBoundaryValid === true;\n\tconst approvalApproved = approval?.approved === true;\n\tconst targetGrade = approval?.targetGrade || cleanText(prReadinessContract.target_grade || prReadinessContract.targetGrade || 'A', 20) || 'A';\n\tconst terminalTarget = approval?.terminalTarget\n\t\t|| 'A-grade PR with QA screenshots, AIQaBusinessAssertion before/action/after proof, source commit proof, and changed files inside owner_files';\n\tconst requiredEvidence = Array.from(new Set([\n\t\t...(approval?.requiredCompletionEvidence || []),\n\t\t'SupportDiagnosisGate passed',\n\t\t'owner-scoped changed files',\n\t\t'AIQaBusinessAssertion before/action/after business proof',\n\t\t'QA screenshot or trace artifact',\n\t\t'A-grade PR URL',\n\t\t'A-grade execution/artifacts/pull_request review'\n\t])).slice(0, 24);\n\tconst completedEvidence = Array.from(new Set([\n\t\tinput.diagnosisValid ? 'SupportDiagnosisGate passed' : '',\n\t\tchangedFilesReady ? 'changed files recorded' : '',\n\t\tbusinessProofReady ? 'AIQaBusinessAssertion business proof ready' : '',\n\t\thasScreenshotOrTrace ? 'QA screenshot or trace artifact recorded' : '',\n\t\tprReady ? 'PR readiness contract ready' : '',\n\t\tpullRequestUrl ? `pull_request_url=${pullRequestUrl}` : '',\n\t\tprReviewReady ? `A-grade PR review passed execution=${prReview.executionGrade || '-'} artifacts=${prReview.artifactsGrade || '-'} pull_request=${prReview.pullRequestGrade || '-'}` : '',\n\t\t...prReview.evidenceRefs\n\t].filter(Boolean))).slice(0, 24);\n\tconst missingEvidence = Array.from(new Set([\n\t\t!approvalApproved ? 'approved support autonomy contract' : '',\n\t\tapprovalApproved && !approvalBoundaryValid ? 'valid autonomy approval boundary' : '',\n\t\t!input.diagnosisValid ? 'SupportDiagnosisGate passed' : '',\n\t\tinput.preflightGate.blocksProductRepair ? 'passing support preflight/compile gate' : '',\n\t\t!changedFilesReady ? 'owner-scoped changed-file evidence' : '',\n\t\t!businessProofReady ? 'AIQaBusinessAssertion before/action/after business proof' : '',\n\t\tapproval?.qaScreenshotsRequired !== false && !hasScreenshotOrTrace ? 'QA screenshot or trace artifact' : '',\n\t\tbusinessProofReady && !prReady ? 'PR readiness contract' : '',\n\t\tbusinessProofReady && prReady && !pullRequestUrl ? 'A-grade PR URL' : '',\n\t\tbusinessProofReady && prReady && !!pullRequestUrl && !prReviewReady ? 'A-grade execution/artifacts/pull_request review' : ''\n\t].filter(Boolean))).slice(0, 24);\n\tlet activePhase: ResolveIOSupportAutopilotCompletionPhase = 'not_required';\n\tlet nextAction: ResolveIOSupportAutopilotCompletionNextAction = 'park_manual';\n\tlet status: ResolveIOSupportAutopilotCompletionStatus = 'not_required';\n\tif (!approvalApproved || !approvalBoundaryValid) {\n\t\tactivePhase = 'approval_required';\n\t\tnextAction = approval?.approvalAction === 'approve_support_autonomy_over_limit'\n\t\t\t? 'approve_support_autonomy_over_limit'\n\t\t\t: 'approve_support_autonomy';\n\t\tstatus = 'blocked';\n\t}\n\telse if (!input.diagnosisValid) {\n\t\tactivePhase = 'diagnosis';\n\t\tnextAction = 'run_diagnosis_gate';\n\t\tstatus = 'in_progress';\n\t}\n\telse if (input.preflightGate.blocksProductRepair) {\n\t\tactivePhase = 'preflight';\n\t\tnextAction = 'repair_infra_only';\n\t\tstatus = 'in_progress';\n\t}\n\telse if (!changedFilesReady) {\n\t\tactivePhase = 'repair';\n\t\tnextAction = 'run_owner_scoped_repair';\n\t\tstatus = 'in_progress';\n\t}\n\telse if (!businessProofReady || !hasScreenshotOrTrace) {\n\t\tactivePhase = 'business_proof';\n\t\tnextAction = 'run_business_proof_qa';\n\t\tstatus = 'in_progress';\n\t}\n\telse if (!prReady || !pullRequestUrl) {\n\t\tactivePhase = 'pr_packaging';\n\t\tnextAction = 'create_pr';\n\t\tstatus = 'ready_for_pr';\n\t}\n\telse if (!prReviewReady) {\n\t\tactivePhase = 'pr_review';\n\t\tnextAction = 'run_a_grade_pr_review';\n\t\tstatus = 'in_progress';\n\t}\n\telse {\n\t\tactivePhase = 'park_before_merge_release_customer';\n\t\tnextAction = 'park_before_merge_release_or_customer_send';\n\t\tstatus = 'complete';\n\t}\n\tconst requiresHumanApproval = activePhase === 'approval_required'\n\t\t|| activePhase === 'park_before_merge_release_customer';\n\t\tconst canAutoDispatchNext = status !== 'blocked'\n\t\t\t&& status !== 'complete'\n\t\t\t&& requiresHumanApproval !== true\n\t\t\t&& nextAction !== 'approve_support_autonomy'\n\t\t\t&& nextAction !== 'approve_support_autonomy_over_limit';\n\treturn {\n\t\tcontractId: `support-autopilot-completion-${hashResolveIOSupportV5Evidence({\n\t\t\tapprovalContractId: approval?.contractId || '',\n\t\t\tactivePhase,\n\t\t\tnextAction,\n\t\t\tbusinessProofReady,\n\t\t\tpullRequestUrl,\n\t\t\tprReviewReady,\n\t\t\tprReviewStatus: prReview.status,\n\t\t\tprReviewStrictGateReason: prReview.strictGateReason,\n\t\t\tprReviewExecutionGrade: prReview.executionGrade,\n\t\t\tprReviewArtifactsGrade: prReview.artifactsGrade,\n\t\t\tprReviewPullRequestGrade: prReview.pullRequestGrade,\n\t\t\tcreatedAt: createdAt.slice(0, 16)\n\t\t}).slice(0, 16)}`,\n\t\tmode: 'approved_scope_to_a_grade_pr',\n\t\tstatus,\n\t\tactivePhase,\n\t\tnextAction,\n\t\tnextCommand: nextAction === 'create_pr'\n\t\t\t? 'createSupportTicketCodexPullRequestManual'\n\t\t\t: String(nextAction),\n\t\treason: status === 'complete'\n\t\t\t? 'Approved support autopilot reached A-grade PR proof; merge, release, deploy, and customer reply remain separately gated.'\n\t\t\t: missingEvidence.join(' | ') || `Continue approved support autopilot phase ${activePhase}.`,\n\t\tapproved: approvalApproved,\n\t\tapprovalBoundaryValid,\n\t\tapprovalContractId: approval?.contractId || '',\n\t\ttargetGrade,\n\t\tterminalTarget,\n\t\tbusinessProofReady,\n\t\thasScreenshotOrTrace,\n\t\tchangedFilesReady,\n\t\tprReadinessReady: prReady,\n\t\tprReviewReady,\n\t\tprReviewStatus: prReview.status,\n\t\tprReviewContractId: prReview.contractId,\n\t\tprReviewStrictGatePassed: prReview.strictGatePassed,\n\t\tprReviewStrictGateReason: prReview.strictGateReason,\n\t\tprReviewExecutionGrade: prReview.executionGrade,\n\t\tprReviewArtifactsGrade: prReview.artifactsGrade,\n\t\tprReviewPullRequestGrade: prReview.pullRequestGrade,\n\t\tpullRequestUrl,\n\t\tpullRequestStatus,\n\t\tcanContinueWithoutCodexMonitor: canAutoDispatchNext,\n\t\tcanAutoDispatchNext,\n\t\trequiresHumanApproval,\n\t\tcompletedEvidence,\n\t\tmissingEvidence,\n\t\trequiredEvidence,\n\t\tforbiddenActions: Array.from(new Set([\n\t\t\t...(approval?.forbiddenWithoutReapproval || []),\n\t\t\t'Do not merge, release, deploy, or send customer success reply from approved autopilot completion alone.',\n\t\t\t'Do not mark complete without QA screenshots/traces, AIQaBusinessAssertion proof, changed files, PR URL, and A-grade PR review.'\n\t\t])).slice(0, 24),\n\t\tblockers: Array.from(new Set([\n\t\t\t...(approval?.blockers || []),\n\t\t\t...(input.productRepairDispatchGuard?.status === 'blocked' ? input.productRepairDispatchGuard.blockers : []),\n\t\t\t...prReview.blockers,\n\t\t\t...missingEvidence\n\t\t])).slice(0, 24),\n\t\tcreatedAt\n\t};\n}\n\nfunction normalizeResolveIOSupportPreflightCheckName(value: any): ResolveIOSupportPreflightCheckName {\n\tconst normalized = cleanText(value, 120)\n\t\t.toLowerCase()\n\t\t.replace(/[\\s-]+/g, '_');\n\tconst aliases: Record<string, ResolveIOSupportPreflightCheckName> = {\n\t\tpuppeteer: 'puppeteer_module',\n\t\tpuppeteer_module: 'puppeteer_module',\n\t\tchrome: 'chrome_executable',\n\t\tchrome_path: 'chrome_executable',\n\t\tchrome_executable: 'chrome_executable',\n\t\tchrome_launch: 'chrome_launch',\n\t\tbrowser_launch: 'chrome_launch',\n\t\tnode: 'node_version',\n\t\tnode_version: 'node_version',\n\t\tnpm: 'npm_install',\n\t\tnpm_install: 'npm_install',\n\t\tsettings: 'settings_file',\n\t\tsettings_file: 'settings_file',\n\t\tmongo: 'mongo_connection',\n\t\tmongodb: 'mongo_connection',\n\t\tmongo_connection: 'mongo_connection',\n\t\tserver: 'server_startup',\n\t\tserver_startup: 'server_startup',\n\t\tclient: 'client_startup',\n\t\tclient_startup: 'client_startup',\n\t\tport: 'port_availability',\n\t\tports: 'port_availability',\n\t\tport_availability: 'port_availability',\n\t\tbuild: 'compile',\n\t\tcompile: 'compile',\n\t\tcache: 'cache_state',\n\t\tcache_state: 'cache_state',\n\t\tseed: 'seed_data',\n\t\tseed_data: 'seed_data'\n\t};\n\treturn aliases[normalized] || 'unknown';\n}\n\nfunction normalizeResolveIOSupportPreflightCheckStatus(value: any, source: Record<string, any>): ResolveIOSupportPreflightCheckStatus {\n\tconst normalized = cleanText(value, 80).toLowerCase();\n\tif (['pass', 'passed', 'ok', 'success', 'ready'].includes(normalized) || source.passed === true || source.ok === true || source.ready === true) {\n\t\treturn 'pass';\n\t}\n\tif (['fail', 'failed', 'failure', 'error'].includes(normalized) || source.passed === false || source.ok === false) {\n\t\treturn 'fail';\n\t}\n\tif (['blocked', 'block', 'missing'].includes(normalized) || source.blocked === true) {\n\t\treturn 'blocked';\n\t}\n\tif (['warn', 'warning'].includes(normalized)) {\n\t\treturn 'warn';\n\t}\n\treturn 'unknown';\n}\n\nfunction normalizeResolveIOSupportPreflightFailureClass(\n\tname: ResolveIOSupportPreflightCheckName,\n\tsource: Record<string, any>,\n\tstatus: ResolveIOSupportPreflightCheckStatus\n): 'infra' | 'compile' | 'unknown' {\n\tconst normalized = cleanText(source.failureClass || source.failure_class || source.class, 80).toLowerCase();\n\tif (normalized === 'compile' || normalized === 'build') {\n\t\treturn 'compile';\n\t}\n\tif (normalized === 'infra' || normalized === 'infrastructure') {\n\t\treturn 'infra';\n\t}\n\tif (status === 'pass' || status === 'warn') {\n\t\treturn 'unknown';\n\t}\n\treturn name === 'compile' ? 'compile' : 'infra';\n}\n\nfunction normalizeResolveIOSupportPreflightCheck(input: any, now: string): ResolveIOSupportPreflightCheck {\n\tconst source = typeof input === 'string'\n\t\t? { summary: input, name: 'unknown', status: 'unknown' }\n\t\t: cleanObject(input);\n\tconst name = normalizeResolveIOSupportPreflightCheckName(source.name || source.check || source.checkName || source.id || source.type);\n\tconst status = normalizeResolveIOSupportPreflightCheckStatus(source.status || source.state || source.outcome, source);\n\tconst artifactPaths = Array.from(new Set([\n\t\t...cleanList(source.artifactPaths || source.artifacts, 20, 500),\n\t\t...cleanList(source.artifactPath ? [source.artifactPath] : [], 1, 500)\n\t]));\n\tconst evidence = cleanList(source.evidence || source.logs || source.messages, 20, 500);\n\treturn {\n\t\tname,\n\t\tstatus,\n\t\tsummary: cleanText(source.summary || source.reason || source.error || source.message || source.status || name, 1000),\n\t\tfailureClass: normalizeResolveIOSupportPreflightFailureClass(name, source, status),\n\t\tcommand: cleanText(source.command, 500) || undefined,\n\t\tdurationMs: Number.isFinite(Number(source.durationMs || source.duration_ms))\n\t\t\t? Math.max(0, Number(source.durationMs || source.duration_ms))\n\t\t\t: undefined,\n\t\tartifactPaths,\n\t\tevidence,\n\t\trecordedAt: cleanText(source.recordedAt || source.recorded_at, 80) || now\n\t};\n}\n\nfunction normalizeResolveIOSupportPreflightGateStatus(value: any): ResolveIOSupportPreflightGateStatus | '' {\n\tconst normalized = cleanText(value, 80).toLowerCase();\n\tconst aliases: Record<string, ResolveIOSupportPreflightGateStatus> = {\n\t\tpassed: 'passed',\n\t\tpass: 'passed',\n\t\tready: 'passed',\n\t\tmissing: 'missing',\n\t\tinfra_failed: 'infra_failed',\n\t\tinfra: 'infra_failed',\n\t\tinfrastructure_failed: 'infra_failed',\n\t\tcompile_failed: 'compile_failed',\n\t\tbuild_failed: 'compile_failed',\n\t\tblocked: 'blocked',\n\t\tunknown: 'unknown'\n\t};\n\treturn aliases[normalized] || '';\n}\n\nexport function evaluateResolveIOSupportPreflightGate(\n\tinput?: ResolveIOSupportPreflightGateInput | ResolveIOSupportPreflightGate | any,\n\tnowValue?: Date | string\n): ResolveIOSupportPreflightGate {\n\tconst now = isoNow(nowValue);\n\tconst source = cleanObject(input);\n\tconst compileResult = cleanObject(source.compileResult || source.compile_result);\n\tconst checksInput = [\n\t\t...(Array.isArray(source.checks) ? source.checks : []),\n\t\t...(Array.isArray(source.infraChecks || source.infra_checks) ? (source.infraChecks || source.infra_checks) : []),\n\t\t...(Array.isArray(source.startupChecks || source.startup_checks) ? (source.startupChecks || source.startup_checks) : []),\n\t\t...(Object.keys(compileResult).length ? [{\n\t\t\t...compileResult,\n\t\t\tname: compileResult.name || 'compile',\n\t\t\tfailureClass: compileResult.failureClass || compileResult.failure_class || 'compile'\n\t\t}] : [])\n\t];\n\tconst checks = checksInput.map((check) => normalizeResolveIOSupportPreflightCheck(check, now));\n\tconst required = source.required === true\n\t\t|| source.requiredBeforeRepair === true\n\t\t|| source.required_before_repair === true\n\t\t|| source.blocksProductRepair === true\n\t\t|| source.blocks_product_repair === true;\n\tconst failedChecks = checks.filter((check) => check.status === 'fail' || check.status === 'blocked');\n\tconst unknownChecks = checks.filter((check) => check.status === 'unknown');\n\tconst directStatus = normalizeResolveIOSupportPreflightGateStatus(source.status);\n\tconst compileFailed = failedChecks.some((check) => check.failureClass === 'compile' || check.name === 'compile')\n\t\t|| directStatus === 'compile_failed';\n\tconst infraFailed = failedChecks.length > 0 || directStatus === 'infra_failed';\n\tlet status: ResolveIOSupportPreflightGateStatus;\n\tif (compileFailed) {\n\t\tstatus = 'compile_failed';\n\t} else if (infraFailed) {\n\t\tstatus = 'infra_failed';\n\t} else if (directStatus === 'blocked') {\n\t\tstatus = 'blocked';\n\t} else if (directStatus === 'missing' || (required && checks.length === 0)) {\n\t\tstatus = 'missing';\n\t} else if (directStatus === 'passed' || source.ready === true || (checks.length > 0 && failedChecks.length === 0 && unknownChecks.length === 0)) {\n\t\tstatus = 'passed';\n\t} else {\n\t\tstatus = 'unknown';\n\t}\n\tconst failureClass: 'infra' | 'compile' | 'unknown' = status === 'compile_failed'\n\t\t? 'compile'\n\t\t: (status === 'infra_failed' || status === 'blocked' || status === 'missing')\n\t\t\t? 'infra'\n\t\t\t: 'unknown';\n\tconst artifactPaths = Array.from(new Set([\n\t\t...cleanList(source.artifactPaths || source.artifacts, 40, 500),\n\t\t...checks.flatMap((check) => check.artifactPaths)\n\t])).slice(0, 80);\n\tconst blockers = Array.from(new Set([\n\t\t...cleanList(source.blockers, 20, 500),\n\t\t...failedChecks.map((check) => `${check.name}: ${check.summary}`),\n\t\t...(status === 'missing' ? ['Deterministic support preflight is required before product-code repair.'] : []),\n\t\t...(status === 'blocked' ? ['Support preflight is blocked and must be cleared before product-code repair.'] : [])\n\t].filter(Boolean))).slice(0, 30);\n\tconst requiredEvidence = Array.from(new Set([\n\t\t...cleanList(source.requiredEvidence || source.required_evidence, 20, 500),\n\t\t...(status === 'compile_failed' ? ['compile command output', 'artifact path or build log', 'new compile evidence hash or pass'] : []),\n\t\t...(status === 'infra_failed' ? ['Puppeteer/Chrome/server/client/Mongo preflight log', 'new infra evidence hash or pass'] : []),\n\t\t...(status === 'missing' || status === 'blocked' || (required && status === 'unknown') ? ['support preflight result with Puppeteer, Chrome, compile, startup, Mongo, port, and settings status'] : [])\n\t])).slice(0, 30);\n\tconst blocksProductRepair = status === 'compile_failed'\n\t\t|| status === 'infra_failed'\n\t\t|| status === 'blocked'\n\t\t|| status === 'missing'\n\t\t|| (required && status === 'unknown');\n\tconst nextCommand: ResolveIOSupportPreflightNextCommand = status === 'compile_failed'\n\t\t? 'run_support_v5_compile_repair'\n\t\t: status === 'infra_failed' || status === 'blocked'\n\t\t\t? 'run_support_v5_infra_repair'\n\t\t\t: status === 'missing' || (required && status === 'unknown')\n\t\t\t\t? 'run_support_v5_preflight'\n\t\t\t\t: 'continue_to_diagnosis';\n\tconst evidenceHash = cleanText(source.evidenceHash || source.evidence_hash, 80)\n\t\t|| hashResolveIOSupportV5Evidence({\n\t\t\tstatus,\n\t\t\trequired,\n\t\t\tfailedChecks: failedChecks.map((check) => ({\n\t\t\t\tname: check.name,\n\t\t\t\tstatus: check.status,\n\t\t\t\tsummary: check.summary,\n\t\t\t\tfailureClass: check.failureClass\n\t\t\t})),\n\t\t\tartifactPaths\n\t\t});\n\treturn {\n\t\tready: blocksProductRepair ? false : status === 'passed',\n\t\trequired,\n\t\tstatus,\n\t\tfailureClass,\n\t\tchecks,\n\t\tfailedChecks,\n\t\tblockers,\n\t\trequiredEvidence,\n\t\tartifactPaths,\n\t\tnextCommand,\n\t\tblocksProductRepair,\n\t\tblocksModelRepair: blocksProductRepair,\n\t\tevidenceHash,\n\t\trecordedAt: cleanText(source.recordedAt || source.recorded_at, 80) || now\n\t};\n}\n\nfunction pickText(source: Record<string, any>, fields: string[], max = 1000): string {\n\tfor (const field of fields) {\n\t\tconst normalized = cleanText(source?.[field], max);\n\t\tif (normalized) {\n\t\t\treturn normalized;\n\t\t}\n\t}\n\treturn '';\n}\n\nfunction normalizeIssueClass(value: any): ResolveIOSupportIssueClass | '' {\n\tconst normalized = cleanText(value, 80)\n\t\t.toLowerCase()\n\t\t.replace(/[\\s-]+/g, '_');\n\tconst aliases: Record<string, ResolveIOSupportIssueClass> = {\n\t\tno_op: 'no_op_submit',\n\t\tno_op_submit: 'no_op_submit',\n\t\tsubmit_noop: 'no_op_submit',\n\t\tmissing_data: 'missing_wrong_data',\n\t\twrong_data: 'missing_wrong_data',\n\t\tmissing_wrong_data: 'missing_wrong_data',\n\t\tfilter_mismatch: 'filter_query_mismatch',\n\t\tquery_mismatch: 'filter_query_mismatch',\n\t\tfilter_query_mismatch: 'filter_query_mismatch',\n\t\tinvoice_pdf_export: 'invoice_pdf_export',\n\t\tpdf_export: 'invoice_pdf_export',\n\t\texport: 'invoice_pdf_export',\n\t\tupload: 'upload_import',\n\t\timport: 'upload_import',\n\t\tupload_import: 'upload_import',\n\t\tbehavior: 'missing_wrong_data',\n\t\tworkflow_behavior: 'missing_wrong_data',\n\t\tgeneral: 'missing_wrong_data',\n\t\tgeneral_inquiry: 'missing_wrong_data',\n\t\tcustomer_inquiry: 'missing_wrong_data',\n\t\tdata_mismatch: 'missing_wrong_data',\n\t\twarehouse_mismatch: 'missing_wrong_data',\n\t\tdata_visibility_mapping: 'missing_wrong_data',\n\t\tdata_mapping: 'missing_wrong_data',\n\t\tvisibility_mapping: 'missing_wrong_data',\n\t\tdisplay_mapping: 'missing_wrong_data',\n\t\troute_auth: 'route_auth_hydration',\n\t\tauth_hydration: 'route_auth_hydration',\n\t\troute_auth_hydration: 'route_auth_hydration',\n\t\tslow_query: 'slow_query_performance',\n\t\tperformance: 'slow_query_performance',\n\t\tslow_query_performance: 'slow_query_performance',\n\t\tfeature: 'missing_wrong_data',\n\t\tfeature_request: 'missing_wrong_data',\n\t\trequest_new_feature: 'missing_wrong_data',\n\t\trequested_behavior_change: 'missing_wrong_data',\n\t\tnew_feature: 'missing_wrong_data'\n\t};\n\tif (aliases[normalized]) {\n\t\treturn aliases[normalized];\n\t}\n\tif (/\\b(data|field|value|visibility|mapping|display|warehouse|quantity|inventory)\\b/i.test(normalized)) {\n\t\treturn 'missing_wrong_data';\n\t}\n\treturn '';\n}\n\nfunction normalizeReproductionStatus(value: any): ResolveIOSupportDiagnosisIssueCase['reproduction_status'] {\n\tconst normalized = cleanText(value, 80).toLowerCase();\n\tif (/blocked|unable|cannot/.test(normalized)) {\n\t\treturn 'blocked';\n\t}\n\tif (/classif|triag|inferred/.test(normalized)) {\n\t\treturn 'classified';\n\t}\n\treturn 'reproduced';\n}\n\nfunction inferSupportDiagnosisEvidenceTypeFromText(value: any, artifactPath = ''): ResolveIOSupportDiagnosisEvidence['type'] {\n\tconst text = cleanText([value, artifactPath].filter(Boolean).join(' '), 2000).toLowerCase();\n\tconst pathText = cleanText(artifactPath, 500).toLowerCase();\n\tif (/\\b(screenshot|screen shot)\\b/i.test(text) || /\\.(?:png|jpe?g|webp|gif)$/i.test(pathText)) {\n\t\treturn 'browser';\n\t}\n\tif (/\\b(angular|server|client|src|methods|publications|routing|permission|component|template)\\b/i.test(pathText)) {\n\t\treturn 'code';\n\t}\n\tif (/\\b(browser|dom|click|route|page|playwright|puppeteer)\\b/i.test(text)) {\n\t\treturn 'browser';\n\t}\n\tif (/\\b(ticket|customer|client|reporter|reported|support request|manual-ticket|email\\.metadata)\\b/i.test(text)) {\n\t\treturn 'ticket';\n\t}\n\tif (/\\b(mongo|database|collection|document|query|findone|aggregate)\\b/i.test(text)) {\n\t\treturn 'mongo';\n\t}\n\tif (/\\b(log|trace|stack|console|network)\\b/i.test(text)) {\n\t\treturn 'log';\n\t}\n\tif (/\\b(commit|git|branch|pr)\\b/i.test(text)) {\n\t\treturn 'commit';\n\t}\n\tif (/\\b(qa|test artifact|assertion)\\b/i.test(text)) {\n\t\treturn 'qa';\n\t}\n\tif (/\\b(component|template|publication|method|model|route|service|resolver|subscription|subscribe|render|renders|stores|persists|returns|finds?|source|repo|repository|angular|server|client|src)\\b/i.test(text)) {\n\t\treturn 'code';\n\t}\n\treturn 'other';\n}\n\nfunction supportLooseOwnerFileMatch(value: any, ownerFile: string): boolean {\n\tconst normalizedOwner = normalizeOwnerFilePath(ownerFile);\n\tconst text = cleanText(value, 2000).replace(/[\\\\/.]+/g, ' ').replace(/[_-]+/g, ' ').toLowerCase();\n\tconst base = normalizedOwner.split('/').pop() || normalizedOwner;\n\tconst stem = base.replace(/\\.[a-z0-9]+$/i, '');\n\tconst stemWithoutAngularKind = stem.replace(/\\.(component|service|module|directive|pipe|model|resolver|guard|template)$/i, '');\n\tconst looseStem = stem.replace(/[._-]+/g, ' ').toLowerCase();\n\tconst looseStemWithoutKind = stemWithoutAngularKind.replace(/[._-]+/g, ' ').toLowerCase();\n\tconst compactStem = stem.replace(/[^a-z0-9]+/gi, '').toLowerCase();\n\tconst compactStemWithoutKind = stemWithoutAngularKind.replace(/[^a-z0-9]+/gi, '').toLowerCase();\n\tconst compactText = text.replace(/[^a-z0-9]+/g, '');\n\treturn !!normalizedOwner && (\n\t\tsupportNormalizedPathMentioned(value, normalizedOwner)\n\t\t|| (!!looseStem && looseStem.length >= 5 && text.includes(looseStem))\n\t\t|| (!!looseStemWithoutKind && looseStemWithoutKind.length >= 5 && text.includes(looseStemWithoutKind))\n\t\t|| (!!compactStem && compactStem.length >= 5 && compactText.includes(compactStem))\n\t\t|| (!!compactStemWithoutKind && compactStemWithoutKind.length >= 5 && compactText.includes(compactStemWithoutKind))\n\t);\n}\n\nfunction supportLooseEvidenceOwnerFiles(value: any, ownerFiles: string[]): string[] {\n\treturn ownerFiles\n\t\t.map(normalizeOwnerFilePath)\n\t\t.filter(Boolean)\n\t\t.filter((ownerFile) => supportLooseOwnerFileMatch(value, ownerFile))\n\t\t.slice(0, 8);\n}\n\nfunction normalizeSupportDiagnosisEvidence(values: any, ownerFiles: string[] = []): ResolveIOSupportDiagnosisEvidence[] {\n\tconst allowed = new Set(['ticket', 'browser', 'mongo', 'log', 'code', 'commit', 'qa', 'other']);\n\tif (!Array.isArray(values)) {\n\t\tconst summary = cleanText(values, 1200);\n\t\treturn summary ? [{\n\t\t\tid: `evidence-${hashResolveIOSupportV5Evidence({ type: inferSupportDiagnosisEvidenceTypeFromText(summary), summary }).slice(0, 12)}`,\n\t\t\ttype: inferSupportDiagnosisEvidenceTypeFromText(summary),\n\t\t\tsummary,\n\t\t\townerFiles: supportLooseEvidenceOwnerFiles(summary, ownerFiles),\n\t\t\tartifactPath: supportLooseEvidenceOwnerFiles(summary, ownerFiles)[0]\n\t\t}] : [];\n\t}\n\tconst stringEvidence: ResolveIOSupportDiagnosisEvidence[] = values\n\t\t.filter((entry) => typeof entry === 'string')\n\t\t.map((entry) => {\n\t\t\tconst summary = cleanText(entry, 1200);\n\t\t\tconst matchedOwnerFiles = supportLooseEvidenceOwnerFiles(summary, ownerFiles);\n\t\t\tconst type = matchedOwnerFiles.length ? 'code' : inferSupportDiagnosisEvidenceTypeFromText(summary);\n\t\t\treturn {\n\t\t\t\tid: `evidence-${hashResolveIOSupportV5Evidence({ type, summary, ownerFiles: matchedOwnerFiles }).slice(0, 12)}`,\n\t\t\t\ttype,\n\t\t\t\tsummary,\n\t\t\t\tartifactPath: type === 'code' ? matchedOwnerFiles[0] : undefined,\n\t\t\t\townerFiles: matchedOwnerFiles\n\t\t\t};\n\t\t});\n\tconst objectEvidence: ResolveIOSupportDiagnosisEvidence[] = values\n\t\t.filter((entry) => entry && typeof entry === 'object' && !Array.isArray(entry))\n\t\t.map((entry) => {\n\t\t\tconst type = cleanText(entry.type, 80).toLowerCase();\n\t\t\tconst artifactPath = cleanText(entry.artifactPath || entry.artifact_path || entry.artifact || entry.path || entry.file, 500);\n\t\t\tconst summary = cleanText(entry.summary || entry.detail || entry.message || entry.evidence || entry.reason || entry.rejection_reason || entry.rejectionReason || entry.fact || entry.finding || entry.description || entry.proof || entry.proof_required || entry.proofRequired, 1200)\n\t\t\t\t|| (artifactPath ? `Evidence from ${artifactPath}` : '');\n\t\t\tconst evidenceText = [summary, artifactPath].filter(Boolean).join(' ');\n\t\t\tconst inferredType = (() => {\n\t\t\t\tconst inferredFromText = inferSupportDiagnosisEvidenceTypeFromText(summary, artifactPath);\n\t\t\t\tif (allowed.has(type) && type !== 'other') {\n\t\t\t\t\tif (type === 'ticket' && inferredFromText === 'browser') {\n\t\t\t\t\t\treturn 'browser';\n\t\t\t\t\t}\n\t\t\t\t\treturn type;\n\t\t\t\t}\n\t\t\t\tif (/\\b(screenshot|screen shot)\\b/i.test(evidenceText)\n\t\t\t\t\t|| /\\.(?:png|jpe?g|webp|gif)$/i.test(artifactPath)) {\n\t\t\t\t\treturn 'browser';\n\t\t\t\t}\n\t\t\t\tif (/\\b(angular|server|client|src|methods|publications|routing|permission|component|template)\\b/i.test(artifactPath)) {\n\t\t\t\t\treturn 'code';\n\t\t\t\t}\n\t\t\t\tif (/\\b(playwright|puppeteer|browser|dom|click|route|page)\\b/i.test(evidenceText)) {\n\t\t\t\t\treturn 'browser';\n\t\t\t\t}\n\t\t\t\tif (/\\b(ticket|manual-ticket|support request|customer|reporter|email\\.metadata)\\b/i.test(evidenceText)) {\n\t\t\t\t\treturn 'ticket';\n\t\t\t\t}\n\t\t\t\tif (/\\b(commit|git)\\b/i.test(evidenceText)) {\n\t\t\t\t\treturn 'commit';\n\t\t\t\t}\n\t\t\t\tif (/\\b(mongo|query|database|collection)\\b/i.test(evidenceText)) {\n\t\t\t\t\treturn 'mongo';\n\t\t\t\t}\n\t\t\t\tif (/\\b(log|trace|console|network)\\b/i.test(evidenceText)) {\n\t\t\t\t\treturn 'log';\n\t\t\t\t}\n\t\t\t\tif (/\\b(angular|server|client|src|methods|publications|routing|permission|component|template)\\b/i.test(evidenceText)) {\n\t\t\t\t\treturn 'code';\n\t\t\t\t}\n\t\t\t\treturn inferredFromText;\n\t\t\t})();\n\t\t\tconst normalizedType = inferredType as ResolveIOSupportDiagnosisEvidence['type'];\n\t\t\tconst ownerFiles = cleanList(entry.ownerFiles || entry.owner_files || entry.files, 12, 500)\n\t\t\t\t.map(normalizeOwnerFilePath)\n\t\t\t\t.filter(Boolean);\n\t\t\tif (normalizedType === 'code' && artifactPath) {\n\t\t\t\tconst sourcePath = normalizeOwnerFilePath(artifactPath);\n\t\t\t\tif (sourcePath && !ownerFiles.includes(sourcePath)) {\n\t\t\t\t\townerFiles.push(sourcePath);\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst evidenceRefs = cleanList(entry.evidenceRefs || entry.evidence_refs || entry.refs, 12, 500);\n\t\t\treturn {\n\t\t\t\tid: cleanText(entry.id || entry.evidenceId || entry.evidence_id, 160)\n\t\t\t\t\t|| `evidence-${hashResolveIOSupportV5Evidence({ type: normalizedType, summary, artifactPath, ownerFiles }).slice(0, 12)}`,\n\t\t\t\ttype: normalizedType,\n\t\t\t\tsummary,\n\t\t\t\tartifactPath,\n\t\t\t\townerFiles,\n\t\t\t\tevidenceRefs\n\t\t\t};\n\t\t});\n\treturn stringEvidence.concat(objectEvidence)\n\t\t.filter((entry) => entry.summary)\n\t\t.slice(0, 20);\n}\n\nfunction normalizeSupportDiagnosisHints(values: any): ResolveIOSupportDiagnosisHint[] {\n\treturn (Array.isArray(values) ? values : [])\n\t\t.map((entry) => {\n\t\t\tif (typeof entry === 'string') {\n\t\t\t\treturn { reason: cleanText(entry, 500) };\n\t\t\t}\n\t\t\tconst value = cleanObject(entry);\n\t\t\treturn {\n\t\t\t\tid: cleanText(value.id || value._id, 160),\n\t\t\t\tticketNumber: cleanText(value.ticketNumber || value.ticket_number || value.sourceTicketNumber, 80),\n\t\t\t\ttitle: cleanText(value.title || value.summary, 300),\n\t\t\t\toutcome: cleanText(value.outcome || value.status, 80),\n\t\t\t\tissueClass: cleanText(value.issueClass || value.issue_class, 80),\n\t\t\t\townerFiles: cleanList(value.ownerFiles || value.owner_files || value.files, 8, 240),\n\t\t\t\tcommitSha: cleanText(value.commitSha || value.commit_sha, 80),\n\t\t\t\tcommitMessage: cleanText(value.commitMessage || value.commit_message, 300),\n\t\t\t\treason: cleanText(value.reason || value.matchReason || value.match_reason, 500)\n\t\t\t};\n\t\t})\n\t\t.filter((entry) => entry.id || entry.ticketNumber || entry.title || entry.reason || entry.commitSha)\n\t\t.slice(0, 8);\n}\n\nfunction normalizeSupportSimilarCaseSource(value: any): ResolveIOSupportSimilarCaseSource {\n\tconst normalized = cleanText(value, 80).toLowerCase();\n\tif (/commit|git/.test(normalized)) {\n\t\treturn 'git_commit';\n\t}\n\tif (/ticket/.test(normalized)) {\n\t\treturn 'support_ticket';\n\t}\n\tif (/airun|ai_run|run/.test(normalized)) {\n\t\treturn 'airun';\n\t}\n\treturn 'manual';\n}\n\nfunction supportOutcomeLooksAccepted(value: any): boolean {\n\treturn /^(accepted|pass|passed|complete|completed|merged|released)$/i.test(cleanText(value, 80));\n}\n\nfunction supportOutcomeLooksRejected(value: any): boolean {\n\treturn /\\b(reject|rejected|false_pass|failed|failure|blocked|unknown|stopped|manual_handoff)\\b/i.test(cleanText(value, 120));\n}\n\nfunction supportOwnerFileDirectory(value: string): string {\n\tconst normalized = normalizeOwnerFilePath(value);\n\tconst parts = normalized.split('/').filter(Boolean);\n\treturn parts.length > 1 ? parts.slice(0, -1).join('/') : normalized;\n}\n\nfunction supportTextTokens(value: any): string[] {\n\tconst stop = new Set(['the', 'and', 'for', 'with', 'that', 'this', 'from', 'into', 'when', 'where', 'what', 'have', 'has', 'had', 'not', 'but', 'are', 'was', 'were', 'issue', 'ticket', 'support']);\n\treturn Array.from(new Set(cleanText(value, 3000).toLowerCase()\n\t\t.split(/[^a-z0-9_/-]+/g)\n\t\t.map((token) => token.trim())\n\t\t.filter((token) => token.length >= 3 && !stop.has(token))))\n\t\t.slice(0, 80);\n}\n\nfunction normalizeResolveIOSupportSimilarCaseCandidate(value: any): ResolveIOSupportSimilarCaseCandidate | undefined {\n\tconst source = cleanObject(value);\n\tif (!Object.keys(source).length && typeof value !== 'string') {\n\t\treturn undefined;\n\t}\n\tif (typeof value === 'string') {\n\t\tconst summary = cleanText(value, 500);\n\t\treturn summary ? {\n\t\t\tsource: 'manual',\n\t\t\ttitle: summary,\n\t\t\tsummary,\n\t\t\tkeywords: supportTextTokens(summary)\n\t\t} : undefined;\n\t}\n\tconst metadata = cleanObject(source.metadata);\n\tconst runSourceIds = cleanObject(source.sourceIds || source.source_ids || metadata.sourceIds || metadata.source_ids);\n\tconst diagnosis = cleanObject(source.diagnosisGate || source.diagnosis_gate || source.supportV5DiagnosisGate || source.support_v5_diagnosis_gate || metadata.diagnosisGate || metadata.diagnosis_gate);\n\tconst sourceIds = cleanObject(source.sourceIds || source.source_ids || metadata.sourceIds || metadata.source_ids);\n\tconst sourceText = [\n\t\tsource.title,\n\t\tsource.summary,\n\t\tsource.message,\n\t\tsource.description,\n\t\tsource.reason,\n\t\tsource.commitMessage,\n\t\tsource.commit_message,\n\t\tdiagnosis.issue_case?.customer_complaint,\n\t\tdiagnosis.accepted_hypothesis?.statement\n\t].filter(Boolean).join(' ');\n\tconst ownerFiles = cleanList(\n\t\tsource.ownerFiles\n\t\t|| source.owner_files\n\t\t|| source.files\n\t\t|| diagnosis.owner_files\n\t\t|| diagnosis.ownerFiles\n\t\t|| metadata.ownerFiles\n\t\t|| metadata.owner_files,\n\t\t12,\n\t\t300\n\t).map(normalizeOwnerFilePath).filter(Boolean);\n\tconst issueClass = cleanText(\n\t\tsource.issueClass\n\t\t|| source.issue_class\n\t\t|| diagnosis.issue_class\n\t\t|| diagnosis.issueClass\n\t\t|| metadata.issueClass\n\t\t|| metadata.issue_class,\n\t\t80\n\t);\n\tconst candidate: ResolveIOSupportSimilarCaseCandidate = {\n\t\tsource: normalizeSupportSimilarCaseSource(source.source || source.type || source.runSource),\n\t\tid: cleanText(source.id || source._id || source.runId || source.run_id, 160),\n\t\tticketNumber: cleanText(source.ticketNumber || source.ticket_number || source.sourceTicketNumber || sourceIds.ticketNumber || runSourceIds.ticketNumber, 80),\n\t\ttitle: cleanText(source.title || source.name || source.summary, 300),\n\t\toutcome: cleanText(source.outcome || source.status || source.outcomeLabel || source.outcome_label, 80),\n\t\tissueClass: normalizeIssueClass(issueClass) || cleanText(issueClass, 80),\n\t\townerFiles,\n\t\tcommitSha: cleanText(source.commitSha || source.commit_sha || source.sha || source.sourceCommitSha || source.source_commit_sha, 80),\n\t\tcommitMessage: cleanText(source.commitMessage || source.commit_message || source.message, 300),\n\t\treason: cleanText(source.reason || source.matchReason || source.match_reason, 500),\n\t\tsummary: cleanText(source.summary || source.description || source.message || sourceText, 800),\n\t\tkeywords: cleanList(source.keywords || source.tags, 20, 80).concat(supportTextTokens(sourceText)).slice(0, 40),\n\t\tupdatedAt: isoNow(source.updatedAt || source.updated_at || source.recordedAt || source.recorded_at || source.createdAt || source.created_at),\n\t\tmetadata\n\t};\n\tif (!candidate.id && !candidate.ticketNumber && !candidate.title && !candidate.commitSha && !candidate.summary) {\n\t\treturn undefined;\n\t}\n\tif (candidate.commitSha && candidate.source === 'manual') {\n\t\tcandidate.source = 'git_commit';\n\t}\n\tif (candidate.ticketNumber && candidate.source === 'manual') {\n\t\tcandidate.source = 'support_ticket';\n\t}\n\treturn candidate;\n}\n\nexport function selectResolveIOSupportSimilarCaseHints(input: ResolveIOSupportSimilarCaseSelectionInput = {}): ResolveIOSupportSimilarCaseSelection {\n\tconst issueClass = normalizeIssueClass(input.issueClass);\n\tconst ownerFiles = cleanList(input.ownerFiles, 12, 300).map(normalizeOwnerFilePath).filter(Boolean);\n\tconst ownerFileSet = new Set(ownerFiles);\n\tconst ownerDirs = new Set(ownerFiles.map(supportOwnerFileDirectory).filter(Boolean));\n\tconst textTokens = new Set(supportTextTokens(input.text));\n\tconst limit = Math.max(1, Math.min(12, Number(input.limit || 6)));\n\tconst normalized = (Array.isArray(input.candidates) ? input.candidates : [])\n\t\t.map(normalizeResolveIOSupportSimilarCaseCandidate)\n\t\t.filter((candidate): candidate is ResolveIOSupportSimilarCaseCandidate => !!candidate);\n\tconst ranked: ResolveIOSupportSimilarCaseRankedHint[] = [];\n\tlet ignoredCount = 0;\n\tfor (const candidate of normalized) {\n\t\tconst outcomeKnown = !!candidate.outcome;\n\t\tconst accepted = supportOutcomeLooksAccepted(candidate.outcome) || (!!candidate.commitSha && !supportOutcomeLooksRejected(candidate.outcome));\n\t\tif (outcomeKnown && !accepted) {\n\t\t\tignoredCount += 1;\n\t\t\tcontinue;\n\t\t}\n\t\tconst signals: string[] = [];\n\t\tlet score = accepted ? 100 : 40;\n\t\tconst candidateIssueClass = normalizeIssueClass(candidate.issueClass);\n\t\tif (issueClass && candidateIssueClass && issueClass === candidateIssueClass) {\n\t\t\tscore += 45;\n\t\t\tsignals.push(`issue_class:${issueClass}`);\n\t\t}\n\t\tconst exactOwnerOverlap = candidate.ownerFiles.filter((file) => ownerFileSet.has(normalizeOwnerFilePath(file)));\n\t\tif (exactOwnerOverlap.length) {\n\t\t\tscore += 35 + Math.min(20, exactOwnerOverlap.length * 5);\n\t\t\tsignals.push(`owner_file_overlap:${exactOwnerOverlap.slice(0, 3).join(',')}`);\n\t\t}\n\t\tconst directoryOverlap = candidate.ownerFiles\n\t\t\t.map(supportOwnerFileDirectory)\n\t\t\t.filter((dir) => dir && ownerDirs.has(dir));\n\t\tif (directoryOverlap.length && !exactOwnerOverlap.length) {\n\t\t\tscore += 18;\n\t\t\tsignals.push(`owner_dir_overlap:${Array.from(new Set(directoryOverlap)).slice(0, 2).join(',')}`);\n\t\t}\n\t\tconst candidateTokens = new Set([...(candidate.keywords || []), ...supportTextTokens([candidate.title, candidate.summary, candidate.commitMessage].join(' '))]);\n\t\tconst tokenOverlap = Array.from(candidateTokens).filter((token) => textTokens.has(token)).slice(0, 6);\n\t\tif (tokenOverlap.length) {\n\t\t\tscore += Math.min(18, tokenOverlap.length * 3);\n\t\t\tsignals.push(`weak_text_overlap:${tokenOverlap.join(',')}`);\n\t\t}\n\t\tif (candidate.commitSha) {\n\t\t\tscore += 8;\n\t\t\tsignals.push('commit_linked');\n\t\t}\n\t\tif (!signals.length && score < 100) {\n\t\t\tignoredCount += 1;\n\t\t\tcontinue;\n\t\t}\n\t\tranked.push({\n\t\t\tid: candidate.id,\n\t\t\tticketNumber: candidate.ticketNumber,\n\t\t\ttitle: candidate.title,\n\t\t\toutcome: candidate.outcome || (candidate.commitSha ? 'commit_hint' : ''),\n\t\t\tissueClass: candidateIssueClass || candidate.issueClass,\n\t\t\townerFiles: candidate.ownerFiles.slice(0, 8),\n\t\t\tcommitSha: candidate.commitSha,\n\t\t\tcommitMessage: candidate.commitMessage,\n\t\t\treason: signals.join('; '),\n\t\t\tsource: candidate.source,\n\t\t\tscore,\n\t\t\tstructuredSignals: signals,\n\t\t\tadvisoryOnly: true\n\t\t});\n\t}\n\tconst sorted = ranked\n\t\t.sort((a, b) => b.score - a.score || String(b.ticketNumber || b.commitSha || '').localeCompare(String(a.ticketNumber || a.commitSha || '')))\n\t\t.slice(0, limit);\n\treturn {\n\t\tranked: sorted,\n\t\tsimilarTickets: sorted.filter((hint) => hint.source !== 'git_commit').slice(0, limit),\n\t\tsimilarCommits: sorted.filter((hint) => hint.source === 'git_commit' || !!hint.commitSha).slice(0, limit),\n\t\tignoredCount,\n\t\tgeneratedAt: isoNow(input.now)\n\t};\n}\n\nconst SUPPORT_DIAGNOSIS_GATE_REQUIRED_FIELDS = [\n\t'issue_case',\n\t'issue_class',\n\t'accepted_hypothesis',\n\t'rejected_alternatives',\n\t'failing_path',\n\t'owner_files',\n\t'proof_plan',\n\t'evidence',\n\t'status'\n];\n\nconst SUPPORT_DIAGNOSIS_REQUIRED_EVIDENCE = [\n\t'customer complaint, expected result, observed result, route/module, and account/customer context',\n\t'reproduction proof or blocked-reproduction reason',\n\t'one accepted falsifiable root-cause hypothesis with evidence',\n\t'rejected alternatives showing the runner did not guess',\n\t'frontend/backend/shared failing path',\n\t'small exact owner_files set',\n\t'before/action/after business proof plan',\n\t'AIQaBusinessAssertion acceptance requirement'\n];\n\nconst SUPPORT_DIAGNOSIS_FORBIDDEN_ACTIONS = [\n\t'Do not edit source, package, generated, fixture, QA artifact, or local data files while building the diagnosis gate.',\n\t'Do not use similar tickets or commits as proof; they are advisory hints only.',\n\t'Do not broaden owner_files from similar hints without fresh evidence from the current ticket.',\n\t'Do not accept route load, screenshot, scorecard, wow score, or model claim as ticket acceptance.',\n\t'Do not run product-code repair until SupportDiagnosisGate validates.'\n];\n\nconst SUPPORT_ISSUE_CLASS_PROBE_CATALOG: ResolveIOSupportIssueClassProbeCatalogEntry[] = [{\n\tissue_class: 'no_op_submit',\n\tprobe_type: 'issue_class_probe',\n\tfailure_class: 'business',\n\taction: 'Submit the reported form/action and prove a persisted state change or expected validation result.',\n\tproof_required: 'Before/action/after DOM or data proof that the submit is no longer a no-op.',\n\trequired_artifacts: ['before form state', 'submit action trace', 'post-submit DOM/data proof', 'method or network result'],\n\tacceptance_gate: 'aiqa_business_assertion',\n\tfalse_pass_blockers: ['route loaded only', 'button clicked without persisted result', 'model claim without DOM/data proof']\n}, {\n\tissue_class: 'missing_wrong_data',\n\tprobe_type: 'issue_class_probe',\n\tfailure_class: 'business',\n\taction: 'Load the named record/list and compare visible data to the expected persisted source.',\n\tproof_required: 'Visible data and persisted data match the customer expectation.',\n\trequired_artifacts: ['expected source record', 'visible DOM/data snapshot', 'persisted data comparison'],\n\tacceptance_gate: 'aiqa_business_assertion',\n\tfalse_pass_blockers: ['non-empty page only', 'wrong account/customer context', 'sample substitute for named record']\n}, {\n\tissue_class: 'filter_query_mismatch',\n\tprobe_type: 'issue_class_probe',\n\tfailure_class: 'business',\n\taction: 'Apply the reported filter/query inputs and assert included/excluded rows or counts.',\n\tproof_required: 'Returned rows/counts match the expected dataset and exclude the wrong records.',\n\trequired_artifacts: ['filter input trace', 'included/excluded row proof', 'query or publication result proof'],\n\tacceptance_gate: 'aiqa_business_assertion',\n\tfalse_pass_blockers: ['filter control visible only', 'route screenshot without row proof']\n}, {\n\tissue_class: 'invoice_pdf_export',\n\tprobe_type: 'issue_class_probe',\n\tfailure_class: 'business',\n\taction: 'Generate the invoice/PDF/export and inspect the generated artifact.',\n\tproof_required: 'Generated artifact contains the expected customer-visible rows, totals, fields, or file output.',\n\trequired_artifacts: ['export trigger trace', 'generated file artifact path', 'parsed artifact content proof'],\n\tacceptance_gate: 'aiqa_business_assertion',\n\tfalse_pass_blockers: ['download button visible only', 'unparsed file exists only']\n}, {\n\tissue_class: 'upload_import',\n\tprobe_type: 'issue_class_probe',\n\tfailure_class: 'business',\n\taction: 'Run the upload/import workflow with a representative file and assert parsed plus persisted results.',\n\tproof_required: 'Import result message and persisted rows/counts changed as expected.',\n\trequired_artifacts: ['input file fixture', 'import result message', 'persisted row/count delta'],\n\tacceptance_gate: 'aiqa_business_assertion',\n\tfalse_pass_blockers: ['file picker opens only', 'upload toast without persisted delta']\n}, {\n\tissue_class: 'route_auth_hydration',\n\tprobe_type: 'issue_class_probe',\n\tfailure_class: 'route',\n\taction: 'Open the route as the affected user and prove authenticated hydration reaches the functional screen.',\n\tproof_required: 'Hydrated route shows required controls/data for the affected account and no shell-only fallback.',\n\trequired_artifacts: ['auth context', 'hydrated DOM proof', 'console/network error log'],\n\tacceptance_gate: 'aiqa_business_assertion',\n\tfalse_pass_blockers: ['home route proof', 'login shell proof', 'header-only screenshot']\n}, {\n\tissue_class: 'slow_query_performance',\n\tprobe_type: 'issue_class_probe',\n\tfailure_class: 'business',\n\taction: 'Run the reported query/workflow with timing/log evidence before and after the fix.',\n\tproof_required: 'Timing improves or meets target while result equivalence is preserved.',\n\trequired_artifacts: ['before timing', 'after timing', 'result equivalence proof', 'query/log trace'],\n\tacceptance_gate: 'aiqa_business_assertion',\n\tfalse_pass_blockers: ['compile pass only', 'single timing without before/after comparison']\n}];\n\nfunction normalizeSupportSimilarCaseSelection(value: any, input: ResolveIOSupportSimilarCaseSelectionInput): ResolveIOSupportSimilarCaseSelection {\n\tconst object = cleanObject(value);\n\tif (Array.isArray(value)) {\n\t\treturn selectResolveIOSupportSimilarCaseHints({\n\t\t\t...input,\n\t\t\tcandidates: value\n\t\t});\n\t}\n\tif (object.ranked || object.similarTickets || object.similar_tickets || object.similarCommits || object.similar_commits) {\n\t\tconst normalizeRanked = (entries: any): ResolveIOSupportSimilarCaseRankedHint[] => (Array.isArray(entries) ? entries : [])\n\t\t\t.map((entry): ResolveIOSupportSimilarCaseRankedHint | undefined => {\n\t\t\t\tconst candidate = normalizeResolveIOSupportSimilarCaseCandidate(entry);\n\t\t\t\tif (!candidate) {\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t\tconst signals = cleanList((entry || {}).structuredSignals || (entry || {}).structured_signals, 10, 160);\n\t\t\t\treturn {\n\t\t\t\t\tid: candidate.id,\n\t\t\t\t\tticketNumber: candidate.ticketNumber,\n\t\t\t\t\ttitle: candidate.title,\n\t\t\t\t\toutcome: candidate.outcome,\n\t\t\t\t\tissueClass: normalizeIssueClass(candidate.issueClass) || candidate.issueClass,\n\t\t\t\t\townerFiles: candidate.ownerFiles.slice(0, 8),\n\t\t\t\t\tcommitSha: candidate.commitSha,\n\t\t\t\t\tcommitMessage: candidate.commitMessage,\n\t\t\t\t\treason: cleanText((entry || {}).reason || signals.join('; '), 500),\n\t\t\t\t\tsource: candidate.source,\n\t\t\t\t\tscore: Number((entry || {}).score || 0),\n\t\t\t\t\tstructuredSignals: signals,\n\t\t\t\t\tadvisoryOnly: true as const\n\t\t\t\t};\n\t\t\t})\n\t\t\t.filter((entry): entry is ResolveIOSupportSimilarCaseRankedHint => Boolean(entry))\n\t\t\t.slice(0, Math.max(1, Math.min(12, Number(input.limit || 6))));\n\t\tconst rankedHints = normalizeRanked(object.ranked);\n\t\tconst ticketHints = normalizeRanked(object.similarTickets || object.similar_tickets);\n\t\tconst commitHints = normalizeRanked(object.similarCommits || object.similar_commits);\n\t\tconst merged = rankedHints.length\n\t\t\t? rankedHints\n\t\t\t: [...ticketHints, ...commitHints]\n\t\t\t\t.sort((a, b) => b.score - a.score)\n\t\t\t\t.slice(0, Math.max(1, Math.min(12, Number(input.limit || 6))));\n\t\treturn {\n\t\t\tranked: merged,\n\t\t\tsimilarTickets: ticketHints.length ? ticketHints : merged.filter((hint) => hint.source !== 'git_commit'),\n\t\t\tsimilarCommits: commitHints.length ? commitHints : merged.filter((hint) => hint.source === 'git_commit' || !!hint.commitSha),\n\t\t\tignoredCount: Number(object.ignoredCount || object.ignored_count || 0),\n\t\t\tgeneratedAt: cleanText(object.generatedAt || object.generated_at, 120) || isoNow(input.now)\n\t\t};\n\t}\n\treturn selectResolveIOSupportSimilarCaseHints(input);\n}\n\nexport function buildResolveIOSupportDiagnosisEvidencePack(\n\tinput: ResolveIOSupportDiagnosisEvidencePackInput = {}\n): ResolveIOSupportDiagnosisEvidencePack {\n\tconst bundle = input.bundle;\n\tconst activeMicrotask = bundle\n\t\t? selectResolveIOSupportV5ActiveMicrotask(bundle.supportV5MicrotaskLedger || [], bundle.supportV5ActiveMicrotaskId)\n\t\t: undefined;\n\tconst diagnosisSource = input.diagnosisGate || bundle?.supportV5DiagnosisGate;\n\tconst validation = validateResolveIOSupportDiagnosisGate(diagnosisSource);\n\tconst normalizedDiagnosis = validation.normalized;\n\tconst proofMatrix = validation.proofMatrix || buildResolveIOSupportDiagnosisProofMatrix(diagnosisSource, input.now);\n\tconst ownerFileHints = cleanList([\n\t\t...cleanList(input.ownerFiles, 16, 500),\n\t\t...cleanList(normalizedDiagnosis?.owner_files, 16, 500),\n\t\t...cleanList(activeMicrotask?.targetFiles, 8, 500)\n\t], 16, 500).map(normalizeOwnerFilePath).filter(Boolean);\n\tconst issueClassHint = normalizeIssueClass(input.issueClass || normalizedDiagnosis?.issue_class);\n\tconst text = cleanText([\n\t\tinput.text,\n\t\tbundle?.supportV5ScopeDigest,\n\t\tbundle?.supportV5SupervisorState?.currentGoal,\n\t\tinput.ticketContext?.title,\n\t\tinput.ticketContext?.subject,\n\t\tinput.ticketContext?.summary\n\t].filter(Boolean).join(' '), 3000);\n\tconst similarInput: ResolveIOSupportSimilarCaseSelectionInput = {\n\t\tissueClass: issueClassHint || normalizedDiagnosis?.issue_class,\n\t\townerFiles: ownerFileHints,\n\t\ttext,\n\t\tcandidates: Array.isArray(input.similarCaseHints) ? input.similarCaseHints : [],\n\t\tlimit: 6,\n\t\tnow: input.now\n\t};\n\tconst similarCaseSelection = normalizeSupportSimilarCaseSelection(input.similarCaseHints, similarInput);\n\tconst status: ResolveIOSupportDiagnosisEvidencePackStatus = validation.valid\n\t\t? 'diagnosis_ready'\n\t\t: validation.status === 'blocked'\n\t\t\t? 'blocked'\n\t\t\t: 'needs_diagnosis';\n\tconst generatedAt = isoNow(input.now);\n\treturn {\n\t\tpackId: `support-diagnosis-pack-${hashResolveIOSupportV5Evidence({\n\t\t\tstatus,\n\t\t\tissueClassHint,\n\t\t\townerFileHints,\n\t\t\tblockers: validation.blockers,\n\t\t\ttext,\n\t\t\tactiveMicrotaskId: activeMicrotask?.microtaskId\n\t\t})}`,\n\t\tstatus,\n\t\treadOnly: true,\n\t\tsourceEditsAllowed: false,\n\t\trootCauseFirstRequired: true,\n\t\trequiredOutputKey: 'support_diagnosis_gate',\n\t\trequiredFields: SUPPORT_DIAGNOSIS_GATE_REQUIRED_FIELDS,\n\t\trequiredEvidence: SUPPORT_DIAGNOSIS_REQUIRED_EVIDENCE,\n\t\tforbiddenActions: SUPPORT_DIAGNOSIS_FORBIDDEN_ACTIONS,\n\t\tdiagnosisValid: validation.valid,\n\t\tdiagnosisStatus: validation.status,\n\t\tvalidationBlockers: validation.blockers,\n\t\tissueClassHint: issueClassHint || undefined,\n\t\townerFileHints: ownerFileHints.slice(0, 12),\n\t\tactiveMicrotaskId: activeMicrotask?.microtaskId,\n\t\tsimilarCaseSelection,\n\t\tissueClassProbeCatalog: SUPPORT_ISSUE_CLASS_PROBE_CATALOG,\n\t\tproofMatrix,\n\t\tstructuredFacts: {\n\t\t\tcurrentDiagnosisStatus: validation.status,\n\t\t\tcurrentDiagnosisValid: validation.valid,\n\t\t\tproofMatrixStatus: proofMatrix.status,\n\t\t\tproofMatrixId: proofMatrix.matrixId,\n\t\t\tproofMatrixBlockerCount: proofMatrix.blockers.length,\n\t\t\townerFileCoverageReady: proofMatrix.ownerFileCoverage.every((entry) => entry.covered),\n\t\t\tcoveredOwnerFileCount: proofMatrix.ownerFileCoverage.filter((entry) => entry.covered).length,\n\t\t\treproductionStatus: normalizedDiagnosis?.issue_case.reproduction_status,\n\t\t\tevidenceTypes: validation.evidenceQuality?.evidenceTypes || [],\n\t\t\treproductionEvidenceTypes: validation.evidenceQuality?.reproductionEvidenceTypes || [],\n\t\t\trootCauseEvidenceTypes: validation.evidenceQuality?.rootCauseEvidenceTypes || [],\n\t\t\tartifactBackedEvidenceCount: validation.evidenceQuality?.artifactBackedEvidenceCount || 0,\n\t\t\tsimilarHintCount: similarCaseSelection.ranked.length,\n\t\t\tsimilarHintsAdvisoryOnly: true,\n\t\t\tproductRepairBlockedUntilDiagnosisPassed: validation.valid !== true\n\t\t},\n\t\tgeneratedAt\n\t};\n}\n\nfunction inferResolveIOSupportIssueClassFromText(value: any): ResolveIOSupportIssueClass {\n\tconst text = cleanText(value, 3000).toLowerCase();\n\tif (/\\b(upload|import|csv|spreadsheet|attachment|file)\\b/.test(text)) {\n\t\treturn 'upload_import';\n\t}\n\tif (/\\b(invoice|pdf|export|print|printed|report|download)\\b/.test(text)) {\n\t\treturn 'invoice_pdf_export';\n\t}\n\tif (/\\b(filter|query|search|wrong customer|wrong account|mismatch)\\b/.test(text)) {\n\t\treturn 'filter_query_mismatch';\n\t}\n\tif (/\\b(route|auth|permission|login|hydrate|hydration|blank page|shell)\\b/.test(text)) {\n\t\treturn 'route_auth_hydration';\n\t}\n\tif (/\\b(slow|timeout|performance|latency|takes too long|hang)\\b/.test(text)) {\n\t\treturn 'slow_query_performance';\n\t}\n\tif (/\\b(submit|save|click|button|no-op|does nothing|not saving)\\b/.test(text)) {\n\t\treturn 'no_op_submit';\n\t}\n\treturn 'missing_wrong_data';\n}\n\nfunction firstSupportDiagnosisText(...values: any[]): string {\n\tfor (const value of values) {\n\t\tconst text = cleanText(value, 1400);\n\t\tif (text && !supportDiagnosisTextLooksGeneric(text, 12)) {\n\t\t\treturn text;\n\t\t}\n\t}\n\treturn '';\n}\n\nfunction extractSupportDiagnosisLineValue(text: string, label: string, max = 1000): string {\n\tconst escaped = label.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n\tconst match = String(text || '').match(new RegExp(`(?:^|\\\\n)\\\\s*${escaped}\\\\s*:\\\\s*([^\\\\n]+)`, 'i'));\n\treturn cleanText(match?.[1], max);\n}\n\nfunction inferSupportDiagnosisRouteModuleFromOwners(ownerFiles: string[], text: string): string {\n\tconst joinedOwners = ownerFiles.join('\\n');\n\tif (/part\\/detail|part-detail|inventory/i.test(`${joinedOwners}\\n${text}`)) {\n\t\treturn 'H2SKO part inventory detail / inventory print workflow';\n\t}\n\tif (/document\\/pick-ticket|pick-ticket/i.test(joinedOwners)) {\n\t\treturn 'H2SKO pick-ticket print/report workflow';\n\t}\n\tif (/invoice/i.test(`${joinedOwners}\\n${text}`)) {\n\t\treturn 'invoice/PDF/export workflow';\n\t}\n\tif (/upload|import/i.test(`${joinedOwners}\\n${text}`)) {\n\t\treturn 'upload/import workflow';\n\t}\n\treturn firstSupportDiagnosisText(extractSupportDiagnosisLineValue(text, 'Route'), extractSupportDiagnosisLineValue(text, 'Module'));\n}\n\nfunction buildSupportDiagnosisProofPlanScaffold(issueClass: ResolveIOSupportIssueClass, complaint: string, routeModule: string): ResolveIOSupportDiagnosisProofPlan {\n\tconst target = cleanText(routeModule || complaint || 'the reported workflow', 300);\n\tif (issueClass === 'upload_import') {\n\t\treturn {\n\t\t\tbefore: 'Capture the target records/counts before re-running the customer import.',\n\t\t\tbefore_state_unavailable_reason: '',\n\t\t\taction: `Run the same upload/import path for ${target} with the staged customer attachment or an equivalent ticket fixture.`,\n\t\t\tafter: 'Every expected imported row is attached/persisted with the correct relationships and no silently skipped rows.',\n\t\t\tbusiness_assertion: 'The import creates or updates all ticket-expected records, not just a successful upload shell.',\n\t\t\troute: target,\n\t\t\tdata_assertion: 'Mongo/DOM row counts and representative imported records match the attachment contents.',\n\t\t\tartifact_expectation: 'before count JSON, import action trace/screenshot, after count JSON, representative imported record proof',\n\t\t\tbusiness_proof_contract: {\n\t\t\t\tissue_class: issueClass,\n\t\t\t\tsetup_state: 'Customer attachment or localhost fixture is available before import.',\n\t\t\t\taction_under_test: 'Execute the import workflow end to end.',\n\t\t\t\texpected_business_state_change: 'All expected rows/relationships exist after import.',\n\t\t\t\tprohibited_false_pass: 'Upload completion, route load, screenshot, scorecard, or model claim alone is not acceptance.',\n\t\t\t\tproof_artifacts: ['before Mongo/data snapshot', 'import action trace or screenshot', 'after Mongo/data snapshot', 'row-level mismatch report'],\n\t\t\t\tdata_or_dom_assertion: 'Imported record counts and key fields match the source attachment.'\n\t\t\t}\n\t\t};\n\t}\n\tconst action = issueClass === 'invoice_pdf_export'\n\t\t? `Run the print/report/export path for ${target} using the named customer record.`\n\t\t: issueClass === 'filter_query_mismatch'\n\t\t\t? `Run the filtered/search/query workflow for ${target} using the named customer/account context.`\n\t\t\t: `Run the exact customer-reported workflow for ${target}.`;\n\treturn {\n\t\tbefore: 'Capture the customer-reported wrong/missing value before repair using the staged ticket context.',\n\t\tbefore_state_unavailable_reason: '',\n\t\taction,\n\t\tafter: 'The same workflow shows the expected customer/account data and no longer shows the wrong value.',\n\t\tbusiness_assertion: 'The reported business value is correct after the action, not merely that the route loaded.',\n\t\troute: target,\n\t\tdata_assertion: 'DOM/print/report output and persisted source data agree for the named customer record.',\n\t\tartifact_expectation: 'before screenshot/data snapshot, action trace, after screenshot/data snapshot, AIQaBusinessAssertion JSON',\n\t\tbusiness_proof_contract: {\n\t\t\tissue_class: issueClass,\n\t\t\tsetup_state: 'The named customer record is present in the staged support data before action.',\n\t\t\taction_under_test: action,\n\t\t\texpected_business_state_change: 'The visible/output business data matches the expected persisted value.',\n\t\t\tprohibited_false_pass: 'Route load, screenshot-only proof, scorecard pass, or model claim alone is not acceptance.',\n\t\t\tproof_artifacts: ['before DOM/data snapshot', 'action trace/screenshot', 'after DOM/data snapshot', 'Mongo or persisted data comparison'],\n\t\t\tdata_or_dom_assertion: 'The displayed/output value matches the expected persisted customer value.'\n\t\t}\n\t};\n}\n\nfunction buildResolveIOSupportDiagnosisRetryScaffold(input: {\n\tbundle?: ResolveIOSupportV5StateBundle;\n\tdiagnosisGate?: any;\n\tevidencePack?: ResolveIOSupportDiagnosisEvidencePack;\n\tnow?: Date | string;\n}): Record<string, any> {\n\tconst existing = normalizeResolveIOSupportDiagnosisGate(input.diagnosisGate, input.now);\n\tconst scopeText = cleanText([\n\t\tinput.bundle?.supportV5ScopeDigest,\n\t\tinput.bundle?.supportV5SupervisorState?.currentGoal,\n\t\tinput.bundle?.supportV5SupervisorState?.approvedScope\n\t].filter(Boolean).join('\\n'), 3000);\n\tconst ownerFiles = Array.from(new Set([\n\t\t...cleanList(existing?.owner_files, 8, 500),\n\t\t...cleanList(input.evidencePack?.ownerFileHints, 8, 500)\n\t].map(normalizeOwnerFilePath).filter(Boolean))).slice(0, 8);\n\tconst complaint = firstSupportDiagnosisText(\n\t\texisting?.issue_case.customer_complaint,\n\t\textractSupportDiagnosisLineValue(scopeText, 'Customer complaint'),\n\t\textractSupportDiagnosisLineValue(scopeText, 'Issue'),\n\t\textractSupportDiagnosisLineValue(scopeText, 'Approved scope'),\n\t\tscopeText\n\t);\n\tconst issueClass = normalizeIssueClass(existing?.issue_class || input.evidencePack?.issueClassHint)\n\t\t|| inferResolveIOSupportIssueClassFromText(`${scopeText}\\n${ownerFiles.join('\\n')}`);\n\tconst routeModule = firstSupportDiagnosisText(\n\t\texisting?.issue_case.route_module,\n\t\tinferSupportDiagnosisRouteModuleFromOwners(ownerFiles, scopeText),\n\t\textractSupportDiagnosisLineValue(scopeText, 'Route'),\n\t\textractSupportDiagnosisLineValue(scopeText, 'Module')\n\t);\n\tconst expected = firstSupportDiagnosisText(\n\t\texisting?.issue_case.expected_result,\n\t\textractSupportDiagnosisLineValue(scopeText, 'Expected'),\n\t\tcomplaint ? `The customer-reported workflow should use the correct business data for: ${complaint}` : ''\n\t);\n\tconst observed = firstSupportDiagnosisText(\n\t\texisting?.issue_case.observed_result,\n\t\textractSupportDiagnosisLineValue(scopeText, 'Observed'),\n\t\tcomplaint ? `The observed behavior is the customer report that needs reproduction: ${complaint}` : ''\n\t);\n\tconst accountContext = firstSupportDiagnosisText(\n\t\texisting?.issue_case.account_customer_context,\n\t\textractSupportDiagnosisLineValue(scopeText, 'Client'),\n\t\textractSupportDiagnosisLineValue(scopeText, 'Customer'),\n\t\textractSupportDiagnosisLineValue(scopeText, 'Reporter'),\n\t\tinput.bundle?.supportV5SupervisorState?.currentGoal\n\t);\n\tconst proofPlan = existing?.proof_plan && (existing.proof_plan.action || existing.proof_plan.business_assertion)\n\t\t? existing.proof_plan\n\t\t: buildSupportDiagnosisProofPlanScaffold(issueClass, complaint, routeModule);\n\treturn {\n\t\tinstruction: 'Starter only. Replace scaffolded guesses with verified ticket/code/browser/Mongo/log evidence before returning support_diagnosis_gate. Do not copy TODO/placeholder text and do not leave strings blank.',\n\t\tsupport_diagnosis_gate: {\n\t\t\tissue_case: {\n\t\t\t\tcustomer_complaint: complaint || 'TODO: restate the customer complaint from the staged ticket/email.',\n\t\t\t\texpected_result: expected || 'TODO: state the customer-visible expected business result.',\n\t\t\t\tobserved_result: observed || 'TODO: state the reproduced or classified wrong behavior.',\n\t\t\t\troute_module: routeModule || 'TODO: identify the exact route/module/workflow.',\n\t\t\t\taccount_customer_context: accountContext || 'TODO: name the affected client/account/user context.',\n\t\t\t\treproduction_status: existing?.issue_case.reproduction_status || 'blocked',\n\t\t\t\treproduction_blocker: existing?.issue_case.reproduction_blocker || 'TODO: replace with blocker only if reproduction cannot be performed.'\n\t\t\t},\n\t\t\tissue_class: issueClass,\n\t\t\taccepted_hypothesis: {\n\t\t\t\tstatement: firstSupportDiagnosisText(existing?.accepted_hypothesis.statement) || 'TODO: one falsifiable root-cause theory backed by current-ticket evidence.',\n\t\t\t\tfalsifiable_test: firstSupportDiagnosisText(existing?.accepted_hypothesis.falsifiable_test) || 'TODO: exact test that would prove this hypothesis wrong.',\n\t\t\t\tevidence: cleanList(existing?.accepted_hypothesis.evidence, 6, 800)\n\t\t\t},\n\t\t\trejected_alternatives: cleanList(existing?.rejected_alternatives, 4, 800),\n\t\t\tfailing_path: existing?.failing_path || {\n\t\t\t\tfrontend: '',\n\t\t\t\tbackend: '',\n\t\t\t\tshared_library: '',\n\t\t\t\tdata_query: '',\n\t\t\t\tdescription: routeModule || complaint || ''\n\t\t\t},\n\t\t\towner_files: ownerFiles,\n\t\t\tproof_plan: proofPlan,\n\t\t\tevidence: existing?.evidence || [],\n\t\t\tstatus: 'incomplete'\n\t\t}\n\t};\n}\n\nfunction normalizeSupportDiagnosisBusinessProofContract(value: any, issueClassHint: any): ResolveIOSupportDiagnosisBusinessProofContract | undefined {\n\tconst source = cleanObject(value);\n\tif (!Object.keys(source).length) {\n\t\treturn undefined;\n\t}\n\tconst issueClass = normalizeIssueClass(source.issue_class || source.issueClass || issueClassHint)\n\t\t|| normalizeIssueClass(issueClassHint)\n\t\t|| 'missing_wrong_data';\n\treturn {\n\t\tissue_class: issueClass,\n\t\tsetup_state: pickText(source, ['setup_state', 'setupState', 'before', 'precondition'], 1000),\n\t\taction_under_test: pickText(source, ['action_under_test', 'actionUnderTest', 'action', 'steps'], 1000),\n\t\texpected_business_state_change: pickText(source, ['expected_business_state_change', 'expectedBusinessStateChange', 'expected_change', 'expectedChange', 'after'], 1000),\n\t\tprohibited_false_pass: pickText(source, ['prohibited_false_pass', 'prohibitedFalsePass', 'false_pass', 'falsePass'], 1000),\n\t\tproof_artifacts: cleanList(source.proof_artifacts || source.proofArtifacts || source.artifacts || source.artifact_paths || source.artifactPaths, 10, 500),\n\t\tdata_or_dom_assertion: pickText(source, ['data_or_dom_assertion', 'dataOrDomAssertion', 'data_assertion', 'dataAssertion', 'dom_assertion', 'domAssertion', 'assertion'], 1000)\n\t};\n}\n\nfunction supportDiagnosisNarrativeText(value: any, max = 1200): string {\n\tif (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n\t\treturn cleanText(value, max);\n\t}\n\tif (Array.isArray(value)) {\n\t\treturn cleanList(value, 12, Math.max(80, Math.floor(max / 2))).join(' ').slice(0, max);\n\t}\n\tconst source = cleanObject(value);\n\tif (!Object.keys(source).length) {\n\t\treturn '';\n\t}\n\tconst hypothesis = cleanText(source.hypothesis, Math.floor(max / 2));\n\tconst whyRejected = cleanText(source.why_rejected || source.whyRejected || source.reason_rejected || source.reasonRejected || source.rejection_reason || source.rejectionReason || source.reason, Math.floor(max / 2));\n\tif (hypothesis && whyRejected) {\n\t\treturn `${hypothesis} rejected because ${whyRejected}`.slice(0, max);\n\t}\n\tconst direct = pickText(source, [\n\t\t'request_classification',\n\t\t'requestClassification',\n\t\t'classification_rationale',\n\t\t'classificationRationale',\n\t\t'behavior_type',\n\t\t'behaviorType',\n\t\t'summary',\n\t\t'detail',\n\t\t'description',\n\t\t'rationale',\n\t\t'why',\n\t\t'statement',\n\t\t'issue_case',\n\t\t'issueCase',\n\t\t'customer_complaint',\n\t\t'customerComplaint',\n\t\t'expected_result',\n\t\t'expectedResult',\n\t\t'observed_result',\n\t\t'observedResult',\n\t\t'route',\n\t\t'path_chain',\n\t\t'pathChain',\n\t\t'chain',\n\t\t'visibility_gate_trace',\n\t\t'visibilityGateTrace',\n\t\t'reported',\n\t\t'verified',\n\t\t'reported_path',\n\t\t'reportedPath',\n\t\t'verified_path',\n\t\t'verifiedPath',\n\t\t'assessment',\n\t\t'path',\n\t\t'proof_required',\n\t\t'proofRequired',\n\t\t'rejection_reason',\n\t\t'rejectionReason',\n\t\t'reason',\n\t\t'fact'\n\t], max);\n\tif (direct) {\n\t\treturn direct;\n\t}\n\tconst routeModulePermission = cleanText(source.route_module_permission_gate || source.routeModulePermissionGate, Math.floor(max / 2));\n\tconst templateGate = cleanText(source.template_conditional_rendering_gate || source.templateConditionalRenderingGate, Math.floor(max / 2));\n\tconst backingGate = cleanText(source.backing_role_group_config_publications_gate || source.backingRoleGroupConfigPublicationsGate, Math.floor(max / 2));\n\tconst explicitGateText = [routeModulePermission, templateGate, backingGate].filter(Boolean).join(' | ').slice(0, max);\n\tif (explicitGateText) {\n\t\treturn explicitGateText;\n\t}\n\treturn Object.entries(source)\n\t\t.filter(([key]) => !/^(id|_id|type|status|updatedAt|updated_at|createdAt|created_at)$/i.test(key))\n\t\t.map(([, entry]) => cleanListEntryText(entry, Math.max(80, Math.floor(max / 4))))\n\t\t.filter(Boolean)\n\t\t.join(' | ')\n\t\t.replace(/\\s+/g, ' ')\n\t\t.trim()\n\t\t.slice(0, max);\n}\n\nfunction supportDiagnosisLooksLikeClassifiedFeatureRequest(source: Record<string, any>, issueCaseText: string, failingPathText: string, hypothesisText: string): boolean {\n\tconst classificationText = supportDiagnosisNarrativeText(source.classification || source.classification_reason || source.classificationReason, 700);\n\tconst issueClassText = cleanText(source.issue_class || source.issueClass, 160);\n\tconst combined = [\n\t\tissueClassText,\n\t\tclassificationText,\n\t\tissueCaseText,\n\t\tfailingPathText,\n\t\thypothesisText\n\t].join(' ').toLowerCase();\n\treturn /\\b(feature request|feature_request|new feature|requested behavior change|net-new|net new|not implemented|no existing|none_existing|does not exist|no .*route)\\b/i.test(combined);\n}\n\nfunction normalizeSupportDiagnosisRejectedAlternatives(values: any): string[] {\n\tif (!Array.isArray(values)) {\n\t\treturn cleanList(values, 10, 700);\n\t}\n\tconst result: string[] = [];\n\tfor (const value of values) {\n\t\tconst text = supportDiagnosisNarrativeText(value, 700);\n\t\tif (text && !result.includes(text)) {\n\t\t\tresult.push(text);\n\t\t}\n\t\tif (result.length >= 10) {\n\t\t\tbreak;\n\t\t}\n\t}\n\treturn result;\n}\n\nfunction normalizeSupportDiagnosisProofPlanRows(values: any): Record<string, string> {\n\tif (!Array.isArray(values)) {\n\t\treturn {};\n\t}\n\tconst actions: string[] = [];\n\tconst proofRequired: string[] = [];\n\tfor (const row of values) {\n\t\tconst source = cleanObject(row);\n\t\tconst action = pickText(source, ['action', 'step', 'browser_action', 'browserAction', 'task'], 500) || supportDiagnosisNarrativeText(row, 500);\n\t\tconst proof = pickText(source, ['proof', 'proof_required', 'proofRequired', 'expected', 'expected_result', 'expectedResult', 'assertion', 'business_assertion', 'businessAssertion'], 700);\n\t\tif (action) {\n\t\t\tactions.push(action);\n\t\t}\n\t\tif (proof) {\n\t\t\tproofRequired.push(proof);\n\t\t}\n\t}\n\treturn {\n\t\taction: actions.join(' | ').slice(0, 1000),\n\t\tafter: proofRequired.join(' | ').slice(0, 1000),\n\t\tbusiness_assertion: proofRequired.join(' | ').slice(0, 1000),\n\t\tdata_assertion: proofRequired.join(' | ').slice(0, 1000)\n\t};\n}\n\nfunction collectSupportDiagnosisTextListFromValues(values: any[], limit = 10, max = 800): string[] {\n\tconst result: string[] = [];\n\tfor (const value of values) {\n\t\tconst direct = cleanList(value, limit, max);\n\t\tfor (const entry of direct) {\n\t\t\tif (entry && !result.includes(entry)) {\n\t\t\t\tresult.push(entry);\n\t\t\t}\n\t\t}\n\t\tif (value && typeof value === 'object' && !Array.isArray(value)) {\n\t\t\tfor (const [key, nestedValue] of Object.entries(value)) {\n\t\t\t\tif (!/(evidence|proof|ref|source|code|artifact|fact)/i.test(key)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst nestedEntries = Array.isArray(nestedValue)\n\t\t\t\t\t? cleanList(nestedValue, limit, max)\n\t\t\t\t\t: [cleanListEntryText(nestedValue, max)].filter(Boolean);\n\t\t\t\tfor (const entry of nestedEntries) {\n\t\t\t\t\tif (entry && !result.includes(entry)) {\n\t\t\t\t\t\tresult.push(entry);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (result.length >= limit) {\n\t\t\tbreak;\n\t\t}\n\t}\n\treturn result.slice(0, limit);\n}\n\nfunction normalizeOwnerFilePath(value: any): string {\n\tconst normalized = cleanListEntryText(value, 500)\n\t\t.replace(/\\\\/g, '/')\n\t\t.replace(/^\\.\\/+/, '')\n\t\t.replace(/^\\/+/, '')\n\t\t.replace(/:\\d+(?:-\\d+)?$/g, '')\n\t\t.replace(/\\s+$/g, '');\n\tfor (const pattern of [\n\t\t/(?:^|\\/)resolveio-ai-workspace\\/[^/]+\\/resolveio-all\\//i,\n\t\t/(?:^|\\/)ai-workspace\\/[^/]+\\/resolveio-all\\//i,\n\t\t/(?:^|\\/)resolveio-all\\//i,\n\t\t/(?:^|\\/)resolveio-server-lib\\//i,\n\t\t/(?:^|\\/)resolveio-client-lib\\//i\n\t]) {\n\t\tconst match = normalized.match(pattern);\n\t\tif (match?.index !== undefined) {\n\t\t\tconst start = match.index + match[0].length;\n\t\t\tconst stripped = normalized.slice(start).replace(/^\\/+/, '');\n\t\t\tif (stripped) {\n\t\t\t\treturn stripped;\n\t\t\t}\n\t\t}\n\t}\n\treturn normalized;\n}\n\nfunction isResolveIOSupportGeneratedAngularWrapperPath(value: any): boolean {\n\tconst normalized = normalizeOwnerFilePath(value).replace(/^geochem\\//i, '');\n\treturn /(?:^|\\/)angular\\/app\\/(?:methods|publications)\\.ts$/i.test(normalized);\n}\n\nfunction ownerFileComparablePathKeys(value: any): string[] {\n\tconst normalized = normalizeOwnerFilePath(value);\n\tif (!normalized) {\n\t\treturn [];\n\t}\n\tconst keys = new Set<string>([normalized]);\n\tfor (const marker of [\n\t\t'angular/app/',\n\t\t'server/src/',\n\t\t'server/app/',\n\t\t'client/src/',\n\t\t'client/app/'\n\t]) {\n\t\tconst escaped = marker.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n\t\tconst match = normalized.match(new RegExp(`(?:^|/)(${escaped}.+)$`, 'i'));\n\t\tif (match?.[1]) {\n\t\t\tkeys.add(match[1]);\n\t\t}\n\t}\n\treturn Array.from(keys);\n}\n\nfunction ownerFilePathMatchesDiagnosisOwner(filePath: string, ownerFile: string): boolean {\n\tconst normalizedFilePath = normalizeOwnerFilePath(filePath);\n\tconst normalizedOwnerFile = normalizeOwnerFilePath(ownerFile);\n\tif (!normalizedFilePath || !normalizedOwnerFile) {\n\t\treturn false;\n\t}\n\tconst fileKeys = ownerFileComparablePathKeys(normalizedFilePath);\n\tconst ownerKeys = ownerFileComparablePathKeys(normalizedOwnerFile);\n\tif (fileKeys.some((fileKey) => ownerKeys.some((ownerKey) => fileKey.toLowerCase() === ownerKey.toLowerCase()))) {\n\t\treturn true;\n\t}\n\treturn normalizedFilePath === normalizedOwnerFile\n\t\t|| normalizedFilePath.endsWith(`/${normalizedOwnerFile}`)\n\t\t|| normalizedOwnerFile.endsWith(`/${normalizedFilePath}`);\n}\n\nfunction ownerFileLooksBroad(value: string): boolean {\n\tconst normalized = normalizeOwnerFilePath(value);\n\treturn !normalized\n\t\t|| normalized.includes('*')\n\t\t|| /^(?:private\\/)?var\\/app\\/resolveio-ai-workspace\\//i.test(normalized)\n\t\t|| /^users\\/[^/]+\\/resolveio\\//i.test(normalized)\n\t\t|| normalized.endsWith('/')\n\t\t|| !/\\.[a-z0-9]+$/i.test(normalized)\n\t\t|| /^(\\.|src|server|angular|client|app|lib|packages?)$/i.test(normalized)\n\t\t|| /(^|\\/)(node_modules|dist|build|coverage|\\.git)(\\/|$)/i.test(normalized);\n}\n\nfunction ownerFileLooksNonProductEvidence(value: string): boolean {\n\tconst normalized = normalizeOwnerFilePath(value);\n\treturn /(^|\\/)(qa-artifacts?|screenshots?|screen-shots?|traces?|logs?|tmp|temp|coverage|dist|build|docs?)(\\/|$)/i.test(normalized)\n\t\t|| /(^|\\/)(?:support-diagnosis-pack-[^/]+|diagnosis-evidence-pack|aiqa-business-assertion)\\.json$/i.test(normalized)\n\t\t|| /(^|\\/)\\.resolveio-(?:support-context|support|context|runner|qa)(\\/|$)/i.test(normalized)\n\t\t|| /(^|\\/)(__tests__|tests?|spec)(\\/|$)|\\.(?:spec|test)\\.[jt]sx?$/i.test(normalized)\n\t\t|| /\\.(?:png|jpe?g|gif|webp|svg|pdf|log|txt|md|markdown)$/i.test(normalized);\n}\n\nfunction supportDiagnosisTextLooksGeneric(value: any, minimumLength = 18): boolean {\n\tconst text = cleanText(value, 1000).toLowerCase();\n\tif (!text) {\n\t\treturn false;\n\t}\n\tconst compact = text.replace(/[^a-z0-9]+/g, ' ').trim();\n\tif (!compact) {\n\t\treturn false;\n\t}\n\tconst meaningfulWords = compact.split(/\\s+/g).filter((word) => word.length >= 4);\n\treturn compact.length < minimumLength\n\t\t|| meaningfulWords.length < 3\n\t\t|| /^(n a|na|none|null|unknown|todo|tbd|pending|fix|bug|issue|problem|broken|not working|works|should work)$/i.test(compact)\n\t\t|| /\\b(todo|tbd|placeholder|replace with|do not copy|do not leave blank|ticket specific|unknown|guess|maybe|probably|something|somewhere|stuff|things?)\\b/i.test(compact)\n\t\t|| /^(fix|debug|investigate|check|look into|test|verify)( the)? (issue|bug|problem|ticket|route|page)$/i.test(compact)\n\t\t|| /^(the )?(issue|bug|problem|ticket|route|page)( is)? (fixed|broken|not working|wrong)$/i.test(compact);\n}\n\nfunction collectGenericSupportDiagnosisFields(gate: ResolveIOSupportDiagnosisGate): string[] {\n\tconst fields: Array<[string, any, number]> = [\n\t\t['issue_case.expected_result', gate.issue_case.expected_result, 18],\n\t\t['issue_case.observed_result', gate.issue_case.observed_result, 18],\n\t\t['accepted_hypothesis.statement', gate.accepted_hypothesis.statement, 24],\n\t\t['accepted_hypothesis.falsifiable_test', gate.accepted_hypothesis.falsifiable_test, 24],\n\t\t['proof_plan.before', gate.proof_plan.before || gate.proof_plan.before_state_unavailable_reason, 24],\n\t\t['proof_plan.action', gate.proof_plan.action, 24],\n\t\t['proof_plan.after', gate.proof_plan.after, 24],\n\t\t['proof_plan.business_assertion', gate.proof_plan.business_assertion, 24],\n\t\t['proof_plan.data_assertion', gate.proof_plan.data_assertion, 24],\n\t\t['proof_plan.business_proof_contract.setup_state', gate.proof_plan.business_proof_contract?.setup_state, 24],\n\t\t['proof_plan.business_proof_contract.action_under_test', gate.proof_plan.business_proof_contract?.action_under_test, 24],\n\t\t['proof_plan.business_proof_contract.expected_business_state_change', gate.proof_plan.business_proof_contract?.expected_business_state_change, 24],\n\t\t['proof_plan.business_proof_contract.data_or_dom_assertion', gate.proof_plan.business_proof_contract?.data_or_dom_assertion, 24]\n\t];\n\tconst genericFields = fields\n\t\t.filter(([field, value, minimumLength]) => {\n\t\t\tif (!cleanText(value, 1000)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tif ((field === 'proof_plan.data_assertion' || field === 'proof_plan.business_proof_contract.data_or_dom_assertion')\n\t\t\t\t&& /\\b(id|url|pdf)\\b/i.test(cleanText(value, 1000))) {\n\t\t\t\treturn supportDiagnosisTextLooksGeneric(value, 12);\n\t\t\t}\n\t\t\treturn supportDiagnosisTextLooksGeneric(value, minimumLength);\n\t\t})\n\t\t.map(([field]) => field);\n\tconst genericEvidence = gate.accepted_hypothesis.evidence\n\t\t.map((entry, index) => supportDiagnosisTextLooksGeneric(entry, 20) ? `accepted_hypothesis.evidence[${index}]` : '')\n\t\t.filter(Boolean);\n\tconst genericRejectedAlternatives = gate.rejected_alternatives\n\t\t.map((entry, index) => supportDiagnosisTextLooksGeneric(entry, 20) ? `rejected_alternatives[${index}]` : '')\n\t\t.filter(Boolean);\n\treturn [...genericFields, ...genericEvidence, ...genericRejectedAlternatives];\n}\n\nfunction supportProofArtifactLooksVague(value: any): boolean {\n\tconst text = cleanText(value, 500).toLowerCase();\n\tif (!text) {\n\t\treturn true;\n\t}\n\tconst compact = text.replace(/[^a-z0-9]+/g, ' ').trim();\n\tconst businessSignal = /\\b(dom|data|mongo|delta|row|rows|count|counts|record|records|persist|persisted|parsed|field|fields|pdf|export|invoice|upload|import|dropdown|selected|selection|id|total|timing|duration|latency|query|network|console|method|publication|response|before|after)\\b/i.test(compact);\n\tconst routeOnlySignal = /\\b(screenshot|screen shot|browser trace|trace|log|page|route|screen)\\b/i.test(compact);\n\treturn !businessSignal || (/^(screenshot|screen shot|browser trace|trace|log|page screenshot|route screenshot|screen screenshot)$/i.test(compact) && routeOnlySignal);\n}\n\nfunction proofPlanLooksRouteOnly(proofPlan: ResolveIOSupportDiagnosisProofPlan): boolean {\n\tconst assertionText = cleanText([\n\t\tproofPlan.business_assertion,\n\t\tproofPlan.action,\n\t\tproofPlan.after,\n\t\tproofPlan.data_assertion,\n\t\tproofPlan.artifact_expectation\n\t].filter(Boolean).join(' '), 3000).toLowerCase();\n\tif (!assertionText) {\n\t\treturn false;\n\t}\n\tconst routeOnlySignal = /\\b(route|page|screen|dashboard|url|component|shell)\\b/.test(assertionText)\n\t\t&& /\\b(loads?|loaded|renders?|rendered|opens?|opened|visible|visibility|hydrates?|hydrated|screenshot)\\b/.test(assertionText);\n\tconst businessSignal = /\\b(save|saved|persist|persisted|create|created|update|updated|delete|deleted|filter|filtered|exclude|excluded|include|included|row|rows|record|records|count|counts|total|totals|value|values|data|mongo|query|result|results|invoice|pdf|export|download|upload|import|dropdown|selection|selected|form|submit|submitted|validation|error message|customer|account|user|permission|auth|control|button|status|calculation|performance|duration|latency)\\b/.test(assertionText);\n\treturn routeOnlySignal && !businessSignal;\n}\n\nfunction supportDiagnosisEvidenceLooksRouteOnly(entry: Pick<ResolveIOSupportDiagnosisEvidence, 'summary' | 'type' | 'artifactPath'>): boolean {\n\tconst text = cleanText([entry.summary, entry.artifactPath].filter(Boolean).join(' '), 2200).toLowerCase();\n\tif (!text) {\n\t\treturn false;\n\t}\n\tconst routeOnlySignal = /\\b(route|page|screen|dashboard|url|component|shell|screenshot|screen shot)\\b/.test(text)\n\t\t&& /\\b(loads?|loaded|renders?|rendered|opens?|opened|visible|visibility|hydrates?|hydrated|captured|displayed)\\b/.test(text);\n\tconst businessSignal = /\\b(save|saved|persist|persisted|create|created|update|updated|delete|deleted|filter|filtered|exclude|excluded|include|included|row|rows|record|records|count|counts|total|totals|value|values|data|mongo|query|result|results|invoice|pdf|export|download|upload|import|dropdown|selection|selected|form|submit|submitted|validation|error message|customer|account|user|permission|auth|control|button|status|calculation|performance|duration|latency|before|after)\\b/.test(text);\n\treturn routeOnlySignal && !businessSignal;\n}\n\nfunction supportDiagnosisEvidenceLooksBusinessSpecific(entry: Pick<ResolveIOSupportDiagnosisEvidence, 'summary' | 'type' | 'artifactPath'>): boolean {\n\tconst text = cleanText([entry.summary, entry.artifactPath].filter(Boolean).join(' '), 2200).toLowerCase();\n\tif (!text || supportDiagnosisEvidenceLooksRouteOnly(entry)) {\n\t\treturn false;\n\t}\n\treturn /\\b(save|saved|persist|persisted|create|created|update|updated|delete|deleted|filter|filtered|exclude|excluded|include|included|row|rows|record|records|count|counts|total|totals|value|values|data|mongo|query|result|results|invoice|pdf|export|download|upload|import|dropdown|selection|selected|form|submit|submitted|validation|error message|customer|account|user|permission|auth|control|button|status|calculation|performance|duration|latency|before|after)\\b/.test(text);\n}\n\nconst SUPPORT_REPRODUCTION_EVIDENCE_TYPES = new Set<ResolveIOSupportDiagnosisEvidence['type']>(['browser', 'mongo', 'log', 'qa']);\nconst SUPPORT_ROOT_CAUSE_EVIDENCE_TYPES = new Set<ResolveIOSupportDiagnosisEvidence['type']>(['browser', 'mongo', 'log', 'code', 'commit', 'qa']);\nconst SUPPORT_ARTIFACT_RECOMMENDED_EVIDENCE_TYPES = new Set<ResolveIOSupportDiagnosisEvidence['type']>(['browser', 'mongo', 'log', 'qa']);\n\nfunction supportDiagnosisEvidenceRef(entry: ResolveIOSupportDiagnosisEvidence): ResolveIOSupportDiagnosisProofMatrixEvidenceRef {\n\treturn {\n\t\tevidenceId: entry.id || `evidence-${hashResolveIOSupportV5Evidence(entry).slice(0, 12)}`,\n\t\ttype: entry.type,\n\t\tsummary: cleanText(entry.summary, 1200),\n\t\tartifactPath: cleanText(entry.artifactPath, 500) || undefined,\n\t\townerFiles: cleanList(entry.ownerFiles, 12, 500).map(normalizeOwnerFilePath).filter(Boolean)\n\t};\n}\n\nfunction supportNormalizedPathMentioned(value: any, ownerFile: string): boolean {\n\tconst normalizedOwner = normalizeOwnerFilePath(ownerFile).toLowerCase();\n\tconst text = cleanText(value, 2000).replace(/\\\\/g, '/').toLowerCase();\n\treturn !!normalizedOwner && !!text && text.includes(normalizedOwner);\n}\n\nfunction supportDiagnosisOwnerFileCoverage(\n\tgate: ResolveIOSupportDiagnosisGate,\n\tevidenceRefs: ResolveIOSupportDiagnosisProofMatrixEvidenceRef[]\n): ResolveIOSupportDiagnosisProofMatrixOwnerFile[] {\n\tconst failingPathFields: Array<[string, any]> = [\n\t\t['frontend', gate.failing_path.frontend],\n\t\t['backend', gate.failing_path.backend],\n\t\t['shared_library', gate.failing_path.shared_library],\n\t\t['data_query', gate.failing_path.data_query],\n\t\t['description', gate.failing_path.description]\n\t];\n\treturn gate.owner_files.map((ownerFile) => {\n\t\tconst normalizedOwner = normalizeOwnerFilePath(ownerFile);\n\t\tconst evidenceIds = evidenceRefs\n\t\t\t.filter((entry) => entry.ownerFiles.map(normalizeOwnerFilePath).includes(normalizedOwner))\n\t\t\t.map((entry) => entry.evidenceId);\n\t\tconst matchedFailingPathFields = failingPathFields\n\t\t\t.filter(([, value]) => supportNormalizedPathMentioned(value, normalizedOwner))\n\t\t\t.map(([field]) => field);\n\t\treturn {\n\t\t\townerFile: normalizedOwner,\n\t\t\tcovered: evidenceIds.length > 0 || matchedFailingPathFields.length > 0,\n\t\t\tevidenceIds,\n\t\t\tfailingPathFields: matchedFailingPathFields\n\t\t};\n\t});\n}\n\nexport function buildResolveIOSupportDiagnosisProofMatrix(value: any, now?: Date | string): ResolveIOSupportDiagnosisProofMatrix {\n\tconst gate = normalizeResolveIOSupportDiagnosisGate(value);\n\tif (!gate) {\n\t\treturn {\n\t\t\tmatrixId: `support-diagnosis-proof-matrix-${hashResolveIOSupportV5Evidence({ missing: true, now: isoNow(now) }).slice(0, 16)}`,\n\t\t\tstatus: 'incomplete',\n\t\t\townerFiles: [],\n\t\t\treproductionEvidence: [],\n\t\t\trootCauseEvidence: [],\n\t\t\townerFileCoverage: [],\n\t\t\tbusinessProofArtifacts: [],\n\t\t\tproofPlanChecks: {\n\t\t\t\tbeforeActionAfter: false,\n\t\t\t\tbusinessAssertion: false,\n\t\t\t\tbusinessProofContract: false,\n\t\t\t\tdataOrDomAssertion: false\n\t\t\t},\n\t\t\tblockers: ['SupportDiagnosisGate is missing.'],\n\t\t\tgeneratedAt: isoNow(now)\n\t\t};\n\t}\n\tconst evidenceRefs = gate.evidence.map(supportDiagnosisEvidenceRef);\n\tconst reproductionEvidence = evidenceRefs.filter((entry) => SUPPORT_REPRODUCTION_EVIDENCE_TYPES.has(entry.type));\n\tconst businessReproductionEvidence = reproductionEvidence.filter(supportDiagnosisEvidenceLooksBusinessSpecific);\n\tconst rootCauseEvidence = evidenceRefs.filter((entry) => SUPPORT_ROOT_CAUSE_EVIDENCE_TYPES.has(entry.type));\n\tconst ownerFileCoverage = supportDiagnosisOwnerFileCoverage(gate, evidenceRefs);\n\tconst proofContract = gate.proof_plan.business_proof_contract;\n\tconst businessProofArtifacts = Array.from(new Set(cleanList([\n\t\tgate.proof_plan.artifact_expectation,\n\t\t...(proofContract?.proof_artifacts || [])\n\t], 20, 500)));\n\tconst proofPlanChecks = {\n\t\tbeforeActionAfter: !!((gate.proof_plan.before || gate.proof_plan.before_state_unavailable_reason) && gate.proof_plan.action && gate.proof_plan.after),\n\t\tbusinessAssertion: !!gate.proof_plan.business_assertion,\n\t\tbusinessProofContract: !!proofContract,\n\t\tdataOrDomAssertion: !!(gate.proof_plan.data_assertion || proofContract?.data_or_dom_assertion)\n\t};\n\tconst blockers: string[] = [];\n\tif (gate.issue_case.reproduction_status === 'reproduced' && !reproductionEvidence.length) {\n\t\tblockers.push('Proof matrix requires reproduction evidence for reproduced support diagnoses.');\n\t}\n\tif (gate.issue_case.reproduction_status === 'reproduced' && reproductionEvidence.length && !businessReproductionEvidence.length) {\n\t\tblockers.push('Proof matrix requires issue-specific business reproduction evidence; route-load or screenshot-only evidence cannot satisfy reproduction.');\n\t}\n\tif (!rootCauseEvidence.length) {\n\t\tblockers.push('Proof matrix requires typed root-cause evidence before repair.');\n\t}\n\tconst uncoveredOwners = ownerFileCoverage.filter((entry) => !entry.covered).map((entry) => entry.ownerFile);\n\tif (uncoveredOwners.length) {\n\t\tblockers.push(`Proof matrix owner_files are not tied to failing_path or structured evidence ownerFiles: ${uncoveredOwners.join(', ')}.`);\n\t}\n\tif (!businessProofArtifacts.length) {\n\t\tblockers.push('Proof matrix requires business proof artifacts from the diagnosis proof_plan.');\n\t}\n\tif (!proofPlanChecks.beforeActionAfter || !proofPlanChecks.businessAssertion || !proofPlanChecks.businessProofContract || !proofPlanChecks.dataOrDomAssertion) {\n\t\tblockers.push('Proof matrix requires before/action/after, business assertion, business_proof_contract, and DOM/data assertion coverage.');\n\t}\n\treturn {\n\t\tmatrixId: `support-diagnosis-proof-matrix-${hashResolveIOSupportV5Evidence({\n\t\t\tissueClass: gate.issue_class,\n\t\t\townerFiles: gate.owner_files,\n\t\t\tevidenceIds: evidenceRefs.map((entry) => entry.evidenceId),\n\t\t\tbusinessProofArtifacts,\n\t\t\tproofPlanChecks\n\t\t}).slice(0, 16)}`,\n\t\tstatus: blockers.length ? 'incomplete' : 'ready',\n\t\tissueClass: gate.issue_class,\n\t\townerFiles: gate.owner_files,\n\t\treproductionEvidence,\n\t\trootCauseEvidence,\n\t\townerFileCoverage,\n\t\tbusinessProofArtifacts,\n\t\tproofPlanChecks,\n\t\tblockers,\n\t\tgeneratedAt: isoNow(now || gate.updatedAt)\n\t};\n}\n\nexport function evaluateResolveIOSupportDiagnosisEvidenceQuality(value: any): ResolveIOSupportDiagnosisEvidenceQuality {\n\tconst normalized = normalizeResolveIOSupportDiagnosisGate(value);\n\tif (!normalized) {\n\t\treturn {\n\t\t\tvalid: false,\n\t\t\tblockers: ['SupportDiagnosisGate is missing.'],\n\t\t\tevidenceTypes: [],\n\t\t\treproductionEvidenceTypes: [],\n\t\t\trootCauseEvidenceTypes: [],\n\t\t\tartifactBackedEvidenceCount: 0,\n\t\t\trouteOnlyReproductionEvidenceCount: 0,\n\t\t\tbusinessReproductionEvidenceCount: 0,\n\t\t\thasTicketContext: false,\n\t\t\thasRootCauseEvidence: false,\n\t\t\thasReproductionEvidence: false\n\t\t};\n\t}\n\tconst evidence = normalized.evidence || [];\n\tconst evidenceTypes = Array.from(new Set(evidence.map((entry) => entry.type)));\n\tconst reproductionEvidenceTypes = Array.from(new Set(evidence\n\t\t.filter((entry) => SUPPORT_REPRODUCTION_EVIDENCE_TYPES.has(entry.type))\n\t\t.map((entry) => entry.type)));\n\tconst rootCauseEvidenceTypes = Array.from(new Set(evidence\n\t\t.filter((entry) => SUPPORT_ROOT_CAUSE_EVIDENCE_TYPES.has(entry.type))\n\t\t.map((entry) => entry.type)));\n\tconst artifactBackedEvidenceCount = evidence.filter((entry) => !!entry.artifactPath).length;\n\tconst reproductionEvidence = evidence.filter((entry) => SUPPORT_REPRODUCTION_EVIDENCE_TYPES.has(entry.type));\n\tconst routeOnlyReproductionEvidenceCount = reproductionEvidence.filter(supportDiagnosisEvidenceLooksRouteOnly).length;\n\tconst businessReproductionEvidenceCount = reproductionEvidence.filter(supportDiagnosisEvidenceLooksBusinessSpecific).length;\n\tconst hasTicketContext = evidence.some((entry) => entry.type === 'ticket')\n\t\t|| Boolean(normalized.issue_case.customer_complaint && normalized.issue_case.account_customer_context);\n\tconst hasRootCauseEvidence = rootCauseEvidenceTypes.length > 0;\n\tconst hasReproductionEvidence = reproductionEvidenceTypes.length > 0;\n\tconst blockers: string[] = [];\n\tif (!evidence.length) {\n\t\tblockers.push('Diagnosis evidence must include typed ticket/code/browser/log/Mongo/QA proof.');\n\t}\n\tif (!hasRootCauseEvidence) {\n\t\tblockers.push('Diagnosis evidence must include at least one non-ticket root-cause proof item: code, commit, browser, Mongo, log, or QA.');\n\t}\n\tif (!hasTicketContext) {\n\t\tblockers.push('Diagnosis evidence must preserve the customer/ticket context used for reproduction.');\n\t}\n\tif (normalized.issue_case.reproduction_status === 'reproduced' && !hasReproductionEvidence) {\n\t\tblockers.push('Diagnosis reproduced issue_case requires browser, Mongo, log, or QA reproduction evidence before repair.');\n\t}\n\tif (normalized.issue_case.reproduction_status === 'reproduced' && hasReproductionEvidence && !businessReproductionEvidenceCount) {\n\t\tblockers.push('Diagnosis reproduced issue_case requires issue-specific business reproduction proof; route-load or screenshot-only evidence is route evidence only.');\n\t}\n\tif (normalized.issue_case.reproduction_status === 'blocked'\n\t\t&& !normalized.issue_case.reproduction_blocker) {\n\t\tblockers.push('Diagnosis blocked reproduction requires issue_case.reproduction_blocker.');\n\t}\n\tconst unartifactedRuntimeEvidence = evidence.filter((entry) => SUPPORT_ARTIFACT_RECOMMENDED_EVIDENCE_TYPES.has(entry.type) && !entry.artifactPath);\n\tif (unartifactedRuntimeEvidence.length) {\n\t\tblockers.push(`Diagnosis runtime evidence must include artifactPath for replayable proof: ${unartifactedRuntimeEvidence.map((entry) => entry.type).join(', ')}.`);\n\t}\n\tif (normalized.issue_case.reproduction_status === 'reproduced' && artifactBackedEvidenceCount < 1) {\n\t\tblockers.push('Diagnosis reproduced issue_case requires at least one artifact-backed evidence item.');\n\t}\n\treturn {\n\t\tvalid: blockers.length === 0,\n\t\tblockers,\n\t\tevidenceTypes: evidenceTypes as ResolveIOSupportDiagnosisEvidence['type'][],\n\t\treproductionEvidenceTypes: reproductionEvidenceTypes as ResolveIOSupportDiagnosisEvidence['type'][],\n\t\trootCauseEvidenceTypes: rootCauseEvidenceTypes as ResolveIOSupportDiagnosisEvidence['type'][],\n\t\tartifactBackedEvidenceCount,\n\t\trouteOnlyReproductionEvidenceCount,\n\t\tbusinessReproductionEvidenceCount,\n\t\thasTicketContext,\n\t\thasRootCauseEvidence,\n\t\thasReproductionEvidence\n\t};\n}\n\nexport function normalizeResolveIOSupportDiagnosisGate(value: any, now?: Date | string): ResolveIOSupportDiagnosisGate | undefined {\n\tconst rootSource = cleanObject(value);\n\tconst source = cleanObject(\n\t\trootSource.support_diagnosis_gate\n\t\t|| rootSource.supportDiagnosisGate\n\t\t|| rootSource.diagnosis_gate\n\t\t|| rootSource.diagnosisGate\n\t\t|| rootSource\n\t);\n\tif (!Object.keys(source).length) {\n\t\treturn undefined;\n\t}\n\tconst rawIssueCase = source.issue_case || source.issueCase;\n\tconst rawHypothesis = source.accepted_hypothesis || source.acceptedHypothesis;\n\tconst rawFailingPath = source.failing_path || source.failingPath;\n\tconst rawProofPlan = source.proof_plan || source.proofPlan;\n\tconst issueCaseSource = cleanObject(rawIssueCase);\n\tconst hypothesisSource = cleanObject(source.accepted_hypothesis || source.acceptedHypothesis);\n\tconst failingPathSource = cleanObject(source.failing_path || source.failingPath);\n\tconst proofPlanSource = cleanObject(source.proof_plan || source.proofPlan);\n\tconst issueCaseText = supportDiagnosisNarrativeText(rawIssueCase, 1200);\n\tconst hypothesisText = supportDiagnosisNarrativeText(rawHypothesis, 1200);\n\tconst failingPathText = supportDiagnosisNarrativeText(rawFailingPath, 1200);\n\tconst proofPlanRows = normalizeSupportDiagnosisProofPlanRows(rawProofPlan);\n\tconst issueClass = normalizeIssueClass(source.issue_class || source.issueClass);\n\tconst featureRequestClassified = supportDiagnosisLooksLikeClassifiedFeatureRequest(source, issueCaseText, failingPathText, hypothesisText);\n\tconst shouldDeriveLooseProofPlan = Array.isArray(rawProofPlan) || featureRequestClassified;\n\tconst looseProofSubject = cleanText(issueCaseText || failingPathText || hypothesisText, 1200);\n\tconst proofPlanBefore = pickText(proofPlanSource, ['before', 'before_state', 'beforeState', 'precondition'], 1000);\n\tconst proofPlanBeforeUnavailable = pickText(proofPlanSource, ['before_state_unavailable_reason', 'beforeStateUnavailableReason', 'before_unavailable_reason'], 1000)\n\t\t|| (featureRequestClassified ? 'Before-state business proof is not available because this is classified as net-new feature scope; current evidence proves the requested route/workflow is not implemented yet.' : '');\n\tconst derivedLooseBefore = shouldDeriveLooseProofPlan && looseProofSubject\n\t\t? `Capture the before-state business value from the reported workflow: ${looseProofSubject}`\n\t\t: '';\n\tconst proofPlanBeforeResolved = proofPlanBefore || derivedLooseBefore;\n\tconst proofPlanAction = pickText(proofPlanSource, ['action', 'browser_action', 'browserAction', 'steps'], 1000)\n\t\t|| proofPlanRows.action\n\t\t|| (shouldDeriveLooseProofPlan ? 'Execute the issue-specific workflow and inspect the affected data/rendering path.' : '');\n\tconst proofPlanAfter = pickText(proofPlanSource, ['after', 'after_state', 'afterState', 'expected_after'], 1000)\n\t\t|| proofPlanRows.after\n\t\t|| (shouldDeriveLooseProofPlan && looseProofSubject ? `The workflow produces the expected customer-facing business value instead of the reported wrong result for: ${looseProofSubject}` : '');\n\tconst proofPlanBusinessAssertion = pickText(proofPlanSource, ['business_assertion', 'businessAssertion', 'assertion'], 1000)\n\t\t|| proofPlanRows.business_assertion\n\t\t|| (shouldDeriveLooseProofPlan && looseProofSubject ? `The customer-reported condition is resolved with business data proof: ${looseProofSubject}` : '');\n\tconst proofPlanDataAssertion = pickText(proofPlanSource, ['data_assertion', 'dataAssertion', 'mongo_delta', 'mongoDelta'], 1000)\n\t\t|| proofPlanRows.data_assertion\n\t\t|| (shouldDeriveLooseProofPlan ? 'DOM/data or Mongo proof shows the expected business value and does not show the reported wrong value.' : '');\n\tconst proofPlanArtifactExpectation = pickText(proofPlanSource, ['artifact_expectation', 'artifactExpectation', 'artifact', 'screenshot'], 1000)\n\t\t|| (shouldDeriveLooseProofPlan && proofPlanBusinessAssertion ? 'browser trace/screenshot plus persisted DOM/data or Mongo delta tied to the business assertion' : '');\n\tconst derivedBusinessProofContract = shouldDeriveLooseProofPlan && proofPlanBusinessAssertion ? {\n\t\tissue_class: issueClass || source.issue_class || source.issueClass,\n\t\tsetup_state: proofPlanBeforeResolved || proofPlanBeforeUnavailable,\n\t\taction_under_test: proofPlanAction,\n\t\texpected_business_state_change: proofPlanAfter || proofPlanBusinessAssertion,\n\t\tprohibited_false_pass: 'Route load, screenshot, scorecard, or model claim alone is not acceptance.',\n\t\tproof_artifacts: [\n\t\t\tproofPlanArtifactExpectation,\n\t\t\t'DOM/data assertion artifact',\n\t\t\t'persisted record or Mongo delta proof'\n\t\t].filter(Boolean),\n\t\tdata_or_dom_assertion: proofPlanDataAssertion || proofPlanBusinessAssertion\n\t} : undefined;\n\tconst businessProofContract = normalizeSupportDiagnosisBusinessProofContract(\n\t\tproofPlanSource.business_proof_contract || proofPlanSource.businessProofContract || source.business_proof_contract || source.businessProofContract,\n\t\tissueClass || source.issue_class || source.issueClass\n\t) || normalizeSupportDiagnosisBusinessProofContract(derivedBusinessProofContract, issueClass || source.issue_class || source.issueClass);\n\tconst rawOwnerFiles = cleanList(source.owner_files || source.ownerFiles, 20, 500)\n\t\t.map(normalizeOwnerFilePath)\n\t\t.filter(Boolean);\n\tconst productOwnerFiles = rawOwnerFiles.filter((ownerFile) => !ownerFileLooksNonProductEvidence(ownerFile));\n\tconst ownerFiles = productOwnerFiles.length ? productOwnerFiles : rawOwnerFiles;\n\tconst explicitEvidence = normalizeSupportDiagnosisEvidence(source.evidence, ownerFiles);\n\tconst derivedFeatureRequestEvidence: ResolveIOSupportDiagnosisEvidence[] = !explicitEvidence.length && featureRequestClassified ? [\n\t\t...(issueCaseText ? [{\n\t\t\tid: `evidence-${hashResolveIOSupportV5Evidence({ type: 'ticket', summary: issueCaseText }).slice(0, 12)}`,\n\t\t\ttype: 'ticket' as const,\n\t\t\tsummary: issueCaseText\n\t\t}] : []),\n\t\t...ownerFiles.map((ownerFile) => ({\n\t\t\tid: `evidence-${hashResolveIOSupportV5Evidence({ type: 'code', ownerFile, failingPathText, hypothesisText }).slice(0, 12)}`,\n\t\t\ttype: 'code' as const,\n\t\t\tsummary: cleanText([\n\t\t\t\t`Owner file inspected for classified feature-request scope: ${ownerFile}.`,\n\t\t\t\tfailingPathText || hypothesisText || 'No implemented route/module path was identified.'\n\t\t\t].filter(Boolean).join(' '), 1200),\n\t\t\tartifactPath: ownerFile,\n\t\t\townerFiles: [ownerFile]\n\t\t}))\n\t] : [];\n\tconst diagnosisEvidence = explicitEvidence.length ? explicitEvidence : derivedFeatureRequestEvidence;\n\tconst ticketEvidenceText = diagnosisEvidence.find((entry) => entry.type === 'ticket')?.summary || '';\n\tconst browserEvidenceText = diagnosisEvidence.find((entry) => entry.type === 'browser')?.summary || '';\n\tconst rootCauseEvidenceText = diagnosisEvidence.find((entry) => SUPPORT_ROOT_CAUSE_EVIDENCE_TYPES.has(entry.type))?.summary || '';\n\tconst explicitCustomerComplaint = pickText(issueCaseSource, ['customer_complaint', 'customerComplaint', 'complaint', 'request', 'summary'], 1200);\n\tconst customerIssueCaseText = (() => {\n\t\tif (explicitCustomerComplaint) {\n\t\t\treturn explicitCustomerComplaint;\n\t\t}\n\t\tconst evidenceCustomerText = cleanText([ticketEvidenceText, browserEvidenceText]\n\t\t\t.filter(Boolean)\n\t\t\t.join(' '), 1200);\n\t\tif (evidenceCustomerText) {\n\t\t\treturn evidenceCustomerText;\n\t\t}\n\t\tconst issueText = cleanText(issueCaseText, 1200);\n\t\tif (issueText && !supportDiagnosisTextLooksGeneric(issueText, 18)\n\t\t\t&& !/\\b(general inquiry|existing behavior|not a confirmed runtime failure)\\b/i.test(issueText)) {\n\t\t\treturn issueText;\n\t\t}\n\t\treturn '';\n\t})();\n\tconst issueCasePrimaryText = customerIssueCaseText || cleanText([\n\t\trootCauseEvidenceText,\n\t\tfailingPathText,\n\t\thypothesisText\n\t].filter(Boolean).join(' '), 1200);\n\tconst routeModule = pickText(issueCaseSource, ['route_module', 'routeModule', 'route', 'module', 'screen'], 500)\n\t\t|| pickText(source, ['route_module', 'routeModule', 'module', 'screen'], 500)\n\t\t|| pickText(failingPathSource, ['route', 'module', 'path', 'description', 'reported', 'verified', 'reported_path', 'reportedPath', 'verified_path', 'verifiedPath'], 500)\n\t\t|| failingPathText\n\t\t|| (featureRequestClassified ? 'net-new support feature workflow' : '');\n\tconst expectedResult = pickText(issueCaseSource, ['expected_result', 'expectedResult', 'expected'], 1000)\n\t\t|| pickText(source, ['expected_result', 'expectedResult', 'expected', 'primary_goal', 'primaryGoal', 'requested_behavior', 'requestedBehavior'], 1000)\n\t\t|| (!featureRequestClassified && issueCasePrimaryText ? `Expected customer-facing business result from ticket evidence: ${issueCasePrimaryText}` : '')\n\t\t|| (featureRequestClassified && issueCasePrimaryText ? `Implement the requested workflow: ${issueCasePrimaryText}` : '');\n\tconst observedResult = pickText(issueCaseSource, ['observed_result', 'observedResult', 'observed', 'actual'], 1000)\n\t\t|| pickText(source, ['observed_result', 'observedResult', 'observed', 'actual', 'current_state', 'currentState'], 1000)\n\t\t|| (!featureRequestClassified && (browserEvidenceText || issueCasePrimaryText) ? `Observed/reported wrong business result from ticket or screenshot evidence: ${browserEvidenceText || issueCasePrimaryText}` : '')\n\t\t|| (featureRequestClassified ? `Current repo evidence indicates no implemented route/module for ${routeModule || 'the requested workflow'}.` : '');\n\tconst accountCustomerContext = pickText(issueCaseSource, ['account_customer_context', 'accountCustomerContext', 'account', 'customer', 'user', 'context'], 800)\n\t\t|| pickText(source, ['account_customer_context', 'accountCustomerContext', 'affected_account_user', 'affectedAccountUser', 'account', 'customer', 'client', 'user', 'context'], 800)\n\t\t|| (issueCasePrimaryText ? 'Customer/account context from support ticket intake and hydrated support attachments.' : '')\n\t\t|| (featureRequestClassified ? 'Customer/account context from support ticket intake.' : '');\n\tconst rawReproductionStatus = issueCaseSource.reproduction_status || issueCaseSource.reproductionStatus || source.reproduction_status;\n\tconst hasRuntimeReproductionEvidence = diagnosisEvidence.some((entry) => SUPPORT_REPRODUCTION_EVIDENCE_TYPES.has(entry.type));\n\tconst explicitHypothesisEvidence = collectSupportDiagnosisTextListFromValues([\n\t\thypothesisSource.evidence,\n\t\thypothesisSource.evidence_refs,\n\t\thypothesisSource.evidenceRefs,\n\t\thypothesisSource.code_evidence,\n\t\thypothesisSource.codeEvidence,\n\t\tsource.hypothesis_evidence,\n\t\tsource.hypothesisEvidence,\n\t\thypothesisSource\n\t], 10, 800);\n\tconst gate: ResolveIOSupportDiagnosisGate = {\n\t\tissue_case: {\n\t\t\tcustomer_complaint: explicitCustomerComplaint || customerIssueCaseText,\n\t\t\texpected_result: expectedResult,\n\t\t\tobserved_result: observedResult,\n\t\t\troute_module: routeModule,\n\t\t\taccount_customer_context: accountCustomerContext,\n\t\t\treproduction_status: rawReproductionStatus\n\t\t\t\t? normalizeReproductionStatus(rawReproductionStatus)\n\t\t\t\t: (featureRequestClassified || !hasRuntimeReproductionEvidence ? 'classified' : 'reproduced'),\n\t\t\treproduction_blocker: pickText(issueCaseSource, ['reproduction_blocker', 'reproductionBlocker', 'blocked_reason', 'blockedReason'], 1000)\n\t\t},\n\t\tissue_class: issueClass || 'missing_wrong_data',\n\t\taccepted_hypothesis: {\n\t\t\tstatement: pickText(hypothesisSource, ['statement', 'hypothesis', 'root_cause', 'rootCause', 'summary'], 1200)\n\t\t\t\t|| hypothesisText,\n\t\t\tfalsifiable_test: pickText(hypothesisSource, ['falsifiable_test', 'falsifiableTest', 'test', 'proof', 'falsifier'], 1000)\n\t\t\t\t|| (failingPathText ? `Verify the accepted hypothesis against the failing path evidence: ${failingPathText}` : ''),\n\t\t\tevidence: explicitHypothesisEvidence.length\n\t\t\t\t? explicitHypothesisEvidence\n\t\t\t\t: diagnosisEvidence.map((entry) => [entry.artifactPath, entry.summary].filter(Boolean).join(': ')).filter(Boolean).slice(0, 10)\n\t\t},\n\t\trejected_alternatives: normalizeSupportDiagnosisRejectedAlternatives(source.rejected_alternatives || source.rejectedAlternatives),\n\t\tfailing_path: {\n\t\t\tfrontend: pickText(failingPathSource, ['frontend', 'frontend_path', 'frontendPath', 'eventPath'], 700),\n\t\t\tbackend: pickText(failingPathSource, ['backend', 'backend_path', 'backendPath', 'methodPublicationPath'], 700),\n\t\t\tshared_library: pickText(failingPathSource, ['shared_library', 'sharedLibrary', 'library', 'lib'], 700),\n\t\t\tdata_query: pickText(failingPathSource, ['data_query', 'dataQuery', 'query'], 700),\n\t\t\tdescription: pickText(failingPathSource, ['description', 'path_chain', 'pathChain', 'chain', 'visibility_gate_trace', 'visibilityGateTrace', 'reported', 'verified', 'reported_path', 'reportedPath', 'verified_path', 'verifiedPath', 'path', 'assessment', 'summary', 'route'], 1200) || failingPathText\n\t\t},\n\t\towner_files: ownerFiles,\n\t\tproof_plan: {\n\t\t\tbefore: proofPlanBeforeResolved,\n\t\t\tbefore_state_unavailable_reason: proofPlanBeforeUnavailable,\n\t\t\taction: proofPlanAction,\n\t\t\tafter: proofPlanAfter,\n\t\t\tbusiness_assertion: proofPlanBusinessAssertion,\n\t\t\troute: pickText(proofPlanSource, ['route', 'url'], 500),\n\t\t\tdata_assertion: proofPlanDataAssertion,\n\t\t\tartifact_expectation: proofPlanArtifactExpectation,\n\t\t\tbusiness_proof_contract: businessProofContract\n\t\t},\n\t\tsimilar_tickets: normalizeSupportDiagnosisHints(source.similar_tickets || source.similarTickets),\n\t\tsimilar_commits: normalizeSupportDiagnosisHints(source.similar_commits || source.similarCommits),\n\t\tevidence: diagnosisEvidence,\n\t\tstatus: (cleanText(source.status, 80).toLowerCase() as ResolveIOSupportDiagnosisGateStatus) || 'incomplete',\n\t\tupdatedAt: isoNow(now || source.updatedAt || source.updated_at)\n\t};\n\tif (!['missing', 'incomplete', 'blocked', 'passed'].includes(gate.status)) {\n\t\tgate.status = 'incomplete';\n\t}\n\treturn gate;\n}\n\nexport function extractResolveIOSupportDiagnosisGateFromText(value: string, now?: Date | string): ResolveIOSupportDiagnosisGate | undefined {\n\tconst text = String(value || '').trim();\n\tif (!text) {\n\t\treturn undefined;\n\t}\n\tconst candidates: string[] = [];\n\tconst fenced = Array.from(text.matchAll(/```(?:json)?\\s*([\\s\\S]*?)```/gi)).map((match) => match[1]);\n\tcandidates.push(...fenced);\n\tconst jsonBlock = text.match(/\\{[\\s\\S]*\\}/);\n\tif (jsonBlock) {\n\t\tcandidates.push(jsonBlock[0]);\n\t}\n\tfor (const candidate of candidates) {\n\t\ttry {\n\t\t\tconst parsed = JSON.parse(candidate);\n\t\t\tconst wrapped = parsed?.support_diagnosis_gate || parsed?.supportDiagnosisGate || parsed?.diagnosis_gate || parsed?.diagnosisGate || parsed;\n\t\t\tconst normalized = normalizeResolveIOSupportDiagnosisGate(wrapped, now);\n\t\t\tif (normalized) {\n\t\t\t\treturn normalized;\n\t\t\t}\n\t\t}\n\t\tcatch {\n\t\t\t// Continue trying less exact JSON candidates.\n\t\t}\n\t}\n\treturn undefined;\n}\n\nexport function validateResolveIOSupportDiagnosisGate(\n\tvalue: any,\n\toptions: { maxOwnerFiles?: number } = {}\n): ResolveIOSupportDiagnosisGateValidation {\n\tconst normalized = normalizeResolveIOSupportDiagnosisGate(value);\n\tif (!normalized) {\n\t\treturn { valid: false, status: 'missing', blockers: ['SupportDiagnosisGate is missing.'] };\n\t}\n\tconst blockers: string[] = [];\n\tconst maxOwnerFiles = Math.max(1, Number(options.maxOwnerFiles || 8) || 8);\n\tif (!normalized.issue_case.customer_complaint) {\n\t\tblockers.push('Diagnosis issue_case.customer_complaint is required.');\n\t}\n\tif (!normalized.issue_case.expected_result) {\n\t\tblockers.push('Diagnosis issue_case.expected_result is required.');\n\t}\n\tif (!normalized.issue_case.observed_result) {\n\t\tblockers.push('Diagnosis issue_case.observed_result is required.');\n\t}\n\tif (!normalized.issue_case.route_module) {\n\t\tblockers.push('Diagnosis issue_case.route_module is required.');\n\t}\n\tif (!normalized.issue_case.account_customer_context) {\n\t\tblockers.push('Diagnosis issue_case.account_customer_context is required.');\n\t}\n\tif (normalized.issue_case.reproduction_status === 'blocked' && !normalized.issue_case.reproduction_blocker) {\n\t\tblockers.push('Diagnosis blocked reproduction requires issue_case.reproduction_blocker.');\n\t}\n\tif (!normalizeIssueClass(normalized.issue_class)) {\n\t\tblockers.push('Diagnosis issue_class must be one of the supported issue-class probes.');\n\t}\n\tif (!normalized.accepted_hypothesis.statement) {\n\t\tblockers.push('Diagnosis accepted_hypothesis.statement is required.');\n\t}\n\tif (!normalized.accepted_hypothesis.falsifiable_test) {\n\t\tblockers.push('Diagnosis accepted_hypothesis.falsifiable_test is required.');\n\t}\n\tif (!normalized.accepted_hypothesis.evidence.length) {\n\t\tblockers.push('Diagnosis accepted_hypothesis.evidence must cite proof.');\n\t}\n\tif (!normalized.rejected_alternatives.length) {\n\t\tblockers.push('Diagnosis rejected_alternatives must include at least one rejected theory.');\n\t}\n\tif (!normalized.failing_path.description\n\t\t&& !normalized.failing_path.frontend\n\t\t&& !normalized.failing_path.backend\n\t\t&& !normalized.failing_path.shared_library\n\t\t&& !normalized.failing_path.data_query) {\n\t\tblockers.push('Diagnosis failing_path must identify frontend, backend, query, shared library, or path description.');\n\t}\n\tif (!normalized.owner_files.length) {\n\t\tblockers.push('Diagnosis owner_files must contain the small editable file set.');\n\t}\n\tif (normalized.owner_files.length > maxOwnerFiles) {\n\t\tblockers.push(`Diagnosis owner_files has ${normalized.owner_files.length} entries; maximum is ${maxOwnerFiles}.`);\n\t}\n\tconst broadFiles = normalized.owner_files.filter(ownerFileLooksBroad);\n\tif (broadFiles.length) {\n\t\tblockers.push(`Diagnosis owner_files contains broad or unsafe path(s): ${broadFiles.join(', ')}.`);\n\t}\n\tconst nonProductEvidenceFiles = normalized.owner_files.filter(ownerFileLooksNonProductEvidence);\n\tif (nonProductEvidenceFiles.length) {\n\t\tblockers.push(`Diagnosis owner_files must be exact product/source owner files, not tests/docs/artifacts/logs/screenshots: ${nonProductEvidenceFiles.join(', ')}.`);\n\t}\n\tconst genericFields = collectGenericSupportDiagnosisFields(normalized);\n\tif (genericFields.length) {\n\t\tblockers.push(`Diagnosis fields are too generic or placeholder-like; replace with ticket-specific falsifiable details: ${genericFields.join(', ')}.`);\n\t}\n\tif (!normalized.proof_plan.before && !normalized.proof_plan.before_state_unavailable_reason) {\n\t\tblockers.push('Diagnosis proof_plan.before is required unless proof_plan.before_state_unavailable_reason explains why before-state proof is impossible.');\n\t}\n\tif (!normalized.proof_plan.action) {\n\t\tblockers.push('Diagnosis proof_plan.action is required.');\n\t}\n\tif (!normalized.proof_plan.after) {\n\t\tblockers.push('Diagnosis proof_plan.after is required.');\n\t}\n\tif (!normalized.proof_plan.business_assertion) {\n\t\tblockers.push('Diagnosis proof_plan.business_assertion is required.');\n\t}\n\tif (proofPlanLooksRouteOnly(normalized.proof_plan)) {\n\t\tblockers.push('Diagnosis proof_plan cannot be route-load, screen-visible, or screenshot-only; it must name the business state/data/control change that proves the issue is fixed.');\n\t}\n\tconst proofContract = normalized.proof_plan.business_proof_contract;\n\tif (!proofContract) {\n\t\tblockers.push('Diagnosis proof_plan.business_proof_contract is required.');\n\t}\n\telse {\n\t\tif (proofContract.issue_class !== normalized.issue_class) {\n\t\t\tblockers.push(`Diagnosis proof_plan.business_proof_contract.issue_class (${proofContract.issue_class}) must match diagnosis issue_class (${normalized.issue_class}).`);\n\t\t}\n\t\tif (!proofContract.setup_state) {\n\t\t\tblockers.push('Diagnosis proof_plan.business_proof_contract.setup_state is required.');\n\t\t}\n\t\tif (!proofContract.action_under_test) {\n\t\t\tblockers.push('Diagnosis proof_plan.business_proof_contract.action_under_test is required.');\n\t\t}\n\t\tif (!proofContract.expected_business_state_change) {\n\t\t\tblockers.push('Diagnosis proof_plan.business_proof_contract.expected_business_state_change is required.');\n\t\t}\n\t\tif (!proofContract.prohibited_false_pass) {\n\t\t\tblockers.push('Diagnosis proof_plan.business_proof_contract.prohibited_false_pass is required.');\n\t\t}\n\t\tif (!proofContract.proof_artifacts.length) {\n\t\t\tblockers.push('Diagnosis proof_plan.business_proof_contract.proof_artifacts must include at least one required artifact.');\n\t\t}\n\t\telse if (proofContract.proof_artifacts.every(supportProofArtifactLooksVague)) {\n\t\t\tblockers.push('Diagnosis proof_plan.business_proof_contract.proof_artifacts are too generic; include replayable DOM/data/Mongo/network/artifact proof tied to the business assertion.');\n\t\t}\n\t\tif (!proofContract.data_or_dom_assertion) {\n\t\t\tblockers.push('Diagnosis proof_plan.business_proof_contract.data_or_dom_assertion is required.');\n\t\t}\n\t}\n\tif (!normalized.evidence.length) {\n\t\tblockers.push('Diagnosis evidence must include ticket/code/browser/log/Mongo proof.');\n\t}\n\tconst evidenceQuality = evaluateResolveIOSupportDiagnosisEvidenceQuality(normalized);\n\tblockers.push(...evidenceQuality.blockers);\n\tconst proofMatrix = buildResolveIOSupportDiagnosisProofMatrix(normalized);\n\tblockers.push(...proofMatrix.blockers);\n\tnormalized.status = blockers.length ? 'incomplete' : 'passed';\n\treturn {\n\t\tvalid: blockers.length === 0,\n\t\tstatus: normalized.status,\n\t\tblockers,\n\t\tnormalized,\n\t\tevidenceQuality,\n\t\tproofMatrix\n\t};\n}\n\nfunction normalizeSupportConfidenceLevel(value: any): ResolveIOSupportCustomerReplyPolicy['confidenceLevel'] {\n\tconst normalized = cleanText(value?.level || value?.confidenceLevel || value?.confidence_level || value?.category || value, 80).toLowerCase();\n\tif (/^high$|^strong$|^accepted$|^a\\+?$/.test(normalized)) {\n\t\treturn 'high';\n\t}\n\tif (/^medium$|^moderate$|^review$/.test(normalized)) {\n\t\treturn 'medium';\n\t}\n\tif (/^low$|^weak$|^blocked$|^unknown$/.test(normalized)) {\n\t\treturn normalized === 'unknown' ? 'unknown' : 'low';\n\t}\n\tconst score = Number(value?.score ?? value?.confidenceScore ?? value?.confidence_score);\n\tif (Number.isFinite(score)) {\n\t\tif (score >= 0.8) {\n\t\t\treturn 'high';\n\t\t}\n\t\tif (score >= 0.55) {\n\t\t\treturn 'medium';\n\t\t}\n\t\treturn 'low';\n\t}\n\treturn normalized ? 'unknown' : 'unknown';\n}\n\nfunction supportReleaseLooksBlocked(value: any): boolean {\n\treturn /\\b(fail|failed|error|blocked|missing|empty|stale|denied|timeout)\\b/i.test(cleanText(value, 200));\n}\n\nfunction supportStatusLooksPassed(value: any): boolean {\n\treturn /\\b(pass|passed|success|succeeded|complete|completed|ready|not_required|not required)\\b/i.test(cleanText(value, 200));\n}\n\nfunction nestedObject(source: Record<string, any>, ...keys: string[]): Record<string, any> {\n\tfor (const key of keys) {\n\t\tconst value = cleanObject(source[key]);\n\t\tif (Object.keys(value).length) {\n\t\t\treturn value;\n\t\t}\n\t}\n\treturn {};\n}\n\nfunction resolveSupportReplyReleaseGate(input: ResolveIOSupportCustomerReplyPolicyInput): {\n\tblocked: boolean;\n\treason: string;\n\tstatus: string;\n\tblockers: string[];\n\trequiredEvidence: string[];\n\tnextCommands: string[];\n\thotfixContinuation?: ResolveIOAIManagerHotfixContinuationDecision;\n} {\n\tconst releaseEvidence = cleanObject(input.releaseEvidence);\n\tconst releaseStatus = cleanText(\n\t\tinput.releaseStatus\n\t\t|| releaseEvidence.status\n\t\t|| releaseEvidence.releaseStatus\n\t\t|| releaseEvidence.release_status\n\t\t|| nestedObject(releaseEvidence, 'deploy_production', 'production').status\n\t\t|| nestedObject(releaseEvidence, 'deploy_dev', 'dev').status\n\t\t|| nestedObject(releaseEvidence, 'push_master', 'pushMaster').status,\n\t\t200\n\t);\n\tconst hotfixEvidenceContainer = nestedObject(releaseEvidence, 'hotfix_evidence', 'hotfixEvidence');\n\tconst currentHotfixEvidence = nestedObject(hotfixEvidenceContainer, 'current');\n\tconst hotfixEvidence = cleanObject(\n\t\tinput.hotfixEvidence\n\t\t|| hotfixEvidenceContainer.normalized\n\t\t|| hotfixEvidenceContainer.evidence\n\t\t|| currentHotfixEvidence.evidence\n\t\t|| currentHotfixEvidence.normalized\n\t\t|| hotfixEvidenceContainer.current_evidence\n\t\t|| hotfixEvidenceContainer.currentEvidence\n\t);\n\tconst hotfixCommitProof = nestedObject(releaseEvidence, 'hotfix_commit_proof', 'hotfixCommitProof');\n\tconst hotfixDurabilityContract = nestedObject(releaseEvidence, 'hotfix_durability_contract', 'hotfixDurabilityContract');\n\tconst hotfixCommitGuard = cleanObject(\n\t\thotfixCommitProof.github_commit_guard\n\t\t|| hotfixCommitProof.githubCommitGuard\n\t\t|| hotfixDurabilityContract.hotfix_commit_guard\n\t\t|| hotfixDurabilityContract.hotfixCommitGuard\n\t\t|| hotfixEvidenceContainer.github_commit_guard\n\t\t|| hotfixEvidenceContainer.githubCommitGuard\n\t);\n\tconst hotfixEvidenceStatus = cleanText(hotfixEvidenceContainer.status || currentHotfixEvidence.status || hotfixEvidence.status, 120);\n\tconst releaseGateStatus = cleanText(\n\t\thotfixEvidence.releaseGateStatus\n\t\t|| hotfixEvidence.release_gate_status\n\t\t|| hotfixEvidenceContainer.release_gate_status\n\t\t|| hotfixEvidenceContainer.releaseGateStatus\n\t\t|| releaseEvidence.releaseGateStatus\n\t\t|| releaseEvidence.release_gate_status,\n\t\t160\n\t);\n\tconst releaseGatePassed = input.releaseGatePassed === true\n\t\t|| supportStatusLooksPassed(releaseGateStatus);\n\tconst missingCommitProofFields = Array.from(new Set([\n\t\t...cleanList(hotfixCommitProof.missing_fields || hotfixCommitProof.missingFields, 12, 160),\n\t\t...cleanList(hotfixEvidenceContainer.missing_fields || hotfixEvidenceContainer.missingFields, 12, 160),\n\t\t...cleanList(hotfixDurabilityContract.missing_commit_proof_fields || hotfixDurabilityContract.missingCommitProofFields, 12, 160),\n\t\t...cleanList(hotfixCommitGuard.missing_fields || hotfixCommitGuard.missingFields, 12, 160)\n\t].filter(Boolean)));\n\tconst commitProofRequired = hotfixCommitProof.required === true\n\t\t|| hotfixEvidenceContainer.github_commit_required === true\n\t\t|| hotfixEvidenceContainer.githubCommitRequired === true\n\t\t|| hotfixCommitGuard.required === true\n\t\t|| hotfixDurabilityContract.required === true;\n\tconst commitProofPassed = hotfixCommitProof.passed === true\n\t\t|| hotfixEvidenceContainer.github_commit_proof_passed === true\n\t\t|| hotfixEvidenceContainer.githubCommitProofPassed === true\n\t\t|| hotfixCommitGuard.passed === true;\n\tconst commitProofBlocked = hotfixCommitProof.blocked === true\n\t\t|| hotfixEvidenceContainer.manager_must_commit_before_hotfix === true\n\t\t|| hotfixEvidenceContainer.managerMustCommitBeforeHotfix === true\n\t\t|| hotfixDurabilityContract.live_hotfix_blocked_until_commit === true\n\t\t|| hotfixDurabilityContract.liveHotfixBlockedUntilCommit === true\n\t\t|| hotfixCommitGuard.manager_must_commit_before_hotfix === true\n\t\t|| hotfixCommitGuard.managerMustCommitBeforeHotfix === true\n\t\t|| (commitProofRequired && !commitProofPassed)\n\t\t|| missingCommitProofFields.length > 0;\n\tconst statusBlocked = supportReleaseLooksBlocked(releaseStatus)\n\t\t|| supportReleaseLooksBlocked(hotfixEvidenceStatus)\n\t\t|| supportReleaseLooksBlocked(releaseGateStatus);\n\tconst blockers: string[] = [];\n\tif (statusBlocked) {\n\t\tblockers.push(`release_status=${releaseStatus || hotfixEvidenceStatus || releaseGateStatus || 'blocked'}`);\n\t}\n\tif (commitProofBlocked) {\n\t\tblockers.push('hotfix_commit_proof_missing_or_blocked');\n\t}\n\tfor (const field of missingCommitProofFields) {\n\t\tblockers.push(`missing_${field}`);\n\t}\n\tconst shouldEvaluateHotfix = statusBlocked || commitProofRequired || Object.keys(hotfixEvidence).length > 0;\n\tconst hotfixContinuation = shouldEvaluateHotfix\n\t\t? decideResolveIOAIManagerHotfixContinuation({\n\t\t\tevidence: hotfixEvidence,\n\t\t\tpolicy: input.releasePolicy,\n\t\t\treleaseGatePassed,\n\t\t\tfailureClass: 'release',\n\t\t\tblocker: blockers.join('; ') || releaseStatus || hotfixEvidenceStatus || releaseGateStatus,\n\t\t\tnow: undefined\n\t\t})\n\t\t: undefined;\n\tif (hotfixContinuation && hotfixContinuation.action !== 'continue_runner' && (statusBlocked || commitProofBlocked || hotfixContinuation.action === 'record_hotfix_evidence' || hotfixContinuation.action === 'rerun_release_gate')) {\n\t\tblockers.push(`hotfix_next_action=${hotfixContinuation.action}`);\n\t}\n\tconst uniqueBlockers = Array.from(new Set(blockers.filter(Boolean)));\n\treturn {\n\t\tblocked: uniqueBlockers.length > 0,\n\t\treason: uniqueBlockers.length\n\t\t\t? 'support_reply_release_or_hotfix_evidence_blocked'\n\t\t\t: 'support_reply_release_or_hotfix_evidence_clear',\n\t\tstatus: releaseStatus || hotfixEvidenceStatus || releaseGateStatus || '',\n\t\tblockers: uniqueBlockers,\n\t\trequiredEvidence: [\n\t\t\t'release status passed or explicitly not required',\n\t\t\t'hotfix commit proof clear when hotfix evidence is required',\n\t\t\t'sourceCommitSha, githubCommitUrl, gitCommitStatus=passed, gitPushStatus=passed when backend hotfix was used',\n\t\t\t'release gate passed when hotfix evidence requires gate rerun'\n\t\t],\n\t\tnextCommands: hotfixContinuation?.nextCommands?.length\n\t\t\t? hotfixContinuation.nextCommands\n\t\t\t: ['record_hotfix_evidence', 'commit_and_push_hotfix_to_github', 'rerun_release_gate_once'],\n\t\thotfixContinuation\n\t};\n}\n\nfunction supportBusinessAssertionPassed(value: any): boolean {\n\treturn /^(pass|passed|accepted|business_assertion_passed)$/i.test(cleanText(value, 80));\n}\n\nfunction supportBusinessAssertionFailed(value: any): boolean {\n\treturn /^(fail|failed|blocked|needs_repair|business_assertion_failed)$/i.test(cleanText(value, 80));\n}\n\nfunction supportBusinessAssertionRouteOnly(value: any): boolean {\n\treturn /^(route_probe_pass|route_only_pass|route_pass|route_probe|route_loaded)$/i.test(cleanText(value, 80));\n}\n\nfunction normalizeSupportBusinessProofAssertions(input: ResolveIOSupportBusinessProofReadinessInput): ResolveIOSupportBusinessProofAssertion[] {\n\tconst gate = normalizeResolveIOSupportDiagnosisGate(input.diagnosisGate);\n\tconst proofPlan = gate?.proof_plan;\n\tconst proofContract = proofPlan?.business_proof_contract;\n\tconst artifactPaths = cleanList(input.businessProofArtifacts, 30, 500);\n\tconst assertions: ResolveIOSupportBusinessProofAssertion[] = [];\n\tfor (const entry of Array.isArray(input.businessAssertions) ? input.businessAssertions : []) {\n\t\tconst source = cleanObject(entry);\n\t\tif (!Object.keys(source).length) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst metadata = cleanObject(source.metadata);\n\t\tassertions.push({\n\t\t\tassertion: pickText(source, ['assertion', 'name', 'workflow', 'expected'], 1000) || proofPlan?.business_assertion || 'business assertion',\n\t\t\tstatus: cleanText(source.status || source.outcome || source.result, 80),\n\t\t\tworkflow: pickText(source, ['workflow', 'workflowName'], 400),\n\t\t\troute: pickText(source, ['route', 'url'], 500),\n\t\t\tbefore: pickText(source, ['before', 'before_state', 'beforeState'], 1000),\n\t\t\taction: pickText(source, ['action', 'action_under_test', 'actionUnderTest'], 1000),\n\t\t\texpected: pickText(source, ['expected', 'expected_business_state_change', 'expectedBusinessStateChange'], 1000),\n\t\t\tafter: pickText(source, ['after', 'after_state', 'afterState'], 1000),\n\t\t\tobserved: pickText(source, ['observed', 'actual'], 1000),\n\t\t\tdataProof: pickText(source, ['dataProof', 'data_proof', 'proof', 'domProof', 'dom_proof'], 1400),\n\t\t\tmongoDelta: cleanObject(source.mongoDelta || source.mongo_delta),\n\t\t\tartifactPaths: cleanList(source.artifactPaths || source.artifact_paths || source.artifacts, 30, 500),\n\t\t\tmessage: pickText(source, ['message', 'reason', 'summary'], 1000),\n\t\t\tacceptanceBlocked: source.acceptanceBlocked === true || source.acceptance_blocked === true || metadata.acceptanceBlocked === true || metadata.acceptance_blocked === true,\n\t\t\trouteOnly: source.routeOnly === true || source.route_only === true || source.outcome === 'route_only_pass' || source.status === 'route_probe_pass' || metadata.routeOnly === true || metadata.route_only === true,\n\t\t\tmetadata\n\t\t});\n\t}\n\tconst status = cleanText(input.businessAssertionStatus || input.outcomeLabel, 80);\n\tif (!assertions.length && (supportBusinessAssertionPassed(status) || supportBusinessAssertionRouteOnly(status) || supportBusinessAssertionFailed(status))) {\n\t\tassertions.push({\n\t\t\tassertion: proofPlan?.business_assertion || proofContract?.data_or_dom_assertion || 'business assertion',\n\t\t\tstatus,\n\t\t\tworkflow: proofContract?.action_under_test,\n\t\t\troute: proofPlan?.route || gate?.issue_case.route_module,\n\t\t\tbefore: proofPlan?.before,\n\t\t\taction: proofPlan?.action || proofContract?.action_under_test,\n\t\t\texpected: proofContract?.expected_business_state_change || proofPlan?.after,\n\t\t\tafter: proofPlan?.after,\n\t\t\tobserved: '',\n\t\t\tdataProof: proofContract?.data_or_dom_assertion || proofPlan?.data_assertion || '',\n\t\t\tmongoDelta: {},\n\t\t\tartifactPaths,\n\t\t\tmessage: '',\n\t\t\tacceptanceBlocked: supportBusinessAssertionRouteOnly(status),\n\t\t\trouteOnly: supportBusinessAssertionRouteOnly(status),\n\t\t\tmetadata: {}\n\t\t});\n\t}\n\treturn assertions;\n}\n\nfunction supportBusinessProofAssertionText(assertion: ResolveIOSupportBusinessProofAssertion): string {\n\treturn cleanText([\n\t\tassertion.assertion,\n\t\tassertion.workflow,\n\t\tassertion.before,\n\t\tassertion.action,\n\t\tassertion.expected,\n\t\tassertion.after,\n\t\tassertion.observed,\n\t\tassertion.dataProof,\n\t\tassertion.message\n\t].filter(Boolean).join(' '), 4000);\n}\n\nfunction normalizeSupportProofRoute(value: any): string {\n\tconst raw = cleanText(value, 500);\n\tif (!raw) {\n\t\treturn '';\n\t}\n\tconst route = raw.split(/[?#]/)[0].replace(/\\/+$/g, '') || '/';\n\treturn route.toLowerCase();\n}\n\nfunction supportProofFieldMatches(candidate: any, expected: any, minimumLength = 12): boolean {\n\tconst candidateText = cleanText(candidate, 1400).toLowerCase();\n\tconst expectedText = cleanText(expected, 1400).toLowerCase();\n\tif (!candidateText || !expectedText || expectedText.length < minimumLength) {\n\t\treturn false;\n\t}\n\treturn candidateText === expectedText\n\t\t|| candidateText.includes(expectedText)\n\t\t|| expectedText.includes(candidateText);\n}\n\nfunction supportBusinessProofAssertionHasStructuredContractMapping(\n\tassertion: ResolveIOSupportBusinessProofAssertion,\n\tgate: ResolveIOSupportDiagnosisGate\n): boolean {\n\tconst proofPlan = gate.proof_plan;\n\tconst proofContract = proofPlan.business_proof_contract;\n\tconst expectedRoute = normalizeSupportProofRoute(proofPlan.route || gate.issue_case.route_module);\n\tconst assertionRoute = normalizeSupportProofRoute(assertion.route);\n\tconst routeMatches = !expectedRoute || !assertionRoute || expectedRoute === assertionRoute;\n\tconst actionMatches = [\n\t\tassertion.action,\n\t\tassertion.workflow\n\t].some((candidate) => [\n\t\tproofPlan.action,\n\t\tproofContract?.action_under_test\n\t].some((expected) => supportProofFieldMatches(candidate, expected, 12)));\n\tconst expectedStateMatches = [\n\t\tassertion.expected,\n\t\tassertion.after,\n\t\tassertion.observed,\n\t\tassertion.dataProof,\n\t\tassertion.assertion\n\t].some((candidate) => [\n\t\tproofPlan.after,\n\t\tproofPlan.business_assertion,\n\t\tproofPlan.data_assertion,\n\t\tproofContract?.expected_business_state_change,\n\t\tproofContract?.data_or_dom_assertion\n\t].some((expected) => supportProofFieldMatches(candidate, expected, 12)));\n\tconst hasBusinessDataProof = !!cleanText(assertion.dataProof, 50)\n\t\t|| Object.keys(cleanObject(assertion.mongoDelta)).length > 0\n\t\t|| !!cleanText(assertion.observed, 80)\n\t\t|| !!cleanText(assertion.after, 80);\n\treturn routeMatches && actionMatches && expectedStateMatches && hasBusinessDataProof;\n}\n\nfunction supportBusinessProofAssertionMatchesContract(\n\tassertion: ResolveIOSupportBusinessProofAssertion,\n\tgate: ResolveIOSupportDiagnosisGate | undefined\n): boolean {\n\tif (!gate) {\n\t\treturn false;\n\t}\n\tconst metadata = assertion.metadata || {};\n\tif (metadata.supportDiagnosisProof === true\n\t\t|| metadata.support_diagnosis_proof === true\n\t\t|| metadata.diagnosisProofPlanMatched === true\n\t\t|| metadata.diagnosis_proof_plan_matched === true\n\t\t|| metadata.proofPlanMatched === true\n\t\t|| metadata.proof_plan_matched === true) {\n\t\treturn supportBusinessProofAssertionHasStructuredContractMapping(assertion, gate);\n\t}\n\tconst proofPlan = gate.proof_plan;\n\tconst proofContract = proofPlan.business_proof_contract;\n\tconst requiredParts = [\n\t\tproofPlan.business_assertion,\n\t\tproofPlan.after,\n\t\tproofPlan.data_assertion,\n\t\tproofContract?.expected_business_state_change,\n\t\tproofContract?.data_or_dom_assertion\n\t].map((part) => cleanText(part, 1000).toLowerCase()).filter((part) => part.length >= 12);\n\tconst assertionText = supportBusinessProofAssertionText(assertion).toLowerCase();\n\tif (!requiredParts.length) {\n\t\treturn false;\n\t}\n\tif (requiredParts.some((part) => assertionText.includes(part))) {\n\t\treturn true;\n\t}\n\tconst proofWords = new Set(requiredParts.join(' ').split(/[^a-z0-9]+/g).filter((word) => word.length >= 5));\n\tconst assertionWords = new Set(assertionText.split(/[^a-z0-9]+/g).filter((word) => word.length >= 5));\n\tlet overlap = 0;\n\tfor (const word of proofWords) {\n\t\tif (assertionWords.has(word)) {\n\t\t\toverlap += 1;\n\t\t}\n\t}\n\treturn overlap >= Math.min(5, Math.max(3, Math.ceil(proofWords.size * 0.45)));\n}\n\nfunction supportBusinessProofArtifactFingerprint(paths: string[]): string {\n\tconst normalized = cleanList(paths, 80, 500).sort();\n\treturn normalized.length ? hashResolveIOSupportV5Evidence({ artifacts: normalized }) : '';\n}\n\nfunction supportBusinessProofFingerprint(\n\tgate: ResolveIOSupportDiagnosisGate | undefined,\n\tassertion: ResolveIOSupportBusinessProofAssertion | undefined,\n\tartifactPaths: string[] = []\n): string {\n\tif (!gate || !assertion) {\n\t\treturn '';\n\t}\n\tconst proofPlan = gate.proof_plan;\n\tconst proofContract = proofPlan.business_proof_contract;\n\treturn hashResolveIOSupportV5Evidence({\n\t\tissueClass: gate.issue_class,\n\t\tproofPlan: {\n\t\t\tbefore: proofPlan.before,\n\t\t\taction: proofPlan.action,\n\t\t\tafter: proofPlan.after,\n\t\t\tbusinessAssertion: proofPlan.business_assertion,\n\t\t\tdataAssertion: proofPlan.data_assertion,\n\t\t\tcontractAction: proofContract?.action_under_test,\n\t\t\tcontractExpected: proofContract?.expected_business_state_change,\n\t\t\tcontractAssertion: proofContract?.data_or_dom_assertion\n\t\t},\n\t\tassertion: {\n\t\t\tassertion: assertion.assertion,\n\t\t\tstatus: assertion.status,\n\t\t\tworkflow: assertion.workflow,\n\t\t\troute: assertion.route,\n\t\t\tbefore: assertion.before,\n\t\t\taction: assertion.action,\n\t\t\texpected: assertion.expected,\n\t\t\tafter: assertion.after,\n\t\t\tobserved: assertion.observed,\n\t\t\tdataProof: assertion.dataProof,\n\t\t\tmongoDelta: assertion.mongoDelta\n\t\t},\n\t\tartifacts: cleanList(assertion.artifactPaths?.length ? assertion.artifactPaths : artifactPaths, 80, 500).sort()\n\t});\n}\n\nfunction defaultSupportBusinessProofReadinessFields(values: {\n\tartifactPaths?: string[];\n\tproofFingerprint?: string;\n\tartifactFingerprint?: string;\n\tproofFreshness?: ResolveIOSupportBusinessProofReadiness['proofFreshness'];\n} = {}): Pick<ResolveIOSupportBusinessProofReadiness, 'artifactPaths' | 'proofFingerprint' | 'artifactFingerprint' | 'proofFreshness'> {\n\tconst artifactPaths = cleanList(values.artifactPaths, 80, 500);\n\treturn {\n\t\tartifactPaths,\n\t\tproofFingerprint: cleanText(values.proofFingerprint, 160),\n\t\tartifactFingerprint: cleanText(values.artifactFingerprint, 160) || supportBusinessProofArtifactFingerprint(artifactPaths),\n\t\tproofFreshness: values.proofFreshness || (artifactPaths.length ? 'unknown' : 'missing')\n\t};\n}\n\nexport function evaluateResolveIOSupportBusinessProofReadiness(\n\tinput: ResolveIOSupportBusinessProofReadinessInput = {}\n): ResolveIOSupportBusinessProofReadiness {\n\tconst diagnosisValidation = validateResolveIOSupportDiagnosisGate(input.diagnosisGate);\n\tconst gate = diagnosisValidation.normalized;\n\tconst requiredEvidence = [\n\t\t'valid SupportDiagnosisGate proof_plan',\n\t\t'AIQaBusinessAssertion status=pass',\n\t\t'business assertion maps to diagnosis proof_plan/business_proof_contract',\n\t\t'artifact path for browser/data proof',\n\t\t'DOM/data proof or Mongo delta for the expected business state change'\n\t];\n\tif (!diagnosisValidation.valid || !gate) {\n\t\treturn {\n\t\t\tready: false,\n\t\t\tstatus: 'blocked',\n\t\t\treason: 'support_business_proof_waiting_on_valid_diagnosis',\n\t\t\tblockers: diagnosisValidation.blockers.length ? diagnosisValidation.blockers : ['Valid SupportDiagnosisGate is required before business proof can accept the ticket.'],\n\t\t\trequiredEvidence,\n\t\t\t...defaultSupportBusinessProofReadinessFields()\n\t\t};\n\t}\n\tconst assertions = normalizeSupportBusinessProofAssertions(input);\n\tif (!assertions.length) {\n\t\treturn {\n\t\t\tready: false,\n\t\t\tstatus: 'missing',\n\t\t\treason: 'support_business_proof_missing_aiqa_business_assertion',\n\t\t\tblockers: ['No AIQaBusinessAssertion was recorded for the diagnosis proof_plan.'],\n\t\t\trequiredEvidence,\n\t\t\t...defaultSupportBusinessProofReadinessFields()\n\t\t};\n\t}\n\tconst artifactPaths = Array.from(new Set(assertions.flatMap((assertion) => assertion.artifactPaths || [])));\n\tconst artifactFingerprint = supportBusinessProofArtifactFingerprint(artifactPaths);\n\tconst failed = assertions.find((assertion) => supportBusinessAssertionFailed(assertion.status));\n\tif (failed) {\n\t\tconst failedFingerprint = supportBusinessProofFingerprint(gate, failed, artifactPaths);\n\t\treturn {\n\t\t\tready: false,\n\t\t\tstatus: 'failed',\n\t\t\treason: 'support_business_proof_assertion_failed',\n\t\t\tblockers: [failed.message || failed.observed || failed.assertion || 'Business assertion failed.'],\n\t\t\trequiredEvidence,\n\t\t\t...defaultSupportBusinessProofReadinessFields({\n\t\t\t\tartifactPaths,\n\t\t\t\tproofFingerprint: failedFingerprint,\n\t\t\t\tartifactFingerprint,\n\t\t\t\tproofFreshness: 'fresh'\n\t\t\t}),\n\t\t\tmatchedAssertion: failed\n\t\t};\n\t}\n\tconst routeOnly = assertions.find((assertion) => assertion.routeOnly || assertion.acceptanceBlocked || supportBusinessAssertionRouteOnly(assertion.status) || proofPlanLooksRouteOnly({\n\t\tbefore: assertion.before || '',\n\t\taction: assertion.action || '',\n\t\tafter: assertion.after || assertion.expected || '',\n\t\tbusiness_assertion: assertion.assertion || assertion.message || '',\n\t\tdata_assertion: assertion.dataProof || '',\n\t\tartifact_expectation: assertion.artifactPaths.join(', ')\n\t}));\n\tif (routeOnly) {\n\t\tconst routeOnlyFingerprint = supportBusinessProofFingerprint(gate, routeOnly, artifactPaths);\n\t\treturn {\n\t\t\tready: false,\n\t\t\tstatus: 'route_only',\n\t\t\treason: 'support_business_proof_route_only_or_acceptance_blocked',\n\t\t\tblockers: ['Route probe, shell/screenshot, or acceptance_blocked proof cannot accept the ticket. Run the issue-class business assertion.'],\n\t\t\trequiredEvidence,\n\t\t\t...defaultSupportBusinessProofReadinessFields({\n\t\t\t\tartifactPaths,\n\t\t\t\tproofFingerprint: routeOnlyFingerprint,\n\t\t\t\tartifactFingerprint,\n\t\t\t\tproofFreshness: 'fresh'\n\t\t\t}),\n\t\t\tmatchedAssertion: routeOnly\n\t\t};\n\t}\n\tconst passedAssertions = assertions.filter((assertion) => supportBusinessAssertionPassed(assertion.status));\n\tconst matched = passedAssertions.find((assertion) => supportBusinessProofAssertionMatchesContract(assertion, gate));\n\tif (!matched) {\n\t\treturn {\n\t\t\tready: false,\n\t\t\tstatus: 'weak',\n\t\t\treason: 'support_business_proof_does_not_match_diagnosis_contract',\n\t\t\tblockers: ['A passed assertion exists, but it does not map to the diagnosis proof_plan/business_proof_contract.'],\n\t\t\trequiredEvidence,\n\t\t\t...defaultSupportBusinessProofReadinessFields({ artifactPaths, artifactFingerprint })\n\t\t};\n\t}\n\tconst proofArtifactPaths = matched.artifactPaths.length ? matched.artifactPaths : artifactPaths;\n\tconst proofFingerprint = supportBusinessProofFingerprint(gate, matched, proofArtifactPaths);\n\tconst matchedArtifactFingerprint = supportBusinessProofArtifactFingerprint(proofArtifactPaths);\n\tconst previousProofFingerprint = cleanText(input.previousProofFingerprint, 160);\n\tconst previousArtifactFingerprint = cleanText(input.previousArtifactFingerprint, 160);\n\tconst sameProofAsPrevious = !!previousProofFingerprint && previousProofFingerprint === proofFingerprint;\n\tconst sameArtifactAsPrevious = !!previousArtifactFingerprint && previousArtifactFingerprint === matchedArtifactFingerprint;\n\tif (sameProofAsPrevious || sameArtifactAsPrevious) {\n\t\treturn {\n\t\t\tready: false,\n\t\t\tstatus: 'stale',\n\t\t\treason: sameProofAsPrevious\n\t\t\t\t? 'support_business_proof_same_fingerprint_as_previous'\n\t\t\t\t: 'support_business_proof_same_artifact_fingerprint_as_previous',\n\t\t\tblockers: ['Business proof did not produce a new proof/artifact fingerprint for this run. Rerun the issue-specific assertion and record fresh artifact proof.'],\n\t\t\trequiredEvidence,\n\t\t\t...defaultSupportBusinessProofReadinessFields({\n\t\t\t\tartifactPaths: proofArtifactPaths,\n\t\t\t\tproofFingerprint,\n\t\t\t\tartifactFingerprint: matchedArtifactFingerprint,\n\t\t\t\tproofFreshness: sameProofAsPrevious ? 'same_as_previous' : 'stale_artifact'\n\t\t\t}),\n\t\t\tmatchedAssertion: matched\n\t\t};\n\t}\n\tif (!matched.artifactPaths.length && !artifactPaths.length) {\n\t\treturn {\n\t\t\tready: false,\n\t\t\tstatus: 'weak',\n\t\t\treason: 'support_business_proof_missing_artifact_path',\n\t\t\tblockers: ['Business proof must include at least one artifact path.'],\n\t\t\trequiredEvidence,\n\t\t\t...defaultSupportBusinessProofReadinessFields({\n\t\t\t\tartifactPaths,\n\t\t\t\tproofFingerprint,\n\t\t\t\tartifactFingerprint: matchedArtifactFingerprint\n\t\t\t}),\n\t\t\tmatchedAssertion: matched\n\t\t};\n\t}\n\tconst hasDataOrDomProof = !!cleanText(matched.dataProof, 50)\n\t\t|| Object.keys(cleanObject(matched.mongoDelta)).length > 0\n\t\t|| !!cleanText(matched.observed, 80)\n\t\t|| !!cleanText(matched.after, 80);\n\tif (!hasDataOrDomProof) {\n\t\treturn {\n\t\t\tready: false,\n\t\t\tstatus: 'weak',\n\t\t\treason: 'support_business_proof_missing_dom_or_data_proof',\n\t\t\tblockers: ['Business proof must include DOM/data proof, observed result, after-state, or Mongo delta.'],\n\t\t\trequiredEvidence,\n\t\t\t...defaultSupportBusinessProofReadinessFields({\n\t\t\t\tartifactPaths: proofArtifactPaths,\n\t\t\t\tproofFingerprint,\n\t\t\t\tartifactFingerprint: matchedArtifactFingerprint\n\t\t\t}),\n\t\t\tmatchedAssertion: matched\n\t\t};\n\t}\n\treturn {\n\t\tready: true,\n\t\tstatus: 'passed',\n\t\treason: 'support_business_proof_ready',\n\t\tblockers: [],\n\t\trequiredEvidence,\n\t\t...defaultSupportBusinessProofReadinessFields({\n\t\t\tartifactPaths: proofArtifactPaths,\n\t\t\tproofFingerprint,\n\t\t\tartifactFingerprint: matchedArtifactFingerprint,\n\t\t\tproofFreshness: 'fresh'\n\t\t}),\n\t\tmatchedAssertion: matched\n\t};\n}\n\nfunction buildSupportClarificationQuestion(gate: ResolveIOSupportDiagnosisGate | undefined, blockers: string[]): string {\n\tif (gate?.issue_case.reproduction_status === 'blocked' && gate.issue_case.reproduction_blocker) {\n\t\treturn `Can you provide the missing detail needed to reproduce this issue: ${gate.issue_case.reproduction_blocker}?`;\n\t}\n\tif (blockers.some((blocker) => /expected_result/.test(blocker))) {\n\t\treturn 'What result did you expect to see in this workflow?';\n\t}\n\tif (blockers.some((blocker) => /observed_result/.test(blocker))) {\n\t\treturn 'What exact result are you seeing instead, including the affected record or screen if possible?';\n\t}\n\tif (blockers.some((blocker) => /account_customer_context/.test(blocker))) {\n\t\treturn 'Which customer/account/user context should we use to reproduce this issue?';\n\t}\n\treturn 'Can you send one concrete example record, screen, or action path where this issue still occurs?';\n}\n\nfunction resolveSupportClarificationMissingField(\n\tgate: ResolveIOSupportDiagnosisGate | undefined,\n\tblockers: string[]\n): ResolveIOSupportClarificationMissingField {\n\tif (gate?.issue_case.reproduction_status === 'blocked' && gate.issue_case.reproduction_blocker) {\n\t\treturn 'reproduction_blocker';\n\t}\n\tif (blockers.some((blocker) => /expected_result/.test(blocker))) {\n\t\treturn 'expected_result';\n\t}\n\tif (blockers.some((blocker) => /observed_result/.test(blocker))) {\n\t\treturn 'observed_result';\n\t}\n\tif (blockers.some((blocker) => /account_customer_context/.test(blocker))) {\n\t\treturn 'account_customer_context';\n\t}\n\treturn 'example_record_or_action_path';\n}\n\nexport function buildResolveIOSupportClarificationContract(\n\tgate: ResolveIOSupportDiagnosisGate | undefined,\n\tblockers: string[] = [],\n\tnow?: Date | string\n): ResolveIOSupportClarificationContract {\n\tconst sourceBlockers = cleanList(blockers, 20, 500);\n\tconst missingField = resolveSupportClarificationMissingField(gate, sourceBlockers);\n\tconst question = buildSupportClarificationQuestion(gate, sourceBlockers);\n\tconst createdAt = isoNow(now);\n\treturn {\n\t\tcontractId: `support-clarification-${hashResolveIOSupportV5Evidence({\n\t\t\tmissingField,\n\t\t\tquestion,\n\t\t\tsourceBlockers,\n\t\t\tticketRoute: gate?.issue_case.route_module,\n\t\t\tcreatedAt: createdAt.slice(0, 16)\n\t\t}).slice(0, 16)}`,\n\t\tstatus: 'ready',\n\t\tmissingField,\n\t\tquestion,\n\t\tsourceBlockers,\n\t\toneQuestionOnly: (question.match(/\\?/g) || []).length === 1,\n\t\tcustomerFacingDraftAllowed: true,\n\t\tcustomerSendAllowed: false,\n\t\tparksTicketUntilCustomerReply: true,\n\t\tnextCommands: ['review_customer_clarification', 'send_after_human_review', 'park_ticket_until_customer_reply'],\n\t\tforbiddenActions: [\n\t\t\t'Do not run product repair from a guessed reproduction path.',\n\t\t\t'Do not ask multiple customer questions in one automated clarification.',\n\t\t\t'Do not mark the ticket resolved from a clarification draft.'\n\t\t],\n\t\trequiredEvidence: [\n\t\t\t`missing_field=${missingField}`,\n\t\t\t'one customer-facing question',\n\t\t\t'human approval before send',\n\t\t\t'park_ticket_until_customer_reply'\n\t\t],\n\t\tcreatedAt\n\t};\n}\n\nexport function validateResolveIOSupportClarificationContract(value: any): {\n\tvalid: boolean;\n\tstatus: 'ready' | 'blocked';\n\tblockers: string[];\n\tnormalized: ResolveIOSupportClarificationContract;\n} {\n\tconst source = cleanObject(value);\n\tconst missingField = cleanText(source.missingField || source.missing_field, 120) as ResolveIOSupportClarificationMissingField;\n\tconst question = cleanText(source.question, 1000);\n\tconst sourceBlockers = cleanList(source.sourceBlockers || source.source_blockers, 20, 500);\n\tconst questionMarkCount = (question.match(/\\?/g) || []).length;\n\tconst normalized: ResolveIOSupportClarificationContract = {\n\t\tcontractId: cleanText(source.contractId || source.contract_id, 160),\n\t\tstatus: source.status === 'ready' ? 'ready' : 'blocked',\n\t\tmissingField,\n\t\tquestion,\n\t\tsourceBlockers,\n\t\toneQuestionOnly: source.oneQuestionOnly === true || source.one_question_only === true || questionMarkCount === 1,\n\t\tcustomerFacingDraftAllowed: source.customerFacingDraftAllowed === true || source.customer_facing_draft_allowed === true,\n\t\tcustomerSendAllowed: source.customerSendAllowed === true || source.customer_send_allowed === true,\n\t\tparksTicketUntilCustomerReply: source.parksTicketUntilCustomerReply === true || source.parks_ticket_until_customer_reply === true,\n\t\tnextCommands: cleanList(source.nextCommands || source.next_commands, 12, 200),\n\t\tforbiddenActions: cleanList(source.forbiddenActions || source.forbidden_actions, 12, 500),\n\t\trequiredEvidence: cleanList(source.requiredEvidence || source.required_evidence, 12, 500),\n\t\tcreatedAt: cleanText(source.createdAt || source.created_at, 120)\n\t};\n\tconst validMissingFields: ResolveIOSupportClarificationMissingField[] = [\n\t\t'reproduction_blocker',\n\t\t'expected_result',\n\t\t'observed_result',\n\t\t'account_customer_context',\n\t\t'example_record_or_action_path'\n\t];\n\tconst blockers = [\n\t\tnormalized.contractId ? '' : 'Clarification contract is missing contractId.',\n\t\tvalidMissingFields.includes(normalized.missingField) ? '' : 'Clarification contract is missing a valid missingField.',\n\t\tquestion.length >= 20 && question.length <= 500 ? '' : 'Clarification question must be 20-500 characters.',\n\t\tquestionMarkCount === 1 && normalized.oneQuestionOnly ? '' : 'Clarification contract must contain exactly one customer question.',\n\t\tnormalized.customerFacingDraftAllowed === true ? '' : 'Clarification draft must be customer-facing so the operator can review it.',\n\t\tnormalized.customerSendAllowed === false ? '' : 'Clarification contract must never allow automatic customer send.',\n\t\tnormalized.parksTicketUntilCustomerReply === true ? '' : 'Clarification contract must park the ticket until customer reply.',\n\t\tnormalized.nextCommands.includes('park_ticket_until_customer_reply') ? '' : 'Clarification nextCommands must include park_ticket_until_customer_reply.',\n\t\tnormalized.forbiddenActions.length ? '' : 'Clarification contract must include forbiddenActions.'\n\t].filter(Boolean);\n\tnormalized.status = blockers.length ? 'blocked' : 'ready';\n\treturn {\n\t\tvalid: blockers.length === 0,\n\t\tstatus: normalized.status,\n\t\tblockers,\n\t\tnormalized\n\t};\n}\n\nfunction buildResolveIOSupportHumanReviewPacket(input: {\n\treviewType: ResolveIOSupportHumanReviewType;\n\ttitle: string;\n\tsummary?: string;\n\tprimaryAction: string;\n\tquestion?: string;\n\tcustomerFacingDraftAllowed?: boolean;\n\tcustomerSendAllowed?: boolean;\n\trequiresHumanApproval?: boolean;\n\tsafety?: ResolveIOSupportHumanReviewPacket['safety'];\n\treason?: string;\n\tblockers?: any[];\n\trequiredEvidence?: any[];\n\tevidenceRefs?: any[];\n\tnextCommands?: any[];\n\tforbiddenActions?: any[];\n\tcostRisk?: ResolveIOSupportHumanReviewPacket['costRisk'];\n\tnow?: Date | string;\n}): ResolveIOSupportHumanReviewPacket {\n\treturn {\n\t\treviewType: input.reviewType,\n\t\ttitle: cleanText(input.title, 200) || 'Review Support Runner Action',\n\t\tsummary: cleanText(input.summary || input.reason, 1000),\n\t\tprimaryAction: cleanText(input.primaryAction, 160) || 'review_support_runner_action',\n\t\tquestion: cleanText(input.question, 1000) || undefined,\n\t\tcustomerFacingDraftAllowed: input.customerFacingDraftAllowed === true,\n\t\tcustomerSendAllowed: false,\n\t\trequiresHumanApproval: input.requiresHumanApproval !== false,\n\t\tsafety: input.safety || 'internal_hold',\n\t\treason: cleanText(input.reason, 500),\n\t\tblockers: cleanList(input.blockers, 20, 500),\n\t\trequiredEvidence: cleanList(input.requiredEvidence, 30, 500),\n\t\tevidenceRefs: cleanList(input.evidenceRefs, 40, 500),\n\t\tnextCommands: cleanList(input.nextCommands, 20, 200),\n\t\tforbiddenActions: Array.from(new Set([\n\t\t\t'Do not send customer email without explicit human approval.',\n\t\t\t...cleanList(input.forbiddenActions, 20, 500)\n\t\t])),\n\t\tcostRisk: input.costRisk || 'small_model_or_qa',\n\t\tcreatedAt: isoNow(input.now)\n\t};\n}\n\nfunction supportCustomerReplyReadinessStatusFromReason(reason: string): ResolveIOSupportCustomerReplyReadinessStatus {\n\tconst statusByReason: Record<string, ResolveIOSupportCustomerReplyReadinessStatus> = {\n\t\tsupport_reply_clarification_contract_invalid: 'internal_blocked',\n\t\tsupport_reply_waiting_on_customer_reproduction_detail: 'clarification_required',\n\t\tsupport_reply_blocked_until_diagnosis_gate_validates: 'blocked_until_diagnosis',\n\t\tsupport_reply_requires_valid_issue_class_probe_plan: 'blocked_until_probe_plan',\n\t\tsupport_reply_blocked_by_confidence_gate: 'blocked_until_confidence',\n\t\tsupport_reply_requires_high_confidence: 'blocked_until_confidence',\n\t\tsupport_reply_blocked_by_unresolved_runner_blocker: 'blocked_until_runner_blocker',\n\t\tsupport_reply_blocked_until_release_or_hotfix_gate_finishes: 'blocked_until_release_hotfix',\n\t\tsupport_reply_rejects_route_only_business_proof: 'blocked_until_business_proof',\n\t\tsupport_reply_requires_business_assertion_pass: 'blocked_until_business_proof',\n\t\tsupport_reply_requires_business_proof_contract_artifact: 'blocked_until_business_proof_artifact',\n\t\tsupport_reply_resolution_draft_allowed_after_business_proof: 'draft_ready'\n\t};\n\treturn statusByReason[reason] || 'internal_blocked';\n}\n\nfunction supportCustomerReplyReadinessDefaultPrimaryCommand(\n\tstatus: ResolveIOSupportCustomerReplyReadinessStatus,\n\tpolicy: ResolveIOSupportCustomerReplyPolicy\n): string {\n\tconst reviewPacket = policy.humanReviewPacket;\n\tconst preferred = cleanText(reviewPacket?.primaryAction, 160);\n\tif (preferred) {\n\t\treturn preferred;\n\t}\n\tswitch (status) {\n\t\tcase 'draft_ready':\n\t\t\treturn 'review_customer_reply';\n\t\tcase 'clarification_required':\n\t\t\treturn 'review_customer_clarification';\n\t\tcase 'blocked_until_diagnosis':\n\t\t\treturn 'run_support_v5_read_only_diagnosis_gate';\n\t\tcase 'blocked_until_probe_plan':\n\t\t\treturn 'repair_support_issue_class_probe_plan';\n\t\tcase 'blocked_until_confidence':\n\t\t\treturn 'review_support_confidence_evidence';\n\t\tcase 'blocked_until_release_hotfix':\n\t\t\treturn 'repair_release_hotfix_first';\n\t\tcase 'blocked_until_business_proof':\n\t\t\treturn 'run_support_v5_business_proof_qa_row';\n\t\tcase 'blocked_until_business_proof_artifact':\n\t\t\treturn 'record_business_proof_artifact';\n\t\tcase 'blocked_until_runner_blocker':\n\t\t\treturn 'review_support_runner_blocker';\n\t\tcase 'blocked_until_human_approval':\n\t\t\treturn 'review_customer_reply';\n\t\tcase 'internal_blocked':\n\t\tdefault:\n\t\t\treturn 'review_support_runner_blocker';\n\t}\n}\n\nexport function buildResolveIOSupportCustomerReplyReadinessContract(\n\tinput: ResolveIOSupportCustomerReplyReadinessContractInput\n): ResolveIOSupportCustomerReplyReadinessContract {\n\tconst policy = input.policy;\n\tconst reviewPacket = policy.humanReviewPacket;\n\tconst reason = cleanText(policy.reason, 500);\n\tconst rawCanSend = policy.canSendCustomerReply === true || reviewPacket?.customerSendAllowed === true;\n\tconst businessProofReady = input.businessProofReadiness?.ready === true\n\t\t|| (policy.action === 'draft_resolution_reply' && (policy.draftBasis?.artifactCount || 0) > 0);\n\tconst releaseReady = input.releaseGate?.blocked !== true;\n\tconst diagnosisReady = input.diagnosisValidation?.valid === true || policy.action === 'draft_resolution_reply';\n\tconst issueClassProbePlanReady = input.issueClassProbePlanValidation?.valid === true\n\t\t|| policy.draftBasis?.issueClassProbePlanStatus === 'ready';\n\tconst initialStatus = supportCustomerReplyReadinessStatusFromReason(reason);\n\tconst status: ResolveIOSupportCustomerReplyReadinessStatus = rawCanSend\n\t\t? 'blocked_until_human_approval'\n\t\t: initialStatus;\n\tconst canDraft = policy.canDraftCustomerReply === true\n\t\t&& !rawCanSend\n\t\t&& (status === 'draft_ready' || status === 'clarification_required');\n\tconst requiresHumanApproval = true;\n\tconst primaryCommand = supportCustomerReplyReadinessDefaultPrimaryCommand(status, policy);\n\tconst blockers = Array.from(new Set([\n\t\t...cleanList(reviewPacket?.blockers, 20, 500),\n\t\t...cleanList(input.businessProofReadiness?.blockers, 20, 500),\n\t\t...cleanList(input.releaseGate?.blockers, 20, 500),\n\t\t...(rawCanSend ? ['automatic_customer_send_not_allowed'] : []),\n\t\t...(status === 'draft_ready' ? [] : [reason || status])\n\t].filter(Boolean)));\n\tconst requiredEvidence = Array.from(new Set([\n\t\t...cleanList(policy.requiredEvidence, 30, 500),\n\t\t...cleanList(reviewPacket?.requiredEvidence, 30, 500),\n\t\t...cleanList(input.businessProofReadiness?.requiredEvidence, 30, 500),\n\t\t...cleanList(input.releaseGate?.requiredEvidence, 30, 500)\n\t].filter(Boolean)));\n\tconst evidenceRefs = Array.from(new Set([\n\t\t...cleanList(reviewPacket?.evidenceRefs, 40, 500),\n\t\t...cleanList(input.businessProofReadiness?.artifactPaths, 40, 500)\n\t].filter(Boolean)));\n\tconst nextCommands = Array.from(new Set([\n\t\tprimaryCommand,\n\t\t...cleanList(reviewPacket?.nextCommands, 20, 200),\n\t\t...cleanList(input.releaseGate?.nextCommands, 20, 200)\n\t].filter(Boolean)));\n\tconst forbiddenActions = Array.from(new Set([\n\t\t'Do not send customer email without explicit human approval.',\n\t\t'Do not claim a fix is live until release or hotfix evidence is clear.',\n\t\t'Do not draft a resolution reply from route-load, screenshot-only, scorecard-only, or model-claim proof.',\n\t\t...cleanList(reviewPacket?.forbiddenActions, 20, 500)\n\t]));\n\tconst createdAt = isoNow(input.now || reviewPacket?.createdAt);\n\treturn {\n\t\tcontractId: `support-customer-reply-${hashResolveIOSupportV5Evidence({\n\t\t\tstatus,\n\t\t\tpolicyAction: policy.action,\n\t\t\treason,\n\t\t\tprimaryCommand,\n\t\t\tblockers,\n\t\t\tartifactFingerprint: input.businessProofReadiness?.artifactFingerprint,\n\t\t\tproofFingerprint: input.businessProofReadiness?.proofFingerprint,\n\t\t\tcreatedAt: createdAt.slice(0, 16)\n\t\t}).slice(0, 16)}`,\n\t\tstatus,\n\t\tpolicyAction: policy.action,\n\t\treviewType: reviewPacket?.reviewType || (policy.action === 'draft_resolution_reply' ? 'customer_resolution_reply' : policy.action === 'ask_clarification' ? 'customer_clarification' : 'internal_hold'),\n\t\tprimaryCommand,\n\t\tcanDraftCustomerReply: canDraft,\n\t\tcanSendCustomerReply: false,\n\t\trequiresHumanApproval,\n\t\tproofBacked: status === 'draft_ready' && businessProofReady && evidenceRefs.length > 0,\n\t\tbusinessProofReady,\n\t\treleaseReady,\n\t\tdiagnosisReady,\n\t\tissueClassProbePlanReady,\n\t\tclarificationRequired: status === 'clarification_required',\n\t\treason,\n\t\tblockers,\n\t\trequiredEvidence,\n\t\tevidenceRefs,\n\t\tnextCommands,\n\t\tforbiddenActions,\n\t\tcreatedAt\n\t};\n}\n\nexport function validateResolveIOSupportCustomerReplyReadinessContract(value: any): {\n\tvalid: boolean;\n\tstatus: ResolveIOSupportCustomerReplyReadinessStatus | 'blocked';\n\tblockers: string[];\n\tnormalized: ResolveIOSupportCustomerReplyReadinessContract;\n} {\n\tconst source = cleanObject(value);\n\tconst validStatuses: ResolveIOSupportCustomerReplyReadinessStatus[] = [\n\t\t'draft_ready',\n\t\t'clarification_required',\n\t\t'blocked_until_diagnosis',\n\t\t'blocked_until_probe_plan',\n\t\t'blocked_until_confidence',\n\t\t'blocked_until_runner_blocker',\n\t\t'blocked_until_release_hotfix',\n\t\t'blocked_until_business_proof',\n\t\t'blocked_until_business_proof_artifact',\n\t\t'blocked_until_human_approval',\n\t\t'internal_blocked'\n\t];\n\tconst status = cleanText(source.status, 120) as ResolveIOSupportCustomerReplyReadinessStatus;\n\tconst normalized: ResolveIOSupportCustomerReplyReadinessContract = {\n\t\tcontractId: cleanText(source.contractId || source.contract_id, 180),\n\t\tstatus: validStatuses.includes(status) ? status : 'internal_blocked',\n\t\tpolicyAction: cleanText(source.policyAction || source.policy_action, 120) as ResolveIOSupportCustomerReplyAction,\n\t\treviewType: cleanText(source.reviewType || source.review_type, 120) as ResolveIOSupportHumanReviewType,\n\t\tprimaryCommand: cleanText(source.primaryCommand || source.primary_command, 180),\n\t\tcanDraftCustomerReply: source.canDraftCustomerReply === true || source.can_draft_customer_reply === true,\n\t\tcanSendCustomerReply: source.canSendCustomerReply === true || source.can_send_customer_reply === true,\n\t\trequiresHumanApproval: source.requiresHumanApproval !== false && source.requires_human_approval !== false,\n\t\tproofBacked: source.proofBacked === true || source.proof_backed === true,\n\t\tbusinessProofReady: source.businessProofReady === true || source.business_proof_ready === true,\n\t\treleaseReady: source.releaseReady === true || source.release_ready === true,\n\t\tdiagnosisReady: source.diagnosisReady === true || source.diagnosis_ready === true,\n\t\tissueClassProbePlanReady: source.issueClassProbePlanReady === true || source.issue_class_probe_plan_ready === true,\n\t\tclarificationRequired: source.clarificationRequired === true || source.clarification_required === true,\n\t\treason: cleanText(source.reason, 500),\n\t\tblockers: cleanList(source.blockers, 24, 500),\n\t\trequiredEvidence: cleanList(source.requiredEvidence || source.required_evidence, 30, 500),\n\t\tevidenceRefs: cleanList(source.evidenceRefs || source.evidence_refs, 40, 500),\n\t\tnextCommands: cleanList(source.nextCommands || source.next_commands, 24, 200),\n\t\tforbiddenActions: cleanList(source.forbiddenActions || source.forbidden_actions, 24, 500),\n\t\tcreatedAt: cleanText(source.createdAt || source.created_at, 120)\n\t};\n\tconst blockers = [\n\t\tnormalized.contractId ? '' : 'Customer reply readiness contract is missing contractId.',\n\t\tvalidStatuses.includes(status) ? '' : 'Customer reply readiness contract has an invalid status.',\n\t\tnormalized.policyAction ? '' : 'Customer reply readiness contract is missing policyAction.',\n\t\tnormalized.primaryCommand ? '' : 'Customer reply readiness contract is missing primaryCommand.',\n\t\tnormalized.requiresHumanApproval ? '' : 'Customer reply readiness must require human approval.',\n\t\tnormalized.canSendCustomerReply === false ? '' : 'Customer reply readiness must never allow automatic customer send.',\n\t\tnormalized.requiredEvidence.length ? '' : 'Customer reply readiness contract is missing requiredEvidence.',\n\t\tnormalized.forbiddenActions.length ? '' : 'Customer reply readiness contract is missing forbiddenActions.',\n\t\tnormalized.status === 'draft_ready' && !normalized.canDraftCustomerReply ? 'Draft-ready customer reply must allow draft creation.' : '',\n\t\tnormalized.status === 'draft_ready' && !normalized.proofBacked ? 'Draft-ready customer reply must be proof-backed.' : '',\n\t\tnormalized.status === 'draft_ready' && !normalized.businessProofReady ? 'Draft-ready customer reply requires businessProofReady=true.' : '',\n\t\tnormalized.status === 'draft_ready' && !normalized.releaseReady ? 'Draft-ready customer reply requires releaseReady=true.' : '',\n\t\tnormalized.status === 'draft_ready' && normalized.reviewType !== 'customer_resolution_reply' ? 'Draft-ready customer reply requires reviewType=customer_resolution_reply.' : '',\n\t\tnormalized.status === 'clarification_required' && !normalized.clarificationRequired ? 'Clarification readiness must set clarificationRequired=true.' : '',\n\t\tnormalized.status === 'clarification_required' && normalized.reviewType !== 'customer_clarification' ? 'Clarification readiness requires reviewType=customer_clarification.' : '',\n\t\tnormalized.status !== 'draft_ready' && normalized.status !== 'clarification_required' && normalized.canDraftCustomerReply ? 'Blocked customer reply readiness cannot allow draft creation.' : ''\n\t].filter(Boolean);\n\treturn {\n\t\tvalid: blockers.length === 0,\n\t\tstatus: blockers.length ? 'blocked' : normalized.status,\n\t\tblockers,\n\t\tnormalized\n\t};\n}\n\nfunction supportAutonomousReviewTypeForAction(action: ResolveIOSupportV5AutonomousNextAction): ResolveIOSupportHumanReviewType {\n\tswitch (action) {\n\t\tcase 'run_diagnosis_gate':\n\t\t\treturn 'diagnosis_gate';\n\t\tcase 'ask_customer_clarification':\n\t\t\treturn 'customer_clarification';\n\t\tcase 'run_owner_scoped_repair':\n\t\tcase 'revise_diagnosis_scope':\n\t\t\treturn 'owner_scoped_repair';\n\t\tcase 'run_business_proof_qa':\n\t\t\treturn 'business_proof_qa';\n\t\tcase 'run_a_grade_pr_review':\n\t\tcase 'repair_release_hotfix_first':\n\t\tcase 'ready_for_release_gate':\n\t\t\treturn 'release_hotfix';\n\t\tcase 'draft_customer_reply':\n\t\t\treturn 'customer_resolution_reply';\n\t\tcase 'collect_new_evidence':\n\t\t\treturn 'new_evidence';\n\t\tcase 'repair_infra_only':\n\t\tcase 'park_manual':\n\t\tdefault:\n\t\t\treturn 'internal_hold';\n\t}\n}\n\nexport function decideResolveIOSupportCustomerReplyPolicy(input: ResolveIOSupportCustomerReplyPolicyInput = {}): ResolveIOSupportCustomerReplyPolicy {\n\tconst diagnosisValidation = validateResolveIOSupportDiagnosisGate(input.diagnosisGate);\n\tconst gate = diagnosisValidation.normalized;\n\tconst confidenceLevel = normalizeSupportConfidenceLevel(input.confidence);\n\tconst shouldBlockConfidence = input.confidence?.shouldBlockPr === true\n\t\t|| input.confidence?.should_block_pr === true\n\t\t|| input.confidence?.blocked === true;\n\tconst businessProofReadiness = evaluateResolveIOSupportBusinessProofReadiness({\n\t\tdiagnosisGate: input.diagnosisGate,\n\t\toutcomeLabel: input.outcomeLabel,\n\t\tbusinessAssertionStatus: input.businessAssertionStatus,\n\t\tbusinessAssertions: input.businessAssertions,\n\t\tbusinessProofArtifacts: input.businessProofArtifacts,\n\t\tpreviousProofFingerprint: input.previousProofFingerprint,\n\t\tpreviousArtifactFingerprint: input.previousArtifactFingerprint\n\t});\n\tconst artifactCount = businessProofReadiness.artifactPaths.length;\n\tconst unresolvedBlockers = cleanList(input.unresolvedBlockers, 20, 500);\n\tconst releaseGate = resolveSupportReplyReleaseGate(input);\n\tconst requiredEvidence = [\n\t\t'valid SupportDiagnosisGate',\n\t\t'validated IssueClassProbePlan',\n\t\t'high confidence with shouldBlockPr=false',\n\t\t'accepted outcome or passed business assertion',\n\t\t'business proof contract and artifact evidence',\n\t\t'no unresolved blocker or release blocker'\n\t];\n\tconst withReadiness = (\n\t\tpolicy: Omit<ResolveIOSupportCustomerReplyPolicy, 'readinessContract'>,\n\t\tissueClassProbePlanValidation?: ResolveIOSupportIssueClassProbePlanValidation\n\t): ResolveIOSupportCustomerReplyPolicy => {\n\t\tconst normalizedPolicy = policy as ResolveIOSupportCustomerReplyPolicy;\n\t\treturn {\n\t\t\t...normalizedPolicy,\n\t\t\treadinessContract: buildResolveIOSupportCustomerReplyReadinessContract({\n\t\t\t\tpolicy: normalizedPolicy,\n\t\t\t\tdiagnosisValidation,\n\t\t\t\tissueClassProbePlanValidation,\n\t\t\t\tbusinessProofReadiness,\n\t\t\t\treleaseGate\n\t\t\t})\n\t\t};\n\t};\n\tif (!diagnosisValidation.valid) {\n\t\tconst canAskCustomer = gate?.issue_case.reproduction_status === 'blocked'\n\t\t\t|| diagnosisValidation.blockers.some((blocker) => /expected_result|observed_result|account_customer_context/.test(blocker));\n\t\tif (canAskCustomer) {\n\t\t\tconst clarificationValidation = validateResolveIOSupportClarificationContract(\n\t\t\t\tbuildResolveIOSupportClarificationContract(gate, diagnosisValidation.blockers)\n\t\t\t);\n\t\t\tconst clarificationContract = clarificationValidation.normalized;\n\t\t\tif (!clarificationValidation.valid) {\n\t\t\t\treturn withReadiness({\n\t\t\t\t\taction: 'hold_internal',\n\t\t\t\t\tcanDraftCustomerReply: false,\n\t\t\t\t\tcanSendCustomerReply: false,\n\t\t\t\t\tconfidenceLevel,\n\t\t\t\t\tsafety: 'internal_hold',\n\t\t\t\t\treason: 'support_reply_clarification_contract_invalid',\n\t\t\t\t\trequiredEvidence,\n\t\t\t\t\tclarificationContract,\n\t\t\t\t\thumanReviewPacket: buildResolveIOSupportHumanReviewPacket({\n\t\t\t\t\t\treviewType: 'internal_hold',\n\t\t\t\t\t\ttitle: 'Repair Clarification Contract',\n\t\t\t\t\t\tsummary: 'Customer clarification is blocked until the one-question clarification contract validates.',\n\t\t\t\t\t\tprimaryAction: 'repair_support_clarification_contract',\n\t\t\t\t\t\tsafety: 'internal_hold',\n\t\t\t\t\t\treason: 'support_reply_clarification_contract_invalid',\n\t\t\t\t\t\tblockers: clarificationValidation.blockers,\n\t\t\t\t\t\trequiredEvidence,\n\t\t\t\t\t\tnextCommands: ['repair_clarification_contract', 'rerun_reply_policy'],\n\t\t\t\t\t\tforbiddenActions: ['Do not send a malformed or multi-question clarification.'],\n\t\t\t\t\t\tcostRisk: 'free_or_deterministic'\n\t\t\t\t\t})\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn withReadiness({\n\t\t\t\taction: 'ask_clarification',\n\t\t\t\tcanDraftCustomerReply: true,\n\t\t\t\tcanSendCustomerReply: false,\n\t\t\t\tconfidenceLevel,\n\t\t\t\tsafety: 'needs_clarification',\n\t\t\t\treason: 'support_reply_waiting_on_customer_reproduction_detail',\n\t\t\t\trequiredEvidence: Array.from(new Set([...requiredEvidence, ...clarificationContract.requiredEvidence])),\n\t\t\t\tclarificationQuestion: clarificationContract.question,\n\t\t\t\tclarificationContract,\n\t\t\t\thumanReviewPacket: buildResolveIOSupportHumanReviewPacket({\n\t\t\t\t\treviewType: 'customer_clarification',\n\t\t\t\t\ttitle: 'Review Customer Clarification',\n\t\t\t\t\tsummary: 'The runner needs one customer detail before it can reproduce or continue safely.',\n\t\t\t\t\tprimaryAction: 'review_customer_clarification',\n\t\t\t\t\tquestion: clarificationContract.question,\n\t\t\t\t\tcustomerFacingDraftAllowed: clarificationContract.customerFacingDraftAllowed,\n\t\t\t\t\tsafety: 'needs_clarification',\n\t\t\t\t\treason: 'support_reply_waiting_on_customer_reproduction_detail',\n\t\t\t\t\tblockers: clarificationContract.sourceBlockers,\n\t\t\t\t\trequiredEvidence: clarificationContract.requiredEvidence,\n\t\t\t\t\tnextCommands: clarificationContract.nextCommands,\n\t\t\t\t\tforbiddenActions: clarificationContract.forbiddenActions,\n\t\t\t\t\tcostRisk: 'release_or_customer_send'\n\t\t\t\t})\n\t\t\t});\n\t\t}\n\t\treturn withReadiness({\n\t\t\taction: 'hold_internal',\n\t\t\tcanDraftCustomerReply: false,\n\t\t\tcanSendCustomerReply: false,\n\t\t\tconfidenceLevel,\n\t\t\tsafety: 'internal_hold',\n\t\t\treason: 'support_reply_blocked_until_diagnosis_gate_validates',\n\t\t\trequiredEvidence,\n\t\t\thumanReviewPacket: buildResolveIOSupportHumanReviewPacket({\n\t\t\t\treviewType: 'internal_hold',\n\t\t\t\ttitle: 'Complete Diagnosis Gate',\n\t\t\t\tsummary: 'Customer reply is blocked until the diagnosis gate validates.',\n\t\t\t\tprimaryAction: 'run_support_v5_read_only_diagnosis_gate',\n\t\t\t\tsafety: 'internal_hold',\n\t\t\t\treason: 'support_reply_blocked_until_diagnosis_gate_validates',\n\t\t\t\tblockers: diagnosisValidation.blockers,\n\t\t\t\trequiredEvidence,\n\t\t\t\tnextCommands: ['retrieve_similar_tickets_and_commits', 'run_reproduction_or_classification_probe', 'write_support_diagnosis_gate_json'],\n\t\t\t\tforbiddenActions: ['Do not draft a resolution reply before root-cause diagnosis validates.'],\n\t\t\t\tcostRisk: 'expensive_model'\n\t\t\t})\n\t\t});\n\t}\n\tconst explicitProbePlan = cleanObject(input.issueClassProbePlan);\n\tconst generatedProbePlan = gate\n\t\t? buildResolveIOSupportIssueClassProbePlan(gate)\n\t\t: undefined;\n\tconst issueClassProbePlanValidation = validateResolveIOSupportIssueClassProbePlan(\n\t\tObject.keys(explicitProbePlan).length ? explicitProbePlan : generatedProbePlan,\n\t\tgate\n\t);\n\tconst issueClassProbePlan = issueClassProbePlanValidation.normalized || generatedProbePlan;\n\tif (!issueClassProbePlanValidation.valid) {\n\t\treturn withReadiness({\n\t\t\taction: 'hold_internal',\n\t\t\tcanDraftCustomerReply: false,\n\t\t\tcanSendCustomerReply: false,\n\t\t\tconfidenceLevel,\n\t\t\tsafety: 'internal_hold',\n\t\t\treason: 'support_reply_requires_valid_issue_class_probe_plan',\n\t\t\trequiredEvidence,\n\t\t\thumanReviewPacket: buildResolveIOSupportHumanReviewPacket({\n\t\t\t\treviewType: 'business_proof_qa',\n\t\t\t\ttitle: 'Repair Issue-Class Probe Plan',\n\t\t\t\tsummary: 'Customer reply is blocked until the IssueClassProbePlan validates against the diagnosis proof plan.',\n\t\t\t\tprimaryAction: 'repair_support_issue_class_probe_plan',\n\t\t\t\tsafety: 'internal_hold',\n\t\t\t\treason: 'support_reply_requires_valid_issue_class_probe_plan',\n\t\t\t\tblockers: issueClassProbePlanValidation.blockers,\n\t\t\t\trequiredEvidence,\n\t\t\t\tevidenceRefs: issueClassProbePlan?.requiredArtifacts || [],\n\t\t\t\tnextCommands: ['repair_issue_class_probe_plan', 'rerun_business_proof_qa', 'rerun_reply_policy'],\n\t\t\t\tforbiddenActions: ['Do not draft a customer resolution from business proof that is not mapped to a validated IssueClassProbePlan.'],\n\t\t\t\tcostRisk: 'free_or_deterministic'\n\t\t\t})\n\t\t}, issueClassProbePlanValidation);\n\t}\n\tif (shouldBlockConfidence || confidenceLevel !== 'high') {\n\t\treturn withReadiness({\n\t\t\taction: 'hold_internal',\n\t\t\tcanDraftCustomerReply: false,\n\t\t\tcanSendCustomerReply: false,\n\t\t\tconfidenceLevel,\n\t\t\tsafety: 'internal_hold',\n\t\t\treason: shouldBlockConfidence ? 'support_reply_blocked_by_confidence_gate' : 'support_reply_requires_high_confidence',\n\t\t\trequiredEvidence,\n\t\t\thumanReviewPacket: buildResolveIOSupportHumanReviewPacket({\n\t\t\t\treviewType: 'internal_hold',\n\t\t\t\ttitle: 'Review Confidence Gate',\n\t\t\t\tsummary: 'Customer reply is blocked until confidence is high and the confidence gate is not blocking.',\n\t\t\t\tprimaryAction: 'review_support_confidence_evidence',\n\t\t\t\tsafety: 'internal_hold',\n\t\t\t\treason: shouldBlockConfidence ? 'support_reply_blocked_by_confidence_gate' : 'support_reply_requires_high_confidence',\n\t\t\t\trequiredEvidence,\n\t\t\t\tnextCommands: ['inspect_confidence_basis', 'collect_missing_business_or_release_evidence'],\n\t\t\t\tforbiddenActions: ['Do not draft a customer resolution from medium or low confidence.'],\n\t\t\t\tcostRisk: 'free_or_deterministic'\n\t\t\t})\n\t\t}, issueClassProbePlanValidation);\n\t}\n\tif (unresolvedBlockers.length) {\n\t\treturn withReadiness({\n\t\t\taction: 'hold_internal',\n\t\t\tcanDraftCustomerReply: false,\n\t\t\tcanSendCustomerReply: false,\n\t\t\tconfidenceLevel,\n\t\t\tsafety: 'internal_hold',\n\t\t\treason: 'support_reply_blocked_by_unresolved_runner_blocker',\n\t\t\trequiredEvidence,\n\t\t\thumanReviewPacket: buildResolveIOSupportHumanReviewPacket({\n\t\t\t\treviewType: 'internal_hold',\n\t\t\t\ttitle: 'Resolve Runner Blocker',\n\t\t\t\tsummary: 'Customer reply is blocked by unresolved runner blockers.',\n\t\t\t\tprimaryAction: 'review_support_runner_blocker',\n\t\t\t\tsafety: 'internal_hold',\n\t\t\t\treason: 'support_reply_blocked_by_unresolved_runner_blocker',\n\t\t\t\tblockers: unresolvedBlockers,\n\t\t\t\trequiredEvidence,\n\t\t\t\tnextCommands: ['classify_blocker', 'collect_new_evidence_or_repair_smallest_gate'],\n\t\t\t\tforbiddenActions: ['Do not send customer status as resolved while blockers remain.'],\n\t\t\t\tcostRisk: 'small_model_or_qa'\n\t\t\t})\n\t\t}, issueClassProbePlanValidation);\n\t}\n\tif (releaseGate.blocked) {\n\t\tconst releaseRequiredEvidence = Array.from(new Set([\n\t\t\t...requiredEvidence,\n\t\t\t...releaseGate.requiredEvidence\n\t\t]));\n\t\treturn withReadiness({\n\t\t\taction: 'hold_internal',\n\t\t\tcanDraftCustomerReply: false,\n\t\t\tcanSendCustomerReply: false,\n\t\t\tconfidenceLevel,\n\t\t\tsafety: 'internal_hold',\n\t\t\treason: 'support_reply_blocked_until_release_or_hotfix_gate_finishes',\n\t\t\trequiredEvidence: releaseRequiredEvidence,\n\t\t\thumanReviewPacket: buildResolveIOSupportHumanReviewPacket({\n\t\t\t\treviewType: 'release_hotfix',\n\t\t\t\ttitle: 'Finish Release Or Hotfix Gate',\n\t\t\t\tsummary: 'Business proof exists, but the customer reply is blocked until release or hotfix evidence is complete.',\n\t\t\t\tprimaryAction: 'repair_release_hotfix_first',\n\t\t\t\tsafety: 'internal_hold',\n\t\t\t\treason: 'support_reply_blocked_until_release_or_hotfix_gate_finishes',\n\t\t\t\tblockers: releaseGate.blockers,\n\t\t\t\trequiredEvidence: releaseRequiredEvidence,\n\t\t\t\tnextCommands: releaseGate.nextCommands,\n\t\t\t\tforbiddenActions: ['Do not tell the customer the fix is live before release evidence passes.'],\n\t\t\t\tcostRisk: 'release_or_customer_send'\n\t\t\t})\n\t\t}, issueClassProbePlanValidation);\n\t}\n\tif (!businessProofReadiness.ready) {\n\t\tconst replyReason = businessProofReadiness.reason === 'support_business_proof_route_only_or_acceptance_blocked'\n\t\t\t? 'support_reply_rejects_route_only_business_proof'\n\t\t\t: 'support_reply_requires_business_assertion_pass';\n\t\tconst proofRequiredEvidence = Array.from(new Set([\n\t\t\t...requiredEvidence,\n\t\t\t...businessProofReadiness.requiredEvidence\n\t\t]));\n\t\treturn withReadiness({\n\t\t\taction: 'hold_internal',\n\t\t\tcanDraftCustomerReply: false,\n\t\t\tcanSendCustomerReply: false,\n\t\t\tconfidenceLevel,\n\t\t\tsafety: 'internal_hold',\n\t\t\treason: replyReason,\n\t\t\trequiredEvidence: proofRequiredEvidence,\n\t\t\thumanReviewPacket: buildResolveIOSupportHumanReviewPacket({\n\t\t\t\treviewType: 'business_proof_qa',\n\t\t\t\ttitle: 'Run Business Proof QA',\n\t\t\t\tsummary: 'Customer reply is blocked until the issue-specific before/action/after assertion passes.',\n\t\t\t\tprimaryAction: 'run_support_v5_business_proof_qa_row',\n\t\t\t\tsafety: 'internal_hold',\n\t\t\t\treason: replyReason,\n\t\t\t\tblockers: businessProofReadiness.blockers,\n\t\t\t\trequiredEvidence: proofRequiredEvidence,\n\t\t\t\tevidenceRefs: businessProofReadiness.artifactPaths,\n\t\t\t\tnextCommands: ['execute_issue_class_probe', 'record_before_action_after_artifacts', 'write_aiqa_business_assertion'],\n\t\t\t\tforbiddenActions: ['Route probe pass remains route evidence only.'],\n\t\t\t\tcostRisk: 'small_model_or_qa'\n\t\t\t})\n\t\t}, issueClassProbePlanValidation);\n\t}\n\tif (!gate?.proof_plan.business_proof_contract || artifactCount < 1) {\n\t\treturn withReadiness({\n\t\t\taction: 'hold_internal',\n\t\t\tcanDraftCustomerReply: false,\n\t\t\tcanSendCustomerReply: false,\n\t\t\tconfidenceLevel,\n\t\t\tsafety: 'internal_hold',\n\t\t\treason: 'support_reply_requires_business_proof_contract_artifact',\n\t\t\trequiredEvidence,\n\t\t\thumanReviewPacket: buildResolveIOSupportHumanReviewPacket({\n\t\t\t\treviewType: 'business_proof_qa',\n\t\t\t\ttitle: 'Attach Business Proof Artifact',\n\t\t\t\tsummary: 'Customer reply is blocked until the business proof contract and artifact are attached.',\n\t\t\t\tprimaryAction: 'record_business_proof_artifact',\n\t\t\t\tsafety: 'internal_hold',\n\t\t\t\treason: 'support_reply_requires_business_proof_contract_artifact',\n\t\t\t\trequiredEvidence,\n\t\t\t\tevidenceRefs: businessProofReadiness.artifactPaths,\n\t\t\t\tnextCommands: ['attach_business_proof_contract', 'attach_artifact_path', 'rerun_reply_policy'],\n\t\t\t\tforbiddenActions: ['Do not draft a resolution reply without a proof artifact.'],\n\t\t\t\tcostRisk: 'free_or_deterministic'\n\t\t\t})\n\t\t}, issueClassProbePlanValidation);\n\t}\n\treturn withReadiness({\n\t\taction: 'draft_resolution_reply',\n\t\tcanDraftCustomerReply: true,\n\t\tcanSendCustomerReply: false,\n\t\tconfidenceLevel,\n\t\tsafety: 'safe_to_draft',\n\t\treason: 'support_reply_resolution_draft_allowed_after_business_proof',\n\t\trequiredEvidence,\n\t\thumanReviewPacket: buildResolveIOSupportHumanReviewPacket({\n\t\t\treviewType: 'customer_resolution_reply',\n\t\t\ttitle: 'Review Customer Resolution Reply',\n\t\t\tsummary: `Business proof is ready for ${gate.issue_class}; draft a customer-facing resolution for human review.`,\n\t\t\tprimaryAction: 'review_customer_reply',\n\t\t\tcustomerFacingDraftAllowed: true,\n\t\t\tsafety: 'safe_to_draft',\n\t\t\treason: 'support_reply_resolution_draft_allowed_after_business_proof',\n\t\t\trequiredEvidence,\n\t\t\tevidenceRefs: businessProofReadiness.artifactPaths,\n\t\t\tnextCommands: ['summarize_business_proof', 'draft_customer_reply_for_human_review'],\n\t\t\tforbiddenActions: ['Draft only; do not send automatically.'],\n\t\t\tcostRisk: 'release_or_customer_send'\n\t\t}),\n\t\tdraftBasis: {\n\t\t\tissueClass: gate.issue_class,\n\t\t\tissueClassProbePlanId: issueClassProbePlan?.planId,\n\t\t\tissueClassProbePlanStatus: issueClassProbePlanValidation.status,\n\t\t\tbusinessProof: gate.proof_plan.business_proof_contract.expected_business_state_change,\n\t\t\tartifactCount\n\t\t}\n\t}, issueClassProbePlanValidation);\n}\n\nfunction buildSupportIssueClassBrowserSteps(args: {\n\tissueClass: ResolveIOSupportIssueClass;\n\troute?: string;\n\taction: string;\n\tbefore: string;\n\tafter: string;\n\tassertion: string;\n}): string[] {\n\tconst route = cleanText(args.route, 500) || 'the affected route/module';\n\tconst issueSteps: Record<ResolveIOSupportIssueClass, string[]> = {\n\t\tno_op_submit: [\n\t\t\t'Capture the form/action state before submit, including the target record id or validation state.',\n\t\t\t'Trigger the exact submit/action control reported by the customer.',\n\t\t\t'Verify the persisted state, success/validation message, or method/network result changed as expected.'\n\t\t],\n\t\tmissing_wrong_data: [\n\t\t\t'Load the named customer/account/record context before changing any filters or data.',\n\t\t\t'Compare visible DOM values against the persisted/source-of-truth data.',\n\t\t\t'Verify the corrected visible values remain tied to the same customer/account context.'\n\t\t],\n\t\tfilter_query_mismatch: [\n\t\t\t'Capture the unfiltered or before-filter row/count state for the affected dataset.',\n\t\t\t'Apply the exact reported filter/query/search inputs.',\n\t\t\t'Assert included rows/counts and excluded wrong rows against DOM plus data/query proof.'\n\t\t],\n\t\tinvoice_pdf_export: [\n\t\t\t'Open the affected invoice/report/export route and capture source rows/totals before export.',\n\t\t\t'Trigger the exact PDF/export/download action.',\n\t\t\t'Parse or inspect the generated artifact and verify expected rows, totals, fields, or file output.'\n\t\t],\n\t\tupload_import: [\n\t\t\t'Attach the representative import file or fixture and capture pre-import row/count state.',\n\t\t\t'Run the upload/import action through the visible workflow.',\n\t\t\t'Verify result messaging plus persisted row/count delta or rejected-row evidence.'\n\t\t],\n\t\troute_auth_hydration: [\n\t\t\t'Seed or replay auth for the affected user/account before route navigation.',\n\t\t\t'Open the exact route and wait for the functional screen, not only the shell/nav.',\n\t\t\t'Assert required controls/data are hydrated and capture console/network errors if hydration fails.'\n\t\t],\n\t\tslow_query_performance: [\n\t\t\t'Capture before timing/log evidence for the reported query or workflow.',\n\t\t\t'Run the same query/workflow after repair with equivalent inputs and account context.',\n\t\t\t'Verify timing target or improvement while preserving result equivalence.'\n\t\t]\n\t};\n\treturn [\n\t\t`Navigate to ${route} as the affected user/account context.`,\n\t\t...(issueSteps[args.issueClass] || issueSteps.missing_wrong_data),\n\t\targs.before ? `Before proof: ${args.before}` : '',\n\t\targs.action ? `Action under test: ${args.action}` : `Action under test: ${args.action || 'execute the reported workflow action'}`,\n\t\targs.after ? `Expected after state: ${args.after}` : '',\n\t\targs.assertion ? `DOM/data assertion: ${args.assertion}` : ''\n\t]\n\t\t.map((entry) => cleanText(entry, 500))\n\t\t.filter(Boolean)\n\t\t.slice(0, 10);\n}\n\nfunction buildSupportIssueClassDataProofRequirements(args: {\n\tissueClass: ResolveIOSupportIssueClass;\n\tassertion: string;\n\trequiredArtifacts: string[];\n}): string[] {\n\tconst issueRequirements: Record<ResolveIOSupportIssueClass, string[]> = {\n\t\tno_op_submit: ['pre-submit state', 'submit action result', 'persisted state or validation delta'],\n\t\tmissing_wrong_data: ['expected source-of-truth record', 'visible DOM/data snapshot', 'same-account/customer proof'],\n\t\tfilter_query_mismatch: ['filter input values', 'included row/count proof', 'excluded wrong-row proof', 'query/publication proof when available'],\n\t\tinvoice_pdf_export: ['export trigger trace', 'generated file artifact path', 'parsed generated content proof'],\n\t\tupload_import: ['input file fixture', 'import result message', 'persisted row/count delta'],\n\t\troute_auth_hydration: ['auth context', 'hydrated DOM proof', 'console/network error log'],\n\t\tslow_query_performance: ['before timing', 'after timing', 'result equivalence proof', 'query/log trace']\n\t};\n\treturn Array.from(new Set([\n\t\t...(issueRequirements[args.issueClass] || issueRequirements.missing_wrong_data),\n\t\t...args.requiredArtifacts,\n\t\targs.assertion\n\t].map((entry) => cleanText(entry, 260)).filter(Boolean))).slice(0, 16);\n}\n\nfunction buildSupportIssueClassProbeAssertionTemplate(args: {\n\tissueClass: ResolveIOSupportIssueClass;\n\troute?: string;\n\tobjective: string;\n\texpected: string;\n\tstateTransition: ResolveIOSupportIssueClassProbe['state_transition'];\n\trequiredArtifacts: string[];\n}): ResolveIOSupportIssueClassProbeAssertionTemplate {\n\treturn {\n\t\tassertion: args.stateTransition.assertion || args.expected,\n\t\tstatus: 'pending',\n\t\tworkflow: args.objective,\n\t\troute: cleanText(args.route, 500) || undefined,\n\t\tbefore: args.stateTransition.before,\n\t\taction: args.stateTransition.action,\n\t\texpected: args.expected,\n\t\tobserved: '',\n\t\tdataProof: '',\n\t\tartifactPaths: args.requiredArtifacts,\n\t\tmetadata: {\n\t\t\tsupportDiagnosisProof: true,\n\t\t\tissueClass: args.issueClass,\n\t\t\tprobePlanRequired: true,\n\t\t\trouteOnlyIsFalsePass: true\n\t\t}\n\t};\n}\n\nfunction buildSupportIssueClassProbeQaRow(args: {\n\tissueClass: ResolveIOSupportIssueClass;\n\troute?: string;\n\tobjective: string;\n\taction: string;\n\texpected: string;\n\texpectedEvidence: string;\n\tstateTransition: ResolveIOSupportIssueClassProbe['state_transition'];\n\trequiredArtifacts: string[];\n\tfalsePassBlockers: string[];\n\tbrowserSteps: string[];\n}): ResolveIOSupportIssueClassProbeQaRow {\n\tconst rowId = `support-issue-probe-${hashResolveIOSupportV5Evidence({\n\t\tissueClass: args.issueClass,\n\t\troute: args.route,\n\t\taction: args.action,\n\t\tassertion: args.stateTransition.assertion\n\t}).slice(0, 16)}`;\n\treturn {\n\t\trow_id: rowId,\n\t\tissue_class: args.issueClass,\n\t\tprobe_type: 'issue_class_probe',\n\t\troute: cleanText(args.route, 500) || undefined,\n\t\taction_under_test: args.action,\n\t\tbrowser_steps: args.browserSteps,\n\t\texpected_result: args.expected,\n\t\texpected_dom_or_data_proof: args.expectedEvidence,\n\t\trequired_artifacts: args.requiredArtifacts,\n\t\tfalse_pass_blockers: args.falsePassBlockers,\n\t\tstate_transition: args.stateTransition,\n\t\tacceptance_gate: 'aiqa_business_assertion',\n\t\trequires_aiqa_business_assertion: true,\n\t\troute_only_is_false_pass: true,\n\t\tmobile_viewport_required: args.issueClass === 'route_auth_hydration'\n\t};\n}\n\nfunction normalizeResolveIOSupportIssueClassProbeQaRow(value: any, fallback: {\n\tissueClass: ResolveIOSupportIssueClass;\n\troute?: string;\n\taction: string;\n\texpectedBusinessProof: string;\n\texpectedEvidence: string;\n\trequiredArtifacts: string[];\n\tfalsePassBlockers: string[];\n\tstateTransition: ResolveIOSupportIssueClassProbe['state_transition'];\n\tbrowserSteps: string[];\n}): ResolveIOSupportIssueClassProbeQaRow | undefined {\n\tconst source = cleanObject(value);\n\tif (!Object.keys(source).length && !fallback.action) {\n\t\treturn undefined;\n\t}\n\tconst stateTransition = cleanObject(source.state_transition || source.stateTransition);\n\tconst normalizedStateTransition = {\n\t\tbefore: cleanText(stateTransition.before, 800) || fallback.stateTransition.before,\n\t\taction: cleanText(stateTransition.action, 800) || fallback.stateTransition.action,\n\t\tafter: cleanText(stateTransition.after, 800) || fallback.stateTransition.after,\n\t\tassertion: cleanText(stateTransition.assertion, 1000) || fallback.stateTransition.assertion\n\t};\n\tconst browserSteps = cleanList(source.browser_steps || source.browserSteps, 12, 500).length\n\t\t? cleanList(source.browser_steps || source.browserSteps, 12, 500)\n\t\t: fallback.browserSteps;\n\treturn {\n\t\trow_id: cleanText(source.row_id || source.rowId || source.id, 180) || `support-issue-probe-${hashResolveIOSupportV5Evidence({\n\t\t\tissueClass: fallback.issueClass,\n\t\t\troute: source.route || fallback.route,\n\t\t\taction: source.action_under_test || source.actionUnderTest || fallback.action,\n\t\t\tassertion: normalizedStateTransition.assertion\n\t\t}).slice(0, 16)}`,\n\t\tissue_class: (normalizeIssueClass(source.issue_class || source.issueClass) || fallback.issueClass) as ResolveIOSupportIssueClass,\n\t\tprobe_type: (cleanText(source.probe_type || source.probeType, 80) || 'issue_class_probe') as ResolveIOSupportV5StepType,\n\t\troute: cleanText(source.route, 500) || fallback.route,\n\t\taction_under_test: cleanText(source.action_under_test || source.actionUnderTest || source.action, 1200) || fallback.action,\n\t\tbrowser_steps: browserSteps,\n\t\texpected_result: cleanText(source.expected_result || source.expectedResult, 1600) || fallback.expectedBusinessProof,\n\t\texpected_dom_or_data_proof: cleanText(source.expected_dom_or_data_proof || source.expectedDomOrDataProof || source.expected_evidence || source.expectedEvidence, 1600) || fallback.expectedEvidence,\n\t\trequired_artifacts: cleanList(source.required_artifacts || source.requiredArtifacts, 16, 260).length\n\t\t\t? cleanList(source.required_artifacts || source.requiredArtifacts, 16, 260)\n\t\t\t: fallback.requiredArtifacts,\n\t\tfalse_pass_blockers: cleanList(source.false_pass_blockers || source.falsePassBlockers, 12, 260).length\n\t\t\t? cleanList(source.false_pass_blockers || source.falsePassBlockers, 12, 260)\n\t\t\t: fallback.falsePassBlockers,\n\t\tstate_transition: normalizedStateTransition,\n\t\tacceptance_gate: 'aiqa_business_assertion',\n\t\trequires_aiqa_business_assertion: true,\n\t\troute_only_is_false_pass: true,\n\t\tmobile_viewport_required: source.mobile_viewport_required === true || source.mobileViewportRequired === true\n\t};\n}\n\nfunction normalizeResolveIOSupportIssueClassProbeAssertionTemplate(value: any, fallback: {\n\tissueClass: ResolveIOSupportIssueClass;\n\troute?: string;\n\tobjective: string;\n\texpected: string;\n\tstateTransition: ResolveIOSupportIssueClassProbe['state_transition'];\n\trequiredArtifacts: string[];\n}): ResolveIOSupportIssueClassProbeAssertionTemplate {\n\tconst source = cleanObject(value);\n\treturn {\n\t\tassertion: cleanText(source.assertion, 1600) || fallback.stateTransition.assertion || fallback.expected,\n\t\tstatus: 'pending',\n\t\tworkflow: cleanText(source.workflow, 1000) || fallback.objective,\n\t\troute: cleanText(source.route, 500) || fallback.route,\n\t\tbefore: cleanText(source.before, 800) || fallback.stateTransition.before,\n\t\taction: cleanText(source.action, 800) || fallback.stateTransition.action,\n\t\texpected: cleanText(source.expected, 1600) || fallback.expected,\n\t\tobserved: cleanText(source.observed, 1600),\n\t\tdataProof: cleanText(source.dataProof || source.data_proof, 1600),\n\t\tartifactPaths: cleanList(source.artifactPaths || source.artifact_paths, 20, 500).length\n\t\t\t? cleanList(source.artifactPaths || source.artifact_paths, 20, 500)\n\t\t\t: fallback.requiredArtifacts,\n\t\tmetadata: {\n\t\t\tsupportDiagnosisProof: true,\n\t\t\tissueClass: fallback.issueClass,\n\t\t\tprobePlanRequired: true,\n\t\t\trouteOnlyIsFalsePass: true\n\t\t}\n\t};\n}\n\nexport function buildResolveIOSupportIssueClassProbes(value: any): ResolveIOSupportIssueClassProbe[] {\n\tconst validation = validateResolveIOSupportDiagnosisGate(value);\n\tconst gate = validation.normalized || normalizeResolveIOSupportDiagnosisGate(value);\n\tif (!gate) {\n\t\treturn [];\n\t}\n\tconst route = gate.proof_plan.route || gate.issue_case.route_module;\n\tconst proofContract = gate.proof_plan.business_proof_contract;\n\tconst proof = proofContract?.expected_business_state_change || gate.proof_plan.business_assertion;\n\tconst assertion = proofContract?.data_or_dom_assertion || gate.proof_plan.data_assertion || gate.proof_plan.after;\n\tconst contractArtifacts = cleanList(proofContract?.proof_artifacts, 8, 160);\n\tconst common = {\n\t\tissue_class: gate.issue_class,\n\t\tprobe_type: 'issue_class_probe' as ResolveIOSupportV5StepType,\n\t\troute,\n\t\tstate_transition: {\n\t\t\tbefore: gate.proof_plan.before || gate.proof_plan.before_state_unavailable_reason || proofContract?.setup_state || '',\n\t\t\taction: gate.proof_plan.action || proofContract?.action_under_test || '',\n\t\t\tafter: gate.proof_plan.after || proofContract?.expected_business_state_change || '',\n\t\t\tassertion: assertion || gate.proof_plan.business_assertion || ''\n\t\t},\n\t\tacceptance_gate: 'aiqa_business_assertion' as const,\n\t\tblocks_acceptance_without_business_assertion: true\n\t};\n\tconst map: Record<ResolveIOSupportIssueClass, {\n\t\taction: string;\n\t\texpected: string;\n\t\tfailureClass: ResolveIOSupportV5FailureClass;\n\t\trequiredArtifacts: string[];\n\t}> = {\n\t\tno_op_submit: {\n\t\t\taction: `Submit the customer action on ${route || 'the affected screen'} and assert a persisted state change or explicit validation message.`,\n\t\t\texpected: proof || 'Before/action/after proof shows the submit is no longer a no-op.',\n\t\t\tfailureClass: 'business',\n\t\t\trequiredArtifacts: ['before form state', 'submit action trace', 'post-submit DOM/data proof', 'method/network result']\n\t\t},\n\t\tmissing_wrong_data: {\n\t\t\taction: `Load the named record/list on ${route || 'the affected route'} and compare visible data to the expected persisted source.`,\n\t\t\texpected: proof || 'Visible data and persisted data match the customer expectation.',\n\t\t\tfailureClass: 'business',\n\t\t\trequiredArtifacts: ['expected source record', 'visible DOM/data snapshot', 'persisted data comparison']\n\t\t},\n\t\tfilter_query_mismatch: {\n\t\t\taction: 'Apply the reported filter/query inputs and assert the returned rows/counts match the expected dataset.',\n\t\t\texpected: proof || 'Filter/query output contains the correct included rows and excludes the wrong rows.',\n\t\t\tfailureClass: 'business',\n\t\t\trequiredArtifacts: ['filter input trace', 'included/excluded row proof', 'query or publication result proof']\n\t\t},\n\t\tinvoice_pdf_export: {\n\t\t\taction: 'Generate the invoice/PDF/export from the affected route and inspect the downloaded/generated artifact.',\n\t\t\texpected: proof || 'Generated artifact contains the expected customer-visible rows, totals, or fields.',\n\t\t\tfailureClass: 'business',\n\t\t\trequiredArtifacts: ['export trigger trace', 'generated file artifact path', 'parsed artifact content proof']\n\t\t},\n\t\tupload_import: {\n\t\t\taction: 'Run the upload/import workflow with a representative file and assert parsed plus persisted results.',\n\t\t\texpected: proof || 'Import shows a success result and persisted rows/counts changed as expected.',\n\t\t\tfailureClass: 'business',\n\t\t\trequiredArtifacts: ['input file fixture', 'import result message', 'persisted row/count delta']\n\t\t},\n\t\troute_auth_hydration: {\n\t\t\taction: 'Open the route as the affected user and assert authenticated hydration reaches the functional screen, not a shell.',\n\t\t\texpected: proof || 'Route hydrates with the required controls/data for the affected account.',\n\t\t\tfailureClass: 'route',\n\t\t\trequiredArtifacts: ['auth context', 'hydrated DOM proof', 'console/network error log']\n\t\t},\n\t\tslow_query_performance: {\n\t\t\taction: 'Run the reported query/workflow with timing/log evidence before and after the fix.',\n\t\t\texpected: proof || 'Performance evidence shows the slow path improved without changing results.',\n\t\t\tfailureClass: 'business',\n\t\t\trequiredArtifacts: ['before timing', 'after timing', 'result equivalence proof', 'query/log trace']\n\t\t}\n\t};\n\tconst selected = map[gate.issue_class];\n\tconst catalog = SUPPORT_ISSUE_CLASS_PROBE_CATALOG.find((entry) => entry.issue_class === gate.issue_class);\n\tconst requiredArtifacts = Array.from(new Set([\n\t\t...contractArtifacts,\n\t\t...selected.requiredArtifacts\n\t]));\n\tconst stateTransition = common.state_transition;\n\tconst action = proofContract\n\t\t? `${proofContract.action_under_test} ${selected.action}`\n\t\t: selected.action;\n\tconst expectedEvidence = `${selected.expected}${assertion ? ` Assertion: ${assertion}.` : ''}${requiredArtifacts.length ? ` Required artifacts: ${requiredArtifacts.join(', ')}.` : ''}`.trim();\n\tconst objective = `Issue-class probe for ${gate.issue_class}: ${gate.issue_case.customer_complaint}`;\n\tconst falsePassBlockers = catalog?.false_pass_blockers || [\n\t\t'route loaded only',\n\t\t'screenshot without business state proof',\n\t\t'model claim without DOM/data proof'\n\t];\n\tconst browserSteps = buildSupportIssueClassBrowserSteps({\n\t\tissueClass: gate.issue_class,\n\t\troute,\n\t\taction: stateTransition.action || action,\n\t\tbefore: stateTransition.before,\n\t\tafter: stateTransition.after,\n\t\tassertion: stateTransition.assertion\n\t});\n\tconst dataProofRequirements = buildSupportIssueClassDataProofRequirements({\n\t\tissueClass: gate.issue_class,\n\t\tassertion: stateTransition.assertion,\n\t\trequiredArtifacts\n\t});\n\tconst qaRow = buildSupportIssueClassProbeQaRow({\n\t\tissueClass: gate.issue_class,\n\t\troute,\n\t\tobjective,\n\t\taction,\n\t\texpected: proof || gate.proof_plan.business_assertion,\n\t\texpectedEvidence,\n\t\tstateTransition,\n\t\trequiredArtifacts,\n\t\tfalsePassBlockers,\n\t\tbrowserSteps\n\t});\n\tconst assertionTemplate = buildSupportIssueClassProbeAssertionTemplate({\n\t\tissueClass: gate.issue_class,\n\t\troute,\n\t\tobjective,\n\t\texpected: proof || gate.proof_plan.business_assertion,\n\t\tstateTransition,\n\t\trequiredArtifacts\n\t});\n\treturn [{\n\t\t...common,\n\t\tfailure_class: selected.failureClass,\n\t\tobjective,\n\t\taction,\n\t\tbrowser_steps: browserSteps,\n\t\texpected_evidence: expectedEvidence,\n\t\texpected_business_proof: proof || gate.proof_plan.business_assertion,\n\t\tdata_proof_requirements: dataProofRequirements,\n\t\trequired_artifacts: requiredArtifacts,\n\t\tqa_rows: [qaRow],\n\t\tactive_qa_row: qaRow,\n\t\taiqa_business_assertion_template: assertionTemplate,\n\t\tfalse_pass_blockers: falsePassBlockers\n\t}];\n}\n\nfunction normalizeResolveIOSupportIssueClassProbe(value: any, diagnosisGate?: ResolveIOSupportDiagnosisGate): ResolveIOSupportIssueClassProbe | undefined {\n\tconst source = cleanObject(value);\n\tif (!Object.keys(source).length) {\n\t\treturn undefined;\n\t}\n\tconst issueClass = normalizeIssueClass(source.issue_class || source.issueClass || diagnosisGate?.issue_class);\n\tconst stateTransition = cleanObject(source.state_transition || source.stateTransition);\n\tconst route = cleanText(source.route, 500);\n\tconst failureClass = cleanText(source.failure_class || source.failureClass || 'business', 80) as ResolveIOSupportV5FailureClass;\n\tconst normalizedIssueClass = (issueClass || diagnosisGate?.issue_class || 'missing_wrong_data') as ResolveIOSupportIssueClass;\n\tconst action = cleanText(source.action, 1200);\n\tconst expectedEvidence = cleanText(source.expected_evidence || source.expectedEvidence, 1600);\n\tconst expectedBusinessProof = cleanText(source.expected_business_proof || source.expectedBusinessProof, 1600);\n\tconst requiredArtifacts = cleanList(source.required_artifacts || source.requiredArtifacts, 12, 220);\n\tconst falsePassBlockers = cleanList(source.false_pass_blockers || source.falsePassBlockers, 8, 260);\n\tconst normalizedStateTransition = {\n\t\tbefore: cleanText(stateTransition.before, 800),\n\t\taction: cleanText(stateTransition.action, 800),\n\t\tafter: cleanText(stateTransition.after, 800),\n\t\tassertion: cleanText(stateTransition.assertion, 1000)\n\t};\n\tconst browserSteps = cleanList(source.browser_steps || source.browserSteps, 12, 500).length\n\t\t? cleanList(source.browser_steps || source.browserSteps, 12, 500)\n\t\t: buildSupportIssueClassBrowserSteps({\n\t\t\tissueClass: normalizedIssueClass,\n\t\t\troute,\n\t\t\taction: normalizedStateTransition.action || action,\n\t\t\tbefore: normalizedStateTransition.before,\n\t\t\tafter: normalizedStateTransition.after,\n\t\t\tassertion: normalizedStateTransition.assertion\n\t\t});\n\tconst dataProofRequirements = cleanList(source.data_proof_requirements || source.dataProofRequirements, 16, 260).length\n\t\t? cleanList(source.data_proof_requirements || source.dataProofRequirements, 16, 260)\n\t\t: buildSupportIssueClassDataProofRequirements({\n\t\t\tissueClass: normalizedIssueClass,\n\t\t\tassertion: normalizedStateTransition.assertion,\n\t\t\trequiredArtifacts\n\t\t});\n\tconst rawQaRows = Array.isArray(source.qa_rows)\n\t\t? source.qa_rows\n\t\t: Array.isArray(source.qaRows)\n\t\t\t? source.qaRows\n\t\t\t: source.active_qa_row || source.activeQaRow\n\t\t\t\t? [source.active_qa_row || source.activeQaRow]\n\t\t\t\t: [];\n\tconst normalizedQaRows = rawQaRows\n\t\t.map((row: any) => normalizeResolveIOSupportIssueClassProbeQaRow(row, {\n\t\t\tissueClass: normalizedIssueClass,\n\t\t\troute,\n\t\t\taction,\n\t\t\texpectedBusinessProof,\n\t\t\texpectedEvidence,\n\t\t\trequiredArtifacts,\n\t\t\tfalsePassBlockers,\n\t\t\tstateTransition: normalizedStateTransition,\n\t\t\tbrowserSteps\n\t\t}))\n\t\t.filter((row: ResolveIOSupportIssueClassProbeQaRow | undefined): row is ResolveIOSupportIssueClassProbeQaRow => !!row);\n\tif (!normalizedQaRows.length && action && expectedEvidence) {\n\t\tnormalizedQaRows.push(buildSupportIssueClassProbeQaRow({\n\t\t\tissueClass: normalizedIssueClass,\n\t\t\troute,\n\t\t\tobjective: cleanText(source.objective, 1000),\n\t\t\taction,\n\t\t\texpected: expectedBusinessProof,\n\t\t\texpectedEvidence,\n\t\t\tstateTransition: normalizedStateTransition,\n\t\t\trequiredArtifacts,\n\t\t\tfalsePassBlockers,\n\t\t\tbrowserSteps\n\t\t}));\n\t}\n\tconst assertionTemplateSource = cleanObject(source.aiqa_business_assertion_template || source.aiqaBusinessAssertionTemplate);\n\tconst assertionTemplate = Object.keys(assertionTemplateSource).length\n\t\t? normalizeResolveIOSupportIssueClassProbeAssertionTemplate(assertionTemplateSource, {\n\t\t\tissueClass: normalizedIssueClass,\n\t\t\troute,\n\t\t\tobjective: cleanText(source.objective, 1000),\n\t\t\texpected: expectedBusinessProof,\n\t\t\tstateTransition: normalizedStateTransition,\n\t\t\trequiredArtifacts\n\t\t})\n\t\t: buildSupportIssueClassProbeAssertionTemplate({\n\t\t\tissueClass: normalizedIssueClass,\n\t\t\troute,\n\t\t\tobjective: cleanText(source.objective, 1000),\n\t\t\texpected: expectedBusinessProof,\n\t\t\tstateTransition: normalizedStateTransition,\n\t\t\trequiredArtifacts\n\t\t});\n\treturn {\n\t\tissue_class: normalizedIssueClass,\n\t\tprobe_type: (cleanText(source.probe_type || source.probeType, 80) || 'issue_class_probe') as ResolveIOSupportV5StepType,\n\t\tfailure_class: failureClass,\n\t\tobjective: cleanText(source.objective, 1000),\n\t\troute,\n\t\taction,\n\t\tbrowser_steps: browserSteps,\n\t\texpected_evidence: expectedEvidence,\n\t\texpected_business_proof: expectedBusinessProof,\n\t\tdata_proof_requirements: dataProofRequirements,\n\t\trequired_artifacts: requiredArtifacts,\n\t\tqa_rows: normalizedQaRows,\n\t\tactive_qa_row: normalizedQaRows[0],\n\t\taiqa_business_assertion_template: assertionTemplate,\n\t\tstate_transition: normalizedStateTransition,\n\t\tacceptance_gate: cleanText(source.acceptance_gate || source.acceptanceGate, 120) === 'aiqa_business_assertion'\n\t\t\t? 'aiqa_business_assertion'\n\t\t\t: 'aiqa_business_assertion',\n\t\tblocks_acceptance_without_business_assertion: source.blocks_acceptance_without_business_assertion !== false\n\t\t\t&& source.blocksAcceptanceWithoutBusinessAssertion !== false,\n\t\tfalse_pass_blockers: falsePassBlockers\n\t};\n}\n\nexport function validateResolveIOSupportIssueClassProbePlan(\n\tvalue: any,\n\tdiagnosisGate?: any,\n\tnow?: Date | string\n): ResolveIOSupportIssueClassProbePlanValidation {\n\tconst diagnosisValidation = validateResolveIOSupportDiagnosisGate(diagnosisGate);\n\tconst normalizedDiagnosis = diagnosisValidation.normalized;\n\tconst source = cleanObject(value);\n\tconst rawProbes = Array.isArray(value)\n\t\t? value\n\t\t: Array.isArray(source.probes)\n\t\t\t? source.probes\n\t\t\t: Array.isArray(source.issueClassProbes)\n\t\t\t\t? source.issueClassProbes\n\t\t\t\t: Array.isArray(source.issue_class_probes)\n\t\t\t\t\t? source.issue_class_probes\n\t\t\t\t\t: source.activeProbe || source.active_probe\n\t\t\t\t\t\t? [source.activeProbe || source.active_probe]\n\t\t\t\t\t\t: [];\n\tconst probes = rawProbes\n\t\t.map((probe) => normalizeResolveIOSupportIssueClassProbe(probe, normalizedDiagnosis))\n\t\t.filter((probe): probe is ResolveIOSupportIssueClassProbe => !!probe);\n\tconst activeProbe = probes[0] || normalizeResolveIOSupportIssueClassProbe(source.activeProbe || source.active_probe, normalizedDiagnosis);\n\tconst issueClass = normalizeIssueClass(source.issue_class || source.issueClass || activeProbe?.issue_class || normalizedDiagnosis?.issue_class);\n\tconst catalog = SUPPORT_ISSUE_CLASS_PROBE_CATALOG.find((entry) => entry.issue_class === issueClass);\n\tconst planRequiredArtifacts = cleanList(source.requiredArtifacts || source.required_artifacts, 16, 220);\n\tconst activeRequiredArtifacts = cleanList(activeProbe?.required_artifacts, 16, 220);\n\tconst requiredArtifacts = planRequiredArtifacts.length ? planRequiredArtifacts : activeRequiredArtifacts;\n\tconst planQaRows = Array.isArray(source.qaRows)\n\t\t? source.qaRows\n\t\t: Array.isArray(source.qa_rows)\n\t\t\t? source.qa_rows\n\t\t\t: [];\n\tconst qaRows = (planQaRows.length ? planQaRows : probes.flatMap((probe) => probe.qa_rows || []))\n\t\t.map((row) => normalizeResolveIOSupportIssueClassProbeQaRow(row, {\n\t\t\tissueClass: (issueClass || normalizedDiagnosis?.issue_class || 'missing_wrong_data') as ResolveIOSupportIssueClass,\n\t\t\troute: activeProbe?.route,\n\t\t\taction: activeProbe?.action || '',\n\t\t\texpectedBusinessProof: activeProbe?.expected_business_proof || '',\n\t\t\texpectedEvidence: activeProbe?.expected_evidence || '',\n\t\t\trequiredArtifacts,\n\t\t\tfalsePassBlockers: activeProbe?.false_pass_blockers || catalog?.false_pass_blockers || [],\n\t\t\tstateTransition: activeProbe?.state_transition || { before: '', action: '', after: '', assertion: '' },\n\t\t\tbrowserSteps: activeProbe?.browser_steps || []\n\t\t}))\n\t\t.filter((row): row is ResolveIOSupportIssueClassProbeQaRow => !!row);\n\tconst activeQaRow = qaRows[0] || activeProbe?.active_qa_row;\n\tconst falsePassBlockers = cleanList(source.falsePassBlockers || source.false_pass_blockers, 12, 260).length\n\t\t? cleanList(source.falsePassBlockers || source.false_pass_blockers, 12, 260)\n\t\t: cleanList(activeProbe?.false_pass_blockers, 12, 260).length\n\t\t\t? cleanList(activeProbe?.false_pass_blockers, 12, 260)\n\t\t\t: (catalog?.false_pass_blockers || []);\n\tconst blockers: string[] = [];\n\tif (!diagnosisValidation.valid || !normalizedDiagnosis) {\n\t\tblockers.push('Valid SupportDiagnosisGate is required before issue-class probe QA.');\n\t}\n\tif (!probes.length || !activeProbe) {\n\t\tblockers.push('Issue-class probe plan must include at least one active probe.');\n\t}\n\tif (!issueClass) {\n\t\tblockers.push('Issue-class probe plan must record a valid issue_class.');\n\t}\n\tif (normalizedDiagnosis && issueClass && issueClass !== normalizedDiagnosis.issue_class) {\n\t\tblockers.push(`Issue-class probe plan issue_class ${issueClass} does not match diagnosis issue_class ${normalizedDiagnosis.issue_class}.`);\n\t}\n\tif (activeProbe) {\n\t\tif (!cleanText(activeProbe.route, 500)) {\n\t\t\tblockers.push('Issue-class probe must include the exact route or module under test.');\n\t\t}\n\t\tif (!cleanText(activeProbe.action, 1200)) {\n\t\t\tblockers.push('Issue-class probe must include the exact action to perform.');\n\t\t}\n\t\tif (!cleanText(activeProbe.expected_evidence, 1600)) {\n\t\t\tblockers.push('Issue-class probe must include expected evidence.');\n\t\t}\n\t\tif (!cleanText(activeProbe.expected_business_proof, 1600)) {\n\t\t\tblockers.push('Issue-class probe must include expected business proof.');\n\t\t}\n\t\tif (!cleanText(activeProbe.state_transition.before, 800)) {\n\t\t\tblockers.push('Issue-class probe state_transition.before is required.');\n\t\t}\n\t\tif (!cleanText(activeProbe.state_transition.action, 800)) {\n\t\t\tblockers.push('Issue-class probe state_transition.action is required.');\n\t\t}\n\t\tif (!cleanText(activeProbe.state_transition.after, 800)) {\n\t\t\tblockers.push('Issue-class probe state_transition.after is required.');\n\t\t}\n\t\tif (!cleanText(activeProbe.state_transition.assertion, 1000)) {\n\t\t\tblockers.push('Issue-class probe state_transition.assertion is required.');\n\t\t}\n\t\tif (activeProbe.acceptance_gate !== 'aiqa_business_assertion') {\n\t\t\tblockers.push('Issue-class probe acceptance_gate must be aiqa_business_assertion.');\n\t\t}\n\t\tif (activeProbe.blocks_acceptance_without_business_assertion !== true) {\n\t\t\tblockers.push('Issue-class probe must block acceptance without AIQaBusinessAssertion.');\n\t\t}\n\t\tif (activeRequiredArtifacts.length < 2) {\n\t\t\tblockers.push('Active issue-class probe must require at least two proof artifacts.');\n\t\t}\n\t\tif (cleanList(activeProbe.browser_steps, 12, 500).length < 3) {\n\t\t\tblockers.push('Issue-class probe must include executable browser_steps for the business workflow.');\n\t\t}\n\t\tif (cleanList(activeProbe.data_proof_requirements, 16, 260).length < 2) {\n\t\t\tblockers.push('Issue-class probe must include DOM/data proof requirements.');\n\t\t}\n\t}\n\tif (!qaRows.length || !activeQaRow) {\n\t\tblockers.push('Issue-class probe plan must include at least one executable QA row.');\n\t}\n\tif (activeQaRow) {\n\t\tif (activeQaRow.acceptance_gate !== 'aiqa_business_assertion' || activeQaRow.requires_aiqa_business_assertion !== true) {\n\t\t\tblockers.push('Issue-class QA row must require AIQaBusinessAssertion.');\n\t\t}\n\t\tif (activeQaRow.route_only_is_false_pass !== true) {\n\t\t\tblockers.push('Issue-class QA row must mark route-only evidence as a false pass.');\n\t\t}\n\t\tif (cleanList(activeQaRow.browser_steps, 12, 500).length < 3) {\n\t\t\tblockers.push('Issue-class QA row must include executable browser steps.');\n\t\t}\n\t\tif (!cleanText(activeQaRow.expected_dom_or_data_proof, 1600)) {\n\t\t\tblockers.push('Issue-class QA row must include expected DOM/data proof.');\n\t\t}\n\t}\n\tif (requiredArtifacts.length < 2) {\n\t\tblockers.push('Issue-class probe plan must require at least two proof artifacts.');\n\t}\n\tif (!falsePassBlockers.length) {\n\t\tblockers.push('Issue-class probe plan must record false-pass blockers.');\n\t}\n\tconst status: ResolveIOSupportIssueClassProbePlanStatus = blockers.length\n\t\t? (probes.length ? 'incomplete' : 'missing')\n\t\t: 'ready';\n\tconst generatedAt = cleanText(source.generatedAt || source.generated_at, 120) || isoNow(now);\n\tconst normalized: ResolveIOSupportIssueClassProbePlan = {\n\t\tplanId: cleanText(source.planId || source.plan_id, 160) || `support-probe-plan-${hashResolveIOSupportV5Evidence({\n\t\t\tissueClass,\n\t\t\troute: activeProbe?.route,\n\t\t\taction: activeProbe?.action,\n\t\t\texpectedBusinessProof: activeProbe?.expected_business_proof\n\t\t}).slice(0, 16)}`,\n\t\tstatus,\n\t\tissue_class: issueClass || undefined,\n\t\tdiagnosisValid: diagnosisValidation.valid === true,\n\t\tprobes,\n\t\tactiveProbe,\n\t\tqaRows,\n\t\tactiveQaRow,\n\t\trequiredArtifacts,\n\t\tacceptanceGate: 'aiqa_business_assertion',\n\t\tfalsePassBlockers,\n\t\tblockers,\n\t\tgeneratedAt\n\t};\n\treturn {\n\t\tvalid: blockers.length === 0,\n\t\tstatus,\n\t\tblockers,\n\t\tnormalized,\n\t\tactiveProbe\n\t};\n}\n\nexport function buildResolveIOSupportIssueClassProbePlan(\n\tdiagnosisGate: any,\n\tnow?: Date | string\n): ResolveIOSupportIssueClassProbePlan {\n\tconst diagnosisValidation = validateResolveIOSupportDiagnosisGate(diagnosisGate);\n\tconst probes = diagnosisValidation.valid && diagnosisValidation.normalized\n\t\t? buildResolveIOSupportIssueClassProbes(diagnosisValidation.normalized)\n\t\t: [];\n\tconst activeProbe = probes[0];\n\tconst qaRows = probes.flatMap((probe) => probe.qa_rows || []);\n\tconst issueClass = diagnosisValidation.normalized?.issue_class || activeProbe?.issue_class;\n\tconst catalog = SUPPORT_ISSUE_CLASS_PROBE_CATALOG.find((entry) => entry.issue_class === issueClass);\n\tconst provisional: ResolveIOSupportIssueClassProbePlan = {\n\t\tplanId: `support-probe-plan-${hashResolveIOSupportV5Evidence({\n\t\t\tissueClass,\n\t\t\troute: activeProbe?.route,\n\t\t\taction: activeProbe?.action,\n\t\t\texpectedBusinessProof: activeProbe?.expected_business_proof\n\t\t}).slice(0, 16)}`,\n\t\tstatus: 'incomplete',\n\t\tissue_class: issueClass,\n\t\tdiagnosisValid: diagnosisValidation.valid === true,\n\t\tprobes,\n\t\tactiveProbe,\n\t\tqaRows,\n\t\tactiveQaRow: qaRows[0],\n\t\trequiredArtifacts: cleanList(activeProbe?.required_artifacts, 16, 220),\n\t\tacceptanceGate: 'aiqa_business_assertion',\n\t\tfalsePassBlockers: activeProbe?.false_pass_blockers?.length\n\t\t\t? activeProbe.false_pass_blockers\n\t\t\t: (catalog?.false_pass_blockers || []),\n\t\tblockers: [],\n\t\tgeneratedAt: isoNow(now)\n\t};\n\tconst validation = validateResolveIOSupportIssueClassProbePlan(provisional, diagnosisValidation.normalized || diagnosisGate, now);\n\treturn validation.normalized || {\n\t\t...provisional,\n\t\tstatus: validation.status,\n\t\tblockers: validation.blockers\n\t};\n}\n\nexport function hashResolveIOSupportV5Evidence(value: any): string {\n\tconst raw = typeof value === 'string' ? value : JSON.stringify(value || {});\n\tconst normalized = cleanText(raw, 8000)\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\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 `ev-${Math.abs(hash).toString(36) || '0'}`;\n}\n\nfunction supportManagerRetryScopeForAction(action: ResolveIOSupportV5AutonomousNextAction): ResolveIOSupportManagerExecutionRetryScope {\n\tif (action === 'run_diagnosis_gate' || action === 'revise_diagnosis_scope') {\n\t\treturn 'diagnosis_only';\n\t}\n\tif (action === 'repair_infra_only') {\n\t\treturn 'infra_only';\n\t}\n\tif (action === 'run_owner_scoped_repair') {\n\t\treturn 'owner_files_only';\n\t}\n\tif (action === 'run_business_proof_qa') {\n\t\treturn 'business_proof_only';\n\t}\n\tif (action === 'create_pr') {\n\t\treturn 'pr_packaging_only';\n\t}\n\tif (action === 'run_a_grade_pr_review') {\n\t\treturn 'pr_review_only';\n\t}\n\tif (action === 'repair_release_hotfix_first') {\n\t\treturn 'release_hotfix_only';\n\t}\n\tif (action === 'draft_customer_reply' || action === 'ask_customer_clarification') {\n\t\treturn 'customer_draft_only';\n\t}\n\tif (action === 'collect_new_evidence') {\n\t\treturn 'evidence_only';\n\t}\n\treturn 'none';\n}\n\nfunction supportManagerDispatchActionForNextAction(\n\taction: ResolveIOSupportV5AutonomousNextAction,\n\tfields?: Partial<ResolveIOSupportV5AutonomousDecision>,\n\tpreflightGate?: ResolveIOSupportPreflightGate\n): ResolveIOAIManagerRecoveryActionDispatchAction {\n\tif (action === 'collect_new_evidence' || action === 'run_business_proof_qa') {\n\t\treturn 'run_evidence_probe';\n\t}\n\tif (action === 'run_diagnosis_gate' || action === 'revise_diagnosis_scope') {\n\t\treturn 'run_read_only_diagnosis';\n\t}\n\tif (action === 'repair_infra_only') {\n\t\treturn preflightGate?.failureClass === 'compile' ? 'run_compile_repair' : 'run_infra_repair';\n\t}\n\tif (action === 'run_owner_scoped_repair') {\n\t\treturn 'run_targeted_product_repair';\n\t}\n\tif (action === 'repair_release_hotfix_first') {\n\t\treturn 'run_release_repair';\n\t}\n\tif (action === 'create_pr') {\n\t\treturn 'continue_gate';\n\t}\n\tif (action === 'run_a_grade_pr_review') {\n\t\treturn 'continue_gate';\n\t}\n\tif (action === 'ready_for_release_gate' || action === 'draft_customer_reply') {\n\t\treturn 'continue_gate';\n\t}\n\tif (fields?.canRunQa === true) {\n\t\treturn 'run_evidence_probe';\n\t}\n\tif (fields?.canRunModel === true) {\n\t\treturn 'run_read_only_diagnosis';\n\t}\n\treturn 'park_manual';\n}\n\nfunction supportProjectedActionCostUsdForNextAction(\n\taction: ResolveIOSupportV5AutonomousNextAction,\n\tfields?: Partial<ResolveIOSupportV5AutonomousDecision>\n): number {\n\tif (action === 'run_owner_scoped_repair') {\n\t\treturn 2.5;\n\t}\n\tif (action === 'run_diagnosis_gate' || action === 'revise_diagnosis_scope') {\n\t\treturn 1.2;\n\t}\n\tif (action === 'repair_release_hotfix_first' || fields?.canHotfixBackend === true) {\n\t\treturn 0.35;\n\t}\n\tif (action === 'create_pr') {\n\t\treturn 0.1;\n\t}\n\tif (action === 'run_a_grade_pr_review') {\n\t\treturn 0.1;\n\t}\n\tif (action === 'repair_infra_only' || action === 'run_business_proof_qa' || action === 'collect_new_evidence') {\n\t\treturn 0.25;\n\t}\n\tif (action === 'draft_customer_reply') {\n\t\treturn 0.1;\n\t}\n\treturn fields?.canRunModel === true ? 1 : fields?.canRunQa === true ? 0.25 : 0;\n}\n\nfunction supportManagerMaxAttemptsForContract(contract: ResolveIOSupportNextActionContract): number {\n\tif (contract.action === 'run_owner_scoped_repair' || contract.action === 'repair_release_hotfix_first' || contract.action === 'create_pr' || contract.action === 'run_a_grade_pr_review') {\n\t\treturn 1;\n\t}\n\tif (contract.action === 'repair_infra_only') {\n\t\treturn 2;\n\t}\n\tif (contract.action === 'run_business_proof_qa' || contract.action === 'collect_new_evidence') {\n\t\treturn 1;\n\t}\n\treturn contract.costRisk === 'expensive_model' ? 1 : 2;\n}\n\nfunction supportManagerRequiredResetEvidenceForContract(contract: ResolveIOSupportNextActionContract): string[] {\n\tconst resetFromStopConditions = cleanList(contract?.stopConditions, 32, 600)\n\t\t.map((entry) => {\n\t\t\tconst match = entry.match(/Reset requires:\\s*(.+)$/i);\n\t\t\treturn cleanText(match?.[1] || '', 500);\n\t\t})\n\t\t.filter(Boolean);\n\tconst defaults = [\n\t\tcontract?.decisionBasis?.blockerFingerprint ? 'changed blocker fingerprint' : '',\n\t\tcontract?.decisionBasis?.evidenceHash ? 'changed evidence hash' : '',\n\t\tcontract?.action === 'run_business_proof_qa' ? 'fresh AIQaBusinessAssertion with before/action/after proof artifact' : '',\n\t\tcontract?.action === 'run_owner_scoped_repair' ? 'owner-scoped diff plus compile proof and fresh business proof handoff' : '',\n\t\tcontract?.action === 'run_a_grade_pr_review' ? 'fresh strict PR review evidence or changed PR review blocker fingerprint' : '',\n\t\tcontract?.action === 'repair_infra_only' ? 'fresh infra/preflight evidence hash' : ''\n\t].filter(Boolean);\n\treturn Array.from(new Set([\n\t\t...resetFromStopConditions,\n\t\t...defaults,\n\t\t'fresh artifact path, verifier signal, or validated state transition for the selected action'\n\t])).slice(0, 16);\n}\n\nexport function validateResolveIOSupportNextActionContract(\n\tvalue: any\n): ResolveIOSupportNextActionContractValidation {\n\tconst contract = cleanObject(value) as ResolveIOSupportNextActionContract;\n\tconst blockers: string[] = [];\n\tconst warnings: string[] = [];\n\tconst action = cleanText(contract.action, 120) as ResolveIOSupportV5AutonomousNextAction;\n\tconst primaryCommand = cleanText(contract.primaryCommand, 240);\n\tconst requiredStringFields: Array<[string, string]> = [\n\t\t['action', action],\n\t\t['label', contract.label],\n\t\t['primaryCommand', primaryCommand],\n\t\t['expectedStateTransition', contract.expectedStateTransition],\n\t\t['contractId', contract.contractId]\n\t];\n\tfor (const [field, fieldValue] of requiredStringFields) {\n\t\tif (!cleanText(fieldValue, 500)) {\n\t\t\tblockers.push(`NextActionContract.${field} is required.`);\n\t\t}\n\t}\n\tif (!Array.isArray(contract.nextCommands) || !contract.nextCommands.length) {\n\t\tblockers.push('NextActionContract.nextCommands must include at least the primary command.');\n\t}\n\tif (primaryCommand && Array.isArray(contract.nextCommands) && !contract.nextCommands.includes(primaryCommand)) {\n\t\tblockers.push('NextActionContract.nextCommands must include primaryCommand.');\n\t}\n\tif (!Array.isArray(contract.stopConditions) || !contract.stopConditions.length) {\n\t\tblockers.push('NextActionContract.stopConditions are required so the manager can stop without Codex sidecar monitoring.');\n\t}\n\tif (!Array.isArray(contract.forbiddenActions) || contract.forbiddenActions.length < 2) {\n\t\tblockers.push('NextActionContract.forbiddenActions must make unsafe follow-up work explicit.');\n\t}\n\tif (!Array.isArray(contract.successEvidence) || !contract.successEvidence.length) {\n\t\tblockers.push('NextActionContract.successEvidence is required before continuation.');\n\t}\n\tif (contract.safeToAutoRun === true && contract.requiresHumanApproval === true) {\n\t\tblockers.push('NextActionContract cannot be both safeToAutoRun and requiresHumanApproval.');\n\t}\n\tif (contract.canRunWithoutCodexMonitor === true) {\n\t\tif (contract.safeToAutoRun !== true) {\n\t\t\tblockers.push('canRunWithoutCodexMonitor requires safeToAutoRun=true.');\n\t\t}\n\t\tif (contract.codexFallbackRequired === true) {\n\t\t\tblockers.push('canRunWithoutCodexMonitor cannot require Codex fallback.');\n\t\t}\n\t\tif (!contract.stopConditions.some((entry) => /same failure|evidence hash|blocker fingerprint|stop/i.test(entry))) {\n\t\t\tblockers.push('canRunWithoutCodexMonitor requires a deterministic same-failure or evidence-change stop condition.');\n\t\t}\n\t}\n\tif (action === 'run_owner_scoped_repair') {\n\t\tif (contract.rootCauseFirstSatisfied !== true) {\n\t\t\tblockers.push('Owner-scoped repair requires rootCauseFirstSatisfied=true.');\n\t\t}\n\t\tif (!Array.isArray(contract.ownerFiles) || !contract.ownerFiles.length) {\n\t\t\tblockers.push('Owner-scoped repair requires a non-empty ownerFiles set.');\n\t\t}\n\t\tif (!contract.forbiddenActions.some((entry) => /owner_files|outside/i.test(entry))) {\n\t\t\tblockers.push('Owner-scoped repair must forbid edits outside owner_files.');\n\t\t}\n\t}\n\tif (action === 'run_business_proof_qa') {\n\t\tif (contract.decisionBasis?.issueClassProbePlanReady !== true) {\n\t\t\tblockers.push('Business proof QA requires issueClassProbePlanReady=true.');\n\t\t}\n\t\tif (!contract.successEvidence.some((entry) => /AIQaBusinessAssertion|business proof|before\\/action\\/after/i.test(entry))) {\n\t\t\tblockers.push('Business proof QA must require AIQaBusinessAssertion or before/action/after proof.');\n\t\t}\n\t}\n\tif (action === 'create_pr') {\n\t\tif (contract.decisionBasis?.businessProofReady !== true) {\n\t\t\tblockers.push('PR packaging requires businessProofReady=true.');\n\t\t}\n\t\tif (!contract.successEvidence.some((entry) => /pull_request_url|PR|pull request/i.test(entry))) {\n\t\t\tblockers.push('PR packaging must require pull_request_url evidence.');\n\t\t}\n\t\tif (!contract.forbiddenActions.some((entry) => /merge|release|deploy|customer/i.test(entry))) {\n\t\t\tblockers.push('PR packaging must forbid merge, release, deploy, and customer-send side effects.');\n\t\t}\n\t}\n\tif (action === 'run_a_grade_pr_review') {\n\t\tif (contract.decisionBasis?.businessProofReady !== true) {\n\t\t\tblockers.push('A-grade PR review requires businessProofReady=true.');\n\t\t}\n\t\tif (!contract.successEvidence.some((entry) => /A-grade|execution\\/artifacts\\/pull_request|strict gate|grade/i.test(entry))) {\n\t\t\tblockers.push('A-grade PR review must require strict grade evidence.');\n\t\t}\n\t\tif (!contract.forbiddenActions.some((entry) => /merge|release|deploy|customer/i.test(entry))) {\n\t\t\tblockers.push('A-grade PR review must forbid merge, release, deploy, and customer-send side effects.');\n\t\t}\n\t}\n\tif (action === 'repair_release_hotfix_first') {\n\t\tif (contract.decisionBasis?.hotfixCommitRequired === true\n\t\t\t&& ![...contract.successEvidence, ...contract.stopConditions, ...contract.forbiddenActions].some((entry) => /sourceCommitSha|githubCommitUrl|gitCommitStatus|gitPushStatus|GitHub commit/i.test(entry))) {\n\t\t\tblockers.push('Hotfix release action requires GitHub commit and push proof before continuation.');\n\t\t}\n\t\tif (contract.decisionBasis?.liveHotfixBlockedUntilCommit === true && contract.safeToAutoRun === true && primaryCommand !== 'record_hotfix_evidence') {\n\t\t\twarnings.push('Live hotfix is blocked until commit proof; manager should record evidence before any live apply.');\n\t\t}\n\t}\n\tif (action === 'draft_customer_reply') {\n\t\tif (!contract.forbiddenActions.some((entry) => /do not send|send/i.test(entry))) {\n\t\t\tblockers.push('Customer reply draft action must forbid sending without human approval.');\n\t\t}\n\t}\n\tconst status: ResolveIOSupportNextActionContractValidationStatus = blockers.length\n\t\t? 'blocked'\n\t\t: contract.requiresHumanApproval === true || contract.safeToAutoRun !== true\n\t\t\t? 'manual_required'\n\t\t\t: 'ready';\n\treturn {\n\t\tvalid: blockers.length === 0,\n\t\tstatus,\n\t\tblockers,\n\t\twarnings,\n\t\tnormalized: contract.contractId ? contract : undefined\n\t};\n}\n\nexport function buildResolveIOSupportManagerExecutionPacket(\n\tcontract: ResolveIOSupportNextActionContract,\n\tnow?: Date | string\n): ResolveIOSupportManagerExecutionPacket {\n\tconst validation = validateResolveIOSupportNextActionContract(contract);\n\tconst createdAt = isoNow(now || contract?.createdAt);\n\tconst executeNow = validation.valid === true\n\t\t&& validation.status === 'ready'\n\t\t&& contract.canRunWithoutCodexMonitor === true\n\t\t&& contract.codexFallbackRequired !== true;\n\tconst status: ResolveIOSupportManagerExecutionPacketStatus = executeNow\n\t\t? 'auto_ready'\n\t\t: validation.status === 'manual_required'\n\t\t\t? 'manual_required'\n\t\t\t: 'blocked';\n\tconst proofRequiredBeforeContinuation = Array.from(new Set([\n\t\t...cleanList(contract?.successEvidence, 24, 500),\n\t\tcleanText(contract?.expectedStateTransition, 500)\n\t].filter(Boolean))).slice(0, 24);\n\tconst retryScope = supportManagerRetryScopeForAction(contract?.action);\n\tconst maxAttemptsBeforeFreshEvidence = supportManagerMaxAttemptsForContract(contract);\n\tconst stopConditions = cleanList(contract?.stopConditions, 24, 500);\n\tconst requiredResetEvidence = supportManagerRequiredResetEvidenceForContract(contract);\n\tconst proofResetContract: ResolveIOSupportProofResetContract = {\n\t\tcontractId: `support-proof-reset-${hashResolveIOSupportV5Evidence({\n\t\t\tcontractId: contract?.contractId,\n\t\t\taction: contract?.action,\n\t\t\tretryScope,\n\t\t\tblockerFingerprint: contract?.decisionBasis?.blockerFingerprint,\n\t\t\tevidenceHash: contract?.decisionBasis?.evidenceHash,\n\t\t\tcreatedAt: createdAt.slice(0, 16)\n\t\t}).slice(0, 16)}`,\n\t\tstatus: executeNow ? 'ready' : (status === 'manual_required' ? 'manual_required' : 'blocked'),\n\t\taction: contract?.action,\n\t\tretryScope,\n\t\tmaxAttemptsBeforeFreshEvidence,\n\t\tstartingFailureClass: cleanText(contract?.decisionBasis?.failureClass, 120),\n\t\tstartingBlockerFingerprint: cleanText(contract?.decisionBasis?.blockerFingerprint, 180),\n\t\tstartingEvidenceHash: cleanText(contract?.decisionBasis?.evidenceHash, 180),\n\t\trequiredResetEvidence,\n\t\tproofRequiredBeforeContinuation,\n\t\tstopConditions,\n\t\tcanRunWithoutCodexMonitor: contract?.canRunWithoutCodexMonitor === true && executeNow,\n\t\tsourceNextActionContractId: cleanText(contract?.contractId, 180),\n\t\tcreatedAt\n\t};\n\treturn {\n\t\tpacketId: `support-manager-exec-${hashResolveIOSupportV5Evidence({\n\t\t\tcontractId: contract?.contractId,\n\t\t\taction: contract?.action,\n\t\t\tprimaryCommand: contract?.primaryCommand,\n\t\t\tstatus,\n\t\t\tcreatedAt: createdAt.slice(0, 16)\n\t\t}).slice(0, 16)}`,\n\t\tstatus,\n\t\taction: contract?.action,\n\t\tlabel: cleanText(contract?.label, 160),\n\t\tprimaryCommand: cleanText(contract?.primaryCommand, 240),\n\t\tlane: contract?.lane || 'supervisor',\n\t\tstepType: contract?.stepType || 'cleanup',\n\t\texecuteNow,\n\t\tcanRunWithoutCodexMonitor: contract?.canRunWithoutCodexMonitor === true,\n\t\tcodexFallbackRequired: contract?.codexFallbackRequired === true,\n\t\tretryScope,\n\t\tmaxAttemptsBeforeFreshEvidence,\n\t\tcostRisk: contract?.costRisk || 'manual_blocked',\n\t\tproofRequiredBeforeContinuation,\n\t\texpectedStateTransition: cleanText(contract?.expectedStateTransition, 1000),\n\t\tstopConditions,\n\t\tforbiddenActions: cleanList(contract?.forbiddenActions, 24, 500),\n\t\townerFiles: cleanList(contract?.ownerFiles, 24, 500),\n\t\tnextCommands: cleanList(contract?.nextCommands, 24, 240),\n\t\tproofResetContract,\n\t\tblockers: Array.from(new Set([\n\t\t\t...cleanList(contract?.blockers, 24, 500),\n\t\t\t...validation.blockers\n\t\t])).slice(0, 24),\n\t\tvalidation,\n\t\tcreatedAt\n\t};\n}\n\nexport function decideResolveIOSupportV5RepeatedFailureStop(input: ResolveIOSupportV5RepeatStopInput): ResolveIOSupportV5RepeatStopDecision {\n\tconst failureClass = cleanText(input.failureClass || 'unknown', 80).toLowerCase();\n\tconst blockerFingerprint = fingerprintResolveIOSupportV5Blocker(input.blocker || '');\n\tconst evidenceHash = cleanText(input.evidenceHash, 80) || hashResolveIOSupportV5Evidence(input.evidence || input.blocker || '');\n\tconst limit = Math.max(1, Number(input.limit || 2) || 2);\n\tif (input.ignoreInfra !== false && /^(infra|compile)$/.test(failureClass)) {\n\t\treturn {\n\t\t\tshouldStop: false,\n\t\t\trepeatedCount: 0,\n\t\t\tfailureClass,\n\t\t\tblockerFingerprint,\n\t\t\tevidenceHash,\n\t\t\treason: 'support_v5_infra_failures_do_not_count_as_product_repair_loops'\n\t\t};\n\t}\n\tconst latestRecord = (input.history || [])[(input.history || []).length - 1];\n\tconst managerDecision = decideResolveIOAIManagerPolicy({\n\t\thistory: (input.history || []).map((entry) => ({\n\t\t\toutcome: entry.outcome,\n\t\t\tlane: entry.lane,\n\t\t\tstepType: entry.stepType,\n\t\t\tfailureClass: entry.failureClass,\n\t\t\tblocker: entry.blocker || entry.summary,\n\t\t\tevidenceHash: entry.evidenceHash,\n\t\t\tchangedFiles: entry.changedFiles,\n\t\t\tartifactPaths: entry.artifactPaths,\n\t\t\tsummary: entry.summary,\n\t\t\trecordedAt: entry.recordedAt\n\t\t})),\n\t\tcurrent: {\n\t\t\toutcome: 'needs_repair',\n\t\t\tlane: latestRecord?.lane,\n\t\t\tstepType: latestRecord?.stepType,\n\t\t\tfailureClass,\n\t\t\tblocker: input.blocker,\n\t\t\tevidenceHash,\n\t\t\tchangedFiles: cleanList(input.changedFiles, 40, 500),\n\t\t\tartifactPaths: cleanList(input.artifactPaths, 40, 500),\n\t\t\tsummary: input.blocker\n\t\t},\n\t\tmaxSameFailureRepeats: limit,\n\t\tmaxPingPongTransitions: 3,\n\t\tinfraFailureClasses: input.ignoreInfra !== false ? ['infra', 'compile'] : []\n\t});\n\tif (managerDecision.action === 'retry_infra') {\n\t\treturn {\n\t\t\tshouldStop: false,\n\t\t\trepeatedCount: 0,\n\t\t\tfailureClass,\n\t\t\tblockerFingerprint,\n\t\t\tevidenceHash,\n\t\t\treason: 'support_v5_infra_failures_do_not_count_as_product_repair_loops'\n\t\t};\n\t}\n\tif (managerDecision.action === 'park_ping_pong') {\n\t\treturn {\n\t\t\tshouldStop: true,\n\t\t\trepeatedCount: managerDecision.pingPongCount,\n\t\t\tfailureClass,\n\t\t\tblockerFingerprint,\n\t\t\tevidenceHash,\n\t\t\tnewEvidence: managerDecision.newEvidence,\n\t\t\tmaterialEvidence: managerDecision.materialEvidence,\n\t\t\tevidenceStrength: managerDecision.evidenceStrength,\n\t\t\tevidenceSignals: managerDecision.evidenceSignals,\n\t\t\treason: 'support_v5_ping_pong_failure_loop'\n\t\t};\n\t}\n\tif (managerDecision.action === 'park_repeated_failure' && managerDecision.newEvidence && !managerDecision.materialEvidence) {\n\t\treturn {\n\t\t\tshouldStop: true,\n\t\t\trepeatedCount: managerDecision.sameFailureCount,\n\t\t\tfailureClass,\n\t\t\tblockerFingerprint,\n\t\t\tevidenceHash,\n\t\t\tnewEvidence: managerDecision.newEvidence,\n\t\t\tmaterialEvidence: managerDecision.materialEvidence,\n\t\t\tevidenceStrength: managerDecision.evidenceStrength,\n\t\t\tevidenceSignals: managerDecision.evidenceSignals,\n\t\t\treason: 'support_v5_same_failure_with_weak_evidence'\n\t\t};\n\t}\n\tif (managerDecision.newEvidence && managerDecision.materialEvidence) {\n\t\treturn {\n\t\t\tshouldStop: false,\n\t\t\trepeatedCount: managerDecision.sameFailureCount,\n\t\t\tfailureClass,\n\t\t\tblockerFingerprint,\n\t\t\tevidenceHash,\n\t\t\tnewEvidence: managerDecision.newEvidence,\n\t\t\tmaterialEvidence: managerDecision.materialEvidence,\n\t\t\tevidenceStrength: managerDecision.evidenceStrength,\n\t\t\tevidenceSignals: managerDecision.evidenceSignals,\n\t\t\treason: 'support_v5_retry_allowed_material_evidence'\n\t\t};\n\t}\n\tif (managerDecision.action === 'park_repeated_failure') {\n\t\treturn {\n\t\t\tshouldStop: true,\n\t\t\trepeatedCount: managerDecision.sameFailureCount,\n\t\t\tfailureClass,\n\t\t\tblockerFingerprint,\n\t\t\tevidenceHash,\n\t\t\tnewEvidence: managerDecision.newEvidence,\n\t\t\tmaterialEvidence: managerDecision.materialEvidence,\n\t\t\tevidenceStrength: managerDecision.evidenceStrength,\n\t\t\tevidenceSignals: managerDecision.evidenceSignals,\n\t\t\treason: 'support_v5_same_failure_class_without_new_evidence'\n\t\t};\n\t}\n\tlet repeatedCount = 0;\n\tfor (let index = (input.history || []).length - 1; index >= 0; index -= 1) {\n\t\tconst item = input.history[index];\n\t\tif (item.outcome === 'pass' || item.outcome === 'ready_for_merge') {\n\t\t\tbreak;\n\t\t}\n\t\tconst itemFailureClass = cleanText(item.failureClass || 'unknown', 80).toLowerCase();\n\t\tconst itemBlockerFingerprint = cleanText(item.blockerFingerprint, 80)\n\t\t\t|| fingerprintResolveIOSupportV5Blocker(item.blocker || item.summary || '');\n\t\tconst itemEvidenceHash = cleanText(item.evidenceHash, 80)\n\t\t\t|| hashResolveIOSupportV5Evidence(item.artifactPaths || item.blocker || item.summary || '');\n\t\tif (itemFailureClass !== failureClass || itemBlockerFingerprint !== blockerFingerprint || itemEvidenceHash !== evidenceHash) {\n\t\t\tbreak;\n\t\t}\n\t\trepeatedCount += 1;\n\t}\n\treturn {\n\t\tshouldStop: repeatedCount >= limit,\n\t\trepeatedCount,\n\t\tfailureClass,\n\t\tblockerFingerprint,\n\t\tevidenceHash,\n\t\tnewEvidence: managerDecision.newEvidence,\n\t\tmaterialEvidence: managerDecision.materialEvidence,\n\t\tevidenceStrength: managerDecision.evidenceStrength,\n\t\tevidenceSignals: managerDecision.evidenceSignals,\n\t\treason: repeatedCount >= limit\n\t\t\t? 'support_v5_same_failure_class_without_new_evidence'\n\t\t\t: 'support_v5_retry_allowed_new_or_below_repeat_limit'\n\t};\n}\n\nexport function evaluateResolveIOSupportEvidenceFreshness(input: {\n\thistory?: ResolveIOSupportV5StepRecord[];\n\tfailureClass?: ResolveIOSupportV5FailureClass | string;\n\tblocker?: any;\n\tevidence?: any;\n\tevidenceHash?: string;\n\tchangedFiles?: any;\n\tartifactPaths?: any;\n\tlane?: ResolveIOSupportV5Lane | string;\n\tstepType?: ResolveIOSupportV5StepType | string;\n\tlimit?: number;\n\tignoreInfra?: boolean;\n}): ResolveIOSupportEvidenceFreshness {\n\tconst history = Array.isArray(input.history) ? input.history : [];\n\tconst latest = history.length ? history[history.length - 1] : undefined;\n\tconst rawFailureClass = cleanText(input.failureClass || latest?.failureClass, 80).toLowerCase();\n\tconst failureClass = rawFailureClass || 'unknown';\n\tconst blocker = cleanText(input.blocker || latest?.blocker || latest?.summary, 1200);\n\tconst changedFiles = cleanList(input.changedFiles || latest?.changedFiles, 40, 500);\n\tconst artifactPaths = cleanList(input.artifactPaths || latest?.artifactPaths, 40, 500);\n\tconst explicitEvidenceHash = cleanText(input.evidenceHash || latest?.evidenceHash, 120);\n\tconst evidenceHash = explicitEvidenceHash || hashResolveIOSupportV5Evidence(input.evidence || artifactPaths || blocker || latest?.summary || '');\n\tconst blockerFingerprint = fingerprintResolveIOSupportV5Blocker(blocker || latest?.summary || '');\n\tconst missing = !history.length && !rawFailureClass && !blocker && !explicitEvidenceHash && !artifactPaths.length && !changedFiles.length;\n\tif (missing) {\n\t\treturn {\n\t\t\tstatus: 'missing',\n\t\t\tfailureClass: '',\n\t\t\tblockerFingerprint: '',\n\t\t\tevidenceHash: '',\n\t\t\tsameFailureCount: 0,\n\t\t\tpingPongCount: 0,\n\t\t\tnewEvidence: false,\n\t\t\tmaterialEvidence: false,\n\t\t\tevidenceStrength: 'none',\n\t\t\tevidenceSignals: [],\n\t\t\tloopBudgetShouldReset: false,\n\t\t\tcanRetry: true,\n\t\t\tmustCollectNewEvidence: false,\n\t\t\tproductRepairFailure: false,\n\t\t\treason: 'support_evidence_freshness_waiting_for_first_failure_or_proof',\n\t\t\trequiredResetEvidence: [\n\t\t\t\t'current blocker fingerprint',\n\t\t\t\t'evidence hash',\n\t\t\t\t'artifact path when available'\n\t\t\t],\n\t\t\tchangedFiles,\n\t\t\tartifactPaths\n\t\t};\n\t}\n\tconst current = {\n\t\toutcome: 'needs_repair',\n\t\tlane: cleanText(input.lane || latest?.lane, 80) || latest?.lane,\n\t\tstepType: cleanText(input.stepType || latest?.stepType, 80) || latest?.stepType,\n\t\tfailureClass,\n\t\tblocker,\n\t\tevidenceHash,\n\t\tchangedFiles,\n\t\tartifactPaths,\n\t\tsummary: blocker\n\t};\n\tconst policy = decideResolveIOAIManagerPolicy({\n\t\thistory: history.map((entry) => ({\n\t\t\toutcome: entry.outcome,\n\t\t\tlane: entry.lane,\n\t\t\tstepType: entry.stepType,\n\t\t\tfailureClass: entry.failureClass,\n\t\t\tblocker: entry.blocker || entry.summary,\n\t\t\tevidenceHash: entry.evidenceHash,\n\t\t\tchangedFiles: entry.changedFiles,\n\t\t\tartifactPaths: entry.artifactPaths,\n\t\t\tsummary: entry.summary,\n\t\t\trecordedAt: entry.recordedAt\n\t\t})),\n\t\tcurrent,\n\t\tmaxSameFailureRepeats: Math.max(1, Number(input.limit || 2) || 2),\n\t\tmaxPingPongTransitions: 3,\n\t\tinfraFailureClasses: input.ignoreInfra !== false ? ['infra', 'compile'] : []\n\t});\n\tlet status: ResolveIOSupportEvidenceFreshnessStatus = 'retry_below_limit';\n\tif (policy.action === 'retry_infra') {\n\t\tstatus = 'infra_ignored';\n\t}\n\telse if (policy.action === 'park_ping_pong') {\n\t\tstatus = 'ping_pong';\n\t}\n\telse if (policy.action === 'park_repeated_failure') {\n\t\tstatus = policy.newEvidence ? 'weak_evidence' : 'stale_repeated';\n\t}\n\telse if (policy.newEvidence && policy.materialEvidence) {\n\t\tstatus = 'material_evidence';\n\t}\n\telse if (policy.newEvidence && !policy.materialEvidence) {\n\t\tstatus = 'weak_evidence';\n\t}\n\telse if (policy.loopBudgetShouldReset || policy.reason === 'manager_policy_new_failure_or_lane') {\n\t\tstatus = 'fresh';\n\t}\n\tconst mustCollectNewEvidence = policy.action === 'park_repeated_failure'\n\t\t|| policy.action === 'park_ping_pong';\n\treturn {\n\t\tstatus,\n\t\tfailureClass: policy.failureClass,\n\t\tblockerFingerprint: blockerFingerprint || policy.blockerFingerprint,\n\t\tevidenceHash: policy.evidenceHash,\n\t\tsameFailureCount: policy.sameFailureCount,\n\t\tpingPongCount: policy.pingPongCount,\n\t\tnewEvidence: policy.newEvidence,\n\t\tmaterialEvidence: policy.materialEvidence,\n\t\tevidenceStrength: policy.evidenceStrength,\n\t\tevidenceSignals: policy.evidenceSignals,\n\t\tloopBudgetShouldReset: policy.loopBudgetShouldReset,\n\t\tcanRetry: !mustCollectNewEvidence,\n\t\tmustCollectNewEvidence,\n\t\tproductRepairFailure: policy.productRepairFailure,\n\t\treason: policy.reason,\n\t\trequiredResetEvidence: Array.from(new Set([\n\t\t\t...cleanList(policy.recoveryPlan.loopResetEvidence, 12, 500),\n\t\t\t...cleanList(policy.recoveryAction?.successCriteria, 12, 500)\n\t\t])).slice(0, 18),\n\t\tchangedFiles,\n\t\tartifactPaths\n\t};\n}\n\nexport function validateResolveIOSupportEvidenceProbeContract(value: any): ResolveIOSupportEvidenceProbeContractValidation {\n\tconst source = cleanObject(value);\n\tif (!Object.keys(source).length) {\n\t\treturn {\n\t\t\tvalid: false,\n\t\t\tstatus: 'blocked',\n\t\t\tblockers: ['Support evidence probe contract is missing.']\n\t\t};\n\t}\n\tconst status = cleanText(source.status, 80) === 'ready' ? 'ready' : 'blocked';\n\tconst normalized: ResolveIOSupportEvidenceProbeContract = {\n\t\tcontractId: cleanText(source.contractId || source.contract_id, 180),\n\t\tstatus,\n\t\tprobeType: (cleanText(source.probeType || source.probe_type, 80) as ResolveIOSupportEvidenceProbeContractType) || 'manual',\n\t\tevidenceOnly: true,\n\t\tproductRepairAllowed: false,\n\t\tcanRunWithoutCodexMonitor: source.canRunWithoutCodexMonitor === true || source.can_run_without_codex_monitor === true,\n\t\tissueClass: normalizeIssueClass(source.issueClass || source.issue_class) || undefined,\n\t\tplanId: cleanText(source.planId || source.plan_id, 180) || undefined,\n\t\tactiveRoute: cleanText(source.activeRoute || source.active_route, 500) || undefined,\n\t\tactionUnderTest: cleanText(source.actionUnderTest || source.action_under_test, 1000) || undefined,\n\t\texpectedBusinessProof: cleanText(source.expectedBusinessProof || source.expected_business_proof, 1400) || undefined,\n\t\tstateTransition: cleanObject(source.stateTransition || source.state_transition) as ResolveIOSupportIssueClassProbe['state_transition'],\n\t\tstartingFailureClass: cleanText(source.startingFailureClass || source.starting_failure_class, 120),\n\t\tstartingBlockerFingerprint: cleanText(source.startingBlockerFingerprint || source.starting_blocker_fingerprint, 180),\n\t\tstartingEvidenceHash: cleanText(source.startingEvidenceHash || source.starting_evidence_hash, 180),\n\t\tsameFailureCount: Math.max(0, Number(source.sameFailureCount || source.same_failure_count || 0) || 0),\n\t\tpingPongCount: Math.max(0, Number(source.pingPongCount || source.ping_pong_count || 0) || 0),\n\t\trequiredNewSignals: cleanList(source.requiredNewSignals || source.required_new_signals, 20, 500),\n\t\trequiredArtifacts: cleanList(source.requiredArtifacts || source.required_artifacts, 20, 500),\n\t\tacceptableEvidence: cleanList(source.acceptableEvidence || source.acceptable_evidence, 20, 500),\n\t\tblockers: cleanList(source.blockers, 20, 500),\n\t\tforbiddenActions: cleanList(source.forbiddenActions || source.forbidden_actions, 20, 500),\n\t\tnextCommands: cleanList(source.nextCommands || source.next_commands, 16, 260),\n\t\tcreatedAt: cleanText(source.createdAt || source.created_at, 80) || isoNow()\n\t};\n\tconst blockers = [...normalized.blockers];\n\tif (!normalized.contractId) {\n\t\tblockers.push('Evidence probe contract requires contractId.');\n\t}\n\tif (!['issue_class_probe', 'business_proof', 'preflight', 'release', 'manual'].includes(normalized.probeType)) {\n\t\tblockers.push('Evidence probe contract probeType is invalid.');\n\t}\n\tif (source.evidenceOnly === false || source.evidence_only === false) {\n\t\tblockers.push('Evidence probe contract must be evidenceOnly=true.');\n\t}\n\tif (source.productRepairAllowed === true || source.product_repair_allowed === true) {\n\t\tblockers.push('Evidence probe contract must block productRepairAllowed.');\n\t}\n\tif (!normalized.requiredNewSignals.length) {\n\t\tblockers.push('Evidence probe contract requires at least one new signal that can unblock the loop.');\n\t}\n\tif (!normalized.requiredArtifacts.length) {\n\t\tblockers.push('Evidence probe contract requires concrete artifact requirements.');\n\t}\n\tif (!normalized.acceptableEvidence.length) {\n\t\tblockers.push('Evidence probe contract requires acceptableEvidence.');\n\t}\n\tif (!normalized.nextCommands.length) {\n\t\tblockers.push('Evidence probe contract requires nextCommands.');\n\t}\n\tif (!normalized.forbiddenActions.some((entry) => /product-code|repair loop|source edit|owner_files/i.test(entry))) {\n\t\tblockers.push('Evidence probe contract must explicitly forbid product-code repair/source edits.');\n\t}\n\tif (normalized.probeType === 'issue_class_probe') {\n\t\tif (!normalized.issueClass) {\n\t\t\tblockers.push('Issue-class evidence probe requires issueClass.');\n\t\t}\n\t\tif (!normalized.activeRoute) {\n\t\t\tblockers.push('Issue-class evidence probe requires activeRoute.');\n\t\t}\n\t\tif (!normalized.actionUnderTest) {\n\t\t\tblockers.push('Issue-class evidence probe requires actionUnderTest.');\n\t\t}\n\t\tif (!normalized.expectedBusinessProof) {\n\t\t\tblockers.push('Issue-class evidence probe requires expectedBusinessProof.');\n\t\t}\n\t\tif (!normalized.acceptableEvidence.some((entry) => /AIQaBusinessAssertion|before\\/action\\/after|DOM|Mongo|data/i.test(entry))) {\n\t\t\tblockers.push('Issue-class evidence probe must require AIQaBusinessAssertion or before/action/after DOM/data/Mongo proof.');\n\t\t}\n\t}\n\tnormalized.blockers = Array.from(new Set(blockers)).slice(0, 20);\n\tnormalized.status = normalized.blockers.length ? 'blocked' : 'ready';\n\tnormalized.canRunWithoutCodexMonitor = normalized.status === 'ready' && normalized.evidenceOnly === true && normalized.productRepairAllowed === false;\n\treturn {\n\t\tvalid: normalized.status === 'ready',\n\t\tstatus: normalized.status,\n\t\tblockers: normalized.blockers,\n\t\tnormalized\n\t};\n}\n\nexport function buildResolveIOSupportEvidenceProbeContract(input: {\n\tdiagnosisGate?: any;\n\tissueClassProbePlan?: any;\n\tevidenceFreshness?: ResolveIOSupportEvidenceFreshness;\n\trequiredEvidence?: any;\n\tfailureClass?: ResolveIOSupportV5FailureClass | string;\n\tblocker?: any;\n\tevidenceHash?: string;\n\tnow?: Date | string;\n}): ResolveIOSupportEvidenceProbeContract {\n\tconst now = isoNow(input.now);\n\tconst diagnosisValidation = validateResolveIOSupportDiagnosisGate(input.diagnosisGate);\n\tconst issueClassProbePlanValidation = validateResolveIOSupportIssueClassProbePlan(\n\t\tinput.issueClassProbePlan,\n\t\tdiagnosisValidation.normalized,\n\t\tinput.now\n\t);\n\tconst activeProbe = issueClassProbePlanValidation.activeProbe\n\t\t|| issueClassProbePlanValidation.normalized?.activeProbe;\n\tconst freshness = input.evidenceFreshness || evaluateResolveIOSupportEvidenceFreshness({\n\t\tfailureClass: input.failureClass,\n\t\tblocker: input.blocker,\n\t\tevidenceHash: input.evidenceHash\n\t});\n\tconst probeType: ResolveIOSupportEvidenceProbeContractType = activeProbe\n\t\t? 'issue_class_probe'\n\t\t: /^(infra|compile)$/i.test(freshness.failureClass)\n\t\t\t? 'preflight'\n\t\t\t: /release/i.test(freshness.failureClass)\n\t\t\t\t? 'release'\n\t\t\t\t: diagnosisValidation.valid\n\t\t\t\t\t? 'business_proof'\n\t\t\t\t\t: 'manual';\n\tconst requiredNewSignals = Array.from(new Set([\n\t\t...cleanList(freshness.requiredResetEvidence, 20, 500),\n\t\t'changed blockerFingerprint from the starting failure',\n\t\t'changed evidenceHash from the starting failure',\n\t\t'fresh artifact path not already attached to the repeated failure',\n\t\tactiveProbe ? 'AIQaBusinessAssertion mapped to the active IssueClassProbePlan' : 'fresh before/action/after proof artifact'\n\t])).slice(0, 20);\n\tconst requiredArtifacts = Array.from(new Set([\n\t\t...cleanList(input.requiredEvidence, 20, 500),\n\t\t...cleanList(activeProbe?.required_artifacts, 20, 500),\n\t\t...cleanList(issueClassProbePlanValidation.normalized?.requiredArtifacts, 20, 500),\n\t\t...(probeType === 'preflight' ? ['preflight log with changed infra/compile status'] : []),\n\t\t...(probeType === 'release' ? ['release/hotfix gate result with changed status'] : []),\n\t\t...(activeProbe ? ['AIQaBusinessAssertion JSON artifact'] : [])\n\t])).slice(0, 20);\n\tconst acceptableEvidence = Array.from(new Set([\n\t\tactiveProbe ? 'AIQaBusinessAssertion tied to the active issue-class probe' : 'before/action/after business proof artifact',\n\t\tactiveProbe ? `state transition proof: ${activeProbe.state_transition.before || 'before'} -> ${activeProbe.state_transition.action || activeProbe.action} -> ${activeProbe.state_transition.after || 'after'}` : '',\n\t\t'changed blockerFingerprint or evidenceHash',\n\t\t'new DOM/data/Mongo/network artifact proving the blocker changed',\n\t\t'new compile/infra/release proof only if the failure class changed'\n\t].filter(Boolean))).slice(0, 20);\n\tconst blockers = Array.from(new Set([\n\t\t...(diagnosisValidation.valid ? [] : ['Valid SupportDiagnosisGate is required before bounded support evidence collection.']),\n\t\t...(probeType === 'issue_class_probe' && !issueClassProbePlanValidation.valid ? issueClassProbePlanValidation.blockers : []),\n\t\t...(freshness.mustCollectNewEvidence ? [] : ['Evidence probe contract is intended for repeated/stale failures that must collect new evidence.'])\n\t])).slice(0, 20);\n\tconst nextCommands = Array.from(new Set([\n\t\tactiveProbe ? 'execute_active_issue_class_probe_evidence_only' : 'collect_before_action_after_evidence_only',\n\t\t'record_changed_blocker_or_evidence_hash',\n\t\t'write_aiqa_business_assertion_or_blocker_artifact',\n\t\t'return_to_diagnosis_or_owner_scoped_repair_only_after_probe_passes'\n\t])).slice(0, 12);\n\tconst contract: ResolveIOSupportEvidenceProbeContract = {\n\t\tcontractId: `support-evidence-probe-${hashResolveIOSupportV5Evidence({\n\t\t\tissueClass: diagnosisValidation.normalized?.issue_class,\n\t\t\tplanId: issueClassProbePlanValidation.normalized?.planId,\n\t\t\tfailureClass: freshness.failureClass,\n\t\t\tblockerFingerprint: freshness.blockerFingerprint,\n\t\t\tevidenceHash: freshness.evidenceHash,\n\t\t\trequiredNewSignals,\n\t\t\tcreatedAt: now.slice(0, 16)\n\t\t}).slice(0, 16)}`,\n\t\tstatus: blockers.length ? 'blocked' : 'ready',\n\t\tprobeType,\n\t\tevidenceOnly: true,\n\t\tproductRepairAllowed: false,\n\t\tcanRunWithoutCodexMonitor: blockers.length === 0,\n\t\tissueClass: diagnosisValidation.normalized?.issue_class || activeProbe?.issue_class,\n\t\tplanId: issueClassProbePlanValidation.normalized?.planId,\n\t\tactiveRoute: activeProbe?.route || diagnosisValidation.normalized?.proof_plan.route,\n\t\tactionUnderTest: activeProbe?.action || diagnosisValidation.normalized?.proof_plan.action,\n\t\texpectedBusinessProof: activeProbe?.expected_business_proof || diagnosisValidation.normalized?.proof_plan.business_assertion,\n\t\tstateTransition: activeProbe?.state_transition,\n\t\tstartingFailureClass: freshness.failureClass,\n\t\tstartingBlockerFingerprint: freshness.blockerFingerprint,\n\t\tstartingEvidenceHash: freshness.evidenceHash,\n\t\tsameFailureCount: freshness.sameFailureCount,\n\t\tpingPongCount: freshness.pingPongCount,\n\t\trequiredNewSignals,\n\t\trequiredArtifacts,\n\t\tacceptableEvidence,\n\t\tblockers,\n\t\tforbiddenActions: [\n\t\t\t'Do not edit product-code or source files during this evidence probe.',\n\t\t\t'Do not run another repair loop from the same blockerFingerprint and evidenceHash.',\n\t\t\t'Do not treat route-load, screenshot-only, scorecard-only, or model-claim proof as acceptance.'\n\t\t],\n\t\tnextCommands,\n\t\tcreatedAt: now\n\t};\n\tconst validation = validateResolveIOSupportEvidenceProbeContract(contract);\n\treturn validation.normalized || contract;\n}\n\nexport function buildResolveIOSupportContinuationProofCheckpoint(input: {\n\taction: ResolveIOSupportV5AutonomousNextAction;\n\treason?: any;\n\tevidenceFreshness?: ResolveIOSupportEvidenceFreshness;\n\trequiredEvidence?: any;\n\trequiredResetEvidence?: any;\n\tblocksProductRepair?: boolean;\n}): ResolveIOSupportContinuationProofCheckpoint {\n\tconst evidenceFreshness = input.evidenceFreshness;\n\tconst action = input.action;\n\tconst requiredEvidence = cleanList(input.requiredEvidence, 20, 500);\n\tconst requiredResetEvidence = Array.from(new Set([\n\t\t...cleanList(input.requiredResetEvidence, 20, 500),\n\t\t...cleanList(evidenceFreshness?.requiredResetEvidence, 20, 500),\n\t\t...(action === 'run_diagnosis_gate'\n\t\t\t? [\n\t\t\t\t'accepted SupportDiagnosisGate with reproduced/blocked issue case',\n\t\t\t\t'bounded owner_files and before/action/after proof_plan'\n\t\t\t]\n\t\t\t: []),\n\t\t...(action === 'collect_new_evidence'\n\t\t\t? [\n\t\t\t\t'fresh issue-class probe artifact',\n\t\t\t\t'changed blockerFingerprint or evidenceHash',\n\t\t\t\t'AIQaBusinessAssertion or before/action/after blocker artifact'\n\t\t\t]\n\t\t\t: []),\n\t\t...(action === 'repair_infra_only'\n\t\t\t? [\n\t\t\t\t'infra or compile gate passes, or failureClass changes',\n\t\t\t\t'new evidenceHash from fresh preflight/build artifact'\n\t\t\t]\n\t\t\t: []),\n\t\t...(action === 'repair_release_hotfix_first'\n\t\t\t? [\n\t\t\t\t'GitHub commit proof recorded before live backend hotfix',\n\t\t\t\t'release gate or hotfix durability evidence refreshed'\n\t\t\t]\n\t\t\t: [])\n\t])).slice(0, 20);\n\tconst blocksProductRepair = input.blocksProductRepair === true\n\t\t|| action === 'collect_new_evidence'\n\t\t|| action === 'run_diagnosis_gate'\n\t\t|| action === 'ask_customer_clarification'\n\t\t|| action === 'repair_infra_only'\n\t\t|| action === 'revise_diagnosis_scope';\n\tconst waitingForNewEvidence = evidenceFreshness?.mustCollectNewEvidence === true\n\t\t|| action === 'collect_new_evidence';\n\tconst proofRequired = requiredEvidence.length > 0 || requiredResetEvidence.length > 0;\n\tconst status: ResolveIOSupportContinuationProofCheckpointStatus = waitingForNewEvidence\n\t\t? 'waiting_for_new_evidence'\n\t\t: proofRequired\n\t\t\t? 'waiting_for_proof'\n\t\t\t: 'waiting_for_state_transition';\n\treturn {\n\t\trequired: true,\n\t\tstatus,\n\t\taction,\n\t\treason: cleanText(input.reason || evidenceFreshness?.reason || '', 1000),\n\t\tstartingFailureClass: cleanText(evidenceFreshness?.failureClass, 120),\n\t\tstartingBlockerFingerprint: cleanText(evidenceFreshness?.blockerFingerprint, 160),\n\t\tstartingEvidenceHash: cleanText(evidenceFreshness?.evidenceHash, 160),\n\t\trequiredEvidence,\n\t\trequiredResetEvidence,\n\t\tsuccessRequiresNewEvidence: waitingForNewEvidence || blocksProductRepair,\n\t\tblocksProductRepairUntilChangedEvidence: blocksProductRepair,\n\t\tnextAction: waitingForNewEvidence\n\t\t\t? 'collect_required_reset_evidence'\n\t\t\t: action\n\t};\n}\n\nexport function changedFilesOutsideResolveIOSupportDiagnosisOwnerFiles(\n\tdiagnosisGate: any,\n\tchangedFiles: any,\n\toptions: { allowTests?: boolean } = {}\n): string[] {\n\tconst validation = validateResolveIOSupportDiagnosisGate(diagnosisGate);\n\tif (!validation.valid || !validation.normalized) {\n\t\treturn cleanList(changedFiles, 80, 500);\n\t}\n\tconst owners = validation.normalized.owner_files.map(normalizeOwnerFilePath).filter(Boolean);\n\treturn cleanList(changedFiles, 120, 500)\n\t\t.map(normalizeOwnerFilePath)\n\t\t.filter((filePath) => {\n\t\t\tif (!filePath) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tif (owners.some((ownerFile) => ownerFilePathMatchesDiagnosisOwner(filePath, ownerFile))) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tif (options.allowTests && /(^|\\/)(tests?|spec|__tests__)(\\/|$)|\\.(?:spec|test)\\.[jt]sx?$/i.test(filePath)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tif (isResolveIOSupportGeneratedAngularWrapperPath(filePath)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn true;\n\t\t});\n}\n\nfunction supportRepairPurposeForOwnerFile(\n\tgate: ResolveIOSupportDiagnosisGate | undefined,\n\tcoverage: ResolveIOSupportDiagnosisProofMatrixOwnerFile\n): string {\n\tif (!gate) {\n\t\treturn 'Repair is blocked until SupportDiagnosisGate validates.';\n\t}\n\tconst pathParts = coverage.failingPathFields.length\n\t\t? coverage.failingPathFields.join('/')\n\t\t: 'diagnosed failing path';\n\tconst proof = gate.proof_plan.business_proof_contract?.expected_business_state_change\n\t\t|| gate.proof_plan.business_assertion\n\t\t|| gate.proof_plan.after;\n\treturn cleanText(`Update ${coverage.ownerFile} only for ${pathParts}; preserve unrelated behavior and prove: ${proof}`, 1000);\n}\n\nexport function buildResolveIOSupportOwnerScopedRepairContract(input: {\n\tdiagnosisGate?: any;\n\tchangedFiles?: any;\n\tallowTestsOutsideOwnerFiles?: boolean;\n\tnow?: Date | string;\n} = {}): ResolveIOSupportOwnerScopedRepairContract {\n\tconst diagnosisValidation = validateResolveIOSupportDiagnosisGate(input.diagnosisGate);\n\tconst gate = diagnosisValidation.normalized;\n\tconst proofMatrix = diagnosisValidation.proofMatrix || buildResolveIOSupportDiagnosisProofMatrix(input.diagnosisGate, input.now);\n\tconst ownerFiles = gate?.owner_files || proofMatrix.ownerFiles || [];\n\tconst changedFiles = cleanList(input.changedFiles, 120, 500)\n\t\t.map(normalizeOwnerFilePath)\n\t\t.filter(Boolean);\n\tconst outsideOwnerFiles = changedFiles.length\n\t\t? changedFilesOutsideResolveIOSupportDiagnosisOwnerFiles(gate || input.diagnosisGate, changedFiles, {\n\t\t\tallowTests: input.allowTestsOutsideOwnerFiles === true\n\t\t})\n\t\t: [];\n\tconst patchUnits = proofMatrix.ownerFileCoverage.map((coverage) => ({\n\t\townerFile: coverage.ownerFile,\n\t\tcoverageEvidenceIds: coverage.evidenceIds,\n\t\tfailingPathFields: coverage.failingPathFields,\n\t\trepairPurpose: supportRepairPurposeForOwnerFile(gate, coverage),\n\t\trequiredLocalChecks: [\n\t\t\t'compile or targeted typecheck passes',\n\t\t\t'targeted unit/integration check when available',\n\t\t\t'no edits outside owner_files except explicitly allowed tests'\n\t\t]\n\t}));\n\tconst blockers = Array.from(new Set([\n\t\t...diagnosisValidation.blockers,\n\t\t...proofMatrix.blockers,\n\t\t...(outsideOwnerFiles.length ? [`Repair contract changed files outside owner_files: ${outsideOwnerFiles.join(', ')}`] : []),\n\t\t...(ownerFiles.length ? [] : ['Repair contract requires a non-empty owner_files set.']),\n\t\t...(patchUnits.length ? [] : ['Repair contract requires at least one owner-file patch unit.'])\n\t])).slice(0, 40);\n\tconst status: ResolveIOSupportOwnerScopedRepairContract['status'] = blockers.length ? 'blocked' : 'ready';\n\tconst requiredEvidenceBeforeRepair = [\n\t\t'valid SupportDiagnosisGate',\n\t\t'ready SupportDiagnosisProofMatrix',\n\t\t'owner_files coverage for every patch unit',\n\t\t'preflight/compile gate not blocking product repair'\n\t];\n\tconst requiredEvidenceAfterRepair = [\n\t\t'changed files are within owner_files',\n\t\t'compile or targeted unit gate passes',\n\t\t'fresh AIQaBusinessAssertion mapped to diagnosis proof_plan',\n\t\t'business proof artifacts include before/action/after DOM/data or Mongo proof'\n\t];\n\tconst createdAt = isoNow(input.now);\n\treturn {\n\t\tcontractId: `support-owner-scoped-repair-${hashResolveIOSupportV5Evidence({\n\t\t\tissueClass: gate?.issue_class,\n\t\t\townerFiles,\n\t\t\tproofMatrixId: proofMatrix.matrixId,\n\t\t\tchangedFiles,\n\t\t\toutsideOwnerFiles,\n\t\t\tcreatedAt: createdAt.slice(0, 16)\n\t\t}).slice(0, 16)}`,\n\t\tstatus,\n\t\tsourceEditsAllowed: status === 'ready',\n\t\tcanRunWithoutCodexMonitor: status === 'ready',\n\t\tissueClass: gate?.issue_class,\n\t\townerFiles,\n\t\tproofMatrixId: proofMatrix.matrixId,\n\t\tchangedFiles,\n\t\toutsideOwnerFiles,\n\t\tpatchUnits,\n\t\trequiredEvidenceBeforeRepair,\n\t\trequiredEvidenceAfterRepair,\n\t\tnextCommands: [\n\t\t\t'load_owner_files_only',\n\t\t\t'apply_smallest_fix_to_patch_units',\n\t\t\t'run_smallest_compile_or_unit_gate',\n\t\t\t'handoff_to_business_proof_qa'\n\t\t],\n\t\tforbiddenActions: [\n\t\t\t'Do not edit outside owner_files unless SupportDiagnosisGate is revised with new evidence.',\n\t\t\t'Do not accept route-load, screenshot-only, scorecard-only, or model-claim proof.',\n\t\t\t'Do not draft a customer resolution until business proof readiness passes.'\n\t\t],\n\t\tblockers,\n\t\tcreatedAt\n\t};\n}\n\nexport function decideResolveIOSupportV5RepairGate(input: ResolveIOSupportV5RepairGateInput): ResolveIOSupportV5RepairGateDecision {\n\tconst activeStepType = cleanText(input.activeStepType, 80);\n\tconst failureClass = cleanText(input.failureClass, 80).toLowerCase();\n\tconst preflightGate = evaluateResolveIOSupportPreflightGate(input.preflightGate);\n\tconst diagnosisValidation = validateResolveIOSupportDiagnosisGate(input.diagnosisGate, {\n\t\tmaxOwnerFiles: input.maxOwnerFiles\n\t});\n\tconst ownerFiles = diagnosisValidation.normalized?.owner_files || [];\n\tconst outsideOwnerFiles = changedFilesOutsideResolveIOSupportDiagnosisOwnerFiles(\n\t\tdiagnosisValidation.normalized || input.diagnosisGate,\n\t\tinput.changedFiles,\n\t\t{ allowTests: input.allowTestsOutsideOwnerFiles === true }\n\t);\n\tconst ownerScopedRepairContract = buildResolveIOSupportOwnerScopedRepairContract({\n\t\tdiagnosisGate: diagnosisValidation.normalized || input.diagnosisGate,\n\t\tchangedFiles: input.changedFiles,\n\t\tallowTestsOutsideOwnerFiles: input.allowTestsOutsideOwnerFiles === true\n\t});\n\tconst repeatedFailure = input.history?.length ? decideResolveIOSupportV5RepeatedFailureStop({\n\t\thistory: input.history,\n\t\tfailureClass,\n\t\tblocker: input.blocker,\n\t\tevidence: input.evidence,\n\t\tevidenceHash: input.evidenceHash,\n\t\tchangedFiles: input.changedFiles,\n\t\tartifactPaths: input.artifactPaths,\n\t\tlimit: Math.max(1, Number(input.maxRepeatedNoProgress || 2) || 2),\n\t\tignoreInfra: true\n\t}) : undefined;\n\tconst recoveryPlanFor = (\n\t\taction: string,\n\t\treason: string,\n\t\trecoveryFailureClass = failureClass || 'unknown',\n\t\tproductRepairFailure = false\n\t): ResolveIOAIManagerRecoveryPlan => buildResolveIOAIManagerRecoveryPlan({\n\t\taction,\n\t\treason,\n\t\tfailureClass: recoveryFailureClass,\n\t\tlane: 'build',\n\t\tstepType: activeStepType || 'build_repair',\n\t\tblocker: input.blocker || (diagnosisValidation.blockers || []).join(' | '),\n\t\tchangedFiles: cleanList(input.changedFiles, 40, 500),\n\t\tmaxSameFailureRepeats: Math.max(1, Number(input.maxRepeatedNoProgress || 2) || 2),\n\t\tproductRepairFailure\n\t});\n\tconst recoveryCheckpointFor = (\n\t\trecoveryPlan: ResolveIOAIManagerRecoveryPlan\n\t): ResolveIOAIManagerRecoveryCheckpoint => buildResolveIOAIManagerRecoveryCheckpoint({\n\t\tplan: recoveryPlan,\n\t\tcurrent: {\n\t\t\tlane: 'build',\n\t\t\tstepType: activeStepType || 'build_repair',\n\t\t\tfailureClass: failureClass || 'unknown',\n\t\t\tblocker: input.blocker || (diagnosisValidation.blockers || []).join(' | '),\n\t\t\tevidenceHash: input.evidenceHash,\n\t\t\tchangedFiles: cleanList(input.changedFiles, 40, 500),\n\t\t\tsummary: input.blocker\n\t\t}\n\t});\n\tconst recoveryFieldsFor = (\n\t\trecoveryPlan: ResolveIOAIManagerRecoveryPlan\n\t): Pick<ResolveIOSupportV5RepairGateDecision, 'recoveryPlan' | 'recoveryCheckpoint' | 'recoveryEvidenceProbe' | 'recoveryAction'> => {\n\t\tconst recoveryCheckpoint = recoveryCheckpointFor(recoveryPlan);\n\t\tconst recoveryEvidenceProbe = buildResolveIOAIManagerRecoveryEvidenceProbe({\n\t\t\tcheckpoint: recoveryCheckpoint,\n\t\t\tcurrent: {\n\t\t\t\tlane: 'build',\n\t\t\t\tstepType: activeStepType || 'build_repair',\n\t\t\t\tfailureClass: failureClass || 'unknown',\n\t\t\t\tblocker: input.blocker || (diagnosisValidation.blockers || []).join(' | '),\n\t\t\t\tevidenceHash: input.evidenceHash,\n\t\t\t\tchangedFiles: cleanList(input.changedFiles, 40, 500),\n\t\t\t\tsummary: input.blocker\n\t\t\t}\n\t\t});\n\t\tconst current = {\n\t\t\tlane: 'build',\n\t\t\tstepType: activeStepType || 'build_repair',\n\t\t\tfailureClass: failureClass || 'unknown',\n\t\t\tblocker: input.blocker || (diagnosisValidation.blockers || []).join(' | '),\n\t\t\tevidenceHash: input.evidenceHash,\n\t\t\tchangedFiles: cleanList(input.changedFiles, 40, 500),\n\t\t\tsummary: input.blocker\n\t\t};\n\t\treturn {\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 (repeatedFailure?.shouldStop) {\n\t\tconst recoveryPlan = recoveryPlanFor('park_repeated_failure', repeatedFailure.reason, repeatedFailure.failureClass, true);\n\t\treturn {\n\t\t\taction: 'park_repeated_failure',\n\t\t\tcanEditProductCode: false,\n\t\t\tblockers: [repeatedFailure.reason],\n\t\t\townerFiles,\n\t\t\tissueClass: diagnosisValidation.normalized?.issue_class,\n\t\t\tproofPlan: diagnosisValidation.normalized?.proof_plan,\n\t\t\townerScopedRepairContract,\n\t\t\toutsideOwnerFiles,\n\t\t\tpreflightGate,\n\t\t\trepeatedFailure,\n\t\t\tdiagnosisValidation,\n\t\t\t...recoveryFieldsFor(recoveryPlan)\n\t\t};\n\t}\n\tif (preflightGate.blocksProductRepair) {\n\t\tconst recoveryFailureClass = preflightGate.failureClass === 'compile' ? 'compile' : 'infra';\n\t\tconst recoveryPlan = recoveryPlanFor(\n\t\t\t'retry_infra',\n\t\t\t'support_v5_preflight_gate_blocks_product_repair',\n\t\t\trecoveryFailureClass,\n\t\t\tfalse\n\t\t);\n\t\treturn {\n\t\t\taction: 'infra_repair_only',\n\t\t\tcanEditProductCode: false,\n\t\t\tblockers: preflightGate.blockers.length\n\t\t\t\t? preflightGate.blockers\n\t\t\t\t: ['Deterministic support preflight must pass before product-code repair.'],\n\t\t\townerFiles,\n\t\t\tissueClass: diagnosisValidation.normalized?.issue_class,\n\t\t\tproofPlan: diagnosisValidation.normalized?.proof_plan,\n\t\t\townerScopedRepairContract,\n\t\t\toutsideOwnerFiles,\n\t\t\tpreflightGate,\n\t\t\trepeatedFailure,\n\t\t\tdiagnosisValidation,\n\t\t\t...recoveryFieldsFor(recoveryPlan)\n\t\t};\n\t}\n\tif (failureClass === 'infra' || failureClass === 'compile') {\n\t\tconst recoveryPlan = recoveryPlanFor('retry_infra', 'support_v5_infra_or_compile_repair_required', failureClass, false);\n\t\treturn {\n\t\t\taction: 'infra_repair_only',\n\t\t\tcanEditProductCode: false,\n\t\t\tblockers: ['Infra/compile/Puppeteer/startup failures must be repaired in the harness lane before product-code repair.'],\n\t\t\townerFiles,\n\t\t\tissueClass: diagnosisValidation.normalized?.issue_class,\n\t\t\tproofPlan: diagnosisValidation.normalized?.proof_plan,\n\t\t\townerScopedRepairContract,\n\t\t\toutsideOwnerFiles,\n\t\t\tpreflightGate,\n\t\t\trepeatedFailure,\n\t\t\tdiagnosisValidation,\n\t\t\t...recoveryFieldsFor(recoveryPlan)\n\t\t};\n\t}\n\tif (activeStepType === 'diagnosis_gate' || !diagnosisValidation.valid) {\n\t\tconst recoveryPlan = recoveryPlanFor('continue', 'support_v5_diagnosis_gate_required', 'diagnosis', false);\n\t\treturn {\n\t\t\taction: 'diagnose_only',\n\t\t\tcanEditProductCode: false,\n\t\t\tblockers: diagnosisValidation.blockers.length\n\t\t\t\t? diagnosisValidation.blockers\n\t\t\t\t: ['SupportDiagnosisGate is required before product-code repair.'],\n\t\t\townerFiles,\n\t\t\tissueClass: diagnosisValidation.normalized?.issue_class,\n\t\t\tproofPlan: diagnosisValidation.normalized?.proof_plan,\n\t\t\townerScopedRepairContract,\n\t\t\toutsideOwnerFiles,\n\t\t\tpreflightGate,\n\t\t\trepeatedFailure,\n\t\t\tdiagnosisValidation,\n\t\t\t...recoveryFieldsFor(recoveryPlan)\n\t\t};\n\t}\n\tif (outsideOwnerFiles.length) {\n\t\tconst recoveryPlan = recoveryPlanFor('continue', 'support_v5_out_of_scope_requires_diagnosis_revision', 'owner_scope', false);\n\t\treturn {\n\t\t\taction: 'reject_out_of_scope',\n\t\t\tcanEditProductCode: false,\n\t\t\tblockers: [`Changed files outside diagnosis owner_files; revise diagnosis with new evidence before broadening edits: ${outsideOwnerFiles.join(', ')}`],\n\t\t\townerFiles,\n\t\t\tissueClass: diagnosisValidation.normalized?.issue_class,\n\t\t\tproofPlan: diagnosisValidation.normalized?.proof_plan,\n\t\t\townerScopedRepairContract,\n\t\t\toutsideOwnerFiles,\n\t\t\tpreflightGate,\n\t\t\trepeatedFailure,\n\t\t\tdiagnosisValidation,\n\t\t\t...recoveryFieldsFor(recoveryPlan)\n\t\t};\n\t}\n\tconst recoveryPlan = recoveryPlanFor('continue', 'support_v5_product_repair_allowed_after_diagnosis', failureClass || 'product_code', true);\n\treturn {\n\t\taction: 'allow_product_repair',\n\t\tcanEditProductCode: true,\n\t\tblockers: [],\n\t\townerFiles,\n\t\tissueClass: diagnosisValidation.normalized?.issue_class,\n\t\tproofPlan: diagnosisValidation.normalized?.proof_plan,\n\t\townerScopedRepairContract,\n\t\toutsideOwnerFiles,\n\t\tpreflightGate,\n\t\trepeatedFailure,\n\t\tdiagnosisValidation,\n\t\t...recoveryFieldsFor(recoveryPlan)\n\t};\n}\n\nexport function applyResolveIOSupportDiagnosisGateToMicrotasks(\n\tbundle: ResolveIOSupportV5StateBundle,\n\tdiagnosisGate: any\n): ResolveIOSupportV5StateBundle {\n\tconst validation = validateResolveIOSupportDiagnosisGate(diagnosisGate);\n\tconst gate = validation.normalized;\n\tif (!gate) {\n\t\treturn bundle;\n\t}\n\tconst now = isoNow();\n\tconst ownerFiles = gate.owner_files;\n\tconst probes = buildResolveIOSupportIssueClassProbes(gate);\n\tconst probePlan = buildResolveIOSupportIssueClassProbePlan(gate, now);\n\tconst probePlanValidation = validateResolveIOSupportIssueClassProbePlan(probePlan, gate, now);\n\tconst proofContract = gate.proof_plan.business_proof_contract;\n\tconst activeProbe = probePlanValidation.activeProbe || probePlan.activeProbe || probes[0];\n\tconst businessProof = proofContract?.expected_business_state_change || gate.proof_plan.business_assertion;\n\tconst businessAssertion = activeProbe?.state_transition.assertion\n\t\t|| proofContract?.data_or_dom_assertion\n\t\t|| gate.proof_plan.data_assertion\n\t\t|| gate.proof_plan.after;\n\tconst repairObjective = cleanText([\n\t\t`Patch the accepted root cause in ${ownerFiles.join(', ')}.`,\n\t\t`Hypothesis: ${gate.accepted_hypothesis.statement}`,\n\t\t`Business proof: ${gate.proof_plan.business_assertion}`\n\t].filter(Boolean).join(' '), 520);\n\tconst repairSelfGate = [\n\t\t`Modify only the diagnosed owner files unless you revise the diagnosis with new evidence. Owner files: ${ownerFiles.join(', ')}.`,\n\t\t`Implement the falsifiable fix for: ${gate.accepted_hypothesis.statement}`,\n\t\t'Do not re-run read-only reproduction as the repair; make the smallest product-code change and report targeted proof.'\n\t].join(' ');\n\tconst qaObjective = cleanText([\n\t\t'QA proof for diagnosis business assertion:',\n\t\tproofContract?.action_under_test || gate.proof_plan.action,\n\t\t'=>',\n\t\tbusinessAssertion || businessProof\n\t].filter(Boolean).join(' '), 420);\n\tconst looksLikeReadOnlyDiagnosisTask = (task: ResolveIOSupportV5Microtask): boolean => {\n\t\tconst text = `${task.objective || ''}\\n${task.selfGate || ''}\\n${task.blocker || ''}`;\n\t\tif (!/\\b(replicat|reproduc|diagnos|analy[sz]|investigat|inspect|review|classif|read[-\\s]*only|attached\\s+template|upload\\s+issue)\\b/i.test(text)) {\n\t\t\treturn false;\n\t\t}\n\t\treturn !/\\b(patch|repair|fix|implement|correct|update|change product-code|product-code change)\\b/i.test(task.objective || '');\n\t};\n\tconst diagnosisMicrotaskId = (bundle.supportV5MicrotaskLedger || [])\n\t\t.find((task) => task.type === 'diagnosis_gate')?.microtaskId\n\t\t|| stableIdFromText('diagnosis', `Root-cause-first diagnosis gate for: ${cleanText(bundle.supportV5ScopeDigest || gate.issue_case.customer_complaint, 360) || 'support ticket'}`);\n\tconst ledger = (bundle.supportV5MicrotaskLedger || []).map((task) => {\n\t\tif (task.type === 'diagnosis_gate') {\n\t\t\treturn {\n\t\t\t\t...task,\n\t\t\t\tstatus: validation.valid ? 'pass' as ResolveIOSupportV5MicrotaskStatus : 'needs_repair' as ResolveIOSupportV5MicrotaskStatus,\n\t\t\t\tblocker: validation.valid ? '' : validation.blockers.join(' | '),\n\t\t\t\tupdatedAt: now\n\t\t\t};\n\t\t}\n\t\tif (task.lane === 'build' && /repair|product_repair|build_repair/i.test(String(task.type || ''))) {\n\t\t\tconst staleDiagnosisTask = validation.valid && looksLikeReadOnlyDiagnosisTask(task);\n\t\t\treturn {\n\t\t\t\t...task,\n\t\t\t\tstatus: staleDiagnosisTask ? 'pending' as ResolveIOSupportV5MicrotaskStatus : task.status,\n\t\t\t\tobjective: staleDiagnosisTask ? repairObjective : task.objective,\n\t\t\t\ttargetFiles: ownerFiles,\n\t\t\t\tcontextRefs: Array.from(new Set([...(task.contextRefs || []), 'supportV5DiagnosisGate', 'owner_files', 'proof_plan', 'accepted_hypothesis'])),\n\t\t\t\tselfGate: repairSelfGate,\n\t\t\t\tacceptanceProof: businessProof,\n\t\t\t\tdependsOn: Array.from(new Set([...(task.dependsOn || []), diagnosisMicrotaskId])),\n\t\t\t\tattempts: staleDiagnosisTask ? 0 : task.attempts,\n\t\t\t\tblocker: staleDiagnosisTask ? '' : task.blocker,\n\t\t\t\tupdatedAt: now\n\t\t\t};\n\t\t}\n\t\tif (task.lane === 'qa' && task.type === 'qa_row') {\n\t\t\tconst staleQaTask = validation.valid && looksLikeReadOnlyDiagnosisTask(task);\n\t\t\treturn {\n\t\t\t\t...task,\n\t\t\t\tobjective: staleQaTask ? qaObjective : task.objective,\n\t\t\t\tcontextRefs: Array.from(new Set([...(task.contextRefs || []), 'supportV5DiagnosisGate', 'supportV5IssueClassProbePlan', 'proof_plan'])),\n\t\t\t\tselfGate: activeProbe?.action || task.selfGate,\n\t\t\t\tacceptanceProof: activeProbe?.expected_business_proof || businessProof || task.acceptanceProof,\n\t\t\t\ttargetFiles: ownerFiles,\n\t\t\t\tattempts: staleQaTask ? 0 : task.attempts,\n\t\t\t\tblocker: staleQaTask ? '' : task.blocker,\n\t\t\t\tupdatedAt: now\n\t\t\t};\n\t\t}\n\t\treturn task;\n\t});\n\tconst nextActive = selectResolveIOSupportV5ActiveMicrotask(ledger, bundle.supportV5ActiveMicrotaskId);\n\treturn {\n\t\t...bundle,\n\t\tsupportV5DiagnosisGate: gate,\n\t\tsupportV5IssueClassProbePlan: probePlanValidation.normalized || probePlan,\n\t\tsupportV5MicrotaskLedger: ledger,\n\t\tsupportV5ActiveMicrotaskId: nextActive?.microtaskId,\n\t\tsupportV5LaneMemory: {\n\t\t\t...bundle.supportV5LaneMemory,\n\t\t\tbuild: {\n\t\t\t\t...bundle.supportV5LaneMemory.build,\n\t\t\t\tchangedFiles: ownerFiles,\n\t\t\t\tscopeSummary: [\n\t\t\t\t\tbundle.supportV5LaneMemory.build.scopeSummary,\n\t\t\t\t\t`Diagnosis issue class: ${gate.issue_class}`,\n\t\t\t\t\t`Accepted hypothesis: ${gate.accepted_hypothesis.statement}`,\n\t\t\t\t\t`Owner files: ${ownerFiles.join(', ')}`\n\t\t\t\t].filter(Boolean).join(' | '),\n\t\t\t\tupdatedAt: now\n\t\t\t},\n\t\t\tqa: {\n\t\t\t\t...bundle.supportV5LaneMemory.qa,\n\t\t\t\tactiveQaRow: {\n\t\t\t\t\tworkflow: proofContract?.action_under_test || activeProbe?.state_transition.action || gate.proof_plan.action,\n\t\t\t\t\troute: gate.proof_plan.route || gate.issue_case.route_module,\n\t\t\t\t\tassertion: businessAssertion,\n\t\t\t\t\tstatus: 'pending'\n\t\t\t\t},\n\t\t\t\tupdatedAt: now\n\t\t\t}\n\t\t}\n\t};\n}\n\nfunction stableIdFromText(prefix: string, value: string): string {\n\tconst text = cleanText(value, 2000).toLowerCase();\n\tlet hash = 0;\n\tfor (let index = 0; index < text.length; index += 1) {\n\t\thash = ((hash << 5) - hash + text.charCodeAt(index)) | 0;\n\t}\n\treturn `${prefix}-${Math.abs(hash).toString(36) || '0'}`;\n}\n\nfunction estimateTextTokens(value: string): number {\n\tconst text = String(value || '');\n\tif (!text) {\n\t\treturn 0;\n\t}\n\treturn Math.max(1, Math.ceil(text.length / 4));\n}\n\nexport function fingerprintResolveIOSupportV5Blocker(value: any): string {\n\tconst text = 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\tlet hash = 0;\n\tfor (let index = 0; index < text.length; index += 1) {\n\t\thash = ((hash << 5) - hash + text.charCodeAt(index)) | 0;\n\t}\n\treturn `v5-${Math.abs(hash).toString(36)}`;\n}\n\nexport function buildResolveIOSupportV5Budget(existing?: Partial<ResolveIOSupportV5Budget>): ResolveIOSupportV5Budget {\n\treturn {\n\t\tmaxPromptTokensPerNonInitialStep: Number(existing?.maxPromptTokensPerNonInitialStep || 1800),\n\t\tmaxLoopsPerTicket: Number(existing?.maxLoopsPerTicket || 24),\n\t\tmaxRepeatedNoProgress: Number(existing?.maxRepeatedNoProgress || 2),\n\t\tmaxRuntimeMinutesPerLoop: Number(existing?.maxRuntimeMinutesPerLoop || 15),\n\t\ttotalPromptTokenEstimate: Number(existing?.totalPromptTokenEstimate || 0),\n\t\ttotalRuntimeMs: Number(existing?.totalRuntimeMs || 0),\n\t\tloopCount: Number(existing?.loopCount || 0)\n\t};\n}\n\nexport function buildResolveIOSupportV5PromptBudget(existing?: Partial<ResolveIOSupportV5PromptBudget>): ResolveIOSupportV5PromptBudget {\n\treturn {\n\t\tinitialPlannerCap: Number(existing?.initialPlannerCap || 6000),\n\t\tbuildMicrotaskCap: Number(existing?.buildMicrotaskCap || 1800),\n\t\tbuildMicrotaskHardCap: Number(existing?.buildMicrotaskHardCap || 2500),\n\t\tqaMicrotaskCap: Number(existing?.qaMicrotaskCap || 1500),\n\t\tqaMicrotaskHardCap: Number(existing?.qaMicrotaskHardCap || 2200),\n\t\trepairMicrotaskCap: Number(existing?.repairMicrotaskCap || 1200),\n\t\trepairMicrotaskHardCap: Number(existing?.repairMicrotaskHardCap || 1800)\n\t};\n}\n\nexport function buildResolveIOSupportV5ScopeDigest(input: {\n\tgoal?: string;\n\tapprovedScope?: string | string[];\n\tprBranch?: string;\n\tmaxTokens?: number;\n}): string {\n\tconst scope = Array.isArray(input.approvedScope)\n\t\t? cleanList(input.approvedScope, 30, 220).join(' | ')\n\t\t: cleanText(input.approvedScope, 4000);\n\tconst raw = [\n\t\tinput.goal ? `Goal: ${cleanText(input.goal, 300)}` : '',\n\t\tscope ? `Approved scope: ${scope}` : '',\n\t\tinput.prBranch ? `PR branch: ${cleanText(input.prBranch, 160)}` : ''\n\t].filter(Boolean).join('\\n');\n\tconst maxChars = Math.max(400, Math.floor(Number(input.maxTokens || 1000) * 4));\n\treturn raw.slice(0, maxChars);\n}\n\nexport function buildResolveIOSupportV5MicrotaskLedger(input: {\n\tscopeDigest: string;\n\trequirements?: string[];\n\tbuildThreadKey: string;\n\tqaThreadKey: string;\n\tnow?: Date | string;\n\texisting?: ResolveIOSupportV5Microtask[];\n}): ResolveIOSupportV5Microtask[] {\n\tconst existing = Array.isArray(input.existing) ? input.existing : [];\n\tconst completedByObjective = new Map<string, ResolveIOSupportV5Microtask>();\n\tfor (const task of existing) {\n\t\tif (task && (task.status === 'pass' || task.status === 'parked')) {\n\t\t\tcompletedByObjective.set(cleanText(task.objective, 500).toLowerCase(), task);\n\t\t}\n\t}\n\tconst now = isoNow(input.now);\n\tconst requirements = cleanList(input.requirements, 30, 240);\n\tconst sourceRequirements = requirements.length\n\t\t? requirements\n\t\t: cleanText(input.scopeDigest, 1000).split(/\\s+\\|\\s+|\\r?\\n/g).map((line) => line.trim()).filter(Boolean).slice(0, 12);\n\tconst ledger: ResolveIOSupportV5Microtask[] = [];\n\tconst diagnosisObjective = `Root-cause-first diagnosis gate for: ${cleanText(input.scopeDigest, 360) || 'support ticket'}`;\n\tconst diagnosisId = stableIdFromText('diagnosis', diagnosisObjective);\n\tconst existingDiagnosis = existing.find((task) => task?.type === 'diagnosis_gate' || task?.microtaskId === diagnosisId);\n\tledger.push(existingDiagnosis && (existingDiagnosis.status === 'pass' || existingDiagnosis.status === 'parked') ? existingDiagnosis : {\n\t\tmicrotaskId: diagnosisId,\n\t\tlane: 'build',\n\t\ttype: 'diagnosis_gate',\n\t\tstatus: existingDiagnosis?.status || 'pending',\n\t\tobjective: diagnosisObjective,\n\t\ttargetFiles: [],\n\t\tcontextRefs: ['scope_digest', 'support_context', 'similar_tickets', 'similar_commits'],\n\t\tselfGate: 'Read-only diagnosis only: reproduce or explicitly classify the issue, accept one falsifiable root-cause hypothesis, reject alternatives, identify the failing path, cap owner_files, and define before/action/after business proof.',\n\t\tacceptanceProof: 'Valid ResolveIOSupportDiagnosisGate JSON with issue_case, issue_class, accepted_hypothesis, rejected_alternatives, failing_path, owner_files, proof_plan, evidence, and status=passed.',\n\t\tthreadKey: input.buildThreadKey,\n\t\tpromptTokenEstimate: existingDiagnosis?.promptTokenEstimate,\n\t\tattempts: existingDiagnosis?.attempts || 0,\n\t\tdependsOn: [],\n\t\tparentScopeId: stableIdFromText('scope', diagnosisObjective),\n\t\tblocker: existingDiagnosis?.blocker,\n\t\tcreatedAt: existingDiagnosis?.createdAt || now,\n\t\tupdatedAt: existingDiagnosis?.updatedAt || now\n\t});\n\tsourceRequirements.forEach((requirement, index) => {\n\t\tconst objective = cleanText(requirement, 240);\n\t\tif (!objective) {\n\t\t\treturn;\n\t\t}\n\t\tconst existingCompleted = completedByObjective.get(objective.toLowerCase());\n\t\tconst buildId = stableIdFromText(`build-${index + 1}`, objective);\n\t\tconst qaId = stableIdFromText(`qa-${index + 1}`, objective);\n\t\tledger.push(existingCompleted && existingCompleted.lane === 'build' ? existingCompleted : {\n\t\t\tmicrotaskId: buildId,\n\t\t\tlane: 'build',\n\t\t\ttype: 'build_repair',\n\t\t\tstatus: 'pending',\n\t\t\tobjective,\n\t\t\ttargetFiles: [],\n\t\t\tcontextRefs: ['scope_digest'],\n\t\t\tselfGate: 'Run the smallest compile/type/unit check that proves this one behavior.',\n\t\t\tacceptanceProof: 'Concrete code/data proof for this behavior, with changed files listed.',\n\t\t\tthreadKey: input.buildThreadKey,\n\t\t\tattempts: 0,\n\t\t\tdependsOn: [diagnosisId],\n\t\t\tparentScopeId: stableIdFromText('scope', objective),\n\t\t\tcreatedAt: now,\n\t\t\tupdatedAt: now\n\t\t});\n\t\tledger.push({\n\t\t\tmicrotaskId: qaId,\n\t\t\tlane: 'qa',\n\t\t\ttype: 'qa_row',\n\t\t\tstatus: 'pending',\n\t\t\tobjective: `QA proof for: ${objective}`,\n\t\t\ttargetFiles: [],\n\t\t\tcontextRefs: ['scope_digest', buildId],\n\t\t\tselfGate: 'Drive this one customer-facing workflow row in browser/localhost and capture one captioned proof artifact.',\n\t\t\tacceptanceProof: 'QA matrix row pass with route/data assertion, screenshot/caption artifact, and persisted before/after row/count/value proof for data-changing workflows.',\n\t\t\tthreadKey: input.qaThreadKey,\n\t\t\tattempts: 0,\n\t\t\tdependsOn: [diagnosisId, buildId],\n\t\t\tparentScopeId: stableIdFromText('scope', objective),\n\t\t\tcreatedAt: now,\n\t\t\tupdatedAt: now\n\t\t});\n\t});\n\treturn ledger.length ? ledger : existing.slice(-80);\n}\n\nexport function selectResolveIOSupportV5ActiveMicrotask(\n\tledger: ResolveIOSupportV5Microtask[] = [],\n\tpreferredId?: string\n): ResolveIOSupportV5Microtask | undefined {\n\tconst byPreferred = preferredId ? ledger.find((task) => task.microtaskId === preferredId && !['pass', 'parked'].includes(task.status)) : undefined;\n\tif (byPreferred) {\n\t\treturn byPreferred;\n\t}\n\treturn ledger.find((task) => task.status === 'needs_repair')\n\t\t|| ledger.find((task) => task.status === 'in_progress')\n\t\t|| ledger.find((task) => task.type === 'diagnosis_gate' && task.status === 'pending')\n\t\t|| ledger.find((task) => task.lane === 'build' && /repair/i.test(String(task.type || '')) && task.status === 'pending')\n\t\t|| ledger.find((task) => task.status === 'pending')\n\t\t|| ledger.find((task) => task.status === 'blocked');\n}\n\nexport function initializeResolveIOSupportV5State(input: ResolveIOSupportV5InitializeInput): ResolveIOSupportV5StateBundle {\n\tconst now = isoNow(input.now);\n\tconst existing = input.existing || {};\n\tconst existingSupervisor = existing.supportV5SupervisorState;\n\tconst existingLaneMemory = existing.supportV5LaneMemory || {} as ResolveIOSupportV5StateBundle['supportV5LaneMemory'];\n\tconst scope = cleanList(input.approvedScopeRequirements, 24, 240).join(' | ')\n\t\t|| cleanText(input.description, 1000)\n\t\t|| cleanText(input.title, 300);\n\tconst ticketLabel = cleanText(input.ticketNumber || input.ticketId || input.jobId, 120);\n\tconst buildThreadKey = cleanText(input.buildThreadKey || existingLaneMemory.build?.threadKey || `support:${input.ticketId || input.jobId}:job:${input.jobId}:build`, 240);\n\tconst qaThreadKey = cleanText(input.qaThreadKey || existingLaneMemory.qa?.threadKey || `support:${input.ticketId || input.jobId}:job:${input.jobId}:qa`, 240);\n\tconst budget = buildResolveIOSupportV5Budget(existing.supportV5Budget);\n\tconst existingDiagnosisGate = normalizeResolveIOSupportDiagnosisGate((existing as any).supportV5DiagnosisGate);\n\tconst existingPreflightGate = evaluateResolveIOSupportPreflightGate(\n\t\t(existing as any).supportV5PreflightGate || (existing as any).support_v5_preflight_gate,\n\t\tnow\n\t);\n\tconst diagnosisValidation = validateResolveIOSupportDiagnosisGate(existingDiagnosisGate);\n\tconst existingProbePlanValidation = validateResolveIOSupportIssueClassProbePlan(\n\t\t(existing as any).supportV5IssueClassProbePlan || (existing as any).support_v5_issue_class_probe_plan,\n\t\tdiagnosisValidation.normalized || existingDiagnosisGate,\n\t\tnow\n\t);\n\tconst scopeDigest = cleanText((existing as any).supportV5ScopeDigest, 4000) || buildResolveIOSupportV5ScopeDigest({\n\t\tgoal: existingSupervisor?.currentGoal || `Resolve support ticket ${ticketLabel}`,\n\t\tapprovedScope: scope,\n\t\tprBranch: input.prBranch || existingSupervisor?.prBranch || ''\n\t});\n\tconst ledger = buildResolveIOSupportV5MicrotaskLedger({\n\t\tscopeDigest,\n\t\trequirements: cleanList(input.approvedScopeRequirements, 30, 240),\n\t\tbuildThreadKey,\n\t\tqaThreadKey,\n\t\tnow,\n\t\texisting: (existing as any).supportV5MicrotaskLedger\n\t});\n\tconst activeMicrotask = selectResolveIOSupportV5ActiveMicrotask(ledger, (existing as any).supportV5ActiveMicrotaskId);\n\tconst initialized: ResolveIOSupportV5StateBundle = {\n\t\tsupportWorkflowVersion: 'v5',\n\t\tsupportV5SupervisorState: {\n\t\t\tversion: 'v5',\n\t\t\tstatus: existingSupervisor?.status || 'active',\n\t\t\tcurrentGoal: existingSupervisor?.currentGoal || `Resolve support ticket ${ticketLabel}`,\n\t\t\tapprovedScope: existingSupervisor?.approvedScope || scope,\n\t\t\tprBranch: cleanText(input.prBranch || existingSupervisor?.prBranch || '', 240),\n\t\t\tactiveStep: existingSupervisor?.activeStep || (diagnosisValidation.valid ? 'compile_check' : 'diagnosis_gate'),\n\t\t\tactiveBlocker: existingSupervisor?.activeBlocker || (diagnosisValidation.valid ? '' : 'SupportDiagnosisGate required before product-code repair.'),\n\t\t\tlastGoodCheckpoint: existingSupervisor?.lastGoodCheckpoint || 'v5_initialized',\n\t\t\tcurrentQaRow: existingSupervisor?.currentQaRow,\n\t\t\tprocessLease: input.processLease || existingSupervisor?.processLease,\n\t\t\tartifactLinks: cleanList(existingSupervisor?.artifactLinks, 40, 500),\n\t\t\tnoEmailUnlessApproved: true,\n\t\t\tupdatedAt: now\n\t\t},\n\t\tsupportV5DiagnosisGate: diagnosisValidation.valid ? diagnosisValidation.normalized : existingDiagnosisGate,\n\t\tsupportV5DiagnosisEvidencePack: (existing as any).supportV5DiagnosisEvidencePack || (existing as any).support_v5_diagnosis_evidence_pack,\n\t\tsupportV5IssueClassProbePlan: existingProbePlanValidation.normalized,\n\t\tsupportV5PreflightGate: existingPreflightGate.status === 'unknown' && existingPreflightGate.checks.length === 0\n\t\t\t? undefined\n\t\t\t: existingPreflightGate,\n\t\tsupportV5LaneMemory: {\n\t\t\tbuild: {\n\t\t\t\tlane: 'build',\n\t\t\t\tmodel: existingLaneMemory.build?.model || 'gpt-5.3-codex',\n\t\t\t\tthreadKey: buildThreadKey,\n\t\t\t\tscopeSummary: existingLaneMemory.build?.scopeSummary || scope,\n\t\t\t\tactiveBlocker: existingLaneMemory.build?.activeBlocker || '',\n\t\t\t\tactiveQaRow: existingLaneMemory.build?.activeQaRow,\n\t\t\t\tchangedFiles: cleanList(existingLaneMemory.build?.changedFiles, 80, 500),\n\t\t\t\tartifactPaths: cleanList(existingLaneMemory.build?.artifactPaths, 80, 500),\n\t\t\t\tlatestPromptTokenEstimate: Number(existingLaneMemory.build?.latestPromptTokenEstimate || 0) || undefined,\n\t\t\t\tupdatedAt: existingLaneMemory.build?.updatedAt || now\n\t\t\t},\n\t\t\tqa: {\n\t\t\t\tlane: 'qa',\n\t\t\t\tmodel: existingLaneMemory.qa?.model || 'gpt-5.4-mini',\n\t\t\t\tthreadKey: qaThreadKey,\n\t\t\t\tscopeSummary: existingLaneMemory.qa?.scopeSummary || scope,\n\t\t\t\tactiveBlocker: existingLaneMemory.qa?.activeBlocker || '',\n\t\t\t\tactiveQaRow: existingLaneMemory.qa?.activeQaRow,\n\t\t\t\tchangedFiles: cleanList(existingLaneMemory.qa?.changedFiles, 80, 500),\n\t\t\t\tartifactPaths: cleanList(existingLaneMemory.qa?.artifactPaths, 80, 500),\n\t\t\t\tlatestPromptTokenEstimate: Number(existingLaneMemory.qa?.latestPromptTokenEstimate || 0) || undefined,\n\t\t\t\tupdatedAt: existingLaneMemory.qa?.updatedAt || now\n\t\t\t}\n\t\t},\n\t\tsupportV5StepHistory: Array.isArray(existing.supportV5StepHistory)\n\t\t\t? existing.supportV5StepHistory.slice(-80)\n\t\t\t: [],\n\t\tsupportV5Budget: budget,\n\t\tsupportV5RunnerIncidents: Array.isArray(existing.supportV5RunnerIncidents)\n\t\t\t? existing.supportV5RunnerIncidents.slice(-80)\n\t\t\t: [],\n\t\tsupportV5MicrotaskLedger: ledger,\n\t\tsupportV5ActiveMicrotaskId: diagnosisValidation.valid\n\t\t\t? activeMicrotask?.microtaskId\n\t\t\t: ledger.find((task) => task.type === 'diagnosis_gate' && !['pass', 'parked'].includes(task.status))?.microtaskId || activeMicrotask?.microtaskId,\n\t\tsupportV5ScopeDigest: scopeDigest,\n\t\tsupportV5MicrotaskUsageHistory: Array.isArray((existing as any).supportV5MicrotaskUsageHistory)\n\t\t\t? (existing as any).supportV5MicrotaskUsageHistory.slice(-200)\n\t\t\t: [],\n\t\tsupportV5FailureFingerprints: Array.isArray((existing as any).supportV5FailureFingerprints)\n\t\t\t? (existing as any).supportV5FailureFingerprints.slice(-200)\n\t\t\t: [],\n\t\tsupportV5RecoveryPlan: (existing as any).supportV5RecoveryPlan,\n\t\tsupportV5RecoveryCheckpoint: (existing as any).supportV5RecoveryCheckpoint,\n\t\tsupportV5RecoveryEvidenceProbe: (existing as any).supportV5RecoveryEvidenceProbe,\n\t\tsupportV5RecoveryAction: (existing as any).supportV5RecoveryAction,\n\t\tsupportV5RecoveryDispatchHistory: Array.isArray((existing as any).supportV5RecoveryDispatchHistory)\n\t\t\t? (existing as any).supportV5RecoveryDispatchHistory.slice(-50)\n\t\t\t: [],\n\t\tsupportV5RecoveryDirective: (existing as any).supportV5RecoveryDirective\n\t};\n\treturn diagnosisValidation.valid && diagnosisValidation.normalized\n\t\t? applyResolveIOSupportDiagnosisGateToMicrotasks(initialized, diagnosisValidation.normalized)\n\t\t: initialized;\n}\n\nexport function recordResolveIOSupportV5Step(\n\tbundle: ResolveIOSupportV5StateBundle,\n\tstep: ResolveIOSupportV5StepInput\n): ResolveIOSupportV5StateBundle {\n\tconst now = isoNow(step.now);\n\tconst promptTokens = Math.max(0, Number(step.promptTokenEstimate || 0) || 0);\n\tconst runtimeMs = Math.max(0, Number(step.runtimeMs || 0) || 0);\n\tconst microtaskId = cleanText(step.microtaskId || bundle.supportV5ActiveMicrotaskId, 160);\n\tconst normalizedDiagnosisGate = step.diagnosisGate\n\t\t? normalizeResolveIOSupportDiagnosisGate(step.diagnosisGate, now)\n\t\t: undefined;\n\tconst normalizedPreflightGate = step.preflightGate\n\t\t? evaluateResolveIOSupportPreflightGate(step.preflightGate, now)\n\t\t: undefined;\n\tconst blockerFingerprint = step.blocker || step.summary\n\t\t? fingerprintResolveIOSupportV5Blocker(step.blocker || step.summary || '')\n\t\t: undefined;\n\tconst evidenceHash = cleanText(step.evidenceHash, 80)\n\t\t|| (step.artifactPaths?.length || step.blocker || step.summary\n\t\t\t? hashResolveIOSupportV5Evidence(step.artifactPaths?.length ? step.artifactPaths : `${step.blocker || ''}\\n${step.summary || ''}`)\n\t\t\t: hashResolveIOAIManagerEvidence({\n\t\t\t\tfailureClass: step.failureClass,\n\t\t\t\tblocker: step.blocker,\n\t\t\t\tsummary: step.summary,\n\t\t\t\tchangedFiles: step.changedFiles,\n\t\t\t\tartifactPaths: step.artifactPaths\n\t\t\t}));\n\tconst record: ResolveIOSupportV5StepRecord = {\n\t\t...(microtaskId ? { microtaskId } : {}),\n\t\tstepType: step.stepType,\n\t\toutcome: step.outcome,\n\t\tlane: step.lane,\n\t\tmodel: cleanText(step.model, 80),\n\t\tthreadKey: cleanText(step.threadKey, 240),\n\t\tpromptTokenEstimate: promptTokens || undefined,\n\t\truntimeMs: runtimeMs || undefined,\n\t\tsummary: cleanText(step.summary || step.blocker || step.outcome, 1200),\n\t\tblocker: cleanText(step.blocker, 1200),\n\t\tchangedFiles: cleanList(step.changedFiles, 80, 500),\n\t\tartifactPaths: cleanList(step.artifactPaths, 80, 500),\n\t\tdiagnosisGate: normalizedDiagnosisGate,\n\t\tpreflightGate: normalizedPreflightGate,\n\t\tfailureClass: cleanText(step.failureClass, 80) || undefined,\n\t\tblockerFingerprint,\n\t\tevidenceHash,\n\t\trecordedAt: now\n\t};\n\tconst diagnosisGate = normalizedDiagnosisGate || bundle.supportV5DiagnosisGate;\n\tconst preflightGate = normalizedPreflightGate || bundle.supportV5PreflightGate;\n\tconst laneMemory = { ...bundle.supportV5LaneMemory };\n\tif (step.lane === 'build' || step.lane === 'qa') {\n\t\tconst previous = laneMemory[step.lane];\n\t\tlaneMemory[step.lane] = {\n\t\t\t...previous,\n\t\t\tactiveBlocker: record.blocker || previous.activeBlocker || '',\n\t\t\tactiveQaRow: step.activeQaRow || previous.activeQaRow,\n\t\t\tchangedFiles: record.changedFiles?.length ? record.changedFiles : previous.changedFiles,\n\t\t\tartifactPaths: record.artifactPaths?.length ? record.artifactPaths : previous.artifactPaths,\n\t\t\tlatestPromptTokenEstimate: promptTokens || previous.latestPromptTokenEstimate,\n\t\t\tupdatedAt: now\n\t\t};\n\t}\n\tconst supervisor = {\n\t\t...bundle.supportV5SupervisorState,\n\t\tstatus: step.outcome === 'ready_for_merge' ? 'complete' as const : (step.outcome === 'park_manual' || step.outcome === 'budget_stop' ? 'parked' as const : 'active' as const),\n\t\tactiveStep: step.stepType,\n\t\tactiveBlocker: record.blocker || '',\n\t\tcurrentQaRow: step.activeQaRow || bundle.supportV5SupervisorState.currentQaRow,\n\t\tlastGoodCheckpoint: step.outcome === 'pass' || step.outcome === 'ready_for_merge'\n\t\t\t? step.stepType\n\t\t\t: bundle.supportV5SupervisorState.lastGoodCheckpoint,\n\t\tartifactLinks: Array.from(new Set([\n\t\t\t...bundle.supportV5SupervisorState.artifactLinks,\n\t\t\t...(record.artifactPaths || [])\n\t\t])).slice(-80),\n\t\tupdatedAt: now\n\t};\n\tconst ledger = (bundle.supportV5MicrotaskLedger || []).map((task) => {\n\t\tif (task.microtaskId !== bundle.supportV5ActiveMicrotaskId) {\n\t\t\treturn task;\n\t\t}\n\t\tconst status: ResolveIOSupportV5MicrotaskStatus = step.outcome === 'pass' || step.outcome === 'ready_for_merge'\n\t\t\t? 'pass'\n\t\t\t: step.outcome === 'park_manual' || step.outcome === 'budget_stop'\n\t\t\t\t? 'parked'\n\t\t\t\t: step.outcome === 'needs_repair' || step.outcome === 'retry_same_step'\n\t\t\t\t\t? 'needs_repair'\n\t\t\t\t\t: 'in_progress';\n\t\treturn {\n\t\t\t...task,\n\t\t\tstatus,\n\t\t\tblocker: record.blocker || task.blocker,\n\t\t\tpromptTokenEstimate: promptTokens || task.promptTokenEstimate,\n\t\t\tattempts: task.attempts + (step.outcome === 'pass' || step.outcome === 'ready_for_merge' ? 0 : 1),\n\t\t\tupdatedAt: now\n\t\t};\n\t});\n\tconst failureFingerprint = record.failureClass && record.blockerFingerprint && record.evidenceHash\n\t\t? {\n\t\t\tstepType: record.stepType,\n\t\t\tfailureClass: cleanText(record.failureClass, 80),\n\t\t\tblockerFingerprint: record.blockerFingerprint,\n\t\t\tevidenceHash: record.evidenceHash,\n\t\t\trecordedAt: now\n\t\t}\n\t\t: undefined;\n\tconst managerDecision = decideResolveIOAIManagerPolicy({\n\t\thistory: [...bundle.supportV5StepHistory, record],\n\t\tcurrent: record,\n\t\tmaxSameFailureRepeats: buildResolveIOSupportV5Budget(bundle.supportV5Budget).maxRepeatedNoProgress,\n\t\tmaxPingPongTransitions: 3,\n\t\tinfraFailureClasses: ['infra', 'compile']\n\t});\n\tconst previousRecord = bundle.supportV5StepHistory[bundle.supportV5StepHistory.length - 1];\n\tconst nextLoopCount = managerDecision.loopBudgetShouldReset\n\t\t|| previousRecord?.failureClass !== record.failureClass\n\t\t|| previousRecord?.blockerFingerprint !== record.blockerFingerprint\n\t\t|| previousRecord?.evidenceHash !== record.evidenceHash\n\t\t? 1\n\t\t: bundle.supportV5Budget.loopCount + 1;\n\tconst nextMicrotask = selectResolveIOSupportV5ActiveMicrotask(ledger, bundle.supportV5ActiveMicrotaskId);\n\tconst nextBundle: ResolveIOSupportV5StateBundle = {\n\t\t...bundle,\n\t\tsupportV5SupervisorState: supervisor,\n\t\tsupportV5DiagnosisGate: diagnosisGate,\n\t\tsupportV5PreflightGate: preflightGate,\n\t\tsupportV5LaneMemory: laneMemory,\n\t\tsupportV5StepHistory: [...bundle.supportV5StepHistory, record].slice(-100),\n\t\tsupportV5Budget: {\n\t\t\t...bundle.supportV5Budget,\n\t\t\ttotalPromptTokenEstimate: bundle.supportV5Budget.totalPromptTokenEstimate + promptTokens,\n\t\t\ttotalRuntimeMs: bundle.supportV5Budget.totalRuntimeMs + runtimeMs,\n\t\t\tloopCount: nextLoopCount\n\t\t},\n\t\tsupportV5MicrotaskLedger: ledger,\n\t\tsupportV5ActiveMicrotaskId: nextMicrotask?.microtaskId,\n\t\tsupportV5MicrotaskUsageHistory: bundle.supportV5MicrotaskUsageHistory || [],\n\t\tsupportV5FailureFingerprints: failureFingerprint\n\t\t\t? [...(bundle.supportV5FailureFingerprints || []), failureFingerprint].slice(-200)\n\t\t\t: (bundle.supportV5FailureFingerprints || []),\n\t\tsupportV5RecoveryPlan: managerDecision.recoveryPlan,\n\t\tsupportV5RecoveryCheckpoint: managerDecision.recoveryCheckpoint,\n\t\tsupportV5RecoveryEvidenceProbe: managerDecision.recoveryEvidenceProbe,\n\t\tsupportV5RecoveryAction: managerDecision.recoveryAction\n\t};\n\tif (normalizedDiagnosisGate && validateResolveIOSupportDiagnosisGate(normalizedDiagnosisGate).valid) {\n\t\treturn applyResolveIOSupportDiagnosisGateToMicrotasks(nextBundle, normalizedDiagnosisGate);\n\t}\n\treturn nextBundle;\n}\n\nexport function recordResolveIOSupportV5MicrotaskUsage(\n\tbundle: ResolveIOSupportV5StateBundle,\n\tusage: Omit<ResolveIOSupportV5MicrotaskUsage, 'recordedAt'>\n): ResolveIOSupportV5StateBundle {\n\tconst record: ResolveIOSupportV5MicrotaskUsage = {\n\t\t...usage,\n\t\tmicrotaskId: cleanText(usage.microtaskId, 160),\n\t\tthreadKey: cleanText(usage.threadKey, 240),\n\t\tmodel: cleanText(usage.model, 80),\n\t\tpromptTokenEstimate: Math.max(0, Number(usage.promptTokenEstimate || 0) || 0),\n\t\tpromptSections: Array.isArray(usage.promptSections)\n\t\t\t? usage.promptSections.map((section) => ({\n\t\t\t\tname: cleanText(section.name, 120),\n\t\t\t\ttokenEstimate: Math.max(0, Number(section.tokenEstimate || 0) || 0)\n\t\t\t})).filter((section) => section.name)\n\t\t\t: [],\n\t\trecordedAt: isoNow()\n\t};\n\tconst ledger = (bundle.supportV5MicrotaskLedger || []).map((task) => task.microtaskId === record.microtaskId\n\t\t? {\n\t\t\t...task,\n\t\t\tpromptTokenEstimate: record.promptTokenEstimate,\n\t\t\tupdatedAt: record.recordedAt\n\t\t}\n\t\t: task);\n\treturn {\n\t\t...bundle,\n\t\tsupportV5MicrotaskLedger: ledger,\n\t\tsupportV5MicrotaskUsageHistory: [\n\t\t\t...(bundle.supportV5MicrotaskUsageHistory || []),\n\t\t\trecord\n\t\t].slice(-200)\n\t};\n}\n\nexport function decideResolveIOSupportV5Continuation(bundle: ResolveIOSupportV5StateBundle): ResolveIOSupportV5ContinuationDecision {\n\tconst history = bundle.supportV5StepHistory || [];\n\tconst budget = buildResolveIOSupportV5Budget(bundle.supportV5Budget);\n\tconst last = history[history.length - 1];\n\tconst activeMicrotaskId = cleanText(bundle.supportV5ActiveMicrotaskId, 160);\n\tconst blockerFingerprint = fingerprintResolveIOSupportV5Blocker(last?.blocker || last?.summary || '');\n\tlet repeatedNoProgressCount = 0;\n\tfor (let index = history.length - 1; index >= 0; index -= 1) {\n\t\tconst item = history[index];\n\t\tif (activeMicrotaskId && cleanText((item as any).microtaskId, 160) !== activeMicrotaskId) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (item.outcome === 'pass' || item.outcome === 'ready_for_merge') {\n\t\t\tbreak;\n\t\t}\n\t\tif (item.stepType !== last?.stepType) {\n\t\t\tbreak;\n\t\t}\n\t\tif (fingerprintResolveIOSupportV5Blocker(item.blocker || item.summary || '') === blockerFingerprint) {\n\t\t\trepeatedNoProgressCount += 1;\n\t\t}\n\t}\n\tconst budgetExceeded = budget.loopCount >= budget.maxLoopsPerTicket\n\t\t|| (last?.promptTokenEstimate || 0) > budget.maxPromptTokensPerNonInitialStep;\n\tconst repeatedFailure = last ? decideResolveIOSupportV5RepeatedFailureStop({\n\t\thistory,\n\t\tfailureClass: last.failureClass,\n\t\tblocker: last.blocker || last.summary,\n\t\tevidenceHash: last.evidenceHash,\n\t\tchangedFiles: last.changedFiles,\n\t\tartifactPaths: last.artifactPaths,\n\t\tlimit: budget.maxRepeatedNoProgress,\n\t\tignoreInfra: true\n\t}) : null;\n\tconst recoveryPlanFor = (\n\t\taction: string,\n\t\treason: string,\n\t\textra: Partial<ResolveIOAIManagerRecoveryPlanInput> = {}\n\t): ResolveIOAIManagerRecoveryPlan => buildResolveIOAIManagerRecoveryPlan({\n\t\taction,\n\t\treason,\n\t\tfailureClass: last?.failureClass,\n\t\tlane: last?.lane || 'supervisor',\n\t\tstepType: last?.stepType || bundle.supportV5SupervisorState.activeStep,\n\t\tblocker: last?.blocker || last?.summary,\n\t\tchangedFiles: last?.changedFiles,\n\t\tartifactPaths: last?.artifactPaths,\n\t\tmaxSameFailureRepeats: budget.maxRepeatedNoProgress,\n\t\t...extra\n\t});\n\tconst recoveryCheckpointFor = (\n\t\trecoveryPlan: ResolveIOAIManagerRecoveryPlan\n\t): ResolveIOAIManagerRecoveryCheckpoint => buildResolveIOAIManagerRecoveryCheckpoint({\n\t\tplan: recoveryPlan,\n\t\tcurrent: last\n\t});\n\tconst recoveryFieldsFor = (\n\t\trecoveryPlan: ResolveIOAIManagerRecoveryPlan\n\t): Pick<ResolveIOSupportV5ContinuationDecision, 'recoveryPlan' | 'recoveryCheckpoint' | 'recoveryEvidenceProbe' | 'recoveryAction'> => {\n\t\tconst recoveryCheckpoint = recoveryCheckpointFor(recoveryPlan);\n\t\tconst recoveryEvidenceProbe = buildResolveIOAIManagerRecoveryEvidenceProbe({\n\t\t\tcheckpoint: recoveryCheckpoint,\n\t\t\tcurrent: last\n\t\t});\n\t\treturn {\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: last\n\t\t\t})\n\t\t};\n\t};\n\tif (budgetExceeded) {\n\t\tconst recoveryPlan = recoveryPlanFor('manual_handoff', 'support_v5_budget_guard', {\n\t\t\tproductRepairFailure: false\n\t\t});\n\t\treturn {\n\t\t\taction: 'park',\n\t\t\treason: 'support_v5_budget_guard',\n\t\t\tnextStep: last?.stepType || 'cleanup',\n\t\t\trepeatedNoProgressCount,\n\t\t\tbudgetExceeded,\n\t\t\t...recoveryFieldsFor(recoveryPlan)\n\t\t};\n\t}\n\tconst lastFailureClass = cleanText(last?.failureClass, 80).toLowerCase();\n\tconst materialEvidenceRetryAllowed = repeatedFailure?.shouldStop === false\n\t\t&& repeatedFailure.newEvidence === true\n\t\t&& repeatedFailure.materialEvidence === true;\n\tif (repeatedNoProgressCount > budget.maxRepeatedNoProgress && /^(infra|compile)$/.test(lastFailureClass)) {\n\t\tconst recoveryPlan = recoveryPlanFor('retry_infra', 'support_v5_infra_or_compile_repair_required', {\n\t\t\tfailureClass: lastFailureClass,\n\t\t\tproductRepairFailure: false\n\t\t});\n\t\treturn {\n\t\t\taction: 'continue',\n\t\t\treason: 'support_v5_infra_or_compile_repair_required',\n\t\t\tnextStep: last?.stepType || 'compile_check',\n\t\t\trepeatedNoProgressCount,\n\t\t\tbudgetExceeded,\n\t\t\t...recoveryFieldsFor(recoveryPlan)\n\t\t};\n\t}\n\tif (repeatedFailure?.shouldStop) {\n\t\tconst recoveryPlan = recoveryPlanFor(\n\t\t\trepeatedFailure.reason === 'support_v5_ping_pong_failure_loop' ? 'park_ping_pong' : 'park_repeated_failure',\n\t\t\trepeatedFailure.reason,\n\t\t\t{\n\t\t\t\tfailureClass: repeatedFailure.failureClass,\n\t\t\t\tproductRepairFailure: true\n\t\t\t}\n\t\t);\n\t\treturn {\n\t\t\taction: 'park',\n\t\t\treason: repeatedFailure.reason,\n\t\t\tnextStep: last?.stepType || 'cleanup',\n\t\t\trepeatedNoProgressCount: repeatedFailure.repeatedCount,\n\t\t\tbudgetExceeded,\n\t\t\t...recoveryFieldsFor(recoveryPlan)\n\t\t};\n\t}\n\tif (repeatedNoProgressCount > budget.maxRepeatedNoProgress && !materialEvidenceRetryAllowed) {\n\t\tconst recoveryPlan = recoveryPlanFor('park_repeated_failure', 'support_v5_repeated_no_progress', {\n\t\t\tproductRepairFailure: true\n\t\t});\n\t\treturn {\n\t\t\taction: 'park',\n\t\t\treason: 'support_v5_repeated_no_progress',\n\t\t\tnextStep: last?.stepType || 'cleanup',\n\t\t\trepeatedNoProgressCount,\n\t\t\tbudgetExceeded,\n\t\t\t...recoveryFieldsFor(recoveryPlan)\n\t\t};\n\t}\n\tconst recoveryPlan = recoveryPlanFor('continue', 'support_v5_continue');\n\treturn {\n\t\taction: 'continue',\n\t\treason: 'support_v5_continue',\n\t\tnextStep: last?.stepType || bundle.supportV5SupervisorState.activeStep,\n\t\trepeatedNoProgressCount,\n\t\tbudgetExceeded: false,\n\t\t...recoveryFieldsFor(recoveryPlan)\n\t};\n\t}\n\nexport function decideResolveIOSupportV5AutonomousNextAction(\n\tinput: ResolveIOSupportV5AutonomousDecisionInput\n): ResolveIOSupportV5AutonomousDecision {\n\tconst bundle = input.bundle;\n\tconst preflightGate = evaluateResolveIOSupportPreflightGate(\n\t\tinput.preflightGate || bundle.supportV5PreflightGate,\n\t\tinput.now\n\t);\n\tconst activeMicrotask = selectResolveIOSupportV5ActiveMicrotask(\n\t\tbundle.supportV5MicrotaskLedger || [],\n\t\tbundle.supportV5ActiveMicrotaskId\n\t);\n\tconst diagnosisValidation = validateResolveIOSupportDiagnosisGate(bundle.supportV5DiagnosisGate, {\n\t\tmaxOwnerFiles: input.maxOwnerFiles\n\t});\n\tconst activeStepType = cleanText(\n\t\tactiveMicrotask?.type || (!diagnosisValidation.valid ? bundle.supportV5SupervisorState.activeStep : 'cleanup') || 'diagnosis_gate',\n\t\t80\n\t) as ResolveIOSupportV5StepType;\n\tconst repairGate = decideResolveIOSupportV5RepairGate({\n\t\tdiagnosisGate: bundle.supportV5DiagnosisGate,\n\t\tpreflightGate,\n\t\tactiveStepType,\n\t\tchangedFiles: input.changedFiles,\n\t\tfailureClass: input.failureClass,\n\t\tblocker: input.blocker,\n\t\tevidence: input.evidence,\n\t\tevidenceHash: input.evidenceHash,\n\t\thistory: bundle.supportV5StepHistory,\n\t\tartifactPaths: input.artifactPaths,\n\t\tmaxOwnerFiles: input.maxOwnerFiles,\n\t\tallowTestsOutsideOwnerFiles: true\n\t});\n\tconst continuation = decideResolveIOSupportV5Continuation(bundle);\n\tconst customerReplyPolicy = decideResolveIOSupportCustomerReplyPolicy({\n\t\tdiagnosisGate: bundle.supportV5DiagnosisGate,\n\t\tissueClassProbePlan: bundle.supportV5IssueClassProbePlan,\n\t\toutcomeLabel: input.outcomeLabel,\n\t\tconfidence: input.confidence,\n\t\tbusinessAssertionStatus: input.businessAssertionStatus,\n\t\tbusinessAssertions: input.businessAssertions,\n\t\tbusinessProofArtifacts: input.businessProofArtifacts,\n\t\tpreviousProofFingerprint: input.previousProofFingerprint,\n\t\tpreviousArtifactFingerprint: input.previousArtifactFingerprint,\n\t\tunresolvedBlockers: input.unresolvedBlockers,\n\t\treleaseStatus: input.releaseStatus,\n\t\thotfixEvidence: input.hotfixEvidence,\n\t\treleasePolicy: input.releasePolicy,\n\t\treleaseGatePassed: input.releaseGatePassed\n\t});\n\tconst businessProofReadiness = evaluateResolveIOSupportBusinessProofReadiness({\n\t\tdiagnosisGate: bundle.supportV5DiagnosisGate,\n\t\toutcomeLabel: input.outcomeLabel,\n\t\tbusinessAssertionStatus: input.businessAssertionStatus,\n\t\tbusinessAssertions: input.businessAssertions,\n\t\tbusinessProofArtifacts: input.businessProofArtifacts,\n\t\tpreviousProofFingerprint: input.previousProofFingerprint,\n\t\tpreviousArtifactFingerprint: input.previousArtifactFingerprint\n\t});\n\tconst evidenceFreshness = evaluateResolveIOSupportEvidenceFreshness({\n\t\thistory: bundle.supportV5StepHistory,\n\t\tfailureClass: input.failureClass,\n\t\tblocker: input.blocker,\n\t\tevidence: input.evidence,\n\t\tevidenceHash: input.evidenceHash,\n\t\tchangedFiles: input.changedFiles,\n\t\tartifactPaths: input.artifactPaths || input.businessProofArtifacts,\n\t\tlane: activeMicrotask?.lane || 'supervisor',\n\t\tstepType: activeStepType,\n\t\tlimit: buildResolveIOSupportV5Budget(bundle.supportV5Budget).maxRepeatedNoProgress,\n\t\tignoreInfra: true\n\t});\n\tconst ownerFiles = diagnosisValidation.normalized?.owner_files || repairGate.ownerFiles || [];\n\tconst diagnosisProofMatrix = diagnosisValidation.proofMatrix || buildResolveIOSupportDiagnosisProofMatrix(bundle.supportV5DiagnosisGate, input.now);\n\tconst proofContract = diagnosisValidation.normalized?.proof_plan.business_proof_contract;\n\tconst expectedProof = proofContract?.data_or_dom_assertion\n\t\t|| diagnosisValidation.normalized?.proof_plan.business_assertion\n\t\t|| activeMicrotask?.acceptanceProof\n\t\t|| '';\n\tconst issueClassProbes = diagnosisValidation.valid && diagnosisValidation.normalized\n\t\t? buildResolveIOSupportIssueClassProbes(diagnosisValidation.normalized)\n\t\t: [];\n\tconst generatedProbePlan = diagnosisValidation.valid && diagnosisValidation.normalized\n\t\t? buildResolveIOSupportIssueClassProbePlan(diagnosisValidation.normalized, input.now)\n\t\t: undefined;\n\tconst storedProbePlanValidation = validateResolveIOSupportIssueClassProbePlan(\n\t\tbundle.supportV5IssueClassProbePlan,\n\t\tdiagnosisValidation.normalized,\n\t\tinput.now\n\t);\n\tconst issueClassProbePlanValidation = storedProbePlanValidation.valid\n\t\t? storedProbePlanValidation\n\t\t: validateResolveIOSupportIssueClassProbePlan(generatedProbePlan, diagnosisValidation.normalized, input.now);\n\tconst issueClassProbePlan = issueClassProbePlanValidation.normalized || generatedProbePlan;\n\tconst activeIssueClassProbe = issueClassProbePlanValidation.activeProbe || issueClassProbePlan?.activeProbe || issueClassProbes[0];\n\tconst issueClassProbeEvidence = activeIssueClassProbe\n\t\t? Array.from(new Set([\n\t\t\t`IssueClassProbePlan ${issueClassProbePlan?.planId || 'generated'} status=${issueClassProbePlanValidation.status}`,\n\t\t\t`AIQaBusinessAssertion mapped to ${activeIssueClassProbe.issue_class}`,\n\t\t\t`state transition: ${activeIssueClassProbe.state_transition.before || 'before'} -> ${activeIssueClassProbe.state_transition.action || activeIssueClassProbe.action} -> ${activeIssueClassProbe.state_transition.after || 'after'}`,\n\t\t\t...activeIssueClassProbe.required_artifacts.map((artifact) => `artifact: ${artifact}`)\n\t\t]))\n\t\t: [];\n\tconst buildRootCauseReadiness = (\n\t\taction: ResolveIOSupportV5AutonomousNextAction,\n\t\treason: string,\n\t\tfields: Partial<ResolveIOSupportV5AutonomousDecision>,\n\t\tprimaryCommand: string,\n\t\tnextCommands: string[],\n\t\tblockers: string[]\n\t): ResolveIOSupportRootCauseReadiness => {\n\t\tconst statusByAction: Record<ResolveIOSupportV5AutonomousNextAction, ResolveIOSupportRootCauseReadinessStatus> = {\n\t\t\trun_diagnosis_gate: 'diagnosis_required',\n\t\t\task_customer_clarification: 'customer_clarification_required',\n\t\t\trepair_infra_only: 'infra_repair_only',\n\t\t\trevise_diagnosis_scope: 'scope_revision_required',\n\t\t\trun_owner_scoped_repair: 'owner_scoped_repair_ready',\n\t\t\trun_business_proof_qa: 'business_proof_required',\n\t\t\tcreate_pr: 'pr_packaging_ready',\n\t\t\trun_a_grade_pr_review: 'pr_review_required',\n\t\t\trepair_release_hotfix_first: 'release_hotfix_required',\n\t\t\tcollect_new_evidence: 'collect_new_evidence',\n\t\t\tdraft_customer_reply: 'customer_reply_draft_ready',\n\t\t\tready_for_release_gate: 'release_gate_ready',\n\t\t\tpark_manual: 'parked'\n\t\t};\n\t\tconst nextGateByStatus: Record<ResolveIOSupportRootCauseReadinessStatus, ResolveIOSupportRootCauseReadiness['nextGate']> = {\n\t\t\tdiagnosis_required: 'diagnosis',\n\t\t\tcustomer_clarification_required: 'customer_reply',\n\t\t\tinfra_repair_only: 'infra',\n\t\t\tscope_revision_required: 'scope',\n\t\t\towner_scoped_repair_ready: 'repair',\n\t\t\tbusiness_proof_required: 'business_proof',\n\t\t\tpr_packaging_ready: 'release',\n\t\t\tpr_review_required: 'release',\n\t\t\trelease_hotfix_required: 'release',\n\t\t\trelease_gate_ready: 'release',\n\t\t\tcustomer_reply_draft_ready: 'customer_reply',\n\t\t\tcollect_new_evidence: 'evidence',\n\t\t\tparked: 'manual'\n\t\t};\n\t\tconst status = statusByAction[action] || 'parked';\n\t\tconst diagnosisValid = diagnosisValidation.valid === true;\n\t\tconst ownerFilesReady = diagnosisValid && ownerFiles.length > 0;\n\t\tconst proofPlanReady = diagnosisValid && !!proofContract;\n\t\tconst proofMatrixReady = diagnosisProofMatrix.status === 'ready';\n\t\tconst ownerScopedRepairContractReady = repairGate.ownerScopedRepairContract.status === 'ready';\n\t\tconst issueClassProbePlanReady = issueClassProbePlanValidation.valid === true;\n\t\tconst preflightReady = preflightGate.blocksProductRepair !== true;\n\t\tconst rootCauseFirstSatisfied = diagnosisValid && ownerFilesReady && proofPlanReady && proofMatrixReady && issueClassProbePlanReady && preflightReady;\n\t\tconst sameFailureParked = evidenceFreshness.mustCollectNewEvidence === true\n\t\t\t|| (action === 'collect_new_evidence' && /repeated|no_progress|ping_pong|same failure|same evidence/i.test(reason));\n\t\treturn {\n\t\t\tstatus,\n\t\t\tnextGate: nextGateByStatus[status],\n\t\t\tnextCommand: primaryCommand || nextCommands[0] || action,\n\t\t\trootCauseFirstSatisfied,\n\t\t\tdiagnosisValid,\n\t\t\townerFilesReady,\n\t\t\tproofPlanReady,\n\t\t\tproofMatrixReady,\n\t\t\townerScopedRepairContractReady,\n\t\t\tbusinessProofReady: businessProofReadiness.ready === true,\n\t\t\tinfraOnly: action === 'repair_infra_only',\n\t\t\tsameFailureParked,\n\t\t\tcanEditProductCode: fields.canEditProductCode === true && rootCauseFirstSatisfied && ownerScopedRepairContractReady,\n\t\t\tcanRunIssueClassProbe: rootCauseFirstSatisfied && (action === 'run_business_proof_qa' || status === 'business_proof_required'),\n\t\t\tcanRunBusinessProofQa: rootCauseFirstSatisfied && (action === 'run_business_proof_qa' || !businessProofReadiness.ready),\n\t\t\tcanRelease: action === 'ready_for_release_gate' && businessProofReadiness.ready === true,\n\t\t\tcanDraftCustomerReply: (action === 'draft_customer_reply' && businessProofReadiness.ready === true)\n\t\t\t\t|| action === 'ask_customer_clarification',\n\t\t\trequiresHumanDecision: action === 'park_manual' || fields.canRunAutonomously !== true,\n\t\t\tissueClassProbePlanReady,\n\t\t\tpreflightReady,\n\t\t\tpreflightStatus: preflightGate.status,\n\t\t\tpreflightFailureClass: preflightGate.failureClass,\n\t\t\treason,\n\t\t\tblockers: Array.from(new Set([...blockers, ...diagnosisProofMatrix.blockers, ...repairGate.ownerScopedRepairContract.blockers, ...issueClassProbePlanValidation.blockers, ...preflightGate.blockers])),\n\t\t\townerFiles,\n\t\t\tissueClass: diagnosisValidation.normalized?.issue_class || repairGate.issueClass,\n\t\t\texpectedProof,\n\t\t\tissueClassProbes,\n\t\t\tissueClassProbePlan,\n\t\t\tproofMatrix: diagnosisProofMatrix,\n\t\t\townerScopedRepairContract: repairGate.ownerScopedRepairContract,\n\t\t\tbusinessProofStatus: businessProofReadiness.status,\n\t\t\tproofFingerprint: businessProofReadiness.proofFingerprint,\n\t\t\tartifactFingerprint: businessProofReadiness.artifactFingerprint,\n\t\t\tproofFreshness: businessProofReadiness.proofFreshness,\n\t\t\tpreflightGate\n\t\t};\n\t};\n\tconst nextActionExpectedTransition = (\n\t\taction: ResolveIOSupportV5AutonomousNextAction,\n\t\tprimaryCommand: string\n\t): string => {\n\t\tif (action === 'run_diagnosis_gate') {\n\t\t\treturn 'SupportDiagnosisGate changes from missing/incomplete to passed, blocked with one clarification question, or rejected with explicit blockers; no source files are edited.';\n\t\t}\n\t\tif (action === 'ask_customer_clarification') {\n\t\t\treturn 'One customer clarification question is prepared for human review and the ticket parks until the missing reproduction/account context is supplied.';\n\t\t}\n\t\tif (action === 'repair_infra_only') {\n\t\t\treturn 'Infra/preflight evidence changes or passes without charging the failure as product-code repair.';\n\t\t}\n\t\tif (action === 'revise_diagnosis_scope') {\n\t\t\treturn 'SupportDiagnosisGate owner_files, failing_path, and proof_plan are revised together with new evidence before any broader edit.';\n\t\t}\n\t\tif (action === 'run_owner_scoped_repair') {\n\t\t\treturn 'Only diagnosis owner_files change, a compile/unit gate is recorded, and the next state is business proof QA rather than acceptance.';\n\t\t}\n\t\tif (action === 'run_business_proof_qa') {\n\t\t\treturn 'A fresh AIQaBusinessAssertion maps to the validated IssueClassProbePlan and records before/action/after DOM, data, or Mongo proof.';\n\t\t}\n\t\tif (action === 'create_pr') {\n\t\t\treturn 'A support PR is created or updated from the proof-ready run, with merge/release/customer-send still blocked behind human/release gates.';\n\t\t}\n\t\tif (action === 'run_a_grade_pr_review') {\n\t\t\treturn 'The support PR is checked against strict execution, artifact, pull-request, AIQa, before/action/after, and screenshot/trace evidence; merge/release/customer-send remain blocked.';\n\t\t}\n\t\tif (action === 'repair_release_hotfix_first') {\n\t\t\treturn primaryCommand === 'record_hotfix_evidence'\n\t\t\t\t? 'Hotfix evidence is recorded with sourceCommitSha, githubCommitUrl, passed gitCommitStatus, and passed gitPushStatus before any live backend apply or continuation.'\n\t\t\t\t: 'The smallest release/hotfix gate changes state, with duplicate full deploy blocked unless force evidence is explicit.';\n\t\t}\n\t\tif (action === 'ready_for_release_gate') {\n\t\t\treturn 'Release gate records compile, business proof, and deployment readiness without treating route-only evidence as acceptance.';\n\t\t}\n\t\tif (action === 'draft_customer_reply') {\n\t\t\treturn 'A customer resolution draft is prepared from accepted business proof and remains unsent until human approval.';\n\t\t}\n\t\tif (action === 'collect_new_evidence') {\n\t\t\treturn 'The next run records a changed blocker fingerprint, changed evidence hash, fresh artifact path, or explicit business/infra/compile/release proof.';\n\t\t}\n\t\treturn 'The runner stays parked until a human changes scope, budget, evidence, or autonomy policy.';\n\t};\n\tconst buildNextActionContract = (\n\t\taction: ResolveIOSupportV5AutonomousNextAction,\n\t\tlabel: string,\n\t\treason: string,\n\t\tfields: Partial<ResolveIOSupportV5AutonomousDecision> & {\n\t\t\tfailureClass?: string;\n\t\t\tblockerFingerprint?: string;\n\t\t\tevidenceHash?: string;\n\t\t},\n\t\trootCauseReadiness: ResolveIOSupportRootCauseReadiness,\n\t\tcontinuationProofCheckpoint: ResolveIOSupportContinuationProofCheckpoint,\n\t\tprimaryCommand: string,\n\t\tnextCommands: string[],\n\t\trequiredEvidence: string[],\n\t\tforbiddenActions: string[],\n\t\tblockers: string[],\n\t\tevidenceProbeContract?: ResolveIOSupportEvidenceProbeContract,\n\t\tautonomyApproval?: ResolveIOSupportAutonomyApprovalContract,\n\t\tproductRepairDispatchGuard?: ResolveIOSupportProductRepairDispatchGuard,\n\t\tautopilotCompletionProgress?: ResolveIOSupportAutopilotCompletionProgress\n\t): ResolveIOSupportNextActionContract => {\n\t\tconst lane = (fields.lane || activeMicrotask?.lane || 'supervisor') as ResolveIOSupportV5Lane | 'release' | 'customer';\n\t\tconst stepType = (fields.stepType || activeStepType) as ResolveIOSupportV5StepType | 'release_gate' | 'customer_reply';\n\t\tconst liveHotfixBlockedUntilCommit = fields.liveHotfixBlockedUntilCommit === true;\n\t\tconst hotfixCommitRequired = action === 'repair_release_hotfix_first'\n\t\t\t|| liveHotfixBlockedUntilCommit\n\t\t\t|| fields.canHotfixBackend === true;\n\t\tconst baseRequiresHumanApproval = action === 'park_manual'\n\t\t\t|| action === 'ask_customer_clarification'\n\t\t\t|| rootCauseReadiness.requiresHumanDecision === true;\n\t\tconst dispatchAction = supportManagerDispatchActionForNextAction(action, fields, preflightGate);\n\t\tconst autonomyPolicy = input.autonomyPolicy\n\t\t\t? decideResolveIOAIManagerAutonomyPolicy({\n\t\t\t\t...input.autonomyPolicy,\n\t\t\t\tdispatchAction,\n\t\t\t\tprojectedActionCostUsd: input.autonomyPolicy.projectedActionCostUsd ?? supportProjectedActionCostUsdForNextAction(action, fields),\n\t\t\t\tevidenceStrength: input.autonomyPolicy.evidenceStrength || evidenceFreshness.evidenceStrength,\n\t\t\t\tmaterialEvidence: input.autonomyPolicy.materialEvidence ?? evidenceFreshness.materialEvidence,\n\t\t\t\tnewEvidence: input.autonomyPolicy.newEvidence ?? evidenceFreshness.newEvidence,\n\t\t\t\tevidenceSignals: input.autonomyPolicy.evidenceSignals || evidenceFreshness.evidenceSignals,\n\t\t\t\toperatorApproved: input.operatorApproved ?? input.autonomyPolicy.operatorApproved\n\t\t\t})\n\t\t\t: undefined;\n\t\tconst productRepairApprovalBlocked = productRepairDispatchGuard?.status === 'blocked';\n\t\tconst autonomyBlocksAutoRun = (!!autonomyPolicy && autonomyPolicy.canAutoDispatch !== true)\n\t\t\t|| productRepairApprovalBlocked;\n\t\tconst requiresHumanApproval = baseRequiresHumanApproval\n\t\t\t|| autonomyPolicy?.requiresHumanApproval === true\n\t\t\t|| autonomyPolicy?.blocked === true\n\t\t\t|| productRepairApprovalBlocked;\n\t\tconst safeToAutoRun = fields.canRunAutonomously === true\n\t\t\t&& !baseRequiresHumanApproval\n\t\t\t&& !autonomyBlocksAutoRun\n\t\t\t&& (action !== 'run_owner_scoped_repair' || (rootCauseReadiness.rootCauseFirstSatisfied === true && rootCauseReadiness.ownerScopedRepairContractReady === true && evidenceFreshness.mustCollectNewEvidence !== true))\n\t\t\t&& (action !== 'run_business_proof_qa' || rootCauseReadiness.issueClassProbePlanReady === true)\n\t\t\t&& (action !== 'collect_new_evidence' || evidenceProbeContract?.status === 'ready')\n\t\t\t&& (action !== 'repair_release_hotfix_first' || primaryCommand !== 'apply_backend_hotfix_only_after_commit_proof' || liveHotfixBlockedUntilCommit !== true);\n\t\tconst costRisk: ResolveIOSupportNextActionCostRisk = requiresHumanApproval\n\t\t\t? 'manual_blocked'\n\t\t\t: (fields.canHotfixBackend === true || action === 'draft_customer_reply')\n\t\t\t\t? 'release_or_customer_send'\n\t\t\t\t: fields.canRunModel === true\n\t\t\t\t\t? 'expensive_model'\n\t\t\t\t\t: fields.canRunQa === true\n\t\t\t\t\t\t? 'small_model_or_qa'\n\t\t\t\t\t\t: 'free_or_deterministic';\n\t\tconst canRunWithoutCodexMonitor = safeToAutoRun\n\t\t\t&& continuationProofCheckpoint.required === true\n\t\t\t&& forbiddenActions.length > 0\n\t\t\t&& (requiredEvidence.length > 0 || action === 'repair_infra_only' || action === 'run_diagnosis_gate');\n\t\tconst codexFallbackRequired = !canRunWithoutCodexMonitor && !requiresHumanApproval;\n\t\tconst codexFallbackReason = codexFallbackRequired\n\t\t\t? (blockers[0] || continuationProofCheckpoint.reason || 'next_action_contract_missing_required_evidence')\n\t\t\t: requiresHumanApproval\n\t\t\t\t? 'human_decision_required_not_codex_fallback'\n\t\t\t\t: !canRunWithoutCodexMonitor\n\t\t\t\t\t? 'structured_contract_blocks_auto_run_without_requesting_codex_monitor'\n\t\t\t\t\t: 'structured_next_action_contract_allows_manager_execution_without_external_codex_monitor';\n\t\tconst preconditions = Array.from(new Set([\n\t\t\taction !== 'run_diagnosis_gate' ? 'SupportDiagnosisGate validation checked before action.' : 'Diagnosis is read-only and cannot edit source files.',\n\t\t\taction === 'run_owner_scoped_repair' ? 'Root-cause-first gate is satisfied and owner_files are the only editable product files.' : '',\n\t\t\taction === 'run_business_proof_qa' ? 'Business proof QA must use the diagnosis proof_plan and validated IssueClassProbePlan.' : '',\n\t\t\taction === 'create_pr' ? 'Business proof and changed-file evidence are ready; this action only packages/updates the support PR.' : '',\n\t\t\taction === 'run_a_grade_pr_review' ? 'A support PR exists and must pass strict A-grade review before any merge, release, deploy, or customer reply.' : '',\n\t\t\taction === 'repair_release_hotfix_first' ? 'Live backend hotfix is blocked until GitHub commit proof is recorded and passed.' : '',\n\t\t\tproductRepairDispatchGuard ? `Support autonomy approval ${autonomyApproval?.status || 'missing'}: ${productRepairDispatchGuard.reason}.` : '',\n\t\t\tautopilotCompletionProgress ? `Approved-autopilot phase ${autopilotCompletionProgress.activePhase}: ${autopilotCompletionProgress.reason}.` : '',\n\t\t\tevidenceFreshness.mustCollectNewEvidence === true ? 'Current failure is stale or repeated; only evidence collection is allowed until proof changes.' : '',\n\t\t\tautonomyPolicy ? `Autonomy policy ${autonomyPolicy.mode}: ${autonomyPolicy.reason}.` : '',\n\t\t\t...requiredEvidence\n\t\t].filter(Boolean))).slice(0, 24);\n\t\tconst stopConditions = Array.from(new Set([\n\t\t\t'Stop if the same failure class, blocker fingerprint, and evidence hash repeat without material evidence.',\n\t\t\t'Stop if the action would edit outside diagnosis owner_files without a revised diagnosis gate.',\n\t\t\t'Stop if route-load, screenshot-only, scorecard-only, or model-claim proof is the only acceptance evidence.',\n\t\t\taction === 'create_pr' ? 'Stop before merge, release, deploy, or customer-send; PR packaging is the only allowed side effect.' : '',\n\t\t\taction === 'run_a_grade_pr_review' ? 'Stop before merge, release, deploy, or customer-send; this action only records strict A-grade PR review evidence.' : '',\n\t\t\tautonomyApproval?.overMaxAutoHours && autonomyApproval.explicitOverLimitApproval !== true ? `Stop before product-code repair: estimated work is over ${autonomyApproval.maxAutoHoursWithoutApproval} hours without explicit over-limit approval.` : '',\n\t\t\tproductRepairDispatchGuard?.status === 'blocked' ? 'Stop before product-code repair until the autonomy approval/dispatch guard is allowed.' : '',\n\t\t\tliveHotfixBlockedUntilCommit ? 'Stop before live backend hotfix until sourceCommitSha, githubCommitUrl, passed gitCommitStatus, and passed gitPushStatus are recorded.' : '',\n\t\t\t...continuationProofCheckpoint.requiredResetEvidence.map((entry) => `Reset requires: ${entry}`)\n\t\t].filter(Boolean))).slice(0, 24);\n\t\tconst createdAt = isoNow(input.now);\n\t\treturn {\n\t\t\tcontractId: `support-next-action-${hashResolveIOSupportV5Evidence({\n\t\t\t\taction,\n\t\t\t\tprimaryCommand,\n\t\t\t\treason,\n\t\t\t\tblockers,\n\t\t\t\trequiredEvidence,\n\t\t\t\tevidenceFreshness: evidenceFreshness.evidenceHash,\n\t\t\t\tblockerFingerprint: evidenceFreshness.blockerFingerprint,\n\t\t\t\tcreatedAt: createdAt.slice(0, 16)\n\t\t\t}).slice(0, 16)}`,\n\t\t\taction,\n\t\t\tlabel,\n\t\t\tprimaryCommand,\n\t\t\tlane,\n\t\t\tstepType,\n\t\t\tsafeToAutoRun,\n\t\t\trequiresHumanApproval,\n\t\t\tcanRunWithoutCodexMonitor,\n\t\t\tcodexFallbackRequired,\n\t\t\tcodexFallbackReason,\n\t\t\tcostRisk,\n\t\t\trootCauseFirstSatisfied: rootCauseReadiness.rootCauseFirstSatisfied === true,\n\t\t\tdecisionBasis: {\n\t\t\t\tdiagnosisValid: rootCauseReadiness.diagnosisValid === true,\n\t\t\t\townerFilesReady: rootCauseReadiness.ownerFilesReady === true,\n\t\t\t\tproofPlanReady: rootCauseReadiness.proofPlanReady === true,\n\t\t\t\tproofMatrixReady: rootCauseReadiness.proofMatrixReady === true,\n\t\t\t\tproofMatrixId: rootCauseReadiness.proofMatrix?.matrixId,\n\t\t\t\townerScopedRepairContractReady: rootCauseReadiness.ownerScopedRepairContractReady === true,\n\t\t\t\townerScopedRepairContractId: rootCauseReadiness.ownerScopedRepairContract?.contractId,\n\t\t\t\tbusinessProofReady: businessProofReadiness.ready === true,\n\t\t\t\tevidenceFreshnessStatus: evidenceFreshness.status,\n\t\t\t\tevidenceStrength: evidenceFreshness.evidenceStrength,\n\t\t\t\tfailureClass: cleanText(fields.failureClass || evidenceFreshness.failureClass, 120),\n\t\t\t\tblockerFingerprint: cleanText(fields.blockerFingerprint || evidenceFreshness.blockerFingerprint, 180),\n\t\t\t\tevidenceHash: cleanText(fields.evidenceHash || evidenceFreshness.evidenceHash, 180),\n\t\t\t\tsameFailureCount: evidenceFreshness.sameFailureCount,\n\t\t\t\tissueClassProbePlanReady: rootCauseReadiness.issueClassProbePlanReady === true,\n\t\t\t\tpreflightReady: rootCauseReadiness.preflightReady === true,\n\t\t\t\tpreflightStatus: preflightGate.status,\n\t\t\t\tpreflightFailureClass: preflightGate.failureClass,\n\t\t\t\tpreflightEvidenceHash: preflightGate.evidenceHash,\n\t\t\t\thotfixCommitRequired,\n\t\t\t\tliveHotfixBlockedUntilCommit,\n\t\t\t\tevidenceProbeContractReady: evidenceProbeContract ? evidenceProbeContract.status === 'ready' : undefined,\n\t\t\t\tevidenceProbeContractId: evidenceProbeContract?.contractId,\n\t\t\t\tautonomyMode: autonomyPolicy?.mode,\n\t\t\t\tautonomyCanAutoDispatch: autonomyPolicy?.canAutoDispatch,\n\t\t\t\tautonomyReason: autonomyPolicy?.reason,\n\t\t\t\tautonomyExpectedValueScore: autonomyPolicy?.expectedValueScore,\n\t\t\t\tautonomyExpectedValuePositive: autonomyPolicy?.expectedValuePositive,\n\t\t\t\tautonomyProjectedSpendUsd: autonomyPolicy?.projectedSpendUsd,\n\t\t\t\tautonomyApprovalRequired: !!autonomyApproval || input.requireAutonomyApprovalForProductRepair === true,\n\t\t\t\tautonomyApprovalApproved: autonomyApproval?.approved,\n\t\t\t\tautonomyApprovalBoundaryValid: autonomyApproval?.autopilotApprovalBoundaryValid,\n\t\t\t\tautonomyApprovalDecisionKind: autonomyApproval?.decisionKind,\n\t\t\t\tautonomyApprovalAction: autonomyApproval?.approvalAction,\n\t\t\t\tapprovedScopeHours: autonomyApproval?.estimatedHours,\n\t\t\t\tmaxAutoHoursWithoutApproval: autonomyApproval?.maxAutoHoursWithoutApproval,\n\t\t\t\toverMaxAutoHours: autonomyApproval?.overMaxAutoHours,\n\t\t\t\tbugNotBug: autonomyApproval?.bugNotBug,\n\t\t\t\tbugNotBugClassificationApproved: autonomyApproval?.bugNotBugClassificationApproved,\n\t\t\t\tscopeFingerprint: autonomyApproval?.scopeFingerprint,\n\t\t\t\tscopeChangedSinceApproval: autonomyApproval?.scopeChangedSinceApproval,\n\t\t\t\townerFileFingerprint: autonomyApproval?.ownerFileFingerprint,\n\t\t\t\tapprovedOwnerFileFingerprint: autonomyApproval?.approvedOwnerFileFingerprint,\n\t\t\t\townerFilesChangedSinceApproval: autonomyApproval?.ownerFilesChangedSinceApproval,\n\t\t\t\townerFilesAddedSinceApproval: autonomyApproval?.ownerFilesAddedSinceApproval,\n\t\t\t\townerFilesRemovedSinceApproval: autonomyApproval?.ownerFilesRemovedSinceApproval,\n\t\t\t\tdiagnosisScopeFingerprint: autonomyApproval?.diagnosisScopeFingerprint,\n\t\t\t\tpreviousDiagnosisScopeFingerprint: autonomyApproval?.previousDiagnosisScopeFingerprint,\n\t\t\t\tdiagnosisScopeIncluded: autonomyApproval?.diagnosisScopeIncluded,\n\t\t\t\tdiagnosisScopeValid: autonomyApproval?.diagnosisScopeValid,\n\t\t\t\tdiagnosisScopeChangedSinceApproval: autonomyApproval?.diagnosisScopeChangedSinceApproval,\n\t\t\t\tdiagnosisScopeFields: autonomyApproval?.diagnosisScopeFields,\n\t\t\t\tdiagnosisScopeBlockers: autonomyApproval?.diagnosisScopeBlockers,\n\t\t\t\trequiresOperatorApprovalForAnyScopeChange: autonomyApproval?.requiresOperatorApprovalForAnyScopeChange,\n\t\t\t\tleSixHourScopeCanAutofixAfterApproval: autonomyApproval?.leSixHourScopeCanAutofixAfterApproval,\n\t\t\t\tonTheFlyScopeChangeApprovalRequired: autonomyApproval?.onTheFlyScopeChangeApprovalRequired,\n\t\t\t\tafterApprovalAutopilotUntilAGrade: autonomyApproval?.afterApprovalAutopilotUntilAGrade,\n\t\t\t\tautopilotCompletionStatus: autopilotCompletionProgress?.status,\n\t\t\t\tautopilotCompletionPhase: autopilotCompletionProgress?.activePhase,\n\t\t\t\tautopilotCompletionNextAction: autopilotCompletionProgress?.nextAction,\n\t\t\t\tautopilotCompletionReady: autopilotCompletionProgress?.status === 'complete'\n\t\t\t},\n\t\t\tpreconditions,\n\t\t\texpectedStateTransition: nextActionExpectedTransition(action, primaryCommand),\n\t\t\tsuccessEvidence: Array.from(new Set(requiredEvidence.length ? requiredEvidence : continuationProofCheckpoint.requiredEvidence)).slice(0, 24),\n\t\t\tstopConditions,\n\t\t\tforbiddenActions: Array.from(new Set([\n\t\t\t\t...forbiddenActions,\n\t\t\t\t...(autopilotCompletionProgress?.forbiddenActions || []),\n\t\t\t\t...(productRepairDispatchGuard?.forbiddenActions || []),\n\t\t\t\t...(autonomyPolicy?.forbiddenActions || [])\n\t\t\t])).slice(0, 24),\n\t\t\townerFiles: ownerFiles.slice(0, 24),\n\t\t\tblockers: Array.from(new Set([\n\t\t\t\t...blockers,\n\t\t\t\t...(autopilotCompletionProgress && autopilotCompletionProgress.status !== 'complete' ? autopilotCompletionProgress.blockers : []),\n\t\t\t\t...(productRepairDispatchGuard?.status === 'blocked' ? productRepairDispatchGuard.blockers : []),\n\t\t\t\t...(autonomyPolicy && autonomyPolicy.canAutoDispatch !== true ? [`autonomy_policy:${autonomyPolicy.reason}`] : [])\n\t\t\t])).slice(0, 24),\n\t\t\tnextCommands: Array.from(new Set([\n\t\t\t\t...(productRepairDispatchGuard?.status === 'blocked' && productRepairDispatchGuard.nextAction ? [productRepairDispatchGuard.nextAction] : []),\n\t\t\t\t...(autopilotCompletionProgress && autopilotCompletionProgress.nextAction !== action ? [autopilotCompletionProgress.nextCommand] : []),\n\t\t\t\t...nextCommands\n\t\t\t])).slice(0, 24),\n\t\t\tcreatedAt\n\t\t};\n\t};\n\tconst buildHumanDecisionRequest = (\n\t\taction: ResolveIOSupportV5AutonomousNextAction,\n\t\tlabel: string,\n\t\treason: string,\n\t\tfields: Partial<ResolveIOSupportV5AutonomousDecision>,\n\t\trootCauseReadiness: ResolveIOSupportRootCauseReadiness,\n\t\tcontinuationProofCheckpoint: ResolveIOSupportContinuationProofCheckpoint,\n\t\tnextActionContract: ResolveIOSupportNextActionContract,\n\t\trequiredEvidence: string[],\n\t\tblockers: string[]\n\t): ResolveIOSupportHumanDecisionRequest | undefined => {\n\t\tconst repeatedEvidenceBlocked = evidenceFreshness.mustCollectNewEvidence === true\n\t\t\t|| rootCauseReadiness.sameFailureParked === true\n\t\t\t|| continuationProofCheckpoint.status === 'waiting_for_new_evidence';\n\t\tconst manualApprovalRequired = action === 'park_manual'\n\t\t\t|| action === 'ask_customer_clarification'\n\t\t\t|| nextActionContract.requiresHumanApproval === true\n\t\t\t|| fields.canRunAutonomously !== true;\n\t\tif (!repeatedEvidenceBlocked && !manualApprovalRequired) {\n\t\t\treturn undefined;\n\t\t}\n\t\tconst createdAt = isoNow(input.now);\n\t\tconst autoDispatchAllowed = repeatedEvidenceBlocked\n\t\t\t&& action === 'collect_new_evidence'\n\t\t\t&& nextActionContract.safeToAutoRun === true\n\t\t\t&& nextActionContract.canRunWithoutCodexMonitor === true;\n\t\tconst approvalAction = cleanText(nextActionContract.decisionBasis.autonomyApprovalAction, 120);\n\t\tconst approvalDecisionKind = cleanText(nextActionContract.decisionBasis.autonomyApprovalDecisionKind, 120);\n\t\tconst approvalChoiceId = approvalAction\n\t\t\t? (approvalAction === 'approve_support_autonomy_over_limit' || /over_limit/i.test(approvalDecisionKind)\n\t\t\t\t? 'approve_over_limit_autonomy'\n\t\t\t\t: 'approve_auto_fix_le_6h_bug')\n\t\t\t: '';\n\t\tconst preferredChoiceId = autoDispatchAllowed\n\t\t\t? 'run_bounded_evidence_probe'\n\t\t\t: approvalChoiceId\n\t\t\t\t? approvalChoiceId\n\t\t\t: action === 'ask_customer_clarification'\n\t\t\t\t? 'review_customer_clarification'\n\t\t\t\t: action === 'run_diagnosis_gate' || action === 'revise_diagnosis_scope'\n\t\t\t\t\t? 'revise_diagnosis_gate'\n\t\t\t\t\t: 'keep_parked';\n\t\tconst baseRequiredEvidence = Array.from(new Set([\n\t\t\t...requiredEvidence,\n\t\t\t...continuationProofCheckpoint.requiredResetEvidence,\n\t\t\t...evidenceFreshness.requiredResetEvidence\n\t\t].filter(Boolean))).slice(0, 20);\n\t\tconst choices: ResolveIOSupportHumanDecisionChoice[] = [];\n\t\tif (repeatedEvidenceBlocked) {\n\t\t\tchoices.push({\n\t\t\t\tchoiceId: 'run_bounded_evidence_probe',\n\t\t\t\tlabel: 'Run Evidence Probe',\n\t\t\t\taction: 'collect_new_evidence',\n\t\t\t\tdescription: 'Collect changed issue-specific evidence only; product-code repair remains blocked until blockerFingerprint, evidenceHash, or business proof changes.',\n\t\t\t\tsafety: 'low',\n\t\t\t\trequiresConfirmation: false,\n\t\t\t\tnextCommand: nextActionContract.primaryCommand || 'run_support_v5_recovery_evidence_probe',\n\t\t\t\texpectedResult: nextActionExpectedTransition('collect_new_evidence', nextActionContract.primaryCommand || 'run_support_v5_recovery_evidence_probe'),\n\t\t\t\tallowedWithoutCodexMonitor: autoDispatchAllowed\n\t\t\t});\n\t\t}\n\t\tif (approvalAction) {\n\t\t\tchoices.push({\n\t\t\t\tchoiceId: approvalChoiceId || 'approve_support_autonomy',\n\t\t\t\tlabel: approvalChoiceId === 'approve_over_limit_autonomy' ? 'Approve Over Limit' : 'Approve Autopilot',\n\t\t\t\taction: approvalAction,\n\t\t\t\tdescription: approvalChoiceId === 'approve_over_limit_autonomy'\n\t\t\t\t\t? 'Approve this over-six-hour support scope; after approval the runner continues only inside the approved diagnosis/owner-file boundary until A-grade PR proof or a new scope blocker.'\n\t\t\t\t\t: 'Approve this bounded bug/not-bug support scope; after approval the runner continues to A-grade PR proof with QA screenshots and before/action/after business proof.',\n\t\t\t\tsafety: approvalChoiceId === 'approve_over_limit_autonomy' ? 'high' : 'medium',\n\t\t\t\trequiresConfirmation: true,\n\t\t\t\tnextCommand: approvalAction,\n\t\t\t\texpectedResult: 'Autonomy approval gate changes to approved_autopilot or records the exact scope/estimate/classification field that still blocks product-code repair.',\n\t\t\t\tallowedWithoutCodexMonitor: false\n\t\t\t});\n\t\t}\n\t\tchoices.push({\n\t\t\tchoiceId: 'revise_diagnosis_gate',\n\t\t\tlabel: 'Revise Diagnosis',\n\t\t\taction: 'run_diagnosis_gate',\n\t\t\tdescription: 'Re-run read-only root-cause diagnosis with the new evidence and update owner files/proof plan before any repair loop.',\n\t\t\tsafety: 'low',\n\t\t\trequiresConfirmation: repeatedEvidenceBlocked === false,\n\t\t\tnextCommand: 'revise_support_diagnosis_gate_with_new_evidence',\n\t\t\texpectedResult: nextActionExpectedTransition('run_diagnosis_gate', 'revise_support_diagnosis_gate_with_new_evidence'),\n\t\t\tallowedWithoutCodexMonitor: false\n\t\t});\n\t\tif (action === 'ask_customer_clarification') {\n\t\t\tchoices.push({\n\t\t\t\tchoiceId: 'review_customer_clarification',\n\t\t\t\tlabel: 'Review Clarification',\n\t\t\t\taction: 'ask_customer_clarification',\n\t\t\t\tdescription: 'Review the one customer question before any send action; no product-code repair is allowed from guessed context.',\n\t\t\t\tsafety: 'medium',\n\t\t\t\trequiresConfirmation: true,\n\t\t\t\tnextCommand: nextActionContract.primaryCommand || 'review_customer_clarification',\n\t\t\t\texpectedResult: nextActionExpectedTransition('ask_customer_clarification', nextActionContract.primaryCommand || 'review_customer_clarification'),\n\t\t\t\tallowedWithoutCodexMonitor: false\n\t\t\t});\n\t\t}\n\t\tchoices.push({\n\t\t\tchoiceId: 'keep_parked',\n\t\t\tlabel: 'Keep Parked',\n\t\t\taction: 'park_manual',\n\t\t\tdescription: 'Do not spend more model, QA, release, or customer-send budget until new evidence, scope, budget, or approval changes.',\n\t\t\tsafety: 'low',\n\t\t\trequiresConfirmation: false,\n\t\t\tnextCommand: 'park_support_ticket_until_new_evidence',\n\t\t\texpectedResult: 'The support runner stays parked and records the blocker as waiting for an operator decision or fresh evidence.',\n\t\t\tallowedWithoutCodexMonitor: true\n\t\t});\n\t\tconst blockedUntil = Array.from(new Set([\n\t\t\t...baseRequiredEvidence,\n\t\t\trepeatedEvidenceBlocked ? 'blockerFingerprint changes from the starting repeated blocker' : '',\n\t\t\trepeatedEvidenceBlocked ? 'evidenceHash changes from the starting repeated evidence hash' : '',\n\t\t\trepeatedEvidenceBlocked ? 'fresh AIQaBusinessAssertion, infra/compile proof, release proof, or artifact path is attached' : '',\n\t\t\taction === 'park_manual' ? 'operator changes scope, budget, autonomy policy, or approval' : ''\n\t\t].filter(Boolean))).slice(0, 16);\n\t\treturn {\n\t\t\trequestId: `support-human-decision-${hashResolveIOSupportV5Evidence({\n\t\t\t\taction,\n\t\t\t\tlabel,\n\t\t\t\treason,\n\t\t\t\tpreferredChoiceId,\n\t\t\t\tfailureClass: evidenceFreshness.failureClass,\n\t\t\t\tblockerFingerprint: evidenceFreshness.blockerFingerprint,\n\t\t\t\tevidenceHash: evidenceFreshness.evidenceHash,\n\t\t\t\tcreatedAt: createdAt.slice(0, 16)\n\t\t\t}).slice(0, 16)}`,\n\t\t\trequired: true,\n\t\t\tstatus: autoDispatchAllowed ? 'auto_dispatch_allowed' : 'waiting_for_operator',\n\t\t\treason: repeatedEvidenceBlocked\n\t\t\t\t? `${reason} Same failure evidence repeated; repair is blocked until new evidence changes the proof state.`\n\t\t\t\t: reason,\n\t\t\tquestion: repeatedEvidenceBlocked\n\t\t\t\t? 'Same blocker/evidence repeated. Run one bounded evidence probe, revise diagnosis with new facts, or keep the ticket parked?'\n\t\t\t\t: action === 'ask_customer_clarification'\n\t\t\t\t\t? 'Customer context is missing. Review the clarification question or keep the ticket parked?'\n\t\t\t\t\t: `Human approval is required for ${label}. What should the runner do next?`,\n\t\t\tpreferredChoiceId,\n\t\t\tevidence: {\n\t\t\t\tfailureClass: evidenceFreshness.failureClass,\n\t\t\t\tblocker: cleanText(blockers[0] || reason, 1000),\n\t\t\t\tblockerFingerprint: evidenceFreshness.blockerFingerprint,\n\t\t\t\tevidenceHash: evidenceFreshness.evidenceHash,\n\t\t\t\tsameFailureCount: evidenceFreshness.sameFailureCount,\n\t\t\t\tpingPongCount: evidenceFreshness.pingPongCount,\n\t\t\t\tevidenceStrength: evidenceFreshness.evidenceStrength,\n\t\t\t\trequiredResetEvidence: baseRequiredEvidence,\n\t\t\t\trecentArtifactPaths: evidenceFreshness.artifactPaths.slice(0, 20),\n\t\t\t\tchangedFiles: evidenceFreshness.changedFiles.slice(0, 20),\n\t\t\t\tnextActionContractId: nextActionContract.contractId\n\t\t\t},\n\t\t\tchoices: choices\n\t\t\t\t.filter((choice, index, source) => source.findIndex((candidate) => candidate.choiceId === choice.choiceId) === index)\n\t\t\t\t.slice(0, 6),\n\t\t\tblockedUntil,\n\t\t\tautoDispatchAllowed,\n\t\t\tcreatedAt\n\t\t};\n\t};\n\tconst makeDecision = (\n\t\taction: ResolveIOSupportV5AutonomousNextAction,\n\t\tlabel: string,\n\t\treason: string,\n\t\tfields: Partial<ResolveIOSupportV5AutonomousDecision> & {\n\t\t\tfailureClass?: string;\n\t\t\tblockerFingerprint?: string;\n\t\t\tevidenceHash?: string;\n\t\t}\n\t): ResolveIOSupportV5AutonomousDecision => {\n\t\tconst primaryCommand = fields.primaryCommand || action;\n\t\tconst nextCommands = Array.from(new Set([\n\t\t\tprimaryCommand,\n\t\t\t...(fields.nextCommands || [])\n\t\t].filter(Boolean)));\n\t\tconst requiredEvidence = fields.requiredEvidence || [];\n\t\tconst blockers = fields.blockers || [];\n\t\tconst rootCauseReadiness = buildRootCauseReadiness(action, reason, fields, primaryCommand, nextCommands, blockers);\n\t\tconst forbiddenActions = Array.from(new Set([\n\t\t\t'Do not send customer email without explicit human approval.',\n\t\t\t'Do not broaden owner_files without revised diagnosis evidence.',\n\t\t\t'Do not accept route-load, screenshot-only, scorecard-only, or model-claim proof.',\n\t\t\t...(fields.forbiddenActions || [])\n\t\t]));\n\t\tconst continuationProofCheckpoint = buildResolveIOSupportContinuationProofCheckpoint({\n\t\t\taction,\n\t\t\treason,\n\t\t\tevidenceFreshness,\n\t\t\trequiredEvidence,\n\t\t\trequiredResetEvidence: fields.requiredEvidence,\n\t\t\tblocksProductRepair: evidenceFreshness.mustCollectNewEvidence === true\n\t\t});\n\t\tconst editsProductCode = fields.canEditProductCode === true || action === 'run_owner_scoped_repair';\n\t\tconst autonomyApproval = normalizeResolveIOSupportAutonomyApprovalContract(input.autonomyApproval, {\n\t\t\trequired: input.requireAutonomyApprovalForProductRepair === true && editsProductCode,\n\t\t\taction,\n\t\t\townerFiles,\n\t\t\tnow: input.now\n\t\t});\n\t\tconst productRepairDispatchGuard = autonomyApproval\n\t\t\t? buildResolveIOSupportProductRepairDispatchGuard({\n\t\t\t\taction,\n\t\t\t\tapproval: autonomyApproval,\n\t\t\t\teditsProductCode,\n\t\t\t\townerFiles,\n\t\t\t\tnow: input.now\n\t\t\t})\n\t\t\t: undefined;\n\t\tconst autopilotCompletionProgress = buildResolveIOSupportAutopilotCompletionProgress({\n\t\t\tapproval: autonomyApproval,\n\t\t\tproductRepairDispatchGuard,\n\t\t\taction,\n\t\t\tdiagnosisValid: diagnosisValidation.valid === true,\n\t\t\tpreflightGate,\n\t\t\tbusinessProofReadiness,\n\t\t\tbusinessProofArtifacts: input.businessProofArtifacts,\n\t\t\tchangedFiles: input.changedFiles,\n\t\t\tprReadinessContract: input.prReadinessContract,\n\t\t\tprReviewContract: input.prReviewContract,\n\t\t\tnow: input.now\n\t\t});\n\t\tconst evidenceProbeContract = action === 'collect_new_evidence'\n\t\t\t? buildResolveIOSupportEvidenceProbeContract({\n\t\t\t\tdiagnosisGate: diagnosisValidation.normalized,\n\t\t\t\tissueClassProbePlan,\n\t\t\t\tevidenceFreshness,\n\t\t\t\trequiredEvidence,\n\t\t\t\tnow: input.now\n\t\t\t})\n\t\t\t: undefined;\n\t\tconst autonomyPolicy = input.autonomyPolicy\n\t\t\t? decideResolveIOAIManagerAutonomyPolicy({\n\t\t\t\t...input.autonomyPolicy,\n\t\t\t\tdispatchAction: supportManagerDispatchActionForNextAction(action, fields, preflightGate),\n\t\t\t\tprojectedActionCostUsd: input.autonomyPolicy.projectedActionCostUsd ?? supportProjectedActionCostUsdForNextAction(action, fields),\n\t\t\t\tevidenceStrength: input.autonomyPolicy.evidenceStrength || evidenceFreshness.evidenceStrength,\n\t\t\t\tmaterialEvidence: input.autonomyPolicy.materialEvidence ?? evidenceFreshness.materialEvidence,\n\t\t\t\tnewEvidence: input.autonomyPolicy.newEvidence ?? evidenceFreshness.newEvidence,\n\t\t\t\tevidenceSignals: input.autonomyPolicy.evidenceSignals || evidenceFreshness.evidenceSignals,\n\t\t\t\toperatorApproved: input.operatorApproved ?? input.autonomyPolicy.operatorApproved\n\t\t\t})\n\t\t\t: undefined;\n\t\tconst nextActionContract = buildNextActionContract(\n\t\t\taction,\n\t\t\tlabel,\n\t\t\treason,\n\t\t\tfields,\n\t\t\trootCauseReadiness,\n\t\t\tcontinuationProofCheckpoint,\n\t\t\tprimaryCommand,\n\t\t\tnextCommands,\n\t\t\trequiredEvidence,\n\t\t\tforbiddenActions,\n\t\t\tblockers,\n\t\t\tevidenceProbeContract,\n\t\t\tautonomyApproval,\n\t\t\tproductRepairDispatchGuard,\n\t\t\tautopilotCompletionProgress\n\t\t);\n\t\tconst managerExecutionPacket = buildResolveIOSupportManagerExecutionPacket(nextActionContract, input.now);\n\t\tconst humanReviewPacket = fields.humanReviewPacket\n\t\t\t|| (action === 'draft_customer_reply' && customerReplyPolicy.humanReviewPacket ? customerReplyPolicy.humanReviewPacket : undefined)\n\t\t\t|| buildResolveIOSupportHumanReviewPacket({\n\t\t\t\treviewType: supportAutonomousReviewTypeForAction(action),\n\t\t\t\ttitle: label,\n\t\t\t\tsummary: reason,\n\t\t\t\tprimaryAction: primaryCommand,\n\t\t\t\tcustomerFacingDraftAllowed: fields.canDraftCustomerReply === true,\n\t\t\t\tsafety: action === 'draft_customer_reply' ? 'safe_to_draft' : 'internal_hold',\n\t\t\t\treason,\n\t\t\t\tblockers,\n\t\t\t\trequiredEvidence,\n\t\t\t\tevidenceRefs: businessProofReadiness.artifactPaths,\n\t\t\t\tnextCommands,\n\t\t\t\tforbiddenActions,\n\t\t\t\tcostRisk: fields.canHotfixBackend === true || action === 'draft_customer_reply'\n\t\t\t\t\t? 'release_or_customer_send'\n\t\t\t\t\t: fields.canRunModel === true\n\t\t\t\t\t\t? 'expensive_model'\n\t\t\t\t\t\t: fields.canRunQa === true\n\t\t\t\t\t\t\t? 'small_model_or_qa'\n\t\t\t\t\t\t\t: 'free_or_deterministic',\n\t\t\t\tnow: input.now\n\t\t\t});\n\t\tconst humanDecisionRequest = buildHumanDecisionRequest(\n\t\t\taction,\n\t\t\tlabel,\n\t\t\treason,\n\t\t\tfields,\n\t\t\trootCauseReadiness,\n\t\t\tcontinuationProofCheckpoint,\n\t\t\tnextActionContract,\n\t\t\trequiredEvidence,\n\t\t\tblockers\n\t\t);\n\t\tconst customerReplyReadiness = customerReplyPolicy.readinessContract || buildResolveIOSupportCustomerReplyReadinessContract({\n\t\t\tpolicy: customerReplyPolicy,\n\t\t\tdiagnosisValidation,\n\t\t\tissueClassProbePlanValidation,\n\t\t\tbusinessProofReadiness\n\t\t});\n\t\treturn {\n\t\t\taction,\n\t\t\tlabel,\n\t\t\treason,\n\t\t\tcanRunAutonomously: fields.canRunAutonomously === true,\n\t\t\tcanEditProductCode: fields.canEditProductCode === true,\n\t\t\tcanRunModel: fields.canRunModel === true,\n\t\t\tcanRunQa: fields.canRunQa === true,\n\t\t\tcanPrepareHotfixPatch: fields.canPrepareHotfixPatch === true,\n\t\t\tcanHotfixBackend: fields.canHotfixBackend === true,\n\t\t\tliveHotfixBlockedUntilCommit: fields.liveHotfixBlockedUntilCommit === true,\n\t\t\tcanDraftCustomerReply: fields.canDraftCustomerReply === true,\n\t\t\tcanSendCustomerReply: false,\n\t\t\tlane: fields.lane || activeMicrotask?.lane || 'supervisor',\n\t\t\tstepType: fields.stepType || activeStepType,\n\t\t\tmicrotaskId: activeMicrotask?.microtaskId,\n\t\t\tprimaryCommand,\n\t\t\tnextCommands,\n\t\t\trequiredEvidence,\n\t\t\tforbiddenActions,\n\t\t\tblockers,\n\t\t\townerFiles,\n\t\t\tissueClass: diagnosisValidation.normalized?.issue_class || repairGate.issueClass,\n\t\t\texpectedProof,\n\t\t\tissueClassProbes,\n\t\t\tissueClassProbePlan,\n\t\t\tissueClassProbePlanValidation,\n\t\t\tactiveMicrotask,\n\t\t\tdiagnosisValidation,\n\t\t\trepairGate,\n\t\t\tcontinuation,\n\t\t\tcustomerReplyPolicy,\n\t\t\tcustomerReplyReadiness,\n\t\t\tbusinessProofReadiness,\n\t\t\tevidenceFreshness,\n\t\t\tpreflightGate,\n\t\t\trootCauseReadiness,\n\t\t\tcontinuationProofCheckpoint,\n\t\t\tnextActionContract,\n\t\t\tmanagerExecutionPacket,\n\t\t\thumanReviewPacket,\n\t\t\thumanDecisionRequest,\n\t\t\tevidenceProbeContract,\n\t\t\tautonomyApproval,\n\t\t\tproductRepairDispatchGuard,\n\t\t\tautopilotCompletionProgress,\n\t\t\tautonomyPolicy,\n\t\t\thotfixContinuation: fields.hotfixContinuation,\n\t\t\thotfixDurabilityContract: fields.hotfixDurabilityContract as ResolveIOAIManagerHotfixDurabilityContract | undefined,\n\t\t\trecordedAt: isoNow(input.now)\n\t\t};\n\t};\n\tif (continuation.action === 'park' && continuation.reason === 'support_v5_budget_guard') {\n\t\treturn makeDecision('park_manual', 'Park Manual', continuation.reason, {\n\t\t\tcanRunAutonomously: false,\n\t\t\tlane: 'supervisor',\n\t\t\tstepType: 'cleanup',\n\t\t\tprimaryCommand: 'park_support_ticket_for_manual_budget_review',\n\t\t\trequiredEvidence: ['budget summary', 'latest blocker', 'operator decision'],\n\t\t\tblockers: ['Support V5 budget guard is active.']\n\t\t});\n\t}\n\tif (continuation.action === 'park') {\n\t\treturn makeDecision('collect_new_evidence', 'Collect New Evidence', continuation.reason, {\n\t\t\tcanRunAutonomously: true,\n\t\t\tcanRunModel: false,\n\t\t\tcanRunQa: true,\n\t\t\tlane: activeMicrotask?.lane || 'qa',\n\t\t\tstepType: activeStepType,\n\t\t\tprimaryCommand: 'run_support_v5_recovery_evidence_probe',\n\t\t\tnextCommands: continuation.recoveryAction.nextCommands,\n\t\t\trequiredEvidence: continuation.recoveryAction.requiredArtifacts,\n\t\t\tblockers: [continuation.reason],\n\t\t\tforbiddenActions: ['Do not run another product-code repair until blockerFingerprint or evidenceHash changes.']\n\t\t});\n\t}\n\tif (customerReplyPolicy.action === 'ask_clarification') {\n\t\treturn makeDecision('ask_customer_clarification', 'Ask Customer Clarification', customerReplyPolicy.reason, {\n\t\t\tcanRunAutonomously: false,\n\t\t\tcanRunModel: false,\n\t\t\tcanEditProductCode: false,\n\t\t\tcanDraftCustomerReply: true,\n\t\t\tlane: 'customer',\n\t\t\tstepType: 'customer_reply',\n\t\t\tprimaryCommand: customerReplyPolicy.humanReviewPacket?.primaryAction || 'review_customer_clarification',\n\t\t\tnextCommands: customerReplyPolicy.humanReviewPacket?.nextCommands || ['edit_clarification_question', 'send_after_human_review', 'park_ticket_until_customer_reply'],\n\t\t\trequiredEvidence: customerReplyPolicy.requiredEvidence,\n\t\t\tblockers: diagnosisValidation.blockers,\n\t\t\tforbiddenActions: [\n\t\t\t\t'Do not run repair from a guessed reproduction path.',\n\t\t\t\t'Do not send customer email without explicit human approval.'\n\t\t\t],\n\t\t\thumanReviewPacket: customerReplyPolicy.humanReviewPacket\n\t\t});\n\t}\n\tif (repairGate.action === 'diagnose_only' || activeMicrotask?.type === 'diagnosis_gate' || !diagnosisValidation.valid) {\n\t\treturn makeDecision('run_diagnosis_gate', 'Run Diagnosis Gate', 'support_v5_root_cause_first_required', {\n\t\t\tcanRunAutonomously: true,\n\t\t\tcanRunModel: true,\n\t\t\tcanEditProductCode: false,\n\t\t\tlane: 'build',\n\t\t\tstepType: 'diagnosis_gate',\n\t\t\tprimaryCommand: 'run_support_v5_read_only_diagnosis_gate',\n\t\t\tnextCommands: ['retrieve_similar_tickets_and_commits', 'run_reproduction_or_classification_probe', 'write_support_diagnosis_gate_json'],\n\t\t\trequiredEvidence: [\n\t\t\t\t'issue_case expected/observed/account context',\n\t\t\t\t'accepted falsifiable hypothesis',\n\t\t\t\t'rejected alternatives',\n\t\t\t\t'failing path',\n\t\t\t\t'small owner_files set',\n\t\t\t\t'before/action/after business proof plan'\n\t\t\t],\n\t\t\tblockers: repairGate.blockers,\n\t\t\tforbiddenActions: ['No source edits during diagnosis.']\n\t\t});\n\t}\n\tif (repairGate.action === 'infra_repair_only') {\n\t\tconst compileOnly = repairGate.preflightGate.failureClass === 'compile' || input.failureClass === 'compile';\n\t\tconst preflightNextCommand = repairGate.preflightGate.nextCommand === 'continue_to_diagnosis'\n\t\t\t? undefined\n\t\t\t: repairGate.preflightGate.nextCommand;\n\t\treturn makeDecision('repair_infra_only', compileOnly ? 'Repair Compile Only' : 'Repair Infra Only', 'support_v5_infra_failure_before_product_repair', {\n\t\t\tcanRunAutonomously: true,\n\t\t\tcanRunModel: false,\n\t\t\tcanEditProductCode: false,\n\t\t\tcanRunQa: true,\n\t\t\tlane: 'qa',\n\t\t\tstepType: activeStepType,\n\t\t\tprimaryCommand: preflightNextCommand || (compileOnly ? 'run_support_v5_compile_repair' : 'run_support_v5_infra_repair'),\n\t\t\tnextCommands: Array.from(new Set([\n\t\t\t\tpreflightNextCommand || (compileOnly ? 'run_support_v5_compile_repair' : 'run_support_v5_infra_repair'),\n\t\t\t\t'rerun_puppeteer_compile_startup_preflight',\n\t\t\t\tcompileOnly ? 'repair_compile_or_cache_only' : 'repair_harness_or_cache_only',\n\t\t\t\t'record_infra_artifact'\n\t\t\t])),\n\t\t\trequiredEvidence: repairGate.preflightGate.requiredEvidence.length\n\t\t\t\t? repairGate.preflightGate.requiredEvidence\n\t\t\t\t: ['preflight log', 'compile/startup/browser status', 'new infra blocker hash or pass'],\n\t\t\tblockers: repairGate.blockers,\n\t\t\tforbiddenActions: ['Do not charge infra failures as product-code repair failures.']\n\t\t});\n\t}\n\tif (repairGate.action === 'reject_out_of_scope') {\n\t\treturn makeDecision('revise_diagnosis_scope', 'Revise Diagnosis Scope', 'support_v5_owner_scope_block', {\n\t\t\tcanRunAutonomously: true,\n\t\t\tcanRunModel: true,\n\t\t\tcanEditProductCode: false,\n\t\t\tlane: 'build',\n\t\t\tstepType: 'diagnosis_gate',\n\t\t\tprimaryCommand: 'revise_support_diagnosis_gate_with_new_owner_file_evidence',\n\t\t\tnextCommands: ['attach_out_of_scope_diff', 'prove_new_owner_file_is_required', 'update_support_diagnosis_gate'],\n\t\t\trequiredEvidence: ['new root-cause evidence for each added owner file'],\n\t\t\tblockers: repairGate.blockers,\n\t\t\tforbiddenActions: ['Do not edit files outside owner_files before diagnosis is revised.']\n\t\t});\n\t}\n\tif (repairGate.action === 'park_repeated_failure') {\n\t\treturn makeDecision('collect_new_evidence', 'Collect New Evidence', 'support_v5_repeated_failure_needs_new_evidence', {\n\t\t\tcanRunAutonomously: true,\n\t\t\tcanRunModel: false,\n\t\t\tcanRunQa: true,\n\t\t\tlane: activeMicrotask?.lane || 'qa',\n\t\t\tstepType: activeStepType,\n\t\t\tprimaryCommand: 'run_support_v5_recovery_evidence_probe',\n\t\t\tnextCommands: repairGate.recoveryAction.nextCommands,\n\t\t\trequiredEvidence: repairGate.recoveryAction.requiredArtifacts,\n\t\t\tblockers: repairGate.blockers,\n\t\t\tforbiddenActions: ['Do not run another repair loop until new material evidence exists.']\n\t\t});\n\t}\n\tif (evidenceFreshness.mustCollectNewEvidence === true && repairGate.action === 'allow_product_repair') {\n\t\treturn makeDecision('collect_new_evidence', 'Collect New Evidence', 'support_v5_no_blind_loop_requires_changed_evidence', {\n\t\t\tcanRunAutonomously: true,\n\t\t\tcanRunModel: false,\n\t\t\tcanRunQa: true,\n\t\t\tcanEditProductCode: false,\n\t\t\tlane: activeMicrotask?.lane || 'qa',\n\t\t\tstepType: activeStepType,\n\t\t\tprimaryCommand: 'run_support_v5_recovery_evidence_probe',\n\t\t\tnextCommands: ['execute_issue_class_probe', 'record_changed_blocker_or_business_proof', 'write_aiqa_business_assertion_or_blocker_artifact'],\n\t\t\trequiredEvidence: evidenceFreshness.requiredResetEvidence.length\n\t\t\t\t? evidenceFreshness.requiredResetEvidence\n\t\t\t\t: ['changed blockerFingerprint or evidenceHash', 'fresh issue-specific business proof artifact'],\n\t\t\tblockers: [evidenceFreshness.reason || 'Repeated failure needs fresh evidence before owner-scoped repair.'],\n\t\t\tforbiddenActions: ['Do not edit product code in this recovery; collect changed browser/data/business-proof evidence only.']\n\t\t});\n\t}\n\tif (supportReleaseLooksBlocked(input.releaseStatus)) {\n\t\tconst releaseBlocker = cleanList(input.unresolvedBlockers, 20, 500).join('; ')\n\t\t\t|| cleanText(input.blocker || input.releaseStatus, 1000)\n\t\t\t|| 'Support release is blocked.';\n\t\tconst hotfixContinuation = decideResolveIOAIManagerHotfixContinuation({\n\t\t\tevidence: input.hotfixEvidence,\n\t\t\tpolicy: input.releasePolicy,\n\t\t\treleaseGatePassed: input.releaseGatePassed,\n\t\t\tfailureClass: 'release',\n\t\t\tblocker: releaseBlocker,\n\t\t\tnow: input.now\n\t\t});\n\t\tconst hotfixPrimaryCommandByAction: Record<string, string> = {\n\t\t\trecord_hotfix_evidence: 'record_hotfix_evidence',\n\t\t\trequest_force_deploy_reason: 'request_force_deploy_reason',\n\t\t\trerun_release_gate: 'rerun_support_release_gate_once',\n\t\t\tcontinue_runner: 'continue_support_runner_after_committed_hotfix',\n\t\t\tallow_one_full_deploy: 'execute_one_full_deploy_with_force_evidence',\n\t\t\tpark_manual: 'park_support_release_manual'\n\t\t};\n\t\tconst hotfixNextCommands = Array.from(new Set([\n\t\t\t'classify_release_blocker',\n\t\t\t'prepare_hotfix_patch_without_live_apply',\n\t\t\t'commit_and_push_hotfix_to_github',\n\t\t\t'record_github_commit_for_hotfix',\n\t\t\t...hotfixContinuation.nextCommands,\n\t\t\t'apply_backend_hotfix_only_after_commit_proof',\n\t\t\t'rerun_release_gate_once'\n\t\t]));\n\t\tconst hotfixRequiredEvidence = Array.from(new Set([\n\t\t\t'hotfix evidence',\n\t\t\t'full sourceCommitSha, githubCommitUrl, passed gitCommitStatus, and passed gitPushStatus for the exact pushed GitHub commit',\n\t\t\t'checksum before/after',\n\t\t\t'health/self-test pass',\n\t\t\t'release gate result',\n\t\t\t...hotfixContinuation.requiredEvidence\n\t\t]));\n\t\tconst hotfixForbiddenActions = [\n\t\t\t'Do not apply a live hotfix before the exact diff is committed and pushed to GitHub.',\n\t\t\t'Do not mark a hotfix durable without sourceCommitSha, githubCommitUrl, passed gitCommitStatus, and passed gitPushStatus.',\n\t\t\t'Do not run a full deploy to clear a duplicate release loop unless force evidence explicitly allows one.'\n\t\t];\n\t\tconst hotfixGitGuard = hotfixContinuation.githubCommitGuard;\n\t\tconst liveHotfixBlockedUntilCommit = hotfixContinuation.action === 'record_hotfix_evidence'\n\t\t\t|| hotfixGitGuard?.managerMustCommitBeforeHotfix === true\n\t\t\t|| (hotfixGitGuard?.required === true && hotfixGitGuard?.passed !== true);\n\t\tconst hotfixDurabilityContract = buildResolveIOAIManagerHotfixDurabilityContract({\n\t\t\taction: 'run_release_repair',\n\t\t\treason: releaseBlocker,\n\t\t\tevidence: input.hotfixEvidence,\n\t\t\tpolicy: input.releasePolicy,\n\t\t\tcontinuation: hotfixContinuation,\n\t\t\treleaseGatePassed: input.releaseGatePassed,\n\t\t\tsource: 'support_v5_autonomous_decision',\n\t\t\tnow: input.now\n\t\t});\n\t\treturn makeDecision('repair_release_hotfix_first', 'Hotfix Release', 'support_v5_release_blocked_hotfix_first', {\n\t\t\tcanRunAutonomously: hotfixContinuation.action !== 'park_manual',\n\t\t\tcanRunModel: false,\n\t\t\tcanEditProductCode: false,\n\t\t\tcanPrepareHotfixPatch: hotfixDurabilityContract.canPrepareHotfixPatch,\n\t\t\tcanHotfixBackend: hotfixDurabilityContract.canHotfixBackend,\n\t\t\tliveHotfixBlockedUntilCommit: hotfixDurabilityContract.liveHotfixBlockedUntilCommit || liveHotfixBlockedUntilCommit,\n\t\t\tlane: 'release',\n\t\t\tstepType: 'release_gate',\n\t\t\tprimaryCommand: hotfixDurabilityContract.liveHotfixBlockedUntilCommit\n\t\t\t\t? 'record_hotfix_evidence'\n\t\t\t\t: hotfixPrimaryCommandByAction[hotfixContinuation.action] || hotfixDurabilityContract.nextSafeAction || 'record_hotfix_evidence',\n\t\t\tnextCommands: hotfixNextCommands,\n\t\t\trequiredEvidence: Array.from(new Set([\n\t\t\t\t...hotfixRequiredEvidence,\n\t\t\t\t...hotfixDurabilityContract.requiredEvidence\n\t\t\t])).slice(0, 30),\n\t\t\tblockers: Array.from(new Set([\n\t\t\t\t...cleanList(input.unresolvedBlockers, 20, 500),\n\t\t\t\t...hotfixContinuation.blockers,\n\t\t\t\t...(hotfixDurabilityContract.liveHotfixBlockedUntilCommit\n\t\t\t\t\t? [`Hotfix durability contract ${hotfixDurabilityContract.contractId} requires GitHub commit and push proof before live backend apply.`]\n\t\t\t\t\t: [])\n\t\t\t])),\n\t\t\tforbiddenActions: Array.from(new Set([\n\t\t\t\t...hotfixForbiddenActions,\n\t\t\t\t...hotfixDurabilityContract.forbiddenActions\n\t\t\t])).slice(0, 20),\n\t\t\thotfixContinuation,\n\t\t\thotfixDurabilityContract\n\t\t});\n\t}\n\tif (customerReplyPolicy.action === 'hold_internal' && customerReplyPolicy.reason === 'support_reply_blocked_until_release_or_hotfix_gate_finishes') {\n\t\treturn makeDecision('repair_release_hotfix_first', 'Hotfix Release', 'support_v5_reply_blocked_by_hotfix_evidence', {\n\t\t\tcanRunAutonomously: true,\n\t\t\tcanRunModel: false,\n\t\t\tcanEditProductCode: false,\n\t\t\tcanPrepareHotfixPatch: true,\n\t\t\tcanHotfixBackend: false,\n\t\t\tliveHotfixBlockedUntilCommit: true,\n\t\t\tlane: 'release',\n\t\t\tstepType: 'release_gate',\n\t\t\tprimaryCommand: customerReplyPolicy.humanReviewPacket?.primaryAction || 'repair_release_hotfix_first',\n\t\t\tnextCommands: customerReplyPolicy.humanReviewPacket?.nextCommands || ['record_hotfix_evidence', 'commit_and_push_hotfix_to_github', 'rerun_release_gate_once'],\n\t\t\trequiredEvidence: customerReplyPolicy.requiredEvidence,\n\t\t\tblockers: customerReplyPolicy.humanReviewPacket?.blockers || ['Release or hotfix evidence is incomplete.'],\n\t\t\tforbiddenActions: ['Do not draft a customer resolution until hotfix commit proof and release evidence are complete.'],\n\t\t\thumanReviewPacket: customerReplyPolicy.humanReviewPacket\n\t\t});\n\t}\n\tif (activeMicrotask?.lane === 'qa' || /^(qa_row|qa_retest|business_proof|route_probe|issue_class_probe)$/.test(activeStepType)) {\n\t\treturn makeDecision('run_business_proof_qa', 'Run Business Proof QA', 'support_v5_business_assertion_required', {\n\t\t\tcanRunAutonomously: true,\n\t\t\tcanRunQa: true,\n\t\t\tcanRunModel: false,\n\t\t\tcanEditProductCode: false,\n\t\t\tlane: 'qa',\n\t\t\tstepType: /^(qa_row|qa_retest|business_proof|route_probe|issue_class_probe)$/.test(activeStepType) ? activeStepType : 'qa_row',\n\t\t\tprimaryCommand: 'run_support_v5_business_proof_qa_row',\n\t\t\tnextCommands: ['start_local_stack_if_needed', 'execute_issue_class_probe', 'record_before_action_after_artifacts', 'write_aiqa_business_assertion'],\n\t\t\trequiredEvidence: Array.from(new Set(['AIQaBusinessAssertion pass', 'DOM/data proof', 'artifact path', 'Mongo delta when data-changing', ...issueClassProbeEvidence])),\n\t\t\tforbiddenActions: ['Route probe pass alone remains route evidence only.']\n\t\t});\n\t}\n\tif (!activeMicrotask && customerReplyPolicy.action === 'draft_resolution_reply') {\n\t\treturn makeDecision('draft_customer_reply', 'Draft Customer Reply', customerReplyPolicy.reason, {\n\t\t\tcanRunAutonomously: true,\n\t\t\tcanRunModel: true,\n\t\t\tcanDraftCustomerReply: true,\n\t\t\tlane: 'customer',\n\t\t\tstepType: 'customer_reply',\n\t\t\tprimaryCommand: 'draft_support_customer_resolution_reply',\n\t\t\tnextCommands: ['summarize_business_proof', 'draft_customer_reply_for_human_review'],\n\t\t\trequiredEvidence: customerReplyPolicy.requiredEvidence,\n\t\t\tforbiddenActions: ['Draft only; do not send.']\n\t\t});\n\t}\n\tif (!activeMicrotask && diagnosisValidation.valid && !businessProofReadiness.ready) {\n\t\treturn makeDecision('run_business_proof_qa', 'Run Business Proof QA', businessProofReadiness.reason, {\n\t\t\tcanRunAutonomously: true,\n\t\t\tcanRunQa: true,\n\t\t\tcanRunModel: false,\n\t\t\tcanEditProductCode: false,\n\t\t\tlane: 'qa',\n\t\t\tstepType: 'business_proof',\n\t\t\tprimaryCommand: 'run_support_v5_business_proof_qa_row',\n\t\t\tnextCommands: ['execute_issue_class_probe', 'record_before_action_after_artifacts', 'write_aiqa_business_assertion'],\n\t\t\trequiredEvidence: Array.from(new Set([...businessProofReadiness.requiredEvidence, ...issueClassProbeEvidence])),\n\t\t\tblockers: businessProofReadiness.blockers,\n\t\t\tforbiddenActions: ['Do not run release or customer reply until businessProofReadiness.ready=true.']\n\t\t});\n\t}\n\tconst prReadinessContract = cleanObject(input.prReadinessContract);\n\tconst prReadinessStatus = cleanText(prReadinessContract.status, 120).toLowerCase();\n\tconst prReadinessReady = prReadinessContract.ready === true || prReadinessStatus === 'ready';\n\tconst pullRequestUrl = cleanText(prReadinessContract.pull_request_url || prReadinessContract.pullRequestUrl, 500);\n\tconst prReviewContract = normalizeSupportAutopilotPrReviewContract(input.prReviewContract);\n\tconst prReviewReady = prReviewContract.ready === true;\n\tconst approvalSource = cleanObject(input.autonomyApproval);\n\tconst approvedAutopilotUntilPr = (approvalSource.approved === true || cleanText(approvalSource.status, 120).toLowerCase() === 'approved_autopilot')\n\t\t&& (\n\t\t\tapprovalSource.after_approval_autopilot_until_a_grade === true\n\t\t\t|| approvalSource.afterApprovalAutopilotUntilAGrade === true\n\t\t\t|| approvalSource.autopilot_after_approval_until_a_grade === true\n\t\t\t|| approvalSource.autopilotAfterApprovalUntilAGrade === true\n\t\t\t|| !!approvalSource.autopilot_completion_contract\n\t\t\t|| !!approvalSource.autopilotCompletionContract\n\t\t);\n\tif (!activeMicrotask && businessProofReadiness.ready && (approvedAutopilotUntilPr || prReadinessReady) && !pullRequestUrl) {\n\t\treturn makeDecision('create_pr', 'Create PR', 'support_v5_business_proof_complete_create_a_grade_pr', {\n\t\t\tcanRunAutonomously: true,\n\t\t\tcanRunModel: false,\n\t\t\tcanRunQa: false,\n\t\t\tcanEditProductCode: false,\n\t\t\tlane: 'release',\n\t\t\tstepType: 'release_gate',\n\t\t\tprimaryCommand: 'createSupportTicketCodexPullRequestManual',\n\t\t\tnextCommands: [\n\t\t\t\t'create_pr',\n\t\t\t\t'createSupportTicketCodexPullRequestManual',\n\t\t\t\t'record_support_pr_readiness_contract',\n\t\t\t\t'run_a_grade_pr_review',\n\t\t\t\t'park_before_merge_release_or_customer_send'\n\t\t\t],\n\t\t\trequiredEvidence: [\n\t\t\t\t'AIQaBusinessAssertion pass',\n\t\t\t\t'QA screenshot or trace artifact',\n\t\t\t\t'changed files subset of owner_files',\n\t\t\t\t'PR readiness contract',\n\t\t\t\t'pull_request_url'\n\t\t\t],\n\t\t\tforbiddenActions: [\n\t\t\t\t'Do not merge the PR from this action.',\n\t\t\t\t'Do not release, deploy, or send customer success reply from PR packaging alone.'\n\t\t\t]\n\t\t});\n\t}\n\tif (!activeMicrotask && businessProofReadiness.ready && approvedAutopilotUntilPr && pullRequestUrl) {\n\t\tif (!prReviewReady) {\n\t\t\tif (prReviewContract.nextAction === 'run_business_proof_qa') {\n\t\t\t\treturn makeDecision('run_business_proof_qa', 'Run Business Proof QA', 'support_v5_a_grade_review_requires_business_proof', {\n\t\t\t\t\tfailureClass: prReviewContract.failureClass || 'business_proof',\n\t\t\t\t\tblockerFingerprint: prReviewContract.blockerFingerprint,\n\t\t\t\t\tevidenceHash: prReviewContract.evidenceHash,\n\t\t\t\t\tcanRunAutonomously: true,\n\t\t\t\t\tcanRunQa: true,\n\t\t\t\t\tcanRunModel: false,\n\t\t\t\t\tcanEditProductCode: false,\n\t\t\t\t\tlane: 'qa',\n\t\t\t\t\tstepType: 'business_proof',\n\t\t\t\t\tprimaryCommand: 'run_support_v5_business_proof_qa_row',\n\t\t\t\t\tnextCommands: ['execute_issue_class_probe', 'record_before_action_after_artifacts', 'write_aiqa_business_assertion', 'rerun_support_a_grade_pr_review'],\n\t\t\t\t\trequiredEvidence: Array.from(new Set([\n\t\t\t\t\t\t'AIQaBusinessAssertion before/action/after proof',\n\t\t\t\t\t\t'QA screenshot or trace artifact',\n\t\t\t\t\t\t...prReviewContract.evidenceRefs\n\t\t\t\t\t])),\n\t\t\t\t\tblockers: Array.from(new Set([\n\t\t\t\t\t\t...prReviewContract.blockers,\n\t\t\t\t\t\tprReviewContract.strictGateReason ? `strict_gate:${prReviewContract.strictGateReason}` : '',\n\t\t\t\t\t\tprReviewContract.blockerFingerprint ? `blocker_fingerprint:${prReviewContract.blockerFingerprint}` : ''\n\t\t\t\t\t].filter(Boolean))),\n\t\t\t\t\tforbiddenActions: ['Do not merge, release, deploy, or send customer reply until A-grade PR review passes.']\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (prReviewContract.nextAction === 'run_owner_scoped_repair') {\n\t\t\t\treturn makeDecision('run_owner_scoped_repair', 'Run Owner-Scoped Repair', 'support_v5_a_grade_review_requires_owner_scoped_repair', {\n\t\t\t\t\tfailureClass: prReviewContract.failureClass || 'grade_below_target',\n\t\t\t\t\tblockerFingerprint: prReviewContract.blockerFingerprint,\n\t\t\t\t\tevidenceHash: prReviewContract.evidenceHash,\n\t\t\t\t\tcanRunAutonomously: true,\n\t\t\t\t\tcanRunModel: true,\n\t\t\t\t\tcanEditProductCode: true,\n\t\t\t\t\tlane: 'build',\n\t\t\t\t\tstepType: 'build_repair',\n\t\t\t\t\tprimaryCommand: 'run_support_v5_owner_scoped_repair',\n\t\t\t\t\tnextCommands: ['repair_strict_gate_blocker_inside_owner_files', 'run_compile_preflight', 'run_business_proof_qa', 'rerun_support_a_grade_pr_review'],\n\t\t\t\t\trequiredEvidence: Array.from(new Set([\n\t\t\t\t\t\t...repairGate.ownerScopedRepairContract.requiredEvidenceBeforeRepair,\n\t\t\t\t\t\t...repairGate.ownerScopedRepairContract.requiredEvidenceAfterRepair,\n\t\t\t\t\t\t'A-grade PR review blocker resolved'\n\t\t\t\t\t])),\n\t\t\t\t\tblockers: Array.from(new Set([\n\t\t\t\t\t\t...repairGate.ownerScopedRepairContract.blockers,\n\t\t\t\t\t\t...prReviewContract.blockers,\n\t\t\t\t\t\tprReviewContract.strictGateReason ? `strict_gate:${prReviewContract.strictGateReason}` : '',\n\t\t\t\t\t\tprReviewContract.blockerFingerprint ? `blocker_fingerprint:${prReviewContract.blockerFingerprint}` : ''\n\t\t\t\t\t].filter(Boolean))),\n\t\t\t\t\tforbiddenActions: Array.from(new Set([\n\t\t\t\t\t\t...repairGate.ownerScopedRepairContract.forbiddenActions,\n\t\t\t\t\t\t'Do not edit outside owner_files unless diagnosis is revised with new evidence.',\n\t\t\t\t\t\t'Do not merge, release, deploy, or send customer reply until A-grade PR review passes.'\n\t\t\t\t\t]))\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn makeDecision('run_a_grade_pr_review', 'Run A-grade PR Review', 'support_v5_pr_exists_a_grade_review_required', {\n\t\t\t\tfailureClass: prReviewContract.failureClass || 'pr_review_evidence_missing',\n\t\t\t\tblockerFingerprint: prReviewContract.blockerFingerprint,\n\t\t\t\tevidenceHash: prReviewContract.evidenceHash,\n\t\t\t\tcanRunAutonomously: true,\n\t\t\t\tcanRunModel: false,\n\t\t\t\tcanRunQa: true,\n\t\t\t\tcanEditProductCode: false,\n\t\t\t\tlane: 'release',\n\t\t\t\tstepType: 'release_gate',\n\t\t\t\tprimaryCommand: 'run_support_a_grade_pr_review',\n\t\t\t\tnextCommands: [\n\t\t\t\t\t'run_support_a_grade_pr_review',\n\t\t\t\t\t'fetch_support_testing_status_for_pr_review',\n\t\t\t\t\t'record_support_pr_review_contract',\n\t\t\t\t\t'park_before_merge_release_or_customer_send'\n\t\t\t\t],\n\t\t\t\trequiredEvidence: [\n\t\t\t\t\t'pull_request_url',\n\t\t\t\t\t'A-grade execution/artifacts/pull_request review',\n\t\t\t\t\t'strict gate pass',\n\t\t\t\t\t'AIQaBusinessAssertion before/action/after proof',\n\t\t\t\t\t'QA screenshot or trace artifact'\n\t\t\t\t],\n\t\t\t\tblockers: Array.from(new Set([\n\t\t\t\t\t...prReviewContract.blockers,\n\t\t\t\t\tprReviewContract.strictGateReason ? `strict_gate:${prReviewContract.strictGateReason}` : '',\n\t\t\t\t\tprReviewContract.blockerFingerprint ? `blocker_fingerprint:${prReviewContract.blockerFingerprint}` : '',\n\t\t\t\t\t'A-grade PR review has not passed yet.'\n\t\t\t\t].filter(Boolean))),\n\t\t\t\tforbiddenActions: [\n\t\t\t\t\t'Do not merge the PR from this action.',\n\t\t\t\t\t'Do not release, deploy, or send customer reply from PR review alone.',\n\t\t\t\t\t'If strict review fails, route to the bounded blocker action instead of accepting from PR URL alone.'\n\t\t\t\t]\n\t\t\t});\n\t\t}\n\t\treturn makeDecision('park_manual', 'Review A-grade PR', 'support_v5_approved_autopilot_reached_a_grade_pr_review_required', {\n\t\t\tcanRunAutonomously: false,\n\t\t\tcanRunModel: false,\n\t\t\tcanRunQa: false,\n\t\t\tcanEditProductCode: false,\n\t\t\tlane: 'release',\n\t\t\tstepType: 'release_gate',\n\t\t\tprimaryCommand: 'review_a_grade_pr_and_release_gate',\n\t\t\tnextCommands: [\n\t\t\t\t'review_a_grade_pr_and_release_gate',\n\t\t\t\t'approve_merge_release_or_customer_reply',\n\t\t\t\t'park_before_merge_release_or_customer_send'\n\t\t\t],\n\t\t\trequiredEvidence: [\n\t\t\t\t'pull_request_url',\n\t\t\t\t'A-grade execution/artifacts/pull_request review',\n\t\t\t\t'strict gate pass',\n\t\t\t\t'AIQaBusinessAssertion pass',\n\t\t\t\t'QA screenshots or trace artifacts',\n\t\t\t\t'human approval before merge/release/customer send'\n\t\t\t],\n\t\t\tblockers: ['Approved autopilot reached PR proof; merge, release, deploy, and customer reply require separate human/release approval.'],\n\t\t\tforbiddenActions: [\n\t\t\t\t'Do not merge the PR without human approval.',\n\t\t\t\t'Do not release, deploy, or send customer reply from approved-autopilot completion alone.'\n\t\t\t]\n\t\t});\n\t}\n\tif (!activeMicrotask && businessProofReadiness.ready) {\n\t\treturn makeDecision('ready_for_release_gate', 'Run Release Gate', 'support_v5_business_proof_complete_release_gate_ready', {\n\t\t\tcanRunAutonomously: true,\n\t\t\tcanRunQa: true,\n\t\t\tlane: 'release',\n\t\t\tstepType: 'release_gate',\n\t\t\tprimaryCommand: 'run_support_release_gate_once',\n\t\t\tnextCommands: ['verify_compile_and_business_proof_artifacts', 'run_release_gate_once', 'record_release_status'],\n\t\t\trequiredEvidence: ['compile pass', 'business assertion artifact', 'release status']\n\t\t});\n\t}\n\treturn makeDecision('run_owner_scoped_repair', 'Run Owner-Scoped Repair', 'support_v5_product_repair_allowed_after_diagnosis', {\n\t\tcanRunAutonomously: true,\n\t\tcanRunModel: true,\n\t\tcanEditProductCode: true,\n\t\tlane: activeMicrotask?.lane || 'build',\n\t\tstepType: activeStepType || 'build_repair',\n\t\tprimaryCommand: 'run_support_v5_owner_scoped_repair',\n\t\tnextCommands: repairGate.ownerScopedRepairContract.nextCommands,\n\t\trequiredEvidence: Array.from(new Set([\n\t\t\t...repairGate.ownerScopedRepairContract.requiredEvidenceBeforeRepair,\n\t\t\t...repairGate.ownerScopedRepairContract.requiredEvidenceAfterRepair\n\t\t])),\n\t\tblockers: repairGate.ownerScopedRepairContract.blockers,\n\t\tforbiddenActions: repairGate.ownerScopedRepairContract.forbiddenActions\n\t});\n}\n\nexport function buildResolveIOSupportV5DiagnoseFirstPrompt(lines: {\n\tgoal?: string;\n\tapprovedScope?: string[];\n\tactiveStep?: ResolveIOSupportV5StepType;\n\tactiveBlocker?: string;\n\tlane?: ResolveIOSupportV5Lane;\n\tlaneSummary?: string;\n\tcurrentQaRow?: ResolveIOSupportV5LaneMemory['activeQaRow'];\n\tartifactPaths?: string[];\n\tchangedFiles?: string[];\n}): string[] {\n\treturn [\n\t\t'Support Runner V5 contract: act like a guarded autonomous engineer, not a gate checklist.',\n\t\t'Start with Diagnose First: observed evidence, likely cause, smallest next action, and expected proof.',\n\t\t'Use compact lane memory and current artifacts before asking for broad ticket context.',\n\t\t'Do not send customer email. Do not write production data. Do not spawn duplicate build, QA, server, client, Mongo, browser, or Codex processes.',\n\t\t'If repairing, inspect logs/artifacts/source/diff first; make the smallest code or localhost-data change, then run the smallest finite self-gate.',\n\t\t'For build repairs, prefer `npm run build-prod -- --watch=false`, a targeted `tsc --noEmit`, or a focused unit test. `npm run build-dev` is forbidden for support microtasks because it is slow/watch-oriented and can leave heavy esbuild work. If no finite gate exists, return a blocked self-gate with the exact reason instead of running build-dev.',\n\t\t'If QA fails, retest the failed row before advancing; if the same blocker repeats without new proof, park with the exact blocker.',\n\t\tlines.goal ? `Goal: ${cleanText(lines.goal, 500)}` : '',\n\t\tcleanList(lines.approvedScope, 12, 240).length ? `Approved scope: ${cleanList(lines.approvedScope, 12, 240).join(' | ')}` : '',\n\t\tlines.activeStep ? `Active step: ${lines.activeStep}` : '',\n\t\tlines.lane ? `Lane: ${lines.lane}` : '',\n\t\tlines.laneSummary ? `Lane memory: ${cleanText(lines.laneSummary, 700)}` : '',\n\t\tlines.activeBlocker ? `Active blocker: ${cleanText(lines.activeBlocker, 800)}` : '',\n\t\tlines.currentQaRow?.workflow ? `Current QA row: ${cleanText(lines.currentQaRow.workflow, 300)}` : '',\n\t\tlines.currentQaRow?.route ? `Current QA route: ${cleanText(lines.currentQaRow.route, 300)}` : '',\n\t\tcleanList(lines.changedFiles, 12, 200).length ? `Changed files: ${cleanList(lines.changedFiles, 12, 200).join(', ')}` : '',\n\t\tcleanList(lines.artifactPaths, 12, 240).length ? `Artifacts: ${cleanList(lines.artifactPaths, 12, 240).join(', ')}` : ''\n\t].filter(Boolean);\n}\n\nexport function buildResolveIOSupportV5MicrotaskPrompt(input: {\n\tbundle: ResolveIOSupportV5StateBundle;\n\tlane: 'build' | 'qa';\n\tmodel?: string;\n\tstage?: string;\n\tfailureText?: string;\n\tchangedFiles?: string[];\n\tartifactPaths?: string[];\n\ttargetFiles?: string[];\n\tcontextSnippets?: string[];\n\tsimilarCaseHints?: any;\n\tactiveQaRow?: ResolveIOSupportV5LaneMemory['activeQaRow'];\n\tnow?: Date | string;\n}): {\n\tprompt: string;\n\tpromptTokenEstimate: number;\n\tpromptSections: ResolveIOSupportV5UsageSection[];\n\tdiagnosisEvidencePack: ResolveIOSupportDiagnosisEvidencePack;\n\tactiveMicrotask?: ResolveIOSupportV5Microtask;\n\twithinCap: boolean;\n\twithinHardCap: boolean;\n\tcap: number;\n\thardCap: number;\n\treason?: string;\n} {\n\tconst activeMicrotask = selectResolveIOSupportV5ActiveMicrotask(\n\t\tinput.bundle.supportV5MicrotaskLedger || [],\n\t\tinput.bundle.supportV5ActiveMicrotaskId\n\t);\n\tconst diagnosisValidation = validateResolveIOSupportDiagnosisGate(input.bundle.supportV5DiagnosisGate);\n\tconst diagnosisGate = diagnosisValidation.normalized || input.bundle.supportV5DiagnosisGate;\n\tconst diagnosisActive = activeMicrotask?.type === 'diagnosis_gate';\n\tconst budget = buildResolveIOSupportV5PromptBudget();\n\tconst repairLike = Boolean(input.failureText || activeMicrotask?.status === 'needs_repair' || /repair/i.test(String(input.stage || activeMicrotask?.type || '')));\n\tconst cap = repairLike\n\t\t? budget.repairMicrotaskCap\n\t\t: input.lane === 'qa'\n\t\t\t? budget.qaMicrotaskCap\n\t\t\t: budget.buildMicrotaskCap;\n\tconst hardCap = repairLike\n\t\t? budget.repairMicrotaskHardCap\n\t\t: input.lane === 'qa'\n\t\t\t? budget.qaMicrotaskHardCap\n\t\t\t: budget.buildMicrotaskHardCap;\n\tconst laneMemory = input.bundle.supportV5LaneMemory[input.lane];\n\tconst taskThreadKey = activeMicrotask?.threadKey || laneMemory.threadKey;\n\tconst changedFiles = cleanList(input.changedFiles?.length ? input.changedFiles : laneMemory.changedFiles, 8, 160);\n\tconst artifactPaths = cleanList(input.artifactPaths?.length ? input.artifactPaths : laneMemory.artifactPaths, 8, 200);\n\tconst targetFiles = cleanList(input.targetFiles?.length ? input.targetFiles : activeMicrotask?.targetFiles, 5, 160);\n\tconst contextSnippets = cleanList(input.contextSnippets, 5, 360);\n\tconst diagnosisEvidencePack = buildResolveIOSupportDiagnosisEvidencePack({\n\t\tbundle: input.bundle,\n\t\tsimilarCaseHints: input.similarCaseHints,\n\t\tissueClass: (diagnosisGate as ResolveIOSupportDiagnosisGate | undefined)?.issue_class,\n\t\townerFiles: (diagnosisGate as ResolveIOSupportDiagnosisGate | undefined)?.owner_files || targetFiles,\n\t\ttext: input.bundle.supportV5ScopeDigest || input.bundle.supportV5SupervisorState.currentGoal\n\t});\n\tconst diagnosisRetryScaffold = diagnosisActive\n\t\t? buildResolveIOSupportDiagnosisRetryScaffold({\n\t\t\tbundle: input.bundle,\n\t\t\tdiagnosisGate,\n\t\t\tevidencePack: diagnosisEvidencePack,\n\t\t\tnow: input.now\n\t\t})\n\t\t: undefined;\n\tconst promptProbePlanValidation = validateResolveIOSupportIssueClassProbePlan(\n\t\tinput.bundle.supportV5IssueClassProbePlan,\n\t\tdiagnosisValidation.normalized || diagnosisGate,\n\t\tinput.now\n\t);\n\tconst promptProbePlan = promptProbePlanValidation.valid\n\t\t? promptProbePlanValidation.normalized\n\t\t: diagnosisValidation.valid\n\t\t\t? buildResolveIOSupportIssueClassProbePlan(diagnosisValidation.normalized || diagnosisGate, input.now)\n\t\t\t: undefined;\n\tconst similarCaseSelection = diagnosisEvidencePack.similarCaseSelection;\n\tconst similarCaseHintsText = similarCaseSelection?.ranked?.length\n\t\t? [\n\t\t\t'Similar accepted fix hints. Advisory only: use these to prioritize inspection paths, not as proof.',\n\t\t\t...similarCaseSelection.ranked.slice(0, 5).map((hint, index) => [\n\t\t\t\t`${index + 1}. source=${hint.source || 'unknown'} score=${Number(hint.score || 0)}`,\n\t\t\t\thint.ticketNumber ? `ticket=${hint.ticketNumber}` : '',\n\t\t\t\thint.commitSha ? `commit=${hint.commitSha}` : '',\n\t\t\t\thint.issueClass ? `issue_class=${hint.issueClass}` : '',\n\t\t\t\thint.ownerFiles?.length ? `owner_files=${hint.ownerFiles.slice(0, 4).join(', ')}` : '',\n\t\t\t\thint.reason ? `signals=${hint.reason}` : '',\n\t\t\t\thint.title ? `title=${cleanText(hint.title, 180)}` : ''\n\t\t\t].filter(Boolean).join(' | '))\n\t\t].join('\\n')\n\t\t: '';\n\tconst qaRow = input.activeQaRow || activeMicrotask?.lane === 'qa'\n\t\t? input.activeQaRow || laneMemory.activeQaRow || input.bundle.supportV5SupervisorState.currentQaRow\n\t\t: undefined;\n\tconst sections = [\n\t\t{\n\t\t\tname: 'microtask_contract',\n\t\t\ttext: [\n\t\t\t\t'Support Runner V5 Microtask Contract.',\n\t\t\t\t'Use the existing persistent lane thread. Do not start a fresh thread.',\n\t\t\t\t'Do exactly one microtask and one proof gate. Do not replay ticket triage, prior plans, attachments, broad QA checklist, or unrelated scope.',\n\t\t\t\t'If context is insufficient, request the smallest missing file/log/artifact by path and park this microtask; do not broaden the prompt.',\n\t\t\t\t'Do not send customer email. Do not deploy. Do not spawn duplicate server/client/Mongo/browser/Codex processes.',\n\t\t\t\tdiagnosisActive\n\t\t\t\t\t? 'Diagnosis gate hard boundary: read-only investigation only. Do not edit source, generated files, package files, tests, fixtures, QA artifacts, or local data. Return the diagnosis JSON contract only.'\n\t\t\t\t\t: input.lane === 'qa'\n\t\t\t\t\t? 'QA lane hard boundary: the platform preflight owns compile, dependency install, Mongo/server/client startup, and Angular startup. This lane owns only browser/data proof and QA artifacts unless the prompt explicitly says preflight was skipped.'\n\t\t\t\t\t: 'Build lane hard boundary: do not run `npm run build-dev`, `ng build`, `npm run server`, `npm run client`, `ng serve`, `run-local-qa.sh`, browser automation, or any watch/long-lived command. If a broad compile gate is needed, run only `npm run build-prod -- --watch=false`; otherwise use a targeted finite check or return the precise blocker.'\n\t\t\t].join('\\n')\n\t\t},\n\t\tdiagnosisActive ? {\n\t\t\tname: 'root_cause_first_diagnosis_contract',\n\t\t\ttext: [\n\t\t\t\t'Before any product-code repair, produce strict JSON only:',\n\t\t\t\t'Required JSON shape: {\"support_diagnosis_gate\":{\"issue_case\":{\"customer_complaint\":\"concrete customer complaint\",\"expected_result\":\"concrete expected business result\",\"observed_result\":\"concrete observed/reproduced behavior\",\"route_module\":\"exact route/module/workflow\",\"account_customer_context\":\"affected client/account/user\",\"reproduction_status\":\"reproduced|blocked|classified\",\"reproduction_blocker\":\"required only when blocked\"},\"issue_class\":\"no_op_submit|missing_wrong_data|filter_query_mismatch|invoice_pdf_export|upload_import|route_auth_hydration|slow_query_performance\",\"accepted_hypothesis\":{\"statement\":\"one falsifiable root-cause theory\",\"falsifiable_test\":\"exact test that could disprove it\",\"evidence\":[\"typed evidence with artifact path or concrete code/data citation\"]},\"rejected_alternatives\":[\"rejected theory plus why\"],\"failing_path\":{\"frontend\":\"frontend event/path if applicable\",\"backend\":\"method/publication/query if applicable\",\"shared_library\":\"shared library path if applicable\",\"data_query\":\"data/query path if applicable\",\"description\":\"end-to-end failing path\"},\"owner_files\":[\"small/exact/product-file.ts\"],\"proof_plan\":{\"before\":\"before-state business proof\",\"before_state_unavailable_reason\":\"only if before proof cannot exist\",\"action\":\"exact user/system action\",\"after\":\"expected after-state business proof\",\"business_assertion\":\"pass/fail assertion tied to customer issue\",\"route\":\"route/workflow under test\",\"data_assertion\":\"DOM/data/Mongo assertion\",\"artifact_expectation\":\"specific artifacts to capture\",\"business_proof_contract\":{\"issue_class\":\"same as diagnosis issue_class\",\"setup_state\":\"setup state\",\"action_under_test\":\"action under test\",\"expected_business_state_change\":\"expected state change\",\"prohibited_false_pass\":\"Route load, screenshot, scorecard, or model claim alone is not acceptance.\",\"proof_artifacts\":[\"specific DOM/data/Mongo/network/screenshot artifacts\"],\"data_or_dom_assertion\":\"assertion checked in DOM/data/Mongo\"}},\"similar_tickets\":[],\"similar_commits\":[],\"evidence\":[{\"type\":\"ticket|browser|mongo|log|code|commit|qa|other\",\"summary\":\"concrete evidence summary\",\"artifactPath\":\"path or code reference\"}],\"status\":\"passed\"}}',\n\t\t\t\t'Do not copy schema/example wording into the output. Empty strings, TODOs, placeholders, route-only proof, and ticket-only proof will fail validation.',\n\t\t\t\t'Owner files must be a small exact editable set, not directories, globs, generated wrappers, or broad repo areas.',\n\t\t\t\t'The accepted hypothesis must be falsifiable and backed by evidence; prior similar tickets or commits are hints only and cannot bypass fresh diagnosis.',\n\t\t\t\t'For reproduction_status=\"reproduced\", evidence must include at least one browser, Mongo, log, or QA evidence object with artifactPath so the runner can replay the proof.',\n\t\t\t\t'For reproduction_status=\"classified\", evidence must still include non-ticket root-cause proof such as code, commit, Mongo, log, browser, or QA evidence.',\n\t\t\t\t'Ticket text and similar-ticket hints are context, not root-cause proof by themselves.',\n\t\t\t\t'The proof plan must be before/action/after business proof plus business_proof_contract. If before-state proof is impossible, explain exactly why in before_state_unavailable_reason.',\n\t\t\t\t'The business_proof_contract must name the setup state, action under test, expected business state change, prohibited false pass, required artifacts, and DOM/data assertion.'\n\t\t\t].join('\\n')\n\t\t} : {\n\t\t\tname: 'diagnosis_gate_context',\n\t\t\ttext: diagnosisValidation.valid && diagnosisGate ? [\n\t\t\t\t`Diagnosis issue class: ${(diagnosisGate as ResolveIOSupportDiagnosisGate).issue_class}`,\n\t\t\t\t`Accepted hypothesis: ${(diagnosisGate as ResolveIOSupportDiagnosisGate).accepted_hypothesis.statement}`,\n\t\t\t\t`Failing path: ${(diagnosisGate as ResolveIOSupportDiagnosisGate).failing_path.description || (diagnosisGate as ResolveIOSupportDiagnosisGate).failing_path.frontend || (diagnosisGate as ResolveIOSupportDiagnosisGate).failing_path.backend || ''}`,\n\t\t\t\t`Owner files: ${(diagnosisGate as ResolveIOSupportDiagnosisGate).owner_files.join(', ')}`,\n\t\t\t\t`Business proof required: ${(diagnosisGate as ResolveIOSupportDiagnosisGate).proof_plan.business_assertion}`,\n\t\t\t\t(diagnosisGate as ResolveIOSupportDiagnosisGate).proof_plan.business_proof_contract\n\t\t\t\t\t? `Business proof contract: ${(diagnosisGate as ResolveIOSupportDiagnosisGate).proof_plan.business_proof_contract?.action_under_test} -> ${(diagnosisGate as ResolveIOSupportDiagnosisGate).proof_plan.business_proof_contract?.expected_business_state_change}; assertion ${(diagnosisGate as ResolveIOSupportDiagnosisGate).proof_plan.business_proof_contract?.data_or_dom_assertion}`\n\t\t\t\t\t: '',\n\t\t\t\t`Before/action/after: ${(diagnosisGate as ResolveIOSupportDiagnosisGate).proof_plan.before || (diagnosisGate as ResolveIOSupportDiagnosisGate).proof_plan.before_state_unavailable_reason} -> ${(diagnosisGate as ResolveIOSupportDiagnosisGate).proof_plan.action} -> ${(diagnosisGate as ResolveIOSupportDiagnosisGate).proof_plan.after}`\n\t\t\t].filter(Boolean).join('\\n') : 'SupportDiagnosisGate is not valid. Park instead of editing product code.'\n\t\t},\n\t\tdiagnosisActive ? {\n\t\t\tname: 'diagnosis_evidence_pack',\n\t\t\ttext: JSON.stringify({\n\t\t\t\tpackId: diagnosisEvidencePack.packId,\n\t\t\t\tstatus: diagnosisEvidencePack.status,\n\t\t\t\tgeneratedAt: diagnosisEvidencePack.generatedAt,\n\t\t\t\treadOnly: diagnosisEvidencePack.readOnly,\n\t\t\t\tsourceEditsAllowed: diagnosisEvidencePack.sourceEditsAllowed,\n\t\t\t\trootCauseFirstRequired: diagnosisEvidencePack.rootCauseFirstRequired,\n\t\t\t\trequiredOutputKey: diagnosisEvidencePack.requiredOutputKey,\n\t\t\t\trequiredFields: diagnosisEvidencePack.requiredFields,\n\t\t\t\trequiredEvidence: diagnosisEvidencePack.requiredEvidence,\n\t\t\t\tforbiddenActions: diagnosisEvidencePack.forbiddenActions,\n\t\t\t\tdiagnosisValid: diagnosisEvidencePack.diagnosisValid,\n\t\t\t\tdiagnosisStatus: diagnosisEvidencePack.diagnosisStatus,\n\t\t\t\tvalidationBlockers: diagnosisEvidencePack.validationBlockers,\n\t\t\t\tissueClassHint: diagnosisEvidencePack.issueClassHint,\n\t\t\t\townerFileHints: diagnosisEvidencePack.ownerFileHints,\n\t\t\t\tactiveMicrotaskId: diagnosisEvidencePack.activeMicrotaskId,\n\t\t\t\tstructuredFacts: diagnosisEvidencePack.structuredFacts,\n\t\t\t\tproofMatrix: diagnosisEvidencePack.proofMatrix,\n\t\t\t\tsimilarHintsAdvisoryOnly: true,\n\t\t\t\tsimilarHintCount: diagnosisEvidencePack.similarCaseSelection.ranked.length,\n\t\t\t\tsimilarCaseSelection: {\n\t\t\t\t\tranked: diagnosisEvidencePack.similarCaseSelection.ranked.slice(0, 6)\n\t\t\t\t},\n\t\t\t\tissueClassProbeCatalog: diagnosisEvidencePack.issueClassProbeCatalog.map((entry) => ({\n\t\t\t\t\tissue_class: entry.issue_class,\n\t\t\t\t\taction: entry.action,\n\t\t\t\t\tproof_required: entry.proof_required,\n\t\t\t\t\tacceptance_gate: entry.acceptance_gate,\n\t\t\t\t\tfalse_pass_blockers: entry.false_pass_blockers\n\t\t\t\t})),\n\t\t\t\tpersistedEvidencePack: input.bundle.supportV5DiagnosisEvidencePack\n\t\t\t\t\t? {\n\t\t\t\t\t\tpackId: input.bundle.supportV5DiagnosisEvidencePack.packId,\n\t\t\t\t\t\tstatus: input.bundle.supportV5DiagnosisEvidencePack.status,\n\t\t\t\t\t\tvalidationBlockers: input.bundle.supportV5DiagnosisEvidencePack.validationBlockers,\n\t\t\t\t\t\tissueClassHint: input.bundle.supportV5DiagnosisEvidencePack.issueClassHint,\n\t\t\t\t\t\townerFileHints: input.bundle.supportV5DiagnosisEvidencePack.ownerFileHints,\n\t\t\t\t\t\tstructuredFacts: input.bundle.supportV5DiagnosisEvidencePack.structuredFacts,\n\t\t\t\t\t\tproofMatrix: input.bundle.supportV5DiagnosisEvidencePack.proofMatrix\n\t\t\t\t\t}\n\t\t\t\t\t: undefined,\n\t\t\t\tinstruction: 'This JSON block is the diagnosis evidence pack. Do not request or invent a support-diagnosis-pack JSON file unless a concrete named ticket attachment/log is still absent from the staged support evidence context.'\n\t\t\t}, null, 2)\n\t\t} : undefined,\n\t\tdiagnosisActive && diagnosisRetryScaffold ? {\n\t\t\tname: 'diagnosis_retry_scaffold',\n\t\t\ttext: JSON.stringify(diagnosisRetryScaffold, null, 2)\n\t\t} : undefined,\n\t\tdiagnosisActive && similarCaseHintsText ? {\n\t\t\tname: 'similar_accepted_fix_hints',\n\t\t\ttext: similarCaseHintsText\n\t\t} : undefined,\n\t\t!diagnosisActive && input.lane === 'qa' && promptProbePlan ? {\n\t\t\tname: 'issue_class_probe_plan',\n\t\t\ttext: [\n\t\t\t\t`IssueClassProbePlan ${promptProbePlan.planId} status=${promptProbePlan.status} issue_class=${promptProbePlan.issue_class || ''} gate=${promptProbePlan.acceptanceGate}`,\n\t\t\t\t`route=${cleanText(promptProbePlan.activeProbe?.route, 180)}`,\n\t\t\t\t`action=${cleanText(promptProbePlan.activeProbe?.state_transition.action || promptProbePlan.activeProbe?.action, 260)}`,\n\t\t\t\t`assertion=${cleanText(promptProbePlan.activeProbe?.state_transition.assertion, 260)}`,\n\t\t\t\t`after=${cleanText(promptProbePlan.activeProbe?.state_transition.after, 260)}`,\n\t\t\t\t`artifacts=${promptProbePlan.requiredArtifacts.slice(0, 6).join(', ')}`,\n\t\t\t\t`false_pass_blockers=${promptProbePlan.falsePassBlockers.slice(0, 4).join(', ')}`,\n\t\t\t\tpromptProbePlan.blockers.length ? `blockers=${promptProbePlan.blockers.slice(0, 4).join('; ')}` : ''\n\t\t\t].filter(Boolean).join('\\n')\n\t\t} : undefined,\n\t\t{\n\t\t\tname: 'scope_digest',\n\t\t\ttext: cleanText(input.bundle.supportV5ScopeDigest || input.bundle.supportV5SupervisorState.approvedScope, 900)\n\t\t},\n\t\t{\n\t\t\tname: 'active_microtask',\n\t\t\ttext: activeMicrotask ? [\n\t\t\t\t`Microtask id: ${activeMicrotask.microtaskId}`,\n\t\t\t\t`Lane: ${input.lane}`,\n\t\t\t\t`Type: ${activeMicrotask.type}`,\n\t\t\t\t`Status: ${activeMicrotask.status}`,\n\t\t\t\t`Objective: ${cleanText(activeMicrotask.objective, 360)}`,\n\t\t\t\t`Self-gate: ${cleanText(activeMicrotask.selfGate, 260)}`,\n\t\t\t\t`Acceptance proof: ${cleanText(activeMicrotask.acceptanceProof, 260)}`,\n\t\t\t\t`Attempts on this microtask: ${activeMicrotask.attempts}`,\n\t\t\t\t`Thread key: ${taskThreadKey}`\n\t\t\t].join('\\n') : 'No active microtask found. Park and report support_v5_microtask_missing.'\n\t\t},\n\t\t{\n\t\t\tname: 'failure_delta',\n\t\t\ttext: input.failureText ? `Latest blocker/failure delta: ${cleanText(input.failureText, 700)}` : ''\n\t\t},\n\t\t{\n\t\t\tname: 'target_context',\n\t\t\ttext: [\n\t\t\t\ttargetFiles.length ? `Target files: ${targetFiles.join(', ')}` : '',\n\t\t\t\tchangedFiles.length ? `Changed files: ${changedFiles.join(', ')}` : '',\n\t\t\t\tartifactPaths.length ? `Artifacts: ${artifactPaths.join(', ')}` : '',\n\t\t\t\tqaRow?.workflow ? `QA row workflow: ${cleanText(qaRow.workflow, 220)}` : '',\n\t\t\t\tqaRow?.route ? `QA row route: ${cleanText(qaRow.route, 220)}` : '',\n\t\t\t\tqaRow?.assertion ? `QA row assertion: ${cleanText(qaRow.assertion, 260)}` : '',\n\t\t\t\tcontextSnippets.length ? `Relevant snippets:\\n${contextSnippets.join('\\n---\\n')}` : ''\n\t\t\t].filter(Boolean).join('\\n')\n\t\t},\n\t\tinput.lane === 'qa' ? {\n\t\t\tname: 'qa_browser_evidence_contract',\n\t\t\ttext: [\n\t\t\t\t'QA lane first action after preflight: collect fresh browser evidence for the active row, not a proof review of existing route/auth artifacts.',\n\t\t\t\t'Use the already-running localhost harness and staged env. Before any shell command, run `source .resolveio-support-tools/env.sh 2>/dev/null || source ../.resolveio-support-tools/env.sh 2>/dev/null || true`; then use `$RESOLVEIO_SUPPORT_QA_CLIENT_URL`, `$RESOLVEIO_SUPPORT_QA_SERVER_URL`, `$PUPPETEER_EXECUTABLE_PATH`, and `$CHROME_BIN`.',\n\t\t\t\t'Required auth replay helper inside every Puppeteer row script: `const storage=JSON.parse(fs.readFileSync(\"qa-artifacts/auth-bootstrap-storage-state.json\",\"utf8\")); const entries=[...(Array.isArray(storage.localStorageEntries)?storage.localStorageEntries:[]), ...(Array.isArray(storage.localStorage)?storage.localStorage:Object.entries(storage.localStorage||{}).map(([key,value])=>({key,value}))), ...((storage.origins||[]).flatMap(o=>o.localStorage||[]))].map(e=>({key:e.key||e.name,value:e.value})).filter(e=>e.key); const clientUrl=process.env.RESOLVEIO_SUPPORT_QA_CLIENT_URL||process.env.RESOLVEIO_RUNNER_QA_CLIENT_URL; const rowRoute=\"<ACTIVE_QA_ROUTE>\"; await page.goto(clientUrl,{waitUntil:\"domcontentloaded\"}); await page.evaluate(items=>{localStorage.clear(); for(const item of items)localStorage.setItem(item.key,item.value);}, entries); await page.goto(new URL(rowRoute, clientUrl).href,{waitUntil:\"domcontentloaded\"});` Replace `<ACTIVE_QA_ROUTE>` with the active row route.',\n\t\t\t\t'Allowed first command shape: one bounded `node`/Puppeteer row script that reads `qa-artifacts/auth-bootstrap-storage-state.json`, opens `$RESOLVEIO_SUPPORT_QA_CLIENT_URL`, seeds localStorage, navigates to the active QA route with `new URL(activeRoute, clientUrl).href`, drives the visible workflow, captures screenshot/caption, and updates the active matrix row. A `/home` proof is invalid for a locked non-home route.',\n\t\t\t\t'Forbidden in QA lane after preflight: build/install/startup/watch commands, `mongod`, `run-local-qa.sh`, and broad source discovery. If build/startup/dependency is suspected, return blocked/needs-fix with existing qa-artifacts log paths.',\n\t\t\t\t\t'Before passing, confirm `qa-artifacts/auth-bootstrap-result.json` used the ticket reporter or named affected user when available. If it used generic admin/dev while `qa-live-data-seed-result.json.selected.qa_user_context` names a reporter/affected user, rerun auth as that user or return needs-fix.',\n\t\t\t\t\t'Drive the visible customer workflow for this one row. Capture a new customer-facing screenshot/caption and update `qa-artifacts/qa-coverage-matrix.json` with workflow, route, data id/name, assertion, screenshot path, caption, and pass/failed/blocked status.',\n\t\t\t\t\t'Also write `qa-artifacts/aiqa-business-assertion.json` with one AIQaBusinessAssertion object: assertion, status, workflow, route, before, action, expected, after/observed, dataProof or mongoDelta, artifactPaths, and metadata.supportDiagnosisProof=true only when it maps to the active SupportDiagnosisGate proof_plan.',\n\t\t\t\t'After selecting any From/To, source/target, dropdown, combobox, rio-select, filter, item, customer, yard, chemical, or treatment-plan value, read the visible control text back from the DOM. If it still contains placeholder text such as Select Chemical, Select Yard, Select Customer, Select Treatment Plan Type, Loading..., empty, null, or undefined, do not click the action button and do not mark pass. Capture the selected-state blocker screenshot/DOM text and return needs-fix.',\n\t\t\t\t'If the row needs persisted data proof, create that proof yourself in the same bounded QA command by querying localhost QA Mongo through process.env.MONGO_URL after the visible UI action. Write the result under qa-artifacts/ as JSON and reference that path in the matrix. Do not ask for a missing post-action DB artifact while the local QA stack is running; either write it or return needs-fix with the exact query/script error. For update-interchangeables rows, the JSON must include concrete non-placeholder fromText and toText, before/after counts or sample documents for treatment plans and tank/interchangeable records, and must fail if either selected value is only an arrow/placeholder or if the persisted collections are empty.',\n\t\t\t\t\t'If the row names multiple concrete entities such as assets, units, BOLs, invoices, chemicals, customers, yards, or numbered records, prove every named entity. Do not pass by proving only one representative record.',\n\t\t\t\t\t'For customer-reported data bugs, use production-seeded localhost records from `qa-live-data-seed-result.json`. If the exact named record is missing from the seed, fail the row as a seed/query blocker instead of testing a substitute record.',\n\t\t\t\t\t'Route-ready, auth-bootstrap, shell, header-only, and empty-list screenshots do not satisfy this microtask. If the row cannot be proven, capture the blocker screenshot/DOM state and return needs-fix with that exact blocker.',\n\t\t\t\t'Do not run compile/startup/npm install, do not spawn another server/client/Mongo, and do not inspect broad source trees before the first browser evidence command.'\n\t\t\t].join('\\n')\n\t\t} : {\n\t\t\tname: 'non_qa_noop',\n\t\t\ttext: ''\n\t\t},\n\t\t{\n\t\t\tname: 'return_contract',\n\t\t\ttext: diagnosisActive\n\t\t\t\t? 'Return strict JSON only with support_diagnosis_gate. Do not include Markdown and do not edit files.'\n\t\t\t\t: input.lane === 'qa'\n\t\t\t\t? 'Return strict JSON only: {\"status\":\"pass\"|\"needs-fix\"|\"blocked\",\"microtaskId\":\"\",\"summary\":\"\",\"evidence\":[\"\"],\"artifacts\":[\"\"],\"next_actions\":[\"\"]}.'\n\t\t\t\t: 'Return concise Markdown with: Microtask Result, Root Cause, Changes, Self-Gate, Acceptance Proof, Residual Risk.'\n\t\t}\n\t].filter((section): section is { name: string; text: string } => !!section && !!cleanText(section.text, 20));\n\tconst promptSections = sections.map((section) => ({\n\t\tname: section.name,\n\t\ttokenEstimate: estimateTextTokens(section.text)\n\t}));\n\tconst prompt = sections.map((section) => section.text).join('\\n\\n');\n\tconst promptTokenEstimate = estimateTextTokens(prompt);\n\treturn {\n\t\tprompt,\n\t\tpromptTokenEstimate,\n\t\tpromptSections,\n\t\tdiagnosisEvidencePack,\n\t\tactiveMicrotask,\n\t\twithinCap: promptTokenEstimate <= cap,\n\t\twithinHardCap: promptTokenEstimate <= hardCap,\n\t\tcap,\n\t\thardCap,\n\t\treason: promptTokenEstimate > hardCap\n\t\t\t? 'support_v5_microtask_prompt_hard_cap'\n\t\t\t: promptTokenEstimate > cap\n\t\t\t\t? 'support_v5_microtask_prompt_soft_cap'\n\t\t\t\t: undefined\n\t};\n}\n\nexport function summarizeResolveIOSupportV5MicrotaskUsage(bundle: ResolveIOSupportV5StateBundle): {\n\ttotalPromptTokenEstimate: number;\n\tbyMicrotask: Array<{ microtaskId: string; promptTokenEstimate: number; calls: number }>;\n\tbySection: ResolveIOSupportV5UsageSection[];\n\tbroadPromptViolations: ResolveIOSupportV5MicrotaskUsage[];\n} {\n\tconst byMicrotask = new Map<string, { microtaskId: string; promptTokenEstimate: number; calls: number }>();\n\tconst bySection = new Map<string, number>();\n\tlet totalPromptTokenEstimate = 0;\n\tconst broadPromptViolations: ResolveIOSupportV5MicrotaskUsage[] = [];\n\tconst promptBudget = buildResolveIOSupportV5PromptBudget();\n\tfor (const usage of bundle.supportV5MicrotaskUsageHistory || []) {\n\t\ttotalPromptTokenEstimate += usage.promptTokenEstimate || 0;\n\t\tconst existing = byMicrotask.get(usage.microtaskId) || { microtaskId: usage.microtaskId, promptTokenEstimate: 0, calls: 0 };\n\t\texisting.promptTokenEstimate += usage.promptTokenEstimate || 0;\n\t\texisting.calls += 1;\n\t\tbyMicrotask.set(usage.microtaskId, existing);\n\t\tfor (const section of usage.promptSections || []) {\n\t\t\tbySection.set(section.name, (bySection.get(section.name) || 0) + section.tokenEstimate);\n\t\t}\n\t\tconst hardCap = usage.lane === 'qa' ? promptBudget.qaMicrotaskHardCap : promptBudget.buildMicrotaskHardCap;\n\t\tif ((usage.promptTokenEstimate || 0) > hardCap) {\n\t\t\tbroadPromptViolations.push(usage);\n\t\t}\n\t}\n\treturn {\n\t\ttotalPromptTokenEstimate,\n\t\tbyMicrotask: Array.from(byMicrotask.values()),\n\t\tbySection: Array.from(bySection.entries()).map(([name, tokenEstimate]) => ({ name, tokenEstimate })),\n\t\tbroadPromptViolations\n\t};\n}\n\nexport function buildResolveIOSupportV5Incident(input: {\n\tincidentClass: string;\n\tsummary: string;\n\tstepType?: ResolveIOSupportV5StepType;\n\tblocker?: string;\n\tartifactPaths?: string[];\n\tnow?: Date | string;\n}): ResolveIOSupportV5RunnerIncident {\n\treturn {\n\t\tincidentClass: cleanText(input.incidentClass, 120) || 'support_v5_runner_incident',\n\t\tsummary: cleanText(input.summary, 1200),\n\t\tstepType: input.stepType,\n\t\tblockerFingerprint: input.blocker ? fingerprintResolveIOSupportV5Blocker(input.blocker) : undefined,\n\t\tartifactPaths: cleanList(input.artifactPaths, 40, 500),\n\t\trecordedAt: isoNow(input.now)\n\t};\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/util/support-runner-v5.ts"],"names":[],"mappings":"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","file":"support-runner-v5.js","sourcesContent":["import {\n\tbuildResolveIOAIManagerRecoveryCheckpoint,\n\tbuildResolveIOAIManagerRecoveryActionPacket,\n\tbuildResolveIOAIManagerRecoveryEvidenceProbe,\n\tbuildResolveIOAIManagerRecoveryPlan,\n\tbuildResolveIOAIManagerHotfixDurabilityContract,\n\tdecideResolveIOAIManagerHotfixContinuation,\n\tdecideResolveIOAIManagerAutonomyPolicy,\n\tdecideResolveIOAIManagerPolicy,\n\thashResolveIOAIManagerEvidence,\n\tResolveIOAIManagerHotfixContinuationDecision,\n\tResolveIOAIManagerHotfixDurabilityContract,\n\tResolveIOAIManagerHotfixFirstReleasePolicy,\n\tResolveIOAIManagerEvidenceStrength,\n\tResolveIOAIManagerAutonomyPolicyDecision,\n\tResolveIOAIManagerAutonomyPolicyInput,\n\tResolveIOAIManagerRecoveryCheckpoint,\n\tResolveIOAIManagerRecoveryActionPacket,\n\tResolveIOAIManagerRecoveryActionDispatchAction,\n\tResolveIOAIManagerRecoveryActionDispatchRecord,\n\tResolveIOAIManagerRecoveryExecutionDirective,\n\tResolveIOAIManagerRecoveryEvidenceProbe,\n\tResolveIOAIManagerRecoveryPlan,\n\tResolveIOAIManagerRecoveryPlanInput\n} from './ai-runner-manager-policy';\n\nexport type ResolveIOSupportV5StepType =\n\t| 'diagnosis_gate'\n\t| 'reproduction_probe'\n\t| 'issue_class_probe'\n\t| 'business_proof'\n\t| 'compile_check'\n\t| 'startup_check'\n\t| 'live_seed'\n\t| 'auth_bootstrap'\n\t| 'route_probe'\n\t| 'qa_row'\n\t| 'build_repair'\n\t| 'qa_retest'\n\t| 'pr_review'\n\t| 'artifact_package'\n\t| 'cleanup';\n\nexport type ResolveIOSupportV5Outcome =\n\t| 'pass'\n\t| 'needs_repair'\n\t| 'retry_same_step'\n\t| 'park_manual'\n\t| 'budget_stop'\n\t| 'infra_retry'\n\t| 'ready_for_merge';\n\nexport type ResolveIOSupportV5Lane = 'build' | 'qa' | 'review' | 'supervisor';\n\nexport type ResolveIOSupportIssueClass =\n\t| 'no_op_submit'\n\t| 'missing_wrong_data'\n\t| 'filter_query_mismatch'\n\t| 'invoice_pdf_export'\n\t| 'upload_import'\n\t| 'route_auth_hydration'\n\t| 'slow_query_performance';\n\nexport type ResolveIOSupportDiagnosisGateStatus = 'missing' | 'incomplete' | 'blocked' | 'passed';\n\nexport type ResolveIOSupportV5FailureClass =\n\t| 'diagnosis'\n\t| 'infra'\n\t| 'compile'\n\t| 'route'\n\t| 'business'\n\t| 'product_code'\n\t| 'qa_evidence'\n\t| 'release'\n\t| 'unknown';\n\nexport interface ResolveIOSupportDiagnosisIssueCase {\n\tcustomer_complaint: string;\n\texpected_result: string;\n\tobserved_result: string;\n\troute_module: string;\n\taccount_customer_context: string;\n\treproduction_status: 'reproduced' | 'blocked' | 'classified';\n\treproduction_blocker?: string;\n}\n\nexport interface ResolveIOSupportDiagnosisHypothesis {\n\tstatement: string;\n\tfalsifiable_test: string;\n\tevidence: string[];\n}\n\nexport interface ResolveIOSupportDiagnosisFailingPath {\n\tfrontend?: string;\n\tbackend?: string;\n\tshared_library?: string;\n\tdata_query?: string;\n\tdescription: string;\n}\n\nexport interface ResolveIOSupportDiagnosisBusinessProofContract {\n\tissue_class: ResolveIOSupportIssueClass;\n\tsetup_state: string;\n\taction_under_test: string;\n\texpected_business_state_change: string;\n\tprohibited_false_pass: string;\n\tproof_artifacts: string[];\n\tdata_or_dom_assertion: string;\n}\n\nexport interface ResolveIOSupportDiagnosisProofPlan {\n\tbefore: string;\n\tbefore_state_unavailable_reason?: string;\n\taction: string;\n\tafter: string;\n\tbusiness_assertion: string;\n\troute?: string;\n\tdata_assertion?: string;\n\tartifact_expectation?: string;\n\tbusiness_proof_contract?: ResolveIOSupportDiagnosisBusinessProofContract;\n}\n\nexport interface ResolveIOSupportDiagnosisHint {\n\tid?: string;\n\tticketNumber?: string;\n\ttitle?: string;\n\toutcome?: string;\n\tissueClass?: string;\n\townerFiles?: string[];\n\tcommitSha?: string;\n\tcommitMessage?: string;\n\treason?: string;\n}\n\nexport type ResolveIOSupportSimilarCaseSource = 'airun' | 'support_ticket' | 'git_commit' | 'manual';\n\nexport interface ResolveIOSupportSimilarCaseCandidate extends ResolveIOSupportDiagnosisHint {\n\tsource: ResolveIOSupportSimilarCaseSource;\n\tsummary?: string;\n\tkeywords?: string[];\n\tupdatedAt?: string;\n\tmetadata?: Record<string, any>;\n}\n\nexport interface ResolveIOSupportSimilarCaseRankedHint extends ResolveIOSupportDiagnosisHint {\n\tsource: ResolveIOSupportSimilarCaseSource;\n\tscore: number;\n\tstructuredSignals: string[];\n\tadvisoryOnly: true;\n}\n\nexport interface ResolveIOSupportSimilarCaseSelectionInput {\n\tissueClass?: ResolveIOSupportIssueClass | string;\n\townerFiles?: any;\n\ttext?: any;\n\tcandidates?: any[];\n\tlimit?: number;\n\tnow?: Date | string;\n}\n\nexport interface ResolveIOSupportSimilarCaseSelection {\n\tranked: ResolveIOSupportSimilarCaseRankedHint[];\n\tsimilarTickets: ResolveIOSupportSimilarCaseRankedHint[];\n\tsimilarCommits: ResolveIOSupportSimilarCaseRankedHint[];\n\tignoredCount: number;\n\tgeneratedAt: string;\n}\n\nexport type ResolveIOSupportDiagnosisEvidencePackStatus =\n\t| 'needs_diagnosis'\n\t| 'diagnosis_ready'\n\t| 'blocked';\n\nexport interface ResolveIOSupportIssueClassProbeCatalogEntry {\n\tissue_class: ResolveIOSupportIssueClass;\n\tprobe_type: ResolveIOSupportV5StepType;\n\tfailure_class: ResolveIOSupportV5FailureClass;\n\taction: string;\n\tproof_required: string;\n\trequired_artifacts: string[];\n\tacceptance_gate: 'aiqa_business_assertion';\n\tfalse_pass_blockers: string[];\n}\n\nexport interface ResolveIOSupportDiagnosisEvidencePack {\n\tpackId: string;\n\tstatus: ResolveIOSupportDiagnosisEvidencePackStatus;\n\treadOnly: true;\n\tsourceEditsAllowed: false;\n\trootCauseFirstRequired: true;\n\trequiredOutputKey: 'support_diagnosis_gate';\n\trequiredFields: string[];\n\trequiredEvidence: string[];\n\tforbiddenActions: string[];\n\tdiagnosisValid: boolean;\n\tdiagnosisStatus: ResolveIOSupportDiagnosisGateStatus;\n\tvalidationBlockers: string[];\n\tissueClassHint?: ResolveIOSupportIssueClass;\n\townerFileHints: string[];\n\tactiveMicrotaskId?: string;\n\tsimilarCaseSelection: ResolveIOSupportSimilarCaseSelection;\n\tissueClassProbeCatalog: ResolveIOSupportIssueClassProbeCatalogEntry[];\n\tproofMatrix?: ResolveIOSupportDiagnosisProofMatrix;\n\tstructuredFacts: Record<string, any>;\n\tgeneratedAt: string;\n}\n\nexport interface ResolveIOSupportDiagnosisEvidencePackInput {\n\tbundle?: ResolveIOSupportV5StateBundle;\n\tdiagnosisGate?: any;\n\tsimilarCaseHints?: any;\n\tissueClass?: ResolveIOSupportIssueClass | string;\n\townerFiles?: any;\n\ttext?: any;\n\tticketContext?: Record<string, any>;\n\tnow?: Date | string;\n}\n\nexport interface ResolveIOSupportDiagnosisEvidence {\n\tid?: string;\n\ttype: 'ticket' | 'browser' | 'mongo' | 'log' | 'code' | 'commit' | 'qa' | 'other';\n\tsummary: string;\n\tartifactPath?: string;\n\townerFiles?: string[];\n\tevidenceRefs?: string[];\n}\n\nexport interface ResolveIOSupportDiagnosisGate {\n\tissue_case: ResolveIOSupportDiagnosisIssueCase;\n\tissue_class: ResolveIOSupportIssueClass;\n\taccepted_hypothesis: ResolveIOSupportDiagnosisHypothesis;\n\trejected_alternatives: string[];\n\tfailing_path: ResolveIOSupportDiagnosisFailingPath;\n\towner_files: string[];\n\tproof_plan: ResolveIOSupportDiagnosisProofPlan;\n\tsimilar_tickets?: ResolveIOSupportDiagnosisHint[];\n\tsimilar_commits?: ResolveIOSupportDiagnosisHint[];\n\tevidence: ResolveIOSupportDiagnosisEvidence[];\n\tstatus: ResolveIOSupportDiagnosisGateStatus;\n\tupdatedAt?: string;\n}\n\nexport interface ResolveIOSupportDiagnosisGateValidation {\n\tvalid: boolean;\n\tstatus: ResolveIOSupportDiagnosisGateStatus;\n\tblockers: string[];\n\tnormalized?: ResolveIOSupportDiagnosisGate;\n\tevidenceQuality?: ResolveIOSupportDiagnosisEvidenceQuality;\n\tproofMatrix?: ResolveIOSupportDiagnosisProofMatrix;\n}\n\nexport interface ResolveIOSupportDiagnosisEvidenceQuality {\n\tvalid: boolean;\n\tblockers: string[];\n\tevidenceTypes: ResolveIOSupportDiagnosisEvidence['type'][];\n\treproductionEvidenceTypes: ResolveIOSupportDiagnosisEvidence['type'][];\n\trootCauseEvidenceTypes: ResolveIOSupportDiagnosisEvidence['type'][];\n\tartifactBackedEvidenceCount: number;\n\trouteOnlyReproductionEvidenceCount: number;\n\tbusinessReproductionEvidenceCount: number;\n\thasTicketContext: boolean;\n\thasRootCauseEvidence: boolean;\n\thasReproductionEvidence: boolean;\n}\n\nexport interface ResolveIOSupportDiagnosisProofMatrixEvidenceRef {\n\tevidenceId: string;\n\ttype: ResolveIOSupportDiagnosisEvidence['type'];\n\tsummary: string;\n\tartifactPath?: string;\n\townerFiles: string[];\n}\n\nexport interface ResolveIOSupportDiagnosisProofMatrixOwnerFile {\n\townerFile: string;\n\tcovered: boolean;\n\tevidenceIds: string[];\n\tfailingPathFields: string[];\n}\n\nexport interface ResolveIOSupportDiagnosisProofMatrix {\n\tmatrixId: string;\n\tstatus: 'ready' | 'incomplete';\n\tissueClass?: ResolveIOSupportIssueClass;\n\townerFiles: string[];\n\treproductionEvidence: ResolveIOSupportDiagnosisProofMatrixEvidenceRef[];\n\trootCauseEvidence: ResolveIOSupportDiagnosisProofMatrixEvidenceRef[];\n\townerFileCoverage: ResolveIOSupportDiagnosisProofMatrixOwnerFile[];\n\tbusinessProofArtifacts: string[];\n\tproofPlanChecks: {\n\t\tbeforeActionAfter: boolean;\n\t\tbusinessAssertion: boolean;\n\t\tbusinessProofContract: boolean;\n\t\tdataOrDomAssertion: boolean;\n\t};\n\tblockers: string[];\n\tgeneratedAt: string;\n}\n\nexport type ResolveIOSupportCustomerReplyAction =\n\t| 'draft_resolution_reply'\n\t| 'ask_clarification'\n\t| 'hold_internal';\n\nexport type ResolveIOSupportHumanReviewType =\n\t| 'diagnosis_gate'\n\t| 'owner_scoped_repair'\n\t| 'business_proof_qa'\n\t| 'release_hotfix'\n\t| 'customer_resolution_reply'\n\t| 'customer_clarification'\n\t| 'new_evidence'\n\t| 'internal_hold';\n\nexport interface ResolveIOSupportHumanReviewPacket {\n\treviewType: ResolveIOSupportHumanReviewType;\n\ttitle: string;\n\tsummary: string;\n\tprimaryAction: string;\n\tquestion?: string;\n\tcustomerFacingDraftAllowed: boolean;\n\tcustomerSendAllowed: boolean;\n\trequiresHumanApproval: boolean;\n\tsafety: 'safe_to_draft' | 'needs_clarification' | 'internal_hold';\n\treason: string;\n\tblockers: string[];\n\trequiredEvidence: string[];\n\tevidenceRefs: string[];\n\tnextCommands: string[];\n\tforbiddenActions: string[];\n\tcostRisk: 'free_or_deterministic' | 'small_model_or_qa' | 'expensive_model' | 'release_or_customer_send';\n\tcreatedAt: string;\n}\n\nexport interface ResolveIOSupportHumanDecisionChoice {\n\tchoiceId: string;\n\tlabel: string;\n\taction: string;\n\tdescription: string;\n\tsafety: 'low' | 'medium' | 'high';\n\trequiresConfirmation: boolean;\n\tnextCommand: string;\n\texpectedResult: string;\n\tallowedWithoutCodexMonitor: boolean;\n}\n\nexport interface ResolveIOSupportHumanDecisionRequest {\n\trequestId: string;\n\trequired: boolean;\n\tstatus: 'not_required' | 'waiting_for_operator' | 'auto_dispatch_allowed';\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\tsameFailureCount: number;\n\t\tpingPongCount: number;\n\t\tevidenceStrength: ResolveIOAIManagerEvidenceStrength;\n\t\trequiredResetEvidence: string[];\n\t\trecentArtifactPaths: string[];\n\t\tchangedFiles: string[];\n\t\tnextActionContractId: string;\n\t};\n\tchoices: ResolveIOSupportHumanDecisionChoice[];\n\tblockedUntil: string[];\n\tautoDispatchAllowed: boolean;\n\tcreatedAt: string;\n}\n\nexport interface ResolveIOSupportCustomerReplyPolicyInput {\n\tdiagnosisGate?: any;\n\tissueClassProbePlan?: any;\n\toutcomeLabel?: string;\n\tconfidence?: any;\n\tbusinessAssertionStatus?: string;\n\tbusinessAssertions?: any[];\n\tbusinessProofArtifacts?: any[];\n\tpreviousProofFingerprint?: string;\n\tpreviousArtifactFingerprint?: string;\n\tunresolvedBlockers?: any[];\n\treleaseStatus?: string;\n\treleaseEvidence?: any;\n\thotfixEvidence?: any;\n\treleasePolicy?: ResolveIOAIManagerHotfixFirstReleasePolicy;\n\treleaseGatePassed?: boolean;\n}\n\nexport type ResolveIOSupportClarificationMissingField =\n\t| 'reproduction_blocker'\n\t| 'expected_result'\n\t| 'observed_result'\n\t| 'account_customer_context'\n\t| 'example_record_or_action_path';\n\nexport interface ResolveIOSupportClarificationContract {\n\tcontractId: string;\n\tstatus: 'ready' | 'blocked';\n\tmissingField: ResolveIOSupportClarificationMissingField;\n\tquestion: string;\n\tsourceBlockers: string[];\n\toneQuestionOnly: boolean;\n\tcustomerFacingDraftAllowed: boolean;\n\tcustomerSendAllowed: boolean;\n\tparksTicketUntilCustomerReply: boolean;\n\tnextCommands: string[];\n\tforbiddenActions: string[];\n\trequiredEvidence: string[];\n\tcreatedAt: string;\n}\n\nexport type ResolveIOSupportCustomerReplyReadinessStatus =\n\t| 'draft_ready'\n\t| 'clarification_required'\n\t| 'blocked_until_diagnosis'\n\t| 'blocked_until_probe_plan'\n\t| 'blocked_until_confidence'\n\t| 'blocked_until_runner_blocker'\n\t| 'blocked_until_release_hotfix'\n\t| 'blocked_until_business_proof'\n\t| 'blocked_until_business_proof_artifact'\n\t| 'blocked_until_human_approval'\n\t| 'internal_blocked';\n\nexport interface ResolveIOSupportCustomerReplyReadinessContract {\n\tcontractId: string;\n\tstatus: ResolveIOSupportCustomerReplyReadinessStatus;\n\tpolicyAction: ResolveIOSupportCustomerReplyAction;\n\treviewType: ResolveIOSupportHumanReviewType;\n\tprimaryCommand: string;\n\tcanDraftCustomerReply: boolean;\n\tcanSendCustomerReply: boolean;\n\trequiresHumanApproval: boolean;\n\tproofBacked: boolean;\n\tbusinessProofReady: boolean;\n\treleaseReady: boolean;\n\tdiagnosisReady: boolean;\n\tissueClassProbePlanReady: boolean;\n\tclarificationRequired: boolean;\n\treason: string;\n\tblockers: string[];\n\trequiredEvidence: string[];\n\tevidenceRefs: string[];\n\tnextCommands: string[];\n\tforbiddenActions: string[];\n\tcreatedAt: string;\n}\n\nexport interface ResolveIOSupportCustomerReplyReadinessContractInput {\n\tpolicy: ResolveIOSupportCustomerReplyPolicy;\n\tdiagnosisValidation?: ResolveIOSupportDiagnosisGateValidation;\n\tissueClassProbePlanValidation?: ResolveIOSupportIssueClassProbePlanValidation;\n\tbusinessProofReadiness?: ResolveIOSupportBusinessProofReadiness;\n\treleaseGate?: {\n\t\tblocked?: boolean;\n\t\tstatus?: string;\n\t\tblockers?: string[];\n\t\trequiredEvidence?: string[];\n\t\tnextCommands?: string[];\n\t};\n\tnow?: Date | string;\n}\n\nexport interface ResolveIOSupportCustomerReplyPolicy {\n\taction: ResolveIOSupportCustomerReplyAction;\n\tcanDraftCustomerReply: boolean;\n\tcanSendCustomerReply: boolean;\n\tconfidenceLevel: 'high' | 'medium' | 'low' | 'unknown';\n\tsafety: 'safe_to_draft' | 'needs_clarification' | 'internal_hold';\n\treason: string;\n\trequiredEvidence: string[];\n\tclarificationQuestion?: string;\n\tclarificationContract?: ResolveIOSupportClarificationContract;\n\thumanReviewPacket?: ResolveIOSupportHumanReviewPacket;\n\tdraftBasis?: {\n\t\tissueClass: ResolveIOSupportIssueClass;\n\t\tissueClassProbePlanId?: string;\n\t\tissueClassProbePlanStatus?: ResolveIOSupportIssueClassProbePlanStatus;\n\t\tbusinessProof: string;\n\t\tartifactCount: number;\n\t};\n\treadinessContract?: ResolveIOSupportCustomerReplyReadinessContract;\n}\n\nexport interface ResolveIOSupportIssueClassProbe {\n\tissue_class: ResolveIOSupportIssueClass;\n\tprobe_type: ResolveIOSupportV5StepType;\n\tfailure_class: ResolveIOSupportV5FailureClass;\n\tobjective: string;\n\troute?: string;\n\taction: string;\n\tbrowser_steps: string[];\n\texpected_evidence: string;\n\texpected_business_proof: string;\n\tdata_proof_requirements: string[];\n\trequired_artifacts: string[];\n\tqa_rows: ResolveIOSupportIssueClassProbeQaRow[];\n\tactive_qa_row?: ResolveIOSupportIssueClassProbeQaRow;\n\taiqa_business_assertion_template: ResolveIOSupportIssueClassProbeAssertionTemplate;\n\tstate_transition: {\n\t\tbefore: string;\n\t\taction: string;\n\t\tafter: string;\n\t\tassertion: string;\n\t};\n\tacceptance_gate: 'aiqa_business_assertion';\n\tblocks_acceptance_without_business_assertion: boolean;\n\tfalse_pass_blockers?: string[];\n}\n\nexport interface ResolveIOSupportIssueClassProbeQaRow {\n\trow_id: string;\n\tissue_class: ResolveIOSupportIssueClass;\n\tprobe_type: ResolveIOSupportV5StepType;\n\troute?: string;\n\taction_under_test: string;\n\tbrowser_steps: string[];\n\texpected_result: string;\n\texpected_dom_or_data_proof: string;\n\trequired_artifacts: string[];\n\tfalse_pass_blockers: string[];\n\tstate_transition: {\n\t\tbefore: string;\n\t\taction: string;\n\t\tafter: string;\n\t\tassertion: string;\n\t};\n\tacceptance_gate: 'aiqa_business_assertion';\n\trequires_aiqa_business_assertion: true;\n\troute_only_is_false_pass: true;\n\tmobile_viewport_required: boolean;\n}\n\nexport interface ResolveIOSupportIssueClassProbeAssertionTemplate {\n\tassertion: string;\n\tstatus: 'pending';\n\tworkflow: string;\n\troute?: string;\n\tbefore: string;\n\taction: string;\n\texpected: string;\n\tobserved: string;\n\tdataProof: string;\n\tartifactPaths: string[];\n\tmetadata: {\n\t\tsupportDiagnosisProof: true;\n\t\tissueClass: ResolveIOSupportIssueClass;\n\t\tprobePlanRequired: true;\n\t\trouteOnlyIsFalsePass: true;\n\t};\n}\n\nexport type ResolveIOSupportIssueClassProbePlanStatus = 'missing' | 'incomplete' | 'ready';\n\nexport interface ResolveIOSupportIssueClassProbePlan {\n\tplanId: string;\n\tstatus: ResolveIOSupportIssueClassProbePlanStatus;\n\tissue_class?: ResolveIOSupportIssueClass;\n\tdiagnosisValid: boolean;\n\tprobes: ResolveIOSupportIssueClassProbe[];\n\tactiveProbe?: ResolveIOSupportIssueClassProbe;\n\tqaRows: ResolveIOSupportIssueClassProbeQaRow[];\n\tactiveQaRow?: ResolveIOSupportIssueClassProbeQaRow;\n\trequiredArtifacts: string[];\n\tacceptanceGate: 'aiqa_business_assertion';\n\tfalsePassBlockers: string[];\n\tblockers: string[];\n\tgeneratedAt: string;\n}\n\nexport interface ResolveIOSupportIssueClassProbePlanValidation {\n\tvalid: boolean;\n\tstatus: ResolveIOSupportIssueClassProbePlanStatus;\n\tblockers: string[];\n\tnormalized?: ResolveIOSupportIssueClassProbePlan;\n\tactiveProbe?: ResolveIOSupportIssueClassProbe;\n}\n\nexport interface ResolveIOSupportBusinessProofAssertion {\n\tassertion: string;\n\tstatus: string;\n\tworkflow?: string;\n\troute?: string;\n\tbefore?: string;\n\taction?: string;\n\texpected?: string;\n\tafter?: string;\n\tobserved?: string;\n\tdataProof?: string;\n\tmongoDelta?: Record<string, any>;\n\tartifactPaths: string[];\n\tmessage?: string;\n\tacceptanceBlocked?: boolean;\n\trouteOnly?: boolean;\n\tmetadata?: Record<string, any>;\n}\n\nexport interface ResolveIOSupportBusinessProofReadinessInput {\n\tdiagnosisGate?: any;\n\toutcomeLabel?: string;\n\tbusinessAssertionStatus?: string;\n\tbusinessAssertions?: any[];\n\tbusinessProofArtifacts?: any[];\n\tpreviousProofFingerprint?: string;\n\tpreviousArtifactFingerprint?: string;\n}\n\nexport interface ResolveIOSupportBusinessProofReadiness {\n\tready: boolean;\n\tstatus: 'missing' | 'route_only' | 'failed' | 'blocked' | 'weak' | 'stale' | 'passed';\n\treason: string;\n\tblockers: string[];\n\trequiredEvidence: string[];\n\tartifactPaths: string[];\n\tproofFingerprint: string;\n\tartifactFingerprint: string;\n\tproofFreshness: 'missing' | 'fresh' | 'same_as_previous' | 'stale_artifact' | 'unknown';\n\tmatchedAssertion?: ResolveIOSupportBusinessProofAssertion;\n}\n\nexport interface ResolveIOSupportV5RepeatStopInput {\n\thistory: ResolveIOSupportV5StepRecord[];\n\tfailureClass?: ResolveIOSupportV5FailureClass | string;\n\tblocker?: string;\n\tevidence?: any;\n\tevidenceHash?: string;\n\tchangedFiles?: any;\n\tartifactPaths?: any;\n\tlimit?: number;\n\tignoreInfra?: boolean;\n}\n\nexport interface ResolveIOSupportV5RepeatStopDecision {\n\tshouldStop: boolean;\n\trepeatedCount: number;\n\tfailureClass: string;\n\tblockerFingerprint: string;\n\tevidenceHash: string;\n\tnewEvidence?: boolean;\n\tmaterialEvidence?: boolean;\n\tevidenceStrength?: ResolveIOAIManagerEvidenceStrength;\n\tevidenceSignals?: string[];\n\treason: string;\n}\n\nexport type ResolveIOSupportEvidenceFreshnessStatus =\n\t| 'missing'\n\t| 'fresh'\n\t| 'retry_below_limit'\n\t| 'material_evidence'\n\t| 'weak_evidence'\n\t| 'stale_repeated'\n\t| 'ping_pong'\n\t| 'infra_ignored';\n\nexport interface ResolveIOSupportEvidenceFreshness {\n\tstatus: ResolveIOSupportEvidenceFreshnessStatus;\n\tfailureClass: string;\n\tblockerFingerprint: string;\n\tevidenceHash: string;\n\tsameFailureCount: number;\n\tpingPongCount: number;\n\tnewEvidence: boolean;\n\tmaterialEvidence: boolean;\n\tevidenceStrength: ResolveIOAIManagerEvidenceStrength;\n\tevidenceSignals: string[];\n\tloopBudgetShouldReset: boolean;\n\tcanRetry: boolean;\n\tmustCollectNewEvidence: boolean;\n\tproductRepairFailure: boolean;\n\treason: string;\n\trequiredResetEvidence: string[];\n\tchangedFiles: string[];\n\tartifactPaths: string[];\n}\n\nexport type ResolveIOSupportEvidenceProbeContractStatus = 'ready' | 'blocked';\n\nexport type ResolveIOSupportEvidenceProbeContractType =\n\t| 'issue_class_probe'\n\t| 'business_proof'\n\t| 'preflight'\n\t| 'release'\n\t| 'manual';\n\nexport interface ResolveIOSupportEvidenceProbeContract {\n\tcontractId: string;\n\tstatus: ResolveIOSupportEvidenceProbeContractStatus;\n\tprobeType: ResolveIOSupportEvidenceProbeContractType;\n\tevidenceOnly: true;\n\tproductRepairAllowed: false;\n\tcanRunWithoutCodexMonitor: boolean;\n\tissueClass?: ResolveIOSupportIssueClass;\n\tplanId?: string;\n\tactiveRoute?: string;\n\tactionUnderTest?: string;\n\texpectedBusinessProof?: string;\n\tstateTransition?: ResolveIOSupportIssueClassProbe['state_transition'];\n\tstartingFailureClass: string;\n\tstartingBlockerFingerprint: string;\n\tstartingEvidenceHash: string;\n\tsameFailureCount: number;\n\tpingPongCount: number;\n\trequiredNewSignals: string[];\n\trequiredArtifacts: string[];\n\tacceptableEvidence: string[];\n\tblockers: string[];\n\tforbiddenActions: string[];\n\tnextCommands: string[];\n\tcreatedAt: string;\n}\n\nexport interface ResolveIOSupportEvidenceProbeContractValidation {\n\tvalid: boolean;\n\tstatus: ResolveIOSupportEvidenceProbeContractStatus;\n\tblockers: string[];\n\tnormalized?: ResolveIOSupportEvidenceProbeContract;\n}\n\nexport type ResolveIOSupportPreflightCheckName =\n\t| 'puppeteer_module'\n\t| 'chrome_executable'\n\t| 'chrome_launch'\n\t| 'node_version'\n\t| 'npm_install'\n\t| 'settings_file'\n\t| 'mongo_connection'\n\t| 'server_startup'\n\t| 'client_startup'\n\t| 'port_availability'\n\t| 'compile'\n\t| 'cache_state'\n\t| 'seed_data'\n\t| 'unknown';\n\nexport type ResolveIOSupportPreflightCheckStatus = 'pass' | 'fail' | 'blocked' | 'warn' | 'unknown';\n\nexport interface ResolveIOSupportPreflightCheck {\n\tname: ResolveIOSupportPreflightCheckName;\n\tstatus: ResolveIOSupportPreflightCheckStatus;\n\tsummary: string;\n\tfailureClass: 'infra' | 'compile' | 'unknown';\n\tcommand?: string;\n\tdurationMs?: number;\n\tartifactPaths: string[];\n\tevidence: string[];\n\trecordedAt: string;\n}\n\nexport type ResolveIOSupportPreflightGateStatus =\n\t| 'passed'\n\t| 'missing'\n\t| 'infra_failed'\n\t| 'compile_failed'\n\t| 'blocked'\n\t| 'unknown';\n\nexport type ResolveIOSupportPreflightNextCommand =\n\t| 'continue_to_diagnosis'\n\t| 'run_support_v5_preflight'\n\t| 'run_support_v5_infra_repair'\n\t| 'run_support_v5_compile_repair';\n\nexport interface ResolveIOSupportPreflightGateInput {\n\trequired?: boolean;\n\tstatus?: ResolveIOSupportPreflightGateStatus | string;\n\tready?: boolean;\n\tchecks?: any[];\n\tinfraChecks?: any[];\n\tcompileResult?: any;\n\tstartupChecks?: any[];\n\tblockers?: any;\n\trequiredEvidence?: any;\n\tartifactPaths?: any;\n\tevidenceHash?: string;\n\trecordedAt?: Date | string;\n}\n\nexport interface ResolveIOSupportPreflightGate {\n\tready: boolean;\n\trequired: boolean;\n\tstatus: ResolveIOSupportPreflightGateStatus;\n\tfailureClass: 'infra' | 'compile' | 'unknown';\n\tchecks: ResolveIOSupportPreflightCheck[];\n\tfailedChecks: ResolveIOSupportPreflightCheck[];\n\tblockers: string[];\n\trequiredEvidence: string[];\n\tartifactPaths: string[];\n\tnextCommand: ResolveIOSupportPreflightNextCommand;\n\tblocksProductRepair: boolean;\n\tblocksModelRepair: boolean;\n\tevidenceHash: string;\n\trecordedAt: string;\n}\n\nexport type ResolveIOSupportV5RepairGateAction =\n\t| 'diagnose_only'\n\t| 'infra_repair_only'\n\t| 'allow_product_repair'\n\t| 'reject_out_of_scope'\n\t| 'park_repeated_failure';\n\nexport interface ResolveIOSupportV5RepairGateInput {\n\tdiagnosisGate?: any;\n\tpreflightGate?: ResolveIOSupportPreflightGateInput | ResolveIOSupportPreflightGate;\n\tactiveStepType?: ResolveIOSupportV5StepType | string;\n\tchangedFiles?: any;\n\tartifactPaths?: any;\n\tfailureClass?: ResolveIOSupportV5FailureClass | string;\n\tblocker?: string;\n\tevidence?: any;\n\tevidenceHash?: string;\n\thistory?: ResolveIOSupportV5StepRecord[];\n\tmaxOwnerFiles?: number;\n\tmaxRepeatedNoProgress?: number;\n\tallowTestsOutsideOwnerFiles?: boolean;\n}\n\nexport interface ResolveIOSupportV5RepairGateDecision {\n\taction: ResolveIOSupportV5RepairGateAction;\n\tcanEditProductCode: boolean;\n\tblockers: string[];\n\townerFiles: string[];\n\tissueClass?: ResolveIOSupportIssueClass;\n\tproofPlan?: ResolveIOSupportDiagnosisProofPlan;\n\townerScopedRepairContract: ResolveIOSupportOwnerScopedRepairContract;\n\toutsideOwnerFiles: string[];\n\tpreflightGate: ResolveIOSupportPreflightGate;\n\trepeatedFailure?: ResolveIOSupportV5RepeatStopDecision;\n\tdiagnosisValidation: ResolveIOSupportDiagnosisGateValidation;\n\trecoveryPlan: ResolveIOAIManagerRecoveryPlan;\n\trecoveryCheckpoint: ResolveIOAIManagerRecoveryCheckpoint;\n\trecoveryEvidenceProbe: ResolveIOAIManagerRecoveryEvidenceProbe;\n\trecoveryAction: ResolveIOAIManagerRecoveryActionPacket;\n}\n\nexport interface ResolveIOSupportOwnerScopedRepairPatchUnit {\n\townerFile: string;\n\tcoverageEvidenceIds: string[];\n\tfailingPathFields: string[];\n\trepairPurpose: string;\n\trequiredLocalChecks: string[];\n}\n\nexport interface ResolveIOSupportOwnerScopedRepairContract {\n\tcontractId: string;\n\tstatus: 'ready' | 'blocked';\n\tsourceEditsAllowed: boolean;\n\tcanRunWithoutCodexMonitor: boolean;\n\tissueClass?: ResolveIOSupportIssueClass;\n\townerFiles: string[];\n\tproofMatrixId: string;\n\tchangedFiles: string[];\n\toutsideOwnerFiles: string[];\n\tpatchUnits: ResolveIOSupportOwnerScopedRepairPatchUnit[];\n\trequiredEvidenceBeforeRepair: string[];\n\trequiredEvidenceAfterRepair: string[];\n\tnextCommands: string[];\n\tforbiddenActions: string[];\n\tblockers: string[];\n\tcreatedAt: string;\n}\n\nexport type ResolveIOSupportV5MicrotaskStatus =\n\t| 'pending'\n\t| 'in_progress'\n\t| 'pass'\n\t| 'needs_repair'\n\t| 'blocked'\n\t| 'parked';\n\nexport type ResolveIOSupportV5MicrotaskType =\n\t| ResolveIOSupportV5StepType\n\t| 'planning'\n\t| 'scope_slice'\n\t| 'product_repair'\n\t| 'runner_repair';\n\nexport interface ResolveIOSupportV5PromptBudget {\n\tinitialPlannerCap: number;\n\tbuildMicrotaskCap: number;\n\tbuildMicrotaskHardCap: number;\n\tqaMicrotaskCap: number;\n\tqaMicrotaskHardCap: number;\n\trepairMicrotaskCap: number;\n\trepairMicrotaskHardCap: number;\n}\n\nexport interface ResolveIOSupportV5Microtask {\n\tmicrotaskId: string;\n\tlane: ResolveIOSupportV5Lane;\n\ttype: ResolveIOSupportV5MicrotaskType;\n\tstatus: ResolveIOSupportV5MicrotaskStatus;\n\tobjective: string;\n\ttargetFiles: string[];\n\tcontextRefs: string[];\n\tselfGate: string;\n\tacceptanceProof: string;\n\tthreadKey: string;\n\tpromptTokenEstimate?: number;\n\tattempts: number;\n\tdependsOn: string[];\n\tparentScopeId?: string;\n\tblocker?: string;\n\tcreatedAt: string;\n\tupdatedAt: string;\n}\n\nexport interface ResolveIOSupportV5UsageSection {\n\tname: string;\n\ttokenEstimate: number;\n}\n\nexport interface ResolveIOSupportV5MicrotaskUsage {\n\tmicrotaskId: string;\n\tlane: ResolveIOSupportV5Lane;\n\tmodel?: string;\n\tthreadKey?: string;\n\treuseThread: boolean;\n\tfreshReason?: string;\n\tpromptTokenEstimate: number;\n\tpromptSections: ResolveIOSupportV5UsageSection[];\n\tactualInputTokens?: number;\n\tactualCachedInputTokens?: number;\n\tactualOutputTokens?: number;\n\tdurationMs?: number;\n\toutcome?: ResolveIOSupportV5Outcome | ResolveIOSupportV5MicrotaskStatus;\n\trecordedAt: string;\n}\n\nexport interface ResolveIOSupportV5Budget {\n\tmaxPromptTokensPerNonInitialStep: number;\n\tmaxLoopsPerTicket: number;\n\tmaxRepeatedNoProgress: number;\n\tmaxRuntimeMinutesPerLoop: number;\n\ttotalPromptTokenEstimate: number;\n\ttotalRuntimeMs: number;\n\tloopCount: number;\n}\n\nexport interface ResolveIOSupportV5LaneMemory {\n\tlane: ResolveIOSupportV5Lane;\n\tmodel: string;\n\tthreadKey: string;\n\tscopeSummary: string;\n\tactiveBlocker: string;\n\tactiveQaRow?: {\n\t\tindex?: number;\n\t\tworkflow?: string;\n\t\troute?: string;\n\t\tassertion?: string;\n\t\tstatus?: string;\n\t};\n\tchangedFiles: string[];\n\tartifactPaths: string[];\n\tlatestPromptTokenEstimate?: number;\n\tupdatedAt: string;\n}\n\nexport interface ResolveIOSupportV5FailureFingerprint {\n\tstepType: ResolveIOSupportV5StepType;\n\tfailureClass: string;\n\tblockerFingerprint: string;\n\tevidenceHash: string;\n\trecordedAt: string;\n}\n\nexport interface ResolveIOSupportV5SupervisorState {\n\tversion: 'v5';\n\tstatus: 'active' | 'parked' | 'complete';\n\tcurrentGoal: string;\n\tapprovedScope: string;\n\tprBranch: string;\n\tactiveStep: ResolveIOSupportV5StepType;\n\tactiveBlocker: string;\n\tlastGoodCheckpoint: string;\n\tcurrentQaRow?: ResolveIOSupportV5LaneMemory['activeQaRow'];\n\tprocessLease?: {\n\t\trunId?: string;\n\t\ttoken?: string;\n\t\tgeneration?: number;\n\t\tworkspace?: string;\n\t\tlane?: string;\n\t};\n\tartifactLinks: string[];\n\tnoEmailUnlessApproved: boolean;\n\tupdatedAt: string;\n}\n\nexport interface ResolveIOSupportV5StepRecord {\n\tmicrotaskId?: string;\n\tstepType: ResolveIOSupportV5StepType;\n\toutcome: ResolveIOSupportV5Outcome;\n\tlane: ResolveIOSupportV5Lane;\n\tmodel?: string;\n\tthreadKey?: string;\n\tpromptTokenEstimate?: number;\n\truntimeMs?: number;\n\tsummary: string;\n\tblocker?: string;\n\tchangedFiles?: string[];\n\tartifactPaths?: string[];\n\tdiagnosisGate?: ResolveIOSupportDiagnosisGate;\n\tpreflightGate?: ResolveIOSupportPreflightGate;\n\tfailureClass?: ResolveIOSupportV5FailureClass | string;\n\tblockerFingerprint?: string;\n\tevidenceHash?: string;\n\trecordedAt: string;\n}\n\nexport interface ResolveIOSupportV5RunnerIncident {\n\tincidentClass: string;\n\tsummary: string;\n\tstepType?: ResolveIOSupportV5StepType;\n\tblockerFingerprint?: string;\n\tartifactPaths?: string[];\n\trecordedAt: string;\n}\n\nexport interface ResolveIOSupportV5StateBundle {\n\tsupportWorkflowVersion: 'v5';\n\tsupportV5SupervisorState: ResolveIOSupportV5SupervisorState;\n\tsupportV5DiagnosisGate?: ResolveIOSupportDiagnosisGate;\n\tsupportV5DiagnosisEvidencePack?: ResolveIOSupportDiagnosisEvidencePack;\n\tsupportV5IssueClassProbePlan?: ResolveIOSupportIssueClassProbePlan;\n\tsupportV5PreflightGate?: ResolveIOSupportPreflightGate;\n\tsupportV5LaneMemory: {\n\t\tbuild: ResolveIOSupportV5LaneMemory;\n\t\tqa: ResolveIOSupportV5LaneMemory;\n\t};\n\tsupportV5StepHistory: ResolveIOSupportV5StepRecord[];\n\tsupportV5Budget: ResolveIOSupportV5Budget;\n\tsupportV5RunnerIncidents: ResolveIOSupportV5RunnerIncident[];\n\tsupportV5MicrotaskLedger: ResolveIOSupportV5Microtask[];\n\tsupportV5ActiveMicrotaskId?: string;\n\tsupportV5ScopeDigest?: string;\n\tsupportV5MicrotaskUsageHistory: ResolveIOSupportV5MicrotaskUsage[];\n\tsupportV5FailureFingerprints?: ResolveIOSupportV5FailureFingerprint[];\n\tsupportV5RecoveryPlan?: ResolveIOAIManagerRecoveryPlan;\n\tsupportV5RecoveryCheckpoint?: ResolveIOAIManagerRecoveryCheckpoint;\n\tsupportV5RecoveryEvidenceProbe?: ResolveIOAIManagerRecoveryEvidenceProbe;\n\tsupportV5RecoveryAction?: ResolveIOAIManagerRecoveryActionPacket;\n\tsupportV5RecoveryDispatchHistory?: ResolveIOAIManagerRecoveryActionDispatchRecord[];\n\tsupportV5RecoveryDirective?: ResolveIOAIManagerRecoveryExecutionDirective;\n}\n\nexport interface ResolveIOSupportV5InitializeInput {\n\tjobId: string;\n\tticketId?: string;\n\tticketNumber?: string;\n\ttitle?: string;\n\tdescription?: string;\n\tapprovedScopeRequirements?: string[];\n\tapprovedScopeHours?: number | null;\n\tprBranch?: string;\n\tbuildThreadKey?: string;\n\tqaThreadKey?: string;\n\tprocessLease?: ResolveIOSupportV5SupervisorState['processLease'];\n\tnow?: Date | string;\n\texisting?: Partial<ResolveIOSupportV5StateBundle>;\n}\n\nexport interface ResolveIOSupportV5StepInput {\n\tmicrotaskId?: string;\n\tstepType: ResolveIOSupportV5StepType;\n\toutcome: ResolveIOSupportV5Outcome;\n\tlane: ResolveIOSupportV5Lane;\n\tmodel?: string;\n\tthreadKey?: string;\n\tpromptTokenEstimate?: number;\n\truntimeMs?: number;\n\tsummary?: string;\n\tblocker?: string;\n\tchangedFiles?: string[];\n\tartifactPaths?: string[];\n\tdiagnosisGate?: ResolveIOSupportDiagnosisGate;\n\tpreflightGate?: ResolveIOSupportPreflightGateInput | ResolveIOSupportPreflightGate;\n\tfailureClass?: ResolveIOSupportV5FailureClass | string;\n\tevidenceHash?: string;\n\tactiveQaRow?: ResolveIOSupportV5LaneMemory['activeQaRow'];\n\tnow?: Date | string;\n}\n\nexport interface ResolveIOSupportV5ContinuationDecision {\n\taction: 'continue' | 'park';\n\treason: string;\n\tnextStep: ResolveIOSupportV5StepType;\n\trepeatedNoProgressCount: number;\n\tbudgetExceeded: boolean;\n\trecoveryPlan: ResolveIOAIManagerRecoveryPlan;\n\trecoveryCheckpoint: ResolveIOAIManagerRecoveryCheckpoint;\n\trecoveryEvidenceProbe: ResolveIOAIManagerRecoveryEvidenceProbe;\n\trecoveryAction: ResolveIOAIManagerRecoveryActionPacket;\n}\n\nexport type ResolveIOSupportV5AutonomousNextAction =\n\t| 'run_diagnosis_gate'\n\t| 'ask_customer_clarification'\n\t| 'repair_infra_only'\n\t| 'revise_diagnosis_scope'\n\t| 'run_owner_scoped_repair'\n\t| 'run_business_proof_qa'\n\t| 'create_pr'\n\t| 'run_a_grade_pr_review'\n\t| 'repair_release_hotfix_first'\n\t| 'collect_new_evidence'\n\t| 'draft_customer_reply'\n\t| 'ready_for_release_gate'\n\t| 'park_manual';\n\nexport type ResolveIOSupportContinuationProofCheckpointStatus =\n\t| 'waiting_for_state_transition'\n\t| 'waiting_for_proof'\n\t| 'waiting_for_new_evidence'\n\t| 'ready_to_continue';\n\nexport interface ResolveIOSupportContinuationProofCheckpoint {\n\trequired: boolean;\n\tstatus: ResolveIOSupportContinuationProofCheckpointStatus;\n\taction: ResolveIOSupportV5AutonomousNextAction;\n\treason: string;\n\tstartingFailureClass: string;\n\tstartingBlockerFingerprint: string;\n\tstartingEvidenceHash: string;\n\trequiredEvidence: string[];\n\trequiredResetEvidence: string[];\n\tsuccessRequiresNewEvidence: boolean;\n\tblocksProductRepairUntilChangedEvidence: boolean;\n\tnextAction: string;\n}\n\nexport type ResolveIOSupportRootCauseReadinessStatus =\n\t| 'diagnosis_required'\n\t| 'customer_clarification_required'\n\t| 'infra_repair_only'\n\t| 'scope_revision_required'\n\t| 'owner_scoped_repair_ready'\n\t| 'business_proof_required'\n\t| 'pr_packaging_ready'\n\t| 'pr_review_required'\n\t| 'release_hotfix_required'\n\t| 'release_gate_ready'\n\t| 'customer_reply_draft_ready'\n\t| 'collect_new_evidence'\n\t| 'parked';\n\nexport interface ResolveIOSupportRootCauseReadiness {\n\tstatus: ResolveIOSupportRootCauseReadinessStatus;\n\tnextGate: 'diagnosis' | 'infra' | 'scope' | 'repair' | 'business_proof' | 'release' | 'customer_reply' | 'evidence' | 'manual';\n\tnextCommand: string;\n\trootCauseFirstSatisfied: boolean;\n\tdiagnosisValid: boolean;\n\townerFilesReady: boolean;\n\tproofPlanReady: boolean;\n\tproofMatrixReady: boolean;\n\townerScopedRepairContractReady: boolean;\n\tbusinessProofReady: boolean;\n\tinfraOnly: boolean;\n\tsameFailureParked: boolean;\n\tcanEditProductCode: boolean;\n\tcanRunIssueClassProbe: boolean;\n\tcanRunBusinessProofQa: boolean;\n\tcanRelease: boolean;\n\tcanDraftCustomerReply: boolean;\n\trequiresHumanDecision: boolean;\n\tissueClassProbePlanReady: boolean;\n\tpreflightReady: boolean;\n\tpreflightStatus: ResolveIOSupportPreflightGateStatus;\n\tpreflightFailureClass: 'infra' | 'compile' | 'unknown';\n\treason: string;\n\tblockers: string[];\n\townerFiles: string[];\n\tissueClass?: ResolveIOSupportIssueClass;\n\texpectedProof?: string;\n\tproofMatrix?: ResolveIOSupportDiagnosisProofMatrix;\n\townerScopedRepairContract?: ResolveIOSupportOwnerScopedRepairContract;\n\tissueClassProbes?: ResolveIOSupportIssueClassProbe[];\n\tissueClassProbePlan?: ResolveIOSupportIssueClassProbePlan;\n\tbusinessProofStatus?: ResolveIOSupportBusinessProofReadiness['status'];\n\tproofFingerprint?: string;\n\tartifactFingerprint?: string;\n\tproofFreshness?: ResolveIOSupportBusinessProofReadiness['proofFreshness'];\n\tpreflightGate?: ResolveIOSupportPreflightGate;\n}\n\nexport type ResolveIOSupportNextActionCostRisk =\n\t| 'free_or_deterministic'\n\t| 'small_model_or_qa'\n\t| 'expensive_model'\n\t| 'release_or_customer_send'\n\t| 'manual_blocked';\n\nexport interface ResolveIOSupportNextActionContract {\n\tcontractId: string;\n\taction: ResolveIOSupportV5AutonomousNextAction;\n\tlabel: string;\n\tprimaryCommand: string;\n\tlane: ResolveIOSupportV5Lane | 'release' | 'customer' | 'supervisor';\n\tstepType: ResolveIOSupportV5StepType | 'release_gate' | 'customer_reply';\n\tsafeToAutoRun: boolean;\n\trequiresHumanApproval: boolean;\n\tcanRunWithoutCodexMonitor: boolean;\n\tcodexFallbackRequired: boolean;\n\tcodexFallbackReason: string;\n\tcostRisk: ResolveIOSupportNextActionCostRisk;\n\trootCauseFirstSatisfied: boolean;\n\tdecisionBasis: {\n\t\tdiagnosisValid: boolean;\n\t\townerFilesReady: boolean;\n\t\tproofPlanReady: boolean;\n\t\tproofMatrixReady: boolean;\n\t\tproofMatrixId?: string;\n\t\townerScopedRepairContractReady: boolean;\n\t\townerScopedRepairContractId?: string;\n\t\tbusinessProofReady: boolean;\n\t\tevidenceFreshnessStatus: ResolveIOSupportEvidenceFreshnessStatus;\n\t\tevidenceStrength: ResolveIOAIManagerEvidenceStrength;\n\t\tfailureClass: string;\n\t\tblockerFingerprint: string;\n\t\tevidenceHash: string;\n\t\tsameFailureCount: number;\n\t\tissueClassProbePlanReady: boolean;\n\t\tpreflightReady: boolean;\n\t\tpreflightStatus: ResolveIOSupportPreflightGateStatus;\n\t\tpreflightFailureClass: 'infra' | 'compile' | 'unknown';\n\t\tpreflightEvidenceHash: string;\n\t\thotfixCommitRequired: boolean;\n\t\tliveHotfixBlockedUntilCommit: boolean;\n\t\tevidenceProbeContractReady?: boolean;\n\t\tevidenceProbeContractId?: string;\n\t\tautonomyMode?: ResolveIOAIManagerAutonomyPolicyDecision['mode'];\n\t\tautonomyCanAutoDispatch?: boolean;\n\t\tautonomyReason?: string;\n\t\tautonomyExpectedValueScore?: number;\n\t\tautonomyExpectedValuePositive?: boolean;\n\t\tautonomyProjectedSpendUsd?: number;\n\t\tautonomyApprovalRequired?: boolean;\n\t\tautonomyApprovalApproved?: boolean;\n\t\tautonomyApprovalBoundaryValid?: boolean;\n\t\tautonomyApprovalDecisionKind?: string;\n\t\tautonomyApprovalAction?: string;\n\t\tapprovedScopeHours?: number;\n\t\tmaxAutoHoursWithoutApproval?: number;\n\t\toverMaxAutoHours?: boolean;\n\t\tbugNotBug?: string;\n\t\tbugNotBugClassificationApproved?: boolean;\n\t\tscopeFingerprint?: string;\n\t\tscopeChangedSinceApproval?: boolean;\n\t\townerFileFingerprint?: string;\n\t\tapprovedOwnerFileFingerprint?: string;\n\t\townerFilesChangedSinceApproval?: boolean;\n\t\townerFilesAddedSinceApproval?: string[];\n\t\townerFilesRemovedSinceApproval?: string[];\n\t\tdiagnosisScopeFingerprint?: string;\n\t\tpreviousDiagnosisScopeFingerprint?: string;\n\t\tdiagnosisScopeIncluded?: boolean;\n\t\tdiagnosisScopeValid?: boolean;\n\t\tdiagnosisScopeChangedSinceApproval?: boolean;\n\t\tdiagnosisScopeFields?: string[];\n\t\tdiagnosisScopeBlockers?: string[];\n\t\trequiresOperatorApprovalForAnyScopeChange?: boolean;\n\t\tleSixHourScopeCanAutofixAfterApproval?: boolean;\n\t\tonTheFlyScopeChangeApprovalRequired?: boolean;\n\t\tafterApprovalAutopilotUntilAGrade?: boolean;\n\t\tautopilotCompletionStatus?: string;\n\t\tautopilotCompletionPhase?: string;\n\t\tautopilotCompletionNextAction?: string;\n\t\tautopilotCompletionReady?: boolean;\n\t};\n\tpreconditions: string[];\n\texpectedStateTransition: string;\n\tsuccessEvidence: string[];\n\tstopConditions: string[];\n\tforbiddenActions: string[];\n\townerFiles: string[];\n\tblockers: string[];\n\tnextCommands: string[];\n\tcreatedAt: string;\n}\n\nexport type ResolveIOSupportNextActionContractValidationStatus =\n\t| 'ready'\n\t| 'manual_required'\n\t| 'blocked';\n\nexport interface ResolveIOSupportNextActionContractValidation {\n\tvalid: boolean;\n\tstatus: ResolveIOSupportNextActionContractValidationStatus;\n\tblockers: string[];\n\twarnings: string[];\n\tnormalized?: ResolveIOSupportNextActionContract;\n}\n\nexport type ResolveIOSupportManagerExecutionPacketStatus =\n\t| 'auto_ready'\n\t| 'manual_required'\n\t| 'blocked';\n\nexport type ResolveIOSupportManagerExecutionRetryScope =\n\t| 'none'\n\t| 'diagnosis_only'\n\t| 'infra_only'\n\t| 'owner_files_only'\n\t| 'business_proof_only'\n\t| 'pr_packaging_only'\n\t| 'pr_review_only'\n\t| 'release_hotfix_only'\n\t| 'customer_draft_only'\n\t| 'evidence_only';\n\nexport interface ResolveIOSupportProofResetContract {\n\tcontractId: string;\n\tstatus: 'ready' | 'manual_required' | 'blocked';\n\taction: ResolveIOSupportV5AutonomousNextAction;\n\tretryScope: ResolveIOSupportManagerExecutionRetryScope;\n\tmaxAttemptsBeforeFreshEvidence: number;\n\tstartingFailureClass: string;\n\tstartingBlockerFingerprint: string;\n\tstartingEvidenceHash: string;\n\trequiredResetEvidence: string[];\n\tproofRequiredBeforeContinuation: string[];\n\tstopConditions: string[];\n\tcanRunWithoutCodexMonitor: boolean;\n\tsourceNextActionContractId: string;\n\tcreatedAt: string;\n}\n\nexport interface ResolveIOSupportManagerExecutionPacket {\n\tpacketId: string;\n\tstatus: ResolveIOSupportManagerExecutionPacketStatus;\n\taction: ResolveIOSupportV5AutonomousNextAction;\n\tlabel: string;\n\tprimaryCommand: string;\n\tlane: ResolveIOSupportV5Lane | 'release' | 'customer' | 'supervisor';\n\tstepType: ResolveIOSupportV5StepType | 'release_gate' | 'customer_reply';\n\texecuteNow: boolean;\n\tcanRunWithoutCodexMonitor: boolean;\n\tcodexFallbackRequired: boolean;\n\tretryScope: ResolveIOSupportManagerExecutionRetryScope;\n\tmaxAttemptsBeforeFreshEvidence: number;\n\tcostRisk: ResolveIOSupportNextActionCostRisk;\n\tproofRequiredBeforeContinuation: string[];\n\texpectedStateTransition: string;\n\tstopConditions: string[];\n\tforbiddenActions: string[];\n\townerFiles: string[];\n\tnextCommands: string[];\n\tproofResetContract: ResolveIOSupportProofResetContract;\n\tblockers: string[];\n\tvalidation: ResolveIOSupportNextActionContractValidation;\n\tcreatedAt: string;\n}\n\nexport interface ResolveIOSupportV5AutonomousDecisionInput {\n\tbundle: ResolveIOSupportV5StateBundle;\n\tchangedFiles?: any;\n\tfailureClass?: ResolveIOSupportV5FailureClass | string;\n\tblocker?: any;\n\tevidence?: any;\n\tevidenceHash?: string;\n\toutcomeLabel?: string;\n\tconfidence?: any;\n\tbusinessAssertionStatus?: string;\n\tbusinessAssertions?: any[];\n\tbusinessProofArtifacts?: any[];\n\tartifactPaths?: any;\n\tpreviousProofFingerprint?: string;\n\tpreviousArtifactFingerprint?: string;\n\tunresolvedBlockers?: any[];\n\treleaseStatus?: string;\n\thotfixEvidence?: any;\n\treleasePolicy?: ResolveIOAIManagerHotfixFirstReleasePolicy;\n\treleaseGatePassed?: boolean;\n\tprReadinessContract?: any;\n\tprReviewContract?: any;\n\tpreflightGate?: ResolveIOSupportPreflightGateInput | ResolveIOSupportPreflightGate;\n\tautonomyApproval?: any;\n\tproductRepairDispatchGuard?: any;\n\trequireAutonomyApprovalForProductRepair?: boolean;\n\tautonomyPolicy?: ResolveIOAIManagerAutonomyPolicyInput;\n\toperatorApproved?: boolean;\n\tmaxOwnerFiles?: number;\n\tnow?: Date | string;\n}\n\nexport interface ResolveIOSupportAutonomyApprovalContract {\n\tcontractId: string;\n\tstatus: 'approved_autopilot' | 'approval_required' | 'missing';\n\tapproved: boolean;\n\tapprovedAt?: string;\n\tapprovedBy?: string;\n\tdecisionKind: string;\n\tapprovalAction: string;\n\tpreferredChoiceId: string;\n\tcanApproveFromConsole: boolean;\n\testimatedHours?: number;\n\testimatedHoursKnown: boolean;\n\tmaxAutoHoursWithoutApproval: number;\n\toverMaxAutoHours: boolean;\n\texplicitOverLimitApproval: boolean;\n\tbugNotBug: string;\n\tbugNotBugKnown: boolean;\n\tbugNotBugClassificationApproved: boolean;\n\trequiresOverLimitApproval: boolean;\n\trequiresScopeReapproval: boolean;\n\trequiresOwnerFileReapproval: boolean;\n\trequiresIntakeReapproval: boolean;\n\trequiresDiagnosisScopeReapproval: boolean;\n\trequiresClassificationApproval: boolean;\n\trequiresEstimateHours: boolean;\n\tchangeApprovalMode: string;\n\tafterApprovalAutopilotUntilAGrade: boolean;\n\ttargetGrade: string;\n\tterminalTarget: string;\n\tqaScreenshotsRequired: boolean;\n\tbeforeActionAfterBusinessProofRequired: boolean;\n\taiqaBusinessAssertionRequired: boolean;\n\townerFiles: string[];\n\tapprovedOwnerFiles: string[];\n\tcurrentOwnerFiles: string[];\n\tscopeFingerprint: string;\n\tpreviousScopeFingerprint: string;\n\tscopeChangedSinceApproval: boolean;\n\townerFileFingerprint: string;\n\tapprovedOwnerFileFingerprint: string;\n\townerFilesChangedSinceApproval: boolean;\n\townerFilesAddedSinceApproval: string[];\n\townerFilesRemovedSinceApproval: string[];\n\tdiagnosisScopeFingerprint: string;\n\tpreviousDiagnosisScopeFingerprint: string;\n\tdiagnosisScopeIncluded: boolean;\n\tdiagnosisScopeValid: boolean;\n\tdiagnosisScopeChangedSinceApproval: boolean;\n\tdiagnosisScopeFields: string[];\n\tdiagnosisScopeBlockers: string[];\n\trequiresOperatorApprovalForAnyScopeChange: boolean;\n\tleSixHourScopeCanAutofixAfterApproval: boolean;\n\tonTheFlyScopeChangeApprovalRequired: boolean;\n\trequiredCompletionEvidence: string[];\n\tforbiddenWithoutReapproval: string[];\n\tallowedAutoActions: string[];\n\tblockers: string[];\n\tautopilotApprovalBoundaryValid: boolean;\n}\n\nexport interface ResolveIOSupportProductRepairDispatchGuard {\n\tguard: 'support_autonomy_product_repair_dispatch_guard';\n\tstatus: 'allowed' | 'blocked';\n\tallowed: boolean;\n\taction: ResolveIOSupportV5AutonomousNextAction | string;\n\teditsProductCode: boolean;\n\tcanEditProductCode: boolean;\n\tautoContinueAfterApproval: boolean;\n\tnextAction: string;\n\treason: string;\n\tapprovalContractId: string;\n\tcontinuationContractMode: string;\n\tterminalTarget: string;\n\tnextProofPhases: string[];\n\tallowedAutoActions: string[];\n\tforbiddenActions: string[];\n\townerFiles: string[];\n\tapprovedOwnerFiles: string[];\n\tcurrentOwnerFiles: string[];\n\tscopeFingerprint: string;\n\townerFileFingerprint: string;\n\tapprovedOwnerFileFingerprint: string;\n\townerFilesChangedSinceApproval: boolean;\n\townerFilesAddedSinceApproval: string[];\n\townerFilesRemovedSinceApproval: string[];\n\trequiresOverLimitApproval: boolean;\n\trequiresScopeReapproval: boolean;\n\trequiresOwnerFileReapproval: boolean;\n\trequiresDiagnosisScopeReapproval: boolean;\n\trequiredCompletionEvidence: string[];\n\tblockers: string[];\n}\n\nexport type ResolveIOSupportAutopilotCompletionPhase =\n\t| 'not_required'\n\t| 'approval_required'\n\t| 'diagnosis'\n\t| 'preflight'\n\t| 'repair'\n\t| 'business_proof'\n\t| 'pr_packaging'\n\t| 'pr_review'\n\t| 'park_before_merge_release_customer';\n\nexport type ResolveIOSupportAutopilotCompletionStatus =\n\t| 'not_required'\n\t| 'blocked'\n\t| 'in_progress'\n\t| 'ready_for_pr'\n\t| 'complete';\n\nexport type ResolveIOSupportAutopilotCompletionNextAction =\n\t| ResolveIOSupportV5AutonomousNextAction\n\t| 'approve_support_autonomy'\n\t| 'approve_support_autonomy_over_limit'\n\t| 'create_pr'\n\t| 'run_a_grade_pr_review'\n\t| 'park_before_merge_release_or_customer_send';\n\nexport interface ResolveIOSupportAutopilotCompletionProgress {\n\tcontractId: string;\n\tmode: 'approved_scope_to_a_grade_pr';\n\tstatus: ResolveIOSupportAutopilotCompletionStatus;\n\tactivePhase: ResolveIOSupportAutopilotCompletionPhase;\n\tnextAction: ResolveIOSupportAutopilotCompletionNextAction;\n\tnextCommand: string;\n\treason: string;\n\tapproved: boolean;\n\tapprovalBoundaryValid: boolean;\n\tapprovalContractId: string;\n\ttargetGrade: string;\n\tterminalTarget: string;\n\tbusinessProofReady: boolean;\n\thasScreenshotOrTrace: boolean;\n\tchangedFilesReady: boolean;\n\tprReadinessReady: boolean;\n\tprReviewReady: boolean;\n\tprReviewStatus: string;\n\tprReviewContractId: string;\n\tprReviewStrictGatePassed: boolean;\n\tprReviewStrictGateReason: string;\n\tprReviewExecutionGrade: string;\n\tprReviewArtifactsGrade: string;\n\tprReviewPullRequestGrade: string;\n\tpullRequestUrl: string;\n\tpullRequestStatus: string;\n\tcanContinueWithoutCodexMonitor: boolean;\n\tcanAutoDispatchNext: boolean;\n\trequiresHumanApproval: boolean;\n\tcompletedEvidence: string[];\n\tmissingEvidence: string[];\n\trequiredEvidence: string[];\n\tforbiddenActions: string[];\n\tblockers: string[];\n\tcreatedAt: string;\n}\n\nexport interface ResolveIOSupportV5AutonomousDecision {\n\taction: ResolveIOSupportV5AutonomousNextAction;\n\tlabel: string;\n\treason: string;\n\tcanRunAutonomously: boolean;\n\tcanEditProductCode: boolean;\n\tcanRunModel: boolean;\n\tcanRunQa: boolean;\n\tcanPrepareHotfixPatch: boolean;\n\tcanHotfixBackend: boolean;\n\tliveHotfixBlockedUntilCommit: boolean;\n\tcanDraftCustomerReply: boolean;\n\tcanSendCustomerReply: boolean;\n\tlane: ResolveIOSupportV5Lane | 'release' | 'customer' | 'supervisor';\n\tstepType: ResolveIOSupportV5StepType | 'release_gate' | 'customer_reply';\n\tmicrotaskId?: string;\n\tprimaryCommand: string;\n\tnextCommands: string[];\n\trequiredEvidence: string[];\n\tforbiddenActions: string[];\n\tblockers: string[];\n\townerFiles: string[];\n\tissueClass?: ResolveIOSupportIssueClass;\n\texpectedProof?: string;\n\tissueClassProbes: ResolveIOSupportIssueClassProbe[];\n\tissueClassProbePlan?: ResolveIOSupportIssueClassProbePlan;\n\tissueClassProbePlanValidation: ResolveIOSupportIssueClassProbePlanValidation;\n\tactiveMicrotask?: ResolveIOSupportV5Microtask;\n\tdiagnosisValidation: ResolveIOSupportDiagnosisGateValidation;\n\trepairGate: ResolveIOSupportV5RepairGateDecision;\n\tcontinuation: ResolveIOSupportV5ContinuationDecision;\n\tcustomerReplyPolicy: ResolveIOSupportCustomerReplyPolicy;\n\tcustomerReplyReadiness: ResolveIOSupportCustomerReplyReadinessContract;\n\tbusinessProofReadiness: ResolveIOSupportBusinessProofReadiness;\n\tevidenceFreshness: ResolveIOSupportEvidenceFreshness;\n\tpreflightGate: ResolveIOSupportPreflightGate;\n\trootCauseReadiness: ResolveIOSupportRootCauseReadiness;\n\tcontinuationProofCheckpoint: ResolveIOSupportContinuationProofCheckpoint;\n\tnextActionContract: ResolveIOSupportNextActionContract;\n\tmanagerExecutionPacket: ResolveIOSupportManagerExecutionPacket;\n\thumanReviewPacket: ResolveIOSupportHumanReviewPacket;\n\thumanDecisionRequest?: ResolveIOSupportHumanDecisionRequest;\n\tevidenceProbeContract?: ResolveIOSupportEvidenceProbeContract;\n\tautonomyApproval?: ResolveIOSupportAutonomyApprovalContract;\n\tproductRepairDispatchGuard?: ResolveIOSupportProductRepairDispatchGuard;\n\tautopilotCompletionProgress?: ResolveIOSupportAutopilotCompletionProgress;\n\tautonomyPolicy?: ResolveIOAIManagerAutonomyPolicyDecision;\n\thotfixContinuation?: ResolveIOAIManagerHotfixContinuationDecision;\n\thotfixDurabilityContract?: ResolveIOAIManagerHotfixDurabilityContract;\n\trecordedAt: string;\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 cleanText(value: any, max = 2000): string {\n\tif (value === undefined || value === null) {\n\t\treturn '';\n\t}\n\tif (Array.isArray(value)) {\n\t\treturn value\n\t\t\t.map((entry) => cleanListEntryText(entry, max))\n\t\t\t.filter(Boolean)\n\t\t\t.join(' ')\n\t\t\t.replace(/\\s+/g, ' ')\n\t\t\t.trim()\n\t\t\t.slice(0, max);\n\t}\n\tif (typeof value === 'object') {\n\t\tif (value instanceof Date) {\n\t\t\treturn value.toISOString().slice(0, max);\n\t\t}\n\t\treturn '';\n\t}\n\treturn String(value || '').replace(/\\s+/g, ' ').trim().slice(0, max);\n}\n\nfunction cleanListEntryText(value: any, max = 500): string {\n\tif (value && typeof value === 'object' && !Array.isArray(value)) {\n\t\tconst source = value as Record<string, any>;\n\t\tconst hypothesis = cleanListEntryText(source.hypothesis, Math.floor(max / 2));\n\t\tconst whyRejected = cleanListEntryText(source.why_rejected || source.whyRejected || source.reason_rejected || source.reasonRejected || source.rejection_reason || source.rejectionReason || source.reason, Math.floor(max / 2));\n\t\tif (hypothesis && whyRejected) {\n\t\t\treturn `${hypothesis} rejected because ${whyRejected}`.slice(0, max);\n\t\t}\n\t\tfor (const field of [\n\t\t\t'path',\n\t\t\t'file',\n\t\t\t'filePath',\n\t\t\t'file_path',\n\t\t\t'ownerFile',\n\t\t\t'owner_file',\n\t\t\t'targetFile',\n\t\t\t'target_file',\n\t\t\t'sourceFile',\n\t\t\t'source_file',\n\t\t\t'artifactPath',\n\t\t\t'artifact_path',\n\t\t\t'request_classification',\n\t\t\t'requestClassification',\n\t\t\t'classification_rationale',\n\t\t\t'classificationRationale',\n\t\t\t'behavior_type',\n\t\t\t'behaviorType',\n\t\t\t'summary',\n\t\t\t'detail',\n\t\t\t'message',\n\t\t\t'description',\n\t\t\t'rationale',\n\t\t\t'proof_required',\n\t\t\t'proofRequired',\n\t\t\t'reported',\n\t\t\t'verified',\n\t\t\t'reported_path',\n\t\t\t'reportedPath',\n\t\t\t'verified_path',\n\t\t\t'verifiedPath',\n\t\t\t'rejection_reason',\n\t\t\t'rejectionReason',\n\t\t\t'reason',\n\t\t\t'fact',\n\t\t\t'value',\n\t\t\t'label',\n\t\t\t'id'\n\t\t]) {\n\t\t\tconst candidate = cleanListEntryText(source[field], max);\n\t\t\tif (candidate) {\n\t\t\t\treturn candidate;\n\t\t\t}\n\t\t}\n\t\treturn '';\n\t}\n\treturn cleanText(value, max);\n}\n\nfunction cleanList(values: any, limit = 20, 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 = cleanListEntryText(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 cleanObject(value: any): Record<string, any> {\n\treturn value && typeof value === 'object' && !Array.isArray(value) ? value : {};\n}\n\nfunction cleanNumber(value: any): number | undefined {\n\tconst parsed = Number(value);\n\treturn Number.isFinite(parsed) ? parsed : undefined;\n}\n\nfunction supportApprovalExplicitlyApprovesOverLimit(value: Record<string, any>): boolean {\n\treturn value.approve_over_max_hours === true\n\t\t|| value.approveOverMaxHours === true\n\t\t|| value.approve_over_six_hours === true\n\t\t|| value.approveOverSixHours === true\n\t\t|| value.over_limit_approved === true\n\t\t|| value.overLimitApproved === true\n\t\t|| value.over_max_auto_hours_approved === true\n\t\t|| value.overMaxAutoHoursApproved === true\n\t\t|| value.operator_approved_over_limit === true\n\t\t|| value.operatorApprovedOverLimit === true;\n}\n\nfunction normalizeResolveIOSupportAutonomyApprovalContract(\n\tvalue: any,\n\toptions: {\n\t\trequired?: boolean;\n\t\taction?: ResolveIOSupportV5AutonomousNextAction | string;\n\t\townerFiles?: any;\n\t\tnow?: Date | string;\n\t} = {}\n): ResolveIOSupportAutonomyApprovalContract | undefined {\n\tconst source = cleanObject(value);\n\tconst required = options.required === true;\n\tif (!Object.keys(source).length && !required) {\n\t\treturn undefined;\n\t}\n\tconst ownerFiles = cleanList(source.owner_files || source.ownerFiles || options.ownerFiles, 80, 500)\n\t\t.map(normalizeOwnerFilePath)\n\t\t.filter(Boolean);\n\tconst approvedOwnerFiles = cleanList(source.approved_owner_files || source.approvedOwnerFiles || ownerFiles, 80, 500)\n\t\t.map(normalizeOwnerFilePath)\n\t\t.filter(Boolean);\n\tconst currentOwnerFiles = cleanList(source.current_owner_files || source.currentOwnerFiles || ownerFiles, 80, 500)\n\t\t.map(normalizeOwnerFilePath)\n\t\t.filter(Boolean);\n\tconst ownerFileFingerprint = cleanText(\n\t\tsource.owner_file_fingerprint\n\t\t|| source.ownerFileFingerprint\n\t\t|| (currentOwnerFiles.length ? hashResolveIOSupportV5Evidence({ ownerFiles: currentOwnerFiles.slice().sort() }).slice(0, 18) : ''),\n\t\t180\n\t);\n\tconst approvedOwnerFileFingerprint = cleanText(\n\t\tsource.approved_owner_file_fingerprint\n\t\t|| source.approvedOwnerFileFingerprint\n\t\t|| (approvedOwnerFiles.length ? hashResolveIOSupportV5Evidence({ ownerFiles: approvedOwnerFiles.slice().sort() }).slice(0, 18) : ''),\n\t\t180\n\t);\n\tconst currentOwnerFileSet = new Set(currentOwnerFiles);\n\tconst approvedOwnerFileSet = new Set(approvedOwnerFiles);\n\tconst ownerFilesAddedSinceApproval = cleanList(source.owner_files_added_since_approval || source.ownerFilesAddedSinceApproval, 80, 500)\n\t\t.map(normalizeOwnerFilePath)\n\t\t.filter(Boolean);\n\tconst ownerFilesRemovedSinceApproval = cleanList(source.owner_files_removed_since_approval || source.ownerFilesRemovedSinceApproval, 80, 500)\n\t\t.map(normalizeOwnerFilePath)\n\t\t.filter(Boolean);\n\tconst computedOwnerFilesAdded = currentOwnerFiles.filter((entry) => !approvedOwnerFileSet.has(entry));\n\tconst computedOwnerFilesRemoved = approvedOwnerFiles.filter((entry) => !currentOwnerFileSet.has(entry));\n\tconst ownerFilesChangedSinceApproval = source.owner_files_changed_since_approval === true\n\t\t|| source.ownerFilesChangedSinceApproval === true\n\t\t|| computedOwnerFilesAdded.length > 0\n\t\t|| computedOwnerFilesRemoved.length > 0\n\t\t|| (!!ownerFileFingerprint && !!approvedOwnerFileFingerprint && ownerFileFingerprint !== approvedOwnerFileFingerprint);\n\tconst scopeFingerprint = cleanText(source.scope_fingerprint || source.scopeFingerprint, 180);\n\tconst previousScopeFingerprint = cleanText(source.previous_scope_fingerprint || source.previousScopeFingerprint, 180);\n\tconst diagnosisScopeFingerprint = cleanText(source.diagnosis_scope_fingerprint || source.diagnosisScopeFingerprint, 180);\n\tconst previousDiagnosisScopeFingerprint = cleanText(source.previous_diagnosis_scope_fingerprint || source.previousDiagnosisScopeFingerprint, 180);\n\tconst diagnosisScopeChangedSinceApproval = source.diagnosis_scope_changed_since_approval === true\n\t\t|| source.diagnosisScopeChangedSinceApproval === true\n\t\t|| (!!diagnosisScopeFingerprint && !!previousDiagnosisScopeFingerprint && diagnosisScopeFingerprint !== previousDiagnosisScopeFingerprint);\n\tconst aggregateScopeFingerprintChanged = source.scope_changed_since_approval === true\n\t\t|| source.scopeChangedSinceApproval === true\n\t\t|| (!!scopeFingerprint && !!previousScopeFingerprint && scopeFingerprint !== previousScopeFingerprint);\n\tconst explicitScopeReapprovalRequired = source.requires_scope_reapproval === true || source.requiresScopeReapproval === true;\n\tconst intakeChangedSinceApproval = source.intake_edited_after_approval === true || source.intakeEditedAfterApproval === true;\n\tconst scopeChangedSinceApproval = explicitScopeReapprovalRequired\n\t\t|| (aggregateScopeFingerprintChanged && (ownerFilesChangedSinceApproval || diagnosisScopeChangedSinceApproval || intakeChangedSinceApproval));\n\tconst onTheFlyScopeChangeApprovalRequired = source.on_the_fly_scope_change_approval_required === true\n\t\t|| source.onTheFlyScopeChangeApprovalRequired === true\n\t\t|| scopeChangedSinceApproval\n\t\t|| ownerFilesChangedSinceApproval\n\t\t|| diagnosisScopeChangedSinceApproval;\n\tconst estimatedHours = cleanNumber(source.estimated_hours ?? source.estimatedHours);\n\tconst maxAutoHoursWithoutApproval = cleanNumber(source.max_auto_hours_without_approval ?? source.maxAutoHoursWithoutApproval) || 6;\n\tconst overMaxAutoHours = source.over_max_auto_hours === true\n\t\t|| source.overMaxAutoHours === true\n\t\t|| (estimatedHours !== undefined && estimatedHours > maxAutoHoursWithoutApproval);\n\tconst explicitOverLimitApproval = supportApprovalExplicitlyApprovesOverLimit(source);\n\tconst bugNotBug = cleanText(source.bug_not_bug || source.bugNotBug, 80);\n\tconst bugNotBugKnown = source.bug_not_bug_known === true\n\t\t|| source.bugNotBugKnown === true\n\t\t|| bugNotBug === 'bug'\n\t\t|| bugNotBug === 'not_bug'\n\t\t|| bugNotBug === 'not bug';\n\tconst bugNotBugClassificationApproved = source.bug_not_bug_classification_approved === true\n\t\t|| source.bugNotBugClassificationApproved === true;\n\tconst afterApprovalAutopilotUntilAGrade = source.after_approval_autopilot_until_a_grade === true\n\t\t|| source.afterApprovalAutopilotUntilAGrade === true\n\t\t|| source.autopilot_after_approval_until_a_grade === true\n\t\t|| source.autopilotAfterApprovalUntilAGrade === true;\n\tconst completionContract = cleanObject(source.autopilot_completion_contract || source.autopilotCompletionContract);\n\tconst approved = source.approved === true;\n\tconst blockers = Array.from(new Set([\n\t\t...cleanList(source.blockers, 40, 500),\n\t\t...(!Object.keys(source).length && required ? ['Support autonomy approval is required before product-code repair.'] : []),\n\t\t...(source.requires_over_limit_approval === true || source.requiresOverLimitApproval === true ? ['Estimated work is over the automatic hour ceiling and requires operator approval.'] : []),\n\t\t...(explicitScopeReapprovalRequired || scopeChangedSinceApproval ? ['The approved support scope changed and requires on-the-fly reapproval.'] : []),\n\t\t...(source.requires_owner_file_reapproval === true || source.requiresOwnerFileReapproval === true || ownerFilesChangedSinceApproval ? ['The owner-file set changed after approval and requires reapproval.'] : []),\n\t\t...(source.requires_intake_reapproval === true || source.requiresIntakeReapproval === true ? ['The support intake/classification changed after approval and requires reapproval.'] : []),\n\t\t...(source.requires_diagnosis_scope_reapproval === true || source.requiresDiagnosisScopeReapproval === true || diagnosisScopeChangedSinceApproval ? ['The accepted diagnosis/proof scope changed after approval and requires reapproval.'] : []),\n\t\t...(source.requires_classification_approval === true || source.requiresClassificationApproval === true ? ['Bug/not-bug classification must be approved before product-code repair.'] : []),\n\t\t...(source.requires_estimate_hours === true || source.requiresEstimateHours === true ? ['Estimated hours must be recorded before product-code repair.'] : []),\n\t\t...(approved && bugNotBugKnown !== true ? ['Bug/not-bug classification must be set before approved support autopilot can repair product code.'] : []),\n\t\t...(approved && bugNotBugClassificationApproved !== true ? ['Bug/not-bug classification must be approved before approved support autopilot can repair product code.'] : []),\n\t\t...(approved && estimatedHours === undefined ? ['Estimated hours must be recorded before approved support autopilot can repair product code.'] : []),\n\t\t...(approved && overMaxAutoHours && explicitOverLimitApproval !== true ? [`Estimated work is ${estimatedHours} hours, above the ${maxAutoHoursWithoutApproval}-hour autonomy ceiling, and needs explicit over-limit operator approval.`] : [])\n\t])).slice(0, 40);\n\tconst status: ResolveIOSupportAutonomyApprovalContract['status'] = approved && blockers.length === 0\n\t\t? 'approved_autopilot'\n\t\t: Object.keys(source).length ? 'approval_required' : 'missing';\n\tconst decisionKind = cleanText(source.decision_kind || source.decisionKind || source.approval_kind || source.approvalKind, 120)\n\t\t|| (status === 'approved_autopilot'\n\t\t\t? 'approved_autopilot'\n\t\t\t: overMaxAutoHours && explicitOverLimitApproval !== true\n\t\t\t\t? 'over_limit_approval_required'\n\t\t\t\t: bugNotBugClassificationApproved !== true\n\t\t\t\t\t? 'classification_approval_required'\n\t\t\t\t\t: 'operator_approval_required');\n\tconst approvalAction = cleanText(source.approval_action || source.approvalAction, 120)\n\t\t|| (decisionKind === 'over_limit_approval_required' ? 'approve_support_autonomy_over_limit' : 'approve_support_autonomy');\n\treturn {\n\t\tcontractId: cleanText(source.contract_id || source.contractId, 180)\n\t\t\t|| stableIdFromText('support-autonomy-approval', [\n\t\t\t\tdecisionKind,\n\t\t\t\townerFiles.join('|'),\n\t\t\t\tString(estimatedHours ?? ''),\n\t\t\t\tisoNow(options.now).slice(0, 16)\n\t\t\t].join('\\n')),\n\t\tstatus,\n\t\tapproved: status === 'approved_autopilot',\n\t\tapprovedAt: cleanText(source.approved_at || source.approvedAt, 80) || undefined,\n\t\tapprovedBy: cleanText(source.approved_by || source.approvedBy, 160) || undefined,\n\t\tdecisionKind,\n\t\tapprovalAction,\n\t\tpreferredChoiceId: cleanText(source.preferred_choice_id || source.preferredChoiceId, 120)\n\t\t\t|| (approvalAction === 'approve_support_autonomy_over_limit' ? 'approve_over_limit_autonomy' : 'approve_auto_fix_le_6h_bug'),\n\t\tcanApproveFromConsole: source.can_approve_from_console !== false && source.canApproveFromConsole !== false,\n\t\testimatedHours,\n\t\testimatedHoursKnown: estimatedHours !== undefined || source.estimated_hours_known === true || source.estimatedHoursKnown === true,\n\t\tmaxAutoHoursWithoutApproval,\n\t\toverMaxAutoHours,\n\t\texplicitOverLimitApproval,\n\t\tbugNotBug,\n\t\tbugNotBugKnown,\n\t\tbugNotBugClassificationApproved,\n\t\trequiresOverLimitApproval: source.requires_over_limit_approval === true || source.requiresOverLimitApproval === true || (overMaxAutoHours && explicitOverLimitApproval !== true),\n\t\trequiresScopeReapproval: explicitScopeReapprovalRequired || scopeChangedSinceApproval,\n\t\trequiresOwnerFileReapproval: source.requires_owner_file_reapproval === true || source.requiresOwnerFileReapproval === true || ownerFilesChangedSinceApproval,\n\t\trequiresIntakeReapproval: source.requires_intake_reapproval === true || source.requiresIntakeReapproval === true,\n\t\trequiresDiagnosisScopeReapproval: source.requires_diagnosis_scope_reapproval === true || source.requiresDiagnosisScopeReapproval === true || diagnosisScopeChangedSinceApproval,\n\t\trequiresClassificationApproval: source.requires_classification_approval === true || source.requiresClassificationApproval === true || bugNotBugClassificationApproved !== true,\n\t\trequiresEstimateHours: source.requires_estimate_hours === true || source.requiresEstimateHours === true || estimatedHours === undefined,\n\t\tchangeApprovalMode: cleanText(source.change_approval_mode || source.changeApprovalMode, 120) || 'on_the_fly_reapproval_required',\n\t\tafterApprovalAutopilotUntilAGrade,\n\t\ttargetGrade: cleanText(source.target_grade || source.targetGrade || completionContract.target_grade || completionContract.targetGrade || 'A', 20),\n\t\tterminalTarget: cleanText(\n\t\t\tsource.terminal_target\n\t\t\t|| source.terminalTarget\n\t\t\t|| completionContract.required_terminal_state\n\t\t\t|| completionContract.requiredTerminalState,\n\t\t\t800\n\t\t) || 'A-grade PR with QA screenshots, AIQaBusinessAssertion before/action/after proof, source commit proof, and changed files inside owner_files',\n\t\tqaScreenshotsRequired: source.qa_screenshots_required === true || source.qaScreenshotsRequired === true,\n\t\tbeforeActionAfterBusinessProofRequired: source.before_action_after_business_proof_required === true || source.beforeActionAfterBusinessProofRequired === true,\n\t\taiqaBusinessAssertionRequired: source.aiqa_business_assertion_required === true || source.aiqaBusinessAssertionRequired === true,\n\t\townerFiles,\n\t\tapprovedOwnerFiles,\n\t\tcurrentOwnerFiles,\n\t\tscopeFingerprint,\n\t\tpreviousScopeFingerprint,\n\t\tscopeChangedSinceApproval,\n\t\townerFileFingerprint,\n\t\tapprovedOwnerFileFingerprint,\n\t\townerFilesChangedSinceApproval,\n\t\townerFilesAddedSinceApproval: ownerFilesAddedSinceApproval.length ? ownerFilesAddedSinceApproval : computedOwnerFilesAdded,\n\t\townerFilesRemovedSinceApproval: ownerFilesRemovedSinceApproval.length ? ownerFilesRemovedSinceApproval : computedOwnerFilesRemoved,\n\t\tdiagnosisScopeFingerprint,\n\t\tpreviousDiagnosisScopeFingerprint,\n\t\tdiagnosisScopeIncluded: source.diagnosis_scope_included === true || source.diagnosisScopeIncluded === true || !!diagnosisScopeFingerprint,\n\t\tdiagnosisScopeValid: source.diagnosis_scope_valid === true || source.diagnosisScopeValid === true,\n\t\tdiagnosisScopeChangedSinceApproval,\n\t\tdiagnosisScopeFields: cleanList(source.diagnosis_scope_fields || source.diagnosisScopeFields, 40, 160),\n\t\tdiagnosisScopeBlockers: cleanList(source.diagnosis_scope_blockers || source.diagnosisScopeBlockers, 40, 500),\n\t\trequiresOperatorApprovalForAnyScopeChange: source.requires_operator_approval_for_any_scope_change !== false && source.requiresOperatorApprovalForAnyScopeChange !== false,\n\t\tleSixHourScopeCanAutofixAfterApproval: source.le_six_hour_scope_can_autofix_after_approval === true\n\t\t\t|| source.leSixHourScopeCanAutofixAfterApproval === true\n\t\t\t|| (status === 'approved_autopilot' && estimatedHours !== undefined && estimatedHours <= maxAutoHoursWithoutApproval),\n\t\tonTheFlyScopeChangeApprovalRequired,\n\t\trequiredCompletionEvidence: cleanList(source.required_completion_evidence || source.requiredCompletionEvidence || completionContract.required_evidence || completionContract.requiredEvidence, 40, 500),\n\t\tforbiddenWithoutReapproval: cleanList(source.forbidden_without_reapproval || source.forbiddenWithoutReapproval, 40, 500),\n\t\tallowedAutoActions: cleanList(source.allowed_auto_actions || source.allowedAutoActions, 40, 240),\n\t\tblockers,\n\t\tautopilotApprovalBoundaryValid: status === 'approved_autopilot'\n\t};\n}\n\nfunction buildResolveIOSupportProductRepairDispatchGuard(input: {\n\taction: ResolveIOSupportV5AutonomousNextAction | string;\n\tapproval?: ResolveIOSupportAutonomyApprovalContract;\n\teditsProductCode: boolean;\n\townerFiles?: any;\n\tnow?: Date | string;\n}): ResolveIOSupportProductRepairDispatchGuard | undefined {\n\tif (!input.approval && !input.editsProductCode) {\n\t\treturn undefined;\n\t}\n\tconst ownerFiles = cleanList(input.ownerFiles || input.approval?.ownerFiles, 80, 500)\n\t\t.map(normalizeOwnerFilePath)\n\t\t.filter(Boolean);\n\tconst approval = input.approval;\n\tconst allowed = input.editsProductCode ? approval?.autopilotApprovalBoundaryValid === true : true;\n\tconst nextAction = allowed\n\t\t? (input.editsProductCode ? 'run_targeted_product_repair' : 'continue_non_product_action')\n\t\t: approval?.approvalAction || 'approve_support_autonomy';\n\tconst terminalTarget = approval?.terminalTarget\n\t\t|| 'A-grade PR with QA screenshots, AIQaBusinessAssertion before/action/after proof, source commit proof, and changed files inside owner_files';\n\tconst requiredCompletionEvidence = approval?.requiredCompletionEvidence?.length\n\t\t? approval.requiredCompletionEvidence\n\t\t: [\n\t\t\t'A-grade execution/artifacts/pull_request review',\n\t\t\t'GitHub PR URL',\n\t\t\t'QA screenshots with captions',\n\t\t\t'AIQaBusinessAssertion before/action/after business proof',\n\t\t\t'changed files subset of approved owner_files'\n\t\t];\n\treturn {\n\t\tguard: 'support_autonomy_product_repair_dispatch_guard',\n\t\tstatus: allowed ? 'allowed' : 'blocked',\n\t\tallowed,\n\t\taction: input.action,\n\t\teditsProductCode: input.editsProductCode,\n\t\tcanEditProductCode: allowed && input.editsProductCode,\n\t\tautoContinueAfterApproval: allowed && input.editsProductCode,\n\t\tnextAction,\n\t\treason: allowed\n\t\t\t? 'Approved bounded support autonomy allows this product-code repair inside the current owner-file and diagnosis scope.'\n\t\t\t: approval?.blockers.join(' | ') || 'Support autonomy approval is required before product-code repair.',\n\t\tapprovalContractId: approval?.contractId || '',\n\t\tcontinuationContractMode: 'approved_scope_to_a_grade_pr',\n\t\tterminalTarget,\n\t\tnextProofPhases: [\n\t\t\t'confirm_support_diagnosis_gate',\n\t\t\t'run_owner_scoped_repair',\n\t\t\t'run_compile_preflight',\n\t\t\t'run_business_proof_qa_with_screenshots',\n\t\t\t'create_or_update_pr',\n\t\t\t'run_a_grade_review',\n\t\t\t'park_before_merge_release_or_customer_send'\n\t\t],\n\t\tallowedAutoActions: [\n\t\t\t'run_read_only_diagnosis',\n\t\t\t'run_owner_scoped_repair',\n\t\t\t'run_compile_preflight',\n\t\t\t'run_business_proof_qa',\n\t\t\t'create_or_update_pr',\n\t\t\t'auto_improve_until_a_grade'\n\t\t],\n\t\tforbiddenActions: approval?.forbiddenWithoutReapproval?.length ? approval.forbiddenWithoutReapproval : [\n\t\t\t'estimated_hours greater than max_auto_hours_without_approval',\n\t\t\t'bug/not-bug classification change',\n\t\t\t'owner_files expansion or edit outside SupportDiagnosisGate owner_files',\n\t\t\t'accepted_hypothesis, failing_path, issue_case, or proof_plan change',\n\t\t\t'customer success reply, merge, release, or deploy before AIQaBusinessAssertion proof'\n\t\t],\n\t\townerFiles,\n\t\tapprovedOwnerFiles: approval?.approvedOwnerFiles?.length ? approval.approvedOwnerFiles : ownerFiles,\n\t\tcurrentOwnerFiles: approval?.currentOwnerFiles?.length ? approval.currentOwnerFiles : ownerFiles,\n\t\tscopeFingerprint: approval?.scopeFingerprint || '',\n\t\townerFileFingerprint: approval?.ownerFileFingerprint || '',\n\t\tapprovedOwnerFileFingerprint: approval?.approvedOwnerFileFingerprint || '',\n\t\townerFilesChangedSinceApproval: approval?.ownerFilesChangedSinceApproval === true,\n\t\townerFilesAddedSinceApproval: approval?.ownerFilesAddedSinceApproval || [],\n\t\townerFilesRemovedSinceApproval: approval?.ownerFilesRemovedSinceApproval || [],\n\t\trequiresOverLimitApproval: approval?.requiresOverLimitApproval === true,\n\t\trequiresScopeReapproval: approval?.requiresScopeReapproval === true,\n\t\trequiresOwnerFileReapproval: approval?.requiresOwnerFileReapproval === true,\n\t\trequiresDiagnosisScopeReapproval: approval?.requiresDiagnosisScopeReapproval === true,\n\t\trequiredCompletionEvidence,\n\t\tblockers: approval?.blockers || []\n\t};\n}\n\nfunction supportAutopilotArtifactListHasScreenshotOrTrace(values: any): boolean {\n\treturn cleanList(values, 80, 500).some((entry) => {\n\t\tconst text = entry.toLowerCase();\n\t\treturn /screenshot|trace|video|har|browser-artifact|qa-artifact/.test(text)\n\t\t\t|| /\\.(png|jpe?g|webp|gif|zip|trace|har|webm|mp4)(\\?|#|$)/i.test(entry);\n\t});\n}\n\nfunction supportAutopilotGradeMeetsA(value: any): boolean {\n\treturn /^(A\\+|A|A-)$/i.test(cleanText(value, 20));\n}\n\nfunction normalizeSupportAutopilotPrReviewContract(value: any): {\n\tcontractId: string;\n\tstatus: string;\n\tready: boolean;\n\tstrictGatePassed: boolean;\n\tstrictGateReason: string;\n\texecutionGrade: string;\n\tartifactsGrade: string;\n\tpullRequestGrade: string;\n\tevidenceRefs: string[];\n\tblockers: string[];\n\tnextAction: string;\n\tfailureClass: string;\n\tblockerFingerprint: string;\n\tevidenceHash: string;\n\tcontinuationContract: Record<string, any>;\n} {\n\tconst contract = cleanObject(value);\n\tconst grades = cleanObject(contract.grades);\n\tconst executionGrade = cleanText(\n\t\tcontract.execution_grade\n\t\t|| contract.executionGrade\n\t\t|| grades.execution\n\t\t|| grades.execution_grade\n\t\t|| grades.executionGrade,\n\t\t20\n\t).toUpperCase();\n\tconst artifactsGrade = cleanText(\n\t\tcontract.artifacts_grade\n\t\t|| contract.artifactsGrade\n\t\t|| grades.artifacts\n\t\t|| grades.artifacts_grade\n\t\t|| grades.artifactsGrade,\n\t\t20\n\t).toUpperCase();\n\tconst pullRequestGrade = cleanText(\n\t\tcontract.pull_request_grade\n\t\t|| contract.pullRequestGrade\n\t\t|| grades.pull_request\n\t\t|| grades.pullRequest\n\t\t|| grades.pr\n\t\t|| grades.pr_grade,\n\t\t20\n\t).toUpperCase();\n\tconst strictGatePassed = contract.strict_gate_passed === true\n\t\t|| contract.strictGatePassed === true\n\t\t|| contract.passes_strict_gate === true\n\t\t|| contract.passesStrictGate === true;\n\tconst ready = contract.ready === true\n\t\t|| strictGatePassed === true\n\t\t|| (\n\t\t\tsupportAutopilotGradeMeetsA(executionGrade)\n\t\t\t&& supportAutopilotGradeMeetsA(artifactsGrade)\n\t\t\t&& supportAutopilotGradeMeetsA(pullRequestGrade)\n\t\t\t&& cleanText(contract.status, 120).toLowerCase() === 'passed'\n\t\t);\n\tconst status = cleanText(contract.status, 120)\n\t\t|| (ready ? 'passed' : Object.keys(contract).length ? 'blocked' : 'missing');\n\treturn {\n\t\tcontractId: cleanText(contract.contract_id || contract.contractId, 180),\n\t\tstatus,\n\t\tready,\n\t\tstrictGatePassed: ready && strictGatePassed !== false,\n\t\tstrictGateReason: cleanText(contract.strict_gate_reason || contract.strictGateReason || contract.reason, 500),\n\t\texecutionGrade,\n\t\tartifactsGrade,\n\t\tpullRequestGrade,\n\t\tevidenceRefs: cleanList(contract.evidence_refs || contract.evidenceRefs || contract.artifacts || contract.artifact_paths || contract.artifactPaths, 80, 500),\n\t\tblockers: cleanList(contract.blockers, 40, 500),\n\t\tnextAction: cleanText(contract.next_action || contract.nextAction || contract.continuation_contract?.action || contract.continuationContract?.action, 160),\n\t\tfailureClass: cleanText(contract.failure_class || contract.failureClass || contract.continuation_contract?.failure_class || contract.continuationContract?.failureClass, 120),\n\t\tblockerFingerprint: cleanText(contract.blocker_fingerprint || contract.blockerFingerprint || contract.continuation_contract?.blocker_fingerprint || contract.continuationContract?.blockerFingerprint, 180),\n\t\tevidenceHash: cleanText(contract.evidence_hash || contract.evidenceHash || contract.continuation_contract?.evidence_hash || contract.continuationContract?.evidenceHash, 180),\n\t\tcontinuationContract: cleanObject(contract.continuation_contract || contract.continuationContract)\n\t};\n}\n\nfunction buildResolveIOSupportAutopilotCompletionProgress(input: {\n\tapproval?: ResolveIOSupportAutonomyApprovalContract;\n\tproductRepairDispatchGuard?: ResolveIOSupportProductRepairDispatchGuard;\n\taction: ResolveIOSupportV5AutonomousNextAction;\n\tdiagnosisValid: boolean;\n\tpreflightGate: ResolveIOSupportPreflightGate;\n\tbusinessProofReadiness: ResolveIOSupportBusinessProofReadiness;\n\tbusinessProofArtifacts?: any;\n\tchangedFiles?: any;\n\tprReadinessContract?: any;\n\tprReviewContract?: any;\n\tnow?: Date | string;\n}): ResolveIOSupportAutopilotCompletionProgress | undefined {\n\tconst approval = input.approval;\n\tconst prReadinessContract = cleanObject(input.prReadinessContract);\n\tconst hasApprovalSource = !!approval || Object.keys(prReadinessContract).length > 0;\n\tif (!hasApprovalSource) {\n\t\treturn undefined;\n\t}\n\tconst createdAt = isoNow(input.now);\n\tconst prStatus = cleanText(prReadinessContract.status, 120).toLowerCase();\n\tconst prReady = prReadinessContract.ready === true || prStatus === 'ready';\n\tconst prReview = normalizeSupportAutopilotPrReviewContract(input.prReviewContract);\n\tconst prReviewReady = prReview.ready === true;\n\tconst pullRequestUrl = cleanText(\n\t\tprReadinessContract.pull_request_url\n\t\t|| prReadinessContract.pullRequestUrl,\n\t\t500\n\t);\n\tconst pullRequestStatus = cleanText(\n\t\tprReadinessContract.pull_request_status\n\t\t|| prReadinessContract.pullRequestStatus,\n\t\t120\n\t);\n\tconst businessProofArtifacts = cleanList([\n\t\t...cleanList(input.businessProofArtifacts, 80, 500),\n\t\t...cleanList(input.businessProofReadiness.artifactPaths, 80, 500),\n\t\t...cleanList(prReadinessContract.business_proof_artifacts || prReadinessContract.businessProofArtifacts, 80, 500)\n\t], 120, 500);\n\tconst changedFiles = cleanList([\n\t\t...cleanList(input.changedFiles, 80, 500),\n\t\t...cleanList(prReadinessContract.modified_files || prReadinessContract.modifiedFiles, 80, 500)\n\t], 120, 500).map(normalizeOwnerFilePath).filter(Boolean);\n\tconst businessProofReady = input.businessProofReadiness.ready === true\n\t\t|| prReadinessContract.business_proof_ready === true\n\t\t|| prReadinessContract.businessProofReady === true;\n\tconst hasScreenshotOrTrace = supportAutopilotArtifactListHasScreenshotOrTrace(businessProofArtifacts);\n\tconst changedFilesReady = changedFiles.length > 0;\n\tconst approvalBoundaryValid = approval?.autopilotApprovalBoundaryValid === true;\n\tconst approvalApproved = approval?.approved === true;\n\tconst targetGrade = approval?.targetGrade || cleanText(prReadinessContract.target_grade || prReadinessContract.targetGrade || 'A', 20) || 'A';\n\tconst terminalTarget = approval?.terminalTarget\n\t\t|| 'A-grade PR with QA screenshots, AIQaBusinessAssertion before/action/after proof, source commit proof, and changed files inside owner_files';\n\tconst requiredEvidence = Array.from(new Set([\n\t\t...(approval?.requiredCompletionEvidence || []),\n\t\t'SupportDiagnosisGate passed',\n\t\t'owner-scoped changed files',\n\t\t'AIQaBusinessAssertion before/action/after business proof',\n\t\t'QA screenshot or trace artifact',\n\t\t'A-grade PR URL',\n\t\t'A-grade execution/artifacts/pull_request review'\n\t])).slice(0, 24);\n\tconst completedEvidence = Array.from(new Set([\n\t\tinput.diagnosisValid ? 'SupportDiagnosisGate passed' : '',\n\t\tchangedFilesReady ? 'changed files recorded' : '',\n\t\tbusinessProofReady ? 'AIQaBusinessAssertion business proof ready' : '',\n\t\thasScreenshotOrTrace ? 'QA screenshot or trace artifact recorded' : '',\n\t\tprReady ? 'PR readiness contract ready' : '',\n\t\tpullRequestUrl ? `pull_request_url=${pullRequestUrl}` : '',\n\t\tprReviewReady ? `A-grade PR review passed execution=${prReview.executionGrade || '-'} artifacts=${prReview.artifactsGrade || '-'} pull_request=${prReview.pullRequestGrade || '-'}` : '',\n\t\t...prReview.evidenceRefs\n\t].filter(Boolean))).slice(0, 24);\n\tconst missingEvidence = Array.from(new Set([\n\t\t!approvalApproved ? 'approved support autonomy contract' : '',\n\t\tapprovalApproved && !approvalBoundaryValid ? 'valid autonomy approval boundary' : '',\n\t\t!input.diagnosisValid ? 'SupportDiagnosisGate passed' : '',\n\t\tinput.preflightGate.blocksProductRepair ? 'passing support preflight/compile gate' : '',\n\t\t!changedFilesReady ? 'owner-scoped changed-file evidence' : '',\n\t\t!businessProofReady ? 'AIQaBusinessAssertion before/action/after business proof' : '',\n\t\tapproval?.qaScreenshotsRequired !== false && !hasScreenshotOrTrace ? 'QA screenshot or trace artifact' : '',\n\t\tbusinessProofReady && !prReady ? 'PR readiness contract' : '',\n\t\tbusinessProofReady && prReady && !pullRequestUrl ? 'A-grade PR URL' : '',\n\t\tbusinessProofReady && prReady && !!pullRequestUrl && !prReviewReady ? 'A-grade execution/artifacts/pull_request review' : ''\n\t].filter(Boolean))).slice(0, 24);\n\tlet activePhase: ResolveIOSupportAutopilotCompletionPhase = 'not_required';\n\tlet nextAction: ResolveIOSupportAutopilotCompletionNextAction = 'park_manual';\n\tlet status: ResolveIOSupportAutopilotCompletionStatus = 'not_required';\n\tif (!approvalApproved || !approvalBoundaryValid) {\n\t\tactivePhase = 'approval_required';\n\t\tnextAction = approval?.approvalAction === 'approve_support_autonomy_over_limit'\n\t\t\t? 'approve_support_autonomy_over_limit'\n\t\t\t: 'approve_support_autonomy';\n\t\tstatus = 'blocked';\n\t}\n\telse if (!input.diagnosisValid) {\n\t\tactivePhase = 'diagnosis';\n\t\tnextAction = 'run_diagnosis_gate';\n\t\tstatus = 'in_progress';\n\t}\n\telse if (input.preflightGate.blocksProductRepair) {\n\t\tactivePhase = 'preflight';\n\t\tnextAction = 'repair_infra_only';\n\t\tstatus = 'in_progress';\n\t}\n\telse if (!changedFilesReady) {\n\t\tactivePhase = 'repair';\n\t\tnextAction = 'run_owner_scoped_repair';\n\t\tstatus = 'in_progress';\n\t}\n\telse if (!businessProofReady || !hasScreenshotOrTrace) {\n\t\tactivePhase = 'business_proof';\n\t\tnextAction = 'run_business_proof_qa';\n\t\tstatus = 'in_progress';\n\t}\n\telse if (!prReady || !pullRequestUrl) {\n\t\tactivePhase = 'pr_packaging';\n\t\tnextAction = 'create_pr';\n\t\tstatus = 'ready_for_pr';\n\t}\n\telse if (!prReviewReady) {\n\t\tactivePhase = 'pr_review';\n\t\tnextAction = 'run_a_grade_pr_review';\n\t\tstatus = 'in_progress';\n\t}\n\telse {\n\t\tactivePhase = 'park_before_merge_release_customer';\n\t\tnextAction = 'park_before_merge_release_or_customer_send';\n\t\tstatus = 'complete';\n\t}\n\tconst requiresHumanApproval = activePhase === 'approval_required'\n\t\t|| activePhase === 'park_before_merge_release_customer';\n\t\tconst canAutoDispatchNext = status !== 'blocked'\n\t\t\t&& status !== 'complete'\n\t\t\t&& requiresHumanApproval !== true\n\t\t\t&& nextAction !== 'approve_support_autonomy'\n\t\t\t&& nextAction !== 'approve_support_autonomy_over_limit';\n\treturn {\n\t\tcontractId: `support-autopilot-completion-${hashResolveIOSupportV5Evidence({\n\t\t\tapprovalContractId: approval?.contractId || '',\n\t\t\tactivePhase,\n\t\t\tnextAction,\n\t\t\tbusinessProofReady,\n\t\t\tpullRequestUrl,\n\t\t\tprReviewReady,\n\t\t\tprReviewStatus: prReview.status,\n\t\t\tprReviewStrictGateReason: prReview.strictGateReason,\n\t\t\tprReviewExecutionGrade: prReview.executionGrade,\n\t\t\tprReviewArtifactsGrade: prReview.artifactsGrade,\n\t\t\tprReviewPullRequestGrade: prReview.pullRequestGrade,\n\t\t\tcreatedAt: createdAt.slice(0, 16)\n\t\t}).slice(0, 16)}`,\n\t\tmode: 'approved_scope_to_a_grade_pr',\n\t\tstatus,\n\t\tactivePhase,\n\t\tnextAction,\n\t\tnextCommand: nextAction === 'create_pr'\n\t\t\t? 'createSupportTicketCodexPullRequestManual'\n\t\t\t: String(nextAction),\n\t\treason: status === 'complete'\n\t\t\t? 'Approved support autopilot reached A-grade PR proof; merge, release, deploy, and customer reply remain separately gated.'\n\t\t\t: missingEvidence.join(' | ') || `Continue approved support autopilot phase ${activePhase}.`,\n\t\tapproved: approvalApproved,\n\t\tapprovalBoundaryValid,\n\t\tapprovalContractId: approval?.contractId || '',\n\t\ttargetGrade,\n\t\tterminalTarget,\n\t\tbusinessProofReady,\n\t\thasScreenshotOrTrace,\n\t\tchangedFilesReady,\n\t\tprReadinessReady: prReady,\n\t\tprReviewReady,\n\t\tprReviewStatus: prReview.status,\n\t\tprReviewContractId: prReview.contractId,\n\t\tprReviewStrictGatePassed: prReview.strictGatePassed,\n\t\tprReviewStrictGateReason: prReview.strictGateReason,\n\t\tprReviewExecutionGrade: prReview.executionGrade,\n\t\tprReviewArtifactsGrade: prReview.artifactsGrade,\n\t\tprReviewPullRequestGrade: prReview.pullRequestGrade,\n\t\tpullRequestUrl,\n\t\tpullRequestStatus,\n\t\tcanContinueWithoutCodexMonitor: canAutoDispatchNext,\n\t\tcanAutoDispatchNext,\n\t\trequiresHumanApproval,\n\t\tcompletedEvidence,\n\t\tmissingEvidence,\n\t\trequiredEvidence,\n\t\tforbiddenActions: Array.from(new Set([\n\t\t\t...(approval?.forbiddenWithoutReapproval || []),\n\t\t\t'Do not merge, release, deploy, or send customer success reply from approved autopilot completion alone.',\n\t\t\t'Do not mark complete without QA screenshots/traces, AIQaBusinessAssertion proof, changed files, PR URL, and A-grade PR review.'\n\t\t])).slice(0, 24),\n\t\tblockers: Array.from(new Set([\n\t\t\t...(approval?.blockers || []),\n\t\t\t...(input.productRepairDispatchGuard?.status === 'blocked' ? input.productRepairDispatchGuard.blockers : []),\n\t\t\t...prReview.blockers,\n\t\t\t...missingEvidence\n\t\t])).slice(0, 24),\n\t\tcreatedAt\n\t};\n}\n\nfunction normalizeResolveIOSupportPreflightCheckName(value: any): ResolveIOSupportPreflightCheckName {\n\tconst normalized = cleanText(value, 120)\n\t\t.toLowerCase()\n\t\t.replace(/[\\s-]+/g, '_');\n\tconst aliases: Record<string, ResolveIOSupportPreflightCheckName> = {\n\t\tpuppeteer: 'puppeteer_module',\n\t\tpuppeteer_module: 'puppeteer_module',\n\t\tchrome: 'chrome_executable',\n\t\tchrome_path: 'chrome_executable',\n\t\tchrome_executable: 'chrome_executable',\n\t\tchrome_launch: 'chrome_launch',\n\t\tbrowser_launch: 'chrome_launch',\n\t\tnode: 'node_version',\n\t\tnode_version: 'node_version',\n\t\tnpm: 'npm_install',\n\t\tnpm_install: 'npm_install',\n\t\tsettings: 'settings_file',\n\t\tsettings_file: 'settings_file',\n\t\tmongo: 'mongo_connection',\n\t\tmongodb: 'mongo_connection',\n\t\tmongo_connection: 'mongo_connection',\n\t\tserver: 'server_startup',\n\t\tserver_startup: 'server_startup',\n\t\tclient: 'client_startup',\n\t\tclient_startup: 'client_startup',\n\t\tport: 'port_availability',\n\t\tports: 'port_availability',\n\t\tport_availability: 'port_availability',\n\t\tbuild: 'compile',\n\t\tcompile: 'compile',\n\t\tcache: 'cache_state',\n\t\tcache_state: 'cache_state',\n\t\tseed: 'seed_data',\n\t\tseed_data: 'seed_data'\n\t};\n\treturn aliases[normalized] || 'unknown';\n}\n\nfunction normalizeResolveIOSupportPreflightCheckStatus(value: any, source: Record<string, any>): ResolveIOSupportPreflightCheckStatus {\n\tconst normalized = cleanText(value, 80).toLowerCase();\n\tif (['pass', 'passed', 'ok', 'success', 'ready'].includes(normalized) || source.passed === true || source.ok === true || source.ready === true) {\n\t\treturn 'pass';\n\t}\n\tif (['fail', 'failed', 'failure', 'error'].includes(normalized) || source.passed === false || source.ok === false) {\n\t\treturn 'fail';\n\t}\n\tif (['blocked', 'block', 'missing'].includes(normalized) || source.blocked === true) {\n\t\treturn 'blocked';\n\t}\n\tif (['warn', 'warning'].includes(normalized)) {\n\t\treturn 'warn';\n\t}\n\treturn 'unknown';\n}\n\nfunction normalizeResolveIOSupportPreflightFailureClass(\n\tname: ResolveIOSupportPreflightCheckName,\n\tsource: Record<string, any>,\n\tstatus: ResolveIOSupportPreflightCheckStatus\n): 'infra' | 'compile' | 'unknown' {\n\tconst normalized = cleanText(source.failureClass || source.failure_class || source.class, 80).toLowerCase();\n\tif (normalized === 'compile' || normalized === 'build') {\n\t\treturn 'compile';\n\t}\n\tif (normalized === 'infra' || normalized === 'infrastructure') {\n\t\treturn 'infra';\n\t}\n\tif (status === 'pass' || status === 'warn') {\n\t\treturn 'unknown';\n\t}\n\treturn name === 'compile' ? 'compile' : 'infra';\n}\n\nfunction normalizeResolveIOSupportPreflightCheck(input: any, now: string): ResolveIOSupportPreflightCheck {\n\tconst source = typeof input === 'string'\n\t\t? { summary: input, name: 'unknown', status: 'unknown' }\n\t\t: cleanObject(input);\n\tconst name = normalizeResolveIOSupportPreflightCheckName(source.name || source.check || source.checkName || source.id || source.type);\n\tconst status = normalizeResolveIOSupportPreflightCheckStatus(source.status || source.state || source.outcome, source);\n\tconst artifactPaths = Array.from(new Set([\n\t\t...cleanList(source.artifactPaths || source.artifacts, 20, 500),\n\t\t...cleanList(source.artifactPath ? [source.artifactPath] : [], 1, 500)\n\t]));\n\tconst evidence = cleanList(source.evidence || source.logs || source.messages, 20, 500);\n\treturn {\n\t\tname,\n\t\tstatus,\n\t\tsummary: cleanText(source.summary || source.reason || source.error || source.message || source.status || name, 1000),\n\t\tfailureClass: normalizeResolveIOSupportPreflightFailureClass(name, source, status),\n\t\tcommand: cleanText(source.command, 500) || undefined,\n\t\tdurationMs: Number.isFinite(Number(source.durationMs || source.duration_ms))\n\t\t\t? Math.max(0, Number(source.durationMs || source.duration_ms))\n\t\t\t: undefined,\n\t\tartifactPaths,\n\t\tevidence,\n\t\trecordedAt: cleanText(source.recordedAt || source.recorded_at, 80) || now\n\t};\n}\n\nfunction normalizeResolveIOSupportPreflightGateStatus(value: any): ResolveIOSupportPreflightGateStatus | '' {\n\tconst normalized = cleanText(value, 80).toLowerCase();\n\tconst aliases: Record<string, ResolveIOSupportPreflightGateStatus> = {\n\t\tpassed: 'passed',\n\t\tpass: 'passed',\n\t\tready: 'passed',\n\t\tmissing: 'missing',\n\t\tinfra_failed: 'infra_failed',\n\t\tinfra: 'infra_failed',\n\t\tinfrastructure_failed: 'infra_failed',\n\t\tcompile_failed: 'compile_failed',\n\t\tbuild_failed: 'compile_failed',\n\t\tblocked: 'blocked',\n\t\tunknown: 'unknown'\n\t};\n\treturn aliases[normalized] || '';\n}\n\nexport function evaluateResolveIOSupportPreflightGate(\n\tinput?: ResolveIOSupportPreflightGateInput | ResolveIOSupportPreflightGate | any,\n\tnowValue?: Date | string\n): ResolveIOSupportPreflightGate {\n\tconst now = isoNow(nowValue);\n\tconst source = cleanObject(input);\n\tconst compileResult = cleanObject(source.compileResult || source.compile_result);\n\tconst checksInput = [\n\t\t...(Array.isArray(source.checks) ? source.checks : []),\n\t\t...(Array.isArray(source.infraChecks || source.infra_checks) ? (source.infraChecks || source.infra_checks) : []),\n\t\t...(Array.isArray(source.startupChecks || source.startup_checks) ? (source.startupChecks || source.startup_checks) : []),\n\t\t...(Object.keys(compileResult).length ? [{\n\t\t\t...compileResult,\n\t\t\tname: compileResult.name || 'compile',\n\t\t\tfailureClass: compileResult.failureClass || compileResult.failure_class || 'compile'\n\t\t}] : [])\n\t];\n\tconst checks = checksInput.map((check) => normalizeResolveIOSupportPreflightCheck(check, now));\n\tconst required = source.required === true\n\t\t|| source.requiredBeforeRepair === true\n\t\t|| source.required_before_repair === true\n\t\t|| source.blocksProductRepair === true\n\t\t|| source.blocks_product_repair === true;\n\tconst failedChecks = checks.filter((check) => check.status === 'fail' || check.status === 'blocked');\n\tconst unknownChecks = checks.filter((check) => check.status === 'unknown');\n\tconst directStatus = normalizeResolveIOSupportPreflightGateStatus(source.status);\n\tconst compileFailed = failedChecks.some((check) => check.failureClass === 'compile' || check.name === 'compile')\n\t\t|| directStatus === 'compile_failed';\n\tconst infraFailed = failedChecks.length > 0 || directStatus === 'infra_failed';\n\tlet status: ResolveIOSupportPreflightGateStatus;\n\tif (compileFailed) {\n\t\tstatus = 'compile_failed';\n\t} else if (infraFailed) {\n\t\tstatus = 'infra_failed';\n\t} else if (directStatus === 'blocked') {\n\t\tstatus = 'blocked';\n\t} else if (directStatus === 'missing' || (required && checks.length === 0)) {\n\t\tstatus = 'missing';\n\t} else if (directStatus === 'passed' || source.ready === true || (checks.length > 0 && failedChecks.length === 0 && unknownChecks.length === 0)) {\n\t\tstatus = 'passed';\n\t} else {\n\t\tstatus = 'unknown';\n\t}\n\tconst failureClass: 'infra' | 'compile' | 'unknown' = status === 'compile_failed'\n\t\t? 'compile'\n\t\t: (status === 'infra_failed' || status === 'blocked' || status === 'missing')\n\t\t\t? 'infra'\n\t\t\t: 'unknown';\n\tconst artifactPaths = Array.from(new Set([\n\t\t...cleanList(source.artifactPaths || source.artifacts, 40, 500),\n\t\t...checks.flatMap((check) => check.artifactPaths)\n\t])).slice(0, 80);\n\tconst blockers = Array.from(new Set([\n\t\t...cleanList(source.blockers, 20, 500),\n\t\t...failedChecks.map((check) => `${check.name}: ${check.summary}`),\n\t\t...(status === 'missing' ? ['Deterministic support preflight is required before product-code repair.'] : []),\n\t\t...(status === 'blocked' ? ['Support preflight is blocked and must be cleared before product-code repair.'] : [])\n\t].filter(Boolean))).slice(0, 30);\n\tconst requiredEvidence = Array.from(new Set([\n\t\t...cleanList(source.requiredEvidence || source.required_evidence, 20, 500),\n\t\t...(status === 'compile_failed' ? ['compile command output', 'artifact path or build log', 'new compile evidence hash or pass'] : []),\n\t\t...(status === 'infra_failed' ? ['Puppeteer/Chrome/server/client/Mongo preflight log', 'new infra evidence hash or pass'] : []),\n\t\t...(status === 'missing' || status === 'blocked' || (required && status === 'unknown') ? ['support preflight result with Puppeteer, Chrome, compile, startup, Mongo, port, and settings status'] : [])\n\t])).slice(0, 30);\n\tconst blocksProductRepair = status === 'compile_failed'\n\t\t|| status === 'infra_failed'\n\t\t|| status === 'blocked'\n\t\t|| status === 'missing'\n\t\t|| (required && status === 'unknown');\n\tconst nextCommand: ResolveIOSupportPreflightNextCommand = status === 'compile_failed'\n\t\t? 'run_support_v5_compile_repair'\n\t\t: status === 'infra_failed' || status === 'blocked'\n\t\t\t? 'run_support_v5_infra_repair'\n\t\t\t: status === 'missing' || (required && status === 'unknown')\n\t\t\t\t? 'run_support_v5_preflight'\n\t\t\t\t: 'continue_to_diagnosis';\n\tconst evidenceHash = cleanText(source.evidenceHash || source.evidence_hash, 80)\n\t\t|| hashResolveIOSupportV5Evidence({\n\t\t\tstatus,\n\t\t\trequired,\n\t\t\tfailedChecks: failedChecks.map((check) => ({\n\t\t\t\tname: check.name,\n\t\t\t\tstatus: check.status,\n\t\t\t\tsummary: check.summary,\n\t\t\t\tfailureClass: check.failureClass\n\t\t\t})),\n\t\t\tartifactPaths\n\t\t});\n\treturn {\n\t\tready: blocksProductRepair ? false : status === 'passed',\n\t\trequired,\n\t\tstatus,\n\t\tfailureClass,\n\t\tchecks,\n\t\tfailedChecks,\n\t\tblockers,\n\t\trequiredEvidence,\n\t\tartifactPaths,\n\t\tnextCommand,\n\t\tblocksProductRepair,\n\t\tblocksModelRepair: blocksProductRepair,\n\t\tevidenceHash,\n\t\trecordedAt: cleanText(source.recordedAt || source.recorded_at, 80) || now\n\t};\n}\n\nfunction pickText(source: Record<string, any>, fields: string[], max = 1000): string {\n\tfor (const field of fields) {\n\t\tconst normalized = cleanText(source?.[field], max);\n\t\tif (normalized) {\n\t\t\treturn normalized;\n\t\t}\n\t}\n\treturn '';\n}\n\nfunction normalizeIssueClass(value: any): ResolveIOSupportIssueClass | '' {\n\tconst normalized = cleanText(value, 80)\n\t\t.toLowerCase()\n\t\t.replace(/[\\s-]+/g, '_');\n\tconst aliases: Record<string, ResolveIOSupportIssueClass> = {\n\t\tno_op: 'no_op_submit',\n\t\tno_op_submit: 'no_op_submit',\n\t\tsubmit_noop: 'no_op_submit',\n\t\tmissing_data: 'missing_wrong_data',\n\t\twrong_data: 'missing_wrong_data',\n\t\tmissing_wrong_data: 'missing_wrong_data',\n\t\tfilter_mismatch: 'filter_query_mismatch',\n\t\tquery_mismatch: 'filter_query_mismatch',\n\t\tfilter_query_mismatch: 'filter_query_mismatch',\n\t\tinvoice_pdf_export: 'invoice_pdf_export',\n\t\tpdf_export: 'invoice_pdf_export',\n\t\texport: 'invoice_pdf_export',\n\t\tupload: 'upload_import',\n\t\timport: 'upload_import',\n\t\tupload_import: 'upload_import',\n\t\tbehavior: 'missing_wrong_data',\n\t\tworkflow_behavior: 'missing_wrong_data',\n\t\tgeneral: 'missing_wrong_data',\n\t\tgeneral_inquiry: 'missing_wrong_data',\n\t\tcustomer_inquiry: 'missing_wrong_data',\n\t\tdata_mismatch: 'missing_wrong_data',\n\t\twarehouse_mismatch: 'missing_wrong_data',\n\t\tdata_visibility_mapping: 'missing_wrong_data',\n\t\tdata_mapping: 'missing_wrong_data',\n\t\tvisibility_mapping: 'missing_wrong_data',\n\t\tdisplay_mapping: 'missing_wrong_data',\n\t\troute_auth: 'route_auth_hydration',\n\t\tauth_hydration: 'route_auth_hydration',\n\t\troute_auth_hydration: 'route_auth_hydration',\n\t\tslow_query: 'slow_query_performance',\n\t\tperformance: 'slow_query_performance',\n\t\tslow_query_performance: 'slow_query_performance',\n\t\tfeature: 'missing_wrong_data',\n\t\tfeature_request: 'missing_wrong_data',\n\t\trequest_new_feature: 'missing_wrong_data',\n\t\trequested_behavior_change: 'missing_wrong_data',\n\t\tnew_feature: 'missing_wrong_data'\n\t};\n\tif (aliases[normalized]) {\n\t\treturn aliases[normalized];\n\t}\n\tif (/\\b(data|field|value|visibility|mapping|display|warehouse|quantity|inventory)\\b/i.test(normalized)) {\n\t\treturn 'missing_wrong_data';\n\t}\n\treturn '';\n}\n\nfunction normalizeReproductionStatus(value: any): ResolveIOSupportDiagnosisIssueCase['reproduction_status'] {\n\tconst normalized = cleanText(value, 80).toLowerCase();\n\tif (/blocked|unable|cannot/.test(normalized)) {\n\t\treturn 'blocked';\n\t}\n\tif (/classif|triag|inferred/.test(normalized)) {\n\t\treturn 'classified';\n\t}\n\treturn 'reproduced';\n}\n\nfunction inferSupportDiagnosisEvidenceTypeFromText(value: any, artifactPath = ''): ResolveIOSupportDiagnosisEvidence['type'] {\n\tconst text = cleanText([value, artifactPath].filter(Boolean).join(' '), 2000).toLowerCase();\n\tconst pathText = cleanText(artifactPath, 500).toLowerCase();\n\tif (/\\b(screenshot|screen shot)\\b/i.test(text) || /\\.(?:png|jpe?g|webp|gif)$/i.test(pathText)) {\n\t\treturn 'browser';\n\t}\n\tif (/\\b(angular|server|client|src|methods|publications|routing|permission|component|template)\\b/i.test(pathText)) {\n\t\treturn 'code';\n\t}\n\tif (/\\b(browser|dom|click|route|page|playwright|puppeteer)\\b/i.test(text)) {\n\t\treturn 'browser';\n\t}\n\tif (/\\b(ticket|customer|client|reporter|reported|support request|manual-ticket|email\\.metadata)\\b/i.test(text)) {\n\t\treturn 'ticket';\n\t}\n\tif (/\\b(mongo|database|collection|document|query|findone|aggregate)\\b/i.test(text)) {\n\t\treturn 'mongo';\n\t}\n\tif (/\\b(log|trace|stack|console|network)\\b/i.test(text)) {\n\t\treturn 'log';\n\t}\n\tif (/\\b(commit|git|branch|pr)\\b/i.test(text)) {\n\t\treturn 'commit';\n\t}\n\tif (/\\b(qa|test artifact|assertion)\\b/i.test(text)) {\n\t\treturn 'qa';\n\t}\n\tif (/\\b(component|template|publication|method|model|route|service|resolver|subscription|subscribe|render|renders|stores|persists|returns|finds?|source|repo|repository|angular|server|client|src)\\b/i.test(text)) {\n\t\treturn 'code';\n\t}\n\treturn 'other';\n}\n\nfunction supportLooseOwnerFileMatch(value: any, ownerFile: string): boolean {\n\tconst normalizedOwner = normalizeOwnerFilePath(ownerFile);\n\tconst text = cleanText(value, 2000).replace(/[\\\\/.]+/g, ' ').replace(/[_-]+/g, ' ').toLowerCase();\n\tconst base = normalizedOwner.split('/').pop() || normalizedOwner;\n\tconst stem = base.replace(/\\.[a-z0-9]+$/i, '');\n\tconst stemWithoutAngularKind = stem.replace(/\\.(component|service|module|directive|pipe|model|resolver|guard|template)$/i, '');\n\tconst looseStem = stem.replace(/[._-]+/g, ' ').toLowerCase();\n\tconst looseStemWithoutKind = stemWithoutAngularKind.replace(/[._-]+/g, ' ').toLowerCase();\n\tconst compactStem = stem.replace(/[^a-z0-9]+/gi, '').toLowerCase();\n\tconst compactStemWithoutKind = stemWithoutAngularKind.replace(/[^a-z0-9]+/gi, '').toLowerCase();\n\tconst compactText = text.replace(/[^a-z0-9]+/g, '');\n\treturn !!normalizedOwner && (\n\t\tsupportNormalizedPathMentioned(value, normalizedOwner)\n\t\t|| (!!looseStem && looseStem.length >= 5 && text.includes(looseStem))\n\t\t|| (!!looseStemWithoutKind && looseStemWithoutKind.length >= 5 && text.includes(looseStemWithoutKind))\n\t\t|| (!!compactStem && compactStem.length >= 5 && compactText.includes(compactStem))\n\t\t|| (!!compactStemWithoutKind && compactStemWithoutKind.length >= 5 && compactText.includes(compactStemWithoutKind))\n\t);\n}\n\nfunction supportLooseEvidenceOwnerFiles(value: any, ownerFiles: string[]): string[] {\n\treturn ownerFiles\n\t\t.map(normalizeOwnerFilePath)\n\t\t.filter(Boolean)\n\t\t.filter((ownerFile) => supportLooseOwnerFileMatch(value, ownerFile))\n\t\t.slice(0, 8);\n}\n\nfunction normalizeSupportDiagnosisEvidence(values: any, ownerFiles: string[] = []): ResolveIOSupportDiagnosisEvidence[] {\n\tconst allowed = new Set(['ticket', 'browser', 'mongo', 'log', 'code', 'commit', 'qa', 'other']);\n\tif (!Array.isArray(values)) {\n\t\tconst summary = cleanText(values, 1200);\n\t\treturn summary ? [{\n\t\t\tid: `evidence-${hashResolveIOSupportV5Evidence({ type: inferSupportDiagnosisEvidenceTypeFromText(summary), summary }).slice(0, 12)}`,\n\t\t\ttype: inferSupportDiagnosisEvidenceTypeFromText(summary),\n\t\t\tsummary,\n\t\t\townerFiles: supportLooseEvidenceOwnerFiles(summary, ownerFiles),\n\t\t\tartifactPath: supportLooseEvidenceOwnerFiles(summary, ownerFiles)[0]\n\t\t}] : [];\n\t}\n\tconst stringEvidence: ResolveIOSupportDiagnosisEvidence[] = values\n\t\t.filter((entry) => typeof entry === 'string')\n\t\t.map((entry) => {\n\t\t\tconst summary = cleanText(entry, 1200);\n\t\t\tconst matchedOwnerFiles = supportLooseEvidenceOwnerFiles(summary, ownerFiles);\n\t\t\tconst type = matchedOwnerFiles.length ? 'code' : inferSupportDiagnosisEvidenceTypeFromText(summary);\n\t\t\treturn {\n\t\t\t\tid: `evidence-${hashResolveIOSupportV5Evidence({ type, summary, ownerFiles: matchedOwnerFiles }).slice(0, 12)}`,\n\t\t\t\ttype,\n\t\t\t\tsummary,\n\t\t\t\tartifactPath: type === 'code' ? matchedOwnerFiles[0] : undefined,\n\t\t\t\townerFiles: matchedOwnerFiles\n\t\t\t};\n\t\t});\n\tconst objectEvidence: ResolveIOSupportDiagnosisEvidence[] = values\n\t\t.filter((entry) => entry && typeof entry === 'object' && !Array.isArray(entry))\n\t\t.map((entry) => {\n\t\t\tconst type = cleanText(entry.type, 80).toLowerCase();\n\t\t\tconst artifactPath = cleanText(entry.artifactPath || entry.artifact_path || entry.artifact || entry.path || entry.file, 500);\n\t\t\tconst summary = cleanText(entry.summary || entry.detail || entry.message || entry.evidence || entry.reason || entry.rejection_reason || entry.rejectionReason || entry.fact || entry.finding || entry.description || entry.proof || entry.proof_required || entry.proofRequired, 1200)\n\t\t\t\t|| (artifactPath ? `Evidence from ${artifactPath}` : '');\n\t\t\tconst evidenceText = [summary, artifactPath].filter(Boolean).join(' ');\n\t\t\tconst inferredType = (() => {\n\t\t\t\tconst inferredFromText = inferSupportDiagnosisEvidenceTypeFromText(summary, artifactPath);\n\t\t\t\tif (allowed.has(type) && type !== 'other') {\n\t\t\t\t\tif (type === 'ticket' && inferredFromText === 'browser') {\n\t\t\t\t\t\treturn 'browser';\n\t\t\t\t\t}\n\t\t\t\t\treturn type;\n\t\t\t\t}\n\t\t\t\tif (/\\b(screenshot|screen shot)\\b/i.test(evidenceText)\n\t\t\t\t\t|| /\\.(?:png|jpe?g|webp|gif)$/i.test(artifactPath)) {\n\t\t\t\t\treturn 'browser';\n\t\t\t\t}\n\t\t\t\tif (/\\b(angular|server|client|src|methods|publications|routing|permission|component|template)\\b/i.test(artifactPath)) {\n\t\t\t\t\treturn 'code';\n\t\t\t\t}\n\t\t\t\tif (/\\b(playwright|puppeteer|browser|dom|click|route|page)\\b/i.test(evidenceText)) {\n\t\t\t\t\treturn 'browser';\n\t\t\t\t}\n\t\t\t\tif (/\\b(ticket|manual-ticket|support request|customer|reporter|email\\.metadata)\\b/i.test(evidenceText)) {\n\t\t\t\t\treturn 'ticket';\n\t\t\t\t}\n\t\t\t\tif (/\\b(commit|git)\\b/i.test(evidenceText)) {\n\t\t\t\t\treturn 'commit';\n\t\t\t\t}\n\t\t\t\tif (/\\b(mongo|query|database|collection)\\b/i.test(evidenceText)) {\n\t\t\t\t\treturn 'mongo';\n\t\t\t\t}\n\t\t\t\tif (/\\b(log|trace|console|network)\\b/i.test(evidenceText)) {\n\t\t\t\t\treturn 'log';\n\t\t\t\t}\n\t\t\t\tif (/\\b(angular|server|client|src|methods|publications|routing|permission|component|template)\\b/i.test(evidenceText)) {\n\t\t\t\t\treturn 'code';\n\t\t\t\t}\n\t\t\t\treturn inferredFromText;\n\t\t\t})();\n\t\t\tconst normalizedType = inferredType as ResolveIOSupportDiagnosisEvidence['type'];\n\t\t\tconst ownerFiles = cleanList(entry.ownerFiles || entry.owner_files || entry.files, 12, 500)\n\t\t\t\t.map(normalizeOwnerFilePath)\n\t\t\t\t.filter(Boolean);\n\t\t\tif (normalizedType === 'code' && artifactPath) {\n\t\t\t\tconst sourcePath = normalizeOwnerFilePath(artifactPath);\n\t\t\t\tif (sourcePath && !ownerFiles.includes(sourcePath)) {\n\t\t\t\t\townerFiles.push(sourcePath);\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst evidenceRefs = cleanList(entry.evidenceRefs || entry.evidence_refs || entry.refs, 12, 500);\n\t\t\treturn {\n\t\t\t\tid: cleanText(entry.id || entry.evidenceId || entry.evidence_id, 160)\n\t\t\t\t\t|| `evidence-${hashResolveIOSupportV5Evidence({ type: normalizedType, summary, artifactPath, ownerFiles }).slice(0, 12)}`,\n\t\t\t\ttype: normalizedType,\n\t\t\t\tsummary,\n\t\t\t\tartifactPath,\n\t\t\t\townerFiles,\n\t\t\t\tevidenceRefs\n\t\t\t};\n\t\t});\n\treturn stringEvidence.concat(objectEvidence)\n\t\t.filter((entry) => entry.summary)\n\t\t.slice(0, 20);\n}\n\nfunction normalizeSupportDiagnosisHints(values: any): ResolveIOSupportDiagnosisHint[] {\n\treturn (Array.isArray(values) ? values : [])\n\t\t.map((entry) => {\n\t\t\tif (typeof entry === 'string') {\n\t\t\t\treturn { reason: cleanText(entry, 500) };\n\t\t\t}\n\t\t\tconst value = cleanObject(entry);\n\t\t\treturn {\n\t\t\t\tid: cleanText(value.id || value._id, 160),\n\t\t\t\tticketNumber: cleanText(value.ticketNumber || value.ticket_number || value.sourceTicketNumber, 80),\n\t\t\t\ttitle: cleanText(value.title || value.summary, 300),\n\t\t\t\toutcome: cleanText(value.outcome || value.status, 80),\n\t\t\t\tissueClass: cleanText(value.issueClass || value.issue_class, 80),\n\t\t\t\townerFiles: cleanList(value.ownerFiles || value.owner_files || value.files, 8, 240),\n\t\t\t\tcommitSha: cleanText(value.commitSha || value.commit_sha, 80),\n\t\t\t\tcommitMessage: cleanText(value.commitMessage || value.commit_message, 300),\n\t\t\t\treason: cleanText(value.reason || value.matchReason || value.match_reason, 500)\n\t\t\t};\n\t\t})\n\t\t.filter((entry) => entry.id || entry.ticketNumber || entry.title || entry.reason || entry.commitSha)\n\t\t.slice(0, 8);\n}\n\nfunction normalizeSupportSimilarCaseSource(value: any): ResolveIOSupportSimilarCaseSource {\n\tconst normalized = cleanText(value, 80).toLowerCase();\n\tif (/commit|git/.test(normalized)) {\n\t\treturn 'git_commit';\n\t}\n\tif (/ticket/.test(normalized)) {\n\t\treturn 'support_ticket';\n\t}\n\tif (/airun|ai_run|run/.test(normalized)) {\n\t\treturn 'airun';\n\t}\n\treturn 'manual';\n}\n\nfunction supportOutcomeLooksAccepted(value: any): boolean {\n\treturn /^(accepted|pass|passed|complete|completed|merged|released)$/i.test(cleanText(value, 80));\n}\n\nfunction supportOutcomeLooksRejected(value: any): boolean {\n\treturn /\\b(reject|rejected|false_pass|failed|failure|blocked|unknown|stopped|manual_handoff)\\b/i.test(cleanText(value, 120));\n}\n\nfunction supportOwnerFileDirectory(value: string): string {\n\tconst normalized = normalizeOwnerFilePath(value);\n\tconst parts = normalized.split('/').filter(Boolean);\n\treturn parts.length > 1 ? parts.slice(0, -1).join('/') : normalized;\n}\n\nfunction supportTextTokens(value: any): string[] {\n\tconst stop = new Set(['the', 'and', 'for', 'with', 'that', 'this', 'from', 'into', 'when', 'where', 'what', 'have', 'has', 'had', 'not', 'but', 'are', 'was', 'were', 'issue', 'ticket', 'support']);\n\treturn Array.from(new Set(cleanText(value, 3000).toLowerCase()\n\t\t.split(/[^a-z0-9_/-]+/g)\n\t\t.map((token) => token.trim())\n\t\t.filter((token) => token.length >= 3 && !stop.has(token))))\n\t\t.slice(0, 80);\n}\n\nfunction normalizeResolveIOSupportSimilarCaseCandidate(value: any): ResolveIOSupportSimilarCaseCandidate | undefined {\n\tconst source = cleanObject(value);\n\tif (!Object.keys(source).length && typeof value !== 'string') {\n\t\treturn undefined;\n\t}\n\tif (typeof value === 'string') {\n\t\tconst summary = cleanText(value, 500);\n\t\treturn summary ? {\n\t\t\tsource: 'manual',\n\t\t\ttitle: summary,\n\t\t\tsummary,\n\t\t\tkeywords: supportTextTokens(summary)\n\t\t} : undefined;\n\t}\n\tconst metadata = cleanObject(source.metadata);\n\tconst runSourceIds = cleanObject(source.sourceIds || source.source_ids || metadata.sourceIds || metadata.source_ids);\n\tconst diagnosis = cleanObject(source.diagnosisGate || source.diagnosis_gate || source.supportV5DiagnosisGate || source.support_v5_diagnosis_gate || metadata.diagnosisGate || metadata.diagnosis_gate);\n\tconst sourceIds = cleanObject(source.sourceIds || source.source_ids || metadata.sourceIds || metadata.source_ids);\n\tconst sourceText = [\n\t\tsource.title,\n\t\tsource.summary,\n\t\tsource.message,\n\t\tsource.description,\n\t\tsource.reason,\n\t\tsource.commitMessage,\n\t\tsource.commit_message,\n\t\tdiagnosis.issue_case?.customer_complaint,\n\t\tdiagnosis.accepted_hypothesis?.statement\n\t].filter(Boolean).join(' ');\n\tconst ownerFiles = cleanList(\n\t\tsource.ownerFiles\n\t\t|| source.owner_files\n\t\t|| source.files\n\t\t|| diagnosis.owner_files\n\t\t|| diagnosis.ownerFiles\n\t\t|| metadata.ownerFiles\n\t\t|| metadata.owner_files,\n\t\t12,\n\t\t300\n\t).map(normalizeOwnerFilePath).filter(Boolean);\n\tconst issueClass = cleanText(\n\t\tsource.issueClass\n\t\t|| source.issue_class\n\t\t|| diagnosis.issue_class\n\t\t|| diagnosis.issueClass\n\t\t|| metadata.issueClass\n\t\t|| metadata.issue_class,\n\t\t80\n\t);\n\tconst candidate: ResolveIOSupportSimilarCaseCandidate = {\n\t\tsource: normalizeSupportSimilarCaseSource(source.source || source.type || source.runSource),\n\t\tid: cleanText(source.id || source._id || source.runId || source.run_id, 160),\n\t\tticketNumber: cleanText(source.ticketNumber || source.ticket_number || source.sourceTicketNumber || sourceIds.ticketNumber || runSourceIds.ticketNumber, 80),\n\t\ttitle: cleanText(source.title || source.name || source.summary, 300),\n\t\toutcome: cleanText(source.outcome || source.status || source.outcomeLabel || source.outcome_label, 80),\n\t\tissueClass: normalizeIssueClass(issueClass) || cleanText(issueClass, 80),\n\t\townerFiles,\n\t\tcommitSha: cleanText(source.commitSha || source.commit_sha || source.sha || source.sourceCommitSha || source.source_commit_sha, 80),\n\t\tcommitMessage: cleanText(source.commitMessage || source.commit_message || source.message, 300),\n\t\treason: cleanText(source.reason || source.matchReason || source.match_reason, 500),\n\t\tsummary: cleanText(source.summary || source.description || source.message || sourceText, 800),\n\t\tkeywords: cleanList(source.keywords || source.tags, 20, 80).concat(supportTextTokens(sourceText)).slice(0, 40),\n\t\tupdatedAt: isoNow(source.updatedAt || source.updated_at || source.recordedAt || source.recorded_at || source.createdAt || source.created_at),\n\t\tmetadata\n\t};\n\tif (!candidate.id && !candidate.ticketNumber && !candidate.title && !candidate.commitSha && !candidate.summary) {\n\t\treturn undefined;\n\t}\n\tif (candidate.commitSha && candidate.source === 'manual') {\n\t\tcandidate.source = 'git_commit';\n\t}\n\tif (candidate.ticketNumber && candidate.source === 'manual') {\n\t\tcandidate.source = 'support_ticket';\n\t}\n\treturn candidate;\n}\n\nexport function selectResolveIOSupportSimilarCaseHints(input: ResolveIOSupportSimilarCaseSelectionInput = {}): ResolveIOSupportSimilarCaseSelection {\n\tconst issueClass = normalizeIssueClass(input.issueClass);\n\tconst ownerFiles = cleanList(input.ownerFiles, 12, 300).map(normalizeOwnerFilePath).filter(Boolean);\n\tconst ownerFileSet = new Set(ownerFiles);\n\tconst ownerDirs = new Set(ownerFiles.map(supportOwnerFileDirectory).filter(Boolean));\n\tconst textTokens = new Set(supportTextTokens(input.text));\n\tconst limit = Math.max(1, Math.min(12, Number(input.limit || 6)));\n\tconst normalized = (Array.isArray(input.candidates) ? input.candidates : [])\n\t\t.map(normalizeResolveIOSupportSimilarCaseCandidate)\n\t\t.filter((candidate): candidate is ResolveIOSupportSimilarCaseCandidate => !!candidate);\n\tconst ranked: ResolveIOSupportSimilarCaseRankedHint[] = [];\n\tlet ignoredCount = 0;\n\tfor (const candidate of normalized) {\n\t\tconst outcomeKnown = !!candidate.outcome;\n\t\tconst accepted = supportOutcomeLooksAccepted(candidate.outcome) || (!!candidate.commitSha && !supportOutcomeLooksRejected(candidate.outcome));\n\t\tif (outcomeKnown && !accepted) {\n\t\t\tignoredCount += 1;\n\t\t\tcontinue;\n\t\t}\n\t\tconst signals: string[] = [];\n\t\tlet score = accepted ? 100 : 40;\n\t\tconst candidateIssueClass = normalizeIssueClass(candidate.issueClass);\n\t\tif (issueClass && candidateIssueClass && issueClass === candidateIssueClass) {\n\t\t\tscore += 45;\n\t\t\tsignals.push(`issue_class:${issueClass}`);\n\t\t}\n\t\tconst exactOwnerOverlap = candidate.ownerFiles.filter((file) => ownerFileSet.has(normalizeOwnerFilePath(file)));\n\t\tif (exactOwnerOverlap.length) {\n\t\t\tscore += 35 + Math.min(20, exactOwnerOverlap.length * 5);\n\t\t\tsignals.push(`owner_file_overlap:${exactOwnerOverlap.slice(0, 3).join(',')}`);\n\t\t}\n\t\tconst directoryOverlap = candidate.ownerFiles\n\t\t\t.map(supportOwnerFileDirectory)\n\t\t\t.filter((dir) => dir && ownerDirs.has(dir));\n\t\tif (directoryOverlap.length && !exactOwnerOverlap.length) {\n\t\t\tscore += 18;\n\t\t\tsignals.push(`owner_dir_overlap:${Array.from(new Set(directoryOverlap)).slice(0, 2).join(',')}`);\n\t\t}\n\t\tconst candidateTokens = new Set([...(candidate.keywords || []), ...supportTextTokens([candidate.title, candidate.summary, candidate.commitMessage].join(' '))]);\n\t\tconst tokenOverlap = Array.from(candidateTokens).filter((token) => textTokens.has(token)).slice(0, 6);\n\t\tif (tokenOverlap.length) {\n\t\t\tscore += Math.min(18, tokenOverlap.length * 3);\n\t\t\tsignals.push(`weak_text_overlap:${tokenOverlap.join(',')}`);\n\t\t}\n\t\tif (candidate.commitSha) {\n\t\t\tscore += 8;\n\t\t\tsignals.push('commit_linked');\n\t\t}\n\t\tif (!signals.length && score < 100) {\n\t\t\tignoredCount += 1;\n\t\t\tcontinue;\n\t\t}\n\t\tranked.push({\n\t\t\tid: candidate.id,\n\t\t\tticketNumber: candidate.ticketNumber,\n\t\t\ttitle: candidate.title,\n\t\t\toutcome: candidate.outcome || (candidate.commitSha ? 'commit_hint' : ''),\n\t\t\tissueClass: candidateIssueClass || candidate.issueClass,\n\t\t\townerFiles: candidate.ownerFiles.slice(0, 8),\n\t\t\tcommitSha: candidate.commitSha,\n\t\t\tcommitMessage: candidate.commitMessage,\n\t\t\treason: signals.join('; '),\n\t\t\tsource: candidate.source,\n\t\t\tscore,\n\t\t\tstructuredSignals: signals,\n\t\t\tadvisoryOnly: true\n\t\t});\n\t}\n\tconst sorted = ranked\n\t\t.sort((a, b) => b.score - a.score || String(b.ticketNumber || b.commitSha || '').localeCompare(String(a.ticketNumber || a.commitSha || '')))\n\t\t.slice(0, limit);\n\treturn {\n\t\tranked: sorted,\n\t\tsimilarTickets: sorted.filter((hint) => hint.source !== 'git_commit').slice(0, limit),\n\t\tsimilarCommits: sorted.filter((hint) => hint.source === 'git_commit' || !!hint.commitSha).slice(0, limit),\n\t\tignoredCount,\n\t\tgeneratedAt: isoNow(input.now)\n\t};\n}\n\nconst SUPPORT_DIAGNOSIS_GATE_REQUIRED_FIELDS = [\n\t'issue_case',\n\t'issue_class',\n\t'accepted_hypothesis',\n\t'rejected_alternatives',\n\t'failing_path',\n\t'owner_files',\n\t'proof_plan',\n\t'evidence',\n\t'status'\n];\n\nconst SUPPORT_DIAGNOSIS_REQUIRED_EVIDENCE = [\n\t'customer complaint, expected result, observed result, route/module, and account/customer context',\n\t'reproduction proof or blocked-reproduction reason',\n\t'one accepted falsifiable root-cause hypothesis with evidence',\n\t'rejected alternatives showing the runner did not guess',\n\t'frontend/backend/shared failing path',\n\t'small exact owner_files set',\n\t'before/action/after business proof plan',\n\t'AIQaBusinessAssertion acceptance requirement'\n];\n\nconst SUPPORT_DIAGNOSIS_FORBIDDEN_ACTIONS = [\n\t'Do not edit source, package, generated, fixture, QA artifact, or local data files while building the diagnosis gate.',\n\t'Do not use similar tickets or commits as proof; they are advisory hints only.',\n\t'Do not broaden owner_files from similar hints without fresh evidence from the current ticket.',\n\t'Do not accept route load, screenshot, scorecard, wow score, or model claim as ticket acceptance.',\n\t'Do not run product-code repair until SupportDiagnosisGate validates.'\n];\n\nconst SUPPORT_ISSUE_CLASS_PROBE_CATALOG: ResolveIOSupportIssueClassProbeCatalogEntry[] = [{\n\tissue_class: 'no_op_submit',\n\tprobe_type: 'issue_class_probe',\n\tfailure_class: 'business',\n\taction: 'Submit the reported form/action and prove a persisted state change or expected validation result.',\n\tproof_required: 'Before/action/after DOM or data proof that the submit is no longer a no-op.',\n\trequired_artifacts: ['before form state', 'submit action trace', 'post-submit DOM/data proof', 'method or network result'],\n\tacceptance_gate: 'aiqa_business_assertion',\n\tfalse_pass_blockers: ['route loaded only', 'button clicked without persisted result', 'model claim without DOM/data proof']\n}, {\n\tissue_class: 'missing_wrong_data',\n\tprobe_type: 'issue_class_probe',\n\tfailure_class: 'business',\n\taction: 'Load the named record/list and compare visible data to the expected persisted source.',\n\tproof_required: 'Visible data and persisted data match the customer expectation.',\n\trequired_artifacts: ['expected source record', 'visible DOM/data snapshot', 'persisted data comparison'],\n\tacceptance_gate: 'aiqa_business_assertion',\n\tfalse_pass_blockers: ['non-empty page only', 'wrong account/customer context', 'sample substitute for named record']\n}, {\n\tissue_class: 'filter_query_mismatch',\n\tprobe_type: 'issue_class_probe',\n\tfailure_class: 'business',\n\taction: 'Apply the reported filter/query inputs and assert included/excluded rows or counts.',\n\tproof_required: 'Returned rows/counts match the expected dataset and exclude the wrong records.',\n\trequired_artifacts: ['filter input trace', 'included/excluded row proof', 'query or publication result proof'],\n\tacceptance_gate: 'aiqa_business_assertion',\n\tfalse_pass_blockers: ['filter control visible only', 'route screenshot without row proof']\n}, {\n\tissue_class: 'invoice_pdf_export',\n\tprobe_type: 'issue_class_probe',\n\tfailure_class: 'business',\n\taction: 'Generate the invoice/PDF/export and inspect the generated artifact.',\n\tproof_required: 'Generated artifact contains the expected customer-visible rows, totals, fields, or file output.',\n\trequired_artifacts: ['export trigger trace', 'generated file artifact path', 'parsed artifact content proof'],\n\tacceptance_gate: 'aiqa_business_assertion',\n\tfalse_pass_blockers: ['download button visible only', 'unparsed file exists only']\n}, {\n\tissue_class: 'upload_import',\n\tprobe_type: 'issue_class_probe',\n\tfailure_class: 'business',\n\taction: 'Run the upload/import workflow with a representative file and assert parsed plus persisted results.',\n\tproof_required: 'Import result message and persisted rows/counts changed as expected.',\n\trequired_artifacts: ['input file fixture', 'import result message', 'persisted row/count delta'],\n\tacceptance_gate: 'aiqa_business_assertion',\n\tfalse_pass_blockers: ['file picker opens only', 'upload toast without persisted delta']\n}, {\n\tissue_class: 'route_auth_hydration',\n\tprobe_type: 'issue_class_probe',\n\tfailure_class: 'route',\n\taction: 'Open the route as the affected user and prove authenticated hydration reaches the functional screen.',\n\tproof_required: 'Hydrated route shows required controls/data for the affected account and no shell-only fallback.',\n\trequired_artifacts: ['auth context', 'hydrated DOM proof', 'console/network error log'],\n\tacceptance_gate: 'aiqa_business_assertion',\n\tfalse_pass_blockers: ['home route proof', 'login shell proof', 'header-only screenshot']\n}, {\n\tissue_class: 'slow_query_performance',\n\tprobe_type: 'issue_class_probe',\n\tfailure_class: 'business',\n\taction: 'Run the reported query/workflow with timing/log evidence before and after the fix.',\n\tproof_required: 'Timing improves or meets target while result equivalence is preserved.',\n\trequired_artifacts: ['before timing', 'after timing', 'result equivalence proof', 'query/log trace'],\n\tacceptance_gate: 'aiqa_business_assertion',\n\tfalse_pass_blockers: ['compile pass only', 'single timing without before/after comparison']\n}];\n\nfunction normalizeSupportSimilarCaseSelection(value: any, input: ResolveIOSupportSimilarCaseSelectionInput): ResolveIOSupportSimilarCaseSelection {\n\tconst object = cleanObject(value);\n\tif (Array.isArray(value)) {\n\t\treturn selectResolveIOSupportSimilarCaseHints({\n\t\t\t...input,\n\t\t\tcandidates: value\n\t\t});\n\t}\n\tif (object.ranked || object.similarTickets || object.similar_tickets || object.similarCommits || object.similar_commits) {\n\t\tconst normalizeRanked = (entries: any): ResolveIOSupportSimilarCaseRankedHint[] => (Array.isArray(entries) ? entries : [])\n\t\t\t.map((entry): ResolveIOSupportSimilarCaseRankedHint | undefined => {\n\t\t\t\tconst candidate = normalizeResolveIOSupportSimilarCaseCandidate(entry);\n\t\t\t\tif (!candidate) {\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t\tconst signals = cleanList((entry || {}).structuredSignals || (entry || {}).structured_signals, 10, 160);\n\t\t\t\treturn {\n\t\t\t\t\tid: candidate.id,\n\t\t\t\t\tticketNumber: candidate.ticketNumber,\n\t\t\t\t\ttitle: candidate.title,\n\t\t\t\t\toutcome: candidate.outcome,\n\t\t\t\t\tissueClass: normalizeIssueClass(candidate.issueClass) || candidate.issueClass,\n\t\t\t\t\townerFiles: candidate.ownerFiles.slice(0, 8),\n\t\t\t\t\tcommitSha: candidate.commitSha,\n\t\t\t\t\tcommitMessage: candidate.commitMessage,\n\t\t\t\t\treason: cleanText((entry || {}).reason || signals.join('; '), 500),\n\t\t\t\t\tsource: candidate.source,\n\t\t\t\t\tscore: Number((entry || {}).score || 0),\n\t\t\t\t\tstructuredSignals: signals,\n\t\t\t\t\tadvisoryOnly: true as const\n\t\t\t\t};\n\t\t\t})\n\t\t\t.filter((entry): entry is ResolveIOSupportSimilarCaseRankedHint => Boolean(entry))\n\t\t\t.slice(0, Math.max(1, Math.min(12, Number(input.limit || 6))));\n\t\tconst rankedHints = normalizeRanked(object.ranked);\n\t\tconst ticketHints = normalizeRanked(object.similarTickets || object.similar_tickets);\n\t\tconst commitHints = normalizeRanked(object.similarCommits || object.similar_commits);\n\t\tconst merged = rankedHints.length\n\t\t\t? rankedHints\n\t\t\t: [...ticketHints, ...commitHints]\n\t\t\t\t.sort((a, b) => b.score - a.score)\n\t\t\t\t.slice(0, Math.max(1, Math.min(12, Number(input.limit || 6))));\n\t\treturn {\n\t\t\tranked: merged,\n\t\t\tsimilarTickets: ticketHints.length ? ticketHints : merged.filter((hint) => hint.source !== 'git_commit'),\n\t\t\tsimilarCommits: commitHints.length ? commitHints : merged.filter((hint) => hint.source === 'git_commit' || !!hint.commitSha),\n\t\t\tignoredCount: Number(object.ignoredCount || object.ignored_count || 0),\n\t\t\tgeneratedAt: cleanText(object.generatedAt || object.generated_at, 120) || isoNow(input.now)\n\t\t};\n\t}\n\treturn selectResolveIOSupportSimilarCaseHints(input);\n}\n\nexport function buildResolveIOSupportDiagnosisEvidencePack(\n\tinput: ResolveIOSupportDiagnosisEvidencePackInput = {}\n): ResolveIOSupportDiagnosisEvidencePack {\n\tconst bundle = input.bundle;\n\tconst activeMicrotask = bundle\n\t\t? selectResolveIOSupportV5ActiveMicrotask(bundle.supportV5MicrotaskLedger || [], bundle.supportV5ActiveMicrotaskId)\n\t\t: undefined;\n\tconst diagnosisSource = input.diagnosisGate || bundle?.supportV5DiagnosisGate;\n\tconst validation = validateResolveIOSupportDiagnosisGate(diagnosisSource);\n\tconst normalizedDiagnosis = validation.normalized;\n\tconst proofMatrix = validation.proofMatrix || buildResolveIOSupportDiagnosisProofMatrix(diagnosisSource, input.now);\n\tconst ownerFileHints = cleanList([\n\t\t...cleanList(input.ownerFiles, 16, 500),\n\t\t...cleanList(normalizedDiagnosis?.owner_files, 16, 500),\n\t\t...cleanList(activeMicrotask?.targetFiles, 8, 500)\n\t], 16, 500).map(normalizeOwnerFilePath).filter(Boolean);\n\tconst issueClassHint = normalizeIssueClass(input.issueClass || normalizedDiagnosis?.issue_class);\n\tconst text = cleanText([\n\t\tinput.text,\n\t\tbundle?.supportV5ScopeDigest,\n\t\tbundle?.supportV5SupervisorState?.currentGoal,\n\t\tinput.ticketContext?.title,\n\t\tinput.ticketContext?.subject,\n\t\tinput.ticketContext?.summary\n\t].filter(Boolean).join(' '), 3000);\n\tconst similarInput: ResolveIOSupportSimilarCaseSelectionInput = {\n\t\tissueClass: issueClassHint || normalizedDiagnosis?.issue_class,\n\t\townerFiles: ownerFileHints,\n\t\ttext,\n\t\tcandidates: Array.isArray(input.similarCaseHints) ? input.similarCaseHints : [],\n\t\tlimit: 6,\n\t\tnow: input.now\n\t};\n\tconst similarCaseSelection = normalizeSupportSimilarCaseSelection(input.similarCaseHints, similarInput);\n\tconst status: ResolveIOSupportDiagnosisEvidencePackStatus = validation.valid\n\t\t? 'diagnosis_ready'\n\t\t: validation.status === 'blocked'\n\t\t\t? 'blocked'\n\t\t\t: 'needs_diagnosis';\n\tconst generatedAt = isoNow(input.now);\n\treturn {\n\t\tpackId: `support-diagnosis-pack-${hashResolveIOSupportV5Evidence({\n\t\t\tstatus,\n\t\t\tissueClassHint,\n\t\t\townerFileHints,\n\t\t\tblockers: validation.blockers,\n\t\t\ttext,\n\t\t\tactiveMicrotaskId: activeMicrotask?.microtaskId\n\t\t})}`,\n\t\tstatus,\n\t\treadOnly: true,\n\t\tsourceEditsAllowed: false,\n\t\trootCauseFirstRequired: true,\n\t\trequiredOutputKey: 'support_diagnosis_gate',\n\t\trequiredFields: SUPPORT_DIAGNOSIS_GATE_REQUIRED_FIELDS,\n\t\trequiredEvidence: SUPPORT_DIAGNOSIS_REQUIRED_EVIDENCE,\n\t\tforbiddenActions: SUPPORT_DIAGNOSIS_FORBIDDEN_ACTIONS,\n\t\tdiagnosisValid: validation.valid,\n\t\tdiagnosisStatus: validation.status,\n\t\tvalidationBlockers: validation.blockers,\n\t\tissueClassHint: issueClassHint || undefined,\n\t\townerFileHints: ownerFileHints.slice(0, 12),\n\t\tactiveMicrotaskId: activeMicrotask?.microtaskId,\n\t\tsimilarCaseSelection,\n\t\tissueClassProbeCatalog: SUPPORT_ISSUE_CLASS_PROBE_CATALOG,\n\t\tproofMatrix,\n\t\tstructuredFacts: {\n\t\t\tcurrentDiagnosisStatus: validation.status,\n\t\t\tcurrentDiagnosisValid: validation.valid,\n\t\t\tproofMatrixStatus: proofMatrix.status,\n\t\t\tproofMatrixId: proofMatrix.matrixId,\n\t\t\tproofMatrixBlockerCount: proofMatrix.blockers.length,\n\t\t\townerFileCoverageReady: proofMatrix.ownerFileCoverage.every((entry) => entry.covered),\n\t\t\tcoveredOwnerFileCount: proofMatrix.ownerFileCoverage.filter((entry) => entry.covered).length,\n\t\t\treproductionStatus: normalizedDiagnosis?.issue_case.reproduction_status,\n\t\t\tevidenceTypes: validation.evidenceQuality?.evidenceTypes || [],\n\t\t\treproductionEvidenceTypes: validation.evidenceQuality?.reproductionEvidenceTypes || [],\n\t\t\trootCauseEvidenceTypes: validation.evidenceQuality?.rootCauseEvidenceTypes || [],\n\t\t\tartifactBackedEvidenceCount: validation.evidenceQuality?.artifactBackedEvidenceCount || 0,\n\t\t\tsimilarHintCount: similarCaseSelection.ranked.length,\n\t\t\tsimilarHintsAdvisoryOnly: true,\n\t\t\tproductRepairBlockedUntilDiagnosisPassed: validation.valid !== true\n\t\t},\n\t\tgeneratedAt\n\t};\n}\n\nfunction inferResolveIOSupportIssueClassFromText(value: any): ResolveIOSupportIssueClass {\n\tconst text = cleanText(value, 3000).toLowerCase();\n\tif (/\\b(upload|import|csv|spreadsheet|attachment|file)\\b/.test(text)) {\n\t\treturn 'upload_import';\n\t}\n\tif (/\\b(invoice|pdf|export|print|printed|report|download)\\b/.test(text)) {\n\t\treturn 'invoice_pdf_export';\n\t}\n\tif (/\\b(filter|query|search|wrong customer|wrong account|mismatch)\\b/.test(text)) {\n\t\treturn 'filter_query_mismatch';\n\t}\n\tif (/\\b(route|auth|permission|login|hydrate|hydration|blank page|shell)\\b/.test(text)) {\n\t\treturn 'route_auth_hydration';\n\t}\n\tif (/\\b(slow|timeout|performance|latency|takes too long|hang)\\b/.test(text)) {\n\t\treturn 'slow_query_performance';\n\t}\n\tif (/\\b(submit|save|click|button|no-op|does nothing|not saving)\\b/.test(text)) {\n\t\treturn 'no_op_submit';\n\t}\n\treturn 'missing_wrong_data';\n}\n\nfunction firstSupportDiagnosisText(...values: any[]): string {\n\tfor (const value of values) {\n\t\tconst text = cleanText(value, 1400);\n\t\tif (text && !supportDiagnosisTextLooksGeneric(text, 12)) {\n\t\t\treturn text;\n\t\t}\n\t}\n\treturn '';\n}\n\nfunction extractSupportDiagnosisLineValue(text: string, label: string, max = 1000): string {\n\tconst escaped = label.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n\tconst match = String(text || '').match(new RegExp(`(?:^|\\\\n)\\\\s*${escaped}\\\\s*:\\\\s*([^\\\\n]+)`, 'i'));\n\treturn cleanText(match?.[1], max);\n}\n\nfunction inferSupportDiagnosisRouteModuleFromOwners(ownerFiles: string[], text: string): string {\n\tconst joinedOwners = ownerFiles.join('\\n');\n\tif (/part\\/detail|part-detail|inventory/i.test(`${joinedOwners}\\n${text}`)) {\n\t\treturn 'H2SKO part inventory detail / inventory print workflow';\n\t}\n\tif (/document\\/pick-ticket|pick-ticket/i.test(joinedOwners)) {\n\t\treturn 'H2SKO pick-ticket print/report workflow';\n\t}\n\tif (/invoice/i.test(`${joinedOwners}\\n${text}`)) {\n\t\treturn 'invoice/PDF/export workflow';\n\t}\n\tif (/upload|import/i.test(`${joinedOwners}\\n${text}`)) {\n\t\treturn 'upload/import workflow';\n\t}\n\treturn firstSupportDiagnosisText(extractSupportDiagnosisLineValue(text, 'Route'), extractSupportDiagnosisLineValue(text, 'Module'));\n}\n\nfunction buildSupportDiagnosisProofPlanScaffold(issueClass: ResolveIOSupportIssueClass, complaint: string, routeModule: string): ResolveIOSupportDiagnosisProofPlan {\n\tconst target = cleanText(routeModule || complaint || 'the reported workflow', 300);\n\tif (issueClass === 'upload_import') {\n\t\treturn {\n\t\t\tbefore: 'Capture the target records/counts before re-running the customer import.',\n\t\t\tbefore_state_unavailable_reason: '',\n\t\t\taction: `Run the same upload/import path for ${target} with the staged customer attachment or an equivalent ticket fixture.`,\n\t\t\tafter: 'Every expected imported row is attached/persisted with the correct relationships and no silently skipped rows.',\n\t\t\tbusiness_assertion: 'The import creates or updates all ticket-expected records, not just a successful upload shell.',\n\t\t\troute: target,\n\t\t\tdata_assertion: 'Mongo/DOM row counts and representative imported records match the attachment contents.',\n\t\t\tartifact_expectation: 'before count JSON, import action trace/screenshot, after count JSON, representative imported record proof',\n\t\t\tbusiness_proof_contract: {\n\t\t\t\tissue_class: issueClass,\n\t\t\t\tsetup_state: 'Customer attachment or localhost fixture is available before import.',\n\t\t\t\taction_under_test: 'Execute the import workflow end to end.',\n\t\t\t\texpected_business_state_change: 'All expected rows/relationships exist after import.',\n\t\t\t\tprohibited_false_pass: 'Upload completion, route load, screenshot, scorecard, or model claim alone is not acceptance.',\n\t\t\t\tproof_artifacts: ['before Mongo/data snapshot', 'import action trace or screenshot', 'after Mongo/data snapshot', 'row-level mismatch report'],\n\t\t\t\tdata_or_dom_assertion: 'Imported record counts and key fields match the source attachment.'\n\t\t\t}\n\t\t};\n\t}\n\tconst action = issueClass === 'invoice_pdf_export'\n\t\t? `Run the print/report/export path for ${target} using the named customer record.`\n\t\t: issueClass === 'filter_query_mismatch'\n\t\t\t? `Run the filtered/search/query workflow for ${target} using the named customer/account context.`\n\t\t\t: `Run the exact customer-reported workflow for ${target}.`;\n\treturn {\n\t\tbefore: 'Capture the customer-reported wrong/missing value before repair using the staged ticket context.',\n\t\tbefore_state_unavailable_reason: '',\n\t\taction,\n\t\tafter: 'The same workflow shows the expected customer/account data and no longer shows the wrong value.',\n\t\tbusiness_assertion: 'The reported business value is correct after the action, not merely that the route loaded.',\n\t\troute: target,\n\t\tdata_assertion: 'DOM/print/report output and persisted source data agree for the named customer record.',\n\t\tartifact_expectation: 'before screenshot/data snapshot, action trace, after screenshot/data snapshot, AIQaBusinessAssertion JSON',\n\t\tbusiness_proof_contract: {\n\t\t\tissue_class: issueClass,\n\t\t\tsetup_state: 'The named customer record is present in the staged support data before action.',\n\t\t\taction_under_test: action,\n\t\t\texpected_business_state_change: 'The visible/output business data matches the expected persisted value.',\n\t\t\tprohibited_false_pass: 'Route load, screenshot-only proof, scorecard pass, or model claim alone is not acceptance.',\n\t\t\tproof_artifacts: ['before DOM/data snapshot', 'action trace/screenshot', 'after DOM/data snapshot', 'Mongo or persisted data comparison'],\n\t\t\tdata_or_dom_assertion: 'The displayed/output value matches the expected persisted customer value.'\n\t\t}\n\t};\n}\n\nfunction buildResolveIOSupportDiagnosisRetryScaffold(input: {\n\tbundle?: ResolveIOSupportV5StateBundle;\n\tdiagnosisGate?: any;\n\tevidencePack?: ResolveIOSupportDiagnosisEvidencePack;\n\tnow?: Date | string;\n}): Record<string, any> {\n\tconst existing = normalizeResolveIOSupportDiagnosisGate(input.diagnosisGate, input.now);\n\tconst scopeText = cleanText([\n\t\tinput.bundle?.supportV5ScopeDigest,\n\t\tinput.bundle?.supportV5SupervisorState?.currentGoal,\n\t\tinput.bundle?.supportV5SupervisorState?.approvedScope\n\t].filter(Boolean).join('\\n'), 3000);\n\tconst ownerFiles = Array.from(new Set([\n\t\t...cleanList(existing?.owner_files, 8, 500),\n\t\t...cleanList(input.evidencePack?.ownerFileHints, 8, 500)\n\t].map(normalizeOwnerFilePath).filter(Boolean))).slice(0, 8);\n\tconst complaint = firstSupportDiagnosisText(\n\t\texisting?.issue_case.customer_complaint,\n\t\textractSupportDiagnosisLineValue(scopeText, 'Customer complaint'),\n\t\textractSupportDiagnosisLineValue(scopeText, 'Issue'),\n\t\textractSupportDiagnosisLineValue(scopeText, 'Approved scope'),\n\t\tscopeText\n\t);\n\tconst issueClass = normalizeIssueClass(existing?.issue_class || input.evidencePack?.issueClassHint)\n\t\t|| inferResolveIOSupportIssueClassFromText(`${scopeText}\\n${ownerFiles.join('\\n')}`);\n\tconst routeModule = firstSupportDiagnosisText(\n\t\texisting?.issue_case.route_module,\n\t\tinferSupportDiagnosisRouteModuleFromOwners(ownerFiles, scopeText),\n\t\textractSupportDiagnosisLineValue(scopeText, 'Route'),\n\t\textractSupportDiagnosisLineValue(scopeText, 'Module')\n\t);\n\tconst expected = firstSupportDiagnosisText(\n\t\texisting?.issue_case.expected_result,\n\t\textractSupportDiagnosisLineValue(scopeText, 'Expected'),\n\t\tcomplaint ? `The customer-reported workflow should use the correct business data for: ${complaint}` : ''\n\t);\n\tconst observed = firstSupportDiagnosisText(\n\t\texisting?.issue_case.observed_result,\n\t\textractSupportDiagnosisLineValue(scopeText, 'Observed'),\n\t\tcomplaint ? `The observed behavior is the customer report that needs reproduction: ${complaint}` : ''\n\t);\n\tconst accountContext = firstSupportDiagnosisText(\n\t\texisting?.issue_case.account_customer_context,\n\t\textractSupportDiagnosisLineValue(scopeText, 'Client'),\n\t\textractSupportDiagnosisLineValue(scopeText, 'Customer'),\n\t\textractSupportDiagnosisLineValue(scopeText, 'Reporter'),\n\t\tinput.bundle?.supportV5SupervisorState?.currentGoal\n\t);\n\tconst proofPlan = existing?.proof_plan && (existing.proof_plan.action || existing.proof_plan.business_assertion)\n\t\t? existing.proof_plan\n\t\t: buildSupportDiagnosisProofPlanScaffold(issueClass, complaint, routeModule);\n\treturn {\n\t\tinstruction: 'Starter only. Replace scaffolded guesses with verified ticket/code/browser/Mongo/log evidence before returning support_diagnosis_gate. Do not copy TODO/placeholder text and do not leave strings blank.',\n\t\tsupport_diagnosis_gate: {\n\t\t\tissue_case: {\n\t\t\t\tcustomer_complaint: complaint || 'TODO: restate the customer complaint from the staged ticket/email.',\n\t\t\t\texpected_result: expected || 'TODO: state the customer-visible expected business result.',\n\t\t\t\tobserved_result: observed || 'TODO: state the reproduced or classified wrong behavior.',\n\t\t\t\troute_module: routeModule || 'TODO: identify the exact route/module/workflow.',\n\t\t\t\taccount_customer_context: accountContext || 'TODO: name the affected client/account/user context.',\n\t\t\t\treproduction_status: existing?.issue_case.reproduction_status || 'blocked',\n\t\t\t\treproduction_blocker: existing?.issue_case.reproduction_blocker || 'TODO: replace with blocker only if reproduction cannot be performed.'\n\t\t\t},\n\t\t\tissue_class: issueClass,\n\t\t\taccepted_hypothesis: {\n\t\t\t\tstatement: firstSupportDiagnosisText(existing?.accepted_hypothesis.statement) || 'TODO: one falsifiable root-cause theory backed by current-ticket evidence.',\n\t\t\t\tfalsifiable_test: firstSupportDiagnosisText(existing?.accepted_hypothesis.falsifiable_test) || 'TODO: exact test that would prove this hypothesis wrong.',\n\t\t\t\tevidence: cleanList(existing?.accepted_hypothesis.evidence, 6, 800)\n\t\t\t},\n\t\t\trejected_alternatives: cleanList(existing?.rejected_alternatives, 4, 800),\n\t\t\tfailing_path: existing?.failing_path || {\n\t\t\t\tfrontend: '',\n\t\t\t\tbackend: '',\n\t\t\t\tshared_library: '',\n\t\t\t\tdata_query: '',\n\t\t\t\tdescription: routeModule || complaint || ''\n\t\t\t},\n\t\t\towner_files: ownerFiles,\n\t\t\tproof_plan: proofPlan,\n\t\t\tevidence: existing?.evidence || [],\n\t\t\tstatus: 'incomplete'\n\t\t}\n\t};\n}\n\nfunction normalizeSupportDiagnosisBusinessProofContract(value: any, issueClassHint: any): ResolveIOSupportDiagnosisBusinessProofContract | undefined {\n\tconst source = cleanObject(value);\n\tif (!Object.keys(source).length) {\n\t\treturn undefined;\n\t}\n\tconst issueClass = normalizeIssueClass(source.issue_class || source.issueClass || issueClassHint)\n\t\t|| normalizeIssueClass(issueClassHint)\n\t\t|| 'missing_wrong_data';\n\tconst expectedBusinessStateChange = pickText(source, ['expected_business_state_change', 'expectedBusinessStateChange', 'expected_change', 'expectedChange', 'after'], 1000);\n\tconst dataOrDomAssertion = pickText(source, [\n\t\t'data_or_dom_assertion',\n\t\t'dataOrDomAssertion',\n\t\t'dom_data_assertion',\n\t\t'domDataAssertion',\n\t\t'data_assertion',\n\t\t'dataAssertion',\n\t\t'dom_assertion',\n\t\t'domAssertion',\n\t\t'assertion'\n\t], 1000);\n\tconst proofArtifacts = cleanList(source.proof_artifacts || source.proofArtifacts || source.artifacts || source.artifact_paths || source.artifactPaths, 10, 500);\n\tconst hasPathLikeArtifactName = proofArtifacts.some((artifact) => /[/.\\\\]|json|artifact|aiqa|evidence/i.test(artifact));\n\tif (proofArtifacts.length && hasPathLikeArtifactName && proofArtifacts.every(supportProofArtifactLooksVague)) {\n\t\tconst derivedArtifact = firstSupportDiagnosisText(\n\t\t\tdataOrDomAssertion ? `DOM/data proof artifact: ${dataOrDomAssertion}` : '',\n\t\t\texpectedBusinessStateChange ? `before/after business data proof artifact: ${expectedBusinessStateChange}` : ''\n\t\t);\n\t\tif (derivedArtifact && !proofArtifacts.includes(derivedArtifact)) {\n\t\t\tproofArtifacts.push(derivedArtifact);\n\t\t}\n\t}\n\treturn {\n\t\tissue_class: issueClass,\n\t\tsetup_state: pickText(source, ['setup_state', 'setupState', 'before', 'precondition'], 1000),\n\t\taction_under_test: pickText(source, ['action_under_test', 'actionUnderTest', 'action', 'steps'], 1000),\n\t\texpected_business_state_change: expectedBusinessStateChange,\n\t\tprohibited_false_pass: pickText(source, ['prohibited_false_pass', 'prohibitedFalsePass', 'false_pass', 'falsePass'], 1000),\n\t\tproof_artifacts: proofArtifacts,\n\t\tdata_or_dom_assertion: dataOrDomAssertion\n\t};\n}\n\nfunction supportDiagnosisNarrativeText(value: any, max = 1200): string {\n\tif (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n\t\treturn cleanText(value, max);\n\t}\n\tif (Array.isArray(value)) {\n\t\treturn cleanList(value, 12, Math.max(80, Math.floor(max / 2))).join(' ').slice(0, max);\n\t}\n\tconst source = cleanObject(value);\n\tif (!Object.keys(source).length) {\n\t\treturn '';\n\t}\n\tconst hypothesis = cleanText(source.hypothesis, Math.floor(max / 2));\n\tconst whyRejected = cleanText(source.why_rejected || source.whyRejected || source.reason_rejected || source.reasonRejected || source.rejection_reason || source.rejectionReason || source.reason, Math.floor(max / 2));\n\tif (hypothesis && whyRejected) {\n\t\treturn `${hypothesis} rejected because ${whyRejected}`.slice(0, max);\n\t}\n\tconst direct = pickText(source, [\n\t\t'request_classification',\n\t\t'requestClassification',\n\t\t'classification_rationale',\n\t\t'classificationRationale',\n\t\t'behavior_type',\n\t\t'behaviorType',\n\t\t'summary',\n\t\t'detail',\n\t\t'description',\n\t\t'rationale',\n\t\t'why',\n\t\t'statement',\n\t\t'issue_case',\n\t\t'issueCase',\n\t\t'customer_complaint',\n\t\t'customerComplaint',\n\t\t'expected_result',\n\t\t'expectedResult',\n\t\t'observed_result',\n\t\t'observedResult',\n\t\t'route',\n\t\t'path_chain',\n\t\t'pathChain',\n\t\t'chain',\n\t\t'visibility_gate_trace',\n\t\t'visibilityGateTrace',\n\t\t'reported',\n\t\t'verified',\n\t\t'reported_path',\n\t\t'reportedPath',\n\t\t'verified_path',\n\t\t'verifiedPath',\n\t\t'assessment',\n\t\t'path',\n\t\t'proof_required',\n\t\t'proofRequired',\n\t\t'rejection_reason',\n\t\t'rejectionReason',\n\t\t'reason',\n\t\t'fact'\n\t], max);\n\tif (direct) {\n\t\treturn direct;\n\t}\n\tconst routeModulePermission = cleanText(source.route_module_permission_gate || source.routeModulePermissionGate, Math.floor(max / 2));\n\tconst templateGate = cleanText(source.template_conditional_rendering_gate || source.templateConditionalRenderingGate, Math.floor(max / 2));\n\tconst backingGate = cleanText(source.backing_role_group_config_publications_gate || source.backingRoleGroupConfigPublicationsGate, Math.floor(max / 2));\n\tconst explicitGateText = [routeModulePermission, templateGate, backingGate].filter(Boolean).join(' | ').slice(0, max);\n\tif (explicitGateText) {\n\t\treturn explicitGateText;\n\t}\n\treturn Object.entries(source)\n\t\t.filter(([key]) => !/^(id|_id|type|status|updatedAt|updated_at|createdAt|created_at)$/i.test(key))\n\t\t.map(([, entry]) => cleanListEntryText(entry, Math.max(80, Math.floor(max / 4))))\n\t\t.filter(Boolean)\n\t\t.join(' | ')\n\t\t.replace(/\\s+/g, ' ')\n\t\t.trim()\n\t\t.slice(0, max);\n}\n\nfunction supportDiagnosisLooksLikeClassifiedFeatureRequest(source: Record<string, any>, issueCaseText: string, failingPathText: string, hypothesisText: string): boolean {\n\tconst classificationText = supportDiagnosisNarrativeText(source.classification || source.classification_reason || source.classificationReason, 700);\n\tconst issueClassText = cleanText(source.issue_class || source.issueClass, 160);\n\tconst combined = [\n\t\tissueClassText,\n\t\tclassificationText,\n\t\tissueCaseText,\n\t\tfailingPathText,\n\t\thypothesisText\n\t].join(' ').toLowerCase();\n\treturn /\\b(feature request|feature_request|new feature|requested behavior change|net-new|net new|not implemented|no existing|none_existing|does not exist|no .*route)\\b/i.test(combined);\n}\n\nfunction normalizeSupportDiagnosisRejectedAlternatives(values: any): string[] {\n\tif (!Array.isArray(values)) {\n\t\treturn cleanList(values, 10, 700);\n\t}\n\tconst result: string[] = [];\n\tfor (const value of values) {\n\t\tconst text = supportDiagnosisNarrativeText(value, 700);\n\t\tif (text && !result.includes(text)) {\n\t\t\tresult.push(text);\n\t\t}\n\t\tif (result.length >= 10) {\n\t\t\tbreak;\n\t\t}\n\t}\n\treturn result;\n}\n\nfunction normalizeSupportDiagnosisProofPlanRows(values: any): Record<string, string> {\n\tif (!Array.isArray(values)) {\n\t\treturn {};\n\t}\n\tconst actions: string[] = [];\n\tconst proofRequired: string[] = [];\n\tfor (const row of values) {\n\t\tconst source = cleanObject(row);\n\t\tconst action = pickText(source, ['action', 'step', 'browser_action', 'browserAction', 'task'], 500) || supportDiagnosisNarrativeText(row, 500);\n\t\tconst proof = pickText(source, ['proof', 'proof_required', 'proofRequired', 'expected', 'expected_result', 'expectedResult', 'assertion', 'business_assertion', 'businessAssertion'], 700);\n\t\tif (action) {\n\t\t\tactions.push(action);\n\t\t}\n\t\tif (proof) {\n\t\t\tproofRequired.push(proof);\n\t\t}\n\t}\n\treturn {\n\t\taction: actions.join(' | ').slice(0, 1000),\n\t\tafter: proofRequired.join(' | ').slice(0, 1000),\n\t\tbusiness_assertion: proofRequired.join(' | ').slice(0, 1000),\n\t\tdata_assertion: proofRequired.join(' | ').slice(0, 1000)\n\t};\n}\n\nfunction collectSupportDiagnosisTextListFromValues(values: any[], limit = 10, max = 800): string[] {\n\tconst result: string[] = [];\n\tfor (const value of values) {\n\t\tconst direct = cleanList(value, limit, max);\n\t\tfor (const entry of direct) {\n\t\t\tif (entry && !result.includes(entry)) {\n\t\t\t\tresult.push(entry);\n\t\t\t}\n\t\t}\n\t\tif (value && typeof value === 'object' && !Array.isArray(value)) {\n\t\t\tfor (const [key, nestedValue] of Object.entries(value)) {\n\t\t\t\tif (!/(evidence|proof|ref|source|code|artifact|fact)/i.test(key)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst nestedEntries = Array.isArray(nestedValue)\n\t\t\t\t\t? cleanList(nestedValue, limit, max)\n\t\t\t\t\t: [cleanListEntryText(nestedValue, max)].filter(Boolean);\n\t\t\t\tfor (const entry of nestedEntries) {\n\t\t\t\t\tif (entry && !result.includes(entry)) {\n\t\t\t\t\t\tresult.push(entry);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (result.length >= limit) {\n\t\t\tbreak;\n\t\t}\n\t}\n\treturn result.slice(0, limit);\n}\n\nfunction normalizeOwnerFilePath(value: any): string {\n\tconst normalized = cleanListEntryText(value, 500)\n\t\t.replace(/\\\\/g, '/')\n\t\t.replace(/^\\.\\/+/, '')\n\t\t.replace(/^\\/+/, '')\n\t\t.replace(/:\\d+(?:-\\d+)?$/g, '')\n\t\t.replace(/\\s+$/g, '');\n\tfor (const pattern of [\n\t\t/(?:^|\\/)resolveio-ai-workspace\\/[^/]+\\/resolveio-all\\//i,\n\t\t/(?:^|\\/)ai-workspace\\/[^/]+\\/resolveio-all\\//i,\n\t\t/(?:^|\\/)resolveio-all\\//i,\n\t\t/(?:^|\\/)resolveio-server-lib\\//i,\n\t\t/(?:^|\\/)resolveio-client-lib\\//i\n\t]) {\n\t\tconst match = normalized.match(pattern);\n\t\tif (match?.index !== undefined) {\n\t\t\tconst start = match.index + match[0].length;\n\t\t\tconst stripped = normalized.slice(start).replace(/^\\/+/, '');\n\t\t\tif (stripped) {\n\t\t\t\treturn stripped;\n\t\t\t}\n\t\t}\n\t}\n\treturn normalized;\n}\n\nfunction isResolveIOSupportGeneratedAngularWrapperPath(value: any): boolean {\n\tconst normalized = normalizeOwnerFilePath(value).replace(/^geochem\\//i, '');\n\treturn /(?:^|\\/)angular\\/app\\/(?:methods|publications)\\.ts$/i.test(normalized);\n}\n\nfunction ownerFileComparablePathKeys(value: any): string[] {\n\tconst normalized = normalizeOwnerFilePath(value);\n\tif (!normalized) {\n\t\treturn [];\n\t}\n\tconst keys = new Set<string>([normalized]);\n\tfor (const marker of [\n\t\t'angular/app/',\n\t\t'server/src/',\n\t\t'server/app/',\n\t\t'client/src/',\n\t\t'client/app/'\n\t]) {\n\t\tconst escaped = marker.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n\t\tconst match = normalized.match(new RegExp(`(?:^|/)(${escaped}.+)$`, 'i'));\n\t\tif (match?.[1]) {\n\t\t\tkeys.add(match[1]);\n\t\t}\n\t}\n\treturn Array.from(keys);\n}\n\nfunction ownerFilePathMatchesDiagnosisOwner(filePath: string, ownerFile: string): boolean {\n\tconst normalizedFilePath = normalizeOwnerFilePath(filePath);\n\tconst normalizedOwnerFile = normalizeOwnerFilePath(ownerFile);\n\tif (!normalizedFilePath || !normalizedOwnerFile) {\n\t\treturn false;\n\t}\n\tconst fileKeys = ownerFileComparablePathKeys(normalizedFilePath);\n\tconst ownerKeys = ownerFileComparablePathKeys(normalizedOwnerFile);\n\tif (fileKeys.some((fileKey) => ownerKeys.some((ownerKey) => fileKey.toLowerCase() === ownerKey.toLowerCase()))) {\n\t\treturn true;\n\t}\n\treturn normalizedFilePath === normalizedOwnerFile\n\t\t|| normalizedFilePath.endsWith(`/${normalizedOwnerFile}`)\n\t\t|| normalizedOwnerFile.endsWith(`/${normalizedFilePath}`);\n}\n\nfunction ownerFileLooksBroad(value: string): boolean {\n\tconst normalized = normalizeOwnerFilePath(value);\n\treturn !normalized\n\t\t|| normalized.includes('*')\n\t\t|| /^(?:private\\/)?var\\/app\\/resolveio-ai-workspace\\//i.test(normalized)\n\t\t|| /^users\\/[^/]+\\/resolveio\\//i.test(normalized)\n\t\t|| normalized.endsWith('/')\n\t\t|| !/\\.[a-z0-9]+$/i.test(normalized)\n\t\t|| /^(\\.|src|server|angular|client|app|lib|packages?)$/i.test(normalized)\n\t\t|| /(^|\\/)(node_modules|dist|build|coverage|\\.git)(\\/|$)/i.test(normalized);\n}\n\nfunction ownerFileLooksNonProductEvidence(value: string): boolean {\n\tconst normalized = normalizeOwnerFilePath(value);\n\treturn /(^|\\/)(qa-artifacts?|screenshots?|screen-shots?|traces?|logs?|tmp|temp|coverage|dist|build|docs?)(\\/|$)/i.test(normalized)\n\t\t|| /(^|\\/)(?:support-diagnosis-pack-[^/]+|diagnosis-evidence-pack|aiqa-business-assertion)\\.json$/i.test(normalized)\n\t\t|| /(^|\\/)\\.resolveio-(?:support-context|support|context|runner|qa)(\\/|$)/i.test(normalized)\n\t\t|| /(^|\\/)(__tests__|tests?|spec)(\\/|$)|\\.(?:spec|test)\\.[jt]sx?$/i.test(normalized)\n\t\t|| /\\.(?:png|jpe?g|gif|webp|svg|pdf|log|txt|md|markdown)$/i.test(normalized);\n}\n\nfunction supportDiagnosisTextLooksGeneric(value: any, minimumLength = 18): boolean {\n\tconst text = cleanText(value, 1000).toLowerCase();\n\tif (!text) {\n\t\treturn false;\n\t}\n\tconst compact = text.replace(/[^a-z0-9]+/g, ' ').trim();\n\tif (!compact) {\n\t\treturn false;\n\t}\n\tconst meaningfulWords = compact.split(/\\s+/g).filter((word) => word.length >= 4);\n\treturn compact.length < minimumLength\n\t\t|| meaningfulWords.length < 3\n\t\t|| /^(n a|na|none|null|unknown|todo|tbd|pending|fix|bug|issue|problem|broken|not working|works|should work)$/i.test(compact)\n\t\t|| /\\b(todo|tbd|placeholder|replace with|do not copy|do not leave blank|ticket specific|unknown|guess|maybe|probably|something|somewhere|stuff|things?)\\b/i.test(compact)\n\t\t|| /^(fix|debug|investigate|check|look into|test|verify)( the)? (issue|bug|problem|ticket|route|page)$/i.test(compact)\n\t\t|| /^(the )?(issue|bug|problem|ticket|route|page)( is)? (fixed|broken|not working|wrong)$/i.test(compact);\n}\n\nfunction collectGenericSupportDiagnosisFields(gate: ResolveIOSupportDiagnosisGate): string[] {\n\tconst fields: Array<[string, any, number]> = [\n\t\t['issue_case.expected_result', gate.issue_case.expected_result, 18],\n\t\t['issue_case.observed_result', gate.issue_case.observed_result, 18],\n\t\t['accepted_hypothesis.statement', gate.accepted_hypothesis.statement, 24],\n\t\t['accepted_hypothesis.falsifiable_test', gate.accepted_hypothesis.falsifiable_test, 24],\n\t\t['proof_plan.before', gate.proof_plan.before || gate.proof_plan.before_state_unavailable_reason, 24],\n\t\t['proof_plan.action', gate.proof_plan.action, 24],\n\t\t['proof_plan.after', gate.proof_plan.after, 24],\n\t\t['proof_plan.business_assertion', gate.proof_plan.business_assertion, 24],\n\t\t['proof_plan.data_assertion', gate.proof_plan.data_assertion, 24],\n\t\t['proof_plan.business_proof_contract.setup_state', gate.proof_plan.business_proof_contract?.setup_state, 24],\n\t\t['proof_plan.business_proof_contract.action_under_test', gate.proof_plan.business_proof_contract?.action_under_test, 24],\n\t\t['proof_plan.business_proof_contract.expected_business_state_change', gate.proof_plan.business_proof_contract?.expected_business_state_change, 24],\n\t\t['proof_plan.business_proof_contract.data_or_dom_assertion', gate.proof_plan.business_proof_contract?.data_or_dom_assertion, 24]\n\t];\n\tconst genericFields = fields\n\t\t.filter(([field, value, minimumLength]) => {\n\t\t\tif (!cleanText(value, 1000)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tif ((field === 'proof_plan.data_assertion' || field === 'proof_plan.business_proof_contract.data_or_dom_assertion')\n\t\t\t\t&& /\\b(id|url|pdf)\\b/i.test(cleanText(value, 1000))) {\n\t\t\t\treturn supportDiagnosisTextLooksGeneric(value, 12);\n\t\t\t}\n\t\t\treturn supportDiagnosisTextLooksGeneric(value, minimumLength);\n\t\t})\n\t\t.map(([field]) => field);\n\tconst genericEvidence = gate.accepted_hypothesis.evidence\n\t\t.map((entry, index) => supportDiagnosisTextLooksGeneric(entry, 20) ? `accepted_hypothesis.evidence[${index}]` : '')\n\t\t.filter(Boolean);\n\tconst genericRejectedAlternatives = gate.rejected_alternatives\n\t\t.map((entry, index) => supportDiagnosisTextLooksGeneric(entry, 20) ? `rejected_alternatives[${index}]` : '')\n\t\t.filter(Boolean);\n\treturn [...genericFields, ...genericEvidence, ...genericRejectedAlternatives];\n}\n\nfunction supportProofArtifactLooksVague(value: any): boolean {\n\tconst text = cleanText(value, 500).toLowerCase();\n\tif (!text) {\n\t\treturn true;\n\t}\n\tconst compact = text.replace(/[^a-z0-9]+/g, ' ').trim();\n\tconst businessSignal = /\\b(dom|data|mongo|delta|row|rows|count|counts|record|records|persist|persisted|parsed|field|fields|pdf|export|invoice|upload|import|dropdown|selected|selection|id|total|timing|duration|latency|query|network|console|method|publication|response|before|after)\\b/i.test(compact);\n\tconst routeOnlySignal = /\\b(screenshot|screen shot|browser trace|trace|log|page|route|screen)\\b/i.test(compact);\n\treturn !businessSignal || (/^(screenshot|screen shot|browser trace|trace|log|page screenshot|route screenshot|screen screenshot)$/i.test(compact) && routeOnlySignal);\n}\n\nfunction proofPlanLooksRouteOnly(proofPlan: ResolveIOSupportDiagnosisProofPlan): boolean {\n\tconst assertionText = cleanText([\n\t\tproofPlan.business_assertion,\n\t\tproofPlan.action,\n\t\tproofPlan.after,\n\t\tproofPlan.data_assertion,\n\t\tproofPlan.artifact_expectation\n\t].filter(Boolean).join(' '), 3000).toLowerCase();\n\tif (!assertionText) {\n\t\treturn false;\n\t}\n\tconst routeOnlySignal = /\\b(route|page|screen|dashboard|url|component|shell)\\b/.test(assertionText)\n\t\t&& /\\b(loads?|loaded|renders?|rendered|opens?|opened|visible|visibility|hydrates?|hydrated|screenshot)\\b/.test(assertionText);\n\tconst businessSignal = /\\b(save|saved|persist|persisted|create|created|update|updated|delete|deleted|filter|filtered|exclude|excluded|include|included|row|rows|record|records|count|counts|total|totals|value|values|data|mongo|query|result|results|invoice|pdf|export|download|upload|import|dropdown|selection|selected|form|submit|submitted|validation|error message|customer|account|user|permission|auth|control|button|status|calculation|performance|duration|latency)\\b/.test(assertionText);\n\treturn routeOnlySignal && !businessSignal;\n}\n\nfunction supportDiagnosisEvidenceLooksRouteOnly(entry: Pick<ResolveIOSupportDiagnosisEvidence, 'summary' | 'type' | 'artifactPath'>): boolean {\n\tconst text = cleanText([entry.summary, entry.artifactPath].filter(Boolean).join(' '), 2200).toLowerCase();\n\tif (!text) {\n\t\treturn false;\n\t}\n\tconst routeOnlySignal = /\\b(route|page|screen|dashboard|url|component|shell|screenshot|screen shot)\\b/.test(text)\n\t\t&& /\\b(loads?|loaded|renders?|rendered|opens?|opened|visible|visibility|hydrates?|hydrated|captured|displayed)\\b/.test(text);\n\tconst businessSignal = /\\b(save|saved|persist|persisted|create|created|update|updated|delete|deleted|filter|filtered|exclude|excluded|include|included|row|rows|record|records|count|counts|total|totals|value|values|data|mongo|query|result|results|invoice|pdf|export|download|upload|import|dropdown|selection|selected|form|submit|submitted|validation|error message|customer|account|user|permission|auth|control|button|status|calculation|performance|duration|latency|before|after)\\b/.test(text);\n\treturn routeOnlySignal && !businessSignal;\n}\n\nfunction supportDiagnosisEvidenceLooksBusinessSpecific(entry: Pick<ResolveIOSupportDiagnosisEvidence, 'summary' | 'type' | 'artifactPath'>): boolean {\n\tconst text = cleanText([entry.summary, entry.artifactPath].filter(Boolean).join(' '), 2200).toLowerCase();\n\tif (!text || supportDiagnosisEvidenceLooksRouteOnly(entry)) {\n\t\treturn false;\n\t}\n\treturn /\\b(save|saved|persist|persisted|create|created|update|updated|delete|deleted|filter|filtered|exclude|excluded|include|included|row|rows|record|records|count|counts|total|totals|value|values|data|mongo|query|result|results|invoice|pdf|export|download|upload|import|dropdown|selection|selected|form|submit|submitted|validation|error message|customer|account|user|permission|auth|control|button|status|calculation|performance|duration|latency|before|after)\\b/.test(text);\n}\n\nconst SUPPORT_REPRODUCTION_EVIDENCE_TYPES = new Set<ResolveIOSupportDiagnosisEvidence['type']>(['browser', 'mongo', 'log', 'qa']);\nconst SUPPORT_ROOT_CAUSE_EVIDENCE_TYPES = new Set<ResolveIOSupportDiagnosisEvidence['type']>(['browser', 'mongo', 'log', 'code', 'commit', 'qa']);\nconst SUPPORT_ARTIFACT_RECOMMENDED_EVIDENCE_TYPES = new Set<ResolveIOSupportDiagnosisEvidence['type']>(['browser', 'mongo', 'log', 'qa']);\n\nfunction supportDiagnosisEvidenceRef(entry: ResolveIOSupportDiagnosisEvidence): ResolveIOSupportDiagnosisProofMatrixEvidenceRef {\n\treturn {\n\t\tevidenceId: entry.id || `evidence-${hashResolveIOSupportV5Evidence(entry).slice(0, 12)}`,\n\t\ttype: entry.type,\n\t\tsummary: cleanText(entry.summary, 1200),\n\t\tartifactPath: cleanText(entry.artifactPath, 500) || undefined,\n\t\townerFiles: cleanList(entry.ownerFiles, 12, 500).map(normalizeOwnerFilePath).filter(Boolean)\n\t};\n}\n\nfunction supportNormalizedPathMentioned(value: any, ownerFile: string): boolean {\n\tconst normalizedOwner = normalizeOwnerFilePath(ownerFile).toLowerCase();\n\tconst text = cleanText(value, 2000).replace(/\\\\/g, '/').toLowerCase();\n\treturn !!normalizedOwner && !!text && text.includes(normalizedOwner);\n}\n\nfunction supportDiagnosisOwnerFileCoverage(\n\tgate: ResolveIOSupportDiagnosisGate,\n\tevidenceRefs: ResolveIOSupportDiagnosisProofMatrixEvidenceRef[]\n): ResolveIOSupportDiagnosisProofMatrixOwnerFile[] {\n\tconst failingPathFields: Array<[string, any]> = [\n\t\t['frontend', gate.failing_path.frontend],\n\t\t['backend', gate.failing_path.backend],\n\t\t['shared_library', gate.failing_path.shared_library],\n\t\t['data_query', gate.failing_path.data_query],\n\t\t['description', gate.failing_path.description]\n\t];\n\treturn gate.owner_files.map((ownerFile) => {\n\t\tconst normalizedOwner = normalizeOwnerFilePath(ownerFile);\n\t\tconst evidenceIds = evidenceRefs\n\t\t\t.filter((entry) => entry.ownerFiles.map(normalizeOwnerFilePath).includes(normalizedOwner))\n\t\t\t.map((entry) => entry.evidenceId);\n\t\tconst matchedFailingPathFields = failingPathFields\n\t\t\t.filter(([, value]) => supportNormalizedPathMentioned(value, normalizedOwner))\n\t\t\t.map(([field]) => field);\n\t\treturn {\n\t\t\townerFile: normalizedOwner,\n\t\t\tcovered: evidenceIds.length > 0 || matchedFailingPathFields.length > 0,\n\t\t\tevidenceIds,\n\t\t\tfailingPathFields: matchedFailingPathFields\n\t\t};\n\t});\n}\n\nexport function buildResolveIOSupportDiagnosisProofMatrix(value: any, now?: Date | string): ResolveIOSupportDiagnosisProofMatrix {\n\tconst gate = normalizeResolveIOSupportDiagnosisGate(value);\n\tif (!gate) {\n\t\treturn {\n\t\t\tmatrixId: `support-diagnosis-proof-matrix-${hashResolveIOSupportV5Evidence({ missing: true, now: isoNow(now) }).slice(0, 16)}`,\n\t\t\tstatus: 'incomplete',\n\t\t\townerFiles: [],\n\t\t\treproductionEvidence: [],\n\t\t\trootCauseEvidence: [],\n\t\t\townerFileCoverage: [],\n\t\t\tbusinessProofArtifacts: [],\n\t\t\tproofPlanChecks: {\n\t\t\t\tbeforeActionAfter: false,\n\t\t\t\tbusinessAssertion: false,\n\t\t\t\tbusinessProofContract: false,\n\t\t\t\tdataOrDomAssertion: false\n\t\t\t},\n\t\t\tblockers: ['SupportDiagnosisGate is missing.'],\n\t\t\tgeneratedAt: isoNow(now)\n\t\t};\n\t}\n\tconst evidenceRefs = gate.evidence.map(supportDiagnosisEvidenceRef);\n\tconst reproductionEvidence = evidenceRefs.filter((entry) => SUPPORT_REPRODUCTION_EVIDENCE_TYPES.has(entry.type));\n\tconst businessReproductionEvidence = reproductionEvidence.filter(supportDiagnosisEvidenceLooksBusinessSpecific);\n\tconst rootCauseEvidence = evidenceRefs.filter((entry) => SUPPORT_ROOT_CAUSE_EVIDENCE_TYPES.has(entry.type));\n\tconst ownerFileCoverage = supportDiagnosisOwnerFileCoverage(gate, evidenceRefs);\n\tconst proofContract = gate.proof_plan.business_proof_contract;\n\tconst businessProofArtifacts = Array.from(new Set(cleanList([\n\t\tgate.proof_plan.artifact_expectation,\n\t\t...(proofContract?.proof_artifacts || [])\n\t], 20, 500)));\n\tconst proofPlanChecks = {\n\t\tbeforeActionAfter: !!((gate.proof_plan.before || gate.proof_plan.before_state_unavailable_reason) && gate.proof_plan.action && gate.proof_plan.after),\n\t\tbusinessAssertion: !!gate.proof_plan.business_assertion,\n\t\tbusinessProofContract: !!proofContract,\n\t\tdataOrDomAssertion: !!(gate.proof_plan.data_assertion || proofContract?.data_or_dom_assertion)\n\t};\n\tconst blockers: string[] = [];\n\tif (gate.issue_case.reproduction_status === 'reproduced' && !reproductionEvidence.length) {\n\t\tblockers.push('Proof matrix requires reproduction evidence for reproduced support diagnoses.');\n\t}\n\tif (gate.issue_case.reproduction_status === 'reproduced' && reproductionEvidence.length && !businessReproductionEvidence.length) {\n\t\tblockers.push('Proof matrix requires issue-specific business reproduction evidence; route-load or screenshot-only evidence cannot satisfy reproduction.');\n\t}\n\tif (!rootCauseEvidence.length) {\n\t\tblockers.push('Proof matrix requires typed root-cause evidence before repair.');\n\t}\n\tconst uncoveredOwners = ownerFileCoverage.filter((entry) => !entry.covered).map((entry) => entry.ownerFile);\n\tif (uncoveredOwners.length) {\n\t\tblockers.push(`Proof matrix owner_files are not tied to failing_path or structured evidence ownerFiles: ${uncoveredOwners.join(', ')}.`);\n\t}\n\tif (!businessProofArtifacts.length) {\n\t\tblockers.push('Proof matrix requires business proof artifacts from the diagnosis proof_plan.');\n\t}\n\tif (!proofPlanChecks.beforeActionAfter || !proofPlanChecks.businessAssertion || !proofPlanChecks.businessProofContract || !proofPlanChecks.dataOrDomAssertion) {\n\t\tblockers.push('Proof matrix requires before/action/after, business assertion, business_proof_contract, and DOM/data assertion coverage.');\n\t}\n\treturn {\n\t\tmatrixId: `support-diagnosis-proof-matrix-${hashResolveIOSupportV5Evidence({\n\t\t\tissueClass: gate.issue_class,\n\t\t\townerFiles: gate.owner_files,\n\t\t\tevidenceIds: evidenceRefs.map((entry) => entry.evidenceId),\n\t\t\tbusinessProofArtifacts,\n\t\t\tproofPlanChecks\n\t\t}).slice(0, 16)}`,\n\t\tstatus: blockers.length ? 'incomplete' : 'ready',\n\t\tissueClass: gate.issue_class,\n\t\townerFiles: gate.owner_files,\n\t\treproductionEvidence,\n\t\trootCauseEvidence,\n\t\townerFileCoverage,\n\t\tbusinessProofArtifacts,\n\t\tproofPlanChecks,\n\t\tblockers,\n\t\tgeneratedAt: isoNow(now || gate.updatedAt)\n\t};\n}\n\nexport function evaluateResolveIOSupportDiagnosisEvidenceQuality(value: any): ResolveIOSupportDiagnosisEvidenceQuality {\n\tconst normalized = normalizeResolveIOSupportDiagnosisGate(value);\n\tif (!normalized) {\n\t\treturn {\n\t\t\tvalid: false,\n\t\t\tblockers: ['SupportDiagnosisGate is missing.'],\n\t\t\tevidenceTypes: [],\n\t\t\treproductionEvidenceTypes: [],\n\t\t\trootCauseEvidenceTypes: [],\n\t\t\tartifactBackedEvidenceCount: 0,\n\t\t\trouteOnlyReproductionEvidenceCount: 0,\n\t\t\tbusinessReproductionEvidenceCount: 0,\n\t\t\thasTicketContext: false,\n\t\t\thasRootCauseEvidence: false,\n\t\t\thasReproductionEvidence: false\n\t\t};\n\t}\n\tconst evidence = normalized.evidence || [];\n\tconst evidenceTypes = Array.from(new Set(evidence.map((entry) => entry.type)));\n\tconst reproductionEvidenceTypes = Array.from(new Set(evidence\n\t\t.filter((entry) => SUPPORT_REPRODUCTION_EVIDENCE_TYPES.has(entry.type))\n\t\t.map((entry) => entry.type)));\n\tconst rootCauseEvidenceTypes = Array.from(new Set(evidence\n\t\t.filter((entry) => SUPPORT_ROOT_CAUSE_EVIDENCE_TYPES.has(entry.type))\n\t\t.map((entry) => entry.type)));\n\tconst artifactBackedEvidenceCount = evidence.filter((entry) => !!entry.artifactPath).length;\n\tconst reproductionEvidence = evidence.filter((entry) => SUPPORT_REPRODUCTION_EVIDENCE_TYPES.has(entry.type));\n\tconst routeOnlyReproductionEvidenceCount = reproductionEvidence.filter(supportDiagnosisEvidenceLooksRouteOnly).length;\n\tconst businessReproductionEvidenceCount = reproductionEvidence.filter(supportDiagnosisEvidenceLooksBusinessSpecific).length;\n\tconst hasTicketContext = evidence.some((entry) => entry.type === 'ticket')\n\t\t|| Boolean(normalized.issue_case.customer_complaint && normalized.issue_case.account_customer_context);\n\tconst hasRootCauseEvidence = rootCauseEvidenceTypes.length > 0;\n\tconst hasReproductionEvidence = reproductionEvidenceTypes.length > 0;\n\tconst blockers: string[] = [];\n\tif (!evidence.length) {\n\t\tblockers.push('Diagnosis evidence must include typed ticket/code/browser/log/Mongo/QA proof.');\n\t}\n\tif (!hasRootCauseEvidence) {\n\t\tblockers.push('Diagnosis evidence must include at least one non-ticket root-cause proof item: code, commit, browser, Mongo, log, or QA.');\n\t}\n\tif (!hasTicketContext) {\n\t\tblockers.push('Diagnosis evidence must preserve the customer/ticket context used for reproduction.');\n\t}\n\tif (normalized.issue_case.reproduction_status === 'reproduced' && !hasReproductionEvidence) {\n\t\tblockers.push('Diagnosis reproduced issue_case requires browser, Mongo, log, or QA reproduction evidence before repair.');\n\t}\n\tif (normalized.issue_case.reproduction_status === 'reproduced' && hasReproductionEvidence && !businessReproductionEvidenceCount) {\n\t\tblockers.push('Diagnosis reproduced issue_case requires issue-specific business reproduction proof; route-load or screenshot-only evidence is route evidence only.');\n\t}\n\tif (normalized.issue_case.reproduction_status === 'blocked'\n\t\t&& !normalized.issue_case.reproduction_blocker) {\n\t\tblockers.push('Diagnosis blocked reproduction requires issue_case.reproduction_blocker.');\n\t}\n\tconst unartifactedRuntimeEvidence = evidence.filter((entry) => SUPPORT_ARTIFACT_RECOMMENDED_EVIDENCE_TYPES.has(entry.type) && !entry.artifactPath);\n\tif (unartifactedRuntimeEvidence.length) {\n\t\tblockers.push(`Diagnosis runtime evidence must include artifactPath for replayable proof: ${unartifactedRuntimeEvidence.map((entry) => entry.type).join(', ')}.`);\n\t}\n\tif (normalized.issue_case.reproduction_status === 'reproduced' && artifactBackedEvidenceCount < 1) {\n\t\tblockers.push('Diagnosis reproduced issue_case requires at least one artifact-backed evidence item.');\n\t}\n\treturn {\n\t\tvalid: blockers.length === 0,\n\t\tblockers,\n\t\tevidenceTypes: evidenceTypes as ResolveIOSupportDiagnosisEvidence['type'][],\n\t\treproductionEvidenceTypes: reproductionEvidenceTypes as ResolveIOSupportDiagnosisEvidence['type'][],\n\t\trootCauseEvidenceTypes: rootCauseEvidenceTypes as ResolveIOSupportDiagnosisEvidence['type'][],\n\t\tartifactBackedEvidenceCount,\n\t\trouteOnlyReproductionEvidenceCount,\n\t\tbusinessReproductionEvidenceCount,\n\t\thasTicketContext,\n\t\thasRootCauseEvidence,\n\t\thasReproductionEvidence\n\t};\n}\n\nexport function normalizeResolveIOSupportDiagnosisGate(value: any, now?: Date | string): ResolveIOSupportDiagnosisGate | undefined {\n\tconst rootSource = cleanObject(value);\n\tconst source = cleanObject(\n\t\trootSource.support_diagnosis_gate\n\t\t|| rootSource.supportDiagnosisGate\n\t\t|| rootSource.diagnosis_gate\n\t\t|| rootSource.diagnosisGate\n\t\t|| rootSource\n\t);\n\tif (!Object.keys(source).length) {\n\t\treturn undefined;\n\t}\n\tconst rawIssueCase = source.issue_case || source.issueCase;\n\tconst rawHypothesis = source.accepted_hypothesis || source.acceptedHypothesis;\n\tconst rawFailingPath = source.failing_path || source.failingPath;\n\tconst rawProofPlan = source.proof_plan || source.proofPlan;\n\tconst issueCaseSource = cleanObject(rawIssueCase);\n\tconst hypothesisSource = cleanObject(source.accepted_hypothesis || source.acceptedHypothesis);\n\tconst failingPathSource = cleanObject(source.failing_path || source.failingPath);\n\tconst proofPlanSource = cleanObject(source.proof_plan || source.proofPlan);\n\tconst issueCaseText = supportDiagnosisNarrativeText(rawIssueCase, 1200);\n\tconst hypothesisText = supportDiagnosisNarrativeText(rawHypothesis, 1200);\n\tconst failingPathText = supportDiagnosisNarrativeText(rawFailingPath, 1200);\n\tconst proofPlanRows = normalizeSupportDiagnosisProofPlanRows(rawProofPlan);\n\tconst issueClass = normalizeIssueClass(source.issue_class || source.issueClass);\n\tconst rawBusinessProofContract = proofPlanSource.business_proof_contract\n\t\t|| proofPlanSource.businessProofContract\n\t\t|| source.business_proof_contract\n\t\t|| source.businessProofContract;\n\tconst businessProofContractSource = cleanObject(rawBusinessProofContract);\n\tconst contractSetupState = pickText(businessProofContractSource, ['setup_state', 'setupState', 'before', 'precondition'], 1000);\n\tconst contractActionUnderTest = pickText(businessProofContractSource, ['action_under_test', 'actionUnderTest', 'action', 'steps'], 1000);\n\tconst contractExpectedChange = pickText(businessProofContractSource, ['expected_business_state_change', 'expectedBusinessStateChange', 'expected_change', 'expectedChange', 'after'], 1000);\n\tconst contractDataAssertion = pickText(businessProofContractSource, [\n\t\t'data_or_dom_assertion',\n\t\t'dataOrDomAssertion',\n\t\t'dom_data_assertion',\n\t\t'domDataAssertion',\n\t\t'data_assertion',\n\t\t'dataAssertion',\n\t\t'dom_assertion',\n\t\t'domAssertion',\n\t\t'assertion'\n\t], 1000);\n\tconst contractArtifacts = cleanList(\n\t\tbusinessProofContractSource.proof_artifacts\n\t\t|| businessProofContractSource.proofArtifacts\n\t\t|| businessProofContractSource.artifacts\n\t\t|| businessProofContractSource.artifact_paths\n\t\t|| businessProofContractSource.artifactPaths,\n\t\t10,\n\t\t500\n\t);\n\tconst featureRequestClassified = supportDiagnosisLooksLikeClassifiedFeatureRequest(source, issueCaseText, failingPathText, hypothesisText);\n\tconst shouldDeriveLooseProofPlan = Array.isArray(rawProofPlan) || featureRequestClassified;\n\tconst looseProofSubject = cleanText(issueCaseText || failingPathText || hypothesisText, 1200);\n\tconst proofPlanBefore = pickText(proofPlanSource, ['before', 'before_state', 'beforeState', 'precondition'], 1000)\n\t\t|| contractSetupState;\n\tconst proofPlanBeforeUnavailable = pickText(proofPlanSource, ['before_state_unavailable_reason', 'beforeStateUnavailableReason', 'before_unavailable_reason'], 1000)\n\t\t|| (featureRequestClassified ? 'Before-state business proof is not available because this is classified as net-new feature scope; current evidence proves the requested route/workflow is not implemented yet.' : '');\n\tconst derivedLooseBefore = shouldDeriveLooseProofPlan && looseProofSubject\n\t\t? `Capture the before-state business value from the reported workflow: ${looseProofSubject}`\n\t\t: '';\n\tconst proofPlanBeforeResolved = proofPlanBefore || derivedLooseBefore;\n\tconst proofPlanAction = pickText(proofPlanSource, ['action', 'browser_action', 'browserAction', 'steps'], 1000)\n\t\t|| contractActionUnderTest\n\t\t|| proofPlanRows.action\n\t\t|| (shouldDeriveLooseProofPlan ? 'Execute the issue-specific workflow and inspect the affected data/rendering path.' : '');\n\tconst proofPlanAfter = pickText(proofPlanSource, ['after', 'after_state', 'afterState', 'expected_after'], 1000)\n\t\t|| contractExpectedChange\n\t\t|| proofPlanRows.after\n\t\t|| (shouldDeriveLooseProofPlan && looseProofSubject ? `The workflow produces the expected customer-facing business value instead of the reported wrong result for: ${looseProofSubject}` : '');\n\tconst proofPlanBusinessAssertion = pickText(proofPlanSource, ['business_assertion', 'businessAssertion', 'assertion'], 1000)\n\t\t|| contractExpectedChange\n\t\t|| contractDataAssertion\n\t\t|| proofPlanRows.business_assertion\n\t\t|| (shouldDeriveLooseProofPlan && looseProofSubject ? `The customer-reported condition is resolved with business data proof: ${looseProofSubject}` : '');\n\tconst proofPlanDataAssertion = pickText(proofPlanSource, ['data_assertion', 'dataAssertion', 'mongo_delta', 'mongoDelta'], 1000)\n\t\t|| contractDataAssertion\n\t\t|| proofPlanRows.data_assertion\n\t\t|| (shouldDeriveLooseProofPlan ? 'DOM/data or Mongo proof shows the expected business value and does not show the reported wrong value.' : '');\n\tconst proofPlanArtifactExpectation = pickText(proofPlanSource, ['artifact_expectation', 'artifactExpectation', 'artifact', 'screenshot'], 1000)\n\t\t|| contractArtifacts.join(' | ').slice(0, 1000)\n\t\t|| (shouldDeriveLooseProofPlan && proofPlanBusinessAssertion ? 'browser trace/screenshot plus persisted DOM/data or Mongo delta tied to the business assertion' : '');\n\tconst derivedBusinessProofContract = shouldDeriveLooseProofPlan && proofPlanBusinessAssertion ? {\n\t\tissue_class: issueClass || source.issue_class || source.issueClass,\n\t\tsetup_state: proofPlanBeforeResolved || proofPlanBeforeUnavailable,\n\t\taction_under_test: proofPlanAction,\n\t\texpected_business_state_change: proofPlanAfter || proofPlanBusinessAssertion,\n\t\tprohibited_false_pass: 'Route load, screenshot, scorecard, or model claim alone is not acceptance.',\n\t\tproof_artifacts: [\n\t\t\tproofPlanArtifactExpectation,\n\t\t\t'DOM/data assertion artifact',\n\t\t\t'persisted record or Mongo delta proof'\n\t\t].filter(Boolean),\n\t\tdata_or_dom_assertion: proofPlanDataAssertion || proofPlanBusinessAssertion\n\t} : undefined;\n\tconst businessProofContract = normalizeSupportDiagnosisBusinessProofContract(\n\t\trawBusinessProofContract,\n\t\tissueClass || source.issue_class || source.issueClass\n\t) || normalizeSupportDiagnosisBusinessProofContract(derivedBusinessProofContract, issueClass || source.issue_class || source.issueClass);\n\tconst rawOwnerFiles = cleanList(source.owner_files || source.ownerFiles, 20, 500)\n\t\t.map(normalizeOwnerFilePath)\n\t\t.filter(Boolean);\n\tconst productOwnerFiles = rawOwnerFiles.filter((ownerFile) => !ownerFileLooksNonProductEvidence(ownerFile));\n\tconst ownerFiles = productOwnerFiles.length ? productOwnerFiles : rawOwnerFiles;\n\tconst explicitEvidence = normalizeSupportDiagnosisEvidence(source.evidence, ownerFiles);\n\tconst derivedFeatureRequestEvidence: ResolveIOSupportDiagnosisEvidence[] = !explicitEvidence.length && featureRequestClassified ? [\n\t\t...(issueCaseText ? [{\n\t\t\tid: `evidence-${hashResolveIOSupportV5Evidence({ type: 'ticket', summary: issueCaseText }).slice(0, 12)}`,\n\t\t\ttype: 'ticket' as const,\n\t\t\tsummary: issueCaseText\n\t\t}] : []),\n\t\t...ownerFiles.map((ownerFile) => ({\n\t\t\tid: `evidence-${hashResolveIOSupportV5Evidence({ type: 'code', ownerFile, failingPathText, hypothesisText }).slice(0, 12)}`,\n\t\t\ttype: 'code' as const,\n\t\t\tsummary: cleanText([\n\t\t\t\t`Owner file inspected for classified feature-request scope: ${ownerFile}.`,\n\t\t\t\tfailingPathText || hypothesisText || 'No implemented route/module path was identified.'\n\t\t\t].filter(Boolean).join(' '), 1200),\n\t\t\tartifactPath: ownerFile,\n\t\t\townerFiles: [ownerFile]\n\t\t}))\n\t] : [];\n\tconst diagnosisEvidence = explicitEvidence.length ? explicitEvidence : derivedFeatureRequestEvidence;\n\tconst ticketEvidenceText = diagnosisEvidence.find((entry) => entry.type === 'ticket')?.summary || '';\n\tconst browserEvidenceText = diagnosisEvidence.find((entry) => entry.type === 'browser')?.summary || '';\n\tconst rootCauseEvidenceText = diagnosisEvidence.find((entry) => SUPPORT_ROOT_CAUSE_EVIDENCE_TYPES.has(entry.type))?.summary || '';\n\tconst explicitCustomerComplaint = pickText(issueCaseSource, [\n\t\t'customer_complaint',\n\t\t'customerComplaint',\n\t\t'customer_symptom',\n\t\t'customerSymptom',\n\t\t'symptom',\n\t\t'reported_issue',\n\t\t'reportedIssue',\n\t\t'complaint',\n\t\t'request',\n\t\t'summary'\n\t], 1200);\n\tconst customerIssueCaseText = (() => {\n\t\tif (explicitCustomerComplaint) {\n\t\t\treturn explicitCustomerComplaint;\n\t\t}\n\t\tconst evidenceCustomerText = cleanText([ticketEvidenceText, browserEvidenceText]\n\t\t\t.filter(Boolean)\n\t\t\t.join(' '), 1200);\n\t\tif (evidenceCustomerText) {\n\t\t\treturn evidenceCustomerText;\n\t\t}\n\t\tconst issueText = cleanText(issueCaseText, 1200);\n\t\tif (issueText && !supportDiagnosisTextLooksGeneric(issueText, 18)\n\t\t\t&& !/\\b(general inquiry|existing behavior|not a confirmed runtime failure)\\b/i.test(issueText)) {\n\t\t\treturn issueText;\n\t\t}\n\t\treturn '';\n\t})();\n\tconst issueCasePrimaryText = customerIssueCaseText || cleanText([\n\t\trootCauseEvidenceText,\n\t\tfailingPathText,\n\t\thypothesisText\n\t].filter(Boolean).join(' '), 1200);\n\tconst routeModule = pickText(issueCaseSource, ['route_module', 'routeModule', 'route', 'module', 'workflow', 'screen', 'route_or_module', 'routeOrModule', 'module_path', 'modulePath'], 500)\n\t\t|| pickText(source, ['route_module', 'routeModule', 'module', 'workflow', 'screen', 'route_or_module', 'routeOrModule', 'module_path', 'modulePath'], 500)\n\t\t|| pickText(failingPathSource, ['route', 'module', 'path', 'description', 'reported', 'verified', 'reported_path', 'reportedPath', 'verified_path', 'verifiedPath'], 500)\n\t\t|| failingPathText\n\t\t|| (featureRequestClassified ? 'net-new support feature workflow' : '');\n\tconst expectedResult = pickText(issueCaseSource, ['expected_result', 'expectedResult', 'expected', 'expected_business_result', 'expectedBusinessResult', 'expected_business_state', 'expectedBusinessState', 'desired_result', 'desiredResult', 'desired_outcome', 'desiredOutcome'], 1000)\n\t\t|| pickText(source, ['expected_result', 'expectedResult', 'expected', 'expected_business_result', 'expectedBusinessResult', 'primary_goal', 'primaryGoal', 'requested_behavior', 'requestedBehavior', 'desired_result', 'desiredResult'], 1000)\n\t\t|| (!featureRequestClassified && issueCasePrimaryText ? `Expected customer-facing business result from ticket evidence: ${issueCasePrimaryText}` : '')\n\t\t|| (featureRequestClassified && issueCasePrimaryText ? `Implement the requested workflow: ${issueCasePrimaryText}` : '');\n\tconst observedResult = pickText(issueCaseSource, ['observed_result', 'observedResult', 'observed', 'actual', 'actual_result', 'actualResult', 'current_state', 'currentState', 'customer_symptom', 'customerSymptom', 'symptom'], 1000)\n\t\t|| pickText(source, ['observed_result', 'observedResult', 'observed', 'actual', 'actual_result', 'actualResult', 'current_state', 'currentState', 'customer_symptom', 'customerSymptom'], 1000)\n\t\t|| (!featureRequestClassified && (browserEvidenceText || issueCasePrimaryText) ? `Observed/reported wrong business result from ticket or screenshot evidence: ${browserEvidenceText || issueCasePrimaryText}` : '')\n\t\t|| (featureRequestClassified ? `Current repo evidence indicates no implemented route/module for ${routeModule || 'the requested workflow'}.` : '');\n\tconst accountCustomerContext = pickText(issueCaseSource, ['account_customer_context', 'accountCustomerContext', 'account_context', 'accountContext', 'customer_context', 'customerContext', 'client_context', 'clientContext', 'affected_customer', 'affectedCustomer', 'account', 'customer', 'client', 'user', 'context', 'reporter'], 800)\n\t\t|| pickText(source, ['account_customer_context', 'accountCustomerContext', 'affected_account_user', 'affectedAccountUser', 'account_context', 'accountContext', 'customer_context', 'customerContext', 'client_context', 'clientContext', 'affected_customer', 'affectedCustomer', 'account', 'customer', 'client', 'user', 'context', 'reporter'], 800)\n\t\t|| (issueCasePrimaryText ? 'Customer/account context from support ticket intake and hydrated support attachments.' : '')\n\t\t|| (featureRequestClassified ? 'Customer/account context from support ticket intake.' : '');\n\tconst rawReproductionStatus = issueCaseSource.reproduction_status || issueCaseSource.reproductionStatus || source.reproduction_status;\n\tconst hasRuntimeReproductionEvidence = diagnosisEvidence.some((entry) => SUPPORT_REPRODUCTION_EVIDENCE_TYPES.has(entry.type));\n\tconst explicitHypothesisEvidence = collectSupportDiagnosisTextListFromValues([\n\t\thypothesisSource.evidence,\n\t\thypothesisSource.evidence_refs,\n\t\thypothesisSource.evidenceRefs,\n\t\thypothesisSource.code_evidence,\n\t\thypothesisSource.codeEvidence,\n\t\tsource.hypothesis_evidence,\n\t\tsource.hypothesisEvidence,\n\t\thypothesisSource\n\t], 10, 800);\n\tconst gate: ResolveIOSupportDiagnosisGate = {\n\t\tissue_case: {\n\t\t\tcustomer_complaint: explicitCustomerComplaint || customerIssueCaseText,\n\t\t\texpected_result: expectedResult,\n\t\t\tobserved_result: observedResult,\n\t\t\troute_module: routeModule,\n\t\t\taccount_customer_context: accountCustomerContext,\n\t\t\treproduction_status: rawReproductionStatus\n\t\t\t\t? normalizeReproductionStatus(rawReproductionStatus)\n\t\t\t\t: (featureRequestClassified || !hasRuntimeReproductionEvidence ? 'classified' : 'reproduced'),\n\t\t\treproduction_blocker: pickText(issueCaseSource, ['reproduction_blocker', 'reproductionBlocker', 'runtime_blocker', 'runtimeBlocker', 'blocked_reason', 'blockedReason', 'blocker', 'blocked_by', 'blockedBy'], 1000)\n\t\t},\n\t\tissue_class: issueClass || 'missing_wrong_data',\n\t\taccepted_hypothesis: {\n\t\t\tstatement: pickText(hypothesisSource, ['statement', 'hypothesis', 'root_cause', 'rootCause', 'summary'], 1200)\n\t\t\t\t|| hypothesisText,\n\t\t\tfalsifiable_test: pickText(hypothesisSource, ['falsifiable_test', 'falsifiableTest', 'test', 'proof', 'falsifier'], 1000)\n\t\t\t\t|| (failingPathText ? `Verify the accepted hypothesis against the failing path evidence: ${failingPathText}` : ''),\n\t\t\tevidence: explicitHypothesisEvidence.length\n\t\t\t\t? explicitHypothesisEvidence\n\t\t\t\t: diagnosisEvidence.map((entry) => [entry.artifactPath, entry.summary].filter(Boolean).join(': ')).filter(Boolean).slice(0, 10)\n\t\t},\n\t\trejected_alternatives: normalizeSupportDiagnosisRejectedAlternatives(source.rejected_alternatives || source.rejectedAlternatives),\n\t\tfailing_path: {\n\t\t\tfrontend: pickText(failingPathSource, ['frontend', 'frontend_path', 'frontendPath', 'eventPath'], 700),\n\t\t\tbackend: pickText(failingPathSource, ['backend', 'backend_path', 'backendPath', 'methodPublicationPath'], 700),\n\t\t\tshared_library: pickText(failingPathSource, ['shared_library', 'sharedLibrary', 'library', 'lib'], 700),\n\t\t\tdata_query: pickText(failingPathSource, ['data_query', 'dataQuery', 'query'], 700),\n\t\t\tdescription: pickText(failingPathSource, ['description', 'path_chain', 'pathChain', 'chain', 'visibility_gate_trace', 'visibilityGateTrace', 'reported', 'verified', 'reported_path', 'reportedPath', 'verified_path', 'verifiedPath', 'path', 'assessment', 'summary', 'route'], 1200) || failingPathText\n\t\t},\n\t\towner_files: ownerFiles,\n\t\tproof_plan: {\n\t\t\tbefore: proofPlanBeforeResolved,\n\t\t\tbefore_state_unavailable_reason: proofPlanBeforeUnavailable,\n\t\t\taction: proofPlanAction,\n\t\t\tafter: proofPlanAfter,\n\t\t\tbusiness_assertion: proofPlanBusinessAssertion,\n\t\t\troute: pickText(proofPlanSource, ['route', 'url'], 500),\n\t\t\tdata_assertion: proofPlanDataAssertion,\n\t\t\tartifact_expectation: proofPlanArtifactExpectation,\n\t\t\tbusiness_proof_contract: businessProofContract\n\t\t},\n\t\tsimilar_tickets: normalizeSupportDiagnosisHints(source.similar_tickets || source.similarTickets),\n\t\tsimilar_commits: normalizeSupportDiagnosisHints(source.similar_commits || source.similarCommits),\n\t\tevidence: diagnosisEvidence,\n\t\tstatus: (cleanText(source.status, 80).toLowerCase() as ResolveIOSupportDiagnosisGateStatus) || 'incomplete',\n\t\tupdatedAt: isoNow(now || source.updatedAt || source.updated_at)\n\t};\n\tif (!['missing', 'incomplete', 'blocked', 'passed'].includes(gate.status)) {\n\t\tgate.status = 'incomplete';\n\t}\n\treturn gate;\n}\n\nexport function extractResolveIOSupportDiagnosisGateFromText(value: string, now?: Date | string): ResolveIOSupportDiagnosisGate | undefined {\n\tconst text = String(value || '').trim();\n\tif (!text) {\n\t\treturn undefined;\n\t}\n\tconst candidates: string[] = [];\n\tconst fenced = Array.from(text.matchAll(/```(?:json)?\\s*([\\s\\S]*?)```/gi)).map((match) => match[1]);\n\tcandidates.push(...fenced);\n\tconst jsonBlock = text.match(/\\{[\\s\\S]*\\}/);\n\tif (jsonBlock) {\n\t\tcandidates.push(jsonBlock[0]);\n\t}\n\tfor (const candidate of candidates) {\n\t\ttry {\n\t\t\tconst parsed = JSON.parse(candidate);\n\t\t\tconst wrapped = parsed?.support_diagnosis_gate || parsed?.supportDiagnosisGate || parsed?.diagnosis_gate || parsed?.diagnosisGate || parsed;\n\t\t\tconst normalized = normalizeResolveIOSupportDiagnosisGate(wrapped, now);\n\t\t\tif (normalized) {\n\t\t\t\treturn normalized;\n\t\t\t}\n\t\t}\n\t\tcatch {\n\t\t\t// Continue trying less exact JSON candidates.\n\t\t}\n\t}\n\treturn undefined;\n}\n\nexport function validateResolveIOSupportDiagnosisGate(\n\tvalue: any,\n\toptions: { maxOwnerFiles?: number } = {}\n): ResolveIOSupportDiagnosisGateValidation {\n\tconst normalized = normalizeResolveIOSupportDiagnosisGate(value);\n\tif (!normalized) {\n\t\treturn { valid: false, status: 'missing', blockers: ['SupportDiagnosisGate is missing.'] };\n\t}\n\tconst blockers: string[] = [];\n\tconst maxOwnerFiles = Math.max(1, Number(options.maxOwnerFiles || 8) || 8);\n\tif (!normalized.issue_case.customer_complaint) {\n\t\tblockers.push('Diagnosis issue_case.customer_complaint is required.');\n\t}\n\tif (!normalized.issue_case.expected_result) {\n\t\tblockers.push('Diagnosis issue_case.expected_result is required.');\n\t}\n\tif (!normalized.issue_case.observed_result) {\n\t\tblockers.push('Diagnosis issue_case.observed_result is required.');\n\t}\n\tif (!normalized.issue_case.route_module) {\n\t\tblockers.push('Diagnosis issue_case.route_module is required.');\n\t}\n\tif (!normalized.issue_case.account_customer_context) {\n\t\tblockers.push('Diagnosis issue_case.account_customer_context is required.');\n\t}\n\tif (normalized.issue_case.reproduction_status === 'blocked' && !normalized.issue_case.reproduction_blocker) {\n\t\tblockers.push('Diagnosis blocked reproduction requires issue_case.reproduction_blocker.');\n\t}\n\tif (!normalizeIssueClass(normalized.issue_class)) {\n\t\tblockers.push('Diagnosis issue_class must be one of the supported issue-class probes.');\n\t}\n\tif (!normalized.accepted_hypothesis.statement) {\n\t\tblockers.push('Diagnosis accepted_hypothesis.statement is required.');\n\t}\n\tif (!normalized.accepted_hypothesis.falsifiable_test) {\n\t\tblockers.push('Diagnosis accepted_hypothesis.falsifiable_test is required.');\n\t}\n\tif (!normalized.accepted_hypothesis.evidence.length) {\n\t\tblockers.push('Diagnosis accepted_hypothesis.evidence must cite proof.');\n\t}\n\tif (!normalized.rejected_alternatives.length) {\n\t\tblockers.push('Diagnosis rejected_alternatives must include at least one rejected theory.');\n\t}\n\tif (!normalized.failing_path.description\n\t\t&& !normalized.failing_path.frontend\n\t\t&& !normalized.failing_path.backend\n\t\t&& !normalized.failing_path.shared_library\n\t\t&& !normalized.failing_path.data_query) {\n\t\tblockers.push('Diagnosis failing_path must identify frontend, backend, query, shared library, or path description.');\n\t}\n\tif (!normalized.owner_files.length) {\n\t\tblockers.push('Diagnosis owner_files must contain the small editable file set.');\n\t}\n\tif (normalized.owner_files.length > maxOwnerFiles) {\n\t\tblockers.push(`Diagnosis owner_files has ${normalized.owner_files.length} entries; maximum is ${maxOwnerFiles}.`);\n\t}\n\tconst broadFiles = normalized.owner_files.filter(ownerFileLooksBroad);\n\tif (broadFiles.length) {\n\t\tblockers.push(`Diagnosis owner_files contains broad or unsafe path(s): ${broadFiles.join(', ')}.`);\n\t}\n\tconst nonProductEvidenceFiles = normalized.owner_files.filter(ownerFileLooksNonProductEvidence);\n\tif (nonProductEvidenceFiles.length) {\n\t\tblockers.push(`Diagnosis owner_files must be exact product/source owner files, not tests/docs/artifacts/logs/screenshots: ${nonProductEvidenceFiles.join(', ')}.`);\n\t}\n\tconst genericFields = collectGenericSupportDiagnosisFields(normalized);\n\tif (genericFields.length) {\n\t\tblockers.push(`Diagnosis fields are too generic or placeholder-like; replace with ticket-specific falsifiable details: ${genericFields.join(', ')}.`);\n\t}\n\tif (!normalized.proof_plan.before && !normalized.proof_plan.before_state_unavailable_reason) {\n\t\tblockers.push('Diagnosis proof_plan.before is required unless proof_plan.before_state_unavailable_reason explains why before-state proof is impossible.');\n\t}\n\tif (!normalized.proof_plan.action) {\n\t\tblockers.push('Diagnosis proof_plan.action is required.');\n\t}\n\tif (!normalized.proof_plan.after) {\n\t\tblockers.push('Diagnosis proof_plan.after is required.');\n\t}\n\tif (!normalized.proof_plan.business_assertion) {\n\t\tblockers.push('Diagnosis proof_plan.business_assertion is required.');\n\t}\n\tif (proofPlanLooksRouteOnly(normalized.proof_plan)) {\n\t\tblockers.push('Diagnosis proof_plan cannot be route-load, screen-visible, or screenshot-only; it must name the business state/data/control change that proves the issue is fixed.');\n\t}\n\tconst proofContract = normalized.proof_plan.business_proof_contract;\n\tif (!proofContract) {\n\t\tblockers.push('Diagnosis proof_plan.business_proof_contract is required.');\n\t}\n\telse {\n\t\tif (proofContract.issue_class !== normalized.issue_class) {\n\t\t\tblockers.push(`Diagnosis proof_plan.business_proof_contract.issue_class (${proofContract.issue_class}) must match diagnosis issue_class (${normalized.issue_class}).`);\n\t\t}\n\t\tif (!proofContract.setup_state) {\n\t\t\tblockers.push('Diagnosis proof_plan.business_proof_contract.setup_state is required.');\n\t\t}\n\t\tif (!proofContract.action_under_test) {\n\t\t\tblockers.push('Diagnosis proof_plan.business_proof_contract.action_under_test is required.');\n\t\t}\n\t\tif (!proofContract.expected_business_state_change) {\n\t\t\tblockers.push('Diagnosis proof_plan.business_proof_contract.expected_business_state_change is required.');\n\t\t}\n\t\tif (!proofContract.prohibited_false_pass) {\n\t\t\tblockers.push('Diagnosis proof_plan.business_proof_contract.prohibited_false_pass is required.');\n\t\t}\n\t\tif (!proofContract.proof_artifacts.length) {\n\t\t\tblockers.push('Diagnosis proof_plan.business_proof_contract.proof_artifacts must include at least one required artifact.');\n\t\t}\n\t\telse if (proofContract.proof_artifacts.every(supportProofArtifactLooksVague)) {\n\t\t\tblockers.push('Diagnosis proof_plan.business_proof_contract.proof_artifacts are too generic; include replayable DOM/data/Mongo/network/artifact proof tied to the business assertion.');\n\t\t}\n\t\tif (!proofContract.data_or_dom_assertion) {\n\t\t\tblockers.push('Diagnosis proof_plan.business_proof_contract.data_or_dom_assertion is required.');\n\t\t}\n\t}\n\tif (!normalized.evidence.length) {\n\t\tblockers.push('Diagnosis evidence must include ticket/code/browser/log/Mongo proof.');\n\t}\n\tconst evidenceQuality = evaluateResolveIOSupportDiagnosisEvidenceQuality(normalized);\n\tblockers.push(...evidenceQuality.blockers);\n\tconst proofMatrix = buildResolveIOSupportDiagnosisProofMatrix(normalized);\n\tblockers.push(...proofMatrix.blockers);\n\tnormalized.status = blockers.length ? 'incomplete' : 'passed';\n\treturn {\n\t\tvalid: blockers.length === 0,\n\t\tstatus: normalized.status,\n\t\tblockers,\n\t\tnormalized,\n\t\tevidenceQuality,\n\t\tproofMatrix\n\t};\n}\n\nfunction normalizeSupportConfidenceLevel(value: any): ResolveIOSupportCustomerReplyPolicy['confidenceLevel'] {\n\tconst normalized = cleanText(value?.level || value?.confidenceLevel || value?.confidence_level || value?.category || value, 80).toLowerCase();\n\tif (/^high$|^strong$|^accepted$|^a\\+?$/.test(normalized)) {\n\t\treturn 'high';\n\t}\n\tif (/^medium$|^moderate$|^review$/.test(normalized)) {\n\t\treturn 'medium';\n\t}\n\tif (/^low$|^weak$|^blocked$|^unknown$/.test(normalized)) {\n\t\treturn normalized === 'unknown' ? 'unknown' : 'low';\n\t}\n\tconst score = Number(value?.score ?? value?.confidenceScore ?? value?.confidence_score);\n\tif (Number.isFinite(score)) {\n\t\tif (score >= 0.8) {\n\t\t\treturn 'high';\n\t\t}\n\t\tif (score >= 0.55) {\n\t\t\treturn 'medium';\n\t\t}\n\t\treturn 'low';\n\t}\n\treturn normalized ? 'unknown' : 'unknown';\n}\n\nfunction supportReleaseLooksBlocked(value: any): boolean {\n\treturn /\\b(fail|failed|error|blocked|missing|empty|stale|denied|timeout)\\b/i.test(cleanText(value, 200));\n}\n\nfunction supportStatusLooksPassed(value: any): boolean {\n\treturn /\\b(pass|passed|success|succeeded|complete|completed|ready|not_required|not required)\\b/i.test(cleanText(value, 200));\n}\n\nfunction nestedObject(source: Record<string, any>, ...keys: string[]): Record<string, any> {\n\tfor (const key of keys) {\n\t\tconst value = cleanObject(source[key]);\n\t\tif (Object.keys(value).length) {\n\t\t\treturn value;\n\t\t}\n\t}\n\treturn {};\n}\n\nfunction resolveSupportReplyReleaseGate(input: ResolveIOSupportCustomerReplyPolicyInput): {\n\tblocked: boolean;\n\treason: string;\n\tstatus: string;\n\tblockers: string[];\n\trequiredEvidence: string[];\n\tnextCommands: string[];\n\thotfixContinuation?: ResolveIOAIManagerHotfixContinuationDecision;\n} {\n\tconst releaseEvidence = cleanObject(input.releaseEvidence);\n\tconst releaseStatus = cleanText(\n\t\tinput.releaseStatus\n\t\t|| releaseEvidence.status\n\t\t|| releaseEvidence.releaseStatus\n\t\t|| releaseEvidence.release_status\n\t\t|| nestedObject(releaseEvidence, 'deploy_production', 'production').status\n\t\t|| nestedObject(releaseEvidence, 'deploy_dev', 'dev').status\n\t\t|| nestedObject(releaseEvidence, 'push_master', 'pushMaster').status,\n\t\t200\n\t);\n\tconst hotfixEvidenceContainer = nestedObject(releaseEvidence, 'hotfix_evidence', 'hotfixEvidence');\n\tconst currentHotfixEvidence = nestedObject(hotfixEvidenceContainer, 'current');\n\tconst hotfixEvidence = cleanObject(\n\t\tinput.hotfixEvidence\n\t\t|| hotfixEvidenceContainer.normalized\n\t\t|| hotfixEvidenceContainer.evidence\n\t\t|| currentHotfixEvidence.evidence\n\t\t|| currentHotfixEvidence.normalized\n\t\t|| hotfixEvidenceContainer.current_evidence\n\t\t|| hotfixEvidenceContainer.currentEvidence\n\t);\n\tconst hotfixCommitProof = nestedObject(releaseEvidence, 'hotfix_commit_proof', 'hotfixCommitProof');\n\tconst hotfixDurabilityContract = nestedObject(releaseEvidence, 'hotfix_durability_contract', 'hotfixDurabilityContract');\n\tconst hotfixCommitGuard = cleanObject(\n\t\thotfixCommitProof.github_commit_guard\n\t\t|| hotfixCommitProof.githubCommitGuard\n\t\t|| hotfixDurabilityContract.hotfix_commit_guard\n\t\t|| hotfixDurabilityContract.hotfixCommitGuard\n\t\t|| hotfixEvidenceContainer.github_commit_guard\n\t\t|| hotfixEvidenceContainer.githubCommitGuard\n\t);\n\tconst hotfixEvidenceStatus = cleanText(hotfixEvidenceContainer.status || currentHotfixEvidence.status || hotfixEvidence.status, 120);\n\tconst releaseGateStatus = cleanText(\n\t\thotfixEvidence.releaseGateStatus\n\t\t|| hotfixEvidence.release_gate_status\n\t\t|| hotfixEvidenceContainer.release_gate_status\n\t\t|| hotfixEvidenceContainer.releaseGateStatus\n\t\t|| releaseEvidence.releaseGateStatus\n\t\t|| releaseEvidence.release_gate_status,\n\t\t160\n\t);\n\tconst releaseGatePassed = input.releaseGatePassed === true\n\t\t|| supportStatusLooksPassed(releaseGateStatus);\n\tconst missingCommitProofFields = Array.from(new Set([\n\t\t...cleanList(hotfixCommitProof.missing_fields || hotfixCommitProof.missingFields, 12, 160),\n\t\t...cleanList(hotfixEvidenceContainer.missing_fields || hotfixEvidenceContainer.missingFields, 12, 160),\n\t\t...cleanList(hotfixDurabilityContract.missing_commit_proof_fields || hotfixDurabilityContract.missingCommitProofFields, 12, 160),\n\t\t...cleanList(hotfixCommitGuard.missing_fields || hotfixCommitGuard.missingFields, 12, 160)\n\t].filter(Boolean)));\n\tconst commitProofRequired = hotfixCommitProof.required === true\n\t\t|| hotfixEvidenceContainer.github_commit_required === true\n\t\t|| hotfixEvidenceContainer.githubCommitRequired === true\n\t\t|| hotfixCommitGuard.required === true\n\t\t|| hotfixDurabilityContract.required === true;\n\tconst commitProofPassed = hotfixCommitProof.passed === true\n\t\t|| hotfixEvidenceContainer.github_commit_proof_passed === true\n\t\t|| hotfixEvidenceContainer.githubCommitProofPassed === true\n\t\t|| hotfixCommitGuard.passed === true;\n\tconst commitProofBlocked = hotfixCommitProof.blocked === true\n\t\t|| hotfixEvidenceContainer.manager_must_commit_before_hotfix === true\n\t\t|| hotfixEvidenceContainer.managerMustCommitBeforeHotfix === true\n\t\t|| hotfixDurabilityContract.live_hotfix_blocked_until_commit === true\n\t\t|| hotfixDurabilityContract.liveHotfixBlockedUntilCommit === true\n\t\t|| hotfixCommitGuard.manager_must_commit_before_hotfix === true\n\t\t|| hotfixCommitGuard.managerMustCommitBeforeHotfix === true\n\t\t|| (commitProofRequired && !commitProofPassed)\n\t\t|| missingCommitProofFields.length > 0;\n\tconst statusBlocked = supportReleaseLooksBlocked(releaseStatus)\n\t\t|| supportReleaseLooksBlocked(hotfixEvidenceStatus)\n\t\t|| supportReleaseLooksBlocked(releaseGateStatus);\n\tconst blockers: string[] = [];\n\tif (statusBlocked) {\n\t\tblockers.push(`release_status=${releaseStatus || hotfixEvidenceStatus || releaseGateStatus || 'blocked'}`);\n\t}\n\tif (commitProofBlocked) {\n\t\tblockers.push('hotfix_commit_proof_missing_or_blocked');\n\t}\n\tfor (const field of missingCommitProofFields) {\n\t\tblockers.push(`missing_${field}`);\n\t}\n\tconst shouldEvaluateHotfix = statusBlocked || commitProofRequired || Object.keys(hotfixEvidence).length > 0;\n\tconst hotfixContinuation = shouldEvaluateHotfix\n\t\t? decideResolveIOAIManagerHotfixContinuation({\n\t\t\tevidence: hotfixEvidence,\n\t\t\tpolicy: input.releasePolicy,\n\t\t\treleaseGatePassed,\n\t\t\tfailureClass: 'release',\n\t\t\tblocker: blockers.join('; ') || releaseStatus || hotfixEvidenceStatus || releaseGateStatus,\n\t\t\tnow: undefined\n\t\t})\n\t\t: undefined;\n\tif (hotfixContinuation && hotfixContinuation.action !== 'continue_runner' && (statusBlocked || commitProofBlocked || hotfixContinuation.action === 'record_hotfix_evidence' || hotfixContinuation.action === 'rerun_release_gate')) {\n\t\tblockers.push(`hotfix_next_action=${hotfixContinuation.action}`);\n\t}\n\tconst uniqueBlockers = Array.from(new Set(blockers.filter(Boolean)));\n\treturn {\n\t\tblocked: uniqueBlockers.length > 0,\n\t\treason: uniqueBlockers.length\n\t\t\t? 'support_reply_release_or_hotfix_evidence_blocked'\n\t\t\t: 'support_reply_release_or_hotfix_evidence_clear',\n\t\tstatus: releaseStatus || hotfixEvidenceStatus || releaseGateStatus || '',\n\t\tblockers: uniqueBlockers,\n\t\trequiredEvidence: [\n\t\t\t'release status passed or explicitly not required',\n\t\t\t'hotfix commit proof clear when hotfix evidence is required',\n\t\t\t'sourceCommitSha, githubCommitUrl, gitCommitStatus=passed, gitPushStatus=passed when backend hotfix was used',\n\t\t\t'release gate passed when hotfix evidence requires gate rerun'\n\t\t],\n\t\tnextCommands: hotfixContinuation?.nextCommands?.length\n\t\t\t? hotfixContinuation.nextCommands\n\t\t\t: ['record_hotfix_evidence', 'commit_and_push_hotfix_to_github', 'rerun_release_gate_once'],\n\t\thotfixContinuation\n\t};\n}\n\nfunction supportBusinessAssertionPassed(value: any): boolean {\n\treturn /^(pass|passed|accepted|business_assertion_passed)$/i.test(cleanText(value, 80));\n}\n\nfunction supportBusinessAssertionFailed(value: any): boolean {\n\treturn /^(fail|failed|blocked|needs_repair|business_assertion_failed)$/i.test(cleanText(value, 80));\n}\n\nfunction supportBusinessAssertionRouteOnly(value: any): boolean {\n\treturn /^(route_probe_pass|route_only_pass|route_pass|route_probe|route_loaded)$/i.test(cleanText(value, 80));\n}\n\nfunction normalizeSupportBusinessProofAssertions(input: ResolveIOSupportBusinessProofReadinessInput): ResolveIOSupportBusinessProofAssertion[] {\n\tconst gate = normalizeResolveIOSupportDiagnosisGate(input.diagnosisGate);\n\tconst proofPlan = gate?.proof_plan;\n\tconst proofContract = proofPlan?.business_proof_contract;\n\tconst artifactPaths = cleanList(input.businessProofArtifacts, 30, 500);\n\tconst assertions: ResolveIOSupportBusinessProofAssertion[] = [];\n\tfor (const entry of Array.isArray(input.businessAssertions) ? input.businessAssertions : []) {\n\t\tconst source = cleanObject(entry);\n\t\tif (!Object.keys(source).length) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst metadata = cleanObject(source.metadata);\n\t\tassertions.push({\n\t\t\tassertion: pickText(source, ['assertion', 'name', 'workflow', 'expected'], 1000) || proofPlan?.business_assertion || 'business assertion',\n\t\t\tstatus: cleanText(source.status || source.outcome || source.result, 80),\n\t\t\tworkflow: pickText(source, ['workflow', 'workflowName'], 400),\n\t\t\troute: pickText(source, ['route', 'url'], 500),\n\t\t\tbefore: pickText(source, ['before', 'before_state', 'beforeState'], 1000),\n\t\t\taction: pickText(source, ['action', 'action_under_test', 'actionUnderTest'], 1000),\n\t\t\texpected: pickText(source, ['expected', 'expected_business_state_change', 'expectedBusinessStateChange'], 1000),\n\t\t\tafter: pickText(source, ['after', 'after_state', 'afterState'], 1000),\n\t\t\tobserved: pickText(source, ['observed', 'actual'], 1000),\n\t\t\tdataProof: pickText(source, ['dataProof', 'data_proof', 'proof', 'domProof', 'dom_proof'], 1400),\n\t\t\tmongoDelta: cleanObject(source.mongoDelta || source.mongo_delta),\n\t\t\tartifactPaths: cleanList(source.artifactPaths || source.artifact_paths || source.artifacts, 30, 500),\n\t\t\tmessage: pickText(source, ['message', 'reason', 'summary'], 1000),\n\t\t\tacceptanceBlocked: source.acceptanceBlocked === true || source.acceptance_blocked === true || metadata.acceptanceBlocked === true || metadata.acceptance_blocked === true,\n\t\t\trouteOnly: source.routeOnly === true || source.route_only === true || source.outcome === 'route_only_pass' || source.status === 'route_probe_pass' || metadata.routeOnly === true || metadata.route_only === true,\n\t\t\tmetadata\n\t\t});\n\t}\n\tconst status = cleanText(input.businessAssertionStatus || input.outcomeLabel, 80);\n\tif (!assertions.length && (supportBusinessAssertionPassed(status) || supportBusinessAssertionRouteOnly(status) || supportBusinessAssertionFailed(status))) {\n\t\tassertions.push({\n\t\t\tassertion: proofPlan?.business_assertion || proofContract?.data_or_dom_assertion || 'business assertion',\n\t\t\tstatus,\n\t\t\tworkflow: proofContract?.action_under_test,\n\t\t\troute: proofPlan?.route || gate?.issue_case.route_module,\n\t\t\tbefore: proofPlan?.before,\n\t\t\taction: proofPlan?.action || proofContract?.action_under_test,\n\t\t\texpected: proofContract?.expected_business_state_change || proofPlan?.after,\n\t\t\tafter: proofPlan?.after,\n\t\t\tobserved: '',\n\t\t\tdataProof: proofContract?.data_or_dom_assertion || proofPlan?.data_assertion || '',\n\t\t\tmongoDelta: {},\n\t\t\tartifactPaths,\n\t\t\tmessage: '',\n\t\t\tacceptanceBlocked: supportBusinessAssertionRouteOnly(status),\n\t\t\trouteOnly: supportBusinessAssertionRouteOnly(status),\n\t\t\tmetadata: {}\n\t\t});\n\t}\n\treturn assertions;\n}\n\nfunction supportBusinessProofAssertionText(assertion: ResolveIOSupportBusinessProofAssertion): string {\n\treturn cleanText([\n\t\tassertion.assertion,\n\t\tassertion.workflow,\n\t\tassertion.before,\n\t\tassertion.action,\n\t\tassertion.expected,\n\t\tassertion.after,\n\t\tassertion.observed,\n\t\tassertion.dataProof,\n\t\tassertion.message\n\t].filter(Boolean).join(' '), 4000);\n}\n\nfunction normalizeSupportProofRoute(value: any): string {\n\tconst raw = cleanText(value, 500);\n\tif (!raw) {\n\t\treturn '';\n\t}\n\tconst route = raw.split(/[?#]/)[0].replace(/\\/+$/g, '') || '/';\n\treturn route.toLowerCase();\n}\n\nfunction supportProofFieldMatches(candidate: any, expected: any, minimumLength = 12): boolean {\n\tconst candidateText = cleanText(candidate, 1400).toLowerCase();\n\tconst expectedText = cleanText(expected, 1400).toLowerCase();\n\tif (!candidateText || !expectedText || expectedText.length < minimumLength) {\n\t\treturn false;\n\t}\n\treturn candidateText === expectedText\n\t\t|| candidateText.includes(expectedText)\n\t\t|| expectedText.includes(candidateText);\n}\n\nfunction supportBusinessProofAssertionHasStructuredContractMapping(\n\tassertion: ResolveIOSupportBusinessProofAssertion,\n\tgate: ResolveIOSupportDiagnosisGate\n): boolean {\n\tconst proofPlan = gate.proof_plan;\n\tconst proofContract = proofPlan.business_proof_contract;\n\tconst expectedRoute = normalizeSupportProofRoute(proofPlan.route || gate.issue_case.route_module);\n\tconst assertionRoute = normalizeSupportProofRoute(assertion.route);\n\tconst routeMatches = !expectedRoute || !assertionRoute || expectedRoute === assertionRoute;\n\tconst actionMatches = [\n\t\tassertion.action,\n\t\tassertion.workflow\n\t].some((candidate) => [\n\t\tproofPlan.action,\n\t\tproofContract?.action_under_test\n\t].some((expected) => supportProofFieldMatches(candidate, expected, 12)));\n\tconst expectedStateMatches = [\n\t\tassertion.expected,\n\t\tassertion.after,\n\t\tassertion.observed,\n\t\tassertion.dataProof,\n\t\tassertion.assertion\n\t].some((candidate) => [\n\t\tproofPlan.after,\n\t\tproofPlan.business_assertion,\n\t\tproofPlan.data_assertion,\n\t\tproofContract?.expected_business_state_change,\n\t\tproofContract?.data_or_dom_assertion\n\t].some((expected) => supportProofFieldMatches(candidate, expected, 12)));\n\tconst hasBusinessDataProof = !!cleanText(assertion.dataProof, 50)\n\t\t|| Object.keys(cleanObject(assertion.mongoDelta)).length > 0\n\t\t|| !!cleanText(assertion.observed, 80)\n\t\t|| !!cleanText(assertion.after, 80);\n\treturn routeMatches && actionMatches && expectedStateMatches && hasBusinessDataProof;\n}\n\nfunction supportBusinessProofAssertionMatchesContract(\n\tassertion: ResolveIOSupportBusinessProofAssertion,\n\tgate: ResolveIOSupportDiagnosisGate | undefined\n): boolean {\n\tif (!gate) {\n\t\treturn false;\n\t}\n\tconst metadata = assertion.metadata || {};\n\tif (metadata.supportDiagnosisProof === true\n\t\t|| metadata.support_diagnosis_proof === true\n\t\t|| metadata.diagnosisProofPlanMatched === true\n\t\t|| metadata.diagnosis_proof_plan_matched === true\n\t\t|| metadata.proofPlanMatched === true\n\t\t|| metadata.proof_plan_matched === true) {\n\t\treturn supportBusinessProofAssertionHasStructuredContractMapping(assertion, gate);\n\t}\n\tconst proofPlan = gate.proof_plan;\n\tconst proofContract = proofPlan.business_proof_contract;\n\tconst requiredParts = [\n\t\tproofPlan.business_assertion,\n\t\tproofPlan.after,\n\t\tproofPlan.data_assertion,\n\t\tproofContract?.expected_business_state_change,\n\t\tproofContract?.data_or_dom_assertion\n\t].map((part) => cleanText(part, 1000).toLowerCase()).filter((part) => part.length >= 12);\n\tconst assertionText = supportBusinessProofAssertionText(assertion).toLowerCase();\n\tif (!requiredParts.length) {\n\t\treturn false;\n\t}\n\tif (requiredParts.some((part) => assertionText.includes(part))) {\n\t\treturn true;\n\t}\n\tconst proofWords = new Set(requiredParts.join(' ').split(/[^a-z0-9]+/g).filter((word) => word.length >= 5));\n\tconst assertionWords = new Set(assertionText.split(/[^a-z0-9]+/g).filter((word) => word.length >= 5));\n\tlet overlap = 0;\n\tfor (const word of proofWords) {\n\t\tif (assertionWords.has(word)) {\n\t\t\toverlap += 1;\n\t\t}\n\t}\n\treturn overlap >= Math.min(5, Math.max(3, Math.ceil(proofWords.size * 0.45)));\n}\n\nfunction supportBusinessProofArtifactFingerprint(paths: string[]): string {\n\tconst normalized = cleanList(paths, 80, 500).sort();\n\treturn normalized.length ? hashResolveIOSupportV5Evidence({ artifacts: normalized }) : '';\n}\n\nfunction supportBusinessProofFingerprint(\n\tgate: ResolveIOSupportDiagnosisGate | undefined,\n\tassertion: ResolveIOSupportBusinessProofAssertion | undefined,\n\tartifactPaths: string[] = []\n): string {\n\tif (!gate || !assertion) {\n\t\treturn '';\n\t}\n\tconst proofPlan = gate.proof_plan;\n\tconst proofContract = proofPlan.business_proof_contract;\n\treturn hashResolveIOSupportV5Evidence({\n\t\tissueClass: gate.issue_class,\n\t\tproofPlan: {\n\t\t\tbefore: proofPlan.before,\n\t\t\taction: proofPlan.action,\n\t\t\tafter: proofPlan.after,\n\t\t\tbusinessAssertion: proofPlan.business_assertion,\n\t\t\tdataAssertion: proofPlan.data_assertion,\n\t\t\tcontractAction: proofContract?.action_under_test,\n\t\t\tcontractExpected: proofContract?.expected_business_state_change,\n\t\t\tcontractAssertion: proofContract?.data_or_dom_assertion\n\t\t},\n\t\tassertion: {\n\t\t\tassertion: assertion.assertion,\n\t\t\tstatus: assertion.status,\n\t\t\tworkflow: assertion.workflow,\n\t\t\troute: assertion.route,\n\t\t\tbefore: assertion.before,\n\t\t\taction: assertion.action,\n\t\t\texpected: assertion.expected,\n\t\t\tafter: assertion.after,\n\t\t\tobserved: assertion.observed,\n\t\t\tdataProof: assertion.dataProof,\n\t\t\tmongoDelta: assertion.mongoDelta\n\t\t},\n\t\tartifacts: cleanList(assertion.artifactPaths?.length ? assertion.artifactPaths : artifactPaths, 80, 500).sort()\n\t});\n}\n\nfunction defaultSupportBusinessProofReadinessFields(values: {\n\tartifactPaths?: string[];\n\tproofFingerprint?: string;\n\tartifactFingerprint?: string;\n\tproofFreshness?: ResolveIOSupportBusinessProofReadiness['proofFreshness'];\n} = {}): Pick<ResolveIOSupportBusinessProofReadiness, 'artifactPaths' | 'proofFingerprint' | 'artifactFingerprint' | 'proofFreshness'> {\n\tconst artifactPaths = cleanList(values.artifactPaths, 80, 500);\n\treturn {\n\t\tartifactPaths,\n\t\tproofFingerprint: cleanText(values.proofFingerprint, 160),\n\t\tartifactFingerprint: cleanText(values.artifactFingerprint, 160) || supportBusinessProofArtifactFingerprint(artifactPaths),\n\t\tproofFreshness: values.proofFreshness || (artifactPaths.length ? 'unknown' : 'missing')\n\t};\n}\n\nexport function evaluateResolveIOSupportBusinessProofReadiness(\n\tinput: ResolveIOSupportBusinessProofReadinessInput = {}\n): ResolveIOSupportBusinessProofReadiness {\n\tconst diagnosisValidation = validateResolveIOSupportDiagnosisGate(input.diagnosisGate);\n\tconst gate = diagnosisValidation.normalized;\n\tconst requiredEvidence = [\n\t\t'valid SupportDiagnosisGate proof_plan',\n\t\t'AIQaBusinessAssertion status=pass',\n\t\t'business assertion maps to diagnosis proof_plan/business_proof_contract',\n\t\t'artifact path for browser/data proof',\n\t\t'DOM/data proof or Mongo delta for the expected business state change'\n\t];\n\tif (!diagnosisValidation.valid || !gate) {\n\t\treturn {\n\t\t\tready: false,\n\t\t\tstatus: 'blocked',\n\t\t\treason: 'support_business_proof_waiting_on_valid_diagnosis',\n\t\t\tblockers: diagnosisValidation.blockers.length ? diagnosisValidation.blockers : ['Valid SupportDiagnosisGate is required before business proof can accept the ticket.'],\n\t\t\trequiredEvidence,\n\t\t\t...defaultSupportBusinessProofReadinessFields()\n\t\t};\n\t}\n\tconst assertions = normalizeSupportBusinessProofAssertions(input);\n\tif (!assertions.length) {\n\t\treturn {\n\t\t\tready: false,\n\t\t\tstatus: 'missing',\n\t\t\treason: 'support_business_proof_missing_aiqa_business_assertion',\n\t\t\tblockers: ['No AIQaBusinessAssertion was recorded for the diagnosis proof_plan.'],\n\t\t\trequiredEvidence,\n\t\t\t...defaultSupportBusinessProofReadinessFields()\n\t\t};\n\t}\n\tconst artifactPaths = Array.from(new Set(assertions.flatMap((assertion) => assertion.artifactPaths || [])));\n\tconst artifactFingerprint = supportBusinessProofArtifactFingerprint(artifactPaths);\n\tconst failed = assertions.find((assertion) => supportBusinessAssertionFailed(assertion.status));\n\tif (failed) {\n\t\tconst failedFingerprint = supportBusinessProofFingerprint(gate, failed, artifactPaths);\n\t\treturn {\n\t\t\tready: false,\n\t\t\tstatus: 'failed',\n\t\t\treason: 'support_business_proof_assertion_failed',\n\t\t\tblockers: [failed.message || failed.observed || failed.assertion || 'Business assertion failed.'],\n\t\t\trequiredEvidence,\n\t\t\t...defaultSupportBusinessProofReadinessFields({\n\t\t\t\tartifactPaths,\n\t\t\t\tproofFingerprint: failedFingerprint,\n\t\t\t\tartifactFingerprint,\n\t\t\t\tproofFreshness: 'fresh'\n\t\t\t}),\n\t\t\tmatchedAssertion: failed\n\t\t};\n\t}\n\tconst routeOnly = assertions.find((assertion) => assertion.routeOnly || assertion.acceptanceBlocked || supportBusinessAssertionRouteOnly(assertion.status) || proofPlanLooksRouteOnly({\n\t\tbefore: assertion.before || '',\n\t\taction: assertion.action || '',\n\t\tafter: assertion.after || assertion.expected || '',\n\t\tbusiness_assertion: assertion.assertion || assertion.message || '',\n\t\tdata_assertion: assertion.dataProof || '',\n\t\tartifact_expectation: assertion.artifactPaths.join(', ')\n\t}));\n\tif (routeOnly) {\n\t\tconst routeOnlyFingerprint = supportBusinessProofFingerprint(gate, routeOnly, artifactPaths);\n\t\treturn {\n\t\t\tready: false,\n\t\t\tstatus: 'route_only',\n\t\t\treason: 'support_business_proof_route_only_or_acceptance_blocked',\n\t\t\tblockers: ['Route probe, shell/screenshot, or acceptance_blocked proof cannot accept the ticket. Run the issue-class business assertion.'],\n\t\t\trequiredEvidence,\n\t\t\t...defaultSupportBusinessProofReadinessFields({\n\t\t\t\tartifactPaths,\n\t\t\t\tproofFingerprint: routeOnlyFingerprint,\n\t\t\t\tartifactFingerprint,\n\t\t\t\tproofFreshness: 'fresh'\n\t\t\t}),\n\t\t\tmatchedAssertion: routeOnly\n\t\t};\n\t}\n\tconst passedAssertions = assertions.filter((assertion) => supportBusinessAssertionPassed(assertion.status));\n\tconst matched = passedAssertions.find((assertion) => supportBusinessProofAssertionMatchesContract(assertion, gate));\n\tif (!matched) {\n\t\treturn {\n\t\t\tready: false,\n\t\t\tstatus: 'weak',\n\t\t\treason: 'support_business_proof_does_not_match_diagnosis_contract',\n\t\t\tblockers: ['A passed assertion exists, but it does not map to the diagnosis proof_plan/business_proof_contract.'],\n\t\t\trequiredEvidence,\n\t\t\t...defaultSupportBusinessProofReadinessFields({ artifactPaths, artifactFingerprint })\n\t\t};\n\t}\n\tconst proofArtifactPaths = matched.artifactPaths.length ? matched.artifactPaths : artifactPaths;\n\tconst proofFingerprint = supportBusinessProofFingerprint(gate, matched, proofArtifactPaths);\n\tconst matchedArtifactFingerprint = supportBusinessProofArtifactFingerprint(proofArtifactPaths);\n\tconst previousProofFingerprint = cleanText(input.previousProofFingerprint, 160);\n\tconst previousArtifactFingerprint = cleanText(input.previousArtifactFingerprint, 160);\n\tconst sameProofAsPrevious = !!previousProofFingerprint && previousProofFingerprint === proofFingerprint;\n\tconst sameArtifactAsPrevious = !!previousArtifactFingerprint && previousArtifactFingerprint === matchedArtifactFingerprint;\n\tif (sameProofAsPrevious || sameArtifactAsPrevious) {\n\t\treturn {\n\t\t\tready: false,\n\t\t\tstatus: 'stale',\n\t\t\treason: sameProofAsPrevious\n\t\t\t\t? 'support_business_proof_same_fingerprint_as_previous'\n\t\t\t\t: 'support_business_proof_same_artifact_fingerprint_as_previous',\n\t\t\tblockers: ['Business proof did not produce a new proof/artifact fingerprint for this run. Rerun the issue-specific assertion and record fresh artifact proof.'],\n\t\t\trequiredEvidence,\n\t\t\t...defaultSupportBusinessProofReadinessFields({\n\t\t\t\tartifactPaths: proofArtifactPaths,\n\t\t\t\tproofFingerprint,\n\t\t\t\tartifactFingerprint: matchedArtifactFingerprint,\n\t\t\t\tproofFreshness: sameProofAsPrevious ? 'same_as_previous' : 'stale_artifact'\n\t\t\t}),\n\t\t\tmatchedAssertion: matched\n\t\t};\n\t}\n\tif (!matched.artifactPaths.length && !artifactPaths.length) {\n\t\treturn {\n\t\t\tready: false,\n\t\t\tstatus: 'weak',\n\t\t\treason: 'support_business_proof_missing_artifact_path',\n\t\t\tblockers: ['Business proof must include at least one artifact path.'],\n\t\t\trequiredEvidence,\n\t\t\t...defaultSupportBusinessProofReadinessFields({\n\t\t\t\tartifactPaths,\n\t\t\t\tproofFingerprint,\n\t\t\t\tartifactFingerprint: matchedArtifactFingerprint\n\t\t\t}),\n\t\t\tmatchedAssertion: matched\n\t\t};\n\t}\n\tconst hasDataOrDomProof = !!cleanText(matched.dataProof, 50)\n\t\t|| Object.keys(cleanObject(matched.mongoDelta)).length > 0\n\t\t|| !!cleanText(matched.observed, 80)\n\t\t|| !!cleanText(matched.after, 80);\n\tif (!hasDataOrDomProof) {\n\t\treturn {\n\t\t\tready: false,\n\t\t\tstatus: 'weak',\n\t\t\treason: 'support_business_proof_missing_dom_or_data_proof',\n\t\t\tblockers: ['Business proof must include DOM/data proof, observed result, after-state, or Mongo delta.'],\n\t\t\trequiredEvidence,\n\t\t\t...defaultSupportBusinessProofReadinessFields({\n\t\t\t\tartifactPaths: proofArtifactPaths,\n\t\t\t\tproofFingerprint,\n\t\t\t\tartifactFingerprint: matchedArtifactFingerprint\n\t\t\t}),\n\t\t\tmatchedAssertion: matched\n\t\t};\n\t}\n\treturn {\n\t\tready: true,\n\t\tstatus: 'passed',\n\t\treason: 'support_business_proof_ready',\n\t\tblockers: [],\n\t\trequiredEvidence,\n\t\t...defaultSupportBusinessProofReadinessFields({\n\t\t\tartifactPaths: proofArtifactPaths,\n\t\t\tproofFingerprint,\n\t\t\tartifactFingerprint: matchedArtifactFingerprint,\n\t\t\tproofFreshness: 'fresh'\n\t\t}),\n\t\tmatchedAssertion: matched\n\t};\n}\n\nfunction buildSupportClarificationQuestion(gate: ResolveIOSupportDiagnosisGate | undefined, blockers: string[]): string {\n\tif (gate?.issue_case.reproduction_status === 'blocked' && gate.issue_case.reproduction_blocker) {\n\t\treturn `Can you provide the missing detail needed to reproduce this issue: ${gate.issue_case.reproduction_blocker}?`;\n\t}\n\tif (blockers.some((blocker) => /expected_result/.test(blocker))) {\n\t\treturn 'What result did you expect to see in this workflow?';\n\t}\n\tif (blockers.some((blocker) => /observed_result/.test(blocker))) {\n\t\treturn 'What exact result are you seeing instead, including the affected record or screen if possible?';\n\t}\n\tif (blockers.some((blocker) => /account_customer_context/.test(blocker))) {\n\t\treturn 'Which customer/account/user context should we use to reproduce this issue?';\n\t}\n\treturn 'Can you send one concrete example record, screen, or action path where this issue still occurs?';\n}\n\nfunction resolveSupportClarificationMissingField(\n\tgate: ResolveIOSupportDiagnosisGate | undefined,\n\tblockers: string[]\n): ResolveIOSupportClarificationMissingField {\n\tif (gate?.issue_case.reproduction_status === 'blocked' && gate.issue_case.reproduction_blocker) {\n\t\treturn 'reproduction_blocker';\n\t}\n\tif (blockers.some((blocker) => /expected_result/.test(blocker))) {\n\t\treturn 'expected_result';\n\t}\n\tif (blockers.some((blocker) => /observed_result/.test(blocker))) {\n\t\treturn 'observed_result';\n\t}\n\tif (blockers.some((blocker) => /account_customer_context/.test(blocker))) {\n\t\treturn 'account_customer_context';\n\t}\n\treturn 'example_record_or_action_path';\n}\n\nexport function buildResolveIOSupportClarificationContract(\n\tgate: ResolveIOSupportDiagnosisGate | undefined,\n\tblockers: string[] = [],\n\tnow?: Date | string\n): ResolveIOSupportClarificationContract {\n\tconst sourceBlockers = cleanList(blockers, 20, 500);\n\tconst missingField = resolveSupportClarificationMissingField(gate, sourceBlockers);\n\tconst question = buildSupportClarificationQuestion(gate, sourceBlockers);\n\tconst createdAt = isoNow(now);\n\treturn {\n\t\tcontractId: `support-clarification-${hashResolveIOSupportV5Evidence({\n\t\t\tmissingField,\n\t\t\tquestion,\n\t\t\tsourceBlockers,\n\t\t\tticketRoute: gate?.issue_case.route_module,\n\t\t\tcreatedAt: createdAt.slice(0, 16)\n\t\t}).slice(0, 16)}`,\n\t\tstatus: 'ready',\n\t\tmissingField,\n\t\tquestion,\n\t\tsourceBlockers,\n\t\toneQuestionOnly: (question.match(/\\?/g) || []).length === 1,\n\t\tcustomerFacingDraftAllowed: true,\n\t\tcustomerSendAllowed: false,\n\t\tparksTicketUntilCustomerReply: true,\n\t\tnextCommands: ['review_customer_clarification', 'send_after_human_review', 'park_ticket_until_customer_reply'],\n\t\tforbiddenActions: [\n\t\t\t'Do not run product repair from a guessed reproduction path.',\n\t\t\t'Do not ask multiple customer questions in one automated clarification.',\n\t\t\t'Do not mark the ticket resolved from a clarification draft.'\n\t\t],\n\t\trequiredEvidence: [\n\t\t\t`missing_field=${missingField}`,\n\t\t\t'one customer-facing question',\n\t\t\t'human approval before send',\n\t\t\t'park_ticket_until_customer_reply'\n\t\t],\n\t\tcreatedAt\n\t};\n}\n\nexport function validateResolveIOSupportClarificationContract(value: any): {\n\tvalid: boolean;\n\tstatus: 'ready' | 'blocked';\n\tblockers: string[];\n\tnormalized: ResolveIOSupportClarificationContract;\n} {\n\tconst source = cleanObject(value);\n\tconst missingField = cleanText(source.missingField || source.missing_field, 120) as ResolveIOSupportClarificationMissingField;\n\tconst question = cleanText(source.question, 1000);\n\tconst sourceBlockers = cleanList(source.sourceBlockers || source.source_blockers, 20, 500);\n\tconst questionMarkCount = (question.match(/\\?/g) || []).length;\n\tconst normalized: ResolveIOSupportClarificationContract = {\n\t\tcontractId: cleanText(source.contractId || source.contract_id, 160),\n\t\tstatus: source.status === 'ready' ? 'ready' : 'blocked',\n\t\tmissingField,\n\t\tquestion,\n\t\tsourceBlockers,\n\t\toneQuestionOnly: source.oneQuestionOnly === true || source.one_question_only === true || questionMarkCount === 1,\n\t\tcustomerFacingDraftAllowed: source.customerFacingDraftAllowed === true || source.customer_facing_draft_allowed === true,\n\t\tcustomerSendAllowed: source.customerSendAllowed === true || source.customer_send_allowed === true,\n\t\tparksTicketUntilCustomerReply: source.parksTicketUntilCustomerReply === true || source.parks_ticket_until_customer_reply === true,\n\t\tnextCommands: cleanList(source.nextCommands || source.next_commands, 12, 200),\n\t\tforbiddenActions: cleanList(source.forbiddenActions || source.forbidden_actions, 12, 500),\n\t\trequiredEvidence: cleanList(source.requiredEvidence || source.required_evidence, 12, 500),\n\t\tcreatedAt: cleanText(source.createdAt || source.created_at, 120)\n\t};\n\tconst validMissingFields: ResolveIOSupportClarificationMissingField[] = [\n\t\t'reproduction_blocker',\n\t\t'expected_result',\n\t\t'observed_result',\n\t\t'account_customer_context',\n\t\t'example_record_or_action_path'\n\t];\n\tconst blockers = [\n\t\tnormalized.contractId ? '' : 'Clarification contract is missing contractId.',\n\t\tvalidMissingFields.includes(normalized.missingField) ? '' : 'Clarification contract is missing a valid missingField.',\n\t\tquestion.length >= 20 && question.length <= 500 ? '' : 'Clarification question must be 20-500 characters.',\n\t\tquestionMarkCount === 1 && normalized.oneQuestionOnly ? '' : 'Clarification contract must contain exactly one customer question.',\n\t\tnormalized.customerFacingDraftAllowed === true ? '' : 'Clarification draft must be customer-facing so the operator can review it.',\n\t\tnormalized.customerSendAllowed === false ? '' : 'Clarification contract must never allow automatic customer send.',\n\t\tnormalized.parksTicketUntilCustomerReply === true ? '' : 'Clarification contract must park the ticket until customer reply.',\n\t\tnormalized.nextCommands.includes('park_ticket_until_customer_reply') ? '' : 'Clarification nextCommands must include park_ticket_until_customer_reply.',\n\t\tnormalized.forbiddenActions.length ? '' : 'Clarification contract must include forbiddenActions.'\n\t].filter(Boolean);\n\tnormalized.status = blockers.length ? 'blocked' : 'ready';\n\treturn {\n\t\tvalid: blockers.length === 0,\n\t\tstatus: normalized.status,\n\t\tblockers,\n\t\tnormalized\n\t};\n}\n\nfunction buildResolveIOSupportHumanReviewPacket(input: {\n\treviewType: ResolveIOSupportHumanReviewType;\n\ttitle: string;\n\tsummary?: string;\n\tprimaryAction: string;\n\tquestion?: string;\n\tcustomerFacingDraftAllowed?: boolean;\n\tcustomerSendAllowed?: boolean;\n\trequiresHumanApproval?: boolean;\n\tsafety?: ResolveIOSupportHumanReviewPacket['safety'];\n\treason?: string;\n\tblockers?: any[];\n\trequiredEvidence?: any[];\n\tevidenceRefs?: any[];\n\tnextCommands?: any[];\n\tforbiddenActions?: any[];\n\tcostRisk?: ResolveIOSupportHumanReviewPacket['costRisk'];\n\tnow?: Date | string;\n}): ResolveIOSupportHumanReviewPacket {\n\treturn {\n\t\treviewType: input.reviewType,\n\t\ttitle: cleanText(input.title, 200) || 'Review Support Runner Action',\n\t\tsummary: cleanText(input.summary || input.reason, 1000),\n\t\tprimaryAction: cleanText(input.primaryAction, 160) || 'review_support_runner_action',\n\t\tquestion: cleanText(input.question, 1000) || undefined,\n\t\tcustomerFacingDraftAllowed: input.customerFacingDraftAllowed === true,\n\t\tcustomerSendAllowed: false,\n\t\trequiresHumanApproval: input.requiresHumanApproval !== false,\n\t\tsafety: input.safety || 'internal_hold',\n\t\treason: cleanText(input.reason, 500),\n\t\tblockers: cleanList(input.blockers, 20, 500),\n\t\trequiredEvidence: cleanList(input.requiredEvidence, 30, 500),\n\t\tevidenceRefs: cleanList(input.evidenceRefs, 40, 500),\n\t\tnextCommands: cleanList(input.nextCommands, 20, 200),\n\t\tforbiddenActions: Array.from(new Set([\n\t\t\t'Do not send customer email without explicit human approval.',\n\t\t\t...cleanList(input.forbiddenActions, 20, 500)\n\t\t])),\n\t\tcostRisk: input.costRisk || 'small_model_or_qa',\n\t\tcreatedAt: isoNow(input.now)\n\t};\n}\n\nfunction supportCustomerReplyReadinessStatusFromReason(reason: string): ResolveIOSupportCustomerReplyReadinessStatus {\n\tconst statusByReason: Record<string, ResolveIOSupportCustomerReplyReadinessStatus> = {\n\t\tsupport_reply_clarification_contract_invalid: 'internal_blocked',\n\t\tsupport_reply_waiting_on_customer_reproduction_detail: 'clarification_required',\n\t\tsupport_reply_blocked_until_diagnosis_gate_validates: 'blocked_until_diagnosis',\n\t\tsupport_reply_requires_valid_issue_class_probe_plan: 'blocked_until_probe_plan',\n\t\tsupport_reply_blocked_by_confidence_gate: 'blocked_until_confidence',\n\t\tsupport_reply_requires_high_confidence: 'blocked_until_confidence',\n\t\tsupport_reply_blocked_by_unresolved_runner_blocker: 'blocked_until_runner_blocker',\n\t\tsupport_reply_blocked_until_release_or_hotfix_gate_finishes: 'blocked_until_release_hotfix',\n\t\tsupport_reply_rejects_route_only_business_proof: 'blocked_until_business_proof',\n\t\tsupport_reply_requires_business_assertion_pass: 'blocked_until_business_proof',\n\t\tsupport_reply_requires_business_proof_contract_artifact: 'blocked_until_business_proof_artifact',\n\t\tsupport_reply_resolution_draft_allowed_after_business_proof: 'draft_ready'\n\t};\n\treturn statusByReason[reason] || 'internal_blocked';\n}\n\nfunction supportCustomerReplyReadinessDefaultPrimaryCommand(\n\tstatus: ResolveIOSupportCustomerReplyReadinessStatus,\n\tpolicy: ResolveIOSupportCustomerReplyPolicy\n): string {\n\tconst reviewPacket = policy.humanReviewPacket;\n\tconst preferred = cleanText(reviewPacket?.primaryAction, 160);\n\tif (preferred) {\n\t\treturn preferred;\n\t}\n\tswitch (status) {\n\t\tcase 'draft_ready':\n\t\t\treturn 'review_customer_reply';\n\t\tcase 'clarification_required':\n\t\t\treturn 'review_customer_clarification';\n\t\tcase 'blocked_until_diagnosis':\n\t\t\treturn 'run_support_v5_read_only_diagnosis_gate';\n\t\tcase 'blocked_until_probe_plan':\n\t\t\treturn 'repair_support_issue_class_probe_plan';\n\t\tcase 'blocked_until_confidence':\n\t\t\treturn 'review_support_confidence_evidence';\n\t\tcase 'blocked_until_release_hotfix':\n\t\t\treturn 'repair_release_hotfix_first';\n\t\tcase 'blocked_until_business_proof':\n\t\t\treturn 'run_support_v5_business_proof_qa_row';\n\t\tcase 'blocked_until_business_proof_artifact':\n\t\t\treturn 'record_business_proof_artifact';\n\t\tcase 'blocked_until_runner_blocker':\n\t\t\treturn 'review_support_runner_blocker';\n\t\tcase 'blocked_until_human_approval':\n\t\t\treturn 'review_customer_reply';\n\t\tcase 'internal_blocked':\n\t\tdefault:\n\t\t\treturn 'review_support_runner_blocker';\n\t}\n}\n\nexport function buildResolveIOSupportCustomerReplyReadinessContract(\n\tinput: ResolveIOSupportCustomerReplyReadinessContractInput\n): ResolveIOSupportCustomerReplyReadinessContract {\n\tconst policy = input.policy;\n\tconst reviewPacket = policy.humanReviewPacket;\n\tconst reason = cleanText(policy.reason, 500);\n\tconst rawCanSend = policy.canSendCustomerReply === true || reviewPacket?.customerSendAllowed === true;\n\tconst businessProofReady = input.businessProofReadiness?.ready === true\n\t\t|| (policy.action === 'draft_resolution_reply' && (policy.draftBasis?.artifactCount || 0) > 0);\n\tconst releaseReady = input.releaseGate?.blocked !== true;\n\tconst diagnosisReady = input.diagnosisValidation?.valid === true || policy.action === 'draft_resolution_reply';\n\tconst issueClassProbePlanReady = input.issueClassProbePlanValidation?.valid === true\n\t\t|| policy.draftBasis?.issueClassProbePlanStatus === 'ready';\n\tconst initialStatus = supportCustomerReplyReadinessStatusFromReason(reason);\n\tconst status: ResolveIOSupportCustomerReplyReadinessStatus = rawCanSend\n\t\t? 'blocked_until_human_approval'\n\t\t: initialStatus;\n\tconst canDraft = policy.canDraftCustomerReply === true\n\t\t&& !rawCanSend\n\t\t&& (status === 'draft_ready' || status === 'clarification_required');\n\tconst requiresHumanApproval = true;\n\tconst primaryCommand = supportCustomerReplyReadinessDefaultPrimaryCommand(status, policy);\n\tconst blockers = Array.from(new Set([\n\t\t...cleanList(reviewPacket?.blockers, 20, 500),\n\t\t...cleanList(input.businessProofReadiness?.blockers, 20, 500),\n\t\t...cleanList(input.releaseGate?.blockers, 20, 500),\n\t\t...(rawCanSend ? ['automatic_customer_send_not_allowed'] : []),\n\t\t...(status === 'draft_ready' ? [] : [reason || status])\n\t].filter(Boolean)));\n\tconst requiredEvidence = Array.from(new Set([\n\t\t...cleanList(policy.requiredEvidence, 30, 500),\n\t\t...cleanList(reviewPacket?.requiredEvidence, 30, 500),\n\t\t...cleanList(input.businessProofReadiness?.requiredEvidence, 30, 500),\n\t\t...cleanList(input.releaseGate?.requiredEvidence, 30, 500)\n\t].filter(Boolean)));\n\tconst evidenceRefs = Array.from(new Set([\n\t\t...cleanList(reviewPacket?.evidenceRefs, 40, 500),\n\t\t...cleanList(input.businessProofReadiness?.artifactPaths, 40, 500)\n\t].filter(Boolean)));\n\tconst nextCommands = Array.from(new Set([\n\t\tprimaryCommand,\n\t\t...cleanList(reviewPacket?.nextCommands, 20, 200),\n\t\t...cleanList(input.releaseGate?.nextCommands, 20, 200)\n\t].filter(Boolean)));\n\tconst forbiddenActions = Array.from(new Set([\n\t\t'Do not send customer email without explicit human approval.',\n\t\t'Do not claim a fix is live until release or hotfix evidence is clear.',\n\t\t'Do not draft a resolution reply from route-load, screenshot-only, scorecard-only, or model-claim proof.',\n\t\t...cleanList(reviewPacket?.forbiddenActions, 20, 500)\n\t]));\n\tconst createdAt = isoNow(input.now || reviewPacket?.createdAt);\n\treturn {\n\t\tcontractId: `support-customer-reply-${hashResolveIOSupportV5Evidence({\n\t\t\tstatus,\n\t\t\tpolicyAction: policy.action,\n\t\t\treason,\n\t\t\tprimaryCommand,\n\t\t\tblockers,\n\t\t\tartifactFingerprint: input.businessProofReadiness?.artifactFingerprint,\n\t\t\tproofFingerprint: input.businessProofReadiness?.proofFingerprint,\n\t\t\tcreatedAt: createdAt.slice(0, 16)\n\t\t}).slice(0, 16)}`,\n\t\tstatus,\n\t\tpolicyAction: policy.action,\n\t\treviewType: reviewPacket?.reviewType || (policy.action === 'draft_resolution_reply' ? 'customer_resolution_reply' : policy.action === 'ask_clarification' ? 'customer_clarification' : 'internal_hold'),\n\t\tprimaryCommand,\n\t\tcanDraftCustomerReply: canDraft,\n\t\tcanSendCustomerReply: false,\n\t\trequiresHumanApproval,\n\t\tproofBacked: status === 'draft_ready' && businessProofReady && evidenceRefs.length > 0,\n\t\tbusinessProofReady,\n\t\treleaseReady,\n\t\tdiagnosisReady,\n\t\tissueClassProbePlanReady,\n\t\tclarificationRequired: status === 'clarification_required',\n\t\treason,\n\t\tblockers,\n\t\trequiredEvidence,\n\t\tevidenceRefs,\n\t\tnextCommands,\n\t\tforbiddenActions,\n\t\tcreatedAt\n\t};\n}\n\nexport function validateResolveIOSupportCustomerReplyReadinessContract(value: any): {\n\tvalid: boolean;\n\tstatus: ResolveIOSupportCustomerReplyReadinessStatus | 'blocked';\n\tblockers: string[];\n\tnormalized: ResolveIOSupportCustomerReplyReadinessContract;\n} {\n\tconst source = cleanObject(value);\n\tconst validStatuses: ResolveIOSupportCustomerReplyReadinessStatus[] = [\n\t\t'draft_ready',\n\t\t'clarification_required',\n\t\t'blocked_until_diagnosis',\n\t\t'blocked_until_probe_plan',\n\t\t'blocked_until_confidence',\n\t\t'blocked_until_runner_blocker',\n\t\t'blocked_until_release_hotfix',\n\t\t'blocked_until_business_proof',\n\t\t'blocked_until_business_proof_artifact',\n\t\t'blocked_until_human_approval',\n\t\t'internal_blocked'\n\t];\n\tconst status = cleanText(source.status, 120) as ResolveIOSupportCustomerReplyReadinessStatus;\n\tconst normalized: ResolveIOSupportCustomerReplyReadinessContract = {\n\t\tcontractId: cleanText(source.contractId || source.contract_id, 180),\n\t\tstatus: validStatuses.includes(status) ? status : 'internal_blocked',\n\t\tpolicyAction: cleanText(source.policyAction || source.policy_action, 120) as ResolveIOSupportCustomerReplyAction,\n\t\treviewType: cleanText(source.reviewType || source.review_type, 120) as ResolveIOSupportHumanReviewType,\n\t\tprimaryCommand: cleanText(source.primaryCommand || source.primary_command, 180),\n\t\tcanDraftCustomerReply: source.canDraftCustomerReply === true || source.can_draft_customer_reply === true,\n\t\tcanSendCustomerReply: source.canSendCustomerReply === true || source.can_send_customer_reply === true,\n\t\trequiresHumanApproval: source.requiresHumanApproval !== false && source.requires_human_approval !== false,\n\t\tproofBacked: source.proofBacked === true || source.proof_backed === true,\n\t\tbusinessProofReady: source.businessProofReady === true || source.business_proof_ready === true,\n\t\treleaseReady: source.releaseReady === true || source.release_ready === true,\n\t\tdiagnosisReady: source.diagnosisReady === true || source.diagnosis_ready === true,\n\t\tissueClassProbePlanReady: source.issueClassProbePlanReady === true || source.issue_class_probe_plan_ready === true,\n\t\tclarificationRequired: source.clarificationRequired === true || source.clarification_required === true,\n\t\treason: cleanText(source.reason, 500),\n\t\tblockers: cleanList(source.blockers, 24, 500),\n\t\trequiredEvidence: cleanList(source.requiredEvidence || source.required_evidence, 30, 500),\n\t\tevidenceRefs: cleanList(source.evidenceRefs || source.evidence_refs, 40, 500),\n\t\tnextCommands: cleanList(source.nextCommands || source.next_commands, 24, 200),\n\t\tforbiddenActions: cleanList(source.forbiddenActions || source.forbidden_actions, 24, 500),\n\t\tcreatedAt: cleanText(source.createdAt || source.created_at, 120)\n\t};\n\tconst blockers = [\n\t\tnormalized.contractId ? '' : 'Customer reply readiness contract is missing contractId.',\n\t\tvalidStatuses.includes(status) ? '' : 'Customer reply readiness contract has an invalid status.',\n\t\tnormalized.policyAction ? '' : 'Customer reply readiness contract is missing policyAction.',\n\t\tnormalized.primaryCommand ? '' : 'Customer reply readiness contract is missing primaryCommand.',\n\t\tnormalized.requiresHumanApproval ? '' : 'Customer reply readiness must require human approval.',\n\t\tnormalized.canSendCustomerReply === false ? '' : 'Customer reply readiness must never allow automatic customer send.',\n\t\tnormalized.requiredEvidence.length ? '' : 'Customer reply readiness contract is missing requiredEvidence.',\n\t\tnormalized.forbiddenActions.length ? '' : 'Customer reply readiness contract is missing forbiddenActions.',\n\t\tnormalized.status === 'draft_ready' && !normalized.canDraftCustomerReply ? 'Draft-ready customer reply must allow draft creation.' : '',\n\t\tnormalized.status === 'draft_ready' && !normalized.proofBacked ? 'Draft-ready customer reply must be proof-backed.' : '',\n\t\tnormalized.status === 'draft_ready' && !normalized.businessProofReady ? 'Draft-ready customer reply requires businessProofReady=true.' : '',\n\t\tnormalized.status === 'draft_ready' && !normalized.releaseReady ? 'Draft-ready customer reply requires releaseReady=true.' : '',\n\t\tnormalized.status === 'draft_ready' && normalized.reviewType !== 'customer_resolution_reply' ? 'Draft-ready customer reply requires reviewType=customer_resolution_reply.' : '',\n\t\tnormalized.status === 'clarification_required' && !normalized.clarificationRequired ? 'Clarification readiness must set clarificationRequired=true.' : '',\n\t\tnormalized.status === 'clarification_required' && normalized.reviewType !== 'customer_clarification' ? 'Clarification readiness requires reviewType=customer_clarification.' : '',\n\t\tnormalized.status !== 'draft_ready' && normalized.status !== 'clarification_required' && normalized.canDraftCustomerReply ? 'Blocked customer reply readiness cannot allow draft creation.' : ''\n\t].filter(Boolean);\n\treturn {\n\t\tvalid: blockers.length === 0,\n\t\tstatus: blockers.length ? 'blocked' : normalized.status,\n\t\tblockers,\n\t\tnormalized\n\t};\n}\n\nfunction supportAutonomousReviewTypeForAction(action: ResolveIOSupportV5AutonomousNextAction): ResolveIOSupportHumanReviewType {\n\tswitch (action) {\n\t\tcase 'run_diagnosis_gate':\n\t\t\treturn 'diagnosis_gate';\n\t\tcase 'ask_customer_clarification':\n\t\t\treturn 'customer_clarification';\n\t\tcase 'run_owner_scoped_repair':\n\t\tcase 'revise_diagnosis_scope':\n\t\t\treturn 'owner_scoped_repair';\n\t\tcase 'run_business_proof_qa':\n\t\t\treturn 'business_proof_qa';\n\t\tcase 'run_a_grade_pr_review':\n\t\tcase 'repair_release_hotfix_first':\n\t\tcase 'ready_for_release_gate':\n\t\t\treturn 'release_hotfix';\n\t\tcase 'draft_customer_reply':\n\t\t\treturn 'customer_resolution_reply';\n\t\tcase 'collect_new_evidence':\n\t\t\treturn 'new_evidence';\n\t\tcase 'repair_infra_only':\n\t\tcase 'park_manual':\n\t\tdefault:\n\t\t\treturn 'internal_hold';\n\t}\n}\n\nexport function decideResolveIOSupportCustomerReplyPolicy(input: ResolveIOSupportCustomerReplyPolicyInput = {}): ResolveIOSupportCustomerReplyPolicy {\n\tconst diagnosisValidation = validateResolveIOSupportDiagnosisGate(input.diagnosisGate);\n\tconst gate = diagnosisValidation.normalized;\n\tconst confidenceLevel = normalizeSupportConfidenceLevel(input.confidence);\n\tconst shouldBlockConfidence = input.confidence?.shouldBlockPr === true\n\t\t|| input.confidence?.should_block_pr === true\n\t\t|| input.confidence?.blocked === true;\n\tconst businessProofReadiness = evaluateResolveIOSupportBusinessProofReadiness({\n\t\tdiagnosisGate: input.diagnosisGate,\n\t\toutcomeLabel: input.outcomeLabel,\n\t\tbusinessAssertionStatus: input.businessAssertionStatus,\n\t\tbusinessAssertions: input.businessAssertions,\n\t\tbusinessProofArtifacts: input.businessProofArtifacts,\n\t\tpreviousProofFingerprint: input.previousProofFingerprint,\n\t\tpreviousArtifactFingerprint: input.previousArtifactFingerprint\n\t});\n\tconst artifactCount = businessProofReadiness.artifactPaths.length;\n\tconst unresolvedBlockers = cleanList(input.unresolvedBlockers, 20, 500);\n\tconst releaseGate = resolveSupportReplyReleaseGate(input);\n\tconst requiredEvidence = [\n\t\t'valid SupportDiagnosisGate',\n\t\t'validated IssueClassProbePlan',\n\t\t'high confidence with shouldBlockPr=false',\n\t\t'accepted outcome or passed business assertion',\n\t\t'business proof contract and artifact evidence',\n\t\t'no unresolved blocker or release blocker'\n\t];\n\tconst withReadiness = (\n\t\tpolicy: Omit<ResolveIOSupportCustomerReplyPolicy, 'readinessContract'>,\n\t\tissueClassProbePlanValidation?: ResolveIOSupportIssueClassProbePlanValidation\n\t): ResolveIOSupportCustomerReplyPolicy => {\n\t\tconst normalizedPolicy = policy as ResolveIOSupportCustomerReplyPolicy;\n\t\treturn {\n\t\t\t...normalizedPolicy,\n\t\t\treadinessContract: buildResolveIOSupportCustomerReplyReadinessContract({\n\t\t\t\tpolicy: normalizedPolicy,\n\t\t\t\tdiagnosisValidation,\n\t\t\t\tissueClassProbePlanValidation,\n\t\t\t\tbusinessProofReadiness,\n\t\t\t\treleaseGate\n\t\t\t})\n\t\t};\n\t};\n\tif (!diagnosisValidation.valid) {\n\t\tconst canAskCustomer = gate?.issue_case.reproduction_status === 'blocked'\n\t\t\t|| diagnosisValidation.blockers.some((blocker) => /expected_result|observed_result|account_customer_context/.test(blocker));\n\t\tif (canAskCustomer) {\n\t\t\tconst clarificationValidation = validateResolveIOSupportClarificationContract(\n\t\t\t\tbuildResolveIOSupportClarificationContract(gate, diagnosisValidation.blockers)\n\t\t\t);\n\t\t\tconst clarificationContract = clarificationValidation.normalized;\n\t\t\tif (!clarificationValidation.valid) {\n\t\t\t\treturn withReadiness({\n\t\t\t\t\taction: 'hold_internal',\n\t\t\t\t\tcanDraftCustomerReply: false,\n\t\t\t\t\tcanSendCustomerReply: false,\n\t\t\t\t\tconfidenceLevel,\n\t\t\t\t\tsafety: 'internal_hold',\n\t\t\t\t\treason: 'support_reply_clarification_contract_invalid',\n\t\t\t\t\trequiredEvidence,\n\t\t\t\t\tclarificationContract,\n\t\t\t\t\thumanReviewPacket: buildResolveIOSupportHumanReviewPacket({\n\t\t\t\t\t\treviewType: 'internal_hold',\n\t\t\t\t\t\ttitle: 'Repair Clarification Contract',\n\t\t\t\t\t\tsummary: 'Customer clarification is blocked until the one-question clarification contract validates.',\n\t\t\t\t\t\tprimaryAction: 'repair_support_clarification_contract',\n\t\t\t\t\t\tsafety: 'internal_hold',\n\t\t\t\t\t\treason: 'support_reply_clarification_contract_invalid',\n\t\t\t\t\t\tblockers: clarificationValidation.blockers,\n\t\t\t\t\t\trequiredEvidence,\n\t\t\t\t\t\tnextCommands: ['repair_clarification_contract', 'rerun_reply_policy'],\n\t\t\t\t\t\tforbiddenActions: ['Do not send a malformed or multi-question clarification.'],\n\t\t\t\t\t\tcostRisk: 'free_or_deterministic'\n\t\t\t\t\t})\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn withReadiness({\n\t\t\t\taction: 'ask_clarification',\n\t\t\t\tcanDraftCustomerReply: true,\n\t\t\t\tcanSendCustomerReply: false,\n\t\t\t\tconfidenceLevel,\n\t\t\t\tsafety: 'needs_clarification',\n\t\t\t\treason: 'support_reply_waiting_on_customer_reproduction_detail',\n\t\t\t\trequiredEvidence: Array.from(new Set([...requiredEvidence, ...clarificationContract.requiredEvidence])),\n\t\t\t\tclarificationQuestion: clarificationContract.question,\n\t\t\t\tclarificationContract,\n\t\t\t\thumanReviewPacket: buildResolveIOSupportHumanReviewPacket({\n\t\t\t\t\treviewType: 'customer_clarification',\n\t\t\t\t\ttitle: 'Review Customer Clarification',\n\t\t\t\t\tsummary: 'The runner needs one customer detail before it can reproduce or continue safely.',\n\t\t\t\t\tprimaryAction: 'review_customer_clarification',\n\t\t\t\t\tquestion: clarificationContract.question,\n\t\t\t\t\tcustomerFacingDraftAllowed: clarificationContract.customerFacingDraftAllowed,\n\t\t\t\t\tsafety: 'needs_clarification',\n\t\t\t\t\treason: 'support_reply_waiting_on_customer_reproduction_detail',\n\t\t\t\t\tblockers: clarificationContract.sourceBlockers,\n\t\t\t\t\trequiredEvidence: clarificationContract.requiredEvidence,\n\t\t\t\t\tnextCommands: clarificationContract.nextCommands,\n\t\t\t\t\tforbiddenActions: clarificationContract.forbiddenActions,\n\t\t\t\t\tcostRisk: 'release_or_customer_send'\n\t\t\t\t})\n\t\t\t});\n\t\t}\n\t\treturn withReadiness({\n\t\t\taction: 'hold_internal',\n\t\t\tcanDraftCustomerReply: false,\n\t\t\tcanSendCustomerReply: false,\n\t\t\tconfidenceLevel,\n\t\t\tsafety: 'internal_hold',\n\t\t\treason: 'support_reply_blocked_until_diagnosis_gate_validates',\n\t\t\trequiredEvidence,\n\t\t\thumanReviewPacket: buildResolveIOSupportHumanReviewPacket({\n\t\t\t\treviewType: 'internal_hold',\n\t\t\t\ttitle: 'Complete Diagnosis Gate',\n\t\t\t\tsummary: 'Customer reply is blocked until the diagnosis gate validates.',\n\t\t\t\tprimaryAction: 'run_support_v5_read_only_diagnosis_gate',\n\t\t\t\tsafety: 'internal_hold',\n\t\t\t\treason: 'support_reply_blocked_until_diagnosis_gate_validates',\n\t\t\t\tblockers: diagnosisValidation.blockers,\n\t\t\t\trequiredEvidence,\n\t\t\t\tnextCommands: ['retrieve_similar_tickets_and_commits', 'run_reproduction_or_classification_probe', 'write_support_diagnosis_gate_json'],\n\t\t\t\tforbiddenActions: ['Do not draft a resolution reply before root-cause diagnosis validates.'],\n\t\t\t\tcostRisk: 'expensive_model'\n\t\t\t})\n\t\t});\n\t}\n\tconst explicitProbePlan = cleanObject(input.issueClassProbePlan);\n\tconst generatedProbePlan = gate\n\t\t? buildResolveIOSupportIssueClassProbePlan(gate)\n\t\t: undefined;\n\tconst issueClassProbePlanValidation = validateResolveIOSupportIssueClassProbePlan(\n\t\tObject.keys(explicitProbePlan).length ? explicitProbePlan : generatedProbePlan,\n\t\tgate\n\t);\n\tconst issueClassProbePlan = issueClassProbePlanValidation.normalized || generatedProbePlan;\n\tif (!issueClassProbePlanValidation.valid) {\n\t\treturn withReadiness({\n\t\t\taction: 'hold_internal',\n\t\t\tcanDraftCustomerReply: false,\n\t\t\tcanSendCustomerReply: false,\n\t\t\tconfidenceLevel,\n\t\t\tsafety: 'internal_hold',\n\t\t\treason: 'support_reply_requires_valid_issue_class_probe_plan',\n\t\t\trequiredEvidence,\n\t\t\thumanReviewPacket: buildResolveIOSupportHumanReviewPacket({\n\t\t\t\treviewType: 'business_proof_qa',\n\t\t\t\ttitle: 'Repair Issue-Class Probe Plan',\n\t\t\t\tsummary: 'Customer reply is blocked until the IssueClassProbePlan validates against the diagnosis proof plan.',\n\t\t\t\tprimaryAction: 'repair_support_issue_class_probe_plan',\n\t\t\t\tsafety: 'internal_hold',\n\t\t\t\treason: 'support_reply_requires_valid_issue_class_probe_plan',\n\t\t\t\tblockers: issueClassProbePlanValidation.blockers,\n\t\t\t\trequiredEvidence,\n\t\t\t\tevidenceRefs: issueClassProbePlan?.requiredArtifacts || [],\n\t\t\t\tnextCommands: ['repair_issue_class_probe_plan', 'rerun_business_proof_qa', 'rerun_reply_policy'],\n\t\t\t\tforbiddenActions: ['Do not draft a customer resolution from business proof that is not mapped to a validated IssueClassProbePlan.'],\n\t\t\t\tcostRisk: 'free_or_deterministic'\n\t\t\t})\n\t\t}, issueClassProbePlanValidation);\n\t}\n\tif (shouldBlockConfidence || confidenceLevel !== 'high') {\n\t\treturn withReadiness({\n\t\t\taction: 'hold_internal',\n\t\t\tcanDraftCustomerReply: false,\n\t\t\tcanSendCustomerReply: false,\n\t\t\tconfidenceLevel,\n\t\t\tsafety: 'internal_hold',\n\t\t\treason: shouldBlockConfidence ? 'support_reply_blocked_by_confidence_gate' : 'support_reply_requires_high_confidence',\n\t\t\trequiredEvidence,\n\t\t\thumanReviewPacket: buildResolveIOSupportHumanReviewPacket({\n\t\t\t\treviewType: 'internal_hold',\n\t\t\t\ttitle: 'Review Confidence Gate',\n\t\t\t\tsummary: 'Customer reply is blocked until confidence is high and the confidence gate is not blocking.',\n\t\t\t\tprimaryAction: 'review_support_confidence_evidence',\n\t\t\t\tsafety: 'internal_hold',\n\t\t\t\treason: shouldBlockConfidence ? 'support_reply_blocked_by_confidence_gate' : 'support_reply_requires_high_confidence',\n\t\t\t\trequiredEvidence,\n\t\t\t\tnextCommands: ['inspect_confidence_basis', 'collect_missing_business_or_release_evidence'],\n\t\t\t\tforbiddenActions: ['Do not draft a customer resolution from medium or low confidence.'],\n\t\t\t\tcostRisk: 'free_or_deterministic'\n\t\t\t})\n\t\t}, issueClassProbePlanValidation);\n\t}\n\tif (unresolvedBlockers.length) {\n\t\treturn withReadiness({\n\t\t\taction: 'hold_internal',\n\t\t\tcanDraftCustomerReply: false,\n\t\t\tcanSendCustomerReply: false,\n\t\t\tconfidenceLevel,\n\t\t\tsafety: 'internal_hold',\n\t\t\treason: 'support_reply_blocked_by_unresolved_runner_blocker',\n\t\t\trequiredEvidence,\n\t\t\thumanReviewPacket: buildResolveIOSupportHumanReviewPacket({\n\t\t\t\treviewType: 'internal_hold',\n\t\t\t\ttitle: 'Resolve Runner Blocker',\n\t\t\t\tsummary: 'Customer reply is blocked by unresolved runner blockers.',\n\t\t\t\tprimaryAction: 'review_support_runner_blocker',\n\t\t\t\tsafety: 'internal_hold',\n\t\t\t\treason: 'support_reply_blocked_by_unresolved_runner_blocker',\n\t\t\t\tblockers: unresolvedBlockers,\n\t\t\t\trequiredEvidence,\n\t\t\t\tnextCommands: ['classify_blocker', 'collect_new_evidence_or_repair_smallest_gate'],\n\t\t\t\tforbiddenActions: ['Do not send customer status as resolved while blockers remain.'],\n\t\t\t\tcostRisk: 'small_model_or_qa'\n\t\t\t})\n\t\t}, issueClassProbePlanValidation);\n\t}\n\tif (releaseGate.blocked) {\n\t\tconst releaseRequiredEvidence = Array.from(new Set([\n\t\t\t...requiredEvidence,\n\t\t\t...releaseGate.requiredEvidence\n\t\t]));\n\t\treturn withReadiness({\n\t\t\taction: 'hold_internal',\n\t\t\tcanDraftCustomerReply: false,\n\t\t\tcanSendCustomerReply: false,\n\t\t\tconfidenceLevel,\n\t\t\tsafety: 'internal_hold',\n\t\t\treason: 'support_reply_blocked_until_release_or_hotfix_gate_finishes',\n\t\t\trequiredEvidence: releaseRequiredEvidence,\n\t\t\thumanReviewPacket: buildResolveIOSupportHumanReviewPacket({\n\t\t\t\treviewType: 'release_hotfix',\n\t\t\t\ttitle: 'Finish Release Or Hotfix Gate',\n\t\t\t\tsummary: 'Business proof exists, but the customer reply is blocked until release or hotfix evidence is complete.',\n\t\t\t\tprimaryAction: 'repair_release_hotfix_first',\n\t\t\t\tsafety: 'internal_hold',\n\t\t\t\treason: 'support_reply_blocked_until_release_or_hotfix_gate_finishes',\n\t\t\t\tblockers: releaseGate.blockers,\n\t\t\t\trequiredEvidence: releaseRequiredEvidence,\n\t\t\t\tnextCommands: releaseGate.nextCommands,\n\t\t\t\tforbiddenActions: ['Do not tell the customer the fix is live before release evidence passes.'],\n\t\t\t\tcostRisk: 'release_or_customer_send'\n\t\t\t})\n\t\t}, issueClassProbePlanValidation);\n\t}\n\tif (!businessProofReadiness.ready) {\n\t\tconst replyReason = businessProofReadiness.reason === 'support_business_proof_route_only_or_acceptance_blocked'\n\t\t\t? 'support_reply_rejects_route_only_business_proof'\n\t\t\t: 'support_reply_requires_business_assertion_pass';\n\t\tconst proofRequiredEvidence = Array.from(new Set([\n\t\t\t...requiredEvidence,\n\t\t\t...businessProofReadiness.requiredEvidence\n\t\t]));\n\t\treturn withReadiness({\n\t\t\taction: 'hold_internal',\n\t\t\tcanDraftCustomerReply: false,\n\t\t\tcanSendCustomerReply: false,\n\t\t\tconfidenceLevel,\n\t\t\tsafety: 'internal_hold',\n\t\t\treason: replyReason,\n\t\t\trequiredEvidence: proofRequiredEvidence,\n\t\t\thumanReviewPacket: buildResolveIOSupportHumanReviewPacket({\n\t\t\t\treviewType: 'business_proof_qa',\n\t\t\t\ttitle: 'Run Business Proof QA',\n\t\t\t\tsummary: 'Customer reply is blocked until the issue-specific before/action/after assertion passes.',\n\t\t\t\tprimaryAction: 'run_support_v5_business_proof_qa_row',\n\t\t\t\tsafety: 'internal_hold',\n\t\t\t\treason: replyReason,\n\t\t\t\tblockers: businessProofReadiness.blockers,\n\t\t\t\trequiredEvidence: proofRequiredEvidence,\n\t\t\t\tevidenceRefs: businessProofReadiness.artifactPaths,\n\t\t\t\tnextCommands: ['execute_issue_class_probe', 'record_before_action_after_artifacts', 'write_aiqa_business_assertion'],\n\t\t\t\tforbiddenActions: ['Route probe pass remains route evidence only.'],\n\t\t\t\tcostRisk: 'small_model_or_qa'\n\t\t\t})\n\t\t}, issueClassProbePlanValidation);\n\t}\n\tif (!gate?.proof_plan.business_proof_contract || artifactCount < 1) {\n\t\treturn withReadiness({\n\t\t\taction: 'hold_internal',\n\t\t\tcanDraftCustomerReply: false,\n\t\t\tcanSendCustomerReply: false,\n\t\t\tconfidenceLevel,\n\t\t\tsafety: 'internal_hold',\n\t\t\treason: 'support_reply_requires_business_proof_contract_artifact',\n\t\t\trequiredEvidence,\n\t\t\thumanReviewPacket: buildResolveIOSupportHumanReviewPacket({\n\t\t\t\treviewType: 'business_proof_qa',\n\t\t\t\ttitle: 'Attach Business Proof Artifact',\n\t\t\t\tsummary: 'Customer reply is blocked until the business proof contract and artifact are attached.',\n\t\t\t\tprimaryAction: 'record_business_proof_artifact',\n\t\t\t\tsafety: 'internal_hold',\n\t\t\t\treason: 'support_reply_requires_business_proof_contract_artifact',\n\t\t\t\trequiredEvidence,\n\t\t\t\tevidenceRefs: businessProofReadiness.artifactPaths,\n\t\t\t\tnextCommands: ['attach_business_proof_contract', 'attach_artifact_path', 'rerun_reply_policy'],\n\t\t\t\tforbiddenActions: ['Do not draft a resolution reply without a proof artifact.'],\n\t\t\t\tcostRisk: 'free_or_deterministic'\n\t\t\t})\n\t\t}, issueClassProbePlanValidation);\n\t}\n\treturn withReadiness({\n\t\taction: 'draft_resolution_reply',\n\t\tcanDraftCustomerReply: true,\n\t\tcanSendCustomerReply: false,\n\t\tconfidenceLevel,\n\t\tsafety: 'safe_to_draft',\n\t\treason: 'support_reply_resolution_draft_allowed_after_business_proof',\n\t\trequiredEvidence,\n\t\thumanReviewPacket: buildResolveIOSupportHumanReviewPacket({\n\t\t\treviewType: 'customer_resolution_reply',\n\t\t\ttitle: 'Review Customer Resolution Reply',\n\t\t\tsummary: `Business proof is ready for ${gate.issue_class}; draft a customer-facing resolution for human review.`,\n\t\t\tprimaryAction: 'review_customer_reply',\n\t\t\tcustomerFacingDraftAllowed: true,\n\t\t\tsafety: 'safe_to_draft',\n\t\t\treason: 'support_reply_resolution_draft_allowed_after_business_proof',\n\t\t\trequiredEvidence,\n\t\t\tevidenceRefs: businessProofReadiness.artifactPaths,\n\t\t\tnextCommands: ['summarize_business_proof', 'draft_customer_reply_for_human_review'],\n\t\t\tforbiddenActions: ['Draft only; do not send automatically.'],\n\t\t\tcostRisk: 'release_or_customer_send'\n\t\t}),\n\t\tdraftBasis: {\n\t\t\tissueClass: gate.issue_class,\n\t\t\tissueClassProbePlanId: issueClassProbePlan?.planId,\n\t\t\tissueClassProbePlanStatus: issueClassProbePlanValidation.status,\n\t\t\tbusinessProof: gate.proof_plan.business_proof_contract.expected_business_state_change,\n\t\t\tartifactCount\n\t\t}\n\t}, issueClassProbePlanValidation);\n}\n\nfunction buildSupportIssueClassBrowserSteps(args: {\n\tissueClass: ResolveIOSupportIssueClass;\n\troute?: string;\n\taction: string;\n\tbefore: string;\n\tafter: string;\n\tassertion: string;\n}): string[] {\n\tconst route = cleanText(args.route, 500) || 'the affected route/module';\n\tconst issueSteps: Record<ResolveIOSupportIssueClass, string[]> = {\n\t\tno_op_submit: [\n\t\t\t'Capture the form/action state before submit, including the target record id or validation state.',\n\t\t\t'Trigger the exact submit/action control reported by the customer.',\n\t\t\t'Verify the persisted state, success/validation message, or method/network result changed as expected.'\n\t\t],\n\t\tmissing_wrong_data: [\n\t\t\t'Load the named customer/account/record context before changing any filters or data.',\n\t\t\t'Compare visible DOM values against the persisted/source-of-truth data.',\n\t\t\t'Verify the corrected visible values remain tied to the same customer/account context.'\n\t\t],\n\t\tfilter_query_mismatch: [\n\t\t\t'Capture the unfiltered or before-filter row/count state for the affected dataset.',\n\t\t\t'Apply the exact reported filter/query/search inputs.',\n\t\t\t'Assert included rows/counts and excluded wrong rows against DOM plus data/query proof.'\n\t\t],\n\t\tinvoice_pdf_export: [\n\t\t\t'Open the affected invoice/report/export route and capture source rows/totals before export.',\n\t\t\t'Trigger the exact PDF/export/download action.',\n\t\t\t'Parse or inspect the generated artifact and verify expected rows, totals, fields, or file output.'\n\t\t],\n\t\tupload_import: [\n\t\t\t'Attach the representative import file or fixture and capture pre-import row/count state.',\n\t\t\t'Run the upload/import action through the visible workflow.',\n\t\t\t'Verify result messaging plus persisted row/count delta or rejected-row evidence.'\n\t\t],\n\t\troute_auth_hydration: [\n\t\t\t'Seed or replay auth for the affected user/account before route navigation.',\n\t\t\t'Open the exact route and wait for the functional screen, not only the shell/nav.',\n\t\t\t'Assert required controls/data are hydrated and capture console/network errors if hydration fails.'\n\t\t],\n\t\tslow_query_performance: [\n\t\t\t'Capture before timing/log evidence for the reported query or workflow.',\n\t\t\t'Run the same query/workflow after repair with equivalent inputs and account context.',\n\t\t\t'Verify timing target or improvement while preserving result equivalence.'\n\t\t]\n\t};\n\treturn [\n\t\t`Navigate to ${route} as the affected user/account context.`,\n\t\t...(issueSteps[args.issueClass] || issueSteps.missing_wrong_data),\n\t\targs.before ? `Before proof: ${args.before}` : '',\n\t\targs.action ? `Action under test: ${args.action}` : `Action under test: ${args.action || 'execute the reported workflow action'}`,\n\t\targs.after ? `Expected after state: ${args.after}` : '',\n\t\targs.assertion ? `DOM/data assertion: ${args.assertion}` : ''\n\t]\n\t\t.map((entry) => cleanText(entry, 500))\n\t\t.filter(Boolean)\n\t\t.slice(0, 10);\n}\n\nfunction buildSupportIssueClassDataProofRequirements(args: {\n\tissueClass: ResolveIOSupportIssueClass;\n\tassertion: string;\n\trequiredArtifacts: string[];\n}): string[] {\n\tconst issueRequirements: Record<ResolveIOSupportIssueClass, string[]> = {\n\t\tno_op_submit: ['pre-submit state', 'submit action result', 'persisted state or validation delta'],\n\t\tmissing_wrong_data: ['expected source-of-truth record', 'visible DOM/data snapshot', 'same-account/customer proof'],\n\t\tfilter_query_mismatch: ['filter input values', 'included row/count proof', 'excluded wrong-row proof', 'query/publication proof when available'],\n\t\tinvoice_pdf_export: ['export trigger trace', 'generated file artifact path', 'parsed generated content proof'],\n\t\tupload_import: ['input file fixture', 'import result message', 'persisted row/count delta'],\n\t\troute_auth_hydration: ['auth context', 'hydrated DOM proof', 'console/network error log'],\n\t\tslow_query_performance: ['before timing', 'after timing', 'result equivalence proof', 'query/log trace']\n\t};\n\treturn Array.from(new Set([\n\t\t...(issueRequirements[args.issueClass] || issueRequirements.missing_wrong_data),\n\t\t...args.requiredArtifacts,\n\t\targs.assertion\n\t].map((entry) => cleanText(entry, 260)).filter(Boolean))).slice(0, 16);\n}\n\nfunction buildSupportIssueClassProbeAssertionTemplate(args: {\n\tissueClass: ResolveIOSupportIssueClass;\n\troute?: string;\n\tobjective: string;\n\texpected: string;\n\tstateTransition: ResolveIOSupportIssueClassProbe['state_transition'];\n\trequiredArtifacts: string[];\n}): ResolveIOSupportIssueClassProbeAssertionTemplate {\n\treturn {\n\t\tassertion: args.stateTransition.assertion || args.expected,\n\t\tstatus: 'pending',\n\t\tworkflow: args.objective,\n\t\troute: cleanText(args.route, 500) || undefined,\n\t\tbefore: args.stateTransition.before,\n\t\taction: args.stateTransition.action,\n\t\texpected: args.expected,\n\t\tobserved: '',\n\t\tdataProof: '',\n\t\tartifactPaths: args.requiredArtifacts,\n\t\tmetadata: {\n\t\t\tsupportDiagnosisProof: true,\n\t\t\tissueClass: args.issueClass,\n\t\t\tprobePlanRequired: true,\n\t\t\trouteOnlyIsFalsePass: true\n\t\t}\n\t};\n}\n\nfunction buildSupportIssueClassProbeQaRow(args: {\n\tissueClass: ResolveIOSupportIssueClass;\n\troute?: string;\n\tobjective: string;\n\taction: string;\n\texpected: string;\n\texpectedEvidence: string;\n\tstateTransition: ResolveIOSupportIssueClassProbe['state_transition'];\n\trequiredArtifacts: string[];\n\tfalsePassBlockers: string[];\n\tbrowserSteps: string[];\n}): ResolveIOSupportIssueClassProbeQaRow {\n\tconst rowId = `support-issue-probe-${hashResolveIOSupportV5Evidence({\n\t\tissueClass: args.issueClass,\n\t\troute: args.route,\n\t\taction: args.action,\n\t\tassertion: args.stateTransition.assertion\n\t}).slice(0, 16)}`;\n\treturn {\n\t\trow_id: rowId,\n\t\tissue_class: args.issueClass,\n\t\tprobe_type: 'issue_class_probe',\n\t\troute: cleanText(args.route, 500) || undefined,\n\t\taction_under_test: args.action,\n\t\tbrowser_steps: args.browserSteps,\n\t\texpected_result: args.expected,\n\t\texpected_dom_or_data_proof: args.expectedEvidence,\n\t\trequired_artifacts: args.requiredArtifacts,\n\t\tfalse_pass_blockers: args.falsePassBlockers,\n\t\tstate_transition: args.stateTransition,\n\t\tacceptance_gate: 'aiqa_business_assertion',\n\t\trequires_aiqa_business_assertion: true,\n\t\troute_only_is_false_pass: true,\n\t\tmobile_viewport_required: args.issueClass === 'route_auth_hydration'\n\t};\n}\n\nfunction normalizeResolveIOSupportIssueClassProbeQaRow(value: any, fallback: {\n\tissueClass: ResolveIOSupportIssueClass;\n\troute?: string;\n\taction: string;\n\texpectedBusinessProof: string;\n\texpectedEvidence: string;\n\trequiredArtifacts: string[];\n\tfalsePassBlockers: string[];\n\tstateTransition: ResolveIOSupportIssueClassProbe['state_transition'];\n\tbrowserSteps: string[];\n}): ResolveIOSupportIssueClassProbeQaRow | undefined {\n\tconst source = cleanObject(value);\n\tif (!Object.keys(source).length && !fallback.action) {\n\t\treturn undefined;\n\t}\n\tconst stateTransition = cleanObject(source.state_transition || source.stateTransition);\n\tconst normalizedStateTransition = {\n\t\tbefore: cleanText(stateTransition.before, 800) || fallback.stateTransition.before,\n\t\taction: cleanText(stateTransition.action, 800) || fallback.stateTransition.action,\n\t\tafter: cleanText(stateTransition.after, 800) || fallback.stateTransition.after,\n\t\tassertion: cleanText(stateTransition.assertion, 1000) || fallback.stateTransition.assertion\n\t};\n\tconst browserSteps = cleanList(source.browser_steps || source.browserSteps, 12, 500).length\n\t\t? cleanList(source.browser_steps || source.browserSteps, 12, 500)\n\t\t: fallback.browserSteps;\n\treturn {\n\t\trow_id: cleanText(source.row_id || source.rowId || source.id, 180) || `support-issue-probe-${hashResolveIOSupportV5Evidence({\n\t\t\tissueClass: fallback.issueClass,\n\t\t\troute: source.route || fallback.route,\n\t\t\taction: source.action_under_test || source.actionUnderTest || fallback.action,\n\t\t\tassertion: normalizedStateTransition.assertion\n\t\t}).slice(0, 16)}`,\n\t\tissue_class: (normalizeIssueClass(source.issue_class || source.issueClass) || fallback.issueClass) as ResolveIOSupportIssueClass,\n\t\tprobe_type: (cleanText(source.probe_type || source.probeType, 80) || 'issue_class_probe') as ResolveIOSupportV5StepType,\n\t\troute: cleanText(source.route, 500) || fallback.route,\n\t\taction_under_test: cleanText(source.action_under_test || source.actionUnderTest || source.action, 1200) || fallback.action,\n\t\tbrowser_steps: browserSteps,\n\t\texpected_result: cleanText(source.expected_result || source.expectedResult, 1600) || fallback.expectedBusinessProof,\n\t\texpected_dom_or_data_proof: cleanText(source.expected_dom_or_data_proof || source.expectedDomOrDataProof || source.expected_evidence || source.expectedEvidence, 1600) || fallback.expectedEvidence,\n\t\trequired_artifacts: cleanList(source.required_artifacts || source.requiredArtifacts, 16, 260).length\n\t\t\t? cleanList(source.required_artifacts || source.requiredArtifacts, 16, 260)\n\t\t\t: fallback.requiredArtifacts,\n\t\tfalse_pass_blockers: cleanList(source.false_pass_blockers || source.falsePassBlockers, 12, 260).length\n\t\t\t? cleanList(source.false_pass_blockers || source.falsePassBlockers, 12, 260)\n\t\t\t: fallback.falsePassBlockers,\n\t\tstate_transition: normalizedStateTransition,\n\t\tacceptance_gate: 'aiqa_business_assertion',\n\t\trequires_aiqa_business_assertion: true,\n\t\troute_only_is_false_pass: true,\n\t\tmobile_viewport_required: source.mobile_viewport_required === true || source.mobileViewportRequired === true\n\t};\n}\n\nfunction normalizeResolveIOSupportIssueClassProbeAssertionTemplate(value: any, fallback: {\n\tissueClass: ResolveIOSupportIssueClass;\n\troute?: string;\n\tobjective: string;\n\texpected: string;\n\tstateTransition: ResolveIOSupportIssueClassProbe['state_transition'];\n\trequiredArtifacts: string[];\n}): ResolveIOSupportIssueClassProbeAssertionTemplate {\n\tconst source = cleanObject(value);\n\treturn {\n\t\tassertion: cleanText(source.assertion, 1600) || fallback.stateTransition.assertion || fallback.expected,\n\t\tstatus: 'pending',\n\t\tworkflow: cleanText(source.workflow, 1000) || fallback.objective,\n\t\troute: cleanText(source.route, 500) || fallback.route,\n\t\tbefore: cleanText(source.before, 800) || fallback.stateTransition.before,\n\t\taction: cleanText(source.action, 800) || fallback.stateTransition.action,\n\t\texpected: cleanText(source.expected, 1600) || fallback.expected,\n\t\tobserved: cleanText(source.observed, 1600),\n\t\tdataProof: cleanText(source.dataProof || source.data_proof, 1600),\n\t\tartifactPaths: cleanList(source.artifactPaths || source.artifact_paths, 20, 500).length\n\t\t\t? cleanList(source.artifactPaths || source.artifact_paths, 20, 500)\n\t\t\t: fallback.requiredArtifacts,\n\t\tmetadata: {\n\t\t\tsupportDiagnosisProof: true,\n\t\t\tissueClass: fallback.issueClass,\n\t\t\tprobePlanRequired: true,\n\t\t\trouteOnlyIsFalsePass: true\n\t\t}\n\t};\n}\n\nexport function buildResolveIOSupportIssueClassProbes(value: any): ResolveIOSupportIssueClassProbe[] {\n\tconst validation = validateResolveIOSupportDiagnosisGate(value);\n\tconst gate = validation.normalized || normalizeResolveIOSupportDiagnosisGate(value);\n\tif (!gate) {\n\t\treturn [];\n\t}\n\tconst route = gate.proof_plan.route || gate.issue_case.route_module;\n\tconst proofContract = gate.proof_plan.business_proof_contract;\n\tconst proof = proofContract?.expected_business_state_change || gate.proof_plan.business_assertion;\n\tconst assertion = proofContract?.data_or_dom_assertion || gate.proof_plan.data_assertion || gate.proof_plan.after;\n\tconst contractArtifacts = cleanList(proofContract?.proof_artifacts, 8, 160);\n\tconst common = {\n\t\tissue_class: gate.issue_class,\n\t\tprobe_type: 'issue_class_probe' as ResolveIOSupportV5StepType,\n\t\troute,\n\t\tstate_transition: {\n\t\t\tbefore: gate.proof_plan.before || gate.proof_plan.before_state_unavailable_reason || proofContract?.setup_state || '',\n\t\t\taction: gate.proof_plan.action || proofContract?.action_under_test || '',\n\t\t\tafter: gate.proof_plan.after || proofContract?.expected_business_state_change || '',\n\t\t\tassertion: assertion || gate.proof_plan.business_assertion || ''\n\t\t},\n\t\tacceptance_gate: 'aiqa_business_assertion' as const,\n\t\tblocks_acceptance_without_business_assertion: true\n\t};\n\tconst map: Record<ResolveIOSupportIssueClass, {\n\t\taction: string;\n\t\texpected: string;\n\t\tfailureClass: ResolveIOSupportV5FailureClass;\n\t\trequiredArtifacts: string[];\n\t}> = {\n\t\tno_op_submit: {\n\t\t\taction: `Submit the customer action on ${route || 'the affected screen'} and assert a persisted state change or explicit validation message.`,\n\t\t\texpected: proof || 'Before/action/after proof shows the submit is no longer a no-op.',\n\t\t\tfailureClass: 'business',\n\t\t\trequiredArtifacts: ['before form state', 'submit action trace', 'post-submit DOM/data proof', 'method/network result']\n\t\t},\n\t\tmissing_wrong_data: {\n\t\t\taction: `Load the named record/list on ${route || 'the affected route'} and compare visible data to the expected persisted source.`,\n\t\t\texpected: proof || 'Visible data and persisted data match the customer expectation.',\n\t\t\tfailureClass: 'business',\n\t\t\trequiredArtifacts: ['expected source record', 'visible DOM/data snapshot', 'persisted data comparison']\n\t\t},\n\t\tfilter_query_mismatch: {\n\t\t\taction: 'Apply the reported filter/query inputs and assert the returned rows/counts match the expected dataset.',\n\t\t\texpected: proof || 'Filter/query output contains the correct included rows and excludes the wrong rows.',\n\t\t\tfailureClass: 'business',\n\t\t\trequiredArtifacts: ['filter input trace', 'included/excluded row proof', 'query or publication result proof']\n\t\t},\n\t\tinvoice_pdf_export: {\n\t\t\taction: 'Generate the invoice/PDF/export from the affected route and inspect the downloaded/generated artifact.',\n\t\t\texpected: proof || 'Generated artifact contains the expected customer-visible rows, totals, or fields.',\n\t\t\tfailureClass: 'business',\n\t\t\trequiredArtifacts: ['export trigger trace', 'generated file artifact path', 'parsed artifact content proof']\n\t\t},\n\t\tupload_import: {\n\t\t\taction: 'Run the upload/import workflow with a representative file and assert parsed plus persisted results.',\n\t\t\texpected: proof || 'Import shows a success result and persisted rows/counts changed as expected.',\n\t\t\tfailureClass: 'business',\n\t\t\trequiredArtifacts: ['input file fixture', 'import result message', 'persisted row/count delta']\n\t\t},\n\t\troute_auth_hydration: {\n\t\t\taction: 'Open the route as the affected user and assert authenticated hydration reaches the functional screen, not a shell.',\n\t\t\texpected: proof || 'Route hydrates with the required controls/data for the affected account.',\n\t\t\tfailureClass: 'route',\n\t\t\trequiredArtifacts: ['auth context', 'hydrated DOM proof', 'console/network error log']\n\t\t},\n\t\tslow_query_performance: {\n\t\t\taction: 'Run the reported query/workflow with timing/log evidence before and after the fix.',\n\t\t\texpected: proof || 'Performance evidence shows the slow path improved without changing results.',\n\t\t\tfailureClass: 'business',\n\t\t\trequiredArtifacts: ['before timing', 'after timing', 'result equivalence proof', 'query/log trace']\n\t\t}\n\t};\n\tconst selected = map[gate.issue_class];\n\tconst catalog = SUPPORT_ISSUE_CLASS_PROBE_CATALOG.find((entry) => entry.issue_class === gate.issue_class);\n\tconst requiredArtifacts = Array.from(new Set([\n\t\t...contractArtifacts,\n\t\t...selected.requiredArtifacts\n\t]));\n\tconst stateTransition = common.state_transition;\n\tconst action = proofContract\n\t\t? `${proofContract.action_under_test} ${selected.action}`\n\t\t: selected.action;\n\tconst expectedEvidence = `${selected.expected}${assertion ? ` Assertion: ${assertion}.` : ''}${requiredArtifacts.length ? ` Required artifacts: ${requiredArtifacts.join(', ')}.` : ''}`.trim();\n\tconst objective = `Issue-class probe for ${gate.issue_class}: ${gate.issue_case.customer_complaint}`;\n\tconst falsePassBlockers = catalog?.false_pass_blockers || [\n\t\t'route loaded only',\n\t\t'screenshot without business state proof',\n\t\t'model claim without DOM/data proof'\n\t];\n\tconst browserSteps = buildSupportIssueClassBrowserSteps({\n\t\tissueClass: gate.issue_class,\n\t\troute,\n\t\taction: stateTransition.action || action,\n\t\tbefore: stateTransition.before,\n\t\tafter: stateTransition.after,\n\t\tassertion: stateTransition.assertion\n\t});\n\tconst dataProofRequirements = buildSupportIssueClassDataProofRequirements({\n\t\tissueClass: gate.issue_class,\n\t\tassertion: stateTransition.assertion,\n\t\trequiredArtifacts\n\t});\n\tconst qaRow = buildSupportIssueClassProbeQaRow({\n\t\tissueClass: gate.issue_class,\n\t\troute,\n\t\tobjective,\n\t\taction,\n\t\texpected: proof || gate.proof_plan.business_assertion,\n\t\texpectedEvidence,\n\t\tstateTransition,\n\t\trequiredArtifacts,\n\t\tfalsePassBlockers,\n\t\tbrowserSteps\n\t});\n\tconst assertionTemplate = buildSupportIssueClassProbeAssertionTemplate({\n\t\tissueClass: gate.issue_class,\n\t\troute,\n\t\tobjective,\n\t\texpected: proof || gate.proof_plan.business_assertion,\n\t\tstateTransition,\n\t\trequiredArtifacts\n\t});\n\treturn [{\n\t\t...common,\n\t\tfailure_class: selected.failureClass,\n\t\tobjective,\n\t\taction,\n\t\tbrowser_steps: browserSteps,\n\t\texpected_evidence: expectedEvidence,\n\t\texpected_business_proof: proof || gate.proof_plan.business_assertion,\n\t\tdata_proof_requirements: dataProofRequirements,\n\t\trequired_artifacts: requiredArtifacts,\n\t\tqa_rows: [qaRow],\n\t\tactive_qa_row: qaRow,\n\t\taiqa_business_assertion_template: assertionTemplate,\n\t\tfalse_pass_blockers: falsePassBlockers\n\t}];\n}\n\nfunction normalizeResolveIOSupportIssueClassProbe(value: any, diagnosisGate?: ResolveIOSupportDiagnosisGate): ResolveIOSupportIssueClassProbe | undefined {\n\tconst source = cleanObject(value);\n\tif (!Object.keys(source).length) {\n\t\treturn undefined;\n\t}\n\tconst issueClass = normalizeIssueClass(source.issue_class || source.issueClass || diagnosisGate?.issue_class);\n\tconst stateTransition = cleanObject(source.state_transition || source.stateTransition);\n\tconst route = cleanText(source.route, 500);\n\tconst failureClass = cleanText(source.failure_class || source.failureClass || 'business', 80) as ResolveIOSupportV5FailureClass;\n\tconst normalizedIssueClass = (issueClass || diagnosisGate?.issue_class || 'missing_wrong_data') as ResolveIOSupportIssueClass;\n\tconst action = cleanText(source.action, 1200);\n\tconst expectedEvidence = cleanText(source.expected_evidence || source.expectedEvidence, 1600);\n\tconst expectedBusinessProof = cleanText(source.expected_business_proof || source.expectedBusinessProof, 1600);\n\tconst requiredArtifacts = cleanList(source.required_artifacts || source.requiredArtifacts, 12, 220);\n\tconst falsePassBlockers = cleanList(source.false_pass_blockers || source.falsePassBlockers, 8, 260);\n\tconst normalizedStateTransition = {\n\t\tbefore: cleanText(stateTransition.before, 800),\n\t\taction: cleanText(stateTransition.action, 800),\n\t\tafter: cleanText(stateTransition.after, 800),\n\t\tassertion: cleanText(stateTransition.assertion, 1000)\n\t};\n\tconst browserSteps = cleanList(source.browser_steps || source.browserSteps, 12, 500).length\n\t\t? cleanList(source.browser_steps || source.browserSteps, 12, 500)\n\t\t: buildSupportIssueClassBrowserSteps({\n\t\t\tissueClass: normalizedIssueClass,\n\t\t\troute,\n\t\t\taction: normalizedStateTransition.action || action,\n\t\t\tbefore: normalizedStateTransition.before,\n\t\t\tafter: normalizedStateTransition.after,\n\t\t\tassertion: normalizedStateTransition.assertion\n\t\t});\n\tconst dataProofRequirements = cleanList(source.data_proof_requirements || source.dataProofRequirements, 16, 260).length\n\t\t? cleanList(source.data_proof_requirements || source.dataProofRequirements, 16, 260)\n\t\t: buildSupportIssueClassDataProofRequirements({\n\t\t\tissueClass: normalizedIssueClass,\n\t\t\tassertion: normalizedStateTransition.assertion,\n\t\t\trequiredArtifacts\n\t\t});\n\tconst rawQaRows = Array.isArray(source.qa_rows)\n\t\t? source.qa_rows\n\t\t: Array.isArray(source.qaRows)\n\t\t\t? source.qaRows\n\t\t\t: source.active_qa_row || source.activeQaRow\n\t\t\t\t? [source.active_qa_row || source.activeQaRow]\n\t\t\t\t: [];\n\tconst normalizedQaRows = rawQaRows\n\t\t.map((row: any) => normalizeResolveIOSupportIssueClassProbeQaRow(row, {\n\t\t\tissueClass: normalizedIssueClass,\n\t\t\troute,\n\t\t\taction,\n\t\t\texpectedBusinessProof,\n\t\t\texpectedEvidence,\n\t\t\trequiredArtifacts,\n\t\t\tfalsePassBlockers,\n\t\t\tstateTransition: normalizedStateTransition,\n\t\t\tbrowserSteps\n\t\t}))\n\t\t.filter((row: ResolveIOSupportIssueClassProbeQaRow | undefined): row is ResolveIOSupportIssueClassProbeQaRow => !!row);\n\tif (!normalizedQaRows.length && action && expectedEvidence) {\n\t\tnormalizedQaRows.push(buildSupportIssueClassProbeQaRow({\n\t\t\tissueClass: normalizedIssueClass,\n\t\t\troute,\n\t\t\tobjective: cleanText(source.objective, 1000),\n\t\t\taction,\n\t\t\texpected: expectedBusinessProof,\n\t\t\texpectedEvidence,\n\t\t\tstateTransition: normalizedStateTransition,\n\t\t\trequiredArtifacts,\n\t\t\tfalsePassBlockers,\n\t\t\tbrowserSteps\n\t\t}));\n\t}\n\tconst assertionTemplateSource = cleanObject(source.aiqa_business_assertion_template || source.aiqaBusinessAssertionTemplate);\n\tconst assertionTemplate = Object.keys(assertionTemplateSource).length\n\t\t? normalizeResolveIOSupportIssueClassProbeAssertionTemplate(assertionTemplateSource, {\n\t\t\tissueClass: normalizedIssueClass,\n\t\t\troute,\n\t\t\tobjective: cleanText(source.objective, 1000),\n\t\t\texpected: expectedBusinessProof,\n\t\t\tstateTransition: normalizedStateTransition,\n\t\t\trequiredArtifacts\n\t\t})\n\t\t: buildSupportIssueClassProbeAssertionTemplate({\n\t\t\tissueClass: normalizedIssueClass,\n\t\t\troute,\n\t\t\tobjective: cleanText(source.objective, 1000),\n\t\t\texpected: expectedBusinessProof,\n\t\t\tstateTransition: normalizedStateTransition,\n\t\t\trequiredArtifacts\n\t\t});\n\treturn {\n\t\tissue_class: normalizedIssueClass,\n\t\tprobe_type: (cleanText(source.probe_type || source.probeType, 80) || 'issue_class_probe') as ResolveIOSupportV5StepType,\n\t\tfailure_class: failureClass,\n\t\tobjective: cleanText(source.objective, 1000),\n\t\troute,\n\t\taction,\n\t\tbrowser_steps: browserSteps,\n\t\texpected_evidence: expectedEvidence,\n\t\texpected_business_proof: expectedBusinessProof,\n\t\tdata_proof_requirements: dataProofRequirements,\n\t\trequired_artifacts: requiredArtifacts,\n\t\tqa_rows: normalizedQaRows,\n\t\tactive_qa_row: normalizedQaRows[0],\n\t\taiqa_business_assertion_template: assertionTemplate,\n\t\tstate_transition: normalizedStateTransition,\n\t\tacceptance_gate: cleanText(source.acceptance_gate || source.acceptanceGate, 120) === 'aiqa_business_assertion'\n\t\t\t? 'aiqa_business_assertion'\n\t\t\t: 'aiqa_business_assertion',\n\t\tblocks_acceptance_without_business_assertion: source.blocks_acceptance_without_business_assertion !== false\n\t\t\t&& source.blocksAcceptanceWithoutBusinessAssertion !== false,\n\t\tfalse_pass_blockers: falsePassBlockers\n\t};\n}\n\nexport function validateResolveIOSupportIssueClassProbePlan(\n\tvalue: any,\n\tdiagnosisGate?: any,\n\tnow?: Date | string\n): ResolveIOSupportIssueClassProbePlanValidation {\n\tconst diagnosisValidation = validateResolveIOSupportDiagnosisGate(diagnosisGate);\n\tconst normalizedDiagnosis = diagnosisValidation.normalized;\n\tconst source = cleanObject(value);\n\tconst rawProbes = Array.isArray(value)\n\t\t? value\n\t\t: Array.isArray(source.probes)\n\t\t\t? source.probes\n\t\t\t: Array.isArray(source.issueClassProbes)\n\t\t\t\t? source.issueClassProbes\n\t\t\t\t: Array.isArray(source.issue_class_probes)\n\t\t\t\t\t? source.issue_class_probes\n\t\t\t\t\t: source.activeProbe || source.active_probe\n\t\t\t\t\t\t? [source.activeProbe || source.active_probe]\n\t\t\t\t\t\t: [];\n\tconst probes = rawProbes\n\t\t.map((probe) => normalizeResolveIOSupportIssueClassProbe(probe, normalizedDiagnosis))\n\t\t.filter((probe): probe is ResolveIOSupportIssueClassProbe => !!probe);\n\tconst activeProbe = probes[0] || normalizeResolveIOSupportIssueClassProbe(source.activeProbe || source.active_probe, normalizedDiagnosis);\n\tconst issueClass = normalizeIssueClass(source.issue_class || source.issueClass || activeProbe?.issue_class || normalizedDiagnosis?.issue_class);\n\tconst catalog = SUPPORT_ISSUE_CLASS_PROBE_CATALOG.find((entry) => entry.issue_class === issueClass);\n\tconst planRequiredArtifacts = cleanList(source.requiredArtifacts || source.required_artifacts, 16, 220);\n\tconst activeRequiredArtifacts = cleanList(activeProbe?.required_artifacts, 16, 220);\n\tconst requiredArtifacts = planRequiredArtifacts.length ? planRequiredArtifacts : activeRequiredArtifacts;\n\tconst planQaRows = Array.isArray(source.qaRows)\n\t\t? source.qaRows\n\t\t: Array.isArray(source.qa_rows)\n\t\t\t? source.qa_rows\n\t\t\t: [];\n\tconst qaRows = (planQaRows.length ? planQaRows : probes.flatMap((probe) => probe.qa_rows || []))\n\t\t.map((row) => normalizeResolveIOSupportIssueClassProbeQaRow(row, {\n\t\t\tissueClass: (issueClass || normalizedDiagnosis?.issue_class || 'missing_wrong_data') as ResolveIOSupportIssueClass,\n\t\t\troute: activeProbe?.route,\n\t\t\taction: activeProbe?.action || '',\n\t\t\texpectedBusinessProof: activeProbe?.expected_business_proof || '',\n\t\t\texpectedEvidence: activeProbe?.expected_evidence || '',\n\t\t\trequiredArtifacts,\n\t\t\tfalsePassBlockers: activeProbe?.false_pass_blockers || catalog?.false_pass_blockers || [],\n\t\t\tstateTransition: activeProbe?.state_transition || { before: '', action: '', after: '', assertion: '' },\n\t\t\tbrowserSteps: activeProbe?.browser_steps || []\n\t\t}))\n\t\t.filter((row): row is ResolveIOSupportIssueClassProbeQaRow => !!row);\n\tconst activeQaRow = qaRows[0] || activeProbe?.active_qa_row;\n\tconst falsePassBlockers = cleanList(source.falsePassBlockers || source.false_pass_blockers, 12, 260).length\n\t\t? cleanList(source.falsePassBlockers || source.false_pass_blockers, 12, 260)\n\t\t: cleanList(activeProbe?.false_pass_blockers, 12, 260).length\n\t\t\t? cleanList(activeProbe?.false_pass_blockers, 12, 260)\n\t\t\t: (catalog?.false_pass_blockers || []);\n\tconst blockers: string[] = [];\n\tif (!diagnosisValidation.valid || !normalizedDiagnosis) {\n\t\tblockers.push('Valid SupportDiagnosisGate is required before issue-class probe QA.');\n\t}\n\tif (!probes.length || !activeProbe) {\n\t\tblockers.push('Issue-class probe plan must include at least one active probe.');\n\t}\n\tif (!issueClass) {\n\t\tblockers.push('Issue-class probe plan must record a valid issue_class.');\n\t}\n\tif (normalizedDiagnosis && issueClass && issueClass !== normalizedDiagnosis.issue_class) {\n\t\tblockers.push(`Issue-class probe plan issue_class ${issueClass} does not match diagnosis issue_class ${normalizedDiagnosis.issue_class}.`);\n\t}\n\tif (activeProbe) {\n\t\tif (!cleanText(activeProbe.route, 500)) {\n\t\t\tblockers.push('Issue-class probe must include the exact route or module under test.');\n\t\t}\n\t\tif (!cleanText(activeProbe.action, 1200)) {\n\t\t\tblockers.push('Issue-class probe must include the exact action to perform.');\n\t\t}\n\t\tif (!cleanText(activeProbe.expected_evidence, 1600)) {\n\t\t\tblockers.push('Issue-class probe must include expected evidence.');\n\t\t}\n\t\tif (!cleanText(activeProbe.expected_business_proof, 1600)) {\n\t\t\tblockers.push('Issue-class probe must include expected business proof.');\n\t\t}\n\t\tif (!cleanText(activeProbe.state_transition.before, 800)) {\n\t\t\tblockers.push('Issue-class probe state_transition.before is required.');\n\t\t}\n\t\tif (!cleanText(activeProbe.state_transition.action, 800)) {\n\t\t\tblockers.push('Issue-class probe state_transition.action is required.');\n\t\t}\n\t\tif (!cleanText(activeProbe.state_transition.after, 800)) {\n\t\t\tblockers.push('Issue-class probe state_transition.after is required.');\n\t\t}\n\t\tif (!cleanText(activeProbe.state_transition.assertion, 1000)) {\n\t\t\tblockers.push('Issue-class probe state_transition.assertion is required.');\n\t\t}\n\t\tif (activeProbe.acceptance_gate !== 'aiqa_business_assertion') {\n\t\t\tblockers.push('Issue-class probe acceptance_gate must be aiqa_business_assertion.');\n\t\t}\n\t\tif (activeProbe.blocks_acceptance_without_business_assertion !== true) {\n\t\t\tblockers.push('Issue-class probe must block acceptance without AIQaBusinessAssertion.');\n\t\t}\n\t\tif (activeRequiredArtifacts.length < 2) {\n\t\t\tblockers.push('Active issue-class probe must require at least two proof artifacts.');\n\t\t}\n\t\tif (cleanList(activeProbe.browser_steps, 12, 500).length < 3) {\n\t\t\tblockers.push('Issue-class probe must include executable browser_steps for the business workflow.');\n\t\t}\n\t\tif (cleanList(activeProbe.data_proof_requirements, 16, 260).length < 2) {\n\t\t\tblockers.push('Issue-class probe must include DOM/data proof requirements.');\n\t\t}\n\t}\n\tif (!qaRows.length || !activeQaRow) {\n\t\tblockers.push('Issue-class probe plan must include at least one executable QA row.');\n\t}\n\tif (activeQaRow) {\n\t\tif (activeQaRow.acceptance_gate !== 'aiqa_business_assertion' || activeQaRow.requires_aiqa_business_assertion !== true) {\n\t\t\tblockers.push('Issue-class QA row must require AIQaBusinessAssertion.');\n\t\t}\n\t\tif (activeQaRow.route_only_is_false_pass !== true) {\n\t\t\tblockers.push('Issue-class QA row must mark route-only evidence as a false pass.');\n\t\t}\n\t\tif (cleanList(activeQaRow.browser_steps, 12, 500).length < 3) {\n\t\t\tblockers.push('Issue-class QA row must include executable browser steps.');\n\t\t}\n\t\tif (!cleanText(activeQaRow.expected_dom_or_data_proof, 1600)) {\n\t\t\tblockers.push('Issue-class QA row must include expected DOM/data proof.');\n\t\t}\n\t}\n\tif (requiredArtifacts.length < 2) {\n\t\tblockers.push('Issue-class probe plan must require at least two proof artifacts.');\n\t}\n\tif (!falsePassBlockers.length) {\n\t\tblockers.push('Issue-class probe plan must record false-pass blockers.');\n\t}\n\tconst status: ResolveIOSupportIssueClassProbePlanStatus = blockers.length\n\t\t? (probes.length ? 'incomplete' : 'missing')\n\t\t: 'ready';\n\tconst generatedAt = cleanText(source.generatedAt || source.generated_at, 120) || isoNow(now);\n\tconst normalized: ResolveIOSupportIssueClassProbePlan = {\n\t\tplanId: cleanText(source.planId || source.plan_id, 160) || `support-probe-plan-${hashResolveIOSupportV5Evidence({\n\t\t\tissueClass,\n\t\t\troute: activeProbe?.route,\n\t\t\taction: activeProbe?.action,\n\t\t\texpectedBusinessProof: activeProbe?.expected_business_proof\n\t\t}).slice(0, 16)}`,\n\t\tstatus,\n\t\tissue_class: issueClass || undefined,\n\t\tdiagnosisValid: diagnosisValidation.valid === true,\n\t\tprobes,\n\t\tactiveProbe,\n\t\tqaRows,\n\t\tactiveQaRow,\n\t\trequiredArtifacts,\n\t\tacceptanceGate: 'aiqa_business_assertion',\n\t\tfalsePassBlockers,\n\t\tblockers,\n\t\tgeneratedAt\n\t};\n\treturn {\n\t\tvalid: blockers.length === 0,\n\t\tstatus,\n\t\tblockers,\n\t\tnormalized,\n\t\tactiveProbe\n\t};\n}\n\nexport function buildResolveIOSupportIssueClassProbePlan(\n\tdiagnosisGate: any,\n\tnow?: Date | string\n): ResolveIOSupportIssueClassProbePlan {\n\tconst diagnosisValidation = validateResolveIOSupportDiagnosisGate(diagnosisGate);\n\tconst probes = diagnosisValidation.valid && diagnosisValidation.normalized\n\t\t? buildResolveIOSupportIssueClassProbes(diagnosisValidation.normalized)\n\t\t: [];\n\tconst activeProbe = probes[0];\n\tconst qaRows = probes.flatMap((probe) => probe.qa_rows || []);\n\tconst issueClass = diagnosisValidation.normalized?.issue_class || activeProbe?.issue_class;\n\tconst catalog = SUPPORT_ISSUE_CLASS_PROBE_CATALOG.find((entry) => entry.issue_class === issueClass);\n\tconst provisional: ResolveIOSupportIssueClassProbePlan = {\n\t\tplanId: `support-probe-plan-${hashResolveIOSupportV5Evidence({\n\t\t\tissueClass,\n\t\t\troute: activeProbe?.route,\n\t\t\taction: activeProbe?.action,\n\t\t\texpectedBusinessProof: activeProbe?.expected_business_proof\n\t\t}).slice(0, 16)}`,\n\t\tstatus: 'incomplete',\n\t\tissue_class: issueClass,\n\t\tdiagnosisValid: diagnosisValidation.valid === true,\n\t\tprobes,\n\t\tactiveProbe,\n\t\tqaRows,\n\t\tactiveQaRow: qaRows[0],\n\t\trequiredArtifacts: cleanList(activeProbe?.required_artifacts, 16, 220),\n\t\tacceptanceGate: 'aiqa_business_assertion',\n\t\tfalsePassBlockers: activeProbe?.false_pass_blockers?.length\n\t\t\t? activeProbe.false_pass_blockers\n\t\t\t: (catalog?.false_pass_blockers || []),\n\t\tblockers: [],\n\t\tgeneratedAt: isoNow(now)\n\t};\n\tconst validation = validateResolveIOSupportIssueClassProbePlan(provisional, diagnosisValidation.normalized || diagnosisGate, now);\n\treturn validation.normalized || {\n\t\t...provisional,\n\t\tstatus: validation.status,\n\t\tblockers: validation.blockers\n\t};\n}\n\nexport function hashResolveIOSupportV5Evidence(value: any): string {\n\tconst raw = typeof value === 'string' ? value : JSON.stringify(value || {});\n\tconst normalized = cleanText(raw, 8000)\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\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 `ev-${Math.abs(hash).toString(36) || '0'}`;\n}\n\nfunction supportManagerRetryScopeForAction(action: ResolveIOSupportV5AutonomousNextAction): ResolveIOSupportManagerExecutionRetryScope {\n\tif (action === 'run_diagnosis_gate' || action === 'revise_diagnosis_scope') {\n\t\treturn 'diagnosis_only';\n\t}\n\tif (action === 'repair_infra_only') {\n\t\treturn 'infra_only';\n\t}\n\tif (action === 'run_owner_scoped_repair') {\n\t\treturn 'owner_files_only';\n\t}\n\tif (action === 'run_business_proof_qa') {\n\t\treturn 'business_proof_only';\n\t}\n\tif (action === 'create_pr') {\n\t\treturn 'pr_packaging_only';\n\t}\n\tif (action === 'run_a_grade_pr_review') {\n\t\treturn 'pr_review_only';\n\t}\n\tif (action === 'repair_release_hotfix_first') {\n\t\treturn 'release_hotfix_only';\n\t}\n\tif (action === 'draft_customer_reply' || action === 'ask_customer_clarification') {\n\t\treturn 'customer_draft_only';\n\t}\n\tif (action === 'collect_new_evidence') {\n\t\treturn 'evidence_only';\n\t}\n\treturn 'none';\n}\n\nfunction supportManagerDispatchActionForNextAction(\n\taction: ResolveIOSupportV5AutonomousNextAction,\n\tfields?: Partial<ResolveIOSupportV5AutonomousDecision>,\n\tpreflightGate?: ResolveIOSupportPreflightGate\n): ResolveIOAIManagerRecoveryActionDispatchAction {\n\tif (action === 'collect_new_evidence' || action === 'run_business_proof_qa') {\n\t\treturn 'run_evidence_probe';\n\t}\n\tif (action === 'run_diagnosis_gate' || action === 'revise_diagnosis_scope') {\n\t\treturn 'run_read_only_diagnosis';\n\t}\n\tif (action === 'repair_infra_only') {\n\t\treturn preflightGate?.failureClass === 'compile' ? 'run_compile_repair' : 'run_infra_repair';\n\t}\n\tif (action === 'run_owner_scoped_repair') {\n\t\treturn 'run_targeted_product_repair';\n\t}\n\tif (action === 'repair_release_hotfix_first') {\n\t\treturn 'run_release_repair';\n\t}\n\tif (action === 'create_pr') {\n\t\treturn 'continue_gate';\n\t}\n\tif (action === 'run_a_grade_pr_review') {\n\t\treturn 'continue_gate';\n\t}\n\tif (action === 'ready_for_release_gate' || action === 'draft_customer_reply') {\n\t\treturn 'continue_gate';\n\t}\n\tif (fields?.canRunQa === true) {\n\t\treturn 'run_evidence_probe';\n\t}\n\tif (fields?.canRunModel === true) {\n\t\treturn 'run_read_only_diagnosis';\n\t}\n\treturn 'park_manual';\n}\n\nfunction supportProjectedActionCostUsdForNextAction(\n\taction: ResolveIOSupportV5AutonomousNextAction,\n\tfields?: Partial<ResolveIOSupportV5AutonomousDecision>\n): number {\n\tif (action === 'run_owner_scoped_repair') {\n\t\treturn 2.5;\n\t}\n\tif (action === 'run_diagnosis_gate' || action === 'revise_diagnosis_scope') {\n\t\treturn 1.2;\n\t}\n\tif (action === 'repair_release_hotfix_first' || fields?.canHotfixBackend === true) {\n\t\treturn 0.35;\n\t}\n\tif (action === 'create_pr') {\n\t\treturn 0.1;\n\t}\n\tif (action === 'run_a_grade_pr_review') {\n\t\treturn 0.1;\n\t}\n\tif (action === 'repair_infra_only' || action === 'run_business_proof_qa' || action === 'collect_new_evidence') {\n\t\treturn 0.25;\n\t}\n\tif (action === 'draft_customer_reply') {\n\t\treturn 0.1;\n\t}\n\treturn fields?.canRunModel === true ? 1 : fields?.canRunQa === true ? 0.25 : 0;\n}\n\nfunction supportManagerMaxAttemptsForContract(contract: ResolveIOSupportNextActionContract): number {\n\tif (contract.action === 'run_owner_scoped_repair' || contract.action === 'repair_release_hotfix_first' || contract.action === 'create_pr' || contract.action === 'run_a_grade_pr_review') {\n\t\treturn 1;\n\t}\n\tif (contract.action === 'repair_infra_only') {\n\t\treturn 2;\n\t}\n\tif (contract.action === 'run_business_proof_qa' || contract.action === 'collect_new_evidence') {\n\t\treturn 1;\n\t}\n\treturn contract.costRisk === 'expensive_model' ? 1 : 2;\n}\n\nfunction supportManagerRequiredResetEvidenceForContract(contract: ResolveIOSupportNextActionContract): string[] {\n\tconst resetFromStopConditions = cleanList(contract?.stopConditions, 32, 600)\n\t\t.map((entry) => {\n\t\t\tconst match = entry.match(/Reset requires:\\s*(.+)$/i);\n\t\t\treturn cleanText(match?.[1] || '', 500);\n\t\t})\n\t\t.filter(Boolean);\n\tconst defaults = [\n\t\tcontract?.decisionBasis?.blockerFingerprint ? 'changed blocker fingerprint' : '',\n\t\tcontract?.decisionBasis?.evidenceHash ? 'changed evidence hash' : '',\n\t\tcontract?.action === 'run_business_proof_qa' ? 'fresh AIQaBusinessAssertion with before/action/after proof artifact' : '',\n\t\tcontract?.action === 'run_owner_scoped_repair' ? 'owner-scoped diff plus compile proof and fresh business proof handoff' : '',\n\t\tcontract?.action === 'run_a_grade_pr_review' ? 'fresh strict PR review evidence or changed PR review blocker fingerprint' : '',\n\t\tcontract?.action === 'repair_infra_only' ? 'fresh infra/preflight evidence hash' : ''\n\t].filter(Boolean);\n\treturn Array.from(new Set([\n\t\t...resetFromStopConditions,\n\t\t...defaults,\n\t\t'fresh artifact path, verifier signal, or validated state transition for the selected action'\n\t])).slice(0, 16);\n}\n\nexport function validateResolveIOSupportNextActionContract(\n\tvalue: any\n): ResolveIOSupportNextActionContractValidation {\n\tconst contract = cleanObject(value) as ResolveIOSupportNextActionContract;\n\tconst blockers: string[] = [];\n\tconst warnings: string[] = [];\n\tconst action = cleanText(contract.action, 120) as ResolveIOSupportV5AutonomousNextAction;\n\tconst primaryCommand = cleanText(contract.primaryCommand, 240);\n\tconst requiredStringFields: Array<[string, string]> = [\n\t\t['action', action],\n\t\t['label', contract.label],\n\t\t['primaryCommand', primaryCommand],\n\t\t['expectedStateTransition', contract.expectedStateTransition],\n\t\t['contractId', contract.contractId]\n\t];\n\tfor (const [field, fieldValue] of requiredStringFields) {\n\t\tif (!cleanText(fieldValue, 500)) {\n\t\t\tblockers.push(`NextActionContract.${field} is required.`);\n\t\t}\n\t}\n\tif (!Array.isArray(contract.nextCommands) || !contract.nextCommands.length) {\n\t\tblockers.push('NextActionContract.nextCommands must include at least the primary command.');\n\t}\n\tif (primaryCommand && Array.isArray(contract.nextCommands) && !contract.nextCommands.includes(primaryCommand)) {\n\t\tblockers.push('NextActionContract.nextCommands must include primaryCommand.');\n\t}\n\tif (!Array.isArray(contract.stopConditions) || !contract.stopConditions.length) {\n\t\tblockers.push('NextActionContract.stopConditions are required so the manager can stop without Codex sidecar monitoring.');\n\t}\n\tif (!Array.isArray(contract.forbiddenActions) || contract.forbiddenActions.length < 2) {\n\t\tblockers.push('NextActionContract.forbiddenActions must make unsafe follow-up work explicit.');\n\t}\n\tif (!Array.isArray(contract.successEvidence) || !contract.successEvidence.length) {\n\t\tblockers.push('NextActionContract.successEvidence is required before continuation.');\n\t}\n\tif (contract.safeToAutoRun === true && contract.requiresHumanApproval === true) {\n\t\tblockers.push('NextActionContract cannot be both safeToAutoRun and requiresHumanApproval.');\n\t}\n\tif (contract.canRunWithoutCodexMonitor === true) {\n\t\tif (contract.safeToAutoRun !== true) {\n\t\t\tblockers.push('canRunWithoutCodexMonitor requires safeToAutoRun=true.');\n\t\t}\n\t\tif (contract.codexFallbackRequired === true) {\n\t\t\tblockers.push('canRunWithoutCodexMonitor cannot require Codex fallback.');\n\t\t}\n\t\tif (!contract.stopConditions.some((entry) => /same failure|evidence hash|blocker fingerprint|stop/i.test(entry))) {\n\t\t\tblockers.push('canRunWithoutCodexMonitor requires a deterministic same-failure or evidence-change stop condition.');\n\t\t}\n\t}\n\tif (action === 'run_owner_scoped_repair') {\n\t\tif (contract.rootCauseFirstSatisfied !== true) {\n\t\t\tblockers.push('Owner-scoped repair requires rootCauseFirstSatisfied=true.');\n\t\t}\n\t\tif (!Array.isArray(contract.ownerFiles) || !contract.ownerFiles.length) {\n\t\t\tblockers.push('Owner-scoped repair requires a non-empty ownerFiles set.');\n\t\t}\n\t\tif (!contract.forbiddenActions.some((entry) => /owner_files|outside/i.test(entry))) {\n\t\t\tblockers.push('Owner-scoped repair must forbid edits outside owner_files.');\n\t\t}\n\t}\n\tif (action === 'run_business_proof_qa') {\n\t\tif (contract.decisionBasis?.issueClassProbePlanReady !== true) {\n\t\t\tblockers.push('Business proof QA requires issueClassProbePlanReady=true.');\n\t\t}\n\t\tif (!contract.successEvidence.some((entry) => /AIQaBusinessAssertion|business proof|before\\/action\\/after/i.test(entry))) {\n\t\t\tblockers.push('Business proof QA must require AIQaBusinessAssertion or before/action/after proof.');\n\t\t}\n\t}\n\tif (action === 'create_pr') {\n\t\tif (contract.decisionBasis?.businessProofReady !== true) {\n\t\t\tblockers.push('PR packaging requires businessProofReady=true.');\n\t\t}\n\t\tif (!contract.successEvidence.some((entry) => /pull_request_url|PR|pull request/i.test(entry))) {\n\t\t\tblockers.push('PR packaging must require pull_request_url evidence.');\n\t\t}\n\t\tif (!contract.forbiddenActions.some((entry) => /merge|release|deploy|customer/i.test(entry))) {\n\t\t\tblockers.push('PR packaging must forbid merge, release, deploy, and customer-send side effects.');\n\t\t}\n\t}\n\tif (action === 'run_a_grade_pr_review') {\n\t\tif (contract.decisionBasis?.businessProofReady !== true) {\n\t\t\tblockers.push('A-grade PR review requires businessProofReady=true.');\n\t\t}\n\t\tif (!contract.successEvidence.some((entry) => /A-grade|execution\\/artifacts\\/pull_request|strict gate|grade/i.test(entry))) {\n\t\t\tblockers.push('A-grade PR review must require strict grade evidence.');\n\t\t}\n\t\tif (!contract.forbiddenActions.some((entry) => /merge|release|deploy|customer/i.test(entry))) {\n\t\t\tblockers.push('A-grade PR review must forbid merge, release, deploy, and customer-send side effects.');\n\t\t}\n\t}\n\tif (action === 'repair_release_hotfix_first') {\n\t\tif (contract.decisionBasis?.hotfixCommitRequired === true\n\t\t\t&& ![...contract.successEvidence, ...contract.stopConditions, ...contract.forbiddenActions].some((entry) => /sourceCommitSha|githubCommitUrl|gitCommitStatus|gitPushStatus|GitHub commit/i.test(entry))) {\n\t\t\tblockers.push('Hotfix release action requires GitHub commit and push proof before continuation.');\n\t\t}\n\t\tif (contract.decisionBasis?.liveHotfixBlockedUntilCommit === true && contract.safeToAutoRun === true && primaryCommand !== 'record_hotfix_evidence') {\n\t\t\twarnings.push('Live hotfix is blocked until commit proof; manager should record evidence before any live apply.');\n\t\t}\n\t}\n\tif (action === 'draft_customer_reply') {\n\t\tif (!contract.forbiddenActions.some((entry) => /do not send|send/i.test(entry))) {\n\t\t\tblockers.push('Customer reply draft action must forbid sending without human approval.');\n\t\t}\n\t}\n\tconst status: ResolveIOSupportNextActionContractValidationStatus = blockers.length\n\t\t? 'blocked'\n\t\t: contract.requiresHumanApproval === true || contract.safeToAutoRun !== true\n\t\t\t? 'manual_required'\n\t\t\t: 'ready';\n\treturn {\n\t\tvalid: blockers.length === 0,\n\t\tstatus,\n\t\tblockers,\n\t\twarnings,\n\t\tnormalized: contract.contractId ? contract : undefined\n\t};\n}\n\nexport function buildResolveIOSupportManagerExecutionPacket(\n\tcontract: ResolveIOSupportNextActionContract,\n\tnow?: Date | string\n): ResolveIOSupportManagerExecutionPacket {\n\tconst validation = validateResolveIOSupportNextActionContract(contract);\n\tconst createdAt = isoNow(now || contract?.createdAt);\n\tconst executeNow = validation.valid === true\n\t\t&& validation.status === 'ready'\n\t\t&& contract.canRunWithoutCodexMonitor === true\n\t\t&& contract.codexFallbackRequired !== true;\n\tconst status: ResolveIOSupportManagerExecutionPacketStatus = executeNow\n\t\t? 'auto_ready'\n\t\t: validation.status === 'manual_required'\n\t\t\t? 'manual_required'\n\t\t\t: 'blocked';\n\tconst proofRequiredBeforeContinuation = Array.from(new Set([\n\t\t...cleanList(contract?.successEvidence, 24, 500),\n\t\tcleanText(contract?.expectedStateTransition, 500)\n\t].filter(Boolean))).slice(0, 24);\n\tconst retryScope = supportManagerRetryScopeForAction(contract?.action);\n\tconst maxAttemptsBeforeFreshEvidence = supportManagerMaxAttemptsForContract(contract);\n\tconst stopConditions = cleanList(contract?.stopConditions, 24, 500);\n\tconst requiredResetEvidence = supportManagerRequiredResetEvidenceForContract(contract);\n\tconst proofResetContract: ResolveIOSupportProofResetContract = {\n\t\tcontractId: `support-proof-reset-${hashResolveIOSupportV5Evidence({\n\t\t\tcontractId: contract?.contractId,\n\t\t\taction: contract?.action,\n\t\t\tretryScope,\n\t\t\tblockerFingerprint: contract?.decisionBasis?.blockerFingerprint,\n\t\t\tevidenceHash: contract?.decisionBasis?.evidenceHash,\n\t\t\tcreatedAt: createdAt.slice(0, 16)\n\t\t}).slice(0, 16)}`,\n\t\tstatus: executeNow ? 'ready' : (status === 'manual_required' ? 'manual_required' : 'blocked'),\n\t\taction: contract?.action,\n\t\tretryScope,\n\t\tmaxAttemptsBeforeFreshEvidence,\n\t\tstartingFailureClass: cleanText(contract?.decisionBasis?.failureClass, 120),\n\t\tstartingBlockerFingerprint: cleanText(contract?.decisionBasis?.blockerFingerprint, 180),\n\t\tstartingEvidenceHash: cleanText(contract?.decisionBasis?.evidenceHash, 180),\n\t\trequiredResetEvidence,\n\t\tproofRequiredBeforeContinuation,\n\t\tstopConditions,\n\t\tcanRunWithoutCodexMonitor: contract?.canRunWithoutCodexMonitor === true && executeNow,\n\t\tsourceNextActionContractId: cleanText(contract?.contractId, 180),\n\t\tcreatedAt\n\t};\n\treturn {\n\t\tpacketId: `support-manager-exec-${hashResolveIOSupportV5Evidence({\n\t\t\tcontractId: contract?.contractId,\n\t\t\taction: contract?.action,\n\t\t\tprimaryCommand: contract?.primaryCommand,\n\t\t\tstatus,\n\t\t\tcreatedAt: createdAt.slice(0, 16)\n\t\t}).slice(0, 16)}`,\n\t\tstatus,\n\t\taction: contract?.action,\n\t\tlabel: cleanText(contract?.label, 160),\n\t\tprimaryCommand: cleanText(contract?.primaryCommand, 240),\n\t\tlane: contract?.lane || 'supervisor',\n\t\tstepType: contract?.stepType || 'cleanup',\n\t\texecuteNow,\n\t\tcanRunWithoutCodexMonitor: contract?.canRunWithoutCodexMonitor === true,\n\t\tcodexFallbackRequired: contract?.codexFallbackRequired === true,\n\t\tretryScope,\n\t\tmaxAttemptsBeforeFreshEvidence,\n\t\tcostRisk: contract?.costRisk || 'manual_blocked',\n\t\tproofRequiredBeforeContinuation,\n\t\texpectedStateTransition: cleanText(contract?.expectedStateTransition, 1000),\n\t\tstopConditions,\n\t\tforbiddenActions: cleanList(contract?.forbiddenActions, 24, 500),\n\t\townerFiles: cleanList(contract?.ownerFiles, 24, 500),\n\t\tnextCommands: cleanList(contract?.nextCommands, 24, 240),\n\t\tproofResetContract,\n\t\tblockers: Array.from(new Set([\n\t\t\t...cleanList(contract?.blockers, 24, 500),\n\t\t\t...validation.blockers\n\t\t])).slice(0, 24),\n\t\tvalidation,\n\t\tcreatedAt\n\t};\n}\n\nexport function decideResolveIOSupportV5RepeatedFailureStop(input: ResolveIOSupportV5RepeatStopInput): ResolveIOSupportV5RepeatStopDecision {\n\tconst failureClass = cleanText(input.failureClass || 'unknown', 80).toLowerCase();\n\tconst blockerFingerprint = fingerprintResolveIOSupportV5Blocker(input.blocker || '');\n\tconst evidenceHash = cleanText(input.evidenceHash, 80) || hashResolveIOSupportV5Evidence(input.evidence || input.blocker || '');\n\tconst limit = Math.max(1, Number(input.limit || 2) || 2);\n\tif (input.ignoreInfra !== false && /^(infra|compile)$/.test(failureClass)) {\n\t\treturn {\n\t\t\tshouldStop: false,\n\t\t\trepeatedCount: 0,\n\t\t\tfailureClass,\n\t\t\tblockerFingerprint,\n\t\t\tevidenceHash,\n\t\t\treason: 'support_v5_infra_failures_do_not_count_as_product_repair_loops'\n\t\t};\n\t}\n\tconst latestRecord = (input.history || [])[(input.history || []).length - 1];\n\tconst managerDecision = decideResolveIOAIManagerPolicy({\n\t\thistory: (input.history || []).map((entry) => ({\n\t\t\toutcome: entry.outcome,\n\t\t\tlane: entry.lane,\n\t\t\tstepType: entry.stepType,\n\t\t\tfailureClass: entry.failureClass,\n\t\t\tblocker: entry.blocker || entry.summary,\n\t\t\tevidenceHash: entry.evidenceHash,\n\t\t\tchangedFiles: entry.changedFiles,\n\t\t\tartifactPaths: entry.artifactPaths,\n\t\t\tsummary: entry.summary,\n\t\t\trecordedAt: entry.recordedAt\n\t\t})),\n\t\tcurrent: {\n\t\t\toutcome: 'needs_repair',\n\t\t\tlane: latestRecord?.lane,\n\t\t\tstepType: latestRecord?.stepType,\n\t\t\tfailureClass,\n\t\t\tblocker: input.blocker,\n\t\t\tevidenceHash,\n\t\t\tchangedFiles: cleanList(input.changedFiles, 40, 500),\n\t\t\tartifactPaths: cleanList(input.artifactPaths, 40, 500),\n\t\t\tsummary: input.blocker\n\t\t},\n\t\tmaxSameFailureRepeats: limit,\n\t\tmaxPingPongTransitions: 3,\n\t\tinfraFailureClasses: input.ignoreInfra !== false ? ['infra', 'compile'] : []\n\t});\n\tif (managerDecision.action === 'retry_infra') {\n\t\treturn {\n\t\t\tshouldStop: false,\n\t\t\trepeatedCount: 0,\n\t\t\tfailureClass,\n\t\t\tblockerFingerprint,\n\t\t\tevidenceHash,\n\t\t\treason: 'support_v5_infra_failures_do_not_count_as_product_repair_loops'\n\t\t};\n\t}\n\tif (managerDecision.action === 'park_ping_pong') {\n\t\treturn {\n\t\t\tshouldStop: true,\n\t\t\trepeatedCount: managerDecision.pingPongCount,\n\t\t\tfailureClass,\n\t\t\tblockerFingerprint,\n\t\t\tevidenceHash,\n\t\t\tnewEvidence: managerDecision.newEvidence,\n\t\t\tmaterialEvidence: managerDecision.materialEvidence,\n\t\t\tevidenceStrength: managerDecision.evidenceStrength,\n\t\t\tevidenceSignals: managerDecision.evidenceSignals,\n\t\t\treason: 'support_v5_ping_pong_failure_loop'\n\t\t};\n\t}\n\tif (managerDecision.action === 'park_repeated_failure' && managerDecision.newEvidence && !managerDecision.materialEvidence) {\n\t\treturn {\n\t\t\tshouldStop: true,\n\t\t\trepeatedCount: managerDecision.sameFailureCount,\n\t\t\tfailureClass,\n\t\t\tblockerFingerprint,\n\t\t\tevidenceHash,\n\t\t\tnewEvidence: managerDecision.newEvidence,\n\t\t\tmaterialEvidence: managerDecision.materialEvidence,\n\t\t\tevidenceStrength: managerDecision.evidenceStrength,\n\t\t\tevidenceSignals: managerDecision.evidenceSignals,\n\t\t\treason: 'support_v5_same_failure_with_weak_evidence'\n\t\t};\n\t}\n\tif (managerDecision.newEvidence && managerDecision.materialEvidence) {\n\t\treturn {\n\t\t\tshouldStop: false,\n\t\t\trepeatedCount: managerDecision.sameFailureCount,\n\t\t\tfailureClass,\n\t\t\tblockerFingerprint,\n\t\t\tevidenceHash,\n\t\t\tnewEvidence: managerDecision.newEvidence,\n\t\t\tmaterialEvidence: managerDecision.materialEvidence,\n\t\t\tevidenceStrength: managerDecision.evidenceStrength,\n\t\t\tevidenceSignals: managerDecision.evidenceSignals,\n\t\t\treason: 'support_v5_retry_allowed_material_evidence'\n\t\t};\n\t}\n\tif (managerDecision.action === 'park_repeated_failure') {\n\t\treturn {\n\t\t\tshouldStop: true,\n\t\t\trepeatedCount: managerDecision.sameFailureCount,\n\t\t\tfailureClass,\n\t\t\tblockerFingerprint,\n\t\t\tevidenceHash,\n\t\t\tnewEvidence: managerDecision.newEvidence,\n\t\t\tmaterialEvidence: managerDecision.materialEvidence,\n\t\t\tevidenceStrength: managerDecision.evidenceStrength,\n\t\t\tevidenceSignals: managerDecision.evidenceSignals,\n\t\t\treason: 'support_v5_same_failure_class_without_new_evidence'\n\t\t};\n\t}\n\tlet repeatedCount = 0;\n\tfor (let index = (input.history || []).length - 1; index >= 0; index -= 1) {\n\t\tconst item = input.history[index];\n\t\tif (item.outcome === 'pass' || item.outcome === 'ready_for_merge') {\n\t\t\tbreak;\n\t\t}\n\t\tconst itemFailureClass = cleanText(item.failureClass || 'unknown', 80).toLowerCase();\n\t\tconst itemBlockerFingerprint = cleanText(item.blockerFingerprint, 80)\n\t\t\t|| fingerprintResolveIOSupportV5Blocker(item.blocker || item.summary || '');\n\t\tconst itemEvidenceHash = cleanText(item.evidenceHash, 80)\n\t\t\t|| hashResolveIOSupportV5Evidence(item.artifactPaths || item.blocker || item.summary || '');\n\t\tif (itemFailureClass !== failureClass || itemBlockerFingerprint !== blockerFingerprint || itemEvidenceHash !== evidenceHash) {\n\t\t\tbreak;\n\t\t}\n\t\trepeatedCount += 1;\n\t}\n\treturn {\n\t\tshouldStop: repeatedCount >= limit,\n\t\trepeatedCount,\n\t\tfailureClass,\n\t\tblockerFingerprint,\n\t\tevidenceHash,\n\t\tnewEvidence: managerDecision.newEvidence,\n\t\tmaterialEvidence: managerDecision.materialEvidence,\n\t\tevidenceStrength: managerDecision.evidenceStrength,\n\t\tevidenceSignals: managerDecision.evidenceSignals,\n\t\treason: repeatedCount >= limit\n\t\t\t? 'support_v5_same_failure_class_without_new_evidence'\n\t\t\t: 'support_v5_retry_allowed_new_or_below_repeat_limit'\n\t};\n}\n\nexport function evaluateResolveIOSupportEvidenceFreshness(input: {\n\thistory?: ResolveIOSupportV5StepRecord[];\n\tfailureClass?: ResolveIOSupportV5FailureClass | string;\n\tblocker?: any;\n\tevidence?: any;\n\tevidenceHash?: string;\n\tchangedFiles?: any;\n\tartifactPaths?: any;\n\tlane?: ResolveIOSupportV5Lane | string;\n\tstepType?: ResolveIOSupportV5StepType | string;\n\tlimit?: number;\n\tignoreInfra?: boolean;\n}): ResolveIOSupportEvidenceFreshness {\n\tconst history = Array.isArray(input.history) ? input.history : [];\n\tconst latest = history.length ? history[history.length - 1] : undefined;\n\tconst rawFailureClass = cleanText(input.failureClass || latest?.failureClass, 80).toLowerCase();\n\tconst failureClass = rawFailureClass || 'unknown';\n\tconst blocker = cleanText(input.blocker || latest?.blocker || latest?.summary, 1200);\n\tconst changedFiles = cleanList(input.changedFiles || latest?.changedFiles, 40, 500);\n\tconst artifactPaths = cleanList(input.artifactPaths || latest?.artifactPaths, 40, 500);\n\tconst explicitEvidenceHash = cleanText(input.evidenceHash || latest?.evidenceHash, 120);\n\tconst evidenceHash = explicitEvidenceHash || hashResolveIOSupportV5Evidence(input.evidence || artifactPaths || blocker || latest?.summary || '');\n\tconst blockerFingerprint = fingerprintResolveIOSupportV5Blocker(blocker || latest?.summary || '');\n\tconst missing = !history.length && !rawFailureClass && !blocker && !explicitEvidenceHash && !artifactPaths.length && !changedFiles.length;\n\tif (missing) {\n\t\treturn {\n\t\t\tstatus: 'missing',\n\t\t\tfailureClass: '',\n\t\t\tblockerFingerprint: '',\n\t\t\tevidenceHash: '',\n\t\t\tsameFailureCount: 0,\n\t\t\tpingPongCount: 0,\n\t\t\tnewEvidence: false,\n\t\t\tmaterialEvidence: false,\n\t\t\tevidenceStrength: 'none',\n\t\t\tevidenceSignals: [],\n\t\t\tloopBudgetShouldReset: false,\n\t\t\tcanRetry: true,\n\t\t\tmustCollectNewEvidence: false,\n\t\t\tproductRepairFailure: false,\n\t\t\treason: 'support_evidence_freshness_waiting_for_first_failure_or_proof',\n\t\t\trequiredResetEvidence: [\n\t\t\t\t'current blocker fingerprint',\n\t\t\t\t'evidence hash',\n\t\t\t\t'artifact path when available'\n\t\t\t],\n\t\t\tchangedFiles,\n\t\t\tartifactPaths\n\t\t};\n\t}\n\tconst current = {\n\t\toutcome: 'needs_repair',\n\t\tlane: cleanText(input.lane || latest?.lane, 80) || latest?.lane,\n\t\tstepType: cleanText(input.stepType || latest?.stepType, 80) || latest?.stepType,\n\t\tfailureClass,\n\t\tblocker,\n\t\tevidenceHash,\n\t\tchangedFiles,\n\t\tartifactPaths,\n\t\tsummary: blocker\n\t};\n\tconst policy = decideResolveIOAIManagerPolicy({\n\t\thistory: history.map((entry) => ({\n\t\t\toutcome: entry.outcome,\n\t\t\tlane: entry.lane,\n\t\t\tstepType: entry.stepType,\n\t\t\tfailureClass: entry.failureClass,\n\t\t\tblocker: entry.blocker || entry.summary,\n\t\t\tevidenceHash: entry.evidenceHash,\n\t\t\tchangedFiles: entry.changedFiles,\n\t\t\tartifactPaths: entry.artifactPaths,\n\t\t\tsummary: entry.summary,\n\t\t\trecordedAt: entry.recordedAt\n\t\t})),\n\t\tcurrent,\n\t\tmaxSameFailureRepeats: Math.max(1, Number(input.limit || 2) || 2),\n\t\tmaxPingPongTransitions: 3,\n\t\tinfraFailureClasses: input.ignoreInfra !== false ? ['infra', 'compile'] : []\n\t});\n\tlet status: ResolveIOSupportEvidenceFreshnessStatus = 'retry_below_limit';\n\tif (policy.action === 'retry_infra') {\n\t\tstatus = 'infra_ignored';\n\t}\n\telse if (policy.action === 'park_ping_pong') {\n\t\tstatus = 'ping_pong';\n\t}\n\telse if (policy.action === 'park_repeated_failure') {\n\t\tstatus = policy.newEvidence ? 'weak_evidence' : 'stale_repeated';\n\t}\n\telse if (policy.newEvidence && policy.materialEvidence) {\n\t\tstatus = 'material_evidence';\n\t}\n\telse if (policy.newEvidence && !policy.materialEvidence) {\n\t\tstatus = 'weak_evidence';\n\t}\n\telse if (policy.loopBudgetShouldReset || policy.reason === 'manager_policy_new_failure_or_lane') {\n\t\tstatus = 'fresh';\n\t}\n\tconst mustCollectNewEvidence = policy.action === 'park_repeated_failure'\n\t\t|| policy.action === 'park_ping_pong';\n\treturn {\n\t\tstatus,\n\t\tfailureClass: policy.failureClass,\n\t\tblockerFingerprint: blockerFingerprint || policy.blockerFingerprint,\n\t\tevidenceHash: policy.evidenceHash,\n\t\tsameFailureCount: policy.sameFailureCount,\n\t\tpingPongCount: policy.pingPongCount,\n\t\tnewEvidence: policy.newEvidence,\n\t\tmaterialEvidence: policy.materialEvidence,\n\t\tevidenceStrength: policy.evidenceStrength,\n\t\tevidenceSignals: policy.evidenceSignals,\n\t\tloopBudgetShouldReset: policy.loopBudgetShouldReset,\n\t\tcanRetry: !mustCollectNewEvidence,\n\t\tmustCollectNewEvidence,\n\t\tproductRepairFailure: policy.productRepairFailure,\n\t\treason: policy.reason,\n\t\trequiredResetEvidence: Array.from(new Set([\n\t\t\t...cleanList(policy.recoveryPlan.loopResetEvidence, 12, 500),\n\t\t\t...cleanList(policy.recoveryAction?.successCriteria, 12, 500)\n\t\t])).slice(0, 18),\n\t\tchangedFiles,\n\t\tartifactPaths\n\t};\n}\n\nexport function validateResolveIOSupportEvidenceProbeContract(value: any): ResolveIOSupportEvidenceProbeContractValidation {\n\tconst source = cleanObject(value);\n\tif (!Object.keys(source).length) {\n\t\treturn {\n\t\t\tvalid: false,\n\t\t\tstatus: 'blocked',\n\t\t\tblockers: ['Support evidence probe contract is missing.']\n\t\t};\n\t}\n\tconst status = cleanText(source.status, 80) === 'ready' ? 'ready' : 'blocked';\n\tconst normalized: ResolveIOSupportEvidenceProbeContract = {\n\t\tcontractId: cleanText(source.contractId || source.contract_id, 180),\n\t\tstatus,\n\t\tprobeType: (cleanText(source.probeType || source.probe_type, 80) as ResolveIOSupportEvidenceProbeContractType) || 'manual',\n\t\tevidenceOnly: true,\n\t\tproductRepairAllowed: false,\n\t\tcanRunWithoutCodexMonitor: source.canRunWithoutCodexMonitor === true || source.can_run_without_codex_monitor === true,\n\t\tissueClass: normalizeIssueClass(source.issueClass || source.issue_class) || undefined,\n\t\tplanId: cleanText(source.planId || source.plan_id, 180) || undefined,\n\t\tactiveRoute: cleanText(source.activeRoute || source.active_route, 500) || undefined,\n\t\tactionUnderTest: cleanText(source.actionUnderTest || source.action_under_test, 1000) || undefined,\n\t\texpectedBusinessProof: cleanText(source.expectedBusinessProof || source.expected_business_proof, 1400) || undefined,\n\t\tstateTransition: cleanObject(source.stateTransition || source.state_transition) as ResolveIOSupportIssueClassProbe['state_transition'],\n\t\tstartingFailureClass: cleanText(source.startingFailureClass || source.starting_failure_class, 120),\n\t\tstartingBlockerFingerprint: cleanText(source.startingBlockerFingerprint || source.starting_blocker_fingerprint, 180),\n\t\tstartingEvidenceHash: cleanText(source.startingEvidenceHash || source.starting_evidence_hash, 180),\n\t\tsameFailureCount: Math.max(0, Number(source.sameFailureCount || source.same_failure_count || 0) || 0),\n\t\tpingPongCount: Math.max(0, Number(source.pingPongCount || source.ping_pong_count || 0) || 0),\n\t\trequiredNewSignals: cleanList(source.requiredNewSignals || source.required_new_signals, 20, 500),\n\t\trequiredArtifacts: cleanList(source.requiredArtifacts || source.required_artifacts, 20, 500),\n\t\tacceptableEvidence: cleanList(source.acceptableEvidence || source.acceptable_evidence, 20, 500),\n\t\tblockers: cleanList(source.blockers, 20, 500),\n\t\tforbiddenActions: cleanList(source.forbiddenActions || source.forbidden_actions, 20, 500),\n\t\tnextCommands: cleanList(source.nextCommands || source.next_commands, 16, 260),\n\t\tcreatedAt: cleanText(source.createdAt || source.created_at, 80) || isoNow()\n\t};\n\tconst blockers = [...normalized.blockers];\n\tif (!normalized.contractId) {\n\t\tblockers.push('Evidence probe contract requires contractId.');\n\t}\n\tif (!['issue_class_probe', 'business_proof', 'preflight', 'release', 'manual'].includes(normalized.probeType)) {\n\t\tblockers.push('Evidence probe contract probeType is invalid.');\n\t}\n\tif (source.evidenceOnly === false || source.evidence_only === false) {\n\t\tblockers.push('Evidence probe contract must be evidenceOnly=true.');\n\t}\n\tif (source.productRepairAllowed === true || source.product_repair_allowed === true) {\n\t\tblockers.push('Evidence probe contract must block productRepairAllowed.');\n\t}\n\tif (!normalized.requiredNewSignals.length) {\n\t\tblockers.push('Evidence probe contract requires at least one new signal that can unblock the loop.');\n\t}\n\tif (!normalized.requiredArtifacts.length) {\n\t\tblockers.push('Evidence probe contract requires concrete artifact requirements.');\n\t}\n\tif (!normalized.acceptableEvidence.length) {\n\t\tblockers.push('Evidence probe contract requires acceptableEvidence.');\n\t}\n\tif (!normalized.nextCommands.length) {\n\t\tblockers.push('Evidence probe contract requires nextCommands.');\n\t}\n\tif (!normalized.forbiddenActions.some((entry) => /product-code|repair loop|source edit|owner_files/i.test(entry))) {\n\t\tblockers.push('Evidence probe contract must explicitly forbid product-code repair/source edits.');\n\t}\n\tif (normalized.probeType === 'issue_class_probe') {\n\t\tif (!normalized.issueClass) {\n\t\t\tblockers.push('Issue-class evidence probe requires issueClass.');\n\t\t}\n\t\tif (!normalized.activeRoute) {\n\t\t\tblockers.push('Issue-class evidence probe requires activeRoute.');\n\t\t}\n\t\tif (!normalized.actionUnderTest) {\n\t\t\tblockers.push('Issue-class evidence probe requires actionUnderTest.');\n\t\t}\n\t\tif (!normalized.expectedBusinessProof) {\n\t\t\tblockers.push('Issue-class evidence probe requires expectedBusinessProof.');\n\t\t}\n\t\tif (!normalized.acceptableEvidence.some((entry) => /AIQaBusinessAssertion|before\\/action\\/after|DOM|Mongo|data/i.test(entry))) {\n\t\t\tblockers.push('Issue-class evidence probe must require AIQaBusinessAssertion or before/action/after DOM/data/Mongo proof.');\n\t\t}\n\t}\n\tnormalized.blockers = Array.from(new Set(blockers)).slice(0, 20);\n\tnormalized.status = normalized.blockers.length ? 'blocked' : 'ready';\n\tnormalized.canRunWithoutCodexMonitor = normalized.status === 'ready' && normalized.evidenceOnly === true && normalized.productRepairAllowed === false;\n\treturn {\n\t\tvalid: normalized.status === 'ready',\n\t\tstatus: normalized.status,\n\t\tblockers: normalized.blockers,\n\t\tnormalized\n\t};\n}\n\nexport function buildResolveIOSupportEvidenceProbeContract(input: {\n\tdiagnosisGate?: any;\n\tissueClassProbePlan?: any;\n\tevidenceFreshness?: ResolveIOSupportEvidenceFreshness;\n\trequiredEvidence?: any;\n\tfailureClass?: ResolveIOSupportV5FailureClass | string;\n\tblocker?: any;\n\tevidenceHash?: string;\n\tnow?: Date | string;\n}): ResolveIOSupportEvidenceProbeContract {\n\tconst now = isoNow(input.now);\n\tconst diagnosisValidation = validateResolveIOSupportDiagnosisGate(input.diagnosisGate);\n\tconst issueClassProbePlanValidation = validateResolveIOSupportIssueClassProbePlan(\n\t\tinput.issueClassProbePlan,\n\t\tdiagnosisValidation.normalized,\n\t\tinput.now\n\t);\n\tconst activeProbe = issueClassProbePlanValidation.activeProbe\n\t\t|| issueClassProbePlanValidation.normalized?.activeProbe;\n\tconst freshness = input.evidenceFreshness || evaluateResolveIOSupportEvidenceFreshness({\n\t\tfailureClass: input.failureClass,\n\t\tblocker: input.blocker,\n\t\tevidenceHash: input.evidenceHash\n\t});\n\tconst probeType: ResolveIOSupportEvidenceProbeContractType = activeProbe\n\t\t? 'issue_class_probe'\n\t\t: /^(infra|compile)$/i.test(freshness.failureClass)\n\t\t\t? 'preflight'\n\t\t\t: /release/i.test(freshness.failureClass)\n\t\t\t\t? 'release'\n\t\t\t\t: diagnosisValidation.valid\n\t\t\t\t\t? 'business_proof'\n\t\t\t\t\t: 'manual';\n\tconst requiredNewSignals = Array.from(new Set([\n\t\t...cleanList(freshness.requiredResetEvidence, 20, 500),\n\t\t'changed blockerFingerprint from the starting failure',\n\t\t'changed evidenceHash from the starting failure',\n\t\t'fresh artifact path not already attached to the repeated failure',\n\t\tactiveProbe ? 'AIQaBusinessAssertion mapped to the active IssueClassProbePlan' : 'fresh before/action/after proof artifact'\n\t])).slice(0, 20);\n\tconst requiredArtifacts = Array.from(new Set([\n\t\t...cleanList(input.requiredEvidence, 20, 500),\n\t\t...cleanList(activeProbe?.required_artifacts, 20, 500),\n\t\t...cleanList(issueClassProbePlanValidation.normalized?.requiredArtifacts, 20, 500),\n\t\t...(probeType === 'preflight' ? ['preflight log with changed infra/compile status'] : []),\n\t\t...(probeType === 'release' ? ['release/hotfix gate result with changed status'] : []),\n\t\t...(activeProbe ? ['AIQaBusinessAssertion JSON artifact'] : [])\n\t])).slice(0, 20);\n\tconst acceptableEvidence = Array.from(new Set([\n\t\tactiveProbe ? 'AIQaBusinessAssertion tied to the active issue-class probe' : 'before/action/after business proof artifact',\n\t\tactiveProbe ? `state transition proof: ${activeProbe.state_transition.before || 'before'} -> ${activeProbe.state_transition.action || activeProbe.action} -> ${activeProbe.state_transition.after || 'after'}` : '',\n\t\t'changed blockerFingerprint or evidenceHash',\n\t\t'new DOM/data/Mongo/network artifact proving the blocker changed',\n\t\t'new compile/infra/release proof only if the failure class changed'\n\t].filter(Boolean))).slice(0, 20);\n\tconst blockers = Array.from(new Set([\n\t\t...(diagnosisValidation.valid ? [] : ['Valid SupportDiagnosisGate is required before bounded support evidence collection.']),\n\t\t...(probeType === 'issue_class_probe' && !issueClassProbePlanValidation.valid ? issueClassProbePlanValidation.blockers : []),\n\t\t...(freshness.mustCollectNewEvidence ? [] : ['Evidence probe contract is intended for repeated/stale failures that must collect new evidence.'])\n\t])).slice(0, 20);\n\tconst nextCommands = Array.from(new Set([\n\t\tactiveProbe ? 'execute_active_issue_class_probe_evidence_only' : 'collect_before_action_after_evidence_only',\n\t\t'record_changed_blocker_or_evidence_hash',\n\t\t'write_aiqa_business_assertion_or_blocker_artifact',\n\t\t'return_to_diagnosis_or_owner_scoped_repair_only_after_probe_passes'\n\t])).slice(0, 12);\n\tconst contract: ResolveIOSupportEvidenceProbeContract = {\n\t\tcontractId: `support-evidence-probe-${hashResolveIOSupportV5Evidence({\n\t\t\tissueClass: diagnosisValidation.normalized?.issue_class,\n\t\t\tplanId: issueClassProbePlanValidation.normalized?.planId,\n\t\t\tfailureClass: freshness.failureClass,\n\t\t\tblockerFingerprint: freshness.blockerFingerprint,\n\t\t\tevidenceHash: freshness.evidenceHash,\n\t\t\trequiredNewSignals,\n\t\t\tcreatedAt: now.slice(0, 16)\n\t\t}).slice(0, 16)}`,\n\t\tstatus: blockers.length ? 'blocked' : 'ready',\n\t\tprobeType,\n\t\tevidenceOnly: true,\n\t\tproductRepairAllowed: false,\n\t\tcanRunWithoutCodexMonitor: blockers.length === 0,\n\t\tissueClass: diagnosisValidation.normalized?.issue_class || activeProbe?.issue_class,\n\t\tplanId: issueClassProbePlanValidation.normalized?.planId,\n\t\tactiveRoute: activeProbe?.route || diagnosisValidation.normalized?.proof_plan.route,\n\t\tactionUnderTest: activeProbe?.action || diagnosisValidation.normalized?.proof_plan.action,\n\t\texpectedBusinessProof: activeProbe?.expected_business_proof || diagnosisValidation.normalized?.proof_plan.business_assertion,\n\t\tstateTransition: activeProbe?.state_transition,\n\t\tstartingFailureClass: freshness.failureClass,\n\t\tstartingBlockerFingerprint: freshness.blockerFingerprint,\n\t\tstartingEvidenceHash: freshness.evidenceHash,\n\t\tsameFailureCount: freshness.sameFailureCount,\n\t\tpingPongCount: freshness.pingPongCount,\n\t\trequiredNewSignals,\n\t\trequiredArtifacts,\n\t\tacceptableEvidence,\n\t\tblockers,\n\t\tforbiddenActions: [\n\t\t\t'Do not edit product-code or source files during this evidence probe.',\n\t\t\t'Do not run another repair loop from the same blockerFingerprint and evidenceHash.',\n\t\t\t'Do not treat route-load, screenshot-only, scorecard-only, or model-claim proof as acceptance.'\n\t\t],\n\t\tnextCommands,\n\t\tcreatedAt: now\n\t};\n\tconst validation = validateResolveIOSupportEvidenceProbeContract(contract);\n\treturn validation.normalized || contract;\n}\n\nexport function buildResolveIOSupportContinuationProofCheckpoint(input: {\n\taction: ResolveIOSupportV5AutonomousNextAction;\n\treason?: any;\n\tevidenceFreshness?: ResolveIOSupportEvidenceFreshness;\n\trequiredEvidence?: any;\n\trequiredResetEvidence?: any;\n\tblocksProductRepair?: boolean;\n}): ResolveIOSupportContinuationProofCheckpoint {\n\tconst evidenceFreshness = input.evidenceFreshness;\n\tconst action = input.action;\n\tconst requiredEvidence = cleanList(input.requiredEvidence, 20, 500);\n\tconst requiredResetEvidence = Array.from(new Set([\n\t\t...cleanList(input.requiredResetEvidence, 20, 500),\n\t\t...cleanList(evidenceFreshness?.requiredResetEvidence, 20, 500),\n\t\t...(action === 'run_diagnosis_gate'\n\t\t\t? [\n\t\t\t\t'accepted SupportDiagnosisGate with reproduced/blocked issue case',\n\t\t\t\t'bounded owner_files and before/action/after proof_plan'\n\t\t\t]\n\t\t\t: []),\n\t\t...(action === 'collect_new_evidence'\n\t\t\t? [\n\t\t\t\t'fresh issue-class probe artifact',\n\t\t\t\t'changed blockerFingerprint or evidenceHash',\n\t\t\t\t'AIQaBusinessAssertion or before/action/after blocker artifact'\n\t\t\t]\n\t\t\t: []),\n\t\t...(action === 'repair_infra_only'\n\t\t\t? [\n\t\t\t\t'infra or compile gate passes, or failureClass changes',\n\t\t\t\t'new evidenceHash from fresh preflight/build artifact'\n\t\t\t]\n\t\t\t: []),\n\t\t...(action === 'repair_release_hotfix_first'\n\t\t\t? [\n\t\t\t\t'GitHub commit proof recorded before live backend hotfix',\n\t\t\t\t'release gate or hotfix durability evidence refreshed'\n\t\t\t]\n\t\t\t: [])\n\t])).slice(0, 20);\n\tconst blocksProductRepair = input.blocksProductRepair === true\n\t\t|| action === 'collect_new_evidence'\n\t\t|| action === 'run_diagnosis_gate'\n\t\t|| action === 'ask_customer_clarification'\n\t\t|| action === 'repair_infra_only'\n\t\t|| action === 'revise_diagnosis_scope';\n\tconst waitingForNewEvidence = evidenceFreshness?.mustCollectNewEvidence === true\n\t\t|| action === 'collect_new_evidence';\n\tconst proofRequired = requiredEvidence.length > 0 || requiredResetEvidence.length > 0;\n\tconst status: ResolveIOSupportContinuationProofCheckpointStatus = waitingForNewEvidence\n\t\t? 'waiting_for_new_evidence'\n\t\t: proofRequired\n\t\t\t? 'waiting_for_proof'\n\t\t\t: 'waiting_for_state_transition';\n\treturn {\n\t\trequired: true,\n\t\tstatus,\n\t\taction,\n\t\treason: cleanText(input.reason || evidenceFreshness?.reason || '', 1000),\n\t\tstartingFailureClass: cleanText(evidenceFreshness?.failureClass, 120),\n\t\tstartingBlockerFingerprint: cleanText(evidenceFreshness?.blockerFingerprint, 160),\n\t\tstartingEvidenceHash: cleanText(evidenceFreshness?.evidenceHash, 160),\n\t\trequiredEvidence,\n\t\trequiredResetEvidence,\n\t\tsuccessRequiresNewEvidence: waitingForNewEvidence || blocksProductRepair,\n\t\tblocksProductRepairUntilChangedEvidence: blocksProductRepair,\n\t\tnextAction: waitingForNewEvidence\n\t\t\t? 'collect_required_reset_evidence'\n\t\t\t: action\n\t};\n}\n\nexport function changedFilesOutsideResolveIOSupportDiagnosisOwnerFiles(\n\tdiagnosisGate: any,\n\tchangedFiles: any,\n\toptions: { allowTests?: boolean } = {}\n): string[] {\n\tconst validation = validateResolveIOSupportDiagnosisGate(diagnosisGate);\n\tif (!validation.valid || !validation.normalized) {\n\t\treturn cleanList(changedFiles, 80, 500);\n\t}\n\tconst owners = validation.normalized.owner_files.map(normalizeOwnerFilePath).filter(Boolean);\n\treturn cleanList(changedFiles, 120, 500)\n\t\t.map(normalizeOwnerFilePath)\n\t\t.filter((filePath) => {\n\t\t\tif (!filePath) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tif (owners.some((ownerFile) => ownerFilePathMatchesDiagnosisOwner(filePath, ownerFile))) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tif (options.allowTests && /(^|\\/)(tests?|spec|__tests__)(\\/|$)|\\.(?:spec|test)\\.[jt]sx?$/i.test(filePath)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tif (isResolveIOSupportGeneratedAngularWrapperPath(filePath)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn true;\n\t\t});\n}\n\nfunction supportRepairPurposeForOwnerFile(\n\tgate: ResolveIOSupportDiagnosisGate | undefined,\n\tcoverage: ResolveIOSupportDiagnosisProofMatrixOwnerFile\n): string {\n\tif (!gate) {\n\t\treturn 'Repair is blocked until SupportDiagnosisGate validates.';\n\t}\n\tconst pathParts = coverage.failingPathFields.length\n\t\t? coverage.failingPathFields.join('/')\n\t\t: 'diagnosed failing path';\n\tconst proof = gate.proof_plan.business_proof_contract?.expected_business_state_change\n\t\t|| gate.proof_plan.business_assertion\n\t\t|| gate.proof_plan.after;\n\treturn cleanText(`Update ${coverage.ownerFile} only for ${pathParts}; preserve unrelated behavior and prove: ${proof}`, 1000);\n}\n\nexport function buildResolveIOSupportOwnerScopedRepairContract(input: {\n\tdiagnosisGate?: any;\n\tchangedFiles?: any;\n\tallowTestsOutsideOwnerFiles?: boolean;\n\tnow?: Date | string;\n} = {}): ResolveIOSupportOwnerScopedRepairContract {\n\tconst diagnosisValidation = validateResolveIOSupportDiagnosisGate(input.diagnosisGate);\n\tconst gate = diagnosisValidation.normalized;\n\tconst proofMatrix = diagnosisValidation.proofMatrix || buildResolveIOSupportDiagnosisProofMatrix(input.diagnosisGate, input.now);\n\tconst ownerFiles = gate?.owner_files || proofMatrix.ownerFiles || [];\n\tconst changedFiles = cleanList(input.changedFiles, 120, 500)\n\t\t.map(normalizeOwnerFilePath)\n\t\t.filter(Boolean);\n\tconst outsideOwnerFiles = changedFiles.length\n\t\t? changedFilesOutsideResolveIOSupportDiagnosisOwnerFiles(gate || input.diagnosisGate, changedFiles, {\n\t\t\tallowTests: input.allowTestsOutsideOwnerFiles === true\n\t\t})\n\t\t: [];\n\tconst patchUnits = proofMatrix.ownerFileCoverage.map((coverage) => ({\n\t\townerFile: coverage.ownerFile,\n\t\tcoverageEvidenceIds: coverage.evidenceIds,\n\t\tfailingPathFields: coverage.failingPathFields,\n\t\trepairPurpose: supportRepairPurposeForOwnerFile(gate, coverage),\n\t\trequiredLocalChecks: [\n\t\t\t'compile or targeted typecheck passes',\n\t\t\t'targeted unit/integration check when available',\n\t\t\t'no edits outside owner_files except explicitly allowed tests'\n\t\t]\n\t}));\n\tconst blockers = Array.from(new Set([\n\t\t...diagnosisValidation.blockers,\n\t\t...proofMatrix.blockers,\n\t\t...(outsideOwnerFiles.length ? [`Repair contract changed files outside owner_files: ${outsideOwnerFiles.join(', ')}`] : []),\n\t\t...(ownerFiles.length ? [] : ['Repair contract requires a non-empty owner_files set.']),\n\t\t...(patchUnits.length ? [] : ['Repair contract requires at least one owner-file patch unit.'])\n\t])).slice(0, 40);\n\tconst status: ResolveIOSupportOwnerScopedRepairContract['status'] = blockers.length ? 'blocked' : 'ready';\n\tconst requiredEvidenceBeforeRepair = [\n\t\t'valid SupportDiagnosisGate',\n\t\t'ready SupportDiagnosisProofMatrix',\n\t\t'owner_files coverage for every patch unit',\n\t\t'preflight/compile gate not blocking product repair'\n\t];\n\tconst requiredEvidenceAfterRepair = [\n\t\t'changed files are within owner_files',\n\t\t'compile or targeted unit gate passes',\n\t\t'fresh AIQaBusinessAssertion mapped to diagnosis proof_plan',\n\t\t'business proof artifacts include before/action/after DOM/data or Mongo proof'\n\t];\n\tconst createdAt = isoNow(input.now);\n\treturn {\n\t\tcontractId: `support-owner-scoped-repair-${hashResolveIOSupportV5Evidence({\n\t\t\tissueClass: gate?.issue_class,\n\t\t\townerFiles,\n\t\t\tproofMatrixId: proofMatrix.matrixId,\n\t\t\tchangedFiles,\n\t\t\toutsideOwnerFiles,\n\t\t\tcreatedAt: createdAt.slice(0, 16)\n\t\t}).slice(0, 16)}`,\n\t\tstatus,\n\t\tsourceEditsAllowed: status === 'ready',\n\t\tcanRunWithoutCodexMonitor: status === 'ready',\n\t\tissueClass: gate?.issue_class,\n\t\townerFiles,\n\t\tproofMatrixId: proofMatrix.matrixId,\n\t\tchangedFiles,\n\t\toutsideOwnerFiles,\n\t\tpatchUnits,\n\t\trequiredEvidenceBeforeRepair,\n\t\trequiredEvidenceAfterRepair,\n\t\tnextCommands: [\n\t\t\t'load_owner_files_only',\n\t\t\t'apply_smallest_fix_to_patch_units',\n\t\t\t'run_smallest_compile_or_unit_gate',\n\t\t\t'handoff_to_business_proof_qa'\n\t\t],\n\t\tforbiddenActions: [\n\t\t\t'Do not edit outside owner_files unless SupportDiagnosisGate is revised with new evidence.',\n\t\t\t'Do not accept route-load, screenshot-only, scorecard-only, or model-claim proof.',\n\t\t\t'Do not draft a customer resolution until business proof readiness passes.'\n\t\t],\n\t\tblockers,\n\t\tcreatedAt\n\t};\n}\n\nexport function decideResolveIOSupportV5RepairGate(input: ResolveIOSupportV5RepairGateInput): ResolveIOSupportV5RepairGateDecision {\n\tconst activeStepType = cleanText(input.activeStepType, 80);\n\tconst failureClass = cleanText(input.failureClass, 80).toLowerCase();\n\tconst preflightGate = evaluateResolveIOSupportPreflightGate(input.preflightGate);\n\tconst diagnosisValidation = validateResolveIOSupportDiagnosisGate(input.diagnosisGate, {\n\t\tmaxOwnerFiles: input.maxOwnerFiles\n\t});\n\tconst ownerFiles = diagnosisValidation.normalized?.owner_files || [];\n\tconst outsideOwnerFiles = changedFilesOutsideResolveIOSupportDiagnosisOwnerFiles(\n\t\tdiagnosisValidation.normalized || input.diagnosisGate,\n\t\tinput.changedFiles,\n\t\t{ allowTests: input.allowTestsOutsideOwnerFiles === true }\n\t);\n\tconst ownerScopedRepairContract = buildResolveIOSupportOwnerScopedRepairContract({\n\t\tdiagnosisGate: diagnosisValidation.normalized || input.diagnosisGate,\n\t\tchangedFiles: input.changedFiles,\n\t\tallowTestsOutsideOwnerFiles: input.allowTestsOutsideOwnerFiles === true\n\t});\n\tconst repeatedFailure = input.history?.length ? decideResolveIOSupportV5RepeatedFailureStop({\n\t\thistory: input.history,\n\t\tfailureClass,\n\t\tblocker: input.blocker,\n\t\tevidence: input.evidence,\n\t\tevidenceHash: input.evidenceHash,\n\t\tchangedFiles: input.changedFiles,\n\t\tartifactPaths: input.artifactPaths,\n\t\tlimit: Math.max(1, Number(input.maxRepeatedNoProgress || 2) || 2),\n\t\tignoreInfra: true\n\t}) : undefined;\n\tconst recoveryPlanFor = (\n\t\taction: string,\n\t\treason: string,\n\t\trecoveryFailureClass = failureClass || 'unknown',\n\t\tproductRepairFailure = false\n\t): ResolveIOAIManagerRecoveryPlan => buildResolveIOAIManagerRecoveryPlan({\n\t\taction,\n\t\treason,\n\t\tfailureClass: recoveryFailureClass,\n\t\tlane: 'build',\n\t\tstepType: activeStepType || 'build_repair',\n\t\tblocker: input.blocker || (diagnosisValidation.blockers || []).join(' | '),\n\t\tchangedFiles: cleanList(input.changedFiles, 40, 500),\n\t\tmaxSameFailureRepeats: Math.max(1, Number(input.maxRepeatedNoProgress || 2) || 2),\n\t\tproductRepairFailure\n\t});\n\tconst recoveryCheckpointFor = (\n\t\trecoveryPlan: ResolveIOAIManagerRecoveryPlan\n\t): ResolveIOAIManagerRecoveryCheckpoint => buildResolveIOAIManagerRecoveryCheckpoint({\n\t\tplan: recoveryPlan,\n\t\tcurrent: {\n\t\t\tlane: 'build',\n\t\t\tstepType: activeStepType || 'build_repair',\n\t\t\tfailureClass: failureClass || 'unknown',\n\t\t\tblocker: input.blocker || (diagnosisValidation.blockers || []).join(' | '),\n\t\t\tevidenceHash: input.evidenceHash,\n\t\t\tchangedFiles: cleanList(input.changedFiles, 40, 500),\n\t\t\tsummary: input.blocker\n\t\t}\n\t});\n\tconst recoveryFieldsFor = (\n\t\trecoveryPlan: ResolveIOAIManagerRecoveryPlan\n\t): Pick<ResolveIOSupportV5RepairGateDecision, 'recoveryPlan' | 'recoveryCheckpoint' | 'recoveryEvidenceProbe' | 'recoveryAction'> => {\n\t\tconst recoveryCheckpoint = recoveryCheckpointFor(recoveryPlan);\n\t\tconst recoveryEvidenceProbe = buildResolveIOAIManagerRecoveryEvidenceProbe({\n\t\t\tcheckpoint: recoveryCheckpoint,\n\t\t\tcurrent: {\n\t\t\t\tlane: 'build',\n\t\t\t\tstepType: activeStepType || 'build_repair',\n\t\t\t\tfailureClass: failureClass || 'unknown',\n\t\t\t\tblocker: input.blocker || (diagnosisValidation.blockers || []).join(' | '),\n\t\t\t\tevidenceHash: input.evidenceHash,\n\t\t\t\tchangedFiles: cleanList(input.changedFiles, 40, 500),\n\t\t\t\tsummary: input.blocker\n\t\t\t}\n\t\t});\n\t\tconst current = {\n\t\t\tlane: 'build',\n\t\t\tstepType: activeStepType || 'build_repair',\n\t\t\tfailureClass: failureClass || 'unknown',\n\t\t\tblocker: input.blocker || (diagnosisValidation.blockers || []).join(' | '),\n\t\t\tevidenceHash: input.evidenceHash,\n\t\t\tchangedFiles: cleanList(input.changedFiles, 40, 500),\n\t\t\tsummary: input.blocker\n\t\t};\n\t\treturn {\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 (repeatedFailure?.shouldStop) {\n\t\tconst recoveryPlan = recoveryPlanFor('park_repeated_failure', repeatedFailure.reason, repeatedFailure.failureClass, true);\n\t\treturn {\n\t\t\taction: 'park_repeated_failure',\n\t\t\tcanEditProductCode: false,\n\t\t\tblockers: [repeatedFailure.reason],\n\t\t\townerFiles,\n\t\t\tissueClass: diagnosisValidation.normalized?.issue_class,\n\t\t\tproofPlan: diagnosisValidation.normalized?.proof_plan,\n\t\t\townerScopedRepairContract,\n\t\t\toutsideOwnerFiles,\n\t\t\tpreflightGate,\n\t\t\trepeatedFailure,\n\t\t\tdiagnosisValidation,\n\t\t\t...recoveryFieldsFor(recoveryPlan)\n\t\t};\n\t}\n\tif (preflightGate.blocksProductRepair) {\n\t\tconst recoveryFailureClass = preflightGate.failureClass === 'compile' ? 'compile' : 'infra';\n\t\tconst recoveryPlan = recoveryPlanFor(\n\t\t\t'retry_infra',\n\t\t\t'support_v5_preflight_gate_blocks_product_repair',\n\t\t\trecoveryFailureClass,\n\t\t\tfalse\n\t\t);\n\t\treturn {\n\t\t\taction: 'infra_repair_only',\n\t\t\tcanEditProductCode: false,\n\t\t\tblockers: preflightGate.blockers.length\n\t\t\t\t? preflightGate.blockers\n\t\t\t\t: ['Deterministic support preflight must pass before product-code repair.'],\n\t\t\townerFiles,\n\t\t\tissueClass: diagnosisValidation.normalized?.issue_class,\n\t\t\tproofPlan: diagnosisValidation.normalized?.proof_plan,\n\t\t\townerScopedRepairContract,\n\t\t\toutsideOwnerFiles,\n\t\t\tpreflightGate,\n\t\t\trepeatedFailure,\n\t\t\tdiagnosisValidation,\n\t\t\t...recoveryFieldsFor(recoveryPlan)\n\t\t};\n\t}\n\tif (failureClass === 'infra' || failureClass === 'compile') {\n\t\tconst recoveryPlan = recoveryPlanFor('retry_infra', 'support_v5_infra_or_compile_repair_required', failureClass, false);\n\t\treturn {\n\t\t\taction: 'infra_repair_only',\n\t\t\tcanEditProductCode: false,\n\t\t\tblockers: ['Infra/compile/Puppeteer/startup failures must be repaired in the harness lane before product-code repair.'],\n\t\t\townerFiles,\n\t\t\tissueClass: diagnosisValidation.normalized?.issue_class,\n\t\t\tproofPlan: diagnosisValidation.normalized?.proof_plan,\n\t\t\townerScopedRepairContract,\n\t\t\toutsideOwnerFiles,\n\t\t\tpreflightGate,\n\t\t\trepeatedFailure,\n\t\t\tdiagnosisValidation,\n\t\t\t...recoveryFieldsFor(recoveryPlan)\n\t\t};\n\t}\n\tif (activeStepType === 'diagnosis_gate' || !diagnosisValidation.valid) {\n\t\tconst recoveryPlan = recoveryPlanFor('continue', 'support_v5_diagnosis_gate_required', 'diagnosis', false);\n\t\treturn {\n\t\t\taction: 'diagnose_only',\n\t\t\tcanEditProductCode: false,\n\t\t\tblockers: diagnosisValidation.blockers.length\n\t\t\t\t? diagnosisValidation.blockers\n\t\t\t\t: ['SupportDiagnosisGate is required before product-code repair.'],\n\t\t\townerFiles,\n\t\t\tissueClass: diagnosisValidation.normalized?.issue_class,\n\t\t\tproofPlan: diagnosisValidation.normalized?.proof_plan,\n\t\t\townerScopedRepairContract,\n\t\t\toutsideOwnerFiles,\n\t\t\tpreflightGate,\n\t\t\trepeatedFailure,\n\t\t\tdiagnosisValidation,\n\t\t\t...recoveryFieldsFor(recoveryPlan)\n\t\t};\n\t}\n\tif (outsideOwnerFiles.length) {\n\t\tconst recoveryPlan = recoveryPlanFor('continue', 'support_v5_out_of_scope_requires_diagnosis_revision', 'owner_scope', false);\n\t\treturn {\n\t\t\taction: 'reject_out_of_scope',\n\t\t\tcanEditProductCode: false,\n\t\t\tblockers: [`Changed files outside diagnosis owner_files; revise diagnosis with new evidence before broadening edits: ${outsideOwnerFiles.join(', ')}`],\n\t\t\townerFiles,\n\t\t\tissueClass: diagnosisValidation.normalized?.issue_class,\n\t\t\tproofPlan: diagnosisValidation.normalized?.proof_plan,\n\t\t\townerScopedRepairContract,\n\t\t\toutsideOwnerFiles,\n\t\t\tpreflightGate,\n\t\t\trepeatedFailure,\n\t\t\tdiagnosisValidation,\n\t\t\t...recoveryFieldsFor(recoveryPlan)\n\t\t};\n\t}\n\tconst recoveryPlan = recoveryPlanFor('continue', 'support_v5_product_repair_allowed_after_diagnosis', failureClass || 'product_code', true);\n\treturn {\n\t\taction: 'allow_product_repair',\n\t\tcanEditProductCode: true,\n\t\tblockers: [],\n\t\townerFiles,\n\t\tissueClass: diagnosisValidation.normalized?.issue_class,\n\t\tproofPlan: diagnosisValidation.normalized?.proof_plan,\n\t\townerScopedRepairContract,\n\t\toutsideOwnerFiles,\n\t\tpreflightGate,\n\t\trepeatedFailure,\n\t\tdiagnosisValidation,\n\t\t...recoveryFieldsFor(recoveryPlan)\n\t};\n}\n\nexport function applyResolveIOSupportDiagnosisGateToMicrotasks(\n\tbundle: ResolveIOSupportV5StateBundle,\n\tdiagnosisGate: any\n): ResolveIOSupportV5StateBundle {\n\tconst validation = validateResolveIOSupportDiagnosisGate(diagnosisGate);\n\tconst gate = validation.normalized;\n\tif (!gate) {\n\t\treturn bundle;\n\t}\n\tconst now = isoNow();\n\tconst ownerFiles = gate.owner_files;\n\tconst probes = buildResolveIOSupportIssueClassProbes(gate);\n\tconst probePlan = buildResolveIOSupportIssueClassProbePlan(gate, now);\n\tconst probePlanValidation = validateResolveIOSupportIssueClassProbePlan(probePlan, gate, now);\n\tconst proofContract = gate.proof_plan.business_proof_contract;\n\tconst activeProbe = probePlanValidation.activeProbe || probePlan.activeProbe || probes[0];\n\tconst businessProof = proofContract?.expected_business_state_change || gate.proof_plan.business_assertion;\n\tconst businessAssertion = activeProbe?.state_transition.assertion\n\t\t|| proofContract?.data_or_dom_assertion\n\t\t|| gate.proof_plan.data_assertion\n\t\t|| gate.proof_plan.after;\n\tconst repairObjective = cleanText([\n\t\t`Patch the accepted root cause in ${ownerFiles.join(', ')}.`,\n\t\t`Hypothesis: ${gate.accepted_hypothesis.statement}`,\n\t\t`Business proof: ${gate.proof_plan.business_assertion}`\n\t].filter(Boolean).join(' '), 520);\n\tconst repairSelfGate = [\n\t\t`Modify only the diagnosed owner files unless you revise the diagnosis with new evidence. Owner files: ${ownerFiles.join(', ')}.`,\n\t\t`Implement the falsifiable fix for: ${gate.accepted_hypothesis.statement}`,\n\t\t'Do not re-run read-only reproduction as the repair; make the smallest product-code change and report targeted proof.'\n\t].join(' ');\n\tconst qaObjective = cleanText([\n\t\t'QA proof for diagnosis business assertion:',\n\t\tproofContract?.action_under_test || gate.proof_plan.action,\n\t\t'=>',\n\t\tbusinessAssertion || businessProof\n\t].filter(Boolean).join(' '), 420);\n\tconst looksLikeReadOnlyDiagnosisTask = (task: ResolveIOSupportV5Microtask): boolean => {\n\t\tconst text = `${task.objective || ''}\\n${task.selfGate || ''}\\n${task.blocker || ''}`;\n\t\tif (!/\\b(replicat|reproduc|diagnos|analy[sz]|investigat|inspect|review|classif|read[-\\s]*only|attached\\s+template|upload\\s+issue)\\b/i.test(text)) {\n\t\t\treturn false;\n\t\t}\n\t\treturn !/\\b(patch|repair|fix|implement|correct|update|change product-code|product-code change)\\b/i.test(task.objective || '');\n\t};\n\tconst diagnosisMicrotaskId = (bundle.supportV5MicrotaskLedger || [])\n\t\t.find((task) => task.type === 'diagnosis_gate')?.microtaskId\n\t\t|| stableIdFromText('diagnosis', `Root-cause-first diagnosis gate for: ${cleanText(bundle.supportV5ScopeDigest || gate.issue_case.customer_complaint, 360) || 'support ticket'}`);\n\tconst ledger = (bundle.supportV5MicrotaskLedger || []).map((task) => {\n\t\tif (task.type === 'diagnosis_gate') {\n\t\t\treturn {\n\t\t\t\t...task,\n\t\t\t\tstatus: validation.valid ? 'pass' as ResolveIOSupportV5MicrotaskStatus : 'needs_repair' as ResolveIOSupportV5MicrotaskStatus,\n\t\t\t\tblocker: validation.valid ? '' : validation.blockers.join(' | '),\n\t\t\t\tupdatedAt: now\n\t\t\t};\n\t\t}\n\t\tif (task.lane === 'build' && /repair|product_repair|build_repair/i.test(String(task.type || ''))) {\n\t\t\tconst staleDiagnosisTask = validation.valid && looksLikeReadOnlyDiagnosisTask(task);\n\t\t\treturn {\n\t\t\t\t...task,\n\t\t\t\tstatus: staleDiagnosisTask ? 'pending' as ResolveIOSupportV5MicrotaskStatus : task.status,\n\t\t\t\tobjective: staleDiagnosisTask ? repairObjective : task.objective,\n\t\t\t\ttargetFiles: ownerFiles,\n\t\t\t\tcontextRefs: Array.from(new Set([...(task.contextRefs || []), 'supportV5DiagnosisGate', 'owner_files', 'proof_plan', 'accepted_hypothesis'])),\n\t\t\t\tselfGate: repairSelfGate,\n\t\t\t\tacceptanceProof: businessProof,\n\t\t\t\tdependsOn: Array.from(new Set([...(task.dependsOn || []), diagnosisMicrotaskId])),\n\t\t\t\tattempts: staleDiagnosisTask ? 0 : task.attempts,\n\t\t\t\tblocker: staleDiagnosisTask ? '' : task.blocker,\n\t\t\t\tupdatedAt: now\n\t\t\t};\n\t\t}\n\t\tif (task.lane === 'qa' && task.type === 'qa_row') {\n\t\t\tconst staleQaTask = validation.valid && looksLikeReadOnlyDiagnosisTask(task);\n\t\t\treturn {\n\t\t\t\t...task,\n\t\t\t\tobjective: staleQaTask ? qaObjective : task.objective,\n\t\t\t\tcontextRefs: Array.from(new Set([...(task.contextRefs || []), 'supportV5DiagnosisGate', 'supportV5IssueClassProbePlan', 'proof_plan'])),\n\t\t\t\tselfGate: activeProbe?.action || task.selfGate,\n\t\t\t\tacceptanceProof: activeProbe?.expected_business_proof || businessProof || task.acceptanceProof,\n\t\t\t\ttargetFiles: ownerFiles,\n\t\t\t\tattempts: staleQaTask ? 0 : task.attempts,\n\t\t\t\tblocker: staleQaTask ? '' : task.blocker,\n\t\t\t\tupdatedAt: now\n\t\t\t};\n\t\t}\n\t\treturn task;\n\t});\n\tconst nextActive = selectResolveIOSupportV5ActiveMicrotask(ledger, bundle.supportV5ActiveMicrotaskId);\n\treturn {\n\t\t...bundle,\n\t\tsupportV5DiagnosisGate: gate,\n\t\tsupportV5IssueClassProbePlan: probePlanValidation.normalized || probePlan,\n\t\tsupportV5MicrotaskLedger: ledger,\n\t\tsupportV5ActiveMicrotaskId: nextActive?.microtaskId,\n\t\tsupportV5LaneMemory: {\n\t\t\t...bundle.supportV5LaneMemory,\n\t\t\tbuild: {\n\t\t\t\t...bundle.supportV5LaneMemory.build,\n\t\t\t\tchangedFiles: ownerFiles,\n\t\t\t\tscopeSummary: [\n\t\t\t\t\tbundle.supportV5LaneMemory.build.scopeSummary,\n\t\t\t\t\t`Diagnosis issue class: ${gate.issue_class}`,\n\t\t\t\t\t`Accepted hypothesis: ${gate.accepted_hypothesis.statement}`,\n\t\t\t\t\t`Owner files: ${ownerFiles.join(', ')}`\n\t\t\t\t].filter(Boolean).join(' | '),\n\t\t\t\tupdatedAt: now\n\t\t\t},\n\t\t\tqa: {\n\t\t\t\t...bundle.supportV5LaneMemory.qa,\n\t\t\t\tactiveQaRow: {\n\t\t\t\t\tworkflow: proofContract?.action_under_test || activeProbe?.state_transition.action || gate.proof_plan.action,\n\t\t\t\t\troute: gate.proof_plan.route || gate.issue_case.route_module,\n\t\t\t\t\tassertion: businessAssertion,\n\t\t\t\t\tstatus: 'pending'\n\t\t\t\t},\n\t\t\t\tupdatedAt: now\n\t\t\t}\n\t\t}\n\t};\n}\n\nfunction stableIdFromText(prefix: string, value: string): string {\n\tconst text = cleanText(value, 2000).toLowerCase();\n\tlet hash = 0;\n\tfor (let index = 0; index < text.length; index += 1) {\n\t\thash = ((hash << 5) - hash + text.charCodeAt(index)) | 0;\n\t}\n\treturn `${prefix}-${Math.abs(hash).toString(36) || '0'}`;\n}\n\nfunction estimateTextTokens(value: string): number {\n\tconst text = String(value || '');\n\tif (!text) {\n\t\treturn 0;\n\t}\n\treturn Math.max(1, Math.ceil(text.length / 4));\n}\n\nexport function fingerprintResolveIOSupportV5Blocker(value: any): string {\n\tconst text = 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\tlet hash = 0;\n\tfor (let index = 0; index < text.length; index += 1) {\n\t\thash = ((hash << 5) - hash + text.charCodeAt(index)) | 0;\n\t}\n\treturn `v5-${Math.abs(hash).toString(36)}`;\n}\n\nexport function buildResolveIOSupportV5Budget(existing?: Partial<ResolveIOSupportV5Budget>): ResolveIOSupportV5Budget {\n\treturn {\n\t\tmaxPromptTokensPerNonInitialStep: Number(existing?.maxPromptTokensPerNonInitialStep || 1800),\n\t\tmaxLoopsPerTicket: Number(existing?.maxLoopsPerTicket || 24),\n\t\tmaxRepeatedNoProgress: Number(existing?.maxRepeatedNoProgress || 2),\n\t\tmaxRuntimeMinutesPerLoop: Number(existing?.maxRuntimeMinutesPerLoop || 15),\n\t\ttotalPromptTokenEstimate: Number(existing?.totalPromptTokenEstimate || 0),\n\t\ttotalRuntimeMs: Number(existing?.totalRuntimeMs || 0),\n\t\tloopCount: Number(existing?.loopCount || 0)\n\t};\n}\n\nexport function buildResolveIOSupportV5PromptBudget(existing?: Partial<ResolveIOSupportV5PromptBudget>): ResolveIOSupportV5PromptBudget {\n\treturn {\n\t\tinitialPlannerCap: Number(existing?.initialPlannerCap || 6000),\n\t\tbuildMicrotaskCap: Number(existing?.buildMicrotaskCap || 1800),\n\t\tbuildMicrotaskHardCap: Number(existing?.buildMicrotaskHardCap || 2500),\n\t\tqaMicrotaskCap: Number(existing?.qaMicrotaskCap || 1500),\n\t\tqaMicrotaskHardCap: Number(existing?.qaMicrotaskHardCap || 2200),\n\t\trepairMicrotaskCap: Number(existing?.repairMicrotaskCap || 1200),\n\t\trepairMicrotaskHardCap: Number(existing?.repairMicrotaskHardCap || 1800)\n\t};\n}\n\nexport function buildResolveIOSupportV5ScopeDigest(input: {\n\tgoal?: string;\n\tapprovedScope?: string | string[];\n\tprBranch?: string;\n\tmaxTokens?: number;\n}): string {\n\tconst scope = Array.isArray(input.approvedScope)\n\t\t? cleanList(input.approvedScope, 30, 220).join(' | ')\n\t\t: cleanText(input.approvedScope, 4000);\n\tconst raw = [\n\t\tinput.goal ? `Goal: ${cleanText(input.goal, 300)}` : '',\n\t\tscope ? `Approved scope: ${scope}` : '',\n\t\tinput.prBranch ? `PR branch: ${cleanText(input.prBranch, 160)}` : ''\n\t].filter(Boolean).join('\\n');\n\tconst maxChars = Math.max(400, Math.floor(Number(input.maxTokens || 1000) * 4));\n\treturn raw.slice(0, maxChars);\n}\n\nexport function buildResolveIOSupportV5MicrotaskLedger(input: {\n\tscopeDigest: string;\n\trequirements?: string[];\n\tbuildThreadKey: string;\n\tqaThreadKey: string;\n\tnow?: Date | string;\n\texisting?: ResolveIOSupportV5Microtask[];\n}): ResolveIOSupportV5Microtask[] {\n\tconst existing = Array.isArray(input.existing) ? input.existing : [];\n\tconst completedByObjective = new Map<string, ResolveIOSupportV5Microtask>();\n\tfor (const task of existing) {\n\t\tif (task && (task.status === 'pass' || task.status === 'parked')) {\n\t\t\tcompletedByObjective.set(cleanText(task.objective, 500).toLowerCase(), task);\n\t\t}\n\t}\n\tconst now = isoNow(input.now);\n\tconst requirements = cleanList(input.requirements, 30, 240);\n\tconst sourceRequirements = requirements.length\n\t\t? requirements\n\t\t: cleanText(input.scopeDigest, 1000).split(/\\s+\\|\\s+|\\r?\\n/g).map((line) => line.trim()).filter(Boolean).slice(0, 12);\n\tconst ledger: ResolveIOSupportV5Microtask[] = [];\n\tconst diagnosisObjective = `Root-cause-first diagnosis gate for: ${cleanText(input.scopeDigest, 360) || 'support ticket'}`;\n\tconst diagnosisId = stableIdFromText('diagnosis', diagnosisObjective);\n\tconst existingDiagnosis = existing.find((task) => task?.type === 'diagnosis_gate' || task?.microtaskId === diagnosisId);\n\tledger.push(existingDiagnosis && (existingDiagnosis.status === 'pass' || existingDiagnosis.status === 'parked') ? existingDiagnosis : {\n\t\tmicrotaskId: diagnosisId,\n\t\tlane: 'build',\n\t\ttype: 'diagnosis_gate',\n\t\tstatus: existingDiagnosis?.status || 'pending',\n\t\tobjective: diagnosisObjective,\n\t\ttargetFiles: [],\n\t\tcontextRefs: ['scope_digest', 'support_context', 'similar_tickets', 'similar_commits'],\n\t\tselfGate: 'Read-only diagnosis only: reproduce or explicitly classify the issue, accept one falsifiable root-cause hypothesis, reject alternatives, identify the failing path, cap owner_files, and define before/action/after business proof.',\n\t\tacceptanceProof: 'Valid ResolveIOSupportDiagnosisGate JSON with issue_case, issue_class, accepted_hypothesis, rejected_alternatives, failing_path, owner_files, proof_plan, evidence, and status=passed.',\n\t\tthreadKey: input.buildThreadKey,\n\t\tpromptTokenEstimate: existingDiagnosis?.promptTokenEstimate,\n\t\tattempts: existingDiagnosis?.attempts || 0,\n\t\tdependsOn: [],\n\t\tparentScopeId: stableIdFromText('scope', diagnosisObjective),\n\t\tblocker: existingDiagnosis?.blocker,\n\t\tcreatedAt: existingDiagnosis?.createdAt || now,\n\t\tupdatedAt: existingDiagnosis?.updatedAt || now\n\t});\n\tsourceRequirements.forEach((requirement, index) => {\n\t\tconst objective = cleanText(requirement, 240);\n\t\tif (!objective) {\n\t\t\treturn;\n\t\t}\n\t\tconst existingCompleted = completedByObjective.get(objective.toLowerCase());\n\t\tconst buildId = stableIdFromText(`build-${index + 1}`, objective);\n\t\tconst qaId = stableIdFromText(`qa-${index + 1}`, objective);\n\t\tledger.push(existingCompleted && existingCompleted.lane === 'build' ? existingCompleted : {\n\t\t\tmicrotaskId: buildId,\n\t\t\tlane: 'build',\n\t\t\ttype: 'build_repair',\n\t\t\tstatus: 'pending',\n\t\t\tobjective,\n\t\t\ttargetFiles: [],\n\t\t\tcontextRefs: ['scope_digest'],\n\t\t\tselfGate: 'Run the smallest compile/type/unit check that proves this one behavior.',\n\t\t\tacceptanceProof: 'Concrete code/data proof for this behavior, with changed files listed.',\n\t\t\tthreadKey: input.buildThreadKey,\n\t\t\tattempts: 0,\n\t\t\tdependsOn: [diagnosisId],\n\t\t\tparentScopeId: stableIdFromText('scope', objective),\n\t\t\tcreatedAt: now,\n\t\t\tupdatedAt: now\n\t\t});\n\t\tledger.push({\n\t\t\tmicrotaskId: qaId,\n\t\t\tlane: 'qa',\n\t\t\ttype: 'qa_row',\n\t\t\tstatus: 'pending',\n\t\t\tobjective: `QA proof for: ${objective}`,\n\t\t\ttargetFiles: [],\n\t\t\tcontextRefs: ['scope_digest', buildId],\n\t\t\tselfGate: 'Drive this one customer-facing workflow row in browser/localhost and capture one captioned proof artifact.',\n\t\t\tacceptanceProof: 'QA matrix row pass with route/data assertion, screenshot/caption artifact, and persisted before/after row/count/value proof for data-changing workflows.',\n\t\t\tthreadKey: input.qaThreadKey,\n\t\t\tattempts: 0,\n\t\t\tdependsOn: [diagnosisId, buildId],\n\t\t\tparentScopeId: stableIdFromText('scope', objective),\n\t\t\tcreatedAt: now,\n\t\t\tupdatedAt: now\n\t\t});\n\t});\n\treturn ledger.length ? ledger : existing.slice(-80);\n}\n\nexport function selectResolveIOSupportV5ActiveMicrotask(\n\tledger: ResolveIOSupportV5Microtask[] = [],\n\tpreferredId?: string\n): ResolveIOSupportV5Microtask | undefined {\n\tconst byPreferred = preferredId ? ledger.find((task) => task.microtaskId === preferredId && !['pass', 'parked'].includes(task.status)) : undefined;\n\tif (byPreferred) {\n\t\treturn byPreferred;\n\t}\n\treturn ledger.find((task) => task.status === 'needs_repair')\n\t\t|| ledger.find((task) => task.status === 'in_progress')\n\t\t|| ledger.find((task) => task.type === 'diagnosis_gate' && task.status === 'pending')\n\t\t|| ledger.find((task) => task.lane === 'build' && /repair/i.test(String(task.type || '')) && task.status === 'pending')\n\t\t|| ledger.find((task) => task.status === 'pending')\n\t\t|| ledger.find((task) => task.status === 'blocked');\n}\n\nexport function initializeResolveIOSupportV5State(input: ResolveIOSupportV5InitializeInput): ResolveIOSupportV5StateBundle {\n\tconst now = isoNow(input.now);\n\tconst existing = input.existing || {};\n\tconst existingSupervisor = existing.supportV5SupervisorState;\n\tconst existingLaneMemory = existing.supportV5LaneMemory || {} as ResolveIOSupportV5StateBundle['supportV5LaneMemory'];\n\tconst scope = cleanList(input.approvedScopeRequirements, 24, 240).join(' | ')\n\t\t|| cleanText(input.description, 1000)\n\t\t|| cleanText(input.title, 300);\n\tconst ticketLabel = cleanText(input.ticketNumber || input.ticketId || input.jobId, 120);\n\tconst buildThreadKey = cleanText(input.buildThreadKey || existingLaneMemory.build?.threadKey || `support:${input.ticketId || input.jobId}:job:${input.jobId}:build`, 240);\n\tconst qaThreadKey = cleanText(input.qaThreadKey || existingLaneMemory.qa?.threadKey || `support:${input.ticketId || input.jobId}:job:${input.jobId}:qa`, 240);\n\tconst budget = buildResolveIOSupportV5Budget(existing.supportV5Budget);\n\tconst existingDiagnosisGate = normalizeResolveIOSupportDiagnosisGate((existing as any).supportV5DiagnosisGate);\n\tconst existingPreflightGate = evaluateResolveIOSupportPreflightGate(\n\t\t(existing as any).supportV5PreflightGate || (existing as any).support_v5_preflight_gate,\n\t\tnow\n\t);\n\tconst diagnosisValidation = validateResolveIOSupportDiagnosisGate(existingDiagnosisGate);\n\tconst existingProbePlanValidation = validateResolveIOSupportIssueClassProbePlan(\n\t\t(existing as any).supportV5IssueClassProbePlan || (existing as any).support_v5_issue_class_probe_plan,\n\t\tdiagnosisValidation.normalized || existingDiagnosisGate,\n\t\tnow\n\t);\n\tconst scopeDigest = cleanText((existing as any).supportV5ScopeDigest, 4000) || buildResolveIOSupportV5ScopeDigest({\n\t\tgoal: existingSupervisor?.currentGoal || `Resolve support ticket ${ticketLabel}`,\n\t\tapprovedScope: scope,\n\t\tprBranch: input.prBranch || existingSupervisor?.prBranch || ''\n\t});\n\tconst ledger = buildResolveIOSupportV5MicrotaskLedger({\n\t\tscopeDigest,\n\t\trequirements: cleanList(input.approvedScopeRequirements, 30, 240),\n\t\tbuildThreadKey,\n\t\tqaThreadKey,\n\t\tnow,\n\t\texisting: (existing as any).supportV5MicrotaskLedger\n\t});\n\tconst activeMicrotask = selectResolveIOSupportV5ActiveMicrotask(ledger, (existing as any).supportV5ActiveMicrotaskId);\n\tconst initialized: ResolveIOSupportV5StateBundle = {\n\t\tsupportWorkflowVersion: 'v5',\n\t\tsupportV5SupervisorState: {\n\t\t\tversion: 'v5',\n\t\t\tstatus: existingSupervisor?.status || 'active',\n\t\t\tcurrentGoal: existingSupervisor?.currentGoal || `Resolve support ticket ${ticketLabel}`,\n\t\t\tapprovedScope: existingSupervisor?.approvedScope || scope,\n\t\t\tprBranch: cleanText(input.prBranch || existingSupervisor?.prBranch || '', 240),\n\t\t\tactiveStep: existingSupervisor?.activeStep || (diagnosisValidation.valid ? 'compile_check' : 'diagnosis_gate'),\n\t\t\tactiveBlocker: existingSupervisor?.activeBlocker || (diagnosisValidation.valid ? '' : 'SupportDiagnosisGate required before product-code repair.'),\n\t\t\tlastGoodCheckpoint: existingSupervisor?.lastGoodCheckpoint || 'v5_initialized',\n\t\t\tcurrentQaRow: existingSupervisor?.currentQaRow,\n\t\t\tprocessLease: input.processLease || existingSupervisor?.processLease,\n\t\t\tartifactLinks: cleanList(existingSupervisor?.artifactLinks, 40, 500),\n\t\t\tnoEmailUnlessApproved: true,\n\t\t\tupdatedAt: now\n\t\t},\n\t\tsupportV5DiagnosisGate: diagnosisValidation.valid ? diagnosisValidation.normalized : existingDiagnosisGate,\n\t\tsupportV5DiagnosisEvidencePack: (existing as any).supportV5DiagnosisEvidencePack || (existing as any).support_v5_diagnosis_evidence_pack,\n\t\tsupportV5IssueClassProbePlan: existingProbePlanValidation.normalized,\n\t\tsupportV5PreflightGate: existingPreflightGate.status === 'unknown' && existingPreflightGate.checks.length === 0\n\t\t\t? undefined\n\t\t\t: existingPreflightGate,\n\t\tsupportV5LaneMemory: {\n\t\t\tbuild: {\n\t\t\t\tlane: 'build',\n\t\t\t\tmodel: existingLaneMemory.build?.model || 'gpt-5.3-codex',\n\t\t\t\tthreadKey: buildThreadKey,\n\t\t\t\tscopeSummary: existingLaneMemory.build?.scopeSummary || scope,\n\t\t\t\tactiveBlocker: existingLaneMemory.build?.activeBlocker || '',\n\t\t\t\tactiveQaRow: existingLaneMemory.build?.activeQaRow,\n\t\t\t\tchangedFiles: cleanList(existingLaneMemory.build?.changedFiles, 80, 500),\n\t\t\t\tartifactPaths: cleanList(existingLaneMemory.build?.artifactPaths, 80, 500),\n\t\t\t\tlatestPromptTokenEstimate: Number(existingLaneMemory.build?.latestPromptTokenEstimate || 0) || undefined,\n\t\t\t\tupdatedAt: existingLaneMemory.build?.updatedAt || now\n\t\t\t},\n\t\t\tqa: {\n\t\t\t\tlane: 'qa',\n\t\t\t\tmodel: existingLaneMemory.qa?.model || 'gpt-5.4-mini',\n\t\t\t\tthreadKey: qaThreadKey,\n\t\t\t\tscopeSummary: existingLaneMemory.qa?.scopeSummary || scope,\n\t\t\t\tactiveBlocker: existingLaneMemory.qa?.activeBlocker || '',\n\t\t\t\tactiveQaRow: existingLaneMemory.qa?.activeQaRow,\n\t\t\t\tchangedFiles: cleanList(existingLaneMemory.qa?.changedFiles, 80, 500),\n\t\t\t\tartifactPaths: cleanList(existingLaneMemory.qa?.artifactPaths, 80, 500),\n\t\t\t\tlatestPromptTokenEstimate: Number(existingLaneMemory.qa?.latestPromptTokenEstimate || 0) || undefined,\n\t\t\t\tupdatedAt: existingLaneMemory.qa?.updatedAt || now\n\t\t\t}\n\t\t},\n\t\tsupportV5StepHistory: Array.isArray(existing.supportV5StepHistory)\n\t\t\t? existing.supportV5StepHistory.slice(-80)\n\t\t\t: [],\n\t\tsupportV5Budget: budget,\n\t\tsupportV5RunnerIncidents: Array.isArray(existing.supportV5RunnerIncidents)\n\t\t\t? existing.supportV5RunnerIncidents.slice(-80)\n\t\t\t: [],\n\t\tsupportV5MicrotaskLedger: ledger,\n\t\tsupportV5ActiveMicrotaskId: diagnosisValidation.valid\n\t\t\t? activeMicrotask?.microtaskId\n\t\t\t: ledger.find((task) => task.type === 'diagnosis_gate' && !['pass', 'parked'].includes(task.status))?.microtaskId || activeMicrotask?.microtaskId,\n\t\tsupportV5ScopeDigest: scopeDigest,\n\t\tsupportV5MicrotaskUsageHistory: Array.isArray((existing as any).supportV5MicrotaskUsageHistory)\n\t\t\t? (existing as any).supportV5MicrotaskUsageHistory.slice(-200)\n\t\t\t: [],\n\t\tsupportV5FailureFingerprints: Array.isArray((existing as any).supportV5FailureFingerprints)\n\t\t\t? (existing as any).supportV5FailureFingerprints.slice(-200)\n\t\t\t: [],\n\t\tsupportV5RecoveryPlan: (existing as any).supportV5RecoveryPlan,\n\t\tsupportV5RecoveryCheckpoint: (existing as any).supportV5RecoveryCheckpoint,\n\t\tsupportV5RecoveryEvidenceProbe: (existing as any).supportV5RecoveryEvidenceProbe,\n\t\tsupportV5RecoveryAction: (existing as any).supportV5RecoveryAction,\n\t\tsupportV5RecoveryDispatchHistory: Array.isArray((existing as any).supportV5RecoveryDispatchHistory)\n\t\t\t? (existing as any).supportV5RecoveryDispatchHistory.slice(-50)\n\t\t\t: [],\n\t\tsupportV5RecoveryDirective: (existing as any).supportV5RecoveryDirective\n\t};\n\treturn diagnosisValidation.valid && diagnosisValidation.normalized\n\t\t? applyResolveIOSupportDiagnosisGateToMicrotasks(initialized, diagnosisValidation.normalized)\n\t\t: initialized;\n}\n\nexport function recordResolveIOSupportV5Step(\n\tbundle: ResolveIOSupportV5StateBundle,\n\tstep: ResolveIOSupportV5StepInput\n): ResolveIOSupportV5StateBundle {\n\tconst now = isoNow(step.now);\n\tconst promptTokens = Math.max(0, Number(step.promptTokenEstimate || 0) || 0);\n\tconst runtimeMs = Math.max(0, Number(step.runtimeMs || 0) || 0);\n\tconst microtaskId = cleanText(step.microtaskId || bundle.supportV5ActiveMicrotaskId, 160);\n\tconst normalizedDiagnosisGate = step.diagnosisGate\n\t\t? normalizeResolveIOSupportDiagnosisGate(step.diagnosisGate, now)\n\t\t: undefined;\n\tconst normalizedPreflightGate = step.preflightGate\n\t\t? evaluateResolveIOSupportPreflightGate(step.preflightGate, now)\n\t\t: undefined;\n\tconst blockerFingerprint = step.blocker || step.summary\n\t\t? fingerprintResolveIOSupportV5Blocker(step.blocker || step.summary || '')\n\t\t: undefined;\n\tconst evidenceHash = cleanText(step.evidenceHash, 80)\n\t\t|| (step.artifactPaths?.length || step.blocker || step.summary\n\t\t\t? hashResolveIOSupportV5Evidence(step.artifactPaths?.length ? step.artifactPaths : `${step.blocker || ''}\\n${step.summary || ''}`)\n\t\t\t: hashResolveIOAIManagerEvidence({\n\t\t\t\tfailureClass: step.failureClass,\n\t\t\t\tblocker: step.blocker,\n\t\t\t\tsummary: step.summary,\n\t\t\t\tchangedFiles: step.changedFiles,\n\t\t\t\tartifactPaths: step.artifactPaths\n\t\t\t}));\n\tconst record: ResolveIOSupportV5StepRecord = {\n\t\t...(microtaskId ? { microtaskId } : {}),\n\t\tstepType: step.stepType,\n\t\toutcome: step.outcome,\n\t\tlane: step.lane,\n\t\tmodel: cleanText(step.model, 80),\n\t\tthreadKey: cleanText(step.threadKey, 240),\n\t\tpromptTokenEstimate: promptTokens || undefined,\n\t\truntimeMs: runtimeMs || undefined,\n\t\tsummary: cleanText(step.summary || step.blocker || step.outcome, 1200),\n\t\tblocker: cleanText(step.blocker, 1200),\n\t\tchangedFiles: cleanList(step.changedFiles, 80, 500),\n\t\tartifactPaths: cleanList(step.artifactPaths, 80, 500),\n\t\tdiagnosisGate: normalizedDiagnosisGate,\n\t\tpreflightGate: normalizedPreflightGate,\n\t\tfailureClass: cleanText(step.failureClass, 80) || undefined,\n\t\tblockerFingerprint,\n\t\tevidenceHash,\n\t\trecordedAt: now\n\t};\n\tconst diagnosisGate = normalizedDiagnosisGate || bundle.supportV5DiagnosisGate;\n\tconst preflightGate = normalizedPreflightGate || bundle.supportV5PreflightGate;\n\tconst laneMemory = { ...bundle.supportV5LaneMemory };\n\tif (step.lane === 'build' || step.lane === 'qa') {\n\t\tconst previous = laneMemory[step.lane];\n\t\tlaneMemory[step.lane] = {\n\t\t\t...previous,\n\t\t\tactiveBlocker: record.blocker || previous.activeBlocker || '',\n\t\t\tactiveQaRow: step.activeQaRow || previous.activeQaRow,\n\t\t\tchangedFiles: record.changedFiles?.length ? record.changedFiles : previous.changedFiles,\n\t\t\tartifactPaths: record.artifactPaths?.length ? record.artifactPaths : previous.artifactPaths,\n\t\t\tlatestPromptTokenEstimate: promptTokens || previous.latestPromptTokenEstimate,\n\t\t\tupdatedAt: now\n\t\t};\n\t}\n\tconst supervisor = {\n\t\t...bundle.supportV5SupervisorState,\n\t\tstatus: step.outcome === 'ready_for_merge' ? 'complete' as const : (step.outcome === 'park_manual' || step.outcome === 'budget_stop' ? 'parked' as const : 'active' as const),\n\t\tactiveStep: step.stepType,\n\t\tactiveBlocker: record.blocker || '',\n\t\tcurrentQaRow: step.activeQaRow || bundle.supportV5SupervisorState.currentQaRow,\n\t\tlastGoodCheckpoint: step.outcome === 'pass' || step.outcome === 'ready_for_merge'\n\t\t\t? step.stepType\n\t\t\t: bundle.supportV5SupervisorState.lastGoodCheckpoint,\n\t\tartifactLinks: Array.from(new Set([\n\t\t\t...bundle.supportV5SupervisorState.artifactLinks,\n\t\t\t...(record.artifactPaths || [])\n\t\t])).slice(-80),\n\t\tupdatedAt: now\n\t};\n\tconst ledger = (bundle.supportV5MicrotaskLedger || []).map((task) => {\n\t\tif (task.microtaskId !== bundle.supportV5ActiveMicrotaskId) {\n\t\t\treturn task;\n\t\t}\n\t\tconst status: ResolveIOSupportV5MicrotaskStatus = step.outcome === 'pass' || step.outcome === 'ready_for_merge'\n\t\t\t? 'pass'\n\t\t\t: step.outcome === 'park_manual' || step.outcome === 'budget_stop'\n\t\t\t\t? 'parked'\n\t\t\t\t: step.outcome === 'needs_repair' || step.outcome === 'retry_same_step'\n\t\t\t\t\t? 'needs_repair'\n\t\t\t\t\t: 'in_progress';\n\t\treturn {\n\t\t\t...task,\n\t\t\tstatus,\n\t\t\tblocker: record.blocker || task.blocker,\n\t\t\tpromptTokenEstimate: promptTokens || task.promptTokenEstimate,\n\t\t\tattempts: task.attempts + (step.outcome === 'pass' || step.outcome === 'ready_for_merge' ? 0 : 1),\n\t\t\tupdatedAt: now\n\t\t};\n\t});\n\tconst failureFingerprint = record.failureClass && record.blockerFingerprint && record.evidenceHash\n\t\t? {\n\t\t\tstepType: record.stepType,\n\t\t\tfailureClass: cleanText(record.failureClass, 80),\n\t\t\tblockerFingerprint: record.blockerFingerprint,\n\t\t\tevidenceHash: record.evidenceHash,\n\t\t\trecordedAt: now\n\t\t}\n\t\t: undefined;\n\tconst managerDecision = decideResolveIOAIManagerPolicy({\n\t\thistory: [...bundle.supportV5StepHistory, record],\n\t\tcurrent: record,\n\t\tmaxSameFailureRepeats: buildResolveIOSupportV5Budget(bundle.supportV5Budget).maxRepeatedNoProgress,\n\t\tmaxPingPongTransitions: 3,\n\t\tinfraFailureClasses: ['infra', 'compile']\n\t});\n\tconst previousRecord = bundle.supportV5StepHistory[bundle.supportV5StepHistory.length - 1];\n\tconst nextLoopCount = managerDecision.loopBudgetShouldReset\n\t\t|| previousRecord?.failureClass !== record.failureClass\n\t\t|| previousRecord?.blockerFingerprint !== record.blockerFingerprint\n\t\t|| previousRecord?.evidenceHash !== record.evidenceHash\n\t\t? 1\n\t\t: bundle.supportV5Budget.loopCount + 1;\n\tconst nextMicrotask = selectResolveIOSupportV5ActiveMicrotask(ledger, bundle.supportV5ActiveMicrotaskId);\n\tconst nextBundle: ResolveIOSupportV5StateBundle = {\n\t\t...bundle,\n\t\tsupportV5SupervisorState: supervisor,\n\t\tsupportV5DiagnosisGate: diagnosisGate,\n\t\tsupportV5PreflightGate: preflightGate,\n\t\tsupportV5LaneMemory: laneMemory,\n\t\tsupportV5StepHistory: [...bundle.supportV5StepHistory, record].slice(-100),\n\t\tsupportV5Budget: {\n\t\t\t...bundle.supportV5Budget,\n\t\t\ttotalPromptTokenEstimate: bundle.supportV5Budget.totalPromptTokenEstimate + promptTokens,\n\t\t\ttotalRuntimeMs: bundle.supportV5Budget.totalRuntimeMs + runtimeMs,\n\t\t\tloopCount: nextLoopCount\n\t\t},\n\t\tsupportV5MicrotaskLedger: ledger,\n\t\tsupportV5ActiveMicrotaskId: nextMicrotask?.microtaskId,\n\t\tsupportV5MicrotaskUsageHistory: bundle.supportV5MicrotaskUsageHistory || [],\n\t\tsupportV5FailureFingerprints: failureFingerprint\n\t\t\t? [...(bundle.supportV5FailureFingerprints || []), failureFingerprint].slice(-200)\n\t\t\t: (bundle.supportV5FailureFingerprints || []),\n\t\tsupportV5RecoveryPlan: managerDecision.recoveryPlan,\n\t\tsupportV5RecoveryCheckpoint: managerDecision.recoveryCheckpoint,\n\t\tsupportV5RecoveryEvidenceProbe: managerDecision.recoveryEvidenceProbe,\n\t\tsupportV5RecoveryAction: managerDecision.recoveryAction\n\t};\n\tif (normalizedDiagnosisGate && validateResolveIOSupportDiagnosisGate(normalizedDiagnosisGate).valid) {\n\t\treturn applyResolveIOSupportDiagnosisGateToMicrotasks(nextBundle, normalizedDiagnosisGate);\n\t}\n\treturn nextBundle;\n}\n\nexport function recordResolveIOSupportV5MicrotaskUsage(\n\tbundle: ResolveIOSupportV5StateBundle,\n\tusage: Omit<ResolveIOSupportV5MicrotaskUsage, 'recordedAt'>\n): ResolveIOSupportV5StateBundle {\n\tconst record: ResolveIOSupportV5MicrotaskUsage = {\n\t\t...usage,\n\t\tmicrotaskId: cleanText(usage.microtaskId, 160),\n\t\tthreadKey: cleanText(usage.threadKey, 240),\n\t\tmodel: cleanText(usage.model, 80),\n\t\tpromptTokenEstimate: Math.max(0, Number(usage.promptTokenEstimate || 0) || 0),\n\t\tpromptSections: Array.isArray(usage.promptSections)\n\t\t\t? usage.promptSections.map((section) => ({\n\t\t\t\tname: cleanText(section.name, 120),\n\t\t\t\ttokenEstimate: Math.max(0, Number(section.tokenEstimate || 0) || 0)\n\t\t\t})).filter((section) => section.name)\n\t\t\t: [],\n\t\trecordedAt: isoNow()\n\t};\n\tconst ledger = (bundle.supportV5MicrotaskLedger || []).map((task) => task.microtaskId === record.microtaskId\n\t\t? {\n\t\t\t...task,\n\t\t\tpromptTokenEstimate: record.promptTokenEstimate,\n\t\t\tupdatedAt: record.recordedAt\n\t\t}\n\t\t: task);\n\treturn {\n\t\t...bundle,\n\t\tsupportV5MicrotaskLedger: ledger,\n\t\tsupportV5MicrotaskUsageHistory: [\n\t\t\t...(bundle.supportV5MicrotaskUsageHistory || []),\n\t\t\trecord\n\t\t].slice(-200)\n\t};\n}\n\nexport function decideResolveIOSupportV5Continuation(bundle: ResolveIOSupportV5StateBundle): ResolveIOSupportV5ContinuationDecision {\n\tconst history = bundle.supportV5StepHistory || [];\n\tconst budget = buildResolveIOSupportV5Budget(bundle.supportV5Budget);\n\tconst last = history[history.length - 1];\n\tconst activeMicrotaskId = cleanText(bundle.supportV5ActiveMicrotaskId, 160);\n\tconst blockerFingerprint = fingerprintResolveIOSupportV5Blocker(last?.blocker || last?.summary || '');\n\tlet repeatedNoProgressCount = 0;\n\tfor (let index = history.length - 1; index >= 0; index -= 1) {\n\t\tconst item = history[index];\n\t\tif (activeMicrotaskId && cleanText((item as any).microtaskId, 160) !== activeMicrotaskId) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (item.outcome === 'pass' || item.outcome === 'ready_for_merge') {\n\t\t\tbreak;\n\t\t}\n\t\tif (item.stepType !== last?.stepType) {\n\t\t\tbreak;\n\t\t}\n\t\tif (fingerprintResolveIOSupportV5Blocker(item.blocker || item.summary || '') === blockerFingerprint) {\n\t\t\trepeatedNoProgressCount += 1;\n\t\t}\n\t}\n\tconst budgetExceeded = budget.loopCount >= budget.maxLoopsPerTicket\n\t\t|| (last?.promptTokenEstimate || 0) > budget.maxPromptTokensPerNonInitialStep;\n\tconst repeatedFailure = last ? decideResolveIOSupportV5RepeatedFailureStop({\n\t\thistory,\n\t\tfailureClass: last.failureClass,\n\t\tblocker: last.blocker || last.summary,\n\t\tevidenceHash: last.evidenceHash,\n\t\tchangedFiles: last.changedFiles,\n\t\tartifactPaths: last.artifactPaths,\n\t\tlimit: budget.maxRepeatedNoProgress,\n\t\tignoreInfra: true\n\t}) : null;\n\tconst recoveryPlanFor = (\n\t\taction: string,\n\t\treason: string,\n\t\textra: Partial<ResolveIOAIManagerRecoveryPlanInput> = {}\n\t): ResolveIOAIManagerRecoveryPlan => buildResolveIOAIManagerRecoveryPlan({\n\t\taction,\n\t\treason,\n\t\tfailureClass: last?.failureClass,\n\t\tlane: last?.lane || 'supervisor',\n\t\tstepType: last?.stepType || bundle.supportV5SupervisorState.activeStep,\n\t\tblocker: last?.blocker || last?.summary,\n\t\tchangedFiles: last?.changedFiles,\n\t\tartifactPaths: last?.artifactPaths,\n\t\tmaxSameFailureRepeats: budget.maxRepeatedNoProgress,\n\t\t...extra\n\t});\n\tconst recoveryCheckpointFor = (\n\t\trecoveryPlan: ResolveIOAIManagerRecoveryPlan\n\t): ResolveIOAIManagerRecoveryCheckpoint => buildResolveIOAIManagerRecoveryCheckpoint({\n\t\tplan: recoveryPlan,\n\t\tcurrent: last\n\t});\n\tconst recoveryFieldsFor = (\n\t\trecoveryPlan: ResolveIOAIManagerRecoveryPlan\n\t): Pick<ResolveIOSupportV5ContinuationDecision, 'recoveryPlan' | 'recoveryCheckpoint' | 'recoveryEvidenceProbe' | 'recoveryAction'> => {\n\t\tconst recoveryCheckpoint = recoveryCheckpointFor(recoveryPlan);\n\t\tconst recoveryEvidenceProbe = buildResolveIOAIManagerRecoveryEvidenceProbe({\n\t\t\tcheckpoint: recoveryCheckpoint,\n\t\t\tcurrent: last\n\t\t});\n\t\treturn {\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: last\n\t\t\t})\n\t\t};\n\t};\n\tif (budgetExceeded) {\n\t\tconst recoveryPlan = recoveryPlanFor('manual_handoff', 'support_v5_budget_guard', {\n\t\t\tproductRepairFailure: false\n\t\t});\n\t\treturn {\n\t\t\taction: 'park',\n\t\t\treason: 'support_v5_budget_guard',\n\t\t\tnextStep: last?.stepType || 'cleanup',\n\t\t\trepeatedNoProgressCount,\n\t\t\tbudgetExceeded,\n\t\t\t...recoveryFieldsFor(recoveryPlan)\n\t\t};\n\t}\n\tconst lastFailureClass = cleanText(last?.failureClass, 80).toLowerCase();\n\tconst materialEvidenceRetryAllowed = repeatedFailure?.shouldStop === false\n\t\t&& repeatedFailure.newEvidence === true\n\t\t&& repeatedFailure.materialEvidence === true;\n\tif (repeatedNoProgressCount > budget.maxRepeatedNoProgress && /^(infra|compile)$/.test(lastFailureClass)) {\n\t\tconst recoveryPlan = recoveryPlanFor('retry_infra', 'support_v5_infra_or_compile_repair_required', {\n\t\t\tfailureClass: lastFailureClass,\n\t\t\tproductRepairFailure: false\n\t\t});\n\t\treturn {\n\t\t\taction: 'continue',\n\t\t\treason: 'support_v5_infra_or_compile_repair_required',\n\t\t\tnextStep: last?.stepType || 'compile_check',\n\t\t\trepeatedNoProgressCount,\n\t\t\tbudgetExceeded,\n\t\t\t...recoveryFieldsFor(recoveryPlan)\n\t\t};\n\t}\n\tif (repeatedFailure?.shouldStop) {\n\t\tconst recoveryPlan = recoveryPlanFor(\n\t\t\trepeatedFailure.reason === 'support_v5_ping_pong_failure_loop' ? 'park_ping_pong' : 'park_repeated_failure',\n\t\t\trepeatedFailure.reason,\n\t\t\t{\n\t\t\t\tfailureClass: repeatedFailure.failureClass,\n\t\t\t\tproductRepairFailure: true\n\t\t\t}\n\t\t);\n\t\treturn {\n\t\t\taction: 'park',\n\t\t\treason: repeatedFailure.reason,\n\t\t\tnextStep: last?.stepType || 'cleanup',\n\t\t\trepeatedNoProgressCount: repeatedFailure.repeatedCount,\n\t\t\tbudgetExceeded,\n\t\t\t...recoveryFieldsFor(recoveryPlan)\n\t\t};\n\t}\n\tif (repeatedNoProgressCount > budget.maxRepeatedNoProgress && !materialEvidenceRetryAllowed) {\n\t\tconst recoveryPlan = recoveryPlanFor('park_repeated_failure', 'support_v5_repeated_no_progress', {\n\t\t\tproductRepairFailure: true\n\t\t});\n\t\treturn {\n\t\t\taction: 'park',\n\t\t\treason: 'support_v5_repeated_no_progress',\n\t\t\tnextStep: last?.stepType || 'cleanup',\n\t\t\trepeatedNoProgressCount,\n\t\t\tbudgetExceeded,\n\t\t\t...recoveryFieldsFor(recoveryPlan)\n\t\t};\n\t}\n\tconst recoveryPlan = recoveryPlanFor('continue', 'support_v5_continue');\n\treturn {\n\t\taction: 'continue',\n\t\treason: 'support_v5_continue',\n\t\tnextStep: last?.stepType || bundle.supportV5SupervisorState.activeStep,\n\t\trepeatedNoProgressCount,\n\t\tbudgetExceeded: false,\n\t\t...recoveryFieldsFor(recoveryPlan)\n\t};\n\t}\n\nexport function decideResolveIOSupportV5AutonomousNextAction(\n\tinput: ResolveIOSupportV5AutonomousDecisionInput\n): ResolveIOSupportV5AutonomousDecision {\n\tconst bundle = input.bundle;\n\tconst preflightGate = evaluateResolveIOSupportPreflightGate(\n\t\tinput.preflightGate || bundle.supportV5PreflightGate,\n\t\tinput.now\n\t);\n\tconst activeMicrotask = selectResolveIOSupportV5ActiveMicrotask(\n\t\tbundle.supportV5MicrotaskLedger || [],\n\t\tbundle.supportV5ActiveMicrotaskId\n\t);\n\tconst diagnosisValidation = validateResolveIOSupportDiagnosisGate(bundle.supportV5DiagnosisGate, {\n\t\tmaxOwnerFiles: input.maxOwnerFiles\n\t});\n\tconst activeStepType = cleanText(\n\t\tactiveMicrotask?.type || (!diagnosisValidation.valid ? bundle.supportV5SupervisorState.activeStep : 'cleanup') || 'diagnosis_gate',\n\t\t80\n\t) as ResolveIOSupportV5StepType;\n\tconst repairGate = decideResolveIOSupportV5RepairGate({\n\t\tdiagnosisGate: bundle.supportV5DiagnosisGate,\n\t\tpreflightGate,\n\t\tactiveStepType,\n\t\tchangedFiles: input.changedFiles,\n\t\tfailureClass: input.failureClass,\n\t\tblocker: input.blocker,\n\t\tevidence: input.evidence,\n\t\tevidenceHash: input.evidenceHash,\n\t\thistory: bundle.supportV5StepHistory,\n\t\tartifactPaths: input.artifactPaths,\n\t\tmaxOwnerFiles: input.maxOwnerFiles,\n\t\tallowTestsOutsideOwnerFiles: true\n\t});\n\tconst continuation = decideResolveIOSupportV5Continuation(bundle);\n\tconst customerReplyPolicy = decideResolveIOSupportCustomerReplyPolicy({\n\t\tdiagnosisGate: bundle.supportV5DiagnosisGate,\n\t\tissueClassProbePlan: bundle.supportV5IssueClassProbePlan,\n\t\toutcomeLabel: input.outcomeLabel,\n\t\tconfidence: input.confidence,\n\t\tbusinessAssertionStatus: input.businessAssertionStatus,\n\t\tbusinessAssertions: input.businessAssertions,\n\t\tbusinessProofArtifacts: input.businessProofArtifacts,\n\t\tpreviousProofFingerprint: input.previousProofFingerprint,\n\t\tpreviousArtifactFingerprint: input.previousArtifactFingerprint,\n\t\tunresolvedBlockers: input.unresolvedBlockers,\n\t\treleaseStatus: input.releaseStatus,\n\t\thotfixEvidence: input.hotfixEvidence,\n\t\treleasePolicy: input.releasePolicy,\n\t\treleaseGatePassed: input.releaseGatePassed\n\t});\n\tconst businessProofReadiness = evaluateResolveIOSupportBusinessProofReadiness({\n\t\tdiagnosisGate: bundle.supportV5DiagnosisGate,\n\t\toutcomeLabel: input.outcomeLabel,\n\t\tbusinessAssertionStatus: input.businessAssertionStatus,\n\t\tbusinessAssertions: input.businessAssertions,\n\t\tbusinessProofArtifacts: input.businessProofArtifacts,\n\t\tpreviousProofFingerprint: input.previousProofFingerprint,\n\t\tpreviousArtifactFingerprint: input.previousArtifactFingerprint\n\t});\n\tconst evidenceFreshness = evaluateResolveIOSupportEvidenceFreshness({\n\t\thistory: bundle.supportV5StepHistory,\n\t\tfailureClass: input.failureClass,\n\t\tblocker: input.blocker,\n\t\tevidence: input.evidence,\n\t\tevidenceHash: input.evidenceHash,\n\t\tchangedFiles: input.changedFiles,\n\t\tartifactPaths: input.artifactPaths || input.businessProofArtifacts,\n\t\tlane: activeMicrotask?.lane || 'supervisor',\n\t\tstepType: activeStepType,\n\t\tlimit: buildResolveIOSupportV5Budget(bundle.supportV5Budget).maxRepeatedNoProgress,\n\t\tignoreInfra: true\n\t});\n\tconst ownerFiles = diagnosisValidation.normalized?.owner_files || repairGate.ownerFiles || [];\n\tconst diagnosisProofMatrix = diagnosisValidation.proofMatrix || buildResolveIOSupportDiagnosisProofMatrix(bundle.supportV5DiagnosisGate, input.now);\n\tconst proofContract = diagnosisValidation.normalized?.proof_plan.business_proof_contract;\n\tconst expectedProof = proofContract?.data_or_dom_assertion\n\t\t|| diagnosisValidation.normalized?.proof_plan.business_assertion\n\t\t|| activeMicrotask?.acceptanceProof\n\t\t|| '';\n\tconst issueClassProbes = diagnosisValidation.valid && diagnosisValidation.normalized\n\t\t? buildResolveIOSupportIssueClassProbes(diagnosisValidation.normalized)\n\t\t: [];\n\tconst generatedProbePlan = diagnosisValidation.valid && diagnosisValidation.normalized\n\t\t? buildResolveIOSupportIssueClassProbePlan(diagnosisValidation.normalized, input.now)\n\t\t: undefined;\n\tconst storedProbePlanValidation = validateResolveIOSupportIssueClassProbePlan(\n\t\tbundle.supportV5IssueClassProbePlan,\n\t\tdiagnosisValidation.normalized,\n\t\tinput.now\n\t);\n\tconst issueClassProbePlanValidation = storedProbePlanValidation.valid\n\t\t? storedProbePlanValidation\n\t\t: validateResolveIOSupportIssueClassProbePlan(generatedProbePlan, diagnosisValidation.normalized, input.now);\n\tconst issueClassProbePlan = issueClassProbePlanValidation.normalized || generatedProbePlan;\n\tconst activeIssueClassProbe = issueClassProbePlanValidation.activeProbe || issueClassProbePlan?.activeProbe || issueClassProbes[0];\n\tconst issueClassProbeEvidence = activeIssueClassProbe\n\t\t? Array.from(new Set([\n\t\t\t`IssueClassProbePlan ${issueClassProbePlan?.planId || 'generated'} status=${issueClassProbePlanValidation.status}`,\n\t\t\t`AIQaBusinessAssertion mapped to ${activeIssueClassProbe.issue_class}`,\n\t\t\t`state transition: ${activeIssueClassProbe.state_transition.before || 'before'} -> ${activeIssueClassProbe.state_transition.action || activeIssueClassProbe.action} -> ${activeIssueClassProbe.state_transition.after || 'after'}`,\n\t\t\t...activeIssueClassProbe.required_artifacts.map((artifact) => `artifact: ${artifact}`)\n\t\t]))\n\t\t: [];\n\tconst buildRootCauseReadiness = (\n\t\taction: ResolveIOSupportV5AutonomousNextAction,\n\t\treason: string,\n\t\tfields: Partial<ResolveIOSupportV5AutonomousDecision>,\n\t\tprimaryCommand: string,\n\t\tnextCommands: string[],\n\t\tblockers: string[]\n\t): ResolveIOSupportRootCauseReadiness => {\n\t\tconst statusByAction: Record<ResolveIOSupportV5AutonomousNextAction, ResolveIOSupportRootCauseReadinessStatus> = {\n\t\t\trun_diagnosis_gate: 'diagnosis_required',\n\t\t\task_customer_clarification: 'customer_clarification_required',\n\t\t\trepair_infra_only: 'infra_repair_only',\n\t\t\trevise_diagnosis_scope: 'scope_revision_required',\n\t\t\trun_owner_scoped_repair: 'owner_scoped_repair_ready',\n\t\t\trun_business_proof_qa: 'business_proof_required',\n\t\t\tcreate_pr: 'pr_packaging_ready',\n\t\t\trun_a_grade_pr_review: 'pr_review_required',\n\t\t\trepair_release_hotfix_first: 'release_hotfix_required',\n\t\t\tcollect_new_evidence: 'collect_new_evidence',\n\t\t\tdraft_customer_reply: 'customer_reply_draft_ready',\n\t\t\tready_for_release_gate: 'release_gate_ready',\n\t\t\tpark_manual: 'parked'\n\t\t};\n\t\tconst nextGateByStatus: Record<ResolveIOSupportRootCauseReadinessStatus, ResolveIOSupportRootCauseReadiness['nextGate']> = {\n\t\t\tdiagnosis_required: 'diagnosis',\n\t\t\tcustomer_clarification_required: 'customer_reply',\n\t\t\tinfra_repair_only: 'infra',\n\t\t\tscope_revision_required: 'scope',\n\t\t\towner_scoped_repair_ready: 'repair',\n\t\t\tbusiness_proof_required: 'business_proof',\n\t\t\tpr_packaging_ready: 'release',\n\t\t\tpr_review_required: 'release',\n\t\t\trelease_hotfix_required: 'release',\n\t\t\trelease_gate_ready: 'release',\n\t\t\tcustomer_reply_draft_ready: 'customer_reply',\n\t\t\tcollect_new_evidence: 'evidence',\n\t\t\tparked: 'manual'\n\t\t};\n\t\tconst status = statusByAction[action] || 'parked';\n\t\tconst diagnosisValid = diagnosisValidation.valid === true;\n\t\tconst ownerFilesReady = diagnosisValid && ownerFiles.length > 0;\n\t\tconst proofPlanReady = diagnosisValid && !!proofContract;\n\t\tconst proofMatrixReady = diagnosisProofMatrix.status === 'ready';\n\t\tconst ownerScopedRepairContractReady = repairGate.ownerScopedRepairContract.status === 'ready';\n\t\tconst issueClassProbePlanReady = issueClassProbePlanValidation.valid === true;\n\t\tconst preflightReady = preflightGate.blocksProductRepair !== true;\n\t\tconst rootCauseFirstSatisfied = diagnosisValid && ownerFilesReady && proofPlanReady && proofMatrixReady && issueClassProbePlanReady && preflightReady;\n\t\tconst sameFailureParked = evidenceFreshness.mustCollectNewEvidence === true\n\t\t\t|| (action === 'collect_new_evidence' && /repeated|no_progress|ping_pong|same failure|same evidence/i.test(reason));\n\t\treturn {\n\t\t\tstatus,\n\t\t\tnextGate: nextGateByStatus[status],\n\t\t\tnextCommand: primaryCommand || nextCommands[0] || action,\n\t\t\trootCauseFirstSatisfied,\n\t\t\tdiagnosisValid,\n\t\t\townerFilesReady,\n\t\t\tproofPlanReady,\n\t\t\tproofMatrixReady,\n\t\t\townerScopedRepairContractReady,\n\t\t\tbusinessProofReady: businessProofReadiness.ready === true,\n\t\t\tinfraOnly: action === 'repair_infra_only',\n\t\t\tsameFailureParked,\n\t\t\tcanEditProductCode: fields.canEditProductCode === true && rootCauseFirstSatisfied && ownerScopedRepairContractReady,\n\t\t\tcanRunIssueClassProbe: rootCauseFirstSatisfied && (action === 'run_business_proof_qa' || status === 'business_proof_required'),\n\t\t\tcanRunBusinessProofQa: rootCauseFirstSatisfied && (action === 'run_business_proof_qa' || !businessProofReadiness.ready),\n\t\t\tcanRelease: action === 'ready_for_release_gate' && businessProofReadiness.ready === true,\n\t\t\tcanDraftCustomerReply: (action === 'draft_customer_reply' && businessProofReadiness.ready === true)\n\t\t\t\t|| action === 'ask_customer_clarification',\n\t\t\trequiresHumanDecision: action === 'park_manual' || fields.canRunAutonomously !== true,\n\t\t\tissueClassProbePlanReady,\n\t\t\tpreflightReady,\n\t\t\tpreflightStatus: preflightGate.status,\n\t\t\tpreflightFailureClass: preflightGate.failureClass,\n\t\t\treason,\n\t\t\tblockers: Array.from(new Set([...blockers, ...diagnosisProofMatrix.blockers, ...repairGate.ownerScopedRepairContract.blockers, ...issueClassProbePlanValidation.blockers, ...preflightGate.blockers])),\n\t\t\townerFiles,\n\t\t\tissueClass: diagnosisValidation.normalized?.issue_class || repairGate.issueClass,\n\t\t\texpectedProof,\n\t\t\tissueClassProbes,\n\t\t\tissueClassProbePlan,\n\t\t\tproofMatrix: diagnosisProofMatrix,\n\t\t\townerScopedRepairContract: repairGate.ownerScopedRepairContract,\n\t\t\tbusinessProofStatus: businessProofReadiness.status,\n\t\t\tproofFingerprint: businessProofReadiness.proofFingerprint,\n\t\t\tartifactFingerprint: businessProofReadiness.artifactFingerprint,\n\t\t\tproofFreshness: businessProofReadiness.proofFreshness,\n\t\t\tpreflightGate\n\t\t};\n\t};\n\tconst nextActionExpectedTransition = (\n\t\taction: ResolveIOSupportV5AutonomousNextAction,\n\t\tprimaryCommand: string\n\t): string => {\n\t\tif (action === 'run_diagnosis_gate') {\n\t\t\treturn 'SupportDiagnosisGate changes from missing/incomplete to passed, blocked with one clarification question, or rejected with explicit blockers; no source files are edited.';\n\t\t}\n\t\tif (action === 'ask_customer_clarification') {\n\t\t\treturn 'One customer clarification question is prepared for human review and the ticket parks until the missing reproduction/account context is supplied.';\n\t\t}\n\t\tif (action === 'repair_infra_only') {\n\t\t\treturn 'Infra/preflight evidence changes or passes without charging the failure as product-code repair.';\n\t\t}\n\t\tif (action === 'revise_diagnosis_scope') {\n\t\t\treturn 'SupportDiagnosisGate owner_files, failing_path, and proof_plan are revised together with new evidence before any broader edit.';\n\t\t}\n\t\tif (action === 'run_owner_scoped_repair') {\n\t\t\treturn 'Only diagnosis owner_files change, a compile/unit gate is recorded, and the next state is business proof QA rather than acceptance.';\n\t\t}\n\t\tif (action === 'run_business_proof_qa') {\n\t\t\treturn 'A fresh AIQaBusinessAssertion maps to the validated IssueClassProbePlan and records before/action/after DOM, data, or Mongo proof.';\n\t\t}\n\t\tif (action === 'create_pr') {\n\t\t\treturn 'A support PR is created or updated from the proof-ready run, with merge/release/customer-send still blocked behind human/release gates.';\n\t\t}\n\t\tif (action === 'run_a_grade_pr_review') {\n\t\t\treturn 'The support PR is checked against strict execution, artifact, pull-request, AIQa, before/action/after, and screenshot/trace evidence; merge/release/customer-send remain blocked.';\n\t\t}\n\t\tif (action === 'repair_release_hotfix_first') {\n\t\t\treturn primaryCommand === 'record_hotfix_evidence'\n\t\t\t\t? 'Hotfix evidence is recorded with sourceCommitSha, githubCommitUrl, passed gitCommitStatus, and passed gitPushStatus before any live backend apply or continuation.'\n\t\t\t\t: 'The smallest release/hotfix gate changes state, with duplicate full deploy blocked unless force evidence is explicit.';\n\t\t}\n\t\tif (action === 'ready_for_release_gate') {\n\t\t\treturn 'Release gate records compile, business proof, and deployment readiness without treating route-only evidence as acceptance.';\n\t\t}\n\t\tif (action === 'draft_customer_reply') {\n\t\t\treturn 'A customer resolution draft is prepared from accepted business proof and remains unsent until human approval.';\n\t\t}\n\t\tif (action === 'collect_new_evidence') {\n\t\t\treturn 'The next run records a changed blocker fingerprint, changed evidence hash, fresh artifact path, or explicit business/infra/compile/release proof.';\n\t\t}\n\t\treturn 'The runner stays parked until a human changes scope, budget, evidence, or autonomy policy.';\n\t};\n\tconst buildNextActionContract = (\n\t\taction: ResolveIOSupportV5AutonomousNextAction,\n\t\tlabel: string,\n\t\treason: string,\n\t\tfields: Partial<ResolveIOSupportV5AutonomousDecision> & {\n\t\t\tfailureClass?: string;\n\t\t\tblockerFingerprint?: string;\n\t\t\tevidenceHash?: string;\n\t\t},\n\t\trootCauseReadiness: ResolveIOSupportRootCauseReadiness,\n\t\tcontinuationProofCheckpoint: ResolveIOSupportContinuationProofCheckpoint,\n\t\tprimaryCommand: string,\n\t\tnextCommands: string[],\n\t\trequiredEvidence: string[],\n\t\tforbiddenActions: string[],\n\t\tblockers: string[],\n\t\tevidenceProbeContract?: ResolveIOSupportEvidenceProbeContract,\n\t\tautonomyApproval?: ResolveIOSupportAutonomyApprovalContract,\n\t\tproductRepairDispatchGuard?: ResolveIOSupportProductRepairDispatchGuard,\n\t\tautopilotCompletionProgress?: ResolveIOSupportAutopilotCompletionProgress\n\t): ResolveIOSupportNextActionContract => {\n\t\tconst lane = (fields.lane || activeMicrotask?.lane || 'supervisor') as ResolveIOSupportV5Lane | 'release' | 'customer';\n\t\tconst stepType = (fields.stepType || activeStepType) as ResolveIOSupportV5StepType | 'release_gate' | 'customer_reply';\n\t\tconst liveHotfixBlockedUntilCommit = fields.liveHotfixBlockedUntilCommit === true;\n\t\tconst hotfixCommitRequired = action === 'repair_release_hotfix_first'\n\t\t\t|| liveHotfixBlockedUntilCommit\n\t\t\t|| fields.canHotfixBackend === true;\n\t\tconst baseRequiresHumanApproval = action === 'park_manual'\n\t\t\t|| action === 'ask_customer_clarification'\n\t\t\t|| rootCauseReadiness.requiresHumanDecision === true;\n\t\tconst dispatchAction = supportManagerDispatchActionForNextAction(action, fields, preflightGate);\n\t\tconst autonomyPolicy = input.autonomyPolicy\n\t\t\t? decideResolveIOAIManagerAutonomyPolicy({\n\t\t\t\t...input.autonomyPolicy,\n\t\t\t\tdispatchAction,\n\t\t\t\tprojectedActionCostUsd: input.autonomyPolicy.projectedActionCostUsd ?? supportProjectedActionCostUsdForNextAction(action, fields),\n\t\t\t\tevidenceStrength: input.autonomyPolicy.evidenceStrength || evidenceFreshness.evidenceStrength,\n\t\t\t\tmaterialEvidence: input.autonomyPolicy.materialEvidence ?? evidenceFreshness.materialEvidence,\n\t\t\t\tnewEvidence: input.autonomyPolicy.newEvidence ?? evidenceFreshness.newEvidence,\n\t\t\t\tevidenceSignals: input.autonomyPolicy.evidenceSignals || evidenceFreshness.evidenceSignals,\n\t\t\t\toperatorApproved: input.operatorApproved ?? input.autonomyPolicy.operatorApproved\n\t\t\t})\n\t\t\t: undefined;\n\t\tconst productRepairApprovalBlocked = productRepairDispatchGuard?.status === 'blocked';\n\t\tconst autonomyBlocksAutoRun = (!!autonomyPolicy && autonomyPolicy.canAutoDispatch !== true)\n\t\t\t|| productRepairApprovalBlocked;\n\t\tconst requiresHumanApproval = baseRequiresHumanApproval\n\t\t\t|| autonomyPolicy?.requiresHumanApproval === true\n\t\t\t|| autonomyPolicy?.blocked === true\n\t\t\t|| productRepairApprovalBlocked;\n\t\tconst safeToAutoRun = fields.canRunAutonomously === true\n\t\t\t&& !baseRequiresHumanApproval\n\t\t\t&& !autonomyBlocksAutoRun\n\t\t\t&& (action !== 'run_owner_scoped_repair' || (rootCauseReadiness.rootCauseFirstSatisfied === true && rootCauseReadiness.ownerScopedRepairContractReady === true && evidenceFreshness.mustCollectNewEvidence !== true))\n\t\t\t&& (action !== 'run_business_proof_qa' || rootCauseReadiness.issueClassProbePlanReady === true)\n\t\t\t&& (action !== 'collect_new_evidence' || evidenceProbeContract?.status === 'ready')\n\t\t\t&& (action !== 'repair_release_hotfix_first' || primaryCommand !== 'apply_backend_hotfix_only_after_commit_proof' || liveHotfixBlockedUntilCommit !== true);\n\t\tconst costRisk: ResolveIOSupportNextActionCostRisk = requiresHumanApproval\n\t\t\t? 'manual_blocked'\n\t\t\t: (fields.canHotfixBackend === true || action === 'draft_customer_reply')\n\t\t\t\t? 'release_or_customer_send'\n\t\t\t\t: fields.canRunModel === true\n\t\t\t\t\t? 'expensive_model'\n\t\t\t\t\t: fields.canRunQa === true\n\t\t\t\t\t\t? 'small_model_or_qa'\n\t\t\t\t\t\t: 'free_or_deterministic';\n\t\tconst canRunWithoutCodexMonitor = safeToAutoRun\n\t\t\t&& continuationProofCheckpoint.required === true\n\t\t\t&& forbiddenActions.length > 0\n\t\t\t&& (requiredEvidence.length > 0 || action === 'repair_infra_only' || action === 'run_diagnosis_gate');\n\t\tconst codexFallbackRequired = !canRunWithoutCodexMonitor && !requiresHumanApproval;\n\t\tconst codexFallbackReason = codexFallbackRequired\n\t\t\t? (blockers[0] || continuationProofCheckpoint.reason || 'next_action_contract_missing_required_evidence')\n\t\t\t: requiresHumanApproval\n\t\t\t\t? 'human_decision_required_not_codex_fallback'\n\t\t\t\t: !canRunWithoutCodexMonitor\n\t\t\t\t\t? 'structured_contract_blocks_auto_run_without_requesting_codex_monitor'\n\t\t\t\t\t: 'structured_next_action_contract_allows_manager_execution_without_external_codex_monitor';\n\t\tconst preconditions = Array.from(new Set([\n\t\t\taction !== 'run_diagnosis_gate' ? 'SupportDiagnosisGate validation checked before action.' : 'Diagnosis is read-only and cannot edit source files.',\n\t\t\taction === 'run_owner_scoped_repair' ? 'Root-cause-first gate is satisfied and owner_files are the only editable product files.' : '',\n\t\t\taction === 'run_business_proof_qa' ? 'Business proof QA must use the diagnosis proof_plan and validated IssueClassProbePlan.' : '',\n\t\t\taction === 'create_pr' ? 'Business proof and changed-file evidence are ready; this action only packages/updates the support PR.' : '',\n\t\t\taction === 'run_a_grade_pr_review' ? 'A support PR exists and must pass strict A-grade review before any merge, release, deploy, or customer reply.' : '',\n\t\t\taction === 'repair_release_hotfix_first' ? 'Live backend hotfix is blocked until GitHub commit proof is recorded and passed.' : '',\n\t\t\tproductRepairDispatchGuard ? `Support autonomy approval ${autonomyApproval?.status || 'missing'}: ${productRepairDispatchGuard.reason}.` : '',\n\t\t\tautopilotCompletionProgress ? `Approved-autopilot phase ${autopilotCompletionProgress.activePhase}: ${autopilotCompletionProgress.reason}.` : '',\n\t\t\tevidenceFreshness.mustCollectNewEvidence === true ? 'Current failure is stale or repeated; only evidence collection is allowed until proof changes.' : '',\n\t\t\tautonomyPolicy ? `Autonomy policy ${autonomyPolicy.mode}: ${autonomyPolicy.reason}.` : '',\n\t\t\t...requiredEvidence\n\t\t].filter(Boolean))).slice(0, 24);\n\t\tconst stopConditions = Array.from(new Set([\n\t\t\t'Stop if the same failure class, blocker fingerprint, and evidence hash repeat without material evidence.',\n\t\t\t'Stop if the action would edit outside diagnosis owner_files without a revised diagnosis gate.',\n\t\t\t'Stop if route-load, screenshot-only, scorecard-only, or model-claim proof is the only acceptance evidence.',\n\t\t\taction === 'create_pr' ? 'Stop before merge, release, deploy, or customer-send; PR packaging is the only allowed side effect.' : '',\n\t\t\taction === 'run_a_grade_pr_review' ? 'Stop before merge, release, deploy, or customer-send; this action only records strict A-grade PR review evidence.' : '',\n\t\t\tautonomyApproval?.overMaxAutoHours && autonomyApproval.explicitOverLimitApproval !== true ? `Stop before product-code repair: estimated work is over ${autonomyApproval.maxAutoHoursWithoutApproval} hours without explicit over-limit approval.` : '',\n\t\t\tproductRepairDispatchGuard?.status === 'blocked' ? 'Stop before product-code repair until the autonomy approval/dispatch guard is allowed.' : '',\n\t\t\tliveHotfixBlockedUntilCommit ? 'Stop before live backend hotfix until sourceCommitSha, githubCommitUrl, passed gitCommitStatus, and passed gitPushStatus are recorded.' : '',\n\t\t\t...continuationProofCheckpoint.requiredResetEvidence.map((entry) => `Reset requires: ${entry}`)\n\t\t].filter(Boolean))).slice(0, 24);\n\t\tconst createdAt = isoNow(input.now);\n\t\treturn {\n\t\t\tcontractId: `support-next-action-${hashResolveIOSupportV5Evidence({\n\t\t\t\taction,\n\t\t\t\tprimaryCommand,\n\t\t\t\treason,\n\t\t\t\tblockers,\n\t\t\t\trequiredEvidence,\n\t\t\t\tevidenceFreshness: evidenceFreshness.evidenceHash,\n\t\t\t\tblockerFingerprint: evidenceFreshness.blockerFingerprint,\n\t\t\t\tcreatedAt: createdAt.slice(0, 16)\n\t\t\t}).slice(0, 16)}`,\n\t\t\taction,\n\t\t\tlabel,\n\t\t\tprimaryCommand,\n\t\t\tlane,\n\t\t\tstepType,\n\t\t\tsafeToAutoRun,\n\t\t\trequiresHumanApproval,\n\t\t\tcanRunWithoutCodexMonitor,\n\t\t\tcodexFallbackRequired,\n\t\t\tcodexFallbackReason,\n\t\t\tcostRisk,\n\t\t\trootCauseFirstSatisfied: rootCauseReadiness.rootCauseFirstSatisfied === true,\n\t\t\tdecisionBasis: {\n\t\t\t\tdiagnosisValid: rootCauseReadiness.diagnosisValid === true,\n\t\t\t\townerFilesReady: rootCauseReadiness.ownerFilesReady === true,\n\t\t\t\tproofPlanReady: rootCauseReadiness.proofPlanReady === true,\n\t\t\t\tproofMatrixReady: rootCauseReadiness.proofMatrixReady === true,\n\t\t\t\tproofMatrixId: rootCauseReadiness.proofMatrix?.matrixId,\n\t\t\t\townerScopedRepairContractReady: rootCauseReadiness.ownerScopedRepairContractReady === true,\n\t\t\t\townerScopedRepairContractId: rootCauseReadiness.ownerScopedRepairContract?.contractId,\n\t\t\t\tbusinessProofReady: businessProofReadiness.ready === true,\n\t\t\t\tevidenceFreshnessStatus: evidenceFreshness.status,\n\t\t\t\tevidenceStrength: evidenceFreshness.evidenceStrength,\n\t\t\t\tfailureClass: cleanText(fields.failureClass || evidenceFreshness.failureClass, 120),\n\t\t\t\tblockerFingerprint: cleanText(fields.blockerFingerprint || evidenceFreshness.blockerFingerprint, 180),\n\t\t\t\tevidenceHash: cleanText(fields.evidenceHash || evidenceFreshness.evidenceHash, 180),\n\t\t\t\tsameFailureCount: evidenceFreshness.sameFailureCount,\n\t\t\t\tissueClassProbePlanReady: rootCauseReadiness.issueClassProbePlanReady === true,\n\t\t\t\tpreflightReady: rootCauseReadiness.preflightReady === true,\n\t\t\t\tpreflightStatus: preflightGate.status,\n\t\t\t\tpreflightFailureClass: preflightGate.failureClass,\n\t\t\t\tpreflightEvidenceHash: preflightGate.evidenceHash,\n\t\t\t\thotfixCommitRequired,\n\t\t\t\tliveHotfixBlockedUntilCommit,\n\t\t\t\tevidenceProbeContractReady: evidenceProbeContract ? evidenceProbeContract.status === 'ready' : undefined,\n\t\t\t\tevidenceProbeContractId: evidenceProbeContract?.contractId,\n\t\t\t\tautonomyMode: autonomyPolicy?.mode,\n\t\t\t\tautonomyCanAutoDispatch: autonomyPolicy?.canAutoDispatch,\n\t\t\t\tautonomyReason: autonomyPolicy?.reason,\n\t\t\t\tautonomyExpectedValueScore: autonomyPolicy?.expectedValueScore,\n\t\t\t\tautonomyExpectedValuePositive: autonomyPolicy?.expectedValuePositive,\n\t\t\t\tautonomyProjectedSpendUsd: autonomyPolicy?.projectedSpendUsd,\n\t\t\t\tautonomyApprovalRequired: !!autonomyApproval || input.requireAutonomyApprovalForProductRepair === true,\n\t\t\t\tautonomyApprovalApproved: autonomyApproval?.approved,\n\t\t\t\tautonomyApprovalBoundaryValid: autonomyApproval?.autopilotApprovalBoundaryValid,\n\t\t\t\tautonomyApprovalDecisionKind: autonomyApproval?.decisionKind,\n\t\t\t\tautonomyApprovalAction: autonomyApproval?.approvalAction,\n\t\t\t\tapprovedScopeHours: autonomyApproval?.estimatedHours,\n\t\t\t\tmaxAutoHoursWithoutApproval: autonomyApproval?.maxAutoHoursWithoutApproval,\n\t\t\t\toverMaxAutoHours: autonomyApproval?.overMaxAutoHours,\n\t\t\t\tbugNotBug: autonomyApproval?.bugNotBug,\n\t\t\t\tbugNotBugClassificationApproved: autonomyApproval?.bugNotBugClassificationApproved,\n\t\t\t\tscopeFingerprint: autonomyApproval?.scopeFingerprint,\n\t\t\t\tscopeChangedSinceApproval: autonomyApproval?.scopeChangedSinceApproval,\n\t\t\t\townerFileFingerprint: autonomyApproval?.ownerFileFingerprint,\n\t\t\t\tapprovedOwnerFileFingerprint: autonomyApproval?.approvedOwnerFileFingerprint,\n\t\t\t\townerFilesChangedSinceApproval: autonomyApproval?.ownerFilesChangedSinceApproval,\n\t\t\t\townerFilesAddedSinceApproval: autonomyApproval?.ownerFilesAddedSinceApproval,\n\t\t\t\townerFilesRemovedSinceApproval: autonomyApproval?.ownerFilesRemovedSinceApproval,\n\t\t\t\tdiagnosisScopeFingerprint: autonomyApproval?.diagnosisScopeFingerprint,\n\t\t\t\tpreviousDiagnosisScopeFingerprint: autonomyApproval?.previousDiagnosisScopeFingerprint,\n\t\t\t\tdiagnosisScopeIncluded: autonomyApproval?.diagnosisScopeIncluded,\n\t\t\t\tdiagnosisScopeValid: autonomyApproval?.diagnosisScopeValid,\n\t\t\t\tdiagnosisScopeChangedSinceApproval: autonomyApproval?.diagnosisScopeChangedSinceApproval,\n\t\t\t\tdiagnosisScopeFields: autonomyApproval?.diagnosisScopeFields,\n\t\t\t\tdiagnosisScopeBlockers: autonomyApproval?.diagnosisScopeBlockers,\n\t\t\t\trequiresOperatorApprovalForAnyScopeChange: autonomyApproval?.requiresOperatorApprovalForAnyScopeChange,\n\t\t\t\tleSixHourScopeCanAutofixAfterApproval: autonomyApproval?.leSixHourScopeCanAutofixAfterApproval,\n\t\t\t\tonTheFlyScopeChangeApprovalRequired: autonomyApproval?.onTheFlyScopeChangeApprovalRequired,\n\t\t\t\tafterApprovalAutopilotUntilAGrade: autonomyApproval?.afterApprovalAutopilotUntilAGrade,\n\t\t\t\tautopilotCompletionStatus: autopilotCompletionProgress?.status,\n\t\t\t\tautopilotCompletionPhase: autopilotCompletionProgress?.activePhase,\n\t\t\t\tautopilotCompletionNextAction: autopilotCompletionProgress?.nextAction,\n\t\t\t\tautopilotCompletionReady: autopilotCompletionProgress?.status === 'complete'\n\t\t\t},\n\t\t\tpreconditions,\n\t\t\texpectedStateTransition: nextActionExpectedTransition(action, primaryCommand),\n\t\t\tsuccessEvidence: Array.from(new Set(requiredEvidence.length ? requiredEvidence : continuationProofCheckpoint.requiredEvidence)).slice(0, 24),\n\t\t\tstopConditions,\n\t\t\tforbiddenActions: Array.from(new Set([\n\t\t\t\t...forbiddenActions,\n\t\t\t\t...(autopilotCompletionProgress?.forbiddenActions || []),\n\t\t\t\t...(productRepairDispatchGuard?.forbiddenActions || []),\n\t\t\t\t...(autonomyPolicy?.forbiddenActions || [])\n\t\t\t])).slice(0, 24),\n\t\t\townerFiles: ownerFiles.slice(0, 24),\n\t\t\tblockers: Array.from(new Set([\n\t\t\t\t...blockers,\n\t\t\t\t...(autopilotCompletionProgress && autopilotCompletionProgress.status !== 'complete' ? autopilotCompletionProgress.blockers : []),\n\t\t\t\t...(productRepairDispatchGuard?.status === 'blocked' ? productRepairDispatchGuard.blockers : []),\n\t\t\t\t...(autonomyPolicy && autonomyPolicy.canAutoDispatch !== true ? [`autonomy_policy:${autonomyPolicy.reason}`] : [])\n\t\t\t])).slice(0, 24),\n\t\t\tnextCommands: Array.from(new Set([\n\t\t\t\t...(productRepairDispatchGuard?.status === 'blocked' && productRepairDispatchGuard.nextAction ? [productRepairDispatchGuard.nextAction] : []),\n\t\t\t\t...(autopilotCompletionProgress && autopilotCompletionProgress.nextAction !== action ? [autopilotCompletionProgress.nextCommand] : []),\n\t\t\t\t...nextCommands\n\t\t\t])).slice(0, 24),\n\t\t\tcreatedAt\n\t\t};\n\t};\n\tconst buildHumanDecisionRequest = (\n\t\taction: ResolveIOSupportV5AutonomousNextAction,\n\t\tlabel: string,\n\t\treason: string,\n\t\tfields: Partial<ResolveIOSupportV5AutonomousDecision>,\n\t\trootCauseReadiness: ResolveIOSupportRootCauseReadiness,\n\t\tcontinuationProofCheckpoint: ResolveIOSupportContinuationProofCheckpoint,\n\t\tnextActionContract: ResolveIOSupportNextActionContract,\n\t\trequiredEvidence: string[],\n\t\tblockers: string[]\n\t): ResolveIOSupportHumanDecisionRequest | undefined => {\n\t\tconst repeatedEvidenceBlocked = evidenceFreshness.mustCollectNewEvidence === true\n\t\t\t|| rootCauseReadiness.sameFailureParked === true\n\t\t\t|| continuationProofCheckpoint.status === 'waiting_for_new_evidence';\n\t\tconst manualApprovalRequired = action === 'park_manual'\n\t\t\t|| action === 'ask_customer_clarification'\n\t\t\t|| nextActionContract.requiresHumanApproval === true\n\t\t\t|| fields.canRunAutonomously !== true;\n\t\tif (!repeatedEvidenceBlocked && !manualApprovalRequired) {\n\t\t\treturn undefined;\n\t\t}\n\t\tconst createdAt = isoNow(input.now);\n\t\tconst autoDispatchAllowed = repeatedEvidenceBlocked\n\t\t\t&& action === 'collect_new_evidence'\n\t\t\t&& nextActionContract.safeToAutoRun === true\n\t\t\t&& nextActionContract.canRunWithoutCodexMonitor === true;\n\t\tconst approvalAction = cleanText(nextActionContract.decisionBasis.autonomyApprovalAction, 120);\n\t\tconst approvalDecisionKind = cleanText(nextActionContract.decisionBasis.autonomyApprovalDecisionKind, 120);\n\t\tconst approvalChoiceId = approvalAction\n\t\t\t? (approvalAction === 'approve_support_autonomy_over_limit' || /over_limit/i.test(approvalDecisionKind)\n\t\t\t\t? 'approve_over_limit_autonomy'\n\t\t\t\t: 'approve_auto_fix_le_6h_bug')\n\t\t\t: '';\n\t\tconst preferredChoiceId = autoDispatchAllowed\n\t\t\t? 'run_bounded_evidence_probe'\n\t\t\t: approvalChoiceId\n\t\t\t\t? approvalChoiceId\n\t\t\t: action === 'ask_customer_clarification'\n\t\t\t\t? 'review_customer_clarification'\n\t\t\t\t: action === 'run_diagnosis_gate' || action === 'revise_diagnosis_scope'\n\t\t\t\t\t? 'revise_diagnosis_gate'\n\t\t\t\t\t: 'keep_parked';\n\t\tconst baseRequiredEvidence = Array.from(new Set([\n\t\t\t...requiredEvidence,\n\t\t\t...continuationProofCheckpoint.requiredResetEvidence,\n\t\t\t...evidenceFreshness.requiredResetEvidence\n\t\t].filter(Boolean))).slice(0, 20);\n\t\tconst choices: ResolveIOSupportHumanDecisionChoice[] = [];\n\t\tif (repeatedEvidenceBlocked) {\n\t\t\tchoices.push({\n\t\t\t\tchoiceId: 'run_bounded_evidence_probe',\n\t\t\t\tlabel: 'Run Evidence Probe',\n\t\t\t\taction: 'collect_new_evidence',\n\t\t\t\tdescription: 'Collect changed issue-specific evidence only; product-code repair remains blocked until blockerFingerprint, evidenceHash, or business proof changes.',\n\t\t\t\tsafety: 'low',\n\t\t\t\trequiresConfirmation: false,\n\t\t\t\tnextCommand: nextActionContract.primaryCommand || 'run_support_v5_recovery_evidence_probe',\n\t\t\t\texpectedResult: nextActionExpectedTransition('collect_new_evidence', nextActionContract.primaryCommand || 'run_support_v5_recovery_evidence_probe'),\n\t\t\t\tallowedWithoutCodexMonitor: autoDispatchAllowed\n\t\t\t});\n\t\t}\n\t\tif (approvalAction) {\n\t\t\tchoices.push({\n\t\t\t\tchoiceId: approvalChoiceId || 'approve_support_autonomy',\n\t\t\t\tlabel: approvalChoiceId === 'approve_over_limit_autonomy' ? 'Approve Over Limit' : 'Approve Autopilot',\n\t\t\t\taction: approvalAction,\n\t\t\t\tdescription: approvalChoiceId === 'approve_over_limit_autonomy'\n\t\t\t\t\t? 'Approve this over-six-hour support scope; after approval the runner continues only inside the approved diagnosis/owner-file boundary until A-grade PR proof or a new scope blocker.'\n\t\t\t\t\t: 'Approve this bounded bug/not-bug support scope; after approval the runner continues to A-grade PR proof with QA screenshots and before/action/after business proof.',\n\t\t\t\tsafety: approvalChoiceId === 'approve_over_limit_autonomy' ? 'high' : 'medium',\n\t\t\t\trequiresConfirmation: true,\n\t\t\t\tnextCommand: approvalAction,\n\t\t\t\texpectedResult: 'Autonomy approval gate changes to approved_autopilot or records the exact scope/estimate/classification field that still blocks product-code repair.',\n\t\t\t\tallowedWithoutCodexMonitor: false\n\t\t\t});\n\t\t}\n\t\tchoices.push({\n\t\t\tchoiceId: 'revise_diagnosis_gate',\n\t\t\tlabel: 'Revise Diagnosis',\n\t\t\taction: 'run_diagnosis_gate',\n\t\t\tdescription: 'Re-run read-only root-cause diagnosis with the new evidence and update owner files/proof plan before any repair loop.',\n\t\t\tsafety: 'low',\n\t\t\trequiresConfirmation: repeatedEvidenceBlocked === false,\n\t\t\tnextCommand: 'revise_support_diagnosis_gate_with_new_evidence',\n\t\t\texpectedResult: nextActionExpectedTransition('run_diagnosis_gate', 'revise_support_diagnosis_gate_with_new_evidence'),\n\t\t\tallowedWithoutCodexMonitor: false\n\t\t});\n\t\tif (action === 'ask_customer_clarification') {\n\t\t\tchoices.push({\n\t\t\t\tchoiceId: 'review_customer_clarification',\n\t\t\t\tlabel: 'Review Clarification',\n\t\t\t\taction: 'ask_customer_clarification',\n\t\t\t\tdescription: 'Review the one customer question before any send action; no product-code repair is allowed from guessed context.',\n\t\t\t\tsafety: 'medium',\n\t\t\t\trequiresConfirmation: true,\n\t\t\t\tnextCommand: nextActionContract.primaryCommand || 'review_customer_clarification',\n\t\t\t\texpectedResult: nextActionExpectedTransition('ask_customer_clarification', nextActionContract.primaryCommand || 'review_customer_clarification'),\n\t\t\t\tallowedWithoutCodexMonitor: false\n\t\t\t});\n\t\t}\n\t\tchoices.push({\n\t\t\tchoiceId: 'keep_parked',\n\t\t\tlabel: 'Keep Parked',\n\t\t\taction: 'park_manual',\n\t\t\tdescription: 'Do not spend more model, QA, release, or customer-send budget until new evidence, scope, budget, or approval changes.',\n\t\t\tsafety: 'low',\n\t\t\trequiresConfirmation: false,\n\t\t\tnextCommand: 'park_support_ticket_until_new_evidence',\n\t\t\texpectedResult: 'The support runner stays parked and records the blocker as waiting for an operator decision or fresh evidence.',\n\t\t\tallowedWithoutCodexMonitor: true\n\t\t});\n\t\tconst blockedUntil = Array.from(new Set([\n\t\t\t...baseRequiredEvidence,\n\t\t\trepeatedEvidenceBlocked ? 'blockerFingerprint changes from the starting repeated blocker' : '',\n\t\t\trepeatedEvidenceBlocked ? 'evidenceHash changes from the starting repeated evidence hash' : '',\n\t\t\trepeatedEvidenceBlocked ? 'fresh AIQaBusinessAssertion, infra/compile proof, release proof, or artifact path is attached' : '',\n\t\t\taction === 'park_manual' ? 'operator changes scope, budget, autonomy policy, or approval' : ''\n\t\t].filter(Boolean))).slice(0, 16);\n\t\treturn {\n\t\t\trequestId: `support-human-decision-${hashResolveIOSupportV5Evidence({\n\t\t\t\taction,\n\t\t\t\tlabel,\n\t\t\t\treason,\n\t\t\t\tpreferredChoiceId,\n\t\t\t\tfailureClass: evidenceFreshness.failureClass,\n\t\t\t\tblockerFingerprint: evidenceFreshness.blockerFingerprint,\n\t\t\t\tevidenceHash: evidenceFreshness.evidenceHash,\n\t\t\t\tcreatedAt: createdAt.slice(0, 16)\n\t\t\t}).slice(0, 16)}`,\n\t\t\trequired: true,\n\t\t\tstatus: autoDispatchAllowed ? 'auto_dispatch_allowed' : 'waiting_for_operator',\n\t\t\treason: repeatedEvidenceBlocked\n\t\t\t\t? `${reason} Same failure evidence repeated; repair is blocked until new evidence changes the proof state.`\n\t\t\t\t: reason,\n\t\t\tquestion: repeatedEvidenceBlocked\n\t\t\t\t? 'Same blocker/evidence repeated. Run one bounded evidence probe, revise diagnosis with new facts, or keep the ticket parked?'\n\t\t\t\t: action === 'ask_customer_clarification'\n\t\t\t\t\t? 'Customer context is missing. Review the clarification question or keep the ticket parked?'\n\t\t\t\t\t: `Human approval is required for ${label}. What should the runner do next?`,\n\t\t\tpreferredChoiceId,\n\t\t\tevidence: {\n\t\t\t\tfailureClass: evidenceFreshness.failureClass,\n\t\t\t\tblocker: cleanText(blockers[0] || reason, 1000),\n\t\t\t\tblockerFingerprint: evidenceFreshness.blockerFingerprint,\n\t\t\t\tevidenceHash: evidenceFreshness.evidenceHash,\n\t\t\t\tsameFailureCount: evidenceFreshness.sameFailureCount,\n\t\t\t\tpingPongCount: evidenceFreshness.pingPongCount,\n\t\t\t\tevidenceStrength: evidenceFreshness.evidenceStrength,\n\t\t\t\trequiredResetEvidence: baseRequiredEvidence,\n\t\t\t\trecentArtifactPaths: evidenceFreshness.artifactPaths.slice(0, 20),\n\t\t\t\tchangedFiles: evidenceFreshness.changedFiles.slice(0, 20),\n\t\t\t\tnextActionContractId: nextActionContract.contractId\n\t\t\t},\n\t\t\tchoices: choices\n\t\t\t\t.filter((choice, index, source) => source.findIndex((candidate) => candidate.choiceId === choice.choiceId) === index)\n\t\t\t\t.slice(0, 6),\n\t\t\tblockedUntil,\n\t\t\tautoDispatchAllowed,\n\t\t\tcreatedAt\n\t\t};\n\t};\n\tconst makeDecision = (\n\t\taction: ResolveIOSupportV5AutonomousNextAction,\n\t\tlabel: string,\n\t\treason: string,\n\t\tfields: Partial<ResolveIOSupportV5AutonomousDecision> & {\n\t\t\tfailureClass?: string;\n\t\t\tblockerFingerprint?: string;\n\t\t\tevidenceHash?: string;\n\t\t}\n\t): ResolveIOSupportV5AutonomousDecision => {\n\t\tconst primaryCommand = fields.primaryCommand || action;\n\t\tconst nextCommands = Array.from(new Set([\n\t\t\tprimaryCommand,\n\t\t\t...(fields.nextCommands || [])\n\t\t].filter(Boolean)));\n\t\tconst requiredEvidence = fields.requiredEvidence || [];\n\t\tconst blockers = fields.blockers || [];\n\t\tconst rootCauseReadiness = buildRootCauseReadiness(action, reason, fields, primaryCommand, nextCommands, blockers);\n\t\tconst forbiddenActions = Array.from(new Set([\n\t\t\t'Do not send customer email without explicit human approval.',\n\t\t\t'Do not broaden owner_files without revised diagnosis evidence.',\n\t\t\t'Do not accept route-load, screenshot-only, scorecard-only, or model-claim proof.',\n\t\t\t...(fields.forbiddenActions || [])\n\t\t]));\n\t\tconst continuationProofCheckpoint = buildResolveIOSupportContinuationProofCheckpoint({\n\t\t\taction,\n\t\t\treason,\n\t\t\tevidenceFreshness,\n\t\t\trequiredEvidence,\n\t\t\trequiredResetEvidence: fields.requiredEvidence,\n\t\t\tblocksProductRepair: evidenceFreshness.mustCollectNewEvidence === true\n\t\t});\n\t\tconst editsProductCode = fields.canEditProductCode === true || action === 'run_owner_scoped_repair';\n\t\tconst autonomyApproval = normalizeResolveIOSupportAutonomyApprovalContract(input.autonomyApproval, {\n\t\t\trequired: input.requireAutonomyApprovalForProductRepair === true && editsProductCode,\n\t\t\taction,\n\t\t\townerFiles,\n\t\t\tnow: input.now\n\t\t});\n\t\tconst productRepairDispatchGuard = autonomyApproval\n\t\t\t? buildResolveIOSupportProductRepairDispatchGuard({\n\t\t\t\taction,\n\t\t\t\tapproval: autonomyApproval,\n\t\t\t\teditsProductCode,\n\t\t\t\townerFiles,\n\t\t\t\tnow: input.now\n\t\t\t})\n\t\t\t: undefined;\n\t\tconst autopilotCompletionProgress = buildResolveIOSupportAutopilotCompletionProgress({\n\t\t\tapproval: autonomyApproval,\n\t\t\tproductRepairDispatchGuard,\n\t\t\taction,\n\t\t\tdiagnosisValid: diagnosisValidation.valid === true,\n\t\t\tpreflightGate,\n\t\t\tbusinessProofReadiness,\n\t\t\tbusinessProofArtifacts: input.businessProofArtifacts,\n\t\t\tchangedFiles: input.changedFiles,\n\t\t\tprReadinessContract: input.prReadinessContract,\n\t\t\tprReviewContract: input.prReviewContract,\n\t\t\tnow: input.now\n\t\t});\n\t\tconst evidenceProbeContract = action === 'collect_new_evidence'\n\t\t\t? buildResolveIOSupportEvidenceProbeContract({\n\t\t\t\tdiagnosisGate: diagnosisValidation.normalized,\n\t\t\t\tissueClassProbePlan,\n\t\t\t\tevidenceFreshness,\n\t\t\t\trequiredEvidence,\n\t\t\t\tnow: input.now\n\t\t\t})\n\t\t\t: undefined;\n\t\tconst autonomyPolicy = input.autonomyPolicy\n\t\t\t? decideResolveIOAIManagerAutonomyPolicy({\n\t\t\t\t...input.autonomyPolicy,\n\t\t\t\tdispatchAction: supportManagerDispatchActionForNextAction(action, fields, preflightGate),\n\t\t\t\tprojectedActionCostUsd: input.autonomyPolicy.projectedActionCostUsd ?? supportProjectedActionCostUsdForNextAction(action, fields),\n\t\t\t\tevidenceStrength: input.autonomyPolicy.evidenceStrength || evidenceFreshness.evidenceStrength,\n\t\t\t\tmaterialEvidence: input.autonomyPolicy.materialEvidence ?? evidenceFreshness.materialEvidence,\n\t\t\t\tnewEvidence: input.autonomyPolicy.newEvidence ?? evidenceFreshness.newEvidence,\n\t\t\t\tevidenceSignals: input.autonomyPolicy.evidenceSignals || evidenceFreshness.evidenceSignals,\n\t\t\t\toperatorApproved: input.operatorApproved ?? input.autonomyPolicy.operatorApproved\n\t\t\t})\n\t\t\t: undefined;\n\t\tconst nextActionContract = buildNextActionContract(\n\t\t\taction,\n\t\t\tlabel,\n\t\t\treason,\n\t\t\tfields,\n\t\t\trootCauseReadiness,\n\t\t\tcontinuationProofCheckpoint,\n\t\t\tprimaryCommand,\n\t\t\tnextCommands,\n\t\t\trequiredEvidence,\n\t\t\tforbiddenActions,\n\t\t\tblockers,\n\t\t\tevidenceProbeContract,\n\t\t\tautonomyApproval,\n\t\t\tproductRepairDispatchGuard,\n\t\t\tautopilotCompletionProgress\n\t\t);\n\t\tconst managerExecutionPacket = buildResolveIOSupportManagerExecutionPacket(nextActionContract, input.now);\n\t\tconst humanReviewPacket = fields.humanReviewPacket\n\t\t\t|| (action === 'draft_customer_reply' && customerReplyPolicy.humanReviewPacket ? customerReplyPolicy.humanReviewPacket : undefined)\n\t\t\t|| buildResolveIOSupportHumanReviewPacket({\n\t\t\t\treviewType: supportAutonomousReviewTypeForAction(action),\n\t\t\t\ttitle: label,\n\t\t\t\tsummary: reason,\n\t\t\t\tprimaryAction: primaryCommand,\n\t\t\t\tcustomerFacingDraftAllowed: fields.canDraftCustomerReply === true,\n\t\t\t\tsafety: action === 'draft_customer_reply' ? 'safe_to_draft' : 'internal_hold',\n\t\t\t\treason,\n\t\t\t\tblockers,\n\t\t\t\trequiredEvidence,\n\t\t\t\tevidenceRefs: businessProofReadiness.artifactPaths,\n\t\t\t\tnextCommands,\n\t\t\t\tforbiddenActions,\n\t\t\t\tcostRisk: fields.canHotfixBackend === true || action === 'draft_customer_reply'\n\t\t\t\t\t? 'release_or_customer_send'\n\t\t\t\t\t: fields.canRunModel === true\n\t\t\t\t\t\t? 'expensive_model'\n\t\t\t\t\t\t: fields.canRunQa === true\n\t\t\t\t\t\t\t? 'small_model_or_qa'\n\t\t\t\t\t\t\t: 'free_or_deterministic',\n\t\t\t\tnow: input.now\n\t\t\t});\n\t\tconst humanDecisionRequest = buildHumanDecisionRequest(\n\t\t\taction,\n\t\t\tlabel,\n\t\t\treason,\n\t\t\tfields,\n\t\t\trootCauseReadiness,\n\t\t\tcontinuationProofCheckpoint,\n\t\t\tnextActionContract,\n\t\t\trequiredEvidence,\n\t\t\tblockers\n\t\t);\n\t\tconst customerReplyReadiness = customerReplyPolicy.readinessContract || buildResolveIOSupportCustomerReplyReadinessContract({\n\t\t\tpolicy: customerReplyPolicy,\n\t\t\tdiagnosisValidation,\n\t\t\tissueClassProbePlanValidation,\n\t\t\tbusinessProofReadiness\n\t\t});\n\t\treturn {\n\t\t\taction,\n\t\t\tlabel,\n\t\t\treason,\n\t\t\tcanRunAutonomously: fields.canRunAutonomously === true,\n\t\t\tcanEditProductCode: fields.canEditProductCode === true,\n\t\t\tcanRunModel: fields.canRunModel === true,\n\t\t\tcanRunQa: fields.canRunQa === true,\n\t\t\tcanPrepareHotfixPatch: fields.canPrepareHotfixPatch === true,\n\t\t\tcanHotfixBackend: fields.canHotfixBackend === true,\n\t\t\tliveHotfixBlockedUntilCommit: fields.liveHotfixBlockedUntilCommit === true,\n\t\t\tcanDraftCustomerReply: fields.canDraftCustomerReply === true,\n\t\t\tcanSendCustomerReply: false,\n\t\t\tlane: fields.lane || activeMicrotask?.lane || 'supervisor',\n\t\t\tstepType: fields.stepType || activeStepType,\n\t\t\tmicrotaskId: activeMicrotask?.microtaskId,\n\t\t\tprimaryCommand,\n\t\t\tnextCommands,\n\t\t\trequiredEvidence,\n\t\t\tforbiddenActions,\n\t\t\tblockers,\n\t\t\townerFiles,\n\t\t\tissueClass: diagnosisValidation.normalized?.issue_class || repairGate.issueClass,\n\t\t\texpectedProof,\n\t\t\tissueClassProbes,\n\t\t\tissueClassProbePlan,\n\t\t\tissueClassProbePlanValidation,\n\t\t\tactiveMicrotask,\n\t\t\tdiagnosisValidation,\n\t\t\trepairGate,\n\t\t\tcontinuation,\n\t\t\tcustomerReplyPolicy,\n\t\t\tcustomerReplyReadiness,\n\t\t\tbusinessProofReadiness,\n\t\t\tevidenceFreshness,\n\t\t\tpreflightGate,\n\t\t\trootCauseReadiness,\n\t\t\tcontinuationProofCheckpoint,\n\t\t\tnextActionContract,\n\t\t\tmanagerExecutionPacket,\n\t\t\thumanReviewPacket,\n\t\t\thumanDecisionRequest,\n\t\t\tevidenceProbeContract,\n\t\t\tautonomyApproval,\n\t\t\tproductRepairDispatchGuard,\n\t\t\tautopilotCompletionProgress,\n\t\t\tautonomyPolicy,\n\t\t\thotfixContinuation: fields.hotfixContinuation,\n\t\t\thotfixDurabilityContract: fields.hotfixDurabilityContract as ResolveIOAIManagerHotfixDurabilityContract | undefined,\n\t\t\trecordedAt: isoNow(input.now)\n\t\t};\n\t};\n\tif (continuation.action === 'park' && continuation.reason === 'support_v5_budget_guard') {\n\t\treturn makeDecision('park_manual', 'Park Manual', continuation.reason, {\n\t\t\tcanRunAutonomously: false,\n\t\t\tlane: 'supervisor',\n\t\t\tstepType: 'cleanup',\n\t\t\tprimaryCommand: 'park_support_ticket_for_manual_budget_review',\n\t\t\trequiredEvidence: ['budget summary', 'latest blocker', 'operator decision'],\n\t\t\tblockers: ['Support V5 budget guard is active.']\n\t\t});\n\t}\n\tif (continuation.action === 'park') {\n\t\treturn makeDecision('collect_new_evidence', 'Collect New Evidence', continuation.reason, {\n\t\t\tcanRunAutonomously: true,\n\t\t\tcanRunModel: false,\n\t\t\tcanRunQa: true,\n\t\t\tlane: activeMicrotask?.lane || 'qa',\n\t\t\tstepType: activeStepType,\n\t\t\tprimaryCommand: 'run_support_v5_recovery_evidence_probe',\n\t\t\tnextCommands: continuation.recoveryAction.nextCommands,\n\t\t\trequiredEvidence: continuation.recoveryAction.requiredArtifacts,\n\t\t\tblockers: [continuation.reason],\n\t\t\tforbiddenActions: ['Do not run another product-code repair until blockerFingerprint or evidenceHash changes.']\n\t\t});\n\t}\n\tif (customerReplyPolicy.action === 'ask_clarification') {\n\t\treturn makeDecision('ask_customer_clarification', 'Ask Customer Clarification', customerReplyPolicy.reason, {\n\t\t\tcanRunAutonomously: false,\n\t\t\tcanRunModel: false,\n\t\t\tcanEditProductCode: false,\n\t\t\tcanDraftCustomerReply: true,\n\t\t\tlane: 'customer',\n\t\t\tstepType: 'customer_reply',\n\t\t\tprimaryCommand: customerReplyPolicy.humanReviewPacket?.primaryAction || 'review_customer_clarification',\n\t\t\tnextCommands: customerReplyPolicy.humanReviewPacket?.nextCommands || ['edit_clarification_question', 'send_after_human_review', 'park_ticket_until_customer_reply'],\n\t\t\trequiredEvidence: customerReplyPolicy.requiredEvidence,\n\t\t\tblockers: diagnosisValidation.blockers,\n\t\t\tforbiddenActions: [\n\t\t\t\t'Do not run repair from a guessed reproduction path.',\n\t\t\t\t'Do not send customer email without explicit human approval.'\n\t\t\t],\n\t\t\thumanReviewPacket: customerReplyPolicy.humanReviewPacket\n\t\t});\n\t}\n\tif (repairGate.action === 'diagnose_only' || activeMicrotask?.type === 'diagnosis_gate' || !diagnosisValidation.valid) {\n\t\treturn makeDecision('run_diagnosis_gate', 'Run Diagnosis Gate', 'support_v5_root_cause_first_required', {\n\t\t\tcanRunAutonomously: true,\n\t\t\tcanRunModel: true,\n\t\t\tcanEditProductCode: false,\n\t\t\tlane: 'build',\n\t\t\tstepType: 'diagnosis_gate',\n\t\t\tprimaryCommand: 'run_support_v5_read_only_diagnosis_gate',\n\t\t\tnextCommands: ['retrieve_similar_tickets_and_commits', 'run_reproduction_or_classification_probe', 'write_support_diagnosis_gate_json'],\n\t\t\trequiredEvidence: [\n\t\t\t\t'issue_case expected/observed/account context',\n\t\t\t\t'accepted falsifiable hypothesis',\n\t\t\t\t'rejected alternatives',\n\t\t\t\t'failing path',\n\t\t\t\t'small owner_files set',\n\t\t\t\t'before/action/after business proof plan'\n\t\t\t],\n\t\t\tblockers: repairGate.blockers,\n\t\t\tforbiddenActions: ['No source edits during diagnosis.']\n\t\t});\n\t}\n\tif (repairGate.action === 'infra_repair_only') {\n\t\tconst compileOnly = repairGate.preflightGate.failureClass === 'compile' || input.failureClass === 'compile';\n\t\tconst preflightNextCommand = repairGate.preflightGate.nextCommand === 'continue_to_diagnosis'\n\t\t\t? undefined\n\t\t\t: repairGate.preflightGate.nextCommand;\n\t\treturn makeDecision('repair_infra_only', compileOnly ? 'Repair Compile Only' : 'Repair Infra Only', 'support_v5_infra_failure_before_product_repair', {\n\t\t\tcanRunAutonomously: true,\n\t\t\tcanRunModel: false,\n\t\t\tcanEditProductCode: false,\n\t\t\tcanRunQa: true,\n\t\t\tlane: 'qa',\n\t\t\tstepType: activeStepType,\n\t\t\tprimaryCommand: preflightNextCommand || (compileOnly ? 'run_support_v5_compile_repair' : 'run_support_v5_infra_repair'),\n\t\t\tnextCommands: Array.from(new Set([\n\t\t\t\tpreflightNextCommand || (compileOnly ? 'run_support_v5_compile_repair' : 'run_support_v5_infra_repair'),\n\t\t\t\t'rerun_puppeteer_compile_startup_preflight',\n\t\t\t\tcompileOnly ? 'repair_compile_or_cache_only' : 'repair_harness_or_cache_only',\n\t\t\t\t'record_infra_artifact'\n\t\t\t])),\n\t\t\trequiredEvidence: repairGate.preflightGate.requiredEvidence.length\n\t\t\t\t? repairGate.preflightGate.requiredEvidence\n\t\t\t\t: ['preflight log', 'compile/startup/browser status', 'new infra blocker hash or pass'],\n\t\t\tblockers: repairGate.blockers,\n\t\t\tforbiddenActions: ['Do not charge infra failures as product-code repair failures.']\n\t\t});\n\t}\n\tif (repairGate.action === 'reject_out_of_scope') {\n\t\treturn makeDecision('revise_diagnosis_scope', 'Revise Diagnosis Scope', 'support_v5_owner_scope_block', {\n\t\t\tcanRunAutonomously: true,\n\t\t\tcanRunModel: true,\n\t\t\tcanEditProductCode: false,\n\t\t\tlane: 'build',\n\t\t\tstepType: 'diagnosis_gate',\n\t\t\tprimaryCommand: 'revise_support_diagnosis_gate_with_new_owner_file_evidence',\n\t\t\tnextCommands: ['attach_out_of_scope_diff', 'prove_new_owner_file_is_required', 'update_support_diagnosis_gate'],\n\t\t\trequiredEvidence: ['new root-cause evidence for each added owner file'],\n\t\t\tblockers: repairGate.blockers,\n\t\t\tforbiddenActions: ['Do not edit files outside owner_files before diagnosis is revised.']\n\t\t});\n\t}\n\tif (repairGate.action === 'park_repeated_failure') {\n\t\treturn makeDecision('collect_new_evidence', 'Collect New Evidence', 'support_v5_repeated_failure_needs_new_evidence', {\n\t\t\tcanRunAutonomously: true,\n\t\t\tcanRunModel: false,\n\t\t\tcanRunQa: true,\n\t\t\tlane: activeMicrotask?.lane || 'qa',\n\t\t\tstepType: activeStepType,\n\t\t\tprimaryCommand: 'run_support_v5_recovery_evidence_probe',\n\t\t\tnextCommands: repairGate.recoveryAction.nextCommands,\n\t\t\trequiredEvidence: repairGate.recoveryAction.requiredArtifacts,\n\t\t\tblockers: repairGate.blockers,\n\t\t\tforbiddenActions: ['Do not run another repair loop until new material evidence exists.']\n\t\t});\n\t}\n\tif (evidenceFreshness.mustCollectNewEvidence === true && repairGate.action === 'allow_product_repair') {\n\t\treturn makeDecision('collect_new_evidence', 'Collect New Evidence', 'support_v5_no_blind_loop_requires_changed_evidence', {\n\t\t\tcanRunAutonomously: true,\n\t\t\tcanRunModel: false,\n\t\t\tcanRunQa: true,\n\t\t\tcanEditProductCode: false,\n\t\t\tlane: activeMicrotask?.lane || 'qa',\n\t\t\tstepType: activeStepType,\n\t\t\tprimaryCommand: 'run_support_v5_recovery_evidence_probe',\n\t\t\tnextCommands: ['execute_issue_class_probe', 'record_changed_blocker_or_business_proof', 'write_aiqa_business_assertion_or_blocker_artifact'],\n\t\t\trequiredEvidence: evidenceFreshness.requiredResetEvidence.length\n\t\t\t\t? evidenceFreshness.requiredResetEvidence\n\t\t\t\t: ['changed blockerFingerprint or evidenceHash', 'fresh issue-specific business proof artifact'],\n\t\t\tblockers: [evidenceFreshness.reason || 'Repeated failure needs fresh evidence before owner-scoped repair.'],\n\t\t\tforbiddenActions: ['Do not edit product code in this recovery; collect changed browser/data/business-proof evidence only.']\n\t\t});\n\t}\n\tif (supportReleaseLooksBlocked(input.releaseStatus)) {\n\t\tconst releaseBlocker = cleanList(input.unresolvedBlockers, 20, 500).join('; ')\n\t\t\t|| cleanText(input.blocker || input.releaseStatus, 1000)\n\t\t\t|| 'Support release is blocked.';\n\t\tconst hotfixContinuation = decideResolveIOAIManagerHotfixContinuation({\n\t\t\tevidence: input.hotfixEvidence,\n\t\t\tpolicy: input.releasePolicy,\n\t\t\treleaseGatePassed: input.releaseGatePassed,\n\t\t\tfailureClass: 'release',\n\t\t\tblocker: releaseBlocker,\n\t\t\tnow: input.now\n\t\t});\n\t\tconst hotfixPrimaryCommandByAction: Record<string, string> = {\n\t\t\trecord_hotfix_evidence: 'record_hotfix_evidence',\n\t\t\trequest_force_deploy_reason: 'request_force_deploy_reason',\n\t\t\trerun_release_gate: 'rerun_support_release_gate_once',\n\t\t\tcontinue_runner: 'continue_support_runner_after_committed_hotfix',\n\t\t\tallow_one_full_deploy: 'execute_one_full_deploy_with_force_evidence',\n\t\t\tpark_manual: 'park_support_release_manual'\n\t\t};\n\t\tconst hotfixNextCommands = Array.from(new Set([\n\t\t\t'classify_release_blocker',\n\t\t\t'prepare_hotfix_patch_without_live_apply',\n\t\t\t'commit_and_push_hotfix_to_github',\n\t\t\t'record_github_commit_for_hotfix',\n\t\t\t...hotfixContinuation.nextCommands,\n\t\t\t'apply_backend_hotfix_only_after_commit_proof',\n\t\t\t'rerun_release_gate_once'\n\t\t]));\n\t\tconst hotfixRequiredEvidence = Array.from(new Set([\n\t\t\t'hotfix evidence',\n\t\t\t'full sourceCommitSha, githubCommitUrl, passed gitCommitStatus, and passed gitPushStatus for the exact pushed GitHub commit',\n\t\t\t'checksum before/after',\n\t\t\t'health/self-test pass',\n\t\t\t'release gate result',\n\t\t\t...hotfixContinuation.requiredEvidence\n\t\t]));\n\t\tconst hotfixForbiddenActions = [\n\t\t\t'Do not apply a live hotfix before the exact diff is committed and pushed to GitHub.',\n\t\t\t'Do not mark a hotfix durable without sourceCommitSha, githubCommitUrl, passed gitCommitStatus, and passed gitPushStatus.',\n\t\t\t'Do not run a full deploy to clear a duplicate release loop unless force evidence explicitly allows one.'\n\t\t];\n\t\tconst hotfixGitGuard = hotfixContinuation.githubCommitGuard;\n\t\tconst liveHotfixBlockedUntilCommit = hotfixContinuation.action === 'record_hotfix_evidence'\n\t\t\t|| hotfixGitGuard?.managerMustCommitBeforeHotfix === true\n\t\t\t|| (hotfixGitGuard?.required === true && hotfixGitGuard?.passed !== true);\n\t\tconst hotfixDurabilityContract = buildResolveIOAIManagerHotfixDurabilityContract({\n\t\t\taction: 'run_release_repair',\n\t\t\treason: releaseBlocker,\n\t\t\tevidence: input.hotfixEvidence,\n\t\t\tpolicy: input.releasePolicy,\n\t\t\tcontinuation: hotfixContinuation,\n\t\t\treleaseGatePassed: input.releaseGatePassed,\n\t\t\tsource: 'support_v5_autonomous_decision',\n\t\t\tnow: input.now\n\t\t});\n\t\treturn makeDecision('repair_release_hotfix_first', 'Hotfix Release', 'support_v5_release_blocked_hotfix_first', {\n\t\t\tcanRunAutonomously: hotfixContinuation.action !== 'park_manual',\n\t\t\tcanRunModel: false,\n\t\t\tcanEditProductCode: false,\n\t\t\tcanPrepareHotfixPatch: hotfixDurabilityContract.canPrepareHotfixPatch,\n\t\t\tcanHotfixBackend: hotfixDurabilityContract.canHotfixBackend,\n\t\t\tliveHotfixBlockedUntilCommit: hotfixDurabilityContract.liveHotfixBlockedUntilCommit || liveHotfixBlockedUntilCommit,\n\t\t\tlane: 'release',\n\t\t\tstepType: 'release_gate',\n\t\t\tprimaryCommand: hotfixDurabilityContract.liveHotfixBlockedUntilCommit\n\t\t\t\t? 'record_hotfix_evidence'\n\t\t\t\t: hotfixPrimaryCommandByAction[hotfixContinuation.action] || hotfixDurabilityContract.nextSafeAction || 'record_hotfix_evidence',\n\t\t\tnextCommands: hotfixNextCommands,\n\t\t\trequiredEvidence: Array.from(new Set([\n\t\t\t\t...hotfixRequiredEvidence,\n\t\t\t\t...hotfixDurabilityContract.requiredEvidence\n\t\t\t])).slice(0, 30),\n\t\t\tblockers: Array.from(new Set([\n\t\t\t\t...cleanList(input.unresolvedBlockers, 20, 500),\n\t\t\t\t...hotfixContinuation.blockers,\n\t\t\t\t...(hotfixDurabilityContract.liveHotfixBlockedUntilCommit\n\t\t\t\t\t? [`Hotfix durability contract ${hotfixDurabilityContract.contractId} requires GitHub commit and push proof before live backend apply.`]\n\t\t\t\t\t: [])\n\t\t\t])),\n\t\t\tforbiddenActions: Array.from(new Set([\n\t\t\t\t...hotfixForbiddenActions,\n\t\t\t\t...hotfixDurabilityContract.forbiddenActions\n\t\t\t])).slice(0, 20),\n\t\t\thotfixContinuation,\n\t\t\thotfixDurabilityContract\n\t\t});\n\t}\n\tif (customerReplyPolicy.action === 'hold_internal' && customerReplyPolicy.reason === 'support_reply_blocked_until_release_or_hotfix_gate_finishes') {\n\t\treturn makeDecision('repair_release_hotfix_first', 'Hotfix Release', 'support_v5_reply_blocked_by_hotfix_evidence', {\n\t\t\tcanRunAutonomously: true,\n\t\t\tcanRunModel: false,\n\t\t\tcanEditProductCode: false,\n\t\t\tcanPrepareHotfixPatch: true,\n\t\t\tcanHotfixBackend: false,\n\t\t\tliveHotfixBlockedUntilCommit: true,\n\t\t\tlane: 'release',\n\t\t\tstepType: 'release_gate',\n\t\t\tprimaryCommand: customerReplyPolicy.humanReviewPacket?.primaryAction || 'repair_release_hotfix_first',\n\t\t\tnextCommands: customerReplyPolicy.humanReviewPacket?.nextCommands || ['record_hotfix_evidence', 'commit_and_push_hotfix_to_github', 'rerun_release_gate_once'],\n\t\t\trequiredEvidence: customerReplyPolicy.requiredEvidence,\n\t\t\tblockers: customerReplyPolicy.humanReviewPacket?.blockers || ['Release or hotfix evidence is incomplete.'],\n\t\t\tforbiddenActions: ['Do not draft a customer resolution until hotfix commit proof and release evidence are complete.'],\n\t\t\thumanReviewPacket: customerReplyPolicy.humanReviewPacket\n\t\t});\n\t}\n\tif (activeMicrotask?.lane === 'qa' || /^(qa_row|qa_retest|business_proof|route_probe|issue_class_probe)$/.test(activeStepType)) {\n\t\treturn makeDecision('run_business_proof_qa', 'Run Business Proof QA', 'support_v5_business_assertion_required', {\n\t\t\tcanRunAutonomously: true,\n\t\t\tcanRunQa: true,\n\t\t\tcanRunModel: false,\n\t\t\tcanEditProductCode: false,\n\t\t\tlane: 'qa',\n\t\t\tstepType: /^(qa_row|qa_retest|business_proof|route_probe|issue_class_probe)$/.test(activeStepType) ? activeStepType : 'qa_row',\n\t\t\tprimaryCommand: 'run_support_v5_business_proof_qa_row',\n\t\t\tnextCommands: ['start_local_stack_if_needed', 'execute_issue_class_probe', 'record_before_action_after_artifacts', 'write_aiqa_business_assertion'],\n\t\t\trequiredEvidence: Array.from(new Set(['AIQaBusinessAssertion pass', 'DOM/data proof', 'artifact path', 'Mongo delta when data-changing', ...issueClassProbeEvidence])),\n\t\t\tforbiddenActions: ['Route probe pass alone remains route evidence only.']\n\t\t});\n\t}\n\tif (!activeMicrotask && customerReplyPolicy.action === 'draft_resolution_reply') {\n\t\treturn makeDecision('draft_customer_reply', 'Draft Customer Reply', customerReplyPolicy.reason, {\n\t\t\tcanRunAutonomously: true,\n\t\t\tcanRunModel: true,\n\t\t\tcanDraftCustomerReply: true,\n\t\t\tlane: 'customer',\n\t\t\tstepType: 'customer_reply',\n\t\t\tprimaryCommand: 'draft_support_customer_resolution_reply',\n\t\t\tnextCommands: ['summarize_business_proof', 'draft_customer_reply_for_human_review'],\n\t\t\trequiredEvidence: customerReplyPolicy.requiredEvidence,\n\t\t\tforbiddenActions: ['Draft only; do not send.']\n\t\t});\n\t}\n\tif (!activeMicrotask && diagnosisValidation.valid && !businessProofReadiness.ready) {\n\t\treturn makeDecision('run_business_proof_qa', 'Run Business Proof QA', businessProofReadiness.reason, {\n\t\t\tcanRunAutonomously: true,\n\t\t\tcanRunQa: true,\n\t\t\tcanRunModel: false,\n\t\t\tcanEditProductCode: false,\n\t\t\tlane: 'qa',\n\t\t\tstepType: 'business_proof',\n\t\t\tprimaryCommand: 'run_support_v5_business_proof_qa_row',\n\t\t\tnextCommands: ['execute_issue_class_probe', 'record_before_action_after_artifacts', 'write_aiqa_business_assertion'],\n\t\t\trequiredEvidence: Array.from(new Set([...businessProofReadiness.requiredEvidence, ...issueClassProbeEvidence])),\n\t\t\tblockers: businessProofReadiness.blockers,\n\t\t\tforbiddenActions: ['Do not run release or customer reply until businessProofReadiness.ready=true.']\n\t\t});\n\t}\n\tconst prReadinessContract = cleanObject(input.prReadinessContract);\n\tconst prReadinessStatus = cleanText(prReadinessContract.status, 120).toLowerCase();\n\tconst prReadinessReady = prReadinessContract.ready === true || prReadinessStatus === 'ready';\n\tconst pullRequestUrl = cleanText(prReadinessContract.pull_request_url || prReadinessContract.pullRequestUrl, 500);\n\tconst prReviewContract = normalizeSupportAutopilotPrReviewContract(input.prReviewContract);\n\tconst prReviewReady = prReviewContract.ready === true;\n\tconst approvalSource = cleanObject(input.autonomyApproval);\n\tconst approvedAutopilotUntilPr = (approvalSource.approved === true || cleanText(approvalSource.status, 120).toLowerCase() === 'approved_autopilot')\n\t\t&& (\n\t\t\tapprovalSource.after_approval_autopilot_until_a_grade === true\n\t\t\t|| approvalSource.afterApprovalAutopilotUntilAGrade === true\n\t\t\t|| approvalSource.autopilot_after_approval_until_a_grade === true\n\t\t\t|| approvalSource.autopilotAfterApprovalUntilAGrade === true\n\t\t\t|| !!approvalSource.autopilot_completion_contract\n\t\t\t|| !!approvalSource.autopilotCompletionContract\n\t\t);\n\tif (!activeMicrotask && businessProofReadiness.ready && (approvedAutopilotUntilPr || prReadinessReady) && !pullRequestUrl) {\n\t\treturn makeDecision('create_pr', 'Create PR', 'support_v5_business_proof_complete_create_a_grade_pr', {\n\t\t\tcanRunAutonomously: true,\n\t\t\tcanRunModel: false,\n\t\t\tcanRunQa: false,\n\t\t\tcanEditProductCode: false,\n\t\t\tlane: 'release',\n\t\t\tstepType: 'release_gate',\n\t\t\tprimaryCommand: 'createSupportTicketCodexPullRequestManual',\n\t\t\tnextCommands: [\n\t\t\t\t'create_pr',\n\t\t\t\t'createSupportTicketCodexPullRequestManual',\n\t\t\t\t'record_support_pr_readiness_contract',\n\t\t\t\t'run_a_grade_pr_review',\n\t\t\t\t'park_before_merge_release_or_customer_send'\n\t\t\t],\n\t\t\trequiredEvidence: [\n\t\t\t\t'AIQaBusinessAssertion pass',\n\t\t\t\t'QA screenshot or trace artifact',\n\t\t\t\t'changed files subset of owner_files',\n\t\t\t\t'PR readiness contract',\n\t\t\t\t'pull_request_url'\n\t\t\t],\n\t\t\tforbiddenActions: [\n\t\t\t\t'Do not merge the PR from this action.',\n\t\t\t\t'Do not release, deploy, or send customer success reply from PR packaging alone.'\n\t\t\t]\n\t\t});\n\t}\n\tif (!activeMicrotask && businessProofReadiness.ready && approvedAutopilotUntilPr && pullRequestUrl) {\n\t\tif (!prReviewReady) {\n\t\t\tif (prReviewContract.nextAction === 'run_business_proof_qa') {\n\t\t\t\treturn makeDecision('run_business_proof_qa', 'Run Business Proof QA', 'support_v5_a_grade_review_requires_business_proof', {\n\t\t\t\t\tfailureClass: prReviewContract.failureClass || 'business_proof',\n\t\t\t\t\tblockerFingerprint: prReviewContract.blockerFingerprint,\n\t\t\t\t\tevidenceHash: prReviewContract.evidenceHash,\n\t\t\t\t\tcanRunAutonomously: true,\n\t\t\t\t\tcanRunQa: true,\n\t\t\t\t\tcanRunModel: false,\n\t\t\t\t\tcanEditProductCode: false,\n\t\t\t\t\tlane: 'qa',\n\t\t\t\t\tstepType: 'business_proof',\n\t\t\t\t\tprimaryCommand: 'run_support_v5_business_proof_qa_row',\n\t\t\t\t\tnextCommands: ['execute_issue_class_probe', 'record_before_action_after_artifacts', 'write_aiqa_business_assertion', 'rerun_support_a_grade_pr_review'],\n\t\t\t\t\trequiredEvidence: Array.from(new Set([\n\t\t\t\t\t\t'AIQaBusinessAssertion before/action/after proof',\n\t\t\t\t\t\t'QA screenshot or trace artifact',\n\t\t\t\t\t\t...prReviewContract.evidenceRefs\n\t\t\t\t\t])),\n\t\t\t\t\tblockers: Array.from(new Set([\n\t\t\t\t\t\t...prReviewContract.blockers,\n\t\t\t\t\t\tprReviewContract.strictGateReason ? `strict_gate:${prReviewContract.strictGateReason}` : '',\n\t\t\t\t\t\tprReviewContract.blockerFingerprint ? `blocker_fingerprint:${prReviewContract.blockerFingerprint}` : ''\n\t\t\t\t\t].filter(Boolean))),\n\t\t\t\t\tforbiddenActions: ['Do not merge, release, deploy, or send customer reply until A-grade PR review passes.']\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (prReviewContract.nextAction === 'run_owner_scoped_repair') {\n\t\t\t\treturn makeDecision('run_owner_scoped_repair', 'Run Owner-Scoped Repair', 'support_v5_a_grade_review_requires_owner_scoped_repair', {\n\t\t\t\t\tfailureClass: prReviewContract.failureClass || 'grade_below_target',\n\t\t\t\t\tblockerFingerprint: prReviewContract.blockerFingerprint,\n\t\t\t\t\tevidenceHash: prReviewContract.evidenceHash,\n\t\t\t\t\tcanRunAutonomously: true,\n\t\t\t\t\tcanRunModel: true,\n\t\t\t\t\tcanEditProductCode: true,\n\t\t\t\t\tlane: 'build',\n\t\t\t\t\tstepType: 'build_repair',\n\t\t\t\t\tprimaryCommand: 'run_support_v5_owner_scoped_repair',\n\t\t\t\t\tnextCommands: ['repair_strict_gate_blocker_inside_owner_files', 'run_compile_preflight', 'run_business_proof_qa', 'rerun_support_a_grade_pr_review'],\n\t\t\t\t\trequiredEvidence: Array.from(new Set([\n\t\t\t\t\t\t...repairGate.ownerScopedRepairContract.requiredEvidenceBeforeRepair,\n\t\t\t\t\t\t...repairGate.ownerScopedRepairContract.requiredEvidenceAfterRepair,\n\t\t\t\t\t\t'A-grade PR review blocker resolved'\n\t\t\t\t\t])),\n\t\t\t\t\tblockers: Array.from(new Set([\n\t\t\t\t\t\t...repairGate.ownerScopedRepairContract.blockers,\n\t\t\t\t\t\t...prReviewContract.blockers,\n\t\t\t\t\t\tprReviewContract.strictGateReason ? `strict_gate:${prReviewContract.strictGateReason}` : '',\n\t\t\t\t\t\tprReviewContract.blockerFingerprint ? `blocker_fingerprint:${prReviewContract.blockerFingerprint}` : ''\n\t\t\t\t\t].filter(Boolean))),\n\t\t\t\t\tforbiddenActions: Array.from(new Set([\n\t\t\t\t\t\t...repairGate.ownerScopedRepairContract.forbiddenActions,\n\t\t\t\t\t\t'Do not edit outside owner_files unless diagnosis is revised with new evidence.',\n\t\t\t\t\t\t'Do not merge, release, deploy, or send customer reply until A-grade PR review passes.'\n\t\t\t\t\t]))\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn makeDecision('run_a_grade_pr_review', 'Run A-grade PR Review', 'support_v5_pr_exists_a_grade_review_required', {\n\t\t\t\tfailureClass: prReviewContract.failureClass || 'pr_review_evidence_missing',\n\t\t\t\tblockerFingerprint: prReviewContract.blockerFingerprint,\n\t\t\t\tevidenceHash: prReviewContract.evidenceHash,\n\t\t\t\tcanRunAutonomously: true,\n\t\t\t\tcanRunModel: false,\n\t\t\t\tcanRunQa: true,\n\t\t\t\tcanEditProductCode: false,\n\t\t\t\tlane: 'release',\n\t\t\t\tstepType: 'release_gate',\n\t\t\t\tprimaryCommand: 'run_support_a_grade_pr_review',\n\t\t\t\tnextCommands: [\n\t\t\t\t\t'run_support_a_grade_pr_review',\n\t\t\t\t\t'fetch_support_testing_status_for_pr_review',\n\t\t\t\t\t'record_support_pr_review_contract',\n\t\t\t\t\t'park_before_merge_release_or_customer_send'\n\t\t\t\t],\n\t\t\t\trequiredEvidence: [\n\t\t\t\t\t'pull_request_url',\n\t\t\t\t\t'A-grade execution/artifacts/pull_request review',\n\t\t\t\t\t'strict gate pass',\n\t\t\t\t\t'AIQaBusinessAssertion before/action/after proof',\n\t\t\t\t\t'QA screenshot or trace artifact'\n\t\t\t\t],\n\t\t\t\tblockers: Array.from(new Set([\n\t\t\t\t\t...prReviewContract.blockers,\n\t\t\t\t\tprReviewContract.strictGateReason ? `strict_gate:${prReviewContract.strictGateReason}` : '',\n\t\t\t\t\tprReviewContract.blockerFingerprint ? `blocker_fingerprint:${prReviewContract.blockerFingerprint}` : '',\n\t\t\t\t\t'A-grade PR review has not passed yet.'\n\t\t\t\t].filter(Boolean))),\n\t\t\t\tforbiddenActions: [\n\t\t\t\t\t'Do not merge the PR from this action.',\n\t\t\t\t\t'Do not release, deploy, or send customer reply from PR review alone.',\n\t\t\t\t\t'If strict review fails, route to the bounded blocker action instead of accepting from PR URL alone.'\n\t\t\t\t]\n\t\t\t});\n\t\t}\n\t\treturn makeDecision('park_manual', 'Review A-grade PR', 'support_v5_approved_autopilot_reached_a_grade_pr_review_required', {\n\t\t\tcanRunAutonomously: false,\n\t\t\tcanRunModel: false,\n\t\t\tcanRunQa: false,\n\t\t\tcanEditProductCode: false,\n\t\t\tlane: 'release',\n\t\t\tstepType: 'release_gate',\n\t\t\tprimaryCommand: 'review_a_grade_pr_and_release_gate',\n\t\t\tnextCommands: [\n\t\t\t\t'review_a_grade_pr_and_release_gate',\n\t\t\t\t'approve_merge_release_or_customer_reply',\n\t\t\t\t'park_before_merge_release_or_customer_send'\n\t\t\t],\n\t\t\trequiredEvidence: [\n\t\t\t\t'pull_request_url',\n\t\t\t\t'A-grade execution/artifacts/pull_request review',\n\t\t\t\t'strict gate pass',\n\t\t\t\t'AIQaBusinessAssertion pass',\n\t\t\t\t'QA screenshots or trace artifacts',\n\t\t\t\t'human approval before merge/release/customer send'\n\t\t\t],\n\t\t\tblockers: ['Approved autopilot reached PR proof; merge, release, deploy, and customer reply require separate human/release approval.'],\n\t\t\tforbiddenActions: [\n\t\t\t\t'Do not merge the PR without human approval.',\n\t\t\t\t'Do not release, deploy, or send customer reply from approved-autopilot completion alone.'\n\t\t\t]\n\t\t});\n\t}\n\tif (!activeMicrotask && businessProofReadiness.ready) {\n\t\treturn makeDecision('ready_for_release_gate', 'Run Release Gate', 'support_v5_business_proof_complete_release_gate_ready', {\n\t\t\tcanRunAutonomously: true,\n\t\t\tcanRunQa: true,\n\t\t\tlane: 'release',\n\t\t\tstepType: 'release_gate',\n\t\t\tprimaryCommand: 'run_support_release_gate_once',\n\t\t\tnextCommands: ['verify_compile_and_business_proof_artifacts', 'run_release_gate_once', 'record_release_status'],\n\t\t\trequiredEvidence: ['compile pass', 'business assertion artifact', 'release status']\n\t\t});\n\t}\n\treturn makeDecision('run_owner_scoped_repair', 'Run Owner-Scoped Repair', 'support_v5_product_repair_allowed_after_diagnosis', {\n\t\tcanRunAutonomously: true,\n\t\tcanRunModel: true,\n\t\tcanEditProductCode: true,\n\t\tlane: activeMicrotask?.lane || 'build',\n\t\tstepType: activeStepType || 'build_repair',\n\t\tprimaryCommand: 'run_support_v5_owner_scoped_repair',\n\t\tnextCommands: repairGate.ownerScopedRepairContract.nextCommands,\n\t\trequiredEvidence: Array.from(new Set([\n\t\t\t...repairGate.ownerScopedRepairContract.requiredEvidenceBeforeRepair,\n\t\t\t...repairGate.ownerScopedRepairContract.requiredEvidenceAfterRepair\n\t\t])),\n\t\tblockers: repairGate.ownerScopedRepairContract.blockers,\n\t\tforbiddenActions: repairGate.ownerScopedRepairContract.forbiddenActions\n\t});\n}\n\nexport function buildResolveIOSupportV5DiagnoseFirstPrompt(lines: {\n\tgoal?: string;\n\tapprovedScope?: string[];\n\tactiveStep?: ResolveIOSupportV5StepType;\n\tactiveBlocker?: string;\n\tlane?: ResolveIOSupportV5Lane;\n\tlaneSummary?: string;\n\tcurrentQaRow?: ResolveIOSupportV5LaneMemory['activeQaRow'];\n\tartifactPaths?: string[];\n\tchangedFiles?: string[];\n}): string[] {\n\treturn [\n\t\t'Support Runner V5 contract: act like a guarded autonomous engineer, not a gate checklist.',\n\t\t'Start with Diagnose First: observed evidence, likely cause, smallest next action, and expected proof.',\n\t\t'Use compact lane memory and current artifacts before asking for broad ticket context.',\n\t\t'Do not send customer email. Do not write production data. Do not spawn duplicate build, QA, server, client, Mongo, browser, or Codex processes.',\n\t\t'If repairing, inspect logs/artifacts/source/diff first; make the smallest code or localhost-data change, then run the smallest finite self-gate.',\n\t\t'For build repairs, prefer `npm run build-prod -- --watch=false`, a targeted `tsc --noEmit`, or a focused unit test. `npm run build-dev` is forbidden for support microtasks because it is slow/watch-oriented and can leave heavy esbuild work. If no finite gate exists, return a blocked self-gate with the exact reason instead of running build-dev.',\n\t\t'If QA fails, retest the failed row before advancing; if the same blocker repeats without new proof, park with the exact blocker.',\n\t\tlines.goal ? `Goal: ${cleanText(lines.goal, 500)}` : '',\n\t\tcleanList(lines.approvedScope, 12, 240).length ? `Approved scope: ${cleanList(lines.approvedScope, 12, 240).join(' | ')}` : '',\n\t\tlines.activeStep ? `Active step: ${lines.activeStep}` : '',\n\t\tlines.lane ? `Lane: ${lines.lane}` : '',\n\t\tlines.laneSummary ? `Lane memory: ${cleanText(lines.laneSummary, 700)}` : '',\n\t\tlines.activeBlocker ? `Active blocker: ${cleanText(lines.activeBlocker, 800)}` : '',\n\t\tlines.currentQaRow?.workflow ? `Current QA row: ${cleanText(lines.currentQaRow.workflow, 300)}` : '',\n\t\tlines.currentQaRow?.route ? `Current QA route: ${cleanText(lines.currentQaRow.route, 300)}` : '',\n\t\tcleanList(lines.changedFiles, 12, 200).length ? `Changed files: ${cleanList(lines.changedFiles, 12, 200).join(', ')}` : '',\n\t\tcleanList(lines.artifactPaths, 12, 240).length ? `Artifacts: ${cleanList(lines.artifactPaths, 12, 240).join(', ')}` : ''\n\t].filter(Boolean);\n}\n\nexport function buildResolveIOSupportV5MicrotaskPrompt(input: {\n\tbundle: ResolveIOSupportV5StateBundle;\n\tlane: 'build' | 'qa';\n\tmodel?: string;\n\tstage?: string;\n\tfailureText?: string;\n\tchangedFiles?: string[];\n\tartifactPaths?: string[];\n\ttargetFiles?: string[];\n\tcontextSnippets?: string[];\n\tsimilarCaseHints?: any;\n\tactiveQaRow?: ResolveIOSupportV5LaneMemory['activeQaRow'];\n\tnow?: Date | string;\n}): {\n\tprompt: string;\n\tpromptTokenEstimate: number;\n\tpromptSections: ResolveIOSupportV5UsageSection[];\n\tdiagnosisEvidencePack: ResolveIOSupportDiagnosisEvidencePack;\n\tactiveMicrotask?: ResolveIOSupportV5Microtask;\n\twithinCap: boolean;\n\twithinHardCap: boolean;\n\tcap: number;\n\thardCap: number;\n\treason?: string;\n} {\n\tconst activeMicrotask = selectResolveIOSupportV5ActiveMicrotask(\n\t\tinput.bundle.supportV5MicrotaskLedger || [],\n\t\tinput.bundle.supportV5ActiveMicrotaskId\n\t);\n\tconst diagnosisValidation = validateResolveIOSupportDiagnosisGate(input.bundle.supportV5DiagnosisGate);\n\tconst diagnosisGate = diagnosisValidation.normalized || input.bundle.supportV5DiagnosisGate;\n\tconst diagnosisActive = activeMicrotask?.type === 'diagnosis_gate';\n\tconst budget = buildResolveIOSupportV5PromptBudget();\n\tconst repairLike = Boolean(input.failureText || activeMicrotask?.status === 'needs_repair' || /repair/i.test(String(input.stage || activeMicrotask?.type || '')));\n\tconst cap = repairLike\n\t\t? budget.repairMicrotaskCap\n\t\t: input.lane === 'qa'\n\t\t\t? budget.qaMicrotaskCap\n\t\t\t: budget.buildMicrotaskCap;\n\tconst hardCap = repairLike\n\t\t? budget.repairMicrotaskHardCap\n\t\t: input.lane === 'qa'\n\t\t\t? budget.qaMicrotaskHardCap\n\t\t\t: budget.buildMicrotaskHardCap;\n\tconst laneMemory = input.bundle.supportV5LaneMemory[input.lane];\n\tconst taskThreadKey = activeMicrotask?.threadKey || laneMemory.threadKey;\n\tconst changedFiles = cleanList(input.changedFiles?.length ? input.changedFiles : laneMemory.changedFiles, 8, 160);\n\tconst artifactPaths = cleanList(input.artifactPaths?.length ? input.artifactPaths : laneMemory.artifactPaths, 8, 200);\n\tconst targetFiles = cleanList(input.targetFiles?.length ? input.targetFiles : activeMicrotask?.targetFiles, 5, 160);\n\tconst contextSnippets = cleanList(input.contextSnippets, 5, 360);\n\tconst diagnosisEvidencePack = buildResolveIOSupportDiagnosisEvidencePack({\n\t\tbundle: input.bundle,\n\t\tsimilarCaseHints: input.similarCaseHints,\n\t\tissueClass: (diagnosisGate as ResolveIOSupportDiagnosisGate | undefined)?.issue_class,\n\t\townerFiles: (diagnosisGate as ResolveIOSupportDiagnosisGate | undefined)?.owner_files || targetFiles,\n\t\ttext: input.bundle.supportV5ScopeDigest || input.bundle.supportV5SupervisorState.currentGoal\n\t});\n\tconst diagnosisRetryScaffold = diagnosisActive\n\t\t? buildResolveIOSupportDiagnosisRetryScaffold({\n\t\t\tbundle: input.bundle,\n\t\t\tdiagnosisGate,\n\t\t\tevidencePack: diagnosisEvidencePack,\n\t\t\tnow: input.now\n\t\t})\n\t\t: undefined;\n\tconst promptProbePlanValidation = validateResolveIOSupportIssueClassProbePlan(\n\t\tinput.bundle.supportV5IssueClassProbePlan,\n\t\tdiagnosisValidation.normalized || diagnosisGate,\n\t\tinput.now\n\t);\n\tconst promptProbePlan = promptProbePlanValidation.valid\n\t\t? promptProbePlanValidation.normalized\n\t\t: diagnosisValidation.valid\n\t\t\t? buildResolveIOSupportIssueClassProbePlan(diagnosisValidation.normalized || diagnosisGate, input.now)\n\t\t\t: undefined;\n\tconst similarCaseSelection = diagnosisEvidencePack.similarCaseSelection;\n\tconst similarCaseHintsText = similarCaseSelection?.ranked?.length\n\t\t? [\n\t\t\t'Similar accepted fix hints. Advisory only: use these to prioritize inspection paths, not as proof.',\n\t\t\t...similarCaseSelection.ranked.slice(0, 5).map((hint, index) => [\n\t\t\t\t`${index + 1}. source=${hint.source || 'unknown'} score=${Number(hint.score || 0)}`,\n\t\t\t\thint.ticketNumber ? `ticket=${hint.ticketNumber}` : '',\n\t\t\t\thint.commitSha ? `commit=${hint.commitSha}` : '',\n\t\t\t\thint.issueClass ? `issue_class=${hint.issueClass}` : '',\n\t\t\t\thint.ownerFiles?.length ? `owner_files=${hint.ownerFiles.slice(0, 4).join(', ')}` : '',\n\t\t\t\thint.reason ? `signals=${hint.reason}` : '',\n\t\t\t\thint.title ? `title=${cleanText(hint.title, 180)}` : ''\n\t\t\t].filter(Boolean).join(' | '))\n\t\t].join('\\n')\n\t\t: '';\n\tconst qaRow = input.activeQaRow || activeMicrotask?.lane === 'qa'\n\t\t? input.activeQaRow || laneMemory.activeQaRow || input.bundle.supportV5SupervisorState.currentQaRow\n\t\t: undefined;\n\tconst sections = [\n\t\t{\n\t\t\tname: 'microtask_contract',\n\t\t\ttext: [\n\t\t\t\t'Support Runner V5 Microtask Contract.',\n\t\t\t\t'Use the existing persistent lane thread. Do not start a fresh thread.',\n\t\t\t\t'Do exactly one microtask and one proof gate. Do not replay ticket triage, prior plans, attachments, broad QA checklist, or unrelated scope.',\n\t\t\t\t'If context is insufficient, request the smallest missing file/log/artifact by path and park this microtask; do not broaden the prompt.',\n\t\t\t\t'Do not send customer email. Do not deploy. Do not spawn duplicate server/client/Mongo/browser/Codex processes.',\n\t\t\t\tdiagnosisActive\n\t\t\t\t\t? 'Diagnosis gate hard boundary: read-only investigation only. Do not edit source, generated files, package files, tests, fixtures, QA artifacts, or local data. Return the diagnosis JSON contract only.'\n\t\t\t\t\t: input.lane === 'qa'\n\t\t\t\t\t? 'QA lane hard boundary: the platform preflight owns compile, dependency install, Mongo/server/client startup, and Angular startup. This lane owns only browser/data proof and QA artifacts unless the prompt explicitly says preflight was skipped.'\n\t\t\t\t\t: 'Build lane hard boundary: do not run `npm run build-dev`, `ng build`, `npm run server`, `npm run client`, `ng serve`, `run-local-qa.sh`, browser automation, or any watch/long-lived command. If a broad compile gate is needed, run only `npm run build-prod -- --watch=false`; otherwise use a targeted finite check or return the precise blocker.'\n\t\t\t].join('\\n')\n\t\t},\n\t\tdiagnosisActive ? {\n\t\t\tname: 'root_cause_first_diagnosis_contract',\n\t\t\ttext: [\n\t\t\t\t'Before any product-code repair, produce strict JSON only:',\n\t\t\t\t'Required JSON shape: {\"support_diagnosis_gate\":{\"issue_case\":{\"customer_complaint\":\"concrete customer complaint\",\"expected_result\":\"concrete expected business result\",\"observed_result\":\"concrete observed/reproduced behavior\",\"route_module\":\"exact route/module/workflow\",\"account_customer_context\":\"affected client/account/user\",\"reproduction_status\":\"reproduced|blocked|classified\",\"reproduction_blocker\":\"required only when blocked\"},\"issue_class\":\"no_op_submit|missing_wrong_data|filter_query_mismatch|invoice_pdf_export|upload_import|route_auth_hydration|slow_query_performance\",\"accepted_hypothesis\":{\"statement\":\"one falsifiable root-cause theory\",\"falsifiable_test\":\"exact test that could disprove it\",\"evidence\":[\"typed evidence with artifact path or concrete code/data citation\"]},\"rejected_alternatives\":[\"rejected theory plus why\"],\"failing_path\":{\"frontend\":\"frontend event/path if applicable\",\"backend\":\"method/publication/query if applicable\",\"shared_library\":\"shared library path if applicable\",\"data_query\":\"data/query path if applicable\",\"description\":\"end-to-end failing path\"},\"owner_files\":[\"small/exact/product-file.ts\"],\"proof_plan\":{\"before\":\"before-state business proof\",\"before_state_unavailable_reason\":\"only if before proof cannot exist\",\"action\":\"exact user/system action\",\"after\":\"expected after-state business proof\",\"business_assertion\":\"pass/fail assertion tied to customer issue\",\"route\":\"route/workflow under test\",\"data_assertion\":\"DOM/data/Mongo assertion\",\"artifact_expectation\":\"specific artifacts to capture\",\"business_proof_contract\":{\"issue_class\":\"same as diagnosis issue_class\",\"setup_state\":\"setup state\",\"action_under_test\":\"action under test\",\"expected_business_state_change\":\"expected state change\",\"prohibited_false_pass\":\"Route load, screenshot, scorecard, or model claim alone is not acceptance.\",\"proof_artifacts\":[\"specific DOM/data/Mongo/network/screenshot artifacts\"],\"data_or_dom_assertion\":\"assertion checked in DOM/data/Mongo\"}},\"similar_tickets\":[],\"similar_commits\":[],\"evidence\":[{\"type\":\"ticket|browser|mongo|log|code|commit|qa|other\",\"summary\":\"concrete evidence summary\",\"artifactPath\":\"path or code reference\"}],\"status\":\"passed\"}}',\n\t\t\t\t'Do not copy schema/example wording into the output. Empty strings, TODOs, placeholders, route-only proof, and ticket-only proof will fail validation.',\n\t\t\t\t'Owner files must be a small exact editable set, not directories, globs, generated wrappers, or broad repo areas.',\n\t\t\t\t'The accepted hypothesis must be falsifiable and backed by evidence; prior similar tickets or commits are hints only and cannot bypass fresh diagnosis.',\n\t\t\t\t'For reproduction_status=\"reproduced\", evidence must include at least one browser, Mongo, log, or QA evidence object with artifactPath so the runner can replay the proof.',\n\t\t\t\t'For reproduction_status=\"classified\", evidence must still include non-ticket root-cause proof such as code, commit, Mongo, log, browser, or QA evidence.',\n\t\t\t\t'Ticket text and similar-ticket hints are context, not root-cause proof by themselves.',\n\t\t\t\t'The proof plan must be before/action/after business proof plus business_proof_contract. If before-state proof is impossible, explain exactly why in before_state_unavailable_reason.',\n\t\t\t\t'The business_proof_contract must name the setup state, action under test, expected business state change, prohibited false pass, required artifacts, and DOM/data assertion.'\n\t\t\t].join('\\n')\n\t\t} : {\n\t\t\tname: 'diagnosis_gate_context',\n\t\t\ttext: diagnosisValidation.valid && diagnosisGate ? [\n\t\t\t\t`Diagnosis issue class: ${(diagnosisGate as ResolveIOSupportDiagnosisGate).issue_class}`,\n\t\t\t\t`Accepted hypothesis: ${(diagnosisGate as ResolveIOSupportDiagnosisGate).accepted_hypothesis.statement}`,\n\t\t\t\t`Failing path: ${(diagnosisGate as ResolveIOSupportDiagnosisGate).failing_path.description || (diagnosisGate as ResolveIOSupportDiagnosisGate).failing_path.frontend || (diagnosisGate as ResolveIOSupportDiagnosisGate).failing_path.backend || ''}`,\n\t\t\t\t`Owner files: ${(diagnosisGate as ResolveIOSupportDiagnosisGate).owner_files.join(', ')}`,\n\t\t\t\t`Business proof required: ${(diagnosisGate as ResolveIOSupportDiagnosisGate).proof_plan.business_assertion}`,\n\t\t\t\t(diagnosisGate as ResolveIOSupportDiagnosisGate).proof_plan.business_proof_contract\n\t\t\t\t\t? `Business proof contract: ${(diagnosisGate as ResolveIOSupportDiagnosisGate).proof_plan.business_proof_contract?.action_under_test} -> ${(diagnosisGate as ResolveIOSupportDiagnosisGate).proof_plan.business_proof_contract?.expected_business_state_change}; assertion ${(diagnosisGate as ResolveIOSupportDiagnosisGate).proof_plan.business_proof_contract?.data_or_dom_assertion}`\n\t\t\t\t\t: '',\n\t\t\t\t`Before/action/after: ${(diagnosisGate as ResolveIOSupportDiagnosisGate).proof_plan.before || (diagnosisGate as ResolveIOSupportDiagnosisGate).proof_plan.before_state_unavailable_reason} -> ${(diagnosisGate as ResolveIOSupportDiagnosisGate).proof_plan.action} -> ${(diagnosisGate as ResolveIOSupportDiagnosisGate).proof_plan.after}`\n\t\t\t].filter(Boolean).join('\\n') : 'SupportDiagnosisGate is not valid. Park instead of editing product code.'\n\t\t},\n\t\tdiagnosisActive ? {\n\t\t\tname: 'diagnosis_evidence_pack',\n\t\t\ttext: JSON.stringify({\n\t\t\t\tpackId: diagnosisEvidencePack.packId,\n\t\t\t\tstatus: diagnosisEvidencePack.status,\n\t\t\t\tgeneratedAt: diagnosisEvidencePack.generatedAt,\n\t\t\t\treadOnly: diagnosisEvidencePack.readOnly,\n\t\t\t\tsourceEditsAllowed: diagnosisEvidencePack.sourceEditsAllowed,\n\t\t\t\trootCauseFirstRequired: diagnosisEvidencePack.rootCauseFirstRequired,\n\t\t\t\trequiredOutputKey: diagnosisEvidencePack.requiredOutputKey,\n\t\t\t\trequiredFields: diagnosisEvidencePack.requiredFields,\n\t\t\t\trequiredEvidence: diagnosisEvidencePack.requiredEvidence,\n\t\t\t\tforbiddenActions: diagnosisEvidencePack.forbiddenActions,\n\t\t\t\tdiagnosisValid: diagnosisEvidencePack.diagnosisValid,\n\t\t\t\tdiagnosisStatus: diagnosisEvidencePack.diagnosisStatus,\n\t\t\t\tvalidationBlockers: diagnosisEvidencePack.validationBlockers,\n\t\t\t\tissueClassHint: diagnosisEvidencePack.issueClassHint,\n\t\t\t\townerFileHints: diagnosisEvidencePack.ownerFileHints,\n\t\t\t\tactiveMicrotaskId: diagnosisEvidencePack.activeMicrotaskId,\n\t\t\t\tstructuredFacts: diagnosisEvidencePack.structuredFacts,\n\t\t\t\tproofMatrix: diagnosisEvidencePack.proofMatrix,\n\t\t\t\tsimilarHintsAdvisoryOnly: true,\n\t\t\t\tsimilarHintCount: diagnosisEvidencePack.similarCaseSelection.ranked.length,\n\t\t\t\tsimilarCaseSelection: {\n\t\t\t\t\tranked: diagnosisEvidencePack.similarCaseSelection.ranked.slice(0, 6)\n\t\t\t\t},\n\t\t\t\tissueClassProbeCatalog: diagnosisEvidencePack.issueClassProbeCatalog.map((entry) => ({\n\t\t\t\t\tissue_class: entry.issue_class,\n\t\t\t\t\taction: entry.action,\n\t\t\t\t\tproof_required: entry.proof_required,\n\t\t\t\t\tacceptance_gate: entry.acceptance_gate,\n\t\t\t\t\tfalse_pass_blockers: entry.false_pass_blockers\n\t\t\t\t})),\n\t\t\t\tpersistedEvidencePack: input.bundle.supportV5DiagnosisEvidencePack\n\t\t\t\t\t? {\n\t\t\t\t\t\tpackId: input.bundle.supportV5DiagnosisEvidencePack.packId,\n\t\t\t\t\t\tstatus: input.bundle.supportV5DiagnosisEvidencePack.status,\n\t\t\t\t\t\tvalidationBlockers: input.bundle.supportV5DiagnosisEvidencePack.validationBlockers,\n\t\t\t\t\t\tissueClassHint: input.bundle.supportV5DiagnosisEvidencePack.issueClassHint,\n\t\t\t\t\t\townerFileHints: input.bundle.supportV5DiagnosisEvidencePack.ownerFileHints,\n\t\t\t\t\t\tstructuredFacts: input.bundle.supportV5DiagnosisEvidencePack.structuredFacts,\n\t\t\t\t\t\tproofMatrix: input.bundle.supportV5DiagnosisEvidencePack.proofMatrix\n\t\t\t\t\t}\n\t\t\t\t\t: undefined,\n\t\t\t\tinstruction: 'This JSON block is the diagnosis evidence pack. Do not request or invent a support-diagnosis-pack JSON file unless a concrete named ticket attachment/log is still absent from the staged support evidence context.'\n\t\t\t}, null, 2)\n\t\t} : undefined,\n\t\tdiagnosisActive && diagnosisRetryScaffold ? {\n\t\t\tname: 'diagnosis_retry_scaffold',\n\t\t\ttext: JSON.stringify(diagnosisRetryScaffold, null, 2)\n\t\t} : undefined,\n\t\tdiagnosisActive && similarCaseHintsText ? {\n\t\t\tname: 'similar_accepted_fix_hints',\n\t\t\ttext: similarCaseHintsText\n\t\t} : undefined,\n\t\t!diagnosisActive && input.lane === 'qa' && promptProbePlan ? {\n\t\t\tname: 'issue_class_probe_plan',\n\t\t\ttext: [\n\t\t\t\t`IssueClassProbePlan ${promptProbePlan.planId} status=${promptProbePlan.status} issue_class=${promptProbePlan.issue_class || ''} gate=${promptProbePlan.acceptanceGate}`,\n\t\t\t\t`route=${cleanText(promptProbePlan.activeProbe?.route, 180)}`,\n\t\t\t\t`action=${cleanText(promptProbePlan.activeProbe?.state_transition.action || promptProbePlan.activeProbe?.action, 260)}`,\n\t\t\t\t`assertion=${cleanText(promptProbePlan.activeProbe?.state_transition.assertion, 260)}`,\n\t\t\t\t`after=${cleanText(promptProbePlan.activeProbe?.state_transition.after, 260)}`,\n\t\t\t\t`artifacts=${promptProbePlan.requiredArtifacts.slice(0, 6).join(', ')}`,\n\t\t\t\t`false_pass_blockers=${promptProbePlan.falsePassBlockers.slice(0, 4).join(', ')}`,\n\t\t\t\tpromptProbePlan.blockers.length ? `blockers=${promptProbePlan.blockers.slice(0, 4).join('; ')}` : ''\n\t\t\t].filter(Boolean).join('\\n')\n\t\t} : undefined,\n\t\t{\n\t\t\tname: 'scope_digest',\n\t\t\ttext: cleanText(input.bundle.supportV5ScopeDigest || input.bundle.supportV5SupervisorState.approvedScope, 900)\n\t\t},\n\t\t{\n\t\t\tname: 'active_microtask',\n\t\t\ttext: activeMicrotask ? [\n\t\t\t\t`Microtask id: ${activeMicrotask.microtaskId}`,\n\t\t\t\t`Lane: ${input.lane}`,\n\t\t\t\t`Type: ${activeMicrotask.type}`,\n\t\t\t\t`Status: ${activeMicrotask.status}`,\n\t\t\t\t`Objective: ${cleanText(activeMicrotask.objective, 360)}`,\n\t\t\t\t`Self-gate: ${cleanText(activeMicrotask.selfGate, 260)}`,\n\t\t\t\t`Acceptance proof: ${cleanText(activeMicrotask.acceptanceProof, 260)}`,\n\t\t\t\t`Attempts on this microtask: ${activeMicrotask.attempts}`,\n\t\t\t\t`Thread key: ${taskThreadKey}`\n\t\t\t].join('\\n') : 'No active microtask found. Park and report support_v5_microtask_missing.'\n\t\t},\n\t\t{\n\t\t\tname: 'failure_delta',\n\t\t\ttext: input.failureText ? `Latest blocker/failure delta: ${cleanText(input.failureText, 700)}` : ''\n\t\t},\n\t\t{\n\t\t\tname: 'target_context',\n\t\t\ttext: [\n\t\t\t\ttargetFiles.length ? `Target files: ${targetFiles.join(', ')}` : '',\n\t\t\t\tchangedFiles.length ? `Changed files: ${changedFiles.join(', ')}` : '',\n\t\t\t\tartifactPaths.length ? `Artifacts: ${artifactPaths.join(', ')}` : '',\n\t\t\t\tqaRow?.workflow ? `QA row workflow: ${cleanText(qaRow.workflow, 220)}` : '',\n\t\t\t\tqaRow?.route ? `QA row route: ${cleanText(qaRow.route, 220)}` : '',\n\t\t\t\tqaRow?.assertion ? `QA row assertion: ${cleanText(qaRow.assertion, 260)}` : '',\n\t\t\t\tcontextSnippets.length ? `Relevant snippets:\\n${contextSnippets.join('\\n---\\n')}` : ''\n\t\t\t].filter(Boolean).join('\\n')\n\t\t},\n\t\tinput.lane === 'qa' ? {\n\t\t\tname: 'qa_browser_evidence_contract',\n\t\t\ttext: [\n\t\t\t\t'QA lane first action after preflight: collect fresh browser evidence for the active row, not a proof review of existing route/auth artifacts.',\n\t\t\t\t'Use the already-running localhost harness and staged env. Before any shell command, run `source .resolveio-support-tools/env.sh 2>/dev/null || source ../.resolveio-support-tools/env.sh 2>/dev/null || true`; then use `$RESOLVEIO_SUPPORT_QA_CLIENT_URL`, `$RESOLVEIO_SUPPORT_QA_SERVER_URL`, `$PUPPETEER_EXECUTABLE_PATH`, and `$CHROME_BIN`.',\n\t\t\t\t'Required auth replay helper inside every Puppeteer row script: `const storage=JSON.parse(fs.readFileSync(\"qa-artifacts/auth-bootstrap-storage-state.json\",\"utf8\")); const entries=[...(Array.isArray(storage.localStorageEntries)?storage.localStorageEntries:[]), ...(Array.isArray(storage.localStorage)?storage.localStorage:Object.entries(storage.localStorage||{}).map(([key,value])=>({key,value}))), ...((storage.origins||[]).flatMap(o=>o.localStorage||[]))].map(e=>({key:e.key||e.name,value:e.value})).filter(e=>e.key); const clientUrl=process.env.RESOLVEIO_SUPPORT_QA_CLIENT_URL||process.env.RESOLVEIO_RUNNER_QA_CLIENT_URL; const rowRoute=\"<ACTIVE_QA_ROUTE>\"; await page.goto(clientUrl,{waitUntil:\"domcontentloaded\"}); await page.evaluate(items=>{localStorage.clear(); for(const item of items)localStorage.setItem(item.key,item.value);}, entries); await page.goto(new URL(rowRoute, clientUrl).href,{waitUntil:\"domcontentloaded\"});` Replace `<ACTIVE_QA_ROUTE>` with the active row route.',\n\t\t\t\t'Allowed first command shape: one bounded `node`/Puppeteer row script that reads `qa-artifacts/auth-bootstrap-storage-state.json`, opens `$RESOLVEIO_SUPPORT_QA_CLIENT_URL`, seeds localStorage, navigates to the active QA route with `new URL(activeRoute, clientUrl).href`, drives the visible workflow, captures screenshot/caption, and updates the active matrix row. A `/home` proof is invalid for a locked non-home route.',\n\t\t\t\t'Forbidden in QA lane after preflight: build/install/startup/watch commands, `mongod`, `run-local-qa.sh`, and broad source discovery. If build/startup/dependency is suspected, return blocked/needs-fix with existing qa-artifacts log paths.',\n\t\t\t\t\t'Before passing, confirm `qa-artifacts/auth-bootstrap-result.json` used the ticket reporter or named affected user when available. If it used generic admin/dev while `qa-live-data-seed-result.json.selected.qa_user_context` names a reporter/affected user, rerun auth as that user or return needs-fix.',\n\t\t\t\t\t'Drive the visible customer workflow for this one row. Capture a new customer-facing screenshot/caption and update `qa-artifacts/qa-coverage-matrix.json` with workflow, route, data id/name, assertion, screenshot path, caption, and pass/failed/blocked status.',\n\t\t\t\t\t'Also write `qa-artifacts/aiqa-business-assertion.json` with one AIQaBusinessAssertion object: assertion, status, workflow, route, before, action, expected, after/observed, dataProof or mongoDelta, artifactPaths, and metadata.supportDiagnosisProof=true only when it maps to the active SupportDiagnosisGate proof_plan.',\n\t\t\t\t'After selecting any From/To, source/target, dropdown, combobox, rio-select, filter, item, customer, yard, chemical, or treatment-plan value, read the visible control text back from the DOM. If it still contains placeholder text such as Select Chemical, Select Yard, Select Customer, Select Treatment Plan Type, Loading..., empty, null, or undefined, do not click the action button and do not mark pass. Capture the selected-state blocker screenshot/DOM text and return needs-fix.',\n\t\t\t\t'If the row needs persisted data proof, create that proof yourself in the same bounded QA command by querying localhost QA Mongo through process.env.MONGO_URL after the visible UI action. Write the result under qa-artifacts/ as JSON and reference that path in the matrix. Do not ask for a missing post-action DB artifact while the local QA stack is running; either write it or return needs-fix with the exact query/script error. For update-interchangeables rows, the JSON must include concrete non-placeholder fromText and toText, before/after counts or sample documents for treatment plans and tank/interchangeable records, and must fail if either selected value is only an arrow/placeholder or if the persisted collections are empty.',\n\t\t\t\t\t'If the row names multiple concrete entities such as assets, units, BOLs, invoices, chemicals, customers, yards, or numbered records, prove every named entity. Do not pass by proving only one representative record.',\n\t\t\t\t\t'For customer-reported data bugs, use production-seeded localhost records from `qa-live-data-seed-result.json`. If the exact named record is missing from the seed, fail the row as a seed/query blocker instead of testing a substitute record.',\n\t\t\t\t\t'Route-ready, auth-bootstrap, shell, header-only, and empty-list screenshots do not satisfy this microtask. If the row cannot be proven, capture the blocker screenshot/DOM state and return needs-fix with that exact blocker.',\n\t\t\t\t'Do not run compile/startup/npm install, do not spawn another server/client/Mongo, and do not inspect broad source trees before the first browser evidence command.'\n\t\t\t].join('\\n')\n\t\t} : {\n\t\t\tname: 'non_qa_noop',\n\t\t\ttext: ''\n\t\t},\n\t\t{\n\t\t\tname: 'return_contract',\n\t\t\ttext: diagnosisActive\n\t\t\t\t? 'Return strict JSON only with support_diagnosis_gate. Do not include Markdown and do not edit files.'\n\t\t\t\t: input.lane === 'qa'\n\t\t\t\t? 'Return strict JSON only: {\"status\":\"pass\"|\"needs-fix\"|\"blocked\",\"microtaskId\":\"\",\"summary\":\"\",\"evidence\":[\"\"],\"artifacts\":[\"\"],\"next_actions\":[\"\"]}.'\n\t\t\t\t: 'Return concise Markdown with: Microtask Result, Root Cause, Changes, Self-Gate, Acceptance Proof, Residual Risk.'\n\t\t}\n\t].filter((section): section is { name: string; text: string } => !!section && !!cleanText(section.text, 20));\n\tconst promptSections = sections.map((section) => ({\n\t\tname: section.name,\n\t\ttokenEstimate: estimateTextTokens(section.text)\n\t}));\n\tconst prompt = sections.map((section) => section.text).join('\\n\\n');\n\tconst promptTokenEstimate = estimateTextTokens(prompt);\n\treturn {\n\t\tprompt,\n\t\tpromptTokenEstimate,\n\t\tpromptSections,\n\t\tdiagnosisEvidencePack,\n\t\tactiveMicrotask,\n\t\twithinCap: promptTokenEstimate <= cap,\n\t\twithinHardCap: promptTokenEstimate <= hardCap,\n\t\tcap,\n\t\thardCap,\n\t\treason: promptTokenEstimate > hardCap\n\t\t\t? 'support_v5_microtask_prompt_hard_cap'\n\t\t\t: promptTokenEstimate > cap\n\t\t\t\t? 'support_v5_microtask_prompt_soft_cap'\n\t\t\t\t: undefined\n\t};\n}\n\nexport function summarizeResolveIOSupportV5MicrotaskUsage(bundle: ResolveIOSupportV5StateBundle): {\n\ttotalPromptTokenEstimate: number;\n\tbyMicrotask: Array<{ microtaskId: string; promptTokenEstimate: number; calls: number }>;\n\tbySection: ResolveIOSupportV5UsageSection[];\n\tbroadPromptViolations: ResolveIOSupportV5MicrotaskUsage[];\n} {\n\tconst byMicrotask = new Map<string, { microtaskId: string; promptTokenEstimate: number; calls: number }>();\n\tconst bySection = new Map<string, number>();\n\tlet totalPromptTokenEstimate = 0;\n\tconst broadPromptViolations: ResolveIOSupportV5MicrotaskUsage[] = [];\n\tconst promptBudget = buildResolveIOSupportV5PromptBudget();\n\tfor (const usage of bundle.supportV5MicrotaskUsageHistory || []) {\n\t\ttotalPromptTokenEstimate += usage.promptTokenEstimate || 0;\n\t\tconst existing = byMicrotask.get(usage.microtaskId) || { microtaskId: usage.microtaskId, promptTokenEstimate: 0, calls: 0 };\n\t\texisting.promptTokenEstimate += usage.promptTokenEstimate || 0;\n\t\texisting.calls += 1;\n\t\tbyMicrotask.set(usage.microtaskId, existing);\n\t\tfor (const section of usage.promptSections || []) {\n\t\t\tbySection.set(section.name, (bySection.get(section.name) || 0) + section.tokenEstimate);\n\t\t}\n\t\tconst hardCap = usage.lane === 'qa' ? promptBudget.qaMicrotaskHardCap : promptBudget.buildMicrotaskHardCap;\n\t\tif ((usage.promptTokenEstimate || 0) > hardCap) {\n\t\t\tbroadPromptViolations.push(usage);\n\t\t}\n\t}\n\treturn {\n\t\ttotalPromptTokenEstimate,\n\t\tbyMicrotask: Array.from(byMicrotask.values()),\n\t\tbySection: Array.from(bySection.entries()).map(([name, tokenEstimate]) => ({ name, tokenEstimate })),\n\t\tbroadPromptViolations\n\t};\n}\n\nexport function buildResolveIOSupportV5Incident(input: {\n\tincidentClass: string;\n\tsummary: string;\n\tstepType?: ResolveIOSupportV5StepType;\n\tblocker?: string;\n\tartifactPaths?: string[];\n\tnow?: Date | string;\n}): ResolveIOSupportV5RunnerIncident {\n\treturn {\n\t\tincidentClass: cleanText(input.incidentClass, 120) || 'support_v5_runner_incident',\n\t\tsummary: cleanText(input.summary, 1200),\n\t\tstepType: input.stepType,\n\t\tblockerFingerprint: input.blocker ? fingerprintResolveIOSupportV5Blocker(input.blocker) : undefined,\n\t\tartifactPaths: cleanList(input.artifactPaths, 40, 500),\n\t\trecordedAt: isoNow(input.now)\n\t};\n}\n"]}
|