@pleri/olam-cli 0.1.10 → 0.1.12

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.
@@ -1,5 +1,6 @@
1
1
  import { describe, expect, it, vi, afterEach } from 'vitest';
2
2
  import { formatAuthStatus, readAccountsFile, runAuthStatus } from '../commands/auth-status.js';
3
+ import { EXIT_AUTH_NEEDS_ATTENTION } from '../exit-codes.js';
3
4
  import * as fs from 'node:fs';
4
5
  import * as os from 'node:os';
5
6
  import * as path from 'node:path';
@@ -109,7 +110,7 @@ describe('reason formatting', () => {
109
110
  const { output, exitCode } = formatAuthStatus(accounts, NOW);
110
111
  const plain = stripAnsi(output);
111
112
  expect(plain).toContain('cooldown until');
112
- expect(exitCode).toBe(2);
113
+ expect(exitCode).toBe(EXIT_AUTH_NEEDS_ATTENTION);
113
114
  });
114
115
  it('expired credential shows "expired N days ago"', () => {
115
116
  const expiredAt = NOW - 3 * 24 * 60 * 60 * 1000; // 3 days ago
@@ -125,7 +126,7 @@ describe('reason formatting', () => {
125
126
  const { output, exitCode } = formatAuthStatus(accounts, NOW);
126
127
  const plain = stripAnsi(output);
127
128
  expect(plain).toContain('expired 3 days ago');
128
- expect(exitCode).toBe(2);
129
+ expect(exitCode).toBe(EXIT_AUTH_NEEDS_ATTENTION);
129
130
  });
130
131
  it('disabled credential shows "disabled" reason', () => {
131
132
  const accounts = [
@@ -140,12 +141,12 @@ describe('reason formatting', () => {
140
141
  const { output, exitCode } = formatAuthStatus(accounts, NOW);
141
142
  const plain = stripAnsi(output);
142
143
  expect(plain).toContain('disabled');
143
- expect(exitCode).toBe(2);
144
+ expect(exitCode).toBe(EXIT_AUTH_NEEDS_ATTENTION);
144
145
  });
145
146
  });
146
147
  // ── Exit 2 when all credentials unavailable ──────────────────────────────────
147
- describe('exit code 2 — all unavailable', () => {
148
- it('returns exitCode 2 when all credentials are on cooldown', () => {
148
+ describe('EXIT_AUTH_NEEDS_ATTENTION (5) — all unavailable', () => {
149
+ it('returns EXIT_AUTH_NEEDS_ATTENTION when all credentials are on cooldown', () => {
149
150
  const resetAt = new Date('2026-05-02T15:00:00Z').toISOString();
150
151
  const accounts = [
151
152
  {
@@ -165,7 +166,7 @@ describe('exit code 2 — all unavailable', () => {
165
166
  ];
166
167
  const { output, exitCode } = formatAuthStatus(accounts, NOW);
167
168
  const plain = stripAnsi(output);
168
- expect(exitCode).toBe(2);
169
+ expect(exitCode).toBe(EXIT_AUTH_NEEDS_ATTENTION);
169
170
  expect(plain).toContain('Next reset:');
170
171
  });
171
172
  it('shows "No reset scheduled" footer when all cooldown creds lack rateLimitResetsAt', () => {
@@ -179,7 +180,7 @@ describe('exit code 2 — all unavailable', () => {
179
180
  ];
180
181
  const { output, exitCode } = formatAuthStatus(accounts, NOW);
181
182
  const plain = stripAnsi(output);
182
- expect(exitCode).toBe(2);
183
+ expect(exitCode).toBe(EXIT_AUTH_NEEDS_ATTENTION);
183
184
  expect(plain).toContain('No reset scheduled');
184
185
  });
185
186
  });
@@ -1 +1 @@
1
- {"version":3,"file":"auth-status.test.js","sourceRoot":"","sources":["../../src/__tests__/auth-status.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth-status.test.js","sourceRoot":"","sources":["../../src/__tests__/auth-status.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=help-output.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"help-output.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/help-output.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,74 @@
1
+ // A3 (Phase A — fresh-install self-bootstrap): `olam --help` hides the
2
+ // `crystallize` command unless PLERI is configured (env var or pleri block
3
+ // in .olam/config.yaml). Command stays callable regardless — A1's runtime
4
+ // gate handles the skip path.
5
+ import { describe, it, expect, beforeEach, afterEach } from 'vitest';
6
+ import * as fs from 'node:fs';
7
+ import * as os from 'node:os';
8
+ import * as path from 'node:path';
9
+ import { Command } from 'commander';
10
+ import { registerCrystallize } from '../commands/crystallize.js';
11
+ import { isPleriConfigured } from '../pleri-config.js';
12
+ function buildProgram(hidden) {
13
+ const program = new Command();
14
+ program.name('olam').description('test').version('0.0.0');
15
+ registerCrystallize(program, { hidden });
16
+ return program;
17
+ }
18
+ describe('crystallize visibility in `olam --help`', () => {
19
+ it('omits crystallize from help output when registered with hidden: true', () => {
20
+ const program = buildProgram(true);
21
+ const help = program.helpInformation();
22
+ expect(help).not.toMatch(/\bcrystallize\b/);
23
+ });
24
+ it('shows crystallize in help output when registered with hidden: false', () => {
25
+ const program = buildProgram(false);
26
+ const help = program.helpInformation();
27
+ expect(help).toMatch(/\bcrystallize\b/);
28
+ });
29
+ it('keeps crystallize callable even when hidden (does not error on unknown command)', async () => {
30
+ // commander treats hidden commands the same way for parsing — they
31
+ // simply aren't listed in help output. Verify the parser still
32
+ // recognizes the command and would dispatch its action.
33
+ const program = buildProgram(true);
34
+ // commander.commands is the public list. It includes the hidden one.
35
+ expect(program.commands.map((c) => c.name())).toContain('crystallize');
36
+ });
37
+ });
38
+ describe('isPleriConfigured', () => {
39
+ let tmpDir;
40
+ let originalPleriUrl;
41
+ beforeEach(() => {
42
+ originalPleriUrl = process.env.PLERI_BASE_URL;
43
+ delete process.env.PLERI_BASE_URL;
44
+ tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'olam-pleri-detect-'));
45
+ });
46
+ afterEach(() => {
47
+ if (originalPleriUrl !== undefined) {
48
+ process.env.PLERI_BASE_URL = originalPleriUrl;
49
+ }
50
+ else {
51
+ delete process.env.PLERI_BASE_URL;
52
+ }
53
+ fs.rmSync(tmpDir, { recursive: true, force: true });
54
+ });
55
+ it('returns true when PLERI_BASE_URL is set in env', () => {
56
+ process.env.PLERI_BASE_URL = 'https://pleri.example.com';
57
+ expect(isPleriConfigured(tmpDir)).toBe(true);
58
+ });
59
+ it('returns false when neither env nor config has pleri', () => {
60
+ expect(isPleriConfigured(tmpDir)).toBe(false);
61
+ });
62
+ it('returns false when config dir does not exist', () => {
63
+ expect(isPleriConfigured('/tmp/no-such-dir-' + Date.now())).toBe(false);
64
+ });
65
+ it('returns true when config.yaml has a top-level pleri: block', () => {
66
+ fs.writeFileSync(path.join(tmpDir, 'config.yaml'), 'project: test\npleri:\n base_url: https://pleri.example.com\n');
67
+ expect(isPleriConfigured(tmpDir)).toBe(true);
68
+ });
69
+ it('returns false when pleri: line is commented out', () => {
70
+ fs.writeFileSync(path.join(tmpDir, 'config.yaml'), 'project: test\n# pleri:\n# base_url: https://pleri.example.com\n');
71
+ expect(isPleriConfigured(tmpDir)).toBe(false);
72
+ });
73
+ });
74
+ //# sourceMappingURL=help-output.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"help-output.test.js","sourceRoot":"","sources":["../../src/__tests__/help-output.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=crystallize.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crystallize.test.d.ts","sourceRoot":"","sources":["../../../src/commands/__tests__/crystallize.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,133 @@
1
+ // A1 (Phase A — fresh-install self-bootstrap): when PLERI is not configured,
2
+ // `olam crystallize` exits 2 (named constant) with a stderr-only warn so
3
+ // piped scripts can detect "skipped" without parsing stdout.
4
+ import { describe, it, expect, beforeEach, afterEach, vi } from 'vitest';
5
+ import { Command } from 'commander';
6
+ import { registerCrystallize } from '../crystallize.js';
7
+ import { EXIT_PLERI_NOT_CONFIGURED } from '../../exit-codes.js';
8
+ import * as ctxModule from '../../context.js';
9
+ function captureStreams() {
10
+ const sink = { stdout: '', stderr: '' };
11
+ const origStdout = process.stdout.write.bind(process.stdout);
12
+ const origStderr = process.stderr.write.bind(process.stderr);
13
+ process.stdout.write = (chunk) => {
14
+ sink.stdout += typeof chunk === 'string' ? chunk : Buffer.from(chunk).toString();
15
+ return true;
16
+ };
17
+ process.stderr.write = (chunk) => {
18
+ sink.stderr += typeof chunk === 'string' ? chunk : Buffer.from(chunk).toString();
19
+ return true;
20
+ };
21
+ // Save originals on the sink so the caller can restore them.
22
+ sink.restore = () => {
23
+ process.stdout.write = origStdout;
24
+ process.stderr.write = origStderr;
25
+ };
26
+ return sink;
27
+ }
28
+ describe('olam crystallize — PLERI not configured', () => {
29
+ let originalExitCode;
30
+ beforeEach(() => {
31
+ originalExitCode = process.exitCode;
32
+ process.exitCode = 0;
33
+ });
34
+ afterEach(() => {
35
+ process.exitCode = originalExitCode ?? 0;
36
+ vi.restoreAllMocks();
37
+ });
38
+ it('exits with EXIT_PLERI_NOT_CONFIGURED (2) when ctx.pleriClient is null', async () => {
39
+ // Stub loadContext to return a ctx with no pleriClient (PLERI not configured).
40
+ vi.spyOn(ctxModule, 'loadContext').mockResolvedValue({
41
+ ctx: {
42
+ // Minimal shape — only the field crystallize reads at the gate is needed.
43
+ pleriClient: null,
44
+ },
45
+ error: undefined,
46
+ });
47
+ const program = new Command();
48
+ registerCrystallize(program);
49
+ const sink = captureStreams();
50
+ try {
51
+ // commander throws on `process.exit` calls but we set exitCode + return,
52
+ // so this is just an async function call.
53
+ await program.parseAsync(['node', 'olam', 'crystallize', 'fake-world-id']);
54
+ }
55
+ finally {
56
+ sink.restore();
57
+ }
58
+ expect(process.exitCode).toBe(EXIT_PLERI_NOT_CONFIGURED);
59
+ expect(process.exitCode).toBe(2);
60
+ expect(sink.stderr).toContain('crystallize requires PLERI_BASE_URL');
61
+ expect(sink.stdout).toBe('');
62
+ });
63
+ it('keeps stdout empty so piped consumers can distinguish skip from success', async () => {
64
+ vi.spyOn(ctxModule, 'loadContext').mockResolvedValue({
65
+ // Match production shape: pleriClient is `undefined` when not configured
66
+ // (set conditionally inside `if (config.pleri)` in context.ts).
67
+ ctx: {
68
+ pleriClient: undefined,
69
+ },
70
+ error: undefined,
71
+ });
72
+ const program = new Command();
73
+ registerCrystallize(program);
74
+ const sink = captureStreams();
75
+ try {
76
+ await program.parseAsync(['node', 'olam', 'crystallize', 'any-world']);
77
+ }
78
+ finally {
79
+ sink.restore();
80
+ }
81
+ // The contract: stdout is empty on skip; stderr carries the warn.
82
+ expect(sink.stdout.length).toBe(0);
83
+ expect(sink.stderr.length).toBeGreaterThan(0);
84
+ });
85
+ it('exits 2 on a truly fresh install (no .olam/ dir → OlamConfigNotFoundError)', async () => {
86
+ // The "fresh-install" scenario this epic is named after: a user runs
87
+ // `npm i -g @pleri/olam-cli && olam crystallize <world>` on a project
88
+ // with no `.olam/` directory at all. PLERI is by definition not
89
+ // configured; the skip semantics should match the partial-config case.
90
+ const configNotFound = new Error('No olam config found');
91
+ configNotFound.name = 'OlamConfigNotFoundError';
92
+ vi.spyOn(ctxModule, 'loadContext').mockResolvedValue({
93
+ ctx: undefined,
94
+ error: configNotFound,
95
+ });
96
+ const program = new Command();
97
+ registerCrystallize(program);
98
+ const sink = captureStreams();
99
+ try {
100
+ await program.parseAsync(['node', 'olam', 'crystallize', 'fresh-install-world']);
101
+ }
102
+ finally {
103
+ sink.restore();
104
+ }
105
+ expect(process.exitCode).toBe(EXIT_PLERI_NOT_CONFIGURED);
106
+ expect(sink.stderr).toContain('crystallize requires PLERI_BASE_URL');
107
+ expect(sink.stderr).toContain('Olam is not initialised');
108
+ expect(sink.stdout).toBe('');
109
+ });
110
+ it('warn message names the remediation path (config or env var)', async () => {
111
+ vi.spyOn(ctxModule, 'loadContext').mockResolvedValue({
112
+ // Match production shape: pleriClient is `undefined` when not configured
113
+ // (set conditionally inside `if (config.pleri)` in context.ts).
114
+ ctx: {
115
+ pleriClient: undefined,
116
+ },
117
+ error: undefined,
118
+ });
119
+ const program = new Command();
120
+ registerCrystallize(program);
121
+ const sink = captureStreams();
122
+ try {
123
+ await program.parseAsync(['node', 'olam', 'crystallize', 'world']);
124
+ }
125
+ finally {
126
+ sink.restore();
127
+ }
128
+ // Operators looking at the warn line need to know how to enable the feature.
129
+ expect(sink.stderr).toMatch(/PLERI_BASE_URL/);
130
+ expect(sink.stderr).toMatch(/\.olam\/config\.yaml/);
131
+ });
132
+ });
133
+ //# sourceMappingURL=crystallize.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crystallize.test.js","sourceRoot":"","sources":["../../../src/commands/__tests__/crystallize.test.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@
9
9
  * into variables used in output. Only safe fields are touched.
10
10
  */
11
11
  import { type CredentialState } from '@olam/auth-logic';
12
+ import { EXIT_AUTH_NEEDS_ATTENTION } from '../exit-codes.js';
12
13
  import type { AuthAccountSummary } from '@olam/core/src/auth/types.js';
13
14
  interface AccountUsage {
14
15
  readonly requestCount5h: number;
@@ -27,7 +28,13 @@ interface SafeAccount {
27
28
  export declare function readAccountsFile(filePath: string): SafeAccount[];
28
29
  export interface FormatResult {
29
30
  output: string;
30
- exitCode: 0 | 2;
31
+ /**
32
+ * 0 = healthy (a credential is picked).
33
+ * EXIT_AUTH_NEEDS_ATTENTION (= 5) = no credential picked (all cooled-down,
34
+ * disabled, or expired). Distinct from EXIT_PLERI_NOT_CONFIGURED (= 2)
35
+ * — see `packages/cli/src/exit-codes.ts` for the CLI-wide registry.
36
+ */
37
+ exitCode: 0 | typeof EXIT_AUTH_NEEDS_ATTENTION;
31
38
  }
32
39
  export declare function formatAuthStatus(accounts: SafeAccount[], now?: number): FormatResult;
33
40
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"auth-status.d.ts","sourceRoot":"","sources":["../../src/commands/auth-status.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,OAAO,EAAqD,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAG3G,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,UAAU,YAAY;IACpB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AAGD,UAAU,WAAW;IACnB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC;CAC/B;AAcD,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,EAAE,CAiChE;AA+CD,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC;CACjB;AAED,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,WAAW,EAAE,EACvB,GAAG,GAAE,MAAmB,GACvB,YAAY,CAiFd;AAoBD;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,SAAS,kBAAkB,EAAE,CAAA;CAAE,CAAC,GACzF,OAAO,CAAC,IAAI,CAAC,CA8Bf"}
1
+ {"version":3,"file":"auth-status.d.ts","sourceRoot":"","sources":["../../src/commands/auth-status.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,OAAO,EAAqD,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAG3G,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,UAAU,YAAY;IACpB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AAGD,UAAU,WAAW;IACnB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC;CAC/B;AAcD,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,EAAE,CAiChE;AA+CD,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,QAAQ,EAAE,CAAC,GAAG,OAAO,yBAAyB,CAAC;CAChD;AAED,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,WAAW,EAAE,EACvB,GAAG,GAAE,MAAmB,GACvB,YAAY,CAiFd;AAoBD;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,SAAS,kBAAkB,EAAE,CAAA;CAAE,CAAC,GACzF,OAAO,CAAC,IAAI,CAAC,CA8Bf"}
@@ -15,6 +15,7 @@ import pc from 'picocolors';
15
15
  import { effectiveState, pickCredential, nextCooldownReset } from '@olam/auth-logic';
16
16
  import { AuthClient } from '@olam/core/src/auth/index.js';
17
17
  import { printError } from '../output.js';
18
+ import { EXIT_AUTH_NEEDS_ATTENTION } from '../exit-codes.js';
18
19
  // ----- file path (mirrors auth-service/src/store.ts) -------------------
19
20
  const DOCKER_DATA_DIR = '/auth-data';
20
21
  const LOCAL_DATA_DIR = path.join(os.homedir(), '.olam', 'auth-data');
@@ -153,7 +154,7 @@ export function formatAuthStatus(accounts, now = Date.now()) {
153
154
  lines.push(resetIso
154
155
  ? pc.yellow(`Next reset: ${localHHMM(resetIso)}`)
155
156
  : pc.dim('No reset scheduled'));
156
- return { output: lines.join('\n'), exitCode: 2 };
157
+ return { output: lines.join('\n'), exitCode: EXIT_AUTH_NEEDS_ATTENTION };
157
158
  }
158
159
  return { output: lines.join('\n'), exitCode: 0 };
159
160
  }
@@ -1 +1 @@
1
- {"version":3,"file":"auth-status.js","sourceRoot":"","sources":["../../src/commands/auth-status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth-status.js","sourceRoot":"","sources":["../../src/commands/auth-status.ts"],"names":[],"mappings":"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"}
@@ -4,5 +4,15 @@
4
4
  * Mirrors the MCP server's olam_crystallize tool.
5
5
  */
6
6
  import type { Command } from 'commander';
7
- export declare function registerCrystallize(program: Command): void;
7
+ export interface RegisterCrystallizeOptions {
8
+ /**
9
+ * When `true`, the command is registered but omitted from `olam --help`
10
+ * output. Used by the index entry point when PLERI is not configured —
11
+ * keeps the discovery surface clean for fresh-install operators while
12
+ * leaving the command callable (its runtime gate decides whether to
13
+ * proceed or skip-with-exit-2).
14
+ */
15
+ readonly hidden?: boolean;
16
+ }
17
+ export declare function registerCrystallize(program: Command, options?: RegisterCrystallizeOptions): void;
8
18
  //# sourceMappingURL=crystallize.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"crystallize.d.ts","sourceRoot":"","sources":["../../src/commands/crystallize.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMzC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuG1D"}
1
+ {"version":3,"file":"crystallize.d.ts","sourceRoot":"","sources":["../../src/commands/crystallize.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOzC,MAAM,WAAW,0BAA0B;IACzC;;;;;;OAMG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,0BAA+B,GACvC,IAAI,CAqIN"}
@@ -8,34 +8,50 @@ import * as path from 'node:path';
8
8
  import ora from 'ora';
9
9
  import { loadContext } from '../context.js';
10
10
  import { printError, printInfo, printHeader } from '../output.js';
11
+ import { EXIT_GENERIC_ERROR, EXIT_PLERI_NOT_CONFIGURED } from '../exit-codes.js';
11
12
  import { getWorldDbPath } from '@olam/core/src/world-paths.js';
12
- export function registerCrystallize(program) {
13
- program
13
+ export function registerCrystallize(program, options = {}) {
14
+ const cmd = program
14
15
  .command('crystallize')
15
16
  .description('Crystallize thoughts from a world to Pleri Plane')
16
17
  .argument('<world>', 'World ID')
17
18
  .action(async (worldId) => {
18
19
  const { ctx, error } = await loadContext();
20
+ // PLERI is by definition not configured if Olam itself isn't initialised
21
+ // (no `.olam/` dir = no `pleri:` block = nothing to crystallize against).
22
+ // The fresh-install scenario this epic targets routes through here, so
23
+ // emit the same skip semantics as the no-pleri-block case below.
24
+ if (!ctx && error?.name === 'OlamConfigNotFoundError') {
25
+ process.stderr.write('warn: crystallize requires PLERI_BASE_URL — skipping (Olam is not initialised; run `olam init` to set up a PLERI block, then re-run).\n');
26
+ process.exitCode = EXIT_PLERI_NOT_CONFIGURED;
27
+ return;
28
+ }
19
29
  if (!ctx) {
20
30
  printError(error?.message ?? 'Olam is not configured. Run `olam init` first.');
21
- process.exitCode = 1;
31
+ process.exitCode = EXIT_GENERIC_ERROR;
22
32
  return;
23
33
  }
24
34
  if (!ctx.pleriClient) {
25
- printError('Pleri Plane is not configured. Add pleri section to .olam/config.yaml.');
26
- process.exitCode = 1;
35
+ // Optional feature: PLERI not configured. Warn to stderr (so piped
36
+ // scripts can ignore via 2>/dev/null), keep stdout empty (so exit-2
37
+ // is distinguishable from exit-0 success without parsing output),
38
+ // and exit with the named constant so pipelines can decide whether
39
+ // to treat the skip as a failure or a no-op.
40
+ process.stderr.write('warn: crystallize requires PLERI_BASE_URL — skipping (no work performed). ' +
41
+ 'Configure pleri in .olam/config.yaml or set PLERI_BASE_URL to enable.\n');
42
+ process.exitCode = EXIT_PLERI_NOT_CONFIGURED;
27
43
  return;
28
44
  }
29
45
  const world = ctx.worldManager.getWorld(worldId);
30
46
  if (!world) {
31
47
  printError(`World "${worldId}" not found.`);
32
- process.exitCode = 1;
48
+ process.exitCode = EXIT_GENERIC_ERROR;
33
49
  return;
34
50
  }
35
51
  const thoughtDbPath = getWorldDbPath(world.workspacePath);
36
52
  if (!fs.existsSync(thoughtDbPath)) {
37
53
  printError(`No thoughts captured yet for "${worldId}". Run a dispatch first.`);
38
- process.exitCode = 1;
54
+ process.exitCode = EXIT_GENERIC_ERROR;
39
55
  return;
40
56
  }
41
57
  const spinner = ora('Crystallizing thoughts...').start();
@@ -94,8 +110,16 @@ export function registerCrystallize(program) {
94
110
  catch (err) {
95
111
  spinner.fail('Crystallization failed');
96
112
  printError(err instanceof Error ? err.message : String(err));
97
- process.exitCode = 1;
113
+ process.exitCode = EXIT_GENERIC_ERROR;
98
114
  }
99
115
  });
116
+ if (options.hidden) {
117
+ // commander v13 omits a Command from parent's help listing when its
118
+ // internal `_hidden` flag is true. The flag is normally set via the
119
+ // `hidden: true` option at `.command(name, desc, opts)` registration
120
+ // time, but we register via the chained shape — set the flag after.
121
+ // Confirmed via node_modules/commander/lib/command.js:165 (`cmd._hidden`).
122
+ cmd._hidden = true;
123
+ }
100
124
  }
101
125
  //# sourceMappingURL=crystallize.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"crystallize.js","sourceRoot":"","sources":["../../src/commands/crystallize.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"crystallize.js","sourceRoot":"","sources":["../../src/commands/crystallize.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Named exit codes for the olam CLI.
3
+ *
4
+ * Pipelines and CI workflows depend on these to distinguish "skipped because
5
+ * an optional feature wasn't configured" from "failed because of an actual
6
+ * error" (both differ from exit 0 = success).
7
+ */
8
+ /** Generic failure (default for any unhandled error path). */
9
+ export declare const EXIT_GENERIC_ERROR = 1;
10
+ /**
11
+ * Skipped: PLERI integration not configured. Emitted by `olam crystallize`
12
+ * when `PLERI_BASE_URL` (or the equivalent `pleri` config block) is absent.
13
+ * Pipelines that script `olam crystallize` should treat exit 2 as "skipped,
14
+ * not failed" — equivalent to exit 0 for "did the pipeline succeed?" but
15
+ * distinguishable from "the operation actually ran."
16
+ */
17
+ export declare const EXIT_PLERI_NOT_CONFIGURED = 2;
18
+ /**
19
+ * Bootstrap pull failure (transient network / GHCR outage / arch mismatch).
20
+ * Reserved for Phase C's `olam bootstrap` command.
21
+ */
22
+ export declare const EXIT_BOOTSTRAP_PULL_FAILED = 3;
23
+ /**
24
+ * Devbox image's `olam.protocol.versions` LABEL doesn't overlap CLI's
25
+ * compiled-in supported list. Reserved for Phase C's protocol-version
26
+ * handshake (Decision #14).
27
+ */
28
+ export declare const EXIT_PROTOCOL_MISMATCH = 4;
29
+ /**
30
+ * Auth-service has no eligible credential to pick (all cooled-down,
31
+ * disabled, or expired). Used by `olam auth status` to signal "needs
32
+ * attention" — distinct from EXIT_PLERI_NOT_CONFIGURED (= 2).
33
+ */
34
+ export declare const EXIT_AUTH_NEEDS_ATTENTION = 5;
35
+ //# sourceMappingURL=exit-codes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exit-codes.d.ts","sourceRoot":"","sources":["../src/exit-codes.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,8DAA8D;AAC9D,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAEpC;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAE3C;;;GAGG;AACH,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAE5C;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,IAAI,CAAC"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Named exit codes for the olam CLI.
3
+ *
4
+ * Pipelines and CI workflows depend on these to distinguish "skipped because
5
+ * an optional feature wasn't configured" from "failed because of an actual
6
+ * error" (both differ from exit 0 = success).
7
+ */
8
+ /** Generic failure (default for any unhandled error path). */
9
+ export const EXIT_GENERIC_ERROR = 1;
10
+ /**
11
+ * Skipped: PLERI integration not configured. Emitted by `olam crystallize`
12
+ * when `PLERI_BASE_URL` (or the equivalent `pleri` config block) is absent.
13
+ * Pipelines that script `olam crystallize` should treat exit 2 as "skipped,
14
+ * not failed" — equivalent to exit 0 for "did the pipeline succeed?" but
15
+ * distinguishable from "the operation actually ran."
16
+ */
17
+ export const EXIT_PLERI_NOT_CONFIGURED = 2;
18
+ /**
19
+ * Bootstrap pull failure (transient network / GHCR outage / arch mismatch).
20
+ * Reserved for Phase C's `olam bootstrap` command.
21
+ */
22
+ export const EXIT_BOOTSTRAP_PULL_FAILED = 3;
23
+ /**
24
+ * Devbox image's `olam.protocol.versions` LABEL doesn't overlap CLI's
25
+ * compiled-in supported list. Reserved for Phase C's protocol-version
26
+ * handshake (Decision #14).
27
+ */
28
+ export const EXIT_PROTOCOL_MISMATCH = 4;
29
+ /**
30
+ * Auth-service has no eligible credential to pick (all cooled-down,
31
+ * disabled, or expired). Used by `olam auth status` to signal "needs
32
+ * attention" — distinct from EXIT_PLERI_NOT_CONFIGURED (= 2).
33
+ */
34
+ export const EXIT_AUTH_NEEDS_ATTENTION = 5;
35
+ //# sourceMappingURL=exit-codes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exit-codes.js","sourceRoot":"","sources":["../src/exit-codes.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,8DAA8D;AAC9D,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAEpC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC;AAE3C;;;GAGG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC;AAE5C;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AAExC;;;;GAIG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC"}
package/dist/index.js CHANGED
@@ -421,8 +421,8 @@ var init_parseUtil = __esm({
421
421
  init_errors();
422
422
  init_en();
423
423
  makeIssue = (params) => {
424
- const { data, path: path32, errorMaps, issueData } = params;
425
- const fullPath = [...path32, ...issueData.path || []];
424
+ const { data, path: path33, errorMaps, issueData } = params;
425
+ const fullPath = [...path33, ...issueData.path || []];
426
426
  const fullIssue = {
427
427
  ...issueData,
428
428
  path: fullPath
@@ -730,11 +730,11 @@ var init_types = __esm({
730
730
  init_parseUtil();
731
731
  init_util();
732
732
  ParseInputLazyPath = class {
733
- constructor(parent, value, path32, key) {
733
+ constructor(parent, value, path33, key) {
734
734
  this._cachedPath = [];
735
735
  this.parent = parent;
736
736
  this.data = value;
737
- this._path = path32;
737
+ this._path = path33;
738
738
  this._key = key;
739
739
  }
740
740
  get path() {
@@ -4221,7 +4221,7 @@ import YAML from "yaml";
4221
4221
  function bootstrapStepCmd(entry) {
4222
4222
  return typeof entry === "string" ? entry : entry.cmd;
4223
4223
  }
4224
- function refineForbiddenKeys(value, path32, ctx, rejectSource) {
4224
+ function refineForbiddenKeys(value, path33, ctx, rejectSource) {
4225
4225
  if (value === null || typeof value !== "object" || Array.isArray(value)) {
4226
4226
  return;
4227
4227
  }
@@ -4229,12 +4229,12 @@ function refineForbiddenKeys(value, path32, ctx, rejectSource) {
4229
4229
  if (FORBIDDEN_KEYS.has(key)) {
4230
4230
  ctx.addIssue({
4231
4231
  code: external_exports.ZodIssueCode.custom,
4232
- path: [...path32, key],
4232
+ path: [...path33, key],
4233
4233
  message: `forbidden key "${key}" (prototype-pollution surface)`
4234
4234
  });
4235
4235
  continue;
4236
4236
  }
4237
- if (rejectSource && path32.length === 0 && key === "source") {
4237
+ if (rejectSource && path33.length === 0 && key === "source") {
4238
4238
  ctx.addIssue({
4239
4239
  code: external_exports.ZodIssueCode.custom,
4240
4240
  path: ["source"],
@@ -4244,30 +4244,30 @@ function refineForbiddenKeys(value, path32, ctx, rejectSource) {
4244
4244
  }
4245
4245
  refineForbiddenKeys(
4246
4246
  value[key],
4247
- [...path32, key],
4247
+ [...path33, key],
4248
4248
  ctx,
4249
4249
  false
4250
4250
  );
4251
4251
  }
4252
4252
  }
4253
- function rejectForbiddenKeys(value, path32, rejectSource) {
4253
+ function rejectForbiddenKeys(value, path33, rejectSource) {
4254
4254
  if (value === null || typeof value !== "object" || Array.isArray(value)) {
4255
4255
  return;
4256
4256
  }
4257
4257
  for (const key of Object.keys(value)) {
4258
4258
  if (FORBIDDEN_KEYS.has(key)) {
4259
4259
  throw new Error(
4260
- `[manifest] ${path32}: forbidden key "${key}" (prototype-pollution surface)`
4260
+ `[manifest] ${path33}: forbidden key "${key}" (prototype-pollution surface)`
4261
4261
  );
4262
4262
  }
4263
4263
  if (rejectSource && key === "source") {
4264
4264
  throw new Error(
4265
- `[manifest] ${path32}: top-level "source" is loader-stamped \u2014 manifests must not author it`
4265
+ `[manifest] ${path33}: top-level "source" is loader-stamped \u2014 manifests must not author it`
4266
4266
  );
4267
4267
  }
4268
4268
  rejectForbiddenKeys(
4269
4269
  value[key],
4270
- `${path32}.${key}`,
4270
+ `${path33}.${key}`,
4271
4271
  false
4272
4272
  );
4273
4273
  }
@@ -5208,8 +5208,8 @@ var init_client = __esm({
5208
5208
  throw new Error(`failed to report rate-limit for ${accountId} (HTTP ${res.status})`);
5209
5209
  }
5210
5210
  }
5211
- async request(method, path32, body, attempt = 0) {
5212
- const url = `${this.baseUrl}${path32}`;
5211
+ async request(method, path33, body, attempt = 0) {
5212
+ const url = `${this.baseUrl}${path33}`;
5213
5213
  const controller = new AbortController();
5214
5214
  const timer = setTimeout(() => controller.abort(), this.timeoutMs);
5215
5215
  const headers = {};
@@ -5225,7 +5225,7 @@ var init_client = __esm({
5225
5225
  } catch (err) {
5226
5226
  if (attempt < RETRY_COUNT && isTransient(err)) {
5227
5227
  await sleep(RETRY_BACKOFF_MS * (attempt + 1));
5228
- return this.request(method, path32, body, attempt + 1);
5228
+ return this.request(method, path33, body, attempt + 1);
5229
5229
  }
5230
5230
  throw err;
5231
5231
  } finally {
@@ -6676,8 +6676,8 @@ var init_provider3 = __esm({
6676
6676
  // -----------------------------------------------------------------------
6677
6677
  // Internal fetch helper
6678
6678
  // -----------------------------------------------------------------------
6679
- async request(path32, method, body) {
6680
- const url = `${this.config.workerUrl}${path32}`;
6679
+ async request(path33, method, body) {
6680
+ const url = `${this.config.workerUrl}${path33}`;
6681
6681
  const bearer = await this.config.mintToken();
6682
6682
  const headers = {
6683
6683
  Authorization: `Bearer ${bearer}`
@@ -12249,11 +12249,11 @@ var UnknownArchetypeError = class extends Error {
12249
12249
  known;
12250
12250
  };
12251
12251
  var ArchetypeCycleError = class extends Error {
12252
- constructor(path32) {
12252
+ constructor(path33) {
12253
12253
  super(
12254
- `Archetype inheritance cycle detected: ${path32.join(" \u2192 ")} \u2192 ${path32[0] ?? "?"}`
12254
+ `Archetype inheritance cycle detected: ${path33.join(" \u2192 ")} \u2192 ${path33[0] ?? "?"}`
12255
12255
  );
12256
- this.path = path32;
12256
+ this.path = path33;
12257
12257
  this.name = "ArchetypeCycleError";
12258
12258
  }
12259
12259
  path;
@@ -12496,6 +12496,13 @@ function nextCooldownReset(accounts, now = Date.now()) {
12496
12496
 
12497
12497
  // src/commands/auth-status.ts
12498
12498
  init_auth();
12499
+
12500
+ // src/exit-codes.ts
12501
+ var EXIT_GENERIC_ERROR = 1;
12502
+ var EXIT_PLERI_NOT_CONFIGURED = 2;
12503
+ var EXIT_AUTH_NEEDS_ATTENTION = 5;
12504
+
12505
+ // src/commands/auth-status.ts
12499
12506
  var LOCAL_DATA_DIR = path9.join(os5.homedir(), ".olam", "auth-data");
12500
12507
  function localHHMM(isoStr) {
12501
12508
  const d = new Date(isoStr);
@@ -12572,7 +12579,7 @@ function formatAuthStatus(accounts, now = Date.now()) {
12572
12579
  lines.push(
12573
12580
  resetIso ? pc5.yellow(`Next reset: ${localHHMM(resetIso)}`) : pc5.dim("No reset scheduled")
12574
12581
  );
12575
- return { output: lines.join("\n"), exitCode: 2 };
12582
+ return { output: lines.join("\n"), exitCode: EXIT_AUTH_NEEDS_ATTENTION };
12576
12583
  }
12577
12584
  return { output: lines.join("\n"), exitCode: 0 };
12578
12585
  }
@@ -13065,10 +13072,10 @@ async function readHostCpToken2() {
13065
13072
  if (!fs19.existsSync(tp)) return null;
13066
13073
  return fs19.readFileSync(tp, "utf-8").trim();
13067
13074
  }
13068
- async function callHostCpProxy(method, worldId, path32, body) {
13075
+ async function callHostCpProxy(method, worldId, path33, body) {
13069
13076
  const token = await readHostCpToken2();
13070
13077
  if (!token) return { ok: false, status: 0, error: "no token (host CP not started)" };
13071
- const url = `http://127.0.0.1:${HOST_CP_PORT}/api/world/${encodeURIComponent(worldId)}${path32}`;
13078
+ const url = `http://127.0.0.1:${HOST_CP_PORT}/api/world/${encodeURIComponent(worldId)}${path33}`;
13072
13079
  try {
13073
13080
  const headers = {
13074
13081
  Authorization: `Bearer ${token}`
@@ -13679,9 +13686,9 @@ function formatFreshnessWarning(result, image = DEFAULT_DEVBOX_IMAGE) {
13679
13686
  "These source files have changed since the image was built; the",
13680
13687
  "changes will NOT take effect in fresh worlds until you rebuild:"
13681
13688
  ];
13682
- for (const { path: path32, mtimeMs } of result.newerSources) {
13689
+ for (const { path: path33, mtimeMs } of result.newerSources) {
13683
13690
  const when = new Date(mtimeMs).toISOString();
13684
- lines.push(` \u2022 ${path32} (modified ${when})`);
13691
+ lines.push(` \u2022 ${path33} (modified ${when})`);
13685
13692
  }
13686
13693
  lines.push("");
13687
13694
  lines.push("Rebuild with:");
@@ -13841,15 +13848,15 @@ init_context();
13841
13848
  var HOST_CP_URL = "http://127.0.0.1:19000";
13842
13849
  async function readHostCpTokenForCreate() {
13843
13850
  try {
13844
- const { default: fs28 } = await import("node:fs");
13851
+ const { default: fs29 } = await import("node:fs");
13845
13852
  const { default: os16 } = await import("node:os");
13846
- const { default: path32 } = await import("node:path");
13847
- const tp = path32.join(
13848
- process.env.OLAM_HOME ?? path32.join(os16.homedir(), ".olam"),
13853
+ const { default: path33 } = await import("node:path");
13854
+ const tp = path33.join(
13855
+ process.env.OLAM_HOME ?? path33.join(os16.homedir(), ".olam"),
13849
13856
  "host-cp.token"
13850
13857
  );
13851
- if (!fs28.existsSync(tp)) return null;
13852
- return fs28.readFileSync(tp, "utf-8").trim();
13858
+ if (!fs29.existsSync(tp)) return null;
13859
+ return fs29.readFileSync(tp, "utf-8").trim();
13853
13860
  } catch {
13854
13861
  return null;
13855
13862
  }
@@ -14163,12 +14170,12 @@ function defaultNameFromPrompt(prompt) {
14163
14170
  }
14164
14171
  async function readHostCpToken3() {
14165
14172
  try {
14166
- const { default: fs28 } = await import("node:fs");
14173
+ const { default: fs29 } = await import("node:fs");
14167
14174
  const { default: os16 } = await import("node:os");
14168
- const { default: path32 } = await import("node:path");
14169
- const tp = path32.join(os16.homedir(), ".olam", "host-cp.token");
14170
- if (!fs28.existsSync(tp)) return null;
14171
- const raw = fs28.readFileSync(tp, "utf-8").trim();
14175
+ const { default: path33 } = await import("node:path");
14176
+ const tp = path33.join(os16.homedir(), ".olam", "host-cp.token");
14177
+ if (!fs29.existsSync(tp)) return null;
14178
+ const raw = fs29.readFileSync(tp, "utf-8").trim();
14172
14179
  return raw.length > 0 ? raw : null;
14173
14180
  } catch {
14174
14181
  return null;
@@ -14602,29 +14609,38 @@ import * as fs21 from "node:fs";
14602
14609
  import "node:path";
14603
14610
  import ora4 from "ora";
14604
14611
  init_world_paths();
14605
- function registerCrystallize(program2) {
14606
- program2.command("crystallize").description("Crystallize thoughts from a world to Pleri Plane").argument("<world>", "World ID").action(async (worldId) => {
14612
+ function registerCrystallize(program2, options = {}) {
14613
+ const cmd = program2.command("crystallize").description("Crystallize thoughts from a world to Pleri Plane").argument("<world>", "World ID").action(async (worldId) => {
14607
14614
  const { ctx, error } = await loadContext();
14615
+ if (!ctx && error?.name === "OlamConfigNotFoundError") {
14616
+ process.stderr.write(
14617
+ "warn: crystallize requires PLERI_BASE_URL \u2014 skipping (Olam is not initialised; run `olam init` to set up a PLERI block, then re-run).\n"
14618
+ );
14619
+ process.exitCode = EXIT_PLERI_NOT_CONFIGURED;
14620
+ return;
14621
+ }
14608
14622
  if (!ctx) {
14609
14623
  printError(error?.message ?? "Olam is not configured. Run `olam init` first.");
14610
- process.exitCode = 1;
14624
+ process.exitCode = EXIT_GENERIC_ERROR;
14611
14625
  return;
14612
14626
  }
14613
14627
  if (!ctx.pleriClient) {
14614
- printError("Pleri Plane is not configured. Add pleri section to .olam/config.yaml.");
14615
- process.exitCode = 1;
14628
+ process.stderr.write(
14629
+ "warn: crystallize requires PLERI_BASE_URL \u2014 skipping (no work performed). Configure pleri in .olam/config.yaml or set PLERI_BASE_URL to enable.\n"
14630
+ );
14631
+ process.exitCode = EXIT_PLERI_NOT_CONFIGURED;
14616
14632
  return;
14617
14633
  }
14618
14634
  const world = ctx.worldManager.getWorld(worldId);
14619
14635
  if (!world) {
14620
14636
  printError(`World "${worldId}" not found.`);
14621
- process.exitCode = 1;
14637
+ process.exitCode = EXIT_GENERIC_ERROR;
14622
14638
  return;
14623
14639
  }
14624
14640
  const thoughtDbPath = getWorldDbPath(world.workspacePath);
14625
14641
  if (!fs21.existsSync(thoughtDbPath)) {
14626
14642
  printError(`No thoughts captured yet for "${worldId}". Run a dispatch first.`);
14627
- process.exitCode = 1;
14643
+ process.exitCode = EXIT_GENERIC_ERROR;
14628
14644
  return;
14629
14645
  }
14630
14646
  const spinner = ora4("Crystallizing thoughts...").start();
@@ -14682,9 +14698,12 @@ function registerCrystallize(program2) {
14682
14698
  } catch (err) {
14683
14699
  spinner.fail("Crystallization failed");
14684
14700
  printError(err instanceof Error ? err.message : String(err));
14685
- process.exitCode = 1;
14701
+ process.exitCode = EXIT_GENERIC_ERROR;
14686
14702
  }
14687
14703
  });
14704
+ if (options.hidden) {
14705
+ cmd._hidden = true;
14706
+ }
14688
14707
  }
14689
14708
 
14690
14709
  // src/commands/pr.ts
@@ -18121,6 +18140,25 @@ Run \`olam refresh\` from the olam repo root.`
18121
18140
  });
18122
18141
  }
18123
18142
 
18143
+ // src/pleri-config.ts
18144
+ import * as fs28 from "node:fs";
18145
+ import * as path32 from "node:path";
18146
+ function isPleriConfigured(configDir = process.env.OLAM_CONFIG_DIR ?? ".olam") {
18147
+ if (process.env.PLERI_BASE_URL) {
18148
+ return true;
18149
+ }
18150
+ const configPath = path32.join(configDir, "config.yaml");
18151
+ if (!fs28.existsSync(configPath)) {
18152
+ return false;
18153
+ }
18154
+ try {
18155
+ const contents = fs28.readFileSync(configPath, "utf8");
18156
+ return /^[^#\n]*\bpleri:/m.test(contents);
18157
+ } catch {
18158
+ return false;
18159
+ }
18160
+ }
18161
+
18124
18162
  // src/index.ts
18125
18163
  var program = new Command();
18126
18164
  program.name("olam").description("Olam \u2014 isolated development worlds with thought graph capture").version("0.1.0");
@@ -18134,7 +18172,7 @@ registerList(program);
18134
18172
  registerStatus(program);
18135
18173
  registerDestroy(program);
18136
18174
  registerEnter(program);
18137
- registerCrystallize(program);
18175
+ registerCrystallize(program, { hidden: !isPleriConfigured() });
18138
18176
  registerPr(program);
18139
18177
  registerWorkspace(program);
18140
18178
  registerHostCp(program);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,MAAM,CAAC;KACZ,WAAW,CAAC,+DAA+D,CAAC;KAC5E,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,YAAY,CAAC,OAAO,CAAC,CAAC;AACtB,eAAe,CAAC,OAAO,CAAC,CAAC;AACzB,YAAY,CAAC,OAAO,CAAC,CAAC;AACtB,cAAc,CAAC,OAAO,CAAC,CAAC;AACxB,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAC1B,eAAe,CAAC,OAAO,CAAC,CAAC;AACzB,YAAY,CAAC,OAAO,CAAC,CAAC;AACtB,cAAc,CAAC,OAAO,CAAC,CAAC;AACxB,eAAe,CAAC,OAAO,CAAC,CAAC;AACzB,aAAa,CAAC,OAAO,CAAC,CAAC;AACvB,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,UAAU,CAAC,OAAO,CAAC,CAAC;AACpB,iBAAiB,CAAC,OAAO,CAAC,CAAC;AAC3B,cAAc,CAAC,OAAO,CAAC,CAAC;AACxB,aAAa,CAAC,OAAO,CAAC,CAAC;AACvB,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,eAAe,CAAC,OAAO,CAAC,CAAC;AACzB,YAAY,CAAC,OAAO,CAAC,CAAC;AACtB,UAAU,CAAC,OAAO,CAAC,CAAC;AACpB,YAAY,CAAC,OAAO,CAAC,CAAC;AACtB,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,eAAe,CAAC,OAAO,CAAC,CAAC;AAEzB,OAAO,CAAC,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Fast detection of whether PLERI is configured for this olam install.
3
+ *
4
+ * Used by `olam --help` to decide whether to show or hide the `crystallize`
5
+ * command (Phase A's A3 task — hide enterprise-flavoured commands from the
6
+ * fresh-install discovery surface).
7
+ *
8
+ * Detection is intentionally cheap (no full config load):
9
+ * - env var: `PLERI_BASE_URL` set → configured.
10
+ * - config file: `.olam/config.yaml` (or `OLAM_CONFIG_DIR/config.yaml`)
11
+ * contains a top-level `pleri:` line → configured.
12
+ *
13
+ * Cost: O(1) env lookup + at most one stat + one small file read. Stays
14
+ * well within the ≤200ms CLI startup budget (P3).
15
+ *
16
+ * The detection is "false negatives are fine" (worst case: an operator
17
+ * with a misconfigured pleri block sees crystallize hidden from help —
18
+ * the command itself still works, since the runtime gate in crystallize.ts
19
+ * does the real check).
20
+ */
21
+ export declare function isPleriConfigured(configDir?: string): boolean;
22
+ //# sourceMappingURL=pleri-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pleri-config.d.ts","sourceRoot":"","sources":["../src/pleri-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAKH,wBAAgB,iBAAiB,CAAC,SAAS,GAAE,MAA+C,GAAG,OAAO,CAmBrG"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Fast detection of whether PLERI is configured for this olam install.
3
+ *
4
+ * Used by `olam --help` to decide whether to show or hide the `crystallize`
5
+ * command (Phase A's A3 task — hide enterprise-flavoured commands from the
6
+ * fresh-install discovery surface).
7
+ *
8
+ * Detection is intentionally cheap (no full config load):
9
+ * - env var: `PLERI_BASE_URL` set → configured.
10
+ * - config file: `.olam/config.yaml` (or `OLAM_CONFIG_DIR/config.yaml`)
11
+ * contains a top-level `pleri:` line → configured.
12
+ *
13
+ * Cost: O(1) env lookup + at most one stat + one small file read. Stays
14
+ * well within the ≤200ms CLI startup budget (P3).
15
+ *
16
+ * The detection is "false negatives are fine" (worst case: an operator
17
+ * with a misconfigured pleri block sees crystallize hidden from help —
18
+ * the command itself still works, since the runtime gate in crystallize.ts
19
+ * does the real check).
20
+ */
21
+ import * as fs from 'node:fs';
22
+ import * as path from 'node:path';
23
+ export function isPleriConfigured(configDir = process.env.OLAM_CONFIG_DIR ?? '.olam') {
24
+ if (process.env.PLERI_BASE_URL) {
25
+ return true;
26
+ }
27
+ const configPath = path.join(configDir, 'config.yaml');
28
+ if (!fs.existsSync(configPath)) {
29
+ return false;
30
+ }
31
+ try {
32
+ const contents = fs.readFileSync(configPath, 'utf8');
33
+ // Match a top-level `pleri:` line (not commented out). YAML allows leading
34
+ // whitespace at top-level (zero indent), but `pleri` could be commented
35
+ // (`# pleri: ...`) — check for an uncommented match.
36
+ return /^[^#\n]*\bpleri:/m.test(contents);
37
+ }
38
+ catch {
39
+ return false;
40
+ }
41
+ }
42
+ //# sourceMappingURL=pleri-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pleri-config.js","sourceRoot":"","sources":["../src/pleri-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,MAAM,UAAU,iBAAiB,CAAC,YAAoB,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,OAAO;IAC1F,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IACvD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACrD,2EAA2E;QAC3E,wEAAwE;QACxE,qDAAqD;QACrD,OAAO,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pleri/olam-cli",
3
- "version": "0.1.10",
3
+ "version": "0.1.12",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "olam": "./dist/index.js"