@namzu/zen 4.0.1 → 5.0.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/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # @namzu/zen
2
2
 
3
+ ## 5.0.0
4
+
5
+ ### Major Changes
6
+
7
+ - 66eadb3: **Breaking: thirteen ids leave the bundled catalogue, because upstream stopped documenting or serving them.** `findZenModel` and `getZenModels` no longer return, on Zen, `deepseek-v4-flash`, `deepseek-v4-flash-vision-exp`, `cat-jam-free`, `step-5-preview-free`, `ling-3.1-flash-free` and `ling-3.0-flash-fin-free`, and on Go, `grok-4.6`, `kimi-k2.6`, `deepseek-v4-flash`, `deepseek-v4-flash-vision-exp`, `minimax-m2.7`, `step-5-preview-free` and `cat-jam-free`. A request naming one fails as an unknown model. Pick a current id instead — for a free Zen model, `glm-5.3-flash-free`, `deepseek-v4.1-flash-free` or `mimo-v2.6-flash-free`; on Go, `kimi-k3`, `minimax-m3` or `grok-4.7`. A host that has verified a wire for one of them can still pass `protocol` to the provider explicitly. The snapshot adds `glm-5.3-flash-free`, `deepseek-v4.1-flash-free`, `beam-free`, `ll-alpha-free` and `nemotron-3.5-super-vl-free` on Zen, and `gemini-4-argon-contributor`, `step-5-preview` and `beam-free` on Go.
8
+
9
+ The runtime catalogue refresh works again. The Zen and Go documentation pages moved their endpoints to per-wire paths (`/inference/openai/…`, `/inference/anthropic/…`, `/inference/google/…` and their `go` variants), and `fetchZenCatalogue` rejected the whole run on the first such row, so every host fell back to its last saved or bundled list. It now reads those paths. A page row whose wire this driver does not implement is listed in `report.undecided` with its reason instead of failing the refresh. A row whose endpoint names a host other than the service's still rejects the run whole.
10
+
11
+ ## 4.0.2
12
+
13
+ ### Patch Changes
14
+
15
+ - d328c1b: Serve anonymous free-model calls from `https://opencode.ai/inference/v1` instead of the configured `https://opencode.ai/zen/v1`.
16
+
17
+ The free-tier gateway answers `403 FreeTierError` — "OpenCode's free tier can only be used from within OpenCode" — to anonymous traffic on `/zen/v1`, and does so however faithfully the request is shaped. Measured on `cat-jam-free` with the OpenCode-shaped identity headers, the four injected tool names and a session and request id in the client's own format, both against the same session in the same minute: the same request is `403` on `/zen/v1/chat/completions` and `200` on `/inference/v1/chat/completions`. The request id's random half is not what the gateway reads — flipping it, keeping the timestamp half fresh or stale, and re-serialising the body all leave the verdict unchanged — only the route decides.
18
+
19
+ To upgrade and keep working, nothing is required: anonymous free-model calls move to `/inference` by themselves, and every keyed call stays on `ZEN_BASE_URL` exactly as before. A caller-owned `baseURL` proxy is likewise untouched, and only the chat route is reachable anonymously — the Anthropic and Responses routes answer `401 Missing API key` on either host, as they did before. Verified live on `cat-jam-free`: a plain turn and a `bash` tool round both complete.
20
+
3
21
  ## 4.0.1
4
22
 
5
23
  ### Patch Changes
@@ -82,10 +82,12 @@ export declare const MODALITIES: Readonly<Record<string, ModelInputModality>>;
82
82
  export declare const SERVICE_PREFIX: Readonly<Record<ZenService, string>>;
83
83
  /**
84
84
  * The path prefixes a documentation page may state an endpoint on, per
85
- * service. The gateway answers on both: `/zen/v1/…` is what the client and
86
- * this package call, and `/inference/v1/…` is the alias the documentation
87
- * pages now publish. Both resolve to the same service, so a row on either is
88
- * a route on that service.
85
+ * service. The gateway answers on all of these: `/zen/v1/…` is what the client
86
+ * and this package call, and the pages have published aliases across the
87
+ * gateway's history — a flat `/inference/v1/…`, then per-wire
88
+ * `/inference/<wire>/…` paths, where each wire's documentation names its own
89
+ * version segment (`openai/v1`, `google/v1beta`). Every one resolves to the
90
+ * same service, so a row on any of them is a route on that service.
89
91
  */
90
92
  export declare const DOCUMENTED_PREFIXES: Readonly<Record<ZenService, readonly string[]>>;
91
93
  /** One route-table row. `npm` is undefined when the page states no wire. */
@@ -156,13 +158,38 @@ export declare function nameKey(name: string): string;
156
158
  */
157
159
  export declare function priceRowFor(rows: readonly ZenPriceRow[], name: string): ZenPriceRow | undefined;
158
160
  /**
159
- * The protocol a (package, endpoint) pair is, refusing anything unrecognised.
161
+ * The verdict on one route row's (package, endpoint) pair: the protocol to
162
+ * route it with, or the reason no wire follows from it, and whether the
163
+ * refusal indicts the run or merely the row.
164
+ *
165
+ * A pair that names an endpoint OUTSIDE the service's host is tamper-shaped —
166
+ * the whole point of the per-part checks — so its refusal is fatal and must
167
+ * stop the run no matter how derivable the rest of the page is. Everything
168
+ * else this classifier cannot read is upstream having grown a wire this
169
+ * driver does not speak (a new endpoint family on the service's own host, an
170
+ * AI SDK package not implemented yet): the refusal is per-row, and the
171
+ * derivation decides what to do with it.
160
172
  *
161
173
  * The pair is checked against the URL's own parts rather than by substring: a
162
174
  * cell reading `https://evil.example/messages` contains the path a Messages
163
175
  * route has, and a routing decision that accepts it is a routing decision made
164
176
  * on the wrong string. Host, service prefix, path and package must all agree.
165
177
  */
178
+ export declare function routeFor({ endpoint, npm }: Pick<ZenRouteRow, 'id' | 'endpoint' | 'npm'>, service: string): {
179
+ readonly protocol: ZenProtocol;
180
+ } | {
181
+ readonly refusal: string;
182
+ readonly fatal: boolean;
183
+ };
184
+ /**
185
+ * The protocol a (package, endpoint) pair is, refusing anything unrecognised.
186
+ *
187
+ * The derivation goes through `routeFor` instead, where an unrouteable row
188
+ * splits off into the undecided count and the rest of the roster carries on;
189
+ * here a caller that asks for the pair's protocol gets stopped immediately.
190
+ * Either way nothing is guessed: a model whose wire is unknown is never routed
191
+ * by picking a protocol for it.
192
+ */
166
193
  export declare function protocolFor({ id, endpoint, npm }: Pick<ZenRouteRow, 'id' | 'endpoint' | 'npm'>, service: string): ZenProtocol;
167
194
  /** Only live-verified direct anonymous ids may survive a persisted catalogue. */
168
195
  export declare function isDirectAnonymousZenId(id: string): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"derive.d.ts","sourceRoot":"","sources":["../../src/catalogue/derive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"derive.d.ts","sourceRoot":"","sources":["../../src/catalogue/derive.ts"],"names":[],"mappings":"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"}
@@ -91,10 +91,30 @@ export const ZEN_SERVICES = Object.freeze([
91
91
  * it in the body of a fixed path, Google puts it in the path itself.
92
92
  */
93
93
  export const ROUTES = Object.freeze([
94
- { npm: '@ai-sdk/openai-compatible', path: '/chat/completions', protocol: 'chat', kind: 'path' },
95
- { npm: '@ai-sdk/openai', path: '/responses', protocol: 'responses', kind: 'path' },
96
- { npm: '@ai-sdk/anthropic', path: '/messages', protocol: 'messages', kind: 'path' },
97
- { npm: '@ai-sdk/google', path: '/models/', protocol: 'google', kind: 'model' },
94
+ {
95
+ npm: '@ai-sdk/openai-compatible',
96
+ path: '/chat/completions',
97
+ protocol: 'chat',
98
+ kind: 'path',
99
+ },
100
+ {
101
+ npm: '@ai-sdk/openai',
102
+ path: '/responses',
103
+ protocol: 'responses',
104
+ kind: 'path',
105
+ },
106
+ {
107
+ npm: '@ai-sdk/anthropic',
108
+ path: '/messages',
109
+ protocol: 'messages',
110
+ kind: 'path',
111
+ },
112
+ {
113
+ npm: '@ai-sdk/google',
114
+ path: '/models/',
115
+ protocol: 'google',
116
+ kind: 'model',
117
+ },
98
118
  ]);
99
119
  /** The Google route's tail: `models/<id>`, and nothing else. */
100
120
  const MODEL_PATH = /^models\/[a-z0-9][a-z0-9.-]*$/;
@@ -114,14 +134,28 @@ export const SERVICE_PREFIX = Object.freeze({
114
134
  });
115
135
  /**
116
136
  * The path prefixes a documentation page may state an endpoint on, per
117
- * service. The gateway answers on both: `/zen/v1/…` is what the client and
118
- * this package call, and `/inference/v1/…` is the alias the documentation
119
- * pages now publish. Both resolve to the same service, so a row on either is
120
- * a route on that service.
137
+ * service. The gateway answers on all of these: `/zen/v1/…` is what the client
138
+ * and this package call, and the pages have published aliases across the
139
+ * gateway's history — a flat `/inference/v1/…`, then per-wire
140
+ * `/inference/<wire>/…` paths, where each wire's documentation names its own
141
+ * version segment (`openai/v1`, `google/v1beta`). Every one resolves to the
142
+ * same service, so a row on any of them is a route on that service.
121
143
  */
122
144
  export const DOCUMENTED_PREFIXES = Object.freeze({
123
- zen: Object.freeze(['/zen/v1/', '/inference/v1/']),
124
- go: Object.freeze(['/zen/go/v1/', '/inference/go/v1/']),
145
+ zen: Object.freeze([
146
+ '/zen/v1/',
147
+ '/inference/v1/',
148
+ '/inference/openai/v1/',
149
+ '/inference/anthropic/v1/',
150
+ '/inference/google/v1beta/',
151
+ ]),
152
+ go: Object.freeze([
153
+ '/zen/go/v1/',
154
+ '/inference/go/v1/',
155
+ '/inference/go/openai/v1/',
156
+ '/inference/go/anthropic/v1/',
157
+ '/inference/go/google/v1beta/',
158
+ ]),
125
159
  });
126
160
  /**
127
161
  * One `/models` answer, as the set of ids it says the service serves.
@@ -315,42 +349,90 @@ export function priceRowFor(rows, name) {
315
349
  candidates.find((row) => row.name.includes('≤')));
316
350
  }
317
351
  /**
318
- * The protocol a (package, endpoint) pair is, refusing anything unrecognised.
352
+ * The verdict on one route row's (package, endpoint) pair: the protocol to
353
+ * route it with, or the reason no wire follows from it, and whether the
354
+ * refusal indicts the run or merely the row.
355
+ *
356
+ * A pair that names an endpoint OUTSIDE the service's host is tamper-shaped —
357
+ * the whole point of the per-part checks — so its refusal is fatal and must
358
+ * stop the run no matter how derivable the rest of the page is. Everything
359
+ * else this classifier cannot read is upstream having grown a wire this
360
+ * driver does not speak (a new endpoint family on the service's own host, an
361
+ * AI SDK package not implemented yet): the refusal is per-row, and the
362
+ * derivation decides what to do with it.
319
363
  *
320
364
  * The pair is checked against the URL's own parts rather than by substring: a
321
365
  * cell reading `https://evil.example/messages` contains the path a Messages
322
366
  * route has, and a routing decision that accepts it is a routing decision made
323
367
  * on the wrong string. Host, service prefix, path and package must all agree.
324
368
  */
325
- export function protocolFor({ id, endpoint, npm }, service) {
326
- const refuse = (why) => unusable(`"${id}" is documented as ${npm} on ${endpoint}, ${why}. A model whose wire is not\n known cannot be routed, so the run stops rather than picking one.`);
369
+ export function routeFor({ endpoint, npm }, service) {
327
370
  if (npm === undefined) {
328
- unusable(`"${id}" is documented on ${endpoint} with no AI SDK package stated, so no wire is\n known. A model whose wire is not known cannot be routed, so the run stops\n rather than picking one.`);
371
+ return {
372
+ refusal: 'the page states no AI SDK package for it, so no wire is known',
373
+ fatal: false,
374
+ };
329
375
  }
330
376
  let url;
331
377
  try {
332
378
  url = new URL(endpoint);
333
379
  }
334
380
  catch {
335
- return refuse('which is not a URL');
381
+ return {
382
+ refusal: 'the endpoint cell is not a URL, so no wire can be read',
383
+ fatal: true,
384
+ };
385
+ }
386
+ if (url.host !== 'opencode.ai') {
387
+ return { refusal: "whose host is not the service's", fatal: true };
336
388
  }
337
- if (url.host !== 'opencode.ai')
338
- refuse("whose host is not the service's");
339
389
  const prefixes = DOCUMENTED_PREFIXES[service];
340
- if (prefixes === undefined)
341
- return refuse('on a service this script does not know');
390
+ if (prefixes === undefined) {
391
+ return { refusal: 'on a service this script does not know', fatal: true };
392
+ }
342
393
  const prefix = prefixes.find((candidate) => url.pathname.startsWith(candidate));
343
- if (prefix === undefined)
344
- return refuse(`which is not on the ${service} service's own path`);
394
+ if (prefix === undefined) {
395
+ return {
396
+ refusal: `which is not on the ${service} service's own path`,
397
+ fatal: false,
398
+ };
399
+ }
345
400
  const route = ROUTES.find((candidate) => candidate.npm === npm);
346
401
  if (!route) {
347
- return refuse(`with a package that is not one of the ${ROUTES.length} routes this driver implements`);
402
+ return {
403
+ refusal: `with a package that is not one of the ${ROUTES.length} routes this driver implements`,
404
+ fatal: false,
405
+ };
348
406
  }
349
407
  const tail = url.pathname.slice(prefix.length);
350
408
  const matches = route.kind === 'path' ? tail === route.path.slice(1) : MODEL_PATH.test(tail);
351
- if (!matches)
352
- refuse(`which does not address ${route.path} on the ${service} service`);
353
- return route.protocol;
409
+ if (!matches) {
410
+ return {
411
+ refusal: `which does not address ${route.path} on the ${service} service`,
412
+ fatal: false,
413
+ };
414
+ }
415
+ return { protocol: route.protocol };
416
+ }
417
+ /** The message the run-wide refusal of a pair carries, in both surfaces. */
418
+ function refusalMessage({ id, npm }, { endpoint }, refusal) {
419
+ return `"${id}" is documented as ${npm} on ${endpoint}, ${refusal}. A model whose wire is not\n known cannot be routed, so the run stops rather than picking one.`;
420
+ }
421
+ /**
422
+ * The protocol a (package, endpoint) pair is, refusing anything unrecognised.
423
+ *
424
+ * The derivation goes through `routeFor` instead, where an unrouteable row
425
+ * splits off into the undecided count and the rest of the roster carries on;
426
+ * here a caller that asks for the pair's protocol gets stopped immediately.
427
+ * Either way nothing is guessed: a model whose wire is unknown is never routed
428
+ * by picking a protocol for it.
429
+ */
430
+ export function protocolFor({ id, endpoint, npm }, service) {
431
+ const verdict = routeFor({ id, endpoint, npm }, service);
432
+ if ('refusal' in verdict) {
433
+ unusable(refusalMessage({ id, npm }, { endpoint }, verdict.refusal));
434
+ }
435
+ return verdict.protocol;
354
436
  }
355
437
  /**
356
438
  * Go's route table currently disagrees with the reference client's routes
@@ -379,19 +461,26 @@ export function isDirectAnonymousZenId(id) {
379
461
  export function pinnedProtocolForGo(id) {
380
462
  return GO_REFERENCE_ROUTES[id]?.gateway;
381
463
  }
382
- function pinnedProtocolFor(row, service) {
383
- const documented = protocolFor(row, service);
464
+ /**
465
+ * The row's routed protocol, or its refusal — the Go pinning decides the same
466
+ * way `routeFor` does, then names the reference client's wire for the ids the
467
+ * published page and the reference client disagree on.
468
+ */
469
+ function pinnedRouteFor(row, service) {
470
+ const verdict = routeFor(row, service);
471
+ if ('refusal' in verdict)
472
+ return verdict;
384
473
  if (service !== 'go')
385
- return documented;
474
+ return verdict;
386
475
  const exception = GO_REFERENCE_ROUTES[row.id];
387
476
  if (!exception)
388
- return documented;
389
- if (documented === exception.gateway)
390
- return documented;
391
- if (documented !== exception.documented) {
392
- unusable(`go.mdx changed the route for "${row.id}" to ${documented}; its reference-client route exception must be reviewed.`);
477
+ return verdict;
478
+ if (verdict.protocol === exception.gateway)
479
+ return verdict;
480
+ if (verdict.protocol !== exception.documented) {
481
+ unusable(`go.mdx changed the route for "${row.id}" to ${verdict.protocol}; its reference-client route exception must be reviewed.`);
393
482
  }
394
- return exception.gateway;
483
+ return { protocol: exception.gateway };
395
484
  }
396
485
  /**
397
486
  * What a model is carried with while models.dev states nothing about it: small
@@ -458,6 +547,22 @@ export function derive(service, parsed, providerKey, provider, omissions, served
458
547
  continue;
459
548
  }
460
549
  considered += 1;
550
+ // The wire a row names is decided before anything else is asked about
551
+ // it, because every carried form needs it. A pair no routing follows
552
+ // from — upstream naming a model on a wire this driver does not speak
553
+ // — splits off into the undecided count here instead of stopping the
554
+ // run: the rest of the roster is exactly as derivable as it was before
555
+ // the row arrived, and one new wire upstream should not hold every
556
+ // other model back either. Nothing is guessed for the row.
557
+ const routed = pinnedRouteFor(row, service);
558
+ if ('refusal' in routed) {
559
+ if (routed.fatal) {
560
+ unusable(refusalMessage(row, row, routed.refusal));
561
+ }
562
+ undecided.push([`${service}/${row.id}`, routed.refusal]);
563
+ continue;
564
+ }
565
+ const protocol = routed.protocol;
461
566
  const metadata = provider.models[row.id];
462
567
  if (!metadata || typeof metadata !== 'object') {
463
568
  // The route and the price are stated and the limits are not, yet: carry it
@@ -469,7 +574,7 @@ export function derive(service, parsed, providerKey, provider, omissions, served
469
574
  unverified.push({
470
575
  id: row.id,
471
576
  name: row.name,
472
- protocol: pinnedProtocolFor(row, service),
577
+ protocol,
473
578
  ...CONSERVATIVE_LIMITS,
474
579
  inputModalities: ['text'],
475
580
  inputPrice: statedPrice ? statedPrice.input : 0,
@@ -516,7 +621,7 @@ export function derive(service, parsed, providerKey, provider, omissions, served
516
621
  models.push({
517
622
  id: row.id,
518
623
  name: row.name,
519
- protocol: pinnedProtocolFor(row, service),
624
+ protocol,
520
625
  contextWindow,
521
626
  maxOutputTokens,
522
627
  inputModalities,
@@ -1 +1 @@
1
- {"version":3,"file":"derive.js","sourceRoot":"","sources":["../../src/catalogue/derive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"derive.js","sourceRoot":"","sources":["../../src/catalogue/derive.ts"],"names":[],"mappings":"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"}
package/dist/client.d.ts CHANGED
@@ -4,6 +4,20 @@ import type { ZenConfig, ZenGoConfig } from './types.js';
4
4
  export declare const ZEN_CAPABILITIES: ProviderCapabilities;
5
5
  export declare const ZEN_BASE_URL = "https://opencode.ai/zen/v1";
6
6
  export declare const ZEN_GO_BASE_URL = "https://opencode.ai/zen/go/v1";
7
+ /**
8
+ * The host the anonymous free tier is served from.
9
+ *
10
+ * `ZEN_BASE_URL` remains the route for every keyed request, but the free-tier
11
+ * gateway refuses anonymous traffic on it: `POST /zen/v1/chat/completions`
12
+ * answers `403 FreeTierError` ("can only be used from within OpenCode") no
13
+ * matter how faithfully the request is shaped. The same request against
14
+ * `/inference/v1/chat/completions` is admitted, and that is the path OpenCode
15
+ * itself now speaks. Only the chat route is reachable anonymously — `/models`
16
+ * answers on both, and the Anthropic and Responses routes answer `401 Missing
17
+ * API key` on either, which is why the gate never offered them free access to
18
+ * begin with.
19
+ */
20
+ export declare const ZEN_FREE_TIER_BASE_URL = "https://opencode.ai/inference/v1";
7
21
  /** A provider instance belongs to one conversation; it never owns an agent loop. */
8
22
  export declare class ZenProvider implements LLMProvider {
9
23
  private readonly config;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAcA,OAAO,EACN,KAAK,oBAAoB,EACzB,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,oBAAoB,EAEzB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,cAAc,EAMnB,MAAM,YAAY,CAAA;AAYnB,OAAO,KAAK,EAAY,UAAU,EAAE,MAAM,aAAa,CAAA;AAQvD,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAExD,eAAO,MAAM,gBAAgB,EAAE,oBAS9B,CAAA;AAED,eAAO,MAAM,YAAY,+BAA+B,CAAA;AACxD,eAAO,MAAM,eAAe,kCAAkC,CAAA;AAuO9D,oFAAoF;AACpF,qBAAa,WAAY,YAAW,WAAW;IAgB7C,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,QAAQ,CAAC,OAAO,EAAE,UAAU;IAhB7B,QAAQ,CAAC,EAAE,EAAE,KAAK,GAAG,QAAQ,CAAA;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,YAAY,uBAAmB;IACxC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAIA;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAGjB,MAAM,GAAE,SAAc,EAC9B,OAAO,GAAE,UAAkB;IAsD9B,UAAU,CAAC,MAAM,EAAE,oBAAoB,GAAG,aAAa,CAAC,WAAW,CAAC;IA6YrE,UAAU,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAmD5D,wBAAwB,CACvB,KAAK,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,cAAc,GACxB,SAAS,eAAe,EAAE,GAAG,SAAS;IAInC,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAK5F,+FAA+F;IAC/F,OAAO,CAAC,gBAAgB;IAKxB,4EAA4E;IAC5E,OAAO,CAAC,KAAK;IAIb;;;;;;;;;;OAUG;IACH,OAAO,CAAC,OAAO;CAqEf;AAED,qBAAa,aAAc,SAAQ,WAAW;gBACjC,MAAM,EAAE,WAAW;CAG/B"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAcA,OAAO,EACN,KAAK,oBAAoB,EACzB,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,oBAAoB,EAEzB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,cAAc,EAMnB,MAAM,YAAY,CAAA;AAYnB,OAAO,KAAK,EAAY,UAAU,EAAE,MAAM,aAAa,CAAA;AAQvD,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAExD,eAAO,MAAM,gBAAgB,EAAE,oBAS9B,CAAA;AAED,eAAO,MAAM,YAAY,+BAA+B,CAAA;AACxD,eAAO,MAAM,eAAe,kCAAkC,CAAA;AAC9D;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,sBAAsB,qCAAqC,CAAA;AAuOxE,oFAAoF;AACpF,qBAAa,WAAY,YAAW,WAAW;IAgB7C,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,QAAQ,CAAC,OAAO,EAAE,UAAU;IAhB7B,QAAQ,CAAC,EAAE,EAAE,KAAK,GAAG,QAAQ,CAAA;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,YAAY,uBAAmB;IACxC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAIA;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAGjB,MAAM,GAAE,SAAc,EAC9B,OAAO,GAAE,UAAkB;IAsD9B,UAAU,CAAC,MAAM,EAAE,oBAAoB,GAAG,aAAa,CAAC,WAAW,CAAC;IAkZrE,UAAU,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAmD5D,wBAAwB,CACvB,KAAK,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,cAAc,GACxB,SAAS,eAAe,EAAE,GAAG,SAAS;IAInC,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAK5F,+FAA+F;IAC/F,OAAO,CAAC,gBAAgB;IAKxB,4EAA4E;IAC5E,OAAO,CAAC,KAAK;IAIb;;;;;;;;;;OAUG;IACH,OAAO,CAAC,OAAO;CAqEf;AAED,qBAAa,aAAc,SAAQ,WAAW;gBACjC,MAAM,EAAE,WAAW;CAG/B"}
package/dist/client.js CHANGED
@@ -22,6 +22,20 @@ export const ZEN_CAPABILITIES = {
22
22
  };
23
23
  export const ZEN_BASE_URL = 'https://opencode.ai/zen/v1';
24
24
  export const ZEN_GO_BASE_URL = 'https://opencode.ai/zen/go/v1';
25
+ /**
26
+ * The host the anonymous free tier is served from.
27
+ *
28
+ * `ZEN_BASE_URL` remains the route for every keyed request, but the free-tier
29
+ * gateway refuses anonymous traffic on it: `POST /zen/v1/chat/completions`
30
+ * answers `403 FreeTierError` ("can only be used from within OpenCode") no
31
+ * matter how faithfully the request is shaped. The same request against
32
+ * `/inference/v1/chat/completions` is admitted, and that is the path OpenCode
33
+ * itself now speaks. Only the chat route is reachable anonymously — `/models`
34
+ * answers on both, and the Anthropic and Responses routes answer `401 Missing
35
+ * API key` on either, which is why the gate never offered them free access to
36
+ * begin with.
37
+ */
38
+ export const ZEN_FREE_TIER_BASE_URL = 'https://opencode.ai/inference/v1';
25
39
  function withoutMuseSparkEncryptedReasoning(init) {
26
40
  // The pinned OpenAI adapter adds this include automatically whenever a
27
41
  // reasoning model uses store:false, even if providerOptions omits it.
@@ -342,6 +356,11 @@ export class ZenProvider {
342
356
  // always registers. A caller-owned base URL is not the gateway, so the
343
357
  // identity stays off it.
344
358
  const freeTierGate = this.anonymous && this.baseURL === ZEN_BASE_URL;
359
+ // Shape alone is not enough on `ZEN_BASE_URL`: the gateway turned the
360
+ // anonymous route away there and answers `403 FreeTierError`. Serve the
361
+ // gated request from the host that still admits it, and leave every
362
+ // keyed request on `this.baseURL`.
363
+ const requestBaseURL = freeTierGate ? ZEN_FREE_TIER_BASE_URL : this.baseURL;
345
364
  const gateSession = freeTierGate
346
365
  ? experimentalOpenCodeSessionId(this.sessionId)
347
366
  : this.sessionId;
@@ -376,7 +395,7 @@ export class ZenProvider {
376
395
  options.abortSignal = signal;
377
396
  const settings = {
378
397
  apiKey: this.apiKey,
379
- baseURL: this.baseURL,
398
+ baseURL: requestBaseURL,
380
399
  fetch: ((input, init) => {
381
400
  // The pinned Google adapter converts JSON Schema into an OpenAPI subset,
382
401
  // dropping constraints. Use the endpoint's JSON Schema field instead.