llm-relay 0.15.0 → 0.15.2

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/README.md CHANGED
@@ -105,6 +105,9 @@ llm-relay
105
105
  | `llm-relay setup claude-cli` | Display & verify Claude CLI wrapper configuration |
106
106
  | `llm-relay keys` (or `check-keys`) | Validate provider API **credentials** (escalates past a public `/models` to an authenticated probe) |
107
107
  | `llm-relay pools [--probe]` | List pool members; `--probe` sends a real completion to each — the only check that catches a listed-but-dead **model** |
108
+ | `llm-relay pools set|add|remove <name> <spec...>` | Create or edit pool membership; add `--free` (or `--include free`) for a dynamic free-model pool; `pools delete <name>` removes one |
109
+ | `llm-relay routing ...` | Show or edit `routing.default`, Claude tiers, subagent destinations, benchmark sorting, and other routing fields |
110
+ | `llm-relay config show|get|set|unset <path>` | Read or edit any JSON config path; values can be JSON, for example `config set routing.ladder '[...]'` |
108
111
  | `llm-relay telemetry` | Output live JSON telemetry, stability scores, and quota metrics |
109
112
  | `llm-relay models [-p <name>] [-r]` | Query live `/models` catalog per provider (`-p` filter, `-r` force refresh) |
110
113
  | `llm-relay ping [-p <name>]` | Perform live health, latency & quota probe across providers |
@@ -114,6 +117,41 @@ llm-relay
114
117
 
115
118
  ---
116
119
 
120
+ ### Configure pools and routing from the CLI
121
+
122
+ The configuration commands edit the selected JSON file (`--config` or the normal global config)
123
+ and validate the complete result before writing it. Restart a running proxy after a routing edit.
124
+
125
+ ```bash
126
+ # Static pool: members are tried/ranked according to the normal pool rules.
127
+ llm-relay pools set coding nim/z-ai/glm-5.2 openrouter/openai/gpt-5.2-codex
128
+ llm-relay pools add coding gemini/gemini-2.5-flash
129
+ llm-relay pools remove coding gemini/gemini-2.5-flash
130
+ llm-relay pools delete coding
131
+
132
+ # Dynamic pool: keep preferred members, then append discovered free models.
133
+ llm-relay pools set coding nim/z-ai/glm-5.2 --free
134
+
135
+ # Main fallback, Claude tier maps, subagent destinations, and ranking.
136
+ llm-relay routing default nim/z-ai/glm-5.2 openrouter/openai/gpt-5.2-codex
137
+ llm-relay routing tier sonnet pool/coding
138
+ llm-relay routing subagent default pool/fast
139
+ llm-relay routing sort off
140
+ llm-relay routing tier opus --clear
141
+
142
+ # Inspect or change any less-common routing field using a JSON value.
143
+ llm-relay routing show
144
+ llm-relay config get routing.pools
145
+ llm-relay config set routing.ladder '[{"id":"fast","kind":"relay","spec":"pool/fast"}]'
146
+ llm-relay config unset routing.ladder
147
+ ```
148
+
149
+ `routing set <path> <value>` and `routing unset <path>` are shorter forms for paths below
150
+ `routing`. `llm-relay pools --probe` remains the liveness check to run after changing membership;
151
+ editing a pool does not imply that every model is usable.
152
+
153
+ ---
154
+
117
155
  ## Install & run
118
156
 
119
157
  ### Option 1: Instant run (no installation required)
package/dist/cli.d.ts CHANGED
@@ -98,6 +98,10 @@ export declare function runDispatch(arg: string | undefined): Promise<void>;
98
98
  export declare function runOffload(arg: string | undefined, nextArg?: string): Promise<void>;
99
99
  /** `llm-relay candidates` — every dimension of every offload target, side by side, unranked. */
100
100
  export declare function runCandidates(): Promise<void>;
101
+ /** `llm-relay config show|get|set|unset` — generic, scriptable JSON configuration editing. */
102
+ export declare function runConfigCommand(): void;
103
+ /** `llm-relay routing ...` — convenient typed commands for the fields operators edit most. */
104
+ export declare function runRoutingCommand(): void;
101
105
  /**
102
106
  * `llm-relay pools` — list pool members; `--probe` sends a real completion to each.
103
107
  *
package/dist/cli.js CHANGED
@@ -12,6 +12,7 @@ import { createProxy } from "./server.js";
12
12
  import { ModelCatalog } from "./catalog.js";
13
13
  import { materializeDynamicPools } from "./dynamic-pools.js";
14
14
  import { currentVersion, ensureUpToDate, shouldCheckUpdates } from "./self-update.js";
15
+ import { deleteConfigPath, parseConfigValue, readConfigDocument, readConfigPath, updateConfigDocument, writeConfigPath, } from "./config-edit.js";
15
16
  export function argValue(...flags) {
16
17
  const allFlags = new Set();
17
18
  for (const flag of flags) {
@@ -68,6 +69,7 @@ const VALUE_FLAGS = new Set([
68
69
  '--tier', '-tier',
69
70
  '--client', '-client',
70
71
  '--scope', '-scope',
72
+ '--include', '-include',
71
73
  '--shell', '-shell',
72
74
  ]);
73
75
  /** Extract non-flag positional arguments from an argv array, skipping flags and their values. */
@@ -98,120 +100,187 @@ export function getPositionalArgs(argv = process.argv) {
98
100
  }
99
101
  return positionals;
100
102
  }
101
- const HELP = `llm-relay loopback Anthropic-Messages proxy that validates/repairs tool calls.
103
+ /** Render the help tables from their content instead of hand-counted spaces. */
104
+ function formatHelpRows(rows) {
105
+ const labelWidth = Math.max(...rows.map((row) => row.label.length));
106
+ return rows
107
+ .map(({ label, description }) => {
108
+ const lines = typeof description === "string" ? [description] : description;
109
+ return lines
110
+ .map((line, index) => {
111
+ const labelColumn = index === 0 ? label.padEnd(labelWidth) : " ".repeat(labelWidth);
112
+ return ` ${labelColumn} ${line}`;
113
+ })
114
+ .join("\n");
115
+ })
116
+ .join("\n");
117
+ }
118
+ /** Keep a long provider/model name from pushing the rest of a terminal row sideways. */
119
+ function fitCell(value, width) {
120
+ if (value.length <= width)
121
+ return value.padEnd(width);
122
+ if (width <= 1)
123
+ return value.slice(0, width);
124
+ return `${value.slice(0, width - 1)}…`;
125
+ }
126
+ function formatTextTable(rows, indent = "") {
127
+ if (rows.length === 0)
128
+ return "";
129
+ const widths = rows[0].map((_, column) => Math.max(...rows.map((row) => row[column]?.length ?? 0)));
130
+ return rows
131
+ .map((row) => `${indent}${row.map((cell, column) => cell.padEnd(widths[column])).join(" ").trimEnd()}`)
132
+ .join("\n");
133
+ }
134
+ const HELP = `llm-relay — loopback Anthropic/OpenAI proxy with tool-call validation and repair.
102
135
 
103
- Multi-provider: config declares a providers{} registry; a request's model picks the
104
- route, in this order:
105
- pool/<name> routing.pools[<name>] — ALL its candidates, benchmark-ranked
106
- with failover. Use to ask for the best available model rather
107
- than naming one. An unknown pool is a 400, never a fallback.
108
- provider/model verbatim, e.g. "nim/z-ai/glm-5.2". Never re-ranked.
109
- a Claude model id substring-matched against routing.tiers (opus|sonnet|haiku|fable).
136
+ Routing:
137
+ A request's model is resolved in this order:
138
+ pool/<name> routing.pools[<name>] — benchmark-ranked candidates with failover.
139
+ Use a pool when you want the best available model, not a fixed one.
140
+ An unknown pool is a 400; it never falls back silently.
141
+ provider/model Verbatim target, for example "nim/z-ai/glm-5.2". Never re-ranked.
142
+ Claude model id Matched against routing.tiers (opus|sonnet|haiku|fable).
110
143
  anything else routing.default.
111
144
 
112
- A provider with kind:"anthropic" and NO authEnv is a passthrough: the caller's own
113
- credentials are forwarded untouched. Point the tiers at one to keep real Claude
114
- traffic on real Anthropic while pool/* requests go to other providers.
115
-
116
- Claude Code requests (the /v1/messages front door) and Codex requests (the /v1/responses
117
- front door) have independent offload rules. Each can be disabled, limited to marked
118
- subagents, or applied to the whole conversation:
145
+ A provider with kind:"anthropic" and no authEnv is a passthrough: the caller's credentials
146
+ are forwarded untouched. Point tiers at it to keep real Claude traffic on Anthropic while
147
+ pool/* requests use other providers.
119
148
 
120
- llm-relay offload status
121
- llm-relay offload claude on --scope subagents
122
- llm-relay offload codex on --scope all
123
- llm-relay offload claude off
149
+ Offload:
150
+ Claude Code (/v1/messages) and Codex (/v1/responses) have independent offload rules.
151
+ Each rule can be disabled, limited to marked subagents, or applied to the full conversation:
124
152
 
125
- The old "llm-relay offload on|off" form remains a global compatibility switch. Changes
126
- take effect on the next request without a restart and are persisted to the config file.
127
- llm-relay candidates every dimension of every target, side by side, unranked
153
+ ${formatHelpRows([
154
+ { label: "llm-relay offload status", description: "Show the current client rules." },
155
+ { label: "llm-relay offload claude on --scope subagents", description: "Offload marked Claude subagents." },
156
+ { label: "llm-relay offload codex on --scope all", description: "Offload the full Codex conversation." },
157
+ { label: "llm-relay offload claude off", description: "Disable Claude offload." },
158
+ { label: "llm-relay candidates", description: "Show the un-blended target decision table." },
159
+ ])}
128
160
 
129
- The toggle reaches a running proxy over loopback, so it takes effect on the next
130
- request without a restart, and is persisted to the config file.
161
+ The legacy "llm-relay offload on|off" form remains a global compatibility switch. Changes
162
+ apply to the next request, do not require a restart, and are persisted to the config file.
131
163
 
132
- Independently of the switch, a dispatcher may offload ONE call by putting
133
- "@relay: <spec>" on its own line in that subagent's prompt; the line is stripped
134
- before forwarding, so the model never sees it.
164
+ For a one-off dispatch, put "@relay: <spec>" on its own line in the subagent prompt. The
165
+ relay strips that directive before forwarding, so the model never sees it.
135
166
 
136
- VERIFYING A SETUP — the two checks answer different questions, and the cheap one
137
- can be confidently wrong:
138
- llm-relay keys are the CREDENTIALS good? Where a provider serves its
139
- /models list publicly, this escalates to an authenticated
140
- probe, because a public 200 says nothing about the key.
141
- llm-relay pools --probe will each configured MODEL actually answer? The only way
142
- to catch a member that is listed and still dead. Run it
143
- after editing routing.pools — nothing else detects this.
167
+ Setup checks:
168
+ These checks answer different questions:
169
+ ${formatHelpRows([
170
+ { label: "llm-relay keys", description: "Are the provider credentials good?" },
171
+ {
172
+ label: "llm-relay pools --probe",
173
+ description: "Will each configured model actually answer?",
174
+ },
175
+ ])}
176
+ keys escalates past a public /models endpoint to an authenticated probe when possible.
177
+ pools --probe sends a real completion to each member and catches listed-but-dead models.
144
178
 
145
- Keys are read from the environment, and from ~/.llm-relay/.env if present. A variable
146
- already set in the environment always wins over the file.
179
+ Keys are read from the environment and from ~/.llm-relay/.env. An environment variable always
180
+ wins over the value in the file.
147
181
 
148
182
  Usage:
149
- llm-relay [options] Start the proxy server (default)
150
- llm-relay onboard Guided setup for 100%-free providers & subscriptions
151
- llm-relay setup [claude-cli|claude-desktop] Configure Claude CLI wrappers or Claude Desktop
152
- llm-relay keys | check-keys Check status of all free & subscription keys
153
- llm-relay telemetry Programmatic JSON metrics and quota report
154
- llm-relay models [-p <name>] [-r] List live models per provider
155
- llm-relay pools [--probe] List pool members; --probe tests each for real
156
- llm-relay ping [-p <name>] Probe model latency, stability & quota across providers
157
- llm-relay offload [client] [on|off|status] Configure client offload; --scope subagents|all
158
- llm-relay dispatch [lane] [-t <task>] [--tier] [--client] Which client-specific lane to use next
159
- llm-relay candidates [-p <name>] Un-blended decision table for offload targets
160
- llm-relay help | --help | -h Show this help documentation
161
- llm-relay version | --version | -v Show version number
183
+ ${formatHelpRows([
184
+ { label: "llm-relay [options]", description: "Start the proxy server (default)." },
185
+ { label: "llm-relay onboard", description: "Run guided provider-key setup." },
186
+ { label: "llm-relay setup [claude-cli|claude-desktop]", description: "Configure Claude CLI wrappers or Claude Desktop." },
187
+ { label: "llm-relay keys | check-keys", description: "Check provider credentials and signup links." },
188
+ { label: "llm-relay telemetry", description: "Print JSON telemetry and quota metrics." },
189
+ { label: "llm-relay models [-p <name>] [-r]", description: "List live models per provider." },
190
+ { label: "llm-relay pools [--probe]", description: "List pool members; optionally test each one." },
191
+ { label: "llm-relay pools set|add|remove <name> <spec...>", description: "Create or edit pools; use --free for dynamic free-model pools." },
192
+ { label: "llm-relay routing ...", description: "Show or edit default, tiers, subagents, and ranking." },
193
+ { label: "llm-relay config show|get|set|unset <path>", description: "Read or edit any JSON config path." },
194
+ { label: "llm-relay ping [-p <name>]", description: "Probe latency, stability, and quota." },
195
+ { label: "llm-relay offload [client] [on|off|status]", description: "Read or change a client's offload rule." },
196
+ { label: "llm-relay dispatch [lane] [options]", description: "Show the next whole-task dispatch lane." },
197
+ { label: "llm-relay candidates [-p <name>]", description: "Show the offload target decision table." },
198
+ { label: "llm-relay help | --help | -h", description: "Show this help." },
199
+ { label: "llm-relay version | --version | -v", description: "Show the package version." },
200
+ ])}
162
201
 
163
202
  Commands:
164
- (default) Start loopback HTTP proxy server
165
- onboard Run 100%-free provider onboarding wizard
166
- setup claude-cli Verify & configure Claude CLI wrapper scripts
167
- setup claude-desktop | setup desktop Auto-patch Claude Desktop config (claude_desktop_config.json)
168
- keys | check-keys Validate provider API keys & display signup links
169
- telemetry Output JSON telemetry & quota report
170
- models Query live /models catalog across providers
171
- ping Probe model latency, stability & quota metrics
172
- offload [client] on|off|status Per-client offload; client is claude, codex, or future name
173
- dispatch [lane] Next lane; --client claude|codex selects offload hints;
174
- --tier reasoning|coding|fast selects ladder
175
- the command, --after <lane> to walk past a spent
176
- rung, -x/--exhausted <lane> to report one spent,
177
- --shell sh|pwsh to quote for another shell,
178
- --json for the raw view
179
- candidates Benchmarks, health, quota & breaker state per target
180
- help Show help documentation
181
- version Print package version
203
+ ${formatHelpRows([
204
+ { label: "(default)", description: "Start the loopback HTTP proxy." },
205
+ { label: "onboard", description: "Run the free-provider and subscription-key wizard." },
206
+ { label: "setup claude-cli", description: "Show and verify Claude CLI wrapper configuration." },
207
+ { label: "setup claude-desktop | desktop", description: "Patch claude_desktop_config.json." },
208
+ { label: "keys | check-keys", description: "Validate provider credentials and show signup links." },
209
+ { label: "telemetry", description: "Print JSON telemetry, quota, and stability data." },
210
+ { label: "models", description: "Query the live /models catalog." },
211
+ { label: "pools", description: "List configured pool members." },
212
+ { label: "ping", description: "Probe model latency, stability, and quota." },
213
+ { label: "offload [client] on|off|status", description: "Configure one client's rule; use --scope for subagents or all." },
214
+ {
215
+ label: "dispatch [lane]",
216
+ description: [
217
+ "Show the selected client's and tier's dispatch ladder.",
218
+ "The relay selects the lane; you run the returned command.",
219
+ ],
220
+ },
221
+ { label: "candidates", description: "Show benchmarks, health, quota, and breaker state." },
222
+ { label: "help", description: "Show this help." },
223
+ { label: "version", description: "Print the package version." },
224
+ ])}
225
+
226
+ Dispatch options:
227
+ ${formatHelpRows([
228
+ { label: "--client <name>", description: "Choose the client whose offload rule supplies hints." },
229
+ { label: "--tier <name>", description: "Select a reasoning, coding, or fast ladder." },
230
+ { label: "-t, --task <task>", description: "Substitute task text into a CLI lane's command." },
231
+ { label: "--after <lane>", description: "Skip past a spent lane and choose the next ready one." },
232
+ { label: "-x, --exhausted <lane>", description: "Report a spent lane to the running proxy." },
233
+ { label: "--shell sh|pwsh", description: "Quote returned CLI commands for sh/bash or PowerShell 7+." },
234
+ { label: "--json", description: "Print the raw dispatch view as JSON." },
235
+ ])}
182
236
 
183
- Options:
184
- -c, --config <path> Config file (default: ~/.llm-relay/config.json)
185
- -p, --provider <name> Filter models/ping command to a specific provider
186
- -r, --refresh Force cache refresh when querying provider models
237
+ General options:
238
+ ${formatHelpRows([
239
+ { label: "-c, --config <path>", description: "Config file (default: ~/.llm-relay/config.json)." },
240
+ { label: "-p, --provider <name>", description: "Filter models, ping, or candidates to one provider." },
241
+ { label: "-r, --refresh", description: "Force a refresh when querying provider models." },
242
+ { label: "--free / --include free", description: "Add discovered free catalog models after a pool's preferred members." },
243
+ { label: "--clear", description: "Remove a routing tier or subagent mapping." },
244
+ { label: "--json", description: "Print machine-readable output where supported." },
245
+ ])}
187
246
 
188
- Version currency:
189
- Every run (except help/version) checks the npm registry — cached 6h, 2.5s timeout, fail-open.
190
- A globally-installed copy updates itself, prunes stale bin shims, and restarts on the new
191
- version; any other copy just prints the upgrade command. Set LLM_RELAY_NO_SELF_UPDATE=1 to
192
- skip the check entirely.
247
+ Proxy startup overrides (take precedence over the config file):
248
+ ${formatHelpRows([
249
+ { label: "-d, --default <provider/model>", description: "Override routing.default." },
250
+ { label: "-m, --mode <detect|repair|strict>", description: "Override the validation mode." },
251
+ { label: "-l, --listen <host:port>", description: "Override the listen address (loopback only)." },
252
+ ])}
193
253
 
194
- Proxy Startup Overrides (win over config file values):
195
- -d, --default <provider/model> Override routing.default fallback spec
196
- -m, --mode <detect|repair|strict> Override mode (detect | repair | strict)
197
- -l, --listen <host:port> Override listen address (loopback only)
254
+ Version checks:
255
+ Every run except help and version checks npm (cached for 6h, with a 2.5s timeout, fail-open).
256
+ A global install updates itself and restarts on the new version. Other copies print the upgrade
257
+ command. Set LLM_RELAY_NO_SELF_UPDATE=1 to skip the check.
198
258
 
199
- Behind a custom ANTHROPIC_BASE_URL, Claude Code drops the 1M-context beta header and
200
- disables Remote Control. Neither is caused by this proxy and neither can be fixed here.
201
- For 1M, launch with a [1m] model suffix: ANTHROPIC_MODEL='claude-opus-5[1m]' claude
259
+ Claude Code notes:
260
+ With a custom ANTHROPIC_BASE_URL, Claude Code drops the 1M-context beta header and disables
261
+ Remote Control. Neither behaviour is caused by this proxy. For 1M context, launch with:
262
+ ANTHROPIC_MODEL='claude-opus-5[1m]' claude
202
263
 
203
- Proxy Server Endpoints:
204
- POST /v1/messages Anthropic Messages proxy with tool repair
205
- POST /v1/messages/count_tokens Local token estimation for OpenAI backends
206
- POST /v1/chat/completions OpenAI-compatible Chat Completions front
207
- POST /v1/responses OpenAI-compatible Responses front (Codex/IDE)
208
- GET /registry Full JSON view of providers, routing & capabilities
209
- GET /candidates [?provider=] Per-target raw benchmarks, health, quota, breaker state
210
- GET|POST /offload [?client=] Read/set {"enabled":bool,"scope":"subagents"|"all"}
211
- GET|POST /dispatch [?client=&tier=&lane=&after=&task=] Next dispatch lane; POST {"exhausted":"<lane>"} to walk on
212
- GET /telemetry Live JSON telemetry, quota & stability scores for Claude
213
- GET /ping Trigger health probe pass & query ping mode summary
214
- GET /health Diagnostic JSON summary of provider availability & health
264
+ Proxy server endpoints:
265
+ ${formatHelpRows([
266
+ { label: "POST /v1/messages", description: "Anthropic Messages proxy with tool repair." },
267
+ { label: "POST /v1/messages/count_tokens", description: "Local token estimation for OpenAI backends." },
268
+ { label: "POST /v1/chat/completions", description: "OpenAI-compatible Chat Completions front door." },
269
+ { label: "POST /v1/responses", description: "OpenAI-compatible Responses front door (Codex/IDE)." },
270
+ { label: "GET /registry", description: "Full provider, routing, and capability view." },
271
+ { label: "GET /candidates", description: "Raw per-target benchmarks, health, quota, and breaker state." },
272
+ { label: "GET|POST /offload", description: "Read or set the offload rule; accepts ?client=<name>." },
273
+ {
274
+ label: "GET|POST /dispatch",
275
+ description: [
276
+ "Return the next dispatch lane; query values: client, tier, lane, after, task.",
277
+ "POST {\"exhausted\":\"<lane>\"} to report a spent lane and walk on.",
278
+ ],
279
+ },
280
+ { label: "GET /telemetry", description: "Live telemetry, quota, and stability scores." },
281
+ { label: "GET /ping", description: "Trigger a health probe and return the ping summary." },
282
+ { label: "GET /health", description: "Diagnostic provider availability and health summary." },
283
+ ])}
215
284
  `;
216
285
  const DEFAULT_CONFIG_TEMPLATE = JSON.stringify({
217
286
  listen: "127.0.0.1:8791",
@@ -374,7 +443,7 @@ export async function runModels() {
374
443
  const lim = await catalog.limits(name, p, m).catch(() => null);
375
444
  const ctx = lim?.contextLength ? ` ctx ${Math.round(lim.contextLength / 1000)}k` : "";
376
445
  const out = lim?.maxOutputTokens ? ` max_out ${lim.maxOutputTokens}` : "";
377
- process.stdout.write(` ${m.padEnd(50)}${str}${ctx}${out}\n`);
446
+ process.stdout.write(` ${fitCell(m, 50)}${str}${ctx}${out}\n`);
378
447
  }
379
448
  }
380
449
  }
@@ -476,7 +545,7 @@ export async function runPingCommand() {
476
545
  const avgStr = summary.avgMs >= 0 ? `${summary.avgMs}ms` : "pending";
477
546
  const p95Str = summary.p95Ms >= 0 ? `${summary.p95Ms}ms` : "pending";
478
547
  const scoreStr = summary.stabilityScore >= 0 ? `${summary.stabilityScore}/100` : "N/A";
479
- process.stdout.write(` ${mId.padEnd(45)} | verdict: ${summary.verdict.padEnd(10)} | avg: ${avgStr.padEnd(8)} | p95: ${p95Str.padEnd(8)} | stability: ${scoreStr}\n`);
548
+ process.stdout.write(` ${fitCell(mId, 45)} | verdict: ${fitCell(summary.verdict, 10)} | avg: ${fitCell(avgStr, 8)} | p95: ${fitCell(p95Str, 8)} | stability: ${scoreStr}\n`);
480
549
  }
481
550
  }
482
551
  }
@@ -487,17 +556,16 @@ export async function runCheckKeys() {
487
556
  const cfg = loadOrExit();
488
557
  process.stdout.write("🔑 Validating configured provider API keys...\n\n");
489
558
  const results = await validateProviderKeys(cfg);
490
- process.stdout.write(`Provider`.padEnd(16) +
491
- `Env Var`.padEnd(24) +
492
- `Status`.padEnd(16) +
493
- `Details\n`);
494
- process.stdout.write("-".repeat(80) + "\n");
495
- for (const r of results) {
496
- const envStr = r.authEnv ?? "(none)";
497
- const quotaStr = r.quotaPercent !== undefined && r.quotaPercent !== null ? ` | Quota: ${r.quotaPercent}%` : "";
498
- const modelsStr = r.modelsFound !== undefined ? ` | Models: ${r.modelsFound}` : "";
499
- process.stdout.write(`${r.provider.padEnd(16)}${envStr.padEnd(24)}${r.status.toUpperCase().padEnd(16)}${r.message}${quotaStr}${modelsStr}\n`);
500
- }
559
+ const rows = [
560
+ ["Provider", "Env var", "Status", "Details"],
561
+ ...results.map((r) => {
562
+ const envStr = r.authEnv ?? "(none)";
563
+ const quotaStr = r.quotaPercent !== undefined && r.quotaPercent !== null ? ` | Quota: ${r.quotaPercent}%` : "";
564
+ const modelsStr = r.modelsFound !== undefined ? ` | Models: ${r.modelsFound}` : "";
565
+ return [r.provider, envStr, r.status.toUpperCase(), `${r.message}${quotaStr}${modelsStr}`];
566
+ }),
567
+ ];
568
+ process.stdout.write(formatTextTable(rows) + "\n");
501
569
  }
502
570
  /**
503
571
  * Talk to a RUNNING proxy if there is one. The offload switch has to reach the live process to
@@ -656,7 +724,8 @@ export async function runDispatch(arg) {
656
724
  process.stdout.write(JSON.stringify(view, null, 2) + "\n");
657
725
  return;
658
726
  }
659
- process.stdout.write(`${view.client === "default" ? "subagent" : view.client} offload: ${view.offload ? "ON" : "OFF"}\n`);
727
+ const clientLabel = view.client ?? "default";
728
+ process.stdout.write(`${clientLabel === "default" ? "subagent" : clientLabel} offload: ${view.offload ? "ON" : "OFF"}\n`);
660
729
  if (view.tier)
661
730
  process.stdout.write(`dispatch tier: ${view.tier}\n`);
662
731
  if (!live)
@@ -677,12 +746,14 @@ export async function runDispatch(arg) {
677
746
  else {
678
747
  target = l.spec ?? "";
679
748
  }
680
- process.stdout.write(`${mark} ${l.position}. ${l.id}${state}\n ${target}\n`);
749
+ process.stdout.write(`${mark} ${l.position}. ${l.id}${state}\n`);
750
+ if (target)
751
+ process.stdout.write(` ${l.kind === "cli" ? "run" : "target"}: ${target}\n`);
681
752
  if (l.requiresDirective) {
682
- process.stdout.write(` needs "@relay: ${l.spec}" in the subagent prompt (offload is off)\n`);
753
+ process.stdout.write(` hint: add "@relay: ${l.spec}" to the subagent prompt (offload is off)\n`);
683
754
  }
684
755
  if (l.note)
685
- process.stdout.write(` ${l.note}\n`);
756
+ process.stdout.write(` note: ${l.note}\n`);
686
757
  }
687
758
  // Say which shell the quoting is for. A command line that is safe in one shell and not in
688
759
  // another is worth nothing if the reader has to guess which one it was written for — and on
@@ -753,13 +824,17 @@ export async function runOffload(arg, nextArg) {
753
824
  if (state.enabled && Object.keys(state.subagents).length === 0) {
754
825
  process.stdout.write(" ⚠ routing.subagents is empty — offload is on but routes nowhere\n");
755
826
  }
756
- process.stdout.write(` scope: ${effectiveScope} (subagents only, or the full ${client} conversation)\n`);
827
+ process.stdout.write(effectiveScope === "all"
828
+ ? ` scope: all (the full ${client} conversation, including subagents)\n`
829
+ : " scope: subagents (marked child requests only)\n");
757
830
  }
758
831
  else if (Object.keys(configuredClients).length > 0) {
759
- process.stdout.write("\n client enabled scope\n");
760
- for (const [name, rule] of Object.entries(configuredClients)) {
761
- process.stdout.write(` ${name.padEnd(9)} ${(rule.enabled ? "ON" : "OFF").padEnd(8)} ${rule.scope}\n`);
762
- }
832
+ process.stdout.write("\n" +
833
+ formatTextTable([
834
+ ["client", "enabled", "scope"],
835
+ ...Object.entries(configuredClients).map(([name, rule]) => [name, rule.enabled ? "ON" : "OFF", rule.scope]),
836
+ ], " ") +
837
+ "\n");
763
838
  }
764
839
  else if (state.enabled) {
765
840
  process.stdout.write(" legacy global rule applies to marked subagents for every front door\n");
@@ -913,6 +988,164 @@ export async function runCandidates() {
913
988
  }
914
989
  process.stdout.write(`Full detail (every source's raw score, jitter, observed traffic): curl 127.0.0.1:${cfg.port}/candidates\n`);
915
990
  }
991
+ function configSourcePath(cfg) {
992
+ if (!cfg.sourcePath)
993
+ throw new Error("loaded config has no source path");
994
+ return cfg.sourcePath;
995
+ }
996
+ function routingDocument(document) {
997
+ const current = document.routing;
998
+ if (typeof current === "object" && current !== null && !Array.isArray(current)) {
999
+ return current;
1000
+ }
1001
+ const routing = {};
1002
+ document.routing = routing;
1003
+ return routing;
1004
+ }
1005
+ function outputJson(value) {
1006
+ process.stdout.write(JSON.stringify(value, null, 2) + "\n");
1007
+ }
1008
+ function changedConfig(path) {
1009
+ process.stdout.write(`Updated ${path}\n`);
1010
+ process.stdout.write("Restart the running proxy for routing changes to take effect.\n");
1011
+ }
1012
+ function configCommandError(message) {
1013
+ throw new Error(message);
1014
+ }
1015
+ const UNSAFE_CONFIG_NAMES = new Set(["__proto__", "prototype", "constructor"]);
1016
+ function requireSimpleConfigName(name, command) {
1017
+ if (!name || !/^[A-Za-z0-9_-]+$/.test(name) || UNSAFE_CONFIG_NAMES.has(name)) {
1018
+ configCommandError(`${command}: expected a simple name`);
1019
+ }
1020
+ return name;
1021
+ }
1022
+ function requireSpecs(command, specs) {
1023
+ if (specs.length === 0 || specs.some((spec) => spec.length === 0)) {
1024
+ configCommandError(`${command}: expected at least one provider/model or pool/<name> spec`);
1025
+ }
1026
+ return specs;
1027
+ }
1028
+ function scalarOrArray(values) {
1029
+ return values.length === 1 ? values[0] : values;
1030
+ }
1031
+ /** `llm-relay config show|get|set|unset` — generic, scriptable JSON configuration editing. */
1032
+ export function runConfigCommand() {
1033
+ const cfg = loadOrExit();
1034
+ const path = configSourcePath(cfg);
1035
+ const positionals = getPositionalArgs(process.argv);
1036
+ const action = positionals[1] ?? "show";
1037
+ const target = positionals[2];
1038
+ if (action === "show" || action === "get") {
1039
+ const document = readConfigDocument(path);
1040
+ const value = target ? readConfigPath(document, target) : document;
1041
+ if (target && value === undefined)
1042
+ configCommandError(`config ${action}: no value at "${target}"`);
1043
+ outputJson(value);
1044
+ return;
1045
+ }
1046
+ if (action === "set") {
1047
+ const valueArg = positionals[3];
1048
+ if (!target || valueArg === undefined || positionals.length > 4) {
1049
+ configCommandError("config set: expected exactly <path> <value>; values may be JSON");
1050
+ }
1051
+ updateConfigDocument(path, (document) => writeConfigPath(document, target, parseConfigValue(valueArg)));
1052
+ changedConfig(path);
1053
+ return;
1054
+ }
1055
+ if (action === "unset") {
1056
+ if (!target || positionals.length > 3)
1057
+ configCommandError("config unset: expected exactly <path>");
1058
+ const before = readConfigDocument(path);
1059
+ if (readConfigPath(before, target) === undefined)
1060
+ configCommandError(`config unset: no value at "${target}"`);
1061
+ let removed = false;
1062
+ updateConfigDocument(path, (document) => {
1063
+ removed = deleteConfigPath(document, target);
1064
+ });
1065
+ if (!removed)
1066
+ configCommandError(`config unset: no value at "${target}"`);
1067
+ changedConfig(path);
1068
+ return;
1069
+ }
1070
+ configCommandError(`config: expected show|get|set|unset (got "${action}")`);
1071
+ }
1072
+ /** `llm-relay routing ...` — convenient typed commands for the fields operators edit most. */
1073
+ export function runRoutingCommand() {
1074
+ const cfg = loadOrExit();
1075
+ const path = configSourcePath(cfg);
1076
+ const positionals = getPositionalArgs(process.argv);
1077
+ const action = positionals[1] ?? "show";
1078
+ if (action === "show" || action === "get") {
1079
+ outputJson(cfg.routing);
1080
+ return;
1081
+ }
1082
+ if (action === "default") {
1083
+ const specs = requireSpecs("routing default", positionals.slice(2));
1084
+ updateConfigDocument(path, (document) => {
1085
+ routingDocument(document).default = scalarOrArray(specs);
1086
+ });
1087
+ changedConfig(path);
1088
+ return;
1089
+ }
1090
+ if (action === "tier" || action === "subagent") {
1091
+ const name = requireSimpleConfigName(positionals[2], `routing ${action}`);
1092
+ const clear = hasFlag("--clear");
1093
+ const specs = positionals.slice(3);
1094
+ if (action === "subagent" && specs.length > 1)
1095
+ configCommandError("routing subagent: expected exactly one target spec");
1096
+ if (!clear)
1097
+ requireSpecs(`routing ${action}`, specs);
1098
+ if (clear && specs.length > 0)
1099
+ configCommandError(`routing ${action}: --clear cannot be combined with a spec`);
1100
+ updateConfigDocument(path, (document) => {
1101
+ const routing = routingDocument(document);
1102
+ const field = action === "tier" ? "tiers" : "subagents";
1103
+ const current = routing[field];
1104
+ const map = typeof current === "object" && current !== null && !Array.isArray(current)
1105
+ ? current
1106
+ : {};
1107
+ if (clear)
1108
+ delete map[name];
1109
+ else
1110
+ map[name] = action === "subagent" ? specs[0] : scalarOrArray(specs);
1111
+ routing[field] = map;
1112
+ });
1113
+ changedConfig(path);
1114
+ return;
1115
+ }
1116
+ if (action === "sort" || action === "benchmark") {
1117
+ const value = positionals[2]?.toLowerCase();
1118
+ if (value !== "on" && value !== "off")
1119
+ configCommandError(`routing ${action}: expected on or off`);
1120
+ updateConfigDocument(path, (document) => {
1121
+ routingDocument(document).benchmarkSort = value === "on";
1122
+ });
1123
+ changedConfig(path);
1124
+ return;
1125
+ }
1126
+ if (action === "set" || action === "unset") {
1127
+ const key = positionals[2];
1128
+ if (!key || key.startsWith("routing."))
1129
+ configCommandError(`routing ${action}: expected a path relative to routing`);
1130
+ if (action === "set") {
1131
+ const valueArg = positionals[3];
1132
+ if (valueArg === undefined || positionals.length > 4)
1133
+ configCommandError("routing set: expected <path> <value>");
1134
+ updateConfigDocument(path, (document) => writeConfigPath(document, `routing.${key}`, parseConfigValue(valueArg)));
1135
+ }
1136
+ else {
1137
+ if (positionals.length > 3)
1138
+ configCommandError("routing unset: expected exactly <path>");
1139
+ updateConfigDocument(path, (document) => {
1140
+ if (!deleteConfigPath(document, `routing.${key}`))
1141
+ configCommandError(`routing unset: no value at "${key}"`);
1142
+ });
1143
+ }
1144
+ changedConfig(path);
1145
+ return;
1146
+ }
1147
+ configCommandError(`routing: unknown action "${action}"`);
1148
+ }
916
1149
  /**
917
1150
  * `llm-relay pools` — list pool members; `--probe` sends a real completion to each.
918
1151
  *
@@ -921,6 +1154,93 @@ export async function runCandidates() {
921
1154
  */
922
1155
  export async function runPools() {
923
1156
  const cfg = loadOrExit();
1157
+ const path = configSourcePath(cfg);
1158
+ const positionals = getPositionalArgs(process.argv);
1159
+ const action = positionals[1];
1160
+ if (action === "set" || action === "add" || action === "remove" || action === "delete" || action === "rm") {
1161
+ const name = requireSimpleConfigName(positionals[2], `pools ${action}`);
1162
+ const specs = positionals.slice(3);
1163
+ const include = argValue("--include") ?? (hasFlag("--free") ? "free" : undefined);
1164
+ if (include !== undefined && include !== "free")
1165
+ configCommandError('pools: --include expects "free"');
1166
+ if (action === "delete" || action === "rm") {
1167
+ if (specs.length > 0 || include !== undefined)
1168
+ configCommandError(`pools ${action}: expected only <name>`);
1169
+ updateConfigDocument(path, (document) => {
1170
+ const routing = routingDocument(document);
1171
+ const pools = routing.pools;
1172
+ if (typeof pools !== "object" || pools === null || Array.isArray(pools) || !(name in pools)) {
1173
+ configCommandError(`pools ${action}: no pool named "${name}"`);
1174
+ }
1175
+ delete pools[name];
1176
+ });
1177
+ changedConfig(path);
1178
+ return;
1179
+ }
1180
+ if (specs.length === 0 && !(action === "set" && include === "free")) {
1181
+ configCommandError(`pools ${action}: expected at least one member spec`);
1182
+ }
1183
+ updateConfigDocument(path, (document) => {
1184
+ const routing = routingDocument(document);
1185
+ const pools = typeof routing.pools === "object" && routing.pools !== null && !Array.isArray(routing.pools)
1186
+ ? routing.pools
1187
+ : {};
1188
+ routing.pools = pools;
1189
+ const existing = pools[name];
1190
+ const dynamic = typeof existing === "object" && existing !== null && !Array.isArray(existing)
1191
+ ? existing
1192
+ : null;
1193
+ const oldMembers = dynamic
1194
+ ? Array.isArray(dynamic.preferred) ? dynamic.preferred.filter((v) => typeof v === "string") : []
1195
+ : Array.isArray(existing) ? existing.filter((v) => typeof v === "string") : [];
1196
+ let next;
1197
+ if (action === "set")
1198
+ next = [...new Set(specs)];
1199
+ else if (action === "add")
1200
+ next = [...new Set([...oldMembers, ...specs])];
1201
+ else
1202
+ next = oldMembers.filter((member) => !specs.includes(member));
1203
+ if (next.length === 0 && include !== "free" && dynamic === null) {
1204
+ configCommandError("pools remove: the pool would be empty; use pools delete instead");
1205
+ }
1206
+ if (include === "free" || (dynamic !== null && action !== "set")) {
1207
+ pools[name] = { preferred: next, include: "free" };
1208
+ }
1209
+ else {
1210
+ pools[name] = next;
1211
+ }
1212
+ });
1213
+ changedConfig(path);
1214
+ return;
1215
+ }
1216
+ if (action === "show") {
1217
+ const name = requireSimpleConfigName(positionals[2], "pools show");
1218
+ const pool = cfg.routing.pools?.[name];
1219
+ if (!pool)
1220
+ configCommandError(`pools show: no pool named "${name}"`);
1221
+ if (hasFlag("--json"))
1222
+ outputJson(pool);
1223
+ else {
1224
+ process.stdout.write(`pool/${name} — ${pool.length} members\n`);
1225
+ for (const spec of pool)
1226
+ process.stdout.write(` ${spec}\n`);
1227
+ }
1228
+ return;
1229
+ }
1230
+ if (action && action !== "list") {
1231
+ // `pools <name>` is a useful shorthand for showing one pool; everything else is a typo.
1232
+ const pool = cfg.routing.pools?.[action];
1233
+ if (!pool)
1234
+ configCommandError(`pools: unknown action or pool "${action}"`);
1235
+ if (hasFlag("--json"))
1236
+ outputJson(pool);
1237
+ else {
1238
+ process.stdout.write(`pool/${action} — ${pool.length} members\n`);
1239
+ for (const spec of pool)
1240
+ process.stdout.write(` ${spec}\n`);
1241
+ }
1242
+ return;
1243
+ }
924
1244
  const pools = cfg.routing.pools ?? {};
925
1245
  const names = Object.keys(pools);
926
1246
  if (names.length === 0) {
@@ -928,6 +1248,10 @@ export async function runPools() {
928
1248
  return;
929
1249
  }
930
1250
  if (!hasFlag("--probe")) {
1251
+ if (hasFlag("--json")) {
1252
+ outputJson(pools);
1253
+ return;
1254
+ }
931
1255
  for (const name of names) {
932
1256
  process.stdout.write(`\npool/${name} — ${pools[name].length} members\n`);
933
1257
  for (const spec of pools[name])
@@ -953,7 +1277,7 @@ export async function runPools() {
953
1277
  if (DEAD_VERDICTS.has(r.verdict))
954
1278
  dead++;
955
1279
  const lat = r.latencyMs !== undefined ? `${r.latencyMs}ms` : "";
956
- process.stdout.write(` ${icon[r.verdict].padEnd(6)} ${r.spec.padEnd(50)} ${lat.padEnd(8)} ${r.detail ?? ""}\n`);
1280
+ process.stdout.write(` ${fitCell(icon[r.verdict], 6)} ${fitCell(r.spec, 50)} ${fitCell(lat, 8)} ${r.detail ?? ""}\n`);
957
1281
  }
958
1282
  process.stdout.write("\n");
959
1283
  }
@@ -1048,6 +1372,26 @@ export function main() {
1048
1372
  });
1049
1373
  return;
1050
1374
  }
1375
+ if (arg2 === "routing" || arg2 === "route") {
1376
+ try {
1377
+ runRoutingCommand();
1378
+ }
1379
+ catch (e) {
1380
+ process.stderr.write(`llm-relay routing: ${e.message}\n`);
1381
+ process.exit(1);
1382
+ }
1383
+ return;
1384
+ }
1385
+ if (arg2 === "config") {
1386
+ try {
1387
+ runConfigCommand();
1388
+ }
1389
+ catch (e) {
1390
+ process.stderr.write(`llm-relay config: ${e.message}\n`);
1391
+ process.exit(1);
1392
+ }
1393
+ return;
1394
+ }
1051
1395
  if (arg2 === "ping" || hasFlag("--ping")) {
1052
1396
  runPingCommand().catch((e) => {
1053
1397
  process.stderr.write(`llm-relay ping: ${e.message}\n`);
@@ -1103,6 +1447,18 @@ export function classifyCommand(argv) {
1103
1447
  arg4 === "on" || arg4 === "enable" || arg4 === "off" || arg4 === "disable"
1104
1448
  ? "mutating"
1105
1449
  : "read-only";
1450
+ case "config":
1451
+ return arg3 === "set" || arg3 === "unset" ? "mutating" : "read-only";
1452
+ case "routing":
1453
+ case "route":
1454
+ return arg3 === "set" || arg3 === "unset" || arg3 === "default" || arg3 === "tier" ||
1455
+ arg3 === "subagent" || arg3 === "sort" || arg3 === "benchmark"
1456
+ ? "mutating"
1457
+ : "read-only";
1458
+ case "pools":
1459
+ return arg3 === "set" || arg3 === "add" || arg3 === "remove" || arg3 === "delete" || arg3 === "rm"
1460
+ ? "mutating"
1461
+ : "read-only";
1106
1462
  // keys, check-keys, models, telemetry, dispatch, candidates, pools, ping, help, version —
1107
1463
  // and anything not yet listed. `dispatch -x` is included on purpose: it reports spend to a
1108
1464
  // running proxy's in-memory cooldowns and changes nothing on this machine.
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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"}
@@ -0,0 +1,16 @@
1
+ export type ConfigDocument = Record<string, unknown>;
2
+ /** Read the user-facing JSON document without normalizing away its configured shape. */
3
+ export declare function readConfigDocument(path: string): ConfigDocument;
4
+ /**
5
+ * Apply an edit only after the existing config loader accepts the complete result.
6
+ *
7
+ * The temporary validation file is kept beside the target so `${ENV}` expansion and relative
8
+ * paths behave just as they do when the proxy starts. Unknown top-level settings are preserved.
9
+ */
10
+ export declare function updateConfigDocument(path: string, edit: (document: ConfigDocument) => void): void;
11
+ /** Parse a CLI value as JSON when possible, otherwise keep it as a string. */
12
+ export declare function parseConfigValue(value: string): unknown;
13
+ export declare function parseConfigPath(path: string): string[];
14
+ export declare function readConfigPath(document: ConfigDocument, path: string): unknown;
15
+ export declare function writeConfigPath(document: ConfigDocument, path: string, value: unknown): void;
16
+ export declare function deleteConfigPath(document: ConfigDocument, path: string): boolean;
@@ -0,0 +1,104 @@
1
+ import { readFileSync, unlinkSync, writeFileSync } from "node:fs";
2
+ import { dirname, join } from "node:path";
3
+ import { loadConfig } from "./config.js";
4
+ /** Read the user-facing JSON document without normalizing away its configured shape. */
5
+ export function readConfigDocument(path) {
6
+ let value;
7
+ try {
8
+ value = JSON.parse(readFileSync(path, "utf8"));
9
+ }
10
+ catch (e) {
11
+ throw new Error(`could not read config ${path}: ${e.message}`);
12
+ }
13
+ if (typeof value !== "object" || value === null || Array.isArray(value)) {
14
+ throw new Error(`config ${path} must contain a JSON object`);
15
+ }
16
+ return value;
17
+ }
18
+ /**
19
+ * Apply an edit only after the existing config loader accepts the complete result.
20
+ *
21
+ * The temporary validation file is kept beside the target so `${ENV}` expansion and relative
22
+ * paths behave just as they do when the proxy starts. Unknown top-level settings are preserved.
23
+ */
24
+ export function updateConfigDocument(path, edit) {
25
+ const document = readConfigDocument(path);
26
+ edit(document);
27
+ const serialized = JSON.stringify(document, null, 2) + "\n";
28
+ const temporary = join(dirname(path), `.${path.split(/[\\/]/).pop() ?? "config"}.tmp-${process.pid}-${Date.now()}`);
29
+ try {
30
+ writeFileSync(temporary, serialized, "utf8");
31
+ loadConfig(temporary);
32
+ // Validation above means a partial edit cannot leave the user with an unloadable file. Keep
33
+ // the final write deliberately simple because rename-over-existing is not portable on Windows.
34
+ writeFileSync(path, serialized, "utf8");
35
+ }
36
+ finally {
37
+ try {
38
+ unlinkSync(temporary);
39
+ }
40
+ catch {
41
+ /* best effort cleanup; the validated target is still usable */
42
+ }
43
+ }
44
+ }
45
+ /** Parse a CLI value as JSON when possible, otherwise keep it as a string. */
46
+ export function parseConfigValue(value) {
47
+ try {
48
+ return JSON.parse(value);
49
+ }
50
+ catch {
51
+ return value;
52
+ }
53
+ }
54
+ const FORBIDDEN_PATH_PARTS = new Set(["__proto__", "prototype", "constructor"]);
55
+ export function parseConfigPath(path) {
56
+ const parts = path.split(".");
57
+ if (parts.length === 0 || parts.some((part) => part.length === 0 || FORBIDDEN_PATH_PARTS.has(part))) {
58
+ throw new Error(`config path must be dot-separated names (got "${path}")`);
59
+ }
60
+ return parts;
61
+ }
62
+ export function readConfigPath(document, path) {
63
+ let current = document;
64
+ for (const part of parseConfigPath(path)) {
65
+ if (typeof current !== "object" || current === null || !(part in current)) {
66
+ return undefined;
67
+ }
68
+ current = current[part];
69
+ }
70
+ return current;
71
+ }
72
+ export function writeConfigPath(document, path, value) {
73
+ const parts = parseConfigPath(path);
74
+ let current = document;
75
+ for (const part of parts.slice(0, -1)) {
76
+ const existing = current[part];
77
+ if (typeof existing === "object" && existing !== null && !Array.isArray(existing)) {
78
+ current = existing;
79
+ }
80
+ else {
81
+ const next = {};
82
+ current[part] = next;
83
+ current = next;
84
+ }
85
+ }
86
+ current[parts[parts.length - 1]] = value;
87
+ }
88
+ export function deleteConfigPath(document, path) {
89
+ const parts = parseConfigPath(path);
90
+ let current = document;
91
+ for (const part of parts.slice(0, -1)) {
92
+ if (typeof current !== "object" || current === null)
93
+ return false;
94
+ current = current[part];
95
+ }
96
+ if (typeof current !== "object" || current === null)
97
+ return false;
98
+ const record = current;
99
+ if (!(parts[parts.length - 1] in record))
100
+ return false;
101
+ delete record[parts[parts.length - 1]];
102
+ return true;
103
+ }
104
+ //# sourceMappingURL=config-edit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-edit.js","sourceRoot":"","sources":["../src/config-edit.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "llm-relay",
3
- "version": "0.15.0",
3
+ "version": "0.15.2",
4
4
  "description": "Loopback bidirectional Anthropic/OpenAI API proxy with tool-call validation and multi-provider routing.",
5
5
  "type": "module",
6
6
  "engines": {