krexel 0.1.3 → 0.1.5

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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Saad Khaliq
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -8,10 +8,10 @@ Ship websites from your terminal. The `krexel` command talks to the Krexel MCP s
8
8
  # Try it without installing
9
9
  npx krexel --help
10
10
 
11
- # Or install globally
12
- npm i -g krexel krexel-mcp
11
+ # Or install globally (includes the MCP server)
12
+ npm i -g krexel
13
13
 
14
- # Log in (opens browser, OAuths into Cloudflare)
14
+ # Log in with a key from https://krexel.com/keys
15
15
  krexel login
16
16
 
17
17
  # Ship a folder
@@ -27,15 +27,15 @@ You need a Krexel account first — sign up at <https://krexel.com>. New account
27
27
 
28
28
  ## Subcommands
29
29
 
30
- | Command | What it does |
31
- |---|---|
32
- | `krexel login [--provider=cloudflare]` | OAuth into Cloudflare (Phase 2: Vercel + Netlify throw a clear "Phase 2" error) |
33
- | `krexel ship <folder> <domain> [--framework=auto\|nextjs\|astro\|vite\|static]` | Ship a built folder to a domain |
34
- | `krexel logs <deploy_id>` | Print build logs for a deploy |
35
- | `krexel rollback <domain> <deploy_id>` | Pin a previous deploy as current/last-good |
36
- | `krexel whoami` | Print account + deploy count + state dir |
37
- | `krexel version` | Print version |
38
- | `krexel --json ...` | Global flag for machine-readable JSON |
30
+ | Command | What it does |
31
+ | ------------------------------------------------------------------------------- | ------------------------------------------ |
32
+ | `krexel login [--api-key=krx_…]` | Validate and securely save an API key |
33
+ | `krexel ship <folder> <domain> [--framework=auto\|nextjs\|astro\|vite\|static]` | Ship a built folder to a domain |
34
+ | `krexel logs <deploy_id>` | Print build logs for a deploy |
35
+ | `krexel rollback <domain> <deploy_id>` | Pin a previous deploy as current/last-good |
36
+ | `krexel whoami` | Print account + deploy count + state dir |
37
+ | `krexel version` | Print version |
38
+ | `krexel --json ...` | Global flag for machine-readable JSON |
39
39
 
40
40
  ## How it works under the hood
41
41
 
@@ -47,10 +47,11 @@ You need a Krexel account first — sign up at <https://krexel.com>. New account
47
47
 
48
48
  For v1, account state lives at `$KREXEL_HOME` (defaults to `~/.krexel/`):
49
49
 
50
- - `state.json` — encrypted env vars + customer config
50
+ - `auth.json` — API credential, mode 600
51
+ - `state.json` — local deploy and customer state
51
52
  - `uploads/<deploy_id>/` — staged deploy folders (zipped + manifest)
52
53
 
53
- The master key lives in `$KREXEL_MASTER_KEY` (32+ chars hex). It never touches disk.
54
+ The optional master key lives in `$KREXEL_MASTER_KEY` (32+ chars hex) and encrypts domain environment variables.
54
55
 
55
56
  ## Errors
56
57
 
package/dist/cli.d.ts CHANGED
@@ -3,7 +3,7 @@
3
3
  * cli.ts — Krexel CLI entry point.
4
4
  *
5
5
  * Subcommands:
6
- * login [--provider=cloudflare|vercel|netlify]
6
+ * login [--api-key=<key>]
7
7
  * ship <folder> <domain> [--framework=auto|nextjs|astro|vite|static]
8
8
  * logs <deploy_id>
9
9
  * rollback <domain> <deploy_id>
package/dist/cli.js CHANGED
@@ -3,7 +3,7 @@
3
3
  * cli.ts — Krexel CLI entry point.
4
4
  *
5
5
  * Subcommands:
6
- * login [--provider=cloudflare|vercel|netlify]
6
+ * login [--api-key=<key>]
7
7
  * ship <folder> <domain> [--framework=auto|nextjs|astro|vite|static]
8
8
  * logs <deploy_id>
9
9
  * rollback <domain> <deploy_id>
@@ -93,13 +93,10 @@ program
93
93
  });
94
94
  program
95
95
  .command("login")
96
- .description("Log in to Krexel via OAuth (Cloudflare is the only wired provider in v1)")
97
- .addOption(new Option("--provider <name>", "OAuth provider to log in with")
98
- .choices(["cloudflare", "vercel", "netlify"])
99
- .default("cloudflare"))
100
- .option("--api-key <key>", "Reuse an existing API key (skips re-minting)")
96
+ .description("Validate and securely save a Krexel API key")
97
+ .option("--api-key <key>", "API key from https://krexel.com/keys")
101
98
  .action(safe(async (opts) => {
102
- await runLogin({ provider: opts.provider, apiKey: opts.apiKey });
99
+ await runLogin({ apiKey: opts.apiKey });
103
100
  }));
104
101
  program
105
102
  .command("ship <folder> <domain>")
@@ -132,7 +129,10 @@ program
132
129
  .option("--dry-run", "show what would change without writing any files", false)
133
130
  .option("--skip-login", "skip the OAuth step (for CI / scripted installs)", false)
134
131
  .action(safe(async (opts) => {
135
- await runInit({ dryRun: Boolean(opts.dryRun), skipLogin: Boolean(opts.skipLogin) });
132
+ await runInit({
133
+ dryRun: Boolean(opts.dryRun),
134
+ skipLogin: Boolean(opts.skipLogin),
135
+ });
136
136
  }));
137
137
  // ---------------------------------------------------------------------------
138
138
  // Pre-parse — turn on JSON mode if --json was passed before commander can see it
@@ -145,7 +145,9 @@ if (rawArgs.includes("--json")) {
145
145
  // `version`/`help` overrides so we own their output rather than letting
146
146
  // commander route the user off to the package.json version (which is fine but
147
147
  // we'd rather be explicit and consistent).
148
- if (rawArgs[0] === "version" || rawArgs.includes("--version") || rawArgs.includes("-V")) {
148
+ if (rawArgs[0] === "version" ||
149
+ rawArgs.includes("--version") ||
150
+ rawArgs.includes("-V")) {
149
151
  // eslint-disable-next-line no-console
150
152
  console.log(VERSION);
151
153
  process.exit(0);
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -66,6 +66,44 @@ export declare function mergeIntoConfig(existing: Record<string, unknown> | unde
66
66
  };
67
67
  /** Build the krexel MCP entry that all clients share. */
68
68
  export declare function buildEntry(input: PatchInput): McpServerEntry;
69
+ /**
70
+ * Build the krexel entry for the **Codex** config. Codex has its own
71
+ * config schema (TOML, HTTP transport, bearer token indirection) that
72
+ * differs from every other client — see `docs/mcp-client-setup.md` §4.
73
+ *
74
+ * Codex's `[mcp_servers.<name>]` table accepts either:
75
+ * (a) HTTP transport — `url`, `bearer_token_env_var`, `enabled`, optional `http_headers`
76
+ * (b) stdio transport — `command`, `args`, `env`, `enabled`
77
+ *
78
+ * We write the HTTP shape because (1) Krexel's hosted MCP is at
79
+ * `https://api.krexel.com/api/v1/mcp` and the user already has a real
80
+ * `krx_…` API key, and (2) the stdio path forces a local `krexel-mcp`
81
+ * install + an extra hop. The token is referenced via env-var
82
+ * indirection so the secret never lands in the TOML.
83
+ *
84
+ * Historical note (2026-07-20): earlier versions of this patcher wrote
85
+ * a stdio entry (`command`/`args`/`env`) and destroyed working HTTP
86
+ * entries on re-run. See RELEASE-C-NOTE-2026-07-20 in init.ts.
87
+ */
88
+ export interface CodexMcpEntry {
89
+ url: string;
90
+ bearer_token_env_var: string;
91
+ enabled: true;
92
+ /** Optional human note — surfaced in `krexel init` so the user knows to set the env. */
93
+ startup_timeout_sec?: number;
94
+ }
95
+ export declare function buildCodexEntry(opts: {
96
+ apiUrl: string;
97
+ /** Env var the user's `krx_…` API key is exported under. */
98
+ bearerEnvVar: string;
99
+ }): CodexMcpEntry;
100
+ /**
101
+ * Detect whether a TOML value under `[mcp_servers.krexel]` is the
102
+ * **HTTP shape** Codex wants, vs the legacy stdio shape we'd write for
103
+ * a JSON client. HTTP entries have a `url` field; stdio entries have
104
+ * `command` + `args`.
105
+ */
106
+ export declare function isCodexHttpEntry(entry: unknown): boolean;
69
107
  /** Mask a secret for safe log output: "abcd…wxyz". */
70
108
  export declare function maskSecret(secret: string): string;
71
109
  /**
@@ -73,13 +111,40 @@ export declare function maskSecret(secret: string): string;
73
111
  * `mergeIntoConfig`, validates by re-parsing the written bytes.
74
112
  */
75
113
  export declare function patchJsonConfig(input: PatchInput, client: ClientId): Promise<PatchResult>;
114
+ /** Inputs for the Codex-specific patcher. */
115
+ export interface CodexPatchInput {
116
+ filePath: string;
117
+ apiUrl: string;
118
+ bearerEnvVar: string;
119
+ dryRun: boolean;
120
+ fsAdapter?: FsAdapter;
121
+ }
122
+ /**
123
+ * Patch the Codex `~/.codex/config.toml` with an **HTTP transport**
124
+ * entry for Krexel. Behavior:
125
+ *
126
+ * - No existing `krexel` entry → write a fresh HTTP entry.
127
+ * - Existing entry is HTTP-shaped (`url` set) → normalize in place:
128
+ * update the URL, set `bearer_token_env_var`, force `enabled = true`.
129
+ * Idempotent if those already match.
130
+ * - Existing entry is stdio-shaped (`command`/`args`/`env`, no `url`)
131
+ * → upgrade to HTTP. This is the **migration path** for any user
132
+ * who ran an older `krexel init` that wrote the wrong shape.
133
+ * - Existing entry is something we don't recognize → leave it alone
134
+ * but return `changed: false` and a `note` explaining what we saw.
135
+ *
136
+ * Returns a `PatchResult`. The `note` is human-readable and the
137
+ * orchestrator renders it directly in the init checklist.
138
+ */
139
+ export declare function patchCodexConfig(input: CodexPatchInput): Promise<PatchResult>;
76
140
  /**
77
141
  * Codex's `~/.codex/config.toml` uses a nested `[mcp_servers.krexel]`
78
- * table. We preserve unknown keys, add `krexel` only if missing, and
79
- * stringify back with smol-toml.
142
+ * table. **Deprecated in 2026-07-20** this function wrote a stdio
143
+ * entry, which is not what Codex wants for our hosted MCP. Retained as
144
+ * a thin wrapper around `patchCodexConfig` for any test or caller that
145
+ * still imports it; callers should prefer `patchCodexConfig` directly.
80
146
  *
81
- * Note: Codex historically used snake_case (`mcp_servers`); we support
82
- * both spellings because the schema has drifted across releases.
147
+ * @deprecated Use `patchCodexConfig` instead.
83
148
  */
84
149
  export declare function patchTomlConfig(input: PatchInput): Promise<PatchResult>;
85
150
  /** Result of persisting the master key. */
@@ -74,6 +74,25 @@ export function buildEntry(input) {
74
74
  env,
75
75
  };
76
76
  }
77
+ export function buildCodexEntry(opts) {
78
+ return {
79
+ url: `${opts.apiUrl.replace(/\/+$/, "")}/api/v1/mcp`,
80
+ bearer_token_env_var: opts.bearerEnvVar,
81
+ enabled: true,
82
+ };
83
+ }
84
+ /**
85
+ * Detect whether a TOML value under `[mcp_servers.krexel]` is the
86
+ * **HTTP shape** Codex wants, vs the legacy stdio shape we'd write for
87
+ * a JSON client. HTTP entries have a `url` field; stdio entries have
88
+ * `command` + `args`.
89
+ */
90
+ export function isCodexHttpEntry(entry) {
91
+ if (!entry || typeof entry !== "object")
92
+ return false;
93
+ const obj = entry;
94
+ return typeof obj["url"] === "string";
95
+ }
77
96
  /** Mask a secret for safe log output: "abcd…wxyz". */
78
97
  export function maskSecret(secret) {
79
98
  if (secret.length <= 8)
@@ -126,18 +145,24 @@ export async function patchJsonConfig(input, client) {
126
145
  JSON.parse(reread); // throws on invalid
127
146
  return { changed: true, path: input.filePath, next, note: "patched" };
128
147
  }
129
- // ---------------------------------------------------------------------------
130
- // TOML patcher (codex)
131
- // ---------------------------------------------------------------------------
132
148
  /**
133
- * Codex's `~/.codex/config.toml` uses a nested `[mcp_servers.krexel]`
134
- * table. We preserve unknown keys, add `krexel` only if missing, and
135
- * stringify back with smol-toml.
149
+ * Patch the Codex `~/.codex/config.toml` with an **HTTP transport**
150
+ * entry for Krexel. Behavior:
151
+ *
152
+ * - No existing `krexel` entry → write a fresh HTTP entry.
153
+ * - Existing entry is HTTP-shaped (`url` set) → normalize in place:
154
+ * update the URL, set `bearer_token_env_var`, force `enabled = true`.
155
+ * Idempotent if those already match.
156
+ * - Existing entry is stdio-shaped (`command`/`args`/`env`, no `url`)
157
+ * → upgrade to HTTP. This is the **migration path** for any user
158
+ * who ran an older `krexel init` that wrote the wrong shape.
159
+ * - Existing entry is something we don't recognize → leave it alone
160
+ * but return `changed: false` and a `note` explaining what we saw.
136
161
  *
137
- * Note: Codex historically used snake_case (`mcp_servers`); we support
138
- * both spellings because the schema has drifted across releases.
162
+ * Returns a `PatchResult`. The `note` is human-readable and the
163
+ * orchestrator renders it directly in the init checklist.
139
164
  */
140
- export async function patchTomlConfig(input) {
165
+ export async function patchCodexConfig(input) {
141
166
  const fsAdapter = input.fsAdapter ?? realFs;
142
167
  const exists = await fsAdapter.exists(input.filePath);
143
168
  let existing = {};
@@ -158,36 +183,123 @@ export async function patchTomlConfig(input) {
158
183
  // Locate the server-collection key — support both spellings.
159
184
  const serverKey = existing["mcpServers"] !== undefined
160
185
  ? "mcpServers"
161
- : existing["mcp_servers"] !== undefined
162
- ? "mcp_servers"
163
- : "mcp_servers"; // default for new files
186
+ : "mcp_servers";
164
187
  const current = existing[serverKey] ?? {};
165
188
  const root = { ...existing };
166
- if (current["krexel"] !== undefined) {
189
+ const desired = buildCodexEntry({
190
+ apiUrl: input.apiUrl,
191
+ bearerEnvVar: input.bearerEnvVar,
192
+ });
193
+ // Decision tree
194
+ const existingEntry = current["krexel"];
195
+ if (existingEntry !== undefined) {
196
+ if (isCodexHttpEntry(existingEntry)) {
197
+ // HTTP entry — normalize in place. We do this even when values
198
+ // already match so users upgrading from an older API URL get
199
+ // a correct entry on next run.
200
+ const before = JSON.stringify(existingEntry);
201
+ const normalized = {
202
+ ...existingEntry,
203
+ url: desired.url,
204
+ bearer_token_env_var: desired.bearer_token_env_var,
205
+ enabled: true,
206
+ };
207
+ const after = JSON.stringify(normalized);
208
+ const changed = before !== after;
209
+ root[serverKey] = { ...current, krexel: normalized };
210
+ const next = { ...root };
211
+ if (!changed) {
212
+ return {
213
+ changed: false,
214
+ path: input.filePath,
215
+ next,
216
+ note: "krexel entry already configured (HTTP)",
217
+ };
218
+ }
219
+ if (input.dryRun) {
220
+ return {
221
+ changed: true,
222
+ path: input.filePath,
223
+ next,
224
+ note: "dry-run: would update HTTP entry to current API URL",
225
+ };
226
+ }
227
+ const serialized = stringifyToml(next);
228
+ await atomicWrite(fsAdapter, input.filePath, serialized);
229
+ const reread = await fsAdapter.readFile(input.filePath);
230
+ parseToml(reread);
231
+ return {
232
+ changed: true,
233
+ path: input.filePath,
234
+ next,
235
+ note: "updated HTTP entry to current API URL",
236
+ };
237
+ }
238
+ // Stdio entry (or something we don't recognize). Upgrade in place.
239
+ root[serverKey] = { ...current, krexel: desired };
240
+ const next = { ...root };
241
+ if (input.dryRun) {
242
+ return {
243
+ changed: true,
244
+ path: input.filePath,
245
+ next,
246
+ note: "dry-run: would upgrade stdio entry to HTTP transport",
247
+ };
248
+ }
249
+ const serialized = stringifyToml(next);
250
+ await atomicWrite(fsAdapter, input.filePath, serialized);
251
+ const reread = await fsAdapter.readFile(input.filePath);
252
+ parseToml(reread);
167
253
  return {
168
- changed: false,
254
+ changed: true,
169
255
  path: input.filePath,
170
- next: root,
171
- note: "krexel entry already present",
256
+ next,
257
+ note: "upgraded stdio entry to HTTP transport",
172
258
  };
173
259
  }
174
- const entry = buildEntry(input);
175
- // smol-toml stringifies nested tables cleanly; we pass the entry as-is.
176
- root[serverKey] = { ...current, krexel: entry };
260
+ // No existing krexel entry add one.
261
+ root[serverKey] = { ...current, krexel: desired };
262
+ const next = { ...root };
177
263
  if (input.dryRun) {
178
264
  return {
179
265
  changed: true,
180
266
  path: input.filePath,
181
- next: root,
182
- note: "dry-run (not written)",
267
+ next,
268
+ note: "dry-run: would add [mcp_servers.krexel] HTTP entry",
183
269
  };
184
270
  }
185
- const serialized = stringifyToml(root);
271
+ const serialized = stringifyToml(next);
186
272
  await atomicWrite(fsAdapter, input.filePath, serialized);
187
- // Validate round-trip.
188
273
  const reread = await fsAdapter.readFile(input.filePath);
189
274
  parseToml(reread);
190
- return { changed: true, path: input.filePath, next: root, note: "patched" };
275
+ return {
276
+ changed: true,
277
+ path: input.filePath,
278
+ next,
279
+ note: "added [mcp_servers.krexel] HTTP entry",
280
+ };
281
+ }
282
+ /**
283
+ * Codex's `~/.codex/config.toml` uses a nested `[mcp_servers.krexel]`
284
+ * table. **Deprecated in 2026-07-20** — this function wrote a stdio
285
+ * entry, which is not what Codex wants for our hosted MCP. Retained as
286
+ * a thin wrapper around `patchCodexConfig` for any test or caller that
287
+ * still imports it; callers should prefer `patchCodexConfig` directly.
288
+ *
289
+ * @deprecated Use `patchCodexConfig` instead.
290
+ */
291
+ export async function patchTomlConfig(input) {
292
+ // 2026-07-20 Release C: redirect the old stdio path to the new HTTP
293
+ // path. We pick `KREXEL_TOKEN` as the bearer env var by default;
294
+ // init.ts overrides this when the user has a different value.
295
+ return patchCodexConfig({
296
+ filePath: input.filePath,
297
+ apiUrl: input.env["KREXEL_API_URL"] ??
298
+ "https://api.krexel.com",
299
+ bearerEnvVar: "KREXEL_TOKEN",
300
+ dryRun: input.dryRun,
301
+ fsAdapter: input.fsAdapter,
302
+ });
191
303
  }
192
304
  const MASTER_KEY_LINE = (v) => `export KREXEL_MASTER_KEY=${v}`;
193
305
  const MASTER_KEY_RE = /^export\s+KREXEL_MASTER_KEY=(.*)$/m;
@@ -1 +1 @@
1
- {"version":3,"file":"config-patchers.js","sourceRoot":"","sources":["../src/config-patchers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config-patchers.js","sourceRoot":"","sources":["../src/config-patchers.ts"],"names":[],"mappings":"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"}
package/dist/init.d.ts CHANGED
@@ -6,7 +6,7 @@
6
6
  * 2. MCP server binary resolution (npm global OR monorepo dev path)
7
7
  * 3. Master-key mint + persist to ~/.zshrc (and ~/.bashrc if present)
8
8
  * 4. Patch every AI client's config (skip silently when absent)
9
- * 5. Run the OAuth login flow via `runLogin()`
9
+ * 5. Validate and save the user's API key via `runLogin()`
10
10
  * 6. Print an animated "you're set up" checklist
11
11
  *
12
12
  * Hard rule: a single bad client config must NOT abort the run. Each
@@ -19,7 +19,7 @@ import { type MasterKeyResult, type PatchResult } from "./config-patchers.js";
19
19
  export interface InitOptions {
20
20
  /** Don't write to disk — print the diffs and exit. */
21
21
  dryRun?: boolean;
22
- /** Skip the OAuth login step (for CI / scripted installs). */
22
+ /** Skip the API-key login step (for CI / scripted installs). */
23
23
  skipLogin?: boolean;
24
24
  /** Reuse a known master key instead of minting a fresh one. */
25
25
  masterKey?: string;
package/dist/init.js CHANGED
@@ -6,7 +6,7 @@
6
6
  * 2. MCP server binary resolution (npm global OR monorepo dev path)
7
7
  * 3. Master-key mint + persist to ~/.zshrc (and ~/.bashrc if present)
8
8
  * 4. Patch every AI client's config (skip silently when absent)
9
- * 5. Run the OAuth login flow via `runLogin()`
9
+ * 5. Validate and save the user's API key via `runLogin()`
10
10
  * 6. Print an animated "you're set up" checklist
11
11
  *
12
12
  * Hard rule: a single bad client config must NOT abort the run. Each
@@ -20,7 +20,9 @@ import * as path from "node:path";
20
20
  import { runLogin } from "./login.js";
21
21
  import { dim, error, isJsonMode, success, warn } from "./output.js";
22
22
  import { resolveAll, effectiveHome, effectivePlatform, } from "./paths.js";
23
- import { patchJsonConfig, patchTomlConfig, persistMasterKeyToRc, maskSecret, } from "./config-patchers.js";
23
+ import { patchJsonConfig, patchCodexConfig, persistMasterKeyToRc, maskSecret, } from "./config-patchers.js";
24
+ /** Env var the user's `krx_…` API key is exported under for Codex. */
25
+ const CODEX_BEARER_ENV_VAR = "KREXEL_TOKEN";
24
26
  /**
25
27
  * Detect the Node version on PATH and assert >= 20. Throws with a
26
28
  * clean message if too old.
@@ -54,7 +56,7 @@ export async function resolveMcpBinary(opts = {}) {
54
56
  };
55
57
  }
56
58
  // Dev path: monorepo checkout. Check BOTH the (possibly-overridden) home
57
- // and the real os.homedir() — sandboxed smoke tests override KREXEL_HOME
59
+ // and the real os.homedir() — sandboxed smoke tests override the config home
58
60
  // but still want to find the actual built binary.
59
61
  const effHome = effectiveHome();
60
62
  const realHome = os.homedir();
@@ -140,18 +142,33 @@ export async function patchAllClients(binary, env, opts = {}) {
140
142
  continue;
141
143
  const present = existsSync(spec.configPath);
142
144
  if (!present) {
143
- // Skip silently spec.label gets rendered with "(absent)" note.
145
+ // 2026-07-19 Release A: stop silently skipping Codex just
146
+ // because the user hasn't touched ~/.codex/ yet. The Codex
147
+ // path is part of the integration surface; "absent config"
148
+ // is no reason to leave it unwritten. We mark it absent in
149
+ // the report for transparency but proceed to patch, so the
150
+ // patcher creates the directory + file as needed.
144
151
  rows.push({ spec: { ...spec, present: false }, ok: true });
145
152
  continue;
146
153
  }
147
154
  rows.push({ spec: { ...spec, present: true }, ok: true });
148
155
  }
149
156
  // Now actually patch. We loop again so "skipped because absent" rows
150
- // sit alongside "patched" rows in stable order.
157
+ // sit alongside "patched" rows in stable order. As of 2026-07-19 the
158
+ // Codex TOML patcher is the only path that's allowed to create its
159
+ // own config file if it's missing; the JSON clients require the
160
+ // host to have opened the tool at least once so we don't create
161
+ // directories the user may not want.
151
162
  for (let i = 0; i < rows.length; i++) {
152
163
  const row = rows[i];
153
- if (!row || !row.spec.present || !row.spec.configPath)
164
+ if (!row || !row.spec.configPath)
154
165
  continue;
166
+ const allowCreate = row.spec.id === "codex" && !row.spec.present
167
+ ? true
168
+ : row.spec.present;
169
+ if (!allowCreate)
170
+ continue;
171
+ const present = row.spec.present;
155
172
  const input = {
156
173
  filePath: row.spec.configPath,
157
174
  binaryCommand: binary.command,
@@ -161,9 +178,27 @@ export async function patchAllClients(binary, env, opts = {}) {
161
178
  };
162
179
  try {
163
180
  const result = row.spec.id === "codex"
164
- ? await patchTomlConfig(input)
181
+ ? await patchCodexConfig({
182
+ filePath: row.spec.configPath,
183
+ apiUrl: env["KREXEL_API_URL"] ?? "https://api.krexel.com",
184
+ bearerEnvVar: CODEX_BEARER_ENV_VAR,
185
+ dryRun: Boolean(opts.dryRun),
186
+ })
165
187
  : await patchJsonConfig(input, row.spec.id);
166
- rows[i] = { ...row, ok: true, result };
188
+ // 2026-07-19 Release A: a successful `patchCodexConfig` call
189
+ // may have just CREATED the file (it didn't exist before).
190
+ // Update the row's `present` flag so the report shows that
191
+ // the file is now in place.
192
+ if (row.spec.id === "codex" && !row.spec.present) {
193
+ const cur = rows[i];
194
+ if (cur) {
195
+ rows[i] = { ...cur, spec: { ...cur.spec, present: true } };
196
+ }
197
+ }
198
+ const cur = rows[i];
199
+ if (cur) {
200
+ rows[i] = { ...cur, ok: true, result };
201
+ }
167
202
  }
168
203
  catch (err) {
169
204
  rows[i] = {
@@ -197,7 +232,10 @@ export function renderChecklist(args) {
197
232
  if (!row.spec.present)
198
233
  continue; // skip silently
199
234
  if (!row.ok) {
200
- items.push({ kind: "warn", text: `${row.spec.label}: ${row.error ?? "unknown error"}` });
235
+ items.push({
236
+ kind: "warn",
237
+ text: `${row.spec.label}: ${row.error ?? "unknown error"}`,
238
+ });
201
239
  continue;
202
240
  }
203
241
  if (!row.result) {
@@ -205,14 +243,37 @@ export function renderChecklist(args) {
205
243
  continue;
206
244
  }
207
245
  if (!row.result.changed) {
208
- items.push({ kind: "ok", text: `${row.spec.label}: already configured` });
246
+ items.push({
247
+ kind: "ok",
248
+ text: `${row.spec.label}: already configured`,
249
+ });
209
250
  }
210
251
  else {
211
- items.push({ kind: "ok", text: `Patched: ${row.spec.label}` });
252
+ // Use the patcher's `note` so the user can tell whether a fresh
253
+ // entry was added, an HTTP entry was normalized, or a legacy stdio
254
+ // entry was upgraded. (2026-07-20 Release C: prior versions
255
+ // collapsed all three to "Patched: Codex" which was opaque.)
256
+ items.push({
257
+ kind: "ok",
258
+ text: `${row.spec.label}: ${row.result.note}`,
259
+ });
212
260
  }
213
261
  }
262
+ // 2026-07-20 Release C: warn if the Codex entry was just written but
263
+ // the user has no API key in the env Codex will read. We can't tell
264
+ // the difference between "user is going to set it later" and
265
+ // "user forgot" — best we can do is nudge with a copy-pasteable
266
+ // recipe.
267
+ if (args.rows.some((r) => r.spec.id === "codex" &&
268
+ r.result?.changed === true &&
269
+ !process.env[CODEX_BEARER_ENV_VAR])) {
270
+ items.push({
271
+ kind: "warn",
272
+ text: `Codex is wired but ${CODEX_BEARER_ENV_VAR} is unset in this shell. Add to ~/.zshrc: \`export ${CODEX_BEARER_ENV_VAR}="krx_…"\` (get a key at https://krexel.com/keys), then restart Codex.`,
273
+ });
274
+ }
214
275
  if (args.oauthDone) {
215
- items.push({ kind: "ok", text: "Cloudflare OAuth complete" });
276
+ items.push({ kind: "ok", text: "Krexel API key validated and saved" });
216
277
  }
217
278
  return items;
218
279
  }
@@ -227,7 +288,7 @@ export async function runInit(opts = {}) {
227
288
  const platform = effectivePlatform();
228
289
  const home = effectiveHome();
229
290
  const version = readVersion();
230
- const apiUrl = opts.apiUrl ?? process.env.KREXEL_API_URL ?? "http://localhost:8787";
291
+ const apiUrl = opts.apiUrl ?? process.env.KREXEL_API_URL ?? "https://api.krexel.com";
231
292
  if (!isJsonMode()) {
232
293
  dim(`OS: ${platform}`);
233
294
  dim(`Home: ${home}`);
@@ -246,29 +307,29 @@ export async function runInit(opts = {}) {
246
307
  }
247
308
  // 3. Patch every client config.
248
309
  const rows = await patchAllClients(binary, env, opts);
249
- // 4. Run OAuth unless caller said skip / dry-run.
310
+ // 4. Validate and save an API key unless caller said skip / dry-run.
250
311
  let oauthDone = false;
251
312
  const shouldLogin = !opts.skipLogin && !opts.dryRun;
252
313
  if (shouldLogin) {
253
314
  try {
254
- const runner = opts.loginRunner ?? (() => runLogin({ provider: "cloudflare" }));
315
+ const runner = opts.loginRunner ?? (() => runLogin());
255
316
  await runner();
256
317
  oauthDone = true;
257
318
  }
258
319
  catch (err) {
259
320
  // Non-fatal — we still print a successful-looking checklist so the
260
321
  // user's MCP server is wired; they can run `krexel login` later.
261
- warn(`OAuth did not complete: ${err instanceof Error ? err.message : String(err)}. ` +
322
+ warn(`Login did not complete: ${err instanceof Error ? err.message : String(err)}. ` +
262
323
  `Run \`krexel login\` to retry.`);
263
324
  }
264
325
  }
265
326
  else if (opts.dryRun) {
266
327
  if (!isJsonMode())
267
- dim("Dry run — skipping OAuth.");
328
+ dim("Dry run — skipping login.");
268
329
  }
269
330
  else {
270
331
  if (!isJsonMode())
271
- dim("Skipping OAuth (--skip-login).");
332
+ dim("Skipping login (--skip-login).");
272
333
  }
273
334
  // 5. Final checklist.
274
335
  const items = renderChecklist({
@@ -287,8 +348,11 @@ export async function runInit(opts = {}) {
287
348
  // 6. Handoff — what to do next.
288
349
  if (!isJsonMode()) {
289
350
  dim("");
290
- dim("Restart Claude Desktop, then ask:");
291
- dim(" \"ship my site to example.com\"");
351
+ dim("Next steps:");
352
+ dim(' 1. Restart your AI client (Claude Code, Cursor, Codex, etc.)');
353
+ dim(` 2. If you use Codex: ensure ${CODEX_BEARER_ENV_VAR} is exported in your shell.`);
354
+ dim(" Add to ~/.zshrc: export KREXEL_TOKEN=\"krx_<your-key>\"");
355
+ dim(' 3. Try: "list my krexel sites" (Codex) or "ship my site" (Claude Code)');
292
356
  dim("");
293
357
  dim(`Dashboard: https://app.krexel.com`);
294
358
  dim(`Advanced: npx krexel help`);
package/dist/init.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"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"}
package/dist/login.d.ts CHANGED
@@ -1,29 +1,13 @@
1
1
  /**
2
- * login.ts — `krexel login [--provider=cloudflare|vercel|netlify]`
3
- *
4
- * Phase 1 only wires Cloudflare. Vercel and Netlify throw a clean Phase 2
5
- * error rather than silently no-oping.
6
- *
7
- * The flow:
8
- * 1. Mint a one-shot API key locally with nanoid.
9
- * 2. Open the browser to `${KREXEL_API_URL}/api/v1/auth/cloudflare/start?token=<key>`.
10
- * 3. Poll the orchestrator's callback endpoint until it reports success,
11
- * showing an ora spinner. The orchestrator exchanges its own cookie
12
- * with us via the same key.
2
+ * `krexel login` validates an existing Krexel API key and stores it for the
3
+ * CLI and MCP server. The previous OAuth-shaped implementation called routes
4
+ * that do not exist and never persisted a credential.
13
5
  */
14
- /**
15
- * Run `krexel login`. Throws (via `error`) on unrecoverable problems;
16
- * happy-path returns when the browser has been opened and the orchestrator
17
- * has confirmed the callback.
18
- *
19
- * @param options.provider one of `cloudflare` (only real in Phase 1) | `vercel` | `netlify`
20
- * @param options.apiKey optional — reused session token from previous login.
21
- * If omitted, generate a fresh one-shot API key.
22
- */
23
- export declare function runLogin(opts: {
24
- provider?: string;
6
+ export declare const DEFAULT_API_URL = "https://api.krexel.com";
7
+ export declare function authFilePath(): string;
8
+ export declare function runLogin(opts?: {
25
9
  apiKey?: string;
26
- pollIntervalMs?: number;
27
- timeoutMs?: number;
10
+ apiUrl?: string;
11
+ fetcher?: typeof fetch;
28
12
  opener?: (url: string) => Promise<void>;
29
13
  }): Promise<void>;
package/dist/login.js CHANGED
@@ -1,106 +1,121 @@
1
1
  /**
2
- * login.ts — `krexel login [--provider=cloudflare|vercel|netlify]`
3
- *
4
- * Phase 1 only wires Cloudflare. Vercel and Netlify throw a clean Phase 2
5
- * error rather than silently no-oping.
6
- *
7
- * The flow:
8
- * 1. Mint a one-shot API key locally with nanoid.
9
- * 2. Open the browser to `${KREXEL_API_URL}/api/v1/auth/cloudflare/start?token=<key>`.
10
- * 3. Poll the orchestrator's callback endpoint until it reports success,
11
- * showing an ora spinner. The orchestrator exchanges its own cookie
12
- * with us via the same key.
2
+ * `krexel login` validates an existing Krexel API key and stores it for the
3
+ * CLI and MCP server. The previous OAuth-shaped implementation called routes
4
+ * that do not exist and never persisted a credential.
13
5
  */
6
+ import { promises as fs } from "node:fs";
7
+ import * as os from "node:os";
8
+ import * as path from "node:path";
9
+ import { createInterface } from "node:readline/promises";
14
10
  import open from "open";
15
- import { nanoid } from "nanoid";
16
- import { request } from "undici";
17
- import { z } from "zod";
18
- import { withSpinner, error, dim, success, isJsonMode } from "./output.js";
19
- const PROVIDERS = ["cloudflare", "vercel", "netlify"];
20
- // Phase-1 environment variable matching the worker's @krexel/api-client convention.
21
- const DEFAULT_API_URL = "http://localhost:8787";
22
- function apiUrl() {
23
- return process.env.KREXEL_API_URL ?? DEFAULT_API_URL;
11
+ import { dim, isJsonMode, success } from "./output.js";
12
+ export const DEFAULT_API_URL = "https://api.krexel.com";
13
+ export function authFilePath() {
14
+ const configuredHome = process.env.KREXEL_HOME?.trim();
15
+ const home = configuredHome
16
+ ? path.resolve(configuredHome)
17
+ : path.join(os.homedir(), ".krexel");
18
+ return path.join(home, "auth.json");
24
19
  }
25
- /**
26
- * Run `krexel login`. Throws (via `error`) on unrecoverable problems;
27
- * happy-path returns when the browser has been opened and the orchestrator
28
- * has confirmed the callback.
29
- *
30
- * @param options.provider one of `cloudflare` (only real in Phase 1) | `vercel` | `netlify`
31
- * @param options.apiKey optional — reused session token from previous login.
32
- * If omitted, generate a fresh one-shot API key.
33
- */
34
- export async function runLogin(opts) {
35
- const provider = (opts.provider ?? "cloudflare");
36
- if (!PROVIDERS.includes(provider)) {
37
- error(`Unknown provider "${provider}". Expected one of: ${PROVIDERS.join(", ")}`);
20
+ async function promptForApiKey(opener) {
21
+ const keysUrl = "https://krexel.com/keys";
22
+ try {
23
+ if (opener)
24
+ await opener(keysUrl);
25
+ else
26
+ await open(keysUrl, { wait: false });
38
27
  }
39
- if (provider !== "cloudflare") {
40
- error(`Provider "${provider}" support lands in Phase 2. ` +
41
- `Today only --provider=cloudflare is wired (Cloudflare for SaaS pipeline).`);
28
+ catch {
29
+ dim(`Open ${keysUrl} to create or copy an API key.`);
42
30
  }
43
- const apiKey = opts.apiKey ?? `krx_live_${nanoid(32)}`;
44
- const baseUrl = apiUrl();
45
- const startUrl = `${baseUrl}/api/v1/auth/cloudflare/start?token=${encodeURIComponent(apiKey)}`;
46
- const statusUrl = `${baseUrl}/api/v1/auth/status?token=${encodeURIComponent(apiKey)}`;
47
- if (!isJsonMode()) {
48
- dim(`API: ${baseUrl}`);
49
- dim(`Provider: ${provider}`);
31
+ if (!process.stdin.isTTY) {
32
+ throw new Error("An API key is required. Run `krexel login --api-key krx_…` or set KREXEL_API_KEY.");
50
33
  }
51
- // Open the browser (or fallback opener for tests / headless boxes).
34
+ const prompt = createInterface({
35
+ input: process.stdin,
36
+ output: process.stdout,
37
+ });
52
38
  try {
53
- if (opts.opener) {
54
- await opts.opener(startUrl);
55
- }
56
- else {
57
- await open(startUrl, { wait: false });
58
- }
39
+ return (await prompt.question("Paste your Krexel API key: ")).trim();
59
40
  }
60
- catch (err) {
61
- // Don't abort — the user can open the URL by hand.
62
- dim(`Could not auto-open browser: ${err instanceof Error ? err.message : String(err)}. ` +
63
- `Open this URL manually:\n ${startUrl}`);
41
+ finally {
42
+ prompt.close();
64
43
  }
65
- const pollIntervalMs = opts.pollIntervalMs ?? 2_000;
66
- const timeoutMs = opts.timeoutMs ?? 5 * 60_000; // 5 minutes
67
- await withSpinner(`Waiting for ${provider} callback…`, async () => {
68
- await pollUntilConnected(statusUrl, pollIntervalMs, timeoutMs);
44
+ }
45
+ async function saveAuth(auth) {
46
+ const target = authFilePath();
47
+ const directory = path.dirname(target);
48
+ const temporary = `${target}.${process.pid}.tmp`;
49
+ await fs.mkdir(directory, { recursive: true, mode: 0o700 });
50
+ await fs.writeFile(temporary, `${JSON.stringify(auth, null, 2)}\n`, {
51
+ encoding: "utf8",
52
+ mode: 0o600,
69
53
  });
70
- success(`Logged in to ${provider}.`);
71
- if (!isJsonMode()) {
72
- dim(`Save this token if you want to skip the browser step next time:`);
73
- dim(` ${apiKey}`);
74
- }
54
+ await fs.rename(temporary, target);
55
+ await fs.chmod(target, 0o600);
56
+ return target;
75
57
  }
76
- const StatusSchema = z.object({
77
- connected: z.boolean(),
78
- account_email: z.string().optional(),
79
- note: z.string().optional(),
80
- });
81
- async function pollUntilConnected(statusUrl, intervalMs, timeoutMs) {
82
- const deadline = Date.now() + timeoutMs;
83
- for (;;) {
84
- if (Date.now() > deadline) {
85
- error("Login timed out after 5 minutes. Re-run `krexel login` to retry.");
86
- }
87
- try {
88
- const res = await request(statusUrl, { method: "GET" });
89
- if (res.statusCode === 200) {
90
- const body = (await res.body.json());
91
- const parsed = StatusSchema.safeParse(body);
92
- if (parsed.success && parsed.data.connected) {
93
- if (parsed.data.account_email && !isJsonMode()) {
94
- dim(`Account: ${parsed.data.account_email}`);
95
- }
96
- return;
97
- }
98
- }
99
- }
100
- catch {
101
- // transient network blip — keep polling
102
- }
103
- await new Promise((r) => setTimeout(r, intervalMs));
58
+ export async function runLogin(opts = {}) {
59
+ const apiUrl = (opts.apiUrl ?? process.env.KREXEL_API_URL ?? DEFAULT_API_URL)
60
+ .trim()
61
+ .replace(/\/+$/, "");
62
+ const apiKey = (opts.apiKey ??
63
+ process.env.KREXEL_API_KEY ??
64
+ (await promptForApiKey(opts.opener))).trim();
65
+ if (!/^krx_[A-Za-z0-9_-]{20,}$/.test(apiKey)) {
66
+ throw new Error("That does not look like a valid Krexel API key (expected `krx_…`).");
67
+ }
68
+ const doFetch = opts.fetcher ?? globalThis.fetch;
69
+ let response;
70
+ try {
71
+ response = await doFetch(`${apiUrl}/api/v1/me`, {
72
+ headers: { Authorization: `Bearer ${apiKey}` },
73
+ signal: AbortSignal.timeout(15_000),
74
+ });
75
+ }
76
+ catch (error) {
77
+ throw new Error(`Could not reach ${apiUrl}: ${error instanceof Error ? error.message : String(error)}`);
78
+ }
79
+ let body = null;
80
+ try {
81
+ body = await response.json();
82
+ }
83
+ catch {
84
+ // The status below is still enough to produce a useful error.
85
+ }
86
+ if (!response.ok) {
87
+ const message = body && typeof body === "object" && "message" in body
88
+ ? String(body.message)
89
+ : `HTTP ${response.status}`;
90
+ throw new Error(`Krexel rejected that API key: ${message}`);
91
+ }
92
+ if (!body ||
93
+ typeof body !== "object" ||
94
+ typeof body.email !== "string") {
95
+ throw new Error("Krexel returned an invalid account response; the key was not saved.");
96
+ }
97
+ const account = body;
98
+ const stored = {
99
+ api_key: apiKey,
100
+ api_url: apiUrl,
101
+ email: account.email,
102
+ ...(account.plan ? { plan: account.plan } : {}),
103
+ saved_at: new Date().toISOString(),
104
+ };
105
+ const target = await saveAuth(stored);
106
+ if (isJsonMode()) {
107
+ // eslint-disable-next-line no-console
108
+ console.log(JSON.stringify({
109
+ ok: true,
110
+ email: account.email,
111
+ plan: account.plan,
112
+ auth_file: target,
113
+ }));
114
+ return;
104
115
  }
116
+ success(`Logged in as ${account.email}.`);
117
+ if (account.plan)
118
+ dim(`Plan: ${account.plan}`);
119
+ dim(`Credential saved securely to ${target}.`);
105
120
  }
106
121
  //# sourceMappingURL=login.js.map
package/dist/login.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"login.js","sourceRoot":"","sources":["../src/login.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../src/login.ts"],"names":[],"mappings":"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"}
package/dist/logs.d.ts CHANGED
@@ -1,9 +1,16 @@
1
1
  /**
2
2
  * logs.ts — `krexel logs <deploy_id>`
3
3
  *
4
- * Asks the MCP server for the (currently mocked, Phase 2 will stream real)
5
- * build logs and prints them monospace. In `--json` mode we emit the raw MCP
6
- * payload for piping to `jq`.
4
+ * Asks the MCP server for build logs and prints them monospace.
5
+ *
6
+ * 2026-07-19 Release A: the underlying MCP `get_logs` tool no
7
+ * longer returns mocked log lines. It returns an "available: false"
8
+ * payload with a note explaining that real logs live at the worker
9
+ * (and that the dashboard Site Deploys tab surfaces them once the
10
+ * Release B work lands). The CLI command just passes that payload
11
+ * through — the empty `logs` string is intentional, not a bug.
12
+ *
13
+ * In `--json` mode we emit the raw MCP payload for piping to `jq`.
7
14
  */
8
15
  export declare function runLogs(opts: {
9
16
  deployId: string;
package/dist/logs.js CHANGED
@@ -1,9 +1,16 @@
1
1
  /**
2
2
  * logs.ts — `krexel logs <deploy_id>`
3
3
  *
4
- * Asks the MCP server for the (currently mocked, Phase 2 will stream real)
5
- * build logs and prints them monospace. In `--json` mode we emit the raw MCP
6
- * payload for piping to `jq`.
4
+ * Asks the MCP server for build logs and prints them monospace.
5
+ *
6
+ * 2026-07-19 Release A: the underlying MCP `get_logs` tool no
7
+ * longer returns mocked log lines. It returns an "available: false"
8
+ * payload with a note explaining that real logs live at the worker
9
+ * (and that the dashboard Site Deploys tab surfaces them once the
10
+ * Release B work lands). The CLI command just passes that payload
11
+ * through — the empty `logs` string is intentional, not a bug.
12
+ *
13
+ * In `--json` mode we emit the raw MCP payload for piping to `jq`.
7
14
  */
8
15
  import { withSpinner, error, monospace, isJsonMode } from "./output.js";
9
16
  import { getClient } from "./mcp-client.js";
@@ -21,6 +28,10 @@ export async function runLogs(opts) {
21
28
  console.log(JSON.stringify(result, null, 2));
22
29
  return;
23
30
  }
31
+ if (!result.available) {
32
+ process.stdout.write(`(no logs available from the local stdio MCP — ${result.note ?? "see dashboard"})\n`);
33
+ return;
34
+ }
24
35
  monospace(result.logs);
25
36
  }
26
37
  //# sourceMappingURL=logs.js.map
package/dist/logs.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"logs.js","sourceRoot":"","sources":["../src/logs.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAA0B;IACtD,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9C,IAAI,CAAC,QAAQ;QAAE,KAAK,CAAC,4DAA4D,CAAC,CAAC;IACnF,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACjC,KAAK,CAAC,2DAA2D,QAAQ,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAG,MAAM,WAAW,CAC9B,qBAAqB,QAAQ,GAAG,EAChC,GAAG,EAAE,CACH,MAAM,CAAC,QAAQ,CAMZ,UAAU,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,EACzC,EAAE,OAAO,EAAE,IAAI,EAAE,CAClB,CAAC;IAEF,IAAI,UAAU,EAAE,EAAE,CAAC;QACjB,sCAAsC;QACtC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7C,OAAO;IACT,CAAC;IAED,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"logs.js","sourceRoot":"","sources":["../src/logs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAA0B;IACvD,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9C,IAAI,CAAC,QAAQ;QAAE,KAAK,CAAC,4DAA4D,CAAC,CAAC;IACnF,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAClC,KAAK,CAAC,2DAA2D,QAAQ,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAG,MAAM,WAAW,CAC/B,qBAAqB,QAAQ,GAAG,EAChC,GAAG,EAAE,CACJ,MAAM,CAAC,QAAQ,CAOZ,UAAU,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,EACxC,EAAE,OAAO,EAAE,IAAI,EAAE,CACjB,CAAC;IAEF,IAAI,UAAU,EAAE,EAAE,CAAC;QAClB,sCAAsC;QACtC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7C,OAAO;IACR,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CACnB,iDAAiD,MAAM,CAAC,IAAI,IAAI,eAAe,KAAK,CACpF,CAAC;QACF,OAAO;IACR,CAAC;IAED,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC"}
@@ -29,14 +29,14 @@ declare const JsonRpcRequestSchema: z.ZodObject<{
29
29
  method: z.ZodString;
30
30
  params: z.ZodOptional<z.ZodUnknown>;
31
31
  }, "strip", z.ZodTypeAny, {
32
- method: string;
33
32
  jsonrpc: "2.0";
34
33
  id: string | number;
34
+ method: string;
35
35
  params?: unknown;
36
36
  }, {
37
- method: string;
38
37
  jsonrpc: "2.0";
39
38
  id: string | number;
39
+ method: string;
40
40
  params?: unknown;
41
41
  }>;
42
42
  export type JsonRpcRequest = z.infer<typeof JsonRpcRequestSchema>;
@@ -49,12 +49,12 @@ declare const JsonRpcResponseSchema: z.ZodObject<{
49
49
  message: z.ZodString;
50
50
  data: z.ZodOptional<z.ZodUnknown>;
51
51
  }, "strip", z.ZodTypeAny, {
52
- code: number;
53
52
  message: string;
53
+ code: number;
54
54
  data?: unknown;
55
55
  }, {
56
- code: number;
57
56
  message: string;
57
+ code: number;
58
58
  data?: unknown;
59
59
  }>>;
60
60
  }, "strip", z.ZodTypeAny, {
@@ -62,8 +62,8 @@ declare const JsonRpcResponseSchema: z.ZodObject<{
62
62
  id: string | number;
63
63
  result?: unknown;
64
64
  error?: {
65
- code: number;
66
65
  message: string;
66
+ code: number;
67
67
  data?: unknown;
68
68
  } | undefined;
69
69
  }, {
@@ -71,8 +71,8 @@ declare const JsonRpcResponseSchema: z.ZodObject<{
71
71
  id: string | number;
72
72
  result?: unknown;
73
73
  error?: {
74
- code: number;
75
74
  message: string;
75
+ code: number;
76
76
  data?: unknown;
77
77
  } | undefined;
78
78
  }>;
package/dist/paths.d.ts CHANGED
@@ -5,8 +5,8 @@
5
5
  * agree on one source of truth.
6
6
  *
7
7
  * Override hooks:
8
- * - KREXEL_HOME overrides $HOME for the entire init flow. This is how the
9
- * smoke test runs init in a temp dir without touching real configs.
8
+ * - KREXEL_CONFIG_HOME overrides $HOME for init/config discovery. This is
9
+ * primarily a test hook; KREXEL_HOME remains the runtime state directory.
10
10
  * - KREXEL_PLATFORM overrides `process.platform` ("darwin" | "linux" |
11
11
  * "win32") — useful for CI matrices and tests.
12
12
  *
package/dist/paths.js CHANGED
@@ -5,8 +5,8 @@
5
5
  * agree on one source of truth.
6
6
  *
7
7
  * Override hooks:
8
- * - KREXEL_HOME overrides $HOME for the entire init flow. This is how the
9
- * smoke test runs init in a temp dir without touching real configs.
8
+ * - KREXEL_CONFIG_HOME overrides $HOME for init/config discovery. This is
9
+ * primarily a test hook; KREXEL_HOME remains the runtime state directory.
10
10
  * - KREXEL_PLATFORM overrides `process.platform` ("darwin" | "linux" |
11
11
  * "win32") — useful for CI matrices and tests.
12
12
  *
@@ -16,7 +16,7 @@ import * as os from "node:os";
16
16
  import * as path from "node:path";
17
17
  /** Resolve the "effective" home/platform — honours overrides for tests. */
18
18
  export function effectiveHome() {
19
- return process.env.KREXEL_HOME ?? os.homedir();
19
+ return process.env.KREXEL_CONFIG_HOME ?? os.homedir();
20
20
  }
21
21
  export function effectivePlatform() {
22
22
  const raw = process.env.KREXEL_PLATFORM ?? process.platform;
package/dist/paths.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"paths.js","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAyBlC,2EAA2E;AAC3E,MAAM,UAAU,aAAa;IAC3B,OAAO,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,OAAO,CAAC,QAAQ,CAAC;IAC5D,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,OAAO;QAAE,OAAO,GAAG,CAAC;IACvE,2EAA2E;IAC3E,MAAM,IAAI,KAAK,CAAC,yBAAyB,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC1D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,IAAI,GAAG,aAAa,EAAE;IACnD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAI,GAAG,aAAa,EAAE;IAC/C,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AAChD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAC/B,WAAqB,iBAAiB,EAAE,EACxC,IAAI,GAAG,aAAa,EAAE;IAEtB,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,QAAQ;YACX,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,qBAAqB,EAAE,QAAQ,EAAE,4BAA4B,CAAC,CAAC;QACnG,KAAK,OAAO;YACV,iEAAiE;YACjE,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC;YAC5C,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,4BAA4B,CAAC,CAAC;QACpE,KAAK,OAAO;YACV,mDAAmD;YACnD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YACtE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,4BAA4B,CAAC,CAAC;IAClE,CAAC;AACH,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAI,GAAG,aAAa,EAAE;IACjD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;AACrD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,IAAI,GAAG,aAAa,EAAE;IAC9C,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;AAClD,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAC3B,WAAqB,iBAAiB,EAAE,EACxC,IAAI,GAAG,aAAa,EAAE,EACtB,OAAmC,EAAE;IAErC,mEAAmE;IACnE,MAAM,YAAY,GAChB,IAAI,CAAC,YAAY,IAAI,QAAQ,KAAK,OAAO,CAAC;IAE5C,uEAAuE;IACvE,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;IACpC,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACtC,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACxC,sEAAsE;IACtE,mEAAmE;IACnE,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACxC,IAAI,QAAQ,KAAK,OAAO;QAAE,OAAO,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACnF,uEAAuE;IACvE,kCAAkC;IAClC,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,WAAqB,iBAAiB,EAAE;IACjE,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;IAC7B,OAAO;QACL,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE;QAC7E,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE;QAC/D;YACE,EAAE,EAAE,gBAAgB;YACpB,KAAK,EAAE,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,mBAAmB,QAAQ,GAAG;YACtF,UAAU,EAAE,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC;SAC9C;QACD,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE;QACrE,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE;KAC7D,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,8 @@
1
1
  {
2
2
  "name": "krexel",
3
- "version": "0.1.3",
3
+ "version": "0.1.5",
4
4
  "description": "Krexel CLI — login, ship, and manage deploys from the terminal. Spawns the Krexel MCP server over stdio.",
5
+ "license": "MIT",
5
6
  "repository": {
6
7
  "type": "git",
7
8
  "url": "git+https://github.com/Syfer-web/Krexel.git"
@@ -15,7 +16,8 @@
15
16
  "files": [
16
17
  "bin",
17
18
  "dist",
18
- "README.md"
19
+ "README.md",
20
+ "LICENSE"
19
21
  ],
20
22
  "scripts": {
21
23
  "dev": "tsx src/cli.ts",
@@ -26,6 +28,7 @@
26
28
  "dependencies": {
27
29
  "chalk": "^5.3.0",
28
30
  "commander": "^12.1.0",
31
+ "krexel-mcp": "^0.3.3",
29
32
  "nanoid": "^5.0.9",
30
33
  "open": "^10.1.0",
31
34
  "ora": "^7.0.1",