@jaypie/mcp 0.8.186 → 0.8.188

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/dist/assets.js CHANGED
@@ -55,11 +55,11 @@ function getMcpAssetPaths() {
55
55
  */
56
56
  function getMcpBuildInfo() {
57
57
  return {
58
- commit: "5f9c6bfe"
58
+ commit: "b2041bca"
59
59
  ,
60
- version: "0.8.186"
60
+ version: "0.8.188"
61
61
  ,
62
- versionString: "@jaypie/mcp@0.8.186#5f9c6bfe"
62
+ versionString: "@jaypie/mcp@0.8.188#b2041bca"
63
63
  ,
64
64
  };
65
65
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jaypie/mcp",
3
- "version": "0.8.186",
3
+ "version": "0.8.188",
4
4
  "description": "Jaypie MCP",
5
5
  "repository": {
6
6
  "type": "git",
@@ -0,0 +1,26 @@
1
+ ---
2
+ version: 1.3.63
3
+ date: 2026-10-08
4
+ summary: MODEL.HAIKU points at Claude Haiku 5.5
5
+ ---
6
+
7
+ ## Changes
8
+
9
+ ### Claude Haiku 5.5
10
+
11
+ - `MODEL.HAIKU` is now `claude-haiku-5-5`, superseding `claude-haiku-4-5`. Every `MODEL.HAIKU` consumer follows, including the live matrix.
12
+ - `COST` prices `claude-haiku-5-5` at $0.10 input and $0.50 output per million tokens, with cache reads at $0.01 and cache writes at $0.125 (5m) and $0.20 (1h). This is the rate card for prompts up to 100K tokens; the $0.50 / $2.50 long-prompt rate is not modeled. The `claude-haiku-4-5` entry stays so historic usage remains replayable.
13
+ - Streaming requests resolve Haiku 5.5's 128,000 output-token maximum. Haiku 4.5 keeps 64,000.
14
+ - `AnthropicAdapter` strips `temperature` for Haiku 5 and later, which reject non-default sampling parameters with a 400.
15
+ - The deprecated `PROVIDER.ANTHROPIC.MODEL.TINY` tier stays frozen on `claude-haiku-4-5`.
16
+
17
+ ### Behavior to expect from the new model
18
+
19
+ - Thinking is adaptive and on by default, and it counts toward `max_tokens`. A caller passing a small explicit output limit may see a response stop before any text.
20
+ - Cost per token drops tenfold against Haiku 4.5, though the newer tokenizer counts the same text as about 30% more tokens.
21
+
22
+ ## Testing
23
+
24
+ - `maxOutputTokens.spec.ts` covers the 128,000 ceiling for `claude-haiku-5-5` alongside 64,000 for `claude-haiku-4-5`.
25
+ - `AnthropicAdapter.spec.ts` covers the temperature strip for `claude-haiku-5-5`.
26
+ - Verified live: `claude-haiku-5-5` passes all seven capability matrix cells.
@@ -0,0 +1,43 @@
1
+ ---
2
+ version: 1.3.64
3
+ date: 2026-10-09
4
+ summary: MODEL.MISTRAL.LARGE points at Mistral Large 4, MODEL.MISTRAL.MEDIUM returns, and models that cannot combine format with tools are marked
5
+ ---
6
+
7
+ ## Changes
8
+
9
+ ### Models that cannot combine `format` with tools
10
+
11
+ - `LLM.FORMAT_WITH_TOOLS_UNSUPPORTED` lists, by literal id, the models known not to settle when one call carries both `format` and `tools`: `mistral-large-4`, `mistral-large-4-0`, and `mistral-medium-3-5`. Either option alone works on them.
12
+ - `operate()` and `stream()` log a warning when such a model is asked for the pair, then run the call anyway.
13
+ - In a fallback chain the attempt throws `LlmUnrecoverableError` before any request goes out, so the next model takes over at once. The linger pass on the primary still runs the call.
14
+ - The live matrix skips the `both` cell for every listed id, cataloged or passed through `APP_MODELS`. `APP_FORCE=1` still runs it.
15
+
16
+ ### Mistral Large 4
17
+
18
+ - `MODEL.MISTRAL.LARGE` is now `mistral-large-4-0` (public preview since 2026-10-06), superseding `mistral-large-2512`. `PROVIDER.MISTRAL.DEFAULT` follows. Mistral's own `mistral-large-latest` alias still names Large 3.
19
+ - `COST` prices `mistral-large-4-0` at its list rate: $1.36 input, $4.18 output, and $0.14 cached input per million tokens. Mistral currently bills half that under an open-ended "sale price"; promotional rates are not modeled. The `mistral-large-2512` entry stays so historic usage remains replayable.
20
+ - `MistralAdapter` sends `reasoning_effort` to Large 4 and later. Large 4 accepts `none` and `high` like the other reasoning models. Large 3 and `mistral-large-latest` still omit the field.
21
+
22
+ ### Mistral Medium
23
+
24
+ - `MODEL.MISTRAL.MEDIUM` is back in the catalog as `mistral-medium-3-5`. It was removed on 2026-08-02 because it cannot combine `format` with tools; the marker above now carries that limit.
25
+
26
+ ### Greedy sampling
27
+
28
+ - `MistralAdapter` sends `top_p: 1` alongside `temperature: 0` unless the caller set `top_p`. Large 4 rejects a bare `temperature: 0` with "top_p must be 1 when using greedy sampling" while it reasons. 1 is the API default, so other models are unaffected.
29
+
30
+ ### Behavior to expect from Large 4
31
+
32
+ - A call that passes both `format` and `tools` on `MODEL.MISTRAL.LARGE` or the Mistral default now warns, and usually does not finish. It worked on Large 3.
33
+ - PDF and other `document_url` input fails with "The model `mistral-ocr-2512` does not exist for router `ocr`". This is on Mistral's side and worked on Large 3. `Llm.ocr` is unaffected.
34
+ - Reasoning is on by default and counts toward output tokens. Pass `effort: "lowest"` to turn it off.
35
+ - List price is about 2.7 times Large 3's.
36
+
37
+ ## Testing
38
+
39
+ - `MistralAdapter.spec.ts` covers the effort gate for Large 4 against Large 3, and the `top_p` pin.
40
+ - `constants.spec.ts` covers the Mistral catalog, its prices, and the marked ids.
41
+ - `guardFormatWithTools.spec.ts` covers the warning, the fail-fast throw, and the silent cases; `Llm.class.spec.ts` covers `failFast` reaching chain attempts and not the linger pass or a lone model.
42
+ - Verified live on 2026-10-09: a `format` plus `tools` call on `["mistral-large-4-0", MODEL.MISTRAL.SMALL]` failed over and answered in 1.1 seconds.
43
+ - Verified live on 2026-10-09 with `APP_GROUP=mistral`: `mistral-large-4-0` passes five cells with `both` and `pdf` skipped, `mistral-medium-3-5` passes six with `both` skipped, and `mistral-small-2603` passes all seven.
package/skills/llm.md CHANGED
@@ -59,7 +59,7 @@ LlamaCloud serves LlamaParse, which extracts documents and generates no text. Th
59
59
  ### Model Constants
60
60
 
61
61
  - **`PROVIDER.<name>.DEFAULT`** — the single default model per provider (above), used when no `model` is given.
62
- - **`LLM.MODEL.*`** — the named model catalog (e.g. `MODEL.SONNET`, `MODEL.ASTRA`, `MODEL.SOL`, `MODEL.GEMINI_FLASH`, `MODEL.GROK`, `MODEL.MUSE_SPARK`, `MODEL.MUSE_SPARK_CONTRIBUTOR`, `MODEL.NOVA_PRO`, `MODEL.NOVA_LITE`), plus three nested subtrees: `MODEL.FIREWORKS.*` for Fireworks serverless models (`DEEPSEEK`, `DEEPSEEK_FLASH`, `GLM`, `GLM_FLASH`, `GPT_OSS`, `INKLING`, `KIMI`, `MINIMAX`, `NEMOTRON`, `QWEN`), `MODEL.MISTRAL.*` (`LARGE`, `OCR`, `SMALL`), `MODEL.LLAMAPARSE.*` for LlamaParse tiers (`FAST`, `COST_EFFECTIVE`, `AGENTIC`, `AGENTIC_PLUS`), and `MODEL.OPENROUTER.*` for provider-prefixed routes (`GLM`, `LUNA`, `MIMO`, `SONNET`). Pick specific models from here. `MODEL.MISTRAL.OCR` and `MODEL.LLAMAPARSE.*` are document-extraction engines reached through `Llm.ocr`, not chat completions: they are priced per page in `LLM.PAGE_COST` (USD per 1,000 pages, keyed by literal id) and carry no `COST` entry. Amazon's Nova models are first-class ids served over Bedrock; Bedrock's third-party routes are not catalogued — pass the literal id (e.g. `us.anthropic.claude-sonnet-4-6`) and `determineModelProvider` resolves it to `bedrock`.
62
+ - **`LLM.MODEL.*`** — the named model catalog (e.g. `MODEL.SONNET`, `MODEL.ASTRA`, `MODEL.SOL`, `MODEL.GEMINI_FLASH`, `MODEL.GROK`, `MODEL.MUSE_SPARK`, `MODEL.MUSE_SPARK_CONTRIBUTOR`, `MODEL.NOVA_PRO`, `MODEL.NOVA_LITE`), plus three nested subtrees: `MODEL.FIREWORKS.*` for Fireworks serverless models (`DEEPSEEK`, `DEEPSEEK_FLASH`, `GLM`, `GLM_FLASH`, `GPT_OSS`, `INKLING`, `KIMI`, `MINIMAX`, `NEMOTRON`, `QWEN`), `MODEL.MISTRAL.*` (`LARGE`, `MEDIUM`, `OCR`, `SMALL`), `MODEL.LLAMAPARSE.*` for LlamaParse tiers (`FAST`, `COST_EFFECTIVE`, `AGENTIC`, `AGENTIC_PLUS`), and `MODEL.OPENROUTER.*` for provider-prefixed routes (`GLM`, `LUNA`, `MIMO`, `SONNET`). Pick specific models from here. `MODEL.MISTRAL.OCR` and `MODEL.LLAMAPARSE.*` are document-extraction engines reached through `Llm.ocr`, not chat completions: they are priced per page in `LLM.PAGE_COST` (USD per 1,000 pages, keyed by literal id) and carry no `COST` entry. Amazon's Nova models are first-class ids served over Bedrock; Bedrock's third-party routes are not catalogued — pass the literal id (e.g. `us.anthropic.claude-sonnet-4-6`) and `determineModelProvider` resolves it to `bedrock`.
63
63
  - `MODEL.MUSE_SPARK` and `MODEL.MUSE_SPARK_CONTRIBUTOR` are the same Meta model at two tiers. The contributor tier is roughly a tenth of the price because prompts and completions may train Meta models; it is limited to 100 RPM and does not accept `reasoning.effort: "max"`. It is an explicit opt-in: `PROVIDER.META.DEFAULT` is `MODEL.MUSE_SPARK`.
64
64
  - The catalog is the **single source of truth for CI coverage**: `packages/llm/test/models.ts` derives the live capability matrix from `MODEL.*` plus each `PROVIDER.*.DEFAULT`, and the workflow shards it by provider. Adding a model to `MODEL.*` puts it under test; no id list exists anywhere else.
65
65
  - **Deprecated:** the size-tier map `PROVIDER.<name>.MODEL.{DEFAULT,LARGE,SMALL,TINY}`, the `DEFAULT.MODEL` bundle, and `ALL` are `@deprecated` and retired in 2.0 — use `PROVIDER.*.DEFAULT` for defaults and `MODEL.*` for named models.
@@ -1240,10 +1240,30 @@ erroring):
1240
1240
  answers in prose.
1241
1241
  - **Mistral** — only models that reason accept the field, and they accept only
1242
1242
  `none` and `high`, so the neutral scale collapses to a binary: `lowest` maps
1243
- to `none`, everything else to `high`. Mistral Large 3 rejects the field
1244
- outright and is skipped; a model that rejects it at runtime is cached and the
1243
+ to `none`, everything else to `high`. Mistral Large 3 (`mistral-large-2512`)
1244
+ rejects the field outright and is skipped, while Large 4
1245
+ (`MODEL.MISTRAL.LARGE`) accepts it and reasons by default when `effort` is
1246
+ unset; a model that rejects it at runtime is cached and the
1245
1247
  request transparently retried without it. Structured output combines with
1246
1248
  tools natively — no emulation.
1249
+
1250
+ ### Models that cannot combine `format` with tools
1251
+
1252
+ `LLM.FORMAT_WITH_TOOLS_UNSUPPORTED` lists, by literal id, the models known not
1253
+ to settle when one call carries both `format` and `tools` (currently
1254
+ `mistral-large-4`, `mistral-large-4-0`, and `mistral-medium-3-5`, which are
1255
+ `MODEL.MISTRAL.LARGE` and `MODEL.MISTRAL.MEDIUM`). They restate
1256
+ the answer or re-call the tool, and a request can run for minutes. Either
1257
+ option alone works.
1258
+
1259
+ - `operate()` and `stream()` log a warning and run the call anyway when such a
1260
+ model is the only one.
1261
+ - In a fallback chain (a `model` array or `fallback`), the attempt throws
1262
+ `LlmUnrecoverableError` before any request goes out and the next model takes
1263
+ over. If every model fails, the primary still runs once more as usual.
1264
+
1265
+ Jaypie 2.0 splits `operate` into `ask` (structured) and `loop` (tools).
1266
+
1247
1267
  - **Bedrock** — not yet wired; `effort` is ignored.
1248
1268
 
1249
1269
  ### Per-model effort
@@ -1346,7 +1366,7 @@ truncate:
1346
1366
  - **Non-streaming** (`operate()`, `send()`): capped at 16,384 tokens —
1347
1367
  larger non-streaming responses risk HTTP timeouts (stream instead)
1348
1368
  - **Streaming** (`stream()`): the model maximum — e.g., 128,000 for current
1349
- Claude models (64,000 for Haiku), 65,536 for Gemini 2.5/3.x
1369
+ Claude models (64,000 for Haiku 4.5), 65,536 for Gemini 2.5/3.x
1350
1370
 
1351
1371
  Override per model with `modelOptions`:
1352
1372