@pleri/olam-cli 0.1.159 → 0.1.161

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.
Files changed (88) hide show
  1. package/README.md +11 -0
  2. package/dist/agent-stream/agent-sdk-to-chunks.js +3 -0
  3. package/dist/agent-stream/driver-runner.js +9 -4
  4. package/dist/agent-stream/host-driver-launch.js +48 -0
  5. package/dist/commands/bootstrap.d.ts +15 -0
  6. package/dist/commands/bootstrap.d.ts.map +1 -1
  7. package/dist/commands/bootstrap.js +30 -1
  8. package/dist/commands/bootstrap.js.map +1 -1
  9. package/dist/commands/flywheel/check-persona-skeleton.d.ts +30 -2
  10. package/dist/commands/flywheel/check-persona-skeleton.d.ts.map +1 -1
  11. package/dist/commands/flywheel/check-persona-skeleton.js +143 -6
  12. package/dist/commands/flywheel/check-persona-skeleton.js.map +1 -1
  13. package/dist/commands/flywheel/diversity-check.d.ts +12 -2
  14. package/dist/commands/flywheel/diversity-check.d.ts.map +1 -1
  15. package/dist/commands/flywheel/diversity-check.js +56 -6
  16. package/dist/commands/flywheel/diversity-check.js.map +1 -1
  17. package/dist/commands/flywheel/index.d.ts.map +1 -1
  18. package/dist/commands/flywheel/index.js +2 -0
  19. package/dist/commands/flywheel/index.js.map +1 -1
  20. package/dist/commands/flywheel/install-shims.d.ts +36 -3
  21. package/dist/commands/flywheel/install-shims.d.ts.map +1 -1
  22. package/dist/commands/flywheel/install-shims.js +118 -7
  23. package/dist/commands/flywheel/install-shims.js.map +1 -1
  24. package/dist/commands/flywheel/k10-measure.d.ts +12 -2
  25. package/dist/commands/flywheel/k10-measure.d.ts.map +1 -1
  26. package/dist/commands/flywheel/k10-measure.js +55 -6
  27. package/dist/commands/flywheel/k10-measure.js.map +1 -1
  28. package/dist/commands/flywheel/migrate-overlays.d.ts +115 -0
  29. package/dist/commands/flywheel/migrate-overlays.d.ts.map +1 -0
  30. package/dist/commands/flywheel/migrate-overlays.js +766 -0
  31. package/dist/commands/flywheel/migrate-overlays.js.map +1 -0
  32. package/dist/commands/flywheel/sanitize-persona-output.d.ts +33 -2
  33. package/dist/commands/flywheel/sanitize-persona-output.d.ts.map +1 -1
  34. package/dist/commands/flywheel/sanitize-persona-output.js +94 -6
  35. package/dist/commands/flywheel/sanitize-persona-output.js.map +1 -1
  36. package/dist/commands/memory/index.d.ts.map +1 -1
  37. package/dist/commands/memory/index.js +2 -0
  38. package/dist/commands/memory/index.js.map +1 -1
  39. package/dist/commands/memory/install-hooks.d.ts +22 -0
  40. package/dist/commands/memory/install-hooks.d.ts.map +1 -0
  41. package/dist/commands/memory/install-hooks.js +156 -0
  42. package/dist/commands/memory/install-hooks.js.map +1 -0
  43. package/dist/commands/skills-doctor.js +2 -2
  44. package/dist/commands/skills-doctor.js.map +1 -1
  45. package/dist/commands/skills-source.d.ts.map +1 -1
  46. package/dist/commands/skills-source.js +10 -0
  47. package/dist/commands/skills-source.js.map +1 -1
  48. package/dist/commands/skills.d.ts.map +1 -1
  49. package/dist/commands/skills.js +169 -1
  50. package/dist/commands/skills.js.map +1 -1
  51. package/dist/image-digests.json +7 -7
  52. package/dist/index.js +4361 -1768
  53. package/dist/lib/bootstrap-kubernetes.d.ts +42 -0
  54. package/dist/lib/bootstrap-kubernetes.d.ts.map +1 -0
  55. package/dist/lib/bootstrap-kubernetes.js +287 -0
  56. package/dist/lib/bootstrap-kubernetes.js.map +1 -0
  57. package/dist/lib/config.d.ts.map +1 -1
  58. package/dist/lib/config.js +6 -1
  59. package/dist/lib/config.js.map +1 -1
  60. package/dist/lib/flywheel-probes.d.ts +58 -0
  61. package/dist/lib/flywheel-probes.d.ts.map +1 -0
  62. package/dist/lib/flywheel-probes.js +163 -0
  63. package/dist/lib/flywheel-probes.js.map +1 -0
  64. package/dist/lib/shim-generator.d.ts +51 -0
  65. package/dist/lib/shim-generator.d.ts.map +1 -0
  66. package/dist/lib/shim-generator.js +88 -0
  67. package/dist/lib/shim-generator.js.map +1 -0
  68. package/dist/lib/skills-apply-overlays.d.ts +35 -0
  69. package/dist/lib/skills-apply-overlays.d.ts.map +1 -0
  70. package/dist/lib/skills-apply-overlays.js +243 -0
  71. package/dist/lib/skills-apply-overlays.js.map +1 -0
  72. package/dist/mcp-server.js +1106 -453
  73. package/hermes-bundle/version.json +1 -1
  74. package/host-cp/k8s/manifests/50-deployment.yaml +1 -1
  75. package/host-cp/k8s/manifests/auth-service/50-deployment.yaml +1 -1
  76. package/host-cp/k8s/manifests/kg-service/50-deployment.yaml +1 -1
  77. package/host-cp/k8s/manifests/mcp-auth-service/50-deployment.yaml +1 -1
  78. package/host-cp/k8s/manifests/memory-service/30-configmap.yaml +11 -0
  79. package/host-cp/k8s/manifests/memory-service/35-configmap-iii-config.yaml +76 -0
  80. package/host-cp/k8s/manifests/memory-service/50-deployment.yaml +11 -1
  81. package/host-cp/observability/grafana-port-forward.sh +273 -0
  82. package/host-cp/observability/kyverno-cardinality-mutate.sh +452 -0
  83. package/host-cp/observability/loki-ingest.sh +243 -0
  84. package/host-cp/observability/prom-no-double-grafana.sh +301 -0
  85. package/host-cp/src/crystallize-planning.mjs +261 -0
  86. package/host-cp/src/plan-chat-service.mjs +84 -2
  87. package/host-cp/src/planning-sessions.mjs +270 -0
  88. package/package.json +1 -1
@@ -0,0 +1,42 @@
1
+ /**
2
+ * bootstrap-kubernetes.ts — k3s mode of `olam bootstrap`.
3
+ *
4
+ * Wraps the legacy `scripts/dogfood/up.sh` reference flow into a CLI
5
+ * routine so external operators with only the published `@pleri/olam-cli`
6
+ * tarball (no access to the private `pleri/olam` repo) can bring up an
7
+ * end-to-end olam-on-k3s stack with one command.
8
+ *
9
+ * Steps (idempotent):
10
+ * 0. Preflight — detect required tools (k3d, kubectl, helm, jq, curl,
11
+ * openssl, gh, docker). With --auto-install on macOS, run `brew
12
+ * install` for missing brew-formulae.
13
+ * 1. Secrets — generate `~/.olam/{auth-secret,kg-bearer-token,
14
+ * auth-db-secret,mcp-auth-jwt-secret,memory-bearer-secret}` if absent.
15
+ * 2. Colima (macOS only) — ensure running; chmod /var/run/docker.sock
16
+ * inside the VM (virtiofs mitigation).
17
+ * 3. k3d cluster — create `<cluster>` with the gh-config bind. Skipped
18
+ * if cluster already exists.
19
+ * 4. Observability — chain bundled scripts in `<install>/host-cp/
20
+ * observability/` to install Loki + Promtail + Grafana +
21
+ * kube-prometheus-stack + Kyverno admission policy.
22
+ * 5. Delegate to `olam upgrade -y` — that flow handles namespace + RBAC
23
+ * + secrets + ghcr-pull + host-side docker-socket-proxy +
24
+ * manifest apply + rollout + verify.
25
+ *
26
+ * Note: `olam upgrade` already ships the 8-step k8s flow in
27
+ * `upgrade-kubernetes.ts` (Phase 1b C2 + Phase 2 C/D). This module is
28
+ * the prereq + cluster-create + observability wrapper around it.
29
+ */
30
+ export declare const DEFAULT_K3S_CLUSTER = "olam-host";
31
+ export interface BootstrapKubernetesOptions {
32
+ readonly cluster: string;
33
+ readonly autoInstall: boolean;
34
+ readonly skipObservability: boolean;
35
+ readonly skipClusterCreate: boolean;
36
+ }
37
+ export interface BootstrapKubernetesResult {
38
+ readonly exitCode: number;
39
+ readonly summary: string;
40
+ }
41
+ export declare function runBootstrapKubernetes(rawOpts: Partial<BootstrapKubernetesOptions>): Promise<BootstrapKubernetesResult>;
42
+ //# sourceMappingURL=bootstrap-kubernetes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap-kubernetes.d.ts","sourceRoot":"","sources":["../../src/lib/bootstrap-kubernetes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAcH,eAAO,MAAM,mBAAmB,cAAc,CAAC;AA4B/C,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;CACrC;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAuOD,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,OAAO,CAAC,0BAA0B,CAAC,GAC3C,OAAO,CAAC,yBAAyB,CAAC,CAqBpC"}
@@ -0,0 +1,287 @@
1
+ /**
2
+ * bootstrap-kubernetes.ts — k3s mode of `olam bootstrap`.
3
+ *
4
+ * Wraps the legacy `scripts/dogfood/up.sh` reference flow into a CLI
5
+ * routine so external operators with only the published `@pleri/olam-cli`
6
+ * tarball (no access to the private `pleri/olam` repo) can bring up an
7
+ * end-to-end olam-on-k3s stack with one command.
8
+ *
9
+ * Steps (idempotent):
10
+ * 0. Preflight — detect required tools (k3d, kubectl, helm, jq, curl,
11
+ * openssl, gh, docker). With --auto-install on macOS, run `brew
12
+ * install` for missing brew-formulae.
13
+ * 1. Secrets — generate `~/.olam/{auth-secret,kg-bearer-token,
14
+ * auth-db-secret,mcp-auth-jwt-secret,memory-bearer-secret}` if absent.
15
+ * 2. Colima (macOS only) — ensure running; chmod /var/run/docker.sock
16
+ * inside the VM (virtiofs mitigation).
17
+ * 3. k3d cluster — create `<cluster>` with the gh-config bind. Skipped
18
+ * if cluster already exists.
19
+ * 4. Observability — chain bundled scripts in `<install>/host-cp/
20
+ * observability/` to install Loki + Promtail + Grafana +
21
+ * kube-prometheus-stack + Kyverno admission policy.
22
+ * 5. Delegate to `olam upgrade -y` — that flow handles namespace + RBAC
23
+ * + secrets + ghcr-pull + host-side docker-socket-proxy +
24
+ * manifest apply + rollout + verify.
25
+ *
26
+ * Note: `olam upgrade` already ships the 8-step k8s flow in
27
+ * `upgrade-kubernetes.ts` (Phase 1b C2 + Phase 2 C/D). This module is
28
+ * the prereq + cluster-create + observability wrapper around it.
29
+ */
30
+ import { spawnSync } from 'node:child_process';
31
+ import { existsSync, mkdirSync, writeFileSync, chmodSync } from 'node:fs';
32
+ import { join } from 'node:path';
33
+ import { homedir, platform } from 'node:os';
34
+ import { randomBytes } from 'node:crypto';
35
+ import pc from 'picocolors';
36
+ import { printError, printSuccess, printInfo, printWarning, printHeader } from '../output.js';
37
+ import { installRoot } from '../install-root.js';
38
+ import { resolveK8sAssetsRoot } from './k8s-bootstrap.js';
39
+ const OLAM_HOME = join(homedir(), '.olam');
40
+ export const DEFAULT_K3S_CLUSTER = 'olam-host';
41
+ const REQUIRED_TOOLS = [
42
+ { name: 'k3d', brew: 'k3d' },
43
+ { name: 'kubectl', brew: 'kubectl' },
44
+ { name: 'helm', brew: 'helm' },
45
+ { name: 'jq', brew: 'jq' },
46
+ { name: 'curl', hint: 'expected on macOS by default; `apt install curl` on linux' },
47
+ { name: 'openssl', hint: 'expected on macOS by default; `apt install openssl` on linux' },
48
+ { name: 'gh', brew: 'gh', hint: 'after install: `gh auth login`' },
49
+ { name: 'docker', hint: 'Docker Desktop, or colima on macOS' },
50
+ ];
51
+ const SECRET_FILES = [
52
+ 'auth-secret',
53
+ 'kg-bearer-token',
54
+ 'auth-db-secret',
55
+ 'mcp-auth-jwt-secret',
56
+ 'memory-bearer-secret',
57
+ ];
58
+ const OBSERVABILITY_SCRIPTS = [
59
+ 'loki-ingest.sh',
60
+ 'grafana-port-forward.sh',
61
+ 'prom-no-double-grafana.sh',
62
+ 'kyverno-cardinality-mutate.sh',
63
+ ];
64
+ /** Wraps `command -v <tool>` returning true when the binary is on PATH. */
65
+ function hasTool(tool) {
66
+ const result = spawnSync('command', ['-v', tool], { shell: true, stdio: 'pipe' });
67
+ return result.status === 0;
68
+ }
69
+ function detectMissingTools() {
70
+ return REQUIRED_TOOLS.filter((tool) => !hasTool(tool.name));
71
+ }
72
+ function runOrFail(cmd, args, description) {
73
+ const result = spawnSync(cmd, args, { stdio: 'inherit' });
74
+ if (result.status !== 0) {
75
+ printError(`${description} failed (exit ${result.status ?? 'signal'})`);
76
+ process.exit(result.status ?? 1);
77
+ }
78
+ }
79
+ function runCapture(cmd, args) {
80
+ const result = spawnSync(cmd, args, { encoding: 'utf8' });
81
+ return {
82
+ ok: result.status === 0,
83
+ stdout: result.stdout ?? '',
84
+ stderr: result.stderr ?? '',
85
+ };
86
+ }
87
+ function step(label) {
88
+ process.stdout.write('\n' + pc.bold(pc.cyan(`==> ${label}`)) + '\n');
89
+ }
90
+ function preflight(opts) {
91
+ step('0/5 — preflight (tool detection)');
92
+ const missing = detectMissingTools();
93
+ if (missing.length === 0) {
94
+ printSuccess('all required tools present');
95
+ }
96
+ else if (opts.autoInstall && platform() === 'darwin') {
97
+ const brewable = missing.filter((t) => t.brew);
98
+ if (brewable.length > 0) {
99
+ printInfo('auto-install', `${brewable.length} brew formula(s): ${brewable.map((t) => t.brew).join(', ')}`);
100
+ runOrFail('brew', ['install', ...brewable.map((t) => t.brew)], 'brew install');
101
+ }
102
+ const stillMissing = detectMissingTools();
103
+ if (stillMissing.length > 0) {
104
+ printError('tools still missing after auto-install:');
105
+ for (const t of stillMissing) {
106
+ process.stderr.write(` - ${t.name}${t.hint ? ` — ${t.hint}` : ''}\n`);
107
+ }
108
+ process.exit(1);
109
+ }
110
+ printSuccess('all required tools present after auto-install');
111
+ }
112
+ else {
113
+ printError(`${missing.length} required tool(s) missing:`);
114
+ for (const t of missing) {
115
+ const hint = t.brew ? `brew install ${t.brew}` : t.hint ?? '(install manually)';
116
+ process.stderr.write(` - ${pc.bold(t.name)}: ${hint}\n`);
117
+ }
118
+ process.stderr.write('\nRe-run with --auto-install on macOS to install brew-formulae automatically.\n');
119
+ process.exit(1);
120
+ }
121
+ // gh auth
122
+ if (!runCapture('gh', ['auth', 'status']).ok) {
123
+ printError('gh is not authenticated — run: gh auth login');
124
+ process.exit(1);
125
+ }
126
+ printSuccess('gh authenticated');
127
+ // docker reachability
128
+ if (!runCapture('docker', ['info']).ok) {
129
+ printError('docker daemon unreachable — start Docker Desktop or colima');
130
+ process.exit(1);
131
+ }
132
+ printSuccess('docker daemon reachable');
133
+ }
134
+ function ensureSecrets() {
135
+ step('1/5 — operator secrets');
136
+ mkdirSync(OLAM_HOME, { recursive: true });
137
+ for (const name of SECRET_FILES) {
138
+ const path = join(OLAM_HOME, name);
139
+ if (existsSync(path)) {
140
+ printInfo('skip', `~/.olam/${name} already exists`);
141
+ continue;
142
+ }
143
+ const hex = randomBytes(32).toString('hex');
144
+ writeFileSync(path, hex + '\n', { encoding: 'utf8', mode: 0o600 });
145
+ chmodSync(path, 0o600);
146
+ printSuccess(`generated ~/.olam/${name}`);
147
+ }
148
+ }
149
+ function ensureColima() {
150
+ if (platform() !== 'darwin')
151
+ return;
152
+ step('2/5 — colima (macOS)');
153
+ if (!runCapture('colima', ['status']).ok) {
154
+ printWarning('colima not running — starting');
155
+ runOrFail('colima', ['start', '--cpu', '4', '--memory', '8', '--vm-type=vz', '--mount-type=virtiofs'], 'colima start');
156
+ }
157
+ printSuccess('colima running');
158
+ // virtiofs blocks chmod of docker.sock from the macOS side. Idempotent + non-fatal.
159
+ const chmod = runCapture('colima', ['ssh', '--', 'sudo', 'chmod', '666', '/var/run/docker.sock']);
160
+ if (chmod.ok) {
161
+ printSuccess('docker.sock chmod applied inside colima VM');
162
+ }
163
+ else {
164
+ printWarning('colima ssh chmod failed — k3d cluster create may still succeed');
165
+ }
166
+ }
167
+ function ensureCluster(opts) {
168
+ if (opts.skipClusterCreate) {
169
+ step('3/5 — cluster (skipped via --skip-cluster-create)');
170
+ return;
171
+ }
172
+ step(`3/5 — k3d cluster create (${opts.cluster})`);
173
+ if (runCapture('k3d', ['cluster', 'list', opts.cluster]).ok) {
174
+ printInfo('cluster', `'${opts.cluster}' already exists`);
175
+ return;
176
+ }
177
+ const ghConfigBind = `${homedir()}/.config/gh:/host/.config/gh`;
178
+ runOrFail('k3d', ['cluster', 'create', opts.cluster, '--volume', ghConfigBind, '--wait', '--timeout', '90s'], `k3d cluster create ${opts.cluster}`);
179
+ if (!runCapture('kubectl', ['cluster-info']).ok) {
180
+ printError('kubectl cannot reach the cluster — check kubeconfig context');
181
+ process.exit(1);
182
+ }
183
+ printSuccess(`cluster ready (${runCapture('kubectl', ['config', 'current-context']).stdout.trim()})`);
184
+ }
185
+ /** Resolve the bundled observability scripts dir. */
186
+ function resolveObservabilityScriptsDir() {
187
+ // Install-mode: bundle-host-cp.mjs copies scripts/e2e/*.sh to
188
+ // <install-root>/host-cp/observability/.
189
+ const installed = join(installRoot(), 'host-cp', 'observability');
190
+ if (existsSync(installed))
191
+ return installed;
192
+ // Dev-mode fallback: resolve via the k8s assets root + walk up to repo
193
+ // root then into scripts/e2e/. Works when running against the monorepo.
194
+ const k8sRoot = resolveK8sAssetsRoot();
195
+ if (k8sRoot) {
196
+ const dev = join(k8sRoot, '..', '..', '..', 'scripts', 'e2e');
197
+ if (existsSync(dev))
198
+ return dev;
199
+ }
200
+ return null;
201
+ }
202
+ function installObservability(opts) {
203
+ if (opts.skipObservability) {
204
+ step('4/5 — observability (skipped via --skip-observability)');
205
+ return;
206
+ }
207
+ step('4/5 — observability stack (Loki + Promtail + Grafana + Prometheus + Kyverno)');
208
+ const observabilityDir = resolveObservabilityScriptsDir();
209
+ if (!observabilityDir) {
210
+ printWarning('bundled observability scripts not found — skipping');
211
+ printWarning(' (expected in published CLI installs; missing only in dev tarballs without bundling)');
212
+ return;
213
+ }
214
+ for (const script of OBSERVABILITY_SCRIPTS) {
215
+ const path = join(observabilityDir, script);
216
+ if (!existsSync(path)) {
217
+ printWarning(`observability script missing: ${script} — skipping`);
218
+ continue;
219
+ }
220
+ printInfo('run', script);
221
+ const result = spawnSync('bash', [path], { stdio: 'inherit' });
222
+ if (result.status !== 0) {
223
+ // loki-ingest's 10s scrub-wait is known to flake on cold-start; the
224
+ // underlying Loki/Promtail install almost always succeeded.
225
+ if (script === 'loki-ingest.sh') {
226
+ printWarning('loki-ingest non-zero — likely Promtail scrub-wait flake; continuing');
227
+ }
228
+ else {
229
+ printError(`${script} failed — observability stack not ready`);
230
+ process.exit(1);
231
+ }
232
+ }
233
+ else {
234
+ printSuccess(`${script} passed`);
235
+ }
236
+ }
237
+ }
238
+ function delegateToUpgrade() {
239
+ step('5/5 — apply manifests + rollout (olam upgrade)');
240
+ // Re-invoke `olam upgrade -y` via the same process binary. The upgrade
241
+ // flow's 8-step k8s path (upgrade-kubernetes.ts) handles namespace +
242
+ // RBAC + Secrets + ghcr-pull + host-side docker-socket-proxy + manifest
243
+ // apply + rollout status + port-forward + /health verify + audit log.
244
+ const olamBin = process.argv[1] ?? 'olam';
245
+ const result = spawnSync(process.execPath, [olamBin, 'upgrade', '-y'], { stdio: 'inherit' });
246
+ if (result.status !== 0) {
247
+ printError('olam upgrade failed — see output above');
248
+ process.exit(result.status ?? 1);
249
+ }
250
+ }
251
+ function summary(opts) {
252
+ step('done');
253
+ process.stdout.write(`
254
+ Cluster: ${opts.cluster}
255
+ Next steps:
256
+ olam doctor # verify the stack
257
+ olam services status # peripherals 1/1
258
+ kubectl get pods -n olam
259
+
260
+ Grafana:
261
+ kubectl port-forward -n monitoring svc/olam-grafana 3000:80
262
+ open http://localhost:3000
263
+ # admin password:
264
+ kubectl get secret olam-grafana-admin -n monitoring \\
265
+ -o jsonpath='{.data.admin-password}' | base64 -d
266
+ `);
267
+ }
268
+ export async function runBootstrapKubernetes(rawOpts) {
269
+ const opts = {
270
+ cluster: rawOpts.cluster ?? DEFAULT_K3S_CLUSTER,
271
+ autoInstall: rawOpts.autoInstall ?? false,
272
+ skipObservability: rawOpts.skipObservability ?? false,
273
+ skipClusterCreate: rawOpts.skipClusterCreate ?? false,
274
+ };
275
+ printHeader('olam bootstrap — k3s mode');
276
+ printInfo('mode', 'one-command bring-up of olam peripherals + observability on a local k3d cluster');
277
+ preflight(opts);
278
+ ensureSecrets();
279
+ ensureColima();
280
+ ensureCluster(opts);
281
+ installObservability(opts);
282
+ delegateToUpgrade();
283
+ summary(opts);
284
+ printSuccess('bootstrap complete');
285
+ return { exitCode: 0, summary: `bootstrap complete on cluster ${opts.cluster}` };
286
+ }
287
+ //# sourceMappingURL=bootstrap-kubernetes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap-kubernetes.js","sourceRoot":"","sources":["../../src/lib/bootstrap-kubernetes.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAcH,eAAO,MAAM,SAAS,QAA2B,CAAC;AAClD,eAAO,MAAM,cAAc,QAA2B,CAAC;AACvD,eAAO,MAAM,gBAAgB,QAAiC,CAAC;AAE/D,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,YAAY,CAAC;AAEjD,MAAM,MAAM,UAAU,GAAG;IACvB,eAAe,EAAE,CAAC,CAAC;IACnB,IAAI,EAAE;QAAE,SAAS,EAAE,SAAS,CAAA;KAAE,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AA0DF;;;;;;;;;;;;GAYG;AACH,wBAAgB,UAAU,CACxB,IAAI,GAAE;IACJ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;CAC3B,GACL,UAAU,CAsCZ;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAA;CAAE,EAC/C,IAAI,GAAE;IACJ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;CAC3B,GACL,UAAU,CAaZ"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAcH,eAAO,MAAM,SAAS,QAA2B,CAAC;AAClD,eAAO,MAAM,cAAc,QAA2B,CAAC;AACvD,eAAO,MAAM,gBAAgB,QAAiC,CAAC;AAE/D,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,YAAY,CAAC;AAEjD,MAAM,MAAM,UAAU,GAAG;IACvB,eAAe,EAAE,CAAC,CAAC;IACnB,IAAI,EAAE;QAAE,SAAS,EAAE,SAAS,CAAA;KAAE,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AA+DF;;;;;;;;;;;;GAYG;AACH,wBAAgB,UAAU,CACxB,IAAI,GAAE;IACJ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;CAC3B,GACL,UAAU,CAsCZ;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAA;CAAE,EAC/C,IAAI,GAAE;IACJ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;CAC3B,GACL,UAAU,CAaZ"}
@@ -27,7 +27,12 @@ import { randomUUID } from 'node:crypto';
27
27
  export const OLAM_HOME = join(homedir(), '.olam');
28
28
  export const OLAM_STATE_DIR = join(OLAM_HOME, 'state');
29
29
  export const OLAM_CONFIG_PATH = join(OLAM_HOME, 'config.json');
30
- const DEFAULT_SUBSTRATE = 'compose';
30
+ // k3s mode is the canonical olam substrate as of feat/cli-bootstrap-k3s-default
31
+ // (2026-05-22). Fresh installs default to `kubernetes`; existing installs whose
32
+ // ~/.olam/config.json explicitly carries `host.substrate: 'compose'` keep their
33
+ // current behaviour (compose mode remains supported but is no longer the
34
+ // default). To pin compose on a fresh install: `olam config set host.substrate compose`.
35
+ const DEFAULT_SUBSTRATE = 'kubernetes';
31
36
  function makeDefaultConfig() {
32
37
  return {
33
38
  'config.schema': 1,
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Flywheel doctor probes — callable functions for `olam doctor` to consume.
3
+ *
4
+ * Deliberately separated from `packages/cli/src/commands/doctor.ts` so the
5
+ * probe logic can land + be tested without touching the 945-line doctor's
6
+ * D11 positional-contract churn. doctor.ts wiring is a focused follow-up;
7
+ * the probe functions here are the deliverable.
8
+ *
9
+ * Probes:
10
+ * - `probeFlywheelShimHealth()` — verifies every registered shim target
11
+ * (per @olam/cli/lib/shim-generator SHIM_SPECS) exists at
12
+ * `~/.claude/scripts/<basename>` AND is the olam-generated form
13
+ * (contains the AUTO-GENERATED marker). Returns the probe result + a
14
+ * per-target breakdown.
15
+ *
16
+ * - `probeSettingsHooksAudit()` — closes K1 OQ9. Scans
17
+ * `~/.claude/settings.json` for hook entries (PreToolUse / PostToolUse /
18
+ * Stop / SessionStart) that reference hardcoded `~/.claude/scripts/<n>`
19
+ * paths AND warns if the basename matches a shim-target that has a
20
+ * `replacedBy` migration path.
21
+ *
22
+ * Plan reference: docs/plans/olam-flywheel-cli-namespace/phase-b-tasks.md § B4 + B6
23
+ */
24
+ export interface ProbeResult {
25
+ ok: boolean;
26
+ warn: boolean;
27
+ message: string;
28
+ }
29
+ export interface ShimHealthDetail {
30
+ basename: string;
31
+ path: string;
32
+ status: 'OK' | 'MISSING' | 'STALE' | 'OPERATOR-FILE';
33
+ }
34
+ export interface ShimHealthResult extends ProbeResult {
35
+ details: ShimHealthDetail[];
36
+ okCount: number;
37
+ missingCount: number;
38
+ staleCount: number;
39
+ operatorFileCount: number;
40
+ }
41
+ export interface ShimHealthOpts {
42
+ scriptsDir?: string;
43
+ }
44
+ export declare function probeFlywheelShimHealth(opts?: ShimHealthOpts): ShimHealthResult;
45
+ export interface SettingsHookEntry {
46
+ block: 'PreToolUse' | 'PostToolUse' | 'Stop' | 'SessionStart' | 'UserPromptSubmit';
47
+ command: string;
48
+ matchedShimBasename?: string;
49
+ suggestedReplacement?: string;
50
+ }
51
+ export interface SettingsHooksAuditResult extends ProbeResult {
52
+ findings: SettingsHookEntry[];
53
+ }
54
+ export interface SettingsHooksAuditOpts {
55
+ settingsPath?: string;
56
+ }
57
+ export declare function probeSettingsHooksAudit(opts?: SettingsHooksAuditOpts): SettingsHooksAuditResult;
58
+ //# sourceMappingURL=flywheel-probes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flywheel-probes.d.ts","sourceRoot":"","sources":["../../src/lib/flywheel-probes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAYH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,IAAI,GAAG,SAAS,GAAG,OAAO,GAAG,eAAe,CAAC;CACtD;AAED,MAAM,WAAW,gBAAiB,SAAQ,WAAW;IACnD,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,uBAAuB,CAAC,IAAI,GAAE,cAAmB,GAAG,gBAAgB,CA2DnF;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,YAAY,GAAG,aAAa,GAAG,MAAM,GAAG,cAAc,GAAG,kBAAkB,CAAC;IACnF,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,wBAAyB,SAAQ,WAAW;IAC3D,QAAQ,EAAE,iBAAiB,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,sBAAsB;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAgBD,wBAAgB,uBAAuB,CAAC,IAAI,GAAE,sBAA2B,GAAG,wBAAwB,CAuDnG"}
@@ -0,0 +1,163 @@
1
+ /**
2
+ * Flywheel doctor probes — callable functions for `olam doctor` to consume.
3
+ *
4
+ * Deliberately separated from `packages/cli/src/commands/doctor.ts` so the
5
+ * probe logic can land + be tested without touching the 945-line doctor's
6
+ * D11 positional-contract churn. doctor.ts wiring is a focused follow-up;
7
+ * the probe functions here are the deliverable.
8
+ *
9
+ * Probes:
10
+ * - `probeFlywheelShimHealth()` — verifies every registered shim target
11
+ * (per @olam/cli/lib/shim-generator SHIM_SPECS) exists at
12
+ * `~/.claude/scripts/<basename>` AND is the olam-generated form
13
+ * (contains the AUTO-GENERATED marker). Returns the probe result + a
14
+ * per-target breakdown.
15
+ *
16
+ * - `probeSettingsHooksAudit()` — closes K1 OQ9. Scans
17
+ * `~/.claude/settings.json` for hook entries (PreToolUse / PostToolUse /
18
+ * Stop / SessionStart) that reference hardcoded `~/.claude/scripts/<n>`
19
+ * paths AND warns if the basename matches a shim-target that has a
20
+ * `replacedBy` migration path.
21
+ *
22
+ * Plan reference: docs/plans/olam-flywheel-cli-namespace/phase-b-tasks.md § B4 + B6
23
+ */
24
+ import { existsSync, readFileSync } from 'node:fs';
25
+ import { homedir } from 'node:os';
26
+ import { join } from 'node:path';
27
+ import { SHIM_SPECS } from './shim-generator.js';
28
+ import { lookupShimTarget } from '@olam/core/src/lib/shim-targets.js';
29
+ const SHIM_AUTO_GENERATED_MARKER = '# AUTO-GENERATED by `olam flywheel install-shims`';
30
+ const DEFAULT_SCRIPTS_DIR = join(homedir(), '.claude', 'scripts');
31
+ const DEFAULT_SETTINGS_PATH = join(homedir(), '.claude', 'settings.json');
32
+ export function probeFlywheelShimHealth(opts = {}) {
33
+ const scriptsDir = opts.scriptsDir ?? DEFAULT_SCRIPTS_DIR;
34
+ const details = [];
35
+ let okCount = 0;
36
+ let missingCount = 0;
37
+ let staleCount = 0;
38
+ let operatorFileCount = 0;
39
+ for (const spec of SHIM_SPECS) {
40
+ const path = join(scriptsDir, spec.basename);
41
+ let status;
42
+ if (!existsSync(path)) {
43
+ status = 'MISSING';
44
+ missingCount += 1;
45
+ }
46
+ else {
47
+ try {
48
+ const content = readFileSync(path, 'utf8');
49
+ if (content.includes(SHIM_AUTO_GENERATED_MARKER)) {
50
+ status = 'OK';
51
+ okCount += 1;
52
+ }
53
+ else {
54
+ status = 'OPERATOR-FILE';
55
+ operatorFileCount += 1;
56
+ }
57
+ }
58
+ catch {
59
+ status = 'STALE';
60
+ staleCount += 1;
61
+ }
62
+ }
63
+ details.push({ basename: spec.basename, path, status });
64
+ }
65
+ const totalSpecs = SHIM_SPECS.length;
66
+ if (missingCount === 0 && operatorFileCount === 0 && staleCount === 0) {
67
+ return {
68
+ ok: true,
69
+ warn: false,
70
+ message: `flywheel-shim-health: ${okCount}/${totalSpecs} shim targets present + auto-generated`,
71
+ details,
72
+ okCount,
73
+ missingCount,
74
+ staleCount,
75
+ operatorFileCount,
76
+ };
77
+ }
78
+ const issues = [];
79
+ if (missingCount > 0)
80
+ issues.push(`${missingCount} missing`);
81
+ if (operatorFileCount > 0)
82
+ issues.push(`${operatorFileCount} operator-file (would be backed up by --force install)`);
83
+ if (staleCount > 0)
84
+ issues.push(`${staleCount} stale`);
85
+ return {
86
+ ok: false,
87
+ warn: missingCount === 0 && staleCount === 0, // operator-file alone is WARN, not FAIL
88
+ message: `flywheel-shim-health: ${okCount}/${totalSpecs} OK, ${issues.join(', ')} — run \`olam flywheel install-shims\` to refresh (--force to backup + overwrite operator files)`,
89
+ details,
90
+ okCount,
91
+ missingCount,
92
+ staleCount,
93
+ operatorFileCount,
94
+ };
95
+ }
96
+ const HOOK_BLOCKS = [
97
+ 'PreToolUse',
98
+ 'PostToolUse',
99
+ 'Stop',
100
+ 'SessionStart',
101
+ 'UserPromptSubmit',
102
+ ];
103
+ const SCRIPT_PATH_RE = /~\/.claude\/scripts\/([\w.-]+)|\$HOME\/\.claude\/scripts\/([\w.-]+)|\/Users\/[\w.-]+\/\.claude\/scripts\/([\w.-]+)/;
104
+ export function probeSettingsHooksAudit(opts = {}) {
105
+ const settingsPath = opts.settingsPath ?? DEFAULT_SETTINGS_PATH;
106
+ if (!existsSync(settingsPath)) {
107
+ return {
108
+ ok: true,
109
+ warn: false,
110
+ message: `settings-hooks-audit: ${settingsPath} not present; nothing to audit`,
111
+ findings: [],
112
+ };
113
+ }
114
+ let parsed;
115
+ try {
116
+ parsed = JSON.parse(readFileSync(settingsPath, 'utf8'));
117
+ }
118
+ catch (err) {
119
+ return {
120
+ ok: false,
121
+ warn: false,
122
+ message: `settings-hooks-audit: cannot parse ${settingsPath} as JSON: ${err instanceof Error ? err.message : 'unknown'}`,
123
+ findings: [],
124
+ };
125
+ }
126
+ const findings = [];
127
+ const hooks = parsed.hooks ?? {};
128
+ for (const block of HOOK_BLOCKS) {
129
+ const entries = hooks[block] ?? [];
130
+ for (const entry of entries) {
131
+ const command = entry.command ?? '';
132
+ const match = SCRIPT_PATH_RE.exec(command);
133
+ if (match === null)
134
+ continue;
135
+ const basename = match[1] ?? match[2] ?? match[3];
136
+ if (basename === undefined)
137
+ continue;
138
+ const shimTarget = lookupShimTarget(basename);
139
+ findings.push({
140
+ block,
141
+ command,
142
+ ...(basename ? { matchedShimBasename: basename } : {}),
143
+ ...(shimTarget?.replacedBy !== undefined ? { suggestedReplacement: shimTarget.replacedBy } : {}),
144
+ });
145
+ }
146
+ }
147
+ if (findings.length === 0) {
148
+ return {
149
+ ok: true,
150
+ warn: false,
151
+ message: 'settings-hooks-audit: no hardcoded ~/.claude/scripts/ paths in hook entries',
152
+ findings: [],
153
+ };
154
+ }
155
+ const shimMatches = findings.filter((f) => f.suggestedReplacement !== undefined).length;
156
+ return {
157
+ ok: false,
158
+ warn: true,
159
+ message: `settings-hooks-audit: ${findings.length} hook entries reference hardcoded ~/.claude/scripts/<n>${shimMatches > 0 ? `, ${shimMatches} have an olam-flywheel replacement available` : ''}`,
160
+ findings,
161
+ };
162
+ }
163
+ //# sourceMappingURL=flywheel-probes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flywheel-probes.js","sourceRoot":"","sources":["../../src/lib/flywheel-probes.ts"],"names":[],"mappings":"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"}