@resolveio/server-lib 22.3.181 → 22.3.182
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
|
@@ -198,6 +198,10 @@ export interface ResolveIOSupportCustomerReplyPolicyInput {
|
|
|
198
198
|
previousArtifactFingerprint?: string;
|
|
199
199
|
unresolvedBlockers?: any[];
|
|
200
200
|
releaseStatus?: string;
|
|
201
|
+
releaseEvidence?: any;
|
|
202
|
+
hotfixEvidence?: any;
|
|
203
|
+
releasePolicy?: ResolveIOAIManagerHotfixFirstReleasePolicy;
|
|
204
|
+
releaseGatePassed?: boolean;
|
|
201
205
|
}
|
|
202
206
|
export interface ResolveIOSupportCustomerReplyPolicy {
|
|
203
207
|
action: ResolveIOSupportCustomerReplyAction;
|
|
@@ -1001,6 +1001,146 @@ function normalizeSupportConfidenceLevel(value) {
|
|
|
1001
1001
|
function supportReleaseLooksBlocked(value) {
|
|
1002
1002
|
return /\b(fail|failed|error|blocked|missing|empty|stale|denied|timeout)\b/i.test(cleanText(value, 200));
|
|
1003
1003
|
}
|
|
1004
|
+
function supportStatusLooksPassed(value) {
|
|
1005
|
+
return /\b(pass|passed|success|succeeded|complete|completed|ready|not_required|not required)\b/i.test(cleanText(value, 200));
|
|
1006
|
+
}
|
|
1007
|
+
function nestedObject(source) {
|
|
1008
|
+
var e_5, _a;
|
|
1009
|
+
var keys = [];
|
|
1010
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
|
1011
|
+
keys[_i - 1] = arguments[_i];
|
|
1012
|
+
}
|
|
1013
|
+
try {
|
|
1014
|
+
for (var keys_1 = __values(keys), keys_1_1 = keys_1.next(); !keys_1_1.done; keys_1_1 = keys_1.next()) {
|
|
1015
|
+
var key = keys_1_1.value;
|
|
1016
|
+
var value = cleanObject(source[key]);
|
|
1017
|
+
if (Object.keys(value).length) {
|
|
1018
|
+
return value;
|
|
1019
|
+
}
|
|
1020
|
+
}
|
|
1021
|
+
}
|
|
1022
|
+
catch (e_5_1) { e_5 = { error: e_5_1 }; }
|
|
1023
|
+
finally {
|
|
1024
|
+
try {
|
|
1025
|
+
if (keys_1_1 && !keys_1_1.done && (_a = keys_1.return)) _a.call(keys_1);
|
|
1026
|
+
}
|
|
1027
|
+
finally { if (e_5) throw e_5.error; }
|
|
1028
|
+
}
|
|
1029
|
+
return {};
|
|
1030
|
+
}
|
|
1031
|
+
function resolveSupportReplyReleaseGate(input) {
|
|
1032
|
+
var e_6, _a;
|
|
1033
|
+
var _b;
|
|
1034
|
+
var releaseEvidence = cleanObject(input.releaseEvidence);
|
|
1035
|
+
var releaseStatus = cleanText(input.releaseStatus
|
|
1036
|
+
|| releaseEvidence.status
|
|
1037
|
+
|| releaseEvidence.releaseStatus
|
|
1038
|
+
|| releaseEvidence.release_status
|
|
1039
|
+
|| nestedObject(releaseEvidence, 'deploy_production', 'production').status
|
|
1040
|
+
|| nestedObject(releaseEvidence, 'deploy_dev', 'dev').status
|
|
1041
|
+
|| nestedObject(releaseEvidence, 'push_master', 'pushMaster').status, 200);
|
|
1042
|
+
var hotfixEvidenceContainer = nestedObject(releaseEvidence, 'hotfix_evidence', 'hotfixEvidence');
|
|
1043
|
+
var currentHotfixEvidence = nestedObject(hotfixEvidenceContainer, 'current');
|
|
1044
|
+
var hotfixEvidence = cleanObject(input.hotfixEvidence
|
|
1045
|
+
|| hotfixEvidenceContainer.normalized
|
|
1046
|
+
|| hotfixEvidenceContainer.evidence
|
|
1047
|
+
|| currentHotfixEvidence.evidence
|
|
1048
|
+
|| currentHotfixEvidence.normalized
|
|
1049
|
+
|| hotfixEvidenceContainer.current_evidence
|
|
1050
|
+
|| hotfixEvidenceContainer.currentEvidence);
|
|
1051
|
+
var hotfixCommitProof = nestedObject(releaseEvidence, 'hotfix_commit_proof', 'hotfixCommitProof');
|
|
1052
|
+
var hotfixDurabilityContract = nestedObject(releaseEvidence, 'hotfix_durability_contract', 'hotfixDurabilityContract');
|
|
1053
|
+
var hotfixCommitGuard = cleanObject(hotfixCommitProof.github_commit_guard
|
|
1054
|
+
|| hotfixCommitProof.githubCommitGuard
|
|
1055
|
+
|| hotfixDurabilityContract.hotfix_commit_guard
|
|
1056
|
+
|| hotfixDurabilityContract.hotfixCommitGuard
|
|
1057
|
+
|| hotfixEvidenceContainer.github_commit_guard
|
|
1058
|
+
|| hotfixEvidenceContainer.githubCommitGuard);
|
|
1059
|
+
var hotfixEvidenceStatus = cleanText(hotfixEvidenceContainer.status || currentHotfixEvidence.status || hotfixEvidence.status, 120);
|
|
1060
|
+
var releaseGateStatus = cleanText(hotfixEvidence.releaseGateStatus
|
|
1061
|
+
|| hotfixEvidence.release_gate_status
|
|
1062
|
+
|| hotfixEvidenceContainer.release_gate_status
|
|
1063
|
+
|| hotfixEvidenceContainer.releaseGateStatus
|
|
1064
|
+
|| releaseEvidence.releaseGateStatus
|
|
1065
|
+
|| releaseEvidence.release_gate_status, 160);
|
|
1066
|
+
var releaseGatePassed = input.releaseGatePassed === true
|
|
1067
|
+
|| supportStatusLooksPassed(releaseGateStatus);
|
|
1068
|
+
var missingCommitProofFields = Array.from(new Set(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], __read(cleanList(hotfixCommitProof.missing_fields || hotfixCommitProof.missingFields, 12, 160)), false), __read(cleanList(hotfixEvidenceContainer.missing_fields || hotfixEvidenceContainer.missingFields, 12, 160)), false), __read(cleanList(hotfixDurabilityContract.missing_commit_proof_fields || hotfixDurabilityContract.missingCommitProofFields, 12, 160)), false), __read(cleanList(hotfixCommitGuard.missing_fields || hotfixCommitGuard.missingFields, 12, 160)), false).filter(Boolean)));
|
|
1069
|
+
var commitProofRequired = hotfixCommitProof.required === true
|
|
1070
|
+
|| hotfixEvidenceContainer.github_commit_required === true
|
|
1071
|
+
|| hotfixEvidenceContainer.githubCommitRequired === true
|
|
1072
|
+
|| hotfixCommitGuard.required === true
|
|
1073
|
+
|| hotfixDurabilityContract.required === true;
|
|
1074
|
+
var commitProofPassed = hotfixCommitProof.passed === true
|
|
1075
|
+
|| hotfixEvidenceContainer.github_commit_proof_passed === true
|
|
1076
|
+
|| hotfixEvidenceContainer.githubCommitProofPassed === true
|
|
1077
|
+
|| hotfixCommitGuard.passed === true;
|
|
1078
|
+
var commitProofBlocked = hotfixCommitProof.blocked === true
|
|
1079
|
+
|| hotfixEvidenceContainer.manager_must_commit_before_hotfix === true
|
|
1080
|
+
|| hotfixEvidenceContainer.managerMustCommitBeforeHotfix === true
|
|
1081
|
+
|| hotfixDurabilityContract.live_hotfix_blocked_until_commit === true
|
|
1082
|
+
|| hotfixDurabilityContract.liveHotfixBlockedUntilCommit === true
|
|
1083
|
+
|| hotfixCommitGuard.manager_must_commit_before_hotfix === true
|
|
1084
|
+
|| hotfixCommitGuard.managerMustCommitBeforeHotfix === true
|
|
1085
|
+
|| (commitProofRequired && !commitProofPassed)
|
|
1086
|
+
|| missingCommitProofFields.length > 0;
|
|
1087
|
+
var statusBlocked = supportReleaseLooksBlocked(releaseStatus)
|
|
1088
|
+
|| supportReleaseLooksBlocked(hotfixEvidenceStatus)
|
|
1089
|
+
|| supportReleaseLooksBlocked(releaseGateStatus);
|
|
1090
|
+
var blockers = [];
|
|
1091
|
+
if (statusBlocked) {
|
|
1092
|
+
blockers.push("release_status=".concat(releaseStatus || hotfixEvidenceStatus || releaseGateStatus || 'blocked'));
|
|
1093
|
+
}
|
|
1094
|
+
if (commitProofBlocked) {
|
|
1095
|
+
blockers.push('hotfix_commit_proof_missing_or_blocked');
|
|
1096
|
+
}
|
|
1097
|
+
try {
|
|
1098
|
+
for (var missingCommitProofFields_1 = __values(missingCommitProofFields), missingCommitProofFields_1_1 = missingCommitProofFields_1.next(); !missingCommitProofFields_1_1.done; missingCommitProofFields_1_1 = missingCommitProofFields_1.next()) {
|
|
1099
|
+
var field = missingCommitProofFields_1_1.value;
|
|
1100
|
+
blockers.push("missing_".concat(field));
|
|
1101
|
+
}
|
|
1102
|
+
}
|
|
1103
|
+
catch (e_6_1) { e_6 = { error: e_6_1 }; }
|
|
1104
|
+
finally {
|
|
1105
|
+
try {
|
|
1106
|
+
if (missingCommitProofFields_1_1 && !missingCommitProofFields_1_1.done && (_a = missingCommitProofFields_1.return)) _a.call(missingCommitProofFields_1);
|
|
1107
|
+
}
|
|
1108
|
+
finally { if (e_6) throw e_6.error; }
|
|
1109
|
+
}
|
|
1110
|
+
var shouldEvaluateHotfix = statusBlocked || commitProofRequired || Object.keys(hotfixEvidence).length > 0;
|
|
1111
|
+
var hotfixContinuation = shouldEvaluateHotfix
|
|
1112
|
+
? (0, ai_runner_manager_policy_1.decideResolveIOAIManagerHotfixContinuation)({
|
|
1113
|
+
evidence: hotfixEvidence,
|
|
1114
|
+
policy: input.releasePolicy,
|
|
1115
|
+
releaseGatePassed: releaseGatePassed,
|
|
1116
|
+
failureClass: 'release',
|
|
1117
|
+
blocker: blockers.join('; ') || releaseStatus || hotfixEvidenceStatus || releaseGateStatus,
|
|
1118
|
+
now: undefined
|
|
1119
|
+
})
|
|
1120
|
+
: undefined;
|
|
1121
|
+
if (hotfixContinuation && hotfixContinuation.action !== 'continue_runner' && (statusBlocked || commitProofBlocked || hotfixContinuation.action === 'record_hotfix_evidence' || hotfixContinuation.action === 'rerun_release_gate')) {
|
|
1122
|
+
blockers.push("hotfix_next_action=".concat(hotfixContinuation.action));
|
|
1123
|
+
}
|
|
1124
|
+
var uniqueBlockers = Array.from(new Set(blockers.filter(Boolean)));
|
|
1125
|
+
return {
|
|
1126
|
+
blocked: uniqueBlockers.length > 0,
|
|
1127
|
+
reason: uniqueBlockers.length
|
|
1128
|
+
? 'support_reply_release_or_hotfix_evidence_blocked'
|
|
1129
|
+
: 'support_reply_release_or_hotfix_evidence_clear',
|
|
1130
|
+
status: releaseStatus || hotfixEvidenceStatus || releaseGateStatus || '',
|
|
1131
|
+
blockers: uniqueBlockers,
|
|
1132
|
+
requiredEvidence: [
|
|
1133
|
+
'release status passed or explicitly not required',
|
|
1134
|
+
'hotfix commit proof clear when hotfix evidence is required',
|
|
1135
|
+
'sourceCommitSha, githubCommitUrl, gitCommitStatus=passed, gitPushStatus=passed when backend hotfix was used',
|
|
1136
|
+
'release gate passed when hotfix evidence requires gate rerun'
|
|
1137
|
+
],
|
|
1138
|
+
nextCommands: ((_b = hotfixContinuation === null || hotfixContinuation === void 0 ? void 0 : hotfixContinuation.nextCommands) === null || _b === void 0 ? void 0 : _b.length)
|
|
1139
|
+
? hotfixContinuation.nextCommands
|
|
1140
|
+
: ['record_hotfix_evidence', 'commit_and_push_hotfix_to_github', 'rerun_release_gate_once'],
|
|
1141
|
+
hotfixContinuation: hotfixContinuation
|
|
1142
|
+
};
|
|
1143
|
+
}
|
|
1004
1144
|
function supportBusinessAssertionPassed(value) {
|
|
1005
1145
|
return /^(pass|passed|accepted|business_assertion_passed)$/i.test(cleanText(value, 80));
|
|
1006
1146
|
}
|
|
@@ -1011,7 +1151,7 @@ function supportBusinessAssertionRouteOnly(value) {
|
|
|
1011
1151
|
return /^(route_probe_pass|route_only_pass|route_pass|route_probe|route_loaded)$/i.test(cleanText(value, 80));
|
|
1012
1152
|
}
|
|
1013
1153
|
function normalizeSupportBusinessProofAssertions(input) {
|
|
1014
|
-
var
|
|
1154
|
+
var e_7, _a;
|
|
1015
1155
|
var gate = normalizeResolveIOSupportDiagnosisGate(input.diagnosisGate);
|
|
1016
1156
|
var proofPlan = gate === null || gate === void 0 ? void 0 : gate.proof_plan;
|
|
1017
1157
|
var proofContract = proofPlan === null || proofPlan === void 0 ? void 0 : proofPlan.business_proof_contract;
|
|
@@ -1045,12 +1185,12 @@ function normalizeSupportBusinessProofAssertions(input) {
|
|
|
1045
1185
|
});
|
|
1046
1186
|
}
|
|
1047
1187
|
}
|
|
1048
|
-
catch (
|
|
1188
|
+
catch (e_7_1) { e_7 = { error: e_7_1 }; }
|
|
1049
1189
|
finally {
|
|
1050
1190
|
try {
|
|
1051
1191
|
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
1052
1192
|
}
|
|
1053
|
-
finally { if (
|
|
1193
|
+
finally { if (e_7) throw e_7.error; }
|
|
1054
1194
|
}
|
|
1055
1195
|
var status = cleanText(input.businessAssertionStatus || input.outcomeLabel, 80);
|
|
1056
1196
|
if (!assertions.length && (supportBusinessAssertionPassed(status) || supportBusinessAssertionRouteOnly(status) || supportBusinessAssertionFailed(status))) {
|
|
@@ -1089,7 +1229,7 @@ function supportBusinessProofAssertionText(assertion) {
|
|
|
1089
1229
|
].filter(Boolean).join(' '), 4000);
|
|
1090
1230
|
}
|
|
1091
1231
|
function supportBusinessProofAssertionMatchesContract(assertion, gate) {
|
|
1092
|
-
var
|
|
1232
|
+
var e_8, _a;
|
|
1093
1233
|
if (!gate) {
|
|
1094
1234
|
return false;
|
|
1095
1235
|
}
|
|
@@ -1129,12 +1269,12 @@ function supportBusinessProofAssertionMatchesContract(assertion, gate) {
|
|
|
1129
1269
|
}
|
|
1130
1270
|
}
|
|
1131
1271
|
}
|
|
1132
|
-
catch (
|
|
1272
|
+
catch (e_8_1) { e_8 = { error: e_8_1 }; }
|
|
1133
1273
|
finally {
|
|
1134
1274
|
try {
|
|
1135
1275
|
if (proofWords_1_1 && !proofWords_1_1.done && (_a = proofWords_1.return)) _a.call(proofWords_1);
|
|
1136
1276
|
}
|
|
1137
|
-
finally { if (
|
|
1277
|
+
finally { if (e_8) throw e_8.error; }
|
|
1138
1278
|
}
|
|
1139
1279
|
return overlap >= Math.min(5, Math.max(3, Math.ceil(proofWords.size * 0.45)));
|
|
1140
1280
|
}
|
|
@@ -1364,7 +1504,7 @@ function decideResolveIOSupportCustomerReplyPolicy(input) {
|
|
|
1364
1504
|
});
|
|
1365
1505
|
var artifactCount = businessProofReadiness.artifactPaths.length;
|
|
1366
1506
|
var unresolvedBlockers = cleanList(input.unresolvedBlockers, 20, 500);
|
|
1367
|
-
var
|
|
1507
|
+
var releaseGate = resolveSupportReplyReleaseGate(input);
|
|
1368
1508
|
var requiredEvidence = [
|
|
1369
1509
|
'valid SupportDiagnosisGate',
|
|
1370
1510
|
'validated IssueClassProbePlan',
|
|
@@ -1505,7 +1645,8 @@ function decideResolveIOSupportCustomerReplyPolicy(input) {
|
|
|
1505
1645
|
})
|
|
1506
1646
|
};
|
|
1507
1647
|
}
|
|
1508
|
-
if (
|
|
1648
|
+
if (releaseGate.blocked) {
|
|
1649
|
+
var releaseRequiredEvidence = Array.from(new Set(__spreadArray(__spreadArray([], __read(requiredEvidence), false), __read(releaseGate.requiredEvidence), false)));
|
|
1509
1650
|
return {
|
|
1510
1651
|
action: 'hold_internal',
|
|
1511
1652
|
canDraftCustomerReply: false,
|
|
@@ -1513,7 +1654,7 @@ function decideResolveIOSupportCustomerReplyPolicy(input) {
|
|
|
1513
1654
|
confidenceLevel: confidenceLevel,
|
|
1514
1655
|
safety: 'internal_hold',
|
|
1515
1656
|
reason: 'support_reply_blocked_until_release_or_hotfix_gate_finishes',
|
|
1516
|
-
requiredEvidence:
|
|
1657
|
+
requiredEvidence: releaseRequiredEvidence,
|
|
1517
1658
|
humanReviewPacket: buildResolveIOSupportHumanReviewPacket({
|
|
1518
1659
|
reviewType: 'release_hotfix',
|
|
1519
1660
|
title: 'Finish Release Or Hotfix Gate',
|
|
@@ -1521,9 +1662,9 @@ function decideResolveIOSupportCustomerReplyPolicy(input) {
|
|
|
1521
1662
|
primaryAction: 'repair_release_hotfix_first',
|
|
1522
1663
|
safety: 'internal_hold',
|
|
1523
1664
|
reason: 'support_reply_blocked_until_release_or_hotfix_gate_finishes',
|
|
1524
|
-
blockers:
|
|
1525
|
-
requiredEvidence:
|
|
1526
|
-
nextCommands:
|
|
1665
|
+
blockers: releaseGate.blockers,
|
|
1666
|
+
requiredEvidence: releaseRequiredEvidence,
|
|
1667
|
+
nextCommands: releaseGate.nextCommands,
|
|
1527
1668
|
forbiddenActions: ['Do not tell the customer the fix is live before release evidence passes.'],
|
|
1528
1669
|
costRisk: 'release_or_customer_send'
|
|
1529
1670
|
})
|
|
@@ -2424,7 +2565,7 @@ function buildResolveIOSupportV5ScopeDigest(input) {
|
|
|
2424
2565
|
return raw.slice(0, maxChars);
|
|
2425
2566
|
}
|
|
2426
2567
|
function buildResolveIOSupportV5MicrotaskLedger(input) {
|
|
2427
|
-
var
|
|
2568
|
+
var e_9, _a;
|
|
2428
2569
|
var existing = Array.isArray(input.existing) ? input.existing : [];
|
|
2429
2570
|
var completedByObjective = new Map();
|
|
2430
2571
|
try {
|
|
@@ -2435,12 +2576,12 @@ function buildResolveIOSupportV5MicrotaskLedger(input) {
|
|
|
2435
2576
|
}
|
|
2436
2577
|
}
|
|
2437
2578
|
}
|
|
2438
|
-
catch (
|
|
2579
|
+
catch (e_9_1) { e_9 = { error: e_9_1 }; }
|
|
2439
2580
|
finally {
|
|
2440
2581
|
try {
|
|
2441
2582
|
if (existing_1_1 && !existing_1_1.done && (_a = existing_1.return)) _a.call(existing_1);
|
|
2442
2583
|
}
|
|
2443
|
-
finally { if (
|
|
2584
|
+
finally { if (e_9) throw e_9.error; }
|
|
2444
2585
|
}
|
|
2445
2586
|
var now = isoNow(input.now);
|
|
2446
2587
|
var requirements = cleanList(input.requirements, 30, 240);
|
|
@@ -2819,7 +2960,7 @@ function decideResolveIOSupportV5Continuation(bundle) {
|
|
|
2819
2960
|
return __assign({ action: 'continue', reason: 'support_v5_continue', nextStep: (last === null || last === void 0 ? void 0 : last.stepType) || bundle.supportV5SupervisorState.activeStep, repeatedNoProgressCount: repeatedNoProgressCount, budgetExceeded: false }, recoveryFieldsFor(recoveryPlan));
|
|
2820
2961
|
}
|
|
2821
2962
|
function decideResolveIOSupportV5AutonomousNextAction(input) {
|
|
2822
|
-
var _a, _b, _c, _d, _e;
|
|
2963
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
2823
2964
|
var bundle = input.bundle;
|
|
2824
2965
|
var activeMicrotask = selectResolveIOSupportV5ActiveMicrotask(bundle.supportV5MicrotaskLedger || [], bundle.supportV5ActiveMicrotaskId);
|
|
2825
2966
|
var diagnosisValidation = validateResolveIOSupportDiagnosisGate(bundle.supportV5DiagnosisGate, {
|
|
@@ -2851,7 +2992,10 @@ function decideResolveIOSupportV5AutonomousNextAction(input) {
|
|
|
2851
2992
|
previousProofFingerprint: input.previousProofFingerprint,
|
|
2852
2993
|
previousArtifactFingerprint: input.previousArtifactFingerprint,
|
|
2853
2994
|
unresolvedBlockers: input.unresolvedBlockers,
|
|
2854
|
-
releaseStatus: input.releaseStatus
|
|
2995
|
+
releaseStatus: input.releaseStatus,
|
|
2996
|
+
hotfixEvidence: input.hotfixEvidence,
|
|
2997
|
+
releasePolicy: input.releasePolicy,
|
|
2998
|
+
releaseGatePassed: input.releaseGatePassed
|
|
2855
2999
|
});
|
|
2856
3000
|
var businessProofReadiness = evaluateResolveIOSupportBusinessProofReadiness({
|
|
2857
3001
|
diagnosisGate: bundle.supportV5DiagnosisGate,
|
|
@@ -3376,6 +3520,24 @@ function decideResolveIOSupportV5AutonomousNextAction(input) {
|
|
|
3376
3520
|
hotfixContinuation: hotfixContinuation
|
|
3377
3521
|
});
|
|
3378
3522
|
}
|
|
3523
|
+
if (customerReplyPolicy.action === 'hold_internal' && customerReplyPolicy.reason === 'support_reply_blocked_until_release_or_hotfix_gate_finishes') {
|
|
3524
|
+
return makeDecision('repair_release_hotfix_first', 'Hotfix Release', 'support_v5_reply_blocked_by_hotfix_evidence', {
|
|
3525
|
+
canRunAutonomously: true,
|
|
3526
|
+
canRunModel: false,
|
|
3527
|
+
canEditProductCode: false,
|
|
3528
|
+
canPrepareHotfixPatch: true,
|
|
3529
|
+
canHotfixBackend: false,
|
|
3530
|
+
liveHotfixBlockedUntilCommit: true,
|
|
3531
|
+
lane: 'release',
|
|
3532
|
+
stepType: 'release_gate',
|
|
3533
|
+
primaryCommand: ((_f = customerReplyPolicy.humanReviewPacket) === null || _f === void 0 ? void 0 : _f.primaryAction) || 'repair_release_hotfix_first',
|
|
3534
|
+
nextCommands: ((_g = customerReplyPolicy.humanReviewPacket) === null || _g === void 0 ? void 0 : _g.nextCommands) || ['record_hotfix_evidence', 'commit_and_push_hotfix_to_github', 'rerun_release_gate_once'],
|
|
3535
|
+
requiredEvidence: customerReplyPolicy.requiredEvidence,
|
|
3536
|
+
blockers: ((_h = customerReplyPolicy.humanReviewPacket) === null || _h === void 0 ? void 0 : _h.blockers) || ['Release or hotfix evidence is incomplete.'],
|
|
3537
|
+
forbiddenActions: ['Do not draft a customer resolution until hotfix commit proof and release evidence are complete.'],
|
|
3538
|
+
humanReviewPacket: customerReplyPolicy.humanReviewPacket
|
|
3539
|
+
});
|
|
3540
|
+
}
|
|
3379
3541
|
if ((activeMicrotask === null || activeMicrotask === void 0 ? void 0 : activeMicrotask.lane) === 'qa' || /^(qa_row|qa_retest|business_proof|route_probe|issue_class_probe)$/.test(activeStepType)) {
|
|
3380
3542
|
return makeDecision('run_business_proof_qa', 'Run Business Proof QA', 'support_v5_business_assertion_required', {
|
|
3381
3543
|
canRunAutonomously: true,
|
|
@@ -3694,7 +3856,7 @@ function buildResolveIOSupportV5MicrotaskPrompt(input) {
|
|
|
3694
3856
|
};
|
|
3695
3857
|
}
|
|
3696
3858
|
function summarizeResolveIOSupportV5MicrotaskUsage(bundle) {
|
|
3697
|
-
var
|
|
3859
|
+
var e_10, _a, e_11, _b;
|
|
3698
3860
|
var byMicrotask = new Map();
|
|
3699
3861
|
var bySection = new Map();
|
|
3700
3862
|
var totalPromptTokenEstimate = 0;
|
|
@@ -3709,17 +3871,17 @@ function summarizeResolveIOSupportV5MicrotaskUsage(bundle) {
|
|
|
3709
3871
|
existing.calls += 1;
|
|
3710
3872
|
byMicrotask.set(usage.microtaskId, existing);
|
|
3711
3873
|
try {
|
|
3712
|
-
for (var _e = (
|
|
3874
|
+
for (var _e = (e_11 = void 0, __values(usage.promptSections || [])), _f = _e.next(); !_f.done; _f = _e.next()) {
|
|
3713
3875
|
var section = _f.value;
|
|
3714
3876
|
bySection.set(section.name, (bySection.get(section.name) || 0) + section.tokenEstimate);
|
|
3715
3877
|
}
|
|
3716
3878
|
}
|
|
3717
|
-
catch (
|
|
3879
|
+
catch (e_11_1) { e_11 = { error: e_11_1 }; }
|
|
3718
3880
|
finally {
|
|
3719
3881
|
try {
|
|
3720
3882
|
if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
|
|
3721
3883
|
}
|
|
3722
|
-
finally { if (
|
|
3884
|
+
finally { if (e_11) throw e_11.error; }
|
|
3723
3885
|
}
|
|
3724
3886
|
var hardCap = usage.lane === 'qa' ? promptBudget.qaMicrotaskHardCap : promptBudget.buildMicrotaskHardCap;
|
|
3725
3887
|
if ((usage.promptTokenEstimate || 0) > hardCap) {
|
|
@@ -3727,12 +3889,12 @@ function summarizeResolveIOSupportV5MicrotaskUsage(bundle) {
|
|
|
3727
3889
|
}
|
|
3728
3890
|
}
|
|
3729
3891
|
}
|
|
3730
|
-
catch (
|
|
3892
|
+
catch (e_10_1) { e_10 = { error: e_10_1 }; }
|
|
3731
3893
|
finally {
|
|
3732
3894
|
try {
|
|
3733
3895
|
if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
|
|
3734
3896
|
}
|
|
3735
|
-
finally { if (
|
|
3897
|
+
finally { if (e_10) throw e_10.error; }
|
|
3736
3898
|
}
|
|
3737
3899
|
return {
|
|
3738
3900
|
totalPromptTokenEstimate: totalPromptTokenEstimate,
|