@dsh-enhanced/plugin-control-plane 0.1.49 → 0.1.54
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 +7 -3
- package/bin/dsh-local-release-adapter.js +3 -1
- package/lib/creation-capability-journal.d.ts.map +1 -1
- package/lib/creation-capability-journal.js +29 -5
- package/lib/creation-capability-journal.js.map +1 -1
- package/lib/creation-capability-runtime.d.ts.map +1 -1
- package/lib/creation-capability-runtime.js +15 -1
- package/lib/creation-capability-runtime.js.map +1 -1
- package/lib/creation-capability-types.d.ts +13 -0
- package/lib/creation-capability-types.d.ts.map +1 -1
- package/lib/native-source-build-worker.d.ts +4 -0
- package/lib/native-source-build-worker.d.ts.map +1 -0
- package/lib/native-source-build-worker.js +87 -0
- package/lib/native-source-build-worker.js.map +1 -0
- package/lib/native-source-build.d.ts +36 -0
- package/lib/native-source-build.d.ts.map +1 -0
- package/lib/native-source-build.js +143 -0
- package/lib/native-source-build.js.map +1 -0
- package/lib/native-source-pack.d.ts +11 -0
- package/lib/native-source-pack.d.ts.map +1 -0
- package/lib/native-source-pack.js +83 -0
- package/lib/native-source-pack.js.map +1 -0
- package/lib/runtime-observer-protocol.d.ts +3 -3
- package/lib/runtime-observer-protocol.js +5 -5
- package/lib/runtime-observer-protocol.js.map +1 -1
- package/lib/service.d.ts +1 -0
- package/lib/service.d.ts.map +1 -1
- package/lib/service.js +123 -61
- package/lib/service.js.map +1 -1
- package/lib/source-approval-authority.d.ts.map +1 -1
- package/lib/source-approval-authority.js +1 -0
- package/lib/source-approval-authority.js.map +1 -1
- package/lib/source-build.d.ts +26 -8
- package/lib/source-build.d.ts.map +1 -1
- package/lib/source-build.js +170 -51
- package/lib/source-build.js.map +1 -1
- package/lib/source-creation.js +1 -1
- package/lib/source-creation.js.map +1 -1
- package/lib/source-job-types.d.ts +9 -1
- package/lib/source-job-types.d.ts.map +1 -1
- package/lib/source-jobs.d.ts +3 -0
- package/lib/source-jobs.d.ts.map +1 -1
- package/lib/source-jobs.js +39 -4
- package/lib/source-jobs.js.map +1 -1
- package/lib/store.d.ts.map +1 -1
- package/lib/store.js +50 -5
- package/lib/store.js.map +1 -1
- package/lib/types.d.ts +14 -1
- package/lib/types.d.ts.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/package.json +8 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source-approval-authority.js","sourceRoot":"","sources":["../src/source-approval-authority.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"source-approval-authority.js","sourceRoot":"","sources":["../src/source-approval-authority.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAChE,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACzH,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AAC5E,OAAO,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAA;AAChE,OAAO,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAA;AAC5E,OAAO,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC7H,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAA;AAIlE,MAAM,EAAE,GAAG,sCAAsC,CAAA;AACjD,MAAM,MAAM,GAAG,iBAAiB,CAAA;AAChC,MAAM,MAAM,GAAG,iBAAiB,CAAA;AAChC,MAAM,WAAW,GAAG,yEAAyE,CAAA;AAC7F,MAAM,gBAAgB,GAAG,+EAA+E,CAAA;AACxG,MAAM,gBAAgB,GAAG,MAAM,CAAA;AAC/B,MAAM,iBAAiB,GAAG,KAAK,CAAA;AAC/B,MAAM,aAAa,GAAG,MAAM,CAAA;AAgC5B,MAAM,4BAA6B,SAAQ,KAAK;IAC9C,YAAY,OAAO,GAAG,+CAA+C,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,8BAA8B,CAAA,CAAC,CAAC;CACtI;AAED,SAAS,IAAI,KAAY,MAAM,IAAI,4BAA4B,EAAE,CAAA,CAAC,CAAC;AAEnE,SAAS,MAAM,CAAC,KAAc;IAC5B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,CAAA;IAC/E,OAAO,KAAgC,CAAA;AACzC,CAAC;AAED,SAAS,SAAS,CAAC,KAA8B,EAAE,QAA2B;IAC5E,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,IAAI,EAAE,CAAA;AACtF,CAAC;AAED,SAAS,IAAI,CAAC,KAAc,EAAE,OAAO,GAAG,EAAE,EAAE,OAAO,GAAG,GAAG;IACvD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;WAC3F,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,CAAA;IAC1E,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,CAAC,CAAA;IAC7C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI;QAAE,IAAI,EAAE,CAAA;IACvE,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,OAAO,CAAC,KAAc,EAAE,OAAe,EAAE,OAAO,GAAG,MAAM,CAAC,gBAAgB;IACjF,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAK,KAAgB,GAAG,OAAO,IAAK,KAAgB,GAAG,OAAO;QAAE,IAAI,EAAE,CAAA;IACtG,OAAO,KAAe,CAAA;AACxB,CAAC;AAED,MAAM,UAAU,gCAAgC,CAAC,IAAY,EAAE,IAA0B,EAAE,UAAU,GAAG,KAAK;IAC3G,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAA;IAC9B,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5B,IAAI,UAAwC,CAAA;IAC5C,IAAI,CAAC;QAAC,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,CAAA;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,IAAI,EAAE,CAAA;IAAC,CAAC;IACvD,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,UAAU,CAAC,cAAc,EAAE;WACvD,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,SAAS,IAAI,UAAU,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;QAAE,IAAI,EAAE,CAAA;IACpH,IAAI,UAAU,EAAE,CAAC;QACf,IAAI,CAAC;YAAC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAAC,SAAS,CAAC,OAAO,CAAC,CAAA;QAAC,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACvJ,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;gBAAE,IAAI,EAAE,CAAA;QACxF,CAAC;IACH,CAAC;IACD,IAAI,IAAkC,CAAA;IACtC,IAAI,CAAC;QAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,IAAI,EAAE,CAAA;IAAC,CAAC;IAC/C,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC;WACzH,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,IAAI;QAAE,IAAI,EAAE,CAAA;IAChH,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,UAAU,kCAAkC,CAAC,IAAY;IAC7D,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAA;IAC9B,IAAI,IAAkC,CAAA;IACtC,IAAI,CAAC;QAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,IAAI,EAAE,CAAA;IAAC,CAAC;IAC/C,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC;WACxE,CAAC,GAAG,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,IAAI;QAAE,IAAI,EAAE,CAAA;IACnF,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,IAAY,EAAE,OAAe;IACvE,gCAAgC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAC9C,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,QAAQ,GAAG,WAAW,CAAC,UAAU,CAAC,CAAA;IACxE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAAC,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;QAC/F,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,MAAM,CAAC,KAAK,KAAK,EAAE,IAAI,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG;YAAE,IAAI,EAAE,CAAA;QAC5I,MAAM,KAAK,GAAG,YAAY,CAAC,EAAE,CAAC,CAAA;QAC9B,MAAM,KAAK,GAAG,SAAS,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAAC,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;QACnG,IAAI,KAAK,CAAC,MAAM,GAAG,OAAO,IAAI,MAAM,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,UAAU,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,UAAU,CAAC,GAAG;YAAE,IAAI,EAAE,CAAA;QAC1J,OAAO,KAAK,CAAA;IACd,CAAC;YAAS,CAAC;QAAC,SAAS,CAAC,EAAE,CAAC,CAAA;IAAC,CAAC;AAC7B,CAAC;AAED,SAAS,eAAe,CAAC,IAA2B,EAAE,KAAsD;IAC1G,OAAO,IAAI,CAAC,WAAW,KAAK,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,aAAa,KAAK,KAAK,CAAC,aAAa;WACtF,IAAI,CAAC,WAAW,KAAK,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,iBAAiB,KAAK,KAAK,CAAC,iBAAiB;WAC5F,IAAI,CAAC,gBAAgB,KAAK,KAAK,CAAC,gBAAgB,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,CAAC,WAAW,CAAA;AACvI,CAAC;AAED,MAAM,UAAU,0BAA0B;IACxC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAA;IAC7B,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,EAAE;QAAE,IAAI,EAAE,CAAA;IAC7C,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,EAAE,GAAG,EAAE,iBAAiB,EAAE,WAAW;QACjH,kBAAkB,EAAE,GAAG,EAAE,mBAAmB,EAAE,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAA;AAC9E,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAAC,SAAS,CAAC,IAAI,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,uBAAuB,CAAC,CAAC,CAAA;IAC1G,IAAI,IAAI,CAAC,QAAQ,KAAK,wBAAwB;QAAE,IAAI,EAAE,CAAA;IACtD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAAC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IAAC,MAAM,qBAAqB,GAAG,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,MAAM,EAAE,EAAE,CAAC,CAAA;IAClK,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,EAAE,UAAU,EAAE,qBAAqB,EAAE,CAAC,CAAA;AACzG,CAAC;AAED,MAAM,UAAU,qCAAqC,CAAC,KAAc;IAClE,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAAC,SAAS,CAAC,IAAI,EAAE,CAAC,eAAe,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,qBAAqB,EAAE,OAAO,CAAC,CAAC,CAAA;IAC5I,IAAI,IAAI,CAAC,aAAa,KAAK,CAAC;QAAE,IAAI,EAAE,CAAA;IACpC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAChC,SAAS,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,cAAc;QACzJ,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IACjE,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,IAAI,KAAK,CAAC,UAAU,KAAK,OAAO;QAAE,IAAI,EAAE,CAAA;IAC9E,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAAC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAAC,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAAC,MAAM,mBAAmB,GAAG,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;IAC1L,IAAI,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,mBAAmB,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,CAAA;IACzE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAAC,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;IAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;IAC7I,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAAC,SAAS,CAAC,KAAK,EAAE,CAAC,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC,CAAA;IACzK,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,YAAY,EAAE,GAAG,CAAC,CAAA;IAC1G,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC;IAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;IAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;IACxI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,EAAE;QAAE,IAAI,EAAE,CAAA;IACpG,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,kCAAkC,EAAE,EAAE,CAAC,CAAC,CAAA;IACjG,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,yBAAyB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAAE,IAAI,EAAE,CAAA;IACrH,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;IAAC,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;IAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,EAAE,UAAU,CAAC,CAAA;AAC7I,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,IAAsB,EAAE,GAAW,EAAE,SAAqC,kBAAkB;IAC1I,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS;WACxH,IAAI,CAAC,gBAAgB,CAAC,aAAa,KAAK,CAAC;WACzC,GAAG,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,gBAAgB,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;WACpI,IAAI,CAAC,gBAAgB,CAAC,UAAU,GAAG,GAAG,IAAI,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,sBAAsB,KAAK,IAAI;WAC3G,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,cAAc,KAAK,IAAI,IAAI,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,OAAO,KAAK,IAAI;WAC/G,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;QAC9C,IAAI,EAAE,CAAA;IACR,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAA;IAClD,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,KAAa,EAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAA;IAChJ,IAAI,OAAO,CAAC,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ;WACpH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;WACnG,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,SAAS,CAAC;WACnG,CAAC,KAAK,CAAC,OAAO,EAAE,uBAAuB,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM;WACrF,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,4BAA4B;QAAE,IAAI,EAAE,CAAA;AACnE,CAAC;AAMD,MAAM,CAAC,KAAK,UAAU,+BAA+B,CAAC,IAAsB,EAAE,KAAmC;IAC/G,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,yBAAyB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,IAAI,EAAE,CAAA;IAC3H,MAAM,UAAU,GAAG,kCAAkC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAAC,MAAM,YAAY,GAAG,gCAAgC,CAAC,KAAK,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;IAC/J,MAAM,QAAQ,GAAG,gCAAgC,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;IAC7E,MAAM,gBAAgB,GAAG,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAA;IACzD,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,IAAI,gBAAgB,KAAK,EAAE,IAAI,gBAAgB,KAAK,IAAI,IAAI,gBAAgB,CAAC,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC,IAAI,UAAU,CAAC,gBAAgB,CAAC;QAAE,IAAI,EAAE,CAAA;IAC7K,MAAM,WAAW,GAAG,0BAA0B,EAAE,CAAA;IAChD,MAAM,IAAI,GAAG,CAAC,MAAM,eAAe,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,eAAe,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IACxI,IAAI,IAAI,KAAK,IAAI,CAAC,UAAU;QAAE,IAAI,EAAE,CAAA;IACpC,MAAM,gBAAgB,GAAG,CAAC,MAAM,eAAe,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,wBAAwB,EAAE,kBAAkB,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IACvK,MAAM,cAAc,GAAG,CAAC,MAAM,eAAe,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,wBAAwB,EAAE,kBAAkB,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IACnK,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,YAAY,CAAC,gBAAgB,CAAC,KAAK,YAAY,CAAC,cAAc,CAAC;QAAE,IAAI,EAAE,CAAA;IAC3I,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAA;IAC9E,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,eAAe;QAAE,IAAI,EAAE,CAAA;IACtE,MAAM,YAAY,GAAG,WAAW,IAAI,CAAC,IAAI,eAAe,CAAA;IACxD,IAAI,KAAK,CAAC,UAAU,KAAK,OAAO,EAAE,CAAC;QACjC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,IAAI,CAAC,IAAI,iBAAiB,CAAC;YAAE,IAAI,EAAE,CAAA;QACnG,MAAM,OAAO,GAAG,MAAM,yBAAyB,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,CAAA;QACxH,IAAI,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO;YAAE,IAAI,EAAE,CAAA;IACrE,CAAC;IACD,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACpC,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,KAAK,OAAO,IAAI,IAAI,KAAK,YAAY,CAAA;QAC7E,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAAE,IAAI,EAAE,CAAA;QACjG,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;QACtC,IAAI,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC,IAAI,MAAM,KAAK,QAAQ;YAAE,IAAI,EAAE,CAAA;QACpF,IAAI,IAAkC,CAAA;QACtC,IAAI,CAAC;YAAC,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAA;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,IAAI,EAAE,CAAA;QAAC,CAAC;QACjD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE,IAAI,YAAY,CAAC,MAAM,CAAC,KAAK,MAAM;YAAE,IAAI,EAAE,CAAA;QACtF,KAAK,IAAI,IAAI,CAAC,IAAI,CAAA;QAClB,IAAI,KAAK,GAAG,KAAK,CAAC,eAAe;YAAE,IAAI,EAAE,CAAA;IAC3C,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,qBAAqB,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;IAC/F,IAAI,OAAO,CAAC,iBAAiB,KAAK,IAAI,CAAC,WAAY,CAAC,UAAU,IAAI,OAAO,CAAC,kBAAkB,KAAK,IAAI,CAAC,WAAY,CAAC,WAAW;QAAE,IAAI,EAAE,CAAA;AACxI,CAAC;AAID,SAAS,UAAU,CAAC,IAAY;IAC9B,gCAAgC,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;IACpD,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,CAAA;IACvC,QAAQ,CAAC,IAAI,CAAC;;;;;;;cAOF,CAAC,CAAA;IACb,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,SAAS,UAAU,CAAC,MAAqC,EAAE,OAA8B,EAAE,UAA+C,EAAE,GAAW,EAAE,SAAiB;IACxK,MAAM,QAAQ,GAAuC,EAAE,aAAa,EAAE,CAAC;QACrE,UAAU,EAAE,mBAAmB,kBAAkB,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;QACrG,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU;QACxG,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,CAAA;IAC9F,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;AAC5I,CAAC;AAED,mGAAmG;AACnG,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,WAA0C,EAAE,YAAmC;IAC3H,IAAI,CAAC;QACH,qCAAqC,CAAC,WAAW,CAAC,CAAC;QAAC,MAAM,MAAM,GAAG,WAAW,CAAC;QAAC,MAAM,OAAO,GAAG,eAAe,CAAC,YAAY,CAAC,CAAA;QAC7H,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS;YAAE,IAAI,EAAE,CAAA;QAChD,MAAM,UAAU,GAAG,gCAAgC,CAAC,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAA;QACvF,MAAM,QAAQ,GAAG,2BAA2B,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;QAC3E,IAAI,UAA+C,CAAA;QACnD,IAAI,CAAC;YAAC,UAAU,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAA;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,IAAI,EAAE,CAAA;QAAC,CAAC;QAChE,IAAI,UAAU,CAAC,iBAAiB,KAAK,SAAS;YAAE,IAAI,EAAE,CAAA;QACtD,MAAM,cAAc,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC1E,MAAM,YAAY,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAA;QAC/C,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;QACjE,IAAI,MAAsD,CAAA;QAC1D,IAAI,CAAC;YACH,QAAQ,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;YACxC,MAAM,GAAG,2BAA2B,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;YAC9D,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,OAAO,CAAC,UAAU,IAAI,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,qBAAqB;mBAC/G,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;gBAAE,IAAI,EAAE,CAAA;YACtE,+BAA+B,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAAC,MAAM,+BAA+B,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;YAC1H,MAAM,KAAK,GAAG,2BAA2B,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;YACnE,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,kBAAkB;gBAAE,IAAI,EAAE,CAAA;QAC5K,CAAC;gBAAS,CAAC;YAAC,QAAQ,CAAC,KAAK,EAAE,CAAA;QAAC,CAAC;QAC9B,MAAM,aAAa,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAA;QACjD,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QAC3C,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;YAC9B,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAAC,IAAI,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS;oBAAE,IAAI,EAAE,CAAA;gBACjE,+BAA+B,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;gBACjD,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;gBAC9G,IAAI,aAAa,IAAI,GAAG;oBAAE,IAAI,EAAE,CAAA;gBAChC,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,sFAAsF,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAmE,CAAA;gBAC3M,IAAI,KAAK,KAAK,SAAS;oBAAE,MAAM,CAAC,OAAO,CAAC,+GAA+G,CAAC;yBACrJ,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,CAAC,CAAA;qBACrD,IAAI,KAAK,CAAC,aAAa,KAAK,YAAY,IAAI,KAAK,CAAC,eAAe,KAAK,cAAc;oBAAE,IAAI,EAAE,CAAA;gBACjG,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,2JAA2J,CAAC;qBACzL,GAAG,CAAC,aAAa,CAA+B,CAAA;gBACnD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;oBAC3B,IAAI,QAAQ,CAAC,QAAQ,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,aAAa,KAAK,YAAY,IAAI,QAAQ,CAAC,OAAO,KAAK,OAAO,CAAC,MAAM;2BACtH,QAAQ,CAAC,WAAW,KAAK,OAAO,CAAC,UAAU,IAAI,QAAQ,CAAC,cAAc,KAAK,kBAAkB,CAAC,QAAQ,CAAC,YAAY,CAAC;wBAAE,IAAI,EAAE,CAAA;oBACjI,MAAM,OAAO,GAAG,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAY,CAAC,CAAA;oBAClF,IAAI,OAAO,CAAC,SAAS,IAAI,GAAG,IAAI,OAAO,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS,IAAI,OAAO,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK;wBAAE,IAAI,EAAE,CAAA;oBAChH,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAAC,OAAO,OAAO,CAAA;gBACvC,CAAC;gBACD,IAAI,MAAM,CAAC,OAAO,CAAC,uEAAuE,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,SAAS;oBAAE,IAAI,EAAE,CAAA;gBACrI,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,2EAA2E,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAsB,CAAA;gBAClJ,IAAI,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,YAAY;oBAAE,IAAI,EAAE,CAAA;gBACnD,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,aAAa,CAAC,CAAA;gBAC3E,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;gBAC3C,MAAM,CAAC,OAAO,CAAC,gLAAgL,CAAC;qBAC7L,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,EAAE,WAAW,EAAE,kBAAkB,CAAC,WAAW,CAAC,EAAE,GAAG,CAAC,CAAA;gBAC3I,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAAC,OAAO,OAAO,CAAA;YACvC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAAC,IAAI,CAAC;oBAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,0CAA0C,CAAC,CAAC;gBAAC,MAAM,KAAK,CAAA;YAAC,CAAC;QACtH,CAAC;gBAAS,CAAC;YAAC,MAAM,CAAC,KAAK,EAAE,CAAA;QAAC,CAAC;IAC9B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,4BAA4B;YAAE,MAAM,KAAK,CAAA;QAC9D,MAAM,IAAI,4BAA4B,EAAE,CAAA;IAC1C,CAAC;AACH,CAAC;AAED,KAAK,UAAU,cAAc;IAC3B,MAAM,MAAM,GAAa,EAAE,CAAC;IAAC,IAAI,IAAI,GAAG,CAAC,CAAA;IACzC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAAC,IAAI,IAAI,KAAK,CAAC,MAAM,CAAA;QACvF,IAAI,IAAI,GAAG,iBAAiB;YAAE,IAAI,EAAE,CAAA;QACpC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACpB,CAAC;IACD,IAAI,CAAC;QAAC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAY,CAAA;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,IAAI,EAAE,CAAA;IAAC,CAAC;AAC/F,CAAC;AAED,kHAAkH;AAClH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3E,IAAI,CAAC;QACH,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,UAAU;YAAE,IAAI,EAAE,CAAA;QACvD,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,MAAM,WAAW,GAAG,2BAA2B,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAA;QACnH,IAAI,MAAe,CAAC;QAAC,IAAI,CAAC;YAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAY,CAAA;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,IAAI,EAAE,CAAA;QAAC,CAAC;QAC1G,MAAM,OAAO,GAAG,MAAM,cAAc,EAAE,CAAC;QAAC,MAAM,OAAO,GAAG,MAAM,uBAAuB,CAAC,MAAuC,EAAE,OAAgC,CAAC,CAAA;QAChK,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IACtD,CAAC;IAAC,MAAM,CAAC;QAAC,MAAM,IAAI,4BAA4B,EAAE,CAAA;IAAC,CAAC;AACtD,CAAC"}
|
package/lib/source-build.d.ts
CHANGED
|
@@ -2,10 +2,15 @@ import { type SourceRevisionBinding } from './source-revision.js';
|
|
|
2
2
|
import type { CreationCapabilitySourceSnapshot } from './creation-capability-source.js';
|
|
3
3
|
import type { PluginCreationVerificationCertificate } from '@dsh-enhanced/assistant-growth-contract';
|
|
4
4
|
import { type SourceCreationBinding } from './source-creation.js';
|
|
5
|
-
import type { SourcePreparedEvidence } from './types.js';
|
|
6
|
-
|
|
5
|
+
import type { DockerSourcePreparedEvidence, SourcePreparedEvidence } from './types.js';
|
|
6
|
+
import type { NativeMacRuntime } from '@dsh-enhanced/assistant-isolation';
|
|
7
|
+
export interface DockerSourceBuildConfig {
|
|
7
8
|
/** Canonical owner-controlled docker client. */
|
|
8
9
|
dockerPath: string;
|
|
10
|
+
/** Canonical, owner-held local Docker Desktop socket for portable repository builds. */
|
|
11
|
+
socketPath?: string;
|
|
12
|
+
/** Engine identity frozen by the owner bootstrap receipt. */
|
|
13
|
+
daemonId?: string;
|
|
9
14
|
/** Image pinned by manifest reference or a local immutable image content ID. */
|
|
10
15
|
image: string;
|
|
11
16
|
timeoutMs: number;
|
|
@@ -17,7 +22,7 @@ export interface SourceBuildConfig {
|
|
|
17
22
|
/** Host-owned package/runtime version bump before the checked tree is frozen. */
|
|
18
23
|
versioning?: 'patch';
|
|
19
24
|
/** Owner-only opt-in for the larger, full-repository check budget. */
|
|
20
|
-
profile?: 'standard' | 'repository';
|
|
25
|
+
profile?: 'standard' | 'repository' | 'portable-repository';
|
|
21
26
|
/** Writable /tmp tmpfs size. Defaults to 32 MiB for standard, 2048 MiB for repository. */
|
|
22
27
|
temporaryMiB?: number;
|
|
23
28
|
/** Explicit owner opt-in for nested unprivileged sandboxes. Relaxes Docker's
|
|
@@ -26,11 +31,24 @@ export interface SourceBuildConfig {
|
|
|
26
31
|
seccompPath: string;
|
|
27
32
|
};
|
|
28
33
|
}
|
|
29
|
-
export interface
|
|
34
|
+
export interface NativeSourceBuildConfig {
|
|
35
|
+
backend: 'macos-seatbelt';
|
|
36
|
+
runtime: NativeMacRuntime;
|
|
37
|
+
stateRoot: string;
|
|
38
|
+
authorityDigest: string;
|
|
39
|
+
expiresAt: number;
|
|
40
|
+
maxRuns: number;
|
|
41
|
+
maxTotalDurationMs: number;
|
|
42
|
+
timeoutMs: number;
|
|
43
|
+
outputBytes: number;
|
|
44
|
+
versioning?: 'patch';
|
|
45
|
+
}
|
|
46
|
+
export type SourceBuildConfig = DockerSourceBuildConfig | NativeSourceBuildConfig;
|
|
47
|
+
export interface SourceBuildResult<E extends SourcePreparedEvidence = SourcePreparedEvidence> {
|
|
30
48
|
treeDigest: string;
|
|
31
49
|
patchDigest: string;
|
|
32
50
|
checkedAt: number;
|
|
33
|
-
evidence:
|
|
51
|
+
evidence: E;
|
|
34
52
|
/** Host-only bytes from the same verified in-container pack read. Never persisted in source evidence. */
|
|
35
53
|
packArtifact?: Buffer;
|
|
36
54
|
}
|
|
@@ -43,7 +61,7 @@ export declare function validateSourceBuildConfig(config: SourceBuildConfig): vo
|
|
|
43
61
|
* value, or Host path crosses the boundary: the sole input is tar on stdin.
|
|
44
62
|
*/
|
|
45
63
|
export declare function runDockerPreparedChecks(input: {
|
|
46
|
-
config:
|
|
64
|
+
config: DockerSourceBuildConfig;
|
|
47
65
|
worktree: string;
|
|
48
66
|
baseCommit: string;
|
|
49
67
|
name: string;
|
|
@@ -67,9 +85,9 @@ export declare function runDockerPreparedChecks(input: {
|
|
|
67
85
|
};
|
|
68
86
|
/** Host-only request to return the exact already-verified pack bytes for independent verification. */
|
|
69
87
|
capturePack?: true;
|
|
70
|
-
}): Promise<SourceBuildResult
|
|
88
|
+
}): Promise<SourceBuildResult<DockerSourcePreparedEvidence>>;
|
|
71
89
|
/** Reconcile only a labeled, image-bound durable container, then prove absence. */
|
|
72
|
-
export declare function removeSourceJobContainer(config:
|
|
90
|
+
export declare function removeSourceJobContainer(config: DockerSourceBuildConfig, job: {
|
|
73
91
|
id: string;
|
|
74
92
|
containerName: string;
|
|
75
93
|
}): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source-build.d.ts","sourceRoot":"","sources":["../src/source-build.ts"],"names":[],"mappings":"AAMA,OAAO,EAAgC,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC/F,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,iCAAiC,CAAA;AACvF,OAAO,KAAK,EAAE,qCAAqC,EAAE,MAAM,yCAAyC,CAAA;AACpG,OAAO,EAAgC,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAE/F,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"source-build.d.ts","sourceRoot":"","sources":["../src/source-build.ts"],"names":[],"mappings":"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"}
|
package/lib/source-build.js
CHANGED
|
@@ -1,12 +1,36 @@
|
|
|
1
1
|
import { createHash, randomUUID } from 'node:crypto';
|
|
2
2
|
import { spawn } from 'node:child_process';
|
|
3
3
|
import { chmod, lstat, mkdtemp, readFile, realpath, rm, writeFile } from 'node:fs/promises';
|
|
4
|
-
import { tmpdir } from 'node:os';
|
|
5
|
-
import { dirname, join, resolve } from 'node:path';
|
|
4
|
+
import { homedir, tmpdir } from 'node:os';
|
|
5
|
+
import { dirname, isAbsolute, join, resolve, sep } from 'node:path';
|
|
6
6
|
import { ControlPlaneCliError } from './errors.js';
|
|
7
7
|
import { verifyRevisedPluginWorkspace } from './source-revision.js';
|
|
8
8
|
import { verifyCreatedPluginWorkspace } from './source-creation.js';
|
|
9
9
|
import { checkedSourceSnapshot, runLocalBuffer, runLocalCommand } from './source-workspace.js';
|
|
10
|
+
/** Keep Config synchronous and independent of the Mac executor package: Linux
|
|
11
|
+
* authority runtimes copy this module without assistant-isolation. The native
|
|
12
|
+
* executor repeats this shape check and verifies the approved bytes at dispatch. */
|
|
13
|
+
function validNativeRuntimeShape(value) {
|
|
14
|
+
if (!value || typeof value !== 'object' || Array.isArray(value))
|
|
15
|
+
return false;
|
|
16
|
+
const runtime = value;
|
|
17
|
+
const hex = (part) => typeof part === 'string' && /^[0-9a-f]{64}$/u.test(part);
|
|
18
|
+
const canonical = (part) => typeof part === 'string' && isAbsolute(part)
|
|
19
|
+
&& resolve(part) === part && !part.includes('\0') && !part.includes('\r') && !part.includes('\n');
|
|
20
|
+
const within = (path, root) => path === root || path.startsWith(root + sep);
|
|
21
|
+
return Object.keys(runtime).sort().join() === 'modulesPath,nodePath,nodeSha256,platform,roots,schemaVersion,versions'
|
|
22
|
+
&& runtime.schemaVersion === 1 && runtime.platform === `darwin-${process.arch}` && canonical(runtime.nodePath)
|
|
23
|
+
&& hex(runtime.nodeSha256) && canonical(runtime.modulesPath) && Array.isArray(runtime.roots)
|
|
24
|
+
&& runtime.roots.length >= 1 && runtime.roots.length <= 32 && !!runtime.versions && typeof runtime.versions === 'object'
|
|
25
|
+
&& Object.keys(runtime.versions).sort().join() === 'cordis,node,systemPrompt,tools,typescript'
|
|
26
|
+
&& Object.values(runtime.versions).every(version => typeof version === 'string' && version.length >= 1 && version.length <= 128)
|
|
27
|
+
&& runtime.roots.every(root => !!root && Object.keys(root).sort().join() === 'dev,ino,path,sha256'
|
|
28
|
+
&& canonical(root.path) && root.path !== '/' && Number.isSafeInteger(root.dev) && root.dev >= 0
|
|
29
|
+
&& Number.isSafeInteger(root.ino) && root.ino >= 0 && hex(root.sha256))
|
|
30
|
+
&& new Set(runtime.roots.map(root => root.path)).size === runtime.roots.length
|
|
31
|
+
&& runtime.roots.some(root => within(runtime.nodePath, root.path) && runtime.nodePath !== root.path)
|
|
32
|
+
&& runtime.roots.some(root => within(runtime.modulesPath, root.path));
|
|
33
|
+
}
|
|
10
34
|
const imageDigest = /^(?:[a-z0-9][a-z0-9._:/-]*@)?sha256:[a-f0-9]{64}$/u;
|
|
11
35
|
const marker = /^DSH_PREPARED_PACK\t([^\t\n]+)\t([0-9]+)\t([a-f0-9]{64})\t([^\t\n]+)\t([^\t\n]+)$/mu;
|
|
12
36
|
const packFrame = 'DSH_PREPARED_PACK_BYTES_V1\t';
|
|
@@ -439,16 +463,47 @@ DSH_SOURCE_PACK_VERIFY
|
|
|
439
463
|
`;
|
|
440
464
|
function sourceBuildLimits(config) {
|
|
441
465
|
const profile = config.profile ?? 'standard';
|
|
442
|
-
return { profile, temporaryMiB: config.temporaryMiB ?? (profile === '
|
|
466
|
+
return { profile, temporaryMiB: config.temporaryMiB ?? (profile === 'standard' ? 32 : 2_048) };
|
|
443
467
|
}
|
|
444
468
|
export function validateSourceBuildConfig(config) {
|
|
445
|
-
if (config === null || typeof config !== 'object' || Array.isArray(config)
|
|
469
|
+
if (config === null || typeof config !== 'object' || Array.isArray(config)) {
|
|
470
|
+
throw new ControlPlaneCliError('SOURCE_BOUNDARY', 'source build configuration is invalid');
|
|
471
|
+
}
|
|
472
|
+
if ('backend' in config) {
|
|
473
|
+
const allowed = new Set(['backend', 'runtime', 'stateRoot', 'authorityDigest', 'expiresAt', 'maxRuns',
|
|
474
|
+
'maxTotalDurationMs', 'timeoutMs', 'outputBytes', 'versioning']);
|
|
475
|
+
if (config.backend !== 'macos-seatbelt' || Object.keys(config).some(key => !allowed.has(key))
|
|
476
|
+
|| typeof config.stateRoot !== 'string' || !config.stateRoot.startsWith('/') || resolve(config.stateRoot) !== config.stateRoot
|
|
477
|
+
|| !/^[a-f0-9]{64}$/u.test(config.authorityDigest)
|
|
478
|
+
|| !Number.isSafeInteger(config.expiresAt) || config.expiresAt <= 0
|
|
479
|
+
|| !Number.isSafeInteger(config.maxRuns) || config.maxRuns < 1 || config.maxRuns > 1000
|
|
480
|
+
|| !Number.isSafeInteger(config.maxTotalDurationMs) || config.maxTotalDurationMs < 60_000 || config.maxTotalDurationMs > 86_400_000
|
|
481
|
+
|| !Number.isSafeInteger(config.timeoutMs) || config.timeoutMs < 1_000 || config.timeoutMs > 300_000
|
|
482
|
+
|| !Number.isSafeInteger(config.outputBytes) || config.outputBytes < 4096 || config.outputBytes > 1_048_576
|
|
483
|
+
|| (config.versioning !== undefined && config.versioning !== 'patch')) {
|
|
484
|
+
throw new ControlPlaneCliError('SOURCE_BOUNDARY', 'native source build configuration is invalid');
|
|
485
|
+
}
|
|
486
|
+
try {
|
|
487
|
+
if (!validNativeRuntimeShape(config.runtime))
|
|
488
|
+
throw new Error('invalid native runtime');
|
|
489
|
+
}
|
|
490
|
+
catch {
|
|
491
|
+
throw new ControlPlaneCliError('SOURCE_BOUNDARY', 'native source runtime configuration is invalid');
|
|
492
|
+
}
|
|
493
|
+
return;
|
|
494
|
+
}
|
|
495
|
+
if (config === null || typeof config !== 'object' || Array.isArray(config) || (config.profile !== undefined && config.profile !== 'standard' && config.profile !== 'repository' && config.profile !== 'portable-repository')
|
|
446
496
|
|| (config.versioning !== undefined && config.versioning !== 'patch')
|
|
447
497
|
|| (config.temporaryMiB !== undefined && !Number.isSafeInteger(config.temporaryMiB))
|
|
448
|
-
|| (config.
|
|
498
|
+
|| (config.profile === 'portable-repository' && config.repositorySandbox === undefined)
|
|
499
|
+
|| (config.repositorySandbox !== undefined && (config.profile !== 'repository' && config.profile !== 'portable-repository' || typeof config.repositorySandbox !== 'object' || config.repositorySandbox === null
|
|
449
500
|
|| Array.isArray(config.repositorySandbox) || Object.getPrototypeOf(config.repositorySandbox) !== Object.prototype
|
|
450
501
|
|| Object.keys(config.repositorySandbox).length !== 1 || Object.keys(config.repositorySandbox)[0] !== 'seccompPath'
|
|
451
502
|
|| typeof config.repositorySandbox.seccompPath !== 'string' || !config.repositorySandbox.seccompPath.startsWith('/') || config.repositorySandbox.seccompPath.includes('\0')))
|
|
503
|
+
|| (config.profile === 'portable-repository' ? typeof config.socketPath !== 'string' : config.socketPath !== undefined)
|
|
504
|
+
|| (config.profile === 'portable-repository' ? typeof config.daemonId !== 'string' || !/^[A-Za-z0-9][A-Za-z0-9:._-]{7,127}$/u.test(config.daemonId) || !/^sha256:[a-f0-9]{64}$/u.test(config.image) : config.daemonId !== undefined)
|
|
505
|
+
|| (config.socketPath !== undefined && (typeof config.socketPath !== 'string' || !config.socketPath.startsWith('/')
|
|
506
|
+
|| resolve(config.socketPath) !== config.socketPath || /[\p{Cc},]/u.test(config.socketPath) || config.socketPath.includes('://')))
|
|
452
507
|
|| typeof config.image !== 'string' || config.image.length > 256 || !imageDigest.test(config.image) || typeof config.dockerPath !== 'string' || !config.dockerPath.startsWith('/') || config.dockerPath.includes('\0')
|
|
453
508
|
|| !Number.isSafeInteger(config.timeoutMs) || config.timeoutMs < 60_000
|
|
454
509
|
|| !Number.isSafeInteger(config.memoryMiB) || config.memoryMiB < 128
|
|
@@ -459,7 +514,7 @@ export function validateSourceBuildConfig(config) {
|
|
|
459
514
|
throw new ControlPlaneCliError('SOURCE_BOUNDARY', 'source build configuration is invalid');
|
|
460
515
|
}
|
|
461
516
|
const limits = sourceBuildLimits(config);
|
|
462
|
-
const repository = limits.profile
|
|
517
|
+
const repository = limits.profile !== 'standard';
|
|
463
518
|
if (config.timeoutMs > (repository ? 1_800_000 : 240_000)
|
|
464
519
|
|| config.memoryMiB > (repository ? 16_384 : 4_096)
|
|
465
520
|
|| config.pidsLimit > (repository ? 1_024 : 512)
|
|
@@ -473,8 +528,10 @@ async function snapshotRepositorySeccomp(config, temporary) {
|
|
|
473
528
|
const sandbox = config.repositorySandbox;
|
|
474
529
|
if (sandbox === undefined)
|
|
475
530
|
return undefined;
|
|
476
|
-
if (process.platform
|
|
477
|
-
|
|
531
|
+
if (!(process.platform === 'linux' && process.arch === 'x64')
|
|
532
|
+
&& !(config.profile === 'portable-repository' && process.platform === 'darwin' && ['x64', 'arm64'].includes(process.arch))) {
|
|
533
|
+
throw new ControlPlaneCliError('SOURCE_BOUNDARY', 'repository seccomp requires an approved native Host');
|
|
534
|
+
}
|
|
478
535
|
const canonical = await realpath(sandbox.seccompPath);
|
|
479
536
|
if (canonical !== resolve(sandbox.seccompPath))
|
|
480
537
|
throw new ControlPlaneCliError('SOURCE_BOUNDARY', 'repository seccomp profile must be canonical');
|
|
@@ -511,6 +568,26 @@ async function verifiedDockerPath(path) {
|
|
|
511
568
|
}
|
|
512
569
|
return canonical;
|
|
513
570
|
}
|
|
571
|
+
async function verifiedPortableSocket(config) {
|
|
572
|
+
if (config.profile !== 'portable-repository')
|
|
573
|
+
return undefined;
|
|
574
|
+
if (process.platform !== 'darwin' || !['x64', 'arm64'].includes(process.arch)) {
|
|
575
|
+
throw new ControlPlaneCliError('SOURCE_BOUNDARY', 'portable repository requires native macOS');
|
|
576
|
+
}
|
|
577
|
+
const expected = join(homedir(), '.docker', 'run', 'docker.sock');
|
|
578
|
+
if (config.socketPath !== expected || await realpath(expected) !== expected) {
|
|
579
|
+
throw new ControlPlaneCliError('SOURCE_BOUNDARY', 'portable Docker socket must be the owner local socket');
|
|
580
|
+
}
|
|
581
|
+
const socket = await lstat(expected), parent = await lstat(dirname(expected));
|
|
582
|
+
if (!socket.isSocket() || socket.uid !== process.getuid?.() || !parent.isDirectory()
|
|
583
|
+
|| parent.uid !== process.getuid?.() || (parent.mode & 0o022) !== 0) {
|
|
584
|
+
throw new ControlPlaneCliError('SOURCE_BOUNDARY', 'portable Docker socket is not owner-safe');
|
|
585
|
+
}
|
|
586
|
+
return expected;
|
|
587
|
+
}
|
|
588
|
+
function portableArgs(socket, configDirectory, args) {
|
|
589
|
+
return socket === undefined ? args : ['--config', configDirectory, '-H', `unix://${socket}`, ...args];
|
|
590
|
+
}
|
|
514
591
|
async function sourceTree(worktree, baseCommit, scope, environment) {
|
|
515
592
|
const temporary = await mkdtemp(join(tmpdir(), 'dsh-source-build-index-'));
|
|
516
593
|
try {
|
|
@@ -541,13 +618,30 @@ export async function runDockerPreparedChecks(input) {
|
|
|
541
618
|
validateSourceBuildConfig(input.config);
|
|
542
619
|
const limits = sourceBuildLimits(input.config);
|
|
543
620
|
const dockerPath = await verifiedDockerPath(input.config.dockerPath);
|
|
621
|
+
const socket = await verifiedPortableSocket(input.config);
|
|
544
622
|
await input.assertCurrent();
|
|
545
|
-
if (input.config.repositorySandbox !== undefined) {
|
|
623
|
+
if (input.config.profile === 'repository' && input.config.repositorySandbox !== undefined) {
|
|
546
624
|
const version = await dockerControl(dockerPath, ['version', '--format', '{{.Server.Version}}/{{.Server.Os}}/{{.Server.Arch}}'], input.signal);
|
|
547
625
|
if (version.code !== 0 || version.stdout.trim() !== '29.4.1/linux/amd64')
|
|
548
626
|
throw new ControlPlaneCliError('SOURCE_BOUNDARY', 'repository seccomp requires approved Docker runtime 29.4.1/linux/amd64');
|
|
549
627
|
await input.assertCurrent();
|
|
550
628
|
}
|
|
629
|
+
if (socket !== undefined) {
|
|
630
|
+
const version = await dockerControl(dockerPath, ['version', '--format', '{{.Server.Version}}/{{.Server.Os}}/{{.Server.Arch}}'], input.signal, socket);
|
|
631
|
+
const architecture = process.arch === 'arm64' ? 'arm64' : 'amd64';
|
|
632
|
+
if (version.code !== 0 || version.stdout.trim() !== `29.4.1/linux/${architecture}`) {
|
|
633
|
+
throw new ControlPlaneCliError('SOURCE_BOUNDARY', 'portable repository requires approved matching Linux Docker runtime');
|
|
634
|
+
}
|
|
635
|
+
const daemon = await dockerControl(dockerPath, ['info', '--format', '{{.ID}}'], input.signal, socket);
|
|
636
|
+
if (daemon.code !== 0 || daemon.stdout.trim() !== input.config.daemonId) {
|
|
637
|
+
throw new ControlPlaneCliError('SOURCE_BOUNDARY', 'portable repository Docker daemon identity differs');
|
|
638
|
+
}
|
|
639
|
+
const image = await dockerControl(dockerPath, ['image', 'inspect', '--format', '{{.Id}}/{{.Os}}/{{.Architecture}}', input.config.image], input.signal, socket);
|
|
640
|
+
if (image.code !== 0 || image.stdout.trim() !== `${input.config.image}/linux/${architecture}`) {
|
|
641
|
+
throw new ControlPlaneCliError('SOURCE_BOUNDARY', 'portable repository image ID or platform differs');
|
|
642
|
+
}
|
|
643
|
+
await input.assertCurrent();
|
|
644
|
+
}
|
|
551
645
|
let creationSnapshot;
|
|
552
646
|
let baseLockDigest;
|
|
553
647
|
const verifyCreation = async () => {
|
|
@@ -610,7 +704,7 @@ export async function runDockerPreparedChecks(input) {
|
|
|
610
704
|
const container = input.sourceJob?.containerName ?? `dsh-source-prepare-${randomUUID()}`;
|
|
611
705
|
if (input.sourceJob !== undefined) {
|
|
612
706
|
try {
|
|
613
|
-
const existing = await dockerControl(dockerPath, ['container', 'ls', '--all', '--quiet', '--filter', `name=^/${container}$`], input.signal);
|
|
707
|
+
const existing = await dockerControl(dockerPath, ['container', 'ls', '--all', '--quiet', '--filter', `name=^/${container}$`], input.signal, socket);
|
|
614
708
|
if (existing.code !== 0 || existing.stdout.trim() !== '')
|
|
615
709
|
throw new ControlPlaneCliError('SOURCE_BOUNDARY', 'durable source container already exists or cannot be inspected');
|
|
616
710
|
}
|
|
@@ -627,19 +721,21 @@ export async function runDockerPreparedChecks(input) {
|
|
|
627
721
|
const args = ['run', '-i', '--pull', 'never', '--name', container, '--label', `dsh.source.tree=${snapshot.tree}`, ...(input.sourceJob === undefined ? [] : ['--label', `dsh.source.job=${input.sourceJob.id}`]), ...(seccomp === undefined ? [] : ['--label', `dsh.source.seccomp.sha256=${seccomp.digest}`]), '--network', 'none', '--read-only', '--cap-drop', 'ALL',
|
|
628
722
|
'--security-opt', 'no-new-privileges', '--user', '65534:65534', '--pids-limit', String(input.config.pidsLimit),
|
|
629
723
|
'--memory', `${input.config.memoryMiB}m`, '--memory-swap', `${input.config.memoryMiB}m`, '--cpus', String(input.config.cpus),
|
|
630
|
-
'--tmpfs', `/workspace:rw,nosuid,nodev,mode=1777,size=${input.config.workspaceMiB}m${limits.profile
|
|
724
|
+
'--tmpfs', `/workspace:rw,nosuid,nodev,mode=1777,size=${input.config.workspaceMiB}m${limits.profile !== 'standard' ? ',exec' : ''}`, '--tmpfs', `/tmp:rw,nosuid,nodev,mode=1777,size=${limits.temporaryMiB}m${limits.profile !== 'standard' ? ',exec' : ''}`,
|
|
631
725
|
'--workdir', '/workspace', '--env', `PLUGIN_ROOT=plugins/${input.name}`, '--env', 'HOME=/tmp', '--env', 'PATH=/usr/local/bin:/usr/bin:/bin',
|
|
632
726
|
...(input.capturePack ? ['--env', 'DSH_SOURCE_CAPTURE_PACK=true'] : []),
|
|
633
727
|
...(baseLockDigest === undefined ? [] : ['--env', 'DSH_SOURCE_TRUST_LOCKFILE=true', '--env', `DSH_SOURCE_BASE_LOCK_SHA256=${baseLockDigest}`]),
|
|
634
|
-
...(limits.profile
|
|
728
|
+
...(limits.profile !== 'standard' ? ['--env', 'CI=true', '--env', `VITEST_MAX_WORKERS=${Math.max(1, Math.min(4, Math.floor(input.config.cpus)))}`] : []),
|
|
635
729
|
// Docker's masked proc submounts prevent procfs mounts in a child user
|
|
636
730
|
// namespace. This opt-in removes those system-path masks; an empty /sys
|
|
637
731
|
// compensates for sysfs exposure, but does not restore the /proc masks.
|
|
638
732
|
...(seccomp === undefined ? [] : ['--security-opt', `seccomp=${seccomp.path}`,
|
|
639
733
|
'--security-opt', 'systempaths=unconfined', '--tmpfs', '/sys:ro,nosuid,nodev,noexec,size=1m']),
|
|
640
734
|
'--entrypoint', '/bin/sh', input.config.image, '-ceu', script];
|
|
735
|
+
const dockerConfig = socket === undefined ? undefined : await mkdtemp(join(tmpdir(), 'dsh-source-docker-config-'));
|
|
641
736
|
const git = spawn('/usr/bin/git', ['archive', '--format=tar', snapshot.tree], { cwd: input.worktree, env: input.environment, stdio: ['ignore', 'pipe', 'pipe'], shell: false });
|
|
642
|
-
const docker = spawn(dockerPath, args, { stdio: ['pipe', 'pipe', 'pipe'], shell: false,
|
|
737
|
+
const docker = spawn(dockerPath, portableArgs(socket, dockerConfig, args), { stdio: ['pipe', 'pipe', 'pipe'], shell: false,
|
|
738
|
+
env: socket === undefined ? { PATH: '/usr/bin:/bin' } : { PATH: '/usr/bin:/bin', HOME: dockerConfig, DOCKER_CONFIG: dockerConfig } });
|
|
643
739
|
git.stderr.resume();
|
|
644
740
|
docker.stdin.on('error', () => { });
|
|
645
741
|
git.stdout.pipe(docker.stdin);
|
|
@@ -716,7 +812,7 @@ export async function runDockerPreparedChecks(input) {
|
|
|
716
812
|
...(packArtifact === undefined ? {} : { packArtifact }),
|
|
717
813
|
evidence: Object.freeze({ schemaVersion: 1, kind: 'dsh-source-prepared-evidence',
|
|
718
814
|
environment: Object.freeze({ npmConfigIgnoreScripts: true, frozenLockfile: true, offline: true, nodeVersion: match[4], pnpmVersion: match[5] }),
|
|
719
|
-
commands: Object.freeze([{ command: 'docker', args: Object.freeze(
|
|
815
|
+
commands: Object.freeze([{ command: 'docker', args: Object.freeze(portableArgs(socket, dockerConfig, args)), exitCode: 0, durationMs: Date.now() - started, logDigest }]),
|
|
720
816
|
pack: Object.freeze({ name: match[1], sizeBytes: Number(match[2]), sha256: match[3], version: packageVersion }), preparedAt: input.preparedAt }) };
|
|
721
817
|
}
|
|
722
818
|
finally {
|
|
@@ -728,12 +824,14 @@ export async function runDockerPreparedChecks(input) {
|
|
|
728
824
|
// Failed inspect is ambiguous (daemon loss also exits nonzero). Require
|
|
729
825
|
// a successful exact-name listing from the daemon to prove absence.
|
|
730
826
|
if (input.sourceJob === undefined)
|
|
731
|
-
await ensureContainerRemoved(dockerPath, container);
|
|
827
|
+
await ensureContainerRemoved(dockerPath, container, socket, input.config.daemonId);
|
|
732
828
|
else
|
|
733
829
|
await removeSourceJobContainer(input.config, input.sourceJob);
|
|
734
830
|
}
|
|
735
831
|
finally {
|
|
736
832
|
await snapshot.cleanup();
|
|
833
|
+
if (dockerConfig !== undefined)
|
|
834
|
+
await rm(dockerConfig, { recursive: true, force: true });
|
|
737
835
|
}
|
|
738
836
|
}
|
|
739
837
|
}
|
|
@@ -743,61 +841,82 @@ export async function removeSourceJobContainer(config, job) {
|
|
|
743
841
|
throw new ControlPlaneCliError('SOURCE_BOUNDARY', 'invalid durable container identity');
|
|
744
842
|
validateSourceBuildConfig(config);
|
|
745
843
|
const path = await verifiedDockerPath(config.dockerPath);
|
|
746
|
-
const
|
|
844
|
+
const socket = await verifiedPortableSocket(config);
|
|
845
|
+
if (socket !== undefined) {
|
|
846
|
+
const daemon = await dockerControl(path, ['info', '--format', '{{.ID}}'], undefined, socket);
|
|
847
|
+
if (daemon.code !== 0 || daemon.stdout.trim() !== config.daemonId) {
|
|
848
|
+
throw new ControlPlaneCliError('SOURCE_BOUNDARY', 'durable container Docker daemon identity differs');
|
|
849
|
+
}
|
|
850
|
+
}
|
|
851
|
+
const list = () => dockerControl(path, ['container', 'ls', '--all', '--quiet', '--filter', `name=^/${job.containerName}$`], undefined, socket);
|
|
747
852
|
const before = await list();
|
|
748
853
|
if (before.code !== 0)
|
|
749
854
|
throw new ControlPlaneCliError('SOURCE_BOUNDARY', 'durable container absence is unproven');
|
|
750
855
|
if (before.stdout.trim() !== '') {
|
|
751
|
-
const inspected = await dockerControl(path, ['inspect', '--format', '[{{json .Id}},{{json .Name}},{{json .Config.Image}},{{json (index .Config.Labels "dsh.source.job")}}]', job.containerName]);
|
|
856
|
+
const inspected = await dockerControl(path, ['inspect', '--format', '[{{json .Id}},{{json .Name}},{{json .Config.Image}},{{json (index .Config.Labels "dsh.source.job")}}]', job.containerName], undefined, socket);
|
|
752
857
|
if (inspected.code !== 0)
|
|
753
858
|
throw new ControlPlaneCliError('SOURCE_BOUNDARY', 'durable container identity is unproven');
|
|
754
859
|
const value = JSON.parse(inspected.stdout);
|
|
755
860
|
if (!Array.isArray(value) || value.length !== 4 || typeof value[0] !== 'string' || !/^[a-f0-9]{64}$/u.test(value[0])
|
|
756
861
|
|| value[1] !== `/${job.containerName}` || value[2] !== config.image || value[3] !== job.id)
|
|
757
862
|
throw new ControlPlaneCliError('SOURCE_BOUNDARY', 'durable container ownership mismatch');
|
|
758
|
-
await dockerControl(path, ['rm', '-f', value[0]]);
|
|
863
|
+
await dockerControl(path, ['rm', '-f', value[0]], undefined, socket);
|
|
759
864
|
}
|
|
760
865
|
const after = await list();
|
|
761
866
|
if (after.code !== 0 || after.stdout.trim() !== '')
|
|
762
867
|
throw new ControlPlaneCliError('SOURCE_BOUNDARY', 'durable container cleanup is unproven');
|
|
763
868
|
}
|
|
764
|
-
async function dockerControl(path, args, signal) {
|
|
869
|
+
async function dockerControl(path, args, signal, socket) {
|
|
765
870
|
signal?.throwIfAborted();
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
abort();
|
|
775
|
-
|
|
776
|
-
const cleanup = () => { clearTimeout(timer); signal?.removeEventListener('abort', abort); };
|
|
777
|
-
child.stdout.on('data', (chunk) => {
|
|
778
|
-
bytes += chunk.length;
|
|
779
|
-
if (bytes > 4_096) {
|
|
780
|
-
failed = true;
|
|
781
|
-
child.kill('SIGKILL');
|
|
782
|
-
}
|
|
783
|
-
else
|
|
784
|
-
stdout += chunk.toString('utf8');
|
|
785
|
-
});
|
|
786
|
-
child.once('error', () => { cleanup(); reject(new ControlPlaneCliError('EXECUTOR_FAILED', 'source build control client could not start')); });
|
|
787
|
-
child.once('close', code => {
|
|
788
|
-
cleanup();
|
|
871
|
+
const configDirectory = socket === undefined ? undefined : await mkdtemp(join(tmpdir(), 'dsh-source-docker-config-'));
|
|
872
|
+
try {
|
|
873
|
+
return await new Promise((resolvePromise, reject) => {
|
|
874
|
+
const child = spawn(path, portableArgs(socket, configDirectory, args), { stdio: ['ignore', 'pipe', 'ignore'], shell: false,
|
|
875
|
+
env: socket === undefined ? { PATH: '/usr/bin:/bin' } : { PATH: '/usr/bin:/bin', HOME: configDirectory, DOCKER_CONFIG: configDirectory } });
|
|
876
|
+
let stdout = '';
|
|
877
|
+
let bytes = 0;
|
|
878
|
+
let failed = false;
|
|
879
|
+
const abort = () => { child.kill('SIGKILL'); };
|
|
880
|
+
signal?.addEventListener('abort', abort, { once: true });
|
|
789
881
|
if (signal?.aborted)
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
882
|
+
abort();
|
|
883
|
+
const timer = setTimeout(() => { failed = true; child.kill('SIGKILL'); }, 5_000);
|
|
884
|
+
const cleanup = () => { clearTimeout(timer); signal?.removeEventListener('abort', abort); };
|
|
885
|
+
child.stdout.on('data', (chunk) => {
|
|
886
|
+
bytes += chunk.length;
|
|
887
|
+
if (bytes > 4_096) {
|
|
888
|
+
failed = true;
|
|
889
|
+
child.kill('SIGKILL');
|
|
890
|
+
}
|
|
891
|
+
else
|
|
892
|
+
stdout += chunk.toString('utf8');
|
|
893
|
+
});
|
|
894
|
+
child.once('error', () => { cleanup(); reject(new ControlPlaneCliError('EXECUTOR_FAILED', 'source build control client could not start')); });
|
|
895
|
+
child.once('close', code => {
|
|
896
|
+
cleanup();
|
|
897
|
+
if (signal?.aborted)
|
|
898
|
+
reject(new ControlPlaneCliError('EXECUTOR_TIMEOUT', 'source build control query was cancelled'));
|
|
899
|
+
else if (failed)
|
|
900
|
+
reject(new ControlPlaneCliError('EXECUTOR_FAILED', 'source build control query exceeded its resource bound'));
|
|
901
|
+
else
|
|
902
|
+
resolvePromise({ code, stdout });
|
|
903
|
+
});
|
|
795
904
|
});
|
|
796
|
-
}
|
|
905
|
+
}
|
|
906
|
+
finally {
|
|
907
|
+
if (configDirectory !== undefined)
|
|
908
|
+
await rm(configDirectory, { recursive: true, force: true });
|
|
909
|
+
}
|
|
797
910
|
}
|
|
798
|
-
async function ensureContainerRemoved(path, container) {
|
|
799
|
-
|
|
800
|
-
|
|
911
|
+
async function ensureContainerRemoved(path, container, socket, daemonId) {
|
|
912
|
+
if (socket !== undefined) {
|
|
913
|
+
const daemon = await dockerControl(path, ['info', '--format', '{{.ID}}'], undefined, socket);
|
|
914
|
+
if (daemon.code !== 0 || daemon.stdout.trim() !== daemonId) {
|
|
915
|
+
throw new ControlPlaneCliError('EXECUTOR_FAILED', 'isolated source build daemon changed before cleanup');
|
|
916
|
+
}
|
|
917
|
+
}
|
|
918
|
+
await dockerControl(path, ['rm', '-f', container], undefined, socket);
|
|
919
|
+
const remaining = await dockerControl(path, ['container', 'ls', '--all', '--quiet', '--filter', `name=^/${container}$`], undefined, socket);
|
|
801
920
|
if (remaining.code !== 0 || remaining.stdout.trim() !== '') {
|
|
802
921
|
throw new ControlPlaneCliError('EXECUTOR_FAILED', 'isolated source build container cleanup could not prove quiescence');
|
|
803
922
|
}
|