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 +21 -0
- package/README.md +15 -14
- package/dist/cli.d.ts +1 -1
- package/dist/cli.js +11 -9
- package/dist/cli.js.map +1 -1
- package/dist/config-patchers.d.ts +69 -4
- package/dist/config-patchers.js +136 -24
- package/dist/config-patchers.js.map +1 -1
- package/dist/init.d.ts +2 -2
- package/dist/init.js +84 -20
- package/dist/init.js.map +1 -1
- package/dist/login.d.ts +8 -24
- package/dist/login.js +106 -91
- package/dist/login.js.map +1 -1
- package/dist/logs.d.ts +10 -3
- package/dist/logs.js +14 -3
- package/dist/logs.js.map +1 -1
- package/dist/mcp-client.d.ts +6 -6
- package/dist/paths.d.ts +2 -2
- package/dist/paths.js +3 -3
- package/dist/paths.js.map +1 -1
- package/package.json +5 -2
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
|
|
11
|
+
# Or install globally (includes the MCP server)
|
|
12
|
+
npm i -g krexel
|
|
13
13
|
|
|
14
|
-
# Log in
|
|
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
|
|
31
|
-
|
|
32
|
-
| `krexel login [--
|
|
33
|
-
| `krexel ship <folder> <domain> [--framework=auto\|nextjs\|astro\|vite\|static]` | Ship a built folder to a domain
|
|
34
|
-
| `krexel logs <deploy_id>`
|
|
35
|
-
| `krexel rollback <domain> <deploy_id>`
|
|
36
|
-
| `krexel whoami`
|
|
37
|
-
| `krexel version`
|
|
38
|
-
| `krexel --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
|
-
- `
|
|
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)
|
|
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
package/dist/cli.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* cli.ts — Krexel CLI entry point.
|
|
4
4
|
*
|
|
5
5
|
* Subcommands:
|
|
6
|
-
* login [--
|
|
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("
|
|
97
|
-
.
|
|
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({
|
|
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({
|
|
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" ||
|
|
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":";AACA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,8EAA8E;AAC9E,6EAA6E;AAC7E,8EAA8E;AAE9E,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,wFAAwF;AACxF,qGAAqG;AACrG,SAAS,WAAW;IAClB,sEAAsE;IACtE,kEAAkE;IAClE,MAAM,UAAU,GAAG;QACjB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,iBAAiB,CAAC;QACrC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,oBAAoB,CAAC;KACzC,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAyB,CAAC;YACzE,IAAI,IAAI,CAAC,OAAO;gBAAE,OAAO,IAAI,CAAC,OAAO,CAAC;QACxC,CAAC;QAAC,MAAM,CAAC;YACP,oBAAoB;QACtB,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AACD,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC;AAa9B,SAAS,IAAI,CAAC,EAAc;IAC1B,OAAO,KAAK,EAAE,GAAG,IAAe,EAAE,EAAE;QAClC,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QACpB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7D,UAAU,CAAC,GAAG,CAAC,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,QAAQ,CAAC;KACd,WAAW,CACV,wFAAwF,CACzF;KACA,OAAO,CAAC,OAAO,CAAC;IACjB,wCAAwC;KACvC,WAAW,CAAC,gBAAgB,EAAE,0BAA0B,CAAC;IAC1D,wEAAwE;IACxE,qEAAqE;IACrE,gEAAgE;IAChE,2CAA2C;KAC1C,MAAM,
|
|
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.
|
|
79
|
-
*
|
|
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
|
-
*
|
|
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. */
|
package/dist/config-patchers.js
CHANGED
|
@@ -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
|
|
134
|
-
*
|
|
135
|
-
*
|
|
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
|
-
*
|
|
138
|
-
*
|
|
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
|
|
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
|
-
:
|
|
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
|
-
|
|
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:
|
|
254
|
+
changed: true,
|
|
169
255
|
path: input.filePath,
|
|
170
|
-
next
|
|
171
|
-
note: "
|
|
256
|
+
next,
|
|
257
|
+
note: "upgraded stdio entry to HTTP transport",
|
|
172
258
|
};
|
|
173
259
|
}
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
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
|
|
182
|
-
note: "dry-run
|
|
267
|
+
next,
|
|
268
|
+
note: "dry-run: would add [mcp_servers.krexel] HTTP entry",
|
|
183
269
|
};
|
|
184
270
|
}
|
|
185
|
-
const serialized = stringifyToml(
|
|
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 {
|
|
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":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,WAAW,CAAC;AAI3E,gEAAgE;AAChE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,gBAAgB,EAAE,mBAAmB,CAAU,CAAC;AA2ClF,MAAM,MAAM,GAAc;IACxB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACvC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IAC/C,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC;IACnC,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAClB,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACnB,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;CACF,CAAC;AAEF,wDAAwD;AACxD,KAAK,UAAU,WAAW,CACxB,SAAoB,EACpB,QAAgB,EAChB,QAAgB;IAEhB,MAAM,GAAG,GAAG,GAAG,QAAQ,MAAM,CAAC;IAC9B,MAAM,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACzC,MAAM,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;AACxC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAC7B,QAA6C,EAC7C,MAAgB,EAChB,KAAqB;IAErB,2EAA2E;IAC3E,MAAM,GAAG,GAAG,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,0CAA0C,CAAC,CAAC,CAAC,YAAY,CAAC;IAC9F,MAAM,IAAI,GAA4B,EAAE,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,CAAC;IAE9D,MAAM,OAAO,GAAI,IAAI,CAAC,GAAG,CAAyC,IAAI,EAAE,CAAC;IACzE,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,SAAS,EAAE,CAAC;QACpC,wCAAwC;QACxC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACxC,CAAC;IACD,MAAM,WAAW,GAA4B,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC3E,IAAI,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC;IACxB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACvC,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,UAAU,CAAC,KAAiB;IAC1C,uEAAuE;IACvE,wBAAwB;IACxB,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,CAAC,IAAI,iBAAiB,EAAE,CAAC;QAClC,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACvB,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACxC,CAAC;IACD,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,aAAa;QAC5B,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC;QAC3B,GAAG;KACJ,CAAC;AACJ,CAAC;AA6BD,MAAM,UAAU,eAAe,CAAC,IAI/B;IACC,OAAO;QACL,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,aAAa;QACpD,oBAAoB,EAAE,IAAI,CAAC,YAAY;QACvC,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,GAAG,GAAG,KAAgC,CAAC;IAC7C,OAAO,OAAO,GAAG,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC;AACxC,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,UAAU,CAAC,MAAc;IACvC,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC;IACtC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACrD,CAAC;AAED,8EAA8E;AAC9E,gEAAgE;AAChE,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,KAAiB,EACjB,MAAgB;IAEhB,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,MAAM,CAAC;IAC5C,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACtD,IAAI,QAAQ,GAA4B,EAAE,CAAC;IAC3C,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QAC3B,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACnC,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;oBACnE,QAAQ,GAAG,MAAiC,CAAC;gBAC/C,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CACb,gBAAgB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,aAC3C,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CACjD,EAAE,CACH,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAChC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAEnE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,KAAK,CAAC,QAAQ;YACpB,IAAI;YACJ,IAAI,EAAE,8BAA8B;SACrC,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC;IACtF,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;IACxD,MAAM,WAAW,CAAC,SAAS,EAAE,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAEzD,uBAAuB;IACvB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACxD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,oBAAoB;IAExC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AACxE,CAAC;AAeD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,KAAsB;IAEtB,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,MAAM,CAAC;IAC5C,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACtD,IAAI,QAAQ,GAA4B,EAAE,CAAC;IAC3C,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACrD,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;gBAC9B,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;oBACnE,QAAQ,GAAG,MAAiC,CAAC;gBAC/C,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CACb,gBAAgB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,aAC3C,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CACjD,EAAE,CACH,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,6DAA6D;IAC7D,MAAM,SAAS,GACb,QAAQ,CAAC,YAAY,CAAC,KAAK,SAAS;QAClC,CAAC,CAAC,YAAY;QACd,CAAC,CAAC,aAAa,CAAC;IAEpB,MAAM,OAAO,GAAI,QAAQ,CAAC,SAAS,CAAyC,IAAI,EAAE,CAAC;IACnF,MAAM,IAAI,GAA4B,EAAE,GAAG,QAAQ,EAAE,CAAC;IACtD,MAAM,OAAO,GAAG,eAAe,CAAC;QAC9B,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,YAAY,EAAE,KAAK,CAAC,YAAY;KACjC,CAAC,CAAC;IAEH,gBAAgB;IAChB,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAExC,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAChC,IAAI,gBAAgB,CAAC,aAAa,CAAC,EAAE,CAAC;YACpC,+DAA+D;YAC/D,6DAA6D;YAC7D,+BAA+B;YAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;YAC7C,MAAM,UAAU,GAA4B;gBAC1C,GAAI,aAAyC;gBAC7C,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,oBAAoB,EAAE,OAAO,CAAC,oBAAoB;gBAClD,OAAO,EAAE,IAAI;aACd,CAAC;YACF,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YACzC,MAAM,OAAO,GAAG,MAAM,KAAK,KAAK,CAAC;YACjC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;YACrD,MAAM,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;YACzB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,IAAI,EAAE,KAAK,CAAC,QAAQ;oBACpB,IAAI;oBACJ,IAAI,EAAE,wCAAwC;iBAC/C,CAAC;YACJ,CAAC;YACD,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBACjB,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,IAAI,EAAE,KAAK,CAAC,QAAQ;oBACpB,IAAI;oBACJ,IAAI,EAAE,qDAAqD;iBAC5D,CAAC;YACJ,CAAC;YACD,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;YACvC,MAAM,WAAW,CAAC,SAAS,EAAE,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YACzD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACxD,SAAS,CAAC,MAAM,CAAC,CAAC;YAClB,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,KAAK,CAAC,QAAQ;gBACpB,IAAI;gBACJ,IAAI,EAAE,uCAAuC;aAC9C,CAAC;QACJ,CAAC;QAED,mEAAmE;QACnE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;QAClD,MAAM,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;QACzB,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,KAAK,CAAC,QAAQ;gBACpB,IAAI;gBACJ,IAAI,EAAE,sDAAsD;aAC7D,CAAC;QACJ,CAAC;QACD,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,WAAW,CAAC,SAAS,EAAE,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACzD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACxD,SAAS,CAAC,MAAM,CAAC,CAAC;QAClB,OAAO;YACL,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,KAAK,CAAC,QAAQ;YACpB,IAAI;YACJ,IAAI,EAAE,wCAAwC;SAC/C,CAAC;IACJ,CAAC;IAED,sCAAsC;IACtC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IAClD,MAAM,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;IACzB,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,OAAO;YACL,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,KAAK,CAAC,QAAQ;YACpB,IAAI;YACJ,IAAI,EAAE,oDAAoD;SAC3D,CAAC;IACJ,CAAC;IACD,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,WAAW,CAAC,SAAS,EAAE,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACxD,SAAS,CAAC,MAAM,CAAC,CAAC;IAClB,OAAO;QACL,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,KAAK,CAAC,QAAQ;QACpB,IAAI;QACJ,IAAI,EAAE,uCAAuC;KAC9C,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,KAAiB;IACrD,oEAAoE;IACpE,iEAAiE;IACjE,8DAA8D;IAC9D,OAAO,gBAAgB,CAAC;QACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,MAAM,EACH,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAwB;YACnD,wBAAwB;QAC1B,YAAY,EAAE,cAAc;QAC5B,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,SAAS,EAAE,KAAK,CAAC,SAAS;KAC3B,CAAC,CAAC;AACL,CAAC;AAgBD,MAAM,eAAe,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,4BAA4B,CAAC,EAAE,CAAC;AAEvE,MAAM,aAAa,GAAG,oCAAoC,CAAC;AAE3D;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAAc,EACd,QAAgB,EAChB,YAAuB,MAAM;IAE7B,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC;IACtD,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAErC,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9C,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,KAAK,EAAE,CAAC;YACV,kEAAkE;YAClE,iBAAiB;YACjB,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YAC/C,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,yEAAyE;IACzE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,KAAK,CAAC;QACjC,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;YACtB,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,IAAI,CAAC;IACX,MAAM,IAAI,GAAG,GAAG,OAAO,GAAG,MAAM,iCAAiC,IAAI,IAAI,CAAC;IAC1E,MAAM,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAC3C,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC5C,CAAC"}
|
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.
|
|
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
|
|
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.
|
|
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,
|
|
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
|
|
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
|
-
//
|
|
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.
|
|
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
|
|
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
|
-
|
|
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({
|
|
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({
|
|
246
|
+
items.push({
|
|
247
|
+
kind: "ok",
|
|
248
|
+
text: `${row.spec.label}: already configured`,
|
|
249
|
+
});
|
|
209
250
|
}
|
|
210
251
|
else {
|
|
211
|
-
|
|
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: "
|
|
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 ?? "
|
|
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.
|
|
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(
|
|
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(`
|
|
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
|
|
328
|
+
dim("Dry run — skipping login.");
|
|
268
329
|
}
|
|
269
330
|
else {
|
|
270
331
|
if (!isJsonMode())
|
|
271
|
-
dim("Skipping
|
|
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("
|
|
291
|
-
dim(
|
|
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
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
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
|
-
|
|
16
|
-
|
|
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
|
-
|
|
27
|
-
|
|
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
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
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 {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
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
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
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
|
-
|
|
40
|
-
|
|
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
|
-
|
|
44
|
-
|
|
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
|
-
|
|
34
|
+
const prompt = createInterface({
|
|
35
|
+
input: process.stdin,
|
|
36
|
+
output: process.stdout,
|
|
37
|
+
});
|
|
52
38
|
try {
|
|
53
|
-
|
|
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
|
-
|
|
61
|
-
|
|
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
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
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
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
dim(` ${apiKey}`);
|
|
74
|
-
}
|
|
54
|
+
await fs.rename(temporary, target);
|
|
55
|
+
await fs.chmod(target, 0o600);
|
|
56
|
+
return target;
|
|
75
57
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
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":"AAAA
|
|
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
|
|
5
|
-
*
|
|
6
|
-
*
|
|
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
|
|
5
|
-
*
|
|
6
|
-
*
|
|
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
|
|
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"}
|
package/dist/mcp-client.d.ts
CHANGED
|
@@ -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
|
-
* -
|
|
9
|
-
*
|
|
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
|
-
* -
|
|
9
|
-
*
|
|
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.
|
|
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":"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,
|
|
1
|
+
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "krexel",
|
|
3
|
-
"version": "0.1.
|
|
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",
|