@open-mercato/cezar 0.1.5-pr506.357
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 +573 -0
- package/dist/config.d.ts +144 -0
- package/dist/config.js +106 -0
- package/dist/config.js.map +1 -0
- package/dist/core/agent-runner.d.ts +169 -0
- package/dist/core/agent-runner.js +23 -0
- package/dist/core/agent-runner.js.map +1 -0
- package/dist/core/backend-detect.d.ts +16 -0
- package/dist/core/backend-detect.js +118 -0
- package/dist/core/backend-detect.js.map +1 -0
- package/dist/core/claude-cli-runner.d.ts +56 -0
- package/dist/core/claude-cli-runner.js +416 -0
- package/dist/core/claude-cli-runner.js.map +1 -0
- package/dist/core/claude-ui-mapper.d.ts +71 -0
- package/dist/core/claude-ui-mapper.js +567 -0
- package/dist/core/claude-ui-mapper.js.map +1 -0
- package/dist/core/codex-app-server-runner.d.ts +29 -0
- package/dist/core/codex-app-server-runner.js +489 -0
- package/dist/core/codex-app-server-runner.js.map +1 -0
- package/dist/core/codex-ui-mapper.d.ts +63 -0
- package/dist/core/codex-ui-mapper.js +491 -0
- package/dist/core/codex-ui-mapper.js.map +1 -0
- package/dist/core/ndjson.d.ts +6 -0
- package/dist/core/ndjson.js +23 -0
- package/dist/core/ndjson.js.map +1 -0
- package/dist/core/opencode-server-runner.d.ts +30 -0
- package/dist/core/opencode-server-runner.js +488 -0
- package/dist/core/opencode-server-runner.js.map +1 -0
- package/dist/core/opencode-ui-mapper.d.ts +105 -0
- package/dist/core/opencode-ui-mapper.js +588 -0
- package/dist/core/opencode-ui-mapper.js.map +1 -0
- package/dist/core/process-usage.d.ts +63 -0
- package/dist/core/process-usage.js +181 -0
- package/dist/core/process-usage.js.map +1 -0
- package/dist/core/runner-factory.d.ts +8 -0
- package/dist/core/runner-factory.js +22 -0
- package/dist/core/runner-factory.js.map +1 -0
- package/dist/core/tool-display.d.ts +30 -0
- package/dist/core/tool-display.js +156 -0
- package/dist/core/tool-display.js.map +1 -0
- package/dist/core/ui-events.d.ts +308 -0
- package/dist/core/ui-events.js +25 -0
- package/dist/core/ui-events.js.map +1 -0
- package/dist/core/usage.d.ts +11 -0
- package/dist/core/usage.js +15 -0
- package/dist/core/usage.js.map +1 -0
- package/dist/git-worktree.d.ts +88 -0
- package/dist/git-worktree.js +297 -0
- package/dist/git-worktree.js.map +1 -0
- package/dist/handoff.d.ts +62 -0
- package/dist/handoff.js +147 -0
- package/dist/handoff.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +466 -0
- package/dist/index.js.map +1 -0
- package/dist/install-as-command.d.ts +39 -0
- package/dist/install-as-command.js +51 -0
- package/dist/install-as-command.js.map +1 -0
- package/dist/pack-check.d.ts +17 -0
- package/dist/pack-check.js +27 -0
- package/dist/pack-check.js.map +1 -0
- package/dist/paths.d.ts +23 -0
- package/dist/paths.js +34 -0
- package/dist/paths.js.map +1 -0
- package/dist/planner.d.ts +17 -0
- package/dist/planner.js +248 -0
- package/dist/planner.js.map +1 -0
- package/dist/release/snapshot.d.ts +64 -0
- package/dist/release/snapshot.js +75 -0
- package/dist/release/snapshot.js.map +1 -0
- package/dist/release/stable.d.ts +46 -0
- package/dist/release/stable.js +57 -0
- package/dist/release/stable.js.map +1 -0
- package/dist/runs/auto-name.d.ts +75 -0
- package/dist/runs/auto-name.js +168 -0
- package/dist/runs/auto-name.js.map +1 -0
- package/dist/runs/retention.d.ts +60 -0
- package/dist/runs/retention.js +86 -0
- package/dist/runs/retention.js.map +1 -0
- package/dist/runs/review-gate.d.ts +18 -0
- package/dist/runs/review-gate.js +21 -0
- package/dist/runs/review-gate.js.map +1 -0
- package/dist/runs/store.d.ts +408 -0
- package/dist/runs/store.js +526 -0
- package/dist/runs/store.js.map +1 -0
- package/dist/runs/task-refs.d.ts +24 -0
- package/dist/runs/task-refs.js +74 -0
- package/dist/runs/task-refs.js.map +1 -0
- package/dist/runs/ui-event-sink.d.ts +81 -0
- package/dist/runs/ui-event-sink.js +210 -0
- package/dist/runs/ui-event-sink.js.map +1 -0
- package/dist/server/capabilities.d.ts +33 -0
- package/dist/server/capabilities.js +43 -0
- package/dist/server/capabilities.js.map +1 -0
- package/dist/server/forge/github.d.ts +70 -0
- package/dist/server/forge/github.js +375 -0
- package/dist/server/forge/github.js.map +1 -0
- package/dist/server/forge/index.d.ts +24 -0
- package/dist/server/forge/index.js +45 -0
- package/dist/server/forge/index.js.map +1 -0
- package/dist/server/forge/types.d.ts +80 -0
- package/dist/server/forge/types.js +2 -0
- package/dist/server/forge/types.js.map +1 -0
- package/dist/server/git-changes.d.ts +195 -0
- package/dist/server/git-changes.js +497 -0
- package/dist/server/git-changes.js.map +1 -0
- package/dist/server/git.d.ts +26 -0
- package/dist/server/git.js +103 -0
- package/dist/server/git.js.map +1 -0
- package/dist/server/github.d.ts +8 -0
- package/dist/server/github.js +8 -0
- package/dist/server/github.js.map +1 -0
- package/dist/server/launch-key.d.ts +7 -0
- package/dist/server/launch-key.js +33 -0
- package/dist/server/launch-key.js.map +1 -0
- package/dist/server/open-in-app.d.ts +51 -0
- package/dist/server/open-in-app.js +189 -0
- package/dist/server/open-in-app.js.map +1 -0
- package/dist/server/open-in-terminal.d.ts +25 -0
- package/dist/server/open-in-terminal.js +120 -0
- package/dist/server/open-in-terminal.js.map +1 -0
- package/dist/server/pr.d.ts +7 -0
- package/dist/server/pr.js +7 -0
- package/dist/server/pr.js.map +1 -0
- package/dist/server/server.d.ts +41 -0
- package/dist/server/server.js +1390 -0
- package/dist/server/server.js.map +1 -0
- package/dist/server/static-ui.d.ts +49 -0
- package/dist/server/static-ui.js +92 -0
- package/dist/server/static-ui.js.map +1 -0
- package/dist/server/wsl.d.ts +25 -0
- package/dist/server/wsl.js +92 -0
- package/dist/server/wsl.js.map +1 -0
- package/dist/server-install/engine.d.ts +33 -0
- package/dist/server-install/engine.js +314 -0
- package/dist/server-install/engine.js.map +1 -0
- package/dist/server-install/platforms/macosx-ngrok.d.ts +6 -0
- package/dist/server-install/platforms/macosx-ngrok.js +345 -0
- package/dist/server-install/platforms/macosx-ngrok.js.map +1 -0
- package/dist/server-install/platforms/ubuntu-vps.d.ts +39 -0
- package/dist/server-install/platforms/ubuntu-vps.js +746 -0
- package/dist/server-install/platforms/ubuntu-vps.js.map +1 -0
- package/dist/server-install/state.d.ts +26 -0
- package/dist/server-install/state.js +125 -0
- package/dist/server-install/state.js.map +1 -0
- package/dist/server-install/steps.d.ts +109 -0
- package/dist/server-install/steps.js +330 -0
- package/dist/server-install/steps.js.map +1 -0
- package/dist/server-install/strategies.d.ts +4 -0
- package/dist/server-install/strategies.js +20 -0
- package/dist/server-install/strategies.js.map +1 -0
- package/dist/server-install/types.d.ts +597 -0
- package/dist/server-install/types.js +98 -0
- package/dist/server-install/types.js.map +1 -0
- package/dist/server-install/ui.d.ts +42 -0
- package/dist/server-install/ui.js +130 -0
- package/dist/server-install/ui.js.map +1 -0
- package/dist/skills-banner.d.ts +21 -0
- package/dist/skills-banner.js +40 -0
- package/dist/skills-banner.js.map +1 -0
- package/dist/skills-remote.d.ts +35 -0
- package/dist/skills-remote.js +266 -0
- package/dist/skills-remote.js.map +1 -0
- package/dist/skills.d.ts +45 -0
- package/dist/skills.js +182 -0
- package/dist/skills.js.map +1 -0
- package/dist/todos.d.ts +63 -0
- package/dist/todos.js +168 -0
- package/dist/todos.js.map +1 -0
- package/dist/ui-state.d.ts +12 -0
- package/dist/ui-state.js +25 -0
- package/dist/ui-state.js.map +1 -0
- package/dist/update-check.d.ts +12 -0
- package/dist/update-check.js +41 -0
- package/dist/update-check.js.map +1 -0
- package/dist/workflows/load.d.ts +15 -0
- package/dist/workflows/load.js +56 -0
- package/dist/workflows/load.js.map +1 -0
- package/dist/workflows/run.d.ts +281 -0
- package/dist/workflows/run.js +1511 -0
- package/dist/workflows/run.js.map +1 -0
- package/dist/workflows/types.d.ts +307 -0
- package/dist/workflows/types.js +171 -0
- package/dist/workflows/types.js.map +1 -0
- package/package.json +90 -0
- package/scripts/check-pack.mjs +46 -0
- package/scripts/dev.mjs +74 -0
- package/scripts/install-as-command.mjs +120 -0
- package/scripts/mock-claude.mjs +310 -0
- package/scripts/release-snapshot.mjs +130 -0
- package/scripts/release.mjs +119 -0
- package/scripts/test-process-usage.mjs +47 -0
- package/web/dist/assets/arrow-left-BE957rJs.js +1 -0
- package/web/dist/assets/bundle-mjs-DLPpRFyl.js +1 -0
- package/web/dist/assets/centered-state-BddhEEtO.js +43 -0
- package/web/dist/assets/chunk-BO2N2NFS-f5igTtpB.js +131 -0
- package/web/dist/assets/command-CjhFbABo.js +1 -0
- package/web/dist/assets/compare-variants-Cs52IAEG.js +1 -0
- package/web/dist/assets/core-BuMqAF_1.js +12 -0
- package/web/dist/assets/css-BsVw1vtW.js +1 -0
- package/web/dist/assets/dialog-DFvXTkFv.js +1 -0
- package/web/dist/assets/diff-view-C9b8AITq.js +4 -0
- package/web/dist/assets/diff-woXpYk--.js +1 -0
- package/web/dist/assets/dist-FBs4wmIY.js +1 -0
- package/web/dist/assets/dist-o_kVMXjg.js +1 -0
- package/web/dist/assets/engine-javascript-FQvzRocB.js +141 -0
- package/web/dist/assets/file-BVuztAOd.js +1 -0
- package/web/dist/assets/folder-0pJ1NZ_S.js +1 -0
- package/web/dist/assets/git-pull-request-DJkAMT0f.js +1 -0
- package/web/dist/assets/git-toolbar-CwhQdx3J.js +1 -0
- package/web/dist/assets/github-D0rAX4-r.js +1 -0
- package/web/dist/assets/go-rLFTqkRN.js +1 -0
- package/web/dist/assets/highlighted-body-OFNGDK62-DGHHie_q.js +1 -0
- package/web/dist/assets/highlighter-BKVEsACy.js +3 -0
- package/web/dist/assets/html-BY76lXLH.js +1 -0
- package/web/dist/assets/index-CEkI7QxN.css +2 -0
- package/web/dist/assets/index-CO2lH2et.js +11 -0
- package/web/dist/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2 +0 -0
- package/web/dist/assets/inter-latin-wght-normal-Dx4kXJAl.woff2 +0 -0
- package/web/dist/assets/javascript-BgS3c2Ky.js +1 -0
- package/web/dist/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2 +0 -0
- package/web/dist/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2 +0 -0
- package/web/dist/assets/json-qhed-kSA.js +1 -0
- package/web/dist/assets/jsonc-CYpm1nAK.js +1 -0
- package/web/dist/assets/jsx-Bz0zcwM4.js +1 -0
- package/web/dist/assets/lib-CNGa3Dig.js +1 -0
- package/web/dist/assets/loader-circle-BV3DO9mE.js +1 -0
- package/web/dist/assets/markdown-BYOwaDjH.js +1 -0
- package/web/dist/assets/markdown-D4-ADgH9.js +1 -0
- package/web/dist/assets/mermaid-GHXKKRXX-DM2VsGBG.js +1 -0
- package/web/dist/assets/open-mercato-toBr6SOa.svg +11 -0
- package/web/dist/assets/prompt-templates-C7ptKvDd.js +15 -0
- package/web/dist/assets/python-gzcpVVnB.js +1 -0
- package/web/dist/assets/react-dom-Ddtik4qM.js +1 -0
- package/web/dist/assets/refresh-cw-DCa-Rlwz.js +1 -0
- package/web/dist/assets/repo-git-DIhryGDx.js +1 -0
- package/web/dist/assets/run-diff-Dyow8B1q.js +3 -0
- package/web/dist/assets/run-header-jx9-18b8.js +1 -0
- package/web/dist/assets/rust-Cfkwpbl8.js +1 -0
- package/web/dist/assets/search-x-CoCyl7zT.js +1 -0
- package/web/dist/assets/shellscript-CLZ0U2zV.js +1 -0
- package/web/dist/assets/skill-detail-DB7x_FQp.js +1 -0
- package/web/dist/assets/skills-98vCroU8.js +1 -0
- package/web/dist/assets/skills-BKIoqD6K.js +1 -0
- package/web/dist/assets/sql-BsFa4tDR.js +1 -0
- package/web/dist/assets/square-terminal-B6PZX4Qp.js +1 -0
- package/web/dist/assets/tab-link-C5--YMQd.js +1 -0
- package/web/dist/assets/task-changes-ejxPGVJw.js +1 -0
- package/web/dist/assets/task-commits-C6GO5qT-.js +1 -0
- package/web/dist/assets/task-files-CatpCBXa.js +2 -0
- package/web/dist/assets/task-thread-BMbXDM3d.js +5 -0
- package/web/dist/assets/tasks-table-dgezlCcg.js +1 -0
- package/web/dist/assets/trash-2-CDtxmmc8.js +1 -0
- package/web/dist/assets/triangle-alert-6su4Js5O.js +1 -0
- package/web/dist/assets/tsx-udAQXfEw.js +1 -0
- package/web/dist/assets/typescript-bsJCZSQ-.js +1 -0
- package/web/dist/assets/upload-Bp7hQxll.js +1 -0
- package/web/dist/assets/use-desktop-CvTwojOJ.js +3 -0
- package/web/dist/assets/utils-rQGbOrwc.js +1 -0
- package/web/dist/assets/workflows-Dy2c6790.js +11 -0
- package/web/dist/assets/x-Br_jIDBw.js +1 -0
- package/web/dist/assets/yaml-rwi0_p6S.js +1 -0
- package/web/dist/index.html +70 -0
- package/web/open-mercato.svg +11 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"steps.js","sourceRoot":"","sources":["../../src/server-install/steps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAqB,MAAM,2BAA2B,CAAC;AACjF,OAAO,EACL,MAAM,GAKP,MAAM,YAAY,CAAC;AAEpB;;;;;;GAMG;AAEH,gDAAgD;AAChD,MAAM,CAAC,MAAM,aAAa,GAAW;IACnC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI;QACzB,yEAAyE;QACzE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YACxE,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACvD,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACvD,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YAChE,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YAC1E,uEAAuE;YACvE,iDAAiD;YACjD,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YACnC,IAAI,IAAI,EAAE,KAAK,IAAI,IAAI;gBAAE,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;;gBACjD,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;IACL,CAAC;IACD,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI;QAC7B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,4EAA4E;YAC5E,wEAAwE;YACxE,uDAAuD;YACvD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE;gBACjC,KAAK,EAAE,CAAC,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;gBACvE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS;aAC7D,CAAC,CAAC;YACH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;YACtC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;YAChD,IAAI,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,CAAC;gBACxB,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC,CAAC,iCAAiC;gBACrE,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAC;AAEF,mGAAmG;AACnG,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,GAAmB,EACnB,OAAe,EACf,IAAc,EACd,UAA4E,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC;IAE/F,IAAI,GAAG,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC7B,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,GAAmB;IAC3D,IAAI,GAAG,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC7B,OAAO,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC;AACvE,CAAC;AAED,+EAA+E;AAC/E,MAAM,CAAC,MAAM,WAAW,GAAG,qDAAqD,CAAC;AAEjF,MAAM,OAAO,aAAc,SAAQ,KAAK;CAAG;AAC3C,MAAM,OAAO,WAAY,SAAQ,KAAK;CAAG;AACzC,qGAAqG;AACrG,MAAM,OAAO,WAAY,SAAQ,KAAK;CAAG;AAiCzC;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAM,GAAG,EAAE;IAC1C,MAAM,KAAK,GAAG,0BAA0B,CAAC,CAAC,OAAO;IACjD,MAAM,KAAK,GAAG,0BAA0B,CAAC,CAAC,UAAU;IACpD,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,UAAU;IACrC,MAAM,OAAO,GAAG,cAAc,CAAC;IAC/B,MAAM,GAAG,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC;IAC7C,MAAM,IAAI,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAChE,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACtE,OAAO,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACjE,6EAA6E;IAC7E,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3B,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAW,CAAC;QAC/B,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAW,CAAC;QAC9B,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;IACjB,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACxB,CAAC;AAED;;;;;;;;;GASG;AACH,yFAAyF;AACzF,MAAM,UAAU,OAAO,CAAC,CAAS;IAC/B,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC;AACzC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,GAAmB,EAAE,IAAkB;IACpE,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC;IACnB,iFAAiF;IACjF,MAAM,OAAO,GAAG,iBAAiB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;IAEzD,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QACf,EAAE,CAAC,IAAI,CACL,IAAI,CAAC,KAAK,IAAI,IAAI;YAChB,CAAC,CAAC,wBAAwB,OAAO,cAAc,IAAI,CAAC,UAAU,IAAI,SAAS,YAAY;YACvF,CAAC,CAAC,wBAAwB,OAAO,EAAE,CACtC,CAAC;QACF,OAAO;IACT,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAEpD,SAAS,CAAC;QACR,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1B,IAAI,IAAI,CAAC,IAAI;YAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAEpB,IAAI,IAAyB,CAAC;QAC9B,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YAClB,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC;QAC5C,CAAC;aAAM,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC9B,2EAA2E;YAC3E,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,yEAAyE;YACzE,2EAA2E;YAC3E,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,MAAM,CAAsB;gBAClD,OAAO,EAAE,yCAAyC;gBAClD,OAAO,EAAE;oBACP,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,4BAA4B,EAAE,IAAI,EAAE,mCAAmC,EAAE;oBACrG,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,EAAE,IAAI,EAAE,qBAAqB,EAAE;iBAC7E;gBACD,YAAY,EAAE,UAAU;aACzB,CAAC,CAAC;YACH,IAAI,MAAM,KAAK,MAAM;gBAAE,MAAM,IAAI,aAAa,EAAE,CAAC;YACjD,IAAI,GAAG,MAAM,CAAC;YACd,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,CAAC,uDAAuD;QACtF,CAAC;QAED,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,WAAW,CACvC,MAAM,EACN,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,EAC7B,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CACvD,CAAC;YACF,IAAI,IAAI,KAAK,CAAC;gBAAE,EAAE,CAAC,IAAI,CAAC,4BAA4B,IAAI,EAAE,CAAC,CAAC;QAC9D,CAAC;aAAM,CAAC;YACN,EAAE,CAAC,IAAI,CAAC,6HAA6H,CAAC,CAAC;YACvI,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;gBACvB,uEAAuE;gBACvE,EAAE,CAAC,IAAI,CAAC,gEAAgE,IAAI,CAAC,UAAU,IAAI,MAAM,oBAAoB,CAAC,CAAC;gBACvH,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;gBACnB,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,0BAA0B,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC3F,IAAI,IAAI,KAAK,MAAM;oBAAE,MAAM,IAAI,aAAa,EAAE,CAAC;YACjD,CAAC;QACH,CAAC;QAED,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACxB,OAAO;QACT,CAAC;QAED,EAAE,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC;QAC3E,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YAClB,MAAM,IAAI,CAAC,SAAS;gBAClB,CAAC,CAAC,IAAI,WAAW,CAAC,4BAA4B,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC7D,CAAC,CAAC,IAAI,WAAW,CAAC,4BAA4B,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAClE,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,MAAM,CAAmB;gBAC7C,OAAO,EAAE,gCAAgC;gBACzC,OAAO,EAAE;oBACP,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE;oBACtC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE;iBAChE;gBACD,YAAY,EAAE,OAAO;aACtB,CAAC,CAAC;YACH,IAAI,IAAI,KAAK,MAAM;gBAAE,MAAM,IAAI,aAAa,EAAE,CAAC;YAC/C,IAAI,IAAI,KAAK,MAAM;gBAAE,MAAM,IAAI,WAAW,CAAC,YAAY,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YACvE,SAAS;QACX,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7E,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,KAAK;YAAE,MAAM,IAAI,WAAW,CAAC,eAAe,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAC9F,CAAC;AACH,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,KAAK,CAAC,IAAY,EAAE,MAA2C;IAC7E,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC;AAC5C,CAAC;AACD,4EAA4E;AAC5E,MAAM,UAAU,MAAM,CAAC,IAAY,EAAE,MAA2C;IAC9E,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC;AAC7C,CAAC;AAmBD,MAAM,UAAU,YAAY,CAAC,OAAoB,EAAE;IACjD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,iBAAiB,CAAC;IAChD,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,IAAI,cAAc,CAAC;IACnD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,IAAI,aAAa,CAAC;IACjD,OAAO;QACL,EAAE,EAAE,MAAM;QACV,KAAK,EAAE,gCAAgC;QACvC,KAAK,CAAC,KAAK,CAAC,GAAG;YACb,IAAI,GAAG,CAAC,MAAM;gBAAE,OAAO,KAAK,CAAC;YAC7B,MAAM,MAAM,GAAG,MAAM,MAAM,EAAE,CAAC;YAC9B,+DAA+D;YAC/D,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC;QAC7F,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,GAAG;YACX,MAAM,MAAM,GAAG,MAAM,MAAM,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;YACvE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;gBAC5C,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;YAC3B,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,WAAW,CAAS;gBAC5C,OAAO,EAAE,4CAA4C;gBACrD,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC7E,QAAQ,EAAE,KAAK;aAChB,CAAC,CAAC;YACH,IAAI,IAAI,KAAK,MAAM;gBAAE,MAAM,IAAI,aAAa,EAAE,CAAC;YAE/C,MAAM,SAAS,GAAmB,EAAE,CAAC;YACrC,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;gBACxB,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;gBACnD,MAAM,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBACzB,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBACvE,IAAI,KAAK,EAAE,IAAI;oBAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,aAAa,IAAI,EAAE,CAAC,CAAC;YAChE,CAAC;YACD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;QAClC,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO;YACrB,8EAA8E;YAC9E,MAAM,IAAI,GAAG,OAAO,EAAE,SAAS,IAAI,EAAE,CAAC;YACtC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO;YAC9B,GAAG,CAAC,EAAE,CAAC,IAAI,CACT,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EACxE,wGAAwG,CACzG,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,GAA2B;IACzC,MAAM,EAAE,2BAA2B;IACnC,KAAK,EAAE,eAAe;CACvB,CAAC;AAEF,yFAAyF;AACzF,MAAM,CAAC,MAAM,cAAc,GAAkB,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IAC/D,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,MAAM,QAAQ,CAAC,GAAG,EAAE;YAClB,WAAW,EAAE,uDAAuD;YACpE,OAAO,EAAE,yCAAyC;YAClD,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,WAAW,CAAC,CAAC;SACrD,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IACD,MAAM,mBAAmB,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7C,CAAC,CAAC;AAEF,yEAAyE;AACzE,MAAM,CAAC,MAAM,eAAe,GAAkB,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IAChE,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;YACpD,OAAO;QACT,CAAC;QACD,MAAM,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;QACxD,OAAO;IACT,CAAC;IACD,MAAM,mBAAmB,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AAC9C,CAAC,CAAC;AAEF,KAAK,UAAU,mBAAmB,CAAC,GAAmB,EAAE,IAAY,EAAE,IAAa;IACjF,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACxB,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,yDAAyD,EAAE,UAAU,CAAC,CAAC;QACnF,OAAO;IACT,CAAC;IACD,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAC7B,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,0BAA0B,IAAI,wBAAwB,CAAC,CAAC;QACpE,OAAO;IACT,CAAC;IACD,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,QAAQ,CAAC,GAAG,EAAE;YAClB,WAAW,EAAE,WAAW,IAAI,oBAAoB;YAChD,OAAO,EAAE,kBAAkB,GAAG,EAAE;YAChC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,WAAW,CAAC,CAAC;SACrD,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IACD,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QACf,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,uCAAuC,GAAG,EAAE,CAAC,CAAC;QAC1D,OAAO;IACT,CAAC;IACD,MAAM,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,aAAa,CAAC,IAAY;IACjC,MAAM,GAAG,GAA2B;QAClC,MAAM,EAAE,qCAAqC;QAC7C,KAAK,EAAE,yBAAyB;KACjC,CAAC;IACF,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,2BAA2B,CAAC;IACtD,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,YAAY,IAAI,WAAW,CAAC;AAClD,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,GAAG,GAA2B;QAClC,MAAM,EAAE,qCAAqC;QAC7C,KAAK,EAAE,yBAAyB;KACjC,CAAC;IACF,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,mBAAmB,CAAC;IAC9C,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,YAAY,IAAI,WAAW,CAAC;AAClD,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type PlatformId, type PlatformStrategy } from './types.js';
|
|
2
|
+
export declare function getStrategy(id: string): PlatformStrategy | undefined;
|
|
3
|
+
/** Ids that actually have a registered strategy (a subset of PLATFORM_IDS while phased). */
|
|
4
|
+
export declare function availablePlatformIds(): PlatformId[];
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { macosxNgrok } from './platforms/macosx-ngrok.js';
|
|
2
|
+
import { ubuntuVps } from './platforms/ubuntu-vps.js';
|
|
3
|
+
import { PLATFORM_IDS } from './types.js';
|
|
4
|
+
/**
|
|
5
|
+
* Platform registry. `--platform <id>` is validated against these keys; an
|
|
6
|
+
* unknown id lists the valid ones and exits 1. Add a strategy here to teach the
|
|
7
|
+
* wizard a new platform — the engine and helpers are untouched.
|
|
8
|
+
*/
|
|
9
|
+
const REGISTRY = {
|
|
10
|
+
'ubuntu-vps': ubuntuVps,
|
|
11
|
+
'macosx-ngrok': macosxNgrok,
|
|
12
|
+
};
|
|
13
|
+
export function getStrategy(id) {
|
|
14
|
+
return REGISTRY[id];
|
|
15
|
+
}
|
|
16
|
+
/** Ids that actually have a registered strategy (a subset of PLATFORM_IDS while phased). */
|
|
17
|
+
export function availablePlatformIds() {
|
|
18
|
+
return PLATFORM_IDS.filter((id) => REGISTRY[id] !== undefined);
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=strategies.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strategies.js","sourceRoot":"","sources":["../../src/server-install/strategies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,YAAY,EAA0C,MAAM,YAAY,CAAC;AAElF;;;;GAIG;AACH,MAAM,QAAQ,GAAkD;IAC9D,YAAY,EAAE,SAAS;IACvB,cAAc,EAAE,WAAW;CAC5B,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,EAAU;IACpC,OAAO,QAAQ,CAAC,EAAgB,CAAC,CAAC;AACpC,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,oBAAoB;IAClC,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,SAAS,CAAC,CAAC;AACjE,CAAC"}
|
|
@@ -0,0 +1,597 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Contracts for the server installer (spec 2026-07-16-server-installer).
|
|
4
|
+
* The engine closes over `InstallStep` / `PlatformStrategy` and never learns
|
|
5
|
+
* what a step *does* — only `check` / `run` / `undo`. That seam is what makes
|
|
6
|
+
* "use ubuntu as a selector and run it that way" a registry lookup, and what
|
|
7
|
+
* makes the interactive helpers reusable across every future platform.
|
|
8
|
+
*/
|
|
9
|
+
/** The platforms the registry knows. Extend here + add a strategy file. */
|
|
10
|
+
export declare const PLATFORM_IDS: readonly ["ubuntu-vps", "macosx-ngrok"];
|
|
11
|
+
export type PlatformId = (typeof PLATFORM_IDS)[number];
|
|
12
|
+
/** Per-step lifecycle. `failed` resumes identically to `pending`. */
|
|
13
|
+
export declare const STEP_STATUSES: readonly ["pending", "done", "skipped", "failed"];
|
|
14
|
+
export type StepStatus = (typeof STEP_STATUSES)[number];
|
|
15
|
+
/**
|
|
16
|
+
* One thing a step created, tagged by who owns its removal:
|
|
17
|
+
* - `owned` — cezar authored it and nothing else uses it → uninstall removes it.
|
|
18
|
+
* - `shared` — a system tool the operator may now depend on (gh, agent CLIs,
|
|
19
|
+
* certbot + its renewal timer, the cert itself) → uninstall lists it with a
|
|
20
|
+
* manual removal hint instead of yanking it.
|
|
21
|
+
*/
|
|
22
|
+
export declare const stepArtifactSchema: z.ZodObject<{
|
|
23
|
+
kind: z.ZodEnum<["owned", "shared"]>;
|
|
24
|
+
/** file | package | service | cert | htpasswd | config | note */
|
|
25
|
+
type: z.ZodString;
|
|
26
|
+
/** Filesystem path for `owned` files (vhost, unit, htpasswd). */
|
|
27
|
+
path: z.ZodOptional<z.ZodString>;
|
|
28
|
+
/** Human name: package id, unit name, cert domain, auth user. */
|
|
29
|
+
name: z.ZodOptional<z.ZodString>;
|
|
30
|
+
/** `system` | `user` for services. */
|
|
31
|
+
scope: z.ZodOptional<z.ZodString>;
|
|
32
|
+
/** For `shared` artifacts: the exact command the operator can run to remove it. */
|
|
33
|
+
removeHint: z.ZodOptional<z.ZodString>;
|
|
34
|
+
}, "strip", z.ZodTypeAny, {
|
|
35
|
+
type: string;
|
|
36
|
+
kind: "owned" | "shared";
|
|
37
|
+
path?: string | undefined;
|
|
38
|
+
name?: string | undefined;
|
|
39
|
+
scope?: string | undefined;
|
|
40
|
+
removeHint?: string | undefined;
|
|
41
|
+
}, {
|
|
42
|
+
type: string;
|
|
43
|
+
kind: "owned" | "shared";
|
|
44
|
+
path?: string | undefined;
|
|
45
|
+
name?: string | undefined;
|
|
46
|
+
scope?: string | undefined;
|
|
47
|
+
removeHint?: string | undefined;
|
|
48
|
+
}>;
|
|
49
|
+
export type StepArtifact = z.infer<typeof stepArtifactSchema>;
|
|
50
|
+
/** What a step returns from `run()`; `undo()` receives it back verbatim. */
|
|
51
|
+
export declare const stepCreatedSchema: z.ZodNullable<z.ZodObject<{
|
|
52
|
+
artifacts: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
53
|
+
kind: z.ZodEnum<["owned", "shared"]>;
|
|
54
|
+
/** file | package | service | cert | htpasswd | config | note */
|
|
55
|
+
type: z.ZodString;
|
|
56
|
+
/** Filesystem path for `owned` files (vhost, unit, htpasswd). */
|
|
57
|
+
path: z.ZodOptional<z.ZodString>;
|
|
58
|
+
/** Human name: package id, unit name, cert domain, auth user. */
|
|
59
|
+
name: z.ZodOptional<z.ZodString>;
|
|
60
|
+
/** `system` | `user` for services. */
|
|
61
|
+
scope: z.ZodOptional<z.ZodString>;
|
|
62
|
+
/** For `shared` artifacts: the exact command the operator can run to remove it. */
|
|
63
|
+
removeHint: z.ZodOptional<z.ZodString>;
|
|
64
|
+
}, "strip", z.ZodTypeAny, {
|
|
65
|
+
type: string;
|
|
66
|
+
kind: "owned" | "shared";
|
|
67
|
+
path?: string | undefined;
|
|
68
|
+
name?: string | undefined;
|
|
69
|
+
scope?: string | undefined;
|
|
70
|
+
removeHint?: string | undefined;
|
|
71
|
+
}, {
|
|
72
|
+
type: string;
|
|
73
|
+
kind: "owned" | "shared";
|
|
74
|
+
path?: string | undefined;
|
|
75
|
+
name?: string | undefined;
|
|
76
|
+
scope?: string | undefined;
|
|
77
|
+
removeHint?: string | undefined;
|
|
78
|
+
}>, "many">>;
|
|
79
|
+
}, "strip", z.ZodTypeAny, {
|
|
80
|
+
artifacts: {
|
|
81
|
+
type: string;
|
|
82
|
+
kind: "owned" | "shared";
|
|
83
|
+
path?: string | undefined;
|
|
84
|
+
name?: string | undefined;
|
|
85
|
+
scope?: string | undefined;
|
|
86
|
+
removeHint?: string | undefined;
|
|
87
|
+
}[];
|
|
88
|
+
}, {
|
|
89
|
+
artifacts?: {
|
|
90
|
+
type: string;
|
|
91
|
+
kind: "owned" | "shared";
|
|
92
|
+
path?: string | undefined;
|
|
93
|
+
name?: string | undefined;
|
|
94
|
+
scope?: string | undefined;
|
|
95
|
+
removeHint?: string | undefined;
|
|
96
|
+
}[] | undefined;
|
|
97
|
+
}>>;
|
|
98
|
+
export type StepCreated = z.infer<typeof stepCreatedSchema>;
|
|
99
|
+
/**
|
|
100
|
+
* Persisted per-step outcome — the `steps` map in `server.json`. A status this
|
|
101
|
+
* version doesn't know (written by a newer cezar) degrades to `failed`, which
|
|
102
|
+
* keeps the record AND keeps it on uninstall's undo path — never to a parse
|
|
103
|
+
* failure that would discard the whole ledger.
|
|
104
|
+
*/
|
|
105
|
+
export declare const stepOutcomeSchema: z.ZodObject<{
|
|
106
|
+
status: z.ZodCatch<z.ZodEnum<["pending", "done", "skipped", "failed"]>>;
|
|
107
|
+
created: z.ZodCatch<z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
108
|
+
artifacts: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
109
|
+
kind: z.ZodEnum<["owned", "shared"]>;
|
|
110
|
+
/** file | package | service | cert | htpasswd | config | note */
|
|
111
|
+
type: z.ZodString;
|
|
112
|
+
/** Filesystem path for `owned` files (vhost, unit, htpasswd). */
|
|
113
|
+
path: z.ZodOptional<z.ZodString>;
|
|
114
|
+
/** Human name: package id, unit name, cert domain, auth user. */
|
|
115
|
+
name: z.ZodOptional<z.ZodString>;
|
|
116
|
+
/** `system` | `user` for services. */
|
|
117
|
+
scope: z.ZodOptional<z.ZodString>;
|
|
118
|
+
/** For `shared` artifacts: the exact command the operator can run to remove it. */
|
|
119
|
+
removeHint: z.ZodOptional<z.ZodString>;
|
|
120
|
+
}, "strip", z.ZodTypeAny, {
|
|
121
|
+
type: string;
|
|
122
|
+
kind: "owned" | "shared";
|
|
123
|
+
path?: string | undefined;
|
|
124
|
+
name?: string | undefined;
|
|
125
|
+
scope?: string | undefined;
|
|
126
|
+
removeHint?: string | undefined;
|
|
127
|
+
}, {
|
|
128
|
+
type: string;
|
|
129
|
+
kind: "owned" | "shared";
|
|
130
|
+
path?: string | undefined;
|
|
131
|
+
name?: string | undefined;
|
|
132
|
+
scope?: string | undefined;
|
|
133
|
+
removeHint?: string | undefined;
|
|
134
|
+
}>, "many">>;
|
|
135
|
+
}, "strip", z.ZodTypeAny, {
|
|
136
|
+
artifacts: {
|
|
137
|
+
type: string;
|
|
138
|
+
kind: "owned" | "shared";
|
|
139
|
+
path?: string | undefined;
|
|
140
|
+
name?: string | undefined;
|
|
141
|
+
scope?: string | undefined;
|
|
142
|
+
removeHint?: string | undefined;
|
|
143
|
+
}[];
|
|
144
|
+
}, {
|
|
145
|
+
artifacts?: {
|
|
146
|
+
type: string;
|
|
147
|
+
kind: "owned" | "shared";
|
|
148
|
+
path?: string | undefined;
|
|
149
|
+
name?: string | undefined;
|
|
150
|
+
scope?: string | undefined;
|
|
151
|
+
removeHint?: string | undefined;
|
|
152
|
+
}[] | undefined;
|
|
153
|
+
}>>>>;
|
|
154
|
+
}, "strip", z.ZodTypeAny, {
|
|
155
|
+
status: "done" | "failed" | "pending" | "skipped";
|
|
156
|
+
created?: {
|
|
157
|
+
artifacts: {
|
|
158
|
+
type: string;
|
|
159
|
+
kind: "owned" | "shared";
|
|
160
|
+
path?: string | undefined;
|
|
161
|
+
name?: string | undefined;
|
|
162
|
+
scope?: string | undefined;
|
|
163
|
+
removeHint?: string | undefined;
|
|
164
|
+
}[];
|
|
165
|
+
} | null | undefined;
|
|
166
|
+
}, {
|
|
167
|
+
status?: unknown;
|
|
168
|
+
created?: unknown;
|
|
169
|
+
}>;
|
|
170
|
+
export type StepOutcome = z.infer<typeof stepOutcomeSchema>;
|
|
171
|
+
/**
|
|
172
|
+
* `~/.cezar/server.json` — host-level, install-once. Additive-safe: every new
|
|
173
|
+
* field is optional / defaulted so an older cezar still parses a newer file
|
|
174
|
+
* (BACKWARD_COMPATIBILITY cross-version-state rule). No secrets live here.
|
|
175
|
+
*/
|
|
176
|
+
export declare const serverStateSchema: z.ZodObject<{
|
|
177
|
+
schema: z.ZodCatch<z.ZodLiteral<1>>;
|
|
178
|
+
/**
|
|
179
|
+
* Free string, not an enum: a `server.json` written by a newer cezar with a
|
|
180
|
+
* platform this version doesn't ship must still parse — the registry lookup
|
|
181
|
+
* is where "unknown platform" is decided, with the ledger intact.
|
|
182
|
+
*/
|
|
183
|
+
platform: z.ZodCatch<z.ZodOptional<z.ZodString>>;
|
|
184
|
+
/** Flips true only when every required step is `done`. */
|
|
185
|
+
installed: z.ZodCatch<z.ZodDefault<z.ZodBoolean>>;
|
|
186
|
+
/** True when this record was written by a CEZ_DRY_RUN preview — a real
|
|
187
|
+
* install/uninstall treats it as no record at all (self-healing). */
|
|
188
|
+
dryRun: z.ZodCatch<z.ZodOptional<z.ZodBoolean>>;
|
|
189
|
+
/** ISO stamp set by the caller (Date.now is unavailable in some contexts). */
|
|
190
|
+
createdAt: z.ZodCatch<z.ZodOptional<z.ZodString>>;
|
|
191
|
+
updatedAt: z.ZodCatch<z.ZodOptional<z.ZodString>>;
|
|
192
|
+
primaryPort: z.ZodCatch<z.ZodDefault<z.ZodNumber>>;
|
|
193
|
+
/** Public URL / identity user surfaced at the end — display only. */
|
|
194
|
+
publicUrl: z.ZodCatch<z.ZodOptional<z.ZodString>>;
|
|
195
|
+
/** macOS+ngrok free tier: the tunnel URL changes across restarts. */
|
|
196
|
+
ephemeral: z.ZodCatch<z.ZodOptional<z.ZodBoolean>>;
|
|
197
|
+
steps: z.ZodCatch<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodCatch<z.ZodObject<{
|
|
198
|
+
status: z.ZodCatch<z.ZodEnum<["pending", "done", "skipped", "failed"]>>;
|
|
199
|
+
created: z.ZodCatch<z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
200
|
+
artifacts: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
201
|
+
kind: z.ZodEnum<["owned", "shared"]>;
|
|
202
|
+
/** file | package | service | cert | htpasswd | config | note */
|
|
203
|
+
type: z.ZodString;
|
|
204
|
+
/** Filesystem path for `owned` files (vhost, unit, htpasswd). */
|
|
205
|
+
path: z.ZodOptional<z.ZodString>;
|
|
206
|
+
/** Human name: package id, unit name, cert domain, auth user. */
|
|
207
|
+
name: z.ZodOptional<z.ZodString>;
|
|
208
|
+
/** `system` | `user` for services. */
|
|
209
|
+
scope: z.ZodOptional<z.ZodString>;
|
|
210
|
+
/** For `shared` artifacts: the exact command the operator can run to remove it. */
|
|
211
|
+
removeHint: z.ZodOptional<z.ZodString>;
|
|
212
|
+
}, "strip", z.ZodTypeAny, {
|
|
213
|
+
type: string;
|
|
214
|
+
kind: "owned" | "shared";
|
|
215
|
+
path?: string | undefined;
|
|
216
|
+
name?: string | undefined;
|
|
217
|
+
scope?: string | undefined;
|
|
218
|
+
removeHint?: string | undefined;
|
|
219
|
+
}, {
|
|
220
|
+
type: string;
|
|
221
|
+
kind: "owned" | "shared";
|
|
222
|
+
path?: string | undefined;
|
|
223
|
+
name?: string | undefined;
|
|
224
|
+
scope?: string | undefined;
|
|
225
|
+
removeHint?: string | undefined;
|
|
226
|
+
}>, "many">>;
|
|
227
|
+
}, "strip", z.ZodTypeAny, {
|
|
228
|
+
artifacts: {
|
|
229
|
+
type: string;
|
|
230
|
+
kind: "owned" | "shared";
|
|
231
|
+
path?: string | undefined;
|
|
232
|
+
name?: string | undefined;
|
|
233
|
+
scope?: string | undefined;
|
|
234
|
+
removeHint?: string | undefined;
|
|
235
|
+
}[];
|
|
236
|
+
}, {
|
|
237
|
+
artifacts?: {
|
|
238
|
+
type: string;
|
|
239
|
+
kind: "owned" | "shared";
|
|
240
|
+
path?: string | undefined;
|
|
241
|
+
name?: string | undefined;
|
|
242
|
+
scope?: string | undefined;
|
|
243
|
+
removeHint?: string | undefined;
|
|
244
|
+
}[] | undefined;
|
|
245
|
+
}>>>>;
|
|
246
|
+
}, "strip", z.ZodTypeAny, {
|
|
247
|
+
status: "done" | "failed" | "pending" | "skipped";
|
|
248
|
+
created?: {
|
|
249
|
+
artifacts: {
|
|
250
|
+
type: string;
|
|
251
|
+
kind: "owned" | "shared";
|
|
252
|
+
path?: string | undefined;
|
|
253
|
+
name?: string | undefined;
|
|
254
|
+
scope?: string | undefined;
|
|
255
|
+
removeHint?: string | undefined;
|
|
256
|
+
}[];
|
|
257
|
+
} | null | undefined;
|
|
258
|
+
}, {
|
|
259
|
+
status?: unknown;
|
|
260
|
+
created?: unknown;
|
|
261
|
+
}>>>>>;
|
|
262
|
+
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
263
|
+
schema: z.ZodCatch<z.ZodLiteral<1>>;
|
|
264
|
+
/**
|
|
265
|
+
* Free string, not an enum: a `server.json` written by a newer cezar with a
|
|
266
|
+
* platform this version doesn't ship must still parse — the registry lookup
|
|
267
|
+
* is where "unknown platform" is decided, with the ledger intact.
|
|
268
|
+
*/
|
|
269
|
+
platform: z.ZodCatch<z.ZodOptional<z.ZodString>>;
|
|
270
|
+
/** Flips true only when every required step is `done`. */
|
|
271
|
+
installed: z.ZodCatch<z.ZodDefault<z.ZodBoolean>>;
|
|
272
|
+
/** True when this record was written by a CEZ_DRY_RUN preview — a real
|
|
273
|
+
* install/uninstall treats it as no record at all (self-healing). */
|
|
274
|
+
dryRun: z.ZodCatch<z.ZodOptional<z.ZodBoolean>>;
|
|
275
|
+
/** ISO stamp set by the caller (Date.now is unavailable in some contexts). */
|
|
276
|
+
createdAt: z.ZodCatch<z.ZodOptional<z.ZodString>>;
|
|
277
|
+
updatedAt: z.ZodCatch<z.ZodOptional<z.ZodString>>;
|
|
278
|
+
primaryPort: z.ZodCatch<z.ZodDefault<z.ZodNumber>>;
|
|
279
|
+
/** Public URL / identity user surfaced at the end — display only. */
|
|
280
|
+
publicUrl: z.ZodCatch<z.ZodOptional<z.ZodString>>;
|
|
281
|
+
/** macOS+ngrok free tier: the tunnel URL changes across restarts. */
|
|
282
|
+
ephemeral: z.ZodCatch<z.ZodOptional<z.ZodBoolean>>;
|
|
283
|
+
steps: z.ZodCatch<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodCatch<z.ZodObject<{
|
|
284
|
+
status: z.ZodCatch<z.ZodEnum<["pending", "done", "skipped", "failed"]>>;
|
|
285
|
+
created: z.ZodCatch<z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
286
|
+
artifacts: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
287
|
+
kind: z.ZodEnum<["owned", "shared"]>;
|
|
288
|
+
/** file | package | service | cert | htpasswd | config | note */
|
|
289
|
+
type: z.ZodString;
|
|
290
|
+
/** Filesystem path for `owned` files (vhost, unit, htpasswd). */
|
|
291
|
+
path: z.ZodOptional<z.ZodString>;
|
|
292
|
+
/** Human name: package id, unit name, cert domain, auth user. */
|
|
293
|
+
name: z.ZodOptional<z.ZodString>;
|
|
294
|
+
/** `system` | `user` for services. */
|
|
295
|
+
scope: z.ZodOptional<z.ZodString>;
|
|
296
|
+
/** For `shared` artifacts: the exact command the operator can run to remove it. */
|
|
297
|
+
removeHint: z.ZodOptional<z.ZodString>;
|
|
298
|
+
}, "strip", z.ZodTypeAny, {
|
|
299
|
+
type: string;
|
|
300
|
+
kind: "owned" | "shared";
|
|
301
|
+
path?: string | undefined;
|
|
302
|
+
name?: string | undefined;
|
|
303
|
+
scope?: string | undefined;
|
|
304
|
+
removeHint?: string | undefined;
|
|
305
|
+
}, {
|
|
306
|
+
type: string;
|
|
307
|
+
kind: "owned" | "shared";
|
|
308
|
+
path?: string | undefined;
|
|
309
|
+
name?: string | undefined;
|
|
310
|
+
scope?: string | undefined;
|
|
311
|
+
removeHint?: string | undefined;
|
|
312
|
+
}>, "many">>;
|
|
313
|
+
}, "strip", z.ZodTypeAny, {
|
|
314
|
+
artifacts: {
|
|
315
|
+
type: string;
|
|
316
|
+
kind: "owned" | "shared";
|
|
317
|
+
path?: string | undefined;
|
|
318
|
+
name?: string | undefined;
|
|
319
|
+
scope?: string | undefined;
|
|
320
|
+
removeHint?: string | undefined;
|
|
321
|
+
}[];
|
|
322
|
+
}, {
|
|
323
|
+
artifacts?: {
|
|
324
|
+
type: string;
|
|
325
|
+
kind: "owned" | "shared";
|
|
326
|
+
path?: string | undefined;
|
|
327
|
+
name?: string | undefined;
|
|
328
|
+
scope?: string | undefined;
|
|
329
|
+
removeHint?: string | undefined;
|
|
330
|
+
}[] | undefined;
|
|
331
|
+
}>>>>;
|
|
332
|
+
}, "strip", z.ZodTypeAny, {
|
|
333
|
+
status: "done" | "failed" | "pending" | "skipped";
|
|
334
|
+
created?: {
|
|
335
|
+
artifacts: {
|
|
336
|
+
type: string;
|
|
337
|
+
kind: "owned" | "shared";
|
|
338
|
+
path?: string | undefined;
|
|
339
|
+
name?: string | undefined;
|
|
340
|
+
scope?: string | undefined;
|
|
341
|
+
removeHint?: string | undefined;
|
|
342
|
+
}[];
|
|
343
|
+
} | null | undefined;
|
|
344
|
+
}, {
|
|
345
|
+
status?: unknown;
|
|
346
|
+
created?: unknown;
|
|
347
|
+
}>>>>>;
|
|
348
|
+
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
349
|
+
schema: z.ZodCatch<z.ZodLiteral<1>>;
|
|
350
|
+
/**
|
|
351
|
+
* Free string, not an enum: a `server.json` written by a newer cezar with a
|
|
352
|
+
* platform this version doesn't ship must still parse — the registry lookup
|
|
353
|
+
* is where "unknown platform" is decided, with the ledger intact.
|
|
354
|
+
*/
|
|
355
|
+
platform: z.ZodCatch<z.ZodOptional<z.ZodString>>;
|
|
356
|
+
/** Flips true only when every required step is `done`. */
|
|
357
|
+
installed: z.ZodCatch<z.ZodDefault<z.ZodBoolean>>;
|
|
358
|
+
/** True when this record was written by a CEZ_DRY_RUN preview — a real
|
|
359
|
+
* install/uninstall treats it as no record at all (self-healing). */
|
|
360
|
+
dryRun: z.ZodCatch<z.ZodOptional<z.ZodBoolean>>;
|
|
361
|
+
/** ISO stamp set by the caller (Date.now is unavailable in some contexts). */
|
|
362
|
+
createdAt: z.ZodCatch<z.ZodOptional<z.ZodString>>;
|
|
363
|
+
updatedAt: z.ZodCatch<z.ZodOptional<z.ZodString>>;
|
|
364
|
+
primaryPort: z.ZodCatch<z.ZodDefault<z.ZodNumber>>;
|
|
365
|
+
/** Public URL / identity user surfaced at the end — display only. */
|
|
366
|
+
publicUrl: z.ZodCatch<z.ZodOptional<z.ZodString>>;
|
|
367
|
+
/** macOS+ngrok free tier: the tunnel URL changes across restarts. */
|
|
368
|
+
ephemeral: z.ZodCatch<z.ZodOptional<z.ZodBoolean>>;
|
|
369
|
+
steps: z.ZodCatch<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodCatch<z.ZodObject<{
|
|
370
|
+
status: z.ZodCatch<z.ZodEnum<["pending", "done", "skipped", "failed"]>>;
|
|
371
|
+
created: z.ZodCatch<z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
372
|
+
artifacts: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
373
|
+
kind: z.ZodEnum<["owned", "shared"]>;
|
|
374
|
+
/** file | package | service | cert | htpasswd | config | note */
|
|
375
|
+
type: z.ZodString;
|
|
376
|
+
/** Filesystem path for `owned` files (vhost, unit, htpasswd). */
|
|
377
|
+
path: z.ZodOptional<z.ZodString>;
|
|
378
|
+
/** Human name: package id, unit name, cert domain, auth user. */
|
|
379
|
+
name: z.ZodOptional<z.ZodString>;
|
|
380
|
+
/** `system` | `user` for services. */
|
|
381
|
+
scope: z.ZodOptional<z.ZodString>;
|
|
382
|
+
/** For `shared` artifacts: the exact command the operator can run to remove it. */
|
|
383
|
+
removeHint: z.ZodOptional<z.ZodString>;
|
|
384
|
+
}, "strip", z.ZodTypeAny, {
|
|
385
|
+
type: string;
|
|
386
|
+
kind: "owned" | "shared";
|
|
387
|
+
path?: string | undefined;
|
|
388
|
+
name?: string | undefined;
|
|
389
|
+
scope?: string | undefined;
|
|
390
|
+
removeHint?: string | undefined;
|
|
391
|
+
}, {
|
|
392
|
+
type: string;
|
|
393
|
+
kind: "owned" | "shared";
|
|
394
|
+
path?: string | undefined;
|
|
395
|
+
name?: string | undefined;
|
|
396
|
+
scope?: string | undefined;
|
|
397
|
+
removeHint?: string | undefined;
|
|
398
|
+
}>, "many">>;
|
|
399
|
+
}, "strip", z.ZodTypeAny, {
|
|
400
|
+
artifacts: {
|
|
401
|
+
type: string;
|
|
402
|
+
kind: "owned" | "shared";
|
|
403
|
+
path?: string | undefined;
|
|
404
|
+
name?: string | undefined;
|
|
405
|
+
scope?: string | undefined;
|
|
406
|
+
removeHint?: string | undefined;
|
|
407
|
+
}[];
|
|
408
|
+
}, {
|
|
409
|
+
artifacts?: {
|
|
410
|
+
type: string;
|
|
411
|
+
kind: "owned" | "shared";
|
|
412
|
+
path?: string | undefined;
|
|
413
|
+
name?: string | undefined;
|
|
414
|
+
scope?: string | undefined;
|
|
415
|
+
removeHint?: string | undefined;
|
|
416
|
+
}[] | undefined;
|
|
417
|
+
}>>>>;
|
|
418
|
+
}, "strip", z.ZodTypeAny, {
|
|
419
|
+
status: "done" | "failed" | "pending" | "skipped";
|
|
420
|
+
created?: {
|
|
421
|
+
artifacts: {
|
|
422
|
+
type: string;
|
|
423
|
+
kind: "owned" | "shared";
|
|
424
|
+
path?: string | undefined;
|
|
425
|
+
name?: string | undefined;
|
|
426
|
+
scope?: string | undefined;
|
|
427
|
+
removeHint?: string | undefined;
|
|
428
|
+
}[];
|
|
429
|
+
} | null | undefined;
|
|
430
|
+
}, {
|
|
431
|
+
status?: unknown;
|
|
432
|
+
created?: unknown;
|
|
433
|
+
}>>>>>;
|
|
434
|
+
}, z.ZodTypeAny, "passthrough">>;
|
|
435
|
+
export type ServerState = z.infer<typeof serverStateSchema>;
|
|
436
|
+
/** Freshly-initialized state (no install yet). */
|
|
437
|
+
export declare function freshServerState(): ServerState;
|
|
438
|
+
/**
|
|
439
|
+
* The interactive surface a step talks to. Implemented by `ui.ts` over
|
|
440
|
+
* `@clack/prompts`; declared here as a pure interface so `types.ts` (and the
|
|
441
|
+
* engine) never import the TUI library. Prompt methods resolve to the
|
|
442
|
+
* `CANCEL` sentinel instead of throwing when the user aborts.
|
|
443
|
+
*/
|
|
444
|
+
export declare const CANCEL: unique symbol;
|
|
445
|
+
export type Cancellable<T> = T | typeof CANCEL;
|
|
446
|
+
export interface SpinnerHandle {
|
|
447
|
+
start(message?: string): void;
|
|
448
|
+
stop(message?: string): void;
|
|
449
|
+
message(message: string): void;
|
|
450
|
+
}
|
|
451
|
+
export interface Ui {
|
|
452
|
+
intro(message: string): void;
|
|
453
|
+
outro(message: string): void;
|
|
454
|
+
note(message: string, title?: string): void;
|
|
455
|
+
/**
|
|
456
|
+
* Plain, un-boxed output — no border/table drawing. Use for shell commands and
|
|
457
|
+
* other content that a `note()` box would mangle when it wraps (long base64
|
|
458
|
+
* file-writes, certbot lines). Renders verbatim so it stays copy-pasteable.
|
|
459
|
+
*/
|
|
460
|
+
message(message: string): void;
|
|
461
|
+
info(message: string): void;
|
|
462
|
+
success(message: string): void;
|
|
463
|
+
warn(message: string): void;
|
|
464
|
+
error(message: string): void;
|
|
465
|
+
select<T>(opts: {
|
|
466
|
+
message: string;
|
|
467
|
+
options: Array<{
|
|
468
|
+
value: T;
|
|
469
|
+
label: string;
|
|
470
|
+
hint?: string;
|
|
471
|
+
}>;
|
|
472
|
+
initialValue?: T;
|
|
473
|
+
}): Promise<Cancellable<T>>;
|
|
474
|
+
multiselect<T>(opts: {
|
|
475
|
+
message: string;
|
|
476
|
+
options: Array<{
|
|
477
|
+
value: T;
|
|
478
|
+
label: string;
|
|
479
|
+
hint?: string;
|
|
480
|
+
}>;
|
|
481
|
+
required?: boolean;
|
|
482
|
+
}): Promise<Cancellable<T[]>>;
|
|
483
|
+
confirm(opts: {
|
|
484
|
+
message: string;
|
|
485
|
+
initialValue?: boolean;
|
|
486
|
+
}): Promise<Cancellable<boolean>>;
|
|
487
|
+
text(opts: {
|
|
488
|
+
message: string;
|
|
489
|
+
placeholder?: string;
|
|
490
|
+
initialValue?: string;
|
|
491
|
+
validate?: (v: string) => string | undefined;
|
|
492
|
+
}): Promise<Cancellable<string>>;
|
|
493
|
+
password(opts: {
|
|
494
|
+
message: string;
|
|
495
|
+
validate?: (v: string) => string | undefined;
|
|
496
|
+
}): Promise<Cancellable<string>>;
|
|
497
|
+
spinner(): SpinnerHandle;
|
|
498
|
+
}
|
|
499
|
+
/** Result of running a command with captured output. */
|
|
500
|
+
export interface CommandResult {
|
|
501
|
+
code: number;
|
|
502
|
+
stdout: string;
|
|
503
|
+
stderr: string;
|
|
504
|
+
}
|
|
505
|
+
/**
|
|
506
|
+
* Command execution seam. The engine supplies a real implementation; tests
|
|
507
|
+
* inject a fake so `sudoStep` / `verifyCommand` are exercised without touching
|
|
508
|
+
* the host. In `CEZ_DRY_RUN`, side-effecting runs are short-circuited by the
|
|
509
|
+
* step helpers, not the runner.
|
|
510
|
+
*/
|
|
511
|
+
export interface Runner {
|
|
512
|
+
/**
|
|
513
|
+
* Capture stdout/stderr; never throws on non-zero exit (returns the code).
|
|
514
|
+
* `opts.input` is written to the child's stdin — use it to pass secrets
|
|
515
|
+
* (passwords, tokens) so they never appear in the process's argv.
|
|
516
|
+
*/
|
|
517
|
+
capture(program: string, args: string[], opts?: {
|
|
518
|
+
input?: string;
|
|
519
|
+
}): Promise<CommandResult>;
|
|
520
|
+
/**
|
|
521
|
+
* Inherit stdio (streams live output). Resolves with the exit code.
|
|
522
|
+
* `opts.input` pipes the child's stdin instead of inheriting it — the
|
|
523
|
+
* secret-passing channel for privileged commands (`cat > file` style), so
|
|
524
|
+
* credentials never ride in argv where `ps` can read them.
|
|
525
|
+
*/
|
|
526
|
+
interactive(program: string, args: string[], opts?: {
|
|
527
|
+
input?: string;
|
|
528
|
+
env?: Record<string, string>;
|
|
529
|
+
}): Promise<number>;
|
|
530
|
+
}
|
|
531
|
+
/** Live install/uninstall context, threaded through every step. */
|
|
532
|
+
export interface InstallContext {
|
|
533
|
+
state: ServerState;
|
|
534
|
+
ui: Ui;
|
|
535
|
+
runner: Runner;
|
|
536
|
+
/** Atomically persist `state` to `~/.cezar/server.json`. */
|
|
537
|
+
save(): Promise<void>;
|
|
538
|
+
/** CEZ_DRY_RUN — no real sudo, package installs, or network. */
|
|
539
|
+
dryRun: boolean;
|
|
540
|
+
/** `--yes`: auto-accept safe defaults; never invents a sudo password. */
|
|
541
|
+
assumeYes: boolean;
|
|
542
|
+
/** Step ids the user asked to force-rerun via `--reconfigure`. */
|
|
543
|
+
reconfigure: ReadonlySet<string>;
|
|
544
|
+
/** Repo root the autostart service should run `cezar serve` in. */
|
|
545
|
+
repoRoot: string;
|
|
546
|
+
/** ISO timestamp for this run (passed in — Date.now guard). */
|
|
547
|
+
now: string;
|
|
548
|
+
/**
|
|
549
|
+
* Choices remembered for the rest of the run so the wizard stops re-asking.
|
|
550
|
+
* `sudoMode` is set the first time the operator answers the sudo-vs-delegate
|
|
551
|
+
* prompt — once they pick "I'll run it myself as root", every later privileged
|
|
552
|
+
* command reuses that choice instead of prompting again.
|
|
553
|
+
*
|
|
554
|
+
* `cockpit` holds the credentials just set, IN MEMORY ONLY (never persisted to
|
|
555
|
+
* `server.json`), so the final verify step can make a real authenticated
|
|
556
|
+
* request through the proxy. Absent on a resume where the proxy step was
|
|
557
|
+
* already done — the verify step then falls back to structural checks.
|
|
558
|
+
*/
|
|
559
|
+
prefs: {
|
|
560
|
+
sudoMode?: 'sudo' | 'delegate';
|
|
561
|
+
cockpit?: {
|
|
562
|
+
user: string;
|
|
563
|
+
password: string;
|
|
564
|
+
};
|
|
565
|
+
};
|
|
566
|
+
}
|
|
567
|
+
export interface InstallStep {
|
|
568
|
+
/** Stable — the key in `server.json`. Never rename once it has landed. */
|
|
569
|
+
id: string;
|
|
570
|
+
title: string;
|
|
571
|
+
/** Optional steps (SSL, autostart) can be skipped without failing install. */
|
|
572
|
+
optional?: boolean;
|
|
573
|
+
/** True ⇒ already satisfied, engine skips (unless `--reconfigure` names it). */
|
|
574
|
+
check(ctx: InstallContext): Promise<boolean>;
|
|
575
|
+
/** Do it, interactively. Return what was created (or null). */
|
|
576
|
+
run(ctx: InstallContext): Promise<StepCreated>;
|
|
577
|
+
/** Reverse it, given back the recorded `created`. */
|
|
578
|
+
undo(ctx: InstallContext, created: StepCreated): Promise<void>;
|
|
579
|
+
}
|
|
580
|
+
export interface PlatformStrategy {
|
|
581
|
+
id: PlatformId;
|
|
582
|
+
label: string;
|
|
583
|
+
/** OS / arch / privilege sanity. Throw `PreflightError` to refuse politely. */
|
|
584
|
+
preflight(ctx: InstallContext): Promise<void>;
|
|
585
|
+
/** Ordered steps for this platform. */
|
|
586
|
+
steps(ctx: InstallContext): InstallStep[];
|
|
587
|
+
/**
|
|
588
|
+
* Reload the running cockpit to pick up a new cezar version (a fresh local
|
|
589
|
+
* build or a newly published `cezar-cli`) — the standardized `server-deploy`
|
|
590
|
+
* entry point. Typically: restart the service + re-verify. Throw `StepAborted`
|
|
591
|
+
* to report a failed deploy.
|
|
592
|
+
*/
|
|
593
|
+
redeploy?(ctx: InstallContext): Promise<void>;
|
|
594
|
+
}
|
|
595
|
+
/** Thrown by `preflight` to stop with a clean, user-facing reason (no stack). */
|
|
596
|
+
export declare class PreflightError extends Error {
|
|
597
|
+
}
|