@cef-ai/cli 4.1.1 → 4.3.0
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 +1 -1
- package/dist/build/lints.d.ts +12 -0
- package/dist/build/lints.d.ts.map +1 -1
- package/dist/build/lints.js +23 -0
- package/dist/build/lints.js.map +1 -1
- package/dist/cli-program.d.ts +7 -0
- package/dist/cli-program.d.ts.map +1 -1
- package/dist/cli-program.js +61 -8
- package/dist/cli-program.js.map +1 -1
- package/dist/commands/build.d.ts.map +1 -1
- package/dist/commands/build.js +11 -1
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/eval.d.ts +113 -1
- package/dist/commands/eval.d.ts.map +1 -1
- package/dist/commands/eval.js +360 -5
- package/dist/commands/eval.js.map +1 -1
- package/dist/commands/eval.test.js +267 -3
- package/dist/commands/eval.test.js.map +1 -1
- package/dist/commands/push.d.ts +55 -0
- package/dist/commands/push.d.ts.map +1 -1
- package/dist/commands/push.js +80 -5
- package/dist/commands/push.js.map +1 -1
- package/dist/commands/release-cli.d.ts +77 -0
- package/dist/commands/release-cli.d.ts.map +1 -0
- package/dist/commands/release-cli.js +543 -0
- package/dist/commands/release-cli.js.map +1 -0
- package/dist/commands/release-view.d.ts +118 -0
- package/dist/commands/release-view.d.ts.map +1 -0
- package/dist/commands/release-view.js +321 -0
- package/dist/commands/release-view.js.map +1 -0
- package/dist/commands/release.d.ts +132 -0
- package/dist/commands/release.d.ts.map +1 -0
- package/dist/commands/release.js +198 -0
- package/dist/commands/release.js.map +1 -0
- package/dist/lib/ddc.d.ts +29 -0
- package/dist/lib/ddc.d.ts.map +1 -1
- package/dist/lib/ddc.js +37 -1
- package/dist/lib/ddc.js.map +1 -1
- package/dist/lib/env.d.ts +6 -0
- package/dist/lib/env.d.ts.map +1 -1
- package/dist/lib/env.js +12 -0
- package/dist/lib/env.js.map +1 -1
- package/dist/lib/eval-target.d.ts +39 -3
- package/dist/lib/eval-target.d.ts.map +1 -1
- package/dist/lib/eval-target.js +68 -8
- package/dist/lib/eval-target.js.map +1 -1
- package/dist/lib/eval-target.test.js +36 -3
- package/dist/lib/eval-target.test.js.map +1 -1
- package/dist/lib/registry-read.d.ts +27 -0
- package/dist/lib/registry-read.d.ts.map +1 -0
- package/dist/lib/registry-read.js +93 -0
- package/dist/lib/registry-read.js.map +1 -0
- package/dist/lib/release-review.d.ts +30 -0
- package/dist/lib/release-review.d.ts.map +1 -0
- package/dist/lib/release-review.js +72 -0
- package/dist/lib/release-review.js.map +1 -0
- package/dist/lib/vault-publish.d.ts +3 -1
- package/dist/lib/vault-publish.d.ts.map +1 -1
- package/dist/lib/vault-publish.js +5 -3
- package/dist/lib/vault-publish.js.map +1 -1
- package/package.json +6 -6
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"release-cli.js","sourceRoot":"","sources":["../../src/commands/release-cli.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGtC,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAsB,MAAM,cAAc,CAAC;AAE5F,OAAO,EAAE,UAAU,EAAmB,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAoB,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,WAAW,EAAE,eAAe,EAAyB,MAAM,uBAAuB,CAAC;AACjI,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAuB,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,iBAAiB,EAAuB,MAAM,WAAW,CAAC;AAC/F,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAmC,MAAM,cAAc,CAAC;AACnG,OAAO,EACL,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,UAAU,EACV,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,OAAO,EACP,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,UAAU,GAEX,MAAM,mBAAmB,CAAC;AAE3B,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAkE1C,SAAS,QAAQ,CAAC,GAAY;IAC5B,OAAO,GAAG;SACP,MAAM,CAAC,aAAa,EAAE,mEAAmE,CAAC;SAC1F,MAAM,CAAC,cAAc,EAAE,mEAAmE,CAAC;SAC3F,MAAM,CAAC,aAAa,EAAE,wDAAwD,CAAC;SAC/E,MAAM,CAAC,mBAAmB,EAAE,sDAAsD,CAAC;SACnF,MAAM,CAAC,sBAAsB,EAAE,uFAAuF,CAAC;SACvH,MAAM,CAAC,aAAa,EAAE,qFAAqF,CAAC;SAC5G,MAAM,CAAC,sBAAsB,EAAE,2DAA2D,CAAC;SAC3F,MAAM,CAAC,qBAAqB,EAAE,yEAAyE,CAAC;SACxG,MAAM,CAAC,QAAQ,EAAE,4BAA4B,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,UAAU,CAAC,GAAY;IAC9B,OAAO,QAAQ,CAAC,GAAG,CAAC;SACjB,MAAM,CAAC,mBAAmB,EAAE,8DAA8D,CAAC;SAC3F,MAAM,CAAC,iBAAiB,EAAE,4CAA4C,CAAC;SACvE,MAAM,CAAC,0BAA0B,EAAE,mEAAmE,CAAC;SACvG,MAAM,CAAC,oBAAoB,EAAE,mGAAmG,CAAC;SACjI,MAAM,CAAC,mBAAmB,EAAE,yCAAyC,CAAC;SACtE,MAAM,CAAC,iBAAiB,EAAE,kFAAkF,CAAC;SAC7G,MAAM,CAAC,eAAe,EAAE,sGAAsG,CAAC;SAC/H,MAAM,CAAC,sBAAsB,EAAE,0EAA0E,CAAC;SAC1G,MAAM,CAAC,uBAAuB,EAAE,uEAAuE,CAAC;SACxG,MAAM,CAAC,2BAA2B,EAAE,iDAAiD,CAAC;SACtF,MAAM,CAAC,gBAAgB,EAAE,sCAAsC,EAAE,QAAQ,CAAC,CAAC;AAChF,CAAC;AAaD,KAAK,UAAU,SAAS,CAAC,CAAW,EAAE,KAAiC;IACrE,MAAM,GAAG,GAAG,KAAK,EAAE,EAAE,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACvC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;IAC3D,IAAI,QAAiC,CAAC;IACtC,IAAI,CAAC;QACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAA4B,CAAC;IACpF,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,YAAY,CAAC,6BAA6B,IAAI,+BAA+B,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACxI,CAAC;IACD,MAAM,UAAU,GAAG,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;IACpG,MAAM,KAAK,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,OAAO,QAAQ,CAAC,kBAAkB,KAAK,QAAQ,IAAI,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACvJ,MAAM,MAAM,GAAG,QAAQ,CAAC,MAA4C,CAAC;IACrE,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,MAAM,EAAE,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACnH,OAAO;QACL,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU;QAC5C,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxD,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9B,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,CAAW,EAAE,KAAY,EAAE,SAAwB;IACtE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAClB,MAAM,IAAI,YAAY,CAAC,qHAAqH,CAAC,CAAC;IAChJ,CAAC;IACD,OAAO,cAAc,CAAC;QACpB,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG;QAC7D,QAAQ,EAAE,KAAK,CAAC,MAAM;QACtB,KAAK,EAAE,KAAK,CAAC,UAAU;QACvB,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,eAAe,CAAC,CAAW,EAAE,SAAwB,EAAE,OAAgC,EAAE,KAAK,GAAG,eAAe;IACvH,MAAM,WAAW,GAAG,CAAC,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IAC/D,OAAO,iBAAiB,CAAC;QACvB,QAAQ,EAAE,CAAC,CAAC,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY;QACrF,KAAK;QACL,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9D,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpC,CAAC,CAAC;AACL,CAAC;AAED,gGAAgG;AAChG,SAAS,cAAc,CAAC,IAAsB,EAAE,KAAY;IAC1D,OAAO,KAAK,IAAI,EAAE;QAChB,IAAI,CAAC,KAAK,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QACjC,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAAE,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;QAC5F,OAAO,GAAG,CAAC,CAAC,CAAE,GAAG,CAAC,WAAmE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/F,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,GAAW;IAC7B,MAAM,GAAG,GAAG,KAAK,EAAE,GAAG,IAAc,EAA0B,EAAE;QAC9D,IAAI,CAAC;YACH,OAAO,CAAC,MAAM,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACnE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC,CAAC;IACF,OAAO;QACL,KAAK,CAAC,IAAI;YACR,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;YAC9C,IAAI,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC;YACzB,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC;YAC/D,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QAC/C,CAAC;QACD,KAAK,CAAC,aAAa,CAAC,KAAK;YACvB,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,KAAK,QAAQ,CAAC,CAAC;YAC9D,OAAO,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC/D,CAAC;QACD,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,aAAa,CAAC;QAClD,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC;KACpC,CAAC;AACJ,CAAC;AAED,MAAM,GAAG,GAAG,CAAC,CAAa,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;AAElG,uDAAuD;AACvD,KAAK,UAAU,UAAU,CAAC,CAAY,EAAE,KAAY,EAAE,IAAwB;IAI5E,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACvD,MAAM,IAAI,GAAG,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAChD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9C,MAAM,WAAW,GAAG,CAAC,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IAC/D,wGAAwG;IACxG,IAAI,MAAM,GAAkC,IAAI,CAAC;IACjD,IAAI,MAAM,GAAuB,IAAI,CAAC;IACtC,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE;WACxB,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAE,KAAK,CAAC,QAAQ,CAAC,cAA4B,CAAC,IAAI,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;WACvK,sBAAsB,CAAC;IAC5B,MAAM,KAAK,GAAG,KAAK,IAA0B,EAAE;QAC7C,IAAI,MAAM,KAAK,IAAI;YAAE,MAAM,GAAG,MAAM,UAAU,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAClN,MAAM,KAAK,MAAM,SAAS,CAAC;YACzB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChD,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxC,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3B,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IACF,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC;IAC9C,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,CAAC;QAAE,MAAM,IAAI,YAAY,CAAC,8DAA8D,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC;IACxJ,MAAM,KAAK,GAAkC;QAC3C,QAAQ;QACR,WAAW,EAAE,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC;QACxC,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,cAAc,CAAC,MAAM,KAAK,EAAE,EAAE,KAAK,CAAC;QACvD,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO;YAClC,IAAI,CAAC,KAAK,CAAC,QAAQ;gBAAE,MAAM,IAAI,YAAY,CAAC,0DAA0D,CAAC,CAAC;YACxG,MAAM,CAAC,GAAG,MAAM,KAAK,EAAE,CAAC;YACxB,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,UAAU,CAClD,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EACpK,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAC3C,CAAC;YACF,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YACtD,MAAM,YAAY,GAAG,iBAAiB,CAAC,MAAM,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC;YACjG,MAAM,MAAM,GAAG,qBAAqB,CAAC,YAAY,CAAC,CAAC;YACnD,OAAO,OAAO,CAAC;gBACb,KAAK,EAAE,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,OAAO;gBAC9E,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,EAAE,SAAS;gBAC3D,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3C,IAAI,EAAE,oBAAoB,OAAO,EAAE;gBACnC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE;oBAChB,IAAI,CAAC,CAAC,CAAC,IAAI;wBAAE,OAAO,CAAC,KAAK,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;gBACzK,CAAC;aACF,CAAC,CAAC;QACL,CAAC;QACD,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC;YACrC,KAAK,EAAE,CAAC;YACR,OAAO,EAAE,CAAC,CAAC,gBAAgB,IAAI,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,gBAAgB;YAChE,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpH,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtH,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACzD,CAAC;QACF,KAAK,CAAC,MAAM;YACV,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACpB,MAAM,GAAG,MAAM,UAAU,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YACtN,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC3C,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACjH,CAAC;QACD,GAAG;QACH,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC;QACnC,GAAG,IAAI,CAAC,KAAK;KACd,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AAC7B,CAAC;AAED,SAAS,cAAc;IACrB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IACpE,OAAO,KAAK,EAAE,CAAC,EAAE,EAAE;QACjB,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7E,IAAI,CAAC;YACH,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACzD,CAAC;gBAAS,CAAC;YACT,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,6EAA6E;AAC7E,KAAK,UAAU,aAAa,CAAC,IAAY,EAAE,KAAa;IACtD,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IACrD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,GAAI,CAAwB,CAAC,IAAI,CAAC;QAC5C,MAAM,GAAG,GAAG,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACtI,MAAM,IAAI,YAAY,CAAC,0CAA0C,KAAK,KAAK,GAAG,EAAE,CAAC,CAAC;IACpF,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAgB,EAAE,IAAwB;IAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,CAAS,EAAE,EAAE,GAAG,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChF,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC;IAElC,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SACnD,QAAQ,CAAC,WAAW,EAAE,oEAAoE,CAAC;SAC3F,WAAW,CAAC,+KAA+K,CAAC;SAC5L,MAAM,CAAC,gBAAgB,EAAE,2EAA2E,CAAC;SACrG,MAAM,CAAC,gBAAgB,EAAE,qEAAqE,CAAC;SAC/F,MAAM,CAAC,qBAAqB,EAAE,oCAAoC,CAAC;QACpE,+CAA+C;SAC9C,MAAM,CAAC,0BAA0B,EAAE,yHAAyH,CAAC;SAC7J,MAAM,CAAC,wBAAwB,EAAE,sEAAsE,CAAC;SACxG,MAAM,CAAC,2BAA2B,EAAE,0FAA0F,CAAC;SAC/H,MAAM,CAAC,mBAAmB,EAAE,qGAAqG,CAAC;SAClI,MAAM,CAAC,uBAAuB,EAAE,yCAAyC,CAAC;SAC1E,MAAM,CAAC,uBAAuB,EAAE,0DAA0D,CAAC;SAC3F,MAAM,CAAC,kBAAkB,EAAE,sDAAsD,CAAC;SAClF,MAAM,CAAC,iBAAiB,EAAE,kEAAkE,CAAC;QAC9F,gEAAgE;SAC/D,uBAAuB,EAAE;SACzB,MAAM,CAAC,KAAK,EAAE,OAA2B,EAAE,CAAc,EAAE,EAAE;QAC5D,IAAI,CAAC;YACH,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS;gBAAE,MAAM,IAAI,YAAY,CAAC,sDAAsD,CAAC,CAAC;YACvI,MAAM,KAAK,GAAG,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAC/I,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS;gBAAE,MAAM,IAAI,YAAY,CAAC,mFAAmF,CAAC,CAAC;YACrK,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YAC3C,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YACnD,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAC9B,MAAM,SAAS,GAAiB;gBAC9B,GAAG,KAAK;gBACR,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE;oBACtD,MAAM,MAAM,GAAG;wBACb,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,GAAG;wBACpE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK;wBAC5C,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACpC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBAClE,CAAC;oBACF,MAAM,IAAI,GAAmB,CAAC,CAAC,KAAK,KAAK,SAAS;wBAChD,CAAC,CAAC;4BACA,GAAG,MAAM;4BACT,KAAK,EAAE;gCACL,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,UAAW;gCACtC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gCAC/C,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gCAChD,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gCAC3D,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;6BACzD;yBACF;wBACD,CAAC,CAAC;4BACA,GAAG,MAAM;4BACT,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,IAAI,YAAY,CAAC,0FAA0F,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;4BACzJ,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC;4BAC9C,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;4BAC3D,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;4BACxD,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;4BAC9D,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;4BAC/C,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;yBACjC,CAAC;oBACJ,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC;gBACnB,CAAC;aACF,CAAC;YACF,MAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACnC,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC;gBAC/B,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7C,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpD,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU;gBAC1B,KAAK,EAAE,SAAS;gBAChB,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI;oBAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;aACxF,CAAC,CAAC;YACH,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC;YACtD,IAAI,CAAC,CAAC,IAAI;gBAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;;gBACrD,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAC7J,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;gBAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;SAC9B,WAAW,CAAC,0EAA0E,CAAC;SACvF,MAAM,CAAC,KAAK,EAAE,CAAW,EAAE,EAAE;QAC5B,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YAC3C,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,cAAc,CAAC,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;YAC1I,IAAI,CAAC,CAAC,IAAI;gBAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;;gBAClD,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1G,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;SACxC,WAAW,CAAC,oEAAoE,CAAC;SACjF,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,CAAW,EAAE,EAAE;QAC7C,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YAC3C,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YACvD,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,QAAQ,EAAE,MAAM,cAAc,CAAC,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;YAC7G,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;YACpD,IAAI,CAAC,GAAG;gBAAE,MAAM,IAAI,YAAY,CAAC,iBAAiB,KAAK,CAAC,UAAU,mBAAmB,OAAO,EAAE,CAAC,CAAC;YAChG,IAAI,CAAC,CAAC,IAAI;gBAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;;gBACjD,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;QACvG,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;SAC1C,WAAW,CAAC,qEAAqE,CAAC;SAClF,MAAM,CAAC,KAAK,EAAE,CAAS,EAAE,CAAS,EAAE,CAAW,EAAE,EAAE;QAClD,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YAC3C,MAAM,CAAC,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1E,IAAI,CAAC,CAAC,IAAI;gBAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;;gBAC/C,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC5D,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;SAC3C,WAAW,CAAC,wHAAwH,CAAC;SACrI,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,CAAY,EAAE,EAAE;QAC9C,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YAC3C,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YACnD,MAAM,CAAC,GAAG,MAAM,QAAQ,CAAC;gBACvB,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU;gBACjE,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,EAAE;aAC5F,CAAC,CAAC;YACH,MAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACnC,IAAI,CAAC,CAAC,IAAI;gBAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;iBAC/C,CAAC;gBACJ,OAAO,CAAC,GAAG,CAAC;oBACV,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,OAAO,cAAc,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;oBAC5E,EAAE;oBACF,GAAG,gBAAgB,CAAC,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;oBACpF,GAAG,oBAAoB,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;oBACzC,EAAE;oBACF,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,oBAAoB,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,OAAO,OAAO,GAAG;iBAC7F,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAChB,CAAC;YACD,IAAI,CAAC,CAAC,CAAC,MAAM;gBAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC;AAiCD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAe,EACf,CAAoB,EACpB,IAEC;IAED,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,CAAC,KAAK,CAAC,QAAQ;QAAE,MAAM,IAAI,YAAY,CAAC,+DAA+D,CAAC,CAAC;IAC7G,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS;QAAE,MAAM,IAAI,YAAY,CAAC,oFAAoF,CAAC,CAAC;IACtK,MAAM,IAAI,GAAG,eAAe,CAAC;QAC3B,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtD,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAClE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,cAAc,EAAE,CAAC;IACrF,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,IAAI,iBAAiB,CAAC;IAC5D,IAAI,IAAuC,CAAC;IAC5C,MAAM,KAAK,GAAuB;QAChC,QAAQ;QACR,WAAW,EAAE,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC;QACxC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI;YACpB,IAAI,GAAY,CAAC;YACjB,IAAI,CAAC;gBACH,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,kBAAkB,OAAO,gBAAgB,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE;oBAC/G,UAAU,EAAE,GAAG;oBACf,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACzC,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI;iBACrB,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,iEAAiE;gBACjE,MAAM,GAAG,GAAG,CAAyC,CAAC;gBACtD,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;oBACvB,MAAM,IAAI,YAAY,CAAC,8EAA8E,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;gBACjK,CAAC;gBACD,MAAM,CAAC,CAAC;YACV,CAAC;YACD,MAAM,QAAQ,GAAI,GAAqC,EAAE,QAAQ,CAAC;YAClE,OAAO,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QAC7D,CAAC;QACD,UAAU,EAAE,KAAK,IAAI,EAAE,GAAG,MAAM,IAAK,EAAE,CAAC,CAAC,CAAC;QAC1C,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChC,CAAC;IACF,MAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACnC,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IACvE,IAAI,CAAC,CAAC,CAAC,IAAI;QAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/D,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QACnD,IAAI,CAAC,CAAC,IAAI;YAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;;YAC7F,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,mBAAmB,CAAC,CAAC;QAChD,OAAO;IACT,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;QACb,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;YAAE,YAAY,CAAC,IAAI,EAAE,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;QACxE,MAAM,KAAK,GAAG;YACZ,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,EAAE,CAAC;YACrF,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACnF,CAAC;QACF,IAAI,CAAC,CAAC,IAAI;YAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;aAC9E,CAAC;YACJ,IAAI,KAAK,CAAC,UAAU;gBAAE,OAAO,CAAC,GAAG,CAAC,gCAAgC,kBAAkB,mBAAmB,OAAO,EAAE,CAAC,CAAC;YAClH,IAAI,KAAK,CAAC,MAAM;gBAAE,OAAO,CAAC,GAAG,CAAC,oCAAoC,IAAI,CAAC,MAAM,IAAI,SAAS,OAAO,OAAO,EAAE,CAAC,CAAC;YAC5G,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO;IACT,CAAC;IACD,4EAA4E;IAC5E,iCAAiC;IACjC,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,GAAG,MAAM,OAAO,CAAC;YACnB,KAAK,EAAE,KAAK,CAAC,UAAU;YACvB,OAAO;YACP,GAAG;YACH,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS;gBACvB,CAAC,CAAC;oBACA,KAAK,EAAE;wBACL,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,UAAW;wBACtC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC/C,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAChD,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC3D,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBACzD;oBACD,QAAQ;iBACT;gBACD,CAAC,CAAC;oBACA,MAAM,EAAE,KAAK,CAAC,MAAO;oBACrB,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC;oBAC9C,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC3D,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC9D,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC9D,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACrD,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACjC,CAAC;SACL,CAAC,CAAC;IACL,CAAC;IACD,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,CAAC,cAAc,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;QAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC5H,MAAM,CAAC,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACjJ,IAAI,CAAC,CAAC,IAAI;QAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;SAC/D,IAAI,CAAC,CAAC,CAAC,QAAQ;QAAE,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACnD,mFAAmF;IACnF,IAAI,CAAC,CAAC,CAAC,QAAQ;QAAE,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,CAAS,EAAE,EAAE,GAAG,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAChF,IAAI,aAAa,CAAC,IAAI,CAAC;QAAE,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,wCAAwC,CAAC,CAAC;;QACzF,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3G,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAAe,EAAE,OAAe;IACrE,IAAI,QAAiB,CAAC;IACtB,IAAI,CAAC;QACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,eAAe,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACjG,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACpD,OAAO,cAAc,OAAO,8EAA8E;UACtG,+FAA+F,CAAC;AACtG,CAAC"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How `cef release`, `cef release list|show|diff`, `cef check` and
|
|
3
|
+
* `cef deploy <version>` print — the board's terminal format — and the
|
|
4
|
+
* release-aware deploy itself.
|
|
5
|
+
*
|
|
6
|
+
* Colour only on a terminal (and never with $NO_COLOR): green ✓, yellow ⚠,
|
|
7
|
+
* red ✗, dim for the meta lines, bold for the verdict. `--json` prints the
|
|
8
|
+
* data instead, for agents.
|
|
9
|
+
*/
|
|
10
|
+
import { type ReleaseBlock, type ReleaseMark, type ReleaseReview, type WorkflowDiff } from "@cef-ai/eval";
|
|
11
|
+
import type { RegistryReader } from "../lib/registry-read.js";
|
|
12
|
+
import type { DatasetResult, LiveRow, ReleaseHead, ReleaseOutcome } from "./release.js";
|
|
13
|
+
export interface Paint {
|
|
14
|
+
ok(s: string): string;
|
|
15
|
+
warn(s: string): string;
|
|
16
|
+
err(s: string): string;
|
|
17
|
+
dim(s: string): string;
|
|
18
|
+
bold(s: string): string;
|
|
19
|
+
}
|
|
20
|
+
export declare function paint(on: boolean): Paint;
|
|
21
|
+
/** Colour when `stream` is a terminal and $NO_COLOR is unset. */
|
|
22
|
+
export declare const paintFor: (stream: {
|
|
23
|
+
isTTY?: boolean;
|
|
24
|
+
}) => Paint;
|
|
25
|
+
/** `hiring-screener · content a91c3e0 · from 0.4.2` and the notes line. */
|
|
26
|
+
export declare function formatReleaseHead(h: ReleaseHead, p: Paint): string[];
|
|
27
|
+
/** Step labels by node id, for review findings. */
|
|
28
|
+
export declare function stepLabels(graph: unknown): Record<string, string>;
|
|
29
|
+
/** The Review row and its findings. */
|
|
30
|
+
export declare function formatReviewRows(review: ReleaseReview | undefined, labels: Record<string, string>, p: Paint): string[];
|
|
31
|
+
/** One row per required dataset: `golden ✓ 0.93 live 0.91 required`. */
|
|
32
|
+
export declare function formatExperimentRows(experiments: DatasetResult[], p: Paint): string[];
|
|
33
|
+
/** Where a release is shown in ROC. */
|
|
34
|
+
export declare function releaseLink(roc: string, asPubkey: string | undefined, workflowId: string, version: string): string | null;
|
|
35
|
+
/** Everything after the head: the checks, then the verdict. */
|
|
36
|
+
export declare function formatReleaseBody(o: ReleaseOutcome, graph: unknown, p: Paint, link: string | null): string[];
|
|
37
|
+
export interface ReleaseRow {
|
|
38
|
+
version: string;
|
|
39
|
+
title: string;
|
|
40
|
+
mark: ReleaseMark;
|
|
41
|
+
/** Share of the default traffic it serves, 0–100; absent when not live. */
|
|
42
|
+
live?: number;
|
|
43
|
+
author?: string;
|
|
44
|
+
createdAt?: string;
|
|
45
|
+
release?: ReleaseBlock;
|
|
46
|
+
}
|
|
47
|
+
/** Every numbered release, newest first, read from the registry. */
|
|
48
|
+
export declare function listReleases(registry: RegistryReader, rows: LiveRow[] | null): Promise<ReleaseRow[]>;
|
|
49
|
+
/** `today`, else `27 Oct`. */
|
|
50
|
+
export declare function shortDate(iso: string | undefined, now: Date): string;
|
|
51
|
+
export declare function markText(m: ReleaseMark, short?: boolean): string;
|
|
52
|
+
export declare function formatReleaseList(rows: ReleaseRow[], p: Paint, now: Date): string;
|
|
53
|
+
export declare function formatReleaseShow(row: ReleaseRow, p: Paint, graph: unknown): string;
|
|
54
|
+
export declare function formatDiff(d: WorkflowDiff, p: Paint): string;
|
|
55
|
+
/** The graph a version's manifest carries. */
|
|
56
|
+
export declare function graphOf(registry: RegistryReader, version: string): Promise<unknown>;
|
|
57
|
+
export declare function diffReleases(registry: RegistryReader, a: string, b: string): Promise<WorkflowDiff>;
|
|
58
|
+
export interface DeployReleasePorts {
|
|
59
|
+
registry: RegistryReader;
|
|
60
|
+
deployments(): Promise<Array<LiveRow & Record<string, unknown>> | null>;
|
|
61
|
+
/** Upsert one row (`PUT …/deployments/<name>`); resolves to the new revision. */
|
|
62
|
+
upsert(row: Record<string, unknown>, note: string): Promise<number | undefined>;
|
|
63
|
+
/**
|
|
64
|
+
* Point the registry's `latest` at the version. vault-api delivers a
|
|
65
|
+
* workflow's events, schedules and webhooks from the manifest `latest`
|
|
66
|
+
* names, so it follows what is deployed.
|
|
67
|
+
*/
|
|
68
|
+
moveLatest(version: string): Promise<void>;
|
|
69
|
+
/** Interactive yes/no; undefined when there is no terminal to ask on. */
|
|
70
|
+
confirm?: (question: string) => Promise<boolean>;
|
|
71
|
+
}
|
|
72
|
+
export interface DeployReleasePlan {
|
|
73
|
+
workflowId: string;
|
|
74
|
+
version: string;
|
|
75
|
+
title: string;
|
|
76
|
+
mark: ReleaseMark;
|
|
77
|
+
/** What it replaces: `0.4.2 (live, 100%)`, or several rows of a split. */
|
|
78
|
+
replaces: Array<{
|
|
79
|
+
version: string;
|
|
80
|
+
share: number;
|
|
81
|
+
}>;
|
|
82
|
+
/** The version the registry's `latest` names now; null when none. */
|
|
83
|
+
latest: string | null;
|
|
84
|
+
}
|
|
85
|
+
/** The DEFAULT deployment row ROC deploys and rolls back through. */
|
|
86
|
+
export declare const DEFAULT_DEPLOYMENT = "default";
|
|
87
|
+
export declare function planReleaseDeploy(workflowId: string, version: string, ports: DeployReleasePorts): Promise<DeployReleasePlan>;
|
|
88
|
+
/** The release already serves all of the default traffic. */
|
|
89
|
+
export declare function isAlreadyLive(plan: DeployReleasePlan): boolean;
|
|
90
|
+
export declare function formatDeployPlan(plan: DeployReleasePlan, p: Paint): string[];
|
|
91
|
+
/**
|
|
92
|
+
* The "default" row a release deploy repoints — refused unless repointing it
|
|
93
|
+
* makes the release serve ALL of the default traffic. Live is the lowest-
|
|
94
|
+
* priority tier of enabled, untargeted rows, so another row there (a split, a
|
|
95
|
+
* canary, a disabled "default") would keep serving and "Deployed" would be a
|
|
96
|
+
* lie. Splits are out of scope for `cef deploy <version>`.
|
|
97
|
+
*/
|
|
98
|
+
export declare function rowToRepoint(plan: Pick<DeployReleasePlan, "workflowId" | "version">, rows: Array<LiveRow & Record<string, unknown>> | null): LiveRow & Record<string, unknown>;
|
|
99
|
+
/**
|
|
100
|
+
* Make a release live at 100%: repoint the default deployment row at it, the
|
|
101
|
+
* way ROC's Deploy and Roll back do, then point `latest` at it. A release with
|
|
102
|
+
* review warnings needs a yes on a terminal, or `--accept-warnings` without
|
|
103
|
+
* one.
|
|
104
|
+
*
|
|
105
|
+
* The row moves first: it is what serves runs, and `latest` only decides which
|
|
106
|
+
* version's triggers vault-api delivers. When the row moved and `latest` did
|
|
107
|
+
* not, the error says so and a re-run finishes it (an already-live release
|
|
108
|
+
* only moves `latest`).
|
|
109
|
+
*/
|
|
110
|
+
export declare function deployRelease(plan: DeployReleasePlan, ports: DeployReleasePorts, opts: {
|
|
111
|
+
acceptWarnings?: boolean;
|
|
112
|
+
author?: string;
|
|
113
|
+
}): Promise<{
|
|
114
|
+
revision?: number;
|
|
115
|
+
deployed: boolean;
|
|
116
|
+
movedLatest: boolean;
|
|
117
|
+
}>;
|
|
118
|
+
//# sourceMappingURL=release-view.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"release-view.d.ts","sourceRoot":"","sources":["../../src/commands/release-view.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,321 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How `cef release`, `cef release list|show|diff`, `cef check` and
|
|
3
|
+
* `cef deploy <version>` print — the board's terminal format — and the
|
|
4
|
+
* release-aware deploy itself.
|
|
5
|
+
*
|
|
6
|
+
* Colour only on a terminal (and never with $NO_COLOR): green ✓, yellow ⚠,
|
|
7
|
+
* red ✗, dim for the meta lines, bold for the verdict. `--json` prints the
|
|
8
|
+
* data instead, for agents.
|
|
9
|
+
*/
|
|
10
|
+
import { diffWorkflows, isCandidateVersion, isReleaseVersion, releaseMark, releaseOf, releasesNewestFirst, reviewRuleName, shortHash, workflowContentOf, } from "@cef-ai/eval";
|
|
11
|
+
import { liveShares, servingTier } from "../lib/eval-target.js";
|
|
12
|
+
import { ReleaseError, SKIP_REVIEW_REASON } from "./release.js";
|
|
13
|
+
const wrap = (on, open) => (s) => (on ? `\x1b[${open}m${s}\x1b[0m` : s);
|
|
14
|
+
export function paint(on) {
|
|
15
|
+
return { ok: wrap(on, "32"), warn: wrap(on, "33"), err: wrap(on, "31"), dim: wrap(on, "2"), bold: wrap(on, "1") };
|
|
16
|
+
}
|
|
17
|
+
/** Colour when `stream` is a terminal and $NO_COLOR is unset. */
|
|
18
|
+
export const paintFor = (stream) => paint(!!stream.isTTY && !process.env.NO_COLOR);
|
|
19
|
+
const pad = (s, n) => (s.length >= n ? `${s} ` : s.padEnd(n));
|
|
20
|
+
const rate = (r) => (r == null ? "n/a" : r.toFixed(2));
|
|
21
|
+
/* ------------------------------------------------------------------------ */
|
|
22
|
+
/* cef release */
|
|
23
|
+
/* ------------------------------------------------------------------------ */
|
|
24
|
+
/** `hiring-screener · content a91c3e0 · from 0.4.2` and the notes line. */
|
|
25
|
+
export function formatReleaseHead(h, p) {
|
|
26
|
+
const lines = [p.dim(`${h.workflowId} · content ${shortHash(h.contentHash)}${h.from ? ` · from ${h.from}` : ""}`)];
|
|
27
|
+
if (h.notesFrom) {
|
|
28
|
+
const n = h.notesFrom.commits;
|
|
29
|
+
lines.push(p.dim(`notes: ${n} commit${n === 1 ? "" : "s"} since ${h.notesFrom.since} (edit with --notes or --notes-file)`));
|
|
30
|
+
}
|
|
31
|
+
else if (!h.notesGiven) {
|
|
32
|
+
lines.push(p.dim("notes: none (add with --notes or --notes-file)"));
|
|
33
|
+
}
|
|
34
|
+
return lines;
|
|
35
|
+
}
|
|
36
|
+
/** Step labels by node id, for review findings. */
|
|
37
|
+
export function stepLabels(graph) {
|
|
38
|
+
const out = {};
|
|
39
|
+
const nodes = graph?.nodes ?? [];
|
|
40
|
+
for (const n of nodes) {
|
|
41
|
+
if (typeof n?.id !== "string")
|
|
42
|
+
continue;
|
|
43
|
+
const params = (n.params ?? {});
|
|
44
|
+
const label = [n.label, params.label, params.name].find((v) => typeof v === "string" && v.trim() !== "");
|
|
45
|
+
out[n.id] = label ?? n.id;
|
|
46
|
+
}
|
|
47
|
+
return out;
|
|
48
|
+
}
|
|
49
|
+
/** The Review row and its findings. */
|
|
50
|
+
export function formatReviewRows(review, labels, p) {
|
|
51
|
+
if (!review)
|
|
52
|
+
return [` ${pad("Review", 13)}${p.dim("not run")}`];
|
|
53
|
+
if (review.status === "skipped") {
|
|
54
|
+
// Asked to skip, or it failed to run: either way, not a review.
|
|
55
|
+
const label = review.reason === SKIP_REVIEW_REASON ? "skipped" : "not run";
|
|
56
|
+
return [` ${pad("Review", 13)}${pad(label, 22)}${p.dim(review.reason ?? "")}`];
|
|
57
|
+
}
|
|
58
|
+
if (review.status === "clean")
|
|
59
|
+
return [` ${pad("Review", 13)}${p.ok("✓ clean")}`];
|
|
60
|
+
const n = review.findings.length;
|
|
61
|
+
const lines = [` ${pad("Review", 13)}${p.warn(pad(`⚠ ${n} warning${n === 1 ? "" : "s"}`, 22))}${p.dim("does not block")}`];
|
|
62
|
+
const names = review.findings.map((f) => (f.step ? labels[f.step] ?? f.step : reviewRuleName(f.rule)));
|
|
63
|
+
const w = Math.max(...names.map((s) => s.length)) + 2;
|
|
64
|
+
review.findings.forEach((f, i) => lines.push(` ${pad(names[i], w)}${f.text}`));
|
|
65
|
+
return lines;
|
|
66
|
+
}
|
|
67
|
+
/** One row per required dataset: `golden ✓ 0.93 live 0.91 required`. */
|
|
68
|
+
export function formatExperimentRows(experiments, p) {
|
|
69
|
+
if (experiments.length === 0)
|
|
70
|
+
return [` ${pad("Experiments", 13)}${p.dim("No required experiments. Set them in Evaluations.")}`];
|
|
71
|
+
const lines = [];
|
|
72
|
+
for (const e of experiments) {
|
|
73
|
+
const mark = e.passed ? p.ok(pad(`✓ ${rate(e.accuracy)}`, 8)) : p.err(pad(`✗ ${rate(e.accuracy)}`, 8));
|
|
74
|
+
const against = e.rule.kind === "atLeast"
|
|
75
|
+
? `needs ${e.rule.value.toFixed(2)}`
|
|
76
|
+
: e.baseline ? (e.baseline.accuracy === null ? "no live run" : `live ${rate(e.baseline.accuracy)}`) : "nothing live";
|
|
77
|
+
lines.push(` ${pad(e.dataset, 13)}${mark}${pad(against, 14)}${p.dim(e.reused ? "required · reused" : "required")}`);
|
|
78
|
+
if (!e.passed) {
|
|
79
|
+
const n = e.failedCases ?? 0;
|
|
80
|
+
lines.push(` ${" ".repeat(13)}${n} failed: cef eval cases ${e.experimentId} --failed`);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return lines;
|
|
84
|
+
}
|
|
85
|
+
/** Where a release is shown in ROC. */
|
|
86
|
+
export function releaseLink(roc, asPubkey, workflowId, version) {
|
|
87
|
+
if (!asPubkey)
|
|
88
|
+
return null;
|
|
89
|
+
return `${roc.replace(/\/+$/, "")}/#/agent-services/${asPubkey}/workflows/${encodeURIComponent(workflowId)}?tab=releases&release=${encodeURIComponent(version)}`;
|
|
90
|
+
}
|
|
91
|
+
/** Everything after the head: the checks, then the verdict. */
|
|
92
|
+
export function formatReleaseBody(o, graph, p, link) {
|
|
93
|
+
const lines = ["", ...formatReviewRows(o.review, stepLabels(graph), p), ...formatExperimentRows(o.experiments, p), ""];
|
|
94
|
+
if (o.status === "blocked") {
|
|
95
|
+
const n = o.experiments.filter((e) => !e.passed).length;
|
|
96
|
+
lines.push(`${p.err("Not released.")} ${n} required dataset${n === 1 ? "" : "s"} failed.`);
|
|
97
|
+
return lines;
|
|
98
|
+
}
|
|
99
|
+
lines.push(`${p.bold(`Released ${o.head.version}`)} ${p.dim(`not deployed · ${o.live ? `live is ${o.live}` : "nothing is live"}`)}`);
|
|
100
|
+
if (link)
|
|
101
|
+
lines.push(p.dim(link));
|
|
102
|
+
return lines;
|
|
103
|
+
}
|
|
104
|
+
/** Every numbered release, newest first, read from the registry. */
|
|
105
|
+
export async function listReleases(registry, rows) {
|
|
106
|
+
const { versions } = await registry.record();
|
|
107
|
+
const shares = liveShares(rows);
|
|
108
|
+
return Promise.all(releasesNewestFirst(versions).map(async (version) => {
|
|
109
|
+
const manifest = await registry.manifest(version);
|
|
110
|
+
const release = releaseOf(manifest);
|
|
111
|
+
const card = (manifest?.card ?? {});
|
|
112
|
+
const title = release?.title ?? (typeof manifest?.goal === "string" ? manifest.goal : typeof card.description === "string" ? card.description : "");
|
|
113
|
+
const share = shares.get(version);
|
|
114
|
+
return {
|
|
115
|
+
version,
|
|
116
|
+
title,
|
|
117
|
+
mark: releaseMark(release),
|
|
118
|
+
...(share !== undefined ? { live: share } : {}),
|
|
119
|
+
...(release ? { author: authorName(release), createdAt: release.createdAt, release } : {}),
|
|
120
|
+
};
|
|
121
|
+
}));
|
|
122
|
+
}
|
|
123
|
+
function authorName(r) {
|
|
124
|
+
const a = r.author;
|
|
125
|
+
if (a.name?.trim())
|
|
126
|
+
return a.name.trim().split(/\s+/)[0];
|
|
127
|
+
if (a.email)
|
|
128
|
+
return a.email.split("@")[0];
|
|
129
|
+
return a.pubKey ? `${a.pubKey.slice(0, 8)}…` : "";
|
|
130
|
+
}
|
|
131
|
+
const MONTHS = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
|
|
132
|
+
/** `today`, else `27 Oct`. */
|
|
133
|
+
export function shortDate(iso, now) {
|
|
134
|
+
if (!iso)
|
|
135
|
+
return "";
|
|
136
|
+
const d = new Date(iso);
|
|
137
|
+
if (Number.isNaN(d.getTime()))
|
|
138
|
+
return "";
|
|
139
|
+
if (d.toDateString() === now.toDateString())
|
|
140
|
+
return "today";
|
|
141
|
+
return `${d.getDate()} ${MONTHS[d.getMonth()]}`;
|
|
142
|
+
}
|
|
143
|
+
export function markText(m, short = true) {
|
|
144
|
+
if (m.kind === "clean" && m.reviewNotRun)
|
|
145
|
+
return short ? "✓ no review" : "✓ experiments · AI review not run";
|
|
146
|
+
if (m.kind === "clean")
|
|
147
|
+
return "✓";
|
|
148
|
+
if (m.kind === "warnings")
|
|
149
|
+
return short ? `⚠ ${m.warnings}` : `⚠ ${m.warnings} review warning${m.warnings === 1 ? "" : "s"}`;
|
|
150
|
+
return "Not checked";
|
|
151
|
+
}
|
|
152
|
+
const paintMark = (m, s, p) => (m.kind === "clean" ? p.ok(s) : m.kind === "warnings" ? p.warn(s) : p.dim(s));
|
|
153
|
+
export function formatReleaseList(rows, p, now) {
|
|
154
|
+
if (rows.length === 0)
|
|
155
|
+
return "No releases yet. Make one with cef release.";
|
|
156
|
+
const tw = Math.min(24, Math.max(...rows.map((r) => r.title.length))) + 2;
|
|
157
|
+
return rows.map((r) => {
|
|
158
|
+
const title = r.title.length > 24 ? `${r.title.slice(0, 23)}…` : r.title;
|
|
159
|
+
const live = r.live !== undefined ? p.ok(pad(`live ${r.live}%`, 11)) : " ".repeat(11);
|
|
160
|
+
return ` ${pad(r.version, 7)}${pad(title, tw)}${paintMark(r.mark, pad(markText(r.mark), 12), p)}${live}${pad(r.author ?? "", 6)}${shortDate(r.createdAt, now)}`.trimEnd();
|
|
161
|
+
}).join("\n");
|
|
162
|
+
}
|
|
163
|
+
export function formatReleaseShow(row, p, graph) {
|
|
164
|
+
const r = row.release;
|
|
165
|
+
const lines = [p.bold(`${row.version} ${row.title}`.trimEnd())];
|
|
166
|
+
if (!r) {
|
|
167
|
+
lines.push(p.dim(`released before checks existed · ${row.live !== undefined ? `live ${row.live}%` : "not deployed"}`));
|
|
168
|
+
lines.push("", "AI review and experiments: not run. cef check " + row.version + " runs them.");
|
|
169
|
+
return lines.join("\n");
|
|
170
|
+
}
|
|
171
|
+
const who = r.author.name ?? r.author.email ?? (r.author.pubKey ? `${r.author.pubKey.slice(0, 10)}…` : "unknown");
|
|
172
|
+
lines.push(p.dim([
|
|
173
|
+
`released by ${who}, ${r.createdAt.replace("T", " ").slice(0, 16)}`,
|
|
174
|
+
r.source === "cli" ? "from the CLI" : "from the editor",
|
|
175
|
+
`content ${shortHash(r.contentHash)}`,
|
|
176
|
+
row.live !== undefined ? `live ${row.live}%` : "not deployed",
|
|
177
|
+
].join(" · ")));
|
|
178
|
+
if (r.commit)
|
|
179
|
+
lines.push(p.dim(`commit ${r.commit.slice(0, 12)}${r.repo ? ` · ${r.repo}` : ""}`));
|
|
180
|
+
if (r.notes.trim())
|
|
181
|
+
lines.push("", "Notes", ...r.notes.split("\n").map((l) => ` ${l}`));
|
|
182
|
+
lines.push("", ...formatReviewRows(r.checks.review, stepLabels(graph), p));
|
|
183
|
+
const review = r.checks.review;
|
|
184
|
+
if (review && review.status !== "skipped") {
|
|
185
|
+
for (const f of review.findings)
|
|
186
|
+
if (f.fix)
|
|
187
|
+
lines.push(p.dim(` fix: ${f.fix}`));
|
|
188
|
+
if (review.passed.length)
|
|
189
|
+
lines.push(p.dim(` ${review.passed.length} passed: ${review.passed.map(reviewRuleName).join(", ")}`));
|
|
190
|
+
}
|
|
191
|
+
lines.push(...formatExperimentRows(r.checks.experiments, p));
|
|
192
|
+
return lines.join("\n");
|
|
193
|
+
}
|
|
194
|
+
export function formatDiff(d, p) {
|
|
195
|
+
if (d.changes.length === 0)
|
|
196
|
+
return " No changes to the graph.";
|
|
197
|
+
const w = Math.max(...d.changes.map((c) => c.label.length)) + 2;
|
|
198
|
+
return d.changes.map((c) => {
|
|
199
|
+
const sym = c.kind === "added" ? p.ok("+") : c.kind === "removed" ? p.err("−") : p.warn("~");
|
|
200
|
+
return ` ${sym} ${pad(c.label, w)}${c.detail}`;
|
|
201
|
+
}).join("\n");
|
|
202
|
+
}
|
|
203
|
+
/** The graph a version's manifest carries. */
|
|
204
|
+
export async function graphOf(registry, version) {
|
|
205
|
+
const m = await registry.manifest(version);
|
|
206
|
+
if (!m)
|
|
207
|
+
throw new ReleaseError(`[cef release] ${version} does not exist`);
|
|
208
|
+
return workflowContentOf(m).graph;
|
|
209
|
+
}
|
|
210
|
+
export async function diffReleases(registry, a, b) {
|
|
211
|
+
return diffWorkflows(await graphOf(registry, a), await graphOf(registry, b));
|
|
212
|
+
}
|
|
213
|
+
/** The DEFAULT deployment row ROC deploys and rolls back through. */
|
|
214
|
+
export const DEFAULT_DEPLOYMENT = "default";
|
|
215
|
+
export async function planReleaseDeploy(workflowId, version, ports) {
|
|
216
|
+
if (isCandidateVersion(version))
|
|
217
|
+
throw new ReleaseError(`[cef deploy] ${version} is a check candidate, not a release`);
|
|
218
|
+
if (!isReleaseVersion(version))
|
|
219
|
+
throw new ReleaseError(`[cef deploy] deploy takes a release number X.Y.Z (got "${version}")`);
|
|
220
|
+
const { versions, latest } = await ports.registry.record();
|
|
221
|
+
if (!versions.includes(version))
|
|
222
|
+
throw new ReleaseError(`[cef deploy] ${workflowId} has no release ${version}`);
|
|
223
|
+
const manifest = await ports.registry.manifest(version);
|
|
224
|
+
const release = releaseOf(manifest);
|
|
225
|
+
const shares = liveShares(await ports.deployments());
|
|
226
|
+
return {
|
|
227
|
+
workflowId,
|
|
228
|
+
version,
|
|
229
|
+
title: release?.title ?? "",
|
|
230
|
+
mark: releaseMark(release),
|
|
231
|
+
replaces: [...shares].map(([v, share]) => ({ version: v, share })),
|
|
232
|
+
latest,
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
/** The release already serves all of the default traffic. */
|
|
236
|
+
export function isAlreadyLive(plan) {
|
|
237
|
+
return plan.replaces.length === 1 && plan.replaces[0].version === plan.version && plan.replaces[0].share === 100;
|
|
238
|
+
}
|
|
239
|
+
export function formatDeployPlan(plan, p) {
|
|
240
|
+
const replaces = plan.replaces.length === 0
|
|
241
|
+
? "nothing is live"
|
|
242
|
+
: plan.replaces.length === 1
|
|
243
|
+
? `replaces ${plan.replaces[0].version} (live, ${plan.replaces[0].share}%)`
|
|
244
|
+
: `replaces ${plan.replaces.map((r) => `${r.version} at ${r.share}%`).join(", ")}`;
|
|
245
|
+
return [
|
|
246
|
+
p.dim(plan.workflowId),
|
|
247
|
+
` ${pad(plan.version, 7)}${pad(plan.title, 25)}${paintMark(plan.mark, markText(plan.mark, false), p)}`.trimEnd(),
|
|
248
|
+
` ${replaces}`,
|
|
249
|
+
// Allowed — it is how a version from before checks is rolled back to —
|
|
250
|
+
// but said, since nothing vouches for it.
|
|
251
|
+
...(plan.mark.kind === "unchecked" ? [` ${p.warn(`⚠ ${plan.version} was not released with checks`)}`] : []),
|
|
252
|
+
];
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* The "default" row a release deploy repoints — refused unless repointing it
|
|
256
|
+
* makes the release serve ALL of the default traffic. Live is the lowest-
|
|
257
|
+
* priority tier of enabled, untargeted rows, so another row there (a split, a
|
|
258
|
+
* canary, a disabled "default") would keep serving and "Deployed" would be a
|
|
259
|
+
* lie. Splits are out of scope for `cef deploy <version>`.
|
|
260
|
+
*/
|
|
261
|
+
export function rowToRepoint(plan, rows) {
|
|
262
|
+
const all = rows ?? [];
|
|
263
|
+
const row = all.find((r) => r.name === DEFAULT_DEPLOYMENT);
|
|
264
|
+
if (!row) {
|
|
265
|
+
throw new ReleaseError(`[cef deploy] ${plan.workflowId} has no "${DEFAULT_DEPLOYMENT}" deployment to repoint — deploy it once from ROC, `
|
|
266
|
+
+ "or apply a deployments/ folder with cef deploy (no version)");
|
|
267
|
+
}
|
|
268
|
+
const after = all.map((r) => (r === row ? { ...r, version: plan.version, enabled: true } : r));
|
|
269
|
+
const shares = liveShares(after);
|
|
270
|
+
if (shares.size === 1 && shares.get(plan.version) === 100)
|
|
271
|
+
return row;
|
|
272
|
+
const others = servingTier(after).filter((r) => r.name !== DEFAULT_DEPLOYMENT && r.version !== plan.version);
|
|
273
|
+
const who = others.length
|
|
274
|
+
? `${others.map((r) => `"${r.name}" (${r.version})`).join(", ")} ${others.length === 1 ? "serves" : "serve"} the default traffic beside or instead of it`
|
|
275
|
+
: `"${DEFAULT_DEPLOYMENT}" does not serve the default traffic (it is targeted, or outranked)`;
|
|
276
|
+
throw new ReleaseError(`[cef deploy] repointing "${DEFAULT_DEPLOYMENT}" would not make ${plan.version} live: ${who}. `
|
|
277
|
+
+ "cef deploy <version> moves only that one row; change a split or another serving row in ROC, "
|
|
278
|
+
+ "or apply a deployments/ folder with cef deploy (no version)");
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Make a release live at 100%: repoint the default deployment row at it, the
|
|
282
|
+
* way ROC's Deploy and Roll back do, then point `latest` at it. A release with
|
|
283
|
+
* review warnings needs a yes on a terminal, or `--accept-warnings` without
|
|
284
|
+
* one.
|
|
285
|
+
*
|
|
286
|
+
* The row moves first: it is what serves runs, and `latest` only decides which
|
|
287
|
+
* version's triggers vault-api delivers. When the row moved and `latest` did
|
|
288
|
+
* not, the error says so and a re-run finishes it (an already-live release
|
|
289
|
+
* only moves `latest`).
|
|
290
|
+
*/
|
|
291
|
+
export async function deployRelease(plan, ports, opts) {
|
|
292
|
+
let revision;
|
|
293
|
+
if (!isAlreadyLive(plan)) {
|
|
294
|
+
const row = rowToRepoint(plan, await ports.deployments());
|
|
295
|
+
if (plan.mark.kind === "warnings" && !opts.acceptWarnings) {
|
|
296
|
+
const n = plan.mark.warnings;
|
|
297
|
+
if (!ports.confirm) {
|
|
298
|
+
throw new ReleaseError(`${plan.version} has ${n} review warning${n === 1 ? "" : "s"}. Re-run with --accept-warnings.`);
|
|
299
|
+
}
|
|
300
|
+
if (!(await ports.confirm("Deploy anyway? [y/N] ")))
|
|
301
|
+
return { deployed: false, movedLatest: false };
|
|
302
|
+
}
|
|
303
|
+
const live = plan.replaces.map((r) => r.version);
|
|
304
|
+
const note = live.length && !live.includes(plan.version) ? `deploy ${plan.version}, replacing ${live.join(", ")}` : `deploy ${plan.version}`;
|
|
305
|
+
revision = await ports.upsert({ ...row, version: plan.version, enabled: true }, note);
|
|
306
|
+
}
|
|
307
|
+
let movedLatest = false;
|
|
308
|
+
if (plan.latest !== plan.version) {
|
|
309
|
+
try {
|
|
310
|
+
await ports.moveLatest(plan.version);
|
|
311
|
+
movedLatest = true;
|
|
312
|
+
}
|
|
313
|
+
catch (e) {
|
|
314
|
+
throw new ReleaseError(`[cef deploy] ${plan.version} is deployed${revision !== undefined ? ` (revision ${revision})` : ""}, but \`latest\` still names `
|
|
315
|
+
+ `${plan.latest ?? "nothing"}, so its events, schedules and webhooks are still ${plan.latest ? `${plan.latest}'s` : "not delivered"}. `
|
|
316
|
+
+ `Re-run cef deploy ${plan.version} to finish. (${e instanceof Error ? e.message : String(e)})`);
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
return { ...(revision !== undefined ? { revision } : {}), deployed: true, movedLatest };
|
|
320
|
+
}
|
|
321
|
+
//# sourceMappingURL=release-view.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"release-view.js","sourceRoot":"","sources":["../../src/commands/release-view.ts"],"names":[],"mappings":"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"}
|