review-council 4.1.5 → 4.1.6
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/dist/converge/launch-guard.js +1 -1
- package/dist/converge/launch-guard.js.map +1 -1
- package/dist/dispatch/quorum.d.ts +15 -0
- package/dist/dispatch/quorum.js +33 -0
- package/dist/dispatch/quorum.js.map +1 -0
- package/dist/dispatch/runner.d.ts +47 -7
- package/dist/dispatch/runner.js +246 -86
- package/dist/dispatch/runner.js.map +1 -1
- package/package.json +1 -1
|
@@ -101,7 +101,7 @@ function requireLaunch(options, state, attemptsUsed) {
|
|
|
101
101
|
? 'A real fix needs changed review inputs and a fresh resulting head.'
|
|
102
102
|
: 'These inputs were already reviewed; upstream tip movement alone needs no new council.');
|
|
103
103
|
}
|
|
104
|
-
if ((resolution?.fixedThisRound ?? 0) > 0 && previous.headSha === options.headSha) {
|
|
104
|
+
if (healthy && (resolution?.fixedThisRound ?? 0) > 0 && previous.headSha === options.headSha) {
|
|
105
105
|
refuse('fix_head_unchanged', 'Commit and push the real fix before reviewing its resulting head.');
|
|
106
106
|
}
|
|
107
107
|
if ((previous.hardFailure || !healthy) && !options.retryReason) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launch-guard.js","sourceRoot":"","sources":["../../src/converge/launch-guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,oBAAoB,EAAE,2BAA2B,EAAE,kCAAkC,GAEtF,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,uBAAuB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,gBAAgB,EACvF,UAAU,EAAE,qBAAqB,GAClC,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IACxB,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC;IACpD,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE;IACxD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE;IAChD,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE;IAC5B,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACpC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;AAElE,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5B,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;IAClD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE;IAC3C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE;IACzC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC;IAC3C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC;IAC/C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE;IACvC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IAClD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IACnC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE;IAC/D,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IACnE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IAC3D,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACvC,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACpC,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,WAAW,IAAI,gBAAgB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;AAoBvG,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IACvB;IAArB,YAAqB,IAAY,EAAE,OAAe;QAChD,KAAK,CAAC,GAAG,IAAI,KAAK,OAAO,EAAE,CAAC,CAAC;QADV,SAAI,GAAJ,IAAI,CAAQ;QAE/B,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED,SAAS,MAAM,CAAC,IAAY,EAAE,OAAe;IAC3C,MAAM,IAAI,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,SAAS,CAAC,KAAuB;IACxC,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACjC,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;QACtF,MAAM,CAAC,qBAAqB,EAAE,6DAA6D,CAAC,CAAC;IAC/F,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;AACtF,CAAC;AAED,SAAS,aAAa,CAAC,OAA6B,EAAE,KAAuB,EAAE,YAAoB;IACjG,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,QAAQ,CAAC;IAC1C,IAAI,CAAC,CAAC,QAAQ,EAAE,eAAe,EAAE,aAAa,EAAE,gBAAgB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACnF,MAAM,CAAC,gBAAgB,EAAE,+DAA+D,CAAC,CAAC;IAC5F,CAAC;IACD,IAAI,MAAM,KAAK,aAAa;QAAE,MAAM,CAAC,gBAAgB,EAAE,0FAA0F,CAAC,CAAC;IACnJ,IAAI,MAAM,KAAK,gBAAgB;QAAE,MAAM,CAAC,eAAe,EAAE,uEAAuE,CAAC,CAAC;IAClI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QAC3F,MAAM,CAAC,wBAAwB,EAAE,kEAAkE,CAAC,CAAC;IACvG,CAAC;IACD,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC;QACjH,MAAM,CAAC,sBAAsB,EAAE,8EAA8E,CAAC,CAAC;IACjH,CAAC;IACD,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;QAC3D,MAAM,CAAC,aAAa,EAAE,wCAAwC,KAAK,SAAS,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC;IAChG,CAAC;IACD,IAAI,KAAK,GAAG,KAAK,CAAC,QAAQ;QAAE,MAAM,IAAI,qBAAqB,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACnG,MAAM,UAAU,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACpF,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,YAAY,CAAC,EAAE,CAAC;QACrE,MAAM,CAAC,iBAAiB,EAAE,oEAAoE,CAAC,CAAC;IAClG,CAAC;IACD,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACnG,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,IAAI,YAAY,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YAC7C,MAAM,CAAC,yBAAyB,EAAE,uGAAuG,CAAC,CAAC;QAC7I,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,QAAQ,CAAC,OAAO,KAAK,YAAY,EAAE,CAAC;QACtC,IAAI,CAAC,OAAO,CAAC,WAAW;YAAE,MAAM,CAAC,iBAAiB,EAAE,yHAAyH,CAAC,CAAC;QAC/K,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;QACpC,IAAI,CAAC,OAAO,CAAC,WAAW;YAAE,MAAM,CAAC,kBAAkB,EAAE,sGAAsG,CAAC,CAAC;QAC7J,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,QAAQ,CAAC,eAAe,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,IAAI,QAAQ,CAAC,WAAW,KAAK,OAAO,CAAC,WAAW,CAAC;QACrH,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QACjG,MAAM,CAAC,kBAAkB,EAAE,OAAO,QAAQ,CAAC,KAAK,qEAAqE,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC;IAC1I,CAAC;IACD,MAAM,OAAO,GAAG,QAAQ,CAAC,iBAAkB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,YAAa,GAAG,CAAC,CAAC,CAAC,CAAC;IACtG,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7G,MAAM,CAAC,qBAAqB,EAAE,uCAAuC,QAAQ,CAAC,KAAK,+BAA+B,CAAC,CAAC;IACtH,CAAC;IACD,IAAI,OAAO,IAAI,QAAQ,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,IAAI,QAAQ,CAAC,WAAW,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC;QACpG,MAAM,CAAC,kBAAkB,EAAE,CAAC,UAAU,EAAE,cAAc,IAAI,CAAC,CAAC,GAAG,CAAC;YAC9D,CAAC,CAAC,oEAAoE;YACtE,CAAC,CAAC,uFAAuF,CAAC,CAAC;IAC/F,CAAC;IACD,IAAI,CAAC,UAAU,EAAE,cAAc,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"launch-guard.js","sourceRoot":"","sources":["../../src/converge/launch-guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,oBAAoB,EAAE,2BAA2B,EAAE,kCAAkC,GAEtF,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,uBAAuB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,gBAAgB,EACvF,UAAU,EAAE,qBAAqB,GAClC,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IACxB,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC;IACpD,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE;IACxD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE;IAChD,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE;IAC5B,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACpC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;AAElE,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5B,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;IAClD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE;IAC3C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE;IACzC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC;IAC3C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC;IAC/C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE;IACvC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IAClD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IACnC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE;IAC/D,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IACnE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IAC3D,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACvC,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACpC,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,WAAW,IAAI,gBAAgB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;AAoBvG,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IACvB;IAArB,YAAqB,IAAY,EAAE,OAAe;QAChD,KAAK,CAAC,GAAG,IAAI,KAAK,OAAO,EAAE,CAAC,CAAC;QADV,SAAI,GAAJ,IAAI,CAAQ;QAE/B,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED,SAAS,MAAM,CAAC,IAAY,EAAE,OAAe;IAC3C,MAAM,IAAI,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,SAAS,CAAC,KAAuB;IACxC,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACjC,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;QACtF,MAAM,CAAC,qBAAqB,EAAE,6DAA6D,CAAC,CAAC;IAC/F,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;AACtF,CAAC;AAED,SAAS,aAAa,CAAC,OAA6B,EAAE,KAAuB,EAAE,YAAoB;IACjG,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,QAAQ,CAAC;IAC1C,IAAI,CAAC,CAAC,QAAQ,EAAE,eAAe,EAAE,aAAa,EAAE,gBAAgB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACnF,MAAM,CAAC,gBAAgB,EAAE,+DAA+D,CAAC,CAAC;IAC5F,CAAC;IACD,IAAI,MAAM,KAAK,aAAa;QAAE,MAAM,CAAC,gBAAgB,EAAE,0FAA0F,CAAC,CAAC;IACnJ,IAAI,MAAM,KAAK,gBAAgB;QAAE,MAAM,CAAC,eAAe,EAAE,uEAAuE,CAAC,CAAC;IAClI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QAC3F,MAAM,CAAC,wBAAwB,EAAE,kEAAkE,CAAC,CAAC;IACvG,CAAC;IACD,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC;QACjH,MAAM,CAAC,sBAAsB,EAAE,8EAA8E,CAAC,CAAC;IACjH,CAAC;IACD,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;QAC3D,MAAM,CAAC,aAAa,EAAE,wCAAwC,KAAK,SAAS,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC;IAChG,CAAC;IACD,IAAI,KAAK,GAAG,KAAK,CAAC,QAAQ;QAAE,MAAM,IAAI,qBAAqB,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACnG,MAAM,UAAU,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACpF,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,YAAY,CAAC,EAAE,CAAC;QACrE,MAAM,CAAC,iBAAiB,EAAE,oEAAoE,CAAC,CAAC;IAClG,CAAC;IACD,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACnG,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,IAAI,YAAY,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YAC7C,MAAM,CAAC,yBAAyB,EAAE,uGAAuG,CAAC,CAAC;QAC7I,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,QAAQ,CAAC,OAAO,KAAK,YAAY,EAAE,CAAC;QACtC,IAAI,CAAC,OAAO,CAAC,WAAW;YAAE,MAAM,CAAC,iBAAiB,EAAE,yHAAyH,CAAC,CAAC;QAC/K,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;QACpC,IAAI,CAAC,OAAO,CAAC,WAAW;YAAE,MAAM,CAAC,kBAAkB,EAAE,sGAAsG,CAAC,CAAC;QAC7J,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,QAAQ,CAAC,eAAe,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,IAAI,QAAQ,CAAC,WAAW,KAAK,OAAO,CAAC,WAAW,CAAC;QACrH,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QACjG,MAAM,CAAC,kBAAkB,EAAE,OAAO,QAAQ,CAAC,KAAK,qEAAqE,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC;IAC1I,CAAC;IACD,MAAM,OAAO,GAAG,QAAQ,CAAC,iBAAkB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,YAAa,GAAG,CAAC,CAAC,CAAC,CAAC;IACtG,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7G,MAAM,CAAC,qBAAqB,EAAE,uCAAuC,QAAQ,CAAC,KAAK,+BAA+B,CAAC,CAAC;IACtH,CAAC;IACD,IAAI,OAAO,IAAI,QAAQ,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,IAAI,QAAQ,CAAC,WAAW,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC;QACpG,MAAM,CAAC,kBAAkB,EAAE,CAAC,UAAU,EAAE,cAAc,IAAI,CAAC,CAAC,GAAG,CAAC;YAC9D,CAAC,CAAC,oEAAoE;YACtE,CAAC,CAAC,uFAAuF,CAAC,CAAC;IAC/F,CAAC;IACD,IAAI,OAAO,IAAI,CAAC,UAAU,EAAE,cAAc,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC;QAC7F,MAAM,CAAC,oBAAoB,EAAE,mEAAmE,CAAC,CAAC;IACpG,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QAC/D,MAAM,CAAC,wBAAwB,EAAE,wHAAwH,CAAC,CAAC;IAC7J,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,KAA2B;IACjE,MAAM,OAAO,GAAG,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;IAC1D,OAAO,CAAC,YAAY,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;IACrE,IAAI,KAAuB,CAAC;IAC5B,IAAI,OAAuC,CAAC;IAC5C,MAAM,KAAK,GAAG,MAAM,oBAAoB,CAAC;QACvC,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,mBAAmB,EAAE,KAAK;QAC1B,WAAW,EAAE,KAAK,IAAI,EAAE;YACtB,KAAK,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,uBAAuB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACpH,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS;gBAAE,KAAK,CAAC,QAAQ,GAAG,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC1F,MAAM,QAAQ,GAAG,MAAM,2BAA2B,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YACzF,MAAM,KAAK,GAAG,aAAa,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,IAAI,CAAC,CAAC,CAAC;YACzE,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,IAAI,QAAQ,EAAE,GAAG,CAAC;YACjD,IAAI,GAAG,KAAK,SAAS,IAAI,QAAQ,IAAI,QAAQ,CAAC,YAAY,IAAI,GAAG,EAAE,CAAC;gBAClE,MAAM,IAAI,kCAAkC,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;YAC3F,CAAC;YACD,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAC;YACzB,KAAK,CAAC,UAAU,GAAG;gBACjB,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK;gBACpE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW;gBAC1D,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG;gBACrD,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC5F,CAAC;QACJ,CAAC;QACD,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE;YACvC,KAAK,CAAC,UAAW,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;YAC5C,MAAM,UAAU,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;YACzD,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC;gBACjC,MAAM,UAAU,GAAG,gBAAgB,CAAC,KAAK,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC;oBAC1D,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,UAAW,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO;iBACjF,CAAC,CAAC,CAAC;gBACJ,KAAK,CAAC,UAAU,GAAG,EAAE,GAAG,KAAK,CAAC,UAAW,EAAE,GAAG,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;YAClF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,KAAK,CAAC,UAAW,CAAC,MAAM,GAAG,QAAQ,CAAC;gBACpC,OAAO,GAAG,EAAE,KAAK,EAAE,CAAC;YACtB,CAAC;YACD,KAAK,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAC3C,MAAM,UAAU,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;QAC3D,CAAC;KACF,CAAC,CAAC;IACH,IAAI,OAAO;QAAE,MAAM,OAAO,CAAC,KAAK,CAAC;IACjC,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** Successful blocking-reviewer policy shared by dispatch and admission. */
|
|
2
|
+
export interface QuorumPolicy {
|
|
3
|
+
readonly version: 1;
|
|
4
|
+
readonly fraction: number;
|
|
5
|
+
readonly seatCount: number;
|
|
6
|
+
readonly minimumSuccessful: number;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Freeze the minimum for the original blocking roster. A stricter supported
|
|
10
|
+
* fraction raises the required successes; 1 requires the entire roster.
|
|
11
|
+
* Fewer than two seats can never produce conclusive reviewer health.
|
|
12
|
+
*/
|
|
13
|
+
export declare function resolveQuorumPolicy(seatCount: number, fraction?: number): QuorumPolicy;
|
|
14
|
+
/** Count only distinct, complete, durably accepted blocking seats. */
|
|
15
|
+
export declare function hasSuccessfulQuorum(policy: QuorumPolicy, successfulSeats: number): boolean;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Freeze the minimum for the original blocking roster. A stricter supported
|
|
3
|
+
* fraction raises the required successes; 1 requires the entire roster.
|
|
4
|
+
* Fewer than two seats can never produce conclusive reviewer health.
|
|
5
|
+
*/
|
|
6
|
+
export function resolveQuorumPolicy(seatCount, fraction = 2 / 3) {
|
|
7
|
+
if (!Number.isSafeInteger(seatCount) || seatCount < 0) {
|
|
8
|
+
throw new Error('Quorum seat count must be a nonnegative safe integer');
|
|
9
|
+
}
|
|
10
|
+
if (!Number.isFinite(fraction) || fraction < 2 / 3 || fraction > 1) {
|
|
11
|
+
throw new Error('Quorum fraction must be between 2/3 and 1');
|
|
12
|
+
}
|
|
13
|
+
// Integer arithmetic preserves the authoritative floor without overflowing
|
|
14
|
+
// 2 * seatCount.
|
|
15
|
+
const floor = Math.floor(seatCount / 3) * 2 + Math.ceil((seatCount % 3) * 2 / 3);
|
|
16
|
+
// Start with the usual product, then decide boundary cases against the
|
|
17
|
+
// public ratio contract. This corrects multiplication noise such as
|
|
18
|
+
// 0.8 * 35 without weakening the next representable value above 2/3.
|
|
19
|
+
let rounded = Math.ceil(fraction * seatCount);
|
|
20
|
+
while (rounded > 0 && (rounded - 1) / seatCount >= fraction)
|
|
21
|
+
rounded--;
|
|
22
|
+
while (rounded < seatCount && rounded / seatCount < fraction)
|
|
23
|
+
rounded++;
|
|
24
|
+
return { version: 1, fraction, seatCount, minimumSuccessful: Math.max(2, floor, rounded) };
|
|
25
|
+
}
|
|
26
|
+
/** Count only distinct, complete, durably accepted blocking seats. */
|
|
27
|
+
export function hasSuccessfulQuorum(policy, successfulSeats) {
|
|
28
|
+
if (!Number.isSafeInteger(successfulSeats) || successfulSeats < 0 || successfulSeats > policy.seatCount) {
|
|
29
|
+
throw new Error('Successful seat count must be an integer within the frozen roster');
|
|
30
|
+
}
|
|
31
|
+
return policy.seatCount >= 2 && successfulSeats >= policy.minimumSuccessful;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=quorum.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quorum.js","sourceRoot":"","sources":["../../src/dispatch/quorum.ts"],"names":[],"mappings":"AAQA;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,SAAiB,EAAE,QAAQ,GAAG,CAAC,GAAG,CAAC;IACrE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC1E,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,GAAG,CAAC,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IACD,2EAA2E;IAC3E,iBAAiB;IACjB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACjF,uEAAuE;IACvE,oEAAoE;IACpE,qEAAqE;IACrE,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC;IAC9C,OAAO,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,SAAS,IAAI,QAAQ;QAAE,OAAO,EAAE,CAAC;IACvE,OAAO,OAAO,GAAG,SAAS,IAAI,OAAO,GAAG,SAAS,GAAG,QAAQ;QAAE,OAAO,EAAE,CAAC;IACxE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,iBAAiB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;AAC7F,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,mBAAmB,CAAC,MAAoB,EAAE,eAAuB;IAC/E,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,eAAe,CAAC,IAAI,eAAe,GAAG,CAAC,IAAI,eAAe,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QACxG,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;IACvF,CAAC;IACD,OAAO,MAAM,CAAC,SAAS,IAAI,CAAC,IAAI,eAAe,IAAI,MAAM,CAAC,iBAAiB,CAAC;AAC9E,CAAC"}
|
|
@@ -3,26 +3,66 @@ import type { ReviewAssignment } from '../roles/types.js';
|
|
|
3
3
|
import type { BuiltPrompt } from '../prepare/prompt-builder.js';
|
|
4
4
|
import type { ReviewAdapter } from './adapter.js';
|
|
5
5
|
import type { ReasoningEffort } from '../config/schema.js';
|
|
6
|
+
/** A successful cell read from a durably validated, exact-input checkpoint. */
|
|
7
|
+
export interface RetainedReview {
|
|
8
|
+
callIndex: number;
|
|
9
|
+
callIdentity: string;
|
|
10
|
+
review: ModelReview;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Local matrix binding, supplementary to the checkpoint's complete plan
|
|
14
|
+
* validation. Original index and exact prompts prevent cross-chunk reuse.
|
|
15
|
+
*/
|
|
16
|
+
export declare function reviewCallIdentity(assignment: ReviewAssignment, prompt: BuiltPrompt, originalIndex: number, seatId?: string): string;
|
|
6
17
|
export interface RunnerOptions {
|
|
7
18
|
timeoutMs: number;
|
|
8
19
|
maxRetries: number;
|
|
9
20
|
concurrency: number;
|
|
10
21
|
verbose?: boolean;
|
|
22
|
+
/** Progress notification receives an isolated copy after durable acceptance. */
|
|
11
23
|
onReviewComplete?: (review: ModelReview) => void;
|
|
24
|
+
/** Full-matrix original seat instances; omission groups provider/model/role. */
|
|
25
|
+
seatIds?: readonly string[];
|
|
26
|
+
/** Caller must first validate the checkpoint's entire frozen plan and bytes. */
|
|
27
|
+
retainedReviews?: readonly RetainedReview[];
|
|
28
|
+
/** Unique original indices in dispatch priority order; defaults to all missing cells. */
|
|
29
|
+
eligibleCallIndices?: readonly number[];
|
|
30
|
+
/** Persist intent/check budget; false skips this cell, while rejection stops the run. */
|
|
31
|
+
beforeReview?: (callIndex: number, signal: AbortSignal) => Promise<void | false>;
|
|
32
|
+
/** Operation deadline/cancellation, independent of quorum and adapter cooperation. */
|
|
33
|
+
signal?: AbortSignal;
|
|
34
|
+
/**
|
|
35
|
+
* Audit-only raw results arriving after closure. Receives an isolated copy;
|
|
36
|
+
* never changes returned results or health. The caller owns persistence and
|
|
37
|
+
* draining started audit writes; this runner cannot await a late provider.
|
|
38
|
+
* An error sink is required when this hook is supplied.
|
|
39
|
+
*/
|
|
40
|
+
auditLateReview?: (review: ModelReview, callIndex: number) => void | Promise<void>;
|
|
41
|
+
/** Must report audit persistence failure without throwing or changing the report. */
|
|
42
|
+
onLateAuditError?: (error: unknown, callIndex: number) => void;
|
|
43
|
+
/**
|
|
44
|
+
* Durable acceptance boundary, serialized in arrival order. The index names
|
|
45
|
+
* the cell in the complete supplied assignment/prompt matrix. Called for
|
|
46
|
+
* every dispatched terminal result, including in-flight cancellations, before
|
|
47
|
+
* progress or success counting. Retained/unstarted/ineligible placeholders
|
|
48
|
+
* bypass this hook: they do not represent newly paid calls. Receives an isolated copy;
|
|
49
|
+
* rejection stops dispatch, aborts remaining calls and rejects the run.
|
|
50
|
+
* The caller owns bounded storage I/O and frozen checkpoint identity.
|
|
51
|
+
*/
|
|
52
|
+
acceptReview?: (review: ModelReview, callIndex: number) => Promise<void>;
|
|
12
53
|
/** Reasoning budget for providers that support it; defaults to 'medium'. */
|
|
13
54
|
reasoningEffort?: ReasoningEffort;
|
|
14
55
|
/** Test seam / config-key wiring; defaults to the builtin providers. */
|
|
15
56
|
adapterFactory?: (provider: string) => ReviewAdapter;
|
|
16
57
|
/**
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
* of 1 (or omitting the option) disables early closure.
|
|
58
|
+
* Successful complete-seat quorum over the full supplied blocking matrix.
|
|
59
|
+
* Seats are provider/model/role tuples; all their expected chunks must
|
|
60
|
+
* succeed. At quorum cancel every outstanding call, including core models,
|
|
61
|
+
* without waiting for noncooperative adapters. Omission keeps wait-for-all.
|
|
62
|
+
* coreModels is accepted for source compatibility but grants no exemption.
|
|
23
63
|
*/
|
|
24
64
|
quorum?: {
|
|
25
|
-
fraction
|
|
65
|
+
fraction?: number;
|
|
26
66
|
coreModels?: readonly string[];
|
|
27
67
|
};
|
|
28
68
|
}
|
package/dist/dispatch/runner.js
CHANGED
|
@@ -1,8 +1,23 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
1
2
|
import { AnthropicAdapter } from './anthropic.js';
|
|
2
3
|
import { OpenAIAdapter } from './openai.js';
|
|
3
4
|
import { GoogleAdapter } from './google.js';
|
|
4
5
|
import { OpenAICompatAdapter } from './openai-compat.js';
|
|
5
6
|
import { DEFAULT_REASONING_EFFORT } from '../config/defaults.js';
|
|
7
|
+
import { hasSuccessfulQuorum, resolveQuorumPolicy } from './quorum.js';
|
|
8
|
+
/**
|
|
9
|
+
* Local matrix binding, supplementary to the checkpoint's complete plan
|
|
10
|
+
* validation. Original index and exact prompts prevent cross-chunk reuse.
|
|
11
|
+
*/
|
|
12
|
+
export function reviewCallIdentity(assignment, prompt, originalIndex, seatId) {
|
|
13
|
+
if (!Number.isSafeInteger(originalIndex) || originalIndex < 0)
|
|
14
|
+
throw new Error('Invalid original call index');
|
|
15
|
+
const seat = seatId ?? JSON.stringify([assignment.provider, assignment.model, assignment.role.name]);
|
|
16
|
+
return createHash('sha256').update(JSON.stringify([
|
|
17
|
+
1, originalIndex, seat, assignment.provider, assignment.model, assignment.role.name,
|
|
18
|
+
prompt.systemPrompt, prompt.userPrompt,
|
|
19
|
+
])).digest('hex');
|
|
20
|
+
}
|
|
6
21
|
export function defaultAdapterFactory(provider, reasoningEffort = DEFAULT_REASONING_EFFORT) {
|
|
7
22
|
switch (provider) {
|
|
8
23
|
case 'anthropic':
|
|
@@ -33,6 +48,12 @@ export function defaultAdapterFactory(provider, reasoningEffort = DEFAULT_REASON
|
|
|
33
48
|
}
|
|
34
49
|
}
|
|
35
50
|
export async function runReviews(assignments, prompts, options) {
|
|
51
|
+
if (!Number.isSafeInteger(options.concurrency) || options.concurrency < 1) {
|
|
52
|
+
throw new Error('Runner concurrency must be a positive safe integer');
|
|
53
|
+
}
|
|
54
|
+
if (!Number.isFinite(options.timeoutMs) || options.timeoutMs <= 0 || options.timeoutMs > 2_147_483_647) {
|
|
55
|
+
throw new Error('Runner timeout must be positive and within the supported timer range');
|
|
56
|
+
}
|
|
36
57
|
if (assignments.length !== prompts.length) {
|
|
37
58
|
throw new Error('assignments and prompts arrays must have same length');
|
|
38
59
|
}
|
|
@@ -55,105 +76,244 @@ export async function runReviews(assignments, prompts, options) {
|
|
|
55
76
|
const adapters = new Map();
|
|
56
77
|
const results = new Array(calls.length);
|
|
57
78
|
let nextIndex = 0;
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
const
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
79
|
+
if (options.seatIds !== undefined &&
|
|
80
|
+
(!Array.isArray(options.seatIds) || options.seatIds.length !== calls.length ||
|
|
81
|
+
calls.some((_call, index) => typeof options.seatIds[index] !== 'string' || options.seatIds[index].trim().length === 0))) {
|
|
82
|
+
throw new Error('Invalid seat ID matrix');
|
|
83
|
+
}
|
|
84
|
+
const seatKeys = calls.map((call, index) => options.seatIds?.[index] ?? JSON.stringify([call.provider, call.model, call.role]));
|
|
85
|
+
const expected = new Map();
|
|
86
|
+
const seatIdentities = new Map();
|
|
87
|
+
for (const [index, key] of seatKeys.entries()) {
|
|
88
|
+
if (typeof key !== 'string' || key.trim().length === 0)
|
|
89
|
+
throw new Error('Invalid empty seat ID');
|
|
90
|
+
const call = calls[index];
|
|
91
|
+
const identity = JSON.stringify([call.provider, call.model, call.role]);
|
|
92
|
+
if (seatIdentities.has(key) && seatIdentities.get(key) !== identity)
|
|
93
|
+
throw new Error('Inconsistent original seat identity');
|
|
94
|
+
seatIdentities.set(key, identity);
|
|
95
|
+
expected.set(key, (expected.get(key) ?? 0) + 1);
|
|
96
|
+
}
|
|
97
|
+
const policy = options.quorum ? resolveQuorumPolicy(expected.size, options.quorum.fraction) : undefined;
|
|
98
|
+
const successfulChunks = new Map();
|
|
99
|
+
let successfulSeats = 0;
|
|
100
|
+
function countSuccess(index) {
|
|
101
|
+
const key = seatKeys[index];
|
|
102
|
+
const count = (successfulChunks.get(key) ?? 0) + 1;
|
|
103
|
+
successfulChunks.set(key, count);
|
|
104
|
+
if (count === expected.get(key))
|
|
105
|
+
successfulSeats++;
|
|
106
|
+
}
|
|
107
|
+
function matches(index, review) {
|
|
108
|
+
const call = calls[index];
|
|
109
|
+
return review?.model === call.model && review.role === call.role && review.provider === call.provider;
|
|
110
|
+
}
|
|
111
|
+
function validIndex(index) {
|
|
112
|
+
return Number.isSafeInteger(index) && index >= 0 && index < calls.length;
|
|
113
|
+
}
|
|
114
|
+
const retained = new Set();
|
|
115
|
+
for (const entry of options.retainedReviews ?? []) {
|
|
116
|
+
const index = entry.callIndex;
|
|
117
|
+
if (!validIndex(index) || retained.has(index) || !matches(index, entry.review) ||
|
|
118
|
+
entry.review.status !== 'success' || entry.review.async === true ||
|
|
119
|
+
entry.callIdentity !== reviewCallIdentity(assignments[index], prompts[index], index, options.seatIds?.[index])) {
|
|
120
|
+
throw new Error('Invalid retained review identity, chunk, status or duplicate index');
|
|
78
121
|
}
|
|
122
|
+
retained.add(index);
|
|
123
|
+
results[index] = entry.review;
|
|
124
|
+
countSuccess(index);
|
|
125
|
+
}
|
|
126
|
+
// Set iteration retains planner priority without renumbering original cells.
|
|
127
|
+
const eligible = new Set();
|
|
128
|
+
for (const index of options.eligibleCallIndices ?? calls.map((_call, index) => index).filter(index => !retained.has(index))) {
|
|
129
|
+
if (!validIndex(index) || retained.has(index) || eligible.has(index))
|
|
130
|
+
throw new Error('Invalid eligible call index');
|
|
131
|
+
eligible.add(index);
|
|
132
|
+
}
|
|
133
|
+
if (options.auditLateReview && !options.onLateAuditError)
|
|
134
|
+
throw new Error('Late review audit requires an error sink');
|
|
135
|
+
let closed = policy && hasSuccessfulQuorum(policy, successfulSeats) ? 'quorum' : undefined;
|
|
136
|
+
let failure;
|
|
137
|
+
let acceptance = Promise.resolve();
|
|
138
|
+
const dispatched = new Set();
|
|
139
|
+
const intended = new Set();
|
|
140
|
+
const cancelOutstanding = new Set();
|
|
141
|
+
function cancelCalls() { for (const cancel of cancelOutstanding)
|
|
142
|
+
cancel(); }
|
|
143
|
+
function fail(error) { failure ??= { error }; cancelCalls(); }
|
|
144
|
+
function abort() { closed ??= 'signal'; cancelCalls(); }
|
|
145
|
+
function stopped() { return closed !== undefined || failure !== undefined; }
|
|
146
|
+
function isAbortError(error) {
|
|
147
|
+
return typeof error === 'object' && error !== null && 'name' in error && error.name === 'AbortError';
|
|
79
148
|
}
|
|
80
149
|
function canceledReview(call, elapsedMs, detail) {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
150
|
+
const closure = closed === 'signal' ? 'by operation signal'
|
|
151
|
+
: closed === 'quorum' ? 'at quorum round closure' : undefined;
|
|
152
|
+
return { model: call.model, role: call.role, provider: call.provider, findings: [],
|
|
153
|
+
durationMs: elapsedMs, status: 'canceled',
|
|
154
|
+
error: ['Canceled', closure, detail].filter(Boolean).join(' ') };
|
|
155
|
+
}
|
|
156
|
+
function failedReview(index, error, startedAt) {
|
|
157
|
+
const call = calls[index];
|
|
158
|
+
return { model: call.model, role: call.role, provider: call.provider, findings: [],
|
|
159
|
+
durationMs: Date.now() - startedAt, status: 'error',
|
|
160
|
+
error: error instanceof Error ? error.message : String(error) };
|
|
161
|
+
}
|
|
162
|
+
const auditedRawIndices = new Set();
|
|
163
|
+
function audit(index, review) {
|
|
164
|
+
if (!options.auditLateReview || auditedRawIndices.has(index))
|
|
165
|
+
return;
|
|
166
|
+
auditedRawIndices.add(index);
|
|
167
|
+
// The audit sink cannot mutate a shared result object in the report. Its
|
|
168
|
+
// completion/errors have no path back into success counting or dispatch.
|
|
169
|
+
void Promise.resolve().then(() => options.auditLateReview(structuredClone(review), index))
|
|
170
|
+
.catch(error => options.onLateAuditError(error, index))
|
|
171
|
+
.catch(() => { });
|
|
172
|
+
}
|
|
173
|
+
function accept(index, received) {
|
|
174
|
+
const operation = acceptance.then(async () => {
|
|
175
|
+
if (failure)
|
|
176
|
+
return;
|
|
177
|
+
let review = received;
|
|
178
|
+
if (closed && received.status !== 'canceled') {
|
|
179
|
+
audit(index, received);
|
|
180
|
+
review = canceledReview(calls[index], received.durationMs, 'before durable acceptance');
|
|
181
|
+
}
|
|
182
|
+
if (!matches(index, review))
|
|
183
|
+
throw new Error(`Reviewer result does not match planned cell identity at index ${index}`);
|
|
184
|
+
const countsTowardQuorum = review.status === 'success' && review.async !== true;
|
|
185
|
+
if (dispatched.has(index) || intended.has(index)) {
|
|
186
|
+
await options.acceptReview?.(structuredClone(review), index);
|
|
187
|
+
}
|
|
188
|
+
results[index] = review;
|
|
189
|
+
options.onReviewComplete?.(structuredClone(review));
|
|
190
|
+
if (review.status === 'error' && options.verbose)
|
|
191
|
+
console.error(`${review.model}/${review.role}: ${review.error}`);
|
|
192
|
+
if (countsTowardQuorum) {
|
|
193
|
+
countSuccess(index);
|
|
194
|
+
if (!closed && policy && hasSuccessfulQuorum(policy, successfulSeats)) {
|
|
195
|
+
closed = 'quorum';
|
|
196
|
+
cancelCalls();
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
});
|
|
200
|
+
acceptance = operation.catch(fail);
|
|
201
|
+
return operation;
|
|
90
202
|
}
|
|
91
203
|
async function runOne(index) {
|
|
92
204
|
const call = calls[index];
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
if (
|
|
96
|
-
|
|
205
|
+
if (retained.has(index))
|
|
206
|
+
return;
|
|
207
|
+
if (stopped() || !eligible.has(index)) {
|
|
208
|
+
await accept(index, canceledReview(call, 0, eligible.has(index) ? 'before starting' : 'not eligible for recovery'));
|
|
209
|
+
return;
|
|
210
|
+
}
|
|
211
|
+
const startedAt = Date.now();
|
|
212
|
+
const controller = new AbortController();
|
|
213
|
+
let canceled = false;
|
|
214
|
+
let raw;
|
|
215
|
+
let audited = false;
|
|
216
|
+
function auditCanceledRaw() {
|
|
217
|
+
if (canceled && raw && !audited) {
|
|
218
|
+
audited = true;
|
|
219
|
+
audit(index, raw);
|
|
220
|
+
}
|
|
97
221
|
}
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
222
|
+
let cancel;
|
|
223
|
+
const cancellation = new Promise(resolveCancel => {
|
|
224
|
+
cancel = () => {
|
|
225
|
+
canceled = true;
|
|
226
|
+
const review = canceledReview(call, Date.now() - startedAt, 'while in flight');
|
|
227
|
+
controller.abort();
|
|
228
|
+
resolveCancel(review);
|
|
229
|
+
auditCanceledRaw();
|
|
230
|
+
};
|
|
231
|
+
cancelOutstanding.add(cancel);
|
|
232
|
+
});
|
|
233
|
+
try {
|
|
234
|
+
// Intent persistence is an owned, caller-bounded durability operation.
|
|
235
|
+
// Cancellation signals it, but the run still observes how it settles.
|
|
236
|
+
if (options.beforeReview) {
|
|
237
|
+
try {
|
|
238
|
+
const intent = await options.beforeReview(index, controller.signal);
|
|
239
|
+
if (intent === false) {
|
|
240
|
+
await accept(index, canceledReview(call, 0, 'intent declined before provider dispatch'));
|
|
241
|
+
return;
|
|
242
|
+
}
|
|
243
|
+
intended.add(index);
|
|
244
|
+
}
|
|
245
|
+
catch (error) {
|
|
246
|
+
if ((canceled || controller.signal.aborted || closed) && isAbortError(error)) {
|
|
247
|
+
await accept(index, canceledReview(call, Date.now() - startedAt, 'while awaiting intent'));
|
|
248
|
+
return;
|
|
249
|
+
}
|
|
250
|
+
fail(error);
|
|
251
|
+
throw error;
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
if (stopped()) {
|
|
255
|
+
await accept(index, canceledReview(call, Date.now() - startedAt, 'before provider dispatch'));
|
|
256
|
+
return;
|
|
257
|
+
}
|
|
258
|
+
let adapter;
|
|
101
259
|
try {
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
260
|
+
const existing = adapters.get(call.provider);
|
|
261
|
+
adapter = existing ?? factory(call.provider);
|
|
262
|
+
if (!existing)
|
|
105
263
|
adapters.set(call.provider, adapter);
|
|
106
|
-
}
|
|
107
|
-
const reviewPromise = adapter.review(call.model, call.role, call.systemPrompt, call.userPrompt, { ...adapterOpts, signal: controller.signal });
|
|
108
|
-
// Builtin adapters never reject, but a custom adapterFactory might.
|
|
109
|
-
// Once the cancellation wins the race, a late rejection from the
|
|
110
|
-
// abandoned promise must not surface as an unhandled rejection.
|
|
111
|
-
reviewPromise.catch(() => { });
|
|
112
|
-
review = cancelable
|
|
113
|
-
? await Promise.race([
|
|
114
|
-
reviewPromise,
|
|
115
|
-
new Promise((resolveCancel) => {
|
|
116
|
-
onRoundClosed.push(() => {
|
|
117
|
-
// Settle the cancellation FIRST: aborting can settle the
|
|
118
|
-
// adapter promise synchronously, and the race must record
|
|
119
|
-
// this call as canceled, not as the adapter's timeout.
|
|
120
|
-
resolveCancel(canceledReview(call, Date.now() - startedAt, `after ${Math.round((Date.now() - startedAt) / 1000)}s`));
|
|
121
|
-
controller.abort();
|
|
122
|
-
});
|
|
123
|
-
}),
|
|
124
|
-
])
|
|
125
|
-
: await reviewPromise;
|
|
126
264
|
}
|
|
127
|
-
catch (
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
role: call.role,
|
|
131
|
-
provider: call.provider,
|
|
132
|
-
findings: [],
|
|
133
|
-
durationMs: 0,
|
|
134
|
-
status: 'error',
|
|
135
|
-
error: err instanceof Error ? err.message : String(err),
|
|
136
|
-
};
|
|
265
|
+
catch (error) {
|
|
266
|
+
await accept(index, failedReview(index, error, startedAt));
|
|
267
|
+
return;
|
|
137
268
|
}
|
|
269
|
+
dispatched.add(index);
|
|
270
|
+
const provider = (async () => {
|
|
271
|
+
try {
|
|
272
|
+
raw = await adapter.review(call.model, call.role, call.systemPrompt, call.userPrompt, { ...adapterOpts, signal: controller.signal });
|
|
273
|
+
}
|
|
274
|
+
catch (error) {
|
|
275
|
+
raw = failedReview(index, error, startedAt);
|
|
276
|
+
}
|
|
277
|
+
auditCanceledRaw();
|
|
278
|
+
return raw;
|
|
279
|
+
})();
|
|
280
|
+
const review = await Promise.race([provider, cancellation]);
|
|
281
|
+
// A returned response is no longer an in-flight provider call. Remove
|
|
282
|
+
// it before acceptance can close quorum, so accepted work is not audited
|
|
283
|
+
// as a canceled straggler by its own completion.
|
|
284
|
+
cancelOutstanding.delete(cancel);
|
|
285
|
+
await accept(index, review);
|
|
138
286
|
}
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
if (review.status === 'error' && options.verbose) {
|
|
142
|
-
console.error(`${call.model}/${call.role}: ${review.error}`);
|
|
287
|
+
finally {
|
|
288
|
+
cancelOutstanding.delete(cancel);
|
|
143
289
|
}
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
290
|
+
}
|
|
291
|
+
if (options.signal?.aborted)
|
|
292
|
+
abort();
|
|
293
|
+
else
|
|
294
|
+
options.signal?.addEventListener('abort', abort, { once: true });
|
|
295
|
+
try {
|
|
296
|
+
const queue = [...eligible];
|
|
297
|
+
const width = Math.min(options.concurrency, queue.length);
|
|
298
|
+
const workers = Array.from({ length: width }, async () => {
|
|
299
|
+
while (!failure && nextIndex < queue.length) {
|
|
300
|
+
const index = queue[nextIndex++];
|
|
301
|
+
await runOne(index);
|
|
302
|
+
}
|
|
303
|
+
});
|
|
304
|
+
await Promise.allSettled(workers);
|
|
305
|
+
if (failure)
|
|
306
|
+
throw failure.error;
|
|
307
|
+
// Ineligible cells still occupy their original matrix positions. These
|
|
308
|
+
// placeholders have no provider invocation and cannot become paid results.
|
|
309
|
+
for (let index = 0; index < calls.length; index++) {
|
|
310
|
+
if (!results[index])
|
|
311
|
+
await accept(index, canceledReview(calls[index], 0, 'not eligible for recovery'));
|
|
154
312
|
}
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
313
|
+
return results;
|
|
314
|
+
}
|
|
315
|
+
finally {
|
|
316
|
+
options.signal?.removeEventListener('abort', abort);
|
|
317
|
+
}
|
|
158
318
|
}
|
|
159
319
|
//# sourceMappingURL=runner.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/dispatch/runner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/dispatch/runner.ts"],"names":[],"mappings":"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"}
|