@resolveio/server-lib 22.3.167 → 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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@resolveio/server-lib",
3
- "version": "22.3.167",
3
+ "version": "22.3.168",
4
4
  "description": "",
5
5
  "scripts": {
6
6
  "package": "./build_package.sh",
@@ -29,6 +29,7 @@
29
29
  "ai-run-evidence-test": "node --require ts-node/register tests/ai-run-evidence.test.ts",
30
30
  "ai-run-eval-test": "node --require ts-node/register tests/ai-run-eval.test.ts",
31
31
  "support-runner-v5-test": "node --require ts-node/register tests/support-runner-v5.test.ts",
32
+ "aicoder-runner-v6-test": "node --require ts-node/register tests/aicoder-runner-v6.test.ts",
32
33
  "ai-assistant-nightly-eval": "npm run ai-assistant-corpus-build && npm run ai-assistant-data-parity-e2e && npm run ai-assistant-corpus-replay-e2e && npm run ai-assistant-eval-triage"
33
34
  },
34
35
  "author": "",
@@ -126,6 +126,26 @@ export interface ResolveIOAICoderWorkflowProofReadiness {
126
126
  export type ResolveIOAICoderV6ContinuationAction = 'continue' | 'retry_same_step' | 'switch_to_repair' | 'park' | 'budget_stop' | 'infra_retry' | 'ready_to_publish';
127
127
  export type ResolveIOAICoderWorkflowReadinessStatus = 'journey_contract_required' | 'journey_contract_repair_required' | 'workflow_build_ready' | 'workflow_qa_required' | 'workflow_business_proof_ready' | 'release_repair_required' | 'infra_repair_only' | 'compile_repair_only' | 'collect_new_evidence' | 'budget_stopped' | 'parked';
128
128
  export type ResolveIOAICoderWorkflowReadinessGate = 'journey_contract' | 'build' | 'workflow_qa' | 'release' | 'infra' | 'compile' | 'evidence' | 'manual';
129
+ export type ResolveIOAICoderWorkflowProofCheckpointStatus = 'waiting_for_journey_contract' | 'waiting_for_workflow_proof' | 'waiting_for_new_evidence' | 'waiting_for_release_gate' | 'waiting_for_infra_or_compile' | 'ready_to_continue';
130
+ export interface ResolveIOAICoderWorkflowProofCheckpoint {
131
+ required: boolean;
132
+ status: ResolveIOAICoderWorkflowProofCheckpointStatus;
133
+ readinessStatus: ResolveIOAICoderWorkflowReadinessStatus;
134
+ nextGate: ResolveIOAICoderWorkflowReadinessGate;
135
+ startingFailureClass: string;
136
+ startingBlockerFingerprint: string;
137
+ startingEvidenceHash: string;
138
+ workflowProofFingerprint: string;
139
+ artifactFingerprint: string;
140
+ requiredEvidence: string[];
141
+ requiredResetEvidence: string[];
142
+ successRequiresWorkflowBusinessProof: boolean;
143
+ blocksProductRepairUntilJourneyContract: boolean;
144
+ blocksPublishUntilWorkflowProof: boolean;
145
+ blocksPublishUntilReleaseGate: boolean;
146
+ blocksWowUiUntilWorkflowProof: boolean;
147
+ nextAction: string;
148
+ }
129
149
  export interface ResolveIOAICoderWorkflowReadiness {
130
150
  status: ResolveIOAICoderWorkflowReadinessStatus;
131
151
  nextGate: ResolveIOAICoderWorkflowReadinessGate;
@@ -150,6 +170,7 @@ export interface ResolveIOAICoderWorkflowReadiness {
150
170
  primaryWorkflowId: string;
151
171
  activeWorkflowStep: string;
152
172
  businessProofArtifacts: string[];
173
+ workflowProofCheckpoint: ResolveIOAICoderWorkflowProofCheckpoint;
153
174
  }
154
175
  export interface ResolveIOAICoderV6SupervisorState {
155
176
  version: 'v6';
@@ -274,6 +295,7 @@ export interface ResolveIOAICoderV6ContinuationDecision {
274
295
  repeatedNoProgressCount: number;
275
296
  budgetExceeded: boolean;
276
297
  workflowReadiness: ResolveIOAICoderWorkflowReadiness;
298
+ workflowProofCheckpoint: ResolveIOAICoderWorkflowProofCheckpoint;
277
299
  recoveryPlan: ResolveIOAIManagerRecoveryPlan;
278
300
  recoveryCheckpoint: ResolveIOAIManagerRecoveryCheckpoint;
279
301
  recoveryEvidenceProbe: ResolveIOAIManagerRecoveryEvidenceProbe;
@@ -291,6 +313,24 @@ export declare function collectResolveIOAICoderJourneyContractIssues(input: any,
291
313
  }): string[];
292
314
  export declare function evaluateResolveIOAICoderWorkflowProofReadiness(input?: ResolveIOAICoderWorkflowProofReadinessInput): ResolveIOAICoderWorkflowProofReadiness;
293
315
  export declare function fingerprintResolveIOAICoderV6Blocker(value: any): string;
316
+ export declare function buildResolveIOAICoderWorkflowProofCheckpoint(input: {
317
+ status: ResolveIOAICoderWorkflowReadinessStatus;
318
+ nextGate: ResolveIOAICoderWorkflowReadinessGate;
319
+ nextAction?: any;
320
+ last?: Partial<ResolveIOAICoderV6StepRecord>;
321
+ journeyContractReady?: boolean;
322
+ businessProofReady?: boolean;
323
+ routeOnlyBlocked?: boolean;
324
+ releaseBlocked?: boolean;
325
+ infraOnly?: boolean;
326
+ compileOnly?: boolean;
327
+ sameFailureParked?: boolean;
328
+ primaryWorkflowId?: any;
329
+ activeWorkflowStep?: any;
330
+ workflowQaRows?: any;
331
+ businessProofArtifacts?: any;
332
+ completedWorkflowSteps?: any;
333
+ }): ResolveIOAICoderWorkflowProofCheckpoint;
294
334
  export declare function buildResolveIOAICoderV6WorkflowReadiness(bundle: ResolveIOAICoderV6StateBundle, context?: {
295
335
  action?: ResolveIOAICoderV6ContinuationAction;
296
336
  reason?: string;
@@ -53,6 +53,7 @@ exports.validateResolveIOAICoderJourneyContract = validateResolveIOAICoderJourne
53
53
  exports.collectResolveIOAICoderJourneyContractIssues = collectResolveIOAICoderJourneyContractIssues;
54
54
  exports.evaluateResolveIOAICoderWorkflowProofReadiness = evaluateResolveIOAICoderWorkflowProofReadiness;
55
55
  exports.fingerprintResolveIOAICoderV6Blocker = fingerprintResolveIOAICoderV6Blocker;
56
+ exports.buildResolveIOAICoderWorkflowProofCheckpoint = buildResolveIOAICoderWorkflowProofCheckpoint;
56
57
  exports.buildResolveIOAICoderV6WorkflowReadiness = buildResolveIOAICoderV6WorkflowReadiness;
57
58
  exports.buildResolveIOAICoderV6Budget = buildResolveIOAICoderV6Budget;
58
59
  exports.initializeResolveIOAICoderV6State = initializeResolveIOAICoderV6State;
@@ -1289,6 +1290,121 @@ function aicoderWorkflowReadinessGateFor(status) {
1289
1290
  return 'manual';
1290
1291
  }
1291
1292
  }
1293
+ function buildResolveIOAICoderWorkflowProofCheckpoint(input) {
1294
+ var _a, _b, _c, _d, _e;
1295
+ var status = input.status;
1296
+ var nextGate = input.nextGate;
1297
+ var proofArtifacts = cleanList(input.businessProofArtifacts, 80, 500);
1298
+ var workflowRows = cleanWorkflowQaRows(input.workflowQaRows, 80);
1299
+ var completedWorkflowSteps = cleanList(input.completedWorkflowSteps, 80, 240);
1300
+ var workflowProofFingerprint = fingerprintResolveIOAICoderWorkflowProofPayload({
1301
+ primaryWorkflowId: input.primaryWorkflowId,
1302
+ activeWorkflowStep: input.activeWorkflowStep,
1303
+ workflowRows: workflowRows.map(function (row) { return ({
1304
+ workflowId: row.workflowId,
1305
+ stepId: row.stepId,
1306
+ status: row.status,
1307
+ acceptanceGate: row.acceptanceGate,
1308
+ assertion: row.assertion
1309
+ }); }),
1310
+ completedWorkflowSteps: completedWorkflowSteps,
1311
+ proofArtifacts: proofArtifacts
1312
+ }, 'aicoder-workflow-readiness');
1313
+ var artifactFingerprint = fingerprintResolveIOAICoderWorkflowProofPayload({
1314
+ proofArtifacts: proofArtifacts,
1315
+ rowArtifacts: workflowRows.flatMap(function (row) { return cleanList(row.artifactPaths, 10, 500); })
1316
+ }, 'aicoder-workflow-artifacts');
1317
+ var requiredEvidenceByStatus = {
1318
+ journey_contract_required: [
1319
+ 'docs/APP_JOURNEY_CONTRACT.md with validated journey_contract JSON',
1320
+ 'first/next/last north_star_workflow steps',
1321
+ 'workflow QA rows generated from journey_contract.qa_assertions'
1322
+ ],
1323
+ journey_contract_repair_required: [
1324
+ 'repaired journey contract validation result',
1325
+ 'command-center hub action mapped to workflow state transition'
1326
+ ],
1327
+ workflow_build_ready: [
1328
+ 'implemented north-star workflow from the Journey Contract',
1329
+ 'seeded data story available in the app'
1330
+ ],
1331
+ workflow_qa_required: [
1332
+ 'AIQaBusinessAssertion for the north-star workflow',
1333
+ 'non-empty data proof',
1334
+ 'saved/calculated output proof',
1335
+ 'report/export proof when promised'
1336
+ ],
1337
+ workflow_business_proof_ready: [
1338
+ 'deterministic release gate before publish',
1339
+ 'workflow proof artifact retained for acceptance'
1340
+ ],
1341
+ release_repair_required: [
1342
+ 'publish/deploy/sample-data failure artifact',
1343
+ 'hotfix or release-gate evidence before another full deploy'
1344
+ ],
1345
+ infra_repair_only: [
1346
+ 'Puppeteer/Chrome/Mongo/startup/preflight evidence',
1347
+ 'infra failure class changed or preflight passed'
1348
+ ],
1349
+ compile_repair_only: [
1350
+ 'compile/build log evidence',
1351
+ 'compile failure class changed or build passed'
1352
+ ],
1353
+ collect_new_evidence: [
1354
+ 'changed blocker fingerprint or evidence hash',
1355
+ 'fresh workflow QA artifact',
1356
+ 'AIQaBusinessAssertion or precise workflow blocker artifact'
1357
+ ],
1358
+ budget_stopped: [
1359
+ 'budget summary',
1360
+ 'one human decision for next bounded action'
1361
+ ],
1362
+ parked: [
1363
+ 'operator decision',
1364
+ 'new evidence before retry'
1365
+ ]
1366
+ };
1367
+ var waitingStatus = status === 'workflow_business_proof_ready'
1368
+ ? 'ready_to_continue'
1369
+ : status === 'release_repair_required'
1370
+ ? 'waiting_for_release_gate'
1371
+ : status === 'collect_new_evidence' || input.sameFailureParked === true
1372
+ ? 'waiting_for_new_evidence'
1373
+ : status === 'infra_repair_only' || status === 'compile_repair_only'
1374
+ ? 'waiting_for_infra_or_compile'
1375
+ : status === 'journey_contract_required' || status === 'journey_contract_repair_required'
1376
+ ? 'waiting_for_journey_contract'
1377
+ : 'waiting_for_workflow_proof';
1378
+ var blocksProductRepairUntilJourneyContract = input.journeyContractReady !== true
1379
+ || status === 'journey_contract_required'
1380
+ || status === 'journey_contract_repair_required';
1381
+ var blocksPublishUntilWorkflowProof = input.businessProofReady !== true
1382
+ || input.routeOnlyBlocked === true
1383
+ || input.sameFailureParked === true
1384
+ || blocksProductRepairUntilJourneyContract
1385
+ || status === 'workflow_qa_required'
1386
+ || status === 'workflow_build_ready'
1387
+ || status === 'collect_new_evidence';
1388
+ return {
1389
+ required: true,
1390
+ status: waitingStatus,
1391
+ readinessStatus: status,
1392
+ nextGate: nextGate,
1393
+ startingFailureClass: cleanText((_a = input.last) === null || _a === void 0 ? void 0 : _a.failureClass, 120),
1394
+ startingBlockerFingerprint: cleanText(((_b = input.last) === null || _b === void 0 ? void 0 : _b.blockerFingerprint) || fingerprintResolveIOAICoderV6Blocker(((_c = input.last) === null || _c === void 0 ? void 0 : _c.blocker) || ((_d = input.last) === null || _d === void 0 ? void 0 : _d.summary) || ''), 160),
1395
+ startingEvidenceHash: cleanText((_e = input.last) === null || _e === void 0 ? void 0 : _e.evidenceHash, 160),
1396
+ workflowProofFingerprint: workflowProofFingerprint,
1397
+ artifactFingerprint: artifactFingerprint,
1398
+ requiredEvidence: (requiredEvidenceByStatus[status] || []).slice(0, 20),
1399
+ requiredResetEvidence: Array.from(new Set(__spreadArray(__spreadArray(__spreadArray([], __read((requiredEvidenceByStatus[status] || [])), false), __read((input.sameFailureParked === true ? ['new workflow proof fingerprint', 'new artifact fingerprint'] : [])), false), __read((input.releaseBlocked === true ? ['changed release gate fingerprint'] : [])), false))).slice(0, 20),
1400
+ successRequiresWorkflowBusinessProof: status !== 'infra_repair_only' && status !== 'compile_repair_only' && status !== 'budget_stopped',
1401
+ blocksProductRepairUntilJourneyContract: blocksProductRepairUntilJourneyContract,
1402
+ blocksPublishUntilWorkflowProof: blocksPublishUntilWorkflowProof,
1403
+ blocksPublishUntilReleaseGate: input.releaseBlocked === true || status === 'release_repair_required',
1404
+ blocksWowUiUntilWorkflowProof: blocksPublishUntilWorkflowProof,
1405
+ nextAction: cleanText(input.nextAction, 500) || aicoderWorkflowReadinessNextCommand(status)
1406
+ };
1407
+ }
1292
1408
  function buildResolveIOAICoderV6WorkflowReadiness(bundle, context) {
1293
1409
  var _a, _b;
1294
1410
  if (context === void 0) { context = {}; }
@@ -1301,8 +1417,10 @@ function buildResolveIOAICoderV6WorkflowReadiness(bundle, context) {
1301
1417
  var primaryWorkflowId = cleanText(workflowMemory.primaryWorkflowId || ((_a = rows[0]) === null || _a === void 0 ? void 0 : _a.workflowId), 200);
1302
1418
  var activeWorkflowStep = cleanText(workflowMemory.activeWorkflowStep || workflowMemory.blockedWorkflowStep || ((_b = rows.find(function (row) { return !statusLooksPassed(row.status); })) === null || _b === void 0 ? void 0 : _b.stepId), 200);
1303
1419
  var failureClass = cleanText(last === null || last === void 0 ? void 0 : last.failureClass, 120).toLowerCase();
1304
- var reason = cleanText(context.reason || (last === null || last === void 0 ? void 0 : last.blocker) || (last === null || last === void 0 ? void 0 : last.summary), 1000);
1305
- var combinedText = "".concat(failureClass, "\n").concat(reason, "\n").concat((last === null || last === void 0 ? void 0 : last.stepType) || '', "\n").concat((last === null || last === void 0 ? void 0 : last.lane) || '').toLowerCase();
1420
+ var contextReason = cleanText(context.reason, 1000);
1421
+ var observedBlocker = cleanText((last === null || last === void 0 ? void 0 : last.blocker) || (last === null || last === void 0 ? void 0 : last.summary), 1000);
1422
+ var reason = contextReason || observedBlocker;
1423
+ var combinedText = "".concat(failureClass, "\n").concat(contextReason, "\n").concat(observedBlocker, "\n").concat((last === null || last === void 0 ? void 0 : last.stepType) || '', "\n").concat((last === null || last === void 0 ? void 0 : last.lane) || '').toLowerCase();
1306
1424
  var compileOnly = failureClass === 'compile'
1307
1425
  || /\b(compile|typescript|ts[0-9]{3,5}|ng build|cannot find name|module not found)\b/i.test(combinedText);
1308
1426
  var infraOnly = !compileOnly && (failureClass === 'infra'
@@ -1387,12 +1505,32 @@ function buildResolveIOAICoderV6WorkflowReadiness(bundle, context) {
1387
1505
  && status !== 'journey_contract_repair_required'
1388
1506
  && status !== 'release_repair_required'
1389
1507
  && status !== 'workflow_business_proof_ready';
1508
+ var nextGate = aicoderWorkflowReadinessGateFor(status);
1509
+ var nextCommand = aicoderWorkflowReadinessNextCommand(status);
1510
+ var workflowProofCheckpoint = buildResolveIOAICoderWorkflowProofCheckpoint({
1511
+ status: status,
1512
+ nextGate: nextGate,
1513
+ nextAction: nextCommand,
1514
+ last: last,
1515
+ journeyContractReady: journeyContractReady,
1516
+ businessProofReady: businessProofReady,
1517
+ routeOnlyBlocked: routeOnlyBlocked,
1518
+ releaseBlocked: releaseBlocked,
1519
+ infraOnly: infraOnly,
1520
+ compileOnly: compileOnly,
1521
+ sameFailureParked: sameFailureParked,
1522
+ primaryWorkflowId: primaryWorkflowId,
1523
+ activeWorkflowStep: activeWorkflowStep,
1524
+ workflowQaRows: rows,
1525
+ businessProofArtifacts: proofArtifacts,
1526
+ completedWorkflowSteps: completedSteps
1527
+ });
1390
1528
  return {
1391
1529
  status: status,
1392
- nextGate: aicoderWorkflowReadinessGateFor(status),
1530
+ nextGate: nextGate,
1393
1531
  nextLane: context.nextLane || (last === null || last === void 0 ? void 0 : last.lane) || bundle.aiCoderV6SupervisorState.activeLane,
1394
1532
  nextStep: context.nextStep || (last === null || last === void 0 ? void 0 : last.stepType) || bundle.aiCoderV6SupervisorState.activeStep,
1395
- nextCommand: aicoderWorkflowReadinessNextCommand(status),
1533
+ nextCommand: nextCommand,
1396
1534
  journeyContractReady: journeyContractReady,
1397
1535
  workflowQaRowsReady: workflowQaRowsReady,
1398
1536
  businessProofReady: businessProofReady,
@@ -1410,7 +1548,8 @@ function buildResolveIOAICoderV6WorkflowReadiness(bundle, context) {
1410
1548
  blockers: blockers.slice(0, 8),
1411
1549
  primaryWorkflowId: primaryWorkflowId,
1412
1550
  activeWorkflowStep: activeWorkflowStep,
1413
- businessProofArtifacts: proofArtifacts
1551
+ businessProofArtifacts: proofArtifacts,
1552
+ workflowProofCheckpoint: workflowProofCheckpoint
1414
1553
  };
1415
1554
  }
1416
1555
  function buildResolveIOAICoderV6Budget(existing) {
@@ -1682,14 +1821,17 @@ function decideResolveIOAICoderV6Continuation(bundle) {
1682
1821
  };
1683
1822
  };
1684
1823
  var managerRecoveryFields = function () { return recoveryFieldsFor(managerDecision.recoveryPlan, managerDecision.recoveryCheckpoint, managerDecision.recoveryEvidenceProbe); };
1685
- var withWorkflowReadiness = function (decision) { return (__assign(__assign({}, decision), { workflowReadiness: buildResolveIOAICoderV6WorkflowReadiness(bundle, {
1824
+ var withWorkflowReadiness = function (decision) {
1825
+ var workflowReadiness = buildResolveIOAICoderV6WorkflowReadiness(bundle, {
1686
1826
  action: decision.action,
1687
1827
  reason: decision.reason,
1688
1828
  nextLane: decision.nextLane,
1689
1829
  nextStep: decision.nextStep,
1690
1830
  budgetExceeded: decision.budgetExceeded,
1691
1831
  repeatedNoProgressCount: decision.repeatedNoProgressCount
1692
- }) })); };
1832
+ });
1833
+ return __assign(__assign({}, decision), { workflowReadiness: workflowReadiness, workflowProofCheckpoint: workflowReadiness.workflowProofCheckpoint });
1834
+ };
1693
1835
  var budgetExceeded = (budget.loopCount >= budget.maxLoopsPerRun && !managerDecision.loopBudgetShouldReset)
1694
1836
  || budget.totalPromptTokenEstimate >= budget.maxTotalPromptTokens
1695
1837
  || ((last === null || last === void 0 ? void 0 : last.promptTokenEstimate) || 0) > budget.maxPromptTokensPerNonInitialStep * 2;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/util/aicoder-runner-v6.ts"],"names":[],"mappings":"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","file":"aicoder-runner-v6.js","sourcesContent":["import {\n\tbuildResolveIOAIManagerRecoveryCheckpoint,\n\tbuildResolveIOAIManagerRecoveryActionPacket,\n\tbuildResolveIOAIManagerRecoveryEvidenceProbe,\n\tbuildResolveIOAIManagerRecoveryPlan,\n\tdecideResolveIOAIManagerPolicy,\n\thashResolveIOAIManagerEvidence,\n\tResolveIOAIManagerRecoveryCheckpoint,\n\tResolveIOAIManagerRecoveryActionPacket,\n\tResolveIOAIManagerRecoveryActionDispatchRecord,\n\tResolveIOAIManagerRecoveryExecutionDirective,\n\tResolveIOAIManagerRecoveryEvidenceProbe,\n\tResolveIOAIManagerRecoveryPlan,\n\tResolveIOAIManagerRecoveryPlanInput\n} from './ai-runner-manager-policy';\n\nexport type ResolveIOAICoderV6Lane =\n\t| 'intake'\n\t| 'plan'\n\t| 'build'\n\t| 'qa'\n\t| 'repair'\n\t| 'review'\n\t| 'publish';\n\nexport type ResolveIOAICoderV6StepType =\n\t| 'intake'\n\t| 'journey_contract'\n\t| 'journey_validation'\n\t| 'plan'\n\t| 'task'\n\t| 'workflow_build'\n\t| 'workflow_qa'\n\t| 'build'\n\t| 'qa'\n\t| 'repair'\n\t| 'review'\n\t| 'test_deploy'\n\t| 'live_deploy'\n\t| 'publish'\n\t| 'cleanup';\n\nexport type ResolveIOAICoderV6Outcome =\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_to_publish'\n\t| 'published';\n\nexport type ResolveIOAICoderV6RunKind = 'initial_builder' | 'terminal_helper';\n\nexport interface ResolveIOAICoderV6Budget {\n\tmaxPromptTokensPerNonInitialStep: number;\n\tmaxTotalPromptTokens: number;\n\tmaxLoopsPerRun: number;\n\tmaxRepeatedNoProgress: number;\n\tmaxRuntimeMinutesPerLane: number;\n\tsoftBudgetUsd: number;\n\thardBudgetUsd: number;\n\ttotalPromptTokenEstimate: number;\n\ttotalInputTokens: number;\n\ttotalCachedInputTokens: number;\n\ttotalOutputTokens: number;\n\ttotalRuntimeMs: number;\n\tloopCount: number;\n}\n\nexport interface ResolveIOAICoderV6LaneMemory {\n\tlane: ResolveIOAICoderV6Lane;\n\tmodel: string;\n\tthreadKey: string;\n\tscopeSummary: string;\n\tactiveStep: ResolveIOAICoderV6StepType;\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\tlatestPromptVersion?: string;\n\tlatestPromptTokenEstimate?: number;\n\tupdatedAt: string;\n}\n\nexport interface ResolveIOAICoderV6WorkflowQaRow {\n\tindex?: number;\n\tworkflowId?: string;\n\tstepId?: string;\n\troute?: string;\n\taction?: string;\n\tassertion?: string;\n\texpectedState?: string;\n\texpectedOutput?: string;\n\tproofKind?: string;\n\tacceptanceGate?: 'aiqa_business_assertion';\n\trequiredArtifacts?: string[];\n\tstateTransition?: {\n\t\tbefore?: string;\n\t\taction?: string;\n\t\tafter?: string;\n\t\tassertion?: string;\n\t};\n\tstatus?: string;\n\tartifactPaths?: string[];\n}\n\nexport interface ResolveIOAICoderV6WorkflowMemory {\n\tjourneyContractPath: string;\n\tprimaryWorkflowId: string;\n\tactiveWorkflowStep: string;\n\tworkflowQaRows: ResolveIOAICoderV6WorkflowQaRow[];\n\tcompletedWorkflowSteps: string[];\n\tblockedWorkflowStep: string;\n\tbusinessProofArtifacts: string[];\n\tupdatedAt: string;\n}\n\nexport interface ResolveIOAICoderJourneyContractValidationIssue {\n\tcode: string;\n\tpath: string;\n\tmessage: string;\n\tseverity: 'error' | 'warning';\n}\n\nexport interface ResolveIOAICoderJourneyContractValidationResult {\n\tvalid: boolean;\n\tcontract: Record<string, any> | null;\n\tissues: ResolveIOAICoderJourneyContractValidationIssue[];\n\tworkflowQaRows: ResolveIOAICoderV6WorkflowQaRow[];\n\tprimaryWorkflowId: string;\n}\n\nexport type ResolveIOAICoderWorkflowProofReadinessStatus =\n\t| 'ready'\n\t| 'missing_journey_contract'\n\t| 'journey_invalid'\n\t| 'route_only'\n\t| 'workflow_qa_missing'\n\t| 'workflow_qa_incomplete'\n\t| 'business_proof_missing'\n\t| 'business_proof_weak'\n\t| 'sample_data_missing'\n\t| 'release_blocked'\n\t| 'stale_workflow_proof'\n\t| 'blocked';\n\nexport interface ResolveIOAICoderWorkflowProofReadinessInput {\n\tjourneyContract?: any;\n\tjourneyContractMarkdown?: string;\n\tworkflowQaRows?: ResolveIOAICoderV6WorkflowQaRow[];\n\tbusinessAssertions?: Array<Record<string, any>>;\n\trouteProbes?: Array<Record<string, any>>;\n\tartifactPaths?: string[];\n\tscorecardPassed?: boolean;\n\tdeployStatus?: string;\n\tpublishStatus?: string;\n\tsampleDataStatus?: string;\n\tpreviousWorkflowProofFingerprint?: string;\n\tpreviousArtifactFingerprint?: string;\n\tpreviousWorkflowProofFingerprints?: string[];\n\tpreviousArtifactFingerprints?: string[];\n\tnow?: Date | string;\n}\n\nexport type ResolveIOAICoderWorkflowProofFreshness =\n\t| 'fresh'\n\t| 'same_as_previous'\n\t| 'stale_artifact'\n\t| 'missing'\n\t| 'unknown';\n\nexport interface ResolveIOAICoderWorkflowProofReadiness {\n\tready: boolean;\n\tstatus: ResolveIOAICoderWorkflowProofReadinessStatus;\n\treason: string;\n\tblockers: string[];\n\tjourneyContractValid: boolean;\n\tprimaryWorkflowId: string;\n\tpassedWorkflowRows: string[];\n\tmissingWorkflowRows: string[];\n\tfailedWorkflowRows: string[];\n\tpassedBusinessAssertions: string[];\n\trouteOnly: boolean;\n\tscorecardOnly: boolean;\n\tsampleDataReady: boolean;\n\treleaseBlockers: string[];\n\tartifactPaths: string[];\n\tworkflowProofFingerprint: string;\n\tartifactFingerprint: string;\n\tproofFreshness: ResolveIOAICoderWorkflowProofFreshness;\n\tnextAction: string;\n\tevaluatedAt: string;\n}\n\nexport type ResolveIOAICoderV6ContinuationAction =\n\t| 'continue'\n\t| 'retry_same_step'\n\t| 'switch_to_repair'\n\t| 'park'\n\t| 'budget_stop'\n\t| 'infra_retry'\n\t| 'ready_to_publish';\n\nexport type ResolveIOAICoderWorkflowReadinessStatus =\n\t| 'journey_contract_required'\n\t| 'journey_contract_repair_required'\n\t| 'workflow_build_ready'\n\t| 'workflow_qa_required'\n\t| 'workflow_business_proof_ready'\n\t| 'release_repair_required'\n\t| 'infra_repair_only'\n\t| 'compile_repair_only'\n\t| 'collect_new_evidence'\n\t| 'budget_stopped'\n\t| 'parked';\n\nexport type ResolveIOAICoderWorkflowReadinessGate =\n\t| 'journey_contract'\n\t| 'build'\n\t| 'workflow_qa'\n\t| 'release'\n\t| 'infra'\n\t| 'compile'\n\t| 'evidence'\n\t| 'manual';\n\nexport interface ResolveIOAICoderWorkflowReadiness {\n\tstatus: ResolveIOAICoderWorkflowReadinessStatus;\n\tnextGate: ResolveIOAICoderWorkflowReadinessGate;\n\tnextLane: ResolveIOAICoderV6Lane;\n\tnextStep: ResolveIOAICoderV6StepType;\n\tnextCommand: string;\n\tjourneyContractReady: boolean;\n\tworkflowQaRowsReady: boolean;\n\tbusinessProofReady: boolean;\n\trouteOnlyBlocked: boolean;\n\treleaseBlocked: boolean;\n\tinfraOnly: boolean;\n\tcompileOnly: boolean;\n\tsameFailureParked: boolean;\n\tcanRunProductRepair: boolean;\n\tcanRunWorkflowQa: boolean;\n\tcanPublish: boolean;\n\tcanPolishWowUi: boolean;\n\trequiresHumanDecision: boolean;\n\treason: string;\n\tblockers: string[];\n\tprimaryWorkflowId: string;\n\tactiveWorkflowStep: string;\n\tbusinessProofArtifacts: string[];\n}\n\nexport interface ResolveIOAICoderV6SupervisorState {\n\tversion: 'v6';\n\trunKind: ResolveIOAICoderV6RunKind;\n\tstatus: 'active' | 'parked' | 'complete';\n\tcurrentGoal: string;\n\tapprovedScope: string;\n\tbranchName: string;\n\tactiveLane: ResolveIOAICoderV6Lane;\n\tactiveStep: ResolveIOAICoderV6StepType;\n\tactiveBlocker: string;\n\tlastGoodCheckpoint: string;\n\tlastGoodCommit?: string;\n\ttestDeployStatus?: string;\n\tliveDeployStatus?: string;\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\tupdatedAt: string;\n}\n\nexport interface ResolveIOAICoderV6StepRecord {\n\tstepType: ResolveIOAICoderV6StepType;\n\toutcome: ResolveIOAICoderV6Outcome;\n\tlane: ResolveIOAICoderV6Lane;\n\tmodel?: string;\n\tthreadKey?: string;\n\tpromptVersion?: string;\n\tpromptTokenEstimate?: number;\n\tinputTokens?: number;\n\tcachedInputTokens?: number;\n\toutputTokens?: number;\n\truntimeMs?: number;\n\tsummary: string;\n\tblocker?: string;\n\tblockerFingerprint?: string;\n\tfailureClass?: string;\n\tevidenceHash?: string;\n\tchangedFiles?: string[];\n\tartifactPaths?: string[];\n\tnextAction?: ResolveIOAICoderV6ContinuationAction;\n\trecordedAt: string;\n}\n\nexport interface ResolveIOAICoderV6RunnerIncident {\n\tincidentClass: string;\n\tsummary: string;\n\tstepType?: ResolveIOAICoderV6StepType;\n\tlane?: ResolveIOAICoderV6Lane;\n\tblockerFingerprint?: string;\n\tartifactPaths?: string[];\n\trecordedAt: string;\n}\n\nexport interface ResolveIOAICoderV6StateBundle {\n\taiCoderRunnerVersion: 'v6';\n\taiCoderV6SupervisorState: ResolveIOAICoderV6SupervisorState;\n\taiCoderV6LaneMemory: Record<ResolveIOAICoderV6Lane, ResolveIOAICoderV6LaneMemory>;\n\taiCoderV6WorkflowMemory: ResolveIOAICoderV6WorkflowMemory;\n\taiCoderV6StepHistory: ResolveIOAICoderV6StepRecord[];\n\taiCoderV6Budget: ResolveIOAICoderV6Budget;\n\taiCoderV6RunnerIncidents: ResolveIOAICoderV6RunnerIncident[];\n\taiCoderV6RecoveryPlan?: ResolveIOAIManagerRecoveryPlan;\n\taiCoderV6RecoveryCheckpoint?: ResolveIOAIManagerRecoveryCheckpoint;\n\taiCoderV6RecoveryEvidenceProbe?: ResolveIOAIManagerRecoveryEvidenceProbe;\n\taiCoderV6RecoveryAction?: ResolveIOAIManagerRecoveryActionPacket;\n\taiCoderV6RecoveryDispatchHistory?: ResolveIOAIManagerRecoveryActionDispatchRecord[];\n\taiCoderV6RecoveryDirective?: ResolveIOAIManagerRecoveryExecutionDirective;\n\taiCoderV6WorkflowReadiness?: ResolveIOAICoderWorkflowReadiness;\n}\n\nexport interface ResolveIOAICoderV6InitializeInput {\n\trunKind: ResolveIOAICoderV6RunKind;\n\tjobId: string;\n\tappId?: string;\n\tconversationId?: string;\n\ttitle?: string;\n\tdescription?: string;\n\tapprovedScopeRequirements?: string[];\n\tbranchName?: string;\n\tjourneyContractPath?: string;\n\tdefaultModel?: string;\n\tlaneThreadKeys?: Partial<Record<ResolveIOAICoderV6Lane, string>>;\n\tprocessLease?: ResolveIOAICoderV6SupervisorState['processLease'];\n\tnow?: Date | string;\n\texisting?: Partial<ResolveIOAICoderV6StateBundle>;\n}\n\nexport interface ResolveIOAICoderV6StepInput {\n\tstepType: ResolveIOAICoderV6StepType;\n\toutcome: ResolveIOAICoderV6Outcome;\n\tlane: ResolveIOAICoderV6Lane;\n\tmodel?: string;\n\tthreadKey?: string;\n\tpromptVersion?: string;\n\tpromptTokenEstimate?: number;\n\tinputTokens?: number;\n\tcachedInputTokens?: number;\n\toutputTokens?: number;\n\truntimeMs?: number;\n\tsummary?: string;\n\tblocker?: string;\n\tfailureClass?: string;\n\tevidenceHash?: string;\n\tprimaryWorkflowId?: string;\n\tactiveWorkflowStep?: string;\n\tworkflowQaRows?: ResolveIOAICoderV6WorkflowQaRow[];\n\tcompletedWorkflowSteps?: string[];\n\tblockedWorkflowStep?: string;\n\tbusinessProofArtifacts?: string[];\n\tchangedFiles?: string[];\n\tartifactPaths?: string[];\n\tactiveQaRow?: ResolveIOAICoderV6LaneMemory['activeQaRow'];\n\tnextAction?: ResolveIOAICoderV6ContinuationAction;\n\tnow?: Date | string;\n}\n\nexport interface ResolveIOAICoderV6ContinuationDecision {\n\taction: ResolveIOAICoderV6ContinuationAction;\n\treason: string;\n\tnextLane: ResolveIOAICoderV6Lane;\n\tnextStep: ResolveIOAICoderV6StepType;\n\trepeatedNoProgressCount: number;\n\tbudgetExceeded: boolean;\n\tworkflowReadiness: ResolveIOAICoderWorkflowReadiness;\n\trecoveryPlan: ResolveIOAIManagerRecoveryPlan;\n\trecoveryCheckpoint: ResolveIOAIManagerRecoveryCheckpoint;\n\trecoveryEvidenceProbe: ResolveIOAIManagerRecoveryEvidenceProbe;\n\trecoveryAction: ResolveIOAIManagerRecoveryActionPacket;\n}\n\nconst LANES: ResolveIOAICoderV6Lane[] = ['intake', 'plan', 'build', 'qa', 'repair', 'review', 'publish'];\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 readField(source: any, keys: string[]): any {\n\tif (!source || typeof source !== 'object') {\n\t\treturn undefined;\n\t}\n\tfor (const key of keys) {\n\t\tif (source[key] !== undefined && source[key] !== null) {\n\t\t\treturn source[key];\n\t\t}\n\t}\n\treturn undefined;\n}\n\nfunction cleanField(source: any, keys: string[], max = 500): string {\n\treturn cleanText(readField(source, keys), max);\n}\n\nfunction concatFields(source: any, keys: string[], maxEach = 500): string {\n\tif (!source || typeof source !== 'object') {\n\t\treturn '';\n\t}\n\treturn keys\n\t\t.map((key) => cleanText(source[key], maxEach))\n\t\t.filter(Boolean)\n\t\t.join(' ');\n}\n\nfunction asArray(value: any): any[] {\n\tif (!Array.isArray(value)) {\n\t\treturn [];\n\t}\n\treturn value;\n}\n\nfunction stripJsonComments(value: string): string {\n\tlet output = '';\n\tlet inString = false;\n\tlet escaped = false;\n\tfor (let index = 0; index < value.length; index += 1) {\n\t\tconst char = value[index];\n\t\tconst next = value[index + 1];\n\t\tif (inString) {\n\t\t\toutput += char;\n\t\t\tif (escaped) {\n\t\t\t\tescaped = false;\n\t\t\t}\n\t\t\telse if (char === '\\\\') {\n\t\t\t\tescaped = true;\n\t\t\t}\n\t\t\telse if (char === '\"') {\n\t\t\t\tinString = false;\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\t\tif (char === '\"') {\n\t\t\tinString = true;\n\t\t\toutput += char;\n\t\t\tcontinue;\n\t\t}\n\t\tif (char === '/' && next === '/') {\n\t\t\twhile (index < value.length && value[index] !== '\\n') {\n\t\t\t\tindex += 1;\n\t\t\t}\n\t\t\toutput += '\\n';\n\t\t\tcontinue;\n\t\t}\n\t\tif (char === '/' && next === '*') {\n\t\t\tindex += 2;\n\t\t\twhile (index < value.length && !(value[index] === '*' && value[index + 1] === '/')) {\n\t\t\t\tindex += 1;\n\t\t\t}\n\t\t\tindex += 1;\n\t\t\tcontinue;\n\t\t}\n\t\toutput += char;\n\t}\n\treturn output;\n}\n\nfunction parseJsonObject(value: string): Record<string, any> | null {\n\ttry {\n\t\tconst parsed = JSON.parse(stripJsonComments(value));\n\t\treturn parsed && typeof parsed === 'object' && !Array.isArray(parsed) ? parsed : null;\n\t}\n\tcatch {\n\t\treturn null;\n\t}\n}\n\nexport function extractResolveIOAICoderJourneyContractFromMarkdown(content: string | null | undefined): Record<string, any> | null {\n\tconst normalized = String(content || '').replace(/\\r\\n/g, '\\n');\n\tconst sectionMatch = normalized.match(/##\\s*journey_contract[\\s\\S]*?```json\\s*([\\s\\S]*?)```/i)\n\t\t|| normalized.match(/##\\s*journey_contract[\\s\\S]*?```\\s*([\\s\\S]*?)```/i);\n\tif (sectionMatch?.[1]) {\n\t\treturn parseJsonObject(sectionMatch[1].trim());\n\t}\n\tconst fencedMatch = normalized.match(/```json\\s*([\\s\\S]*?)```/i);\n\tif (fencedMatch?.[1]) {\n\t\treturn parseJsonObject(fencedMatch[1].trim());\n\t}\n\tconst objectMatch = normalized.match(/\\{\\s*\"app_archetype\"[\\s\\S]*\\}\\s*$/m);\n\tif (objectMatch?.[0]) {\n\t\treturn parseJsonObject(objectMatch[0].trim());\n\t}\n\treturn null;\n}\n\nfunction looksLikeAbsoluteRoute(value: string): boolean {\n\treturn value.startsWith('/') && !/\\s/.test(value);\n}\n\nfunction looksPlaceholder(value: string): boolean {\n\treturn /\\b(tbd|todo|placeholder|generic crud|crud-only|lorem ipsum|add details|fill in|coming soon)\\b/i.test(value || '');\n}\n\nfunction isNavigationOnlyAction(source: any): boolean {\n\tconst effect = cleanField(source, ['effect', 'outcome', 'state_change', 'expected_state_transition', 'expected_next_state'], 500).toLowerCase();\n\tconst implementation = cleanField(source, [\n\t\t'method_or_calculation',\n\t\t'server_method_or_publication',\n\t\t'local_calculation_path',\n\t\t'action_implementation',\n\t\t'calculation_path',\n\t\t'data_mutation',\n\t\t'mutation',\n\t\t'persisted_result'\n\t], 500);\n\tif (implementation) {\n\t\treturn false;\n\t}\n\tconst actionType = cleanField(source, ['action_type', 'type', 'kind'], 120).toLowerCase();\n\tconst actionText = [\n\t\tcleanField(source, ['action', 'visible_cta', 'cta', 'label'], 300),\n\t\tcleanField(source, ['next_step_destination', 'next_step', 'destination'], 300)\n\t].join(' ').toLowerCase();\n\tconst navigationSignals = /\\b(navigate|go to|open|view|link|route|page)\\b/.test(actionText)\n\t\t|| /^(?:link|nav|navigation|route)$/i.test(actionType);\n\tconst productiveEffect = /\\b(save|saved|create|created|update|updated|calculate|calculated|optimize|optimized|import|export|report|persist|queued|submitted|validated|generated|compare|recommendation|complete|completed)\\b/.test(effect);\n\treturn navigationSignals && !productiveEffect;\n}\n\nfunction addJourneyIssue(\n\tissues: ResolveIOAICoderJourneyContractValidationIssue[],\n\tcode: string,\n\tpath: string,\n\tmessage: string,\n\tseverity: 'error' | 'warning' = 'error'\n): void {\n\tissues.push({ code, path, message, severity });\n}\n\nfunction normalizeWorkflowStepPosition(step: any, index: number, total: number): string {\n\tconst explicit = cleanField(step, ['position', 'phase', 'order_role'], 60).toLowerCase();\n\tif (explicit) {\n\t\treturn explicit;\n\t}\n\tif (index === 0) {\n\t\treturn 'first';\n\t}\n\tif (index === total - 1) {\n\t\treturn 'last';\n\t}\n\treturn 'next';\n}\n\nfunction buildWorkflowStepId(step: any, index: number): string {\n\treturn cleanField(step, ['id', 'step_id', 'key'], 120)\n\t\t|| cleanField(step, ['label', 'title', 'visible_cta'], 120).toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-|-$/g, '')\n\t\t|| `step-${index + 1}`;\n}\n\nfunction normalizeWorkflowProofKind(source: any, fallbackText = ''): string {\n\tconst explicit = cleanField(source, ['proof_kind', 'proofKind', 'coverage', 'type', 'kind'], 120).toLowerCase().replace(/[\\s-]+/g, '_');\n\tif (explicit) {\n\t\treturn explicit;\n\t}\n\tconst text = cleanText([\n\t\tfallbackText,\n\t\tconcatFields(source, ['id', 'step_id', 'stepId', 'action', 'browser_steps', 'expected_dom_or_data_proof', 'proof', 'expected_result', 'viewport'], 700)\n\t].filter(Boolean).join(' '), 1800).toLowerCase();\n\tif (/\\b(mobile|390x844|viewport)\\b/.test(text)) {\n\t\treturn 'mobile';\n\t}\n\tif (/\\b(export|report|pdf|download)\\b/.test(text)) {\n\t\treturn 'report_export';\n\t}\n\tif (/\\b(complete|saved|save|result|recommendation|calculated|optimized|final)\\b/.test(text)) {\n\t\treturn 'workflow_completion';\n\t}\n\tif (/\\b(sample|seeded|non[-\\s]?empty|kpi|table|chart|record|row)\\b/.test(text)) {\n\t\treturn 'non_empty_data';\n\t}\n\tif (/\\b(empty|error|recovery|invalid)\\b/.test(text)) {\n\t\treturn 'recovery';\n\t}\n\tif (/\\b(hub|dashboard|command center|next up|queue)\\b/.test(text)) {\n\t\treturn 'hub_action';\n\t}\n\treturn 'business_workflow';\n}\n\nfunction buildWorkflowQaRequiredArtifacts(source: any, proofKind: string): string[] {\n\tconst explicit = cleanList(readField(source, ['required_artifacts', 'requiredArtifacts', 'proof_artifacts', 'artifact_expectation', 'artifacts_required']), 12, 180);\n\tconst defaultsByKind: Record<string, string[]> = {\n\t\thub_action: ['hub screenshot or DOM snapshot', 'next action state proof'],\n\t\tworkflow_completion: ['before/action/after trace', 'saved or calculated output proof', 'business assertion artifact'],\n\t\treport_export: ['generated report/export artifact', 'export control proof', 'saved output row proof'],\n\t\tnon_empty_data: ['seeded data snapshot', 'non-empty KPI/table/chart proof'],\n\t\tmobile: ['mobile viewport screenshot or trace', 'responsive workflow action proof'],\n\t\trecovery: ['empty/error state screenshot or trace', 'recovery action proof'],\n\t\tbusiness_workflow: ['browser trace or screenshot', 'DOM/data assertion artifact']\n\t};\n\treturn Array.from(new Set([\n\t\t...explicit,\n\t\t...(defaultsByKind[proofKind] || defaultsByKind.business_workflow)\n\t])).slice(0, 16);\n}\n\nfunction buildWorkflowQaStateTransition(source: any, fallback: Partial<ResolveIOAICoderV6WorkflowQaRow> = {}): ResolveIOAICoderV6WorkflowQaRow['stateTransition'] {\n\treturn {\n\t\tbefore: cleanField(source, ['before', 'setup_state', 'initial_state'], 700) || fallback.expectedState,\n\t\taction: cleanField(source, ['action', 'browser_steps', 'visible_cta', 'cta'], 700) || fallback.action,\n\t\tafter: cleanField(source, ['after', 'expected_state', 'expected_result', 'expected_dom_or_data_proof', 'proof'], 700) || fallback.assertion || fallback.expectedState,\n\t\tassertion: cleanField(source, ['assertion', 'expected_dom_or_data_proof', 'proof', 'expected_result'], 700) || fallback.assertion\n\t};\n}\n\nexport function buildResolveIOAICoderWorkflowQaRowsFromJourneyContract(input: any): ResolveIOAICoderV6WorkflowQaRow[] {\n\tconst contract = typeof input === 'string'\n\t\t? extractResolveIOAICoderJourneyContractFromMarkdown(input)\n\t\t: (input && typeof input === 'object' && !Array.isArray(input) ? input : null);\n\tif (!contract) {\n\t\treturn [];\n\t}\n\tconst workflowId = cleanField(contract, ['primary_workflow_id', 'workflow_id', 'id'], 160) || 'north-star';\n\tconst rows: ResolveIOAICoderV6WorkflowQaRow[] = [];\n\tconst qaAssertions = asArray(contract.qa_assertions);\n\tqaAssertions.forEach((assertion, index) => {\n\t\tif (!assertion || typeof assertion !== 'object' || Array.isArray(assertion)) {\n\t\t\treturn;\n\t\t}\n\t\tconst route = cleanField(assertion, ['route', 'screen_route', 'path'], 240);\n\t\tconst action = cleanField(assertion, ['action', 'browser_steps', 'cta', 'visible_cta'], 500);\n\t\tconst expectedState = cleanField(assertion, ['expected_state', 'expected_result', 'expected_dom_or_data_proof', 'proof'], 500);\n\t\tconst assertionText = cleanField(assertion, ['assertion', 'expected_dom_or_data_proof', 'proof', 'expected_result'], 700);\n\t\tif (!route && !action && !assertionText) {\n\t\t\treturn;\n\t\t}\n\t\tconst proofKind = normalizeWorkflowProofKind(assertion);\n\t\tconst rowBase = {\n\t\t\troute: route || undefined,\n\t\t\taction: action || undefined,\n\t\t\tassertion: assertionText || undefined,\n\t\t\texpectedState: expectedState || undefined\n\t\t};\n\t\trows.push({\n\t\t\tindex: cleanNumber(readField(assertion, ['index', 'order'])) || index + 1,\n\t\t\tworkflowId: cleanField(assertion, ['workflow_id', 'workflowId'], 160) || workflowId,\n\t\t\tstepId: cleanField(assertion, ['step_id', 'stepId', 'id'], 160) || `qa-${index + 1}`,\n\t\t\t...rowBase,\n\t\t\texpectedOutput: cleanField(assertion, ['expected_output', 'expectedOutput', 'saved_output', 'calculated_output', 'report_output'], 700) || expectedState || assertionText || undefined,\n\t\t\tproofKind,\n\t\t\tacceptanceGate: 'aiqa_business_assertion',\n\t\t\trequiredArtifacts: buildWorkflowQaRequiredArtifacts(assertion, proofKind),\n\t\t\tstateTransition: buildWorkflowQaStateTransition(assertion, rowBase),\n\t\t\tstatus: cleanField(assertion, ['status'], 120) || undefined,\n\t\t\tartifactPaths: cleanList(readField(assertion, ['artifact_paths', 'artifactPaths']), 20, 500)\n\t\t});\n\t});\n\tif (rows.length) {\n\t\treturn rows.slice(0, 80);\n\t}\n\tasArray(contract.north_star_workflow).forEach((step, index, workflow) => {\n\t\tif (!step || typeof step !== 'object' || Array.isArray(step)) {\n\t\t\treturn;\n\t\t}\n\t\tconst proofKind = normalizeWorkflowProofKind(step, normalizeWorkflowStepPosition(step, index, workflow.length));\n\t\tconst rowBase = {\n\t\t\troute: cleanField(step, ['route'], 240) || undefined,\n\t\t\taction: cleanField(step, ['visible_cta', 'action', 'cta'], 500) || undefined,\n\t\t\tassertion: cleanField(step, ['success_confirmation', 'expected_state_transition', 'final_result'], 700) || undefined,\n\t\t\texpectedState: cleanField(step, ['expected_state_transition', 'success_confirmation', 'final_result'], 500) || undefined\n\t\t};\n\t\trows.push({\n\t\t\tindex: index + 1,\n\t\t\tworkflowId,\n\t\t\tstepId: buildWorkflowStepId(step, index),\n\t\t\t...rowBase,\n\t\t\texpectedOutput: cleanField(step, ['final_result', 'saved_exported_reported_result', 'completion_result', 'expected_state_transition'], 700) || rowBase.expectedState || rowBase.assertion,\n\t\t\tproofKind,\n\t\t\tacceptanceGate: 'aiqa_business_assertion',\n\t\t\trequiredArtifacts: buildWorkflowQaRequiredArtifacts(step, proofKind),\n\t\t\tstateTransition: buildWorkflowQaStateTransition(step, rowBase),\n\t\t\tstatus: undefined,\n\t\t\tartifactPaths: []\n\t\t});\n\t\tvoid workflow;\n\t});\n\treturn rows.slice(0, 80);\n}\n\nexport function validateResolveIOAICoderJourneyContract(input: any, options: {\n\tpathLabel?: string;\n\trequireMarkdownEnvelope?: boolean;\n} = {}): ResolveIOAICoderJourneyContractValidationResult {\n\tconst pathLabel = cleanText(options.pathLabel || 'docs/APP_JOURNEY_CONTRACT.md', 240) || 'docs/APP_JOURNEY_CONTRACT.md';\n\tconst issues: ResolveIOAICoderJourneyContractValidationIssue[] = [];\n\tlet contract: Record<string, any> | null = null;\n\tif (typeof input === 'string') {\n\t\tconst normalized = input.replace(/\\r\\n/g, '\\n');\n\t\tif (!normalized.trim()) {\n\t\t\taddJourneyIssue(issues, 'missing_contract', pathLabel, `${pathLabel}: missing app journey contract.`);\n\t\t\treturn { valid: false, contract: null, issues, workflowQaRows: [], primaryWorkflowId: '' };\n\t\t}\n\t\tif (options.requireMarkdownEnvelope !== false && !/^\\s*#\\s+App Journey Contract/im.test(normalized)) {\n\t\t\taddJourneyIssue(issues, 'missing_heading', pathLabel, `${pathLabel}: missing \"# App Journey Contract\" heading.`);\n\t\t}\n\t\tif (options.requireMarkdownEnvelope !== false && !/##\\s*journey_contract/i.test(normalized)) {\n\t\t\taddJourneyIssue(issues, 'missing_json_section', pathLabel, `${pathLabel}: missing \"## journey_contract\" JSON section.`);\n\t\t}\n\t\tif (looksPlaceholder(normalized)) {\n\t\t\taddJourneyIssue(issues, 'placeholder_text', pathLabel, `${pathLabel}: contains placeholder or generic journey text.`);\n\t\t}\n\t\tcontract = extractResolveIOAICoderJourneyContractFromMarkdown(normalized);\n\t}\n\telse if (input && typeof input === 'object' && !Array.isArray(input)) {\n\t\tcontract = input;\n\t}\n\tif (!contract) {\n\t\taddJourneyIssue(issues, 'invalid_json', pathLabel, `${pathLabel}: journey_contract JSON is missing or invalid.`);\n\t\treturn { valid: false, contract: null, issues, workflowQaRows: [], primaryWorkflowId: '' };\n\t}\n\tconst requiredKeys = [\n\t\t'app_archetype',\n\t\t'primary_actor',\n\t\t'primary_goal',\n\t\t'first_screen',\n\t\t'north_star_workflow',\n\t\t'secondary_workflows',\n\t\t'screen_sequence',\n\t\t'data_story',\n\t\t'completion_states',\n\t\t'qa_assertions'\n\t];\n\tfor (const key of requiredKeys) {\n\t\tif (!(key in contract)) {\n\t\t\taddJourneyIssue(issues, 'missing_key', `${pathLabel}.journey_contract.${key}`, `${pathLabel}: journey_contract missing key \"${key}\".`);\n\t\t}\n\t}\n\tfor (const key of ['app_archetype', 'primary_actor', 'primary_goal']) {\n\t\tconst value = cleanText(contract[key], 500);\n\t\tif (value.length < 4) {\n\t\t\taddJourneyIssue(issues, 'empty_core_field', `${pathLabel}.journey_contract.${key}`, `${pathLabel}: journey_contract.${key} must be non-empty.`);\n\t\t}\n\t\tif (looksPlaceholder(value)) {\n\t\t\taddJourneyIssue(issues, 'placeholder_core_field', `${pathLabel}.journey_contract.${key}`, `${pathLabel}: journey_contract.${key} is placeholder text.`);\n\t\t}\n\t}\n\tconst firstScreen = contract.first_screen;\n\tif (!firstScreen || typeof firstScreen !== 'object' || Array.isArray(firstScreen)) {\n\t\taddJourneyIssue(issues, 'invalid_first_screen', `${pathLabel}.journey_contract.first_screen`, `${pathLabel}: first_screen must be an object.`);\n\t}\n\telse {\n\t\tconst route = cleanField(firstScreen, ['route'], 240);\n\t\tfor (const [label, keys] of [\n\t\t\t['route', ['route']],\n\t\t\t['purpose', ['purpose', 'screen_purpose']],\n\t\t\t['visible_cta', ['visible_cta', 'cta', 'primary_cta']],\n\t\t\t['next_step', ['next_step', 'next_step_destination', 'expected_next_state']]\n\t\t] as Array<[string, string[]]>) {\n\t\t\tif (cleanField(firstScreen, keys, 500).length < 4) {\n\t\t\t\taddJourneyIssue(issues, 'incomplete_first_screen', `${pathLabel}.journey_contract.first_screen.${label}`, `${pathLabel}: first_screen.${label} must be non-empty.`);\n\t\t\t}\n\t\t}\n\t\tif (route && !looksLikeAbsoluteRoute(route)) {\n\t\t\taddJourneyIssue(issues, 'relative_first_screen_route', `${pathLabel}.journey_contract.first_screen.route`, `${pathLabel}: first_screen.route must be an absolute app route.`);\n\t\t}\n\t}\n\tconst workflow = asArray(contract.north_star_workflow);\n\tif (workflow.length < 3) {\n\t\taddJourneyIssue(issues, 'workflow_too_short', `${pathLabel}.journey_contract.north_star_workflow`, `${pathLabel}: north_star_workflow must include at least first, next, and last steps.`);\n\t}\n\tconst positions = new Set(workflow.map((step: any, index: number) => normalizeWorkflowStepPosition(step, index, workflow.length)));\n\tfor (const requiredPosition of ['first', 'next', 'last']) {\n\t\tif (!positions.has(requiredPosition)) {\n\t\t\taddJourneyIssue(issues, 'missing_workflow_position', `${pathLabel}.journey_contract.north_star_workflow`, `${pathLabel}: north_star_workflow missing position \"${requiredPosition}\".`);\n\t\t}\n\t}\n\tworkflow.forEach((step: any, index: number) => {\n\t\tconst stepPath = `${pathLabel}.journey_contract.north_star_workflow[${index}]`;\n\t\tif (!step || typeof step !== 'object' || Array.isArray(step)) {\n\t\t\taddJourneyIssue(issues, 'invalid_workflow_step', stepPath, `${pathLabel}: north_star_workflow[${index}] must be an object.`);\n\t\t\treturn;\n\t\t}\n\t\tconst position = normalizeWorkflowStepPosition(step, index, workflow.length);\n\t\tconst route = cleanField(step, ['route'], 240);\n\t\tconst embeddedAction = cleanField(step, ['embedded_hub_action', 'hub_action'], 240);\n\t\tconst implementation = cleanField(step, [\n\t\t\t'method_or_calculation',\n\t\t\t'server_method_or_publication',\n\t\t\t'local_calculation_path',\n\t\t\t'action_implementation',\n\t\t\t'calculation_path',\n\t\t\t'data_mutation',\n\t\t\t'mutation',\n\t\t\t'persisted_result'\n\t\t], 500);\n\t\tconst requiredStepFields: Array<[string, string[]]> = [\n\t\t\t['position', ['position']],\n\t\t\t['visible_cta', ['visible_cta', 'cta', 'label']],\n\t\t\t['data_input_or_selection', ['data_input_or_selection', 'data_input', 'selection', 'input']],\n\t\t\t['expected_state_transition', ['expected_state_transition', 'expected_next_state', 'state_change']],\n\t\t\t['success_confirmation', ['success_confirmation', 'confirmation', 'success_message']],\n\t\t\t['next_step_destination', ['next_step_destination', 'next_step', 'destination']]\n\t\t];\n\t\tfor (const [fieldName, keys] of requiredStepFields) {\n\t\t\tif (fieldName === 'next_step_destination' && position === 'last') {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (cleanField(step, keys, 500).length < 3) {\n\t\t\t\taddJourneyIssue(issues, 'incomplete_workflow_step', `${stepPath}.${fieldName}`, `${pathLabel}: north_star_workflow[${index}].${fieldName} must be non-empty.`);\n\t\t\t}\n\t\t}\n\t\tif (!route && !embeddedAction) {\n\t\t\taddJourneyIssue(issues, 'workflow_step_missing_route_or_hub_action', stepPath, `${pathLabel}: north_star_workflow[${index}] must specify a route or embedded hub action.`);\n\t\t}\n\t\tif (route && !looksLikeAbsoluteRoute(route)) {\n\t\t\taddJourneyIssue(issues, 'relative_workflow_route', `${stepPath}.route`, `${pathLabel}: north_star_workflow[${index}].route must be an absolute app route.`);\n\t\t}\n\t\tif (!implementation) {\n\t\t\taddJourneyIssue(issues, 'workflow_step_missing_implementation', stepPath, `${pathLabel}: north_star_workflow[${index}] must map the CTA to a server method, publication, local calculation, persisted mutation, or export/report action.`);\n\t\t}\n\t\tif (isNavigationOnlyAction(step)) {\n\t\t\taddJourneyIssue(issues, 'navigation_only_workflow_step', stepPath, `${pathLabel}: north_star_workflow[${index}] appears to be navigation-only instead of advancing state.`);\n\t\t}\n\t\tif (position === 'last' && cleanField(step, ['final_result', 'saved_exported_reported_result', 'completion_result'], 700).length < 8) {\n\t\t\taddJourneyIssue(issues, 'last_step_missing_final_result', `${stepPath}.final_result`, `${pathLabel}: last workflow step must define the saved, exported, reported, or calculated final result.`);\n\t\t}\n\t});\n\tconst secondaryWorkflows = asArray(contract.secondary_workflows);\n\tif (secondaryWorkflows.length < 3) {\n\t\taddJourneyIssue(issues, 'missing_secondary_workflows', `${pathLabel}.journey_contract.secondary_workflows`, `${pathLabel}: secondary_workflows must include setup, manage, report/export, settings/secrets, or recovery coverage.`);\n\t}\n\tconst screenSequence = asArray(contract.screen_sequence);\n\tif (screenSequence.length < Math.min(3, Math.max(workflow.length, 3))) {\n\t\taddJourneyIssue(issues, 'screen_sequence_too_short', `${pathLabel}.journey_contract.screen_sequence`, `${pathLabel}: screen_sequence must map workflow steps to routes, CTAs, data, and next state.`);\n\t}\n\tscreenSequence.forEach((screen: any, index: number) => {\n\t\tconst screenPath = `${pathLabel}.journey_contract.screen_sequence[${index}]`;\n\t\tif (!screen || typeof screen !== 'object' || Array.isArray(screen)) {\n\t\t\taddJourneyIssue(issues, 'invalid_screen_sequence_row', screenPath, `${pathLabel}: screen_sequence[${index}] must be an object.`);\n\t\t\treturn;\n\t\t}\n\t\tfor (const [fieldName, keys] of [\n\t\t\t['route', ['route']],\n\t\t\t['screen_purpose', ['screen_purpose', 'purpose']],\n\t\t\t['visible_cta', ['visible_cta', 'cta']],\n\t\t\t['expected_next_state', ['expected_next_state', 'expected_state_transition']],\n\t\t\t['data_shown', ['data_shown', 'data', 'records_shown']]\n\t\t] as Array<[string, string[]]>) {\n\t\t\tif (cleanField(screen, keys, 500).length < 3) {\n\t\t\t\taddJourneyIssue(issues, 'incomplete_screen_sequence_row', `${screenPath}.${fieldName}`, `${pathLabel}: screen_sequence[${index}].${fieldName} must be non-empty.`);\n\t\t\t}\n\t\t}\n\t\tconst route = cleanField(screen, ['route'], 240);\n\t\tif (route && !looksLikeAbsoluteRoute(route)) {\n\t\t\taddJourneyIssue(issues, 'relative_screen_route', `${screenPath}.route`, `${pathLabel}: screen_sequence[${index}].route must be an absolute app route.`);\n\t\t}\n\t\tif (isNavigationOnlyAction(screen)) {\n\t\t\taddJourneyIssue(issues, 'navigation_only_screen_action', screenPath, `${pathLabel}: screen_sequence[${index}] CTA appears to navigate without changing workflow state.`);\n\t\t}\n\t});\n\tconst firstScreenRoute = cleanField(firstScreen, ['route'], 240);\n\tconst hubScreens = screenSequence.filter((screen: any) => {\n\t\tconst route = cleanField(screen, ['route'], 240);\n\t\treturn route === firstScreenRoute || /hub|dashboard/i.test(route);\n\t});\n\tconst hubHasEmbeddedAction = hubScreens.some((screen: any) => {\n\t\tconst text = [\n\t\t\tcleanField(screen, ['embedded_action', 'hub_action', 'action'], 500),\n\t\t\tcleanField(screen, ['method_or_calculation', 'server_method_or_publication', 'local_calculation_path', 'action_implementation'], 500),\n\t\t\tcleanField(screen, ['expected_next_state', 'expected_state_transition'], 500)\n\t\t].join(' ');\n\t\treturn text.trim().length >= 8 && !isNavigationOnlyAction(screen);\n\t});\n\tif (!hubHasEmbeddedAction) {\n\t\taddJourneyIssue(issues, 'hub_missing_embedded_action', `${pathLabel}.journey_contract.screen_sequence`, `${pathLabel}: dashboard hub/first screen must embed at least one primary workflow action instead of acting as a link farm.`);\n\t}\n\tconst dataStory = contract.data_story;\n\tif (!dataStory || typeof dataStory !== 'object' || Array.isArray(dataStory)) {\n\t\taddJourneyIssue(issues, 'invalid_data_story', `${pathLabel}.journey_contract.data_story`, `${pathLabel}: data_story must be an object.`);\n\t}\n\telse {\n\t\tif (cleanField(dataStory, ['seeded_scenario', 'scenario'], 800).length < 12) {\n\t\t\taddJourneyIssue(issues, 'missing_seeded_scenario', `${pathLabel}.journey_contract.data_story.seeded_scenario`, `${pathLabel}: data_story.seeded_scenario must describe the launch sample scenario.`);\n\t\t}\n\t\tif (!asArray(readField(dataStory, ['records', 'seed_records'])).length) {\n\t\t\taddJourneyIssue(issues, 'missing_seed_records', `${pathLabel}.journey_contract.data_story.records`, `${pathLabel}: data_story.records must list seeded records.`);\n\t\t}\n\t\tif (!asArray(readField(dataStory, ['relationships', 'record_relationships'])).length) {\n\t\t\taddJourneyIssue(issues, 'missing_seed_relationships', `${pathLabel}.journey_contract.data_story.relationships`, `${pathLabel}: data_story.relationships must list seeded data relationships.`);\n\t\t}\n\t\tif (asArray(readField(dataStory, ['non_empty_states', 'non_empty_dashboard_states'])).length < 2) {\n\t\t\taddJourneyIssue(issues, 'missing_non_empty_states', `${pathLabel}.journey_contract.data_story.non_empty_states`, `${pathLabel}: data_story.non_empty_states must list non-empty dashboard, workflow, or report states.`);\n\t\t}\n\t}\n\tif (asArray(contract.completion_states).length < 2) {\n\t\taddJourneyIssue(issues, 'missing_completion_states', `${pathLabel}.journey_contract.completion_states`, `${pathLabel}: completion_states must define what done looks like to the user.`);\n\t}\n\tconst qaAssertions = asArray(contract.qa_assertions);\n\tif (qaAssertions.length < 5) {\n\t\taddJourneyIssue(issues, 'qa_assertions_too_short', `${pathLabel}.journey_contract.qa_assertions`, `${pathLabel}: qa_assertions must include login, hub action, workflow completion, sample data, and mobile proof.`);\n\t}\n\tlet hasMobileQa = false;\n\tlet hasRecoveryQa = false;\n\tlet hasCompletionQa = false;\n\tlet hasNonEmptyQa = false;\n\tqaAssertions.forEach((assertion: any, index: number) => {\n\t\tconst qaPath = `${pathLabel}.journey_contract.qa_assertions[${index}]`;\n\t\tif (!assertion || typeof assertion !== 'object' || Array.isArray(assertion)) {\n\t\t\taddJourneyIssue(issues, 'invalid_qa_assertion', qaPath, `${pathLabel}: qa_assertions[${index}] must be an object.`);\n\t\t\treturn;\n\t\t}\n\t\tfor (const [fieldName, keys] of [\n\t\t\t['route', ['route', 'screen_route', 'path']],\n\t\t\t['action', ['action', 'browser_steps', 'visible_cta']],\n\t\t\t['expected_dom_or_data_proof', ['expected_dom_or_data_proof', 'proof', 'expected_result']]\n\t\t] as Array<[string, string[]]>) {\n\t\t\tif (cleanField(assertion, keys, 700).length < 3) {\n\t\t\t\taddJourneyIssue(issues, 'incomplete_qa_assertion', `${qaPath}.${fieldName}`, `${pathLabel}: qa_assertions[${index}].${fieldName} must be non-empty.`);\n\t\t\t}\n\t\t}\n\t\tconst route = cleanField(assertion, ['route', 'screen_route', 'path'], 240);\n\t\tif (route && !looksLikeAbsoluteRoute(route)) {\n\t\t\taddJourneyIssue(issues, 'relative_qa_route', `${qaPath}.route`, `${pathLabel}: qa_assertions[${index}].route must be an absolute app route.`);\n\t\t}\n\t\tconst text = [\n\t\t\tconcatFields(assertion, ['id', 'type', 'kind', 'coverage', 'viewport'], 300),\n\t\t\tconcatFields(assertion, ['action', 'browser_steps', 'expected_dom_or_data_proof', 'proof', 'expected_result'], 1000)\n\t\t].join(' ').toLowerCase();\n\t\thasMobileQa = hasMobileQa || /\\b(mobile|390x844|viewport)\\b/.test(text);\n\t\thasRecoveryQa = hasRecoveryQa || /\\b(empty|error|recovery|invalid)\\b/.test(text);\n\t\thasCompletionQa = hasCompletionQa || /\\b(complete|saved|export|report|result|recommendation|calculated|optimized)\\b/.test(text);\n\t\thasNonEmptyQa = hasNonEmptyQa || /\\b(sample|seeded|non[-\\s]?empty|kpi|table|chart|record|row)\\b/.test(text);\n\t});\n\tif (!hasCompletionQa) {\n\t\taddJourneyIssue(issues, 'missing_completion_qa', `${pathLabel}.journey_contract.qa_assertions`, `${pathLabel}: qa_assertions missing business completion proof.`);\n\t}\n\tif (!hasNonEmptyQa) {\n\t\taddJourneyIssue(issues, 'missing_non_empty_qa', `${pathLabel}.journey_contract.qa_assertions`, `${pathLabel}: qa_assertions missing non-empty seeded data proof.`);\n\t}\n\tif (!hasMobileQa) {\n\t\taddJourneyIssue(issues, 'missing_mobile_qa', `${pathLabel}.journey_contract.qa_assertions`, `${pathLabel}: qa_assertions missing mobile viewport proof.`);\n\t}\n\tif (!hasRecoveryQa) {\n\t\taddJourneyIssue(issues, 'missing_recovery_qa', `${pathLabel}.journey_contract.qa_assertions`, `${pathLabel}: qa_assertions missing empty/error recovery proof.`);\n\t}\n\tconst workflowQaRows = buildResolveIOAICoderWorkflowQaRowsFromJourneyContract(contract);\n\treturn {\n\t\tvalid: !issues.some((issue) => issue.severity === 'error'),\n\t\tcontract,\n\t\tissues,\n\t\tworkflowQaRows,\n\t\tprimaryWorkflowId: cleanField(contract, ['primary_workflow_id', 'workflow_id', 'id'], 160) || 'north-star'\n\t};\n}\n\nexport function collectResolveIOAICoderJourneyContractIssues(input: any, options: {\n\tpathLabel?: string;\n\trequireMarkdownEnvelope?: boolean;\n} = {}): string[] {\n\treturn validateResolveIOAICoderJourneyContract(input, options).issues.map((issue) => issue.message);\n}\n\nfunction cleanNumber(value: any): number {\n\tconst parsed = Number(value);\n\treturn Number.isFinite(parsed) && parsed > 0 ? Math.floor(parsed) : 0;\n}\n\nfunction cleanWorkflowQaRows(values: any, limit = 40): ResolveIOAICoderV6WorkflowQaRow[] {\n\tif (!Array.isArray(values)) {\n\t\treturn [];\n\t}\n\tconst rows: ResolveIOAICoderV6WorkflowQaRow[] = [];\n\tfor (const value of values) {\n\t\tif (!value || typeof value !== 'object') {\n\t\t\tcontinue;\n\t\t}\n\t\tconst row: ResolveIOAICoderV6WorkflowQaRow = {\n\t\t\tindex: cleanNumber((value as any).index) || undefined,\n\t\t\tworkflowId: cleanText((value as any).workflowId || (value as any).workflow_id, 160) || undefined,\n\t\t\tstepId: cleanText((value as any).stepId || (value as any).step_id, 160) || undefined,\n\t\t\troute: cleanText((value as any).route, 240) || undefined,\n\t\t\taction: cleanText((value as any).action, 500) || undefined,\n\t\t\tassertion: cleanText((value as any).assertion, 700) || undefined,\n\t\t\texpectedState: cleanText((value as any).expectedState || (value as any).expected_state, 500) || undefined,\n\t\t\texpectedOutput: cleanText((value as any).expectedOutput || (value as any).expected_output, 700) || undefined,\n\t\t\tproofKind: cleanText((value as any).proofKind || (value as any).proof_kind, 120) || undefined,\n\t\t\tacceptanceGate: ((value as any).acceptanceGate || (value as any).acceptance_gate) === 'aiqa_business_assertion'\n\t\t\t\t? 'aiqa_business_assertion'\n\t\t\t\t: undefined,\n\t\t\trequiredArtifacts: cleanList((value as any).requiredArtifacts || (value as any).required_artifacts, 20, 180),\n\t\t\tstateTransition: (value as any).stateTransition || (value as any).state_transition\n\t\t\t\t? {\n\t\t\t\t\tbefore: cleanText(((value as any).stateTransition || (value as any).state_transition).before, 700) || undefined,\n\t\t\t\t\taction: cleanText(((value as any).stateTransition || (value as any).state_transition).action, 700) || undefined,\n\t\t\t\t\tafter: cleanText(((value as any).stateTransition || (value as any).state_transition).after, 700) || undefined,\n\t\t\t\t\tassertion: cleanText(((value as any).stateTransition || (value as any).state_transition).assertion, 700) || undefined\n\t\t\t\t}\n\t\t\t\t: undefined,\n\t\t\tstatus: cleanText((value as any).status, 120) || undefined,\n\t\t\tartifactPaths: cleanList((value as any).artifactPaths || (value as any).artifact_paths, 20, 500)\n\t\t};\n\t\tif (row.workflowId || row.stepId || row.route || row.action || row.assertion) {\n\t\t\trows.push(row);\n\t\t}\n\t\tif (rows.length >= limit) {\n\t\t\tbreak;\n\t\t}\n\t}\n\treturn rows;\n}\n\nfunction statusLooksPassed(value: any): boolean {\n\tconst normalized = cleanText(value, 120).toLowerCase();\n\treturn !!normalized && /\\b(pass|passed|success|succeeded|ok|done|complete|completed|ready|saved|published|deployed)\\b/i.test(normalized);\n}\n\nfunction statusLooksFailed(value: any): boolean {\n\tconst normalized = cleanText(value, 160).toLowerCase();\n\treturn !!normalized && /\\b(fail|failed|error|blocked|missing|empty|stale|skipped|not ready|not_ready|cannot|could not|invalid)\\b/i.test(normalized);\n}\n\nfunction normalizeProofKey(value: any): string {\n\treturn cleanText(value, 500).toLowerCase().replace(/[^a-z0-9]+/g, ' ').replace(/\\s+/g, ' ').trim();\n}\n\nfunction cleanAssertionArtifactPaths(value: Record<string, any>): string[] {\n\treturn cleanList(\n\t\tvalue.artifactPaths\n\t\t\t|| value.artifact_paths\n\t\t\t|| value.artifacts\n\t\t\t|| value.screenshots\n\t\t\t|| (value.screenshot ? [value.screenshot] : []),\n\t\t20,\n\t\t500\n\t);\n}\n\nfunction normalizeWorkflowProofAssertion(value: any): Record<string, any> {\n\tconst source = value && typeof value === 'object' && !Array.isArray(value) ? value : {};\n\treturn {\n\t\tassertion: cleanText(source.assertion || source.name || source.label || source.expected, 1000),\n\t\tstatus: cleanText(source.status || source.outcome || source.result || (source.passed === true ? 'pass' : source.passed === false ? 'fail' : ''), 120),\n\t\tworkflowId: cleanText(source.workflowId || source.workflow_id || source.workflow || source.workflowName || source.workflow_name, 200),\n\t\tstepId: cleanText(source.stepId || source.step_id || source.id || source.key, 200),\n\t\troute: cleanText(source.route || source.path || source.url, 500),\n\t\taction: cleanText(source.action || source.browser_steps || source.action_under_test || source.actionUnderTest, 800),\n\t\texpected: cleanText(source.expected || source.expected_state || source.expectedState || source.expected_business_state_change || source.expectedBusinessStateChange, 1000),\n\t\tobserved: cleanText(source.observed || source.actual || source.after || source.after_state || source.afterState, 1000),\n\t\tdataProof: cleanText(source.dataProof || source.data_proof || source.domProof || source.dom_proof || source.proof || source.summary, 1400),\n\t\tartifactPaths: cleanAssertionArtifactPaths(source),\n\t\tmetadata: source.metadata && typeof source.metadata === 'object' && !Array.isArray(source.metadata) ? source.metadata : {}\n\t};\n}\n\nfunction workflowRowKey(row: ResolveIOAICoderV6WorkflowQaRow, index: number): string {\n\treturn cleanText(row.stepId || row.assertion || row.action || row.route || `workflow-row-${index + 1}`, 200);\n}\n\nfunction sameWorkflowRow(left: ResolveIOAICoderV6WorkflowQaRow, right: ResolveIOAICoderV6WorkflowQaRow): boolean {\n\tconst leftStep = normalizeProofKey(left.stepId);\n\tconst rightStep = normalizeProofKey(right.stepId);\n\tif (leftStep && rightStep && leftStep === rightStep) {\n\t\treturn true;\n\t}\n\tconst leftRoute = normalizeProofKey(left.route);\n\tconst rightRoute = normalizeProofKey(right.route);\n\tconst leftAction = normalizeProofKey(left.action || left.assertion);\n\tconst rightAction = normalizeProofKey(right.action || right.assertion);\n\treturn !!leftRoute && !!rightRoute && leftRoute === rightRoute && !!leftAction && !!rightAction && (leftAction.includes(rightAction) || rightAction.includes(leftAction));\n}\n\nfunction mergeWorkflowQaRows(\n\tcontractRows: ResolveIOAICoderV6WorkflowQaRow[],\n\trecordedRows: ResolveIOAICoderV6WorkflowQaRow[]\n): ResolveIOAICoderV6WorkflowQaRow[] {\n\tif (!contractRows.length) {\n\t\treturn recordedRows;\n\t}\n\treturn contractRows.map((contractRow) => {\n\t\tconst recorded = recordedRows.find((row) => sameWorkflowRow(contractRow, row));\n\t\tif (!recorded) {\n\t\t\treturn contractRow;\n\t\t}\n\t\treturn {\n\t\t\t...contractRow,\n\t\t\t...recorded,\n\t\t\tworkflowId: recorded.workflowId || contractRow.workflowId,\n\t\t\tstepId: recorded.stepId || contractRow.stepId,\n\t\t\troute: recorded.route || contractRow.route,\n\t\t\taction: recorded.action || contractRow.action,\n\t\t\tassertion: recorded.assertion || contractRow.assertion,\n\t\t\texpectedState: recorded.expectedState || contractRow.expectedState,\n\t\t\texpectedOutput: recorded.expectedOutput || contractRow.expectedOutput,\n\t\t\tproofKind: recorded.proofKind || contractRow.proofKind,\n\t\t\tacceptanceGate: recorded.acceptanceGate || contractRow.acceptanceGate,\n\t\t\trequiredArtifacts: Array.from(new Set([\n\t\t\t\t...cleanList(contractRow.requiredArtifacts, 20, 180),\n\t\t\t\t...cleanList(recorded.requiredArtifacts, 20, 180)\n\t\t\t])),\n\t\t\tstateTransition: recorded.stateTransition || contractRow.stateTransition,\n\t\t\tartifactPaths: Array.from(new Set([\n\t\t\t\t...cleanList(contractRow.artifactPaths, 20, 500),\n\t\t\t\t...cleanList(recorded.artifactPaths, 20, 500)\n\t\t\t]))\n\t\t};\n\t});\n}\n\nfunction assertionMatchesWorkflowRow(assertion: Record<string, any>, row: ResolveIOAICoderV6WorkflowQaRow): boolean {\n\tconst metadata = assertion.metadata || {};\n\tif (metadata.workflowQaRowMatched === true || metadata.journeyContractMatched === true || metadata.aicoderWorkflowProof === true) {\n\t\treturn true;\n\t}\n\tconst rowStep = normalizeProofKey(row.stepId);\n\tconst assertionStep = normalizeProofKey(assertion.stepId || metadata.stepId || metadata.step_id);\n\tif (rowStep && assertionStep && rowStep === assertionStep) {\n\t\treturn true;\n\t}\n\tconst rowRoute = normalizeProofKey(row.route);\n\tconst assertionRoute = normalizeProofKey(assertion.route);\n\tconst rowAction = normalizeProofKey(row.action || row.assertion);\n\tconst assertionAction = normalizeProofKey([\n\t\tassertion.action,\n\t\tassertion.assertion,\n\t\tassertion.expected,\n\t\tassertion.observed,\n\t\tassertion.dataProof\n\t].filter(Boolean).join(' '));\n\treturn !!rowRoute\n\t\t&& !!assertionRoute\n\t\t&& rowRoute === assertionRoute\n\t\t&& !!rowAction\n\t\t&& !!assertionAction\n\t\t&& (assertionAction.includes(rowAction) || rowAction.includes(assertionAction));\n}\n\nfunction workflowRowPassingAssertion(row: ResolveIOAICoderV6WorkflowQaRow, assertions: Record<string, any>[]): Record<string, any> | undefined {\n\treturn assertions.find((assertion) => statusLooksPassed(assertion.status) && assertionMatchesWorkflowRow(assertion, row));\n}\n\nfunction workflowAssertionHasOutputProof(assertion: Record<string, any> | undefined): boolean {\n\tif (!assertion) {\n\t\treturn false;\n\t}\n\treturn cleanText(assertion.dataProof, 1000).length >= 8\n\t\t|| cleanText(assertion.observed, 1000).length >= 8\n\t\t|| cleanText(assertion.expected, 1000).length >= 8\n\t\t|| cleanList(assertion.artifactPaths, 20, 500).length > 0;\n}\n\nfunction workflowRowArtifactPaths(row: ResolveIOAICoderV6WorkflowQaRow, assertion?: Record<string, any>): string[] {\n\treturn Array.from(new Set([\n\t\t...cleanList(row.artifactPaths, 20, 500),\n\t\t...cleanList(assertion?.artifactPaths, 20, 500)\n\t]));\n}\n\nfunction workflowRowRequiresOutputProof(row: ResolveIOAICoderV6WorkflowQaRow): boolean {\n\tconst proofKind = cleanText(row.proofKind, 120).toLowerCase();\n\tif (/^(workflow_completion|report_export|non_empty_data|hub_action|business_workflow)$/.test(proofKind)) {\n\t\treturn true;\n\t}\n\tconst text = cleanText([\n\t\trow.expectedOutput,\n\t\trow.expectedState,\n\t\trow.assertion,\n\t\trow.stateTransition?.after,\n\t\trow.stateTransition?.assertion\n\t].filter(Boolean).join(' '), 1600).toLowerCase();\n\treturn /\\b(save|saved|persist|calculated|optimized|recommendation|report|export|result|non[-\\s]?empty|record|row|kpi|table|chart)\\b/.test(text);\n}\n\nfunction workflowRowRequiresMappedBusinessAssertion(row: ResolveIOAICoderV6WorkflowQaRow): boolean {\n\tconst proofKind = cleanText(row.proofKind, 120).toLowerCase();\n\tif (/^(workflow_completion|report_export)$/.test(proofKind)) {\n\t\treturn true;\n\t}\n\tif (/^(mobile|recovery|hub_action|non_empty_data)$/.test(proofKind)) {\n\t\treturn false;\n\t}\n\tconst text = cleanText([\n\t\trow.stepId,\n\t\trow.expectedOutput,\n\t\trow.expectedState,\n\t\trow.assertion,\n\t\trow.stateTransition?.after\n\t].filter(Boolean).join(' '), 1600).toLowerCase();\n\treturn /\\b(workflow[-_\\s]?completion|save|saved|persist|calculated|optimized|recommendation|report|export|final result)\\b/.test(text);\n}\n\nfunction workflowRowWeakProofReason(row: ResolveIOAICoderV6WorkflowQaRow, assertions: Record<string, any>[]): string {\n\tconst assertion = workflowRowPassingAssertion(row, assertions);\n\tconst rowPassed = statusLooksPassed(row.status);\n\tif (!rowPassed && !assertion) {\n\t\treturn '';\n\t}\n\tconst artifactPaths = workflowRowArtifactPaths(row, assertion);\n\tconst requiredArtifacts = cleanList(row.requiredArtifacts, 20, 180);\n\tif (requiredArtifacts.length && !artifactPaths.length) {\n\t\treturn `${workflowRowKey(row, 0)} missing required artifact proof: ${requiredArtifacts.slice(0, 3).join(', ')}`;\n\t}\n\tif (row.acceptanceGate === 'aiqa_business_assertion' && workflowRowRequiresMappedBusinessAssertion(row) && !assertion) {\n\t\treturn `${workflowRowKey(row, 0)} requires mapped AIQaBusinessAssertion proof.`;\n\t}\n\tif (workflowRowRequiresOutputProof(row) && !workflowAssertionHasOutputProof(assertion) && !cleanText(row.expectedOutput || row.expectedState, 700)) {\n\t\treturn `${workflowRowKey(row, 0)} missing saved/calculated/report output proof.`;\n\t}\n\treturn '';\n}\n\nfunction workflowRowHasProof(row: ResolveIOAICoderV6WorkflowQaRow, assertions: Record<string, any>[]): boolean {\n\tif (workflowRowWeakProofReason(row, assertions)) {\n\t\treturn false;\n\t}\n\tif (statusLooksPassed(row.status) && cleanList(row.artifactPaths, 20, 500).length) {\n\t\treturn true;\n\t}\n\treturn !!workflowRowPassingAssertion(row, assertions);\n}\n\nfunction workflowRowFailed(row: ResolveIOAICoderV6WorkflowQaRow, assertions: Record<string, any>[]): boolean {\n\tif (statusLooksFailed(row.status)) {\n\t\treturn true;\n\t}\n\treturn assertions.some((assertion) => statusLooksFailed(assertion.status) && assertionMatchesWorkflowRow(assertion, row));\n}\n\nfunction collectContractArtifactPaths(\n\trows: ResolveIOAICoderV6WorkflowQaRow[],\n\tassertions: Record<string, any>[],\n\textraPaths: any\n): string[] {\n\treturn Array.from(new Set([\n\t\t...cleanList(extraPaths, 40, 500),\n\t\t...rows.flatMap((row) => cleanList(row.artifactPaths, 20, 500)),\n\t\t...assertions.flatMap((assertion) => cleanList(assertion.artifactPaths, 20, 500))\n\t])).slice(0, 80);\n}\n\nfunction stableProofValue(value: any): any {\n\tif (Array.isArray(value)) {\n\t\treturn value.map(stableProofValue);\n\t}\n\tif (value && typeof value === 'object') {\n\t\treturn Object.keys(value)\n\t\t\t.sort()\n\t\t\t.reduce((accumulator, key) => {\n\t\t\t\tconst cleanKey = cleanText(key, 120);\n\t\t\t\tif (!cleanKey || /^(evaluatedAt|recordedAt|createdAt|updatedAt|timestamp|durationMs)$/i.test(cleanKey)) {\n\t\t\t\t\treturn accumulator;\n\t\t\t\t}\n\t\t\t\tconst nextValue = stableProofValue(value[key]);\n\t\t\t\tif (nextValue !== undefined && nextValue !== '' && !(Array.isArray(nextValue) && !nextValue.length)) {\n\t\t\t\t\taccumulator[cleanKey] = nextValue;\n\t\t\t\t}\n\t\t\t\treturn accumulator;\n\t\t\t}, {} as Record<string, any>);\n\t}\n\tif (typeof value === 'number') {\n\t\treturn Number.isFinite(value) ? value : undefined;\n\t}\n\tif (typeof value === 'boolean') {\n\t\treturn value;\n\t}\n\treturn cleanText(value, 2000);\n}\n\nfunction fingerprintResolveIOAICoderWorkflowProofPayload(value: any, prefix: string): string {\n\tconst text = JSON.stringify(stableProofValue(value));\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)}`;\n}\n\nfunction normalizeWorkflowProofFingerprintList(...values: any[]): string[] {\n\tconst fingerprints: string[] = [];\n\tfor (const value of values) {\n\t\tconst list = Array.isArray(value) ? value : value ? [value] : [];\n\t\tfor (const entry of list) {\n\t\t\tconst normalized = cleanText(entry, 200);\n\t\t\tif (normalized && !fingerprints.includes(normalized)) {\n\t\t\t\tfingerprints.push(normalized);\n\t\t\t}\n\t\t}\n\t}\n\treturn fingerprints.slice(0, 40);\n}\n\nexport function evaluateResolveIOAICoderWorkflowProofReadiness(\n\tinput: ResolveIOAICoderWorkflowProofReadinessInput = {}\n): ResolveIOAICoderWorkflowProofReadiness {\n\tconst now = isoNow(input.now);\n\tconst journeyInput = input.journeyContract !== undefined ? input.journeyContract : input.journeyContractMarkdown;\n\tconst hasJourneyInput = journeyInput !== undefined && journeyInput !== null && cleanText(journeyInput, 100).length > 0;\n\tconst journeyValidation = hasJourneyInput\n\t\t? validateResolveIOAICoderJourneyContract(journeyInput, {\n\t\t\trequireMarkdownEnvelope: typeof journeyInput === 'string'\n\t\t})\n\t\t: {\n\t\t\tvalid: false,\n\t\t\tcontract: null,\n\t\t\tissues: [{\n\t\t\t\tcode: 'missing_contract',\n\t\t\t\tpath: 'docs/APP_JOURNEY_CONTRACT.md',\n\t\t\t\tmessage: 'docs/APP_JOURNEY_CONTRACT.md is required before workflow proof can accept the app.',\n\t\t\t\tseverity: 'error' as const\n\t\t\t}],\n\t\t\tworkflowQaRows: [],\n\t\t\tprimaryWorkflowId: ''\n\t\t};\n\tconst recordedRows = cleanWorkflowQaRows(input.workflowQaRows, 120);\n\tconst rows = mergeWorkflowQaRows(journeyValidation.workflowQaRows, recordedRows);\n\tconst assertions = asArray(input.businessAssertions).map(normalizeWorkflowProofAssertion).filter((assertion) => {\n\t\treturn assertion.assertion || assertion.route || assertion.action || assertion.dataProof || assertion.status;\n\t});\n\tconst routeOnly = asArray(input.routeProbes).some((probe) => statusLooksPassed((probe as any)?.status || ((probe as any)?.passed === true ? 'pass' : '')))\n\t\t&& !assertions.some((assertion) => statusLooksPassed(assertion.status));\n\tconst weakProofReasons = rows.map((row) => workflowRowWeakProofReason(row, assertions)).filter(Boolean);\n\tconst failedRows = rows.filter((row) => workflowRowFailed(row, assertions));\n\tconst passedRows = rows.filter((row) => workflowRowHasProof(row, assertions));\n\tconst missingRows = rows.filter((row) => !workflowRowHasProof(row, assertions) && !workflowRowFailed(row, assertions));\n\tconst passedAssertions = assertions.filter((assertion) => statusLooksPassed(assertion.status));\n\tconst releaseBlockers = [\n\t\tstatusLooksFailed(input.deployStatus) ? `deploy=${cleanText(input.deployStatus, 160)}` : '',\n\t\tstatusLooksFailed(input.publishStatus) ? `publish=${cleanText(input.publishStatus, 160)}` : '',\n\t\tstatusLooksFailed(input.sampleDataStatus) ? `sample_data=${cleanText(input.sampleDataStatus, 160)}` : ''\n\t].filter(Boolean);\n\tconst hasDataProof = passedAssertions.some((assertion) => cleanText(assertion.dataProof, 1000).length >= 8);\n\tconst sampleDataReady = statusLooksPassed(input.sampleDataStatus)\n\t\t|| (!statusLooksFailed(input.sampleDataStatus) && hasDataProof);\n\tconst artifactPaths = collectContractArtifactPaths(rows, assertions, input.artifactPaths);\n\tconst workflowProofFingerprint = fingerprintResolveIOAICoderWorkflowProofPayload({\n\t\tprimaryWorkflowId: journeyValidation.primaryWorkflowId || cleanText(recordedRows[0]?.workflowId, 160),\n\t\tpassedWorkflowRows: passedRows.map(workflowRowKey),\n\t\tfailedWorkflowRows: failedRows.map(workflowRowKey),\n\t\tmissingWorkflowRows: missingRows.map(workflowRowKey),\n\t\tpassedBusinessAssertions: passedAssertions.map((assertion) => ({\n\t\t\tassertion: assertion.assertion,\n\t\t\tworkflowId: assertion.workflowId,\n\t\t\tstepId: assertion.stepId,\n\t\t\troute: assertion.route,\n\t\t\taction: assertion.action,\n\t\t\texpected: assertion.expected,\n\t\t\tobserved: assertion.observed,\n\t\t\tdataProof: assertion.dataProof,\n\t\t\tartifactPaths: assertion.artifactPaths\n\t\t})),\n\t\tsampleDataStatus: input.sampleDataStatus,\n\t\tsampleDataReady,\n\t\tartifactPaths\n\t}, 'aicoder-workflow-proof');\n\tconst artifactFingerprint = fingerprintResolveIOAICoderWorkflowProofPayload({\n\t\tartifactPaths,\n\t\tbusinessDataProof: passedAssertions.map((assertion) => ({\n\t\t\tstepId: assertion.stepId,\n\t\t\troute: assertion.route,\n\t\t\tdataProof: assertion.dataProof,\n\t\t\tobserved: assertion.observed,\n\t\t\tartifactPaths: assertion.artifactPaths\n\t\t}))\n\t}, 'aicoder-workflow-artifacts');\n\tconst previousWorkflowFingerprints = normalizeWorkflowProofFingerprintList(\n\t\tinput.previousWorkflowProofFingerprint,\n\t\tinput.previousWorkflowProofFingerprints\n\t);\n\tconst previousArtifactFingerprints = normalizeWorkflowProofFingerprintList(\n\t\tinput.previousArtifactFingerprint,\n\t\tinput.previousArtifactFingerprints\n\t);\n\tlet proofFreshness: ResolveIOAICoderWorkflowProofFreshness = 'unknown';\n\tif (!passedAssertions.length && !artifactPaths.length) {\n\t\tproofFreshness = 'missing';\n\t}\n\telse if (previousWorkflowFingerprints.includes(workflowProofFingerprint)) {\n\t\tproofFreshness = 'same_as_previous';\n\t}\n\telse if (previousArtifactFingerprints.includes(artifactFingerprint)) {\n\t\tproofFreshness = 'stale_artifact';\n\t}\n\telse {\n\t\tproofFreshness = 'fresh';\n\t}\n\tconst blockers: string[] = [];\n\tlet status: ResolveIOAICoderWorkflowProofReadinessStatus = 'ready';\n\tlet reason = 'Journey contract and workflow business proof are ready.';\n\tlet nextAction = 'Proceed to the smallest remaining release gate.';\n\tif (!hasJourneyInput) {\n\t\tstatus = 'missing_journey_contract';\n\t\tblockers.push('Generate and validate docs/APP_JOURNEY_CONTRACT.md before build/acceptance.');\n\t\treason = 'AICoder cannot accept an app without a journey contract.';\n\t\tnextAction = 'Run journey_contract generation and validation first.';\n\t}\n\telse if (!journeyValidation.valid) {\n\t\tstatus = 'journey_invalid';\n\t\tblockers.push(...journeyValidation.issues.filter((issue) => issue.severity === 'error').map((issue) => issue.message).slice(0, 8));\n\t\treason = 'Journey contract validation failed.';\n\t\tnextAction = 'Repair docs/APP_JOURNEY_CONTRACT.md before product-code repair.';\n\t}\n\telse if (routeOnly) {\n\t\tstatus = 'route_only';\n\t\tblockers.push('Route/browser proof passed, but no workflow business assertion passed.');\n\t\treason = 'Route-only proof cannot accept an AICoder app.';\n\t\tnextAction = 'Run workflow QA generated from the journey contract.';\n\t}\n\telse if (!rows.length) {\n\t\tstatus = 'workflow_qa_missing';\n\t\tblockers.push('No workflow QA rows were generated or recorded from the journey contract.');\n\t\treason = 'Workflow QA evidence is missing.';\n\t\tnextAction = 'Generate workflow QA rows from journey_contract.qa_assertions.';\n\t}\n\telse if (weakProofReasons.length) {\n\t\tstatus = 'business_proof_weak';\n\t\tblockers.push(...weakProofReasons.slice(0, 8));\n\t\treason = 'Workflow QA rows passed without the structured artifacts or mapped output proof required by the Journey Contract.';\n\t\tnextAction = 'Rerun the weak workflow QA rows and record AIQaBusinessAssertion plus required artifacts.';\n\t}\n\telse if (failedRows.length || missingRows.length) {\n\t\tstatus = 'workflow_qa_incomplete';\n\t\tblockers.push(\n\t\t\t...failedRows.map((row, index) => `failed:${workflowRowKey(row, index)}`).slice(0, 8),\n\t\t\t...missingRows.map((row, index) => `missing:${workflowRowKey(row, index)}`).slice(0, 8)\n\t\t);\n\t\treason = 'Not all journey contract workflow QA rows have passed business proof.';\n\t\tnextAction = 'Rerun or repair the incomplete workflow QA rows before publish.';\n\t}\n\telse if (!passedAssertions.length) {\n\t\tstatus = input.scorecardPassed === true ? 'business_proof_missing' : 'workflow_qa_incomplete';\n\t\tblockers.push('Workflow rows have no mapped AIQaBusinessAssertion business proof.');\n\t\treason = input.scorecardPassed === true\n\t\t\t? 'Scorecard-only proof is not acceptance.'\n\t\t\t: 'Workflow business proof is missing.';\n\t\tnextAction = 'Record AIQaBusinessAssertion rows tied to the journey contract.';\n\t}\n\telse if (releaseBlockers.length) {\n\t\tstatus = 'release_blocked';\n\t\tblockers.push(...releaseBlockers);\n\t\treason = 'Workflow proof passed, but release/deploy/sample-data gates block acceptance.';\n\t\tnextAction = 'Repair only the failed release gate or hotfix artifact before rerunning publish/deploy.';\n\t}\n\telse if (!sampleDataReady) {\n\t\tstatus = 'sample_data_missing';\n\t\tblockers.push('No non-empty seeded/sample data proof is available for the workflow.');\n\t\treason = 'AICoder app proof must include meaningful non-empty data.';\n\t\tnextAction = 'Seed meaningful records and rerun workflow QA against that data.';\n\t}\n\telse if (proofFreshness === 'same_as_previous' || proofFreshness === 'stale_artifact') {\n\t\tstatus = 'stale_workflow_proof';\n\t\tblockers.push(proofFreshness === 'same_as_previous'\n\t\t\t? 'Workflow business proof fingerprint is unchanged from a prior run.'\n\t\t\t: 'Workflow proof artifacts are unchanged from a prior run.');\n\t\treason = 'AICoder workflow proof is stale; repeated evidence cannot advance acceptance.';\n\t\tnextAction = 'Rerun workflow QA from journey_contract.qa_assertions and record fresh AIQaBusinessAssertion artifacts.';\n\t}\n\treturn {\n\t\tready: status === 'ready',\n\t\tstatus,\n\t\treason,\n\t\tblockers,\n\t\tjourneyContractValid: journeyValidation.valid,\n\t\tprimaryWorkflowId: journeyValidation.primaryWorkflowId || cleanText(recordedRows[0]?.workflowId, 160),\n\t\tpassedWorkflowRows: passedRows.map(workflowRowKey),\n\t\tmissingWorkflowRows: missingRows.map(workflowRowKey),\n\t\tfailedWorkflowRows: failedRows.map(workflowRowKey),\n\t\tpassedBusinessAssertions: passedAssertions.map((assertion) => cleanText(assertion.assertion || assertion.stepId || assertion.route, 300)).filter(Boolean).slice(0, 40),\n\t\trouteOnly,\n\t\tscorecardOnly: input.scorecardPassed === true && !passedAssertions.length,\n\t\tsampleDataReady,\n\t\treleaseBlockers,\n\t\tartifactPaths,\n\t\tworkflowProofFingerprint,\n\t\tartifactFingerprint,\n\t\tproofFreshness,\n\t\tnextAction,\n\t\tevaluatedAt: now\n\t};\n}\n\nexport function fingerprintResolveIOAICoderV6Blocker(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\t\t.replace(/https?:\\/\\/\\S+/g, '<url>');\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 `aicoder-v6-${Math.abs(hash).toString(36)}`;\n}\n\nfunction classifyResolveIOAICoderV6FailureClass(step: {\n\toutcome?: ResolveIOAICoderV6Outcome;\n\tlane?: ResolveIOAICoderV6Lane;\n\tstepType?: ResolveIOAICoderV6StepType;\n\tblocker?: string;\n\tsummary?: string;\n\tfailureClass?: string;\n}): string {\n\tconst explicit = cleanText(step.failureClass, 80).toLowerCase().replace(/[\\s-]+/g, '_');\n\tif (explicit) {\n\t\treturn explicit;\n\t}\n\tif (step.outcome === 'infra_retry') {\n\t\treturn 'infra';\n\t}\n\tconst text = `${step.stepType || ''}\\n${step.lane || ''}\\n${step.blocker || ''}\\n${step.summary || ''}`.toLowerCase();\n\tif (/\\b(puppeteer|chrome|browser executable|mongo|port|startup|settings\\.json|node_modules|npm install|cache|lock)\\b/.test(text)) {\n\t\treturn 'infra';\n\t}\n\tif (/\\b(ts[0-9]{3,5}|typescript|compile|build failed|ng build|cannot find name|module not found|syntax error)\\b/.test(text)\n\t\t|| step.stepType === 'build') {\n\t\treturn 'compile';\n\t}\n\tif (step.stepType === 'journey_contract' || step.stepType === 'journey_validation') {\n\t\treturn 'journey';\n\t}\n\tif (step.stepType === 'workflow_qa' || step.lane === 'qa') {\n\t\treturn 'business';\n\t}\n\tif (step.stepType === 'publish' || step.stepType === 'test_deploy' || step.stepType === 'live_deploy' || step.lane === 'publish') {\n\t\treturn 'release';\n\t}\n\treturn 'product_code';\n}\n\nfunction aicoderWorkflowReadinessNextCommand(status: ResolveIOAICoderWorkflowReadinessStatus): string {\n\tswitch (status) {\n\t\tcase 'journey_contract_required':\n\t\t\treturn 'Generate and validate docs/APP_JOURNEY_CONTRACT.md before product-code build work.';\n\t\tcase 'journey_contract_repair_required':\n\t\t\treturn 'Repair the journey contract until first/next/last workflow QA rows validate.';\n\t\tcase 'workflow_build_ready':\n\t\t\treturn 'Build the north-star workflow from the journey contract and seeded data story.';\n\t\tcase 'workflow_qa_required':\n\t\t\treturn 'Run workflow QA from journey_contract.qa_assertions and record AIQaBusinessAssertion proof.';\n\t\tcase 'workflow_business_proof_ready':\n\t\t\treturn 'Proceed only to release/publish gates; wow UI polish is allowed after business proof.';\n\t\tcase 'release_repair_required':\n\t\t\treturn 'Repair the failed publish/deploy/sample-data gate without rebuilding the app shell.';\n\t\tcase 'infra_repair_only':\n\t\t\treturn 'Repair Puppeteer, Chrome, Mongo, startup, port, cache, or environment evidence only.';\n\t\tcase 'compile_repair_only':\n\t\t\treturn 'Repair compile/build evidence only and rerun the same deterministic build gate.';\n\t\tcase 'collect_new_evidence':\n\t\t\treturn 'Collect new evidence for the stuck blocker before another model/code loop.';\n\t\tcase 'budget_stopped':\n\t\t\treturn 'Stop autonomous spend and request a bounded human decision.';\n\t\tcase 'parked':\n\t\t\treturn 'Park the run until a human chooses the next bounded action.';\n\t\tdefault:\n\t\t\treturn 'Review workflow evidence before continuing.';\n\t}\n}\n\nfunction aicoderWorkflowReadinessGateFor(status: ResolveIOAICoderWorkflowReadinessStatus): ResolveIOAICoderWorkflowReadinessGate {\n\tswitch (status) {\n\t\tcase 'journey_contract_required':\n\t\tcase 'journey_contract_repair_required':\n\t\t\treturn 'journey_contract';\n\t\tcase 'workflow_build_ready':\n\t\t\treturn 'build';\n\t\tcase 'workflow_qa_required':\n\t\tcase 'workflow_business_proof_ready':\n\t\t\treturn 'workflow_qa';\n\t\tcase 'release_repair_required':\n\t\t\treturn 'release';\n\t\tcase 'infra_repair_only':\n\t\t\treturn 'infra';\n\t\tcase 'compile_repair_only':\n\t\t\treturn 'compile';\n\t\tcase 'collect_new_evidence':\n\t\t\treturn 'evidence';\n\t\tcase 'budget_stopped':\n\t\tcase 'parked':\n\t\t\treturn 'manual';\n\t\tdefault:\n\t\t\treturn 'manual';\n\t}\n}\n\nexport function buildResolveIOAICoderV6WorkflowReadiness(\n\tbundle: ResolveIOAICoderV6StateBundle,\n\tcontext: {\n\t\taction?: ResolveIOAICoderV6ContinuationAction;\n\t\treason?: string;\n\t\tnextLane?: ResolveIOAICoderV6Lane;\n\t\tnextStep?: ResolveIOAICoderV6StepType;\n\t\tbudgetExceeded?: boolean;\n\t\trepeatedNoProgressCount?: number;\n\t} = {}\n): ResolveIOAICoderWorkflowReadiness {\n\tconst history = Array.isArray(bundle.aiCoderV6StepHistory) ? bundle.aiCoderV6StepHistory : [];\n\tconst last = history[history.length - 1];\n\tconst workflowMemory = bundle.aiCoderV6WorkflowMemory || {} as ResolveIOAICoderV6WorkflowMemory;\n\tconst rows = cleanWorkflowQaRows(workflowMemory.workflowQaRows, 80);\n\tconst proofArtifacts = cleanList(workflowMemory.businessProofArtifacts, 80, 500);\n\tconst completedSteps = cleanList(workflowMemory.completedWorkflowSteps, 80, 240);\n\tconst primaryWorkflowId = cleanText(workflowMemory.primaryWorkflowId || rows[0]?.workflowId, 200);\n\tconst activeWorkflowStep = cleanText(workflowMemory.activeWorkflowStep || workflowMemory.blockedWorkflowStep || rows.find((row) => !statusLooksPassed(row.status))?.stepId, 200);\n\tconst failureClass = cleanText(last?.failureClass, 120).toLowerCase();\n\tconst reason = cleanText(context.reason || last?.blocker || last?.summary, 1000);\n\tconst combinedText = `${failureClass}\\n${reason}\\n${last?.stepType || ''}\\n${last?.lane || ''}`.toLowerCase();\n\tconst compileOnly = failureClass === 'compile'\n\t\t|| /\\b(compile|typescript|ts[0-9]{3,5}|ng build|cannot find name|module not found)\\b/i.test(combinedText);\n\tconst infraOnly = !compileOnly && (failureClass === 'infra'\n\t\t|| /\\b(puppeteer|chrome|browser executable|mongo|port|startup|settings\\.json|node_modules|cache|lock)\\b/i.test(combinedText));\n\tconst releaseBlocked = failureClass === 'release'\n\t\t|| context.nextLane === 'publish'\n\t\t|| /\\b(release|publish|deploy|cloudfront|artifact|sample data|sample_data)\\b/i.test(combinedText);\n\tconst routeOnlyBlocked = /\\b(route only|route-only|route loaded|route_probe|browser route|shell only|shell-only)\\b/i.test(combinedText);\n\tconst sameFailureParked = context.action === 'park'\n\t\t|| context.reason === 'aicoder_v6_repeated_no_progress'\n\t\t|| context.reason === 'aicoder_v6_ping_pong_no_progress';\n\tconst budgetStopped = context.action === 'budget_stop' || context.budgetExceeded === true;\n\tconst workflowQaRowsReady = rows.length > 0;\n\tconst journeyContractReady = !!cleanText(workflowMemory.journeyContractPath, 500)\n\t\t&& (!!primaryWorkflowId || workflowQaRowsReady || completedSteps.length > 0);\n\tconst passedWorkflowRows = rows.filter((row) => statusLooksPassed(row.status));\n\tconst businessProofReady = proofArtifacts.length > 0\n\t\t|| passedWorkflowRows.some((row) => cleanList(row.artifactPaths, 10, 500).length > 0)\n\t\t|| completedSteps.length > 0;\n\tlet status: ResolveIOAICoderWorkflowReadinessStatus = 'workflow_build_ready';\n\tconst blockers: string[] = [];\n\tif (budgetStopped) {\n\t\tstatus = 'budget_stopped';\n\t\tblockers.push('Budget guard stopped autonomous spend.');\n\t}\n\telse if (sameFailureParked) {\n\t\tstatus = 'collect_new_evidence';\n\t\tblockers.push('Same failure class repeated without enough new evidence.');\n\t}\n\telse if (compileOnly && context.action === 'infra_retry') {\n\t\tstatus = 'compile_repair_only';\n\t\tblockers.push('Compile/build gate failed; do not count this as product workflow failure.');\n\t}\n\telse if (infraOnly && context.action === 'infra_retry') {\n\t\tstatus = 'infra_repair_only';\n\t\tblockers.push('Infra gate failed; repair only environment/browser/startup dependencies.');\n\t}\n\telse if (failureClass === 'journey' || context.reason === 'aicoder_v6_journey_contract_repair_required') {\n\t\tstatus = 'journey_contract_repair_required';\n\t\tblockers.push('Journey contract failed validation.');\n\t}\n\telse if (!journeyContractReady) {\n\t\tstatus = 'journey_contract_required';\n\t\tblockers.push('Journey contract workflow memory is not ready.');\n\t}\n\telse if (releaseBlocked || context.reason === 'aicoder_v6_release_repair_required') {\n\t\tstatus = 'release_repair_required';\n\t\tblockers.push('Release/publish/deploy gate blocks acceptance.');\n\t}\n\telse if (!workflowQaRowsReady || !businessProofReady || routeOnlyBlocked) {\n\t\tstatus = 'workflow_qa_required';\n\t\tif (!workflowQaRowsReady) {\n\t\t\tblockers.push('Workflow QA rows are missing.');\n\t\t}\n\t\tif (!businessProofReady) {\n\t\t\tblockers.push('AIQaBusinessAssertion proof is missing.');\n\t\t}\n\t\tif (routeOnlyBlocked) {\n\t\t\tblockers.push('Route/browser proof is not workflow business proof.');\n\t\t}\n\t}\n\telse if (businessProofReady) {\n\t\tstatus = 'workflow_business_proof_ready';\n\t}\n\tconst canRunWorkflowQa = journeyContractReady\n\t\t&& workflowQaRowsReady\n\t\t&& !infraOnly\n\t\t&& !compileOnly\n\t\t&& !sameFailureParked\n\t\t&& !budgetStopped;\n\tconst canPublish = status === 'workflow_business_proof_ready'\n\t\t&& !releaseBlocked\n\t\t&& !infraOnly\n\t\t&& !compileOnly\n\t\t&& !sameFailureParked\n\t\t&& !budgetStopped;\n\tconst canRunProductRepair = journeyContractReady\n\t\t&& !infraOnly\n\t\t&& !compileOnly\n\t\t&& !sameFailureParked\n\t\t&& !budgetStopped\n\t\t&& status !== 'journey_contract_repair_required'\n\t\t&& status !== 'release_repair_required'\n\t\t&& status !== 'workflow_business_proof_ready';\n\treturn {\n\t\tstatus,\n\t\tnextGate: aicoderWorkflowReadinessGateFor(status),\n\t\tnextLane: context.nextLane || last?.lane || bundle.aiCoderV6SupervisorState.activeLane,\n\t\tnextStep: context.nextStep || last?.stepType || bundle.aiCoderV6SupervisorState.activeStep,\n\t\tnextCommand: aicoderWorkflowReadinessNextCommand(status),\n\t\tjourneyContractReady,\n\t\tworkflowQaRowsReady,\n\t\tbusinessProofReady,\n\t\trouteOnlyBlocked,\n\t\treleaseBlocked,\n\t\tinfraOnly,\n\t\tcompileOnly,\n\t\tsameFailureParked,\n\t\tcanRunProductRepair,\n\t\tcanRunWorkflowQa,\n\t\tcanPublish,\n\t\tcanPolishWowUi: canPublish,\n\t\trequiresHumanDecision: budgetStopped || sameFailureParked,\n\t\treason: reason || aicoderWorkflowReadinessNextCommand(status),\n\t\tblockers: blockers.slice(0, 8),\n\t\tprimaryWorkflowId,\n\t\tactiveWorkflowStep,\n\t\tbusinessProofArtifacts: proofArtifacts\n\t};\n}\n\nexport function buildResolveIOAICoderV6Budget(existing?: Partial<ResolveIOAICoderV6Budget>): ResolveIOAICoderV6Budget {\n\treturn {\n\t\tmaxPromptTokensPerNonInitialStep: Number(existing?.maxPromptTokensPerNonInitialStep || 4000),\n\t\tmaxTotalPromptTokens: Number(existing?.maxTotalPromptTokens || 120000),\n\t\tmaxLoopsPerRun: Number(existing?.maxLoopsPerRun || 24),\n\t\tmaxRepeatedNoProgress: Number(existing?.maxRepeatedNoProgress || 2),\n\t\tmaxRuntimeMinutesPerLane: Number(existing?.maxRuntimeMinutesPerLane || 30),\n\t\tsoftBudgetUsd: Number(existing?.softBudgetUsd || 30),\n\t\thardBudgetUsd: Number(existing?.hardBudgetUsd || 60),\n\t\ttotalPromptTokenEstimate: cleanNumber(existing?.totalPromptTokenEstimate),\n\t\ttotalInputTokens: cleanNumber(existing?.totalInputTokens),\n\t\ttotalCachedInputTokens: cleanNumber(existing?.totalCachedInputTokens),\n\t\ttotalOutputTokens: cleanNumber(existing?.totalOutputTokens),\n\t\ttotalRuntimeMs: cleanNumber(existing?.totalRuntimeMs),\n\t\tloopCount: cleanNumber(existing?.loopCount)\n\t};\n}\n\nexport function initializeResolveIOAICoderV6State(input: ResolveIOAICoderV6InitializeInput): ResolveIOAICoderV6StateBundle {\n\tconst now = isoNow(input.now);\n\tconst existing = input.existing || {};\n\tconst existingSupervisor = existing.aiCoderV6SupervisorState;\n\tconst existingLaneMemory = existing.aiCoderV6LaneMemory || {} as ResolveIOAICoderV6StateBundle['aiCoderV6LaneMemory'];\n\tconst existingWorkflowMemory = existing.aiCoderV6WorkflowMemory || {} as Partial<ResolveIOAICoderV6WorkflowMemory>;\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 runId = cleanText(input.conversationId || input.jobId || input.appId, 120);\n\tconst defaultModel = cleanText(input.defaultModel || 'gpt-5.3-codex', 80);\n\tconst buildLaneMemory = (lane: ResolveIOAICoderV6Lane): ResolveIOAICoderV6LaneMemory => {\n\t\tconst previous = existingLaneMemory[lane] || {} as Partial<ResolveIOAICoderV6LaneMemory>;\n\t\treturn {\n\t\t\tlane,\n\t\t\tmodel: cleanText(previous.model || defaultModel, 80),\n\t\t\tthreadKey: cleanText(input.laneThreadKeys?.[lane] || previous.threadKey || `aicoder:${input.runKind}:${runId}:${lane}`, 240),\n\t\t\tscopeSummary: cleanText(previous.scopeSummary || scope, 1200),\n\t\t\tactiveStep: previous.activeStep || (lane === 'plan' ? 'plan' : lane === 'qa' ? 'qa' : lane === 'review' ? 'review' : lane === 'publish' ? 'publish' : 'task'),\n\t\t\tactiveBlocker: cleanText(previous.activeBlocker, 1200),\n\t\t\tactiveQaRow: previous.activeQaRow,\n\t\t\tchangedFiles: cleanList(previous.changedFiles, 80, 500),\n\t\t\tartifactPaths: cleanList(previous.artifactPaths, 80, 500),\n\t\t\tlatestPromptVersion: cleanText(previous.latestPromptVersion, 120) || undefined,\n\t\t\tlatestPromptTokenEstimate: cleanNumber(previous.latestPromptTokenEstimate) || undefined,\n\t\t\tupdatedAt: previous.updatedAt || now\n\t\t};\n\t};\n\tconst laneMemory = LANES.reduce((accumulator, lane) => {\n\t\taccumulator[lane] = buildLaneMemory(lane);\n\t\treturn accumulator;\n\t}, {} as Record<ResolveIOAICoderV6Lane, ResolveIOAICoderV6LaneMemory>);\n\tconst activeLane = existingSupervisor?.activeLane || (input.runKind === 'initial_builder' ? 'plan' : 'build');\n\treturn {\n\t\taiCoderRunnerVersion: 'v6',\n\t\taiCoderV6SupervisorState: {\n\t\t\tversion: 'v6',\n\t\t\trunKind: input.runKind,\n\t\t\tstatus: existingSupervisor?.status || 'active',\n\t\t\tcurrentGoal: cleanText(existingSupervisor?.currentGoal || `Run AICoder ${input.runKind} ${runId}`, 500),\n\t\t\tapprovedScope: cleanText(existingSupervisor?.approvedScope || scope, 1400),\n\t\t\tbranchName: cleanText(input.branchName || existingSupervisor?.branchName, 240),\n\t\t\tactiveLane,\n\t\t\tactiveStep: existingSupervisor?.activeStep || laneMemory[activeLane].activeStep,\n\t\t\tactiveBlocker: cleanText(existingSupervisor?.activeBlocker, 1200),\n\t\t\tlastGoodCheckpoint: existingSupervisor?.lastGoodCheckpoint || 'v6_initialized',\n\t\t\tlastGoodCommit: cleanText(existingSupervisor?.lastGoodCommit, 240) || undefined,\n\t\t\ttestDeployStatus: cleanText(existingSupervisor?.testDeployStatus, 120) || undefined,\n\t\t\tliveDeployStatus: cleanText(existingSupervisor?.liveDeployStatus, 120) || undefined,\n\t\t\tprocessLease: input.processLease || existingSupervisor?.processLease,\n\t\t\tartifactLinks: cleanList(existingSupervisor?.artifactLinks, 80, 500),\n\t\t\tupdatedAt: now\n\t\t},\n\t\taiCoderV6LaneMemory: laneMemory,\n\t\taiCoderV6WorkflowMemory: {\n\t\t\tjourneyContractPath: cleanText(input.journeyContractPath || existingWorkflowMemory.journeyContractPath || 'docs/APP_JOURNEY_CONTRACT.md', 500),\n\t\t\tprimaryWorkflowId: cleanText(existingWorkflowMemory.primaryWorkflowId, 200),\n\t\t\tactiveWorkflowStep: cleanText(existingWorkflowMemory.activeWorkflowStep, 200),\n\t\t\tworkflowQaRows: cleanWorkflowQaRows(existingWorkflowMemory.workflowQaRows, 80),\n\t\t\tcompletedWorkflowSteps: cleanList(existingWorkflowMemory.completedWorkflowSteps, 80, 240),\n\t\t\tblockedWorkflowStep: cleanText(existingWorkflowMemory.blockedWorkflowStep, 240),\n\t\t\tbusinessProofArtifacts: cleanList(existingWorkflowMemory.businessProofArtifacts, 80, 500),\n\t\t\tupdatedAt: existingWorkflowMemory.updatedAt || now\n\t\t},\n\t\taiCoderV6StepHistory: Array.isArray(existing.aiCoderV6StepHistory)\n\t\t\t? existing.aiCoderV6StepHistory.slice(-100)\n\t\t\t: [],\n\t\taiCoderV6Budget: buildResolveIOAICoderV6Budget(existing.aiCoderV6Budget),\n\t\taiCoderV6RunnerIncidents: Array.isArray(existing.aiCoderV6RunnerIncidents)\n\t\t\t? existing.aiCoderV6RunnerIncidents.slice(-100)\n\t\t\t: [],\n\t\taiCoderV6RecoveryPlan: (existing as any).aiCoderV6RecoveryPlan,\n\t\taiCoderV6RecoveryCheckpoint: (existing as any).aiCoderV6RecoveryCheckpoint,\n\t\taiCoderV6RecoveryEvidenceProbe: (existing as any).aiCoderV6RecoveryEvidenceProbe,\n\t\taiCoderV6RecoveryAction: (existing as any).aiCoderV6RecoveryAction,\n\t\taiCoderV6RecoveryDispatchHistory: Array.isArray((existing as any).aiCoderV6RecoveryDispatchHistory)\n\t\t\t? (existing as any).aiCoderV6RecoveryDispatchHistory.slice(-50)\n\t\t\t: [],\n\t\taiCoderV6RecoveryDirective: (existing as any).aiCoderV6RecoveryDirective\n\t};\n}\n\nexport function recordResolveIOAICoderV6Step(\n\tbundle: ResolveIOAICoderV6StateBundle,\n\tstep: ResolveIOAICoderV6StepInput\n): ResolveIOAICoderV6StateBundle {\n\tconst now = isoNow(step.now);\n\tconst promptTokens = cleanNumber(step.promptTokenEstimate);\n\tconst inputTokens = cleanNumber(step.inputTokens);\n\tconst cachedInputTokens = cleanNumber(step.cachedInputTokens);\n\tconst outputTokens = cleanNumber(step.outputTokens);\n\tconst runtimeMs = cleanNumber(step.runtimeMs);\n\tconst blocker = cleanText(step.blocker, 1200);\n\tconst failureClass = classifyResolveIOAICoderV6FailureClass({\n\t\toutcome: step.outcome,\n\t\tlane: step.lane,\n\t\tstepType: step.stepType,\n\t\tblocker,\n\t\tsummary: step.summary,\n\t\tfailureClass: step.failureClass\n\t});\n\tconst previousWorkflowMemory = bundle.aiCoderV6WorkflowMemory || {} as ResolveIOAICoderV6WorkflowMemory;\n\tconst activeWorkflowStep = cleanText(step.activeWorkflowStep || previousWorkflowMemory.activeWorkflowStep, 200);\n\tconst explicitCompletedSteps = cleanList(step.completedWorkflowSteps, 40, 240);\n\tconst completedWorkflowSteps = Array.from(new Set([\n\t\t...cleanList(previousWorkflowMemory.completedWorkflowSteps, 80, 240),\n\t\t...explicitCompletedSteps,\n\t\t...(step.outcome === 'pass' && activeWorkflowStep ? [activeWorkflowStep] : [])\n\t])).slice(-80);\n\tconst businessProofArtifacts = Array.from(new Set([\n\t\t...cleanList(previousWorkflowMemory.businessProofArtifacts, 80, 500),\n\t\t...cleanList(step.businessProofArtifacts, 40, 500),\n\t\t...(step.stepType === 'workflow_qa' ? cleanList(step.artifactPaths, 40, 500) : [])\n\t])).slice(-80);\n\tconst workflowQaRows = step.workflowQaRows !== undefined\n\t\t? cleanWorkflowQaRows(step.workflowQaRows, 80)\n\t\t: cleanWorkflowQaRows(previousWorkflowMemory.workflowQaRows, 80);\n\tconst blockedWorkflowStep = cleanText(\n\t\tstep.blockedWorkflowStep\n\t\t\t|| ((step.outcome === 'needs_repair' || step.outcome === 'park_manual') ? activeWorkflowStep : '')\n\t\t\t|| previousWorkflowMemory.blockedWorkflowStep,\n\t\t240\n\t);\n\tconst record: ResolveIOAICoderV6StepRecord = {\n\t\tstepType: step.stepType,\n\t\toutcome: step.outcome,\n\t\tlane: step.lane,\n\t\tmodel: cleanText(step.model, 80) || undefined,\n\t\tthreadKey: cleanText(step.threadKey, 240) || undefined,\n\t\tpromptVersion: cleanText(step.promptVersion, 120) || undefined,\n\t\tpromptTokenEstimate: promptTokens || undefined,\n\t\tinputTokens: inputTokens || undefined,\n\t\tcachedInputTokens: cachedInputTokens || undefined,\n\t\toutputTokens: outputTokens || undefined,\n\t\truntimeMs: runtimeMs || undefined,\n\t\tsummary: cleanText(step.summary || blocker || step.outcome, 1200),\n\t\tblocker: blocker || undefined,\n\t\tblockerFingerprint: blocker ? fingerprintResolveIOAICoderV6Blocker(blocker) : undefined,\n\t\tfailureClass,\n\t\tchangedFiles: cleanList(step.changedFiles, 80, 500),\n\t\tartifactPaths: cleanList(step.artifactPaths, 80, 500),\n\t\tnextAction: step.nextAction,\n\t\trecordedAt: now\n\t};\n\trecord.evidenceHash = cleanText(step.evidenceHash, 120)\n\t\t|| hashResolveIOAIManagerEvidence(record);\n\tconst previousRecord = bundle.aiCoderV6StepHistory[bundle.aiCoderV6StepHistory.length - 1];\n\tconst managerDecision = decideResolveIOAIManagerPolicy({\n\t\thistory: [...bundle.aiCoderV6StepHistory, record],\n\t\tcurrent: record,\n\t\tmaxSameFailureRepeats: buildResolveIOAICoderV6Budget(bundle.aiCoderV6Budget).maxRepeatedNoProgress + 1\n\t});\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.aiCoderV6Budget.loopCount + 1;\n\tconst budget = buildResolveIOAICoderV6Budget(bundle.aiCoderV6Budget);\n\tconst shouldParkForRepeatedNoProgress = !managerDecision.loopBudgetShouldReset\n\t\t&& nextLoopCount > budget.maxRepeatedNoProgress\n\t\t&& step.outcome !== 'pass'\n\t\t&& step.outcome !== 'ready_to_publish'\n\t\t&& step.outcome !== 'published';\n\tconst recordedRecoveryPlan = shouldParkForRepeatedNoProgress\n\t\t? buildResolveIOAIManagerRecoveryPlan({\n\t\t\taction: 'park_repeated_failure',\n\t\t\treason: 'aicoder_v6_repeated_no_progress',\n\t\t\tfailureClass: record.failureClass,\n\t\t\tlane: record.lane,\n\t\t\tstepType: record.stepType,\n\t\t\tblocker: record.blocker || record.summary,\n\t\t\tchangedFiles: record.changedFiles,\n\t\t\tartifactPaths: record.artifactPaths,\n\t\t\tmaxSameFailureRepeats: budget.maxRepeatedNoProgress + 1\n\t\t})\n\t\t: managerDecision.recoveryPlan;\n\tconst recordedRecoveryCheckpoint = shouldParkForRepeatedNoProgress\n\t\t? buildResolveIOAIManagerRecoveryCheckpoint({\n\t\t\tplan: recordedRecoveryPlan,\n\t\t\tcurrent: record\n\t\t})\n\t\t: managerDecision.recoveryCheckpoint;\n\tconst recordedRecoveryEvidenceProbe = shouldParkForRepeatedNoProgress\n\t\t? buildResolveIOAIManagerRecoveryEvidenceProbe({\n\t\t\tcheckpoint: recordedRecoveryCheckpoint,\n\t\t\tcurrent: record\n\t\t})\n\t\t: managerDecision.recoveryEvidenceProbe;\n\tconst recordedRecoveryAction = shouldParkForRepeatedNoProgress\n\t\t? buildResolveIOAIManagerRecoveryActionPacket({\n\t\t\tplan: recordedRecoveryPlan,\n\t\t\tcheckpoint: recordedRecoveryCheckpoint,\n\t\t\tprobe: recordedRecoveryEvidenceProbe,\n\t\t\tcurrent: record\n\t\t})\n\t\t: managerDecision.recoveryAction;\n\tconst previousLane = bundle.aiCoderV6LaneMemory[step.lane];\n\tconst laneMemory = {\n\t\t...bundle.aiCoderV6LaneMemory,\n\t\t[step.lane]: {\n\t\t\t...previousLane,\n\t\t\tmodel: record.model || previousLane.model,\n\t\t\tthreadKey: record.threadKey || previousLane.threadKey,\n\t\t\tactiveStep: step.stepType,\n\t\t\tactiveBlocker: record.blocker || previousLane.activeBlocker || '',\n\t\t\tactiveQaRow: step.activeQaRow || previousLane.activeQaRow,\n\t\t\tchangedFiles: record.changedFiles?.length ? record.changedFiles : previousLane.changedFiles,\n\t\t\tartifactPaths: record.artifactPaths?.length ? record.artifactPaths : previousLane.artifactPaths,\n\t\t\tlatestPromptVersion: record.promptVersion || previousLane.latestPromptVersion,\n\t\t\tlatestPromptTokenEstimate: promptTokens || previousLane.latestPromptTokenEstimate,\n\t\t\tupdatedAt: now\n\t\t}\n\t};\n\tconst complete = step.outcome === 'published' || step.outcome === 'ready_to_publish';\n\tconst parked = step.outcome === 'park_manual' || step.outcome === 'budget_stop';\n\treturn {\n\t\t...bundle,\n\t\taiCoderV6SupervisorState: {\n\t\t\t...bundle.aiCoderV6SupervisorState,\n\t\t\tstatus: complete ? 'complete' : (parked ? 'parked' : 'active'),\n\t\t\tactiveLane: step.lane,\n\t\t\tactiveStep: step.stepType,\n\t\t\tactiveBlocker: record.blocker || '',\n\t\t\tlastGoodCheckpoint: step.outcome === 'pass' || complete ? step.stepType : bundle.aiCoderV6SupervisorState.lastGoodCheckpoint,\n\t\t\tartifactLinks: Array.from(new Set([\n\t\t\t\t...bundle.aiCoderV6SupervisorState.artifactLinks,\n\t\t\t\t...(record.artifactPaths || [])\n\t\t\t])).slice(-80),\n\t\t\tupdatedAt: now\n\t\t},\n\t\taiCoderV6LaneMemory: laneMemory,\n\t\taiCoderV6WorkflowMemory: {\n\t\t\tjourneyContractPath: cleanText(previousWorkflowMemory.journeyContractPath || 'docs/APP_JOURNEY_CONTRACT.md', 500),\n\t\t\tprimaryWorkflowId: cleanText(step.primaryWorkflowId || previousWorkflowMemory.primaryWorkflowId, 200),\n\t\t\tactiveWorkflowStep,\n\t\t\tworkflowQaRows,\n\t\t\tcompletedWorkflowSteps,\n\t\t\tblockedWorkflowStep,\n\t\t\tbusinessProofArtifacts,\n\t\t\tupdatedAt: now\n\t\t},\n\t\taiCoderV6StepHistory: [...bundle.aiCoderV6StepHistory, record].slice(-120),\n\t\taiCoderV6Budget: {\n\t\t\t...bundle.aiCoderV6Budget,\n\t\t\ttotalPromptTokenEstimate: bundle.aiCoderV6Budget.totalPromptTokenEstimate + promptTokens,\n\t\t\ttotalInputTokens: bundle.aiCoderV6Budget.totalInputTokens + inputTokens,\n\t\t\ttotalCachedInputTokens: bundle.aiCoderV6Budget.totalCachedInputTokens + cachedInputTokens,\n\t\t\ttotalOutputTokens: bundle.aiCoderV6Budget.totalOutputTokens + outputTokens,\n\t\t\ttotalRuntimeMs: bundle.aiCoderV6Budget.totalRuntimeMs + runtimeMs,\n\t\t\tloopCount: nextLoopCount\n\t\t},\n\t\taiCoderV6RecoveryPlan: recordedRecoveryPlan,\n\t\taiCoderV6RecoveryCheckpoint: recordedRecoveryCheckpoint,\n\t\taiCoderV6RecoveryEvidenceProbe: recordedRecoveryEvidenceProbe,\n\t\taiCoderV6RecoveryAction: recordedRecoveryAction\n\t};\n}\n\nexport function decideResolveIOAICoderV6Continuation(bundle: ResolveIOAICoderV6StateBundle): ResolveIOAICoderV6ContinuationDecision {\n\tconst history = bundle.aiCoderV6StepHistory || [];\n\tconst budget = buildResolveIOAICoderV6Budget(bundle.aiCoderV6Budget);\n\tconst last = history[history.length - 1];\n\tconst lastFingerprint = fingerprintResolveIOAICoderV6Blocker(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_to_publish' || item.outcome === 'published') {\n\t\t\tbreak;\n\t\t}\n\t\tif (item.stepType !== last?.stepType || item.lane !== last?.lane) {\n\t\t\tbreak;\n\t\t}\n\t\tif (fingerprintResolveIOAICoderV6Blocker(item.blocker || item.summary || '') === lastFingerprint) {\n\t\t\trepeatedNoProgressCount += 1;\n\t\t}\n\t}\n\tconst managerDecision = decideResolveIOAIManagerPolicy({\n\t\thistory,\n\t\tcurrent: last,\n\t\tmaxSameFailureRepeats: budget.maxRepeatedNoProgress + 1,\n\t\tmaxPingPongTransitions: 3,\n\t\tinfraFailureClasses: ['infra', 'compile']\n\t});\n\tconst recoveryPlanFor = (\n\t\taction: ResolveIOAICoderV6ContinuationDecision['action'] | 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 || bundle.aiCoderV6SupervisorState.activeLane,\n\t\tstepType: last?.stepType || bundle.aiCoderV6SupervisorState.activeStep,\n\t\tblocker: last?.blocker || last?.summary,\n\t\tchangedFiles: last?.changedFiles,\n\t\tartifactPaths: last?.artifactPaths,\n\t\tmaxSameFailureRepeats: budget.maxRepeatedNoProgress + 1,\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\trecoveryCheckpoint?: ResolveIOAIManagerRecoveryCheckpoint,\n\t\trecoveryEvidenceProbe?: ResolveIOAIManagerRecoveryEvidenceProbe\n\t): Pick<ResolveIOAICoderV6ContinuationDecision, 'recoveryPlan' | 'recoveryCheckpoint' | 'recoveryEvidenceProbe' | 'recoveryAction'> => {\n\t\tconst checkpoint = recoveryCheckpoint || recoveryCheckpointFor(recoveryPlan);\n\t\tconst probe = recoveryEvidenceProbe || buildResolveIOAIManagerRecoveryEvidenceProbe({\n\t\t\tcheckpoint,\n\t\t\tcurrent: last\n\t\t});\n\t\treturn {\n\t\t\trecoveryPlan,\n\t\t\trecoveryCheckpoint: checkpoint,\n\t\t\trecoveryEvidenceProbe: probe,\n\t\t\trecoveryAction: buildResolveIOAIManagerRecoveryActionPacket({\n\t\t\t\tplan: recoveryPlan,\n\t\t\t\tcheckpoint,\n\t\t\t\tprobe,\n\t\t\t\tcurrent: last\n\t\t\t})\n\t\t};\n\t};\n\tconst managerRecoveryFields = () => recoveryFieldsFor(\n\t\tmanagerDecision.recoveryPlan,\n\t\tmanagerDecision.recoveryCheckpoint,\n\t\tmanagerDecision.recoveryEvidenceProbe\n\t);\n\tconst withWorkflowReadiness = (\n\t\tdecision: Omit<ResolveIOAICoderV6ContinuationDecision, 'workflowReadiness'>\n\t): ResolveIOAICoderV6ContinuationDecision => ({\n\t\t...decision,\n\t\tworkflowReadiness: buildResolveIOAICoderV6WorkflowReadiness(bundle, {\n\t\t\taction: decision.action,\n\t\t\treason: decision.reason,\n\t\t\tnextLane: decision.nextLane,\n\t\t\tnextStep: decision.nextStep,\n\t\t\tbudgetExceeded: decision.budgetExceeded,\n\t\t\trepeatedNoProgressCount: decision.repeatedNoProgressCount\n\t\t})\n\t});\n\tconst budgetExceeded = (budget.loopCount >= budget.maxLoopsPerRun && !managerDecision.loopBudgetShouldReset)\n\t\t|| budget.totalPromptTokenEstimate >= budget.maxTotalPromptTokens\n\t\t|| (last?.promptTokenEstimate || 0) > budget.maxPromptTokensPerNonInitialStep * 2;\n\tif (budgetExceeded) {\n\t\tconst recoveryPlan = recoveryPlanFor('budget_stop', 'aicoder_v6_budget_guard', {\n\t\t\tproductRepairFailure: false\n\t\t});\n\t\treturn withWorkflowReadiness({\n\t\t\taction: 'budget_stop',\n\t\t\treason: 'aicoder_v6_budget_guard',\n\t\t\tnextLane: last?.lane || bundle.aiCoderV6SupervisorState.activeLane,\n\t\t\tnextStep: last?.stepType || bundle.aiCoderV6SupervisorState.activeStep,\n\t\t\trepeatedNoProgressCount,\n\t\t\tbudgetExceeded,\n\t\t\t...recoveryFieldsFor(recoveryPlan)\n\t\t});\n\t}\n\tif (managerDecision.action === 'park_ping_pong') {\n\t\treturn withWorkflowReadiness({\n\t\t\taction: 'park',\n\t\t\treason: 'aicoder_v6_ping_pong_no_progress',\n\t\t\tnextLane: last?.lane || bundle.aiCoderV6SupervisorState.activeLane,\n\t\t\tnextStep: last?.stepType || bundle.aiCoderV6SupervisorState.activeStep,\n\t\t\trepeatedNoProgressCount: managerDecision.pingPongCount,\n\t\t\tbudgetExceeded: false,\n\t\t\t...managerRecoveryFields()\n\t\t});\n\t}\n\tif (managerDecision.action === 'park_repeated_failure') {\n\t\treturn withWorkflowReadiness({\n\t\t\taction: 'park',\n\t\t\treason: 'aicoder_v6_repeated_no_progress',\n\t\t\tnextLane: last?.lane || bundle.aiCoderV6SupervisorState.activeLane,\n\t\t\tnextStep: last?.stepType || bundle.aiCoderV6SupervisorState.activeStep,\n\t\t\trepeatedNoProgressCount: managerDecision.sameFailureCount,\n\t\t\tbudgetExceeded: false,\n\t\t\t...managerRecoveryFields()\n\t\t});\n\t}\n\tif (repeatedNoProgressCount > budget.maxRepeatedNoProgress) {\n\t\tconst recoveryPlan = recoveryPlanFor('park', 'aicoder_v6_repeated_no_progress', {\n\t\t\taction: 'park_repeated_failure',\n\t\t\tproductRepairFailure: !/^(?:infra|compile|release)$/i.test(String(last?.failureClass || ''))\n\t\t});\n\t\treturn withWorkflowReadiness({\n\t\t\taction: 'park',\n\t\t\treason: 'aicoder_v6_repeated_no_progress',\n\t\t\tnextLane: last?.lane || bundle.aiCoderV6SupervisorState.activeLane,\n\t\t\tnextStep: last?.stepType || bundle.aiCoderV6SupervisorState.activeStep,\n\t\t\trepeatedNoProgressCount,\n\t\t\tbudgetExceeded: false,\n\t\t\t...recoveryFieldsFor(recoveryPlan)\n\t\t});\n\t}\n\tif (managerDecision.action === 'retry_infra') {\n\t\tconst compileRepair = managerDecision.recoveryPlan.recoveryClass === 'compile_repair'\n\t\t\t|| managerDecision.failureClass === 'compile'\n\t\t\t|| last?.failureClass === 'compile';\n\t\treturn withWorkflowReadiness({\n\t\t\taction: 'infra_retry',\n\t\t\treason: compileRepair ? 'aicoder_v6_compile_repair_required' : 'aicoder_v6_infra_retry',\n\t\t\tnextLane: last?.lane || bundle.aiCoderV6SupervisorState.activeLane,\n\t\t\tnextStep: last?.stepType || bundle.aiCoderV6SupervisorState.activeStep,\n\t\t\trepeatedNoProgressCount,\n\t\t\tbudgetExceeded: false,\n\t\t\t...managerRecoveryFields()\n\t\t});\n\t}\n\tif (last?.outcome === 'needs_repair') {\n\t\tif (last.failureClass === 'journey') {\n\t\t\treturn withWorkflowReadiness({\n\t\t\t\taction: 'retry_same_step',\n\t\t\t\treason: 'aicoder_v6_journey_contract_repair_required',\n\t\t\t\tnextLane: 'plan',\n\t\t\t\tnextStep: last.stepType === 'journey_validation' ? 'journey_contract' : last.stepType,\n\t\t\t\trepeatedNoProgressCount,\n\t\t\t\tbudgetExceeded: false,\n\t\t\t\t...managerRecoveryFields()\n\t\t\t});\n\t\t}\n\t\tif (last.failureClass === 'release') {\n\t\t\treturn withWorkflowReadiness({\n\t\t\t\taction: 'retry_same_step',\n\t\t\t\treason: 'aicoder_v6_release_repair_required',\n\t\t\t\tnextLane: 'publish',\n\t\t\t\tnextStep: last.stepType,\n\t\t\t\trepeatedNoProgressCount,\n\t\t\t\tbudgetExceeded: false,\n\t\t\t\t...managerRecoveryFields()\n\t\t\t});\n\t\t}\n\t\treturn withWorkflowReadiness({\n\t\t\taction: last.lane === 'repair' ? 'retry_same_step' : 'switch_to_repair',\n\t\t\treason: 'aicoder_v6_repair_required',\n\t\t\tnextLane: 'repair',\n\t\t\tnextStep: 'repair',\n\t\t\trepeatedNoProgressCount,\n\t\t\tbudgetExceeded: false,\n\t\t\t...managerRecoveryFields()\n\t\t});\n\t}\n\tif (last?.outcome === 'infra_retry') {\n\t\tconst recoveryPlan = recoveryPlanFor('infra_retry', 'aicoder_v6_infra_retry', {\n\t\t\tfailureClass: 'infra',\n\t\t\tproductRepairFailure: false\n\t\t});\n\t\treturn withWorkflowReadiness({\n\t\t\taction: 'infra_retry',\n\t\t\treason: 'aicoder_v6_infra_retry',\n\t\t\tnextLane: last.lane,\n\t\t\tnextStep: last.stepType,\n\t\t\trepeatedNoProgressCount,\n\t\t\tbudgetExceeded: false,\n\t\t\t...recoveryFieldsFor(recoveryPlan)\n\t\t});\n\t}\n\tif (last?.outcome === 'ready_to_publish') {\n\t\tconst recoveryPlan = recoveryPlanFor('ready_to_publish', 'aicoder_v6_ready_to_publish', {\n\t\t\tfailureClass: 'release',\n\t\t\tproductRepairFailure: false\n\t\t});\n\t\treturn withWorkflowReadiness({\n\t\t\taction: 'ready_to_publish',\n\t\t\treason: 'aicoder_v6_ready_to_publish',\n\t\t\tnextLane: 'publish',\n\t\t\tnextStep: 'publish',\n\t\t\trepeatedNoProgressCount,\n\t\t\tbudgetExceeded: false,\n\t\t\t...recoveryFieldsFor(recoveryPlan)\n\t\t});\n\t}\n\tconst recoveryPlan = managerDecision.recoveryPlan || recoveryPlanFor('continue', 'aicoder_v6_continue');\n\tconst fallbackCheckpoint = managerDecision.recoveryCheckpoint || recoveryCheckpointFor(recoveryPlan);\n\treturn withWorkflowReadiness({\n\t\taction: 'continue',\n\t\treason: 'aicoder_v6_continue',\n\t\tnextLane: last?.lane || bundle.aiCoderV6SupervisorState.activeLane,\n\t\tnextStep: last?.stepType || bundle.aiCoderV6SupervisorState.activeStep,\n\t\trepeatedNoProgressCount,\n\t\tbudgetExceeded: false,\n\t\t...recoveryFieldsFor(recoveryPlan, fallbackCheckpoint, managerDecision.recoveryEvidenceProbe)\n\t});\n}\n\nexport function buildResolveIOAICoderV6DiagnoseFirstPrompt(lines: {\n\tgoal?: string;\n\tapprovedScope?: string[];\n\tactiveLane?: ResolveIOAICoderV6Lane;\n\tactiveStep?: ResolveIOAICoderV6StepType;\n\tactiveBlocker?: string;\n\tlaneSummary?: string;\n\tcurrentQaRow?: ResolveIOAICoderV6LaneMemory['activeQaRow'];\n\tjourneyContractPath?: string;\n\tactiveWorkflowStep?: string;\n\tartifactPaths?: string[];\n\tchangedFiles?: string[];\n}): string[] {\n\treturn [\n\t\t'AICoder Runner V6 contract: use compact lane memory, diagnose first, then make the smallest proven next move.',\n\t\t'Start with Diagnose First: observed evidence, likely cause, smallest next action, and expected proof.',\n\t\t'Use current artifacts, changed files, and lane memory before asking for broad context.',\n\t\t'Do not spawn duplicate build, QA, browser, server, Mongo, or Codex processes.',\n\t\t'If repairing, inspect logs/artifacts/source/diff first; retest the failed check before advancing.',\n\t\t'If the same blocker repeats without new proof, park with the exact blocker instead of burning more tokens.',\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.activeLane ? `Active lane: ${lines.activeLane}` : '',\n\t\tlines.activeStep ? `Active step: ${lines.activeStep}` : '',\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\tlines.journeyContractPath ? `Journey contract: ${cleanText(lines.journeyContractPath, 240)}` : '',\n\t\tlines.activeWorkflowStep ? `Active workflow step: ${cleanText(lines.activeWorkflowStep, 240)}` : '',\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 buildResolveIOAICoderV6Incident(input: {\n\tincidentClass: string;\n\tsummary: string;\n\tstepType?: ResolveIOAICoderV6StepType;\n\tlane?: ResolveIOAICoderV6Lane;\n\tblocker?: string;\n\tartifactPaths?: string[];\n\tnow?: Date | string;\n}): ResolveIOAICoderV6RunnerIncident {\n\treturn {\n\t\tincidentClass: cleanText(input.incidentClass, 120) || 'aicoder_v6_runner_incident',\n\t\tsummary: cleanText(input.summary, 1200),\n\t\tstepType: input.stepType,\n\t\tlane: input.lane,\n\t\tblockerFingerprint: input.blocker ? fingerprintResolveIOAICoderV6Blocker(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/aicoder-runner-v6.ts"],"names":[],"mappings":"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","file":"aicoder-runner-v6.js","sourcesContent":["import {\n\tbuildResolveIOAIManagerRecoveryCheckpoint,\n\tbuildResolveIOAIManagerRecoveryActionPacket,\n\tbuildResolveIOAIManagerRecoveryEvidenceProbe,\n\tbuildResolveIOAIManagerRecoveryPlan,\n\tdecideResolveIOAIManagerPolicy,\n\thashResolveIOAIManagerEvidence,\n\tResolveIOAIManagerRecoveryCheckpoint,\n\tResolveIOAIManagerRecoveryActionPacket,\n\tResolveIOAIManagerRecoveryActionDispatchRecord,\n\tResolveIOAIManagerRecoveryExecutionDirective,\n\tResolveIOAIManagerRecoveryEvidenceProbe,\n\tResolveIOAIManagerRecoveryPlan,\n\tResolveIOAIManagerRecoveryPlanInput\n} from './ai-runner-manager-policy';\n\nexport type ResolveIOAICoderV6Lane =\n\t| 'intake'\n\t| 'plan'\n\t| 'build'\n\t| 'qa'\n\t| 'repair'\n\t| 'review'\n\t| 'publish';\n\nexport type ResolveIOAICoderV6StepType =\n\t| 'intake'\n\t| 'journey_contract'\n\t| 'journey_validation'\n\t| 'plan'\n\t| 'task'\n\t| 'workflow_build'\n\t| 'workflow_qa'\n\t| 'build'\n\t| 'qa'\n\t| 'repair'\n\t| 'review'\n\t| 'test_deploy'\n\t| 'live_deploy'\n\t| 'publish'\n\t| 'cleanup';\n\nexport type ResolveIOAICoderV6Outcome =\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_to_publish'\n\t| 'published';\n\nexport type ResolveIOAICoderV6RunKind = 'initial_builder' | 'terminal_helper';\n\nexport interface ResolveIOAICoderV6Budget {\n\tmaxPromptTokensPerNonInitialStep: number;\n\tmaxTotalPromptTokens: number;\n\tmaxLoopsPerRun: number;\n\tmaxRepeatedNoProgress: number;\n\tmaxRuntimeMinutesPerLane: number;\n\tsoftBudgetUsd: number;\n\thardBudgetUsd: number;\n\ttotalPromptTokenEstimate: number;\n\ttotalInputTokens: number;\n\ttotalCachedInputTokens: number;\n\ttotalOutputTokens: number;\n\ttotalRuntimeMs: number;\n\tloopCount: number;\n}\n\nexport interface ResolveIOAICoderV6LaneMemory {\n\tlane: ResolveIOAICoderV6Lane;\n\tmodel: string;\n\tthreadKey: string;\n\tscopeSummary: string;\n\tactiveStep: ResolveIOAICoderV6StepType;\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\tlatestPromptVersion?: string;\n\tlatestPromptTokenEstimate?: number;\n\tupdatedAt: string;\n}\n\nexport interface ResolveIOAICoderV6WorkflowQaRow {\n\tindex?: number;\n\tworkflowId?: string;\n\tstepId?: string;\n\troute?: string;\n\taction?: string;\n\tassertion?: string;\n\texpectedState?: string;\n\texpectedOutput?: string;\n\tproofKind?: string;\n\tacceptanceGate?: 'aiqa_business_assertion';\n\trequiredArtifacts?: string[];\n\tstateTransition?: {\n\t\tbefore?: string;\n\t\taction?: string;\n\t\tafter?: string;\n\t\tassertion?: string;\n\t};\n\tstatus?: string;\n\tartifactPaths?: string[];\n}\n\nexport interface ResolveIOAICoderV6WorkflowMemory {\n\tjourneyContractPath: string;\n\tprimaryWorkflowId: string;\n\tactiveWorkflowStep: string;\n\tworkflowQaRows: ResolveIOAICoderV6WorkflowQaRow[];\n\tcompletedWorkflowSteps: string[];\n\tblockedWorkflowStep: string;\n\tbusinessProofArtifacts: string[];\n\tupdatedAt: string;\n}\n\nexport interface ResolveIOAICoderJourneyContractValidationIssue {\n\tcode: string;\n\tpath: string;\n\tmessage: string;\n\tseverity: 'error' | 'warning';\n}\n\nexport interface ResolveIOAICoderJourneyContractValidationResult {\n\tvalid: boolean;\n\tcontract: Record<string, any> | null;\n\tissues: ResolveIOAICoderJourneyContractValidationIssue[];\n\tworkflowQaRows: ResolveIOAICoderV6WorkflowQaRow[];\n\tprimaryWorkflowId: string;\n}\n\nexport type ResolveIOAICoderWorkflowProofReadinessStatus =\n\t| 'ready'\n\t| 'missing_journey_contract'\n\t| 'journey_invalid'\n\t| 'route_only'\n\t| 'workflow_qa_missing'\n\t| 'workflow_qa_incomplete'\n\t| 'business_proof_missing'\n\t| 'business_proof_weak'\n\t| 'sample_data_missing'\n\t| 'release_blocked'\n\t| 'stale_workflow_proof'\n\t| 'blocked';\n\nexport interface ResolveIOAICoderWorkflowProofReadinessInput {\n\tjourneyContract?: any;\n\tjourneyContractMarkdown?: string;\n\tworkflowQaRows?: ResolveIOAICoderV6WorkflowQaRow[];\n\tbusinessAssertions?: Array<Record<string, any>>;\n\trouteProbes?: Array<Record<string, any>>;\n\tartifactPaths?: string[];\n\tscorecardPassed?: boolean;\n\tdeployStatus?: string;\n\tpublishStatus?: string;\n\tsampleDataStatus?: string;\n\tpreviousWorkflowProofFingerprint?: string;\n\tpreviousArtifactFingerprint?: string;\n\tpreviousWorkflowProofFingerprints?: string[];\n\tpreviousArtifactFingerprints?: string[];\n\tnow?: Date | string;\n}\n\nexport type ResolveIOAICoderWorkflowProofFreshness =\n\t| 'fresh'\n\t| 'same_as_previous'\n\t| 'stale_artifact'\n\t| 'missing'\n\t| 'unknown';\n\nexport interface ResolveIOAICoderWorkflowProofReadiness {\n\tready: boolean;\n\tstatus: ResolveIOAICoderWorkflowProofReadinessStatus;\n\treason: string;\n\tblockers: string[];\n\tjourneyContractValid: boolean;\n\tprimaryWorkflowId: string;\n\tpassedWorkflowRows: string[];\n\tmissingWorkflowRows: string[];\n\tfailedWorkflowRows: string[];\n\tpassedBusinessAssertions: string[];\n\trouteOnly: boolean;\n\tscorecardOnly: boolean;\n\tsampleDataReady: boolean;\n\treleaseBlockers: string[];\n\tartifactPaths: string[];\n\tworkflowProofFingerprint: string;\n\tartifactFingerprint: string;\n\tproofFreshness: ResolveIOAICoderWorkflowProofFreshness;\n\tnextAction: string;\n\tevaluatedAt: string;\n}\n\nexport type ResolveIOAICoderV6ContinuationAction =\n\t| 'continue'\n\t| 'retry_same_step'\n\t| 'switch_to_repair'\n\t| 'park'\n\t| 'budget_stop'\n\t| 'infra_retry'\n\t| 'ready_to_publish';\n\nexport type ResolveIOAICoderWorkflowReadinessStatus =\n\t| 'journey_contract_required'\n\t| 'journey_contract_repair_required'\n\t| 'workflow_build_ready'\n\t| 'workflow_qa_required'\n\t| 'workflow_business_proof_ready'\n\t| 'release_repair_required'\n\t| 'infra_repair_only'\n\t| 'compile_repair_only'\n\t| 'collect_new_evidence'\n\t| 'budget_stopped'\n\t| 'parked';\n\nexport type ResolveIOAICoderWorkflowReadinessGate =\n\t| 'journey_contract'\n\t| 'build'\n\t| 'workflow_qa'\n\t| 'release'\n\t| 'infra'\n\t| 'compile'\n\t| 'evidence'\n\t| 'manual';\n\nexport type ResolveIOAICoderWorkflowProofCheckpointStatus =\n\t| 'waiting_for_journey_contract'\n\t| 'waiting_for_workflow_proof'\n\t| 'waiting_for_new_evidence'\n\t| 'waiting_for_release_gate'\n\t| 'waiting_for_infra_or_compile'\n\t| 'ready_to_continue';\n\nexport interface ResolveIOAICoderWorkflowProofCheckpoint {\n\trequired: boolean;\n\tstatus: ResolveIOAICoderWorkflowProofCheckpointStatus;\n\treadinessStatus: ResolveIOAICoderWorkflowReadinessStatus;\n\tnextGate: ResolveIOAICoderWorkflowReadinessGate;\n\tstartingFailureClass: string;\n\tstartingBlockerFingerprint: string;\n\tstartingEvidenceHash: string;\n\tworkflowProofFingerprint: string;\n\tartifactFingerprint: string;\n\trequiredEvidence: string[];\n\trequiredResetEvidence: string[];\n\tsuccessRequiresWorkflowBusinessProof: boolean;\n\tblocksProductRepairUntilJourneyContract: boolean;\n\tblocksPublishUntilWorkflowProof: boolean;\n\tblocksPublishUntilReleaseGate: boolean;\n\tblocksWowUiUntilWorkflowProof: boolean;\n\tnextAction: string;\n}\n\nexport interface ResolveIOAICoderWorkflowReadiness {\n\tstatus: ResolveIOAICoderWorkflowReadinessStatus;\n\tnextGate: ResolveIOAICoderWorkflowReadinessGate;\n\tnextLane: ResolveIOAICoderV6Lane;\n\tnextStep: ResolveIOAICoderV6StepType;\n\tnextCommand: string;\n\tjourneyContractReady: boolean;\n\tworkflowQaRowsReady: boolean;\n\tbusinessProofReady: boolean;\n\trouteOnlyBlocked: boolean;\n\treleaseBlocked: boolean;\n\tinfraOnly: boolean;\n\tcompileOnly: boolean;\n\tsameFailureParked: boolean;\n\tcanRunProductRepair: boolean;\n\tcanRunWorkflowQa: boolean;\n\tcanPublish: boolean;\n\tcanPolishWowUi: boolean;\n\trequiresHumanDecision: boolean;\n\treason: string;\n\tblockers: string[];\n\tprimaryWorkflowId: string;\n\tactiveWorkflowStep: string;\n\tbusinessProofArtifacts: string[];\n\tworkflowProofCheckpoint: ResolveIOAICoderWorkflowProofCheckpoint;\n}\n\nexport interface ResolveIOAICoderV6SupervisorState {\n\tversion: 'v6';\n\trunKind: ResolveIOAICoderV6RunKind;\n\tstatus: 'active' | 'parked' | 'complete';\n\tcurrentGoal: string;\n\tapprovedScope: string;\n\tbranchName: string;\n\tactiveLane: ResolveIOAICoderV6Lane;\n\tactiveStep: ResolveIOAICoderV6StepType;\n\tactiveBlocker: string;\n\tlastGoodCheckpoint: string;\n\tlastGoodCommit?: string;\n\ttestDeployStatus?: string;\n\tliveDeployStatus?: string;\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\tupdatedAt: string;\n}\n\nexport interface ResolveIOAICoderV6StepRecord {\n\tstepType: ResolveIOAICoderV6StepType;\n\toutcome: ResolveIOAICoderV6Outcome;\n\tlane: ResolveIOAICoderV6Lane;\n\tmodel?: string;\n\tthreadKey?: string;\n\tpromptVersion?: string;\n\tpromptTokenEstimate?: number;\n\tinputTokens?: number;\n\tcachedInputTokens?: number;\n\toutputTokens?: number;\n\truntimeMs?: number;\n\tsummary: string;\n\tblocker?: string;\n\tblockerFingerprint?: string;\n\tfailureClass?: string;\n\tevidenceHash?: string;\n\tchangedFiles?: string[];\n\tartifactPaths?: string[];\n\tnextAction?: ResolveIOAICoderV6ContinuationAction;\n\trecordedAt: string;\n}\n\nexport interface ResolveIOAICoderV6RunnerIncident {\n\tincidentClass: string;\n\tsummary: string;\n\tstepType?: ResolveIOAICoderV6StepType;\n\tlane?: ResolveIOAICoderV6Lane;\n\tblockerFingerprint?: string;\n\tartifactPaths?: string[];\n\trecordedAt: string;\n}\n\nexport interface ResolveIOAICoderV6StateBundle {\n\taiCoderRunnerVersion: 'v6';\n\taiCoderV6SupervisorState: ResolveIOAICoderV6SupervisorState;\n\taiCoderV6LaneMemory: Record<ResolveIOAICoderV6Lane, ResolveIOAICoderV6LaneMemory>;\n\taiCoderV6WorkflowMemory: ResolveIOAICoderV6WorkflowMemory;\n\taiCoderV6StepHistory: ResolveIOAICoderV6StepRecord[];\n\taiCoderV6Budget: ResolveIOAICoderV6Budget;\n\taiCoderV6RunnerIncidents: ResolveIOAICoderV6RunnerIncident[];\n\taiCoderV6RecoveryPlan?: ResolveIOAIManagerRecoveryPlan;\n\taiCoderV6RecoveryCheckpoint?: ResolveIOAIManagerRecoveryCheckpoint;\n\taiCoderV6RecoveryEvidenceProbe?: ResolveIOAIManagerRecoveryEvidenceProbe;\n\taiCoderV6RecoveryAction?: ResolveIOAIManagerRecoveryActionPacket;\n\taiCoderV6RecoveryDispatchHistory?: ResolveIOAIManagerRecoveryActionDispatchRecord[];\n\taiCoderV6RecoveryDirective?: ResolveIOAIManagerRecoveryExecutionDirective;\n\taiCoderV6WorkflowReadiness?: ResolveIOAICoderWorkflowReadiness;\n}\n\nexport interface ResolveIOAICoderV6InitializeInput {\n\trunKind: ResolveIOAICoderV6RunKind;\n\tjobId: string;\n\tappId?: string;\n\tconversationId?: string;\n\ttitle?: string;\n\tdescription?: string;\n\tapprovedScopeRequirements?: string[];\n\tbranchName?: string;\n\tjourneyContractPath?: string;\n\tdefaultModel?: string;\n\tlaneThreadKeys?: Partial<Record<ResolveIOAICoderV6Lane, string>>;\n\tprocessLease?: ResolveIOAICoderV6SupervisorState['processLease'];\n\tnow?: Date | string;\n\texisting?: Partial<ResolveIOAICoderV6StateBundle>;\n}\n\nexport interface ResolveIOAICoderV6StepInput {\n\tstepType: ResolveIOAICoderV6StepType;\n\toutcome: ResolveIOAICoderV6Outcome;\n\tlane: ResolveIOAICoderV6Lane;\n\tmodel?: string;\n\tthreadKey?: string;\n\tpromptVersion?: string;\n\tpromptTokenEstimate?: number;\n\tinputTokens?: number;\n\tcachedInputTokens?: number;\n\toutputTokens?: number;\n\truntimeMs?: number;\n\tsummary?: string;\n\tblocker?: string;\n\tfailureClass?: string;\n\tevidenceHash?: string;\n\tprimaryWorkflowId?: string;\n\tactiveWorkflowStep?: string;\n\tworkflowQaRows?: ResolveIOAICoderV6WorkflowQaRow[];\n\tcompletedWorkflowSteps?: string[];\n\tblockedWorkflowStep?: string;\n\tbusinessProofArtifacts?: string[];\n\tchangedFiles?: string[];\n\tartifactPaths?: string[];\n\tactiveQaRow?: ResolveIOAICoderV6LaneMemory['activeQaRow'];\n\tnextAction?: ResolveIOAICoderV6ContinuationAction;\n\tnow?: Date | string;\n}\n\nexport interface ResolveIOAICoderV6ContinuationDecision {\n\taction: ResolveIOAICoderV6ContinuationAction;\n\treason: string;\n\tnextLane: ResolveIOAICoderV6Lane;\n\tnextStep: ResolveIOAICoderV6StepType;\n\trepeatedNoProgressCount: number;\n\tbudgetExceeded: boolean;\n\tworkflowReadiness: ResolveIOAICoderWorkflowReadiness;\n\tworkflowProofCheckpoint: ResolveIOAICoderWorkflowProofCheckpoint;\n\trecoveryPlan: ResolveIOAIManagerRecoveryPlan;\n\trecoveryCheckpoint: ResolveIOAIManagerRecoveryCheckpoint;\n\trecoveryEvidenceProbe: ResolveIOAIManagerRecoveryEvidenceProbe;\n\trecoveryAction: ResolveIOAIManagerRecoveryActionPacket;\n}\n\nconst LANES: ResolveIOAICoderV6Lane[] = ['intake', 'plan', 'build', 'qa', 'repair', 'review', 'publish'];\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 readField(source: any, keys: string[]): any {\n\tif (!source || typeof source !== 'object') {\n\t\treturn undefined;\n\t}\n\tfor (const key of keys) {\n\t\tif (source[key] !== undefined && source[key] !== null) {\n\t\t\treturn source[key];\n\t\t}\n\t}\n\treturn undefined;\n}\n\nfunction cleanField(source: any, keys: string[], max = 500): string {\n\treturn cleanText(readField(source, keys), max);\n}\n\nfunction concatFields(source: any, keys: string[], maxEach = 500): string {\n\tif (!source || typeof source !== 'object') {\n\t\treturn '';\n\t}\n\treturn keys\n\t\t.map((key) => cleanText(source[key], maxEach))\n\t\t.filter(Boolean)\n\t\t.join(' ');\n}\n\nfunction asArray(value: any): any[] {\n\tif (!Array.isArray(value)) {\n\t\treturn [];\n\t}\n\treturn value;\n}\n\nfunction stripJsonComments(value: string): string {\n\tlet output = '';\n\tlet inString = false;\n\tlet escaped = false;\n\tfor (let index = 0; index < value.length; index += 1) {\n\t\tconst char = value[index];\n\t\tconst next = value[index + 1];\n\t\tif (inString) {\n\t\t\toutput += char;\n\t\t\tif (escaped) {\n\t\t\t\tescaped = false;\n\t\t\t}\n\t\t\telse if (char === '\\\\') {\n\t\t\t\tescaped = true;\n\t\t\t}\n\t\t\telse if (char === '\"') {\n\t\t\t\tinString = false;\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\t\tif (char === '\"') {\n\t\t\tinString = true;\n\t\t\toutput += char;\n\t\t\tcontinue;\n\t\t}\n\t\tif (char === '/' && next === '/') {\n\t\t\twhile (index < value.length && value[index] !== '\\n') {\n\t\t\t\tindex += 1;\n\t\t\t}\n\t\t\toutput += '\\n';\n\t\t\tcontinue;\n\t\t}\n\t\tif (char === '/' && next === '*') {\n\t\t\tindex += 2;\n\t\t\twhile (index < value.length && !(value[index] === '*' && value[index + 1] === '/')) {\n\t\t\t\tindex += 1;\n\t\t\t}\n\t\t\tindex += 1;\n\t\t\tcontinue;\n\t\t}\n\t\toutput += char;\n\t}\n\treturn output;\n}\n\nfunction parseJsonObject(value: string): Record<string, any> | null {\n\ttry {\n\t\tconst parsed = JSON.parse(stripJsonComments(value));\n\t\treturn parsed && typeof parsed === 'object' && !Array.isArray(parsed) ? parsed : null;\n\t}\n\tcatch {\n\t\treturn null;\n\t}\n}\n\nexport function extractResolveIOAICoderJourneyContractFromMarkdown(content: string | null | undefined): Record<string, any> | null {\n\tconst normalized = String(content || '').replace(/\\r\\n/g, '\\n');\n\tconst sectionMatch = normalized.match(/##\\s*journey_contract[\\s\\S]*?```json\\s*([\\s\\S]*?)```/i)\n\t\t|| normalized.match(/##\\s*journey_contract[\\s\\S]*?```\\s*([\\s\\S]*?)```/i);\n\tif (sectionMatch?.[1]) {\n\t\treturn parseJsonObject(sectionMatch[1].trim());\n\t}\n\tconst fencedMatch = normalized.match(/```json\\s*([\\s\\S]*?)```/i);\n\tif (fencedMatch?.[1]) {\n\t\treturn parseJsonObject(fencedMatch[1].trim());\n\t}\n\tconst objectMatch = normalized.match(/\\{\\s*\"app_archetype\"[\\s\\S]*\\}\\s*$/m);\n\tif (objectMatch?.[0]) {\n\t\treturn parseJsonObject(objectMatch[0].trim());\n\t}\n\treturn null;\n}\n\nfunction looksLikeAbsoluteRoute(value: string): boolean {\n\treturn value.startsWith('/') && !/\\s/.test(value);\n}\n\nfunction looksPlaceholder(value: string): boolean {\n\treturn /\\b(tbd|todo|placeholder|generic crud|crud-only|lorem ipsum|add details|fill in|coming soon)\\b/i.test(value || '');\n}\n\nfunction isNavigationOnlyAction(source: any): boolean {\n\tconst effect = cleanField(source, ['effect', 'outcome', 'state_change', 'expected_state_transition', 'expected_next_state'], 500).toLowerCase();\n\tconst implementation = cleanField(source, [\n\t\t'method_or_calculation',\n\t\t'server_method_or_publication',\n\t\t'local_calculation_path',\n\t\t'action_implementation',\n\t\t'calculation_path',\n\t\t'data_mutation',\n\t\t'mutation',\n\t\t'persisted_result'\n\t], 500);\n\tif (implementation) {\n\t\treturn false;\n\t}\n\tconst actionType = cleanField(source, ['action_type', 'type', 'kind'], 120).toLowerCase();\n\tconst actionText = [\n\t\tcleanField(source, ['action', 'visible_cta', 'cta', 'label'], 300),\n\t\tcleanField(source, ['next_step_destination', 'next_step', 'destination'], 300)\n\t].join(' ').toLowerCase();\n\tconst navigationSignals = /\\b(navigate|go to|open|view|link|route|page)\\b/.test(actionText)\n\t\t|| /^(?:link|nav|navigation|route)$/i.test(actionType);\n\tconst productiveEffect = /\\b(save|saved|create|created|update|updated|calculate|calculated|optimize|optimized|import|export|report|persist|queued|submitted|validated|generated|compare|recommendation|complete|completed)\\b/.test(effect);\n\treturn navigationSignals && !productiveEffect;\n}\n\nfunction addJourneyIssue(\n\tissues: ResolveIOAICoderJourneyContractValidationIssue[],\n\tcode: string,\n\tpath: string,\n\tmessage: string,\n\tseverity: 'error' | 'warning' = 'error'\n): void {\n\tissues.push({ code, path, message, severity });\n}\n\nfunction normalizeWorkflowStepPosition(step: any, index: number, total: number): string {\n\tconst explicit = cleanField(step, ['position', 'phase', 'order_role'], 60).toLowerCase();\n\tif (explicit) {\n\t\treturn explicit;\n\t}\n\tif (index === 0) {\n\t\treturn 'first';\n\t}\n\tif (index === total - 1) {\n\t\treturn 'last';\n\t}\n\treturn 'next';\n}\n\nfunction buildWorkflowStepId(step: any, index: number): string {\n\treturn cleanField(step, ['id', 'step_id', 'key'], 120)\n\t\t|| cleanField(step, ['label', 'title', 'visible_cta'], 120).toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-|-$/g, '')\n\t\t|| `step-${index + 1}`;\n}\n\nfunction normalizeWorkflowProofKind(source: any, fallbackText = ''): string {\n\tconst explicit = cleanField(source, ['proof_kind', 'proofKind', 'coverage', 'type', 'kind'], 120).toLowerCase().replace(/[\\s-]+/g, '_');\n\tif (explicit) {\n\t\treturn explicit;\n\t}\n\tconst text = cleanText([\n\t\tfallbackText,\n\t\tconcatFields(source, ['id', 'step_id', 'stepId', 'action', 'browser_steps', 'expected_dom_or_data_proof', 'proof', 'expected_result', 'viewport'], 700)\n\t].filter(Boolean).join(' '), 1800).toLowerCase();\n\tif (/\\b(mobile|390x844|viewport)\\b/.test(text)) {\n\t\treturn 'mobile';\n\t}\n\tif (/\\b(export|report|pdf|download)\\b/.test(text)) {\n\t\treturn 'report_export';\n\t}\n\tif (/\\b(complete|saved|save|result|recommendation|calculated|optimized|final)\\b/.test(text)) {\n\t\treturn 'workflow_completion';\n\t}\n\tif (/\\b(sample|seeded|non[-\\s]?empty|kpi|table|chart|record|row)\\b/.test(text)) {\n\t\treturn 'non_empty_data';\n\t}\n\tif (/\\b(empty|error|recovery|invalid)\\b/.test(text)) {\n\t\treturn 'recovery';\n\t}\n\tif (/\\b(hub|dashboard|command center|next up|queue)\\b/.test(text)) {\n\t\treturn 'hub_action';\n\t}\n\treturn 'business_workflow';\n}\n\nfunction buildWorkflowQaRequiredArtifacts(source: any, proofKind: string): string[] {\n\tconst explicit = cleanList(readField(source, ['required_artifacts', 'requiredArtifacts', 'proof_artifacts', 'artifact_expectation', 'artifacts_required']), 12, 180);\n\tconst defaultsByKind: Record<string, string[]> = {\n\t\thub_action: ['hub screenshot or DOM snapshot', 'next action state proof'],\n\t\tworkflow_completion: ['before/action/after trace', 'saved or calculated output proof', 'business assertion artifact'],\n\t\treport_export: ['generated report/export artifact', 'export control proof', 'saved output row proof'],\n\t\tnon_empty_data: ['seeded data snapshot', 'non-empty KPI/table/chart proof'],\n\t\tmobile: ['mobile viewport screenshot or trace', 'responsive workflow action proof'],\n\t\trecovery: ['empty/error state screenshot or trace', 'recovery action proof'],\n\t\tbusiness_workflow: ['browser trace or screenshot', 'DOM/data assertion artifact']\n\t};\n\treturn Array.from(new Set([\n\t\t...explicit,\n\t\t...(defaultsByKind[proofKind] || defaultsByKind.business_workflow)\n\t])).slice(0, 16);\n}\n\nfunction buildWorkflowQaStateTransition(source: any, fallback: Partial<ResolveIOAICoderV6WorkflowQaRow> = {}): ResolveIOAICoderV6WorkflowQaRow['stateTransition'] {\n\treturn {\n\t\tbefore: cleanField(source, ['before', 'setup_state', 'initial_state'], 700) || fallback.expectedState,\n\t\taction: cleanField(source, ['action', 'browser_steps', 'visible_cta', 'cta'], 700) || fallback.action,\n\t\tafter: cleanField(source, ['after', 'expected_state', 'expected_result', 'expected_dom_or_data_proof', 'proof'], 700) || fallback.assertion || fallback.expectedState,\n\t\tassertion: cleanField(source, ['assertion', 'expected_dom_or_data_proof', 'proof', 'expected_result'], 700) || fallback.assertion\n\t};\n}\n\nexport function buildResolveIOAICoderWorkflowQaRowsFromJourneyContract(input: any): ResolveIOAICoderV6WorkflowQaRow[] {\n\tconst contract = typeof input === 'string'\n\t\t? extractResolveIOAICoderJourneyContractFromMarkdown(input)\n\t\t: (input && typeof input === 'object' && !Array.isArray(input) ? input : null);\n\tif (!contract) {\n\t\treturn [];\n\t}\n\tconst workflowId = cleanField(contract, ['primary_workflow_id', 'workflow_id', 'id'], 160) || 'north-star';\n\tconst rows: ResolveIOAICoderV6WorkflowQaRow[] = [];\n\tconst qaAssertions = asArray(contract.qa_assertions);\n\tqaAssertions.forEach((assertion, index) => {\n\t\tif (!assertion || typeof assertion !== 'object' || Array.isArray(assertion)) {\n\t\t\treturn;\n\t\t}\n\t\tconst route = cleanField(assertion, ['route', 'screen_route', 'path'], 240);\n\t\tconst action = cleanField(assertion, ['action', 'browser_steps', 'cta', 'visible_cta'], 500);\n\t\tconst expectedState = cleanField(assertion, ['expected_state', 'expected_result', 'expected_dom_or_data_proof', 'proof'], 500);\n\t\tconst assertionText = cleanField(assertion, ['assertion', 'expected_dom_or_data_proof', 'proof', 'expected_result'], 700);\n\t\tif (!route && !action && !assertionText) {\n\t\t\treturn;\n\t\t}\n\t\tconst proofKind = normalizeWorkflowProofKind(assertion);\n\t\tconst rowBase = {\n\t\t\troute: route || undefined,\n\t\t\taction: action || undefined,\n\t\t\tassertion: assertionText || undefined,\n\t\t\texpectedState: expectedState || undefined\n\t\t};\n\t\trows.push({\n\t\t\tindex: cleanNumber(readField(assertion, ['index', 'order'])) || index + 1,\n\t\t\tworkflowId: cleanField(assertion, ['workflow_id', 'workflowId'], 160) || workflowId,\n\t\t\tstepId: cleanField(assertion, ['step_id', 'stepId', 'id'], 160) || `qa-${index + 1}`,\n\t\t\t...rowBase,\n\t\t\texpectedOutput: cleanField(assertion, ['expected_output', 'expectedOutput', 'saved_output', 'calculated_output', 'report_output'], 700) || expectedState || assertionText || undefined,\n\t\t\tproofKind,\n\t\t\tacceptanceGate: 'aiqa_business_assertion',\n\t\t\trequiredArtifacts: buildWorkflowQaRequiredArtifacts(assertion, proofKind),\n\t\t\tstateTransition: buildWorkflowQaStateTransition(assertion, rowBase),\n\t\t\tstatus: cleanField(assertion, ['status'], 120) || undefined,\n\t\t\tartifactPaths: cleanList(readField(assertion, ['artifact_paths', 'artifactPaths']), 20, 500)\n\t\t});\n\t});\n\tif (rows.length) {\n\t\treturn rows.slice(0, 80);\n\t}\n\tasArray(contract.north_star_workflow).forEach((step, index, workflow) => {\n\t\tif (!step || typeof step !== 'object' || Array.isArray(step)) {\n\t\t\treturn;\n\t\t}\n\t\tconst proofKind = normalizeWorkflowProofKind(step, normalizeWorkflowStepPosition(step, index, workflow.length));\n\t\tconst rowBase = {\n\t\t\troute: cleanField(step, ['route'], 240) || undefined,\n\t\t\taction: cleanField(step, ['visible_cta', 'action', 'cta'], 500) || undefined,\n\t\t\tassertion: cleanField(step, ['success_confirmation', 'expected_state_transition', 'final_result'], 700) || undefined,\n\t\t\texpectedState: cleanField(step, ['expected_state_transition', 'success_confirmation', 'final_result'], 500) || undefined\n\t\t};\n\t\trows.push({\n\t\t\tindex: index + 1,\n\t\t\tworkflowId,\n\t\t\tstepId: buildWorkflowStepId(step, index),\n\t\t\t...rowBase,\n\t\t\texpectedOutput: cleanField(step, ['final_result', 'saved_exported_reported_result', 'completion_result', 'expected_state_transition'], 700) || rowBase.expectedState || rowBase.assertion,\n\t\t\tproofKind,\n\t\t\tacceptanceGate: 'aiqa_business_assertion',\n\t\t\trequiredArtifacts: buildWorkflowQaRequiredArtifacts(step, proofKind),\n\t\t\tstateTransition: buildWorkflowQaStateTransition(step, rowBase),\n\t\t\tstatus: undefined,\n\t\t\tartifactPaths: []\n\t\t});\n\t\tvoid workflow;\n\t});\n\treturn rows.slice(0, 80);\n}\n\nexport function validateResolveIOAICoderJourneyContract(input: any, options: {\n\tpathLabel?: string;\n\trequireMarkdownEnvelope?: boolean;\n} = {}): ResolveIOAICoderJourneyContractValidationResult {\n\tconst pathLabel = cleanText(options.pathLabel || 'docs/APP_JOURNEY_CONTRACT.md', 240) || 'docs/APP_JOURNEY_CONTRACT.md';\n\tconst issues: ResolveIOAICoderJourneyContractValidationIssue[] = [];\n\tlet contract: Record<string, any> | null = null;\n\tif (typeof input === 'string') {\n\t\tconst normalized = input.replace(/\\r\\n/g, '\\n');\n\t\tif (!normalized.trim()) {\n\t\t\taddJourneyIssue(issues, 'missing_contract', pathLabel, `${pathLabel}: missing app journey contract.`);\n\t\t\treturn { valid: false, contract: null, issues, workflowQaRows: [], primaryWorkflowId: '' };\n\t\t}\n\t\tif (options.requireMarkdownEnvelope !== false && !/^\\s*#\\s+App Journey Contract/im.test(normalized)) {\n\t\t\taddJourneyIssue(issues, 'missing_heading', pathLabel, `${pathLabel}: missing \"# App Journey Contract\" heading.`);\n\t\t}\n\t\tif (options.requireMarkdownEnvelope !== false && !/##\\s*journey_contract/i.test(normalized)) {\n\t\t\taddJourneyIssue(issues, 'missing_json_section', pathLabel, `${pathLabel}: missing \"## journey_contract\" JSON section.`);\n\t\t}\n\t\tif (looksPlaceholder(normalized)) {\n\t\t\taddJourneyIssue(issues, 'placeholder_text', pathLabel, `${pathLabel}: contains placeholder or generic journey text.`);\n\t\t}\n\t\tcontract = extractResolveIOAICoderJourneyContractFromMarkdown(normalized);\n\t}\n\telse if (input && typeof input === 'object' && !Array.isArray(input)) {\n\t\tcontract = input;\n\t}\n\tif (!contract) {\n\t\taddJourneyIssue(issues, 'invalid_json', pathLabel, `${pathLabel}: journey_contract JSON is missing or invalid.`);\n\t\treturn { valid: false, contract: null, issues, workflowQaRows: [], primaryWorkflowId: '' };\n\t}\n\tconst requiredKeys = [\n\t\t'app_archetype',\n\t\t'primary_actor',\n\t\t'primary_goal',\n\t\t'first_screen',\n\t\t'north_star_workflow',\n\t\t'secondary_workflows',\n\t\t'screen_sequence',\n\t\t'data_story',\n\t\t'completion_states',\n\t\t'qa_assertions'\n\t];\n\tfor (const key of requiredKeys) {\n\t\tif (!(key in contract)) {\n\t\t\taddJourneyIssue(issues, 'missing_key', `${pathLabel}.journey_contract.${key}`, `${pathLabel}: journey_contract missing key \"${key}\".`);\n\t\t}\n\t}\n\tfor (const key of ['app_archetype', 'primary_actor', 'primary_goal']) {\n\t\tconst value = cleanText(contract[key], 500);\n\t\tif (value.length < 4) {\n\t\t\taddJourneyIssue(issues, 'empty_core_field', `${pathLabel}.journey_contract.${key}`, `${pathLabel}: journey_contract.${key} must be non-empty.`);\n\t\t}\n\t\tif (looksPlaceholder(value)) {\n\t\t\taddJourneyIssue(issues, 'placeholder_core_field', `${pathLabel}.journey_contract.${key}`, `${pathLabel}: journey_contract.${key} is placeholder text.`);\n\t\t}\n\t}\n\tconst firstScreen = contract.first_screen;\n\tif (!firstScreen || typeof firstScreen !== 'object' || Array.isArray(firstScreen)) {\n\t\taddJourneyIssue(issues, 'invalid_first_screen', `${pathLabel}.journey_contract.first_screen`, `${pathLabel}: first_screen must be an object.`);\n\t}\n\telse {\n\t\tconst route = cleanField(firstScreen, ['route'], 240);\n\t\tfor (const [label, keys] of [\n\t\t\t['route', ['route']],\n\t\t\t['purpose', ['purpose', 'screen_purpose']],\n\t\t\t['visible_cta', ['visible_cta', 'cta', 'primary_cta']],\n\t\t\t['next_step', ['next_step', 'next_step_destination', 'expected_next_state']]\n\t\t] as Array<[string, string[]]>) {\n\t\t\tif (cleanField(firstScreen, keys, 500).length < 4) {\n\t\t\t\taddJourneyIssue(issues, 'incomplete_first_screen', `${pathLabel}.journey_contract.first_screen.${label}`, `${pathLabel}: first_screen.${label} must be non-empty.`);\n\t\t\t}\n\t\t}\n\t\tif (route && !looksLikeAbsoluteRoute(route)) {\n\t\t\taddJourneyIssue(issues, 'relative_first_screen_route', `${pathLabel}.journey_contract.first_screen.route`, `${pathLabel}: first_screen.route must be an absolute app route.`);\n\t\t}\n\t}\n\tconst workflow = asArray(contract.north_star_workflow);\n\tif (workflow.length < 3) {\n\t\taddJourneyIssue(issues, 'workflow_too_short', `${pathLabel}.journey_contract.north_star_workflow`, `${pathLabel}: north_star_workflow must include at least first, next, and last steps.`);\n\t}\n\tconst positions = new Set(workflow.map((step: any, index: number) => normalizeWorkflowStepPosition(step, index, workflow.length)));\n\tfor (const requiredPosition of ['first', 'next', 'last']) {\n\t\tif (!positions.has(requiredPosition)) {\n\t\t\taddJourneyIssue(issues, 'missing_workflow_position', `${pathLabel}.journey_contract.north_star_workflow`, `${pathLabel}: north_star_workflow missing position \"${requiredPosition}\".`);\n\t\t}\n\t}\n\tworkflow.forEach((step: any, index: number) => {\n\t\tconst stepPath = `${pathLabel}.journey_contract.north_star_workflow[${index}]`;\n\t\tif (!step || typeof step !== 'object' || Array.isArray(step)) {\n\t\t\taddJourneyIssue(issues, 'invalid_workflow_step', stepPath, `${pathLabel}: north_star_workflow[${index}] must be an object.`);\n\t\t\treturn;\n\t\t}\n\t\tconst position = normalizeWorkflowStepPosition(step, index, workflow.length);\n\t\tconst route = cleanField(step, ['route'], 240);\n\t\tconst embeddedAction = cleanField(step, ['embedded_hub_action', 'hub_action'], 240);\n\t\tconst implementation = cleanField(step, [\n\t\t\t'method_or_calculation',\n\t\t\t'server_method_or_publication',\n\t\t\t'local_calculation_path',\n\t\t\t'action_implementation',\n\t\t\t'calculation_path',\n\t\t\t'data_mutation',\n\t\t\t'mutation',\n\t\t\t'persisted_result'\n\t\t], 500);\n\t\tconst requiredStepFields: Array<[string, string[]]> = [\n\t\t\t['position', ['position']],\n\t\t\t['visible_cta', ['visible_cta', 'cta', 'label']],\n\t\t\t['data_input_or_selection', ['data_input_or_selection', 'data_input', 'selection', 'input']],\n\t\t\t['expected_state_transition', ['expected_state_transition', 'expected_next_state', 'state_change']],\n\t\t\t['success_confirmation', ['success_confirmation', 'confirmation', 'success_message']],\n\t\t\t['next_step_destination', ['next_step_destination', 'next_step', 'destination']]\n\t\t];\n\t\tfor (const [fieldName, keys] of requiredStepFields) {\n\t\t\tif (fieldName === 'next_step_destination' && position === 'last') {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (cleanField(step, keys, 500).length < 3) {\n\t\t\t\taddJourneyIssue(issues, 'incomplete_workflow_step', `${stepPath}.${fieldName}`, `${pathLabel}: north_star_workflow[${index}].${fieldName} must be non-empty.`);\n\t\t\t}\n\t\t}\n\t\tif (!route && !embeddedAction) {\n\t\t\taddJourneyIssue(issues, 'workflow_step_missing_route_or_hub_action', stepPath, `${pathLabel}: north_star_workflow[${index}] must specify a route or embedded hub action.`);\n\t\t}\n\t\tif (route && !looksLikeAbsoluteRoute(route)) {\n\t\t\taddJourneyIssue(issues, 'relative_workflow_route', `${stepPath}.route`, `${pathLabel}: north_star_workflow[${index}].route must be an absolute app route.`);\n\t\t}\n\t\tif (!implementation) {\n\t\t\taddJourneyIssue(issues, 'workflow_step_missing_implementation', stepPath, `${pathLabel}: north_star_workflow[${index}] must map the CTA to a server method, publication, local calculation, persisted mutation, or export/report action.`);\n\t\t}\n\t\tif (isNavigationOnlyAction(step)) {\n\t\t\taddJourneyIssue(issues, 'navigation_only_workflow_step', stepPath, `${pathLabel}: north_star_workflow[${index}] appears to be navigation-only instead of advancing state.`);\n\t\t}\n\t\tif (position === 'last' && cleanField(step, ['final_result', 'saved_exported_reported_result', 'completion_result'], 700).length < 8) {\n\t\t\taddJourneyIssue(issues, 'last_step_missing_final_result', `${stepPath}.final_result`, `${pathLabel}: last workflow step must define the saved, exported, reported, or calculated final result.`);\n\t\t}\n\t});\n\tconst secondaryWorkflows = asArray(contract.secondary_workflows);\n\tif (secondaryWorkflows.length < 3) {\n\t\taddJourneyIssue(issues, 'missing_secondary_workflows', `${pathLabel}.journey_contract.secondary_workflows`, `${pathLabel}: secondary_workflows must include setup, manage, report/export, settings/secrets, or recovery coverage.`);\n\t}\n\tconst screenSequence = asArray(contract.screen_sequence);\n\tif (screenSequence.length < Math.min(3, Math.max(workflow.length, 3))) {\n\t\taddJourneyIssue(issues, 'screen_sequence_too_short', `${pathLabel}.journey_contract.screen_sequence`, `${pathLabel}: screen_sequence must map workflow steps to routes, CTAs, data, and next state.`);\n\t}\n\tscreenSequence.forEach((screen: any, index: number) => {\n\t\tconst screenPath = `${pathLabel}.journey_contract.screen_sequence[${index}]`;\n\t\tif (!screen || typeof screen !== 'object' || Array.isArray(screen)) {\n\t\t\taddJourneyIssue(issues, 'invalid_screen_sequence_row', screenPath, `${pathLabel}: screen_sequence[${index}] must be an object.`);\n\t\t\treturn;\n\t\t}\n\t\tfor (const [fieldName, keys] of [\n\t\t\t['route', ['route']],\n\t\t\t['screen_purpose', ['screen_purpose', 'purpose']],\n\t\t\t['visible_cta', ['visible_cta', 'cta']],\n\t\t\t['expected_next_state', ['expected_next_state', 'expected_state_transition']],\n\t\t\t['data_shown', ['data_shown', 'data', 'records_shown']]\n\t\t] as Array<[string, string[]]>) {\n\t\t\tif (cleanField(screen, keys, 500).length < 3) {\n\t\t\t\taddJourneyIssue(issues, 'incomplete_screen_sequence_row', `${screenPath}.${fieldName}`, `${pathLabel}: screen_sequence[${index}].${fieldName} must be non-empty.`);\n\t\t\t}\n\t\t}\n\t\tconst route = cleanField(screen, ['route'], 240);\n\t\tif (route && !looksLikeAbsoluteRoute(route)) {\n\t\t\taddJourneyIssue(issues, 'relative_screen_route', `${screenPath}.route`, `${pathLabel}: screen_sequence[${index}].route must be an absolute app route.`);\n\t\t}\n\t\tif (isNavigationOnlyAction(screen)) {\n\t\t\taddJourneyIssue(issues, 'navigation_only_screen_action', screenPath, `${pathLabel}: screen_sequence[${index}] CTA appears to navigate without changing workflow state.`);\n\t\t}\n\t});\n\tconst firstScreenRoute = cleanField(firstScreen, ['route'], 240);\n\tconst hubScreens = screenSequence.filter((screen: any) => {\n\t\tconst route = cleanField(screen, ['route'], 240);\n\t\treturn route === firstScreenRoute || /hub|dashboard/i.test(route);\n\t});\n\tconst hubHasEmbeddedAction = hubScreens.some((screen: any) => {\n\t\tconst text = [\n\t\t\tcleanField(screen, ['embedded_action', 'hub_action', 'action'], 500),\n\t\t\tcleanField(screen, ['method_or_calculation', 'server_method_or_publication', 'local_calculation_path', 'action_implementation'], 500),\n\t\t\tcleanField(screen, ['expected_next_state', 'expected_state_transition'], 500)\n\t\t].join(' ');\n\t\treturn text.trim().length >= 8 && !isNavigationOnlyAction(screen);\n\t});\n\tif (!hubHasEmbeddedAction) {\n\t\taddJourneyIssue(issues, 'hub_missing_embedded_action', `${pathLabel}.journey_contract.screen_sequence`, `${pathLabel}: dashboard hub/first screen must embed at least one primary workflow action instead of acting as a link farm.`);\n\t}\n\tconst dataStory = contract.data_story;\n\tif (!dataStory || typeof dataStory !== 'object' || Array.isArray(dataStory)) {\n\t\taddJourneyIssue(issues, 'invalid_data_story', `${pathLabel}.journey_contract.data_story`, `${pathLabel}: data_story must be an object.`);\n\t}\n\telse {\n\t\tif (cleanField(dataStory, ['seeded_scenario', 'scenario'], 800).length < 12) {\n\t\t\taddJourneyIssue(issues, 'missing_seeded_scenario', `${pathLabel}.journey_contract.data_story.seeded_scenario`, `${pathLabel}: data_story.seeded_scenario must describe the launch sample scenario.`);\n\t\t}\n\t\tif (!asArray(readField(dataStory, ['records', 'seed_records'])).length) {\n\t\t\taddJourneyIssue(issues, 'missing_seed_records', `${pathLabel}.journey_contract.data_story.records`, `${pathLabel}: data_story.records must list seeded records.`);\n\t\t}\n\t\tif (!asArray(readField(dataStory, ['relationships', 'record_relationships'])).length) {\n\t\t\taddJourneyIssue(issues, 'missing_seed_relationships', `${pathLabel}.journey_contract.data_story.relationships`, `${pathLabel}: data_story.relationships must list seeded data relationships.`);\n\t\t}\n\t\tif (asArray(readField(dataStory, ['non_empty_states', 'non_empty_dashboard_states'])).length < 2) {\n\t\t\taddJourneyIssue(issues, 'missing_non_empty_states', `${pathLabel}.journey_contract.data_story.non_empty_states`, `${pathLabel}: data_story.non_empty_states must list non-empty dashboard, workflow, or report states.`);\n\t\t}\n\t}\n\tif (asArray(contract.completion_states).length < 2) {\n\t\taddJourneyIssue(issues, 'missing_completion_states', `${pathLabel}.journey_contract.completion_states`, `${pathLabel}: completion_states must define what done looks like to the user.`);\n\t}\n\tconst qaAssertions = asArray(contract.qa_assertions);\n\tif (qaAssertions.length < 5) {\n\t\taddJourneyIssue(issues, 'qa_assertions_too_short', `${pathLabel}.journey_contract.qa_assertions`, `${pathLabel}: qa_assertions must include login, hub action, workflow completion, sample data, and mobile proof.`);\n\t}\n\tlet hasMobileQa = false;\n\tlet hasRecoveryQa = false;\n\tlet hasCompletionQa = false;\n\tlet hasNonEmptyQa = false;\n\tqaAssertions.forEach((assertion: any, index: number) => {\n\t\tconst qaPath = `${pathLabel}.journey_contract.qa_assertions[${index}]`;\n\t\tif (!assertion || typeof assertion !== 'object' || Array.isArray(assertion)) {\n\t\t\taddJourneyIssue(issues, 'invalid_qa_assertion', qaPath, `${pathLabel}: qa_assertions[${index}] must be an object.`);\n\t\t\treturn;\n\t\t}\n\t\tfor (const [fieldName, keys] of [\n\t\t\t['route', ['route', 'screen_route', 'path']],\n\t\t\t['action', ['action', 'browser_steps', 'visible_cta']],\n\t\t\t['expected_dom_or_data_proof', ['expected_dom_or_data_proof', 'proof', 'expected_result']]\n\t\t] as Array<[string, string[]]>) {\n\t\t\tif (cleanField(assertion, keys, 700).length < 3) {\n\t\t\t\taddJourneyIssue(issues, 'incomplete_qa_assertion', `${qaPath}.${fieldName}`, `${pathLabel}: qa_assertions[${index}].${fieldName} must be non-empty.`);\n\t\t\t}\n\t\t}\n\t\tconst route = cleanField(assertion, ['route', 'screen_route', 'path'], 240);\n\t\tif (route && !looksLikeAbsoluteRoute(route)) {\n\t\t\taddJourneyIssue(issues, 'relative_qa_route', `${qaPath}.route`, `${pathLabel}: qa_assertions[${index}].route must be an absolute app route.`);\n\t\t}\n\t\tconst text = [\n\t\t\tconcatFields(assertion, ['id', 'type', 'kind', 'coverage', 'viewport'], 300),\n\t\t\tconcatFields(assertion, ['action', 'browser_steps', 'expected_dom_or_data_proof', 'proof', 'expected_result'], 1000)\n\t\t].join(' ').toLowerCase();\n\t\thasMobileQa = hasMobileQa || /\\b(mobile|390x844|viewport)\\b/.test(text);\n\t\thasRecoveryQa = hasRecoveryQa || /\\b(empty|error|recovery|invalid)\\b/.test(text);\n\t\thasCompletionQa = hasCompletionQa || /\\b(complete|saved|export|report|result|recommendation|calculated|optimized)\\b/.test(text);\n\t\thasNonEmptyQa = hasNonEmptyQa || /\\b(sample|seeded|non[-\\s]?empty|kpi|table|chart|record|row)\\b/.test(text);\n\t});\n\tif (!hasCompletionQa) {\n\t\taddJourneyIssue(issues, 'missing_completion_qa', `${pathLabel}.journey_contract.qa_assertions`, `${pathLabel}: qa_assertions missing business completion proof.`);\n\t}\n\tif (!hasNonEmptyQa) {\n\t\taddJourneyIssue(issues, 'missing_non_empty_qa', `${pathLabel}.journey_contract.qa_assertions`, `${pathLabel}: qa_assertions missing non-empty seeded data proof.`);\n\t}\n\tif (!hasMobileQa) {\n\t\taddJourneyIssue(issues, 'missing_mobile_qa', `${pathLabel}.journey_contract.qa_assertions`, `${pathLabel}: qa_assertions missing mobile viewport proof.`);\n\t}\n\tif (!hasRecoveryQa) {\n\t\taddJourneyIssue(issues, 'missing_recovery_qa', `${pathLabel}.journey_contract.qa_assertions`, `${pathLabel}: qa_assertions missing empty/error recovery proof.`);\n\t}\n\tconst workflowQaRows = buildResolveIOAICoderWorkflowQaRowsFromJourneyContract(contract);\n\treturn {\n\t\tvalid: !issues.some((issue) => issue.severity === 'error'),\n\t\tcontract,\n\t\tissues,\n\t\tworkflowQaRows,\n\t\tprimaryWorkflowId: cleanField(contract, ['primary_workflow_id', 'workflow_id', 'id'], 160) || 'north-star'\n\t};\n}\n\nexport function collectResolveIOAICoderJourneyContractIssues(input: any, options: {\n\tpathLabel?: string;\n\trequireMarkdownEnvelope?: boolean;\n} = {}): string[] {\n\treturn validateResolveIOAICoderJourneyContract(input, options).issues.map((issue) => issue.message);\n}\n\nfunction cleanNumber(value: any): number {\n\tconst parsed = Number(value);\n\treturn Number.isFinite(parsed) && parsed > 0 ? Math.floor(parsed) : 0;\n}\n\nfunction cleanWorkflowQaRows(values: any, limit = 40): ResolveIOAICoderV6WorkflowQaRow[] {\n\tif (!Array.isArray(values)) {\n\t\treturn [];\n\t}\n\tconst rows: ResolveIOAICoderV6WorkflowQaRow[] = [];\n\tfor (const value of values) {\n\t\tif (!value || typeof value !== 'object') {\n\t\t\tcontinue;\n\t\t}\n\t\tconst row: ResolveIOAICoderV6WorkflowQaRow = {\n\t\t\tindex: cleanNumber((value as any).index) || undefined,\n\t\t\tworkflowId: cleanText((value as any).workflowId || (value as any).workflow_id, 160) || undefined,\n\t\t\tstepId: cleanText((value as any).stepId || (value as any).step_id, 160) || undefined,\n\t\t\troute: cleanText((value as any).route, 240) || undefined,\n\t\t\taction: cleanText((value as any).action, 500) || undefined,\n\t\t\tassertion: cleanText((value as any).assertion, 700) || undefined,\n\t\t\texpectedState: cleanText((value as any).expectedState || (value as any).expected_state, 500) || undefined,\n\t\t\texpectedOutput: cleanText((value as any).expectedOutput || (value as any).expected_output, 700) || undefined,\n\t\t\tproofKind: cleanText((value as any).proofKind || (value as any).proof_kind, 120) || undefined,\n\t\t\tacceptanceGate: ((value as any).acceptanceGate || (value as any).acceptance_gate) === 'aiqa_business_assertion'\n\t\t\t\t? 'aiqa_business_assertion'\n\t\t\t\t: undefined,\n\t\t\trequiredArtifacts: cleanList((value as any).requiredArtifacts || (value as any).required_artifacts, 20, 180),\n\t\t\tstateTransition: (value as any).stateTransition || (value as any).state_transition\n\t\t\t\t? {\n\t\t\t\t\tbefore: cleanText(((value as any).stateTransition || (value as any).state_transition).before, 700) || undefined,\n\t\t\t\t\taction: cleanText(((value as any).stateTransition || (value as any).state_transition).action, 700) || undefined,\n\t\t\t\t\tafter: cleanText(((value as any).stateTransition || (value as any).state_transition).after, 700) || undefined,\n\t\t\t\t\tassertion: cleanText(((value as any).stateTransition || (value as any).state_transition).assertion, 700) || undefined\n\t\t\t\t}\n\t\t\t\t: undefined,\n\t\t\tstatus: cleanText((value as any).status, 120) || undefined,\n\t\t\tartifactPaths: cleanList((value as any).artifactPaths || (value as any).artifact_paths, 20, 500)\n\t\t};\n\t\tif (row.workflowId || row.stepId || row.route || row.action || row.assertion) {\n\t\t\trows.push(row);\n\t\t}\n\t\tif (rows.length >= limit) {\n\t\t\tbreak;\n\t\t}\n\t}\n\treturn rows;\n}\n\nfunction statusLooksPassed(value: any): boolean {\n\tconst normalized = cleanText(value, 120).toLowerCase();\n\treturn !!normalized && /\\b(pass|passed|success|succeeded|ok|done|complete|completed|ready|saved|published|deployed)\\b/i.test(normalized);\n}\n\nfunction statusLooksFailed(value: any): boolean {\n\tconst normalized = cleanText(value, 160).toLowerCase();\n\treturn !!normalized && /\\b(fail|failed|error|blocked|missing|empty|stale|skipped|not ready|not_ready|cannot|could not|invalid)\\b/i.test(normalized);\n}\n\nfunction normalizeProofKey(value: any): string {\n\treturn cleanText(value, 500).toLowerCase().replace(/[^a-z0-9]+/g, ' ').replace(/\\s+/g, ' ').trim();\n}\n\nfunction cleanAssertionArtifactPaths(value: Record<string, any>): string[] {\n\treturn cleanList(\n\t\tvalue.artifactPaths\n\t\t\t|| value.artifact_paths\n\t\t\t|| value.artifacts\n\t\t\t|| value.screenshots\n\t\t\t|| (value.screenshot ? [value.screenshot] : []),\n\t\t20,\n\t\t500\n\t);\n}\n\nfunction normalizeWorkflowProofAssertion(value: any): Record<string, any> {\n\tconst source = value && typeof value === 'object' && !Array.isArray(value) ? value : {};\n\treturn {\n\t\tassertion: cleanText(source.assertion || source.name || source.label || source.expected, 1000),\n\t\tstatus: cleanText(source.status || source.outcome || source.result || (source.passed === true ? 'pass' : source.passed === false ? 'fail' : ''), 120),\n\t\tworkflowId: cleanText(source.workflowId || source.workflow_id || source.workflow || source.workflowName || source.workflow_name, 200),\n\t\tstepId: cleanText(source.stepId || source.step_id || source.id || source.key, 200),\n\t\troute: cleanText(source.route || source.path || source.url, 500),\n\t\taction: cleanText(source.action || source.browser_steps || source.action_under_test || source.actionUnderTest, 800),\n\t\texpected: cleanText(source.expected || source.expected_state || source.expectedState || source.expected_business_state_change || source.expectedBusinessStateChange, 1000),\n\t\tobserved: cleanText(source.observed || source.actual || source.after || source.after_state || source.afterState, 1000),\n\t\tdataProof: cleanText(source.dataProof || source.data_proof || source.domProof || source.dom_proof || source.proof || source.summary, 1400),\n\t\tartifactPaths: cleanAssertionArtifactPaths(source),\n\t\tmetadata: source.metadata && typeof source.metadata === 'object' && !Array.isArray(source.metadata) ? source.metadata : {}\n\t};\n}\n\nfunction workflowRowKey(row: ResolveIOAICoderV6WorkflowQaRow, index: number): string {\n\treturn cleanText(row.stepId || row.assertion || row.action || row.route || `workflow-row-${index + 1}`, 200);\n}\n\nfunction sameWorkflowRow(left: ResolveIOAICoderV6WorkflowQaRow, right: ResolveIOAICoderV6WorkflowQaRow): boolean {\n\tconst leftStep = normalizeProofKey(left.stepId);\n\tconst rightStep = normalizeProofKey(right.stepId);\n\tif (leftStep && rightStep && leftStep === rightStep) {\n\t\treturn true;\n\t}\n\tconst leftRoute = normalizeProofKey(left.route);\n\tconst rightRoute = normalizeProofKey(right.route);\n\tconst leftAction = normalizeProofKey(left.action || left.assertion);\n\tconst rightAction = normalizeProofKey(right.action || right.assertion);\n\treturn !!leftRoute && !!rightRoute && leftRoute === rightRoute && !!leftAction && !!rightAction && (leftAction.includes(rightAction) || rightAction.includes(leftAction));\n}\n\nfunction mergeWorkflowQaRows(\n\tcontractRows: ResolveIOAICoderV6WorkflowQaRow[],\n\trecordedRows: ResolveIOAICoderV6WorkflowQaRow[]\n): ResolveIOAICoderV6WorkflowQaRow[] {\n\tif (!contractRows.length) {\n\t\treturn recordedRows;\n\t}\n\treturn contractRows.map((contractRow) => {\n\t\tconst recorded = recordedRows.find((row) => sameWorkflowRow(contractRow, row));\n\t\tif (!recorded) {\n\t\t\treturn contractRow;\n\t\t}\n\t\treturn {\n\t\t\t...contractRow,\n\t\t\t...recorded,\n\t\t\tworkflowId: recorded.workflowId || contractRow.workflowId,\n\t\t\tstepId: recorded.stepId || contractRow.stepId,\n\t\t\troute: recorded.route || contractRow.route,\n\t\t\taction: recorded.action || contractRow.action,\n\t\t\tassertion: recorded.assertion || contractRow.assertion,\n\t\t\texpectedState: recorded.expectedState || contractRow.expectedState,\n\t\t\texpectedOutput: recorded.expectedOutput || contractRow.expectedOutput,\n\t\t\tproofKind: recorded.proofKind || contractRow.proofKind,\n\t\t\tacceptanceGate: recorded.acceptanceGate || contractRow.acceptanceGate,\n\t\t\trequiredArtifacts: Array.from(new Set([\n\t\t\t\t...cleanList(contractRow.requiredArtifacts, 20, 180),\n\t\t\t\t...cleanList(recorded.requiredArtifacts, 20, 180)\n\t\t\t])),\n\t\t\tstateTransition: recorded.stateTransition || contractRow.stateTransition,\n\t\t\tartifactPaths: Array.from(new Set([\n\t\t\t\t...cleanList(contractRow.artifactPaths, 20, 500),\n\t\t\t\t...cleanList(recorded.artifactPaths, 20, 500)\n\t\t\t]))\n\t\t};\n\t});\n}\n\nfunction assertionMatchesWorkflowRow(assertion: Record<string, any>, row: ResolveIOAICoderV6WorkflowQaRow): boolean {\n\tconst metadata = assertion.metadata || {};\n\tif (metadata.workflowQaRowMatched === true || metadata.journeyContractMatched === true || metadata.aicoderWorkflowProof === true) {\n\t\treturn true;\n\t}\n\tconst rowStep = normalizeProofKey(row.stepId);\n\tconst assertionStep = normalizeProofKey(assertion.stepId || metadata.stepId || metadata.step_id);\n\tif (rowStep && assertionStep && rowStep === assertionStep) {\n\t\treturn true;\n\t}\n\tconst rowRoute = normalizeProofKey(row.route);\n\tconst assertionRoute = normalizeProofKey(assertion.route);\n\tconst rowAction = normalizeProofKey(row.action || row.assertion);\n\tconst assertionAction = normalizeProofKey([\n\t\tassertion.action,\n\t\tassertion.assertion,\n\t\tassertion.expected,\n\t\tassertion.observed,\n\t\tassertion.dataProof\n\t].filter(Boolean).join(' '));\n\treturn !!rowRoute\n\t\t&& !!assertionRoute\n\t\t&& rowRoute === assertionRoute\n\t\t&& !!rowAction\n\t\t&& !!assertionAction\n\t\t&& (assertionAction.includes(rowAction) || rowAction.includes(assertionAction));\n}\n\nfunction workflowRowPassingAssertion(row: ResolveIOAICoderV6WorkflowQaRow, assertions: Record<string, any>[]): Record<string, any> | undefined {\n\treturn assertions.find((assertion) => statusLooksPassed(assertion.status) && assertionMatchesWorkflowRow(assertion, row));\n}\n\nfunction workflowAssertionHasOutputProof(assertion: Record<string, any> | undefined): boolean {\n\tif (!assertion) {\n\t\treturn false;\n\t}\n\treturn cleanText(assertion.dataProof, 1000).length >= 8\n\t\t|| cleanText(assertion.observed, 1000).length >= 8\n\t\t|| cleanText(assertion.expected, 1000).length >= 8\n\t\t|| cleanList(assertion.artifactPaths, 20, 500).length > 0;\n}\n\nfunction workflowRowArtifactPaths(row: ResolveIOAICoderV6WorkflowQaRow, assertion?: Record<string, any>): string[] {\n\treturn Array.from(new Set([\n\t\t...cleanList(row.artifactPaths, 20, 500),\n\t\t...cleanList(assertion?.artifactPaths, 20, 500)\n\t]));\n}\n\nfunction workflowRowRequiresOutputProof(row: ResolveIOAICoderV6WorkflowQaRow): boolean {\n\tconst proofKind = cleanText(row.proofKind, 120).toLowerCase();\n\tif (/^(workflow_completion|report_export|non_empty_data|hub_action|business_workflow)$/.test(proofKind)) {\n\t\treturn true;\n\t}\n\tconst text = cleanText([\n\t\trow.expectedOutput,\n\t\trow.expectedState,\n\t\trow.assertion,\n\t\trow.stateTransition?.after,\n\t\trow.stateTransition?.assertion\n\t].filter(Boolean).join(' '), 1600).toLowerCase();\n\treturn /\\b(save|saved|persist|calculated|optimized|recommendation|report|export|result|non[-\\s]?empty|record|row|kpi|table|chart)\\b/.test(text);\n}\n\nfunction workflowRowRequiresMappedBusinessAssertion(row: ResolveIOAICoderV6WorkflowQaRow): boolean {\n\tconst proofKind = cleanText(row.proofKind, 120).toLowerCase();\n\tif (/^(workflow_completion|report_export)$/.test(proofKind)) {\n\t\treturn true;\n\t}\n\tif (/^(mobile|recovery|hub_action|non_empty_data)$/.test(proofKind)) {\n\t\treturn false;\n\t}\n\tconst text = cleanText([\n\t\trow.stepId,\n\t\trow.expectedOutput,\n\t\trow.expectedState,\n\t\trow.assertion,\n\t\trow.stateTransition?.after\n\t].filter(Boolean).join(' '), 1600).toLowerCase();\n\treturn /\\b(workflow[-_\\s]?completion|save|saved|persist|calculated|optimized|recommendation|report|export|final result)\\b/.test(text);\n}\n\nfunction workflowRowWeakProofReason(row: ResolveIOAICoderV6WorkflowQaRow, assertions: Record<string, any>[]): string {\n\tconst assertion = workflowRowPassingAssertion(row, assertions);\n\tconst rowPassed = statusLooksPassed(row.status);\n\tif (!rowPassed && !assertion) {\n\t\treturn '';\n\t}\n\tconst artifactPaths = workflowRowArtifactPaths(row, assertion);\n\tconst requiredArtifacts = cleanList(row.requiredArtifacts, 20, 180);\n\tif (requiredArtifacts.length && !artifactPaths.length) {\n\t\treturn `${workflowRowKey(row, 0)} missing required artifact proof: ${requiredArtifacts.slice(0, 3).join(', ')}`;\n\t}\n\tif (row.acceptanceGate === 'aiqa_business_assertion' && workflowRowRequiresMappedBusinessAssertion(row) && !assertion) {\n\t\treturn `${workflowRowKey(row, 0)} requires mapped AIQaBusinessAssertion proof.`;\n\t}\n\tif (workflowRowRequiresOutputProof(row) && !workflowAssertionHasOutputProof(assertion) && !cleanText(row.expectedOutput || row.expectedState, 700)) {\n\t\treturn `${workflowRowKey(row, 0)} missing saved/calculated/report output proof.`;\n\t}\n\treturn '';\n}\n\nfunction workflowRowHasProof(row: ResolveIOAICoderV6WorkflowQaRow, assertions: Record<string, any>[]): boolean {\n\tif (workflowRowWeakProofReason(row, assertions)) {\n\t\treturn false;\n\t}\n\tif (statusLooksPassed(row.status) && cleanList(row.artifactPaths, 20, 500).length) {\n\t\treturn true;\n\t}\n\treturn !!workflowRowPassingAssertion(row, assertions);\n}\n\nfunction workflowRowFailed(row: ResolveIOAICoderV6WorkflowQaRow, assertions: Record<string, any>[]): boolean {\n\tif (statusLooksFailed(row.status)) {\n\t\treturn true;\n\t}\n\treturn assertions.some((assertion) => statusLooksFailed(assertion.status) && assertionMatchesWorkflowRow(assertion, row));\n}\n\nfunction collectContractArtifactPaths(\n\trows: ResolveIOAICoderV6WorkflowQaRow[],\n\tassertions: Record<string, any>[],\n\textraPaths: any\n): string[] {\n\treturn Array.from(new Set([\n\t\t...cleanList(extraPaths, 40, 500),\n\t\t...rows.flatMap((row) => cleanList(row.artifactPaths, 20, 500)),\n\t\t...assertions.flatMap((assertion) => cleanList(assertion.artifactPaths, 20, 500))\n\t])).slice(0, 80);\n}\n\nfunction stableProofValue(value: any): any {\n\tif (Array.isArray(value)) {\n\t\treturn value.map(stableProofValue);\n\t}\n\tif (value && typeof value === 'object') {\n\t\treturn Object.keys(value)\n\t\t\t.sort()\n\t\t\t.reduce((accumulator, key) => {\n\t\t\t\tconst cleanKey = cleanText(key, 120);\n\t\t\t\tif (!cleanKey || /^(evaluatedAt|recordedAt|createdAt|updatedAt|timestamp|durationMs)$/i.test(cleanKey)) {\n\t\t\t\t\treturn accumulator;\n\t\t\t\t}\n\t\t\t\tconst nextValue = stableProofValue(value[key]);\n\t\t\t\tif (nextValue !== undefined && nextValue !== '' && !(Array.isArray(nextValue) && !nextValue.length)) {\n\t\t\t\t\taccumulator[cleanKey] = nextValue;\n\t\t\t\t}\n\t\t\t\treturn accumulator;\n\t\t\t}, {} as Record<string, any>);\n\t}\n\tif (typeof value === 'number') {\n\t\treturn Number.isFinite(value) ? value : undefined;\n\t}\n\tif (typeof value === 'boolean') {\n\t\treturn value;\n\t}\n\treturn cleanText(value, 2000);\n}\n\nfunction fingerprintResolveIOAICoderWorkflowProofPayload(value: any, prefix: string): string {\n\tconst text = JSON.stringify(stableProofValue(value));\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)}`;\n}\n\nfunction normalizeWorkflowProofFingerprintList(...values: any[]): string[] {\n\tconst fingerprints: string[] = [];\n\tfor (const value of values) {\n\t\tconst list = Array.isArray(value) ? value : value ? [value] : [];\n\t\tfor (const entry of list) {\n\t\t\tconst normalized = cleanText(entry, 200);\n\t\t\tif (normalized && !fingerprints.includes(normalized)) {\n\t\t\t\tfingerprints.push(normalized);\n\t\t\t}\n\t\t}\n\t}\n\treturn fingerprints.slice(0, 40);\n}\n\nexport function evaluateResolveIOAICoderWorkflowProofReadiness(\n\tinput: ResolveIOAICoderWorkflowProofReadinessInput = {}\n): ResolveIOAICoderWorkflowProofReadiness {\n\tconst now = isoNow(input.now);\n\tconst journeyInput = input.journeyContract !== undefined ? input.journeyContract : input.journeyContractMarkdown;\n\tconst hasJourneyInput = journeyInput !== undefined && journeyInput !== null && cleanText(journeyInput, 100).length > 0;\n\tconst journeyValidation = hasJourneyInput\n\t\t? validateResolveIOAICoderJourneyContract(journeyInput, {\n\t\t\trequireMarkdownEnvelope: typeof journeyInput === 'string'\n\t\t})\n\t\t: {\n\t\t\tvalid: false,\n\t\t\tcontract: null,\n\t\t\tissues: [{\n\t\t\t\tcode: 'missing_contract',\n\t\t\t\tpath: 'docs/APP_JOURNEY_CONTRACT.md',\n\t\t\t\tmessage: 'docs/APP_JOURNEY_CONTRACT.md is required before workflow proof can accept the app.',\n\t\t\t\tseverity: 'error' as const\n\t\t\t}],\n\t\t\tworkflowQaRows: [],\n\t\t\tprimaryWorkflowId: ''\n\t\t};\n\tconst recordedRows = cleanWorkflowQaRows(input.workflowQaRows, 120);\n\tconst rows = mergeWorkflowQaRows(journeyValidation.workflowQaRows, recordedRows);\n\tconst assertions = asArray(input.businessAssertions).map(normalizeWorkflowProofAssertion).filter((assertion) => {\n\t\treturn assertion.assertion || assertion.route || assertion.action || assertion.dataProof || assertion.status;\n\t});\n\tconst routeOnly = asArray(input.routeProbes).some((probe) => statusLooksPassed((probe as any)?.status || ((probe as any)?.passed === true ? 'pass' : '')))\n\t\t&& !assertions.some((assertion) => statusLooksPassed(assertion.status));\n\tconst weakProofReasons = rows.map((row) => workflowRowWeakProofReason(row, assertions)).filter(Boolean);\n\tconst failedRows = rows.filter((row) => workflowRowFailed(row, assertions));\n\tconst passedRows = rows.filter((row) => workflowRowHasProof(row, assertions));\n\tconst missingRows = rows.filter((row) => !workflowRowHasProof(row, assertions) && !workflowRowFailed(row, assertions));\n\tconst passedAssertions = assertions.filter((assertion) => statusLooksPassed(assertion.status));\n\tconst releaseBlockers = [\n\t\tstatusLooksFailed(input.deployStatus) ? `deploy=${cleanText(input.deployStatus, 160)}` : '',\n\t\tstatusLooksFailed(input.publishStatus) ? `publish=${cleanText(input.publishStatus, 160)}` : '',\n\t\tstatusLooksFailed(input.sampleDataStatus) ? `sample_data=${cleanText(input.sampleDataStatus, 160)}` : ''\n\t].filter(Boolean);\n\tconst hasDataProof = passedAssertions.some((assertion) => cleanText(assertion.dataProof, 1000).length >= 8);\n\tconst sampleDataReady = statusLooksPassed(input.sampleDataStatus)\n\t\t|| (!statusLooksFailed(input.sampleDataStatus) && hasDataProof);\n\tconst artifactPaths = collectContractArtifactPaths(rows, assertions, input.artifactPaths);\n\tconst workflowProofFingerprint = fingerprintResolveIOAICoderWorkflowProofPayload({\n\t\tprimaryWorkflowId: journeyValidation.primaryWorkflowId || cleanText(recordedRows[0]?.workflowId, 160),\n\t\tpassedWorkflowRows: passedRows.map(workflowRowKey),\n\t\tfailedWorkflowRows: failedRows.map(workflowRowKey),\n\t\tmissingWorkflowRows: missingRows.map(workflowRowKey),\n\t\tpassedBusinessAssertions: passedAssertions.map((assertion) => ({\n\t\t\tassertion: assertion.assertion,\n\t\t\tworkflowId: assertion.workflowId,\n\t\t\tstepId: assertion.stepId,\n\t\t\troute: assertion.route,\n\t\t\taction: assertion.action,\n\t\t\texpected: assertion.expected,\n\t\t\tobserved: assertion.observed,\n\t\t\tdataProof: assertion.dataProof,\n\t\t\tartifactPaths: assertion.artifactPaths\n\t\t})),\n\t\tsampleDataStatus: input.sampleDataStatus,\n\t\tsampleDataReady,\n\t\tartifactPaths\n\t}, 'aicoder-workflow-proof');\n\tconst artifactFingerprint = fingerprintResolveIOAICoderWorkflowProofPayload({\n\t\tartifactPaths,\n\t\tbusinessDataProof: passedAssertions.map((assertion) => ({\n\t\t\tstepId: assertion.stepId,\n\t\t\troute: assertion.route,\n\t\t\tdataProof: assertion.dataProof,\n\t\t\tobserved: assertion.observed,\n\t\t\tartifactPaths: assertion.artifactPaths\n\t\t}))\n\t}, 'aicoder-workflow-artifacts');\n\tconst previousWorkflowFingerprints = normalizeWorkflowProofFingerprintList(\n\t\tinput.previousWorkflowProofFingerprint,\n\t\tinput.previousWorkflowProofFingerprints\n\t);\n\tconst previousArtifactFingerprints = normalizeWorkflowProofFingerprintList(\n\t\tinput.previousArtifactFingerprint,\n\t\tinput.previousArtifactFingerprints\n\t);\n\tlet proofFreshness: ResolveIOAICoderWorkflowProofFreshness = 'unknown';\n\tif (!passedAssertions.length && !artifactPaths.length) {\n\t\tproofFreshness = 'missing';\n\t}\n\telse if (previousWorkflowFingerprints.includes(workflowProofFingerprint)) {\n\t\tproofFreshness = 'same_as_previous';\n\t}\n\telse if (previousArtifactFingerprints.includes(artifactFingerprint)) {\n\t\tproofFreshness = 'stale_artifact';\n\t}\n\telse {\n\t\tproofFreshness = 'fresh';\n\t}\n\tconst blockers: string[] = [];\n\tlet status: ResolveIOAICoderWorkflowProofReadinessStatus = 'ready';\n\tlet reason = 'Journey contract and workflow business proof are ready.';\n\tlet nextAction = 'Proceed to the smallest remaining release gate.';\n\tif (!hasJourneyInput) {\n\t\tstatus = 'missing_journey_contract';\n\t\tblockers.push('Generate and validate docs/APP_JOURNEY_CONTRACT.md before build/acceptance.');\n\t\treason = 'AICoder cannot accept an app without a journey contract.';\n\t\tnextAction = 'Run journey_contract generation and validation first.';\n\t}\n\telse if (!journeyValidation.valid) {\n\t\tstatus = 'journey_invalid';\n\t\tblockers.push(...journeyValidation.issues.filter((issue) => issue.severity === 'error').map((issue) => issue.message).slice(0, 8));\n\t\treason = 'Journey contract validation failed.';\n\t\tnextAction = 'Repair docs/APP_JOURNEY_CONTRACT.md before product-code repair.';\n\t}\n\telse if (routeOnly) {\n\t\tstatus = 'route_only';\n\t\tblockers.push('Route/browser proof passed, but no workflow business assertion passed.');\n\t\treason = 'Route-only proof cannot accept an AICoder app.';\n\t\tnextAction = 'Run workflow QA generated from the journey contract.';\n\t}\n\telse if (!rows.length) {\n\t\tstatus = 'workflow_qa_missing';\n\t\tblockers.push('No workflow QA rows were generated or recorded from the journey contract.');\n\t\treason = 'Workflow QA evidence is missing.';\n\t\tnextAction = 'Generate workflow QA rows from journey_contract.qa_assertions.';\n\t}\n\telse if (weakProofReasons.length) {\n\t\tstatus = 'business_proof_weak';\n\t\tblockers.push(...weakProofReasons.slice(0, 8));\n\t\treason = 'Workflow QA rows passed without the structured artifacts or mapped output proof required by the Journey Contract.';\n\t\tnextAction = 'Rerun the weak workflow QA rows and record AIQaBusinessAssertion plus required artifacts.';\n\t}\n\telse if (failedRows.length || missingRows.length) {\n\t\tstatus = 'workflow_qa_incomplete';\n\t\tblockers.push(\n\t\t\t...failedRows.map((row, index) => `failed:${workflowRowKey(row, index)}`).slice(0, 8),\n\t\t\t...missingRows.map((row, index) => `missing:${workflowRowKey(row, index)}`).slice(0, 8)\n\t\t);\n\t\treason = 'Not all journey contract workflow QA rows have passed business proof.';\n\t\tnextAction = 'Rerun or repair the incomplete workflow QA rows before publish.';\n\t}\n\telse if (!passedAssertions.length) {\n\t\tstatus = input.scorecardPassed === true ? 'business_proof_missing' : 'workflow_qa_incomplete';\n\t\tblockers.push('Workflow rows have no mapped AIQaBusinessAssertion business proof.');\n\t\treason = input.scorecardPassed === true\n\t\t\t? 'Scorecard-only proof is not acceptance.'\n\t\t\t: 'Workflow business proof is missing.';\n\t\tnextAction = 'Record AIQaBusinessAssertion rows tied to the journey contract.';\n\t}\n\telse if (releaseBlockers.length) {\n\t\tstatus = 'release_blocked';\n\t\tblockers.push(...releaseBlockers);\n\t\treason = 'Workflow proof passed, but release/deploy/sample-data gates block acceptance.';\n\t\tnextAction = 'Repair only the failed release gate or hotfix artifact before rerunning publish/deploy.';\n\t}\n\telse if (!sampleDataReady) {\n\t\tstatus = 'sample_data_missing';\n\t\tblockers.push('No non-empty seeded/sample data proof is available for the workflow.');\n\t\treason = 'AICoder app proof must include meaningful non-empty data.';\n\t\tnextAction = 'Seed meaningful records and rerun workflow QA against that data.';\n\t}\n\telse if (proofFreshness === 'same_as_previous' || proofFreshness === 'stale_artifact') {\n\t\tstatus = 'stale_workflow_proof';\n\t\tblockers.push(proofFreshness === 'same_as_previous'\n\t\t\t? 'Workflow business proof fingerprint is unchanged from a prior run.'\n\t\t\t: 'Workflow proof artifacts are unchanged from a prior run.');\n\t\treason = 'AICoder workflow proof is stale; repeated evidence cannot advance acceptance.';\n\t\tnextAction = 'Rerun workflow QA from journey_contract.qa_assertions and record fresh AIQaBusinessAssertion artifacts.';\n\t}\n\treturn {\n\t\tready: status === 'ready',\n\t\tstatus,\n\t\treason,\n\t\tblockers,\n\t\tjourneyContractValid: journeyValidation.valid,\n\t\tprimaryWorkflowId: journeyValidation.primaryWorkflowId || cleanText(recordedRows[0]?.workflowId, 160),\n\t\tpassedWorkflowRows: passedRows.map(workflowRowKey),\n\t\tmissingWorkflowRows: missingRows.map(workflowRowKey),\n\t\tfailedWorkflowRows: failedRows.map(workflowRowKey),\n\t\tpassedBusinessAssertions: passedAssertions.map((assertion) => cleanText(assertion.assertion || assertion.stepId || assertion.route, 300)).filter(Boolean).slice(0, 40),\n\t\trouteOnly,\n\t\tscorecardOnly: input.scorecardPassed === true && !passedAssertions.length,\n\t\tsampleDataReady,\n\t\treleaseBlockers,\n\t\tartifactPaths,\n\t\tworkflowProofFingerprint,\n\t\tartifactFingerprint,\n\t\tproofFreshness,\n\t\tnextAction,\n\t\tevaluatedAt: now\n\t};\n}\n\nexport function fingerprintResolveIOAICoderV6Blocker(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\t\t.replace(/https?:\\/\\/\\S+/g, '<url>');\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 `aicoder-v6-${Math.abs(hash).toString(36)}`;\n}\n\nfunction classifyResolveIOAICoderV6FailureClass(step: {\n\toutcome?: ResolveIOAICoderV6Outcome;\n\tlane?: ResolveIOAICoderV6Lane;\n\tstepType?: ResolveIOAICoderV6StepType;\n\tblocker?: string;\n\tsummary?: string;\n\tfailureClass?: string;\n}): string {\n\tconst explicit = cleanText(step.failureClass, 80).toLowerCase().replace(/[\\s-]+/g, '_');\n\tif (explicit) {\n\t\treturn explicit;\n\t}\n\tif (step.outcome === 'infra_retry') {\n\t\treturn 'infra';\n\t}\n\tconst text = `${step.stepType || ''}\\n${step.lane || ''}\\n${step.blocker || ''}\\n${step.summary || ''}`.toLowerCase();\n\tif (/\\b(puppeteer|chrome|browser executable|mongo|port|startup|settings\\.json|node_modules|npm install|cache|lock)\\b/.test(text)) {\n\t\treturn 'infra';\n\t}\n\tif (/\\b(ts[0-9]{3,5}|typescript|compile|build failed|ng build|cannot find name|module not found|syntax error)\\b/.test(text)\n\t\t|| step.stepType === 'build') {\n\t\treturn 'compile';\n\t}\n\tif (step.stepType === 'journey_contract' || step.stepType === 'journey_validation') {\n\t\treturn 'journey';\n\t}\n\tif (step.stepType === 'workflow_qa' || step.lane === 'qa') {\n\t\treturn 'business';\n\t}\n\tif (step.stepType === 'publish' || step.stepType === 'test_deploy' || step.stepType === 'live_deploy' || step.lane === 'publish') {\n\t\treturn 'release';\n\t}\n\treturn 'product_code';\n}\n\nfunction aicoderWorkflowReadinessNextCommand(status: ResolveIOAICoderWorkflowReadinessStatus): string {\n\tswitch (status) {\n\t\tcase 'journey_contract_required':\n\t\t\treturn 'Generate and validate docs/APP_JOURNEY_CONTRACT.md before product-code build work.';\n\t\tcase 'journey_contract_repair_required':\n\t\t\treturn 'Repair the journey contract until first/next/last workflow QA rows validate.';\n\t\tcase 'workflow_build_ready':\n\t\t\treturn 'Build the north-star workflow from the journey contract and seeded data story.';\n\t\tcase 'workflow_qa_required':\n\t\t\treturn 'Run workflow QA from journey_contract.qa_assertions and record AIQaBusinessAssertion proof.';\n\t\tcase 'workflow_business_proof_ready':\n\t\t\treturn 'Proceed only to release/publish gates; wow UI polish is allowed after business proof.';\n\t\tcase 'release_repair_required':\n\t\t\treturn 'Repair the failed publish/deploy/sample-data gate without rebuilding the app shell.';\n\t\tcase 'infra_repair_only':\n\t\t\treturn 'Repair Puppeteer, Chrome, Mongo, startup, port, cache, or environment evidence only.';\n\t\tcase 'compile_repair_only':\n\t\t\treturn 'Repair compile/build evidence only and rerun the same deterministic build gate.';\n\t\tcase 'collect_new_evidence':\n\t\t\treturn 'Collect new evidence for the stuck blocker before another model/code loop.';\n\t\tcase 'budget_stopped':\n\t\t\treturn 'Stop autonomous spend and request a bounded human decision.';\n\t\tcase 'parked':\n\t\t\treturn 'Park the run until a human chooses the next bounded action.';\n\t\tdefault:\n\t\t\treturn 'Review workflow evidence before continuing.';\n\t}\n}\n\nfunction aicoderWorkflowReadinessGateFor(status: ResolveIOAICoderWorkflowReadinessStatus): ResolveIOAICoderWorkflowReadinessGate {\n\tswitch (status) {\n\t\tcase 'journey_contract_required':\n\t\tcase 'journey_contract_repair_required':\n\t\t\treturn 'journey_contract';\n\t\tcase 'workflow_build_ready':\n\t\t\treturn 'build';\n\t\tcase 'workflow_qa_required':\n\t\tcase 'workflow_business_proof_ready':\n\t\t\treturn 'workflow_qa';\n\t\tcase 'release_repair_required':\n\t\t\treturn 'release';\n\t\tcase 'infra_repair_only':\n\t\t\treturn 'infra';\n\t\tcase 'compile_repair_only':\n\t\t\treturn 'compile';\n\t\tcase 'collect_new_evidence':\n\t\t\treturn 'evidence';\n\t\tcase 'budget_stopped':\n\t\tcase 'parked':\n\t\t\treturn 'manual';\n\t\tdefault:\n\t\t\treturn 'manual';\n\t}\n}\n\nexport function buildResolveIOAICoderWorkflowProofCheckpoint(input: {\n\tstatus: ResolveIOAICoderWorkflowReadinessStatus;\n\tnextGate: ResolveIOAICoderWorkflowReadinessGate;\n\tnextAction?: any;\n\tlast?: Partial<ResolveIOAICoderV6StepRecord>;\n\tjourneyContractReady?: boolean;\n\tbusinessProofReady?: boolean;\n\trouteOnlyBlocked?: boolean;\n\treleaseBlocked?: boolean;\n\tinfraOnly?: boolean;\n\tcompileOnly?: boolean;\n\tsameFailureParked?: boolean;\n\tprimaryWorkflowId?: any;\n\tactiveWorkflowStep?: any;\n\tworkflowQaRows?: any;\n\tbusinessProofArtifacts?: any;\n\tcompletedWorkflowSteps?: any;\n}): ResolveIOAICoderWorkflowProofCheckpoint {\n\tconst status = input.status;\n\tconst nextGate = input.nextGate;\n\tconst proofArtifacts = cleanList(input.businessProofArtifacts, 80, 500);\n\tconst workflowRows = cleanWorkflowQaRows(input.workflowQaRows, 80);\n\tconst completedWorkflowSteps = cleanList(input.completedWorkflowSteps, 80, 240);\n\tconst workflowProofFingerprint = fingerprintResolveIOAICoderWorkflowProofPayload({\n\t\tprimaryWorkflowId: input.primaryWorkflowId,\n\t\tactiveWorkflowStep: input.activeWorkflowStep,\n\t\tworkflowRows: workflowRows.map((row) => ({\n\t\t\tworkflowId: row.workflowId,\n\t\t\tstepId: row.stepId,\n\t\t\tstatus: row.status,\n\t\t\tacceptanceGate: row.acceptanceGate,\n\t\t\tassertion: row.assertion\n\t\t})),\n\t\tcompletedWorkflowSteps,\n\t\tproofArtifacts\n\t}, 'aicoder-workflow-readiness');\n\tconst artifactFingerprint = fingerprintResolveIOAICoderWorkflowProofPayload({\n\t\tproofArtifacts,\n\t\trowArtifacts: workflowRows.flatMap((row) => cleanList(row.artifactPaths, 10, 500))\n\t}, 'aicoder-workflow-artifacts');\n\tconst requiredEvidenceByStatus: Record<ResolveIOAICoderWorkflowReadinessStatus, string[]> = {\n\t\tjourney_contract_required: [\n\t\t\t'docs/APP_JOURNEY_CONTRACT.md with validated journey_contract JSON',\n\t\t\t'first/next/last north_star_workflow steps',\n\t\t\t'workflow QA rows generated from journey_contract.qa_assertions'\n\t\t],\n\t\tjourney_contract_repair_required: [\n\t\t\t'repaired journey contract validation result',\n\t\t\t'command-center hub action mapped to workflow state transition'\n\t\t],\n\t\tworkflow_build_ready: [\n\t\t\t'implemented north-star workflow from the Journey Contract',\n\t\t\t'seeded data story available in the app'\n\t\t],\n\t\tworkflow_qa_required: [\n\t\t\t'AIQaBusinessAssertion for the north-star workflow',\n\t\t\t'non-empty data proof',\n\t\t\t'saved/calculated output proof',\n\t\t\t'report/export proof when promised'\n\t\t],\n\t\tworkflow_business_proof_ready: [\n\t\t\t'deterministic release gate before publish',\n\t\t\t'workflow proof artifact retained for acceptance'\n\t\t],\n\t\trelease_repair_required: [\n\t\t\t'publish/deploy/sample-data failure artifact',\n\t\t\t'hotfix or release-gate evidence before another full deploy'\n\t\t],\n\t\tinfra_repair_only: [\n\t\t\t'Puppeteer/Chrome/Mongo/startup/preflight evidence',\n\t\t\t'infra failure class changed or preflight passed'\n\t\t],\n\t\tcompile_repair_only: [\n\t\t\t'compile/build log evidence',\n\t\t\t'compile failure class changed or build passed'\n\t\t],\n\t\tcollect_new_evidence: [\n\t\t\t'changed blocker fingerprint or evidence hash',\n\t\t\t'fresh workflow QA artifact',\n\t\t\t'AIQaBusinessAssertion or precise workflow blocker artifact'\n\t\t],\n\t\tbudget_stopped: [\n\t\t\t'budget summary',\n\t\t\t'one human decision for next bounded action'\n\t\t],\n\t\tparked: [\n\t\t\t'operator decision',\n\t\t\t'new evidence before retry'\n\t\t]\n\t};\n\tconst waitingStatus: ResolveIOAICoderWorkflowProofCheckpointStatus = status === 'workflow_business_proof_ready'\n\t\t? 'ready_to_continue'\n\t\t: status === 'release_repair_required'\n\t\t\t? 'waiting_for_release_gate'\n\t\t\t: status === 'collect_new_evidence' || input.sameFailureParked === true\n\t\t\t\t? 'waiting_for_new_evidence'\n\t\t\t\t: status === 'infra_repair_only' || status === 'compile_repair_only'\n\t\t\t\t\t? 'waiting_for_infra_or_compile'\n\t\t\t\t\t: status === 'journey_contract_required' || status === 'journey_contract_repair_required'\n\t\t\t\t\t\t? 'waiting_for_journey_contract'\n\t\t\t\t\t\t: 'waiting_for_workflow_proof';\n\tconst blocksProductRepairUntilJourneyContract = input.journeyContractReady !== true\n\t\t|| status === 'journey_contract_required'\n\t\t|| status === 'journey_contract_repair_required';\n\tconst blocksPublishUntilWorkflowProof = input.businessProofReady !== true\n\t\t|| input.routeOnlyBlocked === true\n\t\t|| input.sameFailureParked === true\n\t\t|| blocksProductRepairUntilJourneyContract\n\t\t|| status === 'workflow_qa_required'\n\t\t|| status === 'workflow_build_ready'\n\t\t|| status === 'collect_new_evidence';\n\treturn {\n\t\trequired: true,\n\t\tstatus: waitingStatus,\n\t\treadinessStatus: status,\n\t\tnextGate,\n\t\tstartingFailureClass: cleanText(input.last?.failureClass, 120),\n\t\tstartingBlockerFingerprint: cleanText(input.last?.blockerFingerprint || fingerprintResolveIOAICoderV6Blocker(input.last?.blocker || input.last?.summary || ''), 160),\n\t\tstartingEvidenceHash: cleanText(input.last?.evidenceHash, 160),\n\t\tworkflowProofFingerprint,\n\t\tartifactFingerprint,\n\t\trequiredEvidence: (requiredEvidenceByStatus[status] || []).slice(0, 20),\n\t\trequiredResetEvidence: Array.from(new Set([\n\t\t\t...(requiredEvidenceByStatus[status] || []),\n\t\t\t...(input.sameFailureParked === true ? ['new workflow proof fingerprint', 'new artifact fingerprint'] : []),\n\t\t\t...(input.releaseBlocked === true ? ['changed release gate fingerprint'] : [])\n\t\t])).slice(0, 20),\n\t\tsuccessRequiresWorkflowBusinessProof: status !== 'infra_repair_only' && status !== 'compile_repair_only' && status !== 'budget_stopped',\n\t\tblocksProductRepairUntilJourneyContract,\n\t\tblocksPublishUntilWorkflowProof,\n\t\tblocksPublishUntilReleaseGate: input.releaseBlocked === true || status === 'release_repair_required',\n\t\tblocksWowUiUntilWorkflowProof: blocksPublishUntilWorkflowProof,\n\t\tnextAction: cleanText(input.nextAction, 500) || aicoderWorkflowReadinessNextCommand(status)\n\t};\n}\n\nexport function buildResolveIOAICoderV6WorkflowReadiness(\n\tbundle: ResolveIOAICoderV6StateBundle,\n\tcontext: {\n\t\taction?: ResolveIOAICoderV6ContinuationAction;\n\t\treason?: string;\n\t\tnextLane?: ResolveIOAICoderV6Lane;\n\t\tnextStep?: ResolveIOAICoderV6StepType;\n\t\tbudgetExceeded?: boolean;\n\t\trepeatedNoProgressCount?: number;\n\t} = {}\n): ResolveIOAICoderWorkflowReadiness {\n\tconst history = Array.isArray(bundle.aiCoderV6StepHistory) ? bundle.aiCoderV6StepHistory : [];\n\tconst last = history[history.length - 1];\n\tconst workflowMemory = bundle.aiCoderV6WorkflowMemory || {} as ResolveIOAICoderV6WorkflowMemory;\n\tconst rows = cleanWorkflowQaRows(workflowMemory.workflowQaRows, 80);\n\tconst proofArtifacts = cleanList(workflowMemory.businessProofArtifacts, 80, 500);\n\tconst completedSteps = cleanList(workflowMemory.completedWorkflowSteps, 80, 240);\n\tconst primaryWorkflowId = cleanText(workflowMemory.primaryWorkflowId || rows[0]?.workflowId, 200);\n\tconst activeWorkflowStep = cleanText(workflowMemory.activeWorkflowStep || workflowMemory.blockedWorkflowStep || rows.find((row) => !statusLooksPassed(row.status))?.stepId, 200);\n\tconst failureClass = cleanText(last?.failureClass, 120).toLowerCase();\n\tconst contextReason = cleanText(context.reason, 1000);\n\tconst observedBlocker = cleanText(last?.blocker || last?.summary, 1000);\n\tconst reason = contextReason || observedBlocker;\n\tconst combinedText = `${failureClass}\\n${contextReason}\\n${observedBlocker}\\n${last?.stepType || ''}\\n${last?.lane || ''}`.toLowerCase();\n\tconst compileOnly = failureClass === 'compile'\n\t\t|| /\\b(compile|typescript|ts[0-9]{3,5}|ng build|cannot find name|module not found)\\b/i.test(combinedText);\n\tconst infraOnly = !compileOnly && (failureClass === 'infra'\n\t\t|| /\\b(puppeteer|chrome|browser executable|mongo|port|startup|settings\\.json|node_modules|cache|lock)\\b/i.test(combinedText));\n\tconst releaseBlocked = failureClass === 'release'\n\t\t|| context.nextLane === 'publish'\n\t\t|| /\\b(release|publish|deploy|cloudfront|artifact|sample data|sample_data)\\b/i.test(combinedText);\n\tconst routeOnlyBlocked = /\\b(route only|route-only|route loaded|route_probe|browser route|shell only|shell-only)\\b/i.test(combinedText);\n\tconst sameFailureParked = context.action === 'park'\n\t\t|| context.reason === 'aicoder_v6_repeated_no_progress'\n\t\t|| context.reason === 'aicoder_v6_ping_pong_no_progress';\n\tconst budgetStopped = context.action === 'budget_stop' || context.budgetExceeded === true;\n\tconst workflowQaRowsReady = rows.length > 0;\n\tconst journeyContractReady = !!cleanText(workflowMemory.journeyContractPath, 500)\n\t\t&& (!!primaryWorkflowId || workflowQaRowsReady || completedSteps.length > 0);\n\tconst passedWorkflowRows = rows.filter((row) => statusLooksPassed(row.status));\n\tconst businessProofReady = proofArtifacts.length > 0\n\t\t|| passedWorkflowRows.some((row) => cleanList(row.artifactPaths, 10, 500).length > 0)\n\t\t|| completedSteps.length > 0;\n\tlet status: ResolveIOAICoderWorkflowReadinessStatus = 'workflow_build_ready';\n\tconst blockers: string[] = [];\n\tif (budgetStopped) {\n\t\tstatus = 'budget_stopped';\n\t\tblockers.push('Budget guard stopped autonomous spend.');\n\t}\n\telse if (sameFailureParked) {\n\t\tstatus = 'collect_new_evidence';\n\t\tblockers.push('Same failure class repeated without enough new evidence.');\n\t}\n\telse if (compileOnly && context.action === 'infra_retry') {\n\t\tstatus = 'compile_repair_only';\n\t\tblockers.push('Compile/build gate failed; do not count this as product workflow failure.');\n\t}\n\telse if (infraOnly && context.action === 'infra_retry') {\n\t\tstatus = 'infra_repair_only';\n\t\tblockers.push('Infra gate failed; repair only environment/browser/startup dependencies.');\n\t}\n\telse if (failureClass === 'journey' || context.reason === 'aicoder_v6_journey_contract_repair_required') {\n\t\tstatus = 'journey_contract_repair_required';\n\t\tblockers.push('Journey contract failed validation.');\n\t}\n\telse if (!journeyContractReady) {\n\t\tstatus = 'journey_contract_required';\n\t\tblockers.push('Journey contract workflow memory is not ready.');\n\t}\n\telse if (releaseBlocked || context.reason === 'aicoder_v6_release_repair_required') {\n\t\tstatus = 'release_repair_required';\n\t\tblockers.push('Release/publish/deploy gate blocks acceptance.');\n\t}\n\telse if (!workflowQaRowsReady || !businessProofReady || routeOnlyBlocked) {\n\t\tstatus = 'workflow_qa_required';\n\t\tif (!workflowQaRowsReady) {\n\t\t\tblockers.push('Workflow QA rows are missing.');\n\t\t}\n\t\tif (!businessProofReady) {\n\t\t\tblockers.push('AIQaBusinessAssertion proof is missing.');\n\t\t}\n\t\tif (routeOnlyBlocked) {\n\t\t\tblockers.push('Route/browser proof is not workflow business proof.');\n\t\t}\n\t}\n\telse if (businessProofReady) {\n\t\tstatus = 'workflow_business_proof_ready';\n\t}\n\tconst canRunWorkflowQa = journeyContractReady\n\t\t&& workflowQaRowsReady\n\t\t&& !infraOnly\n\t\t&& !compileOnly\n\t\t&& !sameFailureParked\n\t\t&& !budgetStopped;\n\tconst canPublish = status === 'workflow_business_proof_ready'\n\t\t&& !releaseBlocked\n\t\t&& !infraOnly\n\t\t&& !compileOnly\n\t\t&& !sameFailureParked\n\t\t&& !budgetStopped;\n\tconst canRunProductRepair = journeyContractReady\n\t\t&& !infraOnly\n\t\t&& !compileOnly\n\t\t&& !sameFailureParked\n\t\t&& !budgetStopped\n\t\t&& status !== 'journey_contract_repair_required'\n\t\t&& status !== 'release_repair_required'\n\t\t&& status !== 'workflow_business_proof_ready';\n\tconst nextGate = aicoderWorkflowReadinessGateFor(status);\n\tconst nextCommand = aicoderWorkflowReadinessNextCommand(status);\n\tconst workflowProofCheckpoint = buildResolveIOAICoderWorkflowProofCheckpoint({\n\t\tstatus,\n\t\tnextGate,\n\t\tnextAction: nextCommand,\n\t\tlast,\n\t\tjourneyContractReady,\n\t\tbusinessProofReady,\n\t\trouteOnlyBlocked,\n\t\treleaseBlocked,\n\t\tinfraOnly,\n\t\tcompileOnly,\n\t\tsameFailureParked,\n\t\tprimaryWorkflowId,\n\t\tactiveWorkflowStep,\n\t\tworkflowQaRows: rows,\n\t\tbusinessProofArtifacts: proofArtifacts,\n\t\tcompletedWorkflowSteps: completedSteps\n\t});\n\treturn {\n\t\tstatus,\n\t\tnextGate,\n\t\tnextLane: context.nextLane || last?.lane || bundle.aiCoderV6SupervisorState.activeLane,\n\t\tnextStep: context.nextStep || last?.stepType || bundle.aiCoderV6SupervisorState.activeStep,\n\t\tnextCommand,\n\t\tjourneyContractReady,\n\t\tworkflowQaRowsReady,\n\t\tbusinessProofReady,\n\t\trouteOnlyBlocked,\n\t\treleaseBlocked,\n\t\tinfraOnly,\n\t\tcompileOnly,\n\t\tsameFailureParked,\n\t\tcanRunProductRepair,\n\t\tcanRunWorkflowQa,\n\t\tcanPublish,\n\t\tcanPolishWowUi: canPublish,\n\t\trequiresHumanDecision: budgetStopped || sameFailureParked,\n\t\treason: reason || aicoderWorkflowReadinessNextCommand(status),\n\t\tblockers: blockers.slice(0, 8),\n\t\tprimaryWorkflowId,\n\t\tactiveWorkflowStep,\n\t\tbusinessProofArtifacts: proofArtifacts,\n\t\tworkflowProofCheckpoint\n\t};\n}\n\nexport function buildResolveIOAICoderV6Budget(existing?: Partial<ResolveIOAICoderV6Budget>): ResolveIOAICoderV6Budget {\n\treturn {\n\t\tmaxPromptTokensPerNonInitialStep: Number(existing?.maxPromptTokensPerNonInitialStep || 4000),\n\t\tmaxTotalPromptTokens: Number(existing?.maxTotalPromptTokens || 120000),\n\t\tmaxLoopsPerRun: Number(existing?.maxLoopsPerRun || 24),\n\t\tmaxRepeatedNoProgress: Number(existing?.maxRepeatedNoProgress || 2),\n\t\tmaxRuntimeMinutesPerLane: Number(existing?.maxRuntimeMinutesPerLane || 30),\n\t\tsoftBudgetUsd: Number(existing?.softBudgetUsd || 30),\n\t\thardBudgetUsd: Number(existing?.hardBudgetUsd || 60),\n\t\ttotalPromptTokenEstimate: cleanNumber(existing?.totalPromptTokenEstimate),\n\t\ttotalInputTokens: cleanNumber(existing?.totalInputTokens),\n\t\ttotalCachedInputTokens: cleanNumber(existing?.totalCachedInputTokens),\n\t\ttotalOutputTokens: cleanNumber(existing?.totalOutputTokens),\n\t\ttotalRuntimeMs: cleanNumber(existing?.totalRuntimeMs),\n\t\tloopCount: cleanNumber(existing?.loopCount)\n\t};\n}\n\nexport function initializeResolveIOAICoderV6State(input: ResolveIOAICoderV6InitializeInput): ResolveIOAICoderV6StateBundle {\n\tconst now = isoNow(input.now);\n\tconst existing = input.existing || {};\n\tconst existingSupervisor = existing.aiCoderV6SupervisorState;\n\tconst existingLaneMemory = existing.aiCoderV6LaneMemory || {} as ResolveIOAICoderV6StateBundle['aiCoderV6LaneMemory'];\n\tconst existingWorkflowMemory = existing.aiCoderV6WorkflowMemory || {} as Partial<ResolveIOAICoderV6WorkflowMemory>;\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 runId = cleanText(input.conversationId || input.jobId || input.appId, 120);\n\tconst defaultModel = cleanText(input.defaultModel || 'gpt-5.3-codex', 80);\n\tconst buildLaneMemory = (lane: ResolveIOAICoderV6Lane): ResolveIOAICoderV6LaneMemory => {\n\t\tconst previous = existingLaneMemory[lane] || {} as Partial<ResolveIOAICoderV6LaneMemory>;\n\t\treturn {\n\t\t\tlane,\n\t\t\tmodel: cleanText(previous.model || defaultModel, 80),\n\t\t\tthreadKey: cleanText(input.laneThreadKeys?.[lane] || previous.threadKey || `aicoder:${input.runKind}:${runId}:${lane}`, 240),\n\t\t\tscopeSummary: cleanText(previous.scopeSummary || scope, 1200),\n\t\t\tactiveStep: previous.activeStep || (lane === 'plan' ? 'plan' : lane === 'qa' ? 'qa' : lane === 'review' ? 'review' : lane === 'publish' ? 'publish' : 'task'),\n\t\t\tactiveBlocker: cleanText(previous.activeBlocker, 1200),\n\t\t\tactiveQaRow: previous.activeQaRow,\n\t\t\tchangedFiles: cleanList(previous.changedFiles, 80, 500),\n\t\t\tartifactPaths: cleanList(previous.artifactPaths, 80, 500),\n\t\t\tlatestPromptVersion: cleanText(previous.latestPromptVersion, 120) || undefined,\n\t\t\tlatestPromptTokenEstimate: cleanNumber(previous.latestPromptTokenEstimate) || undefined,\n\t\t\tupdatedAt: previous.updatedAt || now\n\t\t};\n\t};\n\tconst laneMemory = LANES.reduce((accumulator, lane) => {\n\t\taccumulator[lane] = buildLaneMemory(lane);\n\t\treturn accumulator;\n\t}, {} as Record<ResolveIOAICoderV6Lane, ResolveIOAICoderV6LaneMemory>);\n\tconst activeLane = existingSupervisor?.activeLane || (input.runKind === 'initial_builder' ? 'plan' : 'build');\n\treturn {\n\t\taiCoderRunnerVersion: 'v6',\n\t\taiCoderV6SupervisorState: {\n\t\t\tversion: 'v6',\n\t\t\trunKind: input.runKind,\n\t\t\tstatus: existingSupervisor?.status || 'active',\n\t\t\tcurrentGoal: cleanText(existingSupervisor?.currentGoal || `Run AICoder ${input.runKind} ${runId}`, 500),\n\t\t\tapprovedScope: cleanText(existingSupervisor?.approvedScope || scope, 1400),\n\t\t\tbranchName: cleanText(input.branchName || existingSupervisor?.branchName, 240),\n\t\t\tactiveLane,\n\t\t\tactiveStep: existingSupervisor?.activeStep || laneMemory[activeLane].activeStep,\n\t\t\tactiveBlocker: cleanText(existingSupervisor?.activeBlocker, 1200),\n\t\t\tlastGoodCheckpoint: existingSupervisor?.lastGoodCheckpoint || 'v6_initialized',\n\t\t\tlastGoodCommit: cleanText(existingSupervisor?.lastGoodCommit, 240) || undefined,\n\t\t\ttestDeployStatus: cleanText(existingSupervisor?.testDeployStatus, 120) || undefined,\n\t\t\tliveDeployStatus: cleanText(existingSupervisor?.liveDeployStatus, 120) || undefined,\n\t\t\tprocessLease: input.processLease || existingSupervisor?.processLease,\n\t\t\tartifactLinks: cleanList(existingSupervisor?.artifactLinks, 80, 500),\n\t\t\tupdatedAt: now\n\t\t},\n\t\taiCoderV6LaneMemory: laneMemory,\n\t\taiCoderV6WorkflowMemory: {\n\t\t\tjourneyContractPath: cleanText(input.journeyContractPath || existingWorkflowMemory.journeyContractPath || 'docs/APP_JOURNEY_CONTRACT.md', 500),\n\t\t\tprimaryWorkflowId: cleanText(existingWorkflowMemory.primaryWorkflowId, 200),\n\t\t\tactiveWorkflowStep: cleanText(existingWorkflowMemory.activeWorkflowStep, 200),\n\t\t\tworkflowQaRows: cleanWorkflowQaRows(existingWorkflowMemory.workflowQaRows, 80),\n\t\t\tcompletedWorkflowSteps: cleanList(existingWorkflowMemory.completedWorkflowSteps, 80, 240),\n\t\t\tblockedWorkflowStep: cleanText(existingWorkflowMemory.blockedWorkflowStep, 240),\n\t\t\tbusinessProofArtifacts: cleanList(existingWorkflowMemory.businessProofArtifacts, 80, 500),\n\t\t\tupdatedAt: existingWorkflowMemory.updatedAt || now\n\t\t},\n\t\taiCoderV6StepHistory: Array.isArray(existing.aiCoderV6StepHistory)\n\t\t\t? existing.aiCoderV6StepHistory.slice(-100)\n\t\t\t: [],\n\t\taiCoderV6Budget: buildResolveIOAICoderV6Budget(existing.aiCoderV6Budget),\n\t\taiCoderV6RunnerIncidents: Array.isArray(existing.aiCoderV6RunnerIncidents)\n\t\t\t? existing.aiCoderV6RunnerIncidents.slice(-100)\n\t\t\t: [],\n\t\taiCoderV6RecoveryPlan: (existing as any).aiCoderV6RecoveryPlan,\n\t\taiCoderV6RecoveryCheckpoint: (existing as any).aiCoderV6RecoveryCheckpoint,\n\t\taiCoderV6RecoveryEvidenceProbe: (existing as any).aiCoderV6RecoveryEvidenceProbe,\n\t\taiCoderV6RecoveryAction: (existing as any).aiCoderV6RecoveryAction,\n\t\taiCoderV6RecoveryDispatchHistory: Array.isArray((existing as any).aiCoderV6RecoveryDispatchHistory)\n\t\t\t? (existing as any).aiCoderV6RecoveryDispatchHistory.slice(-50)\n\t\t\t: [],\n\t\taiCoderV6RecoveryDirective: (existing as any).aiCoderV6RecoveryDirective\n\t};\n}\n\nexport function recordResolveIOAICoderV6Step(\n\tbundle: ResolveIOAICoderV6StateBundle,\n\tstep: ResolveIOAICoderV6StepInput\n): ResolveIOAICoderV6StateBundle {\n\tconst now = isoNow(step.now);\n\tconst promptTokens = cleanNumber(step.promptTokenEstimate);\n\tconst inputTokens = cleanNumber(step.inputTokens);\n\tconst cachedInputTokens = cleanNumber(step.cachedInputTokens);\n\tconst outputTokens = cleanNumber(step.outputTokens);\n\tconst runtimeMs = cleanNumber(step.runtimeMs);\n\tconst blocker = cleanText(step.blocker, 1200);\n\tconst failureClass = classifyResolveIOAICoderV6FailureClass({\n\t\toutcome: step.outcome,\n\t\tlane: step.lane,\n\t\tstepType: step.stepType,\n\t\tblocker,\n\t\tsummary: step.summary,\n\t\tfailureClass: step.failureClass\n\t});\n\tconst previousWorkflowMemory = bundle.aiCoderV6WorkflowMemory || {} as ResolveIOAICoderV6WorkflowMemory;\n\tconst activeWorkflowStep = cleanText(step.activeWorkflowStep || previousWorkflowMemory.activeWorkflowStep, 200);\n\tconst explicitCompletedSteps = cleanList(step.completedWorkflowSteps, 40, 240);\n\tconst completedWorkflowSteps = Array.from(new Set([\n\t\t...cleanList(previousWorkflowMemory.completedWorkflowSteps, 80, 240),\n\t\t...explicitCompletedSteps,\n\t\t...(step.outcome === 'pass' && activeWorkflowStep ? [activeWorkflowStep] : [])\n\t])).slice(-80);\n\tconst businessProofArtifacts = Array.from(new Set([\n\t\t...cleanList(previousWorkflowMemory.businessProofArtifacts, 80, 500),\n\t\t...cleanList(step.businessProofArtifacts, 40, 500),\n\t\t...(step.stepType === 'workflow_qa' ? cleanList(step.artifactPaths, 40, 500) : [])\n\t])).slice(-80);\n\tconst workflowQaRows = step.workflowQaRows !== undefined\n\t\t? cleanWorkflowQaRows(step.workflowQaRows, 80)\n\t\t: cleanWorkflowQaRows(previousWorkflowMemory.workflowQaRows, 80);\n\tconst blockedWorkflowStep = cleanText(\n\t\tstep.blockedWorkflowStep\n\t\t\t|| ((step.outcome === 'needs_repair' || step.outcome === 'park_manual') ? activeWorkflowStep : '')\n\t\t\t|| previousWorkflowMemory.blockedWorkflowStep,\n\t\t240\n\t);\n\tconst record: ResolveIOAICoderV6StepRecord = {\n\t\tstepType: step.stepType,\n\t\toutcome: step.outcome,\n\t\tlane: step.lane,\n\t\tmodel: cleanText(step.model, 80) || undefined,\n\t\tthreadKey: cleanText(step.threadKey, 240) || undefined,\n\t\tpromptVersion: cleanText(step.promptVersion, 120) || undefined,\n\t\tpromptTokenEstimate: promptTokens || undefined,\n\t\tinputTokens: inputTokens || undefined,\n\t\tcachedInputTokens: cachedInputTokens || undefined,\n\t\toutputTokens: outputTokens || undefined,\n\t\truntimeMs: runtimeMs || undefined,\n\t\tsummary: cleanText(step.summary || blocker || step.outcome, 1200),\n\t\tblocker: blocker || undefined,\n\t\tblockerFingerprint: blocker ? fingerprintResolveIOAICoderV6Blocker(blocker) : undefined,\n\t\tfailureClass,\n\t\tchangedFiles: cleanList(step.changedFiles, 80, 500),\n\t\tartifactPaths: cleanList(step.artifactPaths, 80, 500),\n\t\tnextAction: step.nextAction,\n\t\trecordedAt: now\n\t};\n\trecord.evidenceHash = cleanText(step.evidenceHash, 120)\n\t\t|| hashResolveIOAIManagerEvidence(record);\n\tconst previousRecord = bundle.aiCoderV6StepHistory[bundle.aiCoderV6StepHistory.length - 1];\n\tconst managerDecision = decideResolveIOAIManagerPolicy({\n\t\thistory: [...bundle.aiCoderV6StepHistory, record],\n\t\tcurrent: record,\n\t\tmaxSameFailureRepeats: buildResolveIOAICoderV6Budget(bundle.aiCoderV6Budget).maxRepeatedNoProgress + 1\n\t});\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.aiCoderV6Budget.loopCount + 1;\n\tconst budget = buildResolveIOAICoderV6Budget(bundle.aiCoderV6Budget);\n\tconst shouldParkForRepeatedNoProgress = !managerDecision.loopBudgetShouldReset\n\t\t&& nextLoopCount > budget.maxRepeatedNoProgress\n\t\t&& step.outcome !== 'pass'\n\t\t&& step.outcome !== 'ready_to_publish'\n\t\t&& step.outcome !== 'published';\n\tconst recordedRecoveryPlan = shouldParkForRepeatedNoProgress\n\t\t? buildResolveIOAIManagerRecoveryPlan({\n\t\t\taction: 'park_repeated_failure',\n\t\t\treason: 'aicoder_v6_repeated_no_progress',\n\t\t\tfailureClass: record.failureClass,\n\t\t\tlane: record.lane,\n\t\t\tstepType: record.stepType,\n\t\t\tblocker: record.blocker || record.summary,\n\t\t\tchangedFiles: record.changedFiles,\n\t\t\tartifactPaths: record.artifactPaths,\n\t\t\tmaxSameFailureRepeats: budget.maxRepeatedNoProgress + 1\n\t\t})\n\t\t: managerDecision.recoveryPlan;\n\tconst recordedRecoveryCheckpoint = shouldParkForRepeatedNoProgress\n\t\t? buildResolveIOAIManagerRecoveryCheckpoint({\n\t\t\tplan: recordedRecoveryPlan,\n\t\t\tcurrent: record\n\t\t})\n\t\t: managerDecision.recoveryCheckpoint;\n\tconst recordedRecoveryEvidenceProbe = shouldParkForRepeatedNoProgress\n\t\t? buildResolveIOAIManagerRecoveryEvidenceProbe({\n\t\t\tcheckpoint: recordedRecoveryCheckpoint,\n\t\t\tcurrent: record\n\t\t})\n\t\t: managerDecision.recoveryEvidenceProbe;\n\tconst recordedRecoveryAction = shouldParkForRepeatedNoProgress\n\t\t? buildResolveIOAIManagerRecoveryActionPacket({\n\t\t\tplan: recordedRecoveryPlan,\n\t\t\tcheckpoint: recordedRecoveryCheckpoint,\n\t\t\tprobe: recordedRecoveryEvidenceProbe,\n\t\t\tcurrent: record\n\t\t})\n\t\t: managerDecision.recoveryAction;\n\tconst previousLane = bundle.aiCoderV6LaneMemory[step.lane];\n\tconst laneMemory = {\n\t\t...bundle.aiCoderV6LaneMemory,\n\t\t[step.lane]: {\n\t\t\t...previousLane,\n\t\t\tmodel: record.model || previousLane.model,\n\t\t\tthreadKey: record.threadKey || previousLane.threadKey,\n\t\t\tactiveStep: step.stepType,\n\t\t\tactiveBlocker: record.blocker || previousLane.activeBlocker || '',\n\t\t\tactiveQaRow: step.activeQaRow || previousLane.activeQaRow,\n\t\t\tchangedFiles: record.changedFiles?.length ? record.changedFiles : previousLane.changedFiles,\n\t\t\tartifactPaths: record.artifactPaths?.length ? record.artifactPaths : previousLane.artifactPaths,\n\t\t\tlatestPromptVersion: record.promptVersion || previousLane.latestPromptVersion,\n\t\t\tlatestPromptTokenEstimate: promptTokens || previousLane.latestPromptTokenEstimate,\n\t\t\tupdatedAt: now\n\t\t}\n\t};\n\tconst complete = step.outcome === 'published' || step.outcome === 'ready_to_publish';\n\tconst parked = step.outcome === 'park_manual' || step.outcome === 'budget_stop';\n\treturn {\n\t\t...bundle,\n\t\taiCoderV6SupervisorState: {\n\t\t\t...bundle.aiCoderV6SupervisorState,\n\t\t\tstatus: complete ? 'complete' : (parked ? 'parked' : 'active'),\n\t\t\tactiveLane: step.lane,\n\t\t\tactiveStep: step.stepType,\n\t\t\tactiveBlocker: record.blocker || '',\n\t\t\tlastGoodCheckpoint: step.outcome === 'pass' || complete ? step.stepType : bundle.aiCoderV6SupervisorState.lastGoodCheckpoint,\n\t\t\tartifactLinks: Array.from(new Set([\n\t\t\t\t...bundle.aiCoderV6SupervisorState.artifactLinks,\n\t\t\t\t...(record.artifactPaths || [])\n\t\t\t])).slice(-80),\n\t\t\tupdatedAt: now\n\t\t},\n\t\taiCoderV6LaneMemory: laneMemory,\n\t\taiCoderV6WorkflowMemory: {\n\t\t\tjourneyContractPath: cleanText(previousWorkflowMemory.journeyContractPath || 'docs/APP_JOURNEY_CONTRACT.md', 500),\n\t\t\tprimaryWorkflowId: cleanText(step.primaryWorkflowId || previousWorkflowMemory.primaryWorkflowId, 200),\n\t\t\tactiveWorkflowStep,\n\t\t\tworkflowQaRows,\n\t\t\tcompletedWorkflowSteps,\n\t\t\tblockedWorkflowStep,\n\t\t\tbusinessProofArtifacts,\n\t\t\tupdatedAt: now\n\t\t},\n\t\taiCoderV6StepHistory: [...bundle.aiCoderV6StepHistory, record].slice(-120),\n\t\taiCoderV6Budget: {\n\t\t\t...bundle.aiCoderV6Budget,\n\t\t\ttotalPromptTokenEstimate: bundle.aiCoderV6Budget.totalPromptTokenEstimate + promptTokens,\n\t\t\ttotalInputTokens: bundle.aiCoderV6Budget.totalInputTokens + inputTokens,\n\t\t\ttotalCachedInputTokens: bundle.aiCoderV6Budget.totalCachedInputTokens + cachedInputTokens,\n\t\t\ttotalOutputTokens: bundle.aiCoderV6Budget.totalOutputTokens + outputTokens,\n\t\t\ttotalRuntimeMs: bundle.aiCoderV6Budget.totalRuntimeMs + runtimeMs,\n\t\t\tloopCount: nextLoopCount\n\t\t},\n\t\taiCoderV6RecoveryPlan: recordedRecoveryPlan,\n\t\taiCoderV6RecoveryCheckpoint: recordedRecoveryCheckpoint,\n\t\taiCoderV6RecoveryEvidenceProbe: recordedRecoveryEvidenceProbe,\n\t\taiCoderV6RecoveryAction: recordedRecoveryAction\n\t};\n}\n\nexport function decideResolveIOAICoderV6Continuation(bundle: ResolveIOAICoderV6StateBundle): ResolveIOAICoderV6ContinuationDecision {\n\tconst history = bundle.aiCoderV6StepHistory || [];\n\tconst budget = buildResolveIOAICoderV6Budget(bundle.aiCoderV6Budget);\n\tconst last = history[history.length - 1];\n\tconst lastFingerprint = fingerprintResolveIOAICoderV6Blocker(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_to_publish' || item.outcome === 'published') {\n\t\t\tbreak;\n\t\t}\n\t\tif (item.stepType !== last?.stepType || item.lane !== last?.lane) {\n\t\t\tbreak;\n\t\t}\n\t\tif (fingerprintResolveIOAICoderV6Blocker(item.blocker || item.summary || '') === lastFingerprint) {\n\t\t\trepeatedNoProgressCount += 1;\n\t\t}\n\t}\n\tconst managerDecision = decideResolveIOAIManagerPolicy({\n\t\thistory,\n\t\tcurrent: last,\n\t\tmaxSameFailureRepeats: budget.maxRepeatedNoProgress + 1,\n\t\tmaxPingPongTransitions: 3,\n\t\tinfraFailureClasses: ['infra', 'compile']\n\t});\n\tconst recoveryPlanFor = (\n\t\taction: ResolveIOAICoderV6ContinuationDecision['action'] | 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 || bundle.aiCoderV6SupervisorState.activeLane,\n\t\tstepType: last?.stepType || bundle.aiCoderV6SupervisorState.activeStep,\n\t\tblocker: last?.blocker || last?.summary,\n\t\tchangedFiles: last?.changedFiles,\n\t\tartifactPaths: last?.artifactPaths,\n\t\tmaxSameFailureRepeats: budget.maxRepeatedNoProgress + 1,\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\trecoveryCheckpoint?: ResolveIOAIManagerRecoveryCheckpoint,\n\t\trecoveryEvidenceProbe?: ResolveIOAIManagerRecoveryEvidenceProbe\n\t): Pick<ResolveIOAICoderV6ContinuationDecision, 'recoveryPlan' | 'recoveryCheckpoint' | 'recoveryEvidenceProbe' | 'recoveryAction'> => {\n\t\tconst checkpoint = recoveryCheckpoint || recoveryCheckpointFor(recoveryPlan);\n\t\tconst probe = recoveryEvidenceProbe || buildResolveIOAIManagerRecoveryEvidenceProbe({\n\t\t\tcheckpoint,\n\t\t\tcurrent: last\n\t\t});\n\t\treturn {\n\t\t\trecoveryPlan,\n\t\t\trecoveryCheckpoint: checkpoint,\n\t\t\trecoveryEvidenceProbe: probe,\n\t\t\trecoveryAction: buildResolveIOAIManagerRecoveryActionPacket({\n\t\t\t\tplan: recoveryPlan,\n\t\t\t\tcheckpoint,\n\t\t\t\tprobe,\n\t\t\t\tcurrent: last\n\t\t\t})\n\t\t};\n\t};\n\tconst managerRecoveryFields = () => recoveryFieldsFor(\n\t\tmanagerDecision.recoveryPlan,\n\t\tmanagerDecision.recoveryCheckpoint,\n\t\tmanagerDecision.recoveryEvidenceProbe\n\t);\n\tconst withWorkflowReadiness = (\n\t\tdecision: Omit<ResolveIOAICoderV6ContinuationDecision, 'workflowReadiness' | 'workflowProofCheckpoint'>\n\t): ResolveIOAICoderV6ContinuationDecision => {\n\t\tconst workflowReadiness = buildResolveIOAICoderV6WorkflowReadiness(bundle, {\n\t\t\taction: decision.action,\n\t\t\treason: decision.reason,\n\t\t\tnextLane: decision.nextLane,\n\t\t\tnextStep: decision.nextStep,\n\t\t\tbudgetExceeded: decision.budgetExceeded,\n\t\t\trepeatedNoProgressCount: decision.repeatedNoProgressCount\n\t\t});\n\t\treturn {\n\t\t\t...decision,\n\t\t\tworkflowReadiness,\n\t\t\tworkflowProofCheckpoint: workflowReadiness.workflowProofCheckpoint\n\t\t};\n\t};\n\tconst budgetExceeded = (budget.loopCount >= budget.maxLoopsPerRun && !managerDecision.loopBudgetShouldReset)\n\t\t|| budget.totalPromptTokenEstimate >= budget.maxTotalPromptTokens\n\t\t|| (last?.promptTokenEstimate || 0) > budget.maxPromptTokensPerNonInitialStep * 2;\n\tif (budgetExceeded) {\n\t\tconst recoveryPlan = recoveryPlanFor('budget_stop', 'aicoder_v6_budget_guard', {\n\t\t\tproductRepairFailure: false\n\t\t});\n\t\treturn withWorkflowReadiness({\n\t\t\taction: 'budget_stop',\n\t\t\treason: 'aicoder_v6_budget_guard',\n\t\t\tnextLane: last?.lane || bundle.aiCoderV6SupervisorState.activeLane,\n\t\t\tnextStep: last?.stepType || bundle.aiCoderV6SupervisorState.activeStep,\n\t\t\trepeatedNoProgressCount,\n\t\t\tbudgetExceeded,\n\t\t\t...recoveryFieldsFor(recoveryPlan)\n\t\t});\n\t}\n\tif (managerDecision.action === 'park_ping_pong') {\n\t\treturn withWorkflowReadiness({\n\t\t\taction: 'park',\n\t\t\treason: 'aicoder_v6_ping_pong_no_progress',\n\t\t\tnextLane: last?.lane || bundle.aiCoderV6SupervisorState.activeLane,\n\t\t\tnextStep: last?.stepType || bundle.aiCoderV6SupervisorState.activeStep,\n\t\t\trepeatedNoProgressCount: managerDecision.pingPongCount,\n\t\t\tbudgetExceeded: false,\n\t\t\t...managerRecoveryFields()\n\t\t});\n\t}\n\tif (managerDecision.action === 'park_repeated_failure') {\n\t\treturn withWorkflowReadiness({\n\t\t\taction: 'park',\n\t\t\treason: 'aicoder_v6_repeated_no_progress',\n\t\t\tnextLane: last?.lane || bundle.aiCoderV6SupervisorState.activeLane,\n\t\t\tnextStep: last?.stepType || bundle.aiCoderV6SupervisorState.activeStep,\n\t\t\trepeatedNoProgressCount: managerDecision.sameFailureCount,\n\t\t\tbudgetExceeded: false,\n\t\t\t...managerRecoveryFields()\n\t\t});\n\t}\n\tif (repeatedNoProgressCount > budget.maxRepeatedNoProgress) {\n\t\tconst recoveryPlan = recoveryPlanFor('park', 'aicoder_v6_repeated_no_progress', {\n\t\t\taction: 'park_repeated_failure',\n\t\t\tproductRepairFailure: !/^(?:infra|compile|release)$/i.test(String(last?.failureClass || ''))\n\t\t});\n\t\treturn withWorkflowReadiness({\n\t\t\taction: 'park',\n\t\t\treason: 'aicoder_v6_repeated_no_progress',\n\t\t\tnextLane: last?.lane || bundle.aiCoderV6SupervisorState.activeLane,\n\t\t\tnextStep: last?.stepType || bundle.aiCoderV6SupervisorState.activeStep,\n\t\t\trepeatedNoProgressCount,\n\t\t\tbudgetExceeded: false,\n\t\t\t...recoveryFieldsFor(recoveryPlan)\n\t\t});\n\t}\n\tif (managerDecision.action === 'retry_infra') {\n\t\tconst compileRepair = managerDecision.recoveryPlan.recoveryClass === 'compile_repair'\n\t\t\t|| managerDecision.failureClass === 'compile'\n\t\t\t|| last?.failureClass === 'compile';\n\t\treturn withWorkflowReadiness({\n\t\t\taction: 'infra_retry',\n\t\t\treason: compileRepair ? 'aicoder_v6_compile_repair_required' : 'aicoder_v6_infra_retry',\n\t\t\tnextLane: last?.lane || bundle.aiCoderV6SupervisorState.activeLane,\n\t\t\tnextStep: last?.stepType || bundle.aiCoderV6SupervisorState.activeStep,\n\t\t\trepeatedNoProgressCount,\n\t\t\tbudgetExceeded: false,\n\t\t\t...managerRecoveryFields()\n\t\t});\n\t}\n\tif (last?.outcome === 'needs_repair') {\n\t\tif (last.failureClass === 'journey') {\n\t\t\treturn withWorkflowReadiness({\n\t\t\t\taction: 'retry_same_step',\n\t\t\t\treason: 'aicoder_v6_journey_contract_repair_required',\n\t\t\t\tnextLane: 'plan',\n\t\t\t\tnextStep: last.stepType === 'journey_validation' ? 'journey_contract' : last.stepType,\n\t\t\t\trepeatedNoProgressCount,\n\t\t\t\tbudgetExceeded: false,\n\t\t\t\t...managerRecoveryFields()\n\t\t\t});\n\t\t}\n\t\tif (last.failureClass === 'release') {\n\t\t\treturn withWorkflowReadiness({\n\t\t\t\taction: 'retry_same_step',\n\t\t\t\treason: 'aicoder_v6_release_repair_required',\n\t\t\t\tnextLane: 'publish',\n\t\t\t\tnextStep: last.stepType,\n\t\t\t\trepeatedNoProgressCount,\n\t\t\t\tbudgetExceeded: false,\n\t\t\t\t...managerRecoveryFields()\n\t\t\t});\n\t\t}\n\t\treturn withWorkflowReadiness({\n\t\t\taction: last.lane === 'repair' ? 'retry_same_step' : 'switch_to_repair',\n\t\t\treason: 'aicoder_v6_repair_required',\n\t\t\tnextLane: 'repair',\n\t\t\tnextStep: 'repair',\n\t\t\trepeatedNoProgressCount,\n\t\t\tbudgetExceeded: false,\n\t\t\t...managerRecoveryFields()\n\t\t});\n\t}\n\tif (last?.outcome === 'infra_retry') {\n\t\tconst recoveryPlan = recoveryPlanFor('infra_retry', 'aicoder_v6_infra_retry', {\n\t\t\tfailureClass: 'infra',\n\t\t\tproductRepairFailure: false\n\t\t});\n\t\treturn withWorkflowReadiness({\n\t\t\taction: 'infra_retry',\n\t\t\treason: 'aicoder_v6_infra_retry',\n\t\t\tnextLane: last.lane,\n\t\t\tnextStep: last.stepType,\n\t\t\trepeatedNoProgressCount,\n\t\t\tbudgetExceeded: false,\n\t\t\t...recoveryFieldsFor(recoveryPlan)\n\t\t});\n\t}\n\tif (last?.outcome === 'ready_to_publish') {\n\t\tconst recoveryPlan = recoveryPlanFor('ready_to_publish', 'aicoder_v6_ready_to_publish', {\n\t\t\tfailureClass: 'release',\n\t\t\tproductRepairFailure: false\n\t\t});\n\t\treturn withWorkflowReadiness({\n\t\t\taction: 'ready_to_publish',\n\t\t\treason: 'aicoder_v6_ready_to_publish',\n\t\t\tnextLane: 'publish',\n\t\t\tnextStep: 'publish',\n\t\t\trepeatedNoProgressCount,\n\t\t\tbudgetExceeded: false,\n\t\t\t...recoveryFieldsFor(recoveryPlan)\n\t\t});\n\t}\n\tconst recoveryPlan = managerDecision.recoveryPlan || recoveryPlanFor('continue', 'aicoder_v6_continue');\n\tconst fallbackCheckpoint = managerDecision.recoveryCheckpoint || recoveryCheckpointFor(recoveryPlan);\n\treturn withWorkflowReadiness({\n\t\taction: 'continue',\n\t\treason: 'aicoder_v6_continue',\n\t\tnextLane: last?.lane || bundle.aiCoderV6SupervisorState.activeLane,\n\t\tnextStep: last?.stepType || bundle.aiCoderV6SupervisorState.activeStep,\n\t\trepeatedNoProgressCount,\n\t\tbudgetExceeded: false,\n\t\t...recoveryFieldsFor(recoveryPlan, fallbackCheckpoint, managerDecision.recoveryEvidenceProbe)\n\t});\n}\n\nexport function buildResolveIOAICoderV6DiagnoseFirstPrompt(lines: {\n\tgoal?: string;\n\tapprovedScope?: string[];\n\tactiveLane?: ResolveIOAICoderV6Lane;\n\tactiveStep?: ResolveIOAICoderV6StepType;\n\tactiveBlocker?: string;\n\tlaneSummary?: string;\n\tcurrentQaRow?: ResolveIOAICoderV6LaneMemory['activeQaRow'];\n\tjourneyContractPath?: string;\n\tactiveWorkflowStep?: string;\n\tartifactPaths?: string[];\n\tchangedFiles?: string[];\n}): string[] {\n\treturn [\n\t\t'AICoder Runner V6 contract: use compact lane memory, diagnose first, then make the smallest proven next move.',\n\t\t'Start with Diagnose First: observed evidence, likely cause, smallest next action, and expected proof.',\n\t\t'Use current artifacts, changed files, and lane memory before asking for broad context.',\n\t\t'Do not spawn duplicate build, QA, browser, server, Mongo, or Codex processes.',\n\t\t'If repairing, inspect logs/artifacts/source/diff first; retest the failed check before advancing.',\n\t\t'If the same blocker repeats without new proof, park with the exact blocker instead of burning more tokens.',\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.activeLane ? `Active lane: ${lines.activeLane}` : '',\n\t\tlines.activeStep ? `Active step: ${lines.activeStep}` : '',\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\tlines.journeyContractPath ? `Journey contract: ${cleanText(lines.journeyContractPath, 240)}` : '',\n\t\tlines.activeWorkflowStep ? `Active workflow step: ${cleanText(lines.activeWorkflowStep, 240)}` : '',\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 buildResolveIOAICoderV6Incident(input: {\n\tincidentClass: string;\n\tsummary: string;\n\tstepType?: ResolveIOAICoderV6StepType;\n\tlane?: ResolveIOAICoderV6Lane;\n\tblocker?: string;\n\tartifactPaths?: string[];\n\tnow?: Date | string;\n}): ResolveIOAICoderV6RunnerIncident {\n\treturn {\n\t\tincidentClass: cleanText(input.incidentClass, 120) || 'aicoder_v6_runner_incident',\n\t\tsummary: cleanText(input.summary, 1200),\n\t\tstepType: input.stepType,\n\t\tlane: input.lane,\n\t\tblockerFingerprint: input.blocker ? fingerprintResolveIOAICoderV6Blocker(input.blocker) : undefined,\n\t\tartifactPaths: cleanList(input.artifactPaths, 40, 500),\n\t\trecordedAt: isoNow(input.now)\n\t};\n}\n"]}