@pleri/olam-cli 0.1.153 → 0.1.157
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 +2 -1
- package/dist/commands/bootstrap.d.ts.map +1 -1
- package/dist/commands/bootstrap.js +8 -10
- package/dist/commands/bootstrap.js.map +1 -1
- package/dist/commands/doctor.d.ts +22 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +110 -7
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/flywheel/check-persona-skeleton.d.ts +7 -0
- package/dist/commands/flywheel/check-persona-skeleton.d.ts.map +1 -0
- package/dist/commands/flywheel/check-persona-skeleton.js +14 -0
- package/dist/commands/flywheel/check-persona-skeleton.js.map +1 -0
- package/dist/commands/flywheel/diversity-check.d.ts +7 -0
- package/dist/commands/flywheel/diversity-check.d.ts.map +1 -0
- package/dist/commands/flywheel/diversity-check.js +14 -0
- package/dist/commands/flywheel/diversity-check.js.map +1 -0
- package/dist/commands/flywheel/emit-breadcrumb.d.ts +20 -0
- package/dist/commands/flywheel/emit-breadcrumb.d.ts.map +1 -0
- package/dist/commands/flywheel/emit-breadcrumb.js +137 -0
- package/dist/commands/flywheel/emit-breadcrumb.js.map +1 -0
- package/dist/commands/flywheel/index.d.ts +27 -0
- package/dist/commands/flywheel/index.d.ts.map +1 -0
- package/dist/commands/flywheel/index.js +48 -0
- package/dist/commands/flywheel/index.js.map +1 -0
- package/dist/commands/flywheel/install-shims.d.ts +8 -0
- package/dist/commands/flywheel/install-shims.d.ts.map +1 -0
- package/dist/commands/flywheel/install-shims.js +15 -0
- package/dist/commands/flywheel/install-shims.js.map +1 -0
- package/dist/commands/flywheel/k10-measure.d.ts +7 -0
- package/dist/commands/flywheel/k10-measure.d.ts.map +1 -0
- package/dist/commands/flywheel/k10-measure.js +14 -0
- package/dist/commands/flywheel/k10-measure.js.map +1 -0
- package/dist/commands/flywheel/k5-score.d.ts +14 -0
- package/dist/commands/flywheel/k5-score.d.ts.map +1 -0
- package/dist/commands/flywheel/k5-score.js +59 -0
- package/dist/commands/flywheel/k5-score.js.map +1 -0
- package/dist/commands/flywheel/k5-validate.d.ts +15 -0
- package/dist/commands/flywheel/k5-validate.d.ts.map +1 -0
- package/dist/commands/flywheel/k5-validate.js +185 -0
- package/dist/commands/flywheel/k5-validate.js.map +1 -0
- package/dist/commands/flywheel/ping.d.ts +21 -0
- package/dist/commands/flywheel/ping.d.ts.map +1 -0
- package/dist/commands/flywheel/ping.js +79 -0
- package/dist/commands/flywheel/ping.js.map +1 -0
- package/dist/commands/flywheel/sanitize-persona-output.d.ts +7 -0
- package/dist/commands/flywheel/sanitize-persona-output.d.ts.map +1 -0
- package/dist/commands/flywheel/sanitize-persona-output.js +14 -0
- package/dist/commands/flywheel/sanitize-persona-output.js.map +1 -0
- package/dist/commands/hermes-kg-hook.d.ts +36 -0
- package/dist/commands/hermes-kg-hook.d.ts.map +1 -0
- package/dist/commands/hermes-kg-hook.js +80 -0
- package/dist/commands/hermes-kg-hook.js.map +1 -0
- package/dist/commands/hermes.d.ts +46 -0
- package/dist/commands/hermes.d.ts.map +1 -0
- package/dist/commands/hermes.js +320 -0
- package/dist/commands/hermes.js.map +1 -0
- package/dist/commands/kg-install-hook.d.ts +7 -1
- package/dist/commands/kg-install-hook.d.ts.map +1 -1
- package/dist/commands/kg-install-hook.js +122 -6
- package/dist/commands/kg-install-hook.js.map +1 -1
- package/dist/commands/memory/_paths.d.ts +13 -3
- package/dist/commands/memory/_paths.d.ts.map +1 -1
- package/dist/commands/memory/_paths.js +25 -22
- package/dist/commands/memory/_paths.js.map +1 -1
- package/dist/commands/memory/logs.d.ts +8 -4
- package/dist/commands/memory/logs.d.ts.map +1 -1
- package/dist/commands/memory/logs.js +18 -13
- package/dist/commands/memory/logs.js.map +1 -1
- package/dist/commands/memory/mode.d.ts.map +1 -1
- package/dist/commands/memory/mode.js +7 -3
- package/dist/commands/memory/mode.js.map +1 -1
- package/dist/commands/memory/start.d.ts +16 -14
- package/dist/commands/memory/start.d.ts.map +1 -1
- package/dist/commands/memory/start.js +55 -189
- package/dist/commands/memory/start.js.map +1 -1
- package/dist/commands/memory/status.d.ts +10 -8
- package/dist/commands/memory/status.d.ts.map +1 -1
- package/dist/commands/memory/status.js +35 -38
- package/dist/commands/memory/status.js.map +1 -1
- package/dist/commands/memory/stop.d.ts +5 -4
- package/dist/commands/memory/stop.d.ts.map +1 -1
- package/dist/commands/memory/stop.js +26 -55
- package/dist/commands/memory/stop.js.map +1 -1
- package/dist/commands/memory-service-container.d.ts +78 -0
- package/dist/commands/memory-service-container.d.ts.map +1 -0
- package/dist/commands/memory-service-container.js +187 -0
- package/dist/commands/memory-service-container.js.map +1 -0
- package/dist/commands/services.d.ts +16 -1
- package/dist/commands/services.d.ts.map +1 -1
- package/dist/commands/services.js +88 -12
- package/dist/commands/services.js.map +1 -1
- package/dist/image-digests.json +7 -7
- package/dist/index.js +2572 -1376
- package/dist/index.js.map +1 -1
- package/dist/lib/memory-host-process-migration.d.ts +56 -0
- package/dist/lib/memory-host-process-migration.d.ts.map +1 -0
- package/dist/lib/memory-host-process-migration.js +156 -0
- package/dist/lib/memory-host-process-migration.js.map +1 -0
- package/dist/lib/upgrade-kubernetes.d.ts +19 -0
- package/dist/lib/upgrade-kubernetes.d.ts.map +1 -1
- package/dist/lib/upgrade-kubernetes.js +191 -2
- package/dist/lib/upgrade-kubernetes.js.map +1 -1
- package/dist/mcp-server.js +56 -22
- package/hermes-bundle/kg-first.sh +100 -0
- package/hermes-bundle/version.json +4 -0
- package/host-cp/k8s/manifests/50-deployment.yaml +54 -27
- package/host-cp/k8s/manifests/auth-service/30-configmap.yaml +5 -0
- package/host-cp/k8s/manifests/auth-service/50-deployment.yaml +5 -1
- package/host-cp/k8s/manifests/kg-service/30-configmap.yaml +5 -0
- package/host-cp/k8s/manifests/kg-service/50-deployment.yaml +5 -1
- package/host-cp/k8s/manifests/mcp-auth-service/30-configmap.yaml +4 -0
- package/host-cp/k8s/manifests/mcp-auth-service/50-deployment.yaml +5 -1
- package/host-cp/k8s/manifests/memory-service/30-configmap.yaml +4 -0
- package/host-cp/k8s/manifests/memory-service/50-deployment.yaml +5 -1
- package/package.json +3 -4
- package/memory-service-bundle/scripts/ensure-iii-engine.mjs +0 -179
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stop.js","sourceRoot":"","sources":["../../../src/commands/memory/stop.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"stop.js","sourceRoot":"","sources":["../../../src/commands/memory/stop.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACrF,OAAO,EAAE,gCAAgC,EAAE,MAAM,gCAAgC,CAAC;AAClF,OAAO,EAAE,sBAAsB,EAAE,MAAM,4CAA4C,CAAC;AAEpF,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,WAAW,CAAC,kBAAkB,CAAC,CAAC;IAEhC,0EAA0E;IAC1E,4EAA4E;IAC5E,uDAAuD;IACvD,MAAM,SAAS,GAAG,sBAAsB,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9D,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;QACtB,SAAS,CAAC,WAAW,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,gCAAgC,EAAE,CAAC;IAC1D,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;IACpC,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAChC,YAAY,CAAC,4DAA4D,CAAC,CAAC;QAC3E,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAChC,YAAY,CAAC,+CAA+C,CAAC,CAAC;QAC9D,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,CAAC;QACH,UAAU,CAAC,IAAI,EAAE,CAAC;IACpB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,YAAY,CAAC,uBAAuB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACxF,OAAO,CAAC,CAAC;IACX,CAAC;IACD,YAAY,CAAC,6BAA6B,CAAC,CAAC;IAC5C,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,GAAY;IAC7C,GAAG;SACA,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,yEAAyE,CAAC;SACtF,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,EAAE,GAAG,MAAM,aAAa,EAAE,CAAC;QACjC,IAAI,EAAE,KAAK,CAAC;YAAE,OAAO,CAAC,QAAQ,GAAG,EAAE,CAAC;IACtC,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MemoryServiceContainerController — lifecycle for olam-memory-service.
|
|
3
|
+
*
|
|
4
|
+
* Mirrors KgServiceContainerController (./kg-service-container.ts). memory-service,
|
|
5
|
+
* like kg-service, runs as a host-side Docker peripheral managed by `olam services up`.
|
|
6
|
+
* The Phase A predecessor (host-process model — `olam memory start` spawning the
|
|
7
|
+
* npm-installed `agentmemory` bin) is retired in Phase B; both substrates coexist
|
|
8
|
+
* during Phase A so operators can roll back without losing data
|
|
9
|
+
* (`~/.olam/memory-data/` is bind-mounted and survives substrate swap).
|
|
10
|
+
*
|
|
11
|
+
* Divergence from kg-service:
|
|
12
|
+
* - Bearer-authenticated livez probe (kg-service `/health` is unauthenticated).
|
|
13
|
+
* `waitForReady` reads `~/.olam/memory-secret` and adds `Authorization: Bearer <secret>`.
|
|
14
|
+
* - No /host-home read-only mount (kg-service mounts $HOME for build ingestion;
|
|
15
|
+
* memory-service writes only to its own /data volume).
|
|
16
|
+
* - No prewarm probe (kg-service pre-warms bge-small inference; memory-service has
|
|
17
|
+
* no equivalent hot path — iii engine init happens at process start, not first request).
|
|
18
|
+
*
|
|
19
|
+
* Plan reference: docs/plans/memory-service-as-docker-peripheral/phase-a-tasks.md A1
|
|
20
|
+
*/
|
|
21
|
+
export declare const MEMORY_SERVICE_PORT = 3111;
|
|
22
|
+
export declare const MEMORY_SERVICE_CONTAINER = "olam-memory-service";
|
|
23
|
+
export declare const MEMORY_SERVICE_LOCAL_TAG = "olam-memory-service:local";
|
|
24
|
+
export declare const MEMORY_SERVICE_PUBLISHED_TAG = "ghcr.io/pleri/olam-memory-service:latest";
|
|
25
|
+
export declare const MEMORY_SERVICE_DEV_TAG = "olam-memory-service:dev";
|
|
26
|
+
export declare const MEMORY_SERVICE_HEALTH_URL = "http://127.0.0.1:3111/agentmemory/livez";
|
|
27
|
+
export declare const MEMORY_SERVICE_HEALTH_TIMEOUT_MS = 60000;
|
|
28
|
+
type ContainerState = 'running' | 'stopped' | 'missing';
|
|
29
|
+
export interface MemoryServiceStatus {
|
|
30
|
+
readonly state: ContainerState;
|
|
31
|
+
readonly port: number;
|
|
32
|
+
readonly containerId?: string;
|
|
33
|
+
readonly ready?: boolean;
|
|
34
|
+
}
|
|
35
|
+
export declare class MemoryServiceContainerController {
|
|
36
|
+
private imageTag;
|
|
37
|
+
status(): MemoryServiceStatus;
|
|
38
|
+
private imageExists;
|
|
39
|
+
/**
|
|
40
|
+
* Resolve the first available image tag: local → dev → published.
|
|
41
|
+
* Throws if none exist (operator should run `olam bootstrap` to pull, or
|
|
42
|
+
* `node packages/cli/scripts/build-memory-service-image.mjs` to build locally).
|
|
43
|
+
*/
|
|
44
|
+
private resolveImage;
|
|
45
|
+
/**
|
|
46
|
+
* Idempotent start. If already running → return. If stopped → docker start.
|
|
47
|
+
* If missing → ensure secret + bind-mount dir, then docker run with port-forward
|
|
48
|
+
* + memory-data volume mount + restart policy + bearer-secret env.
|
|
49
|
+
*
|
|
50
|
+
* The bearer secret is read from `~/.olam/memory-secret` (generated on first
|
|
51
|
+
* call via `ensureMemorySecret()`) and passed as `AGENTMEMORY_SECRET`. The
|
|
52
|
+
* container's agentmemory CLI requires this for the livez probe + all API
|
|
53
|
+
* calls; without it the container will start but reject every request as 401.
|
|
54
|
+
*/
|
|
55
|
+
start(): void;
|
|
56
|
+
/**
|
|
57
|
+
* Returns true when no memory-service image exists locally — useful for
|
|
58
|
+
* callers (e.g. servicesUp) to distinguish "operator opted out of
|
|
59
|
+
* memory-service" from "memory-service was supposed to work but is broken".
|
|
60
|
+
* The opted-out case should be silent; the broken case should warn.
|
|
61
|
+
*/
|
|
62
|
+
imageMissingEverywhere(): boolean;
|
|
63
|
+
stop(): void;
|
|
64
|
+
remove(): void;
|
|
65
|
+
/**
|
|
66
|
+
* Poll /agentmemory/livez until 200 OK with `{status: "ok"}` body OR
|
|
67
|
+
* timeoutMs elapses. The probe is bearer-authenticated; without the secret
|
|
68
|
+
* header agentmemory returns 401 regardless of container state.
|
|
69
|
+
*
|
|
70
|
+
* Divergence from kg-service: kg-service's `/health` is unauthenticated and
|
|
71
|
+
* returns `{ready: true}` once bge-small is loaded. memory-service's
|
|
72
|
+
* `/agentmemory/livez` returns `{status: "ok"}` once iii-engine accepts
|
|
73
|
+
* connections — there's no equivalent "model warmed" state to wait for.
|
|
74
|
+
*/
|
|
75
|
+
waitForReady(timeoutMs?: number): Promise<boolean>;
|
|
76
|
+
}
|
|
77
|
+
export {};
|
|
78
|
+
//# sourceMappingURL=memory-service-container.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-service-container.d.ts","sourceRoot":"","sources":["../../src/commands/memory-service-container.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAQH,eAAO,MAAM,mBAAmB,OAAO,CAAC;AACxC,eAAO,MAAM,wBAAwB,wBAAwB,CAAC;AAC9D,eAAO,MAAM,wBAAwB,8BAA8B,CAAC;AACpE,eAAO,MAAM,4BAA4B,6CAA6C,CAAC;AACvF,eAAO,MAAM,sBAAsB,4BAA4B,CAAC;AAChE,eAAO,MAAM,yBAAyB,4CAA8D,CAAC;AAKrG,eAAO,MAAM,gCAAgC,QAAS,CAAC;AAOvD,KAAK,cAAc,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAExD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B;AAeD,qBAAa,gCAAgC;IAC3C,OAAO,CAAC,QAAQ,CAAoC;IAEpD,MAAM,IAAI,mBAAmB;IAiB7B,OAAO,CAAC,WAAW;IAInB;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAUpB;;;;;;;;;OASG;IACH,KAAK,IAAI,IAAI;IA6Cb;;;;;OAKG;IACH,sBAAsB,IAAI,OAAO;IAQjC,IAAI,IAAI,IAAI;IAMZ,MAAM,IAAI,IAAI;IAId;;;;;;;;;OASG;IACG,YAAY,CAAC,SAAS,SAAmC,GAAG,OAAO,CAAC,OAAO,CAAC;CAoBnF"}
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MemoryServiceContainerController — lifecycle for olam-memory-service.
|
|
3
|
+
*
|
|
4
|
+
* Mirrors KgServiceContainerController (./kg-service-container.ts). memory-service,
|
|
5
|
+
* like kg-service, runs as a host-side Docker peripheral managed by `olam services up`.
|
|
6
|
+
* The Phase A predecessor (host-process model — `olam memory start` spawning the
|
|
7
|
+
* npm-installed `agentmemory` bin) is retired in Phase B; both substrates coexist
|
|
8
|
+
* during Phase A so operators can roll back without losing data
|
|
9
|
+
* (`~/.olam/memory-data/` is bind-mounted and survives substrate swap).
|
|
10
|
+
*
|
|
11
|
+
* Divergence from kg-service:
|
|
12
|
+
* - Bearer-authenticated livez probe (kg-service `/health` is unauthenticated).
|
|
13
|
+
* `waitForReady` reads `~/.olam/memory-secret` and adds `Authorization: Bearer <secret>`.
|
|
14
|
+
* - No /host-home read-only mount (kg-service mounts $HOME for build ingestion;
|
|
15
|
+
* memory-service writes only to its own /data volume).
|
|
16
|
+
* - No prewarm probe (kg-service pre-warms bge-small inference; memory-service has
|
|
17
|
+
* no equivalent hot path — iii engine init happens at process start, not first request).
|
|
18
|
+
*
|
|
19
|
+
* Plan reference: docs/plans/memory-service-as-docker-peripheral/phase-a-tasks.md A1
|
|
20
|
+
*/
|
|
21
|
+
import { execFileSync, spawnSync } from 'node:child_process';
|
|
22
|
+
import * as fs from 'node:fs';
|
|
23
|
+
import { homedir } from 'node:os';
|
|
24
|
+
import { join } from 'node:path';
|
|
25
|
+
import { ensureMemorySecret } from '../lib/memory-secret.js';
|
|
26
|
+
export const MEMORY_SERVICE_PORT = 3111;
|
|
27
|
+
export const MEMORY_SERVICE_CONTAINER = 'olam-memory-service';
|
|
28
|
+
export const MEMORY_SERVICE_LOCAL_TAG = 'olam-memory-service:local';
|
|
29
|
+
export const MEMORY_SERVICE_PUBLISHED_TAG = 'ghcr.io/pleri/olam-memory-service:latest';
|
|
30
|
+
export const MEMORY_SERVICE_DEV_TAG = 'olam-memory-service:dev';
|
|
31
|
+
export const MEMORY_SERVICE_HEALTH_URL = `http://127.0.0.1:${MEMORY_SERVICE_PORT}/agentmemory/livez`;
|
|
32
|
+
// Mirrors KgServiceContainerController: 60s timeout absorbs cold-start on flaky
|
|
33
|
+
// CI runners (image pull + iii-engine boot can exceed the operator-visible
|
|
34
|
+
// "took a moment" budget). Warm machines see ~3-5s.
|
|
35
|
+
export const MEMORY_SERVICE_HEALTH_TIMEOUT_MS = 60_000;
|
|
36
|
+
// memory-data is the host-mounted `~/.olam/memory-data/` so the container's
|
|
37
|
+
// agentmemory engine can persist iii-engine state to a path the operator can
|
|
38
|
+
// inspect + that survives `docker rm`.
|
|
39
|
+
const MEMORY_SERVICE_VOLUME_TARGET = '/data';
|
|
40
|
+
/**
|
|
41
|
+
* Resolves the operator's memory-data root for the host bind-mount.
|
|
42
|
+
*
|
|
43
|
+
* Mirrors kg-service's `kgDataHostPath()`: respects `$HOME` for testability,
|
|
44
|
+
* defaults to `~/.olam/memory-data` for the real operator path. Caller is
|
|
45
|
+
* responsible for ensuring the directory exists pre-bind-mount (Linux dockerd
|
|
46
|
+
* auto-creates as root:root if absent, which breaks subsequent host-side
|
|
47
|
+
* reads/writes from the operator's UID).
|
|
48
|
+
*/
|
|
49
|
+
function memoryDataHostPath() {
|
|
50
|
+
return join(homedir(), '.olam', 'memory-data');
|
|
51
|
+
}
|
|
52
|
+
export class MemoryServiceContainerController {
|
|
53
|
+
imageTag = MEMORY_SERVICE_LOCAL_TAG;
|
|
54
|
+
status() {
|
|
55
|
+
const r = spawnSync('docker', ['inspect', '--format', '{{.State.Status}}|{{.Id}}', MEMORY_SERVICE_CONTAINER], { encoding: 'utf-8' });
|
|
56
|
+
if (r.status === 0) {
|
|
57
|
+
const [stateRaw, id] = r.stdout.trim().split('|');
|
|
58
|
+
return {
|
|
59
|
+
state: stateRaw === 'running' ? 'running' : 'stopped',
|
|
60
|
+
port: MEMORY_SERVICE_PORT,
|
|
61
|
+
containerId: id,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
return { state: 'missing', port: MEMORY_SERVICE_PORT };
|
|
65
|
+
}
|
|
66
|
+
imageExists(tag = this.imageTag) {
|
|
67
|
+
return spawnSync('docker', ['image', 'inspect', tag], { encoding: 'utf-8' }).status === 0;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Resolve the first available image tag: local → dev → published.
|
|
71
|
+
* Throws if none exist (operator should run `olam bootstrap` to pull, or
|
|
72
|
+
* `node packages/cli/scripts/build-memory-service-image.mjs` to build locally).
|
|
73
|
+
*/
|
|
74
|
+
resolveImage() {
|
|
75
|
+
for (const tag of [MEMORY_SERVICE_LOCAL_TAG, MEMORY_SERVICE_DEV_TAG, MEMORY_SERVICE_PUBLISHED_TAG]) {
|
|
76
|
+
if (this.imageExists(tag))
|
|
77
|
+
return tag;
|
|
78
|
+
}
|
|
79
|
+
throw new Error(`memory-service image not found. Tried: ${MEMORY_SERVICE_LOCAL_TAG}, ${MEMORY_SERVICE_DEV_TAG}, ${MEMORY_SERVICE_PUBLISHED_TAG}. ` +
|
|
80
|
+
'Run `olam bootstrap` to pull the published image, or `node packages/cli/scripts/build-memory-service-image.mjs` to build locally.');
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Idempotent start. If already running → return. If stopped → docker start.
|
|
84
|
+
* If missing → ensure secret + bind-mount dir, then docker run with port-forward
|
|
85
|
+
* + memory-data volume mount + restart policy + bearer-secret env.
|
|
86
|
+
*
|
|
87
|
+
* The bearer secret is read from `~/.olam/memory-secret` (generated on first
|
|
88
|
+
* call via `ensureMemorySecret()`) and passed as `AGENTMEMORY_SECRET`. The
|
|
89
|
+
* container's agentmemory CLI requires this for the livez probe + all API
|
|
90
|
+
* calls; without it the container will start but reject every request as 401.
|
|
91
|
+
*/
|
|
92
|
+
start() {
|
|
93
|
+
const current = this.status();
|
|
94
|
+
if (current.state === 'running')
|
|
95
|
+
return;
|
|
96
|
+
if (current.state === 'stopped') {
|
|
97
|
+
execFileSync('docker', ['start', MEMORY_SERVICE_CONTAINER], { stdio: 'pipe' });
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
this.imageTag = this.resolveImage();
|
|
101
|
+
const memoryData = memoryDataHostPath();
|
|
102
|
+
const secret = ensureMemorySecret();
|
|
103
|
+
// Pre-create the host path with the operator's UID. Without this,
|
|
104
|
+
// dockerd on Linux auto-creates the bind-mount target as root:root,
|
|
105
|
+
// which breaks subsequent host-side reads from the operator's UID
|
|
106
|
+
// (EACCES). macOS Docker Desktop's user-mapped binds don't bite
|
|
107
|
+
// here but the explicit mkdir is portable + cheap.
|
|
108
|
+
fs.mkdirSync(memoryData, { recursive: true });
|
|
109
|
+
execFileSync('docker', [
|
|
110
|
+
'run',
|
|
111
|
+
'--detach',
|
|
112
|
+
'--name', MEMORY_SERVICE_CONTAINER,
|
|
113
|
+
'--restart', 'unless-stopped',
|
|
114
|
+
// Bind to 127.0.0.1 ONLY at the host port level — local-only by design.
|
|
115
|
+
'--publish', `127.0.0.1:${MEMORY_SERVICE_PORT}:${MEMORY_SERVICE_PORT}`,
|
|
116
|
+
// host-gateway lets this container reach the host. Worlds reach
|
|
117
|
+
// memory-service via the published 127.0.0.1:3111 PLUS their OWN
|
|
118
|
+
// --add-host flag configured in the world-create code path.
|
|
119
|
+
'--add-host', 'host.docker.internal:host-gateway',
|
|
120
|
+
// Bearer secret for all /agentmemory/* requests.
|
|
121
|
+
'--env', `AGENTMEMORY_SECRET=${secret}`,
|
|
122
|
+
// Bind to all interfaces inside the container; the host-port publish
|
|
123
|
+
// restricts access to 127.0.0.1 externally.
|
|
124
|
+
'--env', 'AGENTMEMORY_HOST=0.0.0.0',
|
|
125
|
+
'--env', `AGENTMEMORY_PORT=${MEMORY_SERVICE_PORT}`,
|
|
126
|
+
// Mount the operator's memory-data root so iii-engine state persists.
|
|
127
|
+
'--volume', `${memoryData}:${MEMORY_SERVICE_VOLUME_TARGET}`,
|
|
128
|
+
this.imageTag,
|
|
129
|
+
], { stdio: 'pipe' });
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Returns true when no memory-service image exists locally — useful for
|
|
133
|
+
* callers (e.g. servicesUp) to distinguish "operator opted out of
|
|
134
|
+
* memory-service" from "memory-service was supposed to work but is broken".
|
|
135
|
+
* The opted-out case should be silent; the broken case should warn.
|
|
136
|
+
*/
|
|
137
|
+
imageMissingEverywhere() {
|
|
138
|
+
return (!this.imageExists(MEMORY_SERVICE_LOCAL_TAG) &&
|
|
139
|
+
!this.imageExists(MEMORY_SERVICE_DEV_TAG) &&
|
|
140
|
+
!this.imageExists(MEMORY_SERVICE_PUBLISHED_TAG));
|
|
141
|
+
}
|
|
142
|
+
stop() {
|
|
143
|
+
const current = this.status();
|
|
144
|
+
if (current.state !== 'running')
|
|
145
|
+
return;
|
|
146
|
+
execFileSync('docker', ['stop', MEMORY_SERVICE_CONTAINER], { stdio: 'pipe' });
|
|
147
|
+
}
|
|
148
|
+
remove() {
|
|
149
|
+
spawnSync('docker', ['rm', '-f', MEMORY_SERVICE_CONTAINER], { stdio: 'pipe' });
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Poll /agentmemory/livez until 200 OK with `{status: "ok"}` body OR
|
|
153
|
+
* timeoutMs elapses. The probe is bearer-authenticated; without the secret
|
|
154
|
+
* header agentmemory returns 401 regardless of container state.
|
|
155
|
+
*
|
|
156
|
+
* Divergence from kg-service: kg-service's `/health` is unauthenticated and
|
|
157
|
+
* returns `{ready: true}` once bge-small is loaded. memory-service's
|
|
158
|
+
* `/agentmemory/livez` returns `{status: "ok"}` once iii-engine accepts
|
|
159
|
+
* connections — there's no equivalent "model warmed" state to wait for.
|
|
160
|
+
*/
|
|
161
|
+
async waitForReady(timeoutMs = MEMORY_SERVICE_HEALTH_TIMEOUT_MS) {
|
|
162
|
+
const secret = ensureMemorySecret();
|
|
163
|
+
const deadline = Date.now() + timeoutMs;
|
|
164
|
+
while (Date.now() < deadline) {
|
|
165
|
+
try {
|
|
166
|
+
const res = await fetch(MEMORY_SERVICE_HEALTH_URL, {
|
|
167
|
+
headers: { authorization: `Bearer ${secret}` },
|
|
168
|
+
signal: AbortSignal.timeout(1_500),
|
|
169
|
+
});
|
|
170
|
+
if (res.ok) {
|
|
171
|
+
const body = (await res.json());
|
|
172
|
+
if (body.status === 'ok')
|
|
173
|
+
return true;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
catch {
|
|
177
|
+
// not ready yet (connection refused, container booting, network race)
|
|
178
|
+
}
|
|
179
|
+
await sleep(500);
|
|
180
|
+
}
|
|
181
|
+
return false;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
function sleep(ms) {
|
|
185
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
186
|
+
}
|
|
187
|
+
//# sourceMappingURL=memory-service-container.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-service-container.js","sourceRoot":"","sources":["../../src/commands/memory-service-container.ts"],"names":[],"mappings":"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"}
|
|
@@ -55,9 +55,24 @@ export declare function servicesDownKubernetes(deps?: ServicesKubernetesDeps): P
|
|
|
55
55
|
* the compose table shape: NAME | STATUS | IMAGE | AGE | RESTARTS.
|
|
56
56
|
*/
|
|
57
57
|
export declare function servicesStatusKubernetes(deps?: ServicesKubernetesDeps): Promise<void>;
|
|
58
|
+
/**
|
|
59
|
+
* Normalize a user-supplied service name to the k8s Deployment name form.
|
|
60
|
+
*
|
|
61
|
+
* All olam peripheral Deployments are named `olam-<short-name>` in the k8s
|
|
62
|
+
* manifests (e.g. `olam-kg-service`, `olam-auth-service`). When the operator
|
|
63
|
+
* types `olam services restart kg-service` the CLI must prepend `olam-` before
|
|
64
|
+
* calling `kubectl rollout restart deployment/olam-kg-service`.
|
|
65
|
+
*
|
|
66
|
+
* Idempotent: if the user already types the full name (`olam-kg-service`), the
|
|
67
|
+
* prefix is NOT doubled → `olam-kg-service` (NOT `olam-olam-kg-service`).
|
|
68
|
+
*
|
|
69
|
+
* Exported for unit testing (C1 — R3-D).
|
|
70
|
+
*/
|
|
71
|
+
export declare function normalizeK8sDeploymentName(name: string): string;
|
|
58
72
|
/**
|
|
59
73
|
* `olam services restart <name>` on kubernetes substrate.
|
|
60
|
-
* Uses `kubectl rollout restart deployment
|
|
74
|
+
* Uses `kubectl rollout restart deployment/olam-<name>`.
|
|
75
|
+
* Prepends `olam-` to the user-supplied name (idempotent — no double-prefix).
|
|
61
76
|
*/
|
|
62
77
|
export declare function servicesRestartKubernetes(name: string, deps?: ServicesKubernetesDeps): Promise<{
|
|
63
78
|
exitCode: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../src/commands/services.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../src/commands/services.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgBzC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAyBrD,KAAK,cAAc,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAExD,UAAU,eAAe;IACvB,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,qBAAa,0BAA0B;IACrC,OAAO,CAAC,QAAQ,CAA8B;IAE9C,MAAM,IAAI,eAAe;IAiBzB,OAAO,CAAC,WAAW;IAInB,KAAK,IAAI,IAAI;IAgCb,IAAI,IAAI,IAAI;IAMZ,MAAM,IAAI,IAAI;IAIR,YAAY,CAAC,SAAS,SAA6B,GAAG,OAAO,CAAC,OAAO,CAAC;CAa7E;AA6BD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,WAAW,CAAC;IAC9C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,GAAE,sBAA2B,GAChC,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CA2B/B;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,IAAI,GAAE,sBAA2B,GAChC,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CA0B/B;AAED;;;;GAIG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,GAAE,sBAA2B,GAChC,OAAO,CAAC,IAAI,CAAC,CA6Cf;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAG/D;AAED;;;;GAIG;AACH,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,sBAA2B,GAChC,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAwB/B;AA4BD,wBAAsB,UAAU,IAAI,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAwIhE;AAED,mCAAmC;AACnC,wBAAgB,YAAY,IAAI;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAwCnD;AAED,6CAA6C;AAC7C,wBAAgB,cAAc,IAAI,IAAI,CA2CrC;AAID,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2DvD"}
|
|
@@ -18,6 +18,7 @@ import pc from 'picocolors';
|
|
|
18
18
|
import { AuthContainerController } from '@olam/core/src/auth/index.js';
|
|
19
19
|
import { printError, printHeader, printInfo, printSuccess, printWarning } from '../output.js';
|
|
20
20
|
import { KG_SERVICE_HEALTH_TIMEOUT_MS, KG_SERVICE_PORT, KgServiceContainerController, } from './kg-service-container.js';
|
|
21
|
+
import { MEMORY_SERVICE_HEALTH_TIMEOUT_MS, MEMORY_SERVICE_PORT, MemoryServiceContainerController, } from './memory-service-container.js';
|
|
21
22
|
import { readConfig } from '../lib/config.js';
|
|
22
23
|
import { kubectlWrap } from '../lib/kubectl-wrap.js';
|
|
23
24
|
import { PERIPHERALS } from '../lib/peripheral-registry.js';
|
|
@@ -143,19 +144,19 @@ export async function servicesUpKubernetes(deps = {}) {
|
|
|
143
144
|
printHeader('Services up (kubernetes)');
|
|
144
145
|
let exitCode = 0;
|
|
145
146
|
for (const peripheral of PERIPHERALS) {
|
|
146
|
-
const
|
|
147
|
+
const deploymentName = normalizeK8sDeploymentName(peripheral.name);
|
|
147
148
|
const result = await wrap([
|
|
148
149
|
'--context', context,
|
|
149
|
-
'scale', `deployment/${
|
|
150
|
+
'scale', `deployment/${deploymentName}`,
|
|
150
151
|
'--replicas=1',
|
|
151
152
|
'-n', K8S_NAMESPACE,
|
|
152
153
|
], { timeout: 30_000 });
|
|
153
154
|
if (!result.ok) {
|
|
154
|
-
printWarning(`${
|
|
155
|
+
printWarning(`${deploymentName}: scale failed — ${result.stderr.split('\n')[0] ?? ''} (try olam upgrade to apply manifests)`);
|
|
155
156
|
exitCode = 1;
|
|
156
157
|
}
|
|
157
158
|
else {
|
|
158
|
-
printSuccess(`${
|
|
159
|
+
printSuccess(`${deploymentName}: scaled to 1 replica`);
|
|
159
160
|
}
|
|
160
161
|
}
|
|
161
162
|
return { exitCode };
|
|
@@ -172,19 +173,19 @@ export async function servicesDownKubernetes(deps = {}) {
|
|
|
172
173
|
const { context } = ctx;
|
|
173
174
|
let exitCode = 0;
|
|
174
175
|
for (const peripheral of PERIPHERALS) {
|
|
175
|
-
const
|
|
176
|
+
const deploymentName = normalizeK8sDeploymentName(peripheral.name);
|
|
176
177
|
const result = await wrap([
|
|
177
178
|
'--context', context,
|
|
178
|
-
'scale', `deployment/${
|
|
179
|
+
'scale', `deployment/${deploymentName}`,
|
|
179
180
|
'--replicas=0',
|
|
180
181
|
'-n', K8S_NAMESPACE,
|
|
181
182
|
], { timeout: 30_000 });
|
|
182
183
|
if (!result.ok) {
|
|
183
|
-
printError(`${
|
|
184
|
+
printError(`${deploymentName}: scale down failed — ${result.stderr.split('\n')[0] ?? ''}`);
|
|
184
185
|
exitCode = 1;
|
|
185
186
|
}
|
|
186
187
|
else {
|
|
187
|
-
printSuccess(`${
|
|
188
|
+
printSuccess(`${deploymentName}: scaled to 0 replicas`);
|
|
188
189
|
}
|
|
189
190
|
}
|
|
190
191
|
return { exitCode };
|
|
@@ -233,9 +234,28 @@ export async function servicesStatusKubernetes(deps = {}) {
|
|
|
233
234
|
printInfo('', ` ${name.padEnd(24)} ${statusStr.padEnd(10 + (status === 'running' ? pc.green('').length : pc.yellow('').length))} ${shortImage.padEnd(44)} ${age.padEnd(8)} —`);
|
|
234
235
|
}
|
|
235
236
|
}
|
|
237
|
+
/**
|
|
238
|
+
* Normalize a user-supplied service name to the k8s Deployment name form.
|
|
239
|
+
*
|
|
240
|
+
* All olam peripheral Deployments are named `olam-<short-name>` in the k8s
|
|
241
|
+
* manifests (e.g. `olam-kg-service`, `olam-auth-service`). When the operator
|
|
242
|
+
* types `olam services restart kg-service` the CLI must prepend `olam-` before
|
|
243
|
+
* calling `kubectl rollout restart deployment/olam-kg-service`.
|
|
244
|
+
*
|
|
245
|
+
* Idempotent: if the user already types the full name (`olam-kg-service`), the
|
|
246
|
+
* prefix is NOT doubled → `olam-kg-service` (NOT `olam-olam-kg-service`).
|
|
247
|
+
*
|
|
248
|
+
* Exported for unit testing (C1 — R3-D).
|
|
249
|
+
*/
|
|
250
|
+
export function normalizeK8sDeploymentName(name) {
|
|
251
|
+
if (name.startsWith('olam-'))
|
|
252
|
+
return name;
|
|
253
|
+
return `olam-${name}`;
|
|
254
|
+
}
|
|
236
255
|
/**
|
|
237
256
|
* `olam services restart <name>` on kubernetes substrate.
|
|
238
|
-
* Uses `kubectl rollout restart deployment
|
|
257
|
+
* Uses `kubectl rollout restart deployment/olam-<name>`.
|
|
258
|
+
* Prepends `olam-` to the user-supplied name (idempotent — no double-prefix).
|
|
239
259
|
*/
|
|
240
260
|
export async function servicesRestartKubernetes(name, deps = {}) {
|
|
241
261
|
const ctx = assertK8sContext(deps.configPath);
|
|
@@ -243,17 +263,18 @@ export async function servicesRestartKubernetes(name, deps = {}) {
|
|
|
243
263
|
return { exitCode: 1 };
|
|
244
264
|
const wrap = deps.kubectlWrapImpl ?? kubectlWrap;
|
|
245
265
|
const { context } = ctx;
|
|
266
|
+
const deploymentName = normalizeK8sDeploymentName(name);
|
|
246
267
|
const result = await wrap([
|
|
247
268
|
'--context', context,
|
|
248
269
|
'rollout', 'restart',
|
|
249
|
-
`deployment/${
|
|
270
|
+
`deployment/${deploymentName}`,
|
|
250
271
|
'-n', K8S_NAMESPACE,
|
|
251
272
|
], { timeout: 30_000 });
|
|
252
273
|
if (!result.ok) {
|
|
253
|
-
printError(`rollout restart ${
|
|
274
|
+
printError(`rollout restart ${deploymentName} failed: ${result.stderr.split('\n')[0] ?? ''}`);
|
|
254
275
|
return { exitCode: 1 };
|
|
255
276
|
}
|
|
256
|
-
printSuccess(`${
|
|
277
|
+
printSuccess(`${deploymentName}: rollout restart triggered`);
|
|
257
278
|
return { exitCode: 0 };
|
|
258
279
|
}
|
|
259
280
|
// ── Services orchestration ────────────────────────────────────────
|
|
@@ -285,6 +306,7 @@ export async function servicesUp() {
|
|
|
285
306
|
const auth = new AuthContainerController();
|
|
286
307
|
const mcpAuth = new McpAuthContainerController();
|
|
287
308
|
const kgService = new KgServiceContainerController();
|
|
309
|
+
const memoryService = new MemoryServiceContainerController();
|
|
288
310
|
// Start olam-auth
|
|
289
311
|
const authStatus = auth.status();
|
|
290
312
|
if (authStatus.state === 'running') {
|
|
@@ -371,10 +393,47 @@ export async function servicesUp() {
|
|
|
371
393
|
await kgService.prewarm();
|
|
372
394
|
printSuccess('olam-kg-service started + pre-warmed');
|
|
373
395
|
}
|
|
396
|
+
// Start olam-memory-service (memory-service-as-docker-peripheral Phase A4).
|
|
397
|
+
// Same opted-out vs broken pattern as kg-service.
|
|
398
|
+
const memoryStatus = memoryService.status();
|
|
399
|
+
if (memoryStatus.state === 'running') {
|
|
400
|
+
printSuccess(`olam-memory-service already running on :${memoryStatus.port}`);
|
|
401
|
+
}
|
|
402
|
+
else if (memoryService.imageMissingEverywhere()) {
|
|
403
|
+
printInfo('olam-memory-service', 'skipped (no image; run `olam bootstrap` to pull)');
|
|
404
|
+
}
|
|
405
|
+
else {
|
|
406
|
+
try {
|
|
407
|
+
memoryService.start();
|
|
408
|
+
}
|
|
409
|
+
catch (err) {
|
|
410
|
+
const errMsg = err instanceof Error ? err.message : String(err);
|
|
411
|
+
const stderr = err instanceof Error && 'stderr' in err
|
|
412
|
+
? String(err.stderr ?? '').trim()
|
|
413
|
+
: '';
|
|
414
|
+
printWarning(`olam-memory-service not started: ${errMsg}${stderr ? `\n stderr: ${stderr}` : ''}`);
|
|
415
|
+
// Non-fatal — memory-service is optional during Phase A coexistence with
|
|
416
|
+
// the legacy host-process model. Operators on the host-process path
|
|
417
|
+
// continue working.
|
|
418
|
+
printHeader('Services up');
|
|
419
|
+
printInfo('olam-auth', ':9999');
|
|
420
|
+
printInfo('olam-mcp-auth', ':9998');
|
|
421
|
+
printInfo('olam-kg-service', `:${KG_SERVICE_PORT}`);
|
|
422
|
+
return { exitCode: 0 };
|
|
423
|
+
}
|
|
424
|
+
const ready = await memoryService.waitForReady();
|
|
425
|
+
if (!ready) {
|
|
426
|
+
printError(`olam-memory-service started but /agentmemory/livez did not respond within ${MEMORY_SERVICE_HEALTH_TIMEOUT_MS / 1000}s.`);
|
|
427
|
+
dumpContainerLogs('olam-memory-service');
|
|
428
|
+
return { exitCode: 1 };
|
|
429
|
+
}
|
|
430
|
+
printSuccess('olam-memory-service started');
|
|
431
|
+
}
|
|
374
432
|
printHeader('Services up');
|
|
375
433
|
printInfo('olam-auth', ':9999');
|
|
376
434
|
printInfo('olam-mcp-auth', ':9998');
|
|
377
435
|
printInfo('olam-kg-service', `:${KG_SERVICE_PORT}`);
|
|
436
|
+
printInfo('olam-memory-service', `:${MEMORY_SERVICE_PORT}`);
|
|
378
437
|
return { exitCode: 0 };
|
|
379
438
|
}
|
|
380
439
|
/** Stop all service containers. */
|
|
@@ -382,6 +441,7 @@ export function servicesDown() {
|
|
|
382
441
|
const auth = new AuthContainerController();
|
|
383
442
|
const mcpAuth = new McpAuthContainerController();
|
|
384
443
|
const kgService = new KgServiceContainerController();
|
|
444
|
+
const memoryService = new MemoryServiceContainerController();
|
|
385
445
|
let exitCode = 0;
|
|
386
446
|
try {
|
|
387
447
|
auth.stop();
|
|
@@ -407,6 +467,14 @@ export function servicesDown() {
|
|
|
407
467
|
printError(`olam-kg-service: ${err instanceof Error ? err.message : String(err)}`);
|
|
408
468
|
exitCode = 1;
|
|
409
469
|
}
|
|
470
|
+
try {
|
|
471
|
+
memoryService.stop();
|
|
472
|
+
printSuccess('olam-memory-service stopped.');
|
|
473
|
+
}
|
|
474
|
+
catch (err) {
|
|
475
|
+
printError(`olam-memory-service: ${err instanceof Error ? err.message : String(err)}`);
|
|
476
|
+
exitCode = 1;
|
|
477
|
+
}
|
|
410
478
|
return { exitCode };
|
|
411
479
|
}
|
|
412
480
|
/** Show container state for all services. */
|
|
@@ -414,6 +482,7 @@ export function servicesStatus() {
|
|
|
414
482
|
const auth = new AuthContainerController();
|
|
415
483
|
const mcpAuth = new McpAuthContainerController();
|
|
416
484
|
const kgService = new KgServiceContainerController();
|
|
485
|
+
const memoryService = new MemoryServiceContainerController();
|
|
417
486
|
printHeader('Services status');
|
|
418
487
|
const authState = auth.status();
|
|
419
488
|
const authStateStr = authState.state === 'running'
|
|
@@ -436,6 +505,13 @@ export function servicesStatus() {
|
|
|
436
505
|
? pc.yellow('stopped')
|
|
437
506
|
: pc.red('missing');
|
|
438
507
|
printInfo('olam-kg-service', `${kgStateStr} :${kgState.port}`);
|
|
508
|
+
const memState = memoryService.status();
|
|
509
|
+
const memStateStr = memState.state === 'running'
|
|
510
|
+
? pc.green('running')
|
|
511
|
+
: memState.state === 'stopped'
|
|
512
|
+
? pc.yellow('stopped')
|
|
513
|
+
: pc.red('missing');
|
|
514
|
+
printInfo('olam-memory-service', `${memStateStr} :${memState.port}`);
|
|
439
515
|
}
|
|
440
516
|
// ── Commander registration ────────────────────────────────────────
|
|
441
517
|
export function registerServices(program) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"services.js","sourceRoot":"","sources":["../../src/commands/services.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC9F,OAAO,EACL,4BAA4B,EAC5B,eAAe,EACf,4BAA4B,GAC7B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAElE,qEAAqE;AACrE,EAAE;AACF,yEAAyE;AACzE,wEAAwE;AACxE,yBAAyB;AAEzB,MAAM,aAAa,GAAG,IAAI,CAAC;AAC3B,MAAM,eAAe,GAAG,oBAAoB,CAAC;AAC7C,MAAM,kBAAkB,GAAG,eAAe,CAAC;AAC3C,MAAM,kBAAkB,GAAG,qBAAqB,CAAC;AACjD,MAAM,sBAAsB,GAAG,oCAAoC,CAAC;AACpE,MAAM,mBAAmB,GAAG,oBAAoB,aAAa,SAAS,CAAC;AACvE,qEAAqE;AACrE,qEAAqE;AACrE,mEAAmE;AACnE,8DAA8D;AAC9D,qEAAqE;AACrE,oEAAoE;AACpE,sEAAsE;AACtE,MAAM,0BAA0B,GAAG,MAAM,CAAC;AAU1C,MAAM,OAAO,0BAA0B;IAC7B,QAAQ,GAAW,kBAAkB,CAAC;IAE9C,MAAM;QACJ,MAAM,CAAC,GAAG,SAAS,CACjB,QAAQ,EACR,CAAC,SAAS,EAAE,UAAU,EAAE,2BAA2B,EAAE,kBAAkB,CAAC,EACxE,EAAE,QAAQ,EAAE,OAAO,EAAE,CACtB,CAAC;QACF,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnB,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAClD,OAAO;gBACL,KAAK,EAAE,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;gBACrD,IAAI,EAAE,aAAa;gBACnB,WAAW,EAAE,EAAE;aAChB,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;IACnD,CAAC;IAEO,WAAW,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ;QACrC,OAAO,SAAS,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;IAC5F,CAAC;IAED,KAAK;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC9B,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;YAAE,OAAO;QACxC,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAChC,YAAY,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,kBAAkB,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YACzE,OAAO;QACT,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,IAAI,IAAI,CAAC,QAAQ,KAAK,sBAAsB,IAAI,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,EAAE,CAAC;gBACzF,IAAI,CAAC,QAAQ,GAAG,sBAAsB,CAAC;YACzC,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CACb,mBAAmB,IAAI,CAAC,QAAQ,uBAAuB;oBACrD,mDAAmD,CACtD,CAAC;YACJ,CAAC;QACH,CAAC;QACD,YAAY,CACV,QAAQ,EACR;YACE,KAAK;YACL,UAAU;YACV,QAAQ,EAAE,kBAAkB;YAC5B,WAAW,EAAE,gBAAgB;YAC7B,WAAW,EAAE,GAAG,aAAa,IAAI,aAAa,EAAE;YAChD,UAAU,EAAE,GAAG,eAAe,iBAAiB;YAC/C,IAAI,CAAC,QAAQ;SACd,EACD,EAAE,KAAK,EAAE,MAAM,EAAE,CAClB,CAAC;IACJ,CAAC;IAED,IAAI;QACF,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC9B,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;YAAE,OAAO;QACxC,YAAY,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM;QACJ,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,kBAAkB,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,SAAS,GAAG,0BAA0B;QACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACxC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,mBAAmB,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACrF,IAAI,GAAG,CAAC,EAAE;oBAAE,OAAO,IAAI,CAAC;YAC1B,CAAC;YAAC,MAAM,CAAC;gBACP,gBAAgB;YAClB,CAAC;YACD,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,oEAAoE;AAEpE,MAAM,aAAa,GAAG,MAAM,CAAC;AAE7B;yFACyF;AACzF,SAAS,gBAAgB,CAAC,UAAmB;IAC3C,MAAM,QAAQ,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;IACnD,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACnE,UAAU,CACR,CAAC,QAAQ,CAAC,KAAK,IAAI,yBAAyB,CAAC;YAC3C,iFAAiF,CACpF,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,QAAQ,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;QAC9C,YAAY,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;AACvC,CAAC;AASD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,OAA+B,EAAE;IAEjC,MAAM,GAAG,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9C,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IACjC,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,IAAI,WAAW,CAAC;IACjD,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC;IAExB,WAAW,CAAC,0BAA0B,CAAC,CAAC;IACxC,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;QAC7B,MAAM,MAAM,GAAG,MAAM,IAAI,CACvB;YACE,WAAW,EAAE,OAAO;YACpB,OAAO,EAAE,cAAc,IAAI,EAAE;YAC7B,cAAc;YACd,IAAI,EAAE,aAAa;SACpB,EACD,EAAE,OAAO,EAAE,MAAM,EAAE,CACpB,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,YAAY,CAAC,GAAG,IAAI,oBAAoB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,wCAAwC,CAAC,CAAC;YACpH,QAAQ,GAAG,CAAC,CAAC;QACf,CAAC;aAAM,CAAC;YACN,YAAY,CAAC,GAAG,IAAI,uBAAuB,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,CAAC;AACtB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,OAA+B,EAAE;IAEjC,MAAM,GAAG,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9C,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IACjC,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,IAAI,WAAW,CAAC;IACjD,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC;IAExB,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;QAC7B,MAAM,MAAM,GAAG,MAAM,IAAI,CACvB;YACE,WAAW,EAAE,OAAO;YACpB,OAAO,EAAE,cAAc,IAAI,EAAE;YAC7B,cAAc;YACd,IAAI,EAAE,aAAa;SACpB,EACD,EAAE,OAAO,EAAE,MAAM,EAAE,CACpB,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,UAAU,CAAC,GAAG,IAAI,yBAAyB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACjF,QAAQ,GAAG,CAAC,CAAC;QACf,CAAC;aAAM,CAAC;YACN,YAAY,CAAC,GAAG,IAAI,wBAAwB,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,CAAC;AACtB,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,OAA+B,EAAE;IAEjC,MAAM,GAAG,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9C,IAAI,CAAC,GAAG;QAAE,OAAO;IACjB,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,IAAI,WAAW,CAAC;IACjD,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC;IAExB,WAAW,CAAC,8BAA8B,CAAC,CAAC;IAE5C,MAAM,MAAM,GAAG,MAAM,IAAI,CACvB;QACE,WAAW,EAAE,OAAO;QACpB,KAAK,EAAE,YAAY;QACnB,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,MAAM;KACb,EACD,EAAE,OAAO,EAAE,MAAM,EAAE,CACpB,CAAC;IAEF,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,UAAU,CAAC,kCAAkC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACnF,OAAO;IACT,CAAC;IAED,kEAAkE;IAClE,0FAA0F;IAC1F,kDAAkD;IAClD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC;IACrH,MAAM,OAAO,GAAG,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACvC,SAAS,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACtB,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAEvB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,aAAa;QAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;QACjC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC;QACrC,0DAA0D;QAC1D,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,KAAK,CAAC;QACnD,MAAM,MAAM,GAAG,SAAS,KAAK,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;QAC1E,MAAM,SAAS,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC9E,SAAS,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACtL,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,IAAY,EACZ,OAA+B,EAAE;IAEjC,MAAM,GAAG,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9C,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IACjC,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,IAAI,WAAW,CAAC;IACjD,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC;IAExB,MAAM,MAAM,GAAG,MAAM,IAAI,CACvB;QACE,WAAW,EAAE,OAAO;QACpB,SAAS,EAAE,SAAS;QACpB,cAAc,IAAI,EAAE;QACpB,IAAI,EAAE,aAAa;KACpB,EACD,EAAE,OAAO,EAAE,MAAM,EAAE,CACpB,CAAC;IAEF,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,UAAU,CAAC,mBAAmB,IAAI,YAAY,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACpF,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IACzB,CAAC;IACD,YAAY,CAAC,GAAG,IAAI,6BAA6B,CAAC,CAAC;IACnD,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;AACzB,CAAC;AAED,qEAAqE;AAErE,8CAA8C;AAC9C;;;;;;GAMG;AACH,SAAS,iBAAiB,CAAC,SAAiB,EAAE,IAAI,GAAG,EAAE;IACrD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,EAAE;YAC9E,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;SAClC,CAAC,CAAC;QACH,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;QAC1D,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,IAAI,6BAA6B,SAAS,UAAU,CAAC,CAAC;YAC3F,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,MAAM,IAAI,GAAG,IAAI,uBAAuB,EAAE,CAAC;IAC3C,MAAM,OAAO,GAAG,IAAI,0BAA0B,EAAE,CAAC;IACjD,MAAM,SAAS,GAAG,IAAI,4BAA4B,EAAE,CAAC;IAErD,kBAAkB;IAClB,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IACjC,IAAI,UAAU,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACnC,YAAY,CAAC,iCAAiC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;IACnE,CAAC;SAAM,CAAC;QACN,IAAI,CAAC;YACH,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,UAAU,CAAC,8BAA8B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC7F,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;QACzB,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,0BAA0B,CAAC,CAAC;QAClE,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,UAAU,CAAC,wDAAwD,0BAA0B,GAAG,IAAI,IAAI,CAAC,CAAC;YAC1G,iBAAiB,CAAC,WAAW,CAAC,CAAC;YAC/B,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;QACzB,CAAC;QACD,YAAY,CAAC,mBAAmB,CAAC,CAAC;IACpC,CAAC;IAED,sBAAsB;IACtB,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IACnC,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAClC,YAAY,CAAC,qCAAqC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;IACtE,CAAC;SAAM,CAAC;QACN,IAAI,CAAC;YACH,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,UAAU,CAAC,kCAAkC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACjG,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;QACzB,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,YAAY,EAAE,CAAC;QAC3C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,UAAU,CAAC,4DAA4D,0BAA0B,GAAG,IAAI,IAAI,CAAC,CAAC;YAC9G,iBAAiB,CAAC,eAAe,CAAC,CAAC;YACnC,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;QACzB,CAAC;QACD,YAAY,CAAC,uBAAuB,CAAC,CAAC;IACxC,CAAC;IAED,wBAAwB;IACxB,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;IACpC,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACjC,YAAY,CAAC,uCAAuC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACvE,CAAC;SAAM,IAAI,SAAS,CAAC,sBAAsB,EAAE,EAAE,CAAC;QAC9C,oEAAoE;QACpE,oEAAoE;QACpE,uEAAuE;QACvE,uCAAuC;QACvC,SAAS,CAAC,iBAAiB,EAAE,kDAAkD,CAAC,CAAC;QACjF,WAAW,CAAC,aAAa,CAAC,CAAC;QAC3B,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAChC,SAAS,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QACpC,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IACzB,CAAC;SAAM,CAAC;QACN,IAAI,CAAC;YACH,SAAS,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,gEAAgE;YAChE,kEAAkE;YAClE,yBAAyB;YACzB,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAChE,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,IAAI,QAAQ,IAAI,GAAG;gBACpD,CAAC,CAAC,MAAM,CAAE,GAAmC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;gBAClE,CAAC,CAAC,EAAE,CAAC;YACP,YAAY,CACV,gCAAgC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,eAAe,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CACjF,CAAC;YACF,WAAW,CAAC,aAAa,CAAC,CAAC;YAC3B,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAChC,SAAS,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;YACpC,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;QACzB,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,YAAY,EAAE,CAAC;QAC7C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,UAAU,CACR,8DAA8D,4BAA4B,GAAG,IAAI,IAAI,CACtG,CAAC;YACF,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;YACrC,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;QACzB,CAAC;QACD,yEAAyE;QACzE,MAAM,SAAS,CAAC,OAAO,EAAE,CAAC;QAC1B,YAAY,CAAC,sCAAsC,CAAC,CAAC;IACvD,CAAC;IAED,WAAW,CAAC,aAAa,CAAC,CAAC;IAC3B,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAChC,SAAS,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IACpC,SAAS,CAAC,iBAAiB,EAAE,IAAI,eAAe,EAAE,CAAC,CAAC;IACpD,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;AACzB,CAAC;AAED,mCAAmC;AACnC,MAAM,UAAU,YAAY;IAC1B,MAAM,IAAI,GAAG,IAAI,uBAAuB,EAAE,CAAC;IAC3C,MAAM,OAAO,GAAG,IAAI,0BAA0B,EAAE,CAAC;IACjD,MAAM,SAAS,GAAG,IAAI,4BAA4B,EAAE,CAAC;IACrD,IAAI,QAAQ,GAAG,CAAC,CAAC;IAEjB,IAAI,CAAC;QACH,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,YAAY,CAAC,oBAAoB,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,UAAU,CAAC,cAAc,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC7E,QAAQ,GAAG,CAAC,CAAC;IACf,CAAC;IAED,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,YAAY,CAAC,wBAAwB,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,UAAU,CAAC,kBAAkB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACjF,QAAQ,GAAG,CAAC,CAAC;IACf,CAAC;IAED,IAAI,CAAC;QACH,SAAS,CAAC,IAAI,EAAE,CAAC;QACjB,YAAY,CAAC,0BAA0B,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,UAAU,CAAC,oBAAoB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnF,QAAQ,GAAG,CAAC,CAAC;IACf,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,CAAC;AACtB,CAAC;AAED,6CAA6C;AAC7C,MAAM,UAAU,cAAc;IAC5B,MAAM,IAAI,GAAG,IAAI,uBAAuB,EAAE,CAAC;IAC3C,MAAM,OAAO,GAAG,IAAI,0BAA0B,EAAE,CAAC;IACjD,MAAM,SAAS,GAAG,IAAI,4BAA4B,EAAE,CAAC;IAErD,WAAW,CAAC,iBAAiB,CAAC,CAAC;IAE/B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IAChC,MAAM,YAAY,GAChB,SAAS,CAAC,KAAK,KAAK,SAAS;QAC3B,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;QACrB,CAAC,CAAC,SAAS,CAAC,KAAK,KAAK,SAAS;YAC7B,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC;YACtB,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC1B,SAAS,CAAC,WAAW,EAAE,GAAG,YAAY,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;IAE9D,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAClC,MAAM,WAAW,GACf,QAAQ,CAAC,KAAK,KAAK,SAAS;QAC1B,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;QACrB,CAAC,CAAC,QAAQ,CAAC,KAAK,KAAK,SAAS;YAC5B,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC;YACtB,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC1B,SAAS,CAAC,eAAe,EAAE,GAAG,WAAW,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAEhE,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;IACnC,MAAM,UAAU,GACd,OAAO,CAAC,KAAK,KAAK,SAAS;QACzB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;QACrB,CAAC,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS;YAC3B,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC;YACtB,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC1B,SAAS,CAAC,iBAAiB,EAAE,GAAG,UAAU,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;AAClE,CAAC;AAED,qEAAqE;AAErE,MAAM,UAAU,gBAAgB,CAAC,OAAgB;IAC/C,MAAM,QAAQ,GAAG,OAAO;SACrB,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,gGAAgG,CAAC,CAAC;IAEjH,QAAQ;SACL,OAAO,CAAC,IAAI,CAAC;SACb,WAAW,CAAC,2CAA2C,CAAC;SACxD,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC;QACzB,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,YAAY,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,MAAM,oBAAoB,EAAE,CAAC;YAC5C,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC;gBAAE,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChE,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;YAClC,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC;gBAAE,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChE,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,QAAQ;SACL,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,6BAA6B,CAAC;SAC1C,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC;QACzB,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,YAAY,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,MAAM,sBAAsB,EAAE,CAAC;YAC9C,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC;gBAAE,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChE,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;YAC9B,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC;gBAAE,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChE,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,QAAQ;SACL,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,sCAAsC,CAAC;SACnD,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC;QACzB,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,YAAY,EAAE,CAAC;YACxC,MAAM,wBAAwB,EAAE,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,cAAc,EAAE,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,QAAQ;SACL,OAAO,CAAC,gBAAgB,CAAC;SACzB,WAAW,CAAC,gGAAgG,CAAC;SAC7G,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,EAAE;QAC7B,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC;QACzB,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,YAAY,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAAC,IAAI,CAAC,CAAC;YACrD,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC;gBAAE,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChE,CAAC;aAAM,CAAC;YACN,+DAA+D;YAC/D,MAAM,CAAC,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;YAClF,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;QACvD,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
1
|
+
{"version":3,"file":"services.js","sourceRoot":"","sources":["../../src/commands/services.ts"],"names":[],"mappings":"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"}
|