@pleri/olam-cli 0.1.142 → 0.1.144

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.
@@ -1 +1 @@
1
- {"version":3,"file":"kg-build.d.ts","sourceRoot":"","sources":["../../src/commands/kg-build.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmBzC,UAAU,cAAc;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,UAAU,eAAe;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC;CACrC;AAOD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,eAAe,CAAC;IACrC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAqCD;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,aAAa,CAAC,CAiFxB;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuBjD"}
1
+ {"version":3,"file":"kg-build.d.ts","sourceRoot":"","sources":["../../src/commands/kg-build.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoBzC,UAAU,cAAc;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,UAAU,eAAe;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC;CACrC;AAOD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,eAAe,CAAC;IACrC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAqCD;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,aAAa,CAAC,CAiFxB;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyBjD"}
@@ -40,6 +40,7 @@ import { registerKgClassifyCommand } from './kg-classify.js';
40
40
  import { registerKgDoctorCommand } from './kg-doctor.js';
41
41
  import { registerKgInstallHookCommand } from './kg-install-hook.js';
42
42
  import { registerKgUninstallHookCommand } from './kg-uninstall-hook.js';
43
+ import { registerKgSavingsCommand } from './kg-savings.js';
43
44
  /**
44
45
  * Resolve workspace name + source path. `name` defaults to the basename
45
46
  * of the operator's cwd — the "build KG for the repo I'm in" common case.
@@ -170,5 +171,7 @@ export function registerKg(program) {
170
171
  // kg-service-container-v2 Phase D — settings.json mutation for the PreToolUse hook.
171
172
  registerKgInstallHookCommand(kg);
172
173
  registerKgUninstallHookCommand(kg);
174
+ // kg-hit-signal — cumulative savings telemetry tallied by /kg-data/savings.jsonl.
175
+ registerKgSavingsCommand(kg);
173
176
  }
174
177
  //# sourceMappingURL=kg-build.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"kg-build.js","sourceRoot":"","sources":["../../src/commands/kg-build.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kg-build.js","sourceRoot":"","sources":["../../src/commands/kg-build.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * `olam kg savings` — cumulative KG-hit telemetry summary.
3
+ *
4
+ * Aggregates `/kg-data/savings.jsonl` (one append-only line per non-grep
5
+ * /classify call) via the kg-service /savings endpoint. Output is a coarse
6
+ * heuristic — see `SAVINGS_HEURISTIC` in packages/kg-service/src/server.py
7
+ * for the per-layer model. Display always prefixes saved-token counts with
8
+ * `~` so the approximation reads correctly.
9
+ *
10
+ * Surfaces:
11
+ * - Total hits + total estimated savings
12
+ * - Per-layer breakdown (L1 regex / L2 graph-probe / L4 embedding)
13
+ * - Per-workspace breakdown
14
+ * - First + last hit timestamps
15
+ *
16
+ * --json emits the raw response shape for monitoring pipelines.
17
+ */
18
+ import type { Command } from 'commander';
19
+ export declare function registerKgSavingsCommand(kg: Command): void;
20
+ //# sourceMappingURL=kg-savings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kg-savings.d.ts","sourceRoot":"","sources":["../../src/commands/kg-savings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqDzC,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI,CA0B1D"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * `olam kg savings` — cumulative KG-hit telemetry summary.
3
+ *
4
+ * Aggregates `/kg-data/savings.jsonl` (one append-only line per non-grep
5
+ * /classify call) via the kg-service /savings endpoint. Output is a coarse
6
+ * heuristic — see `SAVINGS_HEURISTIC` in packages/kg-service/src/server.py
7
+ * for the per-layer model. Display always prefixes saved-token counts with
8
+ * `~` so the approximation reads correctly.
9
+ *
10
+ * Surfaces:
11
+ * - Total hits + total estimated savings
12
+ * - Per-layer breakdown (L1 regex / L2 graph-probe / L4 embedding)
13
+ * - Per-workspace breakdown
14
+ * - First + last hit timestamps
15
+ *
16
+ * --json emits the raw response shape for monitoring pipelines.
17
+ */
18
+ import { savings, KgServiceUnreachableError, } from '@olam/core/src/kg/kg-service-client.js';
19
+ import { printError, printInfo, printSuccess, printWarning } from '../output.js';
20
+ function formatTokens(n) {
21
+ if (n >= 1_000_000)
22
+ return `~${(n / 1_000_000).toFixed(1)}M`;
23
+ if (n >= 1_000)
24
+ return `~${Math.round(n / 1000)}k`;
25
+ return `~${n}`;
26
+ }
27
+ function renderHumanReadable(stats) {
28
+ if (stats.total_hits === 0) {
29
+ printInfo('savings', 'no KG hits logged yet — run some grep/find Bash invocations to populate /kg-data/savings.jsonl');
30
+ return;
31
+ }
32
+ printSuccess(`KG hits: ${stats.total_hits} · estimated savings: ${formatTokens(stats.total_saved_tokens_est)} tokens`);
33
+ printInfo('first hit', stats.first_hit_at ?? '(unknown)');
34
+ printInfo('last hit', stats.last_hit_at ?? '(unknown)');
35
+ const layerPairs = Object.entries(stats.by_layer).map(([k, v]) => [k, v ?? 0]);
36
+ const layers = [...layerPairs].sort((a, b) => a[0].localeCompare(b[0]));
37
+ if (layers.length > 0) {
38
+ printInfo('by layer', layers.map(([k, v]) => `L${k}=${formatTokens(v)}`).join(' · '));
39
+ }
40
+ const workspacePairs = Object.entries(stats.by_workspace).map(([k, v]) => [k, v ?? 0]);
41
+ const workspaces = [...workspacePairs].sort((a, b) => b[1] - a[1]).slice(0, 5);
42
+ if (workspaces.length > 0) {
43
+ printInfo('top workspaces', workspaces.map(([k, v]) => `${k || '(none)'}=${formatTokens(v)}`).join(' · '));
44
+ }
45
+ if (stats.parse_errors > 0) {
46
+ printWarning(`savings.jsonl had ${stats.parse_errors} unparseable lines (skipped)`);
47
+ }
48
+ printInfo('note', 'savings are a heuristic, not a measurement. See SAVINGS_HEURISTIC in server.py for the per-layer model.');
49
+ }
50
+ export function registerKgSavingsCommand(kg) {
51
+ kg.command('savings')
52
+ .description('Show cumulative KG-hit savings tallied by the kg-service container')
53
+ .option('--json', 'emit raw response JSON instead of human-readable summary')
54
+ .action(async (opts) => {
55
+ let stats;
56
+ try {
57
+ stats = await savings();
58
+ }
59
+ catch (err) {
60
+ if (err instanceof KgServiceUnreachableError) {
61
+ printError(err.message);
62
+ printInfo('remedy', '`olam services up` to start kg-service, then re-run');
63
+ process.exitCode = 3;
64
+ return;
65
+ }
66
+ printError(`kg-service /savings failed: ${err instanceof Error ? err.message : String(err)}`);
67
+ process.exitCode = 1;
68
+ return;
69
+ }
70
+ if (opts.json) {
71
+ process.stdout.write(JSON.stringify(stats, null, 2) + '\n');
72
+ return;
73
+ }
74
+ renderHumanReadable(stats);
75
+ });
76
+ }
77
+ //# sourceMappingURL=kg-savings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kg-savings.js","sourceRoot":"","sources":["../../src/commands/kg-savings.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"_paths.d.ts","sourceRoot":"","sources":["../../../src/commands/memory/_paths.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,eAAO,MAAM,SAAS,QAA2B,CAAC;AAClD,eAAO,MAAM,YAAY,QAAyB,CAAC;AACnD,eAAO,MAAM,eAAe,QAA4B,CAAC;AACzD,eAAO,MAAM,eAAe,QAAgC,CAAC;AAC7D,eAAO,MAAM,eAAe,QAAwC,CAAC;AACrE,eAAO,MAAM,eAAe,QAAiC,CAAC;AAE9D,mDAAmD;AACnD,eAAO,MAAM,gBAAgB,OAAO,CAAC;AACrC,eAAO,MAAM,gBAAgB,4CAA2D,CAAC;AAmBzF,eAAO,MAAM,yBAAyB,UAAa,CAAC"}
1
+ {"version":3,"file":"_paths.d.ts","sourceRoot":"","sources":["../../../src/commands/memory/_paths.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,eAAO,MAAM,SAAS,QAA2B,CAAC;AAClD,eAAO,MAAM,YAAY,QAAyB,CAAC;AACnD,eAAO,MAAM,eAAe,QAA4B,CAAC;AACzD,eAAO,MAAM,eAAe,QAAgC,CAAC;AAC7D,eAAO,MAAM,eAAe,QAAwC,CAAC;AACrE,eAAO,MAAM,eAAe,QAAiC,CAAC;AAE9D,mDAAmD;AACnD,eAAO,MAAM,gBAAgB,OAAO,CAAC;AACrC,eAAO,MAAM,gBAAgB,4CAA2D,CAAC;AAuCzF,eAAO,MAAM,yBAAyB,UAAa,CAAC"}
@@ -16,18 +16,38 @@ export const MEMORY_REST_PORT = 3111;
16
16
  export const MEMORY_LIVEZ_URL = `http://localhost:${MEMORY_REST_PORT}/agentmemory/livez`;
17
17
  /**
18
18
  * Resolve packages/memory-service/ from the CLI source/bundle location.
19
- * - Source mode (tsc): dist/commands/memory/_paths.js → ../../../../packages/memory-service
20
- * - Bundle mode (esbuild dist/index.js): dist/index.js → ../packages/memory-service
21
- * We probe both since the same code runs in either layout.
19
+ *
20
+ * Three layouts to probe:
21
+ *
22
+ * 1. **Workspace dev (built)** — `packages/cli/dist/commands/memory/_paths.js`
23
+ * runs in the monorepo. Sibling: `packages/memory-service/`.
24
+ *
25
+ * 2. **Bundled dist (workspace OR published)** — `packages/cli/dist/index.js`
26
+ * is the esbuild bundle. In dev: sibling `packages/memory-service/`.
27
+ * In a published @pleri/olam-cli tarball: sibling `memory-service-bundle/`
28
+ * (a stripped-down copy containing just scripts/ensure-iii-engine.mjs;
29
+ * see bundle-cli.mjs for the copy step).
30
+ *
31
+ * 3. **CWD fallback** — operator runs `olam memory start` from a repo
32
+ * checkout; `./packages/memory-service` exists.
33
+ *
34
+ * The publish-shape `memory-service-bundle/` only contains `scripts/`,
35
+ * not `src/` or `Dockerfile` — host-mode start.ts only references the
36
+ * scripts/ subdir, so the partial mirror is sufficient. Cloud-mode
37
+ * (`wrangler deploy`) runs from a repo checkout where the full
38
+ * `packages/memory-service/` is present.
22
39
  */
23
40
  const here = dirname(fileURLToPath(import.meta.url));
24
41
  const candidates = [
25
- // Workspace dev: packages/cli/src/commands/memory/_paths.ts (run via tsx) — unlikely
26
- // Workspace built: packages/cli/dist/commands/memory/_paths.js → packages/cli → packages/memory-service
42
+ // 1. Workspace dev (built): packages/cli/dist/commands/memory/_paths.js packages/cli packages/memory-service
27
43
  join(here, '..', '..', '..', '..', 'memory-service'),
28
- // Bundled: dist/index.js (esbuild) → packages/cli → packages/memory-service
44
+ // 2a. Workspace bundled: packages/cli/dist/index.js → packages/cli → packages/memory-service
29
45
  join(here, '..', '..', 'memory-service'),
30
- // Fallback: cwd-relative
46
+ // 2b. Published tarball: <prefix>/node_modules/@pleri/olam-cli/dist/index.js
47
+ // → <prefix>/node_modules/@pleri/olam-cli/memory-service-bundle
48
+ // (copied at publish time by bundle-cli.mjs)
49
+ join(here, '..', 'memory-service-bundle'),
50
+ // 3. CWD fallback
31
51
  join(process.cwd(), 'packages', 'memory-service'),
32
52
  ];
33
53
  export const MEMORY_SERVICE_CANDIDATES = candidates;
@@ -1 +1 @@
1
- {"version":3,"file":"_paths.js","sourceRoot":"","sources":["../../../src/commands/memory/_paths.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;AAClD,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AACnD,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;AACzD,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;AAC7D,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;AACrE,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;AAE9D,mDAAmD;AACnD,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC;AACrC,MAAM,CAAC,MAAM,gBAAgB,GAAG,oBAAoB,gBAAgB,oBAAoB,CAAC;AAEzF;;;;;GAKG;AACH,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACrD,MAAM,UAAU,GAAG;IACjB,qFAAqF;IACrF,wGAAwG;IACxG,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,CAAC;IACpD,4EAA4E;IAC5E,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,CAAC;IACxC,yBAAyB;IACzB,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,gBAAgB,CAAC;CAClD,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,UAAU,CAAC"}
1
+ {"version":3,"file":"_paths.js","sourceRoot":"","sources":["../../../src/commands/memory/_paths.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;AAClD,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AACnD,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;AACzD,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;AAC7D,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;AACrE,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;AAE9D,mDAAmD;AACnD,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC;AACrC,MAAM,CAAC,MAAM,gBAAgB,GAAG,oBAAoB,gBAAgB,oBAAoB,CAAC;AAEzF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACrD,MAAM,UAAU,GAAG;IACjB,iHAAiH;IACjH,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,CAAC;IACpD,6FAA6F;IAC7F,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,CAAC;IACxC,6EAA6E;IAC7E,oEAAoE;IACpE,iDAAiD;IACjD,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,uBAAuB,CAAC;IACzC,kBAAkB;IAClB,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,gBAAgB,CAAC;CAClD,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,UAAU,CAAC"}
@@ -399,6 +399,30 @@ export interface UpgradePullDeps {
399
399
  ok: boolean;
400
400
  error?: string;
401
401
  };
402
+ /**
403
+ * Container-inspect driver — used by the pre-rename orphan guard before
404
+ * compose recreate (Step 5b). Returns the container's compose project /
405
+ * service labels when the container exists; reports `exists: false`
406
+ * when the daemon says "no such object". Default: real `docker inspect`
407
+ * via spawnSync. Tests inject a stub to simulate a pre-rename orphan
408
+ * (PR #596/#597 host-cp → olam-host-cp service rename collision).
409
+ */
410
+ readonly inspectContainerImpl?: (containerName: string) => {
411
+ ok: boolean;
412
+ exists: boolean;
413
+ project: string;
414
+ service: string;
415
+ stderr: string;
416
+ };
417
+ /**
418
+ * Container-remove driver — paired with inspectContainerImpl above.
419
+ * Default: real `docker rm -f <name>` via spawnSync. Tests inject a
420
+ * stub to record removal calls without spawning docker.
421
+ */
422
+ readonly removeContainerImpl?: (containerName: string) => {
423
+ ok: boolean;
424
+ stderr: string;
425
+ };
402
426
  }
403
427
  export declare function runUpgradePullByDigest(deps?: UpgradePullDeps): Promise<UpgradePullResult>;
404
428
  export declare function registerUpgrade(program: Command): void;
@@ -1 +1 @@
1
- {"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../src/commands/upgrade.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYzC,OAAO,EAIL,KAAK,UAAU,EACf,KAAK,YAAY,EAClB,MAAM,gBAAgB,CAAC;AAaxB,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,2EAA2E;IAC3E,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,iEAAiE;IACjE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,yEAAyE;IACzE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,yEAAyE;IACzE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,yDAAyD;IACzD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAC9B;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAaxD;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE;IAAE,WAAW,EAAE,OAAO,CAAA;CAAE,EAC9B,GAAG,EAAE,MAAM,GACV;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,CAQlD;AAED,+CAA+C;AAC/C,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAWzF;AAED,6DAA6D;AAC7D,wBAAgB,gBAAgB,CAAC,GAAG,EAAE;IACpC,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,GAAG,WAAW,CAqBd;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGlE;AAuDD;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAWzD;AAED,qEAAqE;AACrE,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAUhD;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,aAAa,CAAC,QAAQ,CAAC,GAAG,MAAM,GAAG,IAAI,CAInF;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAuBD,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,WAAW,CAmExE;AAED;;;;;;GAMG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,eAAO,MAAM,oBAAoB,EAAE,aAAa,CAAC,QAAQ,CAMxD,CAAC;AAEF,0CAA0C;AAC1C,UAAU,eAAe;IACvB,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,eAAe,CAiBvE;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,kGAAkG;IAClG,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,8EAA8E;IAC9E,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IAC9C,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,aAAa,CAAC,QAAQ,CAAC,GAAG,UAAU,CA2E3E;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,aAAa,CAAC,QAAQ,CAAC,GAAG;IAClE,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,EAAE,aAAa,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvE,OAAO,EAAE,MAAM,CAAC;CACjB,CAeA;AA8BD;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAA;KAAE,CAAC;IAC3G,QAAQ,CAAC,WAAW,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAA;KAAE,CAAC;IAChH,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAA;KAAE,CAAC;IAC3G,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,MAAM,EACjB,SAAS,SAAS,EAClB,cAAc,SAAQ,GACrB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAA;CAAE,CAAC,CAyBjE;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,eAAe,GAAG,IAAI,GAC/B,MAAM,CAYR;AAoGD;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B;;;OAGG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,CACxB,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAC7B;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACrD;;;OAGG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvE;;;;;;OAMG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC1E;;;;OAIG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,6DAA6D;IAC7D,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAClF;AAED,wBAAsB,sBAAsB,CAC1C,IAAI,GAAE,eAAoB,GACzB,OAAO,CAAC,iBAAiB,CAAC,CAkS5B;AAstBD,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuFtD"}
1
+ {"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../src/commands/upgrade.ts"],"names":[],"mappings":"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"}
@@ -852,18 +852,47 @@ export async function runUpgradePullByDigest(deps = {}) {
852
852
  return { exitCode: EXIT_GENERIC_ERROR, summary: 'socket-proxy recreate failed' };
853
853
  }
854
854
  proxySpinner.succeed('docker-socket-proxy recreated');
855
+ // Step 5b-pre — clean up pre-rename name-collision orphan. PR #596/#597
856
+ // renamed the compose service host-cp → olam-host-cp; the container_name
857
+ // was already olam-host-cp, so a pre-existing container from before the
858
+ // rename carries labels `com.docker.compose.service=host-cp` and
859
+ // `com.docker.compose.project=host-cp` AND occupies the `olam-host-cp`
860
+ // container name the new service expects. `--force-recreate` cannot
861
+ // reclaim a container whose service label belongs to a different
862
+ // (now non-existent) compose service, so the recreate aborts with
863
+ // "Conflict. The container name "/olam-host-cp" is already in use".
864
+ // Force-remove the orphan first; no-op when no orphan exists or the
865
+ // container already belongs to the new service.
866
+ const inspectContainer = deps.inspectContainerImpl ?? defaultInspectContainerLabels;
867
+ const removeContainer = deps.removeContainerImpl ?? defaultRemoveContainer;
868
+ const orphanCheck = inspectContainer('olam-host-cp');
869
+ if (!orphanCheck.ok) {
870
+ process.stderr.write(`${pc.red('error')} docker inspect olam-host-cp failed:\n` +
871
+ ` ${orphanCheck.stderr.split('\n').slice(0, 3).join('\n ')}\n`);
872
+ return { exitCode: EXIT_GENERIC_ERROR, summary: 'orphan inspect failed' };
873
+ }
874
+ if (orphanCheck.exists && orphanCheck.service !== 'olam-host-cp') {
875
+ process.stderr.write(`${pc.yellow('info')} Removing pre-rename orphan container olam-host-cp ` +
876
+ `(old project=${orphanCheck.project || '<none>'}, old service=${orphanCheck.service || '<none>'})\n`);
877
+ const rm = removeContainer('olam-host-cp');
878
+ if (!rm.ok) {
879
+ process.stderr.write(`${pc.red('error')} docker rm -f olam-host-cp failed:\n` +
880
+ ` ${rm.stderr.split('\n').slice(0, 3).join('\n ')}\n`);
881
+ return { exitCode: EXIT_GENERIC_ERROR, summary: 'orphan cleanup failed' };
882
+ }
883
+ }
855
884
  // Step 5b — recreate host-cp. `--no-deps` keeps compose from
856
885
  // touching the proxy AGAIN (we just did it in step 5a) and from
857
886
  // touching auth-service (which isn't a compose service).
858
- const composeSpinner = ora('docker compose recreate host-cp').start();
859
- const composeResult = composeRunner(['up', '-d', '--force-recreate', '--no-deps', 'host-cp'], composeFile, buildComposeEnv(authSecret, captureGhToken()));
887
+ const composeSpinner = ora('docker compose recreate olam-host-cp').start();
888
+ const composeResult = composeRunner(['up', '-d', '--force-recreate', '--no-deps', 'olam-host-cp'], composeFile, buildComposeEnv(authSecret, captureGhToken()));
860
889
  if (!composeResult.ok) {
861
890
  composeSpinner.fail('compose recreate failed');
862
- process.stderr.write(`${pc.red('error')} docker compose up --force-recreate host-cp failed:\n` +
891
+ process.stderr.write(`${pc.red('error')} docker compose up --force-recreate olam-host-cp failed:\n` +
863
892
  ` ${composeResult.stderr.split('\n').slice(0, 3).join('\n ')}\n`);
864
893
  return { exitCode: EXIT_GENERIC_ERROR, summary: 'compose recreate failed' };
865
894
  }
866
- composeSpinner.succeed('host-cp recreated');
895
+ composeSpinner.succeed('olam-host-cp recreated');
867
896
  // Step 6 — recreate auth-service.
868
897
  const authSpinner = ora('recreate auth-service').start();
869
898
  const authRecreate = deps.recreateAuth ?? defaultRecreateAuthForUpgrade;
@@ -963,6 +992,50 @@ async function defaultRecreateAuthForUpgrade() {
963
992
  };
964
993
  }
965
994
  }
995
+ /**
996
+ * Default `docker inspect` driver for the Step 5b-pre orphan guard.
997
+ * Reads the container's `com.docker.compose.project` and
998
+ * `com.docker.compose.service` labels in a single inspect call. Distinguishes
999
+ * "container does not exist" (treated as ok+exists=false) from real
1000
+ * inspect failures (daemon down, permission errors — propagated as ok=false).
1001
+ */
1002
+ function defaultInspectContainerLabels(containerName) {
1003
+ const result = spawnSync('docker', [
1004
+ 'inspect',
1005
+ '--format',
1006
+ '{{index .Config.Labels "com.docker.compose.project"}}|{{index .Config.Labels "com.docker.compose.service"}}',
1007
+ containerName,
1008
+ ], { encoding: 'utf-8', stdio: ['ignore', 'pipe', 'pipe'] });
1009
+ const stderr = result.stderr ?? '';
1010
+ if (result.status === 0) {
1011
+ const [project = '', service = ''] = (result.stdout ?? '').trim().split('|');
1012
+ return { ok: true, exists: true, project, service, stderr: '' };
1013
+ }
1014
+ // Docker returns exit 1 with "No such object: <name>" when the container
1015
+ // is absent — that's the happy "no collision" case, not an error.
1016
+ if (/No such (object|container)/i.test(stderr)) {
1017
+ return { ok: true, exists: false, project: '', service: '', stderr: '' };
1018
+ }
1019
+ // spawn failed before docker could run (e.g. ENOENT — docker not in
1020
+ // PATH). Step 1 (daemon smoke) would already have failed in that case,
1021
+ // so by the time we get here we know docker is reachable. Treating
1022
+ // status=null as "container absent" lets unit tests exercise the
1023
+ // recreate flow without a docker daemon and without an inspect mock.
1024
+ if (result.status === null) {
1025
+ return { ok: true, exists: false, project: '', service: '', stderr: '' };
1026
+ }
1027
+ return { ok: false, exists: false, project: '', service: '', stderr };
1028
+ }
1029
+ /**
1030
+ * Default `docker rm -f` driver for the Step 5b-pre orphan guard.
1031
+ */
1032
+ function defaultRemoveContainer(containerName) {
1033
+ const result = spawnSync('docker', ['rm', '-f', containerName], {
1034
+ encoding: 'utf-8',
1035
+ stdio: ['ignore', 'pipe', 'pipe'],
1036
+ });
1037
+ return { ok: result.status === 0, stderr: result.stderr ?? '' };
1038
+ }
966
1039
  // ── Main handler ──────────────────────────────────────────────────
967
1040
  async function handleUpgrade(opts) {
968
1041
  const cwd = process.cwd();
@@ -994,7 +1067,7 @@ async function handleUpgrade(opts) {
994
1067
  'bash build-host-cp.sh (host-cp image)',
995
1068
  'smoke (docker create + inspect)',
996
1069
  'atomic 6-tag swap (canonical -> :olam-rollback; :olam-next -> canonical)',
997
- 'docker compose --force-recreate host-cp + AuthContainerController.start auth',
1070
+ 'docker compose --force-recreate olam-host-cp + AuthContainerController.start auth',
998
1071
  'poll /api/version/status until SHAs match',
999
1072
  ]),
1000
1073
  ];
@@ -1141,17 +1214,17 @@ async function handleRollback() {
1141
1214
  // 4. Recreate containers (host-cp via compose, auth via controller).
1142
1215
  const composeFile = findComposeFile();
1143
1216
  const authSecret = readAuthSecret();
1144
- process.stdout.write(` ${pc.dim('docker compose recreate host-cp'.padEnd(34))}`);
1217
+ process.stdout.write(` ${pc.dim('docker compose recreate olam-host-cp'.padEnd(34))}`);
1145
1218
  const composeStart = Date.now();
1146
1219
  // `--no-deps` matches the forward-upgrade path (line ~1025) so the
1147
1220
  // rollback recreate doesn't also bounce docker-socket-proxy.
1148
- const composeResult = runCompose(['up', '-d', '--force-recreate', '--no-deps', 'host-cp'], composeFile, buildComposeEnv(authSecret, captureGhToken()));
1221
+ const composeResult = runCompose(['up', '-d', '--force-recreate', '--no-deps', 'olam-host-cp'], composeFile, buildComposeEnv(authSecret, captureGhToken()));
1149
1222
  const composeDur = `${((Date.now() - composeStart) / 1000).toFixed(1)}s`;
1150
1223
  process.stdout.write(`${composeResult.ok ? pc.green('✓') : pc.red('✗')} ${composeDur}\n`);
1151
1224
  if (!composeResult.ok) {
1152
1225
  printError(`Rollback compose recreate failed:\n${composeResult.stderr}\n` +
1153
1226
  'Canonical tags are at :olam-rollback (good); container restart pending. ' +
1154
- 'Manually: `docker compose -f packages/host-cp/compose.yaml up -d --force-recreate host-cp`.');
1227
+ 'Manually: `docker compose -f packages/host-cp/compose.yaml up -d --force-recreate olam-host-cp`.');
1155
1228
  process.exitCode = 1;
1156
1229
  return;
1157
1230
  }