@resolveio/server-lib 22.3.166 → 22.3.168
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -505,6 +505,21 @@ export interface ResolveIOSupportV5ContinuationDecision {
|
|
|
505
505
|
recoveryAction: ResolveIOAIManagerRecoveryActionPacket;
|
|
506
506
|
}
|
|
507
507
|
export type ResolveIOSupportV5AutonomousNextAction = 'run_diagnosis_gate' | 'ask_customer_clarification' | 'repair_infra_only' | 'revise_diagnosis_scope' | 'run_owner_scoped_repair' | 'run_business_proof_qa' | 'repair_release_hotfix_first' | 'collect_new_evidence' | 'draft_customer_reply' | 'ready_for_release_gate' | 'park_manual';
|
|
508
|
+
export type ResolveIOSupportContinuationProofCheckpointStatus = 'waiting_for_state_transition' | 'waiting_for_proof' | 'waiting_for_new_evidence' | 'ready_to_continue';
|
|
509
|
+
export interface ResolveIOSupportContinuationProofCheckpoint {
|
|
510
|
+
required: boolean;
|
|
511
|
+
status: ResolveIOSupportContinuationProofCheckpointStatus;
|
|
512
|
+
action: ResolveIOSupportV5AutonomousNextAction;
|
|
513
|
+
reason: string;
|
|
514
|
+
startingFailureClass: string;
|
|
515
|
+
startingBlockerFingerprint: string;
|
|
516
|
+
startingEvidenceHash: string;
|
|
517
|
+
requiredEvidence: string[];
|
|
518
|
+
requiredResetEvidence: string[];
|
|
519
|
+
successRequiresNewEvidence: boolean;
|
|
520
|
+
blocksProductRepairUntilChangedEvidence: boolean;
|
|
521
|
+
nextAction: string;
|
|
522
|
+
}
|
|
508
523
|
export type ResolveIOSupportRootCauseReadinessStatus = 'diagnosis_required' | 'customer_clarification_required' | 'infra_repair_only' | 'scope_revision_required' | 'owner_scoped_repair_ready' | 'business_proof_required' | 'release_hotfix_required' | 'release_gate_ready' | 'customer_reply_draft_ready' | 'collect_new_evidence' | 'parked';
|
|
509
524
|
export interface ResolveIOSupportRootCauseReadiness {
|
|
510
525
|
status: ResolveIOSupportRootCauseReadinessStatus;
|
|
@@ -590,6 +605,7 @@ export interface ResolveIOSupportV5AutonomousDecision {
|
|
|
590
605
|
businessProofReadiness: ResolveIOSupportBusinessProofReadiness;
|
|
591
606
|
evidenceFreshness: ResolveIOSupportEvidenceFreshness;
|
|
592
607
|
rootCauseReadiness: ResolveIOSupportRootCauseReadiness;
|
|
608
|
+
continuationProofCheckpoint: ResolveIOSupportContinuationProofCheckpoint;
|
|
593
609
|
humanReviewPacket: ResolveIOSupportHumanReviewPacket;
|
|
594
610
|
hotfixContinuation?: ResolveIOAIManagerHotfixContinuationDecision;
|
|
595
611
|
recordedAt: string;
|
|
@@ -619,6 +635,14 @@ export declare function evaluateResolveIOSupportEvidenceFreshness(input: {
|
|
|
619
635
|
limit?: number;
|
|
620
636
|
ignoreInfra?: boolean;
|
|
621
637
|
}): ResolveIOSupportEvidenceFreshness;
|
|
638
|
+
export declare function buildResolveIOSupportContinuationProofCheckpoint(input: {
|
|
639
|
+
action: ResolveIOSupportV5AutonomousNextAction;
|
|
640
|
+
reason?: any;
|
|
641
|
+
evidenceFreshness?: ResolveIOSupportEvidenceFreshness;
|
|
642
|
+
requiredEvidence?: any;
|
|
643
|
+
requiredResetEvidence?: any;
|
|
644
|
+
blocksProductRepair?: boolean;
|
|
645
|
+
}): ResolveIOSupportContinuationProofCheckpoint;
|
|
622
646
|
export declare function changedFilesOutsideResolveIOSupportDiagnosisOwnerFiles(diagnosisGate: any, changedFiles: any, options?: {
|
|
623
647
|
allowTests?: boolean;
|
|
624
648
|
}): string[];
|
|
@@ -58,6 +58,7 @@ exports.buildResolveIOSupportIssueClassProbes = buildResolveIOSupportIssueClassP
|
|
|
58
58
|
exports.hashResolveIOSupportV5Evidence = hashResolveIOSupportV5Evidence;
|
|
59
59
|
exports.decideResolveIOSupportV5RepeatedFailureStop = decideResolveIOSupportV5RepeatedFailureStop;
|
|
60
60
|
exports.evaluateResolveIOSupportEvidenceFreshness = evaluateResolveIOSupportEvidenceFreshness;
|
|
61
|
+
exports.buildResolveIOSupportContinuationProofCheckpoint = buildResolveIOSupportContinuationProofCheckpoint;
|
|
61
62
|
exports.changedFilesOutsideResolveIOSupportDiagnosisOwnerFiles = changedFilesOutsideResolveIOSupportDiagnosisOwnerFiles;
|
|
62
63
|
exports.decideResolveIOSupportV5RepairGate = decideResolveIOSupportV5RepairGate;
|
|
63
64
|
exports.applyResolveIOSupportDiagnosisGateToMicrotasks = applyResolveIOSupportDiagnosisGateToMicrotasks;
|
|
@@ -1697,6 +1698,63 @@ function evaluateResolveIOSupportEvidenceFreshness(input) {
|
|
|
1697
1698
|
artifactPaths: artifactPaths
|
|
1698
1699
|
};
|
|
1699
1700
|
}
|
|
1701
|
+
function buildResolveIOSupportContinuationProofCheckpoint(input) {
|
|
1702
|
+
var evidenceFreshness = input.evidenceFreshness;
|
|
1703
|
+
var action = input.action;
|
|
1704
|
+
var requiredEvidence = cleanList(input.requiredEvidence, 20, 500);
|
|
1705
|
+
var requiredResetEvidence = Array.from(new Set(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], __read(cleanList(input.requiredResetEvidence, 20, 500)), false), __read(cleanList(evidenceFreshness === null || evidenceFreshness === void 0 ? void 0 : evidenceFreshness.requiredResetEvidence, 20, 500)), false), __read((action === 'run_diagnosis_gate'
|
|
1706
|
+
? [
|
|
1707
|
+
'accepted SupportDiagnosisGate with reproduced/blocked issue case',
|
|
1708
|
+
'bounded owner_files and before/action/after proof_plan'
|
|
1709
|
+
]
|
|
1710
|
+
: [])), false), __read((action === 'collect_new_evidence'
|
|
1711
|
+
? [
|
|
1712
|
+
'fresh issue-class probe artifact',
|
|
1713
|
+
'changed blockerFingerprint or evidenceHash',
|
|
1714
|
+
'AIQaBusinessAssertion or before/action/after blocker artifact'
|
|
1715
|
+
]
|
|
1716
|
+
: [])), false), __read((action === 'repair_infra_only'
|
|
1717
|
+
? [
|
|
1718
|
+
'infra or compile gate passes, or failureClass changes',
|
|
1719
|
+
'new evidenceHash from fresh preflight/build artifact'
|
|
1720
|
+
]
|
|
1721
|
+
: [])), false), __read((action === 'repair_release_hotfix_first'
|
|
1722
|
+
? [
|
|
1723
|
+
'GitHub commit proof recorded before live backend hotfix',
|
|
1724
|
+
'release gate or hotfix durability evidence refreshed'
|
|
1725
|
+
]
|
|
1726
|
+
: [])), false))).slice(0, 20);
|
|
1727
|
+
var blocksProductRepair = input.blocksProductRepair === true
|
|
1728
|
+
|| action === 'collect_new_evidence'
|
|
1729
|
+
|| action === 'run_diagnosis_gate'
|
|
1730
|
+
|| action === 'ask_customer_clarification'
|
|
1731
|
+
|| action === 'repair_infra_only'
|
|
1732
|
+
|| action === 'revise_diagnosis_scope';
|
|
1733
|
+
var waitingForNewEvidence = (evidenceFreshness === null || evidenceFreshness === void 0 ? void 0 : evidenceFreshness.mustCollectNewEvidence) === true
|
|
1734
|
+
|| action === 'collect_new_evidence';
|
|
1735
|
+
var proofRequired = requiredEvidence.length > 0 || requiredResetEvidence.length > 0;
|
|
1736
|
+
var status = waitingForNewEvidence
|
|
1737
|
+
? 'waiting_for_new_evidence'
|
|
1738
|
+
: proofRequired
|
|
1739
|
+
? 'waiting_for_proof'
|
|
1740
|
+
: 'waiting_for_state_transition';
|
|
1741
|
+
return {
|
|
1742
|
+
required: true,
|
|
1743
|
+
status: status,
|
|
1744
|
+
action: action,
|
|
1745
|
+
reason: cleanText(input.reason || (evidenceFreshness === null || evidenceFreshness === void 0 ? void 0 : evidenceFreshness.reason) || '', 1000),
|
|
1746
|
+
startingFailureClass: cleanText(evidenceFreshness === null || evidenceFreshness === void 0 ? void 0 : evidenceFreshness.failureClass, 120),
|
|
1747
|
+
startingBlockerFingerprint: cleanText(evidenceFreshness === null || evidenceFreshness === void 0 ? void 0 : evidenceFreshness.blockerFingerprint, 160),
|
|
1748
|
+
startingEvidenceHash: cleanText(evidenceFreshness === null || evidenceFreshness === void 0 ? void 0 : evidenceFreshness.evidenceHash, 160),
|
|
1749
|
+
requiredEvidence: requiredEvidence,
|
|
1750
|
+
requiredResetEvidence: requiredResetEvidence,
|
|
1751
|
+
successRequiresNewEvidence: waitingForNewEvidence || blocksProductRepair,
|
|
1752
|
+
blocksProductRepairUntilChangedEvidence: blocksProductRepair,
|
|
1753
|
+
nextAction: waitingForNewEvidence
|
|
1754
|
+
? 'collect_required_reset_evidence'
|
|
1755
|
+
: action
|
|
1756
|
+
};
|
|
1757
|
+
}
|
|
1700
1758
|
function changedFilesOutsideResolveIOSupportDiagnosisOwnerFiles(diagnosisGate, changedFiles, options) {
|
|
1701
1759
|
if (options === void 0) { options = {}; }
|
|
1702
1760
|
var validation = validateResolveIOSupportDiagnosisGate(diagnosisGate);
|
|
@@ -2466,6 +2524,14 @@ function decideResolveIOSupportV5AutonomousNextAction(input) {
|
|
|
2466
2524
|
'Do not broaden owner_files without revised diagnosis evidence.',
|
|
2467
2525
|
'Do not accept route-load, screenshot-only, scorecard-only, or model-claim proof.'
|
|
2468
2526
|
], __read((fields.forbiddenActions || [])), false)));
|
|
2527
|
+
var continuationProofCheckpoint = buildResolveIOSupportContinuationProofCheckpoint({
|
|
2528
|
+
action: action,
|
|
2529
|
+
reason: reason,
|
|
2530
|
+
evidenceFreshness: evidenceFreshness,
|
|
2531
|
+
requiredEvidence: requiredEvidence,
|
|
2532
|
+
requiredResetEvidence: fields.requiredEvidence,
|
|
2533
|
+
blocksProductRepair: evidenceFreshness.mustCollectNewEvidence === true
|
|
2534
|
+
});
|
|
2469
2535
|
var humanReviewPacket = fields.humanReviewPacket
|
|
2470
2536
|
|| (action === 'draft_customer_reply' && customerReplyPolicy.humanReviewPacket ? customerReplyPolicy.humanReviewPacket : undefined)
|
|
2471
2537
|
|| buildResolveIOSupportHumanReviewPacket({
|
|
@@ -2523,6 +2589,7 @@ function decideResolveIOSupportV5AutonomousNextAction(input) {
|
|
|
2523
2589
|
businessProofReadiness: businessProofReadiness,
|
|
2524
2590
|
evidenceFreshness: evidenceFreshness,
|
|
2525
2591
|
rootCauseReadiness: rootCauseReadiness,
|
|
2592
|
+
continuationProofCheckpoint: continuationProofCheckpoint,
|
|
2526
2593
|
humanReviewPacket: humanReviewPacket,
|
|
2527
2594
|
hotfixContinuation: fields.hotfixContinuation,
|
|
2528
2595
|
recordedAt: isoNow(input.now)
|
|
@@ -2635,6 +2702,23 @@ function decideResolveIOSupportV5AutonomousNextAction(input) {
|
|
|
2635
2702
|
forbiddenActions: ['Do not run another repair loop until new material evidence exists.']
|
|
2636
2703
|
});
|
|
2637
2704
|
}
|
|
2705
|
+
if (evidenceFreshness.mustCollectNewEvidence === true && repairGate.action === 'allow_product_repair') {
|
|
2706
|
+
return makeDecision('collect_new_evidence', 'Collect New Evidence', 'support_v5_no_blind_loop_requires_changed_evidence', {
|
|
2707
|
+
canRunAutonomously: true,
|
|
2708
|
+
canRunModel: false,
|
|
2709
|
+
canRunQa: true,
|
|
2710
|
+
canEditProductCode: false,
|
|
2711
|
+
lane: (activeMicrotask === null || activeMicrotask === void 0 ? void 0 : activeMicrotask.lane) || 'qa',
|
|
2712
|
+
stepType: activeStepType,
|
|
2713
|
+
primaryCommand: 'run_support_v5_recovery_evidence_probe',
|
|
2714
|
+
nextCommands: ['execute_issue_class_probe', 'record_changed_blocker_or_business_proof', 'write_aiqa_business_assertion_or_blocker_artifact'],
|
|
2715
|
+
requiredEvidence: evidenceFreshness.requiredResetEvidence.length
|
|
2716
|
+
? evidenceFreshness.requiredResetEvidence
|
|
2717
|
+
: ['changed blockerFingerprint or evidenceHash', 'fresh issue-specific business proof artifact'],
|
|
2718
|
+
blockers: [evidenceFreshness.reason || 'Repeated failure needs fresh evidence before owner-scoped repair.'],
|
|
2719
|
+
forbiddenActions: ['Do not edit product code in this recovery; collect changed browser/data/business-proof evidence only.']
|
|
2720
|
+
});
|
|
2721
|
+
}
|
|
2638
2722
|
if (supportReleaseLooksBlocked(input.releaseStatus)) {
|
|
2639
2723
|
var releaseBlocker = cleanList(input.unresolvedBlockers, 20, 500).join('; ')
|
|
2640
2724
|
|| cleanText(input.blocker || input.releaseStatus, 1000)
|