jishushell 0.5.15 → 0.5.22
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/Dockerfile.hermes-slim +2 -5
- package/apps/filebrowser-container.yaml +1 -0
- package/apps/ollama-binary.yaml +44 -0
- package/apps/ollama-with-hollama-binary.yaml +45 -1
- package/dist/cli/doctor.js +144 -16
- package/dist/cli/doctor.js.map +1 -1
- package/dist/install.js +1 -1
- package/dist/install.js.map +1 -1
- package/dist/routes/instances.js +42 -5
- package/dist/routes/instances.js.map +1 -1
- package/dist/routes/llm.js +29 -0
- package/dist/routes/llm.js.map +1 -1
- package/dist/server.js +18 -4
- package/dist/server.js.map +1 -1
- package/dist/services/agent-apps/catalog.d.ts +3 -0
- package/dist/services/agent-apps/catalog.js +40 -13
- package/dist/services/agent-apps/catalog.js.map +1 -1
- package/dist/services/agent-apps/installers/shell-script.d.ts +1 -1
- package/dist/services/agent-apps/installers/shell-script.js +19 -2
- package/dist/services/agent-apps/installers/shell-script.js.map +1 -1
- package/dist/services/agent-apps/types.d.ts +3 -0
- package/dist/services/app/app-manager.d.ts +8 -0
- package/dist/services/app/app-manager.js +77 -3
- package/dist/services/app/app-manager.js.map +1 -1
- package/dist/services/app/openclaw-manager.js +17 -2
- package/dist/services/app/openclaw-manager.js.map +1 -1
- package/dist/services/backup-manager.js +43 -4
- package/dist/services/backup-manager.js.map +1 -1
- package/dist/services/capability-endpoint-validator.js +26 -7
- package/dist/services/capability-endpoint-validator.js.map +1 -1
- package/dist/services/instance-manager.js +89 -9
- package/dist/services/instance-manager.js.map +1 -1
- package/dist/services/llm-proxy/index.d.ts +28 -0
- package/dist/services/llm-proxy/index.js +76 -3
- package/dist/services/llm-proxy/index.js.map +1 -1
- package/dist/services/llm-proxy/validate-key.d.ts +41 -0
- package/dist/services/llm-proxy/validate-key.js +672 -0
- package/dist/services/llm-proxy/validate-key.js.map +1 -0
- package/dist/services/macos-launchd.d.ts +89 -0
- package/dist/services/macos-launchd.js +273 -0
- package/dist/services/macos-launchd.js.map +1 -0
- package/dist/services/nomad-manager.d.ts +7 -0
- package/dist/services/nomad-manager.js +290 -79
- package/dist/services/nomad-manager.js.map +1 -1
- package/dist/services/panel-manager.js +20 -10
- package/dist/services/panel-manager.js.map +1 -1
- package/dist/services/runtime/adapters/custom.js +56 -0
- package/dist/services/runtime/adapters/custom.js.map +1 -1
- package/dist/services/runtime/adapters/hermes.d.ts +4 -3
- package/dist/services/runtime/adapters/hermes.js +165 -63
- package/dist/services/runtime/adapters/hermes.js.map +1 -1
- package/dist/services/runtime/adapters/openclaw.d.ts +28 -0
- package/dist/services/runtime/adapters/openclaw.js +502 -4
- package/dist/services/runtime/adapters/openclaw.js.map +1 -1
- package/dist/services/setup-manager.js +97 -50
- package/dist/services/setup-manager.js.map +1 -1
- package/dist/services/update-manager.js +32 -14
- package/dist/services/update-manager.js.map +1 -1
- package/dist/types.d.ts +1 -0
- package/install/jishu-install.sh +247 -35
- package/install/jishu-uninstall.sh +45 -5
- package/package.json +5 -2
- package/public/assets/ApiKeyField-CvyAOcJS.js +1 -0
- package/public/assets/Dashboard-AuJESBlJ.js +1 -0
- package/public/assets/{HermesChatPanel-B_2HlVBQ.js → HermesChatPanel-CByPREwb.js} +1 -1
- package/public/assets/HermesConfigForm-DRda8FKX.js +4 -0
- package/public/assets/InitPassword-ka4wNpM5.js +1 -0
- package/public/assets/InstanceDetail-Cg1nS8HX.js +92 -0
- package/public/assets/Login-aPajuQzf.js +1 -0
- package/public/assets/NewInstance-Dd1ebNIx.js +1 -0
- package/public/assets/ProviderRecommendations-DFmADQ7V.js +1 -0
- package/public/assets/Settings-BYQnbLYL.js +1 -0
- package/public/assets/Setup-D05lwDOV.js +1 -0
- package/public/assets/WeixinLoginPanel-D89kdhP4.js +9 -0
- package/public/assets/index-HSXCsceK.css +1 -0
- package/public/assets/{index-BZc5zH7u.js → index-bnBu0nlQ.js} +7 -7
- package/public/assets/registry-C_qeFTkZ.js +2 -0
- package/public/assets/usePolling-Bn93fe7M.js +1 -0
- package/public/assets/{vendor-i18n-y9V7Sfuu.js → vendor-i18n-flxcMVeP.js} +2 -2
- package/public/assets/{vendor-react-BWrEVJVb.js → vendor-react-ZC5T_huj.js} +1 -1
- package/public/index.html +4 -4
- package/scripts/check-colima-launchd.mjs +230 -0
- package/public/assets/Dashboard-BdWPtroF.js +0 -1
- package/public/assets/HermesConfigForm-DVlhg3WV.js +0 -4
- package/public/assets/InitPassword-D7glTExX.js +0 -1
- package/public/assets/InstanceDetail-CxSy2cpe.js +0 -92
- package/public/assets/Login-Cfr5c2sv.js +0 -1
- package/public/assets/NewInstance-BIYDmJis.js +0 -1
- package/public/assets/ProviderRecommendations-BuRnvRcI.js +0 -1
- package/public/assets/Settings-Cc-tYBil.js +0 -1
- package/public/assets/Setup-lGZEk5jq.js +0 -1
- package/public/assets/WeixinLoginPanel-CoGqzxeV.js +0 -9
- package/public/assets/index-87IJXG-w.css +0 -1
- package/public/assets/input-paste-CrNVAyOy.js +0 -1
- package/public/assets/providers-DtNXh9JD.js +0 -1
- package/public/assets/registry-BWnkJgZ1.js +0 -2
- package/public/assets/usePolling-CwwT9KrC.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-key.js","sourceRoot":"","sources":["../../../src/services/llm-proxy/validate-key.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAiC/C,8EAA8E;AAE9E,MAAM,6BAA6B,GAAG,MAAM,CAAC;AAC7C,MAAM,uBAAuB,GAAG,EAAE,CAAC;AACnC,MAAM,oBAAoB,GAAG,KAAK,CAAC;AAOnC,MAAM,eAAe,GAAG,IAAI,GAAG,EAA8B,CAAC;AAE9D,MAAM,UAAU,sBAAsB,CAAC,EAAU;IAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,IAAI,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,MAAM,IAAI,GAAG,GAAG,MAAM,CAAC,WAAW,GAAG,6BAA6B,EAAE,CAAC;QACxE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,eAAe,CAAC,IAAI,IAAI,oBAAoB,EAAE,CAAC;YAC7E,IAAI,QAA4B,CAAC;YACjC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,eAAe,EAAE,CAAC;gBACrC,IAAI,GAAG,GAAG,CAAC,CAAC,WAAW,GAAG,6BAA6B,EAAE,CAAC;oBAAC,QAAQ,GAAG,CAAC,CAAC;oBAAC,MAAM;gBAAC,CAAC;YACnF,CAAC;YACD,IAAI,QAAQ,KAAK,SAAS;gBAAE,QAAQ,GAAG,eAAe,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;YAC3E,IAAI,QAAQ,KAAK,SAAS;gBAAE,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC/D,CAAC;QACD,MAAM,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC;QACxC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,IAAI,uBAAuB;QAAE,OAAO,KAAK,CAAC;IAC1D,MAAM,CAAC,KAAK,EAAE,CAAC;IACf,OAAO,IAAI,CAAC;AACd,CAAC;AAED,mBAAmB;AACnB,WAAW,CAAC,GAAG,EAAE;IACf,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,KAAK,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,eAAe,EAAE,CAAC;QAC3C,IAAI,GAAG,GAAG,MAAM,CAAC,WAAW,GAAG,6BAA6B,GAAG,CAAC,EAAE,CAAC;YACjE,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;AACH,CAAC,EAAE,6BAA6B,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;AAE9C,8EAA8E;AAE9E,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAChC,yFAAyF;AACzF,MAAM,kBAAkB,GAAG,KAAK,GAAG,KAAK,CAAC;AAEzC;;;GAGG;AACH,KAAK,UAAU,YAAY,CAAC,IAAc;IACxC,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IACzD,IAAI,aAAa,IAAI,QAAQ,CAAC,aAAa,EAAE,EAAE,CAAC,GAAG,kBAAkB,EAAE,CAAC;QACtE,IAAI,CAAC;YAAC,MAAM,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAC/B,IAAI,IAAI,CAAC,MAAM,GAAG,kBAAkB;YAAE,OAAO,IAAI,CAAC;QAClD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY,CAAC,GAAuB;IAC3C,IAAI,CAAC,GAAG;QAAE,OAAO,oBAAoB,CAAC;IACtC,MAAM,MAAM,GAAG,2BAA2B,CAAC,GAAG,CAAC,CAAC;IAChD,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1B,IAAI,GAAG,KAAK,QAAQ;QAAE,OAAO,oBAAoB,CAAC;IAClD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,UAA8B,EAAE,GAAW;IACjE,IAAI,UAAU,IAAI,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC;QAAE,OAAO,UAAU,CAAC;IACxE,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,iBAAiB,CAAC,CAAC;AACzE,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,SAAS,CAAC,GAAW,EAAE,UAAkB;IACtD,IAAI,CAAC;QACH,MAAM,mBAAmB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAC7C,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;QACvC,sEAAsE;QACtE,IAAI,GAAG,CAAC,QAAQ,CAAC,kCAAkC,CAAC;YAAE,OAAO;QAC7D,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,IAAS;IACpC,MAAM,IAAI,GAAU,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI;QACvD,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM;YAC3C,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;gBAC5B,CAAC,CAAC,EAAE,CAAC;IACP,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;QAC3B,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACjC,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,IAAI,SAAS;KAClC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,IAAY;IACtC,IAAI,IAAI,KAAK,GAAG;QAAE,OAAO,aAAa,CAAC;IACvC,IAAI,IAAI,KAAK,GAAG;QAAE,OAAO,WAAW,CAAC;IACrC,IAAI,IAAI,KAAK,GAAG;QAAE,OAAO,eAAe,CAAC;IACzC,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,8EAA8E;AAE9E;;GAEG;AACH,KAAK,UAAU,cAAc,CAC3B,OAAe,EACf,MAAc,EACd,YAAoB;IAEpB,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACzC,MAAM,OAAO,GAA2B;QACtC,eAAe,EAAE,UAAU,MAAM,EAAE;KACpC,CAAC;IAEF,KAAK,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,EAAE,CAAC;QAC3C,MAAM,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,SAAS,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;YACnC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;YAC1F,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;gBACZ,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;gBACtC,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;gBACzC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACxB,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,oCAAoC,EAAE,CAAC;gBACnF,CAAC;gBACD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YAClC,CAAC;YACD,gCAAgC;YAChC,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC/C,IAAI,CAAC;oBAAC,MAAM,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;gBACzD,OAAO,EAAE,MAAM,EAAE,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,QAAQ,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YACrF,CAAC;YACD,6CAA6C;YAC7C,IAAI,CAAC;gBAAC,MAAM,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QAC3D,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;YACvC,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC1D,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;YACjD,CAAC;YACD,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC3D,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC;YAChE,CAAC;YACD,oCAAoC;QACtC,CAAC;IACH,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC;AACrE,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,iBAAiB,CAC9B,OAAe,EACf,MAAc,EACd,YAAoB;IAEpB,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACzC,MAAM,GAAG,GAAG,GAAG,IAAI,YAAY,CAAC;IAEhC,MAAM,SAAS,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAEnC,gEAAgE;IAChE,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAC5B,OAAO,EAAE,EAAE,eAAe,EAAE,UAAU,MAAM,EAAE,EAAE;YAChD,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC;SAC9C,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,oCAAoC,EAAE,CAAC;YACnF,CAAC;YACD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAClC,CAAC;QACD,IAAI,CAAC;YAAC,MAAM,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QACzD,mDAAmD;QACnD,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC/C,OAAO,EAAE,MAAM,EAAE,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,QAAQ,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;QACrF,CAAC;IACH,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;QACvC,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YAC1D,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;QACjD,CAAC;QACD,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3D,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC;QAChE,CAAC;QACD,oDAAoD;IACtD,CAAC;IAED,kEAAkE;IAClE,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAC5B,OAAO,EAAE;gBACP,WAAW,EAAE,MAAM;gBACnB,mBAAmB,EAAE,YAAY;aAClC;YACD,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC;SAC9C,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,oCAAoC,EAAE,CAAC;YACnF,CAAC;YACD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAClC,CAAC;QACD,IAAI,CAAC;YAAC,MAAM,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QACzD,OAAO,EAAE,MAAM,EAAE,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,QAAQ,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;IACrF,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;QACvC,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3D,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC;QAChE,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC;IACrE,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,cAAc,CAC3B,OAAe,EACf,MAAc,EACd,YAAoB;IAEpB,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACzC,MAAM,GAAG,GAAG,GAAG,IAAI,uBAAuB,CAAC;IAE3C,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAC5B,OAAO,EAAE,EAAE,eAAe,EAAE,UAAU,MAAM,EAAE,EAAE;YAChD,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC;SAC9C,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,oCAAoC,EAAE,CAAC;YACnF,CAAC;YACD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAClC,CAAC;QACD,IAAI,CAAC;YAAC,MAAM,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QACzD,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC/C,OAAO,EAAE,MAAM,EAAE,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,QAAQ,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;QACrF,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,QAAQ,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;IACrE,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;QACvC,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YAC1D,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;QACjD,CAAC;QACD,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3D,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC;QAChE,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC;IACrE,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,cAAc,CAC3B,OAAe,EACf,YAAoB;IAEpB,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAEzC,KAAK,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,EAAE,CAAC;QAC7C,MAAM,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,SAAS,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;YACnC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;YACjF,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;gBACZ,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;gBACtC,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;gBACzC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACxB,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC;gBACpE,CAAC;gBACD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YAClC,CAAC;YACD,IAAI,CAAC;gBAAC,MAAM,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;YACzD,uCAAuC;YACvC,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG;gBAAE,SAAS;YAClC,OAAO,EAAE,MAAM,EAAE,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,QAAQ,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;QACrF,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;YACvC,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC1D,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;YACjD,CAAC;YACD,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC3D,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC;YAChE,CAAC;YACD,oCAAoC;QACtC,CAAC;IACH,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC;AACrE,CAAC;AAED,8EAA8E;AAE9E,MAAM,oBAAoB,GAAG;IAC3B,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3C,UAAU,EAAE,CAAC;IACb,MAAM,EAAE,KAAK;CACd,CAAC;AAEF;;;GAGG;AACH,SAAS,uBAAuB,CAAC,MAAc,EAAE,IAAS;IACxD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IAClE,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,IAAI,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;IAEhE,yBAAyB;IACzB,IAAI,MAAM,KAAK,GAAG,IAAI,IAAI,KAAK,oBAAoB,IAAI,IAAI,KAAK,4BAA4B;WACrF,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC;WAC1E,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,IAAI,KAAK,qBAAqB,EAAE,CAAC;QAClE,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,GAAG,IAAI,4BAA4B,EAAE,CAAC;IACpF,CAAC;IACD,kBAAkB;IAClB,IAAI,MAAM,KAAK,GAAG,IAAI,IAAI,KAAK,iBAAiB,IAAI,IAAI,KAAK,iBAAiB;WACvE,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACnE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,GAAG,IAAI,iBAAiB,EAAE,CAAC;IAC1E,CAAC;IACD,gBAAgB;IAChB,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,IAAI,QAAQ,MAAM,EAAE,EAAE,CAAC;IACvF,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,IAAI,QAAQ,MAAM,EAAE,EAAE,CAAC;IACrF,gEAAgE;IAChE,sEAAsE;IACtE,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;QACnB,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC;eAC3D,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC;eAClD,IAAI,KAAK,oBAAoB,IAAI,IAAI,KAAK,4BAA4B,CAAC;QAC5E,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,GAAG,IAAI,iBAAiB,EAAE,CAAC;QACzE,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,GAAG,IAAI,wCAAwC,EAAE,CAAC;IAChG,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,GAAG,IAAI,QAAQ,MAAM,EAAE,EAAE,CAAC;AACvE,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,kBAAkB,CAC/B,OAAe,EACf,MAAc,EACd,OAAe,EACf,YAAoB;IAEpB,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACzC,MAAM,OAAO,GAA2B;QACtC,eAAe,EAAE,UAAU,MAAM,EAAE;QACnC,cAAc,EAAE,kBAAkB;KACnC,CAAC;IACF,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,oBAAoB,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;IAEzE,qEAAqE;IACrE,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC7D,CAAC,CAAC,CAAC,mBAAmB,CAAC;QACvB,CAAC,CAAC,CAAC,sBAAsB,EAAE,mBAAmB,CAAC,CAAC;IAElD,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,SAAS,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;YACnC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAC5B,MAAM,EAAE,MAAM;gBACd,OAAO;gBACP,IAAI;gBACJ,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC;aAC9C,CAAC,CAAC;YACH,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;gBACZ,4DAA4D;gBAC5D,IAAI,CAAC;oBAAC,MAAM,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;gBACzD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,8BAA8B,EAAE,CAAC;YACnE,CAAC;YACD,8CAA8C;YAC9C,IAAI,OAAY,CAAC;YACjB,OAAO,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACzC,uEAAuE;YACvE,uEAAuE;YACvE,8BAA8B;YAC9B,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,IAAI,OAAO,EAAE,KAAK,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;gBACxE,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;gBAClD,IAAI,IAAI,KAAK,iBAAiB,IAAI,IAAI,KAAK,iBAAiB;uBACrD,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;oBACnE,OAAO,uBAAuB,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBACvD,CAAC;gBACD,SAAS,CAAC,sCAAsC;YAClD,CAAC;YACD,OAAO,uBAAuB,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACvD,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;YACvC,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC1D,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;YACjD,CAAC;YACD,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC3D,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC;YAChE,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC;AACrE,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,qBAAqB,CAClC,OAAe,EACf,MAAc,EACd,OAAe,EACf,YAAoB;IAEpB,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC5D,CAAC,CAAC,WAAW;QACb,CAAC,CAAC,cAAc,CAAC;IACnB,MAAM,GAAG,GAAG,GAAG,IAAI,GAAG,QAAQ,EAAE,CAAC;IACjC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;QAC1B,KAAK,EAAE,OAAO;QACd,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3C,UAAU,EAAE,CAAC;KACd,CAAC,CAAC;IAEH,MAAM,SAAS,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAEnC,oCAAoC;IACpC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAC5B,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,eAAe,EAAE,UAAU,MAAM,EAAE;gBACnC,cAAc,EAAE,kBAAkB;gBAClC,mBAAmB,EAAE,YAAY;aAClC;YACD,IAAI;YACJ,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC;SAC9C,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACZ,IAAI,CAAC;gBAAC,MAAM,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;YACzD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,8BAA8B,EAAE,CAAC;QACnE,CAAC;QACD,IAAI,OAAY,CAAC;QACjB,OAAO,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACzC,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC/C,OAAO,uBAAuB,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;QACvC,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YAC1D,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;QACjD,CAAC;QACD,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3D,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC;QAChE,CAAC;IACH,CAAC;IAED,8BAA8B;IAC9B,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAC5B,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,WAAW,EAAE,MAAM;gBACnB,cAAc,EAAE,kBAAkB;gBAClC,mBAAmB,EAAE,YAAY;aAClC;YACD,IAAI;YACJ,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC;SAC9C,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACZ,IAAI,CAAC;gBAAC,MAAM,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;YACzD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,8BAA8B,EAAE,CAAC;QACnE,CAAC;QACD,IAAI,OAAY,CAAC;QACjB,OAAO,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACzC,OAAO,uBAAuB,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;QACvC,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3D,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC;QAChE,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC;IACrE,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,kBAAkB,CAC/B,OAAe,EACf,MAAc,EACd,OAAe,EACf,YAAoB;IAEpB,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAC9C,CAAC,CAAC,mBAAmB;QACrB,CAAC,CAAC,iCAAiC,CAAC;IACtC,MAAM,GAAG,GAAG,GAAG,IAAI,GAAG,QAAQ,EAAE,CAAC;IAEjC,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAC5B,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,eAAe,EAAE,UAAU,MAAM,EAAE;gBACnC,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,oBAAoB,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;YACjE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC;SAC9C,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACZ,IAAI,CAAC;gBAAC,MAAM,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;YACzD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,8BAA8B,EAAE,CAAC;QACnE,CAAC;QACD,IAAI,OAAY,CAAC;QACjB,OAAO,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACzC,OAAO,uBAAuB,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;QACvC,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YAC1D,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;QACjD,CAAC;QACD,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3D,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC;QAChE,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC;IACrE,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,kBAAkB,CAC/B,OAAe,EACf,OAAe,EACf,YAAoB;IAEpB,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC7D,CAAC,CAAC,CAAC,mBAAmB,CAAC;QACvB,CAAC,CAAC,CAAC,sBAAsB,EAAE,WAAW,CAAC,CAAC;IAE1C,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,SAAS,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;YACnC,MAAM,IAAI,GAAG,EAAE,KAAK,WAAW;gBAC7B,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;gBAChG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,oBAAoB,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;YAChE,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAC5B,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI;gBACJ,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC;aAC9C,CAAC,CAAC;YACH,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;gBACZ,IAAI,CAAC;oBAAC,MAAM,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;gBACzD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,8BAA8B,EAAE,CAAC;YACnE,CAAC;YACD,IAAI,OAAY,CAAC;YACjB,OAAO,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACzC,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;gBAAE,SAAS;YAC1D,OAAO,uBAAuB,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACvD,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;YACvC,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC1D,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;YACjD,CAAC;YACD,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC3D,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC;YAChE,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC;AACrE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAA0B;IAC7D,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,GAAG,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IAE1F,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC;IACrE,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACzC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,MAAM,CAAC,QAAQ,KAAK,OAAO,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAChE,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,kCAAkC,EAAE,CAAC;QAClF,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;IAC7D,CAAC;IAED,MAAM,aAAa,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,YAAY,GAAG,cAAc,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAE/D,0CAA0C;IAC1C,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;QAC1B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,+CAA+C,EAAE,CAAC;QAC/F,CAAC;QACD,QAAQ,aAAa,EAAE,CAAC;YACtB,KAAK,oBAAoB;gBACvB,OAAO,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;YACpE,KAAK,sBAAsB;gBACzB,OAAO,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;YACjE,KAAK,QAAQ;gBACX,OAAO,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;YACzD;gBACE,OAAO,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAED,gDAAgD;IAChD,QAAQ,aAAa,EAAE,CAAC;QACtB,KAAK,oBAAoB;YACvB,OAAO,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;QAEvD,KAAK,sBAAsB;YACzB,OAAO,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;QAEpD,KAAK,QAAQ;YACX,OAAO,cAAc,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAE5C;YACE,wEAAwE;YACxE,OAAO,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;IACtD,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* macOS is Apple Silicon only. Colima is always launched with these — never
|
|
3
|
+
* derive an Intel/qemu variant in the TS path (mirrors the bash constants
|
|
4
|
+
* block right after `_COLIMA_SOCKET`).
|
|
5
|
+
*/
|
|
6
|
+
export declare const COLIMA_ARCH = "aarch64";
|
|
7
|
+
export declare const COLIMA_VM_TYPE = "vz";
|
|
8
|
+
export interface ArchGuardResult {
|
|
9
|
+
ok: boolean;
|
|
10
|
+
message?: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* jishushell on macOS supports Apple Silicon (arm64) only. The bash
|
|
14
|
+
* installer `exit 1`s on non-arm64 Darwin; the TS path runs in-process so
|
|
15
|
+
* callers RETURN an InstallResult error instead of exiting.
|
|
16
|
+
*/
|
|
17
|
+
export declare function appleSiliconGuard(): ArchGuardResult;
|
|
18
|
+
export interface ColimaWrapperArgs {
|
|
19
|
+
colimaHome: string;
|
|
20
|
+
profile: string;
|
|
21
|
+
socket: string;
|
|
22
|
+
colimaBin: string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* `colima-launchd-wrapper.sh` — behaviourally byte-equivalent to the
|
|
26
|
+
* bash-generated wrapper: set -u; mkdir -p COLIMA_HOME; atomic mkdir
|
|
27
|
+
* single-flight lock + trap rmdir EXIT; docker_ok() probe; idempotent
|
|
28
|
+
* early-exit; ≤60s en0 wait; stale-state `colima stop` ONLY (NEVER
|
|
29
|
+
* `colima delete`); ≤5-attempt `colima start … --vm-type vz
|
|
30
|
+
* --arch aarch64 --activate=false` with `sleep attempt*10` backoff.
|
|
31
|
+
*/
|
|
32
|
+
export declare function buildColimaWrapperScript(args: ColimaWrapperArgs): string;
|
|
33
|
+
export interface ColimaPlistArgs {
|
|
34
|
+
wrapperPath: string;
|
|
35
|
+
colimaHome: string;
|
|
36
|
+
logPath: string;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* `com.jishushell.colima.plist` — ProgramArguments = [wrapper] only;
|
|
40
|
+
* RunAtLoad true; KeepAlive {SuccessfulExit:false}; ThrottleInterval 30;
|
|
41
|
+
* StdOut/StdErr → colima-launchd.log. Mirrors `_install_colima_launchd`.
|
|
42
|
+
*/
|
|
43
|
+
export declare function buildColimaPlist(args: ColimaPlistArgs): string;
|
|
44
|
+
export interface NomadWaitWrapperArgs {
|
|
45
|
+
dockerHost: string;
|
|
46
|
+
nomadBin: string;
|
|
47
|
+
configPath: string;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* `nomad-launchd-wrapper.sh` — exports DOCKER_HOST + PATH, polls
|
|
51
|
+
* `docker info` for up to 180s, then `exec`s the real `nomad agent`.
|
|
52
|
+
* Without this gate, post-reboot boot ordering poisons the docker driver
|
|
53
|
+
* fingerprint (jobs stuck `pending` / `missing drivers: 1`).
|
|
54
|
+
* Mirrors `_install_nomad_wait_docker_wrapper`.
|
|
55
|
+
*/
|
|
56
|
+
export declare function buildNomadWaitWrapper(args: NomadWaitWrapperArgs): string;
|
|
57
|
+
export interface NomadPlistArgs {
|
|
58
|
+
wrapperPath: string;
|
|
59
|
+
dockerHost: string;
|
|
60
|
+
logPath: string;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* `com.jishushell.nomad.plist` — ProgramArguments = [nomad-wait-wrapper];
|
|
64
|
+
* DOCKER_HOST + PATH env; RunAtLoad true; KeepAlive true.
|
|
65
|
+
* Mirrors `_install_nomad_launchd`.
|
|
66
|
+
*/
|
|
67
|
+
export declare function buildNomadPlist(args: NomadPlistArgs): string;
|
|
68
|
+
export interface PanelGateWrapperArgs {
|
|
69
|
+
socket: string;
|
|
70
|
+
panelStartWrapper: string;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* `panel-launchd-wrapper.sh` — lightweight 60s docker-readiness gate so
|
|
74
|
+
* the first post-reboot page load doesn't flash "image missing". On
|
|
75
|
+
* timeout it starts anyway (the UI must be observable). Then it `exec`s
|
|
76
|
+
* the existing panel-start wrapper via `/bin/sh` with `serve`.
|
|
77
|
+
* Mirrors the panel gate block in `install_jishushell_service`.
|
|
78
|
+
*/
|
|
79
|
+
export declare function buildPanelGateWrapper(args: PanelGateWrapperArgs): string;
|
|
80
|
+
export interface PanelPlistArgs {
|
|
81
|
+
gateWrapperPath: string;
|
|
82
|
+
logPath: string;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* `com.jishushell.panel.plist` — ProgramArguments = [panel-gate];
|
|
86
|
+
* RunAtLoad true; KeepAlive true. Mirrors the panel plist block in
|
|
87
|
+
* `install_jishushell_service`.
|
|
88
|
+
*/
|
|
89
|
+
export declare function buildPanelPlist(args: PanelPlistArgs): string;
|
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical, IO-free builders for the macOS launchd artifacts that keep
|
|
3
|
+
* Colima / Nomad / the panel surviving a headless reboot.
|
|
4
|
+
*
|
|
5
|
+
* These mirror, behaviour-for-behaviour, the artifacts that
|
|
6
|
+
* `install/jishu-install.sh` generates on a real Mac (validated:
|
|
7
|
+
* `check-colima-launchd OK`). The TypeScript install path
|
|
8
|
+
* (`jishushell install` CLI + the Setup wizard API) calls these so
|
|
9
|
+
* reinstalls / updates via the TS path do NOT revert the reboot-recovery
|
|
10
|
+
* fix.
|
|
11
|
+
*
|
|
12
|
+
* TS-escaping rule: these are TS template strings. Install-time values
|
|
13
|
+
* interpolate via `${...}`. Every SHELL-RUNTIME `$` must reach the
|
|
14
|
+
* generated script as a LITERAL dollar, so it is written as `\$` inside
|
|
15
|
+
* the template (e.g. `\${SOCK}`, `\$(date +%s)`, `\$attempt`).
|
|
16
|
+
*/
|
|
17
|
+
import { arch as osArch } from "node:os";
|
|
18
|
+
const STD_PATH = "/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin";
|
|
19
|
+
/**
|
|
20
|
+
* macOS is Apple Silicon only. Colima is always launched with these — never
|
|
21
|
+
* derive an Intel/qemu variant in the TS path (mirrors the bash constants
|
|
22
|
+
* block right after `_COLIMA_SOCKET`).
|
|
23
|
+
*/
|
|
24
|
+
export const COLIMA_ARCH = "aarch64";
|
|
25
|
+
export const COLIMA_VM_TYPE = "vz";
|
|
26
|
+
/**
|
|
27
|
+
* jishushell on macOS supports Apple Silicon (arm64) only. The bash
|
|
28
|
+
* installer `exit 1`s on non-arm64 Darwin; the TS path runs in-process so
|
|
29
|
+
* callers RETURN an InstallResult error instead of exiting.
|
|
30
|
+
*/
|
|
31
|
+
export function appleSiliconGuard() {
|
|
32
|
+
if (process.platform === "darwin" && osArch() !== "arm64") {
|
|
33
|
+
return {
|
|
34
|
+
ok: false,
|
|
35
|
+
message: `jishushell on macOS supports Apple Silicon (arm64) only — detected ${osArch()}. Installation aborted.`,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
return { ok: true };
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* `colima-launchd-wrapper.sh` — behaviourally byte-equivalent to the
|
|
42
|
+
* bash-generated wrapper: set -u; mkdir -p COLIMA_HOME; atomic mkdir
|
|
43
|
+
* single-flight lock + trap rmdir EXIT; docker_ok() probe; idempotent
|
|
44
|
+
* early-exit; ≤60s en0 wait; stale-state `colima stop` ONLY (NEVER
|
|
45
|
+
* `colima delete`); ≤5-attempt `colima start … --vm-type vz
|
|
46
|
+
* --arch aarch64 --activate=false` with `sleep attempt*10` backoff.
|
|
47
|
+
*/
|
|
48
|
+
export function buildColimaWrapperScript(args) {
|
|
49
|
+
const { colimaHome, profile, socket, colimaBin } = args;
|
|
50
|
+
return `#!/bin/bash
|
|
51
|
+
# Auto-generated by jishushell (macos-launchd.ts) — do not edit by hand.
|
|
52
|
+
set -u
|
|
53
|
+
export COLIMA_HOME="${colimaHome}"
|
|
54
|
+
export PATH="${STD_PATH}"
|
|
55
|
+
COLIMA_BIN="${colimaBin}"
|
|
56
|
+
PROFILE="${profile}"
|
|
57
|
+
SOCK="${socket}"
|
|
58
|
+
LOCKDIR="${colimaHome}/.colima-launchd.lock.d"
|
|
59
|
+
|
|
60
|
+
# Ensure the colima home exists (launchd runs us at boot, independently).
|
|
61
|
+
mkdir -p "\$COLIMA_HOME"
|
|
62
|
+
|
|
63
|
+
# Reclaim a stale lock orphaned by SIGKILL/power-cut (mkdir-lock has no
|
|
64
|
+
# owner; rmdir only removes it if still empty — safe).
|
|
65
|
+
[ -d "\$LOCKDIR" ] && find "\$LOCKDIR" -maxdepth 0 -type d -mmin +10 -exec rmdir {} \\; 2>/dev/null || true
|
|
66
|
+
|
|
67
|
+
# Single-flight via atomic mkdir (POSIX-atomic, dependency-free, stock macOS
|
|
68
|
+
# compatible). If the lock dir already exists, another start is in progress —
|
|
69
|
+
# exit 0.
|
|
70
|
+
if ! mkdir "\$LOCKDIR" 2>/dev/null; then
|
|
71
|
+
echo "[colima-wrapper] another start in progress; exiting" >&2
|
|
72
|
+
exit 0
|
|
73
|
+
fi
|
|
74
|
+
trap 'rmdir "\$LOCKDIR" 2>/dev/null || true' EXIT
|
|
75
|
+
|
|
76
|
+
docker_ok() { DOCKER_HOST="unix://\$SOCK" /usr/bin/env docker info >/dev/null 2>&1; }
|
|
77
|
+
|
|
78
|
+
# Already up → idempotent no-op.
|
|
79
|
+
if docker_ok; then echo "[colima-wrapper] docker already reachable" >&2; exit 0; fi
|
|
80
|
+
|
|
81
|
+
# Wait up to 60s for the network (--network-host-addresses needs en0 up).
|
|
82
|
+
net_deadline=\$(( \$(date +%s) + 60 ))
|
|
83
|
+
while ! /sbin/ifconfig en0 2>/dev/null | grep -q "inet "; do
|
|
84
|
+
[ \$(date +%s) -ge \$net_deadline ] && break
|
|
85
|
+
sleep 2
|
|
86
|
+
done
|
|
87
|
+
|
|
88
|
+
# Unclean-shutdown residue: stop a half-broken VM, but NEVER delete it
|
|
89
|
+
# (delete destroys the openclaw image and all VM data).
|
|
90
|
+
status="\$("\$COLIMA_BIN" status "\$PROFILE" 2>&1 || true)"
|
|
91
|
+
if echo "\$status" | grep -qiE 'broken|cannot|error'; then
|
|
92
|
+
echo "[colima-wrapper] stale state detected; stopping (never deleting)" >&2
|
|
93
|
+
"\$COLIMA_BIN" stop "\$PROFILE" >/dev/null 2>&1 || true
|
|
94
|
+
fi
|
|
95
|
+
|
|
96
|
+
# Retry start with backoff until docker answers (~5 attempts).
|
|
97
|
+
attempt=0
|
|
98
|
+
while [ \$attempt -lt 5 ]; do
|
|
99
|
+
# Refresh our own lock mtime each attempt so a long (>budget) legit
|
|
100
|
+
# start is never reclaimed as stale by a concurrent launchd fire.
|
|
101
|
+
touch "\$LOCKDIR" 2>/dev/null || true
|
|
102
|
+
attempt=\$(( attempt + 1 ))
|
|
103
|
+
echo "[colima-wrapper] colima start attempt \$attempt" >&2
|
|
104
|
+
"\$COLIMA_BIN" start "\$PROFILE" \\
|
|
105
|
+
--vm-type ${COLIMA_VM_TYPE} --mount-type virtiofs \\
|
|
106
|
+
--network-host-addresses --arch ${COLIMA_ARCH} --activate=false \\
|
|
107
|
+
--cpu 2 --memory 4 --disk 60 >/dev/null 2>&1 || true
|
|
108
|
+
docker_ok && { echo "[colima-wrapper] docker reachable" >&2; exit 0; }
|
|
109
|
+
sleep \$(( attempt * 10 ))
|
|
110
|
+
done
|
|
111
|
+
echo "[colima-wrapper] exhausted retries; docker still unreachable" >&2
|
|
112
|
+
exit 1
|
|
113
|
+
`;
|
|
114
|
+
}
|
|
115
|
+
// NOTE: path values interpolated raw (no XML escaping) — byte-parity with
|
|
116
|
+
// install/jishu-install.sh; real macOS $HOME paths never contain & < >.
|
|
117
|
+
// This applies to every plist builder below (colima/nomad/panel).
|
|
118
|
+
/**
|
|
119
|
+
* `com.jishushell.colima.plist` — ProgramArguments = [wrapper] only;
|
|
120
|
+
* RunAtLoad true; KeepAlive {SuccessfulExit:false}; ThrottleInterval 30;
|
|
121
|
+
* StdOut/StdErr → colima-launchd.log. Mirrors `_install_colima_launchd`.
|
|
122
|
+
*/
|
|
123
|
+
export function buildColimaPlist(args) {
|
|
124
|
+
const { wrapperPath, colimaHome, logPath } = args;
|
|
125
|
+
return `<?xml version="1.0" encoding="UTF-8"?>
|
|
126
|
+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
127
|
+
<plist version="1.0">
|
|
128
|
+
<dict>
|
|
129
|
+
<key>Label</key>
|
|
130
|
+
<string>com.jishushell.colima</string>
|
|
131
|
+
<key>ProgramArguments</key>
|
|
132
|
+
<array>
|
|
133
|
+
<string>${wrapperPath}</string>
|
|
134
|
+
</array>
|
|
135
|
+
<key>EnvironmentVariables</key>
|
|
136
|
+
<dict>
|
|
137
|
+
<key>COLIMA_HOME</key>
|
|
138
|
+
<string>${colimaHome}</string>
|
|
139
|
+
<key>PATH</key>
|
|
140
|
+
<string>${STD_PATH}</string>
|
|
141
|
+
</dict>
|
|
142
|
+
<key>RunAtLoad</key>
|
|
143
|
+
<true/>
|
|
144
|
+
<key>KeepAlive</key>
|
|
145
|
+
<dict>
|
|
146
|
+
<key>SuccessfulExit</key>
|
|
147
|
+
<false/>
|
|
148
|
+
</dict>
|
|
149
|
+
<key>ThrottleInterval</key>
|
|
150
|
+
<integer>30</integer>
|
|
151
|
+
<key>StandardOutPath</key>
|
|
152
|
+
<string>${logPath}</string>
|
|
153
|
+
<key>StandardErrorPath</key>
|
|
154
|
+
<string>${logPath}</string>
|
|
155
|
+
</dict>
|
|
156
|
+
</plist>`;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* `nomad-launchd-wrapper.sh` — exports DOCKER_HOST + PATH, polls
|
|
160
|
+
* `docker info` for up to 180s, then `exec`s the real `nomad agent`.
|
|
161
|
+
* Without this gate, post-reboot boot ordering poisons the docker driver
|
|
162
|
+
* fingerprint (jobs stuck `pending` / `missing drivers: 1`).
|
|
163
|
+
* Mirrors `_install_nomad_wait_docker_wrapper`.
|
|
164
|
+
*/
|
|
165
|
+
export function buildNomadWaitWrapper(args) {
|
|
166
|
+
const { dockerHost, nomadBin, configPath } = args;
|
|
167
|
+
return `#!/bin/bash
|
|
168
|
+
# Auto-generated by jishushell (macos-launchd.ts) — do not edit by hand.
|
|
169
|
+
# Wait for the JishuShell Colima docker socket to come up, then exec nomad.
|
|
170
|
+
export DOCKER_HOST="${dockerHost}"
|
|
171
|
+
export PATH="${STD_PATH}"
|
|
172
|
+
|
|
173
|
+
deadline=\$(( \$(date +%s) + 180 ))
|
|
174
|
+
while ! /usr/bin/env docker info >/dev/null 2>&1; do
|
|
175
|
+
if [ \$(date +%s) -ge \$deadline ]; then
|
|
176
|
+
echo "[nomad-launchd-wrapper] timed out waiting for docker after 180s; starting nomad anyway" >&2
|
|
177
|
+
break
|
|
178
|
+
fi
|
|
179
|
+
sleep 2
|
|
180
|
+
done
|
|
181
|
+
|
|
182
|
+
exec "${nomadBin}" agent -config="${configPath}"
|
|
183
|
+
`;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* `com.jishushell.nomad.plist` — ProgramArguments = [nomad-wait-wrapper];
|
|
187
|
+
* DOCKER_HOST + PATH env; RunAtLoad true; KeepAlive true.
|
|
188
|
+
* Mirrors `_install_nomad_launchd`.
|
|
189
|
+
*/
|
|
190
|
+
export function buildNomadPlist(args) {
|
|
191
|
+
const { wrapperPath, dockerHost, logPath } = args;
|
|
192
|
+
return `<?xml version="1.0" encoding="UTF-8"?>
|
|
193
|
+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
194
|
+
<plist version="1.0">
|
|
195
|
+
<dict>
|
|
196
|
+
<key>Label</key>
|
|
197
|
+
<string>com.jishushell.nomad</string>
|
|
198
|
+
<key>ProgramArguments</key>
|
|
199
|
+
<array>
|
|
200
|
+
<string>${wrapperPath}</string>
|
|
201
|
+
</array>
|
|
202
|
+
<key>EnvironmentVariables</key>
|
|
203
|
+
<dict>
|
|
204
|
+
<key>DOCKER_HOST</key>
|
|
205
|
+
<string>${dockerHost}</string>
|
|
206
|
+
<key>PATH</key>
|
|
207
|
+
<string>${STD_PATH}</string>
|
|
208
|
+
</dict>
|
|
209
|
+
<key>RunAtLoad</key>
|
|
210
|
+
<true/>
|
|
211
|
+
<key>KeepAlive</key>
|
|
212
|
+
<true/>
|
|
213
|
+
<key>StandardOutPath</key>
|
|
214
|
+
<string>${logPath}</string>
|
|
215
|
+
<key>StandardErrorPath</key>
|
|
216
|
+
<string>${logPath}</string>
|
|
217
|
+
</dict>
|
|
218
|
+
</plist>`;
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* `panel-launchd-wrapper.sh` — lightweight 60s docker-readiness gate so
|
|
222
|
+
* the first post-reboot page load doesn't flash "image missing". On
|
|
223
|
+
* timeout it starts anyway (the UI must be observable). Then it `exec`s
|
|
224
|
+
* the existing panel-start wrapper via `/bin/sh` with `serve`.
|
|
225
|
+
* Mirrors the panel gate block in `install_jishushell_service`.
|
|
226
|
+
*/
|
|
227
|
+
export function buildPanelGateWrapper(args) {
|
|
228
|
+
const { socket, panelStartWrapper } = args;
|
|
229
|
+
return `#!/bin/bash
|
|
230
|
+
set -u
|
|
231
|
+
# Auto-generated by jishushell (macos-launchd.ts) — do not edit by hand.
|
|
232
|
+
# Lightweight 60s docker-readiness gate so the first post-reboot page
|
|
233
|
+
# load doesn't flash "image missing". Panel self-heals afterward, so on
|
|
234
|
+
# timeout we start anyway (the UI must be observable).
|
|
235
|
+
PANEL_DOCKER_WAIT_DEADLINE=60
|
|
236
|
+
export PATH="${STD_PATH}"
|
|
237
|
+
deadline=\$(( \$(date +%s) + \$PANEL_DOCKER_WAIT_DEADLINE ))
|
|
238
|
+
while ! DOCKER_HOST="unix://${socket}" /usr/bin/env docker info >/dev/null 2>&1; do
|
|
239
|
+
[ \$(date +%s) -ge \$deadline ] && { echo "[panel-gate] docker not ready after 60s; starting anyway" >&2; break; }
|
|
240
|
+
sleep 2
|
|
241
|
+
done
|
|
242
|
+
exec /bin/sh "${panelStartWrapper}" serve
|
|
243
|
+
`;
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* `com.jishushell.panel.plist` — ProgramArguments = [panel-gate];
|
|
247
|
+
* RunAtLoad true; KeepAlive true. Mirrors the panel plist block in
|
|
248
|
+
* `install_jishushell_service`.
|
|
249
|
+
*/
|
|
250
|
+
export function buildPanelPlist(args) {
|
|
251
|
+
const { gateWrapperPath, logPath } = args;
|
|
252
|
+
return `<?xml version="1.0" encoding="UTF-8"?>
|
|
253
|
+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
254
|
+
<plist version="1.0">
|
|
255
|
+
<dict>
|
|
256
|
+
<key>Label</key>
|
|
257
|
+
<string>com.jishushell.panel</string>
|
|
258
|
+
<key>ProgramArguments</key>
|
|
259
|
+
<array>
|
|
260
|
+
<string>${gateWrapperPath}</string>
|
|
261
|
+
</array>
|
|
262
|
+
<key>RunAtLoad</key>
|
|
263
|
+
<true/>
|
|
264
|
+
<key>KeepAlive</key>
|
|
265
|
+
<true/>
|
|
266
|
+
<key>StandardOutPath</key>
|
|
267
|
+
<string>${logPath}</string>
|
|
268
|
+
<key>StandardErrorPath</key>
|
|
269
|
+
<string>${logPath}</string>
|
|
270
|
+
</dict>
|
|
271
|
+
</plist>`;
|
|
272
|
+
}
|
|
273
|
+
//# sourceMappingURL=macos-launchd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"macos-launchd.js","sourceRoot":"","sources":["../../src/services/macos-launchd.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,SAAS,CAAC;AAEzC,MAAM,QAAQ,GAAG,gEAAgE,CAAC;AAElF;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,SAAS,CAAC;AACrC,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC;AAOnC;;;;GAIG;AACH,MAAM,UAAU,iBAAiB;IAC/B,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,MAAM,EAAE,KAAK,OAAO,EAAE,CAAC;QAC1D,OAAO;YACL,EAAE,EAAE,KAAK;YACT,OAAO,EAAE,sEAAsE,MAAM,EAAE,yBAAyB;SACjH,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACtB,CAAC;AASD;;;;;;;GAOG;AACH,MAAM,UAAU,wBAAwB,CAAC,IAAuB;IAC9D,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IACxD,OAAO;;;sBAGa,UAAU;eACjB,QAAQ;cACT,SAAS;WACZ,OAAO;QACV,MAAM;WACH,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBA+CL,cAAc;sCACQ,WAAW;;;;;;;CAOhD,CAAC;AACF,CAAC;AAQD,0EAA0E;AAC1E,wEAAwE;AACxE,kEAAkE;AAElE;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAqB;IACpD,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAClD,OAAO;;;;;;;;kBAQS,WAAW;;;;;kBAKX,UAAU;;kBAEV,QAAQ;;;;;;;;;;;;cAYZ,OAAO;;cAEP,OAAO;;SAEZ,CAAC;AACV,CAAC;AAQD;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAA0B;IAC9D,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IAClD,OAAO;;;sBAGa,UAAU;eACjB,QAAQ;;;;;;;;;;;QAWf,QAAQ,oBAAoB,UAAU;CAC7C,CAAC;AACF,CAAC;AAQD;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,IAAoB;IAClD,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAClD,OAAO;;;;;;;;kBAQS,WAAW;;;;;kBAKX,UAAU;;kBAEV,QAAQ;;;;;;;cAOZ,OAAO;;cAEP,OAAO;;SAEZ,CAAC;AACV,CAAC;AAOD;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAA0B;IAC9D,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC;IAC3C,OAAO;;;;;;;eAOM,QAAQ;;8BAEO,MAAM;;;;gBAIpB,iBAAiB;CAChC,CAAC;AACF,CAAC;AAOD;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,IAAoB;IAClD,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAC1C,OAAO;;;;;;;;kBAQS,eAAe;;;;;;;cAOnB,OAAO;;cAEP,OAAO;;SAEZ,CAAC;AACV,CAAC"}
|
|
@@ -78,6 +78,13 @@ export declare function startInstance(instanceId: string): Promise<Record<string
|
|
|
78
78
|
export declare function stopInstance(instanceId: string, purge?: boolean): Promise<Record<string, any>>;
|
|
79
79
|
export declare function restartInstance(instanceId: string): Promise<Record<string, any>>;
|
|
80
80
|
export declare function getLogs(instanceId: string, lines?: number, logType?: string): Promise<string[]>;
|
|
81
|
+
/** Field separator for the batched `docker stats --format` line. Exported so
|
|
82
|
+
* tests can construct mock output without hardcoding the literal. */
|
|
83
|
+
export declare const DOCKER_STATS_FIELD_SEP = "__JS__";
|
|
84
|
+
/** Test-only: reset the shared docker-stats snapshot so each test starts from
|
|
85
|
+
* a cold cache (the 30s TTL + single-flight would otherwise leak one test's
|
|
86
|
+
* mocked snapshot into the next). Not used by production code paths. */
|
|
87
|
+
export declare function __resetDockerStatsCacheForTests(): void;
|
|
81
88
|
export declare function exec(instanceId: string, command: string[], timeoutMs?: number): Promise<{
|
|
82
89
|
stdout: string;
|
|
83
90
|
stderr: string;
|