@resolveio/server-lib 22.3.205 → 22.3.207
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/methods/ai-terminal.d.ts +25 -0
- package/methods/ai-terminal.js +4226 -1358
- package/methods/ai-terminal.js.map +1 -1
- package/package.json +1 -1
- package/util/ai-run-evidence-adapters.js +55 -20
- package/util/ai-run-evidence-adapters.js.map +1 -1
- package/util/ai-runner-qa-auth.js +18 -1
- package/util/ai-runner-qa-auth.js.map +1 -1
- package/util/ai-runner-qa-tools.js +479 -17
- package/util/ai-runner-qa-tools.js.map +1 -1
- package/util/support-runner-v5.js +16 -5
- package/util/support-runner-v5.js.map +1 -1
package/package.json
CHANGED
|
@@ -79,6 +79,12 @@ function cleanStringList(value, limit, max) {
|
|
|
79
79
|
function plainObject(value) {
|
|
80
80
|
return value && typeof value === 'object' && !Array.isArray(value) ? value : {};
|
|
81
81
|
}
|
|
82
|
+
function objectList(value) {
|
|
83
|
+
if (Array.isArray(value)) {
|
|
84
|
+
return value.filter(function (entry) { return entry && typeof entry === 'object' && !Array.isArray(entry); });
|
|
85
|
+
}
|
|
86
|
+
return value && typeof value === 'object' && !Array.isArray(value) ? [value] : [];
|
|
87
|
+
}
|
|
82
88
|
function firstText(source, fields, max) {
|
|
83
89
|
var e_1, _a;
|
|
84
90
|
if (max === void 0) { max = 1000; }
|
|
@@ -1276,7 +1282,7 @@ function collectRouteProbes(evidence) {
|
|
|
1276
1282
|
function collectBusinessAssertions(evidence) {
|
|
1277
1283
|
var e_25, _a;
|
|
1278
1284
|
var assertions = [];
|
|
1279
|
-
var rows = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], __read(asArray(evidence === null || evidence === void 0 ? void 0 : evidence.businessAssertions)), false), __read(asArray(evidence === null || evidence === void 0 ? void 0 : evidence.business_assertions)), false), __read(asArray(evidence === null || evidence === void 0 ? void 0 : evidence.workflowAssertions)), false), __read(asArray(evidence === null || evidence === void 0 ? void 0 : evidence.workflow_assertions)), false), __read(asArray(evidence === null || evidence === void 0 ? void 0 : evidence.assertions)), false), __read(asArray(evidence === null || evidence === void 0 ? void 0 : evidence.qaRows)), false), __read(asArray(evidence === null || evidence === void 0 ? void 0 : evidence.qa_rows)), false), __read(asArray(evidence === null || evidence === void 0 ? void 0 : evidence.rows)), false), __read(asArray(evidence === null || evidence === void 0 ? void 0 : evidence.supportQaAssertions)), false), __read(asArray(evidence === null || evidence === void 0 ? void 0 : evidence.support_qa_assertions)), false), __read(asArray(evidence === null || evidence === void 0 ? void 0 : evidence.aiQaBusinessAssertions)), false), __read(asArray(evidence === null || evidence === void 0 ? void 0 : evidence.ai_qa_business_assertions)), false);
|
|
1285
|
+
var rows = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], __read(asArray(evidence === null || evidence === void 0 ? void 0 : evidence.businessAssertions)), false), __read(asArray(evidence === null || evidence === void 0 ? void 0 : evidence.business_assertions)), false), __read(asArray(evidence === null || evidence === void 0 ? void 0 : evidence.workflowAssertions)), false), __read(asArray(evidence === null || evidence === void 0 ? void 0 : evidence.workflow_assertions)), false), __read(asArray(evidence === null || evidence === void 0 ? void 0 : evidence.assertions)), false), __read(asArray(evidence === null || evidence === void 0 ? void 0 : evidence.qaRows)), false), __read(asArray(evidence === null || evidence === void 0 ? void 0 : evidence.qa_rows)), false), __read(asArray(evidence === null || evidence === void 0 ? void 0 : evidence.rows)), false), __read(asArray(evidence === null || evidence === void 0 ? void 0 : evidence.supportQaAssertions)), false), __read(asArray(evidence === null || evidence === void 0 ? void 0 : evidence.support_qa_assertions)), false), __read(asArray(evidence === null || evidence === void 0 ? void 0 : evidence.aiQaBusinessAssertions)), false), __read(asArray(evidence === null || evidence === void 0 ? void 0 : evidence.ai_qa_business_assertions)), false), __read(objectList(evidence === null || evidence === void 0 ? void 0 : evidence.supportQaBusinessAssertion)), false), __read(objectList(evidence === null || evidence === void 0 ? void 0 : evidence.support_qa_business_assertion)), false), __read(objectList(evidence === null || evidence === void 0 ? void 0 : evidence.aiQaBusinessAssertion)), false), __read(objectList(evidence === null || evidence === void 0 ? void 0 : evidence.aiqaBusinessAssertion)), false), __read(objectList(evidence === null || evidence === void 0 ? void 0 : evidence.ai_qa_business_assertion)), false), __read(objectList(evidence === null || evidence === void 0 ? void 0 : evidence.aiqa_business_assertion)), false);
|
|
1280
1286
|
try {
|
|
1281
1287
|
for (var rows_2 = __values(rows), rows_2_1 = rows_2.next(); !rows_2_1.done; rows_2_1 = rows_2.next()) {
|
|
1282
1288
|
var entry = rows_2_1.value;
|
|
@@ -1764,17 +1770,25 @@ function mergeEvidenceRecords() {
|
|
|
1764
1770
|
return merged;
|
|
1765
1771
|
}
|
|
1766
1772
|
function buildSupportQaEvidence(input) {
|
|
1773
|
+
var _a, _b, _c, _d;
|
|
1767
1774
|
var job = input.job || {};
|
|
1768
1775
|
var ticket = input.ticket || {};
|
|
1776
|
+
var inputQaEvidence = plainObject(input.qaEvidence);
|
|
1769
1777
|
var qaCursor = plainObject(job.supportQaValidationCursor || job.support_qa_validation_cursor);
|
|
1770
1778
|
var autonomousDecision = plainObject(job.supportV5AutonomousDecision || job.support_v5_autonomous_decision);
|
|
1771
1779
|
var ticketAutomation = plainObject(ticket.automation);
|
|
1772
1780
|
var ticketManager = plainObject(ticketAutomation.manager || ticket.manager);
|
|
1773
1781
|
var preflightGate = supportPreflightGateObject(ticket, job, __assign(__assign({}, plainObject(input.qaEvidence)), { supportV5AutonomousDecision: autonomousDecision }));
|
|
1774
|
-
var businessProofReadiness = plainObject(
|
|
1775
|
-
||
|
|
1782
|
+
var businessProofReadiness = plainObject(inputQaEvidence.businessProofReadiness
|
|
1783
|
+
|| inputQaEvidence.business_proof_readiness
|
|
1784
|
+
|| ((_a = inputQaEvidence.supportV5AutonomousDecision) === null || _a === void 0 ? void 0 : _a.businessProofReadiness)
|
|
1785
|
+
|| ((_b = inputQaEvidence.supportV5AutonomousDecision) === null || _b === void 0 ? void 0 : _b.business_proof_readiness)
|
|
1786
|
+
|| ((_c = inputQaEvidence.support_v5_autonomous_decision) === null || _c === void 0 ? void 0 : _c.businessProofReadiness)
|
|
1787
|
+
|| ((_d = inputQaEvidence.support_v5_autonomous_decision) === null || _d === void 0 ? void 0 : _d.business_proof_readiness)
|
|
1776
1788
|
|| job.businessProofReadiness
|
|
1777
|
-
|| job.business_proof_readiness
|
|
1789
|
+
|| job.business_proof_readiness
|
|
1790
|
+
|| autonomousDecision.businessProofReadiness
|
|
1791
|
+
|| autonomousDecision.business_proof_readiness);
|
|
1778
1792
|
var customerReplyPolicy = plainObject(autonomousDecision.customerReplyPolicy
|
|
1779
1793
|
|| autonomousDecision.customer_reply_policy
|
|
1780
1794
|
|| job.customerReplyPolicy
|
|
@@ -1799,9 +1813,9 @@ function buildSupportQaEvidence(input) {
|
|
|
1799
1813
|
|| customerReplyPolicy.human_review_packet
|
|
1800
1814
|
|| job.humanReviewPacket
|
|
1801
1815
|
|| job.human_review_packet);
|
|
1802
|
-
var evidence = mergeEvidenceRecords(qaCursor, job.qaEvidence, job.qa_evidence, ticket.qaEvidence, ticket.qa_evidence,
|
|
1816
|
+
var evidence = mergeEvidenceRecords(qaCursor, job.qaEvidence, job.qa_evidence, ticket.qaEvidence, ticket.qa_evidence, inputQaEvidence);
|
|
1803
1817
|
evidence.supportQaAssertions = __spreadArray(__spreadArray(__spreadArray([], __read(asArray(job.supportQaAssertions)), false), __read(asArray(job.support_qa_assertions)), false), __read(asArray(evidence.supportQaAssertions)), false);
|
|
1804
|
-
evidence.aiQaBusinessAssertions = __spreadArray(__spreadArray(__spreadArray([], __read(asArray(job.aiQaBusinessAssertions)), false), __read(asArray(job.ai_qa_business_assertions)), false), __read(asArray(evidence.aiQaBusinessAssertions)), false);
|
|
1818
|
+
evidence.aiQaBusinessAssertions = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], __read(asArray(job.aiQaBusinessAssertions)), false), __read(asArray(job.ai_qa_business_assertions)), false), __read(objectList(job.aiQaBusinessAssertion)), false), __read(objectList(job.aiqaBusinessAssertion)), false), __read(objectList(job.ai_qa_business_assertion)), false), __read(objectList(job.aiqa_business_assertion)), false), __read(objectList(job.supportQaBusinessAssertion)), false), __read(objectList(job.support_qa_business_assertion)), false), __read(asArray(evidence.aiQaBusinessAssertions)), false);
|
|
1805
1819
|
evidence.runnerEvidenceArtifacts = __spreadArray(__spreadArray(__spreadArray([], __read(asArray(job.runnerEvidenceArtifacts)), false), __read(asArray(job.runner_evidence_artifacts)), false), __read(asArray(evidence.runnerEvidenceArtifacts)), false);
|
|
1806
1820
|
evidence.supportQaArtifacts = __spreadArray(__spreadArray(__spreadArray(__spreadArray([], __read(asArray(job.supportQaArtifacts)), false), __read(asArray(job.support_qa_artifacts)), false), __read(asArray(job.qa_artifacts)), false), __read(asArray(evidence.supportQaArtifacts)), false);
|
|
1807
1821
|
if (Object.keys(businessProofReadiness).length) {
|
|
@@ -2201,12 +2215,7 @@ function supportProofBackedCustomerReplySendGate(sendContract, sendGuard, now) {
|
|
|
2201
2215
|
};
|
|
2202
2216
|
}
|
|
2203
2217
|
function supportAutonomyDecisionObject(ticket, job, evidence) {
|
|
2204
|
-
return
|
|
2205
|
-
|| job.support_v5_autonomous_decision
|
|
2206
|
-
|| evidence.supportV5AutonomousDecision
|
|
2207
|
-
|| evidence.support_v5_autonomous_decision
|
|
2208
|
-
|| ticket.supportV5AutonomousDecision
|
|
2209
|
-
|| ticket.support_v5_autonomous_decision);
|
|
2218
|
+
return mergeEvidenceRecords(ticket.supportV5AutonomousDecision, ticket.support_v5_autonomous_decision, job.supportV5AutonomousDecision, job.support_v5_autonomous_decision, evidence.supportV5AutonomousDecision, evidence.support_v5_autonomous_decision);
|
|
2210
2219
|
}
|
|
2211
2220
|
function supportAutonomyApprovalObject(ticket, job, evidence) {
|
|
2212
2221
|
var ticketAutomation = plainObject(ticket.automation);
|
|
@@ -2419,14 +2428,18 @@ function supportAutonomyApprovalGate(approval, now) {
|
|
|
2419
2428
|
|| computedOwnerFilesRemoved.length > 0;
|
|
2420
2429
|
var scopeFingerprint = cleanText(approval.scope_fingerprint || approval.scopeFingerprint, 180);
|
|
2421
2430
|
var previousScopeFingerprint = cleanText(approval.previous_scope_fingerprint || approval.previousScopeFingerprint, 180);
|
|
2422
|
-
var scopeChangedSinceApproval = approval.scope_changed_since_approval === true
|
|
2423
|
-
|| approval.scopeChangedSinceApproval === true
|
|
2424
|
-
|| (!!scopeFingerprint && !!previousScopeFingerprint && scopeFingerprint !== previousScopeFingerprint);
|
|
2425
2431
|
var diagnosisScopeFingerprint = cleanText(approval.diagnosis_scope_fingerprint || approval.diagnosisScopeFingerprint, 180);
|
|
2426
2432
|
var previousDiagnosisScopeFingerprint = cleanText(approval.previous_diagnosis_scope_fingerprint || approval.previousDiagnosisScopeFingerprint, 180);
|
|
2427
2433
|
var diagnosisScopeChangedSinceApproval = approval.diagnosis_scope_changed_since_approval === true
|
|
2428
2434
|
|| approval.diagnosisScopeChangedSinceApproval === true
|
|
2429
2435
|
|| (!!diagnosisScopeFingerprint && !!previousDiagnosisScopeFingerprint && diagnosisScopeFingerprint !== previousDiagnosisScopeFingerprint);
|
|
2436
|
+
var aggregateScopeFingerprintChanged = approval.scope_changed_since_approval === true
|
|
2437
|
+
|| approval.scopeChangedSinceApproval === true
|
|
2438
|
+
|| (!!scopeFingerprint && !!previousScopeFingerprint && scopeFingerprint !== previousScopeFingerprint);
|
|
2439
|
+
var explicitScopeReapprovalRequired = approval.requires_scope_reapproval === true || approval.requiresScopeReapproval === true;
|
|
2440
|
+
var intakeChangedSinceApproval = approval.intake_edited_after_approval === true || approval.intakeEditedAfterApproval === true;
|
|
2441
|
+
var scopeChangedSinceApproval = explicitScopeReapprovalRequired
|
|
2442
|
+
|| (aggregateScopeFingerprintChanged && (ownerFilesChangedSinceApproval || diagnosisScopeChangedSinceApproval || intakeChangedSinceApproval));
|
|
2430
2443
|
var boundedAutopilotApproval = approval.after_approval_autopilot_until_a_grade === true
|
|
2431
2444
|
|| approval.afterApprovalAutopilotUntilAGrade === true
|
|
2432
2445
|
|| approval.autopilot_after_approval_until_a_grade === true
|
|
@@ -2438,7 +2451,7 @@ function supportAutonomyApprovalGate(approval, now) {
|
|
|
2438
2451
|
if (approval.requires_over_limit_approval === true || approval.requiresOverLimitApproval === true) {
|
|
2439
2452
|
blockers.push('Estimated work is over the automatic hour ceiling and requires operator approval.');
|
|
2440
2453
|
}
|
|
2441
|
-
if (
|
|
2454
|
+
if (explicitScopeReapprovalRequired || scopeChangedSinceApproval) {
|
|
2442
2455
|
blockers.push('The approved support scope changed and requires on-the-fly reapproval.');
|
|
2443
2456
|
}
|
|
2444
2457
|
if (approval.requires_owner_file_reapproval === true || approval.requiresOwnerFileReapproval === true) {
|
|
@@ -2506,7 +2519,7 @@ function supportAutonomyApprovalGate(approval, now) {
|
|
|
2506
2519
|
bugNotBugKnown: bugNotBugKnown,
|
|
2507
2520
|
bugNotBugClassificationApproved: bugNotBugApproved,
|
|
2508
2521
|
requiresOverLimitApproval: approval.requires_over_limit_approval === true || approval.requiresOverLimitApproval === true,
|
|
2509
|
-
requiresScopeReapproval:
|
|
2522
|
+
requiresScopeReapproval: explicitScopeReapprovalRequired || scopeChangedSinceApproval,
|
|
2510
2523
|
requiresOwnerFileReapproval: approval.requires_owner_file_reapproval === true || approval.requiresOwnerFileReapproval === true,
|
|
2511
2524
|
requiresIntakeReapproval: approval.requires_intake_reapproval === true || approval.requiresIntakeReapproval === true,
|
|
2512
2525
|
requiresDiagnosisScopeReapproval: approval.requires_diagnosis_scope_reapproval === true || approval.requiresDiagnosisScopeReapproval === true,
|
|
@@ -2714,6 +2727,28 @@ function supportAutoloopApprovalBlockGate(block, now) {
|
|
|
2714
2727
|
}
|
|
2715
2728
|
};
|
|
2716
2729
|
}
|
|
2730
|
+
function downgradeStaleSupportRepairIntentApprovalBlock(gate, autonomyApprovalGate, productRepairDispatchGate) {
|
|
2731
|
+
if (!gate || gate.status !== 'blocked') {
|
|
2732
|
+
return gate;
|
|
2733
|
+
}
|
|
2734
|
+
var metadata = plainObject(gate.metadata);
|
|
2735
|
+
var blockers = cleanStringList(metadata.blockers, 20, 500);
|
|
2736
|
+
var onlyRepairIntentBlocker = metadata.requiresRepairIntent === true
|
|
2737
|
+
&& metadata.requiresRepairIntentReapproval !== true
|
|
2738
|
+
&& metadata.requiresOverLimitApproval !== true
|
|
2739
|
+
&& metadata.requiresScopeReapproval !== true
|
|
2740
|
+
&& metadata.requiresOwnerFileReapproval !== true
|
|
2741
|
+
&& metadata.requiresDiagnosisScopeReapproval !== true
|
|
2742
|
+
&& metadata.requiresClassificationApproval !== true
|
|
2743
|
+
&& metadata.requiresEstimateHours !== true
|
|
2744
|
+
&& metadata.requiresElapsedReapproval !== true
|
|
2745
|
+
&& (blockers.length === 0 || blockers.every(function (blocker) { return /planned implementation intent|repair_intent_required/i.test(blocker); }));
|
|
2746
|
+
if (!onlyRepairIntentBlocker || (autonomyApprovalGate === null || autonomyApprovalGate === void 0 ? void 0 : autonomyApprovalGate.status) !== 'pass' || (productRepairDispatchGate === null || productRepairDispatchGate === void 0 ? void 0 : productRepairDispatchGate.status) !== 'pass') {
|
|
2747
|
+
return gate;
|
|
2748
|
+
}
|
|
2749
|
+
var reason = 'Stale repair-intent-only approval block downgraded because bounded autonomy and product-repair dispatch are already approved; continue to QA/business proof.';
|
|
2750
|
+
return __assign(__assign({}, gate), { status: 'warn', reason: reason, metadata: __assign(__assign({}, metadata), { staleRepairIntentOnlyBlockDowngraded: true, blockers: blockers, downgradeReason: reason }) });
|
|
2751
|
+
}
|
|
2717
2752
|
function supportAutoloopNoProgressGate(record, now) {
|
|
2718
2753
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
2719
2754
|
if (!record || !Object.keys(record).length) {
|
|
@@ -3192,7 +3227,7 @@ function supportPrReadinessContractObject(ticket, job, evidence) {
|
|
|
3192
3227
|
var runnerConsole = plainObject(ticketAutomation.runner_console || ticketAutomation.runnerConsole);
|
|
3193
3228
|
var autonomousDecision = supportAutonomyDecisionObject(ticket, job, evidence);
|
|
3194
3229
|
var recovery = plainObject(autonomousDecision.managerRecovery || autonomousDecision.manager_recovery);
|
|
3195
|
-
return evidenceObject(
|
|
3230
|
+
return evidenceObject(evidence.supportPrReadinessContract, evidence.support_pr_readiness_contract, evidence.prReadinessContract, evidence.pr_readiness_contract, autonomousDecision.prReadinessContract, autonomousDecision.pr_readiness_contract, recovery.prReadinessContract, recovery.pr_readiness_contract, job.supportPrReadinessContract, job.support_pr_readiness_contract, job.prReadinessContract, job.pr_readiness_contract, ticket.supportPrReadinessContract, ticket.support_pr_readiness_contract, ticket.prReadinessContract, ticket.pr_readiness_contract, runnerConsole.last_pr_readiness_contract, runnerConsole.lastPrReadinessContract, runnerConsole.pr_readiness_contract, runnerConsole.prReadinessContract, ticketManager.last_pr_readiness_contract, ticketManager.lastPrReadinessContract, ticketManager.pr_readiness_contract, ticketManager.prReadinessContract);
|
|
3196
3231
|
}
|
|
3197
3232
|
function supportPrReadinessContractGate(contract, now) {
|
|
3198
3233
|
var _a;
|
|
@@ -4185,7 +4220,7 @@ function supportManagerExecutionPacketGate(packet, now, required) {
|
|
|
4185
4220
|
function supportDiagnosisEvidencePackObject(ticket, job, evidence) {
|
|
4186
4221
|
var ticketAutomation = plainObject(ticket.automation);
|
|
4187
4222
|
var ticketManager = plainObject(ticketAutomation.manager || ticket.manager);
|
|
4188
|
-
return evidenceObject(
|
|
4223
|
+
return evidenceObject(evidence.supportV5DiagnosisEvidencePack, evidence.support_v5_diagnosis_evidence_pack, evidence.diagnosisEvidencePack, evidence.diagnosis_evidence_pack, job.supportV5DiagnosisEvidencePack, job.support_v5_diagnosis_evidence_pack, job.diagnosisEvidencePack, job.diagnosis_evidence_pack, ticket.supportV5DiagnosisEvidencePack, ticket.support_v5_diagnosis_evidence_pack, ticket.diagnosisEvidencePack, ticket.diagnosis_evidence_pack, ticketManager.diagnosisEvidencePack, ticketManager.diagnosis_evidence_pack);
|
|
4189
4224
|
}
|
|
4190
4225
|
function supportIssueClassProbePlanObject(ticket, job, evidence) {
|
|
4191
4226
|
var ticketAutomation = plainObject(ticket.automation);
|
|
@@ -5603,7 +5638,7 @@ function buildSupportAIRunFromEvidence(input) {
|
|
|
5603
5638
|
});
|
|
5604
5639
|
}
|
|
5605
5640
|
var autoloopApprovalBlock = supportAutoloopApprovalBlockObject(ticket, job, evidence);
|
|
5606
|
-
var autoloopApprovalBlockGate = supportAutoloopApprovalBlockGate(autoloopApprovalBlock, input.now);
|
|
5641
|
+
var autoloopApprovalBlockGate = downgradeStaleSupportRepairIntentApprovalBlock(supportAutoloopApprovalBlockGate(autoloopApprovalBlock, input.now), autonomyApprovalGate, productRepairDispatchGate);
|
|
5607
5642
|
if (autoloopApprovalBlockGate) {
|
|
5608
5643
|
gates.push(autoloopApprovalBlockGate);
|
|
5609
5644
|
pushEvent(events, {
|