@hilbras/omnihilbras 1.40.0 → 1.42.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.
@@ -35,7 +35,7 @@ export const CLINE_OAUTH = {
35
35
  };
36
36
  const defaultRefreshSkewMs = 60_000;
37
37
  /** Reported to Cline as this client's version. */
38
- const omnihilbrasVersion = '1.40.0';
38
+ const omnihilbrasVersion = '1.42.0';
39
39
  /** Cline only accepts WorkOS JWTs with an explicit prefix. */
40
40
  export function toClineAccessToken(token) {
41
41
  const trimmed = token.trim();
@@ -0,0 +1,100 @@
1
+ /**
2
+ * OpenCode Zen's free-tier request contract.
3
+ *
4
+ * ## Why this exists, and why it was not written sooner
5
+ *
6
+ * Every free model on an `opencode` connection was refused:
7
+ *
8
+ * ```
9
+ * mimo-v2.6-flash-free 403 {"type":"FreeTierError","message":"OpenCode's free tier can only be used from within OpenCode"}
10
+ * big-pickle 403 (identical)
11
+ * nemotron-3.5-…-free 403 (identical)
12
+ * ```
13
+ *
14
+ * The message names the OpenCode client, so the obvious reading was that the free tier wanted the
15
+ * **CLI's own credential** — a 356-char account session token rather than the Zen API key this
16
+ * adapter holds. That reading was wrong, and it was wrong because it was inferred from one refusal
17
+ * instead of measured. `/home/gin/work/OmniRoute` implements the same models through the same base
18
+ * URL with `authType: "apikey"`, and `open-sse/executors/opencodeFreeTierContract.ts` records the
19
+ * contract it measured against the live endpoint: the gate is the **request**, not the credential.
20
+ *
21
+ * ## The four conditions
22
+ *
23
+ * 1. `stream: true` in the body.
24
+ * 2. a non-empty `tools` array — the upstream does not inspect its contents, only that it is there
25
+ * and non-empty. The official client's placeholder name is `_noop`.
26
+ * 3. an `x-opencode-session` header shaped `ses_` + 12 hex + 14 base62. **The shape is checked and the
27
+ * value is not**, so a random id satisfies it; no attempt is made to reproduce the client's
28
+ * algorithm.
29
+ * 4. a `User-Agent` carrying `opencode/<version>` with version >= 1.17.
30
+ *
31
+ * ## What is *not* claimed here
32
+ *
33
+ * The four conditions are necessary. Measured from this machine, applying all four **still** answers
34
+ * 403 — so something beyond the request also decides, and OmniRoute's own comments name the likely
35
+ * candidate twice: the CLI identity headers exist because "Cloudflare requires [them] on VPS egress",
36
+ * and the free tier "rejects generic client UAs from datacenter IPs". This machine's egress is
37
+ * `AS204044`, a hosting provider.
38
+ *
39
+ * That is a hypothesis and it is recorded as one. What is *not* left to hypothesis is the user-facing
40
+ * consequence: a free model refused after the contract was applied is **not** a credential problem,
41
+ * and saying so is what stops the next person from rotating a working key. `freeTierRefused` exists
42
+ * for that message.
43
+ */
44
+ /** The minimum `User-Agent` version the upstream accepts; older answers 426, not 403. */
45
+ export declare const MINIMUM_ZEN_USER_AGENT_MINOR = 17;
46
+ /**
47
+ * The placeholder tool the official client declares to satisfy the gate.
48
+ *
49
+ * **A moving target.** OmniRoute records that one made-up name was accepted on `big-pickle` and
50
+ * refused on two other free models that had accepted it the day before, which is an observation about
51
+ * someone else's service rather than a fact this project controls. It is therefore a default that
52
+ * `OMNIHILBRAS_ZEN_PLACEHOLDER_TOOL` can replace without a release, and the refusal path below names
53
+ * it so a wrong guess is diagnosable rather than mysterious.
54
+ */
55
+ export declare const DEFAULT_ZEN_PLACEHOLDER_TOOL = "_noop";
56
+ /** `ses_` + 12 hex + 14 base62 — the shape the upstream checks. */
57
+ export declare function zenSessionId(seed?: string): string;
58
+ /** Whether a `User-Agent` already satisfies the upstream's version rule, so it need not be replaced. */
59
+ export declare function satisfiesZenUserAgentContract(userAgent: string | null | undefined): boolean;
60
+ /** The default synthesized identity. Overridable so a newer real client version needs no release. */
61
+ export declare function zenUserAgent(): string;
62
+ /** The placeholder tool name, overridable because the accepted names move over time. */
63
+ export declare function zenPlaceholderToolName(): string;
64
+ /**
65
+ * The headers half of the contract, for a free-tier request.
66
+ *
67
+ * `x-opencode-session` is passed in rather than synthesised here because the caller owns conversation
68
+ * affinity: two turns of one conversation must present one session id, and a helper that minted a fresh
69
+ * one per call would defeat the only thing the upstream cache keys on.
70
+ */
71
+ export declare function zenFreeTierHeaders(sessionId: string): Record<string, string>;
72
+ /** A tool that satisfies the gate and is never called, so it cannot change an answer. */
73
+ export declare function zenPlaceholderTool(): {
74
+ type: 'function';
75
+ function: {
76
+ name: string;
77
+ description: string;
78
+ parameters: {
79
+ type: 'object';
80
+ properties: Record<string, never>;
81
+ additionalProperties: boolean;
82
+ };
83
+ };
84
+ };
85
+ /**
86
+ * Whether a body and header set satisfy the contract, for the refusal message.
87
+ *
88
+ * Exported so the failure path can state *which* conditions were met rather than guessing, which is
89
+ * the difference between "check your key" and "the gate is not the key".
90
+ */
91
+ export declare function zenContractSatisfied(headers: Record<string, string>, body: Record<string, unknown>): boolean;
92
+ /**
93
+ * A refusal whose cause is the free-tier gate rather than the credential.
94
+ *
95
+ * `FreeTierError` is the upstream's own envelope, so this is not a guess at the meaning — it matches
96
+ * the literal type it sends. The message says the contract was satisfied, because a user who is told
97
+ * only "free tier" will go looking for a key that is already correct.
98
+ */
99
+ export declare function isZenFreeTierRefusal(status: number, payload: unknown): boolean;
100
+ //# sourceMappingURL=zen-free-tier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zen-free-tier.d.ts","sourceRoot":"","sources":["../../src/adapters/zen-free-tier.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAEH,yFAAyF;AACzF,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAE/C;;;;;;;;GAQG;AACH,eAAO,MAAM,4BAA4B,UAAU,CAAC;AAUpD,mEAAmE;AACnE,wBAAgB,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAGlD;AAyBD,wGAAwG;AACxG,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAO3F;AAED,qGAAqG;AACrG,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wFAAwF;AACxF,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAQ5E;AAED,yFAAyF;AACzF,wBAAgB,kBAAkB,IAAI;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE;YAAE,IAAI,EAAE,QAAQ,CAAC;YAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAAC,oBAAoB,EAAE,OAAO,CAAA;SAAE,CAAA;KAAE,CAAA;CAAE,CAS5M;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAS5G;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAI9E"}
Binary file
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zen-free-tier.js","sourceRoot":"","sources":["../../src/adapters/zen-free-tier.ts"],"names":[],"mappings":"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"}
@@ -61,6 +61,46 @@ export declare class ZenAdapter implements ProviderAdapter {
61
61
  * happily. So this reports what it established, and the dashboard says what that means.
62
62
  */
63
63
  healthCheck(context?: ProviderRequestContext): Promise<ProviderHealth>;
64
+ /**
65
+ * A free-tier chat, with the request contract applied.
66
+ *
67
+ * The contract requires `stream: true`, so this always sends a stream and re-aggregates it into the
68
+ * `ChatResponse` the caller asked for. A caller that wanted JSON is not getting a different request;
69
+ * they are getting the same one the gate permits, decoded. That is stated in the method name rather
70
+ * than hidden in the body, because "why is a JSON request streaming?" is a fair question.
71
+ */
72
+ private gatedChat;
73
+ /**
74
+ * The one request this adapter sends for a free model: contract applied, stream requested.
75
+ *
76
+ * The refusal below is the part worth reading. Measured from this machine, a request carrying **all
77
+ * four** conditions still answers `403 FreeTierError`, and the working implementation's own comments
78
+ * name the likely reason twice — the CLI identity headers exist because "Cloudflare requires [them]
79
+ * on VPS egress", and the free tier "rejects generic client UAs from datacenter IPs". So when the
80
+ * contract has been applied and the request is *still* refused, telling the user to check their
81
+ * access sends them to rotate a key that was already accepted. It says what was sent and names the
82
+ * network as the likely cause, which is the thing they can act on.
83
+ */
84
+ private streamGated;
85
+ /**
86
+ * Pass the stream through, turning a transport-level refusal into the gated one.
87
+ *
88
+ * `transport.stream` raises its own `ProviderError` for a non-2xx **before** yielding a single event,
89
+ * so the gate's refusal arrives as a throw and never reaches the chunk loop below. Left alone the user
90
+ * sees the transport's generic *"The provider refused the request."* — the reasonless verdict this
91
+ * whole change exists to remove, arriving from the layer underneath. Wrapping is the only place that
92
+ * can still tell it was the gate, because by the time it throws the contract state is gone.
93
+ */
94
+ private captureGateRefusal;
95
+ /** The refusal, naming what was sent — the difference between a key problem and a network one. */
96
+ private gatedRefusal;
97
+ /**
98
+ * A stable fingerprint of one conversation, so its turns share an upstream session.
99
+ *
100
+ * Only the shape of the conversation goes in, and only its digest reaches the network — the
101
+ * conversation itself is neither stored nor sent here.
102
+ */
103
+ private conversationSeed;
64
104
  /** The messages lane: raw key in `x-api-key`, plus the required version header. */
65
105
  private apiKeyHeaders;
66
106
  private authHeaders;
@@ -1 +1 @@
1
- {"version":3,"file":"zen.d.ts","sourceRoot":"","sources":["../../src/adapters/zen.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,OAAO,KAAK,EAAE,SAAS,EAAe,WAAW,EAAE,YAAY,EAAE,oBAAoB,EAAgB,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,cAAc,EAAE,sBAAsB,EAAc,MAAM,aAAa,CAAC;AAEzN;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,4BAA4B,CAAC;AACtD,eAAO,MAAM,SAAS;;;;CAIZ,CAAC;AAEX,MAAM,MAAM,OAAO,GAAG,MAAM,OAAO,SAAS,CAAC;AAe7C,8EAA8E;AAC9E,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAM/E;AA0KD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,qBAAa,UAAW,YAAW,eAAe;IAChD,QAAQ,CAAC,EAAE,cAAc;IACzB,QAAQ,CAAC,IAAI,kBAAkB;IAC/B,QAAQ,CAAC,YAAY;;;;MAA2D;IAChF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;IAC1C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0B;IACnD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAEvB,OAAO,GAAE,iBAAsB;IASrC,UAAU,CAAC,OAAO,GAAE,sBAA2B,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAkBxE;;;;OAIG;IACG,kBAAkB,CAAC,UAAU,EAAE,kBAAkB,GAAG,SAAS,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAU7F,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,GAAE,sBAA2B,GAAG,OAAO,CAAC,YAAY,CAAC;IAgC7F;;;;OAIG;IACI,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,GAAE,sBAA2B,GAAG,aAAa,CAAC,SAAS,CAAC;IAavG;;;;;;;OAOG;IACG,WAAW,CAAC,OAAO,GAAE,sBAA2B,GAAG,OAAO,CAAC,cAAc,CAAC;IAchF,mFAAmF;IACnF,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,WAAW;CASpB"}
1
+ {"version":3,"file":"zen.d.ts","sourceRoot":"","sources":["../../src/adapters/zen.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIrD,OAAO,KAAK,EAAE,SAAS,EAAe,WAAW,EAAE,YAAY,EAAE,oBAAoB,EAAgB,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,cAAc,EAAE,sBAAsB,EAA8B,MAAM,aAAa,CAAC;AAEzO;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,4BAA4B,CAAC;AACtD,eAAO,MAAM,SAAS;;;;CAIZ,CAAC;AA8DX,MAAM,MAAM,OAAO,GAAG,MAAM,OAAO,SAAS,CAAC;AA2B7C,8EAA8E;AAC9E,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAM/E;AA0KD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,qBAAa,UAAW,YAAW,eAAe;IAChD,QAAQ,CAAC,EAAE,cAAc;IACzB,QAAQ,CAAC,IAAI,kBAAkB;IAC/B,QAAQ,CAAC,YAAY;;;;MAA2D;IAChF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;IAC1C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0B;IACnD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAEvB,OAAO,GAAE,iBAAsB;IASrC,UAAU,CAAC,OAAO,GAAE,sBAA2B,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAkBxE;;;;OAIG;IACG,kBAAkB,CAAC,UAAU,EAAE,kBAAkB,GAAG,SAAS,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAU7F,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,GAAE,sBAA2B,GAAG,OAAO,CAAC,YAAY,CAAC;IAqC7F;;;;OAIG;IACI,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,GAAE,sBAA2B,GAAG,aAAa,CAAC,SAAS,CAAC;IAoBvG;;;;;;;OAOG;IACG,WAAW,CAAC,OAAO,GAAE,sBAA2B,GAAG,OAAO,CAAC,cAAc,CAAC;IAchF;;;;;;;OAOG;YACW,SAAS;IAmBvB;;;;;;;;;;OAUG;YACY,WAAW;IAiD1B;;;;;;;;OAQG;YACY,kBAAkB;IAUjC,kGAAkG;IAClG,OAAO,CAAC,YAAY;IAuBpB;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IAQxB,mFAAmF;IACnF,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,WAAW;CASpB"}
@@ -1,6 +1,8 @@
1
1
  import { ProviderError } from '../errors.js';
2
2
  import { FetchHttpTransport } from '../transport.js';
3
3
  import { OpenAICompatibleAdapter } from './openai-compatible.js';
4
+ import { parseSseJson, parseSseStream } from '../streaming.js';
5
+ import { isZenFreeTierRefusal, zenFreeTierHeaders, zenPlaceholderTool, zenSessionId, zenContractSatisfied } from './zen-free-tier.js';
4
6
  /**
5
7
  * OpenCode Zen serves one catalog through three different wire formats. Which
6
8
  * format a model uses is a property of the model, not of the connection, so a
@@ -16,6 +18,54 @@ export const ZEN_LANES = {
16
18
  messages: `${ZEN_BASE_URL}/v1/messages`,
17
19
  responses: `${ZEN_BASE_URL}/v1/responses`,
18
20
  };
21
+ function toGatedMessage(message) {
22
+ return {
23
+ role: message.role,
24
+ content: messageText(message),
25
+ ...(message.name ? { name: message.name } : {}),
26
+ ...(message.toolCallId ? { tool_call_id: message.toolCallId } : {}),
27
+ };
28
+ }
29
+ /**
30
+ * A tool in the shape the upstream expects.
31
+ *
32
+ * Kept local rather than imported because `openai-compatible.ts` keeps its own copy private, and a
33
+ * second export used once would be a wider surface than the duplication is worth.
34
+ */
35
+ function toGatedTool(tool) {
36
+ return {
37
+ type: 'function',
38
+ function: { name: tool.name, ...(tool.description ? { description: tool.description } : {}), parameters: tool.parameters },
39
+ };
40
+ }
41
+ function toGatedFinishReason(reason) {
42
+ const map = {
43
+ stop: 'stop', length: 'length', tool_calls: 'tool_calls', function_call: 'tool_calls', content_filter: 'content_filter',
44
+ };
45
+ return map[reason] ?? 'stop';
46
+ }
47
+ /**
48
+ * The upstream's own words, wherever they ended up.
49
+ *
50
+ * Two shapes reach here: a payload envelope from the stream (`{error: {message}}`), and the
51
+ * `ProviderError` the transport raised, which carries the provider's text in `details.providerMessage`.
52
+ * Reading only the first is what produced a bare "The provider refused the request." on every gated
53
+ * model — the cause was in hand and the code was not looking at it.
54
+ */
55
+ function readGatedErrorReason(payload) {
56
+ const details = payload?.details;
57
+ if (typeof details?.providerMessage === 'string')
58
+ return details.providerMessage;
59
+ const error = payload?.error;
60
+ if (typeof error === 'string')
61
+ return error;
62
+ const message = error?.message;
63
+ if (typeof message === 'string')
64
+ return message;
65
+ return typeof payload?.message === 'string'
66
+ ? payload.message
67
+ : undefined;
68
+ }
19
69
  /**
20
70
  * Model families with a published non-chat endpoint. Matched by prefix so a new
21
71
  * `claude-*` or `gpt-*` is routed correctly without a code change, and matched
@@ -27,6 +77,17 @@ const responsesFamily = /^(gpt-|grok-|muse-spark-)/;
27
77
  /** Models Zen serves from an endpoint this adapter does not implement. */
28
78
  const unsupported = new Set(['jev-1.13', 'jev-1.13-free']);
29
79
  const unsupportedFamily = /^gemini-/;
80
+ /**
81
+ * Whether a model is on the gated free tier, and so needs the request contract.
82
+ *
83
+ * The suffix is the whole test rather than a list, because **the upstream rotates its free lineup** —
84
+ * OmniRoute records `minimax-m2.5-free`, `ling-2.6-1t-free` and three others being delisted and
85
+ * replaced within a week. A list would be stale the day after it was written and would keep serving
86
+ * models that no longer exist while refusing ones that do. A suffix tracks the tier.
87
+ */
88
+ function isFreeTierModel(id) {
89
+ return /-free$/.test(id);
90
+ }
30
91
  /** The lane a model is served from, and whether this adapter can speak it. */
31
92
  export function zenLaneFor(model) {
32
93
  const id = model.includes('/') ? model.slice(model.lastIndexOf('/') + 1) : model;
@@ -227,8 +288,13 @@ export class ZenAdapter {
227
288
  const id = request.model.includes('/') ? request.model.slice(request.model.lastIndexOf('/') + 1) : request.model;
228
289
  if (!supported)
229
290
  throw unsupportedLane(request.model, id);
230
- if (lane === 'chat')
291
+ if (lane === 'chat') {
292
+ // Free-tier models need the request contract, which the delegated chat lane knows nothing
293
+ // about — it sends `stream: false` and whatever tools the caller declared, which is a refusal.
294
+ if (isFreeTierModel(id))
295
+ return this.gatedChat(request, context);
231
296
  return this.chatLane.chat(request, context);
297
+ }
232
298
  const isResponses = lane === 'responses';
233
299
  const response = await this.transport.request({
234
300
  method: 'POST',
@@ -269,6 +335,13 @@ export class ZenAdapter {
269
335
  publicMessage: `Streaming is not implemented for this OpenCode Zen model. Use a non-streaming request.`,
270
336
  });
271
337
  }
338
+ if (isFreeTierModel(id)) {
339
+ // The contract requires a stream, so a free model is streamed upstream **regardless** of what the
340
+ // caller asked for — `gatedChat` aggregates that same stream back into one response. Asking
341
+ // upstream for JSON instead is refused with `FreeTierError`, so there is no other path to take.
342
+ yield* this.streamGated(request, context);
343
+ return;
344
+ }
272
345
  yield* this.chatLane.streamChat(request, context);
273
346
  }
274
347
  /**
@@ -293,6 +366,143 @@ export class ZenAdapter {
293
366
  };
294
367
  }
295
368
  }
369
+ /**
370
+ * A free-tier chat, with the request contract applied.
371
+ *
372
+ * The contract requires `stream: true`, so this always sends a stream and re-aggregates it into the
373
+ * `ChatResponse` the caller asked for. A caller that wanted JSON is not getting a different request;
374
+ * they are getting the same one the gate permits, decoded. That is stated in the method name rather
375
+ * than hidden in the body, because "why is a JSON request streaming?" is a fair question.
376
+ */
377
+ async gatedChat(request, context) {
378
+ let text = '';
379
+ let finishReason;
380
+ let responseId = '';
381
+ for await (const chunk of this.streamGated(request, context)) {
382
+ responseId = chunk.id || responseId;
383
+ if (chunk.delta?.content)
384
+ text += chunk.delta.content;
385
+ if (chunk.finishReason)
386
+ finishReason = chunk.finishReason;
387
+ }
388
+ return {
389
+ id: responseId || `zen-${request.model}`,
390
+ providerId: this.id,
391
+ model: request.model,
392
+ createdAt: new Date().toISOString(),
393
+ message: { role: 'assistant', content: text },
394
+ finishReason: finishReason ?? 'stop',
395
+ };
396
+ }
397
+ /**
398
+ * The one request this adapter sends for a free model: contract applied, stream requested.
399
+ *
400
+ * The refusal below is the part worth reading. Measured from this machine, a request carrying **all
401
+ * four** conditions still answers `403 FreeTierError`, and the working implementation's own comments
402
+ * name the likely reason twice — the CLI identity headers exist because "Cloudflare requires [them]
403
+ * on VPS egress", and the free tier "rejects generic client UAs from datacenter IPs". So when the
404
+ * contract has been applied and the request is *still* refused, telling the user to check their
405
+ * access sends them to rotate a key that was already accepted. It says what was sent and names the
406
+ * network as the likely cause, which is the thing they can act on.
407
+ */
408
+ async *streamGated(request, context) {
409
+ const id = request.model.includes('/') ? request.model.slice(request.model.lastIndexOf('/') + 1) : request.model;
410
+ const headers = this.authHeaders(context.credential, zenFreeTierHeaders(zenSessionId(this.conversationSeed(request))));
411
+ const body = {
412
+ model: id,
413
+ messages: request.messages.map(toGatedMessage),
414
+ stream: true,
415
+ // The caller's tools when there are any; the placeholder otherwise, because an empty array is a
416
+ // refusal. A tool the model could actually call is never removed to make room for the placeholder.
417
+ tools: request.tools && request.tools.length > 0 ? request.tools.map(toGatedTool) : [zenPlaceholderTool()],
418
+ ...(request.maxOutputTokens === undefined ? {} : { max_tokens: request.maxOutputTokens }),
419
+ ...(request.temperature === undefined ? {} : { temperature: request.temperature }),
420
+ ...(request.topP === undefined ? {} : { top_p: request.topP }),
421
+ };
422
+ const satisfied = zenContractSatisfied(headers, body);
423
+ const events = this.captureGateRefusal(this.transport.stream({
424
+ method: 'POST',
425
+ providerId: this.id,
426
+ url: ZEN_LANES.chat,
427
+ headers: { ...headers, accept: 'text/event-stream' },
428
+ body: JSON.stringify(body),
429
+ ...(context.signal ? { signal: context.signal } : {}),
430
+ }), request.model, satisfied);
431
+ let opened = false;
432
+ for await (const event of parseSseStream(events)) {
433
+ if (event.data.trim() === '[DONE]')
434
+ return;
435
+ const chunk = parseSseJson(event, this.id);
436
+ if (!chunk)
437
+ continue;
438
+ opened = true;
439
+ if (chunk.error)
440
+ throw this.gatedRefusal(request.model, chunk, satisfied);
441
+ const chunkId = chunk.id ?? `zen-${id}`;
442
+ const delta = chunk.choices?.[0]?.delta?.content;
443
+ if (delta)
444
+ yield { id: chunkId, providerId: this.id, model: id, delta: { content: delta } };
445
+ const finish = chunk.choices?.[0]?.finish_reason;
446
+ if (finish)
447
+ yield { id: chunkId, providerId: this.id, model: id, delta: {}, finishReason: toGatedFinishReason(finish) };
448
+ }
449
+ // The stream closed without a single payload: either the gate refused before the first event, or
450
+ // the answer was JSON rather than SSE. Those need different messages, so it is read rather than
451
+ // guessed at.
452
+ if (!opened)
453
+ throw this.gatedRefusal(request.model, undefined, satisfied);
454
+ }
455
+ /**
456
+ * Pass the stream through, turning a transport-level refusal into the gated one.
457
+ *
458
+ * `transport.stream` raises its own `ProviderError` for a non-2xx **before** yielding a single event,
459
+ * so the gate's refusal arrives as a throw and never reaches the chunk loop below. Left alone the user
460
+ * sees the transport's generic *"The provider refused the request."* — the reasonless verdict this
461
+ * whole change exists to remove, arriving from the layer underneath. Wrapping is the only place that
462
+ * can still tell it was the gate, because by the time it throws the contract state is gone.
463
+ */
464
+ async *captureGateRefusal(stream, model, satisfied) {
465
+ try {
466
+ yield* stream;
467
+ }
468
+ catch (error) {
469
+ throw error instanceof ProviderError && /refused the request/i.test(error.message)
470
+ ? this.gatedRefusal(model, error, satisfied)
471
+ : error;
472
+ }
473
+ }
474
+ /** The refusal, naming what was sent — the difference between a key problem and a network one. */
475
+ gatedRefusal(model, payload, satisfied) {
476
+ // `providerErrorFromResponse` maps every 403 to `PROVIDER_REQUEST_FAILED` and attaches no
477
+ // `statusCode`, so the status cannot be recovered from the thrown error — but the **cause** can,
478
+ // and that is what decides the code. Recognising the gate by the provider's own `FreeTierError`
479
+ // wording rather than by status is therefore more honest than assuming a 403: a 429 on the free
480
+ // tier stays `RATE_LIMITED` and a 5xx stays `PROVIDER_UNAVAILABLE`, instead of every gated refusal
481
+ // collapsing into one code that means nothing to the retry policy.
482
+ const reason = readGatedErrorReason(payload);
483
+ const gated = isZenFreeTierRefusal(403, payload) || /freetiererror|free tier/i.test(reason ?? '');
484
+ const message = satisfied
485
+ ? `OpenCode Zen refused ${model} after this gateway sent everything its free-tier request contract requires — a streaming request, a declared tool, a session header and a client version. The API key was accepted, so this is not a credential problem: OpenCode limits its free tier to non-datacenter networks, and this host's egress address is the likely cause.`
486
+ : `OpenCode Zen refused ${model}, and this gateway could not satisfy its free-tier request contract.`;
487
+ return new ProviderError(gated ? 'PROVIDER_UNAVAILABLE' : 'PROVIDER_REQUEST_FAILED', message, {
488
+ providerId: this.id,
489
+ publicMessage: message,
490
+ ...(reason ? { details: { providerReason: reason } } : {}),
491
+ });
492
+ }
493
+ /**
494
+ * A stable fingerprint of one conversation, so its turns share an upstream session.
495
+ *
496
+ * Only the shape of the conversation goes in, and only its digest reaches the network — the
497
+ * conversation itself is neither stored nor sent here.
498
+ */
499
+ conversationSeed(request) {
500
+ return [
501
+ request.model,
502
+ request.messages.map((message) => `${message.role}:${typeof message.content === 'string' ? message.content : ''}`).join('|'),
503
+ (request.tools ?? []).map((tool) => ('name' in tool ? String(tool.name) : 'fn')).join(','),
504
+ ].join(' ');
505
+ }
296
506
  /** The messages lane: raw key in `x-api-key`, plus the required version header. */
297
507
  apiKeyHeaders(credential) {
298
508
  const value = credential?.type === 'none' ? '' : credential?.value ?? '';
@@ -1 +1 @@
1
- {"version":3,"file":"zen.js","sourceRoot":"","sources":["../../src/adapters/zen.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"zen.js","sourceRoot":"","sources":["../../src/adapters/zen.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hilbras/omnihilbras",
3
- "version": "1.40.0",
3
+ "version": "1.42.0",
4
4
  "description": "Typed provider SDK for the OmniHilbras gateway: normalized chat, streaming, model listing, and capability contracts for OpenAI, Anthropic, Gemini, and OpenAI-compatible providers.",
5
5
  "license": "MIT",
6
6
  "author": "Hilbras",