@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,191 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Phase F-2-D (D1+D2+D3): `olam host-cp <subcommand>` — operator-facing
|
|
3
|
+
* lifecycle for the host CP container.
|
|
4
|
+
*
|
|
5
|
+
* Subcommands:
|
|
6
|
+
* start — generate token, audit port 19000, docker compose up, write PID
|
|
7
|
+
* stop — docker compose down, remove PID + token
|
|
8
|
+
* status — diagnostic probe (with optional --json flag)
|
|
9
|
+
*
|
|
10
|
+
* Wraps the compose stack at `packages/host-cp/compose.yaml`. Token
|
|
11
|
+
* lives at `~/.olam/host-cp.token` (chmod 600). PID file at
|
|
12
|
+
* `~/.olam/host-cp.pid`. Both are operator-state files, not repo state.
|
|
13
|
+
*/
|
|
14
|
+
import type { Command } from 'commander';
|
|
15
|
+
/**
|
|
16
|
+
* Path to the operator-state shared auth-service secret.
|
|
17
|
+
*
|
|
18
|
+
* Created by `olam auth up` when the auth-service container first
|
|
19
|
+
* starts. Both the auth-service container and host-cp container must
|
|
20
|
+
* use the same secret value as their `X-Olam-Secret` so host-cp's
|
|
21
|
+
* `/credentials/*` calls authenticate correctly.
|
|
22
|
+
*
|
|
23
|
+
* Honors OLAM_HOME for tests (matches `olamHome()`).
|
|
24
|
+
*/
|
|
25
|
+
export declare function authSecretPath(): string;
|
|
26
|
+
/**
|
|
27
|
+
* Read the shared auth-service secret from `~/.olam/auth-secret`.
|
|
28
|
+
*
|
|
29
|
+
* Returns null when the file is missing (auth-service was never started
|
|
30
|
+
* or the file was deleted). Returns null instead of throwing because
|
|
31
|
+
* `host-cp start` should still bring host-cp up — but it then logs a
|
|
32
|
+
* loud warning so the operator notices that credential surfaces will
|
|
33
|
+
* 401 until they run `olam auth up` to regenerate the secret.
|
|
34
|
+
*
|
|
35
|
+
* Empty/whitespace files are treated as "not set" (null) — a 0-byte
|
|
36
|
+
* file would otherwise round-trip to compose as an empty env var,
|
|
37
|
+
* which is exactly the silent-failure mode this whole helper exists
|
|
38
|
+
* to prevent.
|
|
39
|
+
*/
|
|
40
|
+
export declare function readAuthSecret(): string | null;
|
|
41
|
+
export interface R2Credentials {
|
|
42
|
+
account_id: string;
|
|
43
|
+
bucket: string;
|
|
44
|
+
access_key_id: string;
|
|
45
|
+
secret_access_key: string;
|
|
46
|
+
public_url_base: string;
|
|
47
|
+
}
|
|
48
|
+
/** Path to `~/.olam/r2-credentials.json`. Honors OLAM_HOME for tests. */
|
|
49
|
+
export declare function r2CredentialsPath(): string;
|
|
50
|
+
/**
|
|
51
|
+
* Read R2 credentials from `~/.olam/r2-credentials.json`.
|
|
52
|
+
*
|
|
53
|
+
* Returns null when the file is missing — callers should print a clear
|
|
54
|
+
* "operator must configure" error rather than throwing. Returns null for
|
|
55
|
+
* malformed JSON so callers can surface a useful message instead of a
|
|
56
|
+
* raw parse stack trace.
|
|
57
|
+
*/
|
|
58
|
+
export declare function readR2Credentials(): R2Credentials | null;
|
|
59
|
+
/**
|
|
60
|
+
* Generate a fresh 32-byte hex token and write it to `tokenPath()` with
|
|
61
|
+
* mode 0600. Creates the parent directory if missing. Idempotent: if a
|
|
62
|
+
* token already exists, this overwrites it (each `start` regenerates).
|
|
63
|
+
*/
|
|
64
|
+
export declare function writeToken(): string;
|
|
65
|
+
export declare function readToken(): string | null;
|
|
66
|
+
export declare function removeToken(): boolean;
|
|
67
|
+
export declare function writePid(pid: number): void;
|
|
68
|
+
export declare function readPid(): number | null;
|
|
69
|
+
export declare function removePid(): boolean;
|
|
70
|
+
interface ContainerInfo {
|
|
71
|
+
readonly id: string;
|
|
72
|
+
readonly name: string;
|
|
73
|
+
readonly state: string;
|
|
74
|
+
readonly status: string;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Find the host-cp container by name. Returns null if absent.
|
|
78
|
+
*/
|
|
79
|
+
export declare function findHostCpContainer(): Promise<ContainerInfo | null>;
|
|
80
|
+
/**
|
|
81
|
+
* Phase host-cp-reliability: Probe for a running host CP, supporting
|
|
82
|
+
* both bare-node (process on host) and container deployments.
|
|
83
|
+
*
|
|
84
|
+
* Strategy:
|
|
85
|
+
* 1. HTTP probe: try http://127.0.0.1:19000/api/bootstrap. If the
|
|
86
|
+
* token file exists and the endpoint returns 200, host-cp is running.
|
|
87
|
+
* Mode is 'bare' if no docker container found, 'container' otherwise.
|
|
88
|
+
* 2. Docker fallback: if HTTP probe fails, look for the docker container.
|
|
89
|
+
* If found+running, probe its port.
|
|
90
|
+
*
|
|
91
|
+
* Returns null if both fail, along with probe diagnostics in the
|
|
92
|
+
* returned ProbeFailure for fail-loud error messages.
|
|
93
|
+
*
|
|
94
|
+
* @returns {Promise<{ url: string; mode: 'bare' | 'container' } | null>}
|
|
95
|
+
* Result on success, null on failure.
|
|
96
|
+
*/
|
|
97
|
+
export declare function probeHostCp(): Promise<{
|
|
98
|
+
url: string;
|
|
99
|
+
mode: 'bare' | 'container';
|
|
100
|
+
} | null>;
|
|
101
|
+
/**
|
|
102
|
+
* Gather probe failure diagnostics for fail-loud error messages.
|
|
103
|
+
* Returns structured info about what was tried and why it failed.
|
|
104
|
+
*/
|
|
105
|
+
export declare function gatherProbeFailureDiagnostics(): Promise<{
|
|
106
|
+
bootstrapStatus: string;
|
|
107
|
+
containerStatus: string;
|
|
108
|
+
}>;
|
|
109
|
+
export interface ComposeResult {
|
|
110
|
+
readonly ok: boolean;
|
|
111
|
+
readonly stdout: string;
|
|
112
|
+
readonly stderr: string;
|
|
113
|
+
}
|
|
114
|
+
export declare function runCompose(args: readonly string[], composeFile: string, extraEnv?: Record<string, string>): ComposeResult;
|
|
115
|
+
/**
|
|
116
|
+
* Build the extra env vars to pass to `docker compose up`. Pure helper
|
|
117
|
+
* extracted so the env-merge contract is unit-testable without spawning
|
|
118
|
+
* docker. Returns an object with only the keys we set; absent values
|
|
119
|
+
* are omitted so process.env defaults can win when the secret file is
|
|
120
|
+
* missing (and the boot warning surfaces the gap).
|
|
121
|
+
*
|
|
122
|
+
* Exported for tests.
|
|
123
|
+
*/
|
|
124
|
+
export declare function buildComposeEnv(authSecret: string | null, ghToken?: string | null): Record<string, string>;
|
|
125
|
+
/**
|
|
126
|
+
* Capture the operator's GitHub token by running `gh auth token` on the
|
|
127
|
+
* host. Returns the token string on success, null when gh is not installed
|
|
128
|
+
* or the operator is not authenticated.
|
|
129
|
+
*
|
|
130
|
+
* Never throws — callers that need a token should check for null and warn,
|
|
131
|
+
* but must not block host-cp from starting.
|
|
132
|
+
*
|
|
133
|
+
* Exported for tests.
|
|
134
|
+
*/
|
|
135
|
+
export declare function captureGhToken(): string | null;
|
|
136
|
+
export declare function registerHostCp(program: Command): void;
|
|
137
|
+
/**
|
|
138
|
+
* Phase D6 (olam-dogfood-vision): open a Host CP URL in the operator's
|
|
139
|
+
* default browser.
|
|
140
|
+
*
|
|
141
|
+
* D-phase audit follow-up (HIGH-1): the helper now lives in
|
|
142
|
+
* `@olam/core/src/util/open-url.ts` so both this CLI and the MCP
|
|
143
|
+
* server can import it statically. Earlier shape duplicated the
|
|
144
|
+
* helper here and required @olam/mcp-server to dynamic-import the
|
|
145
|
+
* compiled CLI dist — fragile under stale-build conditions. Static
|
|
146
|
+
* import via @olam/core (already a declared dep on both packages)
|
|
147
|
+
* removes the cross-package dynamic-import + as-never-cast pattern.
|
|
148
|
+
*
|
|
149
|
+
* Re-exported here so existing callers don't need to update their
|
|
150
|
+
* imports.
|
|
151
|
+
*/
|
|
152
|
+
export { openUrl as openHostCpUrl } from '@olam/core/src/util/open-url.js';
|
|
153
|
+
/**
|
|
154
|
+
* Phase C8 (olam-dogfood-vision): generic host-cp proxy caller for
|
|
155
|
+
* `/api/world/<id>/*` routes. Used by `olam lanes` subcommands to
|
|
156
|
+
* reach the per-world CP through host-cp's auth-injecting proxy
|
|
157
|
+
* (host-cp injects X-Olam-Secret server-side; the operator only
|
|
158
|
+
* sees the Bearer token).
|
|
159
|
+
*
|
|
160
|
+
* Returns the parsed JSON body on success, or {ok:false, error} on
|
|
161
|
+
* any failure (token missing, network error, non-2xx response).
|
|
162
|
+
*
|
|
163
|
+
* @param method
|
|
164
|
+
* @param worldId
|
|
165
|
+
* @param path the per-world CP path including leading slash, e.g.
|
|
166
|
+
* '/lanes', '/lanes/foo', '/lanes/foo/dispatch'
|
|
167
|
+
* @param body optional JSON body for POST/DELETE
|
|
168
|
+
*/
|
|
169
|
+
export declare function callHostCpProxy(method: 'GET' | 'POST' | 'DELETE', worldId: string, path: string, body?: unknown): Promise<{
|
|
170
|
+
ok: true;
|
|
171
|
+
status: number;
|
|
172
|
+
data: unknown;
|
|
173
|
+
} | {
|
|
174
|
+
ok: false;
|
|
175
|
+
status: number;
|
|
176
|
+
error: string;
|
|
177
|
+
}>;
|
|
178
|
+
/**
|
|
179
|
+
* POST/DELETE the host-cp admin registry endpoint. Exported so other
|
|
180
|
+
* commands (create, destroy) can auto-register without re-implementing
|
|
181
|
+
* the fetch dance.
|
|
182
|
+
*/
|
|
183
|
+
export declare function callHostCpRegistry(method: 'POST' | 'DELETE', body: {
|
|
184
|
+
id: string;
|
|
185
|
+
port?: number;
|
|
186
|
+
}): Promise<{
|
|
187
|
+
ok: boolean;
|
|
188
|
+
status: number;
|
|
189
|
+
error?: string;
|
|
190
|
+
}>;
|
|
191
|
+
//# sourceMappingURL=host-cp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"host-cp.d.ts","sourceRoot":"","sources":["../../src/commands/host-cp.ts"],"names":[],"mappings":"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"}
|