@jaypie/mcp 0.8.50 → 0.8.52

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.
@@ -9,7 +9,7 @@ import { gt } from 'semver';
9
9
  /**
10
10
  * Docs Suite - Documentation services (skill, version, release_notes)
11
11
  */
12
- const BUILD_VERSION_STRING = "@jaypie/mcp@0.8.50#a1804d0f"
12
+ const BUILD_VERSION_STRING = "@jaypie/mcp@0.8.52#704908ba"
13
13
  ;
14
14
  const __filename$1 = fileURLToPath(import.meta.url);
15
15
  const __dirname$1 = path.dirname(__filename$1);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jaypie/mcp",
3
- "version": "0.8.50",
3
+ "version": "0.8.52",
4
4
  "description": "Jaypie MCP",
5
5
  "repository": {
6
6
  "type": "git",
@@ -0,0 +1,11 @@
1
+ ---
2
+ version: 1.2.44
3
+ date: 2026-04-29
4
+ summary: Pull in @jaypie/llm 1.2.32 (OpenAI temperature-deprecation handling)
5
+ ---
6
+
7
+ ## Changes
8
+
9
+ - Bumped `@jaypie/llm` peer-dep range to `^1.2.32`, exposing:
10
+ - The OpenAI adapter strips `temperature` for denylisted models (`^gpt-5\.5`, `^o\d`) and transparently retries without the param when the API returns `400 Unsupported parameter: 'temperature' …`.
11
+ - Capability matrix now exercises `temperature` across every configured model.
@@ -0,0 +1,9 @@
1
+ ---
2
+ version: 1.2.45
3
+ date: 2026-04-30
4
+ summary: Bump @jaypie/llm peer-dep range to ^1.2.33 (OpenRouter image/file pass-through + temperature strip-and-retry)
5
+ ---
6
+
7
+ ## Changes
8
+
9
+ - `peerDependencies["@jaypie/llm"]` bumped from `^1.2.32` to `^1.2.33` so consumers pull in the OpenRouter image/file pass-through, the temperature strip-and-retry path, and the Zod v4 `~standard` marker fix in `formatOutputSchema`.
@@ -0,0 +1,23 @@
1
+ ---
2
+ version: 1.2.32
3
+ date: 2026-04-29
4
+ summary: OpenAI adapter strips/retries on temperature deprecation; matrix gains a temperature capability
5
+ ---
6
+
7
+ ## Changes
8
+
9
+ - `OpenAiAdapter` (`operate()`/`stream()`) now mirrors the Anthropic adapter's temperature-deprecation handling:
10
+ - `MODELS_WITHOUT_TEMPERATURE` regex denylist (`^gpt-5\.5`, `^o\d`) is checked in `buildRequest` and `temperature` is stripped before the request is sent.
11
+ - Session-level `runtimeNoTemperatureModels` Set populated by `executeRequest` when the API returns `400 Unsupported parameter: 'temperature' …`. Subsequent calls for the same model strip the param up-front via `supportsTemperature`.
12
+ - `executeRequest` catches the 400, caches the model, and transparently retries without `temperature`. Unrelated 400s and 400s on requests without `temperature` still propagate.
13
+ - `clearRuntimeNoTemperatureModels()` exposed for tests.
14
+ - Capability matrix (`test/matrix.ts`, `test/models.ts`) gains a `temperature` capability that runs a basic prompt with `temperature: 0` and verifies a non-empty response. Runs across every model in the matrix.
15
+
16
+ ## Why
17
+
18
+ `gpt-5.5` rejects `temperature` outright (`400 Unsupported parameter`). Every prior adapter that hit this returned an unrecoverable error to the caller. Matching the Anthropic pattern lets the OpenAI adapter handle the deprecation transparently — first call for an unknown model pays one round-trip to learn; denylisted models pay nothing — so callers can pass `temperature` portably across the model line.
19
+
20
+ ## Notes
21
+
22
+ - The denylist regex is forward-compatible: any future `gpt-5.5.*` or o-series variant strips automatically. Other models that newly deprecate the param fall into the runtime-cache path on first 400.
23
+ - Streaming (`executeStreamRequest`) does not retry on temperature errors; it relies on the denylist + warmed runtime cache from prior `operate()` calls. Models not yet in the cache will surface the 400 to the streaming consumer.
@@ -0,0 +1,28 @@
1
+ ---
2
+ version: 1.2.33
3
+ date: 2026-04-30
4
+ summary: OpenRouter image/file pass-through, temperature strip-and-retry, Zod v4 ~standard marker fix, Gemini scalar tool-result wrapping; matrix harness now evaluates OpenRouter as a collective
5
+ ---
6
+
7
+ ## Changes
8
+
9
+ ### Gemini adapter
10
+
11
+ - `formatToolResult` now wraps non-object tool outputs (strings, numbers, booleans, arrays, null) in `{ result: value }` before assigning to `function_response.response`. Gemini's protobuf `Struct` only accepts plain objects; gemini-3.1-pro-preview was lenient about it, but gemini-3.1-flash-lite-preview rejected scalars with `INVALID_ARGUMENT`. The built-in `time` tool (and any tool returning a bare value) now works on every Gemini 3 model.
12
+
13
+ ### OpenRouter adapter
14
+
15
+ - Image and file content parts now pass through to OpenRouter as `image_url` and `file` parts (camelCase at the SDK input boundary, transformed to snake_case on the wire). The previous behavior dropped images/files with a warning. Backends that don't support a modality 4xx — that's a model-capability mismatch surfaced by the call rather than silently lost.
16
+ - New strip-and-retry pattern for routes that reject `temperature` (for example `openai/gpt-5.5`). A vendor-prefixed denylist plus a session runtime cache mirrors the OpenAI adapter: the param is stripped pre-flight on known routes and on any 400 mentioning "temperature" the route is cached and the request retried without the param.
17
+ - `formatOutputSchema` now drops the non-enumerable `~standard` Standard-Schema interop marker that Zod v4's `z.toJSONSchema()` attaches to its output. Anthropic's strict `output_config.format` rejects unknown properties, so when OpenRouter forwards the schema to an Anthropic backend the marker has to be stripped — accomplished by re-spreading into a plain object since the property is non-configurable.
18
+
19
+ ### Capability matrix harness (`test/matrix.ts`)
20
+
21
+ - OpenRouter rows are evaluated as a collective rather than per-cell. Individual cell failures display as ⚠️ (not ❌) and the block passes as long as every row (per model) and every column (per capability) has a strict majority of ok cells. Skipped cells are excluded from the denominator.
22
+ - The `!` mismatch indicator is now suppressed whenever the actual outcome is a failure — the ❌ glyph already conveys the issue.
23
+ - `models.ts` adds five OpenRouter routes: `anthropic/claude-sonnet-4.6`, `google/gemini-3.1-pro-preview`, `moonshotai/kimi-k2.6`, `openai/gpt-5.5`, `x-ai/grok-4.20`.
24
+
25
+ ### CI
26
+
27
+ - `npm-check.yml` `test-llm-matrix` job now passes `OPENROUTER_API_KEY` (sourced from `CICD_OPENROUTER_API_KEY`).
28
+ - `npm-deploy.yml` adds a `test-llm-matrix` job mirroring `test-llm-client`, also wired to `CICD_OPENROUTER_API_KEY`. Runs on every push to `main` and on `deploy-*`/`dev-*`/`rc-*` tags.
@@ -0,0 +1,10 @@
1
+ ---
2
+ version: 0.8.51
3
+ date: 2026-04-29
4
+ summary: Add release notes for @jaypie/llm 1.2.32 and jaypie 1.2.44 (OpenAI temperature-deprecation handling)
5
+ ---
6
+
7
+ ## Changes
8
+
9
+ - Added `release-notes/llm/1.2.32.md` covering the OpenAI adapter's temperature-deprecation strip-and-retry path and the new `temperature` capability in the matrix harness.
10
+ - Added `release-notes/jaypie/1.2.44.md` for the corresponding `jaypie` peer-dep bump to `@jaypie/llm` `^1.2.32`.
@@ -0,0 +1,10 @@
1
+ ---
2
+ version: 0.8.52
3
+ date: 2026-04-30
4
+ summary: Add release notes for @jaypie/llm 1.2.33 and jaypie 1.2.45 (OpenRouter image/file + temperature handling, Gemini scalar tool-result wrapping, collective matrix evaluation)
5
+ ---
6
+
7
+ ## Changes
8
+
9
+ - Added `release-notes/llm/1.2.33.md` covering OpenRouter image/file pass-through, the temperature strip-and-retry pattern, the Zod v4 `~standard` marker fix in `formatOutputSchema`, the Gemini `function_response.response` Struct wrapping fix, and the matrix harness's collective OpenRouter evaluation.
10
+ - Added `release-notes/jaypie/1.2.45.md` for the corresponding `jaypie` peer-dep bump to `@jaypie/llm` `^1.2.33`.