@pleri/olam-cli 0.1.195 → 0.1.198
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +52 -0
- package/dist/ask/knowledge-pack.generated.d.ts.map +1 -1
- package/dist/ask/knowledge-pack.generated.js +12 -8
- package/dist/ask/knowledge-pack.generated.js.map +1 -1
- package/dist/commands/auth-list-json.d.ts +34 -0
- package/dist/commands/auth-list-json.d.ts.map +1 -1
- package/dist/commands/auth-list-json.js +24 -0
- package/dist/commands/auth-list-json.js.map +1 -1
- package/dist/commands/auth-migrate.d.ts +212 -0
- package/dist/commands/auth-migrate.d.ts.map +1 -0
- package/dist/commands/auth-migrate.js +465 -0
- package/dist/commands/auth-migrate.js.map +1 -0
- package/dist/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +239 -184
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/bootstrap.d.ts +4 -0
- package/dist/commands/bootstrap.d.ts.map +1 -1
- package/dist/commands/bootstrap.js +6 -0
- package/dist/commands/bootstrap.js.map +1 -1
- package/dist/commands/dispatch.d.ts.map +1 -1
- package/dist/commands/dispatch.js +11 -1
- package/dist/commands/dispatch.js.map +1 -1
- package/dist/commands/doctor.d.ts +33 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +299 -12
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/kg-mirror.d.ts +18 -2
- package/dist/commands/kg-mirror.d.ts.map +1 -1
- package/dist/commands/kg-mirror.js +78 -3
- package/dist/commands/kg-mirror.js.map +1 -1
- package/dist/commands/mcp/complete.d.ts +36 -0
- package/dist/commands/mcp/complete.d.ts.map +1 -0
- package/dist/commands/mcp/complete.js +66 -0
- package/dist/commands/mcp/complete.js.map +1 -0
- package/dist/commands/mcp/index.d.ts +1 -1
- package/dist/commands/mcp/index.d.ts.map +1 -1
- package/dist/commands/mcp/index.js +3 -1
- package/dist/commands/mcp/index.js.map +1 -1
- package/dist/commands/memory/bridge.d.ts +1 -1
- package/dist/commands/memory/bridge.d.ts.map +1 -1
- package/dist/commands/memory/bridge.js +2 -6
- package/dist/commands/memory/bridge.js.map +1 -1
- package/dist/commands/memory/secret.d.ts.map +1 -1
- package/dist/commands/memory/secret.js +4 -3
- package/dist/commands/memory/secret.js.map +1 -1
- package/dist/commands/observe.d.ts +3 -3
- package/dist/commands/observe.d.ts.map +1 -1
- package/dist/commands/observe.js +11 -8
- package/dist/commands/observe.js.map +1 -1
- package/dist/commands/runbooks.d.ts.map +1 -1
- package/dist/commands/runbooks.js +77 -10
- package/dist/commands/runbooks.js.map +1 -1
- package/dist/commands/services-tls.d.ts.map +1 -1
- package/dist/commands/services-tls.js +65 -10
- package/dist/commands/services-tls.js.map +1 -1
- package/dist/commands/services.d.ts +35 -1
- package/dist/commands/services.d.ts.map +1 -1
- package/dist/commands/services.js +153 -32
- package/dist/commands/services.js.map +1 -1
- package/dist/commands/setup-phase-8-kg-hook.d.ts +48 -0
- package/dist/commands/setup-phase-8-kg-hook.d.ts.map +1 -0
- package/dist/commands/setup-phase-8-kg-hook.js +93 -0
- package/dist/commands/setup-phase-8-kg-hook.js.map +1 -0
- package/dist/commands/setup-phase-9-memory-bridge.d.ts +36 -0
- package/dist/commands/setup-phase-9-memory-bridge.d.ts.map +1 -0
- package/dist/commands/setup-phase-9-memory-bridge.js +59 -0
- package/dist/commands/setup-phase-9-memory-bridge.js.map +1 -0
- package/dist/commands/setup.d.ts +34 -1
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +372 -32
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/skills-source.d.ts.map +1 -1
- package/dist/commands/skills-source.js +70 -1
- package/dist/commands/skills-source.js.map +1 -1
- package/dist/commands/update.d.ts +24 -0
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +53 -0
- package/dist/commands/update.js.map +1 -1
- package/dist/commands/upgrade.d.ts +5 -0
- package/dist/commands/upgrade.d.ts.map +1 -1
- package/dist/commands/upgrade.js +31 -8
- package/dist/commands/upgrade.js.map +1 -1
- package/dist/image-digests.json +8 -8
- package/dist/index.js +4487 -2451
- package/dist/lib/auth-backend.d.ts +168 -0
- package/dist/lib/auth-backend.d.ts.map +1 -0
- package/dist/lib/auth-backend.js +172 -0
- package/dist/lib/auth-backend.js.map +1 -0
- package/dist/lib/auth-list-cache.d.ts +67 -0
- package/dist/lib/auth-list-cache.d.ts.map +1 -0
- package/dist/lib/auth-list-cache.js +84 -0
- package/dist/lib/auth-list-cache.js.map +1 -0
- package/dist/lib/auth-list.d.ts +107 -0
- package/dist/lib/auth-list.d.ts.map +1 -0
- package/dist/lib/auth-list.js +123 -0
- package/dist/lib/auth-list.js.map +1 -0
- package/dist/lib/auth-login.d.ts +92 -0
- package/dist/lib/auth-login.d.ts.map +1 -0
- package/dist/lib/auth-login.js +124 -0
- package/dist/lib/auth-login.js.map +1 -0
- package/dist/lib/auth-mutator-backend.d.ts +54 -0
- package/dist/lib/auth-mutator-backend.d.ts.map +1 -0
- package/dist/lib/auth-mutator-backend.js +62 -0
- package/dist/lib/auth-mutator-backend.js.map +1 -0
- package/dist/lib/auth-remote.d.ts +50 -0
- package/dist/lib/auth-remote.d.ts.map +1 -1
- package/dist/lib/auth-remote.js +84 -2
- package/dist/lib/auth-remote.js.map +1 -1
- package/dist/lib/bootstrap-kubernetes.d.ts +69 -10
- package/dist/lib/bootstrap-kubernetes.d.ts.map +1 -1
- package/dist/lib/bootstrap-kubernetes.js +264 -46
- package/dist/lib/bootstrap-kubernetes.js.map +1 -1
- package/dist/lib/config.d.ts +35 -4
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +82 -11
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/health-probes.d.ts +0 -22
- package/dist/lib/health-probes.d.ts.map +1 -1
- package/dist/lib/health-probes.js +57 -0
- package/dist/lib/health-probes.js.map +1 -1
- package/dist/lib/peripheral-registry.d.ts +11 -0
- package/dist/lib/peripheral-registry.d.ts.map +1 -1
- package/dist/lib/peripheral-registry.js +5 -0
- package/dist/lib/peripheral-registry.js.map +1 -1
- package/dist/lib/plans-client.d.ts.map +1 -1
- package/dist/lib/plans-client.js +6 -3
- package/dist/lib/plans-client.js.map +1 -1
- package/dist/mcp-server.js +138 -6
- package/hermes-bundle/version.json +1 -1
- package/host-cp/k8s/manifests/30-configmap.yaml +4 -0
- package/host-cp/k8s/manifests/50-deployment.yaml +13 -1
- package/host-cp/k8s/manifests/65-tls-secret-template.yaml.tmpl +35 -0
- package/host-cp/k8s/manifests/auth-service/50-deployment.yaml +1 -1
- package/host-cp/k8s/manifests/kg-service/50-deployment.yaml +1 -1
- package/host-cp/k8s/manifests/mcp-auth-service/50-deployment.yaml +1 -1
- package/host-cp/k8s/manifests/memory-service/50-deployment.yaml +1 -1
- package/host-cp/src/dispatch-persister.mjs +157 -0
- package/host-cp/src/pr-nanny.mjs +7 -0
- package/host-cp/src/server.mjs +175 -3
- package/host-cp/src/world-watchdog-pid-lookup.mjs +119 -0
- package/host-cp/src/world-watchdog-probes.mjs +271 -0
- package/host-cp/src/world-watchdog-recovery.mjs +192 -0
- package/host-cp/src/world-watchdog.mjs +313 -0
- package/package.json +1 -1
package/dist/commands/doctor.js
CHANGED
|
@@ -65,6 +65,7 @@ import * as path from 'node:path';
|
|
|
65
65
|
import * as os from 'node:os';
|
|
66
66
|
import { OLAM_HOME, OLAM_CONFIG_PATH, readConfig } from '../lib/config.js';
|
|
67
67
|
import { HERMES_KG_HOOK_SENTINEL } from './hermes-kg-hook.js';
|
|
68
|
+
import { DEFAULT_AUTH_WORKER_URL } from '../lib/auth-login.js';
|
|
68
69
|
/** Default registry prefix for registry-tagged images. Mirrors bootstrap.ts's default. */
|
|
69
70
|
const DEFAULT_REGISTRY = 'ghcr.io/pleri';
|
|
70
71
|
/**
|
|
@@ -144,10 +145,22 @@ export async function runDoctor(opts, deps = {}) {
|
|
|
144
145
|
const slot2Promise = isK8s
|
|
145
146
|
? Promise.resolve({ ok: true, message: 'images probe skipped (kubernetes substrate uses digest-pinned images verified via image-present probe)' })
|
|
146
147
|
: probeImagePresence(imageRefs, dockerExec);
|
|
148
|
+
// B7: when authVaultFetchImpl is explicitly provided (or authWorkerUrlOverride is set),
|
|
149
|
+
// use the new dual-backend probe. Otherwise fall back to the legacy local-only probe
|
|
150
|
+
// so existing callers that don't inject authVaultFetchImpl stay unaffected.
|
|
151
|
+
const useDualBackend = deps.authVaultFetchImpl !== undefined || deps.authWorkerUrlOverride !== undefined;
|
|
152
|
+
const authWorkerUrl = deps.authWorkerUrlOverride ?? resolveAuthWorkerUrlForDoctor();
|
|
147
153
|
const [imageResult, hostCpResult, authResult, kgResult, engineResult, colimaResult] = await Promise.all([
|
|
148
154
|
slot2Promise,
|
|
149
155
|
probeHostCpHealth(fetchImpl),
|
|
150
|
-
|
|
156
|
+
useDualBackend
|
|
157
|
+
? probeAuthVaultBothBackends({
|
|
158
|
+
olamHomeOverride,
|
|
159
|
+
dockerExec,
|
|
160
|
+
authWorkerUrl,
|
|
161
|
+
fetchImpl: deps.authVaultFetchImpl,
|
|
162
|
+
})
|
|
163
|
+
: probeAuthVault(olamHomeOverride),
|
|
151
164
|
probeKgStorage(olamHomeOverride),
|
|
152
165
|
probeEngine(fetchImpl),
|
|
153
166
|
probeColimaVersion(dockerExec),
|
|
@@ -237,23 +250,42 @@ async function runPeripheralProbes(peripheral, startPosition, kubectlContext, wr
|
|
|
237
250
|
// Probe N: Ready — check the pod's Ready condition via kubectl get pod jsonpath.
|
|
238
251
|
// Uses kubelet's view of readiness without requiring any binary inside the container
|
|
239
252
|
// (distroless images don't ship wget/curl, so kubectl exec -- wget always fails).
|
|
253
|
+
//
|
|
254
|
+
// The jsonpath uses a `{range .items[*]}...{end}` form rather than `.items[0]`:
|
|
255
|
+
// an indexed access on an EMPTY items array makes kubectl exit non-zero and
|
|
256
|
+
// print `array index out of bounds: index 0, length 0` to stderr. That error
|
|
257
|
+
// used to leak verbatim into the remedy whenever pods were mid-rollout (0 pods
|
|
258
|
+
// matching the label for a moment) — confusing operators into thinking the
|
|
259
|
+
// infra was broken. The range form returns an empty string for 0 pods with no
|
|
260
|
+
// error, so we can distinguish "no pods yet" from "pod present, not Ready".
|
|
240
261
|
const reachableResult = await (async () => {
|
|
241
262
|
const result = await wrapImpl([
|
|
242
263
|
...ctxArgs,
|
|
243
264
|
'get', 'pod',
|
|
244
265
|
'-n', K8S_NAMESPACE,
|
|
245
266
|
'-l', `app=${peripheral.k8sResourceName}`,
|
|
246
|
-
'-o', `jsonpath={.items[
|
|
267
|
+
'-o', `jsonpath={range .items[*]}{.status.conditions[?(@.type=="Ready")].status}{"\\n"}{end}`,
|
|
247
268
|
], { timeout: 5_000 });
|
|
248
|
-
const
|
|
249
|
-
|
|
269
|
+
const statuses = (result.stdout ?? '')
|
|
270
|
+
.split('\n')
|
|
271
|
+
.map((s) => s.trim())
|
|
272
|
+
.filter((s) => s.length > 0);
|
|
273
|
+
if (result.ok && statuses.includes('True')) {
|
|
250
274
|
return { ok: true, message: `${peripheral.name} pod ready` };
|
|
251
275
|
}
|
|
252
|
-
|
|
276
|
+
// No pods matched the label — deployment is rolling or scaled to 0. This is
|
|
277
|
+
// a transient state during `olam upgrade`, not a hard failure of infra.
|
|
278
|
+
if (result.ok && statuses.length === 0) {
|
|
279
|
+
return {
|
|
280
|
+
ok: false,
|
|
281
|
+
message: `${peripheral.name}: 0 pods (deployment rolling or scaled to 0)`,
|
|
282
|
+
remedy: `kubectl get pods -n ${K8S_NAMESPACE} -l app=${peripheral.k8sResourceName} — if mid-rollout, re-run \`olam doctor\` shortly`,
|
|
283
|
+
};
|
|
284
|
+
}
|
|
253
285
|
return {
|
|
254
286
|
ok: false,
|
|
255
287
|
message: `${peripheral.name} pod not ready`,
|
|
256
|
-
remedy: `kubectl get pod -l app=${peripheral.k8sResourceName} -n ${K8S_NAMESPACE}
|
|
288
|
+
remedy: `kubectl get pod -l app=${peripheral.k8sResourceName} -n ${K8S_NAMESPACE} -o wide`,
|
|
257
289
|
};
|
|
258
290
|
})();
|
|
259
291
|
rows.push({ name: `${peripheral.name} ready`, result: reachableResult, position: startPosition });
|
|
@@ -287,23 +319,30 @@ async function runPeripheralProbes(peripheral, startPosition, kubectlContext, wr
|
|
|
287
319
|
})();
|
|
288
320
|
rows.push({ name: `${peripheral.name} port-forward`, result: pfLivenessResult, position: startPosition + 1 });
|
|
289
321
|
// Probe N+2: ImagePresent — kubectl get pod jsonpath for container image.
|
|
322
|
+
// Same `{range .items[*]}...{end}` empty-safe form as the Ready probe above
|
|
323
|
+
// (indexed `.items[0]` errors on 0 pods and leaks an ugly kubectl template
|
|
324
|
+
// error). "image not detected" is a downstream symptom of 0 pods, so call
|
|
325
|
+
// that out explicitly rather than implying the image itself is missing.
|
|
290
326
|
const imagePresentResult = await (async () => {
|
|
291
327
|
const result = await wrapImpl([
|
|
292
328
|
...ctxArgs,
|
|
293
329
|
'get', 'pod',
|
|
294
330
|
'-n', K8S_NAMESPACE,
|
|
295
331
|
'-l', `app=${peripheral.k8sResourceName}`,
|
|
296
|
-
'-o', `jsonpath={.items[
|
|
332
|
+
'-o', `jsonpath={range .items[*]}{.status.containerStatuses[*].image}{"\\n"}{end}`,
|
|
297
333
|
], { timeout: 10_000 });
|
|
298
|
-
const
|
|
299
|
-
|
|
300
|
-
|
|
334
|
+
const images = (result.stdout ?? '')
|
|
335
|
+
.split('\n')
|
|
336
|
+
.map((s) => s.trim())
|
|
337
|
+
.filter((s) => s.length > 0);
|
|
338
|
+
if (result.ok && images.length > 0) {
|
|
339
|
+
return { ok: true, message: `${peripheral.name} image present: ${images[0]}` };
|
|
301
340
|
}
|
|
302
341
|
return {
|
|
303
342
|
ok: true,
|
|
304
343
|
warn: true,
|
|
305
|
-
message: `${peripheral.name} image not detected`,
|
|
306
|
-
remedy: `
|
|
344
|
+
message: `${peripheral.name} image not detected (0 pods — deployment rolling or scaled to 0)`,
|
|
345
|
+
remedy: `kubectl get pods -n ${K8S_NAMESPACE} -l app=${peripheral.k8sResourceName}`,
|
|
307
346
|
};
|
|
308
347
|
})();
|
|
309
348
|
rows.push({ name: `${peripheral.name} image`, result: imagePresentResult, position: startPosition + 2 });
|
|
@@ -610,6 +649,250 @@ export async function runComposePreflight(opts, deps = {}) {
|
|
|
610
649
|
}
|
|
611
650
|
return emit(makeReport(rows), opts);
|
|
612
651
|
}
|
|
652
|
+
// ── B7 — Auth vault dual-backend probe ────────────────────────────────────────
|
|
653
|
+
/**
|
|
654
|
+
* Resolve the auth-worker URL for the doctor probe.
|
|
655
|
+
*
|
|
656
|
+
* Mirrors the resolution order from `runAuthLogin` in auth-login.ts:
|
|
657
|
+
* 1. `OLAM_AUTH_WORKER_URL` env var.
|
|
658
|
+
* 2. `~/.olam/auth-worker-url` file.
|
|
659
|
+
* 3. Hard-coded fallback `https://auth-worker.kaluga.co`.
|
|
660
|
+
*
|
|
661
|
+
* Pure (no side effects) — reads env + filesystem only.
|
|
662
|
+
*/
|
|
663
|
+
function resolveAuthWorkerUrlForDoctor() {
|
|
664
|
+
const fromEnv = process.env['OLAM_AUTH_WORKER_URL'];
|
|
665
|
+
if (fromEnv && fromEnv.length > 0)
|
|
666
|
+
return fromEnv;
|
|
667
|
+
try {
|
|
668
|
+
const file = path.join(os.homedir(), '.olam', 'auth-worker-url');
|
|
669
|
+
if (fs.existsSync(file)) {
|
|
670
|
+
const content = fs.readFileSync(file, 'utf-8').trim();
|
|
671
|
+
if (content.length > 0)
|
|
672
|
+
return content;
|
|
673
|
+
}
|
|
674
|
+
}
|
|
675
|
+
catch {
|
|
676
|
+
// Unreadable file — fall through.
|
|
677
|
+
}
|
|
678
|
+
return DEFAULT_AUTH_WORKER_URL;
|
|
679
|
+
}
|
|
680
|
+
/** Default local auth-service port. */
|
|
681
|
+
const LOCAL_AUTH_PORT = 9999;
|
|
682
|
+
/** Default local auth-container name. */
|
|
683
|
+
const LOCAL_AUTH_CONTAINER = 'olam-auth';
|
|
684
|
+
/** Remote probe timeout (milliseconds). */
|
|
685
|
+
const REMOTE_PROBE_TIMEOUT_MS = 5_000;
|
|
686
|
+
/**
|
|
687
|
+
* Probe the remote auth-worker status with a 5-second timeout.
|
|
688
|
+
*
|
|
689
|
+
* Uses GET /v1/health which exists per auth-remote.ts. If that returns 401
|
|
690
|
+
* the worker is reachable but the operator is not authenticated. If it fails
|
|
691
|
+
* with DNS / TCP error or 5xx it is unreachable.
|
|
692
|
+
*/
|
|
693
|
+
async function probeRemoteAuthWorker(authWorkerUrl, fetchImpl) {
|
|
694
|
+
const fetchFn = fetchImpl ?? fetch;
|
|
695
|
+
const start = Date.now();
|
|
696
|
+
const url = authWorkerUrl.replace(/\/$/, '') + '/v1/health';
|
|
697
|
+
try {
|
|
698
|
+
const controller = new AbortController();
|
|
699
|
+
const timer = setTimeout(() => controller.abort(), REMOTE_PROBE_TIMEOUT_MS);
|
|
700
|
+
let res;
|
|
701
|
+
try {
|
|
702
|
+
res = await fetchFn(url, { signal: controller.signal });
|
|
703
|
+
}
|
|
704
|
+
finally {
|
|
705
|
+
clearTimeout(timer);
|
|
706
|
+
}
|
|
707
|
+
const durationMs = Date.now() - start;
|
|
708
|
+
if (res.status === 401 || res.status === 403) {
|
|
709
|
+
return { state: 'unauthenticated', durationMs };
|
|
710
|
+
}
|
|
711
|
+
if (res.status >= 200 && res.status < 300) {
|
|
712
|
+
return { state: 'healthy', durationMs };
|
|
713
|
+
}
|
|
714
|
+
// 5xx or other non-2xx non-auth error → unreachable.
|
|
715
|
+
return { state: 'unreachable', durationMs };
|
|
716
|
+
}
|
|
717
|
+
catch {
|
|
718
|
+
// DNS failure, TCP refused, AbortError (timeout), etc.
|
|
719
|
+
return { state: 'unreachable', durationMs: Date.now() - start };
|
|
720
|
+
}
|
|
721
|
+
}
|
|
722
|
+
/**
|
|
723
|
+
* Check whether the `olam-auth` container is currently running on the local
|
|
724
|
+
* Docker daemon by running `docker inspect --format {{.State.Running}} olam-auth`.
|
|
725
|
+
*/
|
|
726
|
+
function probeLocalAuthContainer(dockerExec) {
|
|
727
|
+
if (!dockerExec)
|
|
728
|
+
return false;
|
|
729
|
+
try {
|
|
730
|
+
const result = dockerExec('docker', [
|
|
731
|
+
'inspect', '--format', '{{.State.Running}}', LOCAL_AUTH_CONTAINER,
|
|
732
|
+
]);
|
|
733
|
+
return result.status === 0 && (result.stdout ?? '').trim() === 'true';
|
|
734
|
+
}
|
|
735
|
+
catch {
|
|
736
|
+
return false;
|
|
737
|
+
}
|
|
738
|
+
}
|
|
739
|
+
/**
|
|
740
|
+
* Classify the local auth state from the file-existence + container-running booleans.
|
|
741
|
+
*
|
|
742
|
+
* D3: when the container is running (regardless of file), classify as
|
|
743
|
+
* 'present-active-but-deprecated' since cloud-only-vault is now the default.
|
|
744
|
+
* The 'present-active' classification is retained for back-compat with callers
|
|
745
|
+
* that explicitly pass `remoteIsHealthy: false` to override the cloud path.
|
|
746
|
+
*/
|
|
747
|
+
function classifyLocalState(fileExists, containerRunning) {
|
|
748
|
+
if (containerRunning) {
|
|
749
|
+
// D3: container running → deprecated (cloud is the default now)
|
|
750
|
+
return fileExists ? 'present-active-but-deprecated' : 'present-active-but-deprecated';
|
|
751
|
+
}
|
|
752
|
+
if (!fileExists && !containerRunning)
|
|
753
|
+
return 'absent';
|
|
754
|
+
return 'present-stale';
|
|
755
|
+
}
|
|
756
|
+
/**
|
|
757
|
+
* Build the suggestion line for the `auth vault` doctor row.
|
|
758
|
+
*
|
|
759
|
+
* Suggestion lookup table (per B7 + D3 spec):
|
|
760
|
+
* - remote=healthy + local=present-active-but-deprecated → stop olam-auth
|
|
761
|
+
* - remote=healthy + local=present-active|present-stale → migrate dry-run
|
|
762
|
+
* - remote=healthy + local=absent → no suggestion (cloud-native)
|
|
763
|
+
* - remote=unreachable + local=absent → stranded (4 recovery options)
|
|
764
|
+
* - remote=unreachable + local=present-active-but-deprecated → stay-local env override
|
|
765
|
+
* - remote=unreachable + local=present-active → stay-local env override
|
|
766
|
+
* - remote=unauthenticated + any → `olam auth login`
|
|
767
|
+
*/
|
|
768
|
+
function authVaultSuggestion(remote, local) {
|
|
769
|
+
if (remote === 'unauthenticated') {
|
|
770
|
+
return 'Run `olam auth login` (logs into the cloud auth-worker by default).';
|
|
771
|
+
}
|
|
772
|
+
if (remote === 'healthy') {
|
|
773
|
+
if (local === 'present-active-but-deprecated') {
|
|
774
|
+
// D3: container running but cloud is default — suggest stopping it
|
|
775
|
+
return ('olam-auth container is running but cloud vault is now the default. ' +
|
|
776
|
+
'Stop it: `olam services down --include olam-auth` ' +
|
|
777
|
+
'(see docs/architecture/cloud-only-vault-migration.md)');
|
|
778
|
+
}
|
|
779
|
+
if (local === 'present-active' || local === 'present-stale') {
|
|
780
|
+
return 'Run `olam auth migrate --dry-run` to plan cloud migration of local credentials.';
|
|
781
|
+
}
|
|
782
|
+
return undefined; // already cloud-native
|
|
783
|
+
}
|
|
784
|
+
// remote=unreachable
|
|
785
|
+
if (local === 'absent') {
|
|
786
|
+
// D3: stranded — 4 recovery options
|
|
787
|
+
return ('Stranded: cloud auth-worker unreachable and no local fallback. Recovery options:\n' +
|
|
788
|
+
' 1. Wait and retry (transient network issue)\n' +
|
|
789
|
+
' 2. Set ANTHROPIC_API_KEY env var (bypass vault for offline use)\n' +
|
|
790
|
+
' 3. `OLAM_CREDENTIAL_BACKEND=local olam services up --with-local-auth` (restore local vault)\n' +
|
|
791
|
+
' 4. Check network / VPN connectivity to the auth-worker');
|
|
792
|
+
}
|
|
793
|
+
if (local === 'present-active-but-deprecated' || local === 'present-active') {
|
|
794
|
+
return 'Cloud auth-worker unreachable. Stay on local: `OLAM_CREDENTIAL_BACKEND=local olam auth list`';
|
|
795
|
+
}
|
|
796
|
+
return undefined;
|
|
797
|
+
}
|
|
798
|
+
/**
|
|
799
|
+
* probeAuthVaultBothBackends — B7 cloud-only-vault dual-backend auth probe.
|
|
800
|
+
*
|
|
801
|
+
* Replaces the legacy `probeAuthVault` (which only read the local file) at
|
|
802
|
+
* doctor position 4. Reports three remote states (healthy / unreachable /
|
|
803
|
+
* unauthenticated) and three local states (present-active / present-stale /
|
|
804
|
+
* absent), then routes to the correct suggestion.
|
|
805
|
+
*
|
|
806
|
+
* Non-gating when remote is unreachable + local is present-active (operator
|
|
807
|
+
* already has a working local vault; WARN not FAIL). All other error states
|
|
808
|
+
* remain gating (FAIL).
|
|
809
|
+
*
|
|
810
|
+
* Exported for direct use in `doctor-auth-probes.test.ts`.
|
|
811
|
+
*/
|
|
812
|
+
export async function probeAuthVaultBothBackends(deps) {
|
|
813
|
+
const { olamHomeOverride, dockerExec, authWorkerUrl, fetchImpl } = deps;
|
|
814
|
+
// Probe remote + local in parallel (both are independent).
|
|
815
|
+
const olamHome = olamHomeOverride ?? process.env.OLAM_HOME ?? path.join(os.homedir(), '.olam');
|
|
816
|
+
const accountsFile = path.join(olamHome, 'auth-data', 'accounts.json');
|
|
817
|
+
const [remoteResult] = await Promise.all([
|
|
818
|
+
probeRemoteAuthWorker(authWorkerUrl, fetchImpl),
|
|
819
|
+
]);
|
|
820
|
+
const localFileExists = fs.existsSync(accountsFile);
|
|
821
|
+
const localContainerRunning = probeLocalAuthContainer(dockerExec);
|
|
822
|
+
const localState = classifyLocalState(localFileExists, localContainerRunning);
|
|
823
|
+
const { state: remoteState, durationMs } = remoteResult;
|
|
824
|
+
// Humanize the auth-worker host for display (strip https:// for brevity).
|
|
825
|
+
const workerHost = authWorkerUrl.replace(/^https?:\/\//, '');
|
|
826
|
+
const suggestion = authVaultSuggestion(remoteState, localState);
|
|
827
|
+
// Build the summary message.
|
|
828
|
+
const remotePart = remoteState === 'healthy'
|
|
829
|
+
? `remote (${workerHost}) healthy (${durationMs}ms)`
|
|
830
|
+
: remoteState === 'unauthenticated'
|
|
831
|
+
? `remote (${workerHost}) unauthenticated`
|
|
832
|
+
: `remote (${workerHost}) unreachable`;
|
|
833
|
+
let localDetail;
|
|
834
|
+
if (localState === 'present-active-but-deprecated') {
|
|
835
|
+
// D3: container running, but deprecated (cloud is the default)
|
|
836
|
+
localDetail = 'local (olam-auth:9999) present-active-but-deprecated';
|
|
837
|
+
}
|
|
838
|
+
else if (localState === 'present-active') {
|
|
839
|
+
localDetail = 'local (olam-auth:9999) present-active';
|
|
840
|
+
}
|
|
841
|
+
else if (localState === 'present-stale') {
|
|
842
|
+
const which = localFileExists
|
|
843
|
+
? 'file present, container not running'
|
|
844
|
+
: 'container running, file absent';
|
|
845
|
+
localDetail = `local (olam-auth:9999) present-stale (${which})`;
|
|
846
|
+
}
|
|
847
|
+
else {
|
|
848
|
+
localDetail = 'local (olam-auth:9999) absent';
|
|
849
|
+
}
|
|
850
|
+
const message = `${remotePart}; ${localDetail}`;
|
|
851
|
+
// Determine ok/warn/fail:
|
|
852
|
+
// - unauthenticated → FAIL (operator must login before cloud works)
|
|
853
|
+
// - unreachable + local=absent → FAIL (stranded — D3 4-option remedy)
|
|
854
|
+
// - unreachable + local=present-stale → WARN (partial local, cloud down)
|
|
855
|
+
// - unreachable + local=present-active[-but-deprecated] → WARN (local works)
|
|
856
|
+
// - healthy + local=present-active-but-deprecated → WARN (suggest stop olam-auth — D3)
|
|
857
|
+
// - healthy → ok:true (cloud is the source of truth)
|
|
858
|
+
if (remoteState === 'unauthenticated') {
|
|
859
|
+
return {
|
|
860
|
+
ok: false,
|
|
861
|
+
message,
|
|
862
|
+
remedy: suggestion ?? 'Run `olam auth login` to authenticate with the cloud auth-worker.',
|
|
863
|
+
};
|
|
864
|
+
}
|
|
865
|
+
if (remoteState === 'unreachable' && localState === 'absent') {
|
|
866
|
+
// D3 stranded: 4 recovery options surfaced via suggestion
|
|
867
|
+
return {
|
|
868
|
+
ok: false,
|
|
869
|
+
message,
|
|
870
|
+
remedy: suggestion ?? ('Stranded: cloud auth-worker unreachable and no local fallback. ' +
|
|
871
|
+
'Set ANTHROPIC_API_KEY or run `OLAM_CREDENTIAL_BACKEND=local olam services up --with-local-auth`.'),
|
|
872
|
+
};
|
|
873
|
+
}
|
|
874
|
+
if (remoteState === 'unreachable') {
|
|
875
|
+
// local is present-active[-but-deprecated] or present-stale — WARN
|
|
876
|
+
const remedy = suggestion
|
|
877
|
+
?? 'Set `OLAM_CREDENTIAL_BACKEND=local` to route through the local vault until the cloud is reachable.';
|
|
878
|
+
return {
|
|
879
|
+
ok: true,
|
|
880
|
+
warn: true,
|
|
881
|
+
message,
|
|
882
|
+
remedy,
|
|
883
|
+
};
|
|
884
|
+
}
|
|
885
|
+
// remote=healthy
|
|
886
|
+
if (suggestion) {
|
|
887
|
+
return {
|
|
888
|
+
ok: true,
|
|
889
|
+
warn: true,
|
|
890
|
+
message,
|
|
891
|
+
remedy: suggestion,
|
|
892
|
+
};
|
|
893
|
+
}
|
|
894
|
+
return { ok: true, message };
|
|
895
|
+
}
|
|
613
896
|
function makeReport(rows) {
|
|
614
897
|
const failureCount = rows.filter((r) => !r.result.ok).length;
|
|
615
898
|
const warnCount = rows.filter((r) => isWarn(r.result)).length;
|
|
@@ -778,6 +1061,10 @@ export function registerDoctor(program) {
|
|
|
778
1061
|
// When the dir is absent the probe is skipped; when present it WARNs
|
|
779
1062
|
// if olam is not wired into Hermes.
|
|
780
1063
|
hermesHomeOverride: hermesDir,
|
|
1064
|
+
// B7: opt-in the dual-backend auth vault probe in production by
|
|
1065
|
+
// providing the global fetch. The probe resolves the auth-worker URL
|
|
1066
|
+
// via env / file / DEFAULT_AUTH_WORKER_URL.
|
|
1067
|
+
authVaultFetchImpl: fetch,
|
|
781
1068
|
});
|
|
782
1069
|
if (r.exitCode !== 0)
|
|
783
1070
|
process.exitCode = r.exitCode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,8 +2,11 @@
|
|
|
2
2
|
* `olam kg mirror <subcommand>` — operator CLI for the cloud-kg-mirror feature.
|
|
3
3
|
*
|
|
4
4
|
* Subcommands:
|
|
5
|
-
* - build <workspace>
|
|
6
|
-
* - status [<ws>]
|
|
5
|
+
* - build <workspace> POST to the builder Worker (/v1/build)
|
|
6
|
+
* - status [<ws>] GET /freshness from the classifier Worker (bearer-authed)
|
|
7
|
+
* - classify <question> POST /v1/classify to the classifier Worker — route a
|
|
8
|
+
* query through the remote edge classifier (works with
|
|
9
|
+
* no local kg-service running)
|
|
7
10
|
*
|
|
8
11
|
* Both subcommands resolve their Worker URL + bearer from env-or-file:
|
|
9
12
|
* - OLAM_KG_MIRROR_BUILDER_URL / ~/.olam/kg-mirror-builder-url
|
|
@@ -35,6 +38,19 @@ export declare function runKgMirrorBuild(workspace: string, options?: MirrorBuil
|
|
|
35
38
|
export declare function runKgMirrorStatus(workspace: string | undefined, options?: MirrorStatusOptions): Promise<{
|
|
36
39
|
exitCode: number;
|
|
37
40
|
}>;
|
|
41
|
+
interface MirrorClassifyOptions {
|
|
42
|
+
readonly workspace?: string;
|
|
43
|
+
readonly json?: boolean;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* `olam kg mirror classify <question>` — route a query through the remote
|
|
47
|
+
* edge classifier (POST $OLAM_KG_PROXY_URL/v1/classify with bearer). Mirrors
|
|
48
|
+
* the local `olam kg classify` but targets the cloud proxy Worker, so it works
|
|
49
|
+
* with no local kg-service running. Returns the route decision + savings.
|
|
50
|
+
*/
|
|
51
|
+
export declare function runKgMirrorClassify(question: string, options?: MirrorClassifyOptions): Promise<{
|
|
52
|
+
exitCode: number;
|
|
53
|
+
}>;
|
|
38
54
|
export declare function registerKgMirrorCommand(kg: Command): void;
|
|
39
55
|
export {};
|
|
40
56
|
//# sourceMappingURL=kg-mirror.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kg-mirror.d.ts","sourceRoot":"","sources":["../../src/commands/kg-mirror.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"kg-mirror.d.ts","sourceRoot":"","sources":["../../src/commands/kg-mirror.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMzC,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,UAAU,mBAAmB;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAWtE;AAqBD,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAgE/B;AAED,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAsD/B;AAED,UAAU,qBAAqB;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAgD/B;AAyCD,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI,CAqCzD"}
|
|
@@ -2,8 +2,11 @@
|
|
|
2
2
|
* `olam kg mirror <subcommand>` — operator CLI for the cloud-kg-mirror feature.
|
|
3
3
|
*
|
|
4
4
|
* Subcommands:
|
|
5
|
-
* - build <workspace>
|
|
6
|
-
* - status [<ws>]
|
|
5
|
+
* - build <workspace> POST to the builder Worker (/v1/build)
|
|
6
|
+
* - status [<ws>] GET /freshness from the classifier Worker (bearer-authed)
|
|
7
|
+
* - classify <question> POST /v1/classify to the classifier Worker — route a
|
|
8
|
+
* query through the remote edge classifier (works with
|
|
9
|
+
* no local kg-service running)
|
|
7
10
|
*
|
|
8
11
|
* Both subcommands resolve their Worker URL + bearer from env-or-file:
|
|
9
12
|
* - OLAM_KG_MIRROR_BUILDER_URL / ~/.olam/kg-mirror-builder-url
|
|
@@ -135,7 +138,12 @@ export async function runKgMirrorStatus(workspace, options = {}) {
|
|
|
135
138
|
return { exitCode: 0 };
|
|
136
139
|
}
|
|
137
140
|
const url = `${cfg.url}/freshness?workspace=${encodeURIComponent(workspace)}`;
|
|
138
|
-
|
|
141
|
+
// The proxy Worker requires bearer auth on /freshness (returns 401
|
|
142
|
+
// missing_bearer otherwise). The /health branch above is intentionally
|
|
143
|
+
// unauthenticated; this one is not.
|
|
144
|
+
const res = await fetch(url, {
|
|
145
|
+
headers: { Authorization: `Bearer ${cfg.bearer}` },
|
|
146
|
+
});
|
|
139
147
|
const text = await res.text();
|
|
140
148
|
if (options.json) {
|
|
141
149
|
process.stdout.write(text + '\n');
|
|
@@ -157,6 +165,62 @@ export async function runKgMirrorStatus(workspace, options = {}) {
|
|
|
157
165
|
printSuccess(`kg mirror status ${workspace} — ${j.node_count ?? '?'} nodes / ${j.label_count ?? '?'} labels (build_dir=${j.build_dir}, built_at=${j.built_at})`);
|
|
158
166
|
return { exitCode: 0 };
|
|
159
167
|
}
|
|
168
|
+
/**
|
|
169
|
+
* `olam kg mirror classify <question>` — route a query through the remote
|
|
170
|
+
* edge classifier (POST $OLAM_KG_PROXY_URL/v1/classify with bearer). Mirrors
|
|
171
|
+
* the local `olam kg classify` but targets the cloud proxy Worker, so it works
|
|
172
|
+
* with no local kg-service running. Returns the route decision + savings.
|
|
173
|
+
*/
|
|
174
|
+
export async function runKgMirrorClassify(question, options = {}) {
|
|
175
|
+
const cfg = resolveClassifier();
|
|
176
|
+
if (!cfg) {
|
|
177
|
+
printError('kg-mirror classifier URL/bearer not configured. Set OLAM_KG_PROXY_URL + OLAM_KG_PROXY_BEARER (or ~/.olam/kg-proxy-url + ~/.olam/kg-proxy-bearer).');
|
|
178
|
+
return { exitCode: 3 };
|
|
179
|
+
}
|
|
180
|
+
const body = { q: question };
|
|
181
|
+
if (options.workspace)
|
|
182
|
+
body.workspace = options.workspace;
|
|
183
|
+
let res;
|
|
184
|
+
try {
|
|
185
|
+
res = await fetch(`${cfg.url}/v1/classify`, {
|
|
186
|
+
method: 'POST',
|
|
187
|
+
headers: {
|
|
188
|
+
Authorization: `Bearer ${cfg.bearer}`,
|
|
189
|
+
'Content-Type': 'application/json',
|
|
190
|
+
},
|
|
191
|
+
body: JSON.stringify(body),
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
catch (err) {
|
|
195
|
+
printError(`classifier unreachable: ${err instanceof Error ? err.message : String(err)}`);
|
|
196
|
+
return { exitCode: 4 };
|
|
197
|
+
}
|
|
198
|
+
const text = await res.text();
|
|
199
|
+
if (options.json) {
|
|
200
|
+
process.stdout.write(text + '\n');
|
|
201
|
+
return { exitCode: res.ok ? 0 : 1 };
|
|
202
|
+
}
|
|
203
|
+
let parsed;
|
|
204
|
+
try {
|
|
205
|
+
parsed = JSON.parse(text);
|
|
206
|
+
}
|
|
207
|
+
catch {
|
|
208
|
+
printError(`classifier returned non-JSON (HTTP ${res.status}): ${text.slice(0, 200)}`);
|
|
209
|
+
return { exitCode: 1 };
|
|
210
|
+
}
|
|
211
|
+
const j = parsed;
|
|
212
|
+
if (!res.ok) {
|
|
213
|
+
printError(`classifier /v1/classify failed (HTTP ${res.status}): ${j.error ?? '?'}`);
|
|
214
|
+
return { exitCode: 1 };
|
|
215
|
+
}
|
|
216
|
+
const savings = j.savings?.saved_tokens_est ?? 0;
|
|
217
|
+
printInfo('route', String(j.route ?? '?'));
|
|
218
|
+
printInfo('layer', String(j.layer ?? '?'));
|
|
219
|
+
if (j.reason)
|
|
220
|
+
printInfo('reason', String(j.reason));
|
|
221
|
+
printInfo('est. savings', `~${Math.round(Number(savings) / 1000)}k tokens`);
|
|
222
|
+
return { exitCode: 0 };
|
|
223
|
+
}
|
|
160
224
|
/**
|
|
161
225
|
* Infer the git URL from `git -C <workspace> remote get-url origin`.
|
|
162
226
|
* Returns the empty string when the workspace dir isn't a git repo
|
|
@@ -224,5 +288,16 @@ export function registerKgMirrorCommand(kg) {
|
|
|
224
288
|
if (r.exitCode !== 0)
|
|
225
289
|
process.exitCode = r.exitCode;
|
|
226
290
|
});
|
|
291
|
+
mirror
|
|
292
|
+
.command('classify')
|
|
293
|
+
.description('Route a query through the remote edge classifier (POST /v1/classify on the proxy Worker)')
|
|
294
|
+
.argument('<question>', 'the search question to classify')
|
|
295
|
+
.option('--workspace <name>', 'workspace name to scope the classification')
|
|
296
|
+
.option('--json', 'emit raw JSON response')
|
|
297
|
+
.action(async (question, opts) => {
|
|
298
|
+
const r = await runKgMirrorClassify(question, opts);
|
|
299
|
+
if (r.exitCode !== 0)
|
|
300
|
+
process.exitCode = r.exitCode;
|
|
301
|
+
});
|
|
227
302
|
}
|
|
228
303
|
//# sourceMappingURL=kg-mirror.js.map
|