@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
package/README.md CHANGED
@@ -16,6 +16,17 @@ olam --version
16
16
  The installer publishes from npmjs.org. Requires **Node.js ≥ 20** and
17
17
  `npm`. Track the prerelease tag with `OLAM_CHANNEL=canary`.
18
18
 
19
+ ## Run modes
20
+
21
+ Olam ships in two substrate-aware run modes — the CLI routes every command (`bootstrap`, `services`, `upgrade`, `doctor`) to the right backend based on `~/.olam/config.json`'s `host.substrate` value.
22
+
23
+ | Mode | What runs | When to use | Bring up |
24
+ |---|---|---|---|
25
+ | **K3s** (default) | Full Kubernetes deployment on a local k3d cluster (`host-cp`, `auth-service`, `mcp-auth-service`, `kg-service`, `memory-service`) plus a `monitoring` namespace with kube-prometheus-stack + Loki + Grafana. | Same cluster topology olam runs in cloud/dogfood, ingress routing, observability dashboards, NetworkPolicy isolation. | `olam bootstrap` (or `olam bootstrap --auto-install` on macOS to also install missing brew formulae). Guide: [olam.bar.dev/wiki?p=k3s](https://olam.bar.dev/wiki?p=k3s) |
26
+ | **Compose** | 3 host containers (`olam-auth`, `olam-mcp-auth`, `olam-kg-service`) brought up via docker compose. | Lighter setup for hosts that can't run a Kubernetes cluster locally, or for CI. | `olam init && olam config set host.substrate compose && olam bootstrap`. Guide: [olam.bar.dev/wiki?p=setup](https://olam.bar.dev/wiki?p=setup) |
27
+
28
+ K3s mode requires `k3d`, `kubectl`, `helm`, `gh`, and `docker` — the CLI's preflight detects missing tools and (with `--auto-install`) installs them via brew on macOS. Full prereq list at [olam.bar.dev/wiki?p=k3s](https://olam.bar.dev/wiki?p=k3s).
29
+
19
30
  ## Wire the MCP server into Claude Code
20
31
 
21
32
  Olam ships an MCP server with `olam_create`, `olam_dispatch`,
@@ -213,6 +213,7 @@ function blockToChunkDraft(block, ctx) {
213
213
  seq: ctx.seq,
214
214
  role: 'assistant',
215
215
  kind: 'text',
216
+ chunk_type: 'text',
216
217
  chunk: text,
217
218
  created_at: ctx.createdAt,
218
219
  };
@@ -226,6 +227,7 @@ function blockToChunkDraft(block, ctx) {
226
227
  seq: ctx.seq,
227
228
  role: 'tool',
228
229
  kind: 'tool-call',
230
+ chunk_type: 'tool_use',
229
231
  chunk: JSON.stringify({
230
232
  tool_use_id: tool.id,
231
233
  name: tool.name,
@@ -244,6 +246,7 @@ function blockToChunkDraft(block, ctx) {
244
246
  seq: ctx.seq,
245
247
  role: 'assistant',
246
248
  kind: 'text',
249
+ chunk_type: 'text',
247
250
  chunk: JSON.stringify(block),
248
251
  created_at: ctx.createdAt,
249
252
  };
@@ -83,6 +83,10 @@ export const DEFAULT_SYSTEM_PROMPT_APPEND = `You are the driver agent inside an
83
83
  */
84
84
  export function buildSdkOptions(input) {
85
85
  const driverToolsEnabled = process.env.AGENT_DRIVER_TOOLS_ENABLED === '1';
86
+ const baseAllowedTools = [];
87
+ const allowedTools = input.extraAllowedTools
88
+ ? [...baseAllowedTools, ...input.extraAllowedTools]
89
+ : baseAllowedTools;
86
90
  return {
87
91
  systemPrompt: {
88
92
  type: 'preset',
@@ -90,7 +94,7 @@ export function buildSdkOptions(input) {
90
94
  ...(input.systemPromptAppend ? { append: input.systemPromptAppend } : {}),
91
95
  },
92
96
  // Empty allowlist = strict coordinator (no tools); undefined = full preset tools.
93
- ...(driverToolsEnabled ? {} : { allowedTools: [] }),
97
+ ...(driverToolsEnabled ? {} : { allowedTools }),
94
98
  effort: 'low',
95
99
  thinking: { type: 'disabled' },
96
100
  model: 'claude-sonnet-4-6',
@@ -110,7 +114,7 @@ export function buildSdkOptions(input) {
110
114
  * - The `prompt` is passed through unchanged.
111
115
  */
112
116
  export function createSdkQuery(query) {
113
- return ({ prompt, abortSignal, systemPromptAppend }) => {
117
+ return ({ prompt, abortSignal, systemPromptAppend, extraAllowedTools }) => {
114
118
  // eslint-disable-next-line no-console
115
119
  console.error(`[driver] sdkQuery fired (prompt: ${typeof prompt === 'string' ? `${prompt.length} chars` : 'AsyncIterable<SdkUserMessage>'})`);
116
120
  // Forward the runDriver-owned abortSignal to a fresh AbortController
@@ -126,7 +130,7 @@ export function createSdkQuery(query) {
126
130
  });
127
131
  }
128
132
  const options = {
129
- ...buildSdkOptions({ systemPromptAppend }),
133
+ ...buildSdkOptions({ systemPromptAppend, extraAllowedTools }),
130
134
  abortController: sdkAbortController,
131
135
  };
132
136
  return query({ prompt, options });
@@ -139,7 +143,7 @@ export function createSdkQuery(query) {
139
143
  * (SIGTERM via the supervisor → the abortSignal here).
140
144
  */
141
145
  export function runDriver(opts) {
142
- const { hostCpUrl, bearer, worldId, sessionId, systemPromptAppend = DEFAULT_SYSTEM_PROMPT_APPEND, sdkQuery, abortSignal: externalSignal, subscribeImpl = subscribeToChunks, postChunkImpl = (url, b) => makeHostCpChunkPoster({ sidecarUrl: url, bearer: b }), } = opts;
146
+ const { hostCpUrl, bearer, worldId, sessionId, systemPromptAppend = DEFAULT_SYSTEM_PROMPT_APPEND, extraAllowedTools, sdkQuery, abortSignal: externalSignal, subscribeImpl = subscribeToChunks, postChunkImpl = (url, b) => makeHostCpChunkPoster({ sidecarUrl: url, bearer: b }), } = opts;
143
147
  const controller = new AbortController();
144
148
  if (externalSignal) {
145
149
  if (externalSignal.aborted)
@@ -241,6 +245,7 @@ export function runDriver(opts) {
241
245
  prompt: userMessageStream(),
242
246
  abortSignal: signal,
243
247
  systemPromptAppend,
248
+ extraAllowedTools,
244
249
  });
245
250
  await streamMultiTurnSdkToChunks({
246
251
  messages,
@@ -0,0 +1,48 @@
1
+ /**
2
+ * host-driver-launch.ts — Phase J J4 thin host-side launcher for the
3
+ * planning-driver.
4
+ *
5
+ * HOST_DRIVER_CONTRACT: this module ONLY overrides the launch path —
6
+ * every agent logic decision delegates to `runDriver()` in
7
+ * driver-runner.ts. Adding a new options field or behavioural branch
8
+ * here is a code-smell; extend `DriverRunnerOptions` instead so the
9
+ * world-side path inherits.
10
+ *
11
+ * Why a separate launcher: `runDriver`'s `main()` entry reads
12
+ * `WORLD_ID` / `SESSION_ID` / `HOST_CP_URL` / `HOST_CP_BEARER` from
13
+ * env and `await import('@anthropic-ai/claude-agent-sdk')`. That shape
14
+ * suits the supervisor-fork-into-devbox path; on the host process
15
+ * we already have those values in JS scope (no env injection across
16
+ * a container boundary), so we bypass `main()` and call `runDriver()`
17
+ * directly with the planning-agent system-prompt-append default.
18
+ */
19
+ import { PLANNING_SYSTEM_PROMPT } from '../prompts/planning-agent.js';
20
+ import { runDriver, } from './driver-runner.js';
21
+ /**
22
+ * Launch a planning-driver in the host process. Delegates everything
23
+ * substantive to `runDriver`; this function only translates the
24
+ * host-side options shape into `DriverRunnerOptions` (defaulting
25
+ * `systemPromptAppend` to the planning prompt) and bypasses `main()`'s
26
+ * env-var fork.
27
+ */
28
+ /**
29
+ * Phase I I0 — planning-side widened tool allowlist.
30
+ * The in-world supervisor path never sets extraAllowedTools (stays `[]` per
31
+ * Decision D10). The planning-side driver defaults to including mcp__linear__*
32
+ * so operators with a local Linear MCP server can ingest tickets without
33
+ * configuring anything extra beyond the standard Linear MCP setup.
34
+ */
35
+ export const PLANNING_DRIVER_EXTRA_ALLOWED_TOOLS = ['mcp__linear__*'];
36
+ export function launchHostDriver(opts) {
37
+ return runDriver({
38
+ worldId: opts.worldId,
39
+ sessionId: opts.sessionId,
40
+ hostCpUrl: opts.hostCpUrl,
41
+ bearer: opts.bearer,
42
+ sdkQuery: opts.sdkQuery,
43
+ systemPromptAppend: opts.systemPromptAppend ?? PLANNING_SYSTEM_PROMPT,
44
+ extraAllowedTools: opts.extraAllowedTools ?? PLANNING_DRIVER_EXTRA_ALLOWED_TOOLS,
45
+ abortSignal: opts.abortSignal,
46
+ });
47
+ }
48
+ //# sourceMappingURL=host-driver-launch.js.map
@@ -63,6 +63,14 @@ export interface BootstrapOpts {
63
63
  /** Skip olam-kg-service pull + start (Phase B of olam-kg-service-container-v2). */
64
64
  readonly skipKgService?: boolean;
65
65
  readonly registry?: string;
66
+ /** k3d cluster name (default: olam-host). */
67
+ readonly k3sCluster?: string;
68
+ /** Auto-install missing tools via brew on macOS. */
69
+ readonly autoInstall?: boolean;
70
+ /** Skip the observability stack install (Loki + Promtail + Grafana + Prom + Kyverno). */
71
+ readonly skipObservability?: boolean;
72
+ /** Cluster already exists; skip k3d cluster create. */
73
+ readonly skipClusterCreate?: boolean;
66
74
  }
67
75
  /** Image-digests.json schema validation + load. */
68
76
  export declare function loadImageDigests(installRootDir?: string): ImageDigests;
@@ -76,6 +84,13 @@ export interface BootstrapDeps {
76
84
  readonly registry?: string;
77
85
  /** Subprocess shell-out for `olam <command>` (host-cp/auth). Default: real spawnSync. */
78
86
  readonly runOlamSubcommand?: (args: readonly string[]) => DockerCommandResult;
87
+ /**
88
+ * Override the config path the substrate-dispatch reads. Tests pin
89
+ * `host.substrate: 'compose'` via this hook so the bootstrap flow stays
90
+ * on the compose path even after the package-wide default flipped to
91
+ * 'kubernetes' (feat/cli-bootstrap-k3s-default).
92
+ */
93
+ readonly configPath?: string;
79
94
  }
80
95
  export declare function runBootstrap(opts: BootstrapOpts, deps?: BootstrapDeps): Promise<BootstrapResult>;
81
96
  export declare function registerBootstrap(program: Command): void;
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/commands/bootstrap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAKH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC,OAAO,EACL,kBAAkB,EAClB,UAAU,EACV,KAAK,UAAU,EACf,KAAK,mBAAmB,EACxB,KAAK,UAAU,EAChB,MAAM,gBAAgB,CAAC;AAexB,OAAO,EACL,kBAAkB,EAClB,UAAU,EACV,KAAK,UAAU,EACf,KAAK,mBAAmB,EACxB,KAAK,UAAU,GAChB,CAAC;AAIF,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;;;;;;OAMG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,2FAA2F;IAC3F,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CACtC;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,iFAAiF;IACjF,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IACzC;wFACoF;IACpF,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,mFAAmF;IACnF,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,mDAAmD;AACnD,wBAAgB,gBAAgB,CAAC,cAAc,GAAE,MAAsB,GAAG,YAAY,CA2BrF;AAID,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,yFAAyF;IACzF,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,KAAK,mBAAmB,CAAC;CAC/E;AAiBD,wBAAsB,YAAY,CAChC,IAAI,EAAE,aAAa,EACnB,IAAI,GAAE,aAAkB,GACvB,OAAO,CAAC,eAAe,CAAC,CAuU1B;AAID,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA+BxD"}
1
+ {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/commands/bootstrap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAKH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC,OAAO,EACL,kBAAkB,EAClB,UAAU,EACV,KAAK,UAAU,EACf,KAAK,mBAAmB,EACxB,KAAK,UAAU,EAChB,MAAM,gBAAgB,CAAC;AAiBxB,OAAO,EACL,kBAAkB,EAClB,UAAU,EACV,KAAK,UAAU,EACf,KAAK,mBAAmB,EACxB,KAAK,UAAU,GAChB,CAAC;AAIF,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;;;;;;OAMG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,2FAA2F;IAC3F,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CACtC;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,iFAAiF;IACjF,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IACzC;wFACoF;IACpF,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,mFAAmF;IACnF,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAE3B,6CAA6C;IAC7C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,oDAAoD;IACpD,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,yFAAyF;IACzF,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IACrC,uDAAuD;IACvD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CACtC;AAED,mDAAmD;AACnD,wBAAgB,gBAAgB,CAAC,cAAc,GAAE,MAAsB,GAAG,YAAY,CA2BrF;AAID,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,yFAAyF;IACzF,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,KAAK,mBAAmB,CAAC;IAC9E;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAiBD,wBAAsB,YAAY,CAChC,IAAI,EAAE,aAAa,EACnB,IAAI,GAAE,aAAkB,GACvB,OAAO,CAAC,eAAe,CAAC,CAsV1B;AAID,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuDxD"}
@@ -36,6 +36,8 @@ import { installRoot } from '../install-root.js';
36
36
  import { EXIT_BOOTSTRAP_PULL_FAILED, EXIT_GENERIC_ERROR, EXIT_PROTOCOL_MISMATCH, } from '../exit-codes.js';
37
37
  import { checkProtocolOverlap, parseProtocolVersionsLabel } from '../protocol-version.js';
38
38
  import { printError, printSuccess, printInfo, printHeader } from '../output.js';
39
+ import { readConfig } from '../lib/config.js';
40
+ import { runBootstrapKubernetes, DEFAULT_K3S_CLUSTER } from '../lib/bootstrap-kubernetes.js';
39
41
  // Re-export so existing call sites (upgrade.ts, auth-upgrade.ts, tests)
40
42
  // keep importing from `./bootstrap.js` unchanged. The implementation
41
43
  // moved to @olam/adapters/docker/pull.ts so the adapter layer can
@@ -83,6 +85,20 @@ const REAL_OLAM_SUBCOMMAND = (args) => {
83
85
  };
84
86
  };
85
87
  export async function runBootstrap(opts, deps = {}) {
88
+ // Substrate-aware dispatch. k3s is the default substrate as of
89
+ // feat/cli-bootstrap-k3s-default; compose remains supported for existing
90
+ // installs whose ~/.olam/config.json still declares substrate=compose.
91
+ const cfg = readConfig(deps.configPath ? { configPath: deps.configPath } : {});
92
+ if (cfg.host.substrate === 'kubernetes') {
93
+ const k8s = await runBootstrapKubernetes({
94
+ cluster: opts.k3sCluster ?? DEFAULT_K3S_CLUSTER,
95
+ autoInstall: opts.autoInstall ?? false,
96
+ skipObservability: opts.skipObservability ?? false,
97
+ skipClusterCreate: opts.skipClusterCreate ?? false,
98
+ });
99
+ return { exitCode: k8s.exitCode, summary: k8s.summary };
100
+ }
101
+ // Compose substrate — existing flow.
86
102
  const docker = deps.docker ?? realDocker;
87
103
  const digests = deps.digests ?? loadImageDigests();
88
104
  const registry = opts.registry ?? deps.registry ?? digests.$registry ?? 'ghcr.io/pleri';
@@ -382,13 +398,22 @@ export async function runBootstrap(opts, deps = {}) {
382
398
  export function registerBootstrap(program) {
383
399
  program
384
400
  .command('bootstrap')
385
- .description('Bootstrap the olam stack: pull 3 images by digest, verify protocol handshake, start host-cp + auth, run auth login.')
401
+ .description('Bootstrap the olam stack. Substrate-aware: on kubernetes (default), ' +
402
+ 'detects tools, generates secrets, creates a k3d cluster, installs ' +
403
+ 'observability (Loki + Promtail + Grafana + Prometheus + Kyverno), ' +
404
+ 'and applies all peripheral manifests. On compose, pulls 3 images by ' +
405
+ 'digest + starts host-cp + auth + runs auth login.')
386
406
  .option('--with-smoke', 'After bootstrap, create a smoke-test world to verify end-to-end')
387
407
  .option('--skip-auth-login', 'Skip the interactive PKCE step (CI / scripted use only)')
388
408
  .option('--skip-postgres-singleton', 'Skip the olam-postgres singleton bring-up (operators with host postgres opt-out, or CI)')
389
409
  .option('--skip-memory', 'Skip the agent-memory Docker container bring-up (CI / scripted use, or hosts without Docker)')
390
410
  .option('--skip-kg-service', 'Skip the olam-kg-service container pull + start (classifier-augmented retrieval; v2 feature)')
391
411
  .option('--registry <ref>', 'Override the registry prefix (default: read from image-digests.json or fall back to ghcr.io/pleri)')
412
+ // ── k3s substrate options ─────────────────────────────────────────
413
+ .option('--k3s-cluster <name>', `[k3s] k3d cluster name (default: ${DEFAULT_K3S_CLUSTER})`, DEFAULT_K3S_CLUSTER)
414
+ .option('--auto-install', '[k3s] auto-install missing tools via brew on macOS', false)
415
+ .option('--skip-observability', '[k3s] skip Loki/Promtail/Grafana/Prom install (already in place)', false)
416
+ .option('--skip-cluster-create', '[k3s] cluster already exists; install substrate only', false)
392
417
  .action(async (opts) => {
393
418
  try {
394
419
  const result = await runBootstrap({
@@ -398,6 +423,10 @@ export function registerBootstrap(program) {
398
423
  skipMemory: opts.skipMemory === true,
399
424
  skipKgService: opts.skipKgService === true,
400
425
  registry: opts.registry,
426
+ k3sCluster: opts.k3sCluster,
427
+ autoInstall: opts.autoInstall === true,
428
+ skipObservability: opts.skipObservability === true,
429
+ skipClusterCreate: opts.skipClusterCreate === true,
401
430
  });
402
431
  process.exitCode = result.exitCode;
403
432
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/commands/bootstrap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/commands/bootstrap.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,35 @@
1
1
  /**
2
- * `olam flywheel check-persona-skeleton` — stub registered in task A1.
3
- * Implementation lands in task A7 (port from `shared/engineering/scripts/check-persona-skeleton.py`).
2
+ * `olam flywheel check-persona-skeleton` — D12 skeleton conformance checker.
3
+ *
4
+ * Port of `shared/engineering/scripts/check-persona-skeleton.py`. Validates
5
+ * persona-file conformance:
6
+ * 1. Frontmatter has `name`, `description`, `allowed-tools`.
7
+ * 2-5. Body has `## Role`, `## Cognitive patterns`, `## Scoring rubric`,
8
+ * `## Output format`.
9
+ * 6. `## Cognitive patterns` has ≥5 named patterns (### headings or bullets).
10
+ * 7. Token count (chars/4 approx) ≤ K10 cap (6000).
11
+ *
12
+ * Note on merged-result measurement: the Python predecessor imports
13
+ * apply-overlays.py's `merge_markdown` to measure overlay+upstream merged
14
+ * results. This TypeScript port currently measures STANDALONE only — overlay
15
+ * files needing merged-result measurement emit a warning + are checked
16
+ * against their standalone content. The merge-aware measurement lands when
17
+ * Phase A step 9 (apply-overlays port) ships; see follow-up task A7-merge.
18
+ *
19
+ * CLI:
20
+ * olam flywheel check-persona-skeleton <file> [<file> ...]
21
+ * Exit 0 = all PASS; Exit 1 = any FAIL.
22
+ *
23
+ * Plan reference: docs/plans/olam-flywheel-cli-namespace/phase-a-tasks.md § A7
4
24
  */
5
25
  import type { Command } from 'commander';
26
+ interface CheckResult {
27
+ passed: boolean;
28
+ failures: string[];
29
+ tokens: number;
30
+ mergedSkipped: boolean;
31
+ }
32
+ export declare function checkFile(filepath: string): CheckResult;
6
33
  export declare function registerFlywheelCheckPersonaSkeleton(parent: Command): void;
34
+ export {};
7
35
  //# sourceMappingURL=check-persona-skeleton.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"check-persona-skeleton.d.ts","sourceRoot":"","sources":["../../../src/commands/flywheel/check-persona-skeleton.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,wBAAgB,oCAAoC,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAU1E"}
1
+ {"version":3,"file":"check-persona-skeleton.d.ts","sourceRoot":"","sources":["../../../src/commands/flywheel/check-persona-skeleton.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAKH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuDzC,UAAU,WAAW;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CAoDvD;AAED,wBAAgB,oCAAoC,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CA4B1E"}
@@ -1,14 +1,151 @@
1
1
  /**
2
- * `olam flywheel check-persona-skeleton` — stub registered in task A1.
3
- * Implementation lands in task A7 (port from `shared/engineering/scripts/check-persona-skeleton.py`).
2
+ * `olam flywheel check-persona-skeleton` — D12 skeleton conformance checker.
3
+ *
4
+ * Port of `shared/engineering/scripts/check-persona-skeleton.py`. Validates
5
+ * persona-file conformance:
6
+ * 1. Frontmatter has `name`, `description`, `allowed-tools`.
7
+ * 2-5. Body has `## Role`, `## Cognitive patterns`, `## Scoring rubric`,
8
+ * `## Output format`.
9
+ * 6. `## Cognitive patterns` has ≥5 named patterns (### headings or bullets).
10
+ * 7. Token count (chars/4 approx) ≤ K10 cap (6000).
11
+ *
12
+ * Note on merged-result measurement: the Python predecessor imports
13
+ * apply-overlays.py's `merge_markdown` to measure overlay+upstream merged
14
+ * results. This TypeScript port currently measures STANDALONE only — overlay
15
+ * files needing merged-result measurement emit a warning + are checked
16
+ * against their standalone content. The merge-aware measurement lands when
17
+ * Phase A step 9 (apply-overlays port) ships; see follow-up task A7-merge.
18
+ *
19
+ * CLI:
20
+ * olam flywheel check-persona-skeleton <file> [<file> ...]
21
+ * Exit 0 = all PASS; Exit 1 = any FAIL.
22
+ *
23
+ * Plan reference: docs/plans/olam-flywheel-cli-namespace/phase-a-tasks.md § A7
4
24
  */
25
+ import { existsSync, readFileSync, statSync } from 'node:fs';
26
+ import { homedir } from 'node:os';
27
+ import { basename, join } from 'node:path';
28
+ import { parse as parseYAML } from 'yaml';
29
+ const CHARS_PER_TOKEN = 4;
30
+ const K10_TOKEN_CAP = 6000;
31
+ const AGENTS_DIR = join(homedir(), '.claude', 'agents');
32
+ const REQUIRED_FRONTMATTER_KEYS = ['name', 'description', 'allowed-tools'];
33
+ const REQUIRED_SECTIONS = [
34
+ '## Role',
35
+ '## Cognitive patterns',
36
+ '## Scoring rubric',
37
+ '## Output format',
38
+ ];
39
+ function parseFile(text) {
40
+ const cleaned = text.replace(/^/, '');
41
+ if (!cleaned.startsWith('---'))
42
+ return { fm: {}, body: cleaned };
43
+ const closeIdx = cleaned.indexOf('\n---', 3);
44
+ if (closeIdx === -1)
45
+ return { fm: {}, body: cleaned };
46
+ const fmRaw = cleaned.slice(4, closeIdx);
47
+ const body = cleaned.slice(closeIdx + 4).replace(/^\n/, '');
48
+ try {
49
+ const fm = parseYAML(fmRaw) ?? {};
50
+ return { fm, body };
51
+ }
52
+ catch {
53
+ return { fm: {}, body };
54
+ }
55
+ }
56
+ function countH2(body, heading) {
57
+ const escaped = heading.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
58
+ const pattern = new RegExp(`^${escaped}\\s*$`, 'gm');
59
+ return (body.match(pattern) ?? []).length;
60
+ }
61
+ function sectionBody(body, heading) {
62
+ const escaped = heading.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
63
+ const pattern = new RegExp(`^${escaped}\\s*\\n([\\s\\S]*?)(?=^## |$(?![\\r\\n]))`, 'm');
64
+ const match = body.match(pattern);
65
+ return match?.[1] ?? '';
66
+ }
67
+ function countNamedPatterns(sectionText) {
68
+ const h3Count = (sectionText.match(/^###\s+\S/gm) ?? []).length;
69
+ if (h3Count >= 5)
70
+ return h3Count;
71
+ const bulletCount = (sectionText.match(/^\s*[-*]\s+\S/gm) ?? []).length;
72
+ return Math.max(h3Count, bulletCount);
73
+ }
74
+ export function checkFile(filepath) {
75
+ if (!existsSync(filepath) || !statSync(filepath).isFile()) {
76
+ return { passed: false, failures: [`file not found: ${filepath}`], tokens: 0, mergedSkipped: false };
77
+ }
78
+ const text = readFileSync(filepath, 'utf8');
79
+ const { fm, body } = parseFile(text);
80
+ const failures = [];
81
+ // 1. Frontmatter required keys.
82
+ for (const key of REQUIRED_FRONTMATTER_KEYS) {
83
+ const val = fm[key];
84
+ if (val === undefined || val === null || val === '') {
85
+ failures.push(`frontmatter missing \`${key}:\``);
86
+ }
87
+ }
88
+ // Determine whether to attempt merged measurement.
89
+ const isNewAgent = fm['overlay-intent'] === 'new-agent';
90
+ const agentName = typeof fm.name === 'string' ? fm.name : '';
91
+ let mergedSkipped = false;
92
+ if (!isNewAgent && agentName !== '') {
93
+ const upstreamPath = join(AGENTS_DIR, `${agentName}.md`);
94
+ if (existsSync(upstreamPath)) {
95
+ // Merged-result measurement requires A9 apply-overlays port.
96
+ // For now: warn + fall back to standalone measurement.
97
+ mergedSkipped = true;
98
+ }
99
+ }
100
+ // 2-5. Required sections.
101
+ for (const heading of REQUIRED_SECTIONS) {
102
+ if (countH2(body, heading) === 0) {
103
+ failures.push(`missing section: '${heading}'`);
104
+ }
105
+ }
106
+ // 6. ≥5 named patterns.
107
+ const cogBody = sectionBody(body, '## Cognitive patterns');
108
+ if (cogBody !== '') {
109
+ const patternCount = countNamedPatterns(cogBody);
110
+ if (patternCount < 5) {
111
+ failures.push(`'## Cognitive patterns' has ${patternCount} named pattern(s); need >= 5`);
112
+ }
113
+ }
114
+ // 7. Token cap.
115
+ const tokens = Math.floor(text.length / CHARS_PER_TOKEN);
116
+ if (tokens > K10_TOKEN_CAP) {
117
+ failures.push(`K10 cap exceeded: ${tokens} > ${K10_TOKEN_CAP} tokens`);
118
+ }
119
+ return { passed: failures.length === 0, failures, tokens, mergedSkipped };
120
+ }
5
121
  export function registerFlywheelCheckPersonaSkeleton(parent) {
6
122
  parent
7
123
  .command('check-persona-skeleton')
8
- .description('Validate persona agent file structure (stub implemented in task A7)')
9
- .action(() => {
10
- console.error('olam flywheel check-persona-skeleton: not yet implemented (task A7). See docs/plans/olam-flywheel-cli-namespace/phase-a-tasks.md');
11
- process.exit(2);
124
+ .description('Validate D12 skeleton conformance of persona files (frontmatter + required sections + cognitive patterns + K10 cap)')
125
+ .argument('<file...>', 'one or more persona files to check')
126
+ .action((files) => {
127
+ let passCount = 0;
128
+ let failCount = 0;
129
+ for (const filepath of files) {
130
+ const result = checkFile(filepath);
131
+ const label = basename(filepath);
132
+ if (result.passed) {
133
+ process.stdout.write(`PASS: ${label} -- D12 skeleton valid; tokens=${result.tokens}/${K10_TOKEN_CAP}`);
134
+ if (result.mergedSkipped) {
135
+ process.stdout.write(' (merged measurement deferred to A9 apply-overlays port)');
136
+ }
137
+ process.stdout.write('\n');
138
+ passCount += 1;
139
+ }
140
+ else {
141
+ for (const detail of result.failures) {
142
+ process.stdout.write(`FAIL: ${label} -- ${detail}\n`);
143
+ }
144
+ failCount += 1;
145
+ }
146
+ }
147
+ process.stdout.write(`\nResults: ${passCount} passed, ${failCount} failed\n`);
148
+ process.exit(failCount > 0 ? 1 : 0);
12
149
  });
13
150
  }
14
151
  //# sourceMappingURL=check-persona-skeleton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"check-persona-skeleton.js","sourceRoot":"","sources":["../../../src/commands/flywheel/check-persona-skeleton.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,UAAU,oCAAoC,CAAC,MAAe;IAClE,MAAM;SACH,OAAO,CAAC,wBAAwB,CAAC;SACjC,WAAW,CAAC,uEAAuE,CAAC;SACpF,MAAM,CAAC,GAAG,EAAE;QACX,OAAO,CAAC,KAAK,CACX,kIAAkI,CACnI,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"check-persona-skeleton.js","sourceRoot":"","sources":["../../../src/commands/flywheel/check-persona-skeleton.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,16 @@
1
1
  /**
2
- * `olam flywheel diversity-check` — stub registered in task A1.
3
- * Implementation lands in task A8 (port from `shared/engineering/scripts/diversity_check.py`).
2
+ * `olam flywheel diversity-check` — cross-persona Jaccard similarity CLI.
3
+ *
4
+ * Reads persona-prompt files from a glob; computes pairwise Jaccard; reports
5
+ * pairs exceeding the threshold (default 0.7). Used by /10x:learn write-path
6
+ * to detect silent convergence collapse across K1 personas.
7
+ *
8
+ * Exit codes:
9
+ * 0 = no convergence (all pairs below threshold)
10
+ * 1 = convergence detected (one or more pairs above threshold)
11
+ * 2 = unexpected error (no matching files / read failure)
12
+ *
13
+ * Plan reference: docs/plans/olam-flywheel-cli-namespace/phase-a-tasks.md § A8
4
14
  */
5
15
  import type { Command } from 'commander';
6
16
  export declare function registerFlywheelDiversityCheck(parent: Command): void;
@@ -1 +1 @@
1
- {"version":3,"file":"diversity-check.d.ts","sourceRoot":"","sources":["../../../src/commands/flywheel/diversity-check.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAUpE"}
1
+ {"version":3,"file":"diversity-check.d.ts","sourceRoot":"","sources":["../../../src/commands/flywheel/diversity-check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAKH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAazC,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAkDpE"}