@yanlinglabs/winter-provider-catalog 0.0.24 → 0.0.28
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/PROVENANCE.md +11 -1
- package/README.md +1 -1
- package/dist/index.js +1361 -26
- package/dist/types.d.ts +113 -0
- package/dist/validate.d.ts +4 -0
- package/generated/catalog.json +1322 -25
- package/overlay/models.json +1391 -96
- package/overlay/providers.json +4 -3
- package/package.json +1 -1
- package/schema/catalog.schema.json +55 -1
package/dist/types.d.ts
CHANGED
|
@@ -54,6 +54,12 @@ export type ModelStatus = "candidate" | "experimental" | "supported" | "deprecat
|
|
|
54
54
|
* continuation domain (Anthropic strips thinking across Claude models), so `continuationDomain`
|
|
55
55
|
* lists the models PROVEN to accept this endpoint's native continuation object.
|
|
56
56
|
*/
|
|
57
|
+
/** WS-23: how a row takes a per-message effort change -- see `ReasoningCapabilities.perMessageEffort`. */
|
|
58
|
+
export type PerMessageEffortMechanism = {
|
|
59
|
+
beta: "mid-conversation-output-config-2026-07-01";
|
|
60
|
+
} | {
|
|
61
|
+
item: "configuration_update";
|
|
62
|
+
};
|
|
57
63
|
export interface ReasoningCapabilities {
|
|
58
64
|
supported: CapabilityEvidence<boolean>;
|
|
59
65
|
/** The model's own effort vocabulary, verbatim. Vocabularies are NOT interchangeable across providers (WS-13 §8.2). */
|
|
@@ -95,6 +101,27 @@ export interface ReasoningCapabilities {
|
|
|
95
101
|
blockBinding?: CapabilityEvidence<{
|
|
96
102
|
beta: "thinking-binding-controls-2026-08-01";
|
|
97
103
|
}>;
|
|
104
|
+
/**
|
|
105
|
+
* The model takes a PER-MESSAGE effort change (WS-23, 2026-09-25): a `role: "system"` message with
|
|
106
|
+
* empty `content` and `output_config.effort` inside `messages`, applied "from the next `user` turn"
|
|
107
|
+
* while the top-level `output_config.effort` stays fixed, so the cached prefix survives the switch
|
|
108
|
+
* (https://platform.claude.com/docs/en/build-with-claude/effort#change-effort-mid-conversation-beta).
|
|
109
|
+
* Documented for Claude Fable 5.1, Mythos 5.1, Opus 5.5 and Opus 5; Claude Fable 5 returns a 400.
|
|
110
|
+
* ABSENT means a change is a new top-level value, which restarts the cache. `beta` is the header
|
|
111
|
+
* value, a closed vocabulary (`CATALOG_VOCABULARIES.perMessageEffortBetas`).
|
|
112
|
+
*
|
|
113
|
+
* WS-23 (midconv lane): the value names the row's MECHANISM, because two vendors document one:
|
|
114
|
+
* - `{ beta }` -- Anthropic's effort-only `system` message above, behind that beta header;
|
|
115
|
+
* - `{ item: "configuration_update" }` -- OpenAI's Responses input item
|
|
116
|
+
* `{"type":"configuration_update","reasoning":{"effort":…}}`, placed "before the next user
|
|
117
|
+
* message", with the top-level `reasoning.effort` kept fixed ("Configuration updates are
|
|
118
|
+
* supported by the GPT-6 model family in standard, single-agent mode. They change only reasoning
|
|
119
|
+
* effort.", https://developers.openai.com/api/docs/guides/reasoning). A closed vocabulary
|
|
120
|
+
* (`CATALOG_VOCABULARIES.perMessageEffortItems`).
|
|
121
|
+
* The engine keys only on PRESENCE (either mechanism lays out the same markers); each adapter
|
|
122
|
+
* refuses, typed, a row whose mechanism is not its own.
|
|
123
|
+
*/
|
|
124
|
+
perMessageEffort?: CapabilityEvidence<PerMessageEffortMechanism>;
|
|
98
125
|
}
|
|
99
126
|
/** List prices, USD per million tokens. R6-H: the ONLY price source Winter has — an unpriced model reports `0` / `costBasis: "unknown"`, never an invented number. */
|
|
100
127
|
export interface ModelPricing {
|
|
@@ -203,6 +230,92 @@ export interface WinterModelDescriptor {
|
|
|
203
230
|
parallelTools?: CapabilityEvidence<boolean>;
|
|
204
231
|
structuredOutput?: CapabilityEvidence<boolean>;
|
|
205
232
|
promptCaching?: CapabilityEvidence<boolean>;
|
|
233
|
+
/**
|
|
234
|
+
* WS-23: the model takes tools declared with `defer_loading: true` and expands the `tool_reference`
|
|
235
|
+
* blocks a client's own tool-search tool returns inside a `tool_result` -- Anthropic's "custom tool
|
|
236
|
+
* search implementation" (https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-search-tool).
|
|
237
|
+
* A deferred tool stays out of the rendered prompt prefix until it is referenced, so loading one no
|
|
238
|
+
* longer changes `tools` and no longer invalidates the prompt cache. `true` is the only meaningful
|
|
239
|
+
* value; absent keeps today's shape (a loaded deferred tool is appended to `tools`).
|
|
240
|
+
*/
|
|
241
|
+
deferredToolLoading?: CapabilityEvidence<boolean>;
|
|
242
|
+
/**
|
|
243
|
+
* WS-23: the model takes a MID-CONVERSATION `role: "system"` message carrying text -- an operator
|
|
244
|
+
* instruction appended at the point it becomes relevant instead of editing the top-level `system`
|
|
245
|
+
* field, so the cached prefix survives it
|
|
246
|
+
* (https://platform.claude.com/docs/en/build-with-claude/mid-conversation-system-messages; GA, no
|
|
247
|
+
* beta header). `true` is the only meaningful value; absent keeps reminders as user-turn text.
|
|
248
|
+
*/
|
|
249
|
+
midConversationSystem?: CapabilityEvidence<boolean>;
|
|
250
|
+
/**
|
|
251
|
+
* WS-23: the endpoint takes a `prompt_cache_key` that groups a caller's requests for cache routing
|
|
252
|
+
* (OpenAI Responses: "Use a stable `prompt_cache_key` to optimize cache routing for requests that
|
|
253
|
+
* share a reusable prefix", https://developers.openai.com/api/docs/guides/prompt-caching). `true` is
|
|
254
|
+
* the only meaningful value; absent sends no key.
|
|
255
|
+
*/
|
|
256
|
+
promptCacheKey?: CapabilityEvidence<boolean>;
|
|
257
|
+
/**
|
|
258
|
+
* WS-23 (midconv): the model takes MID-CONVERSATION TOOL CHANGES BY REFERENCE -- a `role: "system"`
|
|
259
|
+
* message carrying `tool_addition` / `tool_removal` blocks that name a tool `tools` declares, so what
|
|
260
|
+
* the model may call changes without editing `tools` and the cached prefix survives
|
|
261
|
+
* (https://platform.claude.com/docs/en/build-with-claude/mid-conversation-system-messages). `beta`
|
|
262
|
+
* is the header value, a closed vocabulary (`CATALOG_VOCABULARIES.midConversationToolChangeBetas`).
|
|
263
|
+
* Documented for Claude Fable 5.1, Mythos 5.1, Fable 5, Mythos 5, Opus 5.5, Opus 4.8 and Opus 5 on
|
|
264
|
+
* the Claude API, Amazon Bedrock and Google Cloud; "Not available on Claude Sonnet 5".
|
|
265
|
+
*/
|
|
266
|
+
midConversationToolChanges?: CapabilityEvidence<{
|
|
267
|
+
beta: "mid-conversation-tool-changes-2026-07-01";
|
|
268
|
+
}>;
|
|
269
|
+
/**
|
|
270
|
+
* WS-23 (midconv): the model also takes a tool DEFINED BY VALUE mid-conversation -- a `tool_addition`
|
|
271
|
+
* whose `tool` is a `tool_definition` -- for a tool unknown at the first request, or a new definition
|
|
272
|
+
* under an existing name ("The new definition replaces the earlier one from that position onward").
|
|
273
|
+
* The header covers the reference changes too. Claude API only (same page). `beta` is a closed
|
|
274
|
+
* vocabulary (`CATALOG_VOCABULARIES.inlineToolDefinitionBetas`).
|
|
275
|
+
*/
|
|
276
|
+
inlineToolDefinitions?: CapabilityEvidence<{
|
|
277
|
+
beta: "inline-tools-2026-09-15";
|
|
278
|
+
}>;
|
|
279
|
+
/**
|
|
280
|
+
* WS-23 (midconv): the model takes OpenAI's CLIENT-EXECUTED tool search -- a
|
|
281
|
+
* `{"type": "tool_search", "execution": "client", description, parameters}` tool, `tool_search_call`
|
|
282
|
+
* output items the client answers with `tool_search_output` (the loaded definitions, `defer_loading`
|
|
283
|
+
* kept, optionally grouped in `namespace` entries), so deferred tools never sit in `tools`
|
|
284
|
+
* (https://developers.openai.com/api/docs/guides/tools-tool-search: "Only gpt-5.4 and later models
|
|
285
|
+
* support tool_search"). `true` is the only meaningful value.
|
|
286
|
+
*/
|
|
287
|
+
clientToolSearch?: CapabilityEvidence<boolean>;
|
|
288
|
+
/**
|
|
289
|
+
* WS-23 (midconv): the model takes an `additional_tools` developer input item -- tools that "become
|
|
290
|
+
* available only after that item appears in the input", replayed at their position -- so a tool can be
|
|
291
|
+
* added mid-conversation without editing `tools` (same page). `true` is the only meaningful value.
|
|
292
|
+
*/
|
|
293
|
+
additionalToolsItem?: CapabilityEvidence<boolean>;
|
|
294
|
+
/**
|
|
295
|
+
* WS-23 (midconv): the model takes `tool_choice: {"type": "allowed_tools", "mode": "auto" | "required",
|
|
296
|
+
* "tools": [...]}` -- a callable subset of `tools` "but not modify the list of tools you pass in, so you
|
|
297
|
+
* can maximize savings from prompt caching" (https://developers.openai.com/api/docs/guides/function-calling).
|
|
298
|
+
* `true` is the only meaningful value.
|
|
299
|
+
*/
|
|
300
|
+
allowedToolsChoice?: CapabilityEvidence<boolean>;
|
|
301
|
+
/**
|
|
302
|
+
* WS-24: the endpoint takes a call to a tool that is NOT in the request's `tools` -- the model called
|
|
303
|
+
* it from a definition it was shown in a tool result -- and takes that call and its result in the
|
|
304
|
+
* history of later requests. A fork of a session (whose `tools` is its parent's, frozen so the cached
|
|
305
|
+
* prefix is shared) relies on it to run a tool it loads itself where the row documents no mechanism
|
|
306
|
+
* that declares the tool (`deferredToolLoading`, `clientToolSearch`). No vendor documents this, so it is
|
|
307
|
+
* LIVE-PROBE-PROVEN only (`scripts/probe-fork-undeclared-tool.ts`), never set from a page. `true` is the
|
|
308
|
+
* only meaningful value; absent keeps such a call refused ("No such tool available").
|
|
309
|
+
*/
|
|
310
|
+
undeclaredToolCalls?: CapabilityEvidence<boolean>;
|
|
311
|
+
/**
|
|
312
|
+
* WS-23 (midconv, live gate): whether the model takes an ASSISTANT PREFILL -- a request whose
|
|
313
|
+
* `messages` ends with an assistant turn. `false` is the meaningful value: "Prefilling assistant
|
|
314
|
+
* messages returns a 400 error on Claude Opus 4.6 and later Opus models, including Claude Opus 5.5"
|
|
315
|
+
* and on Claude Sonnet 5 (https://platform.claude.com/docs/en/models/opus-5-5/migration-guide), and on
|
|
316
|
+
* Claude Fable 5 / 5.1. An adapter refuses such a request typed instead of sending it. Absent = unknown.
|
|
317
|
+
*/
|
|
318
|
+
assistantPrefill?: CapabilityEvidence<boolean>;
|
|
206
319
|
reasoning?: ReasoningCapabilities;
|
|
207
320
|
pricing?: CapabilityEvidence<ModelPricing>;
|
|
208
321
|
/** R6-14: set only after the safety corpus passes live. A worker with no configured classifier route serves only when this is true AND `structuredOutput.confidence === "verified"`. */
|
package/dist/validate.d.ts
CHANGED
|
@@ -64,6 +64,10 @@ export declare const CATALOG_VOCABULARIES: {
|
|
|
64
64
|
readonly toolLoopRequirements: readonly ["hard-error", "silent-degradation", "not-required"];
|
|
65
65
|
readonly effortRequestFields: readonly ["output_config.effort"];
|
|
66
66
|
readonly blockBindingBetas: readonly ["thinking-binding-controls-2026-08-01"];
|
|
67
|
+
readonly perMessageEffortBetas: readonly ["mid-conversation-output-config-2026-07-01"];
|
|
68
|
+
readonly perMessageEffortItems: readonly ["configuration_update"];
|
|
69
|
+
readonly midConversationToolChangeBetas: readonly ["mid-conversation-tool-changes-2026-07-01"];
|
|
70
|
+
readonly inlineToolDefinitionBetas: readonly ["inline-tools-2026-09-15"];
|
|
67
71
|
};
|
|
68
72
|
/**
|
|
69
73
|
* Recursively scans any JSON value for credential material. Exported because Lane X's generator
|