@allocator-one/rcl 4.5.21 → 4.5.23
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/README.md +16 -8
- package/dist/ci.js +2 -3
- package/dist/ci.js.map +1 -1
- package/dist/consensus/deduper.d.ts +1 -0
- package/dist/consensus/deduper.js +1 -1
- package/dist/consensus/deduper.js.map +1 -1
- package/dist/consensus/gating.d.ts +15 -3
- package/dist/consensus/gating.js +35 -22
- package/dist/consensus/gating.js.map +1 -1
- package/dist/consensus/types.d.ts +1 -1
- package/dist/consensus/verification-contract.d.ts +6 -0
- package/dist/consensus/verification-contract.js +9 -0
- package/dist/consensus/verification-contract.js.map +1 -1
- package/dist/converge/dismissal-citations.d.ts +42 -0
- package/dist/converge/dismissal-citations.js +76 -0
- package/dist/converge/dismissal-citations.js.map +1 -0
- package/dist/converge/fresh-review-close.d.ts +89 -0
- package/dist/converge/fresh-review-close.js +222 -0
- package/dist/converge/fresh-review-close.js.map +1 -0
- package/dist/converge/fresh-review.d.ts +52 -0
- package/dist/converge/fresh-review.js +35 -0
- package/dist/converge/fresh-review.js.map +1 -1
- package/dist/converge/launch-guard.js +2 -2
- package/dist/converge/launch-guard.js.map +1 -1
- package/dist/converge/pr-snapshot.d.ts +53 -0
- package/dist/converge/pr-snapshot.js +76 -0
- package/dist/converge/pr-snapshot.js.map +1 -0
- package/dist/converge/repeat-guard.d.ts +46 -0
- package/dist/converge/repeat-guard.js +44 -0
- package/dist/converge/repeat-guard.js.map +1 -0
- package/dist/converge/run-state.d.ts +10 -0
- package/dist/converge/run-state.js +76 -2
- package/dist/converge/run-state.js.map +1 -1
- package/dist/dispatch/checkpoint-verification.js +1 -1
- package/dist/dispatch/checkpoint-verification.js.map +1 -1
- package/dist/evidence/original-run/source.js +2 -1
- package/dist/evidence/original-run/source.js.map +1 -1
- package/dist/evidence/retriage-finding.js +17 -0
- package/dist/evidence/retriage-finding.js.map +1 -1
- package/dist/evidence/reviewer-lineage.d.ts +6 -2
- package/dist/evidence/reviewer-lineage.js +14 -7
- package/dist/evidence/reviewer-lineage.js.map +1 -1
- package/dist/evidence/reviewer-original.js +1 -1
- package/dist/evidence/reviewer-original.js.map +1 -1
- package/dist/index.js +109 -4
- package/dist/index.js.map +1 -1
- package/dist/output/markdown.js +2 -2
- package/dist/output/markdown.js.map +1 -1
- package/dist/prompts/hardening.d.ts +8 -5
- package/dist/prompts/hardening.js +14 -10
- package/dist/prompts/hardening.js.map +1 -1
- package/dist/report/aggregation-inputs.d.ts +6 -2
- package/dist/report/aggregation-inputs.js +12 -4
- package/dist/report/aggregation-inputs.js.map +1 -1
- package/dist/report/assembly.d.ts +3 -0
- package/dist/report/assembly.js +3 -2
- package/dist/report/assembly.js.map +1 -1
- package/dist/report/checkpoint-gating.js +1 -0
- package/dist/report/checkpoint-gating.js.map +1 -1
- package/package.json +1 -1
|
@@ -22,7 +22,7 @@ function assertBindings(captured, run, diff, target, mergeBase) {
|
|
|
22
22
|
if (!aggregation || !isDeepStrictEqual(captured.config.thresholds, aggregation.thresholds) ||
|
|
23
23
|
captured.config.output?.belowThresholdAppendix !== aggregation.belowThresholdAppendix)
|
|
24
24
|
refuse('aggregation_mismatch');
|
|
25
|
-
if (aggregation.verifierContractVersion
|
|
25
|
+
if (aggregation.verifierContractVersion === undefined)
|
|
26
26
|
refuse('verifier_contract');
|
|
27
27
|
const repo = run.target.repo && parseRepoName(run.target.repo);
|
|
28
28
|
const pr = run.target.prNumber;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reviewer-original.js","sourceRoot":"","sources":["../../src/evidence/reviewer-original.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAmF,MAAM,6BAA6B,CAAC;AACjJ,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAE3E,OAAO,EAAE,oBAAoB,EAA+B,MAAM,gCAAgC,CAAC;AACnG,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,0BAA0B,EAAuB,MAAM,gCAAgC,CAAC;AACjG,OAAO,EAAE,0BAA0B,EAA0B,MAAM,2BAA2B,CAAC;AAE/F,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4CAA4C,CAAC;AACtF,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAGrE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAoCnD,SAAS,MAAM,CAAC,MAAc,IAAW,MAAM,IAAI,KAAK,CAAC,qBAAqB,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;AAE1F,SAAS,cAAc,CAAC,QAAgC,EAAE,GAAwB,EAAE,IAAU,EAAE,MAAc,EAAE,SAAiB;IAC/H,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;IAC/D,0BAA0B,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,CAAC,WAAW,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,UAAU,CAAC;QACxF,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAsB,KAAK,WAAW,CAAC,sBAAsB;QAAE,MAAM,CAAC,sBAAsB,CAAC,CAAC;IACxH,IAAI,WAAW,CAAC,uBAAuB,KAAK,
|
|
1
|
+
{"version":3,"file":"reviewer-original.js","sourceRoot":"","sources":["../../src/evidence/reviewer-original.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAmF,MAAM,6BAA6B,CAAC;AACjJ,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAE3E,OAAO,EAAE,oBAAoB,EAA+B,MAAM,gCAAgC,CAAC;AACnG,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,0BAA0B,EAAuB,MAAM,gCAAgC,CAAC;AACjG,OAAO,EAAE,0BAA0B,EAA0B,MAAM,2BAA2B,CAAC;AAE/F,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4CAA4C,CAAC;AACtF,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAGrE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAoCnD,SAAS,MAAM,CAAC,MAAc,IAAW,MAAM,IAAI,KAAK,CAAC,qBAAqB,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;AAE1F,SAAS,cAAc,CAAC,QAAgC,EAAE,GAAwB,EAAE,IAAU,EAAE,MAAc,EAAE,SAAiB;IAC/H,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;IAC/D,0BAA0B,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,CAAC,WAAW,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,UAAU,CAAC;QACxF,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAsB,KAAK,WAAW,CAAC,sBAAsB;QAAE,MAAM,CAAC,sBAAsB,CAAC,CAAC;IACxH,IAAI,WAAW,CAAC,uBAAuB,KAAK,SAAS;QAAE,MAAM,CAAC,mBAAmB,CAAC,CAAC;IACnF,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/D,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;IAC/B,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAG,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;QAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAC3H,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,WAAW,EAAE,CAAC;IAClE,MAAM,MAAM,GAAG,8BAA8B,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChE,IAAI,MAAM,KAAK,IAAI,CAAC,MAAM,IAAI,MAAM,IAAI,QAAQ,KAAK,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;QAC5E,GAAG,CAAC,MAAM,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,IAAI,SAAS,KAAK,IAAI,CAAC,YAAY;QACtE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,WAAW,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,YAAY;QAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAChI,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS;QAAE,MAAM,CAAC,eAAe,CAAC,CAAC;IAC7F,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ;QACzE,IAAI,CAAC,QAAQ,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,KAAK,SAAS;QAClF,IAAI,CAAC,QAAQ,CAAC,OAAO,KAAK,GAAG,CAAC,MAAM,CAAC,OAAO;QAC5C,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC;QAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAChI,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC;SAC5F,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAChG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAC7I,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,UAAU;QAAE,MAAM,CAAC,eAAe,CAAC,CAAC;IACrF,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,CAA6C,CAAC;IAC9F,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAAE,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAC1I,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,YAAY,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QAAE,MAAM,CAAC,YAAY,CAAC,CAAC;AAC1G,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,KAA8B;IACxE,IAAI,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;QAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAC/F,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAC1D,MAAM,mBAAmB,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;IACrG,MAAM,QAAQ,GAAG,oBAAoB,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjF,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC;QAAE,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAC7E,MAAM,GAAG,GAAG,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,GAAG,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IACvG,MAAM,MAAM,GAAG,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,YAAY,GAAG,KAAK,CAAC,0BAA0B,KAAK,IAAI,CAAC;IAC7F,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,MAAM;QAC7E,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,EAA4B,CAAC;IAC5L,cAAc,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAC/E,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAChC,IAAI,MAAM,CAAC,WAAW,CAAC,KAAK,KAAK,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI;YAAE,MAAM,CAAC,mBAAmB,CAAC,CAAC;QACjG,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QACjE,IAAI,MAAM,KAAK,SAAS;YAAE,MAAM,CAAC,mBAAmB,CAAC,CAAC;QACtD,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAC5D,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC;IACnJ,0BAA0B,CAAC,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,kBAAkB,CAAC,CAAC;IACxH,MAAM,OAAO,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,IAAI,mBAAmB,CAAC,GAAG,CAAC,CAAC;IACxE,IAAI,MAAM,CAAC,kBAAkB,GAAG,OAAO,IAAI,MAAM,CAAC,gBAAgB,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,OAAO;QAAE,MAAM,CAAC,cAAc,CAAC,CAAC;IAClI,MAAM,oBAAoB,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACxD,MAAM,SAAS,GAAG,oBAAoB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACpD,IAAI,SAAS,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,WAAW;QAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IAC1E,MAAM,KAAK,GAAG,sBAAsB,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC9D,IAAI,QAA8C,CAAC;IACnD,MAAM,MAAM,GAAG,GAAG,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,oBAAoB,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,WAAW;QAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IACvJ,IAAI,CAAC;QACH,MAAM,EAAE,CAAC;QACT,OAAO,MAAM,iBAAiB,CAAC,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO;YACvE,WAAW,EAAE,yBAAyB,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC;YAC5D,QAAQ,EAAE,KAAK,IAAI,EAAE;gBACnB,MAAM,EAAE,CAAC;gBACT,IAAI,YAAY,IAAI,CAAC,CAAC,CAAC,MAAM,wBAAwB,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;oBACtF,CAAC,CAAC,MAAM,oBAAoB,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;oBAAE,MAAM,CAAC,sBAAsB,CAAC,CAAC;gBACnG,MAAM,QAAQ,EAAE,CAAC;gBAAC,MAAM,EAAE,CAAC;YAC7B,CAAC;YACD,cAAc,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,oBAAoB,EAAE,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE;gBAC5H,WAAW,EAAE,KAAK,EAAC,QAAQ,EAAC,EAAE;oBAC5B,MAAM,EAAE,CAAC;oBACT,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;wBAChC,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,MAAM,CAAC,WAAW,CAAC;4BAAE,MAAM,CAAC,oBAAoB,CAAC,CAAC;wBAC9F,QAAQ,GAAG,IAAI,wBAAwB,CAAC,mBAAoB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU;4BAC1G,cAAc,EAAE,QAAQ,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;wBACvE,MAAM,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;oBACzD,CAAC;yBAAM,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;wBACtC,MAAM,IAAI,GAAG,IAAI,WAAW,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;wBACzH,IAAI,CAAC,MAAM,IAAI,CAAC,qBAAqB,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI;4BAAE,MAAM,CAAC,wBAAwB,CAAC,CAAC;oBACnH,CAAC;oBACD,MAAM,EAAE,CAAC;oBAAC,MAAM,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC;oBAAC,MAAM,EAAE,CAAC;gBACpD,CAAC,EAAE;YACL,OAAO;YACP,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE;gBAC3C,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS;oBAAE,MAAM,CAAC,eAAe,CAAC,CAAC;gBACzG,MAAM,EAAE,CAAC;gBACT,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC3H,IAAI,CAAC,MAAM,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,WAAW;oBAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC;gBAC9F,MAAM,EAAE,CAAC;gBACT,OAAO,OAAO,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS;oBAC9E,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,oBAAoB;oBAChN,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACzC,CAAC,GACF,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QAAC,KAAK,CAAC,OAAO,EAAE,CAAC;IAAC,CAAC;AAChC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -4,6 +4,8 @@ import { guardedDeliveryState } from './telemetry/deliver.js';
|
|
|
4
4
|
import { AmbiguousReviewerIdentityError, assertUnambiguousReviewerIdentities } from './dispatch/reviewer-identity.js';
|
|
5
5
|
import { retainAssemblyRefusal } from './output/assembly-refusal.js';
|
|
6
6
|
import { createReviewCycleRemote } from './converge/cycle-remote.js';
|
|
7
|
+
import { prSnapshotFrom, readPrSnapshot, writePrSnapshot } from './converge/pr-snapshot.js';
|
|
8
|
+
import { applyFreshReviewClose, previewFreshReviewClose } from './converge/fresh-review-close.js';
|
|
7
9
|
import { assertNoPendingFreshReview, freshReviewOutputPaths } from './converge/fresh-review.js';
|
|
8
10
|
import { previewStaleReport, applyStaleReport } from './converge/stale-report.js';
|
|
9
11
|
import { previewHistoricalDeliveryReconciliation, applyHistoricalDeliveryReconciliation } from './converge/historical-delivery-reconciliation.js';
|
|
@@ -82,6 +84,7 @@ import { runRefutationRecovery } from './telemetry/recovery/command.js';
|
|
|
82
84
|
import { parseRepoName } from './evidence/target.js';
|
|
83
85
|
import { text } from './evidence/format.js';
|
|
84
86
|
import { loadConvergeRunState } from './converge/run-state.js';
|
|
87
|
+
import { checkDismissalCitations, dismissalRequiresCitation, gitRevisionReader, reviewedRevision } from './converge/dismissal-citations.js';
|
|
85
88
|
import { finalizeOrdinaryPendingLaunch, previewOrdinaryPendingLaunch, resumePendingLegacyLaunch } from './converge/pending-legacy-resume.js';
|
|
86
89
|
import { guardedInputWithoutAsyncSeats, ordinaryPendingGuardedInput } from './converge/ordinary-pending-package.js';
|
|
87
90
|
import { exportOrdinaryPendingPackage, retainOrdinaryLaunchInputs } from './converge/ordinary-pending-export.js';
|
|
@@ -239,6 +242,7 @@ program
|
|
|
239
242
|
.option('--round <n>', 'Converge round number (or RCL_CONVERGE_ROUND)')
|
|
240
243
|
.option('--attempt <n>', 'Converge attempt number (or RCL_CONVERGE_ATTEMPT)')
|
|
241
244
|
.option('--start-over', 'Start an explicitly requested fresh review with a new normal budget; retain all prior evidence and spending')
|
|
245
|
+
.option('--pr-snapshot <path>', 'Live pull request state from `rcl pr-snapshot`, captured by a parent that holds GitHub credentials; review cycles read it instead of GitHub (RCL-216)')
|
|
242
246
|
.option('--guarded-converge', 'Validate and claim inside this review process, or consume an exact recovered-v3 --attempt; derive the round from native state')
|
|
243
247
|
.option('--bound-fix-recovery <run-id>', 'Review unchanged inputs once live Harness evidence proves a retained bound fix obligation after this native dismissal-only run')
|
|
244
248
|
.option('--launch-intent <intent>', 'Guarded intent: review, stop-upstream, stop-review, or retry-delivery')
|
|
@@ -519,6 +523,71 @@ program
|
|
|
519
523
|
process.exitCode = 3;
|
|
520
524
|
}
|
|
521
525
|
});
|
|
526
|
+
program
|
|
527
|
+
.command('pr-snapshot <pr>')
|
|
528
|
+
.description('Capture a pull request\'s live state (head, base, open/merged) for a review process that holds no GitHub ' +
|
|
529
|
+
'credentials: run it in the parent, then pass the file to `rcl review --pr-snapshot` within 15 minutes (RCL-216)')
|
|
530
|
+
.requiredOption('--out <path>', 'New file to write (refuses an existing one); readable by its owner only')
|
|
531
|
+
.option('--config <path>', 'Path to config file')
|
|
532
|
+
.option('--json')
|
|
533
|
+
.action(async (pr, opts) => {
|
|
534
|
+
try {
|
|
535
|
+
if (!isGitHubTarget(pr))
|
|
536
|
+
throw new Error('pr_snapshot_requires_pull_request');
|
|
537
|
+
const target = parseGitHubTarget(pr);
|
|
538
|
+
const config = await loadConfig(opts.config);
|
|
539
|
+
const { data } = await getGitHubPullRequest(await createGitHubClient(config.githubToken), target);
|
|
540
|
+
const snapshot = prSnapshotFrom(`${target.owner}/${target.repo}`, target.number, data);
|
|
541
|
+
const digest = await writePrSnapshot(opts.out, snapshot);
|
|
542
|
+
console.log(opts.json ? JSON.stringify({ snapshot, path: opts.out, sha256: digest })
|
|
543
|
+
: `Wrote ${opts.out}: ${snapshot.repo}#${snapshot.prNumber} ${snapshot.state} at ${snapshot.headSha} (sha256 ${digest})`);
|
|
544
|
+
}
|
|
545
|
+
catch (error) {
|
|
546
|
+
console.error(JSON.stringify({ error: { code: 'RCL_PR_SNAPSHOT', message: error instanceof Error ? error.message : String(error) } }));
|
|
547
|
+
process.exitCode = 3;
|
|
548
|
+
}
|
|
549
|
+
});
|
|
550
|
+
program
|
|
551
|
+
.command('converge-close-fresh')
|
|
552
|
+
.description('Preview or apply an audited close of a fresh-review operation whose launch died before writing any report; ' +
|
|
553
|
+
'never creates a round, finding, verdict or attempt (RCL-216)')
|
|
554
|
+
.option('--preview')
|
|
555
|
+
.option('--apply')
|
|
556
|
+
.option('--target <target>')
|
|
557
|
+
.option('--operation <uuid>', 'The fresh-review operation to close (its native current operation)')
|
|
558
|
+
.requiredOption('--manifest <path>', 'Exclusive preview manifest; the reviewed manifest for apply')
|
|
559
|
+
.option('--manifest-sha256 <sha256>', 'Exact reviewed manifest bytes; required for apply')
|
|
560
|
+
.option('--json')
|
|
561
|
+
.action(async (opts) => {
|
|
562
|
+
try {
|
|
563
|
+
if ([opts.preview, opts.apply].filter(Boolean).length !== 1)
|
|
564
|
+
throw new Error('choose_exactly_one_fresh_close_mode');
|
|
565
|
+
const gitCommonDir = await resolveGitCommonDir();
|
|
566
|
+
let result;
|
|
567
|
+
if (opts.preview) {
|
|
568
|
+
if (opts.manifestSha256 !== undefined)
|
|
569
|
+
throw new Error('preview_does_not_accept_manifest_digest');
|
|
570
|
+
if (typeof opts.target !== 'string' || typeof opts.operation !== 'string')
|
|
571
|
+
throw new Error('fresh_close_preview_arguments_required');
|
|
572
|
+
const manifest = await previewFreshReviewClose({ target: opts.target, operationId: opts.operation }, gitCommonDir);
|
|
573
|
+
await writeExclusive(opts.manifest, manifest, 256 * 1024);
|
|
574
|
+
result = { mode: 'preview', manifest, manifestSha256: sha256(serializeRecoveryDocument(manifest)), accounting: 'unchanged',
|
|
575
|
+
scope: 'local operation close; no admission or approval' };
|
|
576
|
+
}
|
|
577
|
+
else {
|
|
578
|
+
if (opts.target !== undefined || opts.operation !== undefined)
|
|
579
|
+
throw new Error('apply_uses_only_pinned_manifest');
|
|
580
|
+
result = { mode: 'apply', result: await applyFreshReviewClose({ manifest: opts.manifest,
|
|
581
|
+
manifestSha256: opts.manifestSha256 }, gitCommonDir), accounting: 'unchanged',
|
|
582
|
+
scope: 'local operation close; no admission or approval' };
|
|
583
|
+
}
|
|
584
|
+
console.log(JSON.stringify(result));
|
|
585
|
+
}
|
|
586
|
+
catch (error) {
|
|
587
|
+
console.error(JSON.stringify({ error: { code: 'RCL_CONVERGE_CLOSE_FRESH', message: error instanceof Error ? error.message : String(error) } }));
|
|
588
|
+
process.exitCode = 3;
|
|
589
|
+
}
|
|
590
|
+
});
|
|
522
591
|
program
|
|
523
592
|
.command('converge-gap')
|
|
524
593
|
.description('Preview, apply or resume one evidenced missing-terminal-report audit gap; never creates a round, finding, verdict or attempt')
|
|
@@ -771,7 +840,7 @@ program
|
|
|
771
840
|
prev.push(val);
|
|
772
841
|
return prev;
|
|
773
842
|
}, [])
|
|
774
|
-
.option('--dismissed <key=reason>', 'Finding identity dismissed, with reason (repeatable)', (val, prev) => {
|
|
843
|
+
.option('--dismissed <key=reason>', 'Finding identity dismissed, with reason; a gating dismissal must cite path:line `quoted code` (repeatable)', (val, prev) => {
|
|
775
844
|
prev.push(val);
|
|
776
845
|
return prev;
|
|
777
846
|
}, [])
|
|
@@ -820,6 +889,7 @@ program
|
|
|
820
889
|
const target = opts.target;
|
|
821
890
|
const gitCommonDir = await resolveGitCommonDir();
|
|
822
891
|
const { entries: updated, resolution, runId: roundRun } = await withNativeTarget(gitCommonDir, target, async (ownership) => {
|
|
892
|
+
await assertCitedGatingDismissals(gitCommonDir, target, round, verdicts);
|
|
823
893
|
const recorded = await recordVerdicts({
|
|
824
894
|
gitCommonDir,
|
|
825
895
|
target,
|
|
@@ -899,8 +969,12 @@ program
|
|
|
899
969
|
switch (resolution.status) {
|
|
900
970
|
case 'converged-dismissal-only':
|
|
901
971
|
console.log(`Round ${round} resolution: all ${resolution.actionable} gating finding(s) dismissed, ` +
|
|
902
|
-
'
|
|
972
|
+
'no gating finding fixed — this round CONVERGES. ' +
|
|
903
973
|
'No confirmation round is required (RCL-30).');
|
|
974
|
+
if (resolution.fixedThisRound > 0) {
|
|
975
|
+
console.log(`${resolution.fixedThisRound} non-gating fix(es) recorded. They never buy another round, ` +
|
|
976
|
+
'and a converged PR is not pushed again for them (RCL-218): leave them out of the PR.');
|
|
977
|
+
}
|
|
904
978
|
break;
|
|
905
979
|
case 'fixes-pending-fresh-round':
|
|
906
980
|
console.log(`Round ${round} resolution: ${resolution.fixedThisRound} fix(es) recorded — ` +
|
|
@@ -1923,6 +1997,31 @@ async function runReview(target, opts) {
|
|
|
1923
1997
|
: opts.guardedConverge && err instanceof ReviewCouncilInterrupted ? 5 : 1;
|
|
1924
1998
|
}
|
|
1925
1999
|
}
|
|
2000
|
+
/**
|
|
2001
|
+
* Refuse a gating dismissal that does not quote, on its cited lines, the code
|
|
2002
|
+
* the round reviewed (RCL-201). Runs before any verdict is written.
|
|
2003
|
+
*/
|
|
2004
|
+
async function assertCitedGatingDismissals(gitCommonDir, target, round, verdicts) {
|
|
2005
|
+
const state = await loadConvergeRunState(gitCommonDir, target);
|
|
2006
|
+
if (!state)
|
|
2007
|
+
return;
|
|
2008
|
+
const gated = verdicts.filter(v => v.verdict === 'dismissed' && dismissalRequiresCitation(state, round, v.key));
|
|
2009
|
+
if (gated.length === 0)
|
|
2010
|
+
return;
|
|
2011
|
+
const launch = state.version === 3
|
|
2012
|
+
? (await (await import('./converge/attempt-budget.js')).loadConvergeAttemptState(gitCommonDir, target))?.lastLaunch
|
|
2013
|
+
: state.lastLaunch;
|
|
2014
|
+
const read = gitRevisionReader(process.cwd(), reviewedRevision(launch, round));
|
|
2015
|
+
const problems = [];
|
|
2016
|
+
for (const { key, reason } of gated) {
|
|
2017
|
+
const problem = await checkDismissalCitations(reason ?? '', read);
|
|
2018
|
+
if (problem)
|
|
2019
|
+
problems.push(`${key}: ${problem}`);
|
|
2020
|
+
}
|
|
2021
|
+
if (problems.length > 0) {
|
|
2022
|
+
throw new ConvergeRunStateError(`A dismissal of a gating finding must quote the code it relies on (RCL-201). No verdict was recorded.\n${problems.join('\n')}`);
|
|
2023
|
+
}
|
|
2024
|
+
}
|
|
1926
2025
|
/**
|
|
1927
2026
|
* Shared back half of every council command: chunking, prompt building,
|
|
1928
2027
|
* dispatch, consensus, and every output surface.
|
|
@@ -2022,6 +2121,10 @@ async function executeCouncil(spinner, prepared, diff, opts, extra, preparedWork
|
|
|
2022
2121
|
throw new Error('Fresh review cycles require full Harness evidence and an actor credential');
|
|
2023
2122
|
const prTarget = parseGitHubTarget(`${extra.target.repo}#${extra.target.prNumber}`);
|
|
2024
2123
|
cycleRemote = createReviewCycleRemote(runtime.sink, extra.target.repo, extra.target.prNumber, opts.expectPrHeadSha ?? extra.target.headSha ?? '', async () => {
|
|
2124
|
+
// A parent with GitHub credentials hands the live state over, so this
|
|
2125
|
+
// review process needs none (RCL-216).
|
|
2126
|
+
if (opts.prSnapshot !== undefined)
|
|
2127
|
+
return readPrSnapshot(opts.prSnapshot, extra.target.repo, extra.target.prNumber);
|
|
2025
2128
|
const client = await createGitHubClient(config.githubToken);
|
|
2026
2129
|
const auth = await client.auth();
|
|
2027
2130
|
if (typeof auth !== 'object' || auth === null || !('type' in auth) || auth.type !== 'token') {
|
|
@@ -2182,7 +2285,8 @@ async function executeCouncil(spinner, prepared, diff, opts, extra, preparedWork
|
|
|
2182
2285
|
};
|
|
2183
2286
|
const aggregationInputs = captureAggregationInputs({ algorithm: AGGREGATION_ALGORITHM,
|
|
2184
2287
|
diffSha256: diffDigest(diff.files), roleMap, thresholds, gating: prepared.gatingConfig,
|
|
2185
|
-
belowThresholdAppendix: config.output?.belowThresholdAppendix ?? true
|
|
2288
|
+
belowThresholdAppendix: config.output?.belowThresholdAppendix ?? true,
|
|
2289
|
+
...(work.taskContext ? { taskContext: work.taskContext } : {}) });
|
|
2186
2290
|
const captured = capturePreparedCouncil({ target: prepared.converge.target,
|
|
2187
2291
|
headSha: extra.target.headSha ?? '', mergeBaseSha: extra.target.baseSha ?? '', diff,
|
|
2188
2292
|
assignments,
|
|
@@ -2652,7 +2756,7 @@ async function executeCouncil(spinner, prepared, diff, opts, extra, preparedWork
|
|
|
2652
2756
|
};
|
|
2653
2757
|
const assemblyDependencies = {
|
|
2654
2758
|
onStage: postReviewStage,
|
|
2655
|
-
onVerificationStart: () => { spinner.text = 'Verifying
|
|
2759
|
+
onVerificationStart: () => { spinner.text = 'Verifying blocking findings...'; },
|
|
2656
2760
|
onVerificationProgress: (event) => {
|
|
2657
2761
|
const line = `Verification ${event.completedBatches}/${event.totalBatches} batches ` +
|
|
2658
2762
|
`(${event.completedCandidates}/${event.totalCandidates} findings)`;
|
|
@@ -2706,6 +2810,7 @@ async function executeCouncil(spinner, prepared, diff, opts, extra, preparedWork
|
|
|
2706
2810
|
result = await assembleCompletedReview({
|
|
2707
2811
|
chunkReviews, arrivedAsync, asyncLaunched, startTime, roleMap, config, diff,
|
|
2708
2812
|
gatingConfig: prepared.gatingConfig, recoveredProduction: prepared.recoveredProduction, modelWeights, run: runInput,
|
|
2813
|
+
...(work.taskContext ? { taskContext: work.taskContext } : {}),
|
|
2709
2814
|
}, assemblyDependencies);
|
|
2710
2815
|
const { run } = result;
|
|
2711
2816
|
// The same derivation converge-report and the server apply to this report.
|