@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.
- package/dist/commands/kg-build.d.ts.map +1 -1
- package/dist/commands/kg-build.js +3 -0
- package/dist/commands/kg-build.js.map +1 -1
- package/dist/commands/kg-savings.d.ts +20 -0
- package/dist/commands/kg-savings.d.ts.map +1 -0
- package/dist/commands/kg-savings.js +77 -0
- package/dist/commands/kg-savings.js.map +1 -0
- package/dist/commands/memory/_paths.d.ts.map +1 -1
- package/dist/commands/memory/_paths.js +27 -7
- package/dist/commands/memory/_paths.js.map +1 -1
- package/dist/commands/upgrade.d.ts +24 -0
- package/dist/commands/upgrade.d.ts.map +1 -1
- package/dist/commands/upgrade.js +81 -8
- package/dist/commands/upgrade.js.map +1 -1
- package/dist/image-digests.json +7 -7
- package/dist/index.js +245 -140
- package/dist/mcp-server.js +93 -120
- package/host-cp/compose.yaml +1 -1
- package/host-cp/src/agent-runtime-trigger.mjs +192 -0
- package/host-cp/src/server.mjs +73 -0
- package/memory-service-bundle/scripts/ensure-iii-engine.mjs +179 -0
- package/package.json +4 -2
|
@@ -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;
|
|
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":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAGH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAC/E,OAAO,EACL,KAAK,IAAI,cAAc,EACvB,yBAAyB,GAE1B,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;
|
|
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":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,EACL,OAAO,EACP,yBAAyB,GAE1B,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAMjF,SAAS,YAAY,CAAC,CAAS;IAC7B,IAAI,CAAC,IAAI,SAAS;QAAE,OAAO,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAC7D,IAAI,CAAC,IAAI,KAAK;QAAE,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC;IACnD,OAAO,IAAI,CAAC,EAAE,CAAC;AACjB,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAsB;IACjD,IAAI,KAAK,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;QAC3B,SAAS,CAAC,SAAS,EAAE,gGAAgG,CAAC,CAAC;QACvH,OAAO;IACT,CAAC;IACD,YAAY,CAAC,YAAY,KAAK,CAAC,UAAU,yBAAyB,YAAY,CAAC,KAAK,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;IACvH,SAAS,CAAC,WAAW,EAAE,KAAK,CAAC,YAAY,IAAI,WAAW,CAAC,CAAC;IAC1D,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,WAAW,IAAI,WAAW,CAAC,CAAC;IAExD,MAAM,UAAU,GAA6C,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAC7F,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAU,CACjC,CAAC;IACF,MAAM,MAAM,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACxF,CAAC;IAED,MAAM,cAAc,GAA6C,MAAM,CAAC,OAAO,CAC7E,KAAK,CAAC,YAAY,CACnB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAU,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,CAAC,GAAG,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/E,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,SAAS,CACP,gBAAgB,EAChB,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,QAAQ,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAC9E,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;QAC3B,YAAY,CAAC,qBAAqB,KAAK,CAAC,YAAY,8BAA8B,CAAC,CAAC;IACtF,CAAC;IAED,SAAS,CAAC,MAAM,EAAE,yGAAyG,CAAC,CAAC;AAC/H,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,EAAW;IAClD,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,oEAAoE,CAAC;SACjF,MAAM,CAAC,QAAQ,EAAE,0DAA0D,CAAC;SAC5E,MAAM,CAAC,KAAK,EAAE,IAAsB,EAAE,EAAE;QACvC,IAAI,KAAsB,CAAC;QAC3B,IAAI,CAAC;YACH,KAAK,GAAG,MAAM,OAAO,EAAE,CAAC;QAC1B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,yBAAyB,EAAE,CAAC;gBAC7C,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACxB,SAAS,CAAC,QAAQ,EAAE,qDAAqD,CAAC,CAAC;gBAC3E,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACrB,OAAO;YACT,CAAC;YACD,UAAU,CAAC,+BAA+B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC9F,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;YAC5D,OAAO;QACT,CAAC;QACD,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -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;
|
|
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
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
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/
|
|
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
|
-
//
|
|
44
|
+
// 2a. Workspace bundled: packages/cli/dist/index.js → packages/cli → packages/memory-service
|
|
29
45
|
join(here, '..', '..', 'memory-service'),
|
|
30
|
-
//
|
|
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
|
|
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":"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
|
|
1
|
+
{"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../src/commands/upgrade.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/upgrade.js
CHANGED
|
@@ -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
|
}
|