@providerkit/core 0.5.0 → 0.6.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 CHANGED
@@ -60,6 +60,21 @@ try {
60
60
  }
61
61
  ```
62
62
 
63
+ ### Z.ai Coding Plan
64
+
65
+ `createZaiCodingProvider` uses the Coding Plan endpoint with Bearer authentication.
66
+ Pass your plan's key and a model it supports:
67
+
68
+ ```ts
69
+ import { createZaiCodingProvider } from "@providerkit/core";
70
+
71
+ const provider = createZaiCodingProvider({ apiKey, model: "glm-5.2" });
72
+ ```
73
+
74
+ It returns the same provider interface as the adapters above. The API root is
75
+ `https://api.z.ai/api/anthropic`; the adapter adds `/v1/messages`.
76
+ Usage reports tokens consumed, not the price of your subscription.
77
+
63
78
  **Full documentation lives at [providerkit.dev](https://providerkit.dev)** — it is the single
64
79
  source of truth for usage, and this README deliberately stays a front door so the two cannot
65
80
  drift.
package/dist/index.d.ts CHANGED
@@ -15,4 +15,5 @@ export * from "./providers/anthropic.ts";
15
15
  export * from "./providers/openai.ts";
16
16
  export * from "./providers/responses.ts";
17
17
  export * from "./providers/gemini.ts";
18
+ export * from "./providers/zai.ts";
18
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC"}
package/dist/index.js CHANGED
@@ -15,4 +15,5 @@ export * from "./providers/anthropic.js";
15
15
  export * from "./providers/openai.js";
16
16
  export * from "./providers/responses.js";
17
17
  export * from "./providers/gemini.js";
18
+ export * from "./providers/zai.js";
18
19
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC"}
@@ -21,6 +21,15 @@ export interface AnthropicConfig {
21
21
  /** Send the key as a Bearer instead of `x-api-key` — what a subscription
22
22
  * access token needs. */
23
23
  bearer?: boolean;
24
+ /** Say "no thinking" with an explicit `thinking: { type: "disabled" }` when
25
+ * effort resolves to none, instead of omitting the field. For endpoints
26
+ * where an absent field means the MODEL's default, not off — Z.ai's coding
27
+ * endpoint reads silence as thinking ON for reasoning-mandatory models like
28
+ * GLM 5.3 Flash (measured 2026-09-13: omit → thinking block; disabled →
29
+ * none), and it accepts the marker natively. Native Anthropic has no such
30
+ * marker and defaults to off when the field is absent, so leave this unset
31
+ * there. */
32
+ explicitNone?: boolean;
24
33
  }
25
34
  export declare function toAnthropicMessages(messages: readonly ChatMessage[]): {
26
35
  system?: unknown[];
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAEV,WAAW,EAEX,MAAM,EAEN,QAAQ,EAIT,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd;wCACoC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;uEAEmE;IACnE,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB;wEACoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC;8BAC0B;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAsFD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,SAAS,WAAW,EAAE,GAAG;IACrE,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;IACnB,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB,CAqDA;AAyBD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,eAAe,GAAG,QAAQ,CAwJzE"}
1
+ {"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAEV,WAAW,EAEX,MAAM,EAEN,QAAQ,EAIT,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd;wCACoC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;uEAEmE;IACnE,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB;wEACoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC;8BAC0B;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;;;;iBAOa;IACb,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAsFD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,SAAS,WAAW,EAAE,GAAG;IACrE,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;IACnB,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB,CAqDA;AA2BD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,eAAe,GAAG,QAAQ,CAuKzE"}
@@ -184,11 +184,16 @@ export function createAnthropicProvider(config) {
184
184
  delete request.temperature;
185
185
  delete request.top_p;
186
186
  }
187
+ else if (config.explicitNone) {
188
+ // The one dialect where silence means the model default — which is ON
189
+ // for a reasoning-mandatory model — so "none" has to be said out loud.
190
+ request.thinking = { type: "disabled" };
191
+ }
187
192
  // Anthropic reports cache reads and writes as fields of their OWN,
188
193
  // EXCLUDED from `input_tokens` — where the OpenAI shapes report a cached
189
194
  // subset already inside the prompt count. Reconciling here is what keeps
190
195
  // one usage record meaningful across both, and a cost figure honest.
191
- let inputTokens = 0;
196
+ let freshInputTokens = 0;
192
197
  let cachedInputTokens = 0;
193
198
  let cacheWriteTokens = 0;
194
199
  let outputTokens = 0;
@@ -226,7 +231,7 @@ export function createAnthropicProvider(config) {
226
231
  const usage = event.message?.usage;
227
232
  cachedInputTokens = usage?.cache_read_input_tokens ?? 0;
228
233
  cacheWriteTokens = usage?.cache_creation_input_tokens ?? 0;
229
- inputTokens = (usage?.input_tokens ?? 0) + cachedInputTokens + cacheWriteTokens;
234
+ freshInputTokens = usage?.input_tokens ?? 0;
230
235
  break;
231
236
  }
232
237
  case "content_block_start": {
@@ -264,6 +269,12 @@ export function createAnthropicProvider(config) {
264
269
  toolCall = null;
265
270
  break;
266
271
  case "message_delta": {
272
+ // Z.ai starts with zero input usage and reports the real totals here.
273
+ // These are cumulative counters, not increments. Native Anthropic
274
+ // usually sends only output_tokens here, so absent fields retain theirs.
275
+ freshInputTokens = event.usage?.input_tokens ?? freshInputTokens;
276
+ cachedInputTokens = event.usage?.cache_read_input_tokens ?? cachedInputTokens;
277
+ cacheWriteTokens = event.usage?.cache_creation_input_tokens ?? cacheWriteTokens;
267
278
  outputTokens = event.usage?.output_tokens ?? outputTokens;
268
279
  const finishReason = mapStopReason(event.delta?.stop_reason);
269
280
  if (finishReason)
@@ -273,7 +284,12 @@ export function createAnthropicProvider(config) {
273
284
  case "message_stop":
274
285
  yield {
275
286
  type: "usage",
276
- usage: { inputTokens, cachedInputTokens, cacheWriteTokens, outputTokens },
287
+ usage: {
288
+ inputTokens: freshInputTokens + cachedInputTokens + cacheWriteTokens,
289
+ cachedInputTokens,
290
+ cacheWriteTokens,
291
+ outputTokens,
292
+ },
277
293
  };
278
294
  break;
279
295
  }
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,10 @@ export interface OpenAIConfig {
4
4
  model: string;
5
5
  /** Any OpenAI-compatible endpoint. Defaults to OpenAI itself. */
6
6
  baseUrl?: string;
7
+ /** Path appended to baseUrl. Defaults to /v1/chat/completions. Set
8
+ * /chat/completions when the base already includes the API version, such as
9
+ * a gateway using /v4 rather than /v1. */
10
+ path?: string;
7
11
  /** Names the provider in errors and logs — "openrouter", "deepseek", … It
8
12
  * also picks the effort dialect below, unless `effortDialect` overrides. */
9
13
  id?: string;
@@ -67,16 +71,20 @@ export type EffortDialect = "openai" | "openrouter" | "deepseek" | "off";
67
71
  *
68
72
  * One knob, three incompatible spellings, and the differences are not cosmetic:
69
73
  *
70
- * - **OpenRouter's off switch is the effort, never the `enabled` flag.**
71
- * `reasoning.enabled: false` IS refused by models that always think — GLM 5.3
72
- * Flash answers `400 "Reasoning is mandatory for this endpoint and cannot be
73
- * disabled."`, which cost one app its onboarding read. That measurement is
74
- * still why nothing here ever emits that field. But it was read as "OpenRouter
75
- * has no off switch" and `none` was floored to `low` on the strength of it,
76
- * which is a different field: `none` is a member of OpenRouter's own effort
77
- * enum, an unsupported level is mapped to the nearest rather than refused, and
78
- * an app has been sending it in production throughout. The floor was buying a
79
- * thinking pass on every turn that asked for none.
74
+ * - **On OpenRouter, a model that must think refuses BOTH off switches.**
75
+ * `reasoning.enabled: false` is refused by GLM 5.3 Flash with
76
+ * `400 "Reasoning is mandatory for this endpoint and cannot be disabled."`,
77
+ * which cost one app its onboarding read, and is why nothing here ever emits
78
+ * that field. That was then read as "OpenRouter has no off switch" and `none`
79
+ * was floored to `low` on the strength of it — wrong, because `none` is a
80
+ * member of OpenRouter's own effort enum and the floor bought a thinking pass
81
+ * on every turn that asked for none. But the correction over-reached: `none`
82
+ * is NOT universally safe either. Re-measured 2026-09-09, the same model
83
+ * answers the same 400 to `effort: "none"`. An unsupported level is mapped to
84
+ * the nearest only where the model CAN vary its effort; where thinking is
85
+ * mandatory, `none` is refused outright and the whole call is lost.
86
+ * The honest way to ask for the least thinking on this dialect is to pass no
87
+ * effort at all — see `effortParams`, where the numbers live.
80
88
  * - **DeepSeek V4 defaults thinking ON**, so `none` has to be an explicit
81
89
  * refusal. That is the case proving OpenRouter's floor is a constraint and
82
90
  * not a preference for always thinking.
@@ -1 +1 @@
1
- {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,WAAW,EAEX,MAAM,EAEN,aAAa,EACb,QAAQ,EAIT,MAAM,aAAa,CAAC;AAIrB,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;iFAC6E;IAC7E,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC/B;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAID;4EAC4E;AAC5E,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,YAAY,GAAG,UAAU,GAAG,KAAK,CAAC;AAEzE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,MAAM,GAAG,SAAS,GACzB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA0BzB;AAmCD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,SAAS,WAAW,EAAE,GAAG,OAAO,EAAE,CAyD5E;AA+BD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,YAAY,GAAG,QAAQ,CA4LnE"}
1
+ {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,WAAW,EAEX,MAAM,EAEN,aAAa,EACb,QAAQ,EAIT,MAAM,aAAa,CAAC;AAIrB,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;+CAE2C;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;iFAC6E;IAC7E,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC/B;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAID;4EAC4E;AAC5E,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,YAAY,GAAG,UAAU,GAAG,KAAK,CAAC;AAEzE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,MAAM,GAAG,SAAS,GACzB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA6CzB;AAmCD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,SAAS,WAAW,EAAE,GAAG,OAAO,EAAE,CAyD5E;AA+BD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,YAAY,GAAG,QAAQ,CA4LnE"}
@@ -13,16 +13,20 @@ const DEFAULT_BASE_URL = "https://api.openai.com";
13
13
  *
14
14
  * One knob, three incompatible spellings, and the differences are not cosmetic:
15
15
  *
16
- * - **OpenRouter's off switch is the effort, never the `enabled` flag.**
17
- * `reasoning.enabled: false` IS refused by models that always think — GLM 5.3
18
- * Flash answers `400 "Reasoning is mandatory for this endpoint and cannot be
19
- * disabled."`, which cost one app its onboarding read. That measurement is
20
- * still why nothing here ever emits that field. But it was read as "OpenRouter
21
- * has no off switch" and `none` was floored to `low` on the strength of it,
22
- * which is a different field: `none` is a member of OpenRouter's own effort
23
- * enum, an unsupported level is mapped to the nearest rather than refused, and
24
- * an app has been sending it in production throughout. The floor was buying a
25
- * thinking pass on every turn that asked for none.
16
+ * - **On OpenRouter, a model that must think refuses BOTH off switches.**
17
+ * `reasoning.enabled: false` is refused by GLM 5.3 Flash with
18
+ * `400 "Reasoning is mandatory for this endpoint and cannot be disabled."`,
19
+ * which cost one app its onboarding read, and is why nothing here ever emits
20
+ * that field. That was then read as "OpenRouter has no off switch" and `none`
21
+ * was floored to `low` on the strength of it — wrong, because `none` is a
22
+ * member of OpenRouter's own effort enum and the floor bought a thinking pass
23
+ * on every turn that asked for none. But the correction over-reached: `none`
24
+ * is NOT universally safe either. Re-measured 2026-09-09, the same model
25
+ * answers the same 400 to `effort: "none"`. An unsupported level is mapped to
26
+ * the nearest only where the model CAN vary its effort; where thinking is
27
+ * mandatory, `none` is refused outright and the whole call is lost.
28
+ * The honest way to ask for the least thinking on this dialect is to pass no
29
+ * effort at all — see `effortParams`, where the numbers live.
26
30
  * - **DeepSeek V4 defaults thinking ON**, so `none` has to be an explicit
27
31
  * refusal. That is the case proving OpenRouter's floor is a constraint and
28
32
  * not a preference for always thinking.
@@ -57,9 +61,28 @@ export function effortParams(dialect, effort) {
57
61
  case "openrouter":
58
62
  // Its own enum runs xhigh > high > medium > low > minimal > none, so `max`
59
63
  // has a real tier here and clamping it to `high` throws the top one away —
60
- // 0.95 of the budget against 0.8. Naming it is safe even where a model
61
- // cannot do it: OpenRouter maps an unsupported level to its nearest rather
62
- // than refusing the request.
64
+ // 0.95 of the budget against 0.8.
65
+ //
66
+ // CAUTION, measured 2026-09-09 against z-ai/glm-5.3-flash: the claim that
67
+ // "OpenRouter maps an unsupported level to its nearest rather than
68
+ // refusing" does NOT hold for `none`. That model answers
69
+ // `400 "Reasoning is mandatory for this endpoint and cannot be disabled."`
70
+ // to `reasoning.effort: "none"` exactly as it does to
71
+ // `reasoning.enabled: false` — so on a model that must think, `none` is a
72
+ // refusal and not a floor. Callers that mean "as little as possible"
73
+ // should pass no effort at all rather than `none`, which is why the
74
+ // absent-effort branch above stays load-bearing.
75
+ //
76
+ // Same measurement, same model, one structured-output call three ways:
77
+ //
78
+ // no reasoning field 4,1s · 1 reasoning token
79
+ // effort "minimal" 46,6s · 474 reasoning tokens
80
+ // max_tokens 2000 30,3s · 484 reasoning tokens
81
+ //
82
+ // Its default sat below every level on offer, so naming one RAISED the
83
+ // thinking — an effort is a request, never a cap. Nearly all of the extra
84
+ // time was spent before the first token arrived, so it does not show up as
85
+ // slow streaming; it shows up as a call that looks hung.
63
86
  return { reasoning: { effort: effort === "max" ? "xhigh" : (level ?? "none") } };
64
87
  case "openai":
65
88
  return { reasoning_effort: level ?? "none" };
@@ -255,7 +278,7 @@ export function createOpenAIProvider(config) {
255
278
  request.provider = { order: config.providerOrder, allow_fallbacks: true };
256
279
  }
257
280
  for await (const data of streamSse({
258
- url: apiUrl(baseUrl, "/v1/chat/completions"),
281
+ url: apiUrl(baseUrl, config.path ?? "/v1/chat/completions"),
259
282
  headers: { authorization: `Bearer ${config.apiKey}`, ...config.headers },
260
283
  body: request,
261
284
  provider: id,
@@ -1 +1 @@
1
- {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { type AnthropicConfig } from "./anthropic.ts";
2
+ import type { Provider } from "../types.ts";
3
+ /** Z.ai Coding Plan's Anthropic-compatible API root, not its pay-per-token API. */
4
+ export declare const ZAI_CODING_BASE_URL = "https://api.z.ai/api/anthropic";
5
+ export type ZaiCodingConfig = Omit<AnthropicConfig, "baseUrl" | "id" | "bearer">;
6
+ /** Use a Z.ai Coding Plan key with the shared Messages adapter. The preset owns
7
+ * the endpoint, Bearer auth and the thinking dialect; callers still choose
8
+ * their model and effort. Tool calls, usage and errors use the existing
9
+ * adapter.
10
+ *
11
+ * Dialect notes, measured 2026-09-13 against the live endpoint on
12
+ * `glm-5.3-flash`: an absent thinking field means the MODEL's default —
13
+ * thinking ON — so `effort: "none"` is sent as an explicit
14
+ * `thinking: { type: "disabled" }`; `low`–`max` ride the standard thinking
15
+ * budgets, which the endpoint accepts. Images force a thinking block even
16
+ * under `disabled` (the model's choice, billed as output). */
17
+ export declare function createZaiCodingProvider(config: ZaiCodingConfig): Provider;
18
+ //# sourceMappingURL=zai.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zai.d.ts","sourceRoot":"","sources":["../../src/providers/zai.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC/E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,mFAAmF;AACnF,eAAO,MAAM,mBAAmB,mCAAmC,CAAC;AAEpE,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,EAAE,SAAS,GAAG,IAAI,GAAG,QAAQ,CAAC,CAAC;AAEjF;;;;;;;;;;+DAU+D;AAC/D,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,eAAe,GAAG,QAAQ,CAWzE"}
@@ -0,0 +1,27 @@
1
+ import { createAnthropicProvider } from "./anthropic.js";
2
+ /** Z.ai Coding Plan's Anthropic-compatible API root, not its pay-per-token API. */
3
+ export const ZAI_CODING_BASE_URL = "https://api.z.ai/api/anthropic";
4
+ /** Use a Z.ai Coding Plan key with the shared Messages adapter. The preset owns
5
+ * the endpoint, Bearer auth and the thinking dialect; callers still choose
6
+ * their model and effort. Tool calls, usage and errors use the existing
7
+ * adapter.
8
+ *
9
+ * Dialect notes, measured 2026-09-13 against the live endpoint on
10
+ * `glm-5.3-flash`: an absent thinking field means the MODEL's default —
11
+ * thinking ON — so `effort: "none"` is sent as an explicit
12
+ * `thinking: { type: "disabled" }`; `low`–`max` ride the standard thinking
13
+ * budgets, which the endpoint accepts. Images force a thinking block even
14
+ * under `disabled` (the model's choice, billed as output). */
15
+ export function createZaiCodingProvider(config) {
16
+ return createAnthropicProvider({
17
+ ...config,
18
+ id: "zai",
19
+ baseUrl: ZAI_CODING_BASE_URL,
20
+ bearer: true,
21
+ explicitNone: true,
22
+ // Coding gateways can allocate a 32K thinking budget themselves. Leave room
23
+ // for the answer; callers can still set a smaller cap for their model.
24
+ maxTokens: config.maxTokens ?? 65_536,
25
+ });
26
+ }
27
+ //# sourceMappingURL=zai.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zai.js","sourceRoot":"","sources":["../../src/providers/zai.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAwB,MAAM,gBAAgB,CAAC;AAG/E,mFAAmF;AACnF,MAAM,CAAC,MAAM,mBAAmB,GAAG,gCAAgC,CAAC;AAIpE;;;;;;;;;;+DAU+D;AAC/D,MAAM,UAAU,uBAAuB,CAAC,MAAuB;IAC7D,OAAO,uBAAuB,CAAC;QAC7B,GAAG,MAAM;QACT,EAAE,EAAE,KAAK;QACT,OAAO,EAAE,mBAAmB;QAC5B,MAAM,EAAE,IAAI;QACZ,YAAY,EAAE,IAAI;QAClB,4EAA4E;QAC5E,uEAAuE;QACvE,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,MAAM;KACtC,CAAC,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAgBA,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAkDpE;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAKpD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAmBrD"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAgBA,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAkDpE;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAWpD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAmBrD"}
package/dist/schema.js CHANGED
@@ -80,7 +80,13 @@ export function clampToSchema(value, node) {
80
80
  * nothing whatsoever about its shape.
81
81
  */
82
82
  export function schemaPrompt(schema) {
83
- return ("Respond with a single JSON object matching this schema. No prose, no code fence:\n" +
83
+ return ("Respond with a single JSON object matching this schema. No prose, no code fence.\n" +
84
+ // Nothing pins the decoder when the schema rides in the prompt, so the model
85
+ // is free to pretty-print its reply — and it does, putting a real line break
86
+ // inside a string value, which is invalid JSON and costs the whole response.
87
+ // Saying so is not a guarantee (the caller still has to survive a violation)
88
+ // but this is the only place the model is told at all.
89
+ "Write a line break inside a string value as \\n. A real line break there is invalid JSON.\n" +
84
90
  JSON.stringify(schema));
85
91
  }
86
92
  export function isStrictSchema(node) {
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAgBA,MAAM,UAAU,aAAa,CAAC,KAAc,EAAE,IAAa;IACzD,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACpD,MAAM,MAAM,GAAG,IAAkB,CAAC;IAElC,8EAA8E;IAC9E,4EAA4E;IAC5E,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC;IAC3C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,MAAM,CAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;IAC3F,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC;QAC7B,2EAA2E;QAC3E,yEAAyE;QACzE,oBAAoB;QACpB,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YAC9D,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;QACvC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,GAAG,GAAG,KAAK,CAAC;QAChB,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,GAAG,GAAG,MAAM,CAAC,OAAO;YAAE,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC;QACrF,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,GAAG,GAAG,MAAM,CAAC,OAAO;YAAE,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC;QACrF,OAAO,GAAG,CAAC;IACb,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACrE,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC5B,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACrF,CAAC;IAED,IACE,KAAK;QACL,OAAO,KAAK,KAAK,QAAQ;QACzB,MAAM,CAAC,UAAU;QACjB,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,EACrC,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,CAAC,UAAqC,CAAC;QAChE,MAAM,GAAG,GAA4B,EAAE,GAAI,KAAiC,EAAE,CAAC;QAC/E,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACnC,IAAI,GAAG,IAAI,UAAU;gBAAE,GAAG,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7E,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,YAAY,CAAC,MAAe;IAC1C,OAAO,CACL,oFAAoF;QACpF,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CACvB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAa;IAC1C,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACpD,MAAM,MAAM,GAAG,IAAkB,CAAC;IAElC,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAE1E,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC;IAC3C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAE7D,wEAAwE;IACxE,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/F,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAEjD,IAAI,MAAM,CAAC,oBAAoB,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IACxD,MAAM,UAAU,GAAG,MAAM,CAAC,UAAqC,CAAC;IAChE,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAE,MAAM,CAAC,QAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC9F,OAAO,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,KAAK,CACrC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,cAAc,CAAC,KAAK,CAAC,CAC7D,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAgBA,MAAM,UAAU,aAAa,CAAC,KAAc,EAAE,IAAa;IACzD,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACpD,MAAM,MAAM,GAAG,IAAkB,CAAC;IAElC,8EAA8E;IAC9E,4EAA4E;IAC5E,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC;IAC3C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,MAAM,CAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;IAC3F,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC;QAC7B,2EAA2E;QAC3E,yEAAyE;QACzE,oBAAoB;QACpB,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YAC9D,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;QACvC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,GAAG,GAAG,KAAK,CAAC;QAChB,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,GAAG,GAAG,MAAM,CAAC,OAAO;YAAE,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC;QACrF,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,GAAG,GAAG,MAAM,CAAC,OAAO;YAAE,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC;QACrF,OAAO,GAAG,CAAC;IACb,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACrE,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC5B,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACrF,CAAC;IAED,IACE,KAAK;QACL,OAAO,KAAK,KAAK,QAAQ;QACzB,MAAM,CAAC,UAAU;QACjB,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,EACrC,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,CAAC,UAAqC,CAAC;QAChE,MAAM,GAAG,GAA4B,EAAE,GAAI,KAAiC,EAAE,CAAC;QAC/E,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACnC,IAAI,GAAG,IAAI,UAAU;gBAAE,GAAG,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7E,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,YAAY,CAAC,MAAe;IAC1C,OAAO,CACL,oFAAoF;QACpF,6EAA6E;QAC7E,6EAA6E;QAC7E,6EAA6E;QAC7E,6EAA6E;QAC7E,uDAAuD;QACvD,6FAA6F;QAC7F,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CACvB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAa;IAC1C,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACpD,MAAM,MAAM,GAAG,IAAkB,CAAC;IAElC,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAE1E,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC;IAC3C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAE7D,wEAAwE;IACxE,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/F,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAEjD,IAAI,MAAM,CAAC,oBAAoB,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IACxD,MAAM,UAAU,GAAG,MAAM,CAAC,UAAqC,CAAC;IAChE,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAE,MAAM,CAAC,QAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC9F,OAAO,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,KAAK,CACrC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,cAAc,CAAC,KAAK,CAAC,CAC7D,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@providerkit/core",
3
- "version": "0.5.0",
3
+ "version": "0.6.0",
4
4
  "description": "The layer under your agent loop: one seam for every LLM provider, plus the failure handling you only learn in production.",
5
5
  "type": "module",
6
6
  "license": "MIT",
package/src/index.ts CHANGED
@@ -15,3 +15,4 @@ export * from "./providers/anthropic.ts";
15
15
  export * from "./providers/openai.ts";
16
16
  export * from "./providers/responses.ts";
17
17
  export * from "./providers/gemini.ts";
18
+ export * from "./providers/zai.ts";
@@ -37,6 +37,15 @@ export interface AnthropicConfig {
37
37
  /** Send the key as a Bearer instead of `x-api-key` — what a subscription
38
38
  * access token needs. */
39
39
  bearer?: boolean;
40
+ /** Say "no thinking" with an explicit `thinking: { type: "disabled" }` when
41
+ * effort resolves to none, instead of omitting the field. For endpoints
42
+ * where an absent field means the MODEL's default, not off — Z.ai's coding
43
+ * endpoint reads silence as thinking ON for reasoning-mandatory models like
44
+ * GLM 5.3 Flash (measured 2026-09-13: omit → thinking block; disabled →
45
+ * none), and it accepts the marker natively. Native Anthropic has no such
46
+ * marker and defaults to off when the field is absent, so leave this unset
47
+ * there. */
48
+ explicitNone?: boolean;
40
49
  }
41
50
 
42
51
  const DEFAULT_BASE_URL = "https://api.anthropic.com";
@@ -181,15 +190,17 @@ export function toAnthropicMessages(messages: readonly ChatMessage[]): {
181
190
  return { ...(blocks ? { system: blocks } : {}), messages: out };
182
191
  }
183
192
 
193
+ interface AnthropicUsage {
194
+ input_tokens?: number;
195
+ output_tokens?: number;
196
+ cache_read_input_tokens?: number;
197
+ cache_creation_input_tokens?: number;
198
+ }
199
+
184
200
  interface AnthropicEvent {
185
201
  type?: string;
186
202
  message?: {
187
- usage?: {
188
- input_tokens?: number;
189
- output_tokens?: number;
190
- cache_read_input_tokens?: number;
191
- cache_creation_input_tokens?: number;
192
- };
203
+ usage?: AnthropicUsage;
193
204
  };
194
205
  content_block?: { type?: string; id?: string; name?: string };
195
206
  delta?: {
@@ -199,7 +210,7 @@ interface AnthropicEvent {
199
210
  partial_json?: string;
200
211
  stop_reason?: string;
201
212
  };
202
- usage?: { output_tokens?: number };
213
+ usage?: AnthropicUsage;
203
214
  index?: number;
204
215
  error?: { message?: string; type?: string };
205
216
  }
@@ -254,13 +265,17 @@ export function createAnthropicProvider(config: AnthropicConfig): Provider {
254
265
  // Thinking and sampling are mutually exclusive on this shape.
255
266
  delete request.temperature;
256
267
  delete request.top_p;
268
+ } else if (config.explicitNone) {
269
+ // The one dialect where silence means the model default — which is ON
270
+ // for a reasoning-mandatory model — so "none" has to be said out loud.
271
+ request.thinking = { type: "disabled" };
257
272
  }
258
273
 
259
274
  // Anthropic reports cache reads and writes as fields of their OWN,
260
275
  // EXCLUDED from `input_tokens` — where the OpenAI shapes report a cached
261
276
  // subset already inside the prompt count. Reconciling here is what keeps
262
277
  // one usage record meaningful across both, and a cost figure honest.
263
- let inputTokens = 0;
278
+ let freshInputTokens = 0;
264
279
  let cachedInputTokens = 0;
265
280
  let cacheWriteTokens = 0;
266
281
  let outputTokens = 0;
@@ -300,7 +315,7 @@ export function createAnthropicProvider(config: AnthropicConfig): Provider {
300
315
  const usage = event.message?.usage;
301
316
  cachedInputTokens = usage?.cache_read_input_tokens ?? 0;
302
317
  cacheWriteTokens = usage?.cache_creation_input_tokens ?? 0;
303
- inputTokens = (usage?.input_tokens ?? 0) + cachedInputTokens + cacheWriteTokens;
318
+ freshInputTokens = usage?.input_tokens ?? 0;
304
319
  break;
305
320
  }
306
321
 
@@ -340,6 +355,12 @@ export function createAnthropicProvider(config: AnthropicConfig): Provider {
340
355
  break;
341
356
 
342
357
  case "message_delta": {
358
+ // Z.ai starts with zero input usage and reports the real totals here.
359
+ // These are cumulative counters, not increments. Native Anthropic
360
+ // usually sends only output_tokens here, so absent fields retain theirs.
361
+ freshInputTokens = event.usage?.input_tokens ?? freshInputTokens;
362
+ cachedInputTokens = event.usage?.cache_read_input_tokens ?? cachedInputTokens;
363
+ cacheWriteTokens = event.usage?.cache_creation_input_tokens ?? cacheWriteTokens;
343
364
  outputTokens = event.usage?.output_tokens ?? outputTokens;
344
365
  const finishReason = mapStopReason(event.delta?.stop_reason);
345
366
  if (finishReason) yield { type: "finish", finishReason };
@@ -349,7 +370,12 @@ export function createAnthropicProvider(config: AnthropicConfig): Provider {
349
370
  case "message_stop":
350
371
  yield {
351
372
  type: "usage",
352
- usage: { inputTokens, cachedInputTokens, cacheWriteTokens, outputTokens },
373
+ usage: {
374
+ inputTokens: freshInputTokens + cachedInputTokens + cacheWriteTokens,
375
+ cachedInputTokens,
376
+ cacheWriteTokens,
377
+ outputTokens,
378
+ },
353
379
  };
354
380
  break;
355
381
  }
@@ -24,6 +24,10 @@ export interface OpenAIConfig {
24
24
  model: string;
25
25
  /** Any OpenAI-compatible endpoint. Defaults to OpenAI itself. */
26
26
  baseUrl?: string;
27
+ /** Path appended to baseUrl. Defaults to /v1/chat/completions. Set
28
+ * /chat/completions when the base already includes the API version, such as
29
+ * a gateway using /v4 rather than /v1. */
30
+ path?: string;
27
31
  /** Names the provider in errors and logs — "openrouter", "deepseek", … It
28
32
  * also picks the effort dialect below, unless `effortDialect` overrides. */
29
33
  id?: string;
@@ -91,16 +95,20 @@ export type EffortDialect = "openai" | "openrouter" | "deepseek" | "off";
91
95
  *
92
96
  * One knob, three incompatible spellings, and the differences are not cosmetic:
93
97
  *
94
- * - **OpenRouter's off switch is the effort, never the `enabled` flag.**
95
- * `reasoning.enabled: false` IS refused by models that always think — GLM 5.3
96
- * Flash answers `400 "Reasoning is mandatory for this endpoint and cannot be
97
- * disabled."`, which cost one app its onboarding read. That measurement is
98
- * still why nothing here ever emits that field. But it was read as "OpenRouter
99
- * has no off switch" and `none` was floored to `low` on the strength of it,
100
- * which is a different field: `none` is a member of OpenRouter's own effort
101
- * enum, an unsupported level is mapped to the nearest rather than refused, and
102
- * an app has been sending it in production throughout. The floor was buying a
103
- * thinking pass on every turn that asked for none.
98
+ * - **On OpenRouter, a model that must think refuses BOTH off switches.**
99
+ * `reasoning.enabled: false` is refused by GLM 5.3 Flash with
100
+ * `400 "Reasoning is mandatory for this endpoint and cannot be disabled."`,
101
+ * which cost one app its onboarding read, and is why nothing here ever emits
102
+ * that field. That was then read as "OpenRouter has no off switch" and `none`
103
+ * was floored to `low` on the strength of it — wrong, because `none` is a
104
+ * member of OpenRouter's own effort enum and the floor bought a thinking pass
105
+ * on every turn that asked for none. But the correction over-reached: `none`
106
+ * is NOT universally safe either. Re-measured 2026-09-09, the same model
107
+ * answers the same 400 to `effort: "none"`. An unsupported level is mapped to
108
+ * the nearest only where the model CAN vary its effort; where thinking is
109
+ * mandatory, `none` is refused outright and the whole call is lost.
110
+ * The honest way to ask for the least thinking on this dialect is to pass no
111
+ * effort at all — see `effortParams`, where the numbers live.
104
112
  * - **DeepSeek V4 defaults thinking ON**, so `none` has to be an explicit
105
113
  * refusal. That is the case proving OpenRouter's floor is a constraint and
106
114
  * not a preference for always thinking.
@@ -136,9 +144,28 @@ export function effortParams(
136
144
  case "openrouter":
137
145
  // Its own enum runs xhigh > high > medium > low > minimal > none, so `max`
138
146
  // has a real tier here and clamping it to `high` throws the top one away —
139
- // 0.95 of the budget against 0.8. Naming it is safe even where a model
140
- // cannot do it: OpenRouter maps an unsupported level to its nearest rather
141
- // than refusing the request.
147
+ // 0.95 of the budget against 0.8.
148
+ //
149
+ // CAUTION, measured 2026-09-09 against z-ai/glm-5.3-flash: the claim that
150
+ // "OpenRouter maps an unsupported level to its nearest rather than
151
+ // refusing" does NOT hold for `none`. That model answers
152
+ // `400 "Reasoning is mandatory for this endpoint and cannot be disabled."`
153
+ // to `reasoning.effort: "none"` exactly as it does to
154
+ // `reasoning.enabled: false` — so on a model that must think, `none` is a
155
+ // refusal and not a floor. Callers that mean "as little as possible"
156
+ // should pass no effort at all rather than `none`, which is why the
157
+ // absent-effort branch above stays load-bearing.
158
+ //
159
+ // Same measurement, same model, one structured-output call three ways:
160
+ //
161
+ // no reasoning field 4,1s · 1 reasoning token
162
+ // effort "minimal" 46,6s · 474 reasoning tokens
163
+ // max_tokens 2000 30,3s · 484 reasoning tokens
164
+ //
165
+ // Its default sat below every level on offer, so naming one RAISED the
166
+ // thinking — an effort is a request, never a cap. Nearly all of the extra
167
+ // time was spent before the first token arrived, so it does not show up as
168
+ // slow streaming; it shows up as a call that looks hung.
142
169
  return { reasoning: { effort: effort === "max" ? "xhigh" : (level ?? "none") } };
143
170
  case "openai":
144
171
  return { reasoning_effort: level ?? "none" };
@@ -375,7 +402,7 @@ export function createOpenAIProvider(config: OpenAIConfig): Provider {
375
402
  }
376
403
 
377
404
  for await (const data of streamSse({
378
- url: apiUrl(baseUrl, "/v1/chat/completions"),
405
+ url: apiUrl(baseUrl, config.path ?? "/v1/chat/completions"),
379
406
  headers: { authorization: `Bearer ${config.apiKey}`, ...config.headers },
380
407
  body: request,
381
408
  provider: id,
@@ -0,0 +1,31 @@
1
+ import { createAnthropicProvider, type AnthropicConfig } from "./anthropic.ts";
2
+ import type { Provider } from "../types.ts";
3
+
4
+ /** Z.ai Coding Plan's Anthropic-compatible API root, not its pay-per-token API. */
5
+ export const ZAI_CODING_BASE_URL = "https://api.z.ai/api/anthropic";
6
+
7
+ export type ZaiCodingConfig = Omit<AnthropicConfig, "baseUrl" | "id" | "bearer">;
8
+
9
+ /** Use a Z.ai Coding Plan key with the shared Messages adapter. The preset owns
10
+ * the endpoint, Bearer auth and the thinking dialect; callers still choose
11
+ * their model and effort. Tool calls, usage and errors use the existing
12
+ * adapter.
13
+ *
14
+ * Dialect notes, measured 2026-09-13 against the live endpoint on
15
+ * `glm-5.3-flash`: an absent thinking field means the MODEL's default —
16
+ * thinking ON — so `effort: "none"` is sent as an explicit
17
+ * `thinking: { type: "disabled" }`; `low`–`max` ride the standard thinking
18
+ * budgets, which the endpoint accepts. Images force a thinking block even
19
+ * under `disabled` (the model's choice, billed as output). */
20
+ export function createZaiCodingProvider(config: ZaiCodingConfig): Provider {
21
+ return createAnthropicProvider({
22
+ ...config,
23
+ id: "zai",
24
+ baseUrl: ZAI_CODING_BASE_URL,
25
+ bearer: true,
26
+ explicitNone: true,
27
+ // Coding gateways can allocate a 32K thinking budget themselves. Leave room
28
+ // for the answer; callers can still set a smaller cap for their model.
29
+ maxTokens: config.maxTokens ?? 65_536,
30
+ });
31
+ }
package/src/schema.ts CHANGED
@@ -102,7 +102,13 @@ export function clampToSchema(value: unknown, node: unknown): unknown {
102
102
  */
103
103
  export function schemaPrompt(schema: unknown): string {
104
104
  return (
105
- "Respond with a single JSON object matching this schema. No prose, no code fence:\n" +
105
+ "Respond with a single JSON object matching this schema. No prose, no code fence.\n" +
106
+ // Nothing pins the decoder when the schema rides in the prompt, so the model
107
+ // is free to pretty-print its reply — and it does, putting a real line break
108
+ // inside a string value, which is invalid JSON and costs the whole response.
109
+ // Saying so is not a guarantee (the caller still has to survive a violation)
110
+ // but this is the only place the model is told at all.
111
+ "Write a line break inside a string value as \\n. A real line break there is invalid JSON.\n" +
106
112
  JSON.stringify(schema)
107
113
  );
108
114
  }