@resolveio/server-lib 22.3.166 → 22.3.168

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\tdecideResolveIOAIManagerHotfixContinuation,\n\tdecideResolveIOAIManagerPolicy,\n\thashResolveIOAIManagerEvidence,\n\tResolveIOAIManagerHotfixContinuationDecision,\n\tResolveIOAIManagerHotfixFirstReleasePolicy,\n\tResolveIOAIManagerEvidenceStrength,\n\tResolveIOAIManagerRecoveryCheckpoint,\n\tResolveIOAIManagerRecoveryActionPacket,\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 interface ResolveIOSupportDiagnosisEvidence {\n\ttype: 'ticket' | 'browser' | 'mongo' | 'log' | 'code' | 'commit' | 'qa' | 'other';\n\tsummary: string;\n\tartifactPath?: 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}\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\thasTicketContext: boolean;\n\thasRootCauseEvidence: boolean;\n\thasReproductionEvidence: boolean;\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 ResolveIOSupportCustomerReplyPolicyInput {\n\tdiagnosisGate?: 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}\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\thumanReviewPacket?: ResolveIOSupportHumanReviewPacket;\n\tdraftBasis?: {\n\t\tissueClass: ResolveIOSupportIssueClass;\n\t\tbusinessProof: string;\n\t\tartifactCount: number;\n\t};\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\texpected_evidence: string;\n\texpected_business_proof: string;\n\trequired_artifacts: 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\tblocks_acceptance_without_business_assertion: boolean;\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 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\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\toutsideOwnerFiles: string[];\n\trepeatedFailure?: ResolveIOSupportV5RepeatStopDecision;\n\tdiagnosisValidation: ResolveIOSupportDiagnosisGateValidation;\n\trecoveryPlan: ResolveIOAIManagerRecoveryPlan;\n\trecoveryCheckpoint: ResolveIOAIManagerRecoveryCheckpoint;\n\trecoveryEvidenceProbe: ResolveIOAIManagerRecoveryEvidenceProbe;\n\trecoveryAction: ResolveIOAIManagerRecoveryActionPacket;\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\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\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\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| '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 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| '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\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\treason: string;\n\tblockers: string[];\n\townerFiles: string[];\n\tissueClass?: ResolveIOSupportIssueClass;\n\texpectedProof?: string;\n\tissueClassProbes?: ResolveIOSupportIssueClassProbe[];\n\tbusinessProofStatus?: ResolveIOSupportBusinessProofReadiness['status'];\n\tproofFingerprint?: string;\n\tartifactFingerprint?: string;\n\tproofFreshness?: ResolveIOSupportBusinessProofReadiness['proofFreshness'];\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\tmaxOwnerFiles?: number;\n\tnow?: Date | 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';\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\tactiveMicrotask?: ResolveIOSupportV5Microtask;\n\tdiagnosisValidation: ResolveIOSupportDiagnosisGateValidation;\n\trepairGate: ResolveIOSupportV5RepairGateDecision;\n\tcontinuation: ResolveIOSupportV5ContinuationDecision;\n\tcustomerReplyPolicy: ResolveIOSupportCustomerReplyPolicy;\n\tbusinessProofReadiness: ResolveIOSupportBusinessProofReadiness;\n\tevidenceFreshness: ResolveIOSupportEvidenceFreshness;\n\trootCauseReadiness: ResolveIOSupportRootCauseReadiness;\n\thumanReviewPacket: ResolveIOSupportHumanReviewPacket;\n\thotfixContinuation?: ResolveIOAIManagerHotfixContinuationDecision;\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\treturn String(value || '').replace(/\\s+/g, ' ').trim().slice(0, 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 = cleanText(value, max);\n\t\tif (normalized && !result.includes(normalized)) {\n\t\t\tresult.push(normalized);\n\t\t}\n\t\tif (result.length >= limit) {\n\t\t\tbreak;\n\t\t}\n\t}\n\treturn result;\n}\n\nfunction cleanObject(value: any): Record<string, any> {\n\treturn value && typeof value === 'object' && !Array.isArray(value) ? value : {};\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\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};\n\treturn aliases[normalized] || '';\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 normalizeSupportDiagnosisEvidence(values: any): 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 ? [{ type: 'other', summary }] : [];\n\t}\n\tconst stringEvidence: ResolveIOSupportDiagnosisEvidence[] = values\n\t\t.filter((entry) => typeof entry === 'string')\n\t\t.map((entry) => ({\n\t\t\ttype: 'other' as const,\n\t\t\tsummary: cleanText(entry, 1200)\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\treturn {\n\t\t\t\ttype: (allowed.has(type) ? type : 'other') as ResolveIOSupportDiagnosisEvidence['type'],\n\t\t\t\tsummary: cleanText(entry.summary || entry.message || entry.evidence || entry.reason, 1200),\n\t\t\t\tartifactPath: cleanText(entry.artifactPath || entry.path || entry.file, 500)\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\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 normalizeOwnerFilePath(value: any): string {\n\treturn cleanText(value, 500)\n\t\t.replace(/\\\\/g, '/')\n\t\t.replace(/^\\.\\/+/, '')\n\t\t.replace(/^\\/+/, '')\n\t\t.replace(/\\s+$/g, '');\n}\n\nfunction ownerFileLooksBroad(value: string): boolean {\n\tconst normalized = normalizeOwnerFilePath(value);\n\treturn !normalized\n\t\t|| normalized.includes('*')\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 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\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\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\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 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 === '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\thasTicketContext,\n\t\thasRootCauseEvidence,\n\t\thasReproductionEvidence\n\t};\n}\n\nexport function normalizeResolveIOSupportDiagnosisGate(value: any, now?: Date | string): ResolveIOSupportDiagnosisGate | undefined {\n\tconst source = cleanObject(value);\n\tif (!Object.keys(source).length) {\n\t\treturn undefined;\n\t}\n\tconst issueCaseSource = cleanObject(source.issue_case || source.issueCase);\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 issueClass = normalizeIssueClass(source.issue_class || source.issueClass);\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);\n\tconst ownerFiles = cleanList(source.owner_files || source.ownerFiles, 20, 500)\n\t\t.map(normalizeOwnerFilePath)\n\t\t.filter(Boolean);\n\tconst gate: ResolveIOSupportDiagnosisGate = {\n\t\tissue_case: {\n\t\t\tcustomer_complaint: pickText(issueCaseSource, ['customer_complaint', 'customerComplaint', 'complaint', 'request', 'summary'], 1200),\n\t\t\texpected_result: pickText(issueCaseSource, ['expected_result', 'expectedResult', 'expected'], 1000),\n\t\t\tobserved_result: pickText(issueCaseSource, ['observed_result', 'observedResult', 'observed', 'actual'], 1000),\n\t\t\troute_module: pickText(issueCaseSource, ['route_module', 'routeModule', 'route', 'module', 'screen'], 500),\n\t\t\taccount_customer_context: pickText(issueCaseSource, ['account_customer_context', 'accountCustomerContext', 'account', 'customer', 'user', 'context'], 800),\n\t\t\treproduction_status: normalizeReproductionStatus(issueCaseSource.reproduction_status || issueCaseSource.reproductionStatus || source.reproduction_status),\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|| (typeof source.accepted_hypothesis === 'string' ? cleanText(source.accepted_hypothesis, 1200) : ''),\n\t\t\tfalsifiable_test: pickText(hypothesisSource, ['falsifiable_test', 'falsifiableTest', 'test', 'proof', 'falsifier'], 1000),\n\t\t\tevidence: cleanList(hypothesisSource.evidence || source.hypothesis_evidence || source.hypothesisEvidence, 10, 800)\n\t\t},\n\t\trejected_alternatives: cleanList(source.rejected_alternatives || source.rejectedAlternatives, 10, 700),\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', 'summary'], 1200) || cleanText(source.failing_path, 1200)\n\t\t},\n\t\towner_files: ownerFiles,\n\t\tproof_plan: {\n\t\t\tbefore: pickText(proofPlanSource, ['before', 'before_state', 'beforeState', 'precondition'], 1000),\n\t\t\tbefore_state_unavailable_reason: pickText(proofPlanSource, ['before_state_unavailable_reason', 'beforeStateUnavailableReason', 'before_unavailable_reason'], 1000),\n\t\t\taction: pickText(proofPlanSource, ['action', 'browser_action', 'browserAction', 'steps'], 1000),\n\t\t\tafter: pickText(proofPlanSource, ['after', 'after_state', 'afterState', 'expected_after'], 1000),\n\t\t\tbusiness_assertion: pickText(proofPlanSource, ['business_assertion', 'businessAssertion', 'assertion'], 1000),\n\t\t\troute: pickText(proofPlanSource, ['route', 'url'], 500),\n\t\t\tdata_assertion: pickText(proofPlanSource, ['data_assertion', 'dataAssertion', 'mongo_delta', 'mongoDelta'], 1000),\n\t\t\tartifact_expectation: pickText(proofPlanSource, ['artifact_expectation', 'artifactExpectation', 'artifact', 'screenshot'], 1000),\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: normalizeSupportDiagnosisEvidence(source.evidence),\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\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\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\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};\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 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 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 true;\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 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 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 '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 releaseBlocked = supportReleaseLooksBlocked(input.releaseStatus);\n\tconst requiredEvidence = [\n\t\t'valid SupportDiagnosisGate',\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\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 clarificationQuestion = buildSupportClarificationQuestion(gate, diagnosisValidation.blockers);\n\t\t\treturn {\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,\n\t\t\t\tclarificationQuestion,\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: clarificationQuestion,\n\t\t\t\t\tcustomerFacingDraftAllowed: true,\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: diagnosisValidation.blockers,\n\t\t\t\t\trequiredEvidence,\n\t\t\t\t\tnextCommands: ['edit_clarification_question', 'send_after_human_review', 'park_ticket_until_customer_reply'],\n\t\t\t\t\tforbiddenActions: ['Do not run repair from a guessed reproduction path.'],\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 {\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\tif (shouldBlockConfidence || confidenceLevel !== 'high') {\n\t\treturn {\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};\n\t}\n\tif (unresolvedBlockers.length) {\n\t\treturn {\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};\n\t}\n\tif (releaseBlocked) {\n\t\treturn {\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,\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: [input.releaseStatus],\n\t\t\t\trequiredEvidence,\n\t\t\t\tnextCommands: ['record_hotfix_evidence', 'commit_and_push_hotfix_to_github', 'rerun_release_gate_once'],\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};\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 {\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};\n\t}\n\tif (!gate?.proof_plan.business_proof_contract || artifactCount < 1) {\n\t\treturn {\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};\n\t}\n\treturn {\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\tbusinessProof: gate.proof_plan.business_proof_contract.expected_business_state_change,\n\t\t\tartifactCount\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 requiredArtifacts = Array.from(new Set([\n\t\t...contractArtifacts,\n\t\t...selected.requiredArtifacts\n\t]));\n\treturn [{\n\t\t...common,\n\t\tfailure_class: selected.failureClass,\n\t\tobjective: `Issue-class probe for ${gate.issue_class}: ${gate.issue_case.customer_complaint}`,\n\t\taction: proofContract\n\t\t\t? `${proofContract.action_under_test} ${selected.action}`\n\t\t\t: selected.action,\n\t\texpected_evidence: `${selected.expected}${assertion ? ` Assertion: ${assertion}.` : ''}${requiredArtifacts.length ? ` Required artifacts: ${requiredArtifacts.join(', ')}.` : ''}`.trim(),\n\t\texpected_business_proof: proof || gate.proof_plan.business_assertion,\n\t\trequired_artifacts: requiredArtifacts\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\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 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 = new Set(validation.normalized.owner_files.map(normalizeOwnerFilePath));\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.has(filePath)) {\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\treturn true;\n\t\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 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 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\toutsideOwnerFiles,\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\toutsideOwnerFiles,\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\toutsideOwnerFiles,\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\toutsideOwnerFiles,\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\toutsideOwnerFiles,\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 ownerFiles = gate.owner_files;\n\tconst probes = buildResolveIOSupportIssueClassProbes(gate);\n\tconst proofContract = gate.proof_plan.business_proof_contract;\n\tconst businessProof = proofContract?.expected_business_state_change || gate.proof_plan.business_assertion;\n\tconst businessAssertion = proofContract?.data_or_dom_assertion || gate.proof_plan.data_assertion || gate.proof_plan.after;\n\tconst now = isoNow();\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\treturn {\n\t\t\t\t...task,\n\t\t\t\ttargetFiles: ownerFiles,\n\t\t\t\tcontextRefs: Array.from(new Set([...(task.contextRefs || []), 'supportV5DiagnosisGate', 'owner_files'])),\n\t\t\t\tselfGate: `Repair only the diagnosed owner files unless you revise the diagnosis with new evidence. Owner files: ${ownerFiles.join(', ')}.`,\n\t\t\t\tacceptanceProof: businessProof,\n\t\t\t\tdependsOn: Array.from(new Set([...(task.dependsOn || []), diagnosisMicrotaskId])),\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\treturn {\n\t\t\t\t...task,\n\t\t\t\tcontextRefs: Array.from(new Set([...(task.contextRefs || []), 'supportV5DiagnosisGate', 'proof_plan'])),\n\t\t\t\tselfGate: probes[0]?.action || task.selfGate,\n\t\t\t\tacceptanceProof: businessProof || task.acceptanceProof,\n\t\t\t\ttargetFiles: ownerFiles,\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\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 || 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 diagnosisValidation = validateResolveIOSupportDiagnosisGate(existingDiagnosisGate);\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\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 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\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 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\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 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\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\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});\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 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 activeIssueClassProbe = issueClassProbes[0];\n\tconst issueClassProbeEvidence = activeIssueClassProbe\n\t\t? Array.from(new Set([\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\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\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 rootCauseFirstSatisfied = diagnosisValid && ownerFilesReady && proofPlanReady;\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\tbusinessProofReady: businessProofReadiness.ready === true,\n\t\t\tinfraOnly: action === 'repair_infra_only',\n\t\t\tsameFailureParked,\n\t\t\tcanEditProductCode: fields.canEditProductCode === true && rootCauseFirstSatisfied,\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\treason,\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\tbusinessProofStatus: businessProofReadiness.status,\n\t\t\tproofFingerprint: businessProofReadiness.proofFingerprint,\n\t\t\tartifactFingerprint: businessProofReadiness.artifactFingerprint,\n\t\t\tproofFreshness: businessProofReadiness.proofFreshness\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): ResolveIOSupportV5AutonomousDecision => {\n\t\tconst primaryCommand = fields.primaryCommand || action;\n\t\tconst nextCommands = fields.nextCommands || [primaryCommand];\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 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\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\tactiveMicrotask,\n\t\t\tdiagnosisValidation,\n\t\t\trepairGate,\n\t\t\tcontinuation,\n\t\t\tcustomerReplyPolicy,\n\t\t\tbusinessProofReadiness,\n\t\t\tevidenceFreshness,\n\t\t\trootCauseReadiness,\n\t\t\thumanReviewPacket,\n\t\t\thotfixContinuation: fields.hotfixContinuation,\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\treturn makeDecision('repair_infra_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: 'run_support_v5_infra_repair',\n\t\t\tnextCommands: ['rerun_puppeteer_compile_startup_preflight', 'repair_harness_or_cache_only', 'record_infra_artifact'],\n\t\t\trequiredEvidence: ['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 (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, 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, 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 canPrepareHotfixPatch = hotfixContinuation.action !== 'park_manual';\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,\n\t\t\tcanHotfixBackend: canPrepareHotfixPatch && !liveHotfixBlockedUntilCommit,\n\t\t\tliveHotfixBlockedUntilCommit,\n\t\t\tlane: 'release',\n\t\t\tstepType: 'release_gate',\n\t\t\tprimaryCommand: hotfixPrimaryCommandByAction[hotfixContinuation.action] || 'record_hotfix_evidence',\n\t\t\tnextCommands: hotfixNextCommands,\n\t\t\trequiredEvidence: hotfixRequiredEvidence,\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])),\n\t\t\tforbiddenActions: hotfixForbiddenActions,\n\t\t\thotfixContinuation\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\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: ['load_owner_files_only', 'apply_smallest_fix', 'run_smallest_compile_or_unit_gate', 'handoff_to_business_proof_qa'],\n\t\trequiredEvidence: ['changed files within owner_files', 'compile/unit proof', 'next QA row'],\n\t\tforbiddenActions: ['Do not edit outside owner_files unless diagnosis is revised with new evidence.']\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}): {\n\tprompt: string;\n\tpromptTokenEstimate: number;\n\tpromptSections: ResolveIOSupportV5UsageSection[];\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 similarCaseSelection = Array.isArray(input.similarCaseHints)\n\t\t? selectResolveIOSupportSimilarCaseHints({\n\t\t\tcandidates: input.similarCaseHints,\n\t\t\tissueClass: (diagnosisGate as ResolveIOSupportDiagnosisGate | undefined)?.issue_class,\n\t\t\townerFiles: (diagnosisGate as ResolveIOSupportDiagnosisGate | undefined)?.owner_files,\n\t\t\ttext: input.bundle.supportV5ScopeDigest || input.bundle.supportV5SupervisorState.currentGoal,\n\t\t\tlimit: 5\n\t\t})\n\t\t: input.similarCaseHints && typeof input.similarCaseHints === 'object'\n\t\t\t? {\n\t\t\t\tranked: cleanObject(input.similarCaseHints).ranked || [],\n\t\t\t\tsimilarTickets: cleanObject(input.similarCaseHints).similarTickets || cleanObject(input.similarCaseHints).similar_tickets || [],\n\t\t\t\tsimilarCommits: cleanObject(input.similarCaseHints).similarCommits || cleanObject(input.similarCaseHints).similar_commits || [],\n\t\t\t\tignoredCount: Number(cleanObject(input.similarCaseHints).ignoredCount || cleanObject(input.similarCaseHints).ignored_count || 0),\n\t\t\t\tgeneratedAt: cleanText(cleanObject(input.similarCaseHints).generatedAt || cleanObject(input.similarCaseHints).generated_at, 120)\n\t\t\t} as ResolveIOSupportSimilarCaseSelection\n\t\t\t: undefined;\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'{\"support_diagnosis_gate\":{\"issue_case\":{\"customer_complaint\":\"\",\"expected_result\":\"\",\"observed_result\":\"\",\"route_module\":\"\",\"account_customer_context\":\"\",\"reproduction_status\":\"reproduced|blocked|classified\",\"reproduction_blocker\":\"\"},\"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\":\"\",\"falsifiable_test\":\"\",\"evidence\":[\"\"]},\"rejected_alternatives\":[\"\"],\"failing_path\":{\"frontend\":\"\",\"backend\":\"\",\"shared_library\":\"\",\"data_query\":\"\",\"description\":\"\"},\"owner_files\":[\"small/exact/file.ts\"],\"proof_plan\":{\"before\":\"\",\"before_state_unavailable_reason\":\"\",\"action\":\"\",\"after\":\"\",\"business_assertion\":\"\",\"route\":\"\",\"data_assertion\":\"\",\"artifact_expectation\":\"\",\"business_proof_contract\":{\"issue_class\":\"same as diagnosis issue_class\",\"setup_state\":\"\",\"action_under_test\":\"\",\"expected_business_state_change\":\"\",\"prohibited_false_pass\":\"Route load, screenshot, scorecard, or model claim alone is not acceptance.\",\"proof_artifacts\":[\"browser trace/screenshot/json/mongo delta\"],\"data_or_dom_assertion\":\"\"}},\"similar_tickets\":[],\"similar_commits\":[],\"evidence\":[{\"type\":\"ticket|browser|mongo|log|code|commit|qa|other\",\"summary\":\"\",\"artifactPath\":\"\"}],\"status\":\"passed\"}}',\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 && similarCaseHintsText ? {\n\t\t\tname: 'similar_accepted_fix_hints',\n\t\t\ttext: similarCaseHintsText\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 before running. A screenshot of `/home`, the login screen, or a shell route after this helper means the QA script navigated to the wrong route or storage is stale; rerun the same row with the active route before returning an app blocker.',\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: `npm run build`, `npm run build-dev`, `npm run build-prod`, `ng build`, `npm install`, `npm ci`, `npm run server`, `npm run client`, `ng serve`, `gulp`, `mongod`, `run-local-qa.sh`, and broad source discovery. If a build/startup/dependency problem is suspected, return `blocked` or `needs-fix` with the existing qa-artifacts log paths instead of launching those commands.',\n\t\t\t\t\t'Launch Puppeteer from `PUPPETEER_EXECUTABLE_PATH || CHROME_BIN`, seed localStorage from `qa-artifacts/auth-bootstrap-storage-state.json`, then navigate to the active QA route.',\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\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\tdecideResolveIOAIManagerHotfixContinuation,\n\tdecideResolveIOAIManagerPolicy,\n\thashResolveIOAIManagerEvidence,\n\tResolveIOAIManagerHotfixContinuationDecision,\n\tResolveIOAIManagerHotfixFirstReleasePolicy,\n\tResolveIOAIManagerEvidenceStrength,\n\tResolveIOAIManagerRecoveryCheckpoint,\n\tResolveIOAIManagerRecoveryActionPacket,\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 interface ResolveIOSupportDiagnosisEvidence {\n\ttype: 'ticket' | 'browser' | 'mongo' | 'log' | 'code' | 'commit' | 'qa' | 'other';\n\tsummary: string;\n\tartifactPath?: 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}\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\thasTicketContext: boolean;\n\thasRootCauseEvidence: boolean;\n\thasReproductionEvidence: boolean;\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 ResolveIOSupportCustomerReplyPolicyInput {\n\tdiagnosisGate?: 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}\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\thumanReviewPacket?: ResolveIOSupportHumanReviewPacket;\n\tdraftBasis?: {\n\t\tissueClass: ResolveIOSupportIssueClass;\n\t\tbusinessProof: string;\n\t\tartifactCount: number;\n\t};\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\texpected_evidence: string;\n\texpected_business_proof: string;\n\trequired_artifacts: 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\tblocks_acceptance_without_business_assertion: boolean;\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 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\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\toutsideOwnerFiles: string[];\n\trepeatedFailure?: ResolveIOSupportV5RepeatStopDecision;\n\tdiagnosisValidation: ResolveIOSupportDiagnosisGateValidation;\n\trecoveryPlan: ResolveIOAIManagerRecoveryPlan;\n\trecoveryCheckpoint: ResolveIOAIManagerRecoveryCheckpoint;\n\trecoveryEvidenceProbe: ResolveIOAIManagerRecoveryEvidenceProbe;\n\trecoveryAction: ResolveIOAIManagerRecoveryActionPacket;\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\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\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\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| '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| '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\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\treason: string;\n\tblockers: string[];\n\townerFiles: string[];\n\tissueClass?: ResolveIOSupportIssueClass;\n\texpectedProof?: string;\n\tissueClassProbes?: ResolveIOSupportIssueClassProbe[];\n\tbusinessProofStatus?: ResolveIOSupportBusinessProofReadiness['status'];\n\tproofFingerprint?: string;\n\tartifactFingerprint?: string;\n\tproofFreshness?: ResolveIOSupportBusinessProofReadiness['proofFreshness'];\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\tmaxOwnerFiles?: number;\n\tnow?: Date | 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';\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\tactiveMicrotask?: ResolveIOSupportV5Microtask;\n\tdiagnosisValidation: ResolveIOSupportDiagnosisGateValidation;\n\trepairGate: ResolveIOSupportV5RepairGateDecision;\n\tcontinuation: ResolveIOSupportV5ContinuationDecision;\n\tcustomerReplyPolicy: ResolveIOSupportCustomerReplyPolicy;\n\tbusinessProofReadiness: ResolveIOSupportBusinessProofReadiness;\n\tevidenceFreshness: ResolveIOSupportEvidenceFreshness;\n\trootCauseReadiness: ResolveIOSupportRootCauseReadiness;\n\tcontinuationProofCheckpoint: ResolveIOSupportContinuationProofCheckpoint;\n\thumanReviewPacket: ResolveIOSupportHumanReviewPacket;\n\thotfixContinuation?: ResolveIOAIManagerHotfixContinuationDecision;\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\treturn String(value || '').replace(/\\s+/g, ' ').trim().slice(0, 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 = cleanText(value, max);\n\t\tif (normalized && !result.includes(normalized)) {\n\t\t\tresult.push(normalized);\n\t\t}\n\t\tif (result.length >= limit) {\n\t\t\tbreak;\n\t\t}\n\t}\n\treturn result;\n}\n\nfunction cleanObject(value: any): Record<string, any> {\n\treturn value && typeof value === 'object' && !Array.isArray(value) ? value : {};\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\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};\n\treturn aliases[normalized] || '';\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 normalizeSupportDiagnosisEvidence(values: any): 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 ? [{ type: 'other', summary }] : [];\n\t}\n\tconst stringEvidence: ResolveIOSupportDiagnosisEvidence[] = values\n\t\t.filter((entry) => typeof entry === 'string')\n\t\t.map((entry) => ({\n\t\t\ttype: 'other' as const,\n\t\t\tsummary: cleanText(entry, 1200)\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\treturn {\n\t\t\t\ttype: (allowed.has(type) ? type : 'other') as ResolveIOSupportDiagnosisEvidence['type'],\n\t\t\t\tsummary: cleanText(entry.summary || entry.message || entry.evidence || entry.reason, 1200),\n\t\t\t\tartifactPath: cleanText(entry.artifactPath || entry.path || entry.file, 500)\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\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 normalizeOwnerFilePath(value: any): string {\n\treturn cleanText(value, 500)\n\t\t.replace(/\\\\/g, '/')\n\t\t.replace(/^\\.\\/+/, '')\n\t\t.replace(/^\\/+/, '')\n\t\t.replace(/\\s+$/g, '');\n}\n\nfunction ownerFileLooksBroad(value: string): boolean {\n\tconst normalized = normalizeOwnerFilePath(value);\n\treturn !normalized\n\t\t|| normalized.includes('*')\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 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\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\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\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 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 === '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\thasTicketContext,\n\t\thasRootCauseEvidence,\n\t\thasReproductionEvidence\n\t};\n}\n\nexport function normalizeResolveIOSupportDiagnosisGate(value: any, now?: Date | string): ResolveIOSupportDiagnosisGate | undefined {\n\tconst source = cleanObject(value);\n\tif (!Object.keys(source).length) {\n\t\treturn undefined;\n\t}\n\tconst issueCaseSource = cleanObject(source.issue_case || source.issueCase);\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 issueClass = normalizeIssueClass(source.issue_class || source.issueClass);\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);\n\tconst ownerFiles = cleanList(source.owner_files || source.ownerFiles, 20, 500)\n\t\t.map(normalizeOwnerFilePath)\n\t\t.filter(Boolean);\n\tconst gate: ResolveIOSupportDiagnosisGate = {\n\t\tissue_case: {\n\t\t\tcustomer_complaint: pickText(issueCaseSource, ['customer_complaint', 'customerComplaint', 'complaint', 'request', 'summary'], 1200),\n\t\t\texpected_result: pickText(issueCaseSource, ['expected_result', 'expectedResult', 'expected'], 1000),\n\t\t\tobserved_result: pickText(issueCaseSource, ['observed_result', 'observedResult', 'observed', 'actual'], 1000),\n\t\t\troute_module: pickText(issueCaseSource, ['route_module', 'routeModule', 'route', 'module', 'screen'], 500),\n\t\t\taccount_customer_context: pickText(issueCaseSource, ['account_customer_context', 'accountCustomerContext', 'account', 'customer', 'user', 'context'], 800),\n\t\t\treproduction_status: normalizeReproductionStatus(issueCaseSource.reproduction_status || issueCaseSource.reproductionStatus || source.reproduction_status),\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|| (typeof source.accepted_hypothesis === 'string' ? cleanText(source.accepted_hypothesis, 1200) : ''),\n\t\t\tfalsifiable_test: pickText(hypothesisSource, ['falsifiable_test', 'falsifiableTest', 'test', 'proof', 'falsifier'], 1000),\n\t\t\tevidence: cleanList(hypothesisSource.evidence || source.hypothesis_evidence || source.hypothesisEvidence, 10, 800)\n\t\t},\n\t\trejected_alternatives: cleanList(source.rejected_alternatives || source.rejectedAlternatives, 10, 700),\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', 'summary'], 1200) || cleanText(source.failing_path, 1200)\n\t\t},\n\t\towner_files: ownerFiles,\n\t\tproof_plan: {\n\t\t\tbefore: pickText(proofPlanSource, ['before', 'before_state', 'beforeState', 'precondition'], 1000),\n\t\t\tbefore_state_unavailable_reason: pickText(proofPlanSource, ['before_state_unavailable_reason', 'beforeStateUnavailableReason', 'before_unavailable_reason'], 1000),\n\t\t\taction: pickText(proofPlanSource, ['action', 'browser_action', 'browserAction', 'steps'], 1000),\n\t\t\tafter: pickText(proofPlanSource, ['after', 'after_state', 'afterState', 'expected_after'], 1000),\n\t\t\tbusiness_assertion: pickText(proofPlanSource, ['business_assertion', 'businessAssertion', 'assertion'], 1000),\n\t\t\troute: pickText(proofPlanSource, ['route', 'url'], 500),\n\t\t\tdata_assertion: pickText(proofPlanSource, ['data_assertion', 'dataAssertion', 'mongo_delta', 'mongoDelta'], 1000),\n\t\t\tartifact_expectation: pickText(proofPlanSource, ['artifact_expectation', 'artifactExpectation', 'artifact', 'screenshot'], 1000),\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: normalizeSupportDiagnosisEvidence(source.evidence),\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\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\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\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};\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 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 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 true;\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 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 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 '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 releaseBlocked = supportReleaseLooksBlocked(input.releaseStatus);\n\tconst requiredEvidence = [\n\t\t'valid SupportDiagnosisGate',\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\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 clarificationQuestion = buildSupportClarificationQuestion(gate, diagnosisValidation.blockers);\n\t\t\treturn {\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,\n\t\t\t\tclarificationQuestion,\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: clarificationQuestion,\n\t\t\t\t\tcustomerFacingDraftAllowed: true,\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: diagnosisValidation.blockers,\n\t\t\t\t\trequiredEvidence,\n\t\t\t\t\tnextCommands: ['edit_clarification_question', 'send_after_human_review', 'park_ticket_until_customer_reply'],\n\t\t\t\t\tforbiddenActions: ['Do not run repair from a guessed reproduction path.'],\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 {\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\tif (shouldBlockConfidence || confidenceLevel !== 'high') {\n\t\treturn {\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};\n\t}\n\tif (unresolvedBlockers.length) {\n\t\treturn {\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};\n\t}\n\tif (releaseBlocked) {\n\t\treturn {\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,\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: [input.releaseStatus],\n\t\t\t\trequiredEvidence,\n\t\t\t\tnextCommands: ['record_hotfix_evidence', 'commit_and_push_hotfix_to_github', 'rerun_release_gate_once'],\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};\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 {\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};\n\t}\n\tif (!gate?.proof_plan.business_proof_contract || artifactCount < 1) {\n\t\treturn {\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};\n\t}\n\treturn {\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\tbusinessProof: gate.proof_plan.business_proof_contract.expected_business_state_change,\n\t\t\tartifactCount\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 requiredArtifacts = Array.from(new Set([\n\t\t...contractArtifacts,\n\t\t...selected.requiredArtifacts\n\t]));\n\treturn [{\n\t\t...common,\n\t\tfailure_class: selected.failureClass,\n\t\tobjective: `Issue-class probe for ${gate.issue_class}: ${gate.issue_case.customer_complaint}`,\n\t\taction: proofContract\n\t\t\t? `${proofContract.action_under_test} ${selected.action}`\n\t\t\t: selected.action,\n\t\texpected_evidence: `${selected.expected}${assertion ? ` Assertion: ${assertion}.` : ''}${requiredArtifacts.length ? ` Required artifacts: ${requiredArtifacts.join(', ')}.` : ''}`.trim(),\n\t\texpected_business_proof: proof || gate.proof_plan.business_assertion,\n\t\trequired_artifacts: requiredArtifacts\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\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 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 = new Set(validation.normalized.owner_files.map(normalizeOwnerFilePath));\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.has(filePath)) {\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\treturn true;\n\t\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 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 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\toutsideOwnerFiles,\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\toutsideOwnerFiles,\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\toutsideOwnerFiles,\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\toutsideOwnerFiles,\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\toutsideOwnerFiles,\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 ownerFiles = gate.owner_files;\n\tconst probes = buildResolveIOSupportIssueClassProbes(gate);\n\tconst proofContract = gate.proof_plan.business_proof_contract;\n\tconst businessProof = proofContract?.expected_business_state_change || gate.proof_plan.business_assertion;\n\tconst businessAssertion = proofContract?.data_or_dom_assertion || gate.proof_plan.data_assertion || gate.proof_plan.after;\n\tconst now = isoNow();\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\treturn {\n\t\t\t\t...task,\n\t\t\t\ttargetFiles: ownerFiles,\n\t\t\t\tcontextRefs: Array.from(new Set([...(task.contextRefs || []), 'supportV5DiagnosisGate', 'owner_files'])),\n\t\t\t\tselfGate: `Repair only the diagnosed owner files unless you revise the diagnosis with new evidence. Owner files: ${ownerFiles.join(', ')}.`,\n\t\t\t\tacceptanceProof: businessProof,\n\t\t\t\tdependsOn: Array.from(new Set([...(task.dependsOn || []), diagnosisMicrotaskId])),\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\treturn {\n\t\t\t\t...task,\n\t\t\t\tcontextRefs: Array.from(new Set([...(task.contextRefs || []), 'supportV5DiagnosisGate', 'proof_plan'])),\n\t\t\t\tselfGate: probes[0]?.action || task.selfGate,\n\t\t\t\tacceptanceProof: businessProof || task.acceptanceProof,\n\t\t\t\ttargetFiles: ownerFiles,\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\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 || 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 diagnosisValidation = validateResolveIOSupportDiagnosisGate(existingDiagnosisGate);\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\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 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\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 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\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 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\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\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});\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 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 activeIssueClassProbe = issueClassProbes[0];\n\tconst issueClassProbeEvidence = activeIssueClassProbe\n\t\t? Array.from(new Set([\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\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\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 rootCauseFirstSatisfied = diagnosisValid && ownerFilesReady && proofPlanReady;\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\tbusinessProofReady: businessProofReadiness.ready === true,\n\t\t\tinfraOnly: action === 'repair_infra_only',\n\t\t\tsameFailureParked,\n\t\t\tcanEditProductCode: fields.canEditProductCode === true && rootCauseFirstSatisfied,\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\treason,\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\tbusinessProofStatus: businessProofReadiness.status,\n\t\t\tproofFingerprint: businessProofReadiness.proofFingerprint,\n\t\t\tartifactFingerprint: businessProofReadiness.artifactFingerprint,\n\t\t\tproofFreshness: businessProofReadiness.proofFreshness\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): ResolveIOSupportV5AutonomousDecision => {\n\t\tconst primaryCommand = fields.primaryCommand || action;\n\t\tconst nextCommands = fields.nextCommands || [primaryCommand];\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 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\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\tactiveMicrotask,\n\t\t\tdiagnosisValidation,\n\t\t\trepairGate,\n\t\t\tcontinuation,\n\t\t\tcustomerReplyPolicy,\n\t\t\tbusinessProofReadiness,\n\t\t\tevidenceFreshness,\n\t\t\trootCauseReadiness,\n\t\t\tcontinuationProofCheckpoint,\n\t\t\thumanReviewPacket,\n\t\t\thotfixContinuation: fields.hotfixContinuation,\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\treturn makeDecision('repair_infra_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: 'run_support_v5_infra_repair',\n\t\t\tnextCommands: ['rerun_puppeteer_compile_startup_preflight', 'repair_harness_or_cache_only', 'record_infra_artifact'],\n\t\t\trequiredEvidence: ['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, 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, 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 canPrepareHotfixPatch = hotfixContinuation.action !== 'park_manual';\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,\n\t\t\tcanHotfixBackend: canPrepareHotfixPatch && !liveHotfixBlockedUntilCommit,\n\t\t\tliveHotfixBlockedUntilCommit,\n\t\t\tlane: 'release',\n\t\t\tstepType: 'release_gate',\n\t\t\tprimaryCommand: hotfixPrimaryCommandByAction[hotfixContinuation.action] || 'record_hotfix_evidence',\n\t\t\tnextCommands: hotfixNextCommands,\n\t\t\trequiredEvidence: hotfixRequiredEvidence,\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])),\n\t\t\tforbiddenActions: hotfixForbiddenActions,\n\t\t\thotfixContinuation\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\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: ['load_owner_files_only', 'apply_smallest_fix', 'run_smallest_compile_or_unit_gate', 'handoff_to_business_proof_qa'],\n\t\trequiredEvidence: ['changed files within owner_files', 'compile/unit proof', 'next QA row'],\n\t\tforbiddenActions: ['Do not edit outside owner_files unless diagnosis is revised with new evidence.']\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}): {\n\tprompt: string;\n\tpromptTokenEstimate: number;\n\tpromptSections: ResolveIOSupportV5UsageSection[];\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 similarCaseSelection = Array.isArray(input.similarCaseHints)\n\t\t? selectResolveIOSupportSimilarCaseHints({\n\t\t\tcandidates: input.similarCaseHints,\n\t\t\tissueClass: (diagnosisGate as ResolveIOSupportDiagnosisGate | undefined)?.issue_class,\n\t\t\townerFiles: (diagnosisGate as ResolveIOSupportDiagnosisGate | undefined)?.owner_files,\n\t\t\ttext: input.bundle.supportV5ScopeDigest || input.bundle.supportV5SupervisorState.currentGoal,\n\t\t\tlimit: 5\n\t\t})\n\t\t: input.similarCaseHints && typeof input.similarCaseHints === 'object'\n\t\t\t? {\n\t\t\t\tranked: cleanObject(input.similarCaseHints).ranked || [],\n\t\t\t\tsimilarTickets: cleanObject(input.similarCaseHints).similarTickets || cleanObject(input.similarCaseHints).similar_tickets || [],\n\t\t\t\tsimilarCommits: cleanObject(input.similarCaseHints).similarCommits || cleanObject(input.similarCaseHints).similar_commits || [],\n\t\t\t\tignoredCount: Number(cleanObject(input.similarCaseHints).ignoredCount || cleanObject(input.similarCaseHints).ignored_count || 0),\n\t\t\t\tgeneratedAt: cleanText(cleanObject(input.similarCaseHints).generatedAt || cleanObject(input.similarCaseHints).generated_at, 120)\n\t\t\t} as ResolveIOSupportSimilarCaseSelection\n\t\t\t: undefined;\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'{\"support_diagnosis_gate\":{\"issue_case\":{\"customer_complaint\":\"\",\"expected_result\":\"\",\"observed_result\":\"\",\"route_module\":\"\",\"account_customer_context\":\"\",\"reproduction_status\":\"reproduced|blocked|classified\",\"reproduction_blocker\":\"\"},\"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\":\"\",\"falsifiable_test\":\"\",\"evidence\":[\"\"]},\"rejected_alternatives\":[\"\"],\"failing_path\":{\"frontend\":\"\",\"backend\":\"\",\"shared_library\":\"\",\"data_query\":\"\",\"description\":\"\"},\"owner_files\":[\"small/exact/file.ts\"],\"proof_plan\":{\"before\":\"\",\"before_state_unavailable_reason\":\"\",\"action\":\"\",\"after\":\"\",\"business_assertion\":\"\",\"route\":\"\",\"data_assertion\":\"\",\"artifact_expectation\":\"\",\"business_proof_contract\":{\"issue_class\":\"same as diagnosis issue_class\",\"setup_state\":\"\",\"action_under_test\":\"\",\"expected_business_state_change\":\"\",\"prohibited_false_pass\":\"Route load, screenshot, scorecard, or model claim alone is not acceptance.\",\"proof_artifacts\":[\"browser trace/screenshot/json/mongo delta\"],\"data_or_dom_assertion\":\"\"}},\"similar_tickets\":[],\"similar_commits\":[],\"evidence\":[{\"type\":\"ticket|browser|mongo|log|code|commit|qa|other\",\"summary\":\"\",\"artifactPath\":\"\"}],\"status\":\"passed\"}}',\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 && similarCaseHintsText ? {\n\t\t\tname: 'similar_accepted_fix_hints',\n\t\t\ttext: similarCaseHintsText\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 before running. A screenshot of `/home`, the login screen, or a shell route after this helper means the QA script navigated to the wrong route or storage is stale; rerun the same row with the active route before returning an app blocker.',\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: `npm run build`, `npm run build-dev`, `npm run build-prod`, `ng build`, `npm install`, `npm ci`, `npm run server`, `npm run client`, `ng serve`, `gulp`, `mongod`, `run-local-qa.sh`, and broad source discovery. If a build/startup/dependency problem is suspected, return `blocked` or `needs-fix` with the existing qa-artifacts log paths instead of launching those commands.',\n\t\t\t\t\t'Launch Puppeteer from `PUPPETEER_EXECUTABLE_PATH || CHROME_BIN`, seed localStorage from `qa-artifacts/auth-bootstrap-storage-state.json`, then navigate to the active QA route.',\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\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"]}