@houtini/lm 2.12.0 → 2.13.1

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
@@ -16,7 +16,7 @@
16
16
 
17
17
  I built this because I kept leaving Claude Code running overnight on big refactors and the token bill was painful. A huge chunk of that spend goes on bounded tasks any decent model handles fine - generating boilerplate, code review, commit messages, format conversion. Stuff that doesn't need Claude's reasoning or tool access.
18
18
 
19
- Houtini LM connects Claude Code to a local LLM on your network - or any OpenAI-compatible API. Claude keeps doing the hard work - architecture, planning, multi-file changes - and offloads the grunt work to whatever cheaper model you've got running. No Claude quota burn. No rate limits. Private. The trade is wall-clock time: local inference is typically 3-30× slower than frontier models, so delegation wins on bounded, self-contained tasks rather than everything.
19
+ Houtini LM connects Claude Code to a local LLM on your network - or any OpenAI-compatible API (LM Studio, Ollama, vLLM, DeepSeek, Groq, Cerebras, and OpenRouter's 300+ models through one endpoint). Claude keeps doing the hard work - architecture, planning, multi-file changes - and offloads the grunt work to whatever cheaper model you've got running. No Claude quota burn. No rate limits. Private if local, cheap if cloud. The trade is wall-clock time: local inference is typically 3-30× slower than frontier models, so delegation wins on bounded, self-contained tasks rather than everything.
20
20
 
21
21
  I wrote a [full walkthrough of why I built this and how I use it day to day](https://houtini.com/how-to-cut-your-claude-code-bill-with-houtini-lm/).
22
22
 
@@ -53,7 +53,7 @@ That's it. If LM Studio's running on `localhost:1234` (the default), Claude can
53
53
  I've got a GPU box on my local network running Qwen 3 Coder Next in LM Studio. If you've got a similar setup, point the URL at it:
54
54
 
55
55
  ```bash
56
- claude mcp add houtini-lm -e LM_STUDIO_URL=http://192.168.1.50:1234 -- npx -y @houtini/lm
56
+ claude mcp add houtini-lm -e HOUTINI_LM_ENDPOINT_URL=http://192.168.1.50:1234 -- npx -y @houtini/lm
57
57
  ```
58
58
 
59
59
  ### Cloud APIs
@@ -62,8 +62,20 @@ Works with anything speaking the OpenAI format. DeepSeek at twenty-eight cents p
62
62
 
63
63
  ```bash
64
64
  claude mcp add houtini-lm \
65
- -e LM_STUDIO_URL=https://api.deepseek.com \
66
- -e LM_STUDIO_PASSWORD=your-key-here \
65
+ -e HOUTINI_LM_ENDPOINT_URL=https://api.deepseek.com \
66
+ -e HOUTINI_LM_API_KEY=your-key-here \
67
+ -- npx -y @houtini/lm
68
+ ```
69
+
70
+ ### OpenRouter
71
+
72
+ OpenRouter gives you 300+ models through one endpoint. Auto-detected from the URL — attribution headers, `reasoning.exclude`, and retry-with-backoff all kick in automatically:
73
+
74
+ ```bash
75
+ claude mcp add houtini-lm \
76
+ -e HOUTINI_LM_ENDPOINT_URL=https://openrouter.ai/api \
77
+ -e HOUTINI_LM_API_KEY=sk-or-v1-... \
78
+ -e HOUTINI_LM_MODEL=nvidia/nemotron-3-nano-30b-a3b:free \
67
79
  -- npx -y @houtini/lm
68
80
  ```
69
81
 
@@ -78,7 +90,7 @@ Drop this into your `claude_desktop_config.json`:
78
90
  "command": "npx",
79
91
  "args": ["-y", "@houtini/lm"],
80
92
  "env": {
81
- "LM_STUDIO_URL": "http://localhost:1234"
93
+ "HOUTINI_LM_ENDPOINT_URL": "http://localhost:1234"
82
94
  }
83
95
  }
84
96
  }
@@ -184,6 +196,15 @@ The routing scores loaded models against the task type (code, chat, analysis, em
184
196
 
185
197
  Supported model families with curated prompt hints: GLM-4, Qwen3 Coder, Qwen3, LLaMA 3, Nemotron, Granite, GPT-OSS, Nomic Embed. Unknown models get sensible defaults.
186
198
 
199
+ ### Overriding the router
200
+
201
+ Scoring works well when there are a handful of loaded models. On providers with large catalogues (OpenRouter lists 300+ models, all reporting as routable) unknown models all score zero and ties break on iteration order, so you probably want to pin explicitly. Two ways, in precedence order:
202
+
203
+ 1. **Per-call** — pass `model: "nvidia/nemotron-3-nano-30b-a3b:free"` to any of `chat` / `custom_prompt` / `code_task` / `code_task_files`. Overrides everything else.
204
+ 2. **Per-process** — set `HOUTINI_LM_MODEL` in the environment. Applies to every tool call from that server process. Overridden by the per-call parameter.
205
+
206
+ Leave both unset and the router picks.
207
+
187
208
  ## Tools
188
209
 
189
210
  ### `chat`
@@ -197,6 +218,7 @@ The workhorse. Send a task, get an answer. The description includes planning tri
197
218
  | `temperature` | no | 0.3 | 0.1 for code, 0.3 for analysis, 0.7 for creative |
198
219
  | `max_tokens` | no | *auto* | Defaults to 25% of the loaded model's context window (fallback 16,384). Pass a number to cap it. |
199
220
  | `json_schema` | no | - | Force structured JSON output conforming to a schema |
221
+ | `model` | no | *auto-route* | Pin a specific model id (e.g. `nvidia/nemotron-3-nano-30b-a3b:free` on OpenRouter). Overrides routing and `HOUTINI_LM_MODEL`. Useful on providers with many candidates. |
200
222
 
201
223
  ### `custom_prompt`
202
224
 
@@ -210,6 +232,7 @@ Three-part prompt: system, context, instruction. Keeping them separate prevents
210
232
  | `temperature` | no | 0.3 | 0.1 for review, 0.3 for analysis |
211
233
  | `max_tokens` | no | *auto* | Defaults to 25% of the loaded model's context window (fallback 16,384). |
212
234
  | `json_schema` | no | - | Force structured JSON output |
235
+ | `model` | no | *auto-route* | Pin a specific model id. Overrides routing and `HOUTINI_LM_MODEL`. |
213
236
 
214
237
  ### `code_task`
215
238
 
@@ -221,6 +244,7 @@ Built for code analysis. Pre-configured system prompt with temperature and outpu
221
244
  | `task` | yes | - | "Find bugs", "Explain this", "Write tests" |
222
245
  | `language` | no | - | "typescript", "python", "rust", etc. |
223
246
  | `max_tokens` | no | *auto* | Defaults to 25% of the loaded model's context window (fallback 16,384). |
247
+ | `model` | no | *auto-route* | Pin a specific model id. Overrides routing and `HOUTINI_LM_MODEL`. |
224
248
 
225
249
  ### `code_task_files`
226
250
 
@@ -234,6 +258,7 @@ Includes a **pre-flight prefill estimator**: if measured per-model data from the
234
258
  | `task` | yes | - | "Find bugs across these files", "Audit this module" |
235
259
  | `language` | no | - | "typescript", "python", "rust", etc. |
236
260
  | `max_tokens` | no | *auto* | Defaults to 25% of the loaded model's context window (fallback 16,384). |
261
+ | `model` | no | *auto-route* | Pin a specific model id. Overrides routing and `HOUTINI_LM_MODEL`. |
237
262
 
238
263
  ### `embed`
239
264
 
@@ -360,14 +385,16 @@ Want a human-readable quality review rather than just latency numbers? Paste [SH
360
385
 
361
386
  ## Think-block handling
362
387
 
363
- Thinking models burn part of their output budget on invisible reasoning before producing an answer. Left alone, small models at default `max_tokens` will happily spend the whole budget reasoning and return an empty body. Houtini-lm handles this in three ways:
388
+ Thinking models burn part of their output budget on invisible reasoning before producing an answer. Left alone, small models at default `max_tokens` will happily spend the whole budget reasoning and return an empty body. How houtini-lm handles this depends on whether the provider exposes reasoning as a separate channel or in-band.
364
389
 
365
- 1. **Suppression at source** at startup, houtini-lm checks each model's HuggingFace chat template for thinking support. Models that support the `enable_thinking` toggle (like Qwen3) get thinking disabled at inference time, reclaiming the generation budget for actual output. Detection is automatic via chat-template inspection plus arch/id heuristics, so Ollama tags like `qwen3:4b` are recognised as thinking-capable too.
366
-
367
- 2. **Budget inflation** — when a model is flagged as thinking-capable, `max_tokens` is silently inflated (×4 or +2000, whichever is bigger) so reasoning can't starve the content channel. Essential for backends like Ollama where the Qwen3 Jinja template hardcodes `enable_thinking=true` and ignores the API flag.
390
+ **Local backends (LM Studio, Ollama, vLLM)** reasoning arrives inline on the content channel or via `delta.reasoning_content` / `delta.reasoning`:
368
391
 
392
+ 1. **Suppression at source** — at startup, houtini-lm checks each model's HuggingFace chat template for thinking support. Models that support the `enable_thinking` toggle (Qwen3, Gemma 4, Nemotron, DeepSeek R1, GLM-4, gpt-oss) get thinking disabled at inference time. Detection is automatic via chat-template inspection plus arch/id heuristics, so Ollama tags like `qwen3:4b` are recognised too.
393
+ 2. **Budget inflation** — `max_tokens` is silently inflated (×4 or +2000, whichever is bigger) so reasoning can't starve the content channel. Essential for backends like Ollama where the Qwen3 Jinja template hardcodes `enable_thinking=true` and ignores the API flag.
369
394
  3. **Reasoning capture + stripping** — reasoning is captured from both `delta.reasoning_content` (LM Studio, DeepSeek R1, Nemotron) and `delta.reasoning` (Ollama). Inline `<think>...</think>` blocks on the content channel are stripped after assembly — balanced pairs, orphan openers, and orphan closers are all handled. When reasoning exhausts the budget entirely, the captured reasoning text is returned as a last-ditch fallback so the caller sees *something* rather than a silent empty body.
370
395
 
396
+ **OpenRouter** — handles reasoning as a structured per-request parameter and a separate `message.reasoning` response field. Houtini-lm sends `reasoning: { exclude: true }` on every OpenRouter call so thinking models (Nemotron, DeepSeek R1, Qwen3, Claude thinking, gpt-oss, etc.) are normalised to text-only output at the provider level. Budget inflation still fires because some upstream providers bill reasoning tokens against the cap before `exclude` filtering. No stripping is needed — the provider never sends the reasoning in the first place.
397
+
371
398
  The quality footer flags `think-blocks-stripped` when stripping occurred, `reasoning-only` when the fallback fired, and `hit-max-tokens` when the budget ran out — so you know exactly what happened even when the output looks clean.
372
399
 
373
400
  ## Quality metadata
@@ -406,16 +433,19 @@ The `houtini://metrics/session` MCP resource exposes cumulative offload stats as
406
433
 
407
434
  ## Request serialisation
408
435
 
409
- Parallel MCP tool calls are automatically queued and run one at a time. Most local LLM servers run a single model — without serialisation, parallel requests stack timeouts and waste the generation budget. The semaphore ensures each call gets the full timeout window.
436
+ On **local** providers (LM Studio, Ollama, vLLM, llama.cpp) parallel MCP tool calls are automatically queued and run one at a time. A single-GPU host can only serve one request at a time anyway — without the semaphore, parallel calls stack timeouts and waste the generation budget.
437
+
438
+ On **remote** providers (OpenRouter, DeepSeek, Groq, Cerebras, and anything detected as a non-local backend) the semaphore is skipped — the upstream handles parallelism natively and serialising artificially would throttle you. This is automatic; you don't need to configure it.
410
439
 
411
440
  ## Configuration
412
441
 
413
442
  | Variable | Default | What it does |
414
443
  |----------|---------|-------------|
415
- | `LM_STUDIO_URL` | `http://localhost:1234` | Base URL of the OpenAI-compatible API |
416
- | `LM_STUDIO_MODEL` | *(auto-detect)* | Model identifier - leave blank to use whatever's loaded |
417
- | `LM_STUDIO_PASSWORD` | *(none)* | Bearer token for authenticated endpoints |
418
- | `LM_CONTEXT_WINDOW` | `100000` | Fallback context window if the API doesn't report it |
444
+ | `HOUTINI_LM_ENDPOINT_URL` | `http://localhost:1234` | Base URL of the OpenAI-compatible API. Legacy alias: `LM_STUDIO_URL`. |
445
+ | `HOUTINI_LM_API_KEY` | *(none)* | Bearer token for authenticated endpoints. Legacy aliases: `LM_STUDIO_PASSWORD`, `LM_PASSWORD`, `OPENROUTER_API_KEY`. |
446
+ | `HOUTINI_LM_MODEL` | *(auto-detect)* | Model identifier leave blank to use whatever's loaded. Legacy alias: `LM_STUDIO_MODEL`. |
447
+ | `HOUTINI_LM_PROVIDER` | *(auto-detect)* | Force provider-specific handling. Set to `openrouter` for OpenRouter attribution headers, `reasoning.exclude`, and no inference serialisation. Otherwise auto-detected from the endpoint URL. |
448
+ | `HOUTINI_LM_CONTEXT_WINDOW` | `100000` | Fallback context window if the API doesn't report it. Legacy alias: `LM_CONTEXT_WINDOW`. |
419
449
 
420
450
  ## Compatible endpoints
421
451
 
@@ -424,7 +454,8 @@ Works with anything that speaks the OpenAI `/v1/chat/completions` API:
424
454
  | What | URL | Notes |
425
455
  |------|-----|-------|
426
456
  | [LM Studio](https://lmstudio.ai) | `http://localhost:1234` | Default, zero config. Rich metadata via v0 API. |
427
- | [Ollama](https://ollama.com) | `http://localhost:11434` | Set `LM_STUDIO_URL`. Thinking models (qwen3, deepseek-r1) handled transparently — reasoning is captured from Ollama's `delta.reasoning` channel and the output budget is inflated automatically so small thinking models don't return empty bodies. |
457
+ | [Ollama](https://ollama.com) | `http://localhost:11434` | Set `HOUTINI_LM_ENDPOINT_URL`. Thinking models (qwen3, deepseek-r1) handled transparently — reasoning is captured from Ollama's `delta.reasoning` channel and the output budget is inflated automatically so small thinking models don't return empty bodies. |
458
+ | [OpenRouter](https://openrouter.ai) | `https://openrouter.ai/api` | 300+ models from one endpoint. Auto-detected — sends attribution headers, uses `reasoning.exclude` for thinking models, retries 429/5xx with jittered backoff, parallel requests allowed. |
428
459
  | [vLLM](https://docs.vllm.ai) | `http://localhost:8000` | Native OpenAI API |
429
460
  | [llama.cpp](https://github.com/ggml-org/llama.cpp) | `http://localhost:8080` | Server mode |
430
461
  | [DeepSeek](https://platform.deepseek.com) | `https://api.deepseek.com` | 28c/M input tokens |
package/dist/index.js CHANGED
@@ -11,9 +11,21 @@ import { CallToolRequestSchema, ListToolsRequestSchema, ListResourcesRequestSche
11
11
  import { profileModelsAtStartup, getCachedProfile, toModelProfile as cachedToProfile, getHFEnrichmentLine, getPromptHints, getThinkingSupport, recordPerformance, getAllPerformance, getLifetimeTotals, recordPrefillSample, getPrefillSamples, fitPrefillLinear, } from './model-cache.js';
12
12
  import { readFile } from 'node:fs/promises';
13
13
  import { isAbsolute, basename } from 'node:path';
14
- const LM_BASE_URL = process.env.LM_STUDIO_URL || 'http://localhost:1234';
15
- const LM_MODEL = process.env.LM_STUDIO_MODEL || '';
16
- const LM_PASSWORD = process.env.LM_STUDIO_PASSWORD || '';
14
+ // Env var naming: HOUTINI_LM_* is the preferred namespace now that we
15
+ // support more than just LM Studio. The legacy LM_STUDIO_* names remain
16
+ // accepted indefinitely so existing users don't need to change anything.
17
+ const LM_BASE_URL = process.env.HOUTINI_LM_ENDPOINT_URL ||
18
+ process.env.LM_STUDIO_URL ||
19
+ 'http://localhost:1234';
20
+ const LM_MODEL = process.env.HOUTINI_LM_MODEL ||
21
+ process.env.LM_STUDIO_MODEL ||
22
+ '';
23
+ const LM_PASSWORD = process.env.HOUTINI_LM_API_KEY ||
24
+ process.env.LM_STUDIO_PASSWORD ||
25
+ process.env.LM_PASSWORD ||
26
+ process.env.OPENROUTER_API_KEY ||
27
+ '';
28
+ const HOUTINI_LM_PROVIDER = (process.env.HOUTINI_LM_PROVIDER || '').toLowerCase();
17
29
  const DEFAULT_MAX_TOKENS = 16384; // fallback when model context is unknown — overridden by dynamic calculation below
18
30
  const DEFAULT_TEMPERATURE = 0.3;
19
31
  const CONNECT_TIMEOUT_MS = 5000;
@@ -22,7 +34,7 @@ const SOFT_TIMEOUT_MS = 300_000; // 5 min — progress notifications reset MCP c
22
34
  const READ_CHUNK_TIMEOUT_MS = 30_000; // max wait for a single SSE chunk mid-stream
23
35
  const PREFILL_TIMEOUT_MS = 180_000; // max wait for the FIRST chunk — prompt prefill on slow hardware with big inputs can legitimately take 1-2 min
24
36
  const PREFILL_KEEPALIVE_MS = 10_000; // fire a progress notification every N ms while waiting for prefill to finish
25
- const FALLBACK_CONTEXT_LENGTH = parseInt(process.env.LM_CONTEXT_WINDOW || '100000', 10);
37
+ const FALLBACK_CONTEXT_LENGTH = parseInt(process.env.HOUTINI_LM_CONTEXT_WINDOW || process.env.LM_CONTEXT_WINDOW || '100000', 10);
26
38
  // ── Session-level token accounting ───────────────────────────────────
27
39
  // Tracks cumulative tokens offloaded to the local LLM across all calls
28
40
  // in this session. Shown in every response footer so Claude can reason
@@ -186,6 +198,9 @@ function apiHeaders() {
186
198
  const h = { 'Content-Type': 'application/json' };
187
199
  if (LM_PASSWORD)
188
200
  h['Authorization'] = `Bearer ${LM_PASSWORD}`;
201
+ const profile = getProviderProfile();
202
+ for (const [k, v] of Object.entries(profile.extraHeaders))
203
+ h[k] = v;
189
204
  return h;
190
205
  }
191
206
  // ── Request semaphore ────────────────────────────────────────────────
@@ -194,6 +209,10 @@ function apiHeaders() {
194
209
  // only one inference call runs at a time; others wait in line.
195
210
  let inferenceLock = Promise.resolve();
196
211
  function withInferenceLock(fn) {
212
+ // Remote providers (OpenRouter etc.) benefit from parallelism and do
213
+ // their own rate-limit handling; serialising here just throttles us.
214
+ if (!getProviderProfile().serialiseInference)
215
+ return fn();
197
216
  let release;
198
217
  const next = new Promise((resolve) => { release = resolve; });
199
218
  const wait = inferenceLock;
@@ -431,6 +450,56 @@ async function fetchWithTimeout(url, options, timeoutMs = CONNECT_TIMEOUT_MS) {
431
450
  clearTimeout(timer);
432
451
  }
433
452
  }
453
+ /**
454
+ * Parse Retry-After (seconds or HTTP-date) into ms. Null for unparseable.
455
+ */
456
+ function parseRetryAfter(headerValue) {
457
+ if (!headerValue)
458
+ return null;
459
+ const asInt = parseInt(headerValue, 10);
460
+ if (Number.isFinite(asInt) && asInt >= 0)
461
+ return asInt * 1000;
462
+ const asDate = Date.parse(headerValue);
463
+ if (Number.isFinite(asDate)) {
464
+ const delta = asDate - Date.now();
465
+ return delta > 0 ? delta : 0;
466
+ }
467
+ return null;
468
+ }
469
+ /**
470
+ * Retry a fetch on 429/5xx with jittered backoff. Only used when the
471
+ * current provider profile opts in (`retryOnRateLimit: true`). Each attempt
472
+ * gets its own fresh timeout so retries don't starve.
473
+ */
474
+ async function fetchWithRetry(url, options, timeoutMs, retries) {
475
+ let lastErr;
476
+ for (let attempt = 0; attempt <= retries; attempt++) {
477
+ try {
478
+ const res = await fetchWithTimeout(url, options, timeoutMs);
479
+ if ((res.status === 429 || res.status >= 500) && attempt < retries) {
480
+ const retryAfter = parseRetryAfter(res.headers.get('retry-after'));
481
+ try {
482
+ await res.body?.cancel();
483
+ }
484
+ catch { /* ignore */ }
485
+ const base = 400 * (attempt + 1);
486
+ const target = Math.min(Math.max(base, retryAfter ?? 0), 10_000);
487
+ const delay = Math.round(target * (0.5 + Math.random())); // 0.5×..1.5×
488
+ await new Promise((r) => setTimeout(r, delay));
489
+ continue;
490
+ }
491
+ return res;
492
+ }
493
+ catch (e) {
494
+ lastErr = e;
495
+ if (attempt < retries) {
496
+ const delay = Math.round(400 * (attempt + 1) * (0.5 + Math.random()));
497
+ await new Promise((r) => setTimeout(r, delay));
498
+ }
499
+ }
500
+ }
501
+ throw lastErr instanceof Error ? lastErr : new Error(String(lastErr));
502
+ }
434
503
  /**
435
504
  * Read from a stream with a per-chunk timeout.
436
505
  * Prevents hanging forever if the LLM stalls mid-generation.
@@ -529,7 +598,23 @@ async function chatCompletionStreamingInner(messages, options = {}) {
529
598
  // Hence the family-specific mapping below. When uncertain, we omit the
530
599
  // field entirely rather than risk a bad-value fallback.
531
600
  const modelId = (resolvedModel || '').toString();
532
- if (modelId) {
601
+ const profile = getProviderProfile();
602
+ if (profile.reasoningStyle === 'openrouter-field') {
603
+ // OpenRouter exposes reasoning as a separate response field and takes a
604
+ // per-request `reasoning: { exclude: true }` param to suppress it at the
605
+ // source. We don't expose a thinking channel to MCP clients, so exclude
606
+ // is the cleanest option. We still inflate max_tokens because some
607
+ // providers bill/count reasoning tokens against the cap before exclude
608
+ // filtering — and because `exclude` only hides reasoning, it doesn't
609
+ // guarantee the model generates less of it.
610
+ body.reasoning = { exclude: true };
611
+ const beforeInflation = effectiveMaxTokens;
612
+ const inflated = Math.max(beforeInflation * 4, beforeInflation + 2000);
613
+ body.max_tokens = inflated;
614
+ body.max_completion_tokens = inflated;
615
+ process.stderr.write(`[houtini-lm] OpenRouter model ${modelId || '(unspecified)'}: reasoning.exclude=true, max_tokens inflated ${beforeInflation} → ${inflated}\n`);
616
+ }
617
+ else if (modelId) {
533
618
  const thinking = await getThinkingSupport(modelId);
534
619
  if (thinking?.supportsThinkingToggle) {
535
620
  body.enable_thinking = false;
@@ -547,7 +632,9 @@ async function chatCompletionStreamingInner(messages, options = {}) {
547
632
  }
548
633
  }
549
634
  const startTime = Date.now();
550
- const res = await fetchWithTimeout(`${LM_BASE_URL}/v1/chat/completions`, { method: 'POST', headers: apiHeaders(), body: JSON.stringify(body) }, INFERENCE_CONNECT_TIMEOUT_MS);
635
+ const res = profile.retryOnRateLimit
636
+ ? await fetchWithRetry(`${LM_BASE_URL}/v1/chat/completions`, { method: 'POST', headers: apiHeaders(), body: JSON.stringify(body) }, INFERENCE_CONNECT_TIMEOUT_MS, 2)
637
+ : await fetchWithTimeout(`${LM_BASE_URL}/v1/chat/completions`, { method: 'POST', headers: apiHeaders(), body: JSON.stringify(body) }, INFERENCE_CONNECT_TIMEOUT_MS);
551
638
  if (!res.ok) {
552
639
  const text = await res.text().catch(() => '');
553
640
  throw new Error(`LM Studio API error ${res.status}: ${text}`);
@@ -774,6 +861,30 @@ let detectedBackend = null;
774
861
  function getBackend() {
775
862
  return detectedBackend ?? 'openai-compat';
776
863
  }
864
+ function getProviderProfile() {
865
+ const backend = getBackend();
866
+ const isOpenRouter = backend === 'openrouter' ||
867
+ HOUTINI_LM_PROVIDER === 'openrouter' ||
868
+ /openrouter\.ai/i.test(LM_BASE_URL);
869
+ if (isOpenRouter) {
870
+ return {
871
+ extraHeaders: {
872
+ 'HTTP-Referer': 'https://github.com/houtini-ai/lm',
873
+ 'X-Title': 'houtini-lm',
874
+ },
875
+ serialiseInference: false,
876
+ retryOnRateLimit: true,
877
+ reasoningStyle: 'openrouter-field',
878
+ };
879
+ }
880
+ // Local / OpenAI-compatible defaults.
881
+ return {
882
+ extraHeaders: {},
883
+ serialiseInference: true,
884
+ retryOnRateLimit: false,
885
+ reasoningStyle: 'think-blocks',
886
+ };
887
+ }
777
888
  /**
778
889
  * Fetch models with backend-aware probing.
779
890
  * 1. LM Studio /api/v0/models — richest metadata, sets backend='lmstudio'
@@ -781,6 +892,26 @@ function getBackend() {
781
892
  * 3. OpenAI-compatible /v1/models — generic fallback (DeepSeek, vLLM, llama.cpp, OpenRouter)
782
893
  */
783
894
  async function listModelsRaw() {
895
+ // OpenRouter short-circuit — no point probing LM Studio/Ollama-specific
896
+ // endpoints. /v1/models returns richer metadata than our fallback path
897
+ // normally exposes: context_length, architecture.input_modalities, pricing.
898
+ const isOpenRouter = HOUTINI_LM_PROVIDER === 'openrouter' || /openrouter\.ai/i.test(LM_BASE_URL);
899
+ if (isOpenRouter) {
900
+ const res = await fetchWithTimeout(`${LM_BASE_URL}/v1/models`, { headers: apiHeaders() });
901
+ if (!res.ok)
902
+ throw new Error(`Failed to list OpenRouter models: ${res.status}`);
903
+ const data = (await res.json());
904
+ detectedBackend = 'openrouter';
905
+ return data.data.map((m) => ({
906
+ id: m.id,
907
+ object: 'model',
908
+ type: 'llm',
909
+ state: 'loaded', // OpenRouter models are always routable
910
+ context_length: m.context_length,
911
+ max_context_length: m.context_length,
912
+ publisher: m.id.includes('/') ? m.id.split('/')[0] : undefined,
913
+ }));
914
+ }
784
915
  // Try LM Studio's v0 API first — returns type, arch, publisher, quantization, state
785
916
  try {
786
917
  const v0 = await fetchWithTimeout(`${LM_BASE_URL}/api/v0/models`, { headers: apiHeaders() });
@@ -930,13 +1061,21 @@ async function estimatePrefill(inputChars, modelId) {
930
1061
  prefillTokPerSec: DEFAULT_PREFILL_TOK_PER_SEC,
931
1062
  };
932
1063
  }
933
- async function routeToModel(taskType) {
1064
+ async function routeToModel(taskType, override) {
1065
+ // Explicit override wins over routing. Honoured regardless of whether we
1066
+ // can even list models — useful for remote providers (OpenRouter) where
1067
+ // the user knows the model id and doesn't want routing to second-guess.
1068
+ const pinned = override || LM_MODEL;
1069
+ if (pinned) {
1070
+ const hints = getPromptHints(pinned);
1071
+ return { modelId: pinned, hints };
1072
+ }
934
1073
  let models;
935
1074
  try {
936
1075
  models = await listModelsRaw();
937
1076
  }
938
1077
  catch {
939
- // Can't reach server — fall back to default
1078
+ // Can't reach server — fall back to default (empty string; caller handles)
940
1079
  const hints = getPromptHints(LM_MODEL);
941
1080
  return { modelId: LM_MODEL || '', hints };
942
1081
  }
@@ -1142,6 +1281,10 @@ const TOOLS = [
1142
1281
  type: 'object',
1143
1282
  description: 'Force structured JSON output. Provide a JSON Schema object and the response will be guaranteed valid JSON conforming to it. Example: {"name":"result","schema":{"type":"object","properties":{"answer":{"type":"string"}},"required":["answer"]}}',
1144
1283
  },
1284
+ model: {
1285
+ type: 'string',
1286
+ description: 'Optional: pin to a specific model id (e.g. "nvidia/nemotron-3-nano-30b-a3b:free" on OpenRouter, "qwen.qwen3-coder-30b-a3b-instruct" on LM Studio). When set, overrides automatic routing. Useful on providers with many models where auto-routing picks poorly.',
1287
+ },
1145
1288
  },
1146
1289
  required: ['message'],
1147
1290
  },
@@ -1188,6 +1331,10 @@ const TOOLS = [
1188
1331
  type: 'object',
1189
1332
  description: 'Force structured JSON output. Provide a JSON Schema object and the response will be guaranteed valid JSON conforming to it.',
1190
1333
  },
1334
+ model: {
1335
+ type: 'string',
1336
+ description: 'Optional: pin to a specific model id. When set, overrides automatic routing.',
1337
+ },
1191
1338
  },
1192
1339
  required: ['instruction'],
1193
1340
  },
@@ -1226,6 +1373,10 @@ const TOOLS = [
1226
1373
  type: 'number',
1227
1374
  description: 'Max response tokens. Defaults to 25% of the loaded model\'s context window (fallback 16,384).',
1228
1375
  },
1376
+ model: {
1377
+ type: 'string',
1378
+ description: 'Optional: pin to a specific model id. When set, overrides automatic routing.',
1379
+ },
1229
1380
  },
1230
1381
  required: ['code', 'task'],
1231
1382
  },
@@ -1265,6 +1416,10 @@ const TOOLS = [
1265
1416
  type: 'number',
1266
1417
  description: 'Optional output budget override. Defaults to 25% of the loaded model\'s context window.',
1267
1418
  },
1419
+ model: {
1420
+ type: 'string',
1421
+ description: 'Optional: pin to a specific model id. When set, overrides automatic routing.',
1422
+ },
1268
1423
  },
1269
1424
  required: ['paths', 'task'],
1270
1425
  },
@@ -1331,7 +1486,7 @@ const SIDEKICK_INSTRUCTIONS = `Houtini-lm is a local LLM sidekick. It runs on th
1331
1486
  `When to reach for it: bounded, self-contained tasks you can describe in one message — explanations, boilerplate, test stubs, code review of pasted or file-loaded source, translations, commit messages, format conversion, brainstorming. Trades wall-clock time for tokens (typically 3-30× slower than frontier models).\n\n` +
1332
1487
  `When not to: tasks that need tool access, cross-file reasoning you haven't captured, or work fast enough to answer directly before the delegation round-trip completes.\n\n` +
1333
1488
  `Call \`discover\` in delegation-heavy sessions to see what model is loaded, its capability profile, and — after the first real call — its measured speed. The response footer reports cumulative tokens kept in the user's quota.`;
1334
- const server = new Server({ name: 'houtini-lm', version: '2.12.0' }, { capabilities: { tools: {}, resources: {} }, instructions: SIDEKICK_INSTRUCTIONS });
1489
+ const server = new Server({ name: 'houtini-lm', version: '2.13.1' }, { capabilities: { tools: {}, resources: {} }, instructions: SIDEKICK_INSTRUCTIONS });
1335
1490
  // ── MCP Resources ─────────────────────────────────────────────────────
1336
1491
  // Exposes session performance metrics as a readable resource so Claude can
1337
1492
  // proactively check offload efficiency and make smarter delegation decisions.
@@ -1383,8 +1538,8 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
1383
1538
  try {
1384
1539
  switch (name) {
1385
1540
  case 'chat': {
1386
- const { message, system, temperature, max_tokens, json_schema } = args;
1387
- const route = await routeToModel('chat');
1541
+ const { message, system, temperature, max_tokens, json_schema, model } = args;
1542
+ const route = await routeToModel('chat', model);
1388
1543
  const messages = [];
1389
1544
  // Inject output constraint into system prompt if the model needs it
1390
1545
  const systemContent = system
@@ -1407,8 +1562,8 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
1407
1562
  return { content: [{ type: 'text', text: resp.content + footer }] };
1408
1563
  }
1409
1564
  case 'custom_prompt': {
1410
- const { system, context, instruction, temperature, max_tokens, json_schema } = args;
1411
- const route = await routeToModel('analysis');
1565
+ const { system, context, instruction, temperature, max_tokens, json_schema, model } = args;
1566
+ const route = await routeToModel('analysis', model);
1412
1567
  const messages = [];
1413
1568
  const systemContent = system
1414
1569
  ? (route.hints.outputConstraint ? `${system}\n\n${route.hints.outputConstraint}` : system)
@@ -1439,9 +1594,9 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
1439
1594
  };
1440
1595
  }
1441
1596
  case 'code_task': {
1442
- const { code, task, language, max_tokens: codeMaxTokens } = args;
1597
+ const { code, task, language, max_tokens: codeMaxTokens, model } = args;
1443
1598
  const lang = language || 'unknown';
1444
- const route = await routeToModel('code');
1599
+ const route = await routeToModel('code', model);
1445
1600
  const outputConstraint = route.hints.outputConstraint
1446
1601
  ? ` ${route.hints.outputConstraint}`
1447
1602
  : '';
@@ -1468,7 +1623,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
1468
1623
  return { content: [{ type: 'text', text: codeResp.content + codeFooter + suggestionLine }] };
1469
1624
  }
1470
1625
  case 'code_task_files': {
1471
- const { paths, task, language, max_tokens: codeMaxTokens } = args;
1626
+ const { paths, task, language, max_tokens: codeMaxTokens, model } = args;
1472
1627
  if (!Array.isArray(paths) || paths.length === 0) {
1473
1628
  return {
1474
1629
  content: [{ type: 'text', text: 'Error: paths must be a non-empty array of absolute file paths.' }],
@@ -1507,7 +1662,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
1507
1662
  };
1508
1663
  }
1509
1664
  const lang = language || 'unknown';
1510
- const route = await routeToModel('code');
1665
+ const route = await routeToModel('code', model);
1511
1666
  const outputConstraint = route.hints.outputConstraint
1512
1667
  ? ` ${route.hints.outputConstraint}`
1513
1668
  : '';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@houtini/lm",
3
- "version": "2.12.0",
3
+ "version": "2.13.1",
4
4
  "type": "module",
5
5
  "description": "MCP server for local LLMs — connects to LM Studio or any OpenAI-compatible endpoint",
6
6
  "mcpName": "io.github.houtini-ai/lm",
package/server.json CHANGED
@@ -7,12 +7,12 @@
7
7
  "url": "https://github.com/houtini-ai/lm",
8
8
  "source": "github"
9
9
  },
10
- "version": "2.12.0",
10
+ "version": "2.13.1",
11
11
  "packages": [
12
12
  {
13
13
  "registryType": "npm",
14
14
  "identifier": "@houtini/lm",
15
- "version": "2.12.0",
15
+ "version": "2.13.1",
16
16
  "transport": [
17
17
  {
18
18
  "type": "stdio"
@@ -20,22 +20,28 @@
20
20
  ],
21
21
  "environmentVariables": [
22
22
  {
23
- "name": "LM_STUDIO_URL",
24
- "description": "Base URL of the OpenAI-compatible API endpoint",
23
+ "name": "HOUTINI_LM_ENDPOINT_URL",
24
+ "description": "Base URL of the OpenAI-compatible API endpoint (e.g. http://localhost:1234, https://openrouter.ai/api). Legacy alias: LM_STUDIO_URL.",
25
25
  "isRequired": false,
26
26
  "format": "url"
27
27
  },
28
28
  {
29
- "name": "LM_STUDIO_MODEL",
30
- "description": "Model identifier to use for requests (auto-detected if not set)",
29
+ "name": "HOUTINI_LM_API_KEY",
30
+ "description": "Bearer token for API authentication (no auth if blank). Legacy aliases: LM_STUDIO_PASSWORD, LM_PASSWORD, OPENROUTER_API_KEY.",
31
31
  "isRequired": false,
32
+ "isSecret": true,
32
33
  "format": "string"
33
34
  },
34
35
  {
35
- "name": "LM_STUDIO_PASSWORD",
36
- "description": "Bearer token for API authentication (no auth if blank)",
36
+ "name": "HOUTINI_LM_MODEL",
37
+ "description": "Model identifier to use for requests (auto-detected if not set). Legacy alias: LM_STUDIO_MODEL.",
38
+ "isRequired": false,
39
+ "format": "string"
40
+ },
41
+ {
42
+ "name": "HOUTINI_LM_PROVIDER",
43
+ "description": "Optional provider override: 'openrouter' forces OpenRouter-specific handling (attribution headers, reasoning.exclude, no inference serialisation). Auto-detected from the endpoint URL when possible.",
37
44
  "isRequired": false,
38
- "isSecret": true,
39
45
  "format": "string"
40
46
  }
41
47
  ]