@pleri/olam-cli 0.1.169 → 0.1.170

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 (64) hide show
  1. package/README.md +38 -0
  2. package/dist/commands/auth-status.d.ts +1 -0
  3. package/dist/commands/auth-status.d.ts.map +1 -1
  4. package/dist/commands/auth-status.js +45 -4
  5. package/dist/commands/auth-status.js.map +1 -1
  6. package/dist/commands/create.d.ts.map +1 -1
  7. package/dist/commands/create.js +26 -0
  8. package/dist/commands/create.js.map +1 -1
  9. package/dist/commands/enter.d.ts.map +1 -1
  10. package/dist/commands/enter.js +5 -0
  11. package/dist/commands/enter.js.map +1 -1
  12. package/dist/commands/resume.d.ts +63 -0
  13. package/dist/commands/resume.d.ts.map +1 -0
  14. package/dist/commands/resume.js +174 -0
  15. package/dist/commands/resume.js.map +1 -0
  16. package/dist/commands/setup.d.ts +19 -0
  17. package/dist/commands/setup.d.ts.map +1 -1
  18. package/dist/commands/setup.js +157 -19
  19. package/dist/commands/setup.js.map +1 -1
  20. package/dist/image-digests.json +8 -8
  21. package/dist/index.js +1021 -576
  22. package/dist/index.js.map +1 -1
  23. package/dist/lib/health-probes.d.ts +28 -0
  24. package/dist/lib/health-probes.d.ts.map +1 -1
  25. package/dist/lib/health-probes.js +75 -0
  26. package/dist/lib/health-probes.js.map +1 -1
  27. package/dist/lib/k8s-context-discovery.d.ts +80 -0
  28. package/dist/lib/k8s-context-discovery.d.ts.map +1 -0
  29. package/dist/lib/k8s-context-discovery.js +102 -0
  30. package/dist/lib/k8s-context-discovery.js.map +1 -0
  31. package/dist/mcp-server.js +1273 -771
  32. package/dist/spawn/home-override.d.ts +82 -0
  33. package/dist/spawn/home-override.d.ts.map +1 -0
  34. package/dist/spawn/home-override.js +107 -0
  35. package/dist/spawn/home-override.js.map +1 -0
  36. package/hermes-bundle/version.json +1 -1
  37. package/host-cp/k8s/manifests/30-configmap.yaml +5 -0
  38. package/host-cp/k8s/manifests/50-deployment.yaml +9 -2
  39. package/host-cp/k8s/manifests/auth-service/50-deployment.yaml +1 -1
  40. package/host-cp/k8s/manifests/kg-service/50-deployment.yaml +1 -1
  41. package/host-cp/k8s/manifests/mcp-auth-service/50-deployment.yaml +1 -1
  42. package/host-cp/k8s/manifests/memory-service/50-deployment.yaml +1 -1
  43. package/host-cp/lifecycle/classify.mjs +110 -0
  44. package/host-cp/lifecycle/emit.mjs +119 -0
  45. package/host-cp/lifecycle/evidence.mjs +45 -0
  46. package/host-cp/lifecycle/failure-kinds.mjs +56 -0
  47. package/host-cp/lifecycle/index.mjs +22 -0
  48. package/host-cp/lifecycle/phases.mjs +52 -0
  49. package/host-cp/observability/grafana-port-forward.sh +1 -1
  50. package/host-cp/observability/kyverno-cardinality-mutate.sh +2 -2
  51. package/host-cp/observability/loki-ingest.sh +1 -1
  52. package/host-cp/observability/ndjson-span-sink.mjs +131 -0
  53. package/host-cp/observability/prom-no-double-grafana.sh +4 -4
  54. package/host-cp/observability/redactor.mjs +72 -0
  55. package/host-cp/recovery/engine.mjs +148 -0
  56. package/host-cp/recovery/index.mjs +16 -0
  57. package/host-cp/recovery/ledger.mjs +105 -0
  58. package/host-cp/recovery/recipes.mjs +46 -0
  59. package/host-cp/recovery/scenarios.mjs +124 -0
  60. package/host-cp/recovery/step-runners.mjs +263 -0
  61. package/host-cp/src/docker-events.mjs +30 -6
  62. package/host-cp/src/pr-nanny.mjs +55 -3
  63. package/host-cp/src/server.mjs +173 -0
  64. package/package.json +1 -1
@@ -0,0 +1,174 @@
1
+ /**
2
+ * olam resume <pr> — Find and enter the world that opened a PR.
3
+ *
4
+ * Accepts a PR number (e.g. `876`), a PR URL (e.g.
5
+ * `https://github.com/pleri/olam/pull/876`), or a branch name
6
+ * (`night/cycle-04-goal-dispatch`). PR number / URL inputs are
7
+ * normalised via `gh pr view <input> --json number,headRefName`;
8
+ * branch-name inputs skip the `gh` round-trip.
9
+ *
10
+ * After resolving the branch, walks the world registry via
11
+ * `WorldManager.listWorlds()` and matches against `WorldMetadata.branch`.
12
+ * On a unique match, execs `olam enter <id>` so the operator drops into
13
+ * the world's terminal. On zero or multiple matches, prints a clear
14
+ * error and exits 1.
15
+ *
16
+ * Language-aligned with Claude Code 2.1.122's `/resume <pr-url>`.
17
+ */
18
+ import { execFileSync } from 'node:child_process';
19
+ import { loadContext } from '../context.js';
20
+ import { printError } from '../output.js';
21
+ /** Detect whether the input looks like a PR identifier (number or GitHub URL). */
22
+ export function looksLikePrIdentifier(input) {
23
+ if (/^\d+$/.test(input.trim()))
24
+ return true;
25
+ if (/^https?:\/\/[^\s]*\/pull\/\d+(?:[/?#].*)?$/i.test(input.trim()))
26
+ return true;
27
+ return false;
28
+ }
29
+ /**
30
+ * Run the resume command. Pure: all I/O happens through {@link ResumeDeps}.
31
+ *
32
+ * @returns Process exit code (0 success, 1 error).
33
+ */
34
+ export async function runResume(input, deps) {
35
+ const trimmed = input.trim();
36
+ if (trimmed.length === 0) {
37
+ deps.stderr('resume: argument <pr> is required (PR number, URL, or branch name).');
38
+ return 1;
39
+ }
40
+ let resolved;
41
+ try {
42
+ resolved = await deps.resolveInput(trimmed);
43
+ }
44
+ catch (err) {
45
+ deps.stderr(`resume: could not resolve "${trimmed}" via gh pr view — ` +
46
+ (err instanceof Error ? err.message : String(err)));
47
+ return 1;
48
+ }
49
+ const { branch, prNumber } = resolved;
50
+ const worlds = deps.listWorlds();
51
+ const matches = worlds.filter((w) => w.branch === branch);
52
+ const prLabel = prNumber !== undefined ? `PR #${prNumber}` : `branch ${branch}`;
53
+ if (matches.length === 0) {
54
+ deps.stderr(`No active world found for ${prLabel} (branch ${branch}). ` +
55
+ `Worlds visible via olam list.`);
56
+ return 1;
57
+ }
58
+ if (matches.length > 1) {
59
+ deps.stderr(`Multiple worlds match ${prLabel} (branch ${branch}); operator decides:`);
60
+ for (const w of matches) {
61
+ deps.stderr(` - ${w.name} (${w.id})`);
62
+ }
63
+ return 1;
64
+ }
65
+ // matches.length is exactly 1 here (guarded by the === 0 and > 1 branches
66
+ // above), so matches[0] is definitely defined. TS strict-mode can't narrow
67
+ // array indexing from a length check, so use a non-null assertion.
68
+ const match = matches[0];
69
+ deps.stdout(`Found world ${match.name} (${match.id}) for ${prLabel}. Entering...`);
70
+ try {
71
+ deps.enterWorld(match.id);
72
+ }
73
+ catch (err) {
74
+ deps.stderr(`resume: olam enter ${match.id} failed — ` +
75
+ (err instanceof Error ? err.message : String(err)));
76
+ return 1;
77
+ }
78
+ return 0;
79
+ }
80
+ /**
81
+ * Production resolver: shells out to `gh pr view` for PR-shaped inputs.
82
+ * Branch-name inputs short-circuit (no gh round-trip).
83
+ */
84
+ export function resolveInputViaGh(input) {
85
+ if (!looksLikePrIdentifier(input)) {
86
+ // Treat as a branch name directly. Refuse empties (defensive — runResume
87
+ // already trims/rejects them, but this keeps the helper standalone-safe).
88
+ if (input.length === 0) {
89
+ return Promise.reject(new Error('empty branch name'));
90
+ }
91
+ return Promise.resolve({ branch: input });
92
+ }
93
+ // Use execFileSync with argv array — input is a defensively-validated
94
+ // PR number or URL (regex above), but argv-array still avoids any shell
95
+ // interpolation hazard if validation is ever loosened.
96
+ let stdout;
97
+ try {
98
+ stdout = execFileSync('gh', ['pr', 'view', input, '--json', 'number,headRefName'], {
99
+ encoding: 'utf-8',
100
+ stdio: ['ignore', 'pipe', 'pipe'],
101
+ timeout: 10_000,
102
+ });
103
+ }
104
+ catch (err) {
105
+ // execFileSync throws on non-zero exit OR if `gh` is missing.
106
+ const msg = err instanceof Error ? err.message : String(err);
107
+ return Promise.reject(new Error(`gh pr view failed: ${msg}`));
108
+ }
109
+ let parsed;
110
+ try {
111
+ parsed = JSON.parse(stdout);
112
+ }
113
+ catch (err) {
114
+ return Promise.reject(new Error(`gh pr view returned non-JSON output: ${err instanceof Error ? err.message : String(err)}`));
115
+ }
116
+ if (typeof parsed.headRefName !== 'string' || parsed.headRefName.length === 0) {
117
+ return Promise.reject(new Error('gh pr view response missing headRefName'));
118
+ }
119
+ const prNumber = typeof parsed.number === 'number' ? parsed.number : undefined;
120
+ return Promise.resolve({ branch: parsed.headRefName, prNumber });
121
+ }
122
+ /**
123
+ * Commander wiring. Composes existing primitives:
124
+ * 1. `gh pr view` → branch + PR number (skipped when input is already a branch).
125
+ * 2. `WorldManager.listWorlds()` → match by `branch`.
126
+ * 3. `execFileSync('olam', ['enter', id])` → drop the operator into the world.
127
+ */
128
+ export function registerResume(program) {
129
+ program
130
+ .command('resume')
131
+ .description('Resume a world by PR number, URL, or branch — finds the world that opened the PR and enters it.')
132
+ .argument('<pr>', 'PR number (876), PR URL, or branch name')
133
+ .addHelpText('after', `
134
+ Examples:
135
+ $ olam resume 876
136
+ $ olam resume https://github.com/pleri/olam/pull/876
137
+ $ olam resume night/feat/foo
138
+ `)
139
+ .action(async (pr) => {
140
+ const { ctx, error } = await loadContext();
141
+ if (!ctx) {
142
+ printError(error?.message ?? 'Olam is not configured. Run `olam init` first.');
143
+ process.exitCode = 1;
144
+ return;
145
+ }
146
+ const code = await runResume(pr, {
147
+ resolveInput: resolveInputViaGh,
148
+ listWorlds: () => ctx.worldManager.listWorlds().map((w) => ({
149
+ id: w.id,
150
+ name: w.name,
151
+ branch: w.branch,
152
+ })),
153
+ enterWorld: (worldId) => {
154
+ // Re-invoke the CLI binary. process.argv[1] is the entry script path
155
+ // (e.g. /usr/local/bin/olam or .../packages/cli/dist/index.js). Falling
156
+ // back to argv[0] ('node') is meaningless, so refuse when argv[1] is
157
+ // missing rather than guess.
158
+ const entry = process.argv[1];
159
+ if (!entry) {
160
+ throw new Error('cannot locate CLI entry script (process.argv[1] missing)');
161
+ }
162
+ execFileSync(process.execPath, [entry, 'enter', worldId, '--exec'], {
163
+ stdio: 'inherit',
164
+ });
165
+ },
166
+ stdout: (line) => console.log(line),
167
+ stderr: (line) => printError(line),
168
+ });
169
+ if (code !== 0) {
170
+ process.exitCode = code;
171
+ }
172
+ });
173
+ }
174
+ //# sourceMappingURL=resume.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resume.js","sourceRoot":"","sources":["../../src/commands/resume.ts"],"names":[],"mappings":"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"}
@@ -50,6 +50,7 @@
50
50
  */
51
51
  import type { Command } from 'commander';
52
52
  import { type DockerExec } from '../lib/health-probes.js';
53
+ import { type KubeContextDeps, type KubeContextProbe } from '../lib/k8s-context-discovery.js';
53
54
  import { type AddSkillSourceFn, type CloneSkillSourceFn, type AppendTrustAuditFn, type RedactUrlFn, type SelectPromptFn, type InputPromptFn } from './setup-phase-5a-skill-source.js';
54
55
  /** k3d cluster name provisioned by olam setup --substrate=kubernetes. */
55
56
  export declare const SETUP_K3D_CLUSTER_NAME = "olam-dev";
@@ -96,6 +97,14 @@ export interface RunSetupOptions {
96
97
  * subsequent `kubectl wait deployment --all` and `curl /health` steps.
97
98
  */
98
99
  readonly skipDoctor?: boolean;
100
+ /**
101
+ * Phase 0.5 (ADR 021): reuse an existing kubeconfig context instead of
102
+ * provisioning a new k3d cluster. When set, Phase 1.5 (k3d install) and
103
+ * Phase 2.5 (cluster provision) are skipped. Phase 2.6 pins to this context.
104
+ * Pair with --substrate=kubernetes. Operator owns lifecycle (teardown not
105
+ * handled by olam setup).
106
+ */
107
+ readonly reuseCluster?: string;
99
108
  }
100
109
  export type SpawnSubprocess = (cmd: string, args: ReadonlyArray<string>) => Promise<{
101
110
  readonly status: number | null;
@@ -127,6 +136,16 @@ export interface RunSetupDeps {
127
136
  * Default: ~/.olam/config.json. Inject in tests to pin substrate.
128
137
  */
129
138
  readonly configPath?: string;
139
+ /**
140
+ * Injectable kubeconfig context discovery deps (Phase 0.5).
141
+ * Default: real kubectl-based implementations in k8s-context-discovery.ts.
142
+ */
143
+ readonly kubeContextDeps?: KubeContextDeps;
144
+ /**
145
+ * Injectable cluster-info probe used when --reuse-cluster=<name> is passed.
146
+ * Default: defaultClusterInfo from k8s-context-discovery.ts.
147
+ */
148
+ readonly kubectlClusterInfo?: (context: string) => KubeContextProbe;
130
149
  }
131
150
  export interface PhaseResult {
132
151
  readonly ok: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOzC,OAAO,EAKL,KAAK,UAAU,EAEhB,MAAM,yBAAyB,CAAC;AAIjC,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,aAAa,EACnB,MAAM,kCAAkC,CAAC;AAM1C,yEAAyE;AACzE,eAAO,MAAM,sBAAsB,aAAa,CAAC;AAejD,kEAAkE;AAClE,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,YAAY,CAAC;AAErD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACpC,iFAAiF;IACjF,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,iEAAiE;IACjE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,iFAAiF;IACjF,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,gFAAgF;IAChF,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,yEAAyE;IACzE,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;;OAMG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,cAAc,CAAC;IACpC;;;;;;;OAOG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,MAAM,eAAe,GAAG,CAC5B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,KACxB,OAAO,CAAC;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAAC;AAEjD,MAAM,MAAM,WAAW,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAWtF,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;IACjC,QAAQ,CAAC,eAAe,CAAC,EAAE,eAAe,CAAC;IAC3C,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IAE5B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IAC7C,QAAQ,CAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACjD,QAAQ,CAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACjD,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IACnC,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC;IACzC,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;IACvC;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IACtC;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,WAAW,CAAA;KAAE,CAAC,CAAC;IACtE,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AA0CD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAU/D;AAYD,uFAAuF;AACvF,eAAO,MAAM,qBAAqB,QAEgE,CAAC;AAkjBnG,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,eAAe,EACrB,IAAI,GAAE,YAAiB,GACtB,OAAO,CAAC,WAAW,CAAC,CAoFtB;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyDpD"}
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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"}
@@ -54,7 +54,8 @@ import { homedir } from 'node:os';
54
54
  import path from 'node:path';
55
55
  import { createInterface } from 'node:readline';
56
56
  import { readCliVersion } from '../cli-version.js';
57
- import { probeDockerDaemon, probeComposePlugin, probeKubectl, probeK3d, } from '../lib/health-probes.js';
57
+ import { probeDockerDaemon, probeComposePlugin, probeKubectl, probeK3d, probeColimaKubernetesEnabled, } from '../lib/health-probes.js';
58
+ import { discoverOfferableContexts, defaultClusterInfo, defaultGetContexts, defaultIsIdle, } from '../lib/k8s-context-discovery.js';
58
59
  import { appendIdempotent, resolveShellRc } from '../lib/shell-rc.js';
59
60
  import { applyKubectlContextPin, findProjectRoot } from './init.js';
60
61
  import { printError, printHeader, printInfo, printSuccess, printWarning } from '../output.js';
@@ -177,6 +178,83 @@ function resolveSubstrate(opts, deps) {
177
178
  return 'kubernetes';
178
179
  }
179
180
  // ── Phases ─────────────────────────────────────────────────────────────
181
+ /**
182
+ * Phase 0.5 — Detect existing reachable kubeconfig contexts (ADR 021).
183
+ *
184
+ * Only runs when substrate=kubernetes. On docker substrate, returns no-op.
185
+ *
186
+ * Behaviour:
187
+ * 1. --reuse-cluster=<name> provided → validate reachability of that context.
188
+ * If reachable, skip Phase 1.5 + 2.5 and pin Phase 2.6 to this context.
189
+ * If unreachable, fail fast with actionable error.
190
+ * 2. --yes mode: if reachable idle contexts exist, print an info line and
191
+ * continue to k3d provision (backward compat — --yes defaults to NO reuse).
192
+ * 3. Interactive: prompt for each offerable context; operator chooses.
193
+ *
194
+ * Returns a PhaseResult extended with an optional `reuseContext` field.
195
+ * When `reuseContext` is set, later phases skip k3d install/provision.
196
+ */
197
+ async function phase0_5DetectExistingContext(substrate, opts, deps) {
198
+ if (substrate !== 'kubernetes') {
199
+ return { ok: true, skipped: true, message: 'no-op for docker substrate' };
200
+ }
201
+ // --reuse-cluster=<name> explicit opt-in: validate that context.
202
+ if (opts.reuseCluster) {
203
+ const name = opts.reuseCluster;
204
+ const clusterInfoFn = deps.kubectlClusterInfo ?? defaultClusterInfo;
205
+ const probe = clusterInfoFn(name);
206
+ if (!probe.reachable) {
207
+ return {
208
+ ok: false,
209
+ message: `--reuse-cluster=${name} but context is not reachable: ${probe.error ?? 'unknown error'}`,
210
+ remedy: `Verify the context exists (\`kubectl config get-contexts\`) and is reachable `
211
+ + `(\`kubectl --context=${name} cluster-info\`), then re-run \`olam setup --reuse-cluster=${name}\`.`,
212
+ reuseContext: undefined,
213
+ };
214
+ }
215
+ return {
216
+ ok: true,
217
+ message: `will reuse context ${name}${probe.serverUrl ? ` (${probe.serverUrl})` : ''}`,
218
+ reuseContext: name,
219
+ };
220
+ }
221
+ // Discover reachable idle contexts not owned by olam.
222
+ const { offerable } = discoverOfferableContexts(deps.kubeContextDeps);
223
+ if (offerable.length === 0) {
224
+ return {
225
+ ok: true,
226
+ skipped: true,
227
+ message: 'no idle reachable contexts detected; will provision k3d cluster',
228
+ };
229
+ }
230
+ // --yes mode: backward compat — default to NO reuse; print informational hint.
231
+ if (opts.yes) {
232
+ process.stdout.write(` Detected ${offerable.length} existing Kubernetes context(s): ${offerable.join(', ')}. `
233
+ + `To reuse one, pass --reuse-cluster=<name>. Provisioning k3d (--yes default).\n`);
234
+ return {
235
+ ok: true,
236
+ skipped: true,
237
+ message: `idle context(s) available but --yes defaults to k3d provision; use --reuse-cluster=<name> to opt in`,
238
+ };
239
+ }
240
+ // Interactive: prompt for each offerable context.
241
+ const promptFn = deps.prompt ?? defaultPrompt;
242
+ for (const ctx of offerable) {
243
+ const reuse = await promptFn(`Detected existing Kubernetes context \`${ctx}\`. Use this cluster instead of provisioning a new k3d cluster?`, false);
244
+ if (reuse) {
245
+ return {
246
+ ok: true,
247
+ message: `operator chose to reuse context ${ctx}`,
248
+ reuseContext: ctx,
249
+ };
250
+ }
251
+ }
252
+ return {
253
+ ok: true,
254
+ skipped: true,
255
+ message: 'operator declined reuse; will provision k3d cluster',
256
+ };
257
+ }
180
258
  async function phase1SystemCheck(substrate, deps) {
181
259
  const nodeVersion = deps.nodeVersion ?? process.version;
182
260
  const nodeMajor = parseNodeMajor(nodeVersion);
@@ -203,6 +281,16 @@ async function phase1SystemCheck(substrate, deps) {
203
281
  remedy: `Install Node.js ${REQUIRED_NODE_MAJOR}+ LTS via nvm/fnm/asdf and re-run \`olam setup\`.`,
204
282
  };
205
283
  }
284
+ // ADR 021 Phase 1 Colima lint: warn when Colima has kubernetes.enabled:true
285
+ // on macOS. This causes k3d to conflict on the same Lima VM ports.
286
+ // Warning only — operator may be using --reuse-cluster=colima intentionally.
287
+ const platform = String(deps.osPlatform ?? process.platform);
288
+ const home = deps.home ?? homedir();
289
+ const colimaLint = probeColimaKubernetesEnabled({ platform, home });
290
+ if (colimaLint.ok && 'warn' in colimaLint && colimaLint.warn === true) {
291
+ const lintWithWarn = colimaLint;
292
+ printWarning(` ⚠ ${lintWithWarn.remedy}`);
293
+ }
206
294
  return { ok: true, message: `kubectl on PATH; docker ready; node ${nodeVersion}` };
207
295
  }
208
296
  // Docker substrate (default)
@@ -236,11 +324,21 @@ async function phase1SystemCheck(substrate, deps) {
236
324
  * Kubernetes (all platforms): installs k3d via brew when available, else the
237
325
  * upstream install script. k3d works on both macOS and Linux — no sudo needed
238
326
  * (k3d only requires docker, which Phase 1 already confirmed).
327
+ *
328
+ * @param reuseContext - when set (ADR 021 Phase 0.5), skip k3d install
239
329
  */
240
- async function phase1_5InstallSubstrate(substrate, opts, deps) {
330
+ async function phase1_5InstallSubstrate(substrate, opts, deps, reuseContext) {
241
331
  if (substrate === 'docker') {
242
332
  return { ok: true, skipped: true, message: 'no-op for docker substrate' };
243
333
  }
334
+ // ADR 021: when reusing an existing context, k3d install is not needed.
335
+ if (reuseContext) {
336
+ return {
337
+ ok: true,
338
+ skipped: true,
339
+ message: `skipped k3d install (reusing context ${reuseContext})`,
340
+ };
341
+ }
244
342
  const spawnFn = deps.spawnSubprocess ?? defaultSpawn;
245
343
  const promptFn = deps.prompt ?? defaultPrompt;
246
344
  // k3d works on both darwin and linux; one path for both.
@@ -319,11 +417,20 @@ function phaseFromProbe(probe) {
319
417
  * k3d updates ~/.kube/config automatically — no kubeconfig juggling needed.
320
418
  *
321
419
  * @param clusterName - resolved cluster name (default: SETUP_K3D_CLUSTER_NAME)
420
+ * @param reuseContext - when set (ADR 021 Phase 0.5), skip cluster provision
322
421
  */
323
- async function phase2_5ProvisionCluster(substrate, clusterName, opts, deps) {
422
+ async function phase2_5ProvisionCluster(substrate, clusterName, opts, deps, reuseContext) {
324
423
  if (substrate === 'docker') {
325
424
  return { ok: true, skipped: true, message: 'no-op for docker substrate' };
326
425
  }
426
+ // ADR 021: when reusing an existing context, k3d cluster provision is skipped.
427
+ if (reuseContext) {
428
+ return {
429
+ ok: true,
430
+ skipped: true,
431
+ message: `skipped k3d cluster provision (reusing context ${reuseContext})`,
432
+ };
433
+ }
327
434
  const spawnFn = deps.spawnSubprocess ?? defaultSpawn;
328
435
  // k3d cluster create <clusterName> (idempotent — same on macOS and Linux)
329
436
  // Check if cluster already exists
@@ -406,7 +513,7 @@ function safeReadCliVersion() {
406
513
  }
407
514
  }
408
515
  /**
409
- * Phase 2.6 — Pin kubectl context after k3d cluster creation.
516
+ * Phase 2.6 — Pin kubectl context after k3d cluster creation (or context reuse).
410
517
  * No-op for docker substrate.
411
518
  *
412
519
  * `olam upgrade` (called by bootstrap step 6/6) requires
@@ -416,16 +523,21 @@ function safeReadCliVersion() {
416
523
  * (AFTER bootstrap). This phase bridges the gap: it pins the context
417
524
  * immediately after cluster creation so bootstrap/upgrade can proceed.
418
525
  *
526
+ * When reuseContext is set (ADR 021), pins to the reused context name
527
+ * instead of the k3d-derived context name.
528
+ *
419
529
  * Idempotent: applyKubectlContextPin skips when the field is already set.
420
530
  *
421
531
  * @param clusterName - resolved cluster name (default: SETUP_K3D_CLUSTER_NAME)
532
+ * @param reuseContext - when set (ADR 021 Phase 0.5), pin to this context name
422
533
  */
423
- async function phase2_6PinKubectlContext(substrate, clusterName, deps) {
534
+ async function phase2_6PinKubectlContext(substrate, clusterName, deps, reuseContext) {
424
535
  if (substrate !== 'kubernetes') {
425
536
  return { ok: true, skipped: true, message: 'no-op for docker substrate' };
426
537
  }
427
- // k3d names the context `k3d-<cluster-name>`.
428
- const expectedContext = `k3d-${clusterName}`;
538
+ // ADR 021: reused context uses the context name directly (not k3d-prefixed).
539
+ // k3d names the context `k3d-<cluster-name>`; reused contexts use their own name.
540
+ const expectedContext = reuseContext ?? `k3d-${clusterName}`;
429
541
  // Ensure ~/.olam/config.json exists with a valid schema before patching
430
542
  // kubectl_context_pinned. applyKubectlContextPin preserves existing keys but
431
543
  // starts from `{}` when the file is absent — that produces an invalid schema
@@ -608,7 +720,8 @@ async function phase7Verify(opts, deps) {
608
720
  };
609
721
  }
610
722
  // ── Orchestrator ──────────────────────────────────────────────────────
611
- const PHASE_TITLES_DOCKER = [
723
+ const PHASE_TITLES = [
724
+ 'Phase 0.5: Detect existing k8s context',
612
725
  'Phase 1: System check',
613
726
  'Phase 1.5: Substrate tools install',
614
727
  'Phase 2: olam CLI sanity',
@@ -622,10 +735,6 @@ const PHASE_TITLES_DOCKER = [
622
735
  'Phase 6: Auth prompt',
623
736
  'Phase 7: Final verification',
624
737
  ];
625
- // For backward compatibility the phases array has the same indices
626
- // as before when substrate=docker (1.5 and 2.5 are no-ops/skipped).
627
- // The phase count is 11 not 9 but existing tests that assert on
628
- // phase indices are updated to use the new positions.
629
738
  export async function runSetup(opts, deps = {}) {
630
739
  const substrate = resolveSubstrate(opts, deps);
631
740
  const clusterName = resolveClusterName(opts);
@@ -654,12 +763,36 @@ export async function runSetup(opts, deps = {}) {
654
763
  if (substrate === 'kubernetes') {
655
764
  process.stdout.write(`cluster: ${clusterName}\n`);
656
765
  }
766
+ // Phase 0.5: detect existing k8s context. Run eagerly (not in phaseFns) so
767
+ // we can capture reuseContext and thread it through Phases 1.5, 2.5, 2.6.
768
+ // We still push the result into the phases array for the SetupReport.
769
+ const results = [];
770
+ let failureAt = null;
771
+ const phase0_5Title = PHASE_TITLES[0];
772
+ process.stdout.write(`\n${phase0_5Title}\n`);
773
+ const phase0_5Result = await phase0_5DetectExistingContext(substrate, opts, deps);
774
+ results.push({ name: phase0_5Title, result: phase0_5Result });
775
+ if (phase0_5Result.ok && phase0_5Result.skipped) {
776
+ printWarning(` ⊘ ${phase0_5Result.message}`);
777
+ }
778
+ else if (phase0_5Result.ok) {
779
+ printSuccess(` ✓ ${phase0_5Result.message}`);
780
+ }
781
+ else {
782
+ printError(` ✗ ${phase0_5Result.message}`);
783
+ if (phase0_5Result.remedy)
784
+ printWarning(` remedy: ${phase0_5Result.remedy}`);
785
+ process.stdout.write('\n');
786
+ printError('Setup FAILED at Phase 1');
787
+ return { phases: results, failureAt: 1, exitCode: 1 };
788
+ }
789
+ const reuseContext = phase0_5Result.reuseContext;
657
790
  const phaseFns = [
658
791
  () => phase1SystemCheck(substrate, deps),
659
- () => phase1_5InstallSubstrate(substrate, opts, deps),
792
+ () => phase1_5InstallSubstrate(substrate, opts, deps, reuseContext),
660
793
  () => phase2CliSanity(deps),
661
- () => phase2_5ProvisionCluster(substrate, clusterName, opts, deps),
662
- () => phase2_6PinKubectlContext(substrate, clusterName, deps),
794
+ () => phase2_5ProvisionCluster(substrate, clusterName, opts, deps, reuseContext),
795
+ () => phase2_6PinKubectlContext(substrate, clusterName, deps, reuseContext),
663
796
  () => phase3Bootstrap(substrate, deps),
664
797
  () => phase4ShellInit(opts, deps),
665
798
  () => phase5InitProject(opts, deps),
@@ -668,10 +801,10 @@ export async function runSetup(opts, deps = {}) {
668
801
  () => phase6Auth(opts, deps),
669
802
  () => phase7Verify(opts, deps),
670
803
  ];
671
- const results = [];
672
- let failureAt = null;
804
+ // results + failureAt were initialised above (before Phase 0.5).
805
+ // phaseFns indices correspond to PHASE_TITLES[1..] (Phase 0.5 is PHASE_TITLES[0]).
673
806
  for (let i = 0; i < phaseFns.length; i += 1) {
674
- const name = PHASE_TITLES_DOCKER[i];
807
+ const name = PHASE_TITLES[i + 1];
675
808
  process.stdout.write(`\n${name}\n`);
676
809
  const result = await phaseFns[i]();
677
810
  results.push({ name, result });
@@ -685,7 +818,7 @@ export async function runSetup(opts, deps = {}) {
685
818
  printError(` ✗ ${result.message}`);
686
819
  if (result.remedy)
687
820
  printWarning(` remedy: ${result.remedy}`);
688
- failureAt = i + 1;
821
+ failureAt = i + 2; // +2 because Phase 0.5 is position 1
689
822
  break;
690
823
  }
691
824
  }
@@ -717,6 +850,11 @@ export function registerSetup(program) {
717
850
  + 'Use a different name to avoid colliding with a pre-existing olam-dev cluster, '
718
851
  + 'to run multiple olam stacks side-by-side, or for per-run unique names in CI smoke. '
719
852
  + 'Must be DNS-compatible: lowercase alphanumeric, hyphens allowed in the middle.')
853
+ .option('--reuse-cluster <name>', 'Reuse an existing kubeconfig context instead of provisioning a new k3d cluster. '
854
+ + 'Pair with --substrate=kubernetes. Skips Phase 1.5 (k3d install) and Phase 2.5 '
855
+ + '(cluster provision); Phase 2.6 pins to this context. Operator owns the cluster '
856
+ + 'lifecycle (teardown not handled by olam setup). '
857
+ + 'Example: --reuse-cluster=colima (for Colima k8s users).')
720
858
  .option('--skip-shell-init', 'Skip Phase 4 (do not append to ~/.zshrc / ~/.bashrc)')
721
859
  .option('--skip-auth', 'Skip Phase 6 (do not prompt for `olam auth login`)')
722
860
  .option('--skip-skill-source', 'Skip Phase 5a (do not pick a skill source; run `olam skills source add` later)')
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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"}