@houtini/lm 2.13.2 → 3.2.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/README.md +15 -4
- package/dist/index.d.ts +1 -1
- package/dist/index.js +732 -307
- package/dist/index.js.map +1 -1
- package/dist/inference-lock.d.ts +39 -0
- package/dist/inference-lock.js +155 -0
- package/dist/inference-lock.js.map +1 -0
- package/dist/model-cache.d.ts +27 -10
- package/dist/model-cache.js +239 -241
- package/dist/model-cache.js.map +1 -1
- package/dist/suppress-experimental-warnings.d.ts +0 -0
- package/dist/suppress-experimental-warnings.js +17 -0
- package/dist/suppress-experimental-warnings.js.map +1 -0
- package/package.json +4 -6
- package/server.json +2 -2
package/README.md
CHANGED
|
@@ -40,6 +40,8 @@ Claude's the architect. Your local model's the drafter. Claude QAs everything.
|
|
|
40
40
|
|
|
41
41
|
## Quick start
|
|
42
42
|
|
|
43
|
+
> New to local models? See **[docs/GETTING-STARTED.md](./docs/GETTING-STARTED.md)** — installing LM Studio or a Docker endpoint, getting an OpenAI-compatible URL for houtini, what the smaller models are good at, and which models fit on 16/32/64/96/128 GB of VRAM.
|
|
44
|
+
|
|
43
45
|
### Claude Code
|
|
44
46
|
|
|
45
47
|
```bash
|
|
@@ -125,7 +127,7 @@ Available models (downloaded, not loaded):
|
|
|
125
127
|
HuggingFace: text-generation, 12.9K downloads, Apache-2.0
|
|
126
128
|
```
|
|
127
129
|
|
|
128
|
-
For models we know well - Qwen, Nemotron, Granite, LLaMA, GLM, GPT-OSS - there's a curated profile built in with specific strengths and weaknesses. For everything else, the HuggingFace lookup fills the gaps. Cache refreshes every 7 days. Zero friction - `
|
|
130
|
+
For models we know well - Qwen, Nemotron, Granite, LLaMA, GLM, GPT-OSS - there's a curated profile built in with specific strengths and weaknesses. For everything else, the HuggingFace lookup fills the gaps. Cache refreshes every 7 days. Zero friction - the cache uses `node:sqlite` (Node's built-in SQLite, so no third-party native dependency and no build tools) in WAL mode, which lets several houtini-lm processes share one cache safely. Requires Node ≥ 22.5.
|
|
129
131
|
|
|
130
132
|
## What gets offloaded
|
|
131
133
|
|
|
@@ -289,7 +291,7 @@ Example output:
|
|
|
289
291
|
|
|
290
292
|
```
|
|
291
293
|
## Houtini LM stats
|
|
292
|
-
**Endpoint**: http://
|
|
294
|
+
**Endpoint**: http://gpu-box:1234 (LM Studio)
|
|
293
295
|
**First call on this workstation**: 2026-04-14
|
|
294
296
|
|
|
295
297
|
### Totals
|
|
@@ -362,7 +364,7 @@ The canonical way to verify an install and get an honest read on what the loaded
|
|
|
362
364
|
npm run shakedown
|
|
363
365
|
```
|
|
364
366
|
|
|
365
|
-
This runs [`shakedown.mjs`](./shakedown.mjs) — an end-to-end test that exercises
|
|
367
|
+
This runs [`shakedown.mjs`](./shakedown.mjs) — an end-to-end test that exercises seven of the eight tools (`discover` → `list_models` → `chat` → `custom_prompt` → `code_task` → `code_task_files` → `embed`; `stats` is not covered) and prints a summary table with real TTFT, tok/s, token counts, and reasoning-token split for each call. Takes under a minute on a decent rig.
|
|
366
368
|
|
|
367
369
|
Sample output tail:
|
|
368
370
|
|
|
@@ -446,6 +448,15 @@ On **remote** providers (OpenRouter, DeepSeek, Groq, Cerebras, and anything dete
|
|
|
446
448
|
| `HOUTINI_LM_MODEL` | *(auto-detect)* | Model identifier — leave blank to use whatever's loaded. Legacy alias: `LM_STUDIO_MODEL`. |
|
|
447
449
|
| `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
450
|
| `HOUTINI_LM_CONTEXT_WINDOW` | `100000` | Fallback context window if the API doesn't report it. Legacy alias: `LM_CONTEXT_WINDOW`. |
|
|
451
|
+
| `HOUTINI_LM_FILE_ROOTS` | *(unset)* | Optional `:`/`,`-separated allowlist of directory roots `code_task_files` may read from (symlink-resolved). Unset = any absolute path. |
|
|
452
|
+
| `HOUTINI_LM_MAX_FILE_MB` | `10` | Per-file size cap for `code_task_files`. |
|
|
453
|
+
| `HOUTINI_LM_CROSS_PROCESS_LOCK` | `1` | Set to `0` to disable just the cross-process inference lock (keeps the in-process semaphore). |
|
|
454
|
+
| `HOUTINI_LM_SERIALISE` | `1` | Set to `0` to disable inference serialisation entirely (both the in-process semaphore and the cross-process lock). Use for backends that batch natively (vLLM, TGI, SGLang) where one-at-a-time only throttles throughput. |
|
|
455
|
+
| `HOUTINI_LM_MIN_TOKENS` | `4096` | Floor for caller-supplied `max_tokens`. Values below the floor are ignored and the dynamic budget (25% of the model's context window) applies — MCP clients habitually pass tiny caps like 256 that strangle reasoning models. Set to `0` to honour any value (e.g. deliberate micro-chunking on slow hardware). |
|
|
456
|
+
|
|
457
|
+
**Per-request sampling** — `chat`, `custom_prompt`, `code_task`, and `code_task_files` also accept optional `seed`, `stop`, `top_p`, `top_k`, `repeat_penalty`, `frequency_penalty`, and `presence_penalty`. Out-of-range values are ignored; the backend default applies.
|
|
458
|
+
|
|
459
|
+
> **Requires Node ≥ 22.5** (≥ 22.13 recommended) — the model cache uses Node's built-in `node:sqlite`. On older Node the server still runs, without the cache.
|
|
449
460
|
|
|
450
461
|
## Compatible endpoints
|
|
451
462
|
|
|
@@ -473,7 +484,7 @@ If the connection stalls (no new tokens for an extended period), you get a parti
|
|
|
473
484
|
|
|
474
485
|
```
|
|
475
486
|
index.ts Main MCP server - tools, streaming, session tracking
|
|
476
|
-
model-cache.ts SQLite-backed model profile cache (
|
|
487
|
+
model-cache.ts SQLite-backed model profile cache (node:sqlite, WAL)
|
|
477
488
|
Auto-profiles models via HuggingFace API at startup
|
|
478
489
|
Persists to ~/.houtini-lm/model-cache.db
|
|
479
490
|
|
package/dist/index.d.ts
CHANGED