@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,314 @@
|
|
|
1
|
+
import { existsSync, readdirSync } from 'node:fs';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import { cezarHomeDir } from '../paths.js';
|
|
4
|
+
import { acquireLock, isResolved, loadServerState, saveServerState } from './state.js';
|
|
5
|
+
import { StepAborted, StepCancelled, StepSkipped, defaultRunner } from './steps.js';
|
|
6
|
+
import { createAutoUi, createClackUi } from './ui.js';
|
|
7
|
+
import { CANCEL, PreflightError, } from './types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Record a step outcome WITHOUT losing the artifact ledger: `server.json`
|
|
10
|
+
* exists so uninstall can reverse what was created, so a re-run that is
|
|
11
|
+
* cancelled/skipped/failed must keep the artifacts recorded by the previous
|
|
12
|
+
* successful run. Only a successful `run()` (which re-creates or supersedes
|
|
13
|
+
* them) may replace `created`.
|
|
14
|
+
*/
|
|
15
|
+
function recordOutcome(state, id, status) {
|
|
16
|
+
state.steps[id] = { status, created: state.steps[id]?.created ?? null };
|
|
17
|
+
}
|
|
18
|
+
/** An outcome uninstall must reverse: completed, failed mid-run, or anything
|
|
19
|
+
* that still has recorded artifacts (e.g. a done step later downgraded). */
|
|
20
|
+
function needsUndo(outcome) {
|
|
21
|
+
if (!outcome)
|
|
22
|
+
return false;
|
|
23
|
+
if (outcome.status === 'done' || outcome.status === 'failed')
|
|
24
|
+
return true;
|
|
25
|
+
return (outcome.created?.artifacts.length ?? 0) > 0;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* A `CEZ_DRY_RUN` preview persists a full ledger with no real side effects
|
|
29
|
+
* (the packaged e2e round-trip depends on that). Two invariants keep previews
|
|
30
|
+
* from destroying real state:
|
|
31
|
+
*
|
|
32
|
+
* 1. A dry-run NEVER persists over a REAL record — the preview mutates its
|
|
33
|
+
* in-memory copy only, so a preview on an installed host can't stamp
|
|
34
|
+
* `dryRun: true` onto (or delete steps from) the genuine ledger.
|
|
35
|
+
* 2. A REAL run never resumes from a preview record — steps would all report
|
|
36
|
+
* "already done" while nothing is installed. It self-heals by resetting.
|
|
37
|
+
*/
|
|
38
|
+
function reconcileDryRun(state, opts, ui) {
|
|
39
|
+
const realRecord = !state.dryRun && (state.installed || Object.keys(state.steps).length > 0);
|
|
40
|
+
if (opts.dryRun && realRecord) {
|
|
41
|
+
ui.info('DRY RUN over a real install record — previewing only, nothing will be saved to server.json.');
|
|
42
|
+
return { persist: false };
|
|
43
|
+
}
|
|
44
|
+
if (!opts.dryRun && state.dryRun) {
|
|
45
|
+
ui.info('The recorded state came from a CEZ_DRY_RUN preview — starting from a clean slate.');
|
|
46
|
+
state.steps = {};
|
|
47
|
+
state.installed = false;
|
|
48
|
+
state.platform = undefined;
|
|
49
|
+
state.publicUrl = undefined;
|
|
50
|
+
state.ephemeral = undefined;
|
|
51
|
+
}
|
|
52
|
+
if (opts.dryRun)
|
|
53
|
+
state.dryRun = true;
|
|
54
|
+
else
|
|
55
|
+
delete state.dryRun;
|
|
56
|
+
return { persist: true };
|
|
57
|
+
}
|
|
58
|
+
function buildContext(state, opts) {
|
|
59
|
+
// Real `--yes` runs fail closed on prompts they cannot answer; dry-run
|
|
60
|
+
// previews stay lenient so they can walk every step.
|
|
61
|
+
const ui = opts.ui ??
|
|
62
|
+
(opts.dryRun || opts.assumeYes
|
|
63
|
+
? createAutoUi({}, (m) => console.log(m), { strictValidate: !opts.dryRun })
|
|
64
|
+
: createClackUi());
|
|
65
|
+
const ctx = {
|
|
66
|
+
state,
|
|
67
|
+
ui,
|
|
68
|
+
runner: opts.runner ?? defaultRunner,
|
|
69
|
+
save: async () => saveServerState(state),
|
|
70
|
+
dryRun: opts.dryRun,
|
|
71
|
+
assumeYes: opts.assumeYes,
|
|
72
|
+
reconfigure: opts.reconfigure,
|
|
73
|
+
repoRoot: opts.repoRoot,
|
|
74
|
+
now: opts.now,
|
|
75
|
+
prefs: {},
|
|
76
|
+
};
|
|
77
|
+
const { persist } = reconcileDryRun(state, opts, ui);
|
|
78
|
+
if (!persist)
|
|
79
|
+
ctx.save = async () => { };
|
|
80
|
+
return ctx;
|
|
81
|
+
}
|
|
82
|
+
export async function runInstall(strategy, opts) {
|
|
83
|
+
const release = acquireLock();
|
|
84
|
+
try {
|
|
85
|
+
const state = loadServerState();
|
|
86
|
+
// buildContext reconciles dry-run records first, so a preview of platform A
|
|
87
|
+
// never blocks a real install of platform B (the reset clears `platform`).
|
|
88
|
+
const ctx = buildContext(state, opts);
|
|
89
|
+
if (state.platform && state.platform !== strategy.id) {
|
|
90
|
+
throw new PreflightError(`this host already has a ${state.platform} install recorded — run \`server-uninstall\` first to switch platforms`);
|
|
91
|
+
}
|
|
92
|
+
state.platform = strategy.id;
|
|
93
|
+
state.createdAt ??= opts.now;
|
|
94
|
+
state.updatedAt = opts.now;
|
|
95
|
+
await strategy.preflight(ctx); // throws PreflightError to refuse politely
|
|
96
|
+
const steps = strategy.steps(ctx);
|
|
97
|
+
const knownIds = new Set(steps.map((s) => s.id));
|
|
98
|
+
const unknownIds = [...opts.reconfigure].filter((id) => !knownIds.has(id));
|
|
99
|
+
if (unknownIds.length > 0) {
|
|
100
|
+
throw new PreflightError(`unknown --reconfigure step id(s): ${unknownIds.join(', ')} — ` +
|
|
101
|
+
`valid ids for ${strategy.id}: ${[...knownIds].join(', ')}`);
|
|
102
|
+
}
|
|
103
|
+
if (opts.reinstall) {
|
|
104
|
+
ctx.ui.info(`Reinstalling ${strategy.label} — every step will re-run.`);
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
const resolvedCount = steps.filter((s) => isResolved(state.steps[s.id])).length;
|
|
108
|
+
if (resolvedCount > 0) {
|
|
109
|
+
ctx.ui.info(`Resuming ${strategy.label} — ${resolvedCount}/${steps.length} steps already done.`);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
for (const step of steps) {
|
|
113
|
+
// `--reinstall` forces every step; `--reconfigure` forces the named ones.
|
|
114
|
+
const forced = opts.reinstall === true || opts.reconfigure.has(step.id);
|
|
115
|
+
if (!forced && isResolved(state.steps[step.id])) {
|
|
116
|
+
ctx.ui.info(`= ${step.title} (already done)`);
|
|
117
|
+
continue;
|
|
118
|
+
}
|
|
119
|
+
// Already satisfied on the box (fresh install, nothing recorded yet)?
|
|
120
|
+
if (!forced && (await step.check(ctx))) {
|
|
121
|
+
state.steps[step.id] = { status: 'done', created: state.steps[step.id]?.created ?? null };
|
|
122
|
+
await ctx.save();
|
|
123
|
+
ctx.ui.info(`= ${step.title} (already present)`);
|
|
124
|
+
continue;
|
|
125
|
+
}
|
|
126
|
+
if (step.optional) {
|
|
127
|
+
// `--yes` = accept safe defaults, and the safe default for an optional
|
|
128
|
+
// step (SSL against a real domain, autostart) is to SKIP it — never run
|
|
129
|
+
// it non-interactively against placeholder input.
|
|
130
|
+
if (ctx.assumeYes) {
|
|
131
|
+
recordOutcome(state, step.id, 'skipped');
|
|
132
|
+
await ctx.save();
|
|
133
|
+
ctx.ui.info(`— ${step.title} (skipped: --yes)`);
|
|
134
|
+
continue;
|
|
135
|
+
}
|
|
136
|
+
const proceed = await ctx.ui.confirm({ message: `Set up ${step.title}?`, initialValue: true });
|
|
137
|
+
if (proceed === CANCEL) {
|
|
138
|
+
recordOutcome(state, step.id, 'pending');
|
|
139
|
+
await ctx.save();
|
|
140
|
+
ctx.ui.warn(`Cancelled at "${step.title}". Progress saved — re-run to resume.`);
|
|
141
|
+
return { status: 'cancelled', state };
|
|
142
|
+
}
|
|
143
|
+
if (proceed !== true) {
|
|
144
|
+
recordOutcome(state, step.id, 'skipped');
|
|
145
|
+
await ctx.save();
|
|
146
|
+
ctx.ui.info(`— ${step.title} (skipped)`);
|
|
147
|
+
continue;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
try {
|
|
151
|
+
const created = await step.run(ctx);
|
|
152
|
+
state.steps[step.id] = { status: 'done', created };
|
|
153
|
+
state.updatedAt = opts.now;
|
|
154
|
+
await ctx.save();
|
|
155
|
+
}
|
|
156
|
+
catch (err) {
|
|
157
|
+
if (err instanceof StepSkipped) {
|
|
158
|
+
recordOutcome(state, step.id, 'skipped');
|
|
159
|
+
await ctx.save();
|
|
160
|
+
ctx.ui.info(`— ${step.title} (skipped: ${err.message})`);
|
|
161
|
+
continue;
|
|
162
|
+
}
|
|
163
|
+
if (err instanceof StepCancelled) {
|
|
164
|
+
recordOutcome(state, step.id, 'pending');
|
|
165
|
+
await ctx.save();
|
|
166
|
+
ctx.ui.warn(`Cancelled at "${step.title}". Progress saved — re-run to resume.`);
|
|
167
|
+
return { status: 'cancelled', state };
|
|
168
|
+
}
|
|
169
|
+
if (err instanceof StepAborted) {
|
|
170
|
+
recordOutcome(state, step.id, 'failed');
|
|
171
|
+
await ctx.save();
|
|
172
|
+
ctx.ui.error(`Stopped at "${step.title}": ${err.message}`);
|
|
173
|
+
return { status: 'failed', state };
|
|
174
|
+
}
|
|
175
|
+
recordOutcome(state, step.id, 'failed');
|
|
176
|
+
await ctx.save();
|
|
177
|
+
throw err;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
const requiredAllDone = steps
|
|
181
|
+
.filter((s) => !s.optional)
|
|
182
|
+
.every((s) => state.steps[s.id]?.status === 'done');
|
|
183
|
+
state.installed = requiredAllDone;
|
|
184
|
+
state.updatedAt = opts.now;
|
|
185
|
+
await ctx.save();
|
|
186
|
+
return { status: 'complete', state };
|
|
187
|
+
}
|
|
188
|
+
finally {
|
|
189
|
+
release();
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
export async function runUninstall(strategy, opts) {
|
|
193
|
+
const release = acquireLock();
|
|
194
|
+
try {
|
|
195
|
+
const state = loadServerState();
|
|
196
|
+
const ctx = buildContext(state, opts);
|
|
197
|
+
// Same guard as install/deploy: undoing with the wrong strategy would skip
|
|
198
|
+
// the real artifacts and (before this guard existed) destroy their ledger.
|
|
199
|
+
if (state.platform && state.platform !== strategy.id) {
|
|
200
|
+
throw new PreflightError(`this host has a ${state.platform} install recorded — run \`server-uninstall --platform ${state.platform}\``);
|
|
201
|
+
}
|
|
202
|
+
if (liveInstancesExist()) {
|
|
203
|
+
ctx.ui.warn('Other cezar instances are registered under ~/.cezar/instances/.');
|
|
204
|
+
const proceed = await ctx.ui.confirm({
|
|
205
|
+
message: 'Removing the shared proxy/service will break them. Continue?',
|
|
206
|
+
initialValue: false,
|
|
207
|
+
});
|
|
208
|
+
if (proceed !== true)
|
|
209
|
+
return { status: 'cancelled', state };
|
|
210
|
+
}
|
|
211
|
+
// Reverse order: undo the last-created first. `failed` outcomes are undone
|
|
212
|
+
// too — the step may have created artifacts before failing, and every undo
|
|
213
|
+
// is written to work from constants with a null/partial `created`.
|
|
214
|
+
const steps = [...strategy.steps(ctx)].reverse();
|
|
215
|
+
for (const step of steps) {
|
|
216
|
+
const outcome = state.steps[step.id];
|
|
217
|
+
if (!needsUndo(outcome))
|
|
218
|
+
continue;
|
|
219
|
+
try {
|
|
220
|
+
await step.undo(ctx, outcome.created ?? null);
|
|
221
|
+
delete state.steps[step.id];
|
|
222
|
+
state.updatedAt = opts.now;
|
|
223
|
+
await ctx.save();
|
|
224
|
+
}
|
|
225
|
+
catch (err) {
|
|
226
|
+
if (err instanceof StepCancelled) {
|
|
227
|
+
ctx.ui.warn(`Cancelled during uninstall at "${step.title}". Re-run to continue.`);
|
|
228
|
+
return { status: 'cancelled', state };
|
|
229
|
+
}
|
|
230
|
+
ctx.ui.error(`Failed to reverse "${step.title}": ${err instanceof Error ? err.message : String(err)}`);
|
|
231
|
+
return { status: 'failed', state };
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
// Drop entries that never had a system effect; anything left was recorded
|
|
235
|
+
// by a step id this binary doesn't know (a newer cezar) and was NOT
|
|
236
|
+
// reversed — keep its ledger and say so instead of silently erasing it.
|
|
237
|
+
for (const id of Object.keys(state.steps)) {
|
|
238
|
+
if (!needsUndo(state.steps[id]))
|
|
239
|
+
delete state.steps[id];
|
|
240
|
+
}
|
|
241
|
+
const leftover = Object.keys(state.steps);
|
|
242
|
+
state.installed = false;
|
|
243
|
+
state.updatedAt = opts.now;
|
|
244
|
+
if (leftover.length > 0) {
|
|
245
|
+
ctx.ui.warn(`Not reversed (recorded by a different cezar version): ${leftover.join(', ')}. ` +
|
|
246
|
+
'Their record is kept — re-run server-uninstall with the cezar version that installed them.');
|
|
247
|
+
await ctx.save();
|
|
248
|
+
return { status: 'failed', state };
|
|
249
|
+
}
|
|
250
|
+
// A completed uninstall leaves the record empty so the host can be
|
|
251
|
+
// re-installed with any platform (the install guard keys off `platform`,
|
|
252
|
+
// so it must be cleared here too).
|
|
253
|
+
state.platform = undefined;
|
|
254
|
+
state.publicUrl = undefined;
|
|
255
|
+
state.ephemeral = undefined;
|
|
256
|
+
await ctx.save();
|
|
257
|
+
return { status: 'complete', state };
|
|
258
|
+
}
|
|
259
|
+
finally {
|
|
260
|
+
release();
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* Reload the running cockpit to pick up a new cezar version — the standardized
|
|
265
|
+
* `server-deploy` flow. Delegates to the platform's `redeploy` (restart service
|
|
266
|
+
* + re-verify); holds the single-writer lock for the whole run.
|
|
267
|
+
*/
|
|
268
|
+
export async function runDeploy(strategy, opts) {
|
|
269
|
+
const release = acquireLock();
|
|
270
|
+
try {
|
|
271
|
+
const state = loadServerState();
|
|
272
|
+
const ctx = buildContext(state, opts);
|
|
273
|
+
if (state.platform && state.platform !== strategy.id) {
|
|
274
|
+
throw new PreflightError(`this host has a ${state.platform} install recorded — deploy it with --platform ${state.platform}`);
|
|
275
|
+
}
|
|
276
|
+
if (!state.installed) {
|
|
277
|
+
ctx.ui.warn(`no completed ${strategy.label} install is recorded on this host — run \`server-install --platform ${strategy.id}\` first.`);
|
|
278
|
+
return { status: 'failed', state };
|
|
279
|
+
}
|
|
280
|
+
if (!strategy.redeploy) {
|
|
281
|
+
ctx.ui.warn(`${strategy.label} does not support server-deploy.`);
|
|
282
|
+
return { status: 'failed', state };
|
|
283
|
+
}
|
|
284
|
+
try {
|
|
285
|
+
await strategy.redeploy(ctx);
|
|
286
|
+
}
|
|
287
|
+
catch (err) {
|
|
288
|
+
if (err instanceof StepAborted || err instanceof StepCancelled) {
|
|
289
|
+
ctx.ui.error(`Deploy did not complete: ${err.message}`);
|
|
290
|
+
return { status: 'failed', state };
|
|
291
|
+
}
|
|
292
|
+
throw err;
|
|
293
|
+
}
|
|
294
|
+
state.updatedAt = opts.now;
|
|
295
|
+
await ctx.save();
|
|
296
|
+
return { status: 'complete', state };
|
|
297
|
+
}
|
|
298
|
+
finally {
|
|
299
|
+
release();
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
/** True when at least one repo instance is registered (multi-project registry). */
|
|
303
|
+
function liveInstancesExist() {
|
|
304
|
+
const dir = join(cezarHomeDir(), 'instances');
|
|
305
|
+
if (!existsSync(dir))
|
|
306
|
+
return false;
|
|
307
|
+
try {
|
|
308
|
+
return readdirSync(dir).some((f) => f.endsWith('.json'));
|
|
309
|
+
}
|
|
310
|
+
catch {
|
|
311
|
+
return false;
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
//# sourceMappingURL=engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/server-install/engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type PlatformStrategy } from '../types.js';
|
|
2
|
+
/** launchd agent that keeps an authenticated ngrok tunnel to the local cockpit up. */
|
|
3
|
+
export declare function launchdPlist(port: number, basicAuth: string, domain?: string, ngrokBin?: string): string;
|
|
4
|
+
/** launchd agent that keeps the cezar cockpit running on the given port. */
|
|
5
|
+
export declare function cezarLaunchdPlist(repoRoot: string, port: number, argv: string[]): string;
|
|
6
|
+
export declare const macosxNgrok: PlatformStrategy;
|