llm-relay 0.0.10 → 0.0.11
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 +15 -15
- package/dist/cli.js +51 -18
- package/dist/cli.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -56,7 +56,7 @@ Or inline, if you'd rather not use the wrapper:
|
|
|
56
56
|
|
|
57
57
|
```bash
|
|
58
58
|
env -u CLAUDECODE -u ANTHROPIC_API_KEY \
|
|
59
|
-
CLAUDE_CONFIG_DIR="$HOME/.
|
|
59
|
+
CLAUDE_CONFIG_DIR="$HOME/.llm-relay-claude" \
|
|
60
60
|
ANTHROPIC_BASE_URL=http://127.0.0.1:8791 \
|
|
61
61
|
ANTHROPIC_AUTH_TOKEN=dummy \
|
|
62
62
|
CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1 CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 CLAUDE_CODE_ATTRIBUTION_HEADER=0 \
|
|
@@ -117,18 +117,18 @@ routing from the CLI (wins over the file):
|
|
|
117
117
|
node dist/cli.js --config config.json --default openrouter/openai/gpt-5.2-codex --mode repair
|
|
118
118
|
```
|
|
119
119
|
|
|
120
|
-
`
|
|
120
|
+
`llm-relay --help` lists every override.
|
|
121
121
|
|
|
122
122
|
### Model discovery (dynamic + cached)
|
|
123
123
|
|
|
124
124
|
Model ids are **discovered live** from each provider's `/models` endpoint — never
|
|
125
|
-
hand-maintained. The catalog is cached in `~/.
|
|
125
|
+
hand-maintained. The catalog is cached in `~/.llm-relay/models-cache.json`
|
|
126
126
|
(10-min TTL, fail-open: a fetch failure serves the last-known list).
|
|
127
127
|
|
|
128
128
|
```bash
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
129
|
+
llm-relay models # list live models for every provider
|
|
130
|
+
llm-relay models --provider nim # one provider
|
|
131
|
+
llm-relay models --provider nim --refresh # force a re-fetch
|
|
132
132
|
```
|
|
133
133
|
|
|
134
134
|
On startup the proxy warms the cache and **warns about any routing target its
|
|
@@ -155,7 +155,7 @@ coherent JSON view:
|
|
|
155
155
|
|
|
156
156
|
The consumer then dispatches by pointing its OpenAI-compatible pool at :8791 and
|
|
157
157
|
setting each packet's model to a **namespaced** `provider/model` (it picked the exact
|
|
158
|
-
backend).
|
|
158
|
+
backend). llm-relay exposes an **OpenAI-compatible front** for exactly this —
|
|
159
159
|
`POST /v1/chat/completions` (and `/chat/completions`): the request's `model` is routed
|
|
160
160
|
by namespace/tier, rewritten to the backend id, and the upstream OpenAI response is
|
|
161
161
|
returned verbatim (OpenAI in, OpenAI out — the Anthropic `/v1/messages` front with
|
|
@@ -195,23 +195,23 @@ This is the dataset for deciding which backend models are *format-broken* (resha
|
|
|
195
195
|
## Composing with headroom (optional)
|
|
196
196
|
|
|
197
197
|
[headroom](../headroom) is a separate loopback proxy that **optimizes/compresses**
|
|
198
|
-
context on the way to the model. Both it and
|
|
198
|
+
context on the way to the model. Both it and llm-relay are transparent
|
|
199
199
|
Anthropic-Messages proxies, so they chain — but only in one order, because
|
|
200
|
-
|
|
200
|
+
llm-relay's backend speaks OpenAI/NIM while headroom only forwards Anthropic:
|
|
201
201
|
|
|
202
202
|
```
|
|
203
|
-
claude → headroom (:8787, context optimization, OUTER) →
|
|
203
|
+
claude → headroom (:8787, context optimization, OUTER) → llm-relay (:8791, validate/repair + translate, INNER) → NIM/…
|
|
204
204
|
```
|
|
205
205
|
|
|
206
|
-
|
|
207
|
-
|
|
206
|
+
llm-relay must be **innermost**. To chain them, point headroom's upstream at
|
|
207
|
+
llm-relay — headroom exposes this as a launch flag, so its own code is untouched:
|
|
208
208
|
|
|
209
209
|
```bash
|
|
210
|
-
ANTHROPIC_TARGET_API_URL=http://127.0.0.1:8791 # headroom →
|
|
210
|
+
ANTHROPIC_TARGET_API_URL=http://127.0.0.1:8791 # headroom → llm-relay
|
|
211
211
|
```
|
|
212
212
|
|
|
213
213
|
**Caveat:** that env var repoints *all* of headroom's Anthropic traffic — including
|
|
214
|
-
your real (paid) Claude sessions — at
|
|
214
|
+
your real (paid) Claude sessions — at llm-relay. So run a **second, scoped
|
|
215
215
|
headroom instance** for the multiplexed lane and leave your main one pointed at
|
|
216
216
|
Anthropic:
|
|
217
217
|
|
|
@@ -224,7 +224,7 @@ HEADROOM_PORT=8788 ANTHROPIC_TARGET_API_URL=http://127.0.0.1:8791 headroom proxy
|
|
|
224
224
|
Note the `claude-proxied` wrappers set `ANTHROPIC_BASE_URL` straight to :8791 and use
|
|
225
225
|
an isolated `CLAUDE_CONFIG_DIR`, so **by default they bypass headroom entirely** — you
|
|
226
226
|
only get the chain if you deliberately point the client at a headroom instance whose
|
|
227
|
-
upstream is
|
|
227
|
+
upstream is llm-relay.
|
|
228
228
|
|
|
229
229
|
**Is it worth it?** headroom's headline win is $/token savings vs *paid* Anthropic —
|
|
230
230
|
**moot on the free NIM pool**. What still pays off through the chain: context
|
package/dist/cli.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { existsSync, mkdirSync, writeFileSync } from "node:fs";
|
|
3
|
-
import { join } from "node:path";
|
|
2
|
+
import { existsSync, mkdirSync, writeFileSync, readFileSync } from "node:fs";
|
|
3
|
+
import { join, dirname } from "node:path";
|
|
4
4
|
import { homedir } from "node:os";
|
|
5
|
+
import { fileURLToPath } from "node:url";
|
|
5
6
|
import { loadConfig } from "./config.js";
|
|
6
7
|
import { createProxy } from "./server.js";
|
|
7
8
|
import { ModelCatalog } from "./catalog.js";
|
|
@@ -54,23 +55,43 @@ Multi-provider: config declares a providers{} registry; a request's model routes
|
|
|
54
55
|
to one provider by namespace ("nim/z-ai/glm-5.2") or by Claude tier (routing.tiers).
|
|
55
56
|
|
|
56
57
|
Usage:
|
|
57
|
-
llm-relay [
|
|
58
|
-
llm-relay models [
|
|
58
|
+
llm-relay [options] Start the proxy server (default)
|
|
59
|
+
llm-relay models [-p <name>] [-r] List live models per provider
|
|
60
|
+
llm-relay help | --help | -h Show this help documentation
|
|
61
|
+
llm-relay version | --version | -v Show version number
|
|
59
62
|
|
|
60
|
-
|
|
63
|
+
Commands:
|
|
64
|
+
(default) Start loopback HTTP proxy server
|
|
65
|
+
models Query live /models catalog across providers
|
|
66
|
+
help Show help documentation
|
|
67
|
+
version Print package version
|
|
61
68
|
|
|
62
|
-
|
|
63
|
-
--
|
|
64
|
-
--mode <detect|repair> mode
|
|
65
|
-
--listen <host:port> listen address (loopback only)
|
|
69
|
+
Options:
|
|
70
|
+
-c, --config <path> Config file (default: ~/.llm-relay/config.json)
|
|
66
71
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
72
|
+
Proxy Startup Overrides (win over config file values):
|
|
73
|
+
-d, --default <provider/model> Override routing.default fallback spec
|
|
74
|
+
-m, --mode <detect|repair|strict> Override mode (detect | repair | strict)
|
|
75
|
+
-l, --listen <host:port> Override listen address (loopback only)
|
|
71
76
|
|
|
72
|
-
|
|
73
|
-
|
|
77
|
+
Models Command Options:
|
|
78
|
+
-p, --provider <name> Filter model list to a specific provider
|
|
79
|
+
-r, --refresh Force re-fetch from backend /models endpoints
|
|
80
|
+
|
|
81
|
+
Proxy Server Endpoints:
|
|
82
|
+
POST /v1/messages Anthropic Messages proxy with tool repair
|
|
83
|
+
POST /v1/chat/completions OpenAI-compatible front
|
|
84
|
+
GET /registry Full JSON view of providers, routing & capabilities
|
|
85
|
+
|
|
86
|
+
Model Discovery & Caching:
|
|
87
|
+
Model IDs are discovered dynamically from each provider's /models endpoint and
|
|
88
|
+
cached in ~/.llm-relay/models-cache.json (10-min TTL). "llm-relay models" lists
|
|
89
|
+
them; --refresh forces a re-fetch. On startup, the proxy warms the cache and warns
|
|
90
|
+
about any routing target its provider does not serve.
|
|
91
|
+
|
|
92
|
+
Config Environment Variables:
|
|
93
|
+
Config string values may reference environment variables as \${NAME}
|
|
94
|
+
(e.g. "base": "\${LLM_BACKEND_BASE_URL}"); an unset variable is a startup error.
|
|
74
95
|
`;
|
|
75
96
|
const DEFAULT_CONFIG_TEMPLATE = JSON.stringify({
|
|
76
97
|
listen: "127.0.0.1:8791",
|
|
@@ -233,13 +254,25 @@ export function runProxy() {
|
|
|
233
254
|
return server;
|
|
234
255
|
}
|
|
235
256
|
export function main() {
|
|
236
|
-
|
|
257
|
+
const arg2 = process.argv[2];
|
|
258
|
+
if (hasFlag("--help", "-h") || arg2 === "help") {
|
|
237
259
|
process.stdout.write(HELP);
|
|
238
260
|
process.exit(0);
|
|
239
261
|
}
|
|
240
|
-
if (
|
|
262
|
+
if (hasFlag("--version", "-v") || arg2 === "version") {
|
|
263
|
+
try {
|
|
264
|
+
const pkgPath = join(dirname(fileURLToPath(import.meta.url)), "../package.json");
|
|
265
|
+
const pkg = JSON.parse(readFileSync(pkgPath, "utf8"));
|
|
266
|
+
process.stdout.write(`${pkg.version ?? "0.0.10"}\n`);
|
|
267
|
+
}
|
|
268
|
+
catch {
|
|
269
|
+
process.stdout.write("0.0.10\n");
|
|
270
|
+
}
|
|
271
|
+
process.exit(0);
|
|
272
|
+
}
|
|
273
|
+
if (arg2 === "models") {
|
|
241
274
|
runModels().catch((e) => {
|
|
242
|
-
process.stderr.write(`
|
|
275
|
+
process.stderr.write(`llm-relay: ${e.message}\n`);
|
|
243
276
|
process.exit(1);
|
|
244
277
|
});
|
|
245
278
|
return;
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED