@pleri/olam-cli 0.1.31 → 0.1.33
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/dist/commands/bootstrap.d.ts.map +1 -1
- package/dist/commands/bootstrap.js +7 -4
- package/dist/commands/bootstrap.js.map +1 -1
- package/dist/image-digests.json +3 -3
- package/dist/index.js +1 -1
- package/host-cp/compose.yaml +41 -0
- package/host-cp/src/server.mjs +70 -0
- package/host-cp/src/upgrade-spawner.mjs +275 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/commands/bootstrap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAKH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAczC,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CACtC;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,mDAAmD;AACnD,wBAAgB,gBAAgB,CAAC,cAAc,GAAE,MAAsB,GAAG,YAAY,CA2BrF;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,WAAW,UAAU;IACzB,6CAA6C;IAC7C,IAAI,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACrC;;;OAGG;IACH,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACtF;;;OAGG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC5E;;;;;OAKG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACnE;AAED,kCAAkC;AAClC,eAAO,MAAM,UAAU,EAAE,UAkBxB,CAAC;AAuCF,MAAM,WAAW,UAAU;IACzB,4DAA4D;IAC5D,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B;AAoBD;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,EAChB,MAAM,GAAE,UAAuB,EAC/B,MAAM,GAAE,UAAgC,GACvC,OAAO,CAAC,mBAAmB,CAAC,CAmB9B;AAkBD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,yFAAyF;IACzF,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,KAAK,mBAAmB,CAAC;CAC/E;AAiBD,wBAAsB,YAAY,CAChC,IAAI,EAAE,aAAa,EACnB,IAAI,GAAE,aAAkB,GACvB,OAAO,CAAC,eAAe,CAAC,
|
|
1
|
+
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/commands/bootstrap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAKH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAczC,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CACtC;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,mDAAmD;AACnD,wBAAgB,gBAAgB,CAAC,cAAc,GAAE,MAAsB,GAAG,YAAY,CA2BrF;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,WAAW,UAAU;IACzB,6CAA6C;IAC7C,IAAI,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACrC;;;OAGG;IACH,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACtF;;;OAGG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC5E;;;;;OAKG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACnE;AAED,kCAAkC;AAClC,eAAO,MAAM,UAAU,EAAE,UAkBxB,CAAC;AAuCF,MAAM,WAAW,UAAU;IACzB,4DAA4D;IAC5D,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B;AAoBD;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,EAChB,MAAM,GAAE,UAAuB,EAC/B,MAAM,GAAE,UAAgC,GACvC,OAAO,CAAC,mBAAmB,CAAC,CAmB9B;AAkBD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,yFAAyF;IACzF,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,KAAK,mBAAmB,CAAC;CAC/E;AAiBD,wBAAsB,YAAY,CAChC,IAAI,EAAE,aAAa,EACnB,IAAI,GAAE,aAAkB,GACvB,OAAO,CAAC,eAAe,CAAC,CAgM1B;AAID,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyBxD"}
|
|
@@ -256,14 +256,17 @@ export async function runBootstrap(opts, deps = {}) {
|
|
|
256
256
|
// - host-cp's compose.yaml says `image: ghcr.io/pleri/olam-host-cp:latest`
|
|
257
257
|
// - AuthContainerController hard-codes DEFAULT_IMAGE = 'olam-auth:local'
|
|
258
258
|
// (the legacy local-build tag; predates the published image)
|
|
259
|
-
// - devbox
|
|
260
|
-
//
|
|
261
|
-
//
|
|
259
|
+
// - devbox: `olam create` runs `docker run olam-devbox:latest` directly
|
|
260
|
+
// (DEFAULT_DEVBOX_IMAGE in packages/core/src/world/devbox-image.ts).
|
|
261
|
+
// Without the bare-name alias, create fails with "no such image" even
|
|
262
|
+
// after bootstrap pulled the digest. PR #281 E2E run 25534306717
|
|
263
|
+
// surfaced this when `--workspace` was finally seeded — the registry-
|
|
264
|
+
// prefixed tag isn't what the runtime looks up.
|
|
262
265
|
// Future cleanup: pick one canonical scheme + migrate consumers.
|
|
263
266
|
const tagPlan = [
|
|
264
267
|
{ name: 'host-cp', from: imageRefs[0].ref, to: `${registry}/olam-host-cp:latest` },
|
|
265
268
|
{ name: 'auth', from: imageRefs[1].ref, to: 'olam-auth:local' },
|
|
266
|
-
{ name: 'devbox', from: imageRefs[2].ref, to:
|
|
269
|
+
{ name: 'devbox', from: imageRefs[2].ref, to: 'olam-devbox:latest' },
|
|
267
270
|
];
|
|
268
271
|
for (const { name, from, to } of tagPlan) {
|
|
269
272
|
const result = await docker.tag(from, to);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/commands/bootstrap.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/commands/bootstrap.ts"],"names":[],"mappings":"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"}
|
package/dist/image-digests.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"auth": "sha256:4e2ea22c5ef026ecf7b10892fbe381384b32e83636962d86d9ab1fc572972f8e",
|
|
3
|
-
"devbox": "sha256:
|
|
4
|
-
"host-cp": "sha256:
|
|
3
|
+
"devbox": "sha256:f41854a5c0cb7f51a28b8b5976bb2ef42fe235cc3a8a2e1858f1e8057960801a",
|
|
4
|
+
"host-cp": "sha256:af21472699b171bca0139d6dbbb65f939930882bb2215c785c38f2b7aeac2dc4",
|
|
5
5
|
"$schema_version": 1,
|
|
6
|
-
"$published_version": "0.1.
|
|
6
|
+
"$published_version": "0.1.33",
|
|
7
7
|
"$registry": "ghcr.io/pleri"
|
|
8
8
|
}
|
package/dist/index.js
CHANGED
|
@@ -13637,7 +13637,7 @@ async function runBootstrap2(opts, deps = {}) {
|
|
|
13637
13637
|
const tagPlan = [
|
|
13638
13638
|
{ name: "host-cp", from: imageRefs[0].ref, to: `${registry}/olam-host-cp:latest` },
|
|
13639
13639
|
{ name: "auth", from: imageRefs[1].ref, to: "olam-auth:local" },
|
|
13640
|
-
{ name: "devbox", from: imageRefs[2].ref, to:
|
|
13640
|
+
{ name: "devbox", from: imageRefs[2].ref, to: "olam-devbox:latest" }
|
|
13641
13641
|
];
|
|
13642
13642
|
for (const { name, from, to } of tagPlan) {
|
|
13643
13643
|
const result = await docker2.tag(from, to);
|
package/host-cp/compose.yaml
CHANGED
|
@@ -79,6 +79,47 @@ services:
|
|
|
79
79
|
# which surfaces in the dashboard as a failed Connect Claude flow.
|
|
80
80
|
OLAM_AUTH_SERVICE_URL: "http://host.docker.internal:9999"
|
|
81
81
|
OLAM_AUTH_SECRET: "${OLAM_AUTH_SECRET:-}"
|
|
82
|
+
# Upgrade-trigger feature: host-cp uses these to construct bind
|
|
83
|
+
# mounts on the spawned upgrader container. The upgrader runs
|
|
84
|
+
# `olam upgrade -y` and needs (a) the operator's ~/.olam state,
|
|
85
|
+
# (b) the docker socket so the CLI can talk to the daemon. Both
|
|
86
|
+
# are HOST-side paths because docker resolves bind sources on
|
|
87
|
+
# the daemon, not inside the requesting container.
|
|
88
|
+
OLAM_HOME_HOST_PATH: "${HOME}/.olam"
|
|
89
|
+
OLAM_DOCKER_SOCK_HOST_PATH: "/var/run/docker.sock"
|
|
90
|
+
# Operator's olam repo path on the host. The upgrader needs this
|
|
91
|
+
# bind-mounted so the CLI's cwd-relative `packages/host-cp/compose.yaml`
|
|
92
|
+
# lookup resolves. Defaults to the `OLAM_REPO_PATH` already used by
|
|
93
|
+
# host-cp for version-detection (mounted at /operator-repo:ro).
|
|
94
|
+
OLAM_REPO_HOST_PATH: "${OLAM_REPO_PATH:-${HOME}/Projects/ein-sof/olam}"
|
|
95
|
+
# Operator's $HOME on the host. Forwarded to the upgrader as HOME
|
|
96
|
+
# so `${HOME}` interpolation in compose.yaml's bind sources
|
|
97
|
+
# resolves to a path the docker daemon can find. Inside the
|
|
98
|
+
# upgrader container HOME defaults to /root, which the daemon
|
|
99
|
+
# rejects when used as a bind source ("path not shared from
|
|
100
|
+
# the host"). Without this the recreate step fails right at the
|
|
101
|
+
# last hop of the upgrade pipeline.
|
|
102
|
+
OLAM_OPERATOR_HOME_HOST_PATH: "${HOME}"
|
|
103
|
+
# GitHub CLI config bind for the upgrader. The CLI runs
|
|
104
|
+
# `gh auth token | docker login ghcr.io ...` before `olam upgrade`
|
|
105
|
+
# so the spawned container can pull GHCR images even though the
|
|
106
|
+
# host's ~/.docker/config.json uses a Keychain credsStore that
|
|
107
|
+
# doesn't follow into a Linux container. The gh config is also
|
|
108
|
+
# mounted into host-cp itself (line 89 below) for `gh pr list` —
|
|
109
|
+
# this is the same path, mounted again for the upgrader.
|
|
110
|
+
OLAM_GH_CONFIG_HOST_PATH: "${HOME}/.config/gh"
|
|
111
|
+
# GitHub token used by the upgrader to `docker login ghcr.io` so it can
|
|
112
|
+
# pull the host-cp / auth / devbox images by digest. Resolved from
|
|
113
|
+
# the operator's `gh auth token` BEFORE compose up (or set explicitly
|
|
114
|
+
# via the GH_TOKEN env var). If unset, the upgrader falls back to
|
|
115
|
+
# `gh auth token` against the mounted ~/.config/gh — which works
|
|
116
|
+
# only on Linux operators (macOS keeps the token in Keychain, not in
|
|
117
|
+
# ~/.config/gh).
|
|
118
|
+
GH_TOKEN: "${GH_TOKEN:-}"
|
|
119
|
+
# Optional override for the upgrader image. Defaults to the
|
|
120
|
+
# currently-running host-cp image (which has the olam CLI +
|
|
121
|
+
# docker CLI + gh CLI baked in by Dockerfile).
|
|
122
|
+
OLAM_UPGRADER_IMAGE: "${OLAM_UPGRADER_IMAGE:-ghcr.io/pleri/olam-host-cp:latest}"
|
|
82
123
|
volumes:
|
|
83
124
|
# ~/.olam/ from operator's home → /data/ inside container. B4
|
|
84
125
|
# writes the startup token here (chmod 600). B6 reads workspaces
|
package/host-cp/src/server.mjs
CHANGED
|
@@ -34,6 +34,7 @@ import { computeProgress } from './world-progress.mjs';
|
|
|
34
34
|
import { createPrCache } from './pr-cache.mjs';
|
|
35
35
|
import { fetchContainerSecret } from './container-secret-fetcher.mjs';
|
|
36
36
|
import { subscribeDockerEvents } from './docker-events.mjs';
|
|
37
|
+
import { spawnUpgraderContainer } from './upgrade-spawner.mjs';
|
|
37
38
|
import { parseProxyPath, perWorldBase, proxyToWorld } from './proxy.mjs';
|
|
38
39
|
import { StartupToken } from './auth.mjs';
|
|
39
40
|
import { SseGate, isSsePath, wireRelease } from './sse-gate.mjs';
|
|
@@ -93,6 +94,19 @@ const TOKEN_PATH = process.env.OLAM_HOST_CP_TOKEN_PATH ?? '/data/host-cp.token';
|
|
|
93
94
|
const AUTH_SERVICE_URL = process.env.OLAM_AUTH_SERVICE_URL ?? `http://${HOST_FOR_WORLD}:9999`;
|
|
94
95
|
const AUTH_SERVICE_SECRET = process.env.OLAM_AUTH_SECRET ?? '';
|
|
95
96
|
const SSE_CAP = parseInt(process.env.OLAM_SSE_MAX_CONCURRENT ?? '50', 10);
|
|
97
|
+
// Upgrade-trigger: host-side paths the upgrader container needs as
|
|
98
|
+
// bind-mount sources. Empty defaults make the endpoint return a clear
|
|
99
|
+
// `not_configured` error instead of asking docker to mount empty paths.
|
|
100
|
+
const OLAM_HOME_HOST_PATH = process.env.OLAM_HOME_HOST_PATH ?? '';
|
|
101
|
+
const OLAM_DOCKER_SOCK_HOST_PATH = process.env.OLAM_DOCKER_SOCK_HOST_PATH ?? '/var/run/docker.sock';
|
|
102
|
+
// Operator's olam repo path on the host. Bound into the upgrader at /workspace
|
|
103
|
+
// so the npm-installed CLI can find packages/host-cp/compose.yaml.
|
|
104
|
+
const OLAM_REPO_HOST_PATH = process.env.OLAM_REPO_HOST_PATH ?? '';
|
|
105
|
+
// gh config bind for the upgrader so it can `gh auth token | docker login ghcr.io ...`.
|
|
106
|
+
// Optional — when empty, the upgrader will fail at the docker-login step
|
|
107
|
+
// with a clear error in `docker logs` rather than silently mis-pulling.
|
|
108
|
+
const OLAM_GH_CONFIG_HOST_PATH = process.env.OLAM_GH_CONFIG_HOST_PATH ?? '';
|
|
109
|
+
const OLAM_UPGRADER_IMAGE = process.env.OLAM_UPGRADER_IMAGE ?? 'ghcr.io/pleri/olam-host-cp:latest';
|
|
96
110
|
const WORKSPACES_DIR = process.env.OLAM_WORKSPACES_DIR ?? '/data/workspaces';
|
|
97
111
|
const WORLD_NAMES_PATH =
|
|
98
112
|
process.env.OLAM_WORLD_NAMES_PATH ??
|
|
@@ -1205,6 +1219,62 @@ const server = http.createServer(async (req, res) => {
|
|
|
1205
1219
|
return;
|
|
1206
1220
|
}
|
|
1207
1221
|
|
|
1222
|
+
// POST /api/admin/upgrade — spawn the olam upgrade pipeline.
|
|
1223
|
+
//
|
|
1224
|
+
// Phase 1 MVP: accepts the click, asks docker to start an ephemeral
|
|
1225
|
+
// upgrader container running `olam upgrade -y`, returns the upgrader's
|
|
1226
|
+
// container id + name. The SPA polls /api/version/status to detect
|
|
1227
|
+
// completion. Phase 2 will add SSE log streaming.
|
|
1228
|
+
//
|
|
1229
|
+
// Failure modes that return non-202:
|
|
1230
|
+
// 400 not_configured — OLAM_HOME_HOST_PATH wasn't set in compose;
|
|
1231
|
+
// we cannot bind-mount operator state into
|
|
1232
|
+
// the upgrader and the CLI would have no
|
|
1233
|
+
// lock file / image-digests / auth context.
|
|
1234
|
+
// 500 spawn_failed — docker daemon (via socket-proxy) rejected
|
|
1235
|
+
// the create or start request. Body carries
|
|
1236
|
+
// the daemon's reason for diagnosis.
|
|
1237
|
+
if (url.pathname === '/api/admin/upgrade' && req.method === 'POST') {
|
|
1238
|
+
if (!auth.isAuthorized(req)) { return res.writeHead(401).end(); }
|
|
1239
|
+
if (!OLAM_HOME_HOST_PATH || !OLAM_REPO_HOST_PATH) {
|
|
1240
|
+
return jsonReply(res, 400, {
|
|
1241
|
+
error: 'not_configured',
|
|
1242
|
+
hint: 'OLAM_HOME_HOST_PATH and OLAM_REPO_HOST_PATH must be set; rebuild host-cp with the latest compose.yaml',
|
|
1243
|
+
missing: [
|
|
1244
|
+
...(OLAM_HOME_HOST_PATH ? [] : ['OLAM_HOME_HOST_PATH']),
|
|
1245
|
+
...(OLAM_REPO_HOST_PATH ? [] : ['OLAM_REPO_HOST_PATH']),
|
|
1246
|
+
],
|
|
1247
|
+
});
|
|
1248
|
+
}
|
|
1249
|
+
spawnUpgraderContainer({
|
|
1250
|
+
dockerHost: DOCKER_HOST,
|
|
1251
|
+
olamHomeHostPath: OLAM_HOME_HOST_PATH,
|
|
1252
|
+
dockerSockHostPath: OLAM_DOCKER_SOCK_HOST_PATH,
|
|
1253
|
+
repoHostPath: OLAM_REPO_HOST_PATH,
|
|
1254
|
+
...(process.env.OLAM_OPERATOR_HOME_HOST_PATH
|
|
1255
|
+
? { operatorHomeHostPath: process.env.OLAM_OPERATOR_HOME_HOST_PATH }
|
|
1256
|
+
: {}),
|
|
1257
|
+
...(OLAM_GH_CONFIG_HOST_PATH ? { ghConfigHostPath: OLAM_GH_CONFIG_HOST_PATH } : {}),
|
|
1258
|
+
...(process.env.GH_TOKEN ? { ghToken: process.env.GH_TOKEN } : {}),
|
|
1259
|
+
image: OLAM_UPGRADER_IMAGE,
|
|
1260
|
+
})
|
|
1261
|
+
.then(({ id, name }) => {
|
|
1262
|
+
jsonReply(res, 202, {
|
|
1263
|
+
status: 'accepted',
|
|
1264
|
+
upgrader: { id, name },
|
|
1265
|
+
hint: 'Upgrade started in a sibling container. Poll /api/version/status to detect completion. host-cp will be recreated mid-flight; expect a brief connection drop.',
|
|
1266
|
+
});
|
|
1267
|
+
})
|
|
1268
|
+
.catch((err) => {
|
|
1269
|
+
console.error(`[upgrade] spawn failed: ${err.message}`);
|
|
1270
|
+
jsonReply(res, 500, {
|
|
1271
|
+
error: 'spawn_failed',
|
|
1272
|
+
message: err.message,
|
|
1273
|
+
});
|
|
1274
|
+
});
|
|
1275
|
+
return;
|
|
1276
|
+
}
|
|
1277
|
+
|
|
1208
1278
|
// POST /api/admin/world-pr — record PR association for a world
|
|
1209
1279
|
if (url.pathname === '/api/admin/world-pr' && req.method === 'POST') {
|
|
1210
1280
|
if (!auth.isAuthorized(req)) { return res.writeHead(401).end(); }
|
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
// Upgrade-trigger: spawn an ephemeral `olam upgrade` runner container.
|
|
2
|
+
//
|
|
3
|
+
// The user clicks "Run upgrade" in the dashboard → host-cp's
|
|
4
|
+
// /api/admin/upgrade endpoint asks the docker daemon (via the
|
|
5
|
+
// socket-proxy sidecar) to create + start a one-off container that
|
|
6
|
+
// runs the olam CLI's full upgrade pipeline against the local stack.
|
|
7
|
+
//
|
|
8
|
+
// Why a separate container (and not a child process inside host-cp)?
|
|
9
|
+
// `olam upgrade` recreates host-cp itself as part of the atomic
|
|
10
|
+
// tag-swap. If the orchestrator lived inside host-cp, the moment it
|
|
11
|
+
// asked docker to stop the old host-cp container the orchestrator
|
|
12
|
+
// would die with it — leaving no one to start the new container.
|
|
13
|
+
// A sibling container survives host-cp's recreate.
|
|
14
|
+
//
|
|
15
|
+
// Why this same image (not a purpose-built `olam-upgrader`)?
|
|
16
|
+
// The host-cp image already has Node, the olam CLI, the docker CLI,
|
|
17
|
+
// and the docker compose plugin baked in by Dockerfile. Reusing it
|
|
18
|
+
// means there's nothing extra to publish, and the upgrader is
|
|
19
|
+
// guaranteed to ship from the same source SHA as the host-cp it
|
|
20
|
+
// replaces. The upgrader's `Cmd` overrides host-cp's default CMD
|
|
21
|
+
// so it runs the CLI instead of starting the server.
|
|
22
|
+
//
|
|
23
|
+
// Security note (single-user-trusted-local-dev assumption):
|
|
24
|
+
// POST /api/admin/upgrade requires the host-cp auth token. Anyone
|
|
25
|
+
// with that token can already spawn arbitrary commands inside
|
|
26
|
+
// running devboxes via the existing exec path; spawning an upgrader
|
|
27
|
+
// container does not meaningfully widen the blast radius for the
|
|
28
|
+
// single-user model. Multi-user / hosted deployments will need a
|
|
29
|
+
// tighter policy (capability bit, user-scoped tokens).
|
|
30
|
+
|
|
31
|
+
import http from 'node:http';
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Default upgrader entrypoint. Authenticates docker against GHCR (where
|
|
35
|
+
* the host-cp / auth / devbox images live), then runs the full
|
|
36
|
+
* atomic-swap pipeline.
|
|
37
|
+
*
|
|
38
|
+
* Auth resolution order:
|
|
39
|
+
* 1. `$GH_TOKEN` env var (set on host-cp via compose; operator
|
|
40
|
+
* typically resolves it from `gh auth token` before `olam host-cp
|
|
41
|
+
* start`). Required path on macOS — the host's `gh` keeps the
|
|
42
|
+
* token in Keychain, which doesn't follow into a Linux container.
|
|
43
|
+
* 2. `gh auth token` against the mounted ~/.config/gh. Works on Linux
|
|
44
|
+
* operators whose gh keeps the token in the config dir directly.
|
|
45
|
+
* 3. No-token (warns). The pull-by-digest step will fail with a clear
|
|
46
|
+
* `unauthorized` error from the daemon and the upgrader exits non-
|
|
47
|
+
* zero — surfacing in `docker logs` for diagnosis.
|
|
48
|
+
*
|
|
49
|
+
* Wrapping the auth + upgrade in a single `sh -c` invocation lets the
|
|
50
|
+
* `docker login` stage feed credentials directly into the docker
|
|
51
|
+
* daemon without leaking the token through shared volumes.
|
|
52
|
+
*/
|
|
53
|
+
const DEFAULT_UPGRADER_CMD = [
|
|
54
|
+
'sh',
|
|
55
|
+
'-c',
|
|
56
|
+
[
|
|
57
|
+
'set -e',
|
|
58
|
+
// Resolve the GH token. Prefer the env var (works on every OS);
|
|
59
|
+
// fall back to `gh auth token` (Linux-only on macOS Keychain hosts).
|
|
60
|
+
'TOKEN="${GH_TOKEN:-$(gh auth token 2>/dev/null || true)}"',
|
|
61
|
+
'if [ -z "$TOKEN" ]; then echo "[upgrader] no GH_TOKEN; ghcr pulls will fail" >&2; fi',
|
|
62
|
+
// Authenticate against ghcr.io. `oauth2` is GitHub's canonical
|
|
63
|
+
// username placeholder for PAT-style tokens.
|
|
64
|
+
'[ -n "$TOKEN" ] && echo "$TOKEN" | docker login ghcr.io -u oauth2 --password-stdin',
|
|
65
|
+
// The CLI resolves `packages/host-cp/compose.yaml` relative to its
|
|
66
|
+
// current working directory (see upgrade.ts:1008-1009). Inside the
|
|
67
|
+
// upgrader the npm-installed package lives at
|
|
68
|
+
// /usr/local/lib/node_modules/@pleri/olam-cli/, so cd there before
|
|
69
|
+
// running so the relative path resolves to the bundled compose
|
|
70
|
+
// file. Without this the recreate step fails with `open
|
|
71
|
+
// /app/packages/host-cp/compose.yaml: no such file or directory`.
|
|
72
|
+
// Operator's olam repo is bind-mounted at /workspace below; cd
|
|
73
|
+
// there so the CLI finds packages/host-cp/compose.yaml. Without
|
|
74
|
+
// this the recreate step fails with `open <cwd>/packages/host-cp/
|
|
75
|
+
// compose.yaml: no such file or directory` because the npm-
|
|
76
|
+
// installed @pleri/olam-cli package does NOT bundle the compose
|
|
77
|
+
// file (it's repo-source only).
|
|
78
|
+
'cd /workspace',
|
|
79
|
+
// Then run the upgrade. The CLI handles pull-by-digest, atomic
|
|
80
|
+
// swap, recreate, and the post-recreate /api/version/status
|
|
81
|
+
// round-trip itself.
|
|
82
|
+
'olam upgrade -y',
|
|
83
|
+
].join(' && '),
|
|
84
|
+
];
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Spawn the upgrader. Resolves with the container ID on a successful
|
|
88
|
+
* `/start`; throws on any failure path so the caller can surface a
|
|
89
|
+
* clean 500 with the daemon's reason.
|
|
90
|
+
*
|
|
91
|
+
* @param {object} args
|
|
92
|
+
* @param {string} args.dockerHost tcp://docker-socket-proxy:2375 or 'docker-cli'
|
|
93
|
+
* @param {string} args.olamHomeHostPath e.g. /Users/ernie/.olam
|
|
94
|
+
* @param {string} args.dockerSockHostPath e.g. /var/run/docker.sock
|
|
95
|
+
* @param {string} args.image upgrader image (defaults to host-cp's own image)
|
|
96
|
+
* @param {string} [args.ghConfigHostPath] operator's ~/.config/gh; bind-mounted ro for
|
|
97
|
+
* `gh auth token` to work inside the upgrader
|
|
98
|
+
* (Linux fallback only; macOS uses GH_TOKEN env)
|
|
99
|
+
* @param {string} [args.ghToken] pre-resolved GH token (typically read from
|
|
100
|
+
* host-cp's GH_TOKEN env via compose). Passed
|
|
101
|
+
* to the upgrader as $GH_TOKEN so `docker login
|
|
102
|
+
* ghcr.io` works on macOS hosts whose Keychain-
|
|
103
|
+
* backed gh config can't be read inside a Linux
|
|
104
|
+
* container.
|
|
105
|
+
* @param {string} [args.repoHostPath] operator's olam repo path on the host. Bind-
|
|
106
|
+
* mounted into the upgrader at /workspace so
|
|
107
|
+
* the CLI's cwd-relative compose-file lookup
|
|
108
|
+
* resolves (the npm package doesn't bundle
|
|
109
|
+
* packages/host-cp/compose.yaml).
|
|
110
|
+
* @param {string} [args.operatorHomeHostPath] operator's $HOME on the host. Passed as the
|
|
111
|
+
* upgrader's HOME env so docker-compose's
|
|
112
|
+
* `${HOME}` interpolation in bind sources
|
|
113
|
+
* resolves to a daemon-visible path.
|
|
114
|
+
* @param {ReadonlyArray<string>} [args.cmd] override the upgrade command for tests
|
|
115
|
+
* @param {(host: string, init: object) => Promise<Response>} [args.fetchImpl]
|
|
116
|
+
* @param {(message: string) => void} [args.log]
|
|
117
|
+
* @returns {Promise<{ id: string, name: string }>}
|
|
118
|
+
*/
|
|
119
|
+
export async function spawnUpgraderContainer({
|
|
120
|
+
dockerHost,
|
|
121
|
+
olamHomeHostPath,
|
|
122
|
+
dockerSockHostPath,
|
|
123
|
+
image,
|
|
124
|
+
ghConfigHostPath,
|
|
125
|
+
ghToken,
|
|
126
|
+
repoHostPath,
|
|
127
|
+
operatorHomeHostPath,
|
|
128
|
+
cmd = DEFAULT_UPGRADER_CMD,
|
|
129
|
+
fetchImpl = globalThis.fetch,
|
|
130
|
+
log = console.log,
|
|
131
|
+
}) {
|
|
132
|
+
if (!olamHomeHostPath) {
|
|
133
|
+
throw new Error('OLAM_HOME_HOST_PATH not set; cannot bind-mount operator state');
|
|
134
|
+
}
|
|
135
|
+
if (!dockerSockHostPath) {
|
|
136
|
+
throw new Error('OLAM_DOCKER_SOCK_HOST_PATH not set; upgrader cannot reach docker daemon');
|
|
137
|
+
}
|
|
138
|
+
if (!image) {
|
|
139
|
+
throw new Error('upgrader image not configured (OLAM_UPGRADER_IMAGE)');
|
|
140
|
+
}
|
|
141
|
+
if (!repoHostPath) {
|
|
142
|
+
throw new Error(
|
|
143
|
+
'OLAM_REPO_HOST_PATH not set; upgrader cannot find packages/host-cp/compose.yaml',
|
|
144
|
+
);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
// Bare-node (operator's host docker CLI on PATH) is documented but
|
|
148
|
+
// out of scope for the trigger feature — single deployment shape
|
|
149
|
+
// (compose stack) is supported in Phase 1.
|
|
150
|
+
if (dockerHost === 'docker-cli') {
|
|
151
|
+
// The literal `docker-socket-proxy` below is diagnostic text naming
|
|
152
|
+
// the deployment shape that IS supported, not a hostname.
|
|
153
|
+
throw new Error(
|
|
154
|
+
'upgrade-trigger requires the docker-socket-proxy deployment shape; bare-node not yet supported', // bare-node-allow: diagnostic-text
|
|
155
|
+
);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
const apiBase = dockerHost.replace(/^tcp:\/\//, 'http://');
|
|
159
|
+
const containerName = `olam-upgrader-${Date.now()}`;
|
|
160
|
+
|
|
161
|
+
// Container create body. AutoRemove cleans up on exit so we don't
|
|
162
|
+
// accumulate stopped upgrader carcasses; HostConfig.Binds gives the
|
|
163
|
+
// CLI everything it needs (operator state + docker socket).
|
|
164
|
+
const createBody = {
|
|
165
|
+
Image: image,
|
|
166
|
+
Cmd: [...cmd],
|
|
167
|
+
Entrypoint: [], // override host-cp's tini entrypoint; olam CLI is self-contained
|
|
168
|
+
Env: [
|
|
169
|
+
// HOME serves two roles:
|
|
170
|
+
// - The CLI uses HOME to resolve ~/.olam (we bind-mount the
|
|
171
|
+
// operator's ~/.olam into the upgrader so the CLI sees its
|
|
172
|
+
// state).
|
|
173
|
+
// - docker-compose interpolates `${HOME}` in bind sources of
|
|
174
|
+
// compose.yaml. The daemon resolves those bind sources on
|
|
175
|
+
// the HOST filesystem, so HOME must be a path the daemon
|
|
176
|
+
// can find (typically the operator's host $HOME).
|
|
177
|
+
//
|
|
178
|
+
// Default to /root for back-compat with tests that don't pass
|
|
179
|
+
// the operator host path; production callers (server.mjs) pass
|
|
180
|
+
// operatorHomeHostPath through.
|
|
181
|
+
`HOME=${operatorHomeHostPath ?? '/root'}`,
|
|
182
|
+
// Non-interactive mode + auto-yes are belt-and-braces: -y flag is
|
|
183
|
+
// also passed in Cmd, but env is the canonical way to opt out of
|
|
184
|
+
// tty prompts when stdin is closed.
|
|
185
|
+
'OLAM_NON_INTERACTIVE=1',
|
|
186
|
+
'CI=1',
|
|
187
|
+
// GH token forwarded for the docker-login-to-ghcr step. Only
|
|
188
|
+
// included when host-cp received it (compose set GH_TOKEN); the
|
|
189
|
+
// wrapper's auth fallback handles the unset case explicitly.
|
|
190
|
+
...(ghToken ? [`GH_TOKEN=${ghToken}`] : []),
|
|
191
|
+
],
|
|
192
|
+
HostConfig: {
|
|
193
|
+
AutoRemove: true,
|
|
194
|
+
// Bind sources are resolved by the docker daemon on the HOST
|
|
195
|
+
// filesystem, so target paths must match the host's view too —
|
|
196
|
+
// when the upgrader's `docker compose up` recreates host-cp,
|
|
197
|
+
// compose's ${HOME} interpolation pulls operatorHomeHostPath
|
|
198
|
+
// (set as HOME below). We keep the source==target convention
|
|
199
|
+
// for ~/.olam so the path is identical inside and out.
|
|
200
|
+
Binds: [
|
|
201
|
+
`${olamHomeHostPath}:${operatorHomeHostPath ? `${operatorHomeHostPath}/.olam` : '/root/.olam'}`,
|
|
202
|
+
`${dockerSockHostPath}:/var/run/docker.sock`,
|
|
203
|
+
// Operator's repo bind-mounted read-only at /workspace. The
|
|
204
|
+
// wrapper cds here so the CLI's relative compose-file lookup
|
|
205
|
+
// resolves to `<repo>/packages/host-cp/compose.yaml`.
|
|
206
|
+
`${repoHostPath}:/workspace:ro`,
|
|
207
|
+
// Optional gh config bind. When unset (operator skipped
|
|
208
|
+
// `gh auth login`) the upgrader's `gh auth token` step fails
|
|
209
|
+
// and the wrapper exits early — surface the failure via
|
|
210
|
+
// `docker logs` rather than spawning a doomed run.
|
|
211
|
+
...(ghConfigHostPath
|
|
212
|
+
? [`${ghConfigHostPath}:${operatorHomeHostPath ? `${operatorHomeHostPath}/.config/gh` : '/root/.config/gh'}:ro`]
|
|
213
|
+
: []),
|
|
214
|
+
],
|
|
215
|
+
// Same network as host-cp so the upgrader can reach the
|
|
216
|
+
// docker-socket-proxy + auth-service if it needs to during the
|
|
217
|
+
// verification phase. Falls through to docker.sock for daemon
|
|
218
|
+
// operations.
|
|
219
|
+
NetworkMode: 'olam-host-cp-internal',
|
|
220
|
+
},
|
|
221
|
+
Labels: {
|
|
222
|
+
'olam.role': 'upgrader',
|
|
223
|
+
'olam.spawned-by': 'host-cp',
|
|
224
|
+
'olam.spawned-at': new Date().toISOString(),
|
|
225
|
+
},
|
|
226
|
+
};
|
|
227
|
+
|
|
228
|
+
log(`[upgrade] creating upgrader container ${containerName} from ${image}`);
|
|
229
|
+
const createUrl = `${apiBase}/containers/create?name=${encodeURIComponent(containerName)}`;
|
|
230
|
+
const createRes = await fetchImpl(createUrl, {
|
|
231
|
+
method: 'POST',
|
|
232
|
+
headers: { 'Content-Type': 'application/json' },
|
|
233
|
+
body: JSON.stringify(createBody),
|
|
234
|
+
});
|
|
235
|
+
if (!createRes.ok) {
|
|
236
|
+
const detail = await safeReadBody(createRes);
|
|
237
|
+
throw new Error(
|
|
238
|
+
`daemon rejected POST /containers/create: ${createRes.status} ${createRes.statusText} ${detail}`.trim(),
|
|
239
|
+
);
|
|
240
|
+
}
|
|
241
|
+
const created = await createRes.json();
|
|
242
|
+
const containerId = created.Id;
|
|
243
|
+
if (!containerId) {
|
|
244
|
+
throw new Error(`POST /containers/create returned no Id: ${JSON.stringify(created)}`);
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
log(`[upgrade] starting upgrader ${containerId.slice(0, 12)}`);
|
|
248
|
+
const startUrl = `${apiBase}/containers/${encodeURIComponent(containerId)}/start`;
|
|
249
|
+
const startRes = await fetchImpl(startUrl, { method: 'POST' });
|
|
250
|
+
if (!startRes.ok && startRes.status !== 304) {
|
|
251
|
+
// 304 Not Modified = already started; treat as success.
|
|
252
|
+
const detail = await safeReadBody(startRes);
|
|
253
|
+
throw new Error(
|
|
254
|
+
`daemon rejected POST /containers/${containerId}/start: ${startRes.status} ${detail}`.trim(),
|
|
255
|
+
);
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
return { id: containerId, name: containerName };
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
/**
|
|
262
|
+
* Read the response body without crashing if it isn't JSON or is empty.
|
|
263
|
+
* Used for human-readable error surfaces in 500 responses.
|
|
264
|
+
*
|
|
265
|
+
* @param {Response} res
|
|
266
|
+
* @returns {Promise<string>}
|
|
267
|
+
*/
|
|
268
|
+
async function safeReadBody(res) {
|
|
269
|
+
try {
|
|
270
|
+
const txt = await res.text();
|
|
271
|
+
return txt.trim().slice(0, 512);
|
|
272
|
+
} catch {
|
|
273
|
+
return '';
|
|
274
|
+
}
|
|
275
|
+
}
|