@resolveio/server-lib 22.3.105 → 22.3.107
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":["export type ResolveIOSupportV5StepType =\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 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 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\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\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\tsupportV5LaneMemory: {\n\t\tbuild: ResolveIOSupportV5LaneMemory;\n\t\tqa: ResolveIOSupportV5LaneMemory;\n\t};\n\tsupportV5StepHistory: ResolveIOSupportV5StepRecord[];\n\tsupportV5Budget: ResolveIOSupportV5Budget;\n\tsupportV5RunnerIncidents: ResolveIOSupportV5RunnerIncident[];\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\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\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}\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\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 || 4000),\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 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\treturn {\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 || 'compile_check',\n\t\t\tactiveBlocker: existingSupervisor?.activeBlocker || '',\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\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};\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 record: ResolveIOSupportV5StepRecord = {\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\trecordedAt: now\n\t};\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\treturn {\n\t\t...bundle,\n\t\tsupportV5SupervisorState: supervisor,\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: bundle.supportV5Budget.loopCount + 1\n\t\t}\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 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 (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 * 2;\n\tif (budgetExceeded) {\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};\n\t}\n\tif (repeatedNoProgressCount > budget.maxRepeatedNoProgress) {\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};\n\t}\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};\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 self-gate.',\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 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":["export type ResolveIOSupportV5StepType =\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 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 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\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\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\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}\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\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\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}\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 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\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: [],\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 and screenshot/caption artifact.',\n\t\t\tthreadKey: input.qaThreadKey,\n\t\t\tattempts: 0,\n\t\t\tdependsOn: [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.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 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\treturn {\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 || 'compile_check',\n\t\t\tactiveBlocker: existingSupervisor?.activeBlocker || '',\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\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: 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};\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 record: ResolveIOSupportV5StepRecord = {\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\trecordedAt: now\n\t};\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 nextMicrotask = selectResolveIOSupportV5ActiveMicrotask(ledger, bundle.supportV5ActiveMicrotaskId);\n\treturn {\n\t\t...bundle,\n\t\tsupportV5SupervisorState: supervisor,\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: bundle.supportV5Budget.loopCount + 1\n\t\t},\n\t\tsupportV5MicrotaskLedger: ledger,\n\t\tsupportV5ActiveMicrotaskId: nextMicrotask?.microtaskId,\n\t\tsupportV5MicrotaskUsageHistory: bundle.supportV5MicrotaskUsageHistory || []\n\t};\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 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 (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\tif (budgetExceeded) {\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};\n\t}\n\tif (repeatedNoProgressCount > budget.maxRepeatedNoProgress) {\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};\n\t}\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};\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 self-gate.',\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\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 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 qaRow = input.activeQaRow || activeMicrotask?.lane === 'qa' ? input.activeQaRow || laneMemory.activeQaRow || input.bundle.supportV5SupervisorState.currentQaRow : 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].join('\\n')\n\t\t},\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\t{\n\t\t\tname: 'return_contract',\n\t\t\ttext: 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) => 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"]}
|