@calltelemetry/ct-lab-mcp 0.8.101 → 0.8.103
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -10
- package/assets/stig/SHA256SUMS +5 -5
- package/assets/stig/scripts/assess.sh +46 -4
- package/assets/stig/scripts/errata.sh +1 -1
- package/assets/stig/scripts/remediate.sh +45 -0
- package/assets/stig/tailoring.xml +5 -3
- package/assets/stig/template.pkr.hcl +12 -1
- package/dist/src/generated-version.d.ts +1 -1
- package/dist/src/generated-version.js +1 -1
- package/dist/src/stig/live.d.ts +7 -1
- package/dist/src/stig/live.d.ts.map +1 -1
- package/dist/src/stig/live.js +9 -7
- package/dist/src/stig/live.js.map +1 -1
- package/dist/src/stig/model.d.ts +10 -1
- package/dist/src/stig/model.d.ts.map +1 -1
- package/dist/src/stig/model.js +19 -1
- package/dist/src/stig/model.js.map +1 -1
- package/dist/src/stig/nodes.d.ts +16 -0
- package/dist/src/stig/nodes.d.ts.map +1 -0
- package/dist/src/stig/nodes.js +14 -0
- package/dist/src/stig/nodes.js.map +1 -0
- package/dist/src/stig/ports.d.ts +5 -1
- package/dist/src/stig/ports.d.ts.map +1 -1
- package/dist/src/stig/runner.d.ts +17 -1
- package/dist/src/stig/runner.d.ts.map +1 -1
- package/dist/src/stig/runner.js +65 -24
- package/dist/src/stig/runner.js.map +1 -1
- package/dist/src/tools/import-qcow.d.ts +3 -2
- package/dist/src/tools/import-qcow.d.ts.map +1 -1
- package/dist/src/tools/import-qcow.js +24 -7
- package/dist/src/tools/import-qcow.js.map +1 -1
- package/dist/src/tools/stig-tools.d.ts +8 -1
- package/dist/src/tools/stig-tools.d.ts.map +1 -1
- package/dist/src/tools/stig-tools.js +19 -7
- package/dist/src/tools/stig-tools.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/stig/model.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C,MAAM,CAAC,MAAM,eAAe,GAAG,wBAAwB,CAAC;AACxD,MAAM,CAAC,MAAM,uBAAuB,GAAG,gCAAgC,CAAC;AACxE,MAAM,CAAC,MAAM,oBAAoB,GAAG,6BAA6B,CAAC;AAClE,MAAM,CAAC,MAAM,sBAAsB,GAAG,6BAA6B,CAAC;AACpE,MAAM,CAAC,MAAM,mBAAmB,GAAG,uCAAuC,CAAC;AAC3E,MAAM,CAAC,MAAM,yBAAyB,GAAG,IAAI,CAAC;AAC9C,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC;AACvC,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAC1C,MAAM,CAAC,MAAM,oBAAoB,GAAG,eAAe,CAAC;AACpD,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,gBAAgB,EAAE,OAAO,EAAE,UAAU,CAAU,CAAC;AAE3E,MAAM,CAAC,MAAM,sBAAsB,GAAG,kEAAkE,CAAC;AACzG,MAAM,CAAC,MAAM,qBAAqB,GAAG,kEAAkE,CAAC;AACxG,MAAM,CAAC,MAAM,eAAe,GAAG,yCAAyC,CAAC;AACzE,MAAM,CAAC,MAAM,YAAY,GAAG,kDAAkD,CAAC;AAC/E,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,mBAAmB,EAAE,OAAO,EAAE,CAAC,CAAC;AAExH,MAAM,CAAC,MAAM,UAAU,GAAkD,MAAM,CAAC,MAAM,CAAC;IACrF,gBAAgB,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,UAAU,CAAC;IACpH,KAAK,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC;IACzH,QAAQ,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC;CACnE,CAAC,CAAC;AACH,2GAA2G;AAC3G,MAAM,CAAC,MAAM,oBAAoB,GAAsB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAE7E,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,YAAY,EAAE,eAAe,EAAE,OAAO,CAAU,CAAC;AAa7G,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,GAAG,UAAU,EAAE,SAAS,CAAU,CAAC;AAEnE,MAAM,CAAC,MAAM,eAAe,GAAG,8CAA8C,CAAC;AAC9E,MAAM,CAAC,MAAM,mBAAmB,GAAG,2CAA2C,CAAC;AAkB/E,MAAM,IAAI,GAAG,uFAAuF,CAAC;AACrG,MAAM,IAAI,GAAG,iDAAiD,CAAC;AAC/D,MAAM,MAAM,GAAG,iBAAiB,CAAC;AACjC,MAAM,MAAM,GAAG,gBAAgB,CAAC;AAChC,MAAM,YAAY,GAAG,4BAA4B,CAAC;AAGlD,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAiB,EAAE,CAAC,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAEzH,8EAA8E;AAE9E,MAAM,UAAU,GAAG,gEAAgE,CAAC;AACpF,MAAM,YAAY,GAAG;IACnB,6CAA6C;IAC7C,kDAAkD;IAClD,8BAA8B;IAC9B,eAAe;CAChB,CAAC;AAEF,4GAA4G;AAC5G,MAAM,UAAU,eAAe,CAAC,KAAc,EAAE,IAAI,GAAG,GAAG;IACxD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,EAAE,CAAC,CAAC;QACrG,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,IAAI,EAAE,IAAI,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1G,IAAI,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,IAAI,EAAE,CAAC,CAAC;QAClE,OAAO;IACT,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAAC,OAAO;IAAC,CAAC;IACzG,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACpB,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAChD,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC;YACpI,eAAe,CAAC,IAAI,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;AACH,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,MAAM,CAAC,IAAY;IACjC,OAAO,MAAM,CAAC,IAAI,CAAC;SAChB,OAAO,CAAC,iFAAiF,EAAE,gBAAgB,CAAC;SAC5G,OAAO,CAAC,mDAAmD,EAAE,iBAAiB,CAAC;SAC/E,OAAO,CAAC,mBAAmB,EAAE,wBAAwB,CAAC;SACtD,OAAO,CAAC,6EAA6E,EAAE,cAAc,CAAC,CAAC;AAC5G,CAAC;AAED,8EAA8E;AAE9E,SAAS,SAAS,CAAC,GAAS,EAAE,OAAiB,EAAE,IAAY,EAAE,MAAgB;IAC7E,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,GAAG,aAAa,CAAC,CAAC;AAC3G,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,CAAU;IAC/C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,8BAA8B,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAC9F,SAAS,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IAClG,IAAI,CAAC,CAAC,MAAM,KAAK,sBAAsB;QAAE,MAAM,CAAC,IAAI,CAAC,kBAAkB,sBAAsB,EAAE,CAAC,CAAC;IACjG,IAAI,CAAE,UAAgC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,uBAAuB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrH,IAAI,CAAC,CAAC,OAAO,KAAK,YAAY;QAAE,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IAE1E,IAAI,CAAC,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;QAChC,IAAI,CAAC,CAAC,QAAQ,KAAK,SAAS;YAAE,MAAM,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;IACvF,CAAC;SAAM,IAAK,UAAgC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9D,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;IACxF,CAAC;IACD,IAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;QAC7D,IAAI,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;QACpJ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI;YAAE,MAAM,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;IACtJ,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;SAC5D,CAAC;QACJ,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;QACjE,IAAI,OAAO,CAAC,CAAC,SAAS,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,iDAAiD,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;QAC9K,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;IACxI,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;SAClD,CAAC;QACJ,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QACnE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAW,EAAE,EAAE,CAAC,OAAO,EAAE,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;QACpN,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;QACvN,IAAI,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,KAAK,QAAQ,IAAI,CAAC,iCAAiC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;IAChM,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;SAClD,CAAC;QACJ,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,qBAAqB,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QACtF,IAAI,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;QACvH,IAAI,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;QACrH,IAAI,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QAChI,IAAI,OAAO,CAAC,CAAC,IAAI,CAAC,mBAAmB,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;IACzK,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC;YAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAAC,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAAC,CAAC;IAChF,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAE,CAA+B,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACnH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAU;IACvC,IAAI,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;IACxD,MAAM,GAAG,GAAG,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,eAAe,CAAC,CAAC;IAC5D,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACnD,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACjF,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,yBAAyB;QAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,yBAAyB,QAAQ,CAAC,CAAC;IACtI,IAAI,CAAC;QAAC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IAAC,CAAC;AACjG,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,iBAAiB,CAAC,IAAc,EAAE,IAAiI;IACjL,MAAM,CAAC,GAAmB;QACxB,MAAM,EAAE,sBAAsB,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY;QAC3D,GAAG,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACjE,SAAS,EAAE,EAAE,GAAG,EAAE,yCAAyC,EAAE,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;QAChI,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE,gBAAgB,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;QAClH,IAAI,EAAE,EAAE,GAAG,SAAS,EAAE;KACL,CAAC;IACpB,MAAM,OAAO,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC;IAC1C,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1F,OAAO,CAAC,CAAC;AACX,CAAC;AAED,iFAAiF;AAEjF,MAAM,UAAU,OAAO,CAAC,IAAY;IAClC,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QAC1D,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1D,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,WAAW,GAAG,GAAe,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;AAE1H,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,MAAM,MAAM,GAAG,WAAW,EAAE,CAAC;IAC7B,MAAM,EAAE,GAAG,iEAAiE,CAAC;IAC7E,IAAI,CAAyB,CAAC;IAC9B,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI;QAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM;YAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAqB,CAAC,IAAI,CAAC,CAAC;IACtG,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,sGAAsG;AACtG,MAAM,UAAU,sBAAsB,CAAC,IAAY;IACjD,MAAM,MAAM,GAAG,WAAW,EAAE,CAAC;IAC7B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5C,MAAM,CAAC,GAAG,qEAAqE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3F,IAAI,CAAC;YAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAqB,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,EAA0B;IACrD,MAAM,MAAM,GAAG,WAAW,EAAE,CAAC;IAC7B,KAAK,MAAM,CAAC,IAAI,UAAU;QAAE,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IAC3F,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,UAAU,CAAC,MAAuC;IACzD,MAAM,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC;IACvB,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAY,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACvG,OAAO,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;AAC3D,CAAC;AAED,kHAAkH;AAClH,MAAM,UAAU,WAAW,CAAC,MAAuC,EAAE,IAA0B;IAC7F,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IAC/B,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;IACjD,MAAM,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAC3B,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,EAA0B,EAAE,MAAM,GAAG,SAAS;IAC7E,MAAM,MAAM,GAAG,EAAE,GAAG,WAAW,EAAE,EAAE,OAAO,EAAE,CAAC,EAAgB,CAAC;IAC9D,KAAK,MAAM,CAAC,IAAI,eAAe;QAAE,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IAClG,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,OAAa,EACb,OAAqJ,EAAE;IAEvJ,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC;IAClC,MAAM,IAAI,GAAG,IAAI,KAAK,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;IACpF,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5G,MAAM,GAAG,GAAG,OAAO,CAAC,gBAAgB,IAAI,EAAE,CAAC;IAC3C,OAAO;QACL,MAAM,EAAE,mBAAmB,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC;QACzH,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,QAAQ,EAAE;YACR,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,sBAAsB;YAChG,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,mBAAmB,EAAE,SAAS,CAAC,mBAAmB;YACzG,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtD;QACD,MAAM,EAAE;YACN,UAAU,EAAE,OAAO,CAAC,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,gBAAgB;YACtF,GAAG,EAAE,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC;YACrF,MAAM,EAAE,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC;SAC5G;QACD,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxD,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KAC1D,CAAC;AACJ,CAAC;AAED,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;AAChI,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,qBAAqB,CAAC,CAAC;AACpG,MAAM,QAAQ,GAAG,CAAC,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AAE9D,MAAM,UAAU,sBAAsB,CAAC,CAAU;IAC/C,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,mBAAmB;QAAE,OAAO,IAAI,CAAC;IAClE,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACvE,IAAI,CAAE,UAAgC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IACzI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACxK,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3K,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9H,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAC;IACxE,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,iBAAiB,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QACnH,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC;YAAE,OAAO,IAAI,CAAC;QAChI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,eAAe,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;IACpL,CAAC;IACD,IAAI,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ,IAAI,CAAC,CAAC,WAAW,CAAC,MAAM,GAAG,EAAE;QAAE,OAAO,IAAI,CAAC;IAChF,IAAI,CAAC;QAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;IAClD,OAAO,EAAE,GAAI,CAAmC,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;AAClG,CAAC;AAED,kHAAkH;AAClH,MAAM,UAAU,iBAAiB,CAAC,KAAU,EAAE,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;IAC1E,MAAM,GAAG,GAAG,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,uBAAuB,CAAC,CAAC;IACpE,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,yBAAyB;QAAE,OAAO,IAAI,CAAC;IAC/F,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;IACxD,MAAM,OAAO,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC/C,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,OAAO,OAAO,CAAC,IAAI,CAAC,QAAQ;QAC1B,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE;QACnB,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,EAAE,GAAG,EAAE,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,QAAQ,OAAO,CAAC,MAAM,CAAC,IAAI,UAAU,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,cAAc,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;AAChT,CAAC;AACD,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAE7B,+EAA+E;AAE/E,MAAM,UAAU,MAAM,CAAC,KAAa;IAClC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAC7E,IAAI,KAAK,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;IACvG,IAAI,KAAK,GAAG,kBAAkB;QAAE,MAAM,IAAI,KAAK,CAAC,YAAY,KAAK,iBAAiB,kBAAkB,OAAO,CAAC,CAAC;IAC7G,OAAO,KAAK,CAAC;AACf,CAAC;AAMD,MAAM,UAAU,mBAAmB,CAAC,KAAU,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,WAAW,GAAG,CAAC;IAC/E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,IAAI,EAAE,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,KAAK,EAAE,IAAI,EAAE,QAAQ,IAAI,EAAE,CAAC;IAC7C,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpG,MAAM,WAAW,GAAG,kBAAkB,GAAG,YAAY,GAAG,WAAW,CAAC;IACpE,IAAI,WAAW,GAAG,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,YAAY,wCAAwC,kBAAkB,OAAO,EAAE,YAAY,EAAE,CAAC;IAC1J,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,GAAG,WAAW,CAAC,EAAE,CAAC;AAC1I,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAAgB,EAAE,KAAK,GAAG,uBAAuB;IAC/E,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IACvI,IAAI,OAAO,GAAG,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,OAAO,iBAAiB,KAAK,kDAAkD,CAAC,CAAC;AACxI,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAAa,EAAE,QAAgB;IACnE,KAAK,MAAM,CAAC,IAAI,MAAM,IAAI,EAAE,EAAE,CAAC;QAC7B,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,KAAK,QAAQ;YAAE,SAAS;QAC7C,MAAM,IAAI,GAAG,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,oBAAoB,CAAC,CAAC;QAC9D,IAAI,CAAC,GAAgB,IAAI,CAAC;QAC1B,IAAI,CAAC;YAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,sDAAsD,CAAC,CAAC;QAC/F,IAAI,CAAC,EAAE,IAAI,KAAK,OAAO,IAAI,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/D,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,6CAA6C,CAAC,CAAC;QACzF,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,KAAoH;IAC/J,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,GAAG,KAAK,CAAC;IACjD,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,KAAK,CAAC,IAAI,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,EAAE,IAAI,gDAAgD,CAAC,CAAC;IAC7I,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,oBAAoB,EAAE,CAAC,CAAC;IAC7J,IAAI,KAAK,EAAE,IAAI,EAAE,IAAI,KAAK,KAAK,CAAC,IAAI,IAAI,KAAK,EAAE,IAAI,EAAE,MAAM,KAAK,KAAK,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IACvJ,MAAM,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,IAAI,KAAK,gBAAgB;QAAE,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClG,IAAI,gBAAgB,KAAK,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IAChG,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,kBAAkB,EAAE,cAAc,CAAC,EAAE,CAAC;AACtE,CAAC;AAED,gFAAgF;AAEhF,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,OAAe;IACxD,MAAM,KAAK,GAAI,UAAgD,CAAC,IAAI,CAAC,CAAC;IACtE,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC;IACpD,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACjC,IAAI,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,OAAO,aAAa,IAAI,EAAE,CAAC,CAAC;IACvE,OAAO,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;AAC9B,CAAC"}
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/stig/model.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/** Lab Proxmox nodes the STIG tools can clone on. The shared names match the operator's claim nodes. */
|
|
2
|
+
export type StigNode = "minis" | "ibm64" | "proxmox";
|
|
3
|
+
export declare const STIG_NODE_NAMES: readonly StigNode[];
|
|
4
|
+
export interface StigNodeConfig {
|
|
5
|
+
claimNode: StigNode;
|
|
6
|
+
hostAssetId: string;
|
|
7
|
+
/** Proxmox node name (what `qm`/the API call the node). */
|
|
8
|
+
pveNode: string;
|
|
9
|
+
/** Root-SSH address used only by the fallback adapter. */
|
|
10
|
+
pveHost: string;
|
|
11
|
+
/** Clone VLAN; null means the node's bridge is not VLAN-aware. */
|
|
12
|
+
vlan: number | null;
|
|
13
|
+
}
|
|
14
|
+
export declare const STIG_NODES: Readonly<Record<StigNode, StigNodeConfig>>;
|
|
15
|
+
export declare function stigNode(name: string | undefined): StigNodeConfig;
|
|
16
|
+
//# sourceMappingURL=nodes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../../../src/stig/nodes.ts"],"names":[],"mappings":"AAAA,wGAAwG;AACxG,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;AACrD,eAAO,MAAM,eAAe,EAAE,SAAS,QAAQ,EAAkC,CAAC;AAElF,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,QAAQ,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,2DAA2D;IAC3D,OAAO,EAAE,MAAM,CAAC;IAChB,0DAA0D;IAC1D,OAAO,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAED,eAAO,MAAM,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,cAAc,CAAC,CAIhE,CAAC;AAEH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,cAAc,CAKjE"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export const STIG_NODE_NAMES = ["minis", "ibm64", "proxmox"];
|
|
2
|
+
export const STIG_NODES = Object.freeze({
|
|
3
|
+
minis: { claimNode: "minis", hostAssetId: "proxmox-minis-lab", pveNode: "minis", pveHost: "192.168.123.178", vlan: 126 },
|
|
4
|
+
ibm64: { claimNode: "ibm64", hostAssetId: "proxmox-ibm64", pveNode: "prox-ibm64", pveHost: "192.168.123.176", vlan: 126 },
|
|
5
|
+
proxmox: { claimNode: "proxmox", hostAssetId: "proxmox-lab", pveNode: "proxmox", pveHost: "192.168.123.177", vlan: null },
|
|
6
|
+
});
|
|
7
|
+
export function stigNode(name) {
|
|
8
|
+
const n = (name ?? "minis");
|
|
9
|
+
const cfg = STIG_NODES[n];
|
|
10
|
+
if (!cfg)
|
|
11
|
+
throw new Error(`unknown node '${name}'; use one of ${STIG_NODE_NAMES.join(", ")}`);
|
|
12
|
+
return cfg;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=nodes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nodes.js","sourceRoot":"","sources":["../../../src/stig/nodes.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,eAAe,GAAwB,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;AAalF,MAAM,CAAC,MAAM,UAAU,GAA+C,MAAM,CAAC,MAAM,CAAC;IAClF,KAAK,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,GAAG,EAAE;IACxH,KAAK,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,GAAG,EAAE;IACzH,OAAO,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,IAAI,EAAE;CAC1H,CAAC,CAAC;AAEH,MAAM,UAAU,QAAQ,CAAC,IAAwB;IAC/C,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAa,CAAC;IACxC,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAC1B,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,iBAAiB,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9F,OAAO,GAAG,CAAC;AACb,CAAC"}
|
package/dist/src/stig/ports.d.ts
CHANGED
|
@@ -59,6 +59,7 @@ export interface ClaimPort {
|
|
|
59
59
|
vmid: number;
|
|
60
60
|
vmName: string;
|
|
61
61
|
ttlHours: number;
|
|
62
|
+
node: string;
|
|
62
63
|
stig: Record<string, unknown>;
|
|
63
64
|
}): Promise<ClaimRecord>;
|
|
64
65
|
/** Blocks until an operator reconciled the claim to Ready, or throws. */
|
|
@@ -111,6 +112,8 @@ export interface Logger {
|
|
|
111
112
|
export interface StigProvider {
|
|
112
113
|
clone(a: {
|
|
113
114
|
operationId: string;
|
|
115
|
+
hostAssetId: string;
|
|
116
|
+
untagged: boolean;
|
|
114
117
|
name: string;
|
|
115
118
|
templateName: string;
|
|
116
119
|
vmid: number;
|
|
@@ -123,10 +126,11 @@ export interface StigProvider {
|
|
|
123
126
|
}>;
|
|
124
127
|
destroyTemplate(a: {
|
|
125
128
|
operationId: string;
|
|
129
|
+
hostAssetId: string;
|
|
126
130
|
name: string;
|
|
127
131
|
vmid: number;
|
|
128
132
|
}): Promise<void>;
|
|
129
|
-
guestIp(vmid: number): Promise<string>;
|
|
133
|
+
guestIp(vmid: number, hostAssetId: string): Promise<string>;
|
|
130
134
|
}
|
|
131
135
|
export interface StigDeps {
|
|
132
136
|
/** Canonical provider for guest mutations; absent means the root-SSH `qm` fallback. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ports.d.ts","sourceRoot":"","sources":["../../../src/stig/ports.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,WAAW;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AAC7E,MAAM,WAAW,OAAO;IAAG,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE;AAE/D,gHAAgH;AAChH,MAAM,WAAW,QAAQ;IAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;CAAE;AAEvF,gHAAgH;AAChH,MAAM,WAAW,UAAU;IACzB,SAAS,CAAC,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAChF,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,gHAAgH;IAChH,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC/G,gHAAgH;IAChH,OAAO,CAAC,OAAO,EAAE,YAAY,GAAG,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7F,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3C,mEAAmE;IACnE,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3D;AAED,mFAAmF;AACnF,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC/C,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjD;AAED,MAAM,WAAW,WAAW;IAAG,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAAE;AAEvK,MAAM,WAAW,SAAS;IACxB,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAC/B,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAC/C,4FAA4F;IAC5F,MAAM,CAAC,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"ports.d.ts","sourceRoot":"","sources":["../../../src/stig/ports.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type StigCounts, type StigDescriptor, type StigReceiptSummary, stigStatusPreview } from "./model.js";
|
|
2
|
+
import { type StigNode, type StigNodeConfig } from "./nodes.js";
|
|
2
3
|
import type { ClaimRecord, StigDeps } from "./ports.js";
|
|
3
4
|
export declare const BUILD_CLAIM_TTL_HOURS = 6;
|
|
4
5
|
export declare const DEFAULT_CLONE_TTL_HOURS = 48;
|
|
@@ -8,6 +9,12 @@ export declare const VMID_RANGE: {
|
|
|
8
9
|
};
|
|
9
10
|
export interface ClonePlan {
|
|
10
11
|
mode: "plan";
|
|
12
|
+
node: StigNode;
|
|
13
|
+
recreate?: {
|
|
14
|
+
claim: string;
|
|
15
|
+
uid: string;
|
|
16
|
+
vmid: number;
|
|
17
|
+
};
|
|
11
18
|
cloneName: string;
|
|
12
19
|
claim: string;
|
|
13
20
|
vmid: number;
|
|
@@ -41,7 +48,8 @@ export interface BuildPlan {
|
|
|
41
48
|
export declare class StigRunner {
|
|
42
49
|
private readonly d;
|
|
43
50
|
private static reencrypting;
|
|
44
|
-
|
|
51
|
+
readonly node: StigNodeConfig;
|
|
52
|
+
constructor(d: StigDeps, node?: StigNode);
|
|
45
53
|
private log;
|
|
46
54
|
private listGuests;
|
|
47
55
|
private pickVmid;
|
|
@@ -57,6 +65,8 @@ export declare class StigRunner {
|
|
|
57
65
|
dns?: string[];
|
|
58
66
|
ntp?: string[];
|
|
59
67
|
poolMaxPercent?: number;
|
|
68
|
+
untagged?: boolean;
|
|
69
|
+
recreate?: boolean;
|
|
60
70
|
}): Promise<ClonePlan>;
|
|
61
71
|
createClone(i: {
|
|
62
72
|
cloneName: string;
|
|
@@ -67,6 +77,8 @@ export declare class StigRunner {
|
|
|
67
77
|
dns?: string[];
|
|
68
78
|
ntp?: string[];
|
|
69
79
|
poolMaxPercent?: number;
|
|
80
|
+
untagged?: boolean;
|
|
81
|
+
recreate?: boolean;
|
|
70
82
|
}): Promise<any>;
|
|
71
83
|
private applyClone;
|
|
72
84
|
private pveOk;
|
|
@@ -75,12 +87,16 @@ export declare class StigRunner {
|
|
|
75
87
|
name?: string;
|
|
76
88
|
ssgDatastream: string;
|
|
77
89
|
ssgDatastreamSha256: string;
|
|
90
|
+
disaBenchmark: string;
|
|
91
|
+
disaBenchmarkSha256: string;
|
|
78
92
|
now?: string;
|
|
79
93
|
}): Promise<BuildPlan>;
|
|
80
94
|
build(i: {
|
|
81
95
|
name?: string;
|
|
82
96
|
ssgDatastream: string;
|
|
83
97
|
ssgDatastreamSha256: string;
|
|
98
|
+
disaBenchmark: string;
|
|
99
|
+
disaBenchmarkSha256: string;
|
|
84
100
|
now?: string;
|
|
85
101
|
apply?: boolean;
|
|
86
102
|
planDigest?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../src/stig/runner.ts"],"names":[],"mappings":"AAWA,OAAO,EAGL,KAAK,UAAU,EAAE,KAAK,cAAc,EAAE,KAAK,kBAAkB,EAEyB,iBAAiB,EAExG,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EAAE,WAAW,EAAe,QAAQ,EAAE,MAAM,YAAY,CAAC;AAErE,eAAO,MAAM,qBAAqB,IAAI,CAAC;AACvC,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAC1C,eAAO,MAAM,UAAU;;;CAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../src/stig/runner.ts"],"names":[],"mappings":"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"}
|
package/dist/src/stig/runner.js
CHANGED
|
@@ -9,13 +9,13 @@
|
|
|
9
9
|
import { createHash } from "node:crypto";
|
|
10
10
|
import { chmodSync, existsSync, mkdirSync, readFileSync, renameSync, writeFileSync } from "node:fs";
|
|
11
11
|
import { join } from "node:path";
|
|
12
|
-
import { STIG_RECEIPT_ANNOTATION, STIG_STEP_ANNOTATION, STIG_STEPS, STIG_PINS, STIG_DATASTREAM_SHA256, STIG_TAILORING_SHA256, STIG_DVD_ISO, STIG_TEMPLATE_PREFIX, STIG_ANNOTATION_MAX_BYTES, STIG_POOL_LIMIT_PERCENT, COUNT_KEYS, assertPoolBelow, assertSingleReencrypt, disaCountsFromKv, DISA_PROFILE_ID, assertTemplateReleaseAllowed, buildReceiptSummary, capTtl, countsFromKv, defaultDescriptor, parseKv, planTemplateRenewal, receiptGate, redact, stigDescriptor, stigStatusPreview, validateReceiptSummary, } from "./model.js";
|
|
12
|
+
import { STIG_RECEIPT_ANNOTATION, STIG_STEP_ANNOTATION, STIG_STEPS, STIG_PINS, STIG_DATASTREAM_SHA256, DISA_BENCHMARK_SHA256, STIG_TAILORING_SHA256, STIG_DVD_ISO, STIG_TEMPLATE_PREFIX, STIG_ANNOTATION_MAX_BYTES, STIG_POOL_LIMIT_PERCENT, COUNT_KEYS, assertPoolBelow, assertSingleReencrypt, assertNoYoungStigClone, disaCountsFromKv, DISA_PROFILE_ID, assertTemplateReleaseAllowed, buildReceiptSummary, capTtl, countsFromKv, defaultDescriptor, parseKv, planTemplateRenewal, receiptGate, redact, stigDescriptor, stigStatusPreview, validateReceiptSummary, } from "./model.js";
|
|
13
13
|
import { sha256File } from "./receipt.js";
|
|
14
|
+
import { stigNode } from "./nodes.js";
|
|
14
15
|
export const BUILD_CLAIM_TTL_HOURS = 6;
|
|
15
16
|
export const DEFAULT_CLONE_TTL_HOURS = 48;
|
|
16
17
|
export const VMID_RANGE = { min: 8100, max: 8899 };
|
|
17
18
|
const CI_USER = "ctadmin";
|
|
18
|
-
const VLAN = 126;
|
|
19
19
|
const DEFAULT_DNS = ["192.168.126.1", "192.168.68.125"];
|
|
20
20
|
const digest = (value) => createHash("sha256").update(JSON.stringify(value)).digest("hex");
|
|
21
21
|
const shq = (s) => `'${s.replace(/'/g, `'\\''`)}'`;
|
|
@@ -23,8 +23,10 @@ const dopplerKeyFor = (cloneName) => `LAB_RHEL8_RECOVERY_${cloneName.toUpperCase
|
|
|
23
23
|
export class StigRunner {
|
|
24
24
|
d;
|
|
25
25
|
static reencrypting = false;
|
|
26
|
-
|
|
26
|
+
node;
|
|
27
|
+
constructor(d, node = "minis") {
|
|
27
28
|
this.d = d;
|
|
29
|
+
this.node = stigNode(node);
|
|
28
30
|
}
|
|
29
31
|
log(line) { this.d.log.info(redact(line)); }
|
|
30
32
|
/* ------------------------------------------------------------ helpers */
|
|
@@ -38,7 +40,7 @@ export class StigRunner {
|
|
|
38
40
|
const live = guests ?? (await this.listGuests());
|
|
39
41
|
const used = new Set(live.map((g) => g.vmid));
|
|
40
42
|
for (const c of await this.d.claims.list())
|
|
41
|
-
if (Number.isInteger(c.spec?.vmid))
|
|
43
|
+
if (Number.isInteger(c.spec?.vmid) && (c.spec?.node ?? "minis") === this.node.claimNode)
|
|
42
44
|
used.add(c.spec.vmid);
|
|
43
45
|
for (let v = VMID_RANGE.min; v <= VMID_RANGE.max; v++)
|
|
44
46
|
if (!used.has(v))
|
|
@@ -66,8 +68,22 @@ export class StigRunner {
|
|
|
66
68
|
throw new Error("cloneName must be a lowercase DNS label (a-z, 0-9, -)");
|
|
67
69
|
const ttlHours = capTtl(i.ttlHours ?? DEFAULT_CLONE_TTL_HOURS);
|
|
68
70
|
const claim = `clone-${i.cloneName}`;
|
|
69
|
-
|
|
70
|
-
|
|
71
|
+
const existing = await this.d.claims.get(claim);
|
|
72
|
+
let recreate;
|
|
73
|
+
if (existing) {
|
|
74
|
+
if (!i.recreate)
|
|
75
|
+
throw new Error(`claim ${claim} already exists; renew, delete, pass recreate=true or choose another cloneName`);
|
|
76
|
+
let d = null;
|
|
77
|
+
try {
|
|
78
|
+
d = stigDescriptor(existing);
|
|
79
|
+
}
|
|
80
|
+
catch {
|
|
81
|
+
d = null;
|
|
82
|
+
}
|
|
83
|
+
if (d?.mode !== "clone")
|
|
84
|
+
throw new Error(`claim ${claim} is not a STIG clone claim; refusing to recreate it`);
|
|
85
|
+
recreate = { claim, uid: existing.metadata.uid, vmid: existing.spec?.vmid };
|
|
86
|
+
}
|
|
71
87
|
const guests = await this.listGuests();
|
|
72
88
|
const tpl = i.templateRef ? guests.find((g) => g.template === 1 && g.name === i.templateRef) : this.newestTemplate(guests);
|
|
73
89
|
if (!tpl)
|
|
@@ -78,35 +94,54 @@ export class StigRunner {
|
|
|
78
94
|
if (!Number.isInteger(poolMaxPercent) || poolMaxPercent < 10 || poolMaxPercent > STIG_POOL_LIMIT_PERCENT)
|
|
79
95
|
throw new Error(`poolMaxPercent must be 10-${STIG_POOL_LIMIT_PERCENT}`);
|
|
80
96
|
let blockedBy = null;
|
|
97
|
+
if (this.node.vlan === null && !i.untagged)
|
|
98
|
+
blockedBy = `node ${this.node.claimNode}'s bridge is not VLAN-aware; a VLAN126 clone gets no network there. Pass untagged=true for an untagged clone.`;
|
|
81
99
|
try {
|
|
82
|
-
|
|
100
|
+
if (!blockedBy)
|
|
101
|
+
assertPoolBelow(poolPercent, poolMaxPercent);
|
|
83
102
|
}
|
|
84
103
|
catch (e) {
|
|
85
104
|
blockedBy = e.message;
|
|
86
105
|
}
|
|
87
106
|
if (!blockedBy) {
|
|
88
107
|
try {
|
|
89
|
-
assertSingleReencrypt(await this.d.claims.list(), claim);
|
|
108
|
+
assertSingleReencrypt((await this.d.claims.list()).filter((c) => (c.spec?.node ?? "minis") === this.node.claimNode), claim);
|
|
109
|
+
assertNoYoungStigClone(guests);
|
|
90
110
|
}
|
|
91
111
|
catch (e) {
|
|
92
112
|
blockedBy = e.message;
|
|
93
113
|
}
|
|
94
114
|
}
|
|
95
|
-
const base = { cloneName: i.cloneName, claim, vmid, template: { ref: tpl.name, vmid: tpl.vmid }, ttlHours, dns: i.dns ?? DEFAULT_DNS, ntp: i.ntp ?? [], poolMaxPercent };
|
|
115
|
+
const base = { cloneName: i.cloneName, claim, vmid, template: { ref: tpl.name, vmid: tpl.vmid }, ttlHours, dns: i.dns ?? DEFAULT_DNS, ntp: i.ntp ?? [], poolMaxPercent, node: this.node.claimNode, untagged: !!i.untagged, recreate: recreate ?? null };
|
|
96
116
|
return {
|
|
97
|
-
mode: "plan", cloneName: i.cloneName, claim, vmid, template: base.template, ttlHours, poolPercent, poolMaxPercent, poolOk: blockedBy === null, blockedBy,
|
|
117
|
+
mode: "plan", node: this.node.claimNode, ...(recreate ? { recreate } : {}), cloneName: i.cloneName, claim, vmid, template: base.template, ttlHours, poolPercent, poolMaxPercent, poolOk: blockedBy === null, blockedBy,
|
|
98
118
|
escrowKey: dopplerKeyFor(i.cloneName), steps: STIG_STEPS.clone, planDigest: digest({ kind: "clone", ...base }),
|
|
99
119
|
};
|
|
100
120
|
}
|
|
101
121
|
async createClone(i) {
|
|
102
|
-
|
|
122
|
+
let plan = await this.planClone(i);
|
|
103
123
|
if (!i.apply)
|
|
104
124
|
return plan;
|
|
105
125
|
if (!i.planDigest || i.planDigest !== plan.planDigest)
|
|
106
126
|
throw new Error("plan digest missing or stale; re-run the plan and apply with its planDigest");
|
|
127
|
+
if (plan.recreate) {
|
|
128
|
+
// Release the old clone first: the operator destroys its guest when the claim is deleted.
|
|
129
|
+
this.log(`recreate: releasing claim ${plan.recreate.claim} (vmid ${plan.recreate.vmid})`);
|
|
130
|
+
await this.d.claims.delete(plan.recreate.claim, plan.recreate.uid);
|
|
131
|
+
for (let n = 0; n < 90 && await this.d.claims.get(plan.recreate.claim); n++)
|
|
132
|
+
await this.d.clock.sleep(10_000);
|
|
133
|
+
if (await this.d.claims.get(plan.recreate.claim))
|
|
134
|
+
throw new Error(`claim ${plan.recreate.claim} is still present after release; not creating its replacement`);
|
|
135
|
+
for (let n = 0; n < 60 && (await this.listGuests()).some((g) => g.vmid === plan.recreate.vmid); n++)
|
|
136
|
+
await this.d.clock.sleep(10_000);
|
|
137
|
+
plan = await this.planClone({ ...i, recreate: false });
|
|
138
|
+
}
|
|
107
139
|
// Guards run before anything is created: a refused request leaves no claim and no guest.
|
|
140
|
+
if (plan.blockedBy && /VLAN-aware/.test(plan.blockedBy))
|
|
141
|
+
throw new Error(plan.blockedBy);
|
|
108
142
|
assertPoolBelow(plan.poolPercent, plan.poolMaxPercent);
|
|
109
|
-
assertSingleReencrypt(await this.d.claims.list(), plan.claim);
|
|
143
|
+
assertSingleReencrypt((await this.d.claims.list()).filter((c) => (c.spec?.node ?? "minis") === this.node.claimNode), plan.claim);
|
|
144
|
+
assertNoYoungStigClone(await this.listGuests());
|
|
110
145
|
if (StigRunner.reencrypting)
|
|
111
146
|
throw new Error("another clone is re-encrypting in this process; only one at a time");
|
|
112
147
|
StigRunner.reencrypting = true;
|
|
@@ -127,6 +162,7 @@ export class StigRunner {
|
|
|
127
162
|
this.writeSecretFile(join(state, "ctadmin_password"), adminPassword);
|
|
128
163
|
writeFileSync(join(state, "vmid"), `${vmid}\n`);
|
|
129
164
|
writeFileSync(join(state, "template"), `${template.ref}\n`);
|
|
165
|
+
writeFileSync(join(state, "node"), `${this.node.claimNode}\n`);
|
|
130
166
|
const knownHosts = join(state, "known_hosts");
|
|
131
167
|
this.d.guest.configure({ user: CI_USER, keyFile: keys.privateKeyFile, knownHostsFile: knownHosts });
|
|
132
168
|
const sudoStdin = (extra = "") => `${adminPassword}\n${extra}`;
|
|
@@ -134,7 +170,7 @@ export class StigRunner {
|
|
|
134
170
|
this.log(`claim ${claim}: creating (vmid ${vmid}, ${ttlHours}h)`);
|
|
135
171
|
// The descriptor is spec.stig, set at creation: immutable and part of the claim's custody request.
|
|
136
172
|
const descriptor = defaultDescriptor("clone", { template, adminKeyRef: `doppler:${escrowKey}`, dns: i.dns ?? DEFAULT_DNS, ntp: i.ntp ?? [], tailoringSha256: STIG_TAILORING_SHA256 });
|
|
137
|
-
await this.d.claims.create({ name: claim, vmid, vmName: cloneName, ttlHours, stig: descriptor });
|
|
173
|
+
await this.d.claims.create({ name: claim, vmid, vmName: cloneName, ttlHours, node: this.node.claimNode, stig: descriptor });
|
|
138
174
|
await this.d.claims.waitReady(claim);
|
|
139
175
|
await this.d.claims.annotate(claim, { [STIG_STEP_ANNOTATION]: "claim" });
|
|
140
176
|
await this.step(claim, "pool-guard");
|
|
@@ -142,8 +178,8 @@ export class StigRunner {
|
|
|
142
178
|
await this.step(claim, "clone");
|
|
143
179
|
this.log(`proxmox: full clone of ${template.ref} (${template.vmid}) to ${vmid}`);
|
|
144
180
|
if (this.d.provider) {
|
|
145
|
-
const others = (await this.d.claims.list()).filter((c) => c.metadata.name !== claim).map((c) => c.spec?.vmid).filter((v) => Number.isInteger(v));
|
|
146
|
-
await this.d.provider.clone({ operationId: `stig-clone-${claim}-${this.d.clock.now()}`, name: cloneName, templateName: template.ref, vmid, claimedVmids: others, sshPublicKey: keys.publicKey, passwordHash: adminHash, dns: i.dns ?? DEFAULT_DNS });
|
|
181
|
+
const others = (await this.d.claims.list()).filter((c) => c.metadata.name !== claim && (c.spec?.node ?? "minis") === this.node.claimNode).map((c) => c.spec?.vmid).filter((v) => Number.isInteger(v));
|
|
182
|
+
await this.d.provider.clone({ operationId: `stig-clone-${claim}-${this.d.clock.now()}`, hostAssetId: this.node.hostAssetId, untagged: this.node.vlan === null, name: cloneName, templateName: template.ref, vmid, claimedVmids: others, sshPublicKey: keys.publicKey, passwordHash: adminHash, dns: i.dns ?? DEFAULT_DNS });
|
|
147
183
|
await this.step(claim, "tpm");
|
|
148
184
|
await this.step(claim, "cloud-init");
|
|
149
185
|
}
|
|
@@ -157,7 +193,7 @@ export class StigRunner {
|
|
|
157
193
|
// The password hash and the public key arrive on stdin; PVE would otherwise hash with sha256-crypt (STIG wants sha512).
|
|
158
194
|
await this.pveOk(`set -e\numask 077\nP=/tmp/${claim}.pub; W=/tmp/${claim}.pw\ncat > "$P" <<'KEY'\n${keys.publicKey}\nKEY\nIFS= read -r HASH\nprintf '%s' "$HASH" > "$W"\n` +
|
|
159
195
|
`qm set ${vmid} --ciuser ${CI_USER} --cipassword "$(cat "$W")" --sshkeys "$P" --ipconfig0 ip=dhcp --nameserver ${shq(dns)} --agent 1 --tags rhel8-stig-clone >/dev/null\n` +
|
|
160
|
-
`qm set ${vmid} --net0 "$(qm config ${vmid} | sed -n 's/^net0: \\([^,]*\\),.*/\\1/p'),bridge=vmbr0
|
|
196
|
+
`qm set ${vmid} --net0 "$(qm config ${vmid} | sed -n 's/^net0: \\([^,]*\\),.*/\\1/p'),bridge=vmbr0${this.node.vlan ? `,tag=${this.node.vlan}` : ""}"\nrm -f "$P" "$W"`, { stdin: `${adminHash}\n` });
|
|
161
197
|
}
|
|
162
198
|
// 3. boot, first-boot re-key, TPM bind
|
|
163
199
|
await this.step(claim, "boot");
|
|
@@ -167,7 +203,7 @@ export class StigRunner {
|
|
|
167
203
|
for (let n = 0; n < 60 && !ip; n++) {
|
|
168
204
|
if (this.d.provider) {
|
|
169
205
|
try {
|
|
170
|
-
ip = await this.d.provider.guestIp(vmid);
|
|
206
|
+
ip = await this.d.provider.guestIp(vmid, this.node.hostAssetId);
|
|
171
207
|
}
|
|
172
208
|
catch {
|
|
173
209
|
ip = "";
|
|
@@ -254,6 +290,8 @@ export class StigRunner {
|
|
|
254
290
|
throw new Error(`packer ${packer} is not the pinned ${STIG_PINS.packer}`);
|
|
255
291
|
if (i.ssgDatastreamSha256 !== STIG_DATASTREAM_SHA256)
|
|
256
292
|
throw new Error(`SSG datastream sha256 ${i.ssgDatastreamSha256.slice(0, 12)}... is not the pinned ${STIG_PINS.ssg} datastream`);
|
|
293
|
+
if (i.disaBenchmarkSha256 !== DISA_BENCHMARK_SHA256)
|
|
294
|
+
throw new Error(`DISA V2R8 benchmark sha256 ${i.disaBenchmarkSha256.slice(0, 12)}... is not the pinned benchmark`);
|
|
257
295
|
const iso = await this.d.pve.run(`pvesm list ${STIG_DVD_ISO.split(":")[0]} --content iso`);
|
|
258
296
|
const dvd = iso.code === 0 && iso.stdout.includes(STIG_DVD_ISO.split("/").pop());
|
|
259
297
|
if (!dvd)
|
|
@@ -266,7 +304,7 @@ export class StigRunner {
|
|
|
266
304
|
const claim = `tpl-${name}`;
|
|
267
305
|
if (await this.d.claims.get(claim))
|
|
268
306
|
throw new Error(`claim ${claim} already exists`);
|
|
269
|
-
const base = { kind: "build", name, vmid, claim, ttl: BUILD_CLAIM_TTL_HOURS, ds: i.ssgDatastreamSha256 };
|
|
307
|
+
const base = { kind: "build", name, vmid, claim, ttl: BUILD_CLAIM_TTL_HOURS, ds: i.ssgDatastreamSha256, disa: i.disaBenchmarkSha256 };
|
|
270
308
|
return { mode: "plan", name, claim, vmid, claimTtlHours: BUILD_CLAIM_TTL_HOURS, steps: STIG_STEPS["build-template"], preflight: { packer, dvd, datastreamSha256: i.ssgDatastreamSha256 }, planDigest: digest(base) };
|
|
271
309
|
}
|
|
272
310
|
async build(i) {
|
|
@@ -285,7 +323,7 @@ export class StigRunner {
|
|
|
285
323
|
// claim first
|
|
286
324
|
this.log(`claim ${claim}: creating (vmid ${vmid}, ${BUILD_CLAIM_TTL_HOURS}h)`);
|
|
287
325
|
const descriptor = defaultDescriptor("build-template", { adminKeyRef: "doppler:LAB_PROXMOX_MINIS_API_TOKEN", tailoringSha256: STIG_TAILORING_SHA256, dns: i.dns, ntp: i.ntp });
|
|
288
|
-
await this.d.claims.create({ name: claim, vmid, vmName: name, ttlHours: BUILD_CLAIM_TTL_HOURS, stig: descriptor });
|
|
326
|
+
await this.d.claims.create({ name: claim, vmid, vmName: name, ttlHours: BUILD_CLAIM_TTL_HOURS, node: this.node.claimNode, stig: descriptor });
|
|
289
327
|
await this.d.claims.waitReady(claim);
|
|
290
328
|
await this.d.claims.annotate(claim, { [STIG_STEP_ANNOTATION]: "claim" });
|
|
291
329
|
// secrets by NAME, straight into the Packer environment
|
|
@@ -309,7 +347,7 @@ export class StigRunner {
|
|
|
309
347
|
};
|
|
310
348
|
const vars = {
|
|
311
349
|
vm_id: String(vmid), template_name: name, ssh_private_key_file: mat.sshPrivateKeyFile, ssh_public_key: mat.sshPublicKey,
|
|
312
|
-
ssg_datastream: i.ssgDatastream, evidence_dir: join(runDir, "evidence"), tailoring_file: join(this.d.assetsDir, "tailoring.xml"),
|
|
350
|
+
ssg_datastream: i.ssgDatastream, disa_benchmark: i.disaBenchmark, evidence_dir: join(runDir, "evidence"), tailoring_file: join(this.d.assetsDir, "tailoring.xml"),
|
|
313
351
|
dns_servers: (i.dns ?? DEFAULT_DNS).join(","), ...(i.ntp && i.ntp.length ? { ntp_servers: i.ntp.join(",") } : {}),
|
|
314
352
|
};
|
|
315
353
|
await this.step(claim, "packer");
|
|
@@ -323,9 +361,12 @@ export class StigRunner {
|
|
|
323
361
|
const ev = join(runDir, "evidence", "stig-report");
|
|
324
362
|
const summ = parseKv(readFileSync(join(ev, "summary.txt"), "utf8"));
|
|
325
363
|
const counts = countsFromKv(summ);
|
|
326
|
-
|
|
364
|
+
if (!Object.keys(summ).some((k) => k.startsWith("disa_result_")))
|
|
365
|
+
throw new Error(`DISA scan results are missing from the build evidence; claim ${claim} left to expire`);
|
|
366
|
+
const disa = { profile: summ.disa_profile || DISA_PROFILE_ID, benchmarkSha256: summ.disa_benchmark_sha256 ?? "", counts: disaCountsFromKv(summ, "disa_result_") };
|
|
367
|
+
const gate = receiptGate(counts, disa.counts);
|
|
327
368
|
if (!gate.failZero)
|
|
328
|
-
throw new Error(`STIG scan gate failed: fail=${counts.fail} error=${counts.error} pass=${counts.pass}; claim ${claim} left to expire`);
|
|
369
|
+
throw new Error(`STIG scan gate failed: fail=${counts.fail} error=${counts.error} pass=${counts.pass} disaFail=${disa.counts.fail} disaError=${disa.counts.error}; claim ${claim} left to expire`);
|
|
329
370
|
await this.step(claim, "verify-template");
|
|
330
371
|
const cfg = await this.pveOk(`qm config ${vmid}`);
|
|
331
372
|
if (!/^template: 1$/m.test(cfg.stdout))
|
|
@@ -344,7 +385,7 @@ export class StigRunner {
|
|
|
344
385
|
template_scan: Object.fromEntries(COUNT_KEYS.map((k) => [`result_${k}`, counts[k]])),
|
|
345
386
|
artifacts_sha256: { template_arf: sha256File(join(ev, "final-arf.xml")), template_report_html: sha256File(join(ev, "final-report.html")) },
|
|
346
387
|
};
|
|
347
|
-
const summary = buildReceiptSummary(receiptLike, { mode: "build-template", ...(openscap ? { openscap } : {}), validatedAt: new Date(this.d.clock.now()).toISOString() });
|
|
388
|
+
const summary = buildReceiptSummary(receiptLike, { mode: "build-template", disa, ...(openscap ? { openscap } : {}), validatedAt: new Date(this.d.clock.now()).toISOString() });
|
|
348
389
|
await this.annotateSummary(claim, summary);
|
|
349
390
|
await this.step(claim, "complete");
|
|
350
391
|
this.log(`TEMPLATE READY name=${name} vmid=${vmid} claim=${claim}`);
|
|
@@ -445,7 +486,7 @@ export class StigRunner {
|
|
|
445
486
|
assertTemplateReleaseAllowed({ guest: guest, claim: rec, destroyConfirmed: i.confirmDestroy });
|
|
446
487
|
this.log(`destroying template ${guest.name} (${guest.vmid}) before releasing claim ${i.claim}`);
|
|
447
488
|
if (this.d.provider)
|
|
448
|
-
await this.d.provider.destroyTemplate({ operationId: `stig-destroy-${i.claim}-${this.d.clock.now()}`, name: guest.name, vmid: guest.vmid });
|
|
489
|
+
await this.d.provider.destroyTemplate({ operationId: `stig-destroy-${i.claim}-${this.d.clock.now()}`, hostAssetId: this.node.hostAssetId, name: guest.name, vmid: guest.vmid });
|
|
449
490
|
else
|
|
450
491
|
await this.pveOk(`qm destroy ${guest.vmid} --purge 1 --destroy-unreferenced-disks 1`);
|
|
451
492
|
if ((await this.listGuests()).some((g) => g.vmid === guest.vmid))
|