@pleri/olam-cli 0.1.11 → 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.
- package/dist/__tests__/auth-status.test.js +8 -7
- package/dist/__tests__/auth-status.test.js.map +1 -1
- package/dist/__tests__/help-output.test.d.ts +2 -0
- package/dist/__tests__/help-output.test.d.ts.map +1 -0
- package/dist/__tests__/help-output.test.js +74 -0
- package/dist/__tests__/help-output.test.js.map +1 -0
- package/dist/commands/__tests__/crystallize.test.d.ts +2 -0
- package/dist/commands/__tests__/crystallize.test.d.ts.map +1 -0
- package/dist/commands/__tests__/crystallize.test.js +133 -0
- package/dist/commands/__tests__/crystallize.test.js.map +1 -0
- package/dist/commands/auth-status.d.ts +8 -1
- package/dist/commands/auth-status.d.ts.map +1 -1
- package/dist/commands/auth-status.js +2 -1
- package/dist/commands/auth-status.js.map +1 -1
- package/dist/commands/crystallize.d.ts +11 -1
- package/dist/commands/crystallize.d.ts.map +1 -1
- package/dist/commands/crystallize.js +32 -8
- package/dist/commands/crystallize.js.map +1 -1
- package/dist/exit-codes.d.ts +35 -0
- package/dist/exit-codes.d.ts.map +1 -0
- package/dist/exit-codes.js +35 -0
- package/dist/exit-codes.js.map +1 -0
- package/dist/index.js +83 -45
- package/dist/index.js.map +1 -1
- package/dist/pleri-config.d.ts +22 -0
- package/dist/pleri-config.d.ts.map +1 -0
- package/dist/pleri-config.js +42 -0
- package/dist/pleri-config.js.map +1 -0
- package/package.json +1 -1
|
@@ -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(
|
|
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(
|
|
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(
|
|
144
|
+
expect(exitCode).toBe(EXIT_AUTH_NEEDS_ATTENTION);
|
|
144
145
|
});
|
|
145
146
|
});
|
|
146
147
|
// ── Exit 2 when all credentials unavailable ──────────────────────────────────
|
|
147
|
-
describe('
|
|
148
|
-
it('returns
|
|
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(
|
|
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(
|
|
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 @@
|
|
|
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 @@
|
|
|
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":"AAAA,6EAA6E;AAC7E,yEAAyE;AACzE,6DAA6D;AAE7D,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACzE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,SAAS,MAAM,kBAAkB,CAAC;AAI9C,SAAS,cAAc;IACrB,MAAM,IAAI,GAAe,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IACpD,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7D,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7D,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,KAA0B,EAAW,EAAE;QAC7D,IAAI,CAAC,MAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;QACjF,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IACF,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,KAA0B,EAAW,EAAE;QAC7D,IAAI,CAAC,MAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;QACjF,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IACF,6DAA6D;IAC5D,IAA2C,CAAC,OAAO,GAAG,GAAS,EAAE;QAChE,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,UAAU,CAAC;QAClC,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,UAAU,CAAC;IACpC,CAAC,CAAC;IACF,OAAO,IAAI,CAAC;AACd,CAAC;AAED,QAAQ,CAAC,yCAAyC,EAAE,GAAG,EAAE;IACvD,IAAI,gBAAoD,CAAC;IAEzD,UAAU,CAAC,GAAG,EAAE;QACd,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC;QACpC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,CAAC,QAAQ,GAAG,gBAAgB,IAAI,CAAC,CAAC;QACzC,EAAE,CAAC,eAAe,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;QACrF,+EAA+E;QAC/E,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,iBAAiB,CAAC;YACnD,GAAG,EAAE;gBACH,0EAA0E;gBAC1E,WAAW,EAAE,IAAI;aACqD;YACxE,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;QAC9B,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAE7B,MAAM,IAAI,GAAG,cAAc,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,yEAAyE;YACzE,0CAA0C;YAC1C,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC,CAAC;QAC7E,CAAC;gBAAS,CAAC;YACR,IAA2C,CAAC,OAAO,EAAE,CAAC;QACzD,CAAC;QAED,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACzD,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,qCAAqC,CAAC,CAAC;QACrE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yEAAyE,EAAE,KAAK,IAAI,EAAE;QACvF,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,iBAAiB,CAAC;YACnD,yEAAyE;YACzE,gEAAgE;YAChE,GAAG,EAAE;gBACH,WAAW,EAAE,SAAS;aACgD;YACxE,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;QAC9B,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAE7B,MAAM,IAAI,GAAG,cAAc,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC;QACzE,CAAC;gBAAS,CAAC;YACR,IAA2C,CAAC,OAAO,EAAE,CAAC;QACzD,CAAC;QAED,kEAAkE;QAClE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4EAA4E,EAAE,KAAK,IAAI,EAAE;QAC1F,qEAAqE;QACrE,sEAAsE;QACtE,gEAAgE;QAChE,uEAAuE;QACvE,MAAM,cAAc,GAAG,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACzD,cAAc,CAAC,IAAI,GAAG,yBAAyB,CAAC;QAEhD,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,iBAAiB,CAAC;YACnD,GAAG,EAAE,SAAS;YACd,KAAK,EAAE,cAAc;SACtB,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;QAC9B,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAE7B,MAAM,IAAI,GAAG,cAAc,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,qBAAqB,CAAC,CAAC,CAAC;QACnF,CAAC;gBAAS,CAAC;YACR,IAA2C,CAAC,OAAO,EAAE,CAAC;QACzD,CAAC;QAED,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACzD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,qCAAqC,CAAC,CAAC;QACrE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;QACzD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAC3E,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,iBAAiB,CAAC;YACnD,yEAAyE;YACzE,gEAAgE;YAChE,GAAG,EAAE;gBACH,WAAW,EAAE,SAAS;aACgD;YACxE,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;QAC9B,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAE7B,MAAM,IAAI,GAAG,cAAc,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC;QACrE,CAAC;gBAAS,CAAC;YACR,IAA2C,CAAC,OAAO,EAAE,CAAC;QACzD,CAAC;QAED,6EAA6E;QAC7E,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAC9C,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -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
|
-
|
|
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,
|
|
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:
|
|
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":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,iBAAiB,EAAwB,MAAM,kBAAkB,CAAC;AAC3G,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;
|
|
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
|
|
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;
|
|
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 =
|
|
31
|
+
process.exitCode = EXIT_GENERIC_ERROR;
|
|
22
32
|
return;
|
|
23
33
|
}
|
|
24
34
|
if (!ctx.pleriClient) {
|
|
25
|
-
|
|
26
|
-
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;
|
|
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:
|
|
425
|
-
const fullPath = [...
|
|
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,
|
|
733
|
+
constructor(parent, value, path33, key) {
|
|
734
734
|
this._cachedPath = [];
|
|
735
735
|
this.parent = parent;
|
|
736
736
|
this.data = value;
|
|
737
|
-
this._path =
|
|
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,
|
|
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: [...
|
|
4232
|
+
path: [...path33, key],
|
|
4233
4233
|
message: `forbidden key "${key}" (prototype-pollution surface)`
|
|
4234
4234
|
});
|
|
4235
4235
|
continue;
|
|
4236
4236
|
}
|
|
4237
|
-
if (rejectSource &&
|
|
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
|
-
[...
|
|
4247
|
+
[...path33, key],
|
|
4248
4248
|
ctx,
|
|
4249
4249
|
false
|
|
4250
4250
|
);
|
|
4251
4251
|
}
|
|
4252
4252
|
}
|
|
4253
|
-
function rejectForbiddenKeys(value,
|
|
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] ${
|
|
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] ${
|
|
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
|
-
`${
|
|
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,
|
|
5212
|
-
const url = `${this.baseUrl}${
|
|
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,
|
|
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(
|
|
6680
|
-
const url = `${this.config.workerUrl}${
|
|
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(
|
|
12252
|
+
constructor(path33) {
|
|
12253
12253
|
super(
|
|
12254
|
-
`Archetype inheritance cycle detected: ${
|
|
12254
|
+
`Archetype inheritance cycle detected: ${path33.join(" \u2192 ")} \u2192 ${path33[0] ?? "?"}`
|
|
12255
12255
|
);
|
|
12256
|
-
this.path =
|
|
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:
|
|
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,
|
|
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)}${
|
|
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:
|
|
13689
|
+
for (const { path: path33, mtimeMs } of result.newerSources) {
|
|
13683
13690
|
const when = new Date(mtimeMs).toISOString();
|
|
13684
|
-
lines.push(` \u2022 ${
|
|
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:
|
|
13851
|
+
const { default: fs29 } = await import("node:fs");
|
|
13845
13852
|
const { default: os16 } = await import("node:os");
|
|
13846
|
-
const { default:
|
|
13847
|
-
const tp =
|
|
13848
|
-
process.env.OLAM_HOME ??
|
|
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 (!
|
|
13852
|
-
return
|
|
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:
|
|
14173
|
+
const { default: fs29 } = await import("node:fs");
|
|
14167
14174
|
const { default: os16 } = await import("node:os");
|
|
14168
|
-
const { default:
|
|
14169
|
-
const tp =
|
|
14170
|
-
if (!
|
|
14171
|
-
const raw =
|
|
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 =
|
|
14624
|
+
process.exitCode = EXIT_GENERIC_ERROR;
|
|
14611
14625
|
return;
|
|
14612
14626
|
}
|
|
14613
14627
|
if (!ctx.pleriClient) {
|
|
14614
|
-
|
|
14615
|
-
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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;
|
|
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"}
|