@pleri/olam-cli 0.1.7
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.d.ts +2 -0
- package/dist/__tests__/auth-status.test.d.ts.map +1 -0
- package/dist/__tests__/auth-status.test.js +290 -0
- package/dist/__tests__/auth-status.test.js.map +1 -0
- package/dist/__tests__/auth-upgrade.test.d.ts +9 -0
- package/dist/__tests__/auth-upgrade.test.d.ts.map +1 -0
- package/dist/__tests__/auth-upgrade.test.js +161 -0
- package/dist/__tests__/auth-upgrade.test.js.map +1 -0
- package/dist/__tests__/create-app-urls.test.d.ts +2 -0
- package/dist/__tests__/create-app-urls.test.d.ts.map +1 -0
- package/dist/__tests__/create-app-urls.test.js +102 -0
- package/dist/__tests__/create-app-urls.test.js.map +1 -0
- package/dist/__tests__/enter.test.d.ts +2 -0
- package/dist/__tests__/enter.test.d.ts.map +1 -0
- package/dist/__tests__/enter.test.js +90 -0
- package/dist/__tests__/enter.test.js.map +1 -0
- package/dist/__tests__/host-cp-gh-token.test.d.ts +9 -0
- package/dist/__tests__/host-cp-gh-token.test.d.ts.map +1 -0
- package/dist/__tests__/host-cp-gh-token.test.js +119 -0
- package/dist/__tests__/host-cp-gh-token.test.js.map +1 -0
- package/dist/__tests__/host-cp.test.d.ts +9 -0
- package/dist/__tests__/host-cp.test.d.ts.map +1 -0
- package/dist/__tests__/host-cp.test.js +254 -0
- package/dist/__tests__/host-cp.test.js.map +1 -0
- package/dist/__tests__/keys.test.d.ts +9 -0
- package/dist/__tests__/keys.test.d.ts.map +1 -0
- package/dist/__tests__/keys.test.js +145 -0
- package/dist/__tests__/keys.test.js.map +1 -0
- package/dist/__tests__/logs.test.d.ts +9 -0
- package/dist/__tests__/logs.test.d.ts.map +1 -0
- package/dist/__tests__/logs.test.js +124 -0
- package/dist/__tests__/logs.test.js.map +1 -0
- package/dist/__tests__/ps.test.d.ts +2 -0
- package/dist/__tests__/ps.test.d.ts.map +1 -0
- package/dist/__tests__/ps.test.js +172 -0
- package/dist/__tests__/ps.test.js.map +1 -0
- package/dist/__tests__/status-app-urls.test.d.ts +2 -0
- package/dist/__tests__/status-app-urls.test.d.ts.map +1 -0
- package/dist/__tests__/status-app-urls.test.js +125 -0
- package/dist/__tests__/status-app-urls.test.js.map +1 -0
- package/dist/__tests__/upgrade.test.d.ts +9 -0
- package/dist/__tests__/upgrade.test.d.ts.map +1 -0
- package/dist/__tests__/upgrade.test.js +262 -0
- package/dist/__tests__/upgrade.test.js.map +1 -0
- package/dist/commands/__tests__/carry-uncommitted.test.d.ts +14 -0
- package/dist/commands/__tests__/carry-uncommitted.test.d.ts.map +1 -0
- package/dist/commands/__tests__/carry-uncommitted.test.js +83 -0
- package/dist/commands/__tests__/carry-uncommitted.test.js.map +1 -0
- package/dist/commands/__tests__/openHostCpUrl.test.d.ts +2 -0
- package/dist/commands/__tests__/openHostCpUrl.test.d.ts.map +1 -0
- package/dist/commands/__tests__/openHostCpUrl.test.js +63 -0
- package/dist/commands/__tests__/openHostCpUrl.test.js.map +1 -0
- package/dist/commands/__tests__/refresh.test.d.ts +13 -0
- package/dist/commands/__tests__/refresh.test.d.ts.map +1 -0
- package/dist/commands/__tests__/refresh.test.js +170 -0
- package/dist/commands/__tests__/refresh.test.js.map +1 -0
- package/dist/commands/auth-status.d.ts +43 -0
- package/dist/commands/auth-status.d.ts.map +1 -0
- package/dist/commands/auth-status.js +208 -0
- package/dist/commands/auth-status.js.map +1 -0
- package/dist/commands/auth-upgrade.d.ts +47 -0
- package/dist/commands/auth-upgrade.d.ts.map +1 -0
- package/dist/commands/auth-upgrade.js +277 -0
- package/dist/commands/auth-upgrade.js.map +1 -0
- package/dist/commands/auth.d.ts +16 -0
- package/dist/commands/auth.d.ts.map +1 -0
- package/dist/commands/auth.js +283 -0
- package/dist/commands/auth.js.map +1 -0
- package/dist/commands/create.d.ts +8 -0
- package/dist/commands/create.d.ts.map +1 -0
- package/dist/commands/create.js +512 -0
- package/dist/commands/create.js.map +1 -0
- package/dist/commands/crystallize.d.ts +8 -0
- package/dist/commands/crystallize.d.ts.map +1 -0
- package/dist/commands/crystallize.js +101 -0
- package/dist/commands/crystallize.js.map +1 -0
- package/dist/commands/destroy.d.ts +6 -0
- package/dist/commands/destroy.d.ts.map +1 -0
- package/dist/commands/destroy.js +54 -0
- package/dist/commands/destroy.js.map +1 -0
- package/dist/commands/dispatch.d.ts +9 -0
- package/dist/commands/dispatch.d.ts.map +1 -0
- package/dist/commands/dispatch.js +94 -0
- package/dist/commands/dispatch.js.map +1 -0
- package/dist/commands/enter.d.ts +63 -0
- package/dist/commands/enter.d.ts.map +1 -0
- package/dist/commands/enter.js +206 -0
- package/dist/commands/enter.js.map +1 -0
- package/dist/commands/host-cp.d.ts +191 -0
- package/dist/commands/host-cp.d.ts.map +1 -0
- package/dist/commands/host-cp.js +797 -0
- package/dist/commands/host-cp.js.map +1 -0
- package/dist/commands/init.d.ts +9 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +143 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/install.d.ts +22 -0
- package/dist/commands/install.d.ts.map +1 -0
- package/dist/commands/install.js +203 -0
- package/dist/commands/install.js.map +1 -0
- package/dist/commands/keys.d.ts +26 -0
- package/dist/commands/keys.d.ts.map +1 -0
- package/dist/commands/keys.js +151 -0
- package/dist/commands/keys.js.map +1 -0
- package/dist/commands/lanes.d.ts +18 -0
- package/dist/commands/lanes.d.ts.map +1 -0
- package/dist/commands/lanes.js +122 -0
- package/dist/commands/lanes.js.map +1 -0
- package/dist/commands/list.d.ts +6 -0
- package/dist/commands/list.d.ts.map +1 -0
- package/dist/commands/list.js +39 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/logs.d.ts +38 -0
- package/dist/commands/logs.d.ts.map +1 -0
- package/dist/commands/logs.js +177 -0
- package/dist/commands/logs.js.map +1 -0
- package/dist/commands/observe.d.ts +9 -0
- package/dist/commands/observe.d.ts.map +1 -0
- package/dist/commands/observe.js +34 -0
- package/dist/commands/observe.js.map +1 -0
- package/dist/commands/policy-check.d.ts +14 -0
- package/dist/commands/policy-check.d.ts.map +1 -0
- package/dist/commands/policy-check.js +76 -0
- package/dist/commands/policy-check.js.map +1 -0
- package/dist/commands/pr.d.ts +17 -0
- package/dist/commands/pr.d.ts.map +1 -0
- package/dist/commands/pr.js +148 -0
- package/dist/commands/pr.js.map +1 -0
- package/dist/commands/ps.d.ts +25 -0
- package/dist/commands/ps.d.ts.map +1 -0
- package/dist/commands/ps.js +164 -0
- package/dist/commands/ps.js.map +1 -0
- package/dist/commands/refresh-helpers.d.ts +25 -0
- package/dist/commands/refresh-helpers.d.ts.map +1 -0
- package/dist/commands/refresh-helpers.js +56 -0
- package/dist/commands/refresh-helpers.js.map +1 -0
- package/dist/commands/refresh.d.ts +23 -0
- package/dist/commands/refresh.d.ts.map +1 -0
- package/dist/commands/refresh.js +237 -0
- package/dist/commands/refresh.js.map +1 -0
- package/dist/commands/status.d.ts +6 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +51 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/upgrade.d.ts +67 -0
- package/dist/commands/upgrade.d.ts.map +1 -0
- package/dist/commands/upgrade.js +358 -0
- package/dist/commands/upgrade.js.map +1 -0
- package/dist/commands/workspace.d.ts +23 -0
- package/dist/commands/workspace.d.ts.map +1 -0
- package/dist/commands/workspace.js +198 -0
- package/dist/commands/workspace.js.map +1 -0
- package/dist/commands/world-snapshot.d.ts +18 -0
- package/dist/commands/world-snapshot.d.ts.map +1 -0
- package/dist/commands/world-snapshot.js +327 -0
- package/dist/commands/world-snapshot.js.map +1 -0
- package/dist/context.d.ts +26 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +51 -0
- package/dist/context.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +18007 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp-server.js +32236 -0
- package/dist/output.d.ts +10 -0
- package/dist/output.d.ts.map +1 -0
- package/dist/output.js +31 -0
- package/dist/output.js.map +1 -0
- package/host-cp/compose.yaml +126 -0
- package/host-cp/src/auth-secret-hint.mjs +45 -0
- package/host-cp/src/auth.mjs +155 -0
- package/host-cp/src/compose-worlds-sources.mjs +170 -0
- package/host-cp/src/container-secret-fetcher.mjs +163 -0
- package/host-cp/src/docker-events.mjs +184 -0
- package/host-cp/src/local-worlds-source.mjs +83 -0
- package/host-cp/src/plan-orchestrator.mjs +829 -0
- package/host-cp/src/plan-progress.mjs +282 -0
- package/host-cp/src/pr-cache.mjs +201 -0
- package/host-cp/src/pr-merge-poller.mjs +154 -0
- package/host-cp/src/process-poller.mjs +250 -0
- package/host-cp/src/proxy.mjs +245 -0
- package/host-cp/src/pylon-worlds-source.mjs +68 -0
- package/host-cp/src/redact.mjs +67 -0
- package/host-cp/src/secret-cache.mjs +104 -0
- package/host-cp/src/server.mjs +2215 -0
- package/host-cp/src/sse-gate.mjs +117 -0
- package/host-cp/src/version-status.mjs +209 -0
- package/host-cp/src/workspace-catalog.mjs +149 -0
- package/host-cp/src/world-names-store.mjs +176 -0
- package/host-cp/src/world-pr-state.mjs +97 -0
- package/host-cp/src/world-progress.mjs +322 -0
- package/host-cp/src/world-tunnel-manager.mjs +288 -0
- package/host-cp/src/worlds-db-source.mjs +191 -0
- package/host-cp/src/worlds-source.mjs +59 -0
- package/package.json +38 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"host-cp.js","sourceRoot":"","sources":["../../src/commands/host-cp.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* olam init — Initialize olam configuration in the current project.
|
|
3
|
+
*
|
|
4
|
+
* Delegates to the same init logic as the MCP server's olam_init tool.
|
|
5
|
+
* Works without an existing OlamContext (that is the whole point).
|
|
6
|
+
*/
|
|
7
|
+
import type { Command } from 'commander';
|
|
8
|
+
export declare function registerInit(program: Command): void;
|
|
9
|
+
//# sourceMappingURL=init.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwCzC,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoGnD"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* olam init — Initialize olam configuration in the current project.
|
|
3
|
+
*
|
|
4
|
+
* Delegates to the same init logic as the MCP server's olam_init tool.
|
|
5
|
+
* Works without an existing OlamContext (that is the whole point).
|
|
6
|
+
*/
|
|
7
|
+
import * as fs from 'node:fs';
|
|
8
|
+
import * as path from 'node:path';
|
|
9
|
+
import { execSync } from 'node:child_process';
|
|
10
|
+
import pc from 'picocolors';
|
|
11
|
+
import { printError, printInfo, printHeader } from '../output.js';
|
|
12
|
+
import { ensureProjectWorkspaceFromConfig } from './workspace.js';
|
|
13
|
+
function detectProjectType(root) {
|
|
14
|
+
if (fs.existsSync(path.join(root, 'Gemfile')) ||
|
|
15
|
+
fs.existsSync(path.join(root, 'config', 'routes.rb')))
|
|
16
|
+
return 'rails';
|
|
17
|
+
if (fs.existsSync(path.join(root, 'package.json')))
|
|
18
|
+
return 'node';
|
|
19
|
+
if (fs.existsSync(path.join(root, 'pyproject.toml')) ||
|
|
20
|
+
fs.existsSync(path.join(root, 'requirements.txt')))
|
|
21
|
+
return 'python';
|
|
22
|
+
return 'generic';
|
|
23
|
+
}
|
|
24
|
+
function getRepoName(root) {
|
|
25
|
+
try {
|
|
26
|
+
const url = execSync('git remote get-url origin', {
|
|
27
|
+
cwd: root,
|
|
28
|
+
encoding: 'utf-8',
|
|
29
|
+
}).trim();
|
|
30
|
+
const match = url.match(/\/([^/]+?)(?:\.git)?$/);
|
|
31
|
+
if (match)
|
|
32
|
+
return match[1];
|
|
33
|
+
}
|
|
34
|
+
catch { /* fallback */ }
|
|
35
|
+
return path.basename(root);
|
|
36
|
+
}
|
|
37
|
+
function findProjectRoot(startDir) {
|
|
38
|
+
let current = path.resolve(startDir);
|
|
39
|
+
while (true) {
|
|
40
|
+
if (fs.existsSync(path.join(current, '.git')))
|
|
41
|
+
return current;
|
|
42
|
+
const parent = path.dirname(current);
|
|
43
|
+
if (parent === current)
|
|
44
|
+
return startDir;
|
|
45
|
+
current = parent;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
export function registerInit(program) {
|
|
49
|
+
program
|
|
50
|
+
.command('init')
|
|
51
|
+
.description('Initialize olam in the current project')
|
|
52
|
+
.option('--path <path>', 'Project root path', process.cwd())
|
|
53
|
+
.option('--skip-pleri', 'Skip Pleri setup')
|
|
54
|
+
.action(async (opts) => {
|
|
55
|
+
try {
|
|
56
|
+
const projectRoot = findProjectRoot(opts.path);
|
|
57
|
+
const olamDir = path.join(projectRoot, '.olam');
|
|
58
|
+
if (fs.existsSync(path.join(olamDir, 'config.yaml'))) {
|
|
59
|
+
printError(`Already initialized at ${olamDir}/config.yaml`);
|
|
60
|
+
process.exitCode = 1;
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
const projectType = detectProjectType(projectRoot);
|
|
64
|
+
const repoName = getRepoName(projectRoot);
|
|
65
|
+
let remoteUrl;
|
|
66
|
+
try {
|
|
67
|
+
remoteUrl = execSync('git remote get-url origin', {
|
|
68
|
+
cwd: projectRoot,
|
|
69
|
+
encoding: 'utf-8',
|
|
70
|
+
}).trim();
|
|
71
|
+
}
|
|
72
|
+
catch {
|
|
73
|
+
remoteUrl = `git@github.com:your-org/${repoName}.git`;
|
|
74
|
+
}
|
|
75
|
+
fs.mkdirSync(path.join(olamDir, 'state'), { recursive: true });
|
|
76
|
+
fs.mkdirSync(path.join(olamDir, 'thoughts'), { recursive: true });
|
|
77
|
+
const pleriSection = opts.skipPleri
|
|
78
|
+
? '# pleri:\n# base_url: ${PLERI_BASE_URL}\n# plane_id: ${PLERI_PLANE_ID}\n# api_key: ${PLERI_API_KEY}\n'
|
|
79
|
+
: 'pleri:\n base_url: ${PLERI_BASE_URL}\n plane_id: ${PLERI_PLANE_ID}\n api_key: ${PLERI_API_KEY}\n';
|
|
80
|
+
const config = [
|
|
81
|
+
'version: 2',
|
|
82
|
+
'',
|
|
83
|
+
pleriSection,
|
|
84
|
+
'repos:',
|
|
85
|
+
` - name: ${repoName}`,
|
|
86
|
+
` url: ${remoteUrl}`,
|
|
87
|
+
` path: ${projectRoot}`,
|
|
88
|
+
` type: ${projectType}`,
|
|
89
|
+
' services: []',
|
|
90
|
+
'',
|
|
91
|
+
'compute:',
|
|
92
|
+
' default: docker',
|
|
93
|
+
'',
|
|
94
|
+
'cost:',
|
|
95
|
+
' # All values in USD (Anthropic\'s billing currency).',
|
|
96
|
+
' # Convert from your local currency: USD 25 ≈ SGD 33 / EUR 23 / GBP 20',
|
|
97
|
+
' # at typical 2026 rates. Dashboard display localization is a future feature.',
|
|
98
|
+
' max_per_world_usd: 25',
|
|
99
|
+
' max_daily_usd: 100',
|
|
100
|
+
' warning_threshold: 0.8',
|
|
101
|
+
'',
|
|
102
|
+
'auth:',
|
|
103
|
+
' mode: oauth',
|
|
104
|
+
'',
|
|
105
|
+
].join('\n');
|
|
106
|
+
fs.writeFileSync(path.join(olamDir, 'config.yaml'), config);
|
|
107
|
+
const envExample = [
|
|
108
|
+
'# Pleri credentials',
|
|
109
|
+
'PLERI_BASE_URL=https://pleri.dev/api',
|
|
110
|
+
'PLERI_PLANE_ID=',
|
|
111
|
+
'PLERI_API_KEY=',
|
|
112
|
+
'',
|
|
113
|
+
].join('\n');
|
|
114
|
+
fs.writeFileSync(path.join(olamDir, '.env.example'), envExample);
|
|
115
|
+
printHeader('Olam initialized');
|
|
116
|
+
printInfo('Config', `${olamDir}/config.yaml`);
|
|
117
|
+
printInfo('Project', `${projectType} (detected)`);
|
|
118
|
+
printInfo('Repo', repoName);
|
|
119
|
+
// Auto-register this project as a host-catalog workspace so
|
|
120
|
+
// `olam create --workspace <repo>` works from anywhere. Tolerant
|
|
121
|
+
// of failure — init must not bail just because workspace write
|
|
122
|
+
// hit a permissions issue or similar edge case.
|
|
123
|
+
try {
|
|
124
|
+
const result = ensureProjectWorkspaceFromConfig(projectRoot, repoName);
|
|
125
|
+
if (result.created) {
|
|
126
|
+
printInfo('Workspace', `${repoName} → ${result.file}`);
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
printInfo('Workspace', `${repoName} (already registered)`);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
catch (err) {
|
|
133
|
+
printError(`Workspace auto-register failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
134
|
+
}
|
|
135
|
+
console.log(`\n${pc.dim(`Next: olam create --name my-world --workspace ${repoName} --task "..."`)}`);
|
|
136
|
+
}
|
|
137
|
+
catch (err) {
|
|
138
|
+
printError(err instanceof Error ? err.message : String(err));
|
|
139
|
+
process.exitCode = 1;
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,gCAAgC,EAAE,MAAM,gBAAgB,CAAC;AAElE,SAAS,iBAAiB,CAAC,IAAY;IACrC,IACE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACzC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;QACrD,OAAO,OAAO,CAAC;IACjB,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QAAE,OAAO,MAAM,CAAC;IAClE,IACE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;QAChD,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;QAClD,OAAO,QAAQ,CAAC;IAClB,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,WAAW,CAAC,IAAY;IAC/B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,QAAQ,CAAC,2BAA2B,EAAE;YAChD,GAAG,EAAE,IAAI;YACT,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACjD,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC,CAAC,CAAE,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC;IAC1B,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,eAAe,CAAC,QAAgB;IACvC,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACrC,OAAO,IAAI,EAAE,CAAC;QACZ,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAAE,OAAO,OAAO,CAAC;QAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,MAAM,KAAK,OAAO;YAAE,OAAO,QAAQ,CAAC;QACxC,OAAO,GAAG,MAAM,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAgB;IAC3C,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,wCAAwC,CAAC;SACrD,MAAM,CAAC,eAAe,EAAE,mBAAmB,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;SAC3D,MAAM,CAAC,cAAc,EAAE,kBAAkB,CAAC;SAC1C,MAAM,CAAC,KAAK,EAAE,IAA2C,EAAE,EAAE;QAC5D,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAEhD,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC;gBACrD,UAAU,CAAC,0BAA0B,OAAO,cAAc,CAAC,CAAC;gBAC5D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACrB,OAAO;YACT,CAAC;YAED,MAAM,WAAW,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;YAC1C,IAAI,SAAiB,CAAC;YACtB,IAAI,CAAC;gBACH,SAAS,GAAG,QAAQ,CAAC,2BAA2B,EAAE;oBAChD,GAAG,EAAE,WAAW;oBAChB,QAAQ,EAAE,OAAO;iBAClB,CAAC,CAAC,IAAI,EAAE,CAAC;YACZ,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS,GAAG,2BAA2B,QAAQ,MAAM,CAAC;YACxD,CAAC;YAED,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/D,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAElE,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS;gBACjC,CAAC,CAAC,6GAA6G;gBAC/G,CAAC,CAAC,qGAAqG,CAAC;YAE1G,MAAM,MAAM,GAAG;gBACb,YAAY;gBACZ,EAAE;gBACF,YAAY;gBACZ,QAAQ;gBACR,aAAa,QAAQ,EAAE;gBACvB,YAAY,SAAS,EAAE;gBACvB,aAAa,WAAW,EAAE;gBAC1B,aAAa,WAAW,EAAE;gBAC1B,kBAAkB;gBAClB,EAAE;gBACF,UAAU;gBACV,mBAAmB;gBACnB,EAAE;gBACF,OAAO;gBACP,wDAAwD;gBACxD,yEAAyE;gBACzE,gFAAgF;gBAChF,yBAAyB;gBACzB,sBAAsB;gBACtB,0BAA0B;gBAC1B,EAAE;gBACF,OAAO;gBACP,eAAe;gBACf,EAAE;aACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEb,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,CAAC;YAE5D,MAAM,UAAU,GAAG;gBACjB,qBAAqB;gBACrB,sCAAsC;gBACtC,iBAAiB;gBACjB,gBAAgB;gBAChB,EAAE;aACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACb,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE,UAAU,CAAC,CAAC;YAEjE,WAAW,CAAC,kBAAkB,CAAC,CAAC;YAChC,SAAS,CAAC,QAAQ,EAAE,GAAG,OAAO,cAAc,CAAC,CAAC;YAC9C,SAAS,CAAC,SAAS,EAAE,GAAG,WAAW,aAAa,CAAC,CAAC;YAClD,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAE5B,4DAA4D;YAC5D,iEAAiE;YACjE,+DAA+D;YAC/D,gDAAgD;YAChD,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,gCAAgC,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;gBACvE,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBACnB,SAAS,CAAC,WAAW,EAAE,GAAG,QAAQ,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBACzD,CAAC;qBAAM,CAAC;oBACN,SAAS,CAAC,WAAW,EAAE,GAAG,QAAQ,uBAAuB,CAAC,CAAC;gBAC7D,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,UAAU,CAAC,mCAAmC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACpG,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,iDAAiD,QAAQ,eAAe,CAAC,EAAE,CAAC,CAAC;QACvG,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,UAAU,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAC7D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* olam install — pick an archetype and record it locally.
|
|
3
|
+
*
|
|
4
|
+
* olam install --as=<archetype> [--capability <name>]... [--force]
|
|
5
|
+
*
|
|
6
|
+
* Archetype-aware setup for Olam. Writes `~/.olam/role.yaml` with the
|
|
7
|
+
* resolved archetype and capability set so later commands + MCP
|
|
8
|
+
* surfaces can introspect what this install is allowed to do.
|
|
9
|
+
*
|
|
10
|
+
* Local behaviour is intentionally minimal — this command records
|
|
11
|
+
* intent and prints archetype-specific next steps. Heavy lifting
|
|
12
|
+
* (docker bootstrap, auth container, CF deploy) stays in its
|
|
13
|
+
* dedicated commands (`olam auth up`, `wrangler deploy`) so
|
|
14
|
+
* `olam install` remains idempotent and boring.
|
|
15
|
+
*
|
|
16
|
+
* Authz enforcement is NOT wired into this file. Local mode is
|
|
17
|
+
* single-actor by design; CF enforcement lands in a later slice that
|
|
18
|
+
* stores roles server-side in OLAM_ROLES KV.
|
|
19
|
+
*/
|
|
20
|
+
import type { Command } from 'commander';
|
|
21
|
+
export declare function registerInstall(program: Command): void;
|
|
22
|
+
//# sourceMappingURL=install.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAKH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkGzC,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmHtD"}
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* olam install — pick an archetype and record it locally.
|
|
3
|
+
*
|
|
4
|
+
* olam install --as=<archetype> [--capability <name>]... [--force]
|
|
5
|
+
*
|
|
6
|
+
* Archetype-aware setup for Olam. Writes `~/.olam/role.yaml` with the
|
|
7
|
+
* resolved archetype and capability set so later commands + MCP
|
|
8
|
+
* surfaces can introspect what this install is allowed to do.
|
|
9
|
+
*
|
|
10
|
+
* Local behaviour is intentionally minimal — this command records
|
|
11
|
+
* intent and prints archetype-specific next steps. Heavy lifting
|
|
12
|
+
* (docker bootstrap, auth container, CF deploy) stays in its
|
|
13
|
+
* dedicated commands (`olam auth up`, `wrangler deploy`) so
|
|
14
|
+
* `olam install` remains idempotent and boring.
|
|
15
|
+
*
|
|
16
|
+
* Authz enforcement is NOT wired into this file. Local mode is
|
|
17
|
+
* single-actor by design; CF enforcement lands in a later slice that
|
|
18
|
+
* stores roles server-side in OLAM_ROLES KV.
|
|
19
|
+
*/
|
|
20
|
+
import * as fs from 'node:fs';
|
|
21
|
+
import * as os from 'node:os';
|
|
22
|
+
import * as path from 'node:path';
|
|
23
|
+
import pc from 'picocolors';
|
|
24
|
+
import { stringify as stringifyYaml } from 'yaml';
|
|
25
|
+
import { ARCHETYPES, UnknownArchetypeError, assertCapability, expandArchetype, getArchetype, listArchetypeNames, } from '@olam/core/src/archetypes/index.js';
|
|
26
|
+
import { printError, printHeader, printInfo, printSuccess } from '../output.js';
|
|
27
|
+
const ROLE_FILE_PATH = path.join(os.homedir(), '.olam', 'role.yaml');
|
|
28
|
+
function readRoleFile() {
|
|
29
|
+
if (!fs.existsSync(ROLE_FILE_PATH))
|
|
30
|
+
return null;
|
|
31
|
+
try {
|
|
32
|
+
// Lazy import so the CLI can still run if yaml is somehow missing
|
|
33
|
+
// (it's already a peer dep via core, but defensive).
|
|
34
|
+
const raw = fs.readFileSync(ROLE_FILE_PATH, 'utf-8');
|
|
35
|
+
// The file is structurally simple; parseYaml would work too but
|
|
36
|
+
// we keep the install command dependency-light.
|
|
37
|
+
const m = /archetype:\s*(\S+)/.exec(raw);
|
|
38
|
+
if (!m)
|
|
39
|
+
return null;
|
|
40
|
+
const archetype = m[1];
|
|
41
|
+
const customCapabilities = [];
|
|
42
|
+
for (const line of raw.split('\n')) {
|
|
43
|
+
const caps = /^\s+-\s+(\S+)$/.exec(line);
|
|
44
|
+
if (caps)
|
|
45
|
+
customCapabilities.push(caps[1]);
|
|
46
|
+
}
|
|
47
|
+
const installedAtMatch = /installedAt:\s*(\d+)/.exec(raw);
|
|
48
|
+
return {
|
|
49
|
+
archetype,
|
|
50
|
+
customCapabilities,
|
|
51
|
+
installedAt: installedAtMatch ? Number(installedAtMatch[1]) : 0,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
function writeRoleFile(role) {
|
|
59
|
+
fs.mkdirSync(path.dirname(ROLE_FILE_PATH), { recursive: true });
|
|
60
|
+
const yaml = stringifyYaml({
|
|
61
|
+
archetype: role.archetype,
|
|
62
|
+
customCapabilities: [...role.customCapabilities],
|
|
63
|
+
installedAt: role.installedAt,
|
|
64
|
+
});
|
|
65
|
+
fs.writeFileSync(ROLE_FILE_PATH, yaml, { mode: 0o644 });
|
|
66
|
+
}
|
|
67
|
+
/** Per-archetype "what this install covers / what to do next" hints. */
|
|
68
|
+
function nextStepsFor(archetype) {
|
|
69
|
+
switch (archetype) {
|
|
70
|
+
case 'user':
|
|
71
|
+
return [
|
|
72
|
+
'You can now run `olam create --task "..."` against a workspace your admin has curated.',
|
|
73
|
+
'Register the Claude Code plugin if you haven\'t: `claude plugin install ./plugin`.',
|
|
74
|
+
];
|
|
75
|
+
case 'workspace-curator':
|
|
76
|
+
return [
|
|
77
|
+
'You can now curate the catalog: `olam workspace add <name> --from-config`.',
|
|
78
|
+
'Share workspace YAML files via your usual dotfiles / rsync flow.',
|
|
79
|
+
];
|
|
80
|
+
case 'policy-admin':
|
|
81
|
+
return [
|
|
82
|
+
'Set deployment-wide policy via env vars (OLAM_CLAUDE_PERMISSION_MODE) or wrangler secrets.',
|
|
83
|
+
'PR-gate defaults can be overridden per-workspace under `policy.set`.',
|
|
84
|
+
];
|
|
85
|
+
case 'bootstrapper':
|
|
86
|
+
return [
|
|
87
|
+
'Start the auth container: `olam auth up`, then `olam auth login`.',
|
|
88
|
+
'For Cloudflare deployments: `cd packages/cloudflare-worker && pnpm wrangler deploy`.',
|
|
89
|
+
];
|
|
90
|
+
case 'admin':
|
|
91
|
+
return [
|
|
92
|
+
'Start the auth container: `olam auth up`, then `olam auth login`.',
|
|
93
|
+
'Curate workspaces: `olam workspace add <name> --from-config`.',
|
|
94
|
+
'Assign narrower archetypes to teammates (CF side, once slice C lands): use `role.manage`.',
|
|
95
|
+
];
|
|
96
|
+
case 'dev':
|
|
97
|
+
return [
|
|
98
|
+
'You have repo-local privileges. Run `npm run build:ci && npm run test:ci`.',
|
|
99
|
+
'Everything an admin has is available.',
|
|
100
|
+
];
|
|
101
|
+
default:
|
|
102
|
+
return [];
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
export function registerInstall(program) {
|
|
106
|
+
program
|
|
107
|
+
.command('install')
|
|
108
|
+
.description('Pick an archetype preset for this Olam install')
|
|
109
|
+
.option('--as <archetype>', 'Archetype name (user, workspace-curator, policy-admin, bootstrapper, admin, dev)')
|
|
110
|
+
.option('--capability <name>', 'Additional capability to grant beyond the archetype preset (repeatable)', (value, acc) => {
|
|
111
|
+
acc.push(value);
|
|
112
|
+
return acc;
|
|
113
|
+
}, [])
|
|
114
|
+
.option('--force', 'Overwrite an existing role.yaml', false)
|
|
115
|
+
.option('--show', 'Print the current install\'s archetype and exit', false)
|
|
116
|
+
.action((opts) => {
|
|
117
|
+
if (opts.show) {
|
|
118
|
+
const existing = readRoleFile();
|
|
119
|
+
if (!existing) {
|
|
120
|
+
console.log(pc.dim(`No install recorded at ${ROLE_FILE_PATH}`));
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
printHeader('Current install');
|
|
124
|
+
printInfo('Archetype', existing.archetype);
|
|
125
|
+
printInfo('File', ROLE_FILE_PATH);
|
|
126
|
+
const caps = expandArchetype(existing.archetype);
|
|
127
|
+
for (const cap of existing.customCapabilities)
|
|
128
|
+
caps.add(cap);
|
|
129
|
+
printHeader(`Effective capabilities (${caps.size})`);
|
|
130
|
+
for (const cap of [...caps].sort()) {
|
|
131
|
+
console.log(` ${cap}`);
|
|
132
|
+
}
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
if (!opts.as) {
|
|
136
|
+
printError('Missing --as <archetype>. Known archetypes:');
|
|
137
|
+
for (const arch of ARCHETYPES) {
|
|
138
|
+
console.log(` ${pc.bold(arch.name.padEnd(20))} ${pc.dim(arch.description)}`);
|
|
139
|
+
}
|
|
140
|
+
process.exitCode = 1;
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
const archetype = getArchetype(opts.as);
|
|
144
|
+
if (!archetype) {
|
|
145
|
+
printError(`Unknown archetype "${opts.as}". Known: ${listArchetypeNames().join(', ')}`);
|
|
146
|
+
process.exitCode = 1;
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
// Validate any additional capabilities up front so we don't
|
|
150
|
+
// half-write a role file with a typo'd capability.
|
|
151
|
+
const extras = [];
|
|
152
|
+
for (const raw of opts.capability) {
|
|
153
|
+
try {
|
|
154
|
+
extras.push(assertCapability(raw));
|
|
155
|
+
}
|
|
156
|
+
catch (err) {
|
|
157
|
+
printError(err instanceof Error ? err.message : String(err));
|
|
158
|
+
process.exitCode = 1;
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
const existing = readRoleFile();
|
|
163
|
+
if (existing && !opts.force) {
|
|
164
|
+
printError(`Install already recorded as "${existing.archetype}" at ${ROLE_FILE_PATH}. Pass --force to overwrite.`);
|
|
165
|
+
process.exitCode = 1;
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
let resolved;
|
|
169
|
+
try {
|
|
170
|
+
resolved = expandArchetype(archetype.name);
|
|
171
|
+
}
|
|
172
|
+
catch (err) {
|
|
173
|
+
if (err instanceof UnknownArchetypeError) {
|
|
174
|
+
printError(err.message);
|
|
175
|
+
process.exitCode = 1;
|
|
176
|
+
return;
|
|
177
|
+
}
|
|
178
|
+
throw err;
|
|
179
|
+
}
|
|
180
|
+
for (const extra of extras)
|
|
181
|
+
resolved.add(extra);
|
|
182
|
+
writeRoleFile({
|
|
183
|
+
archetype: archetype.name,
|
|
184
|
+
customCapabilities: extras,
|
|
185
|
+
installedAt: Date.now(),
|
|
186
|
+
});
|
|
187
|
+
printHeader(`Installed as ${pc.bold(archetype.name)}`);
|
|
188
|
+
printInfo('File', ROLE_FILE_PATH);
|
|
189
|
+
printInfo('Description', archetype.description);
|
|
190
|
+
printInfo('Capabilities', `${resolved.size} total`);
|
|
191
|
+
if (extras.length > 0) {
|
|
192
|
+
printInfo('Added beyond preset', extras.join(', '));
|
|
193
|
+
}
|
|
194
|
+
const steps = nextStepsFor(archetype.name);
|
|
195
|
+
if (steps.length > 0) {
|
|
196
|
+
printHeader('Next steps');
|
|
197
|
+
for (const step of steps)
|
|
198
|
+
console.log(` ${pc.dim('•')} ${step}`);
|
|
199
|
+
}
|
|
200
|
+
printSuccess('Done. Run `olam install --show` to see the full capability list.');
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
//# sourceMappingURL=install.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,MAAM,CAAC;AAClD,OAAO,EACL,UAAU,EACV,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,kBAAkB,GAEnB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEhF,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;AAQrE,SAAS,YAAY;IACnB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC;QAAE,OAAO,IAAI,CAAC;IAChD,IAAI,CAAC;QACH,kEAAkE;QAClE,qDAAqD;QACrD,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QACrD,gEAAgE;QAChE,gDAAgD;QAChD,MAAM,CAAC,GAAG,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QACpB,MAAM,SAAS,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;QACxB,MAAM,kBAAkB,GAAiB,EAAE,CAAC;QAC5C,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,IAAI;gBAAE,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAe,CAAC,CAAC;QAC3D,CAAC;QACD,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1D,OAAO;YACL,SAAS;YACT,kBAAkB;YAClB,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAChE,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,IAAc;IACnC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChE,MAAM,IAAI,GAAG,aAAa,CAAC;QACzB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,kBAAkB,EAAE,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC;QAChD,WAAW,EAAE,IAAI,CAAC,WAAW;KAC9B,CAAC,CAAC;IACH,EAAE,CAAC,aAAa,CAAC,cAAc,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAC1D,CAAC;AAED,wEAAwE;AACxE,SAAS,YAAY,CAAC,SAAiB;IACrC,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,MAAM;YACT,OAAO;gBACL,wFAAwF;gBACxF,oFAAoF;aACrF,CAAC;QACJ,KAAK,mBAAmB;YACtB,OAAO;gBACL,4EAA4E;gBAC5E,kEAAkE;aACnE,CAAC;QACJ,KAAK,cAAc;YACjB,OAAO;gBACL,4FAA4F;gBAC5F,sEAAsE;aACvE,CAAC;QACJ,KAAK,cAAc;YACjB,OAAO;gBACL,mEAAmE;gBACnE,sFAAsF;aACvF,CAAC;QACJ,KAAK,OAAO;YACV,OAAO;gBACL,mEAAmE;gBACnE,+DAA+D;gBAC/D,2FAA2F;aAC5F,CAAC;QACJ,KAAK,KAAK;YACR,OAAO;gBACL,4EAA4E;gBAC5E,uCAAuC;aACxC,CAAC;QACJ;YACE,OAAO,EAAE,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAAgB;IAC9C,OAAO;SACJ,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,gDAAgD,CAAC;SAC7D,MAAM,CAAC,kBAAkB,EAAE,kFAAkF,CAAC;SAC9G,MAAM,CACL,qBAAqB,EACrB,yEAAyE,EACzE,CAAC,KAAa,EAAE,GAAa,EAAE,EAAE;QAC/B,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChB,OAAO,GAAG,CAAC;IACb,CAAC,EACD,EAAc,CACf;SACA,MAAM,CAAC,SAAS,EAAE,iCAAiC,EAAE,KAAK,CAAC;SAC3D,MAAM,CAAC,QAAQ,EAAE,iDAAiD,EAAE,KAAK,CAAC;SAC1E,MAAM,CAAC,CAAC,IAKR,EAAE,EAAE;QACH,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC;YAChC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,0BAA0B,cAAc,EAAE,CAAC,CAAC,CAAC;gBAChE,OAAO;YACT,CAAC;YACD,WAAW,CAAC,iBAAiB,CAAC,CAAC;YAC/B,SAAS,CAAC,WAAW,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;YAC3C,SAAS,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;YAClC,MAAM,IAAI,GAAG,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YACjD,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,kBAAkB;gBAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC7D,WAAW,CAAC,2BAA2B,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;YACrD,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;gBACnC,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;YAC1B,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,UAAU,CAAC,6CAA6C,CAAC,CAAC;YAC1D,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;gBAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAChF,CAAC;YACD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,UAAU,CACR,sBAAsB,IAAI,CAAC,EAAE,aAAa,kBAAkB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC5E,CAAC;YACF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QAED,4DAA4D;QAC5D,mDAAmD;QACnD,MAAM,MAAM,GAAiB,EAAE,CAAC;QAChC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAClC,IAAI,CAAC;gBACH,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;YACrC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,UAAU,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC7D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACrB,OAAO;YACT,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC;QAChC,IAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAC5B,UAAU,CACR,gCAAgC,QAAQ,CAAC,SAAS,QAAQ,cAAc,8BAA8B,CACvG,CAAC;YACF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QAED,IAAI,QAAyB,CAAC;QAC9B,IAAI,CAAC;YACH,QAAQ,GAAG,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC7C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,qBAAqB,EAAE,CAAC;gBACzC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACxB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACrB,OAAO;YACT,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,MAAM;YAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAEhD,aAAa,CAAC;YACZ,SAAS,EAAE,SAAS,CAAC,IAAI;YACzB,kBAAkB,EAAE,MAAM;YAC1B,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE;SACxB,CAAC,CAAC;QAEH,WAAW,CAAC,gBAAgB,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvD,SAAS,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAClC,SAAS,CAAC,aAAa,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;QAChD,SAAS,CAAC,cAAc,EAAE,GAAG,QAAQ,CAAC,IAAI,QAAQ,CAAC,CAAC;QACpD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,SAAS,CAAC,qBAAqB,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,KAAK,GAAG,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,WAAW,CAAC,YAAY,CAAC,CAAC;YAC1B,KAAK,MAAM,IAAI,IAAI,KAAK;gBAAE,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QACpE,CAAC;QAED,YAAY,CAAC,kEAAkE,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* olam keys — Manage operator-state LLM API keys at ~/.olam/keys.yaml.
|
|
3
|
+
*
|
|
4
|
+
* Subcommands/options:
|
|
5
|
+
* olam keys — list current keys (values redacted)
|
|
6
|
+
* olam keys --set OPENAI=sk-proj-... — write/update a single key
|
|
7
|
+
* olam keys --unset OPENAI — remove a key
|
|
8
|
+
* olam keys path — print ~/.olam/keys.yaml absolute path
|
|
9
|
+
*
|
|
10
|
+
* Keys propagate to worlds at boot as OLAM_LLM_<UPPER_KEY> env vars.
|
|
11
|
+
* File is chmod 600; values are never printed in full by the CLI.
|
|
12
|
+
*/
|
|
13
|
+
import type { Command } from 'commander';
|
|
14
|
+
/** Absolute path to ~/.olam/keys.yaml. */
|
|
15
|
+
export declare function keysFilePath(): string;
|
|
16
|
+
/**
|
|
17
|
+
* Read ~/.olam/keys.yaml and return a plain key→value map.
|
|
18
|
+
*
|
|
19
|
+
* Returns null when the file is missing or empty — not an error, just
|
|
20
|
+
* means the operator hasn't set any keys yet.
|
|
21
|
+
* Returns null for malformed YAML so callers can surface a clear message
|
|
22
|
+
* instead of a raw parse stack trace.
|
|
23
|
+
*/
|
|
24
|
+
export declare function readKeysFile(): Record<string, string> | null;
|
|
25
|
+
export declare function registerKeys(program: Command): void;
|
|
26
|
+
//# sourceMappingURL=keys.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../src/commands/keys.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAczC,0CAA0C;AAC1C,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAgB5D;AA0BD,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0EnD"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* olam keys — Manage operator-state LLM API keys at ~/.olam/keys.yaml.
|
|
3
|
+
*
|
|
4
|
+
* Subcommands/options:
|
|
5
|
+
* olam keys — list current keys (values redacted)
|
|
6
|
+
* olam keys --set OPENAI=sk-proj-... — write/update a single key
|
|
7
|
+
* olam keys --unset OPENAI — remove a key
|
|
8
|
+
* olam keys path — print ~/.olam/keys.yaml absolute path
|
|
9
|
+
*
|
|
10
|
+
* Keys propagate to worlds at boot as OLAM_LLM_<UPPER_KEY> env vars.
|
|
11
|
+
* File is chmod 600; values are never printed in full by the CLI.
|
|
12
|
+
*/
|
|
13
|
+
import * as fs from 'node:fs';
|
|
14
|
+
import * as os from 'node:os';
|
|
15
|
+
import * as path from 'node:path';
|
|
16
|
+
import YAML from 'yaml';
|
|
17
|
+
import { printError, printSuccess, printHeader, printInfo } from '../output.js';
|
|
18
|
+
// ── File helpers ──────────────────────────────────────────────────
|
|
19
|
+
/** Honors OLAM_HOME for tests — mirrors olamHome() in host-cp.ts. */
|
|
20
|
+
function olamHome() {
|
|
21
|
+
return process.env.OLAM_HOME ?? path.join(os.homedir(), '.olam');
|
|
22
|
+
}
|
|
23
|
+
/** Absolute path to ~/.olam/keys.yaml. */
|
|
24
|
+
export function keysFilePath() {
|
|
25
|
+
return path.join(olamHome(), 'keys.yaml');
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Read ~/.olam/keys.yaml and return a plain key→value map.
|
|
29
|
+
*
|
|
30
|
+
* Returns null when the file is missing or empty — not an error, just
|
|
31
|
+
* means the operator hasn't set any keys yet.
|
|
32
|
+
* Returns null for malformed YAML so callers can surface a clear message
|
|
33
|
+
* instead of a raw parse stack trace.
|
|
34
|
+
*/
|
|
35
|
+
export function readKeysFile() {
|
|
36
|
+
const filePath = keysFilePath();
|
|
37
|
+
if (!fs.existsSync(filePath))
|
|
38
|
+
return null;
|
|
39
|
+
const raw = fs.readFileSync(filePath, 'utf-8').trim();
|
|
40
|
+
if (raw.length === 0)
|
|
41
|
+
return null;
|
|
42
|
+
try {
|
|
43
|
+
const parsed = YAML.parse(raw);
|
|
44
|
+
if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed))
|
|
45
|
+
return null;
|
|
46
|
+
const result = {};
|
|
47
|
+
for (const [k, v] of Object.entries(parsed)) {
|
|
48
|
+
if (typeof v === 'string')
|
|
49
|
+
result[k] = v;
|
|
50
|
+
}
|
|
51
|
+
return Object.keys(result).length > 0 ? result : null;
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Ensure ~/.olam/ exists and write the given map to ~/.olam/keys.yaml
|
|
59
|
+
* with chmod 600 so only the operator can read it.
|
|
60
|
+
*/
|
|
61
|
+
function writeKeysFile(keys) {
|
|
62
|
+
const dir = olamHome();
|
|
63
|
+
if (!fs.existsSync(dir)) {
|
|
64
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
65
|
+
}
|
|
66
|
+
const filePath = keysFilePath();
|
|
67
|
+
const content = YAML.stringify(keys);
|
|
68
|
+
fs.writeFileSync(filePath, content, { encoding: 'utf-8', mode: 0o600 });
|
|
69
|
+
// Enforce 600 even if file already existed with looser perms.
|
|
70
|
+
fs.chmodSync(filePath, 0o600);
|
|
71
|
+
}
|
|
72
|
+
/** Redact a secret value: keep first 8 chars, replace the rest with "...". */
|
|
73
|
+
function redact(value) {
|
|
74
|
+
if (value.length <= 8)
|
|
75
|
+
return value + '...';
|
|
76
|
+
return value.slice(0, 8) + '...';
|
|
77
|
+
}
|
|
78
|
+
// ── Command registration ──────────────────────────────────────────
|
|
79
|
+
export function registerKeys(program) {
|
|
80
|
+
const keysCmd = program
|
|
81
|
+
.command('keys')
|
|
82
|
+
.description('Manage LLM API keys stored at ~/.olam/keys.yaml')
|
|
83
|
+
.option('--set <KEY=VALUE>', 'Write or update a key (e.g. --set OPENAI=sk-proj-...)')
|
|
84
|
+
.option('--unset <KEY>', 'Remove a key')
|
|
85
|
+
.action((opts) => {
|
|
86
|
+
// olam keys path — print the file path
|
|
87
|
+
// (handled as subcommand below; this action handles the flag paths)
|
|
88
|
+
if (opts.set) {
|
|
89
|
+
const eqIdx = opts.set.indexOf('=');
|
|
90
|
+
if (eqIdx <= 0) {
|
|
91
|
+
printError('--set requires KEY=VALUE format (e.g. --set OPENAI=sk-proj-...)');
|
|
92
|
+
process.exitCode = 1;
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
const key = opts.set.slice(0, eqIdx).trim().toUpperCase();
|
|
96
|
+
const value = opts.set.slice(eqIdx + 1).trim();
|
|
97
|
+
if (key.length === 0) {
|
|
98
|
+
printError('Key name cannot be empty');
|
|
99
|
+
process.exitCode = 1;
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
if (value.length === 0) {
|
|
103
|
+
printError('Value cannot be empty — to remove a key use --unset');
|
|
104
|
+
process.exitCode = 1;
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
const existing = readKeysFile() ?? {};
|
|
108
|
+
existing[key] = value;
|
|
109
|
+
writeKeysFile(existing);
|
|
110
|
+
printSuccess(`${key} saved to ${keysFilePath()}`);
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
if (opts.unset) {
|
|
114
|
+
const key = opts.unset.trim().toUpperCase();
|
|
115
|
+
const existing = readKeysFile();
|
|
116
|
+
if (!existing || !(key in existing)) {
|
|
117
|
+
printError(`Key ${key} not found in ${keysFilePath()}`);
|
|
118
|
+
process.exitCode = 1;
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
const { [key]: _removed, ...rest } = existing;
|
|
122
|
+
if (Object.keys(rest).length === 0) {
|
|
123
|
+
// Remove the file entirely when the last key is unset.
|
|
124
|
+
fs.unlinkSync(keysFilePath());
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
writeKeysFile(rest);
|
|
128
|
+
}
|
|
129
|
+
printSuccess(`${key} removed`);
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
// Default: list keys with redacted values
|
|
133
|
+
const keys = readKeysFile();
|
|
134
|
+
printHeader('LLM API keys (~/.olam/keys.yaml)');
|
|
135
|
+
if (!keys) {
|
|
136
|
+
console.log(' No keys configured. Use olam keys --set KEY=VALUE to add one.');
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
for (const [k, v] of Object.entries(keys)) {
|
|
140
|
+
printInfo(k, redact(v));
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
// olam keys path — print the file path (no redaction needed)
|
|
144
|
+
keysCmd
|
|
145
|
+
.command('path')
|
|
146
|
+
.description('Print the absolute path to ~/.olam/keys.yaml')
|
|
147
|
+
.action(() => {
|
|
148
|
+
console.log(keysFilePath());
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=keys.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../../src/commands/keys.ts"],"names":[],"mappings":"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"}
|