llm-relay 0.52.0 → 0.53.0

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "llm-relay",
3
- "version": "0.52.0",
3
+ "version": "0.53.0",
4
4
  "description": "Loopback bidirectional Anthropic/OpenAI API proxy with tool-call validation and multi-provider routing.",
5
5
  "type": "module",
6
6
  "engines": {
@@ -23,6 +23,32 @@ One boundary governs everything it does: the proxy fixes **protocol form** (tool
23
23
  violate the schema), never **judgment**. It refuses to fabricate destructive tool calls, and an
24
24
  unrepairable response fails loudly (502 / mid-stream SSE error) rather than passing through broken.
25
25
 
26
+ ## First use on a machine — ASK, do not assume
27
+
28
+ A fresh install writes a config that **changes nothing**: every Claude model id reaches real
29
+ Anthropic, and the free pools exist but nothing is routed to them. That is the safe default and it
30
+ is almost certainly not why the operator installed a traffic router — so the relay leaves a marker
31
+ saying the question has never been put, and **you** are the one who asks.
32
+
33
+ `llm-relay routing show` and `llm-relay offload status` print a first-run notice **on stderr** while
34
+ that marker exists. When you see it:
35
+
36
+ 1. Ask the operator what they want. Offer concrete options, not a lecture:
37
+ - **Subagents only** (recommended start) — `llm-relay offload claude on`. Marked child requests
38
+ go to the free pools; the operator's own turns stay on Anthropic. Nothing else changes.
39
+ - **Subagents plus the whole conversation** — `llm-relay offload claude on --scope all`. Spends
40
+ no Anthropic quota, and every turn now runs on a weaker model. Say that plainly.
41
+ - **Free lanes only, never spend money** — add `"freeOnly": true` to the rule. It refuses with a
42
+ clean 503 rather than falling through to paid.
43
+ - **Nothing yet** — a real answer. Leave the routing alone.
44
+ 2. Apply the answer with the ordinary verbs. Do not hand-edit `config.json`.
45
+ 3. Run `llm-relay routing answered` to retire the notice — including when the answer was "nothing
46
+ yet". Forcing a config edit just to silence a prompt is how a default gets changed for the
47
+ wrong reason.
48
+
49
+ ⚠ Ask ONCE per machine. The marker is the memory; do not re-open the question because a later
50
+ session did not see the notice.
51
+
26
52
  ## Addressing a model
27
53
 
28
54
  Three forms in a request's `model` field, resolved in this order: