@hilbras/omnihilbras 1.70.0 → 1.71.1

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.70.0';
38
+ const omnihilbrasVersion = '1.71.1';
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,175 @@
1
+ import { type HttpTransport } from '../transport.js';
2
+ import type { ChatChunk, ChatRequest, ChatResponse, EmbeddingRequest, EmbeddingResponse, Model, ProviderAdapter, ProviderCapabilities, ProviderCredential, ProviderHealth, ProviderRequestContext } from '../types.js';
3
+ /**
4
+ * Kimi Code — the `api.kimi.com` coding subscription, reached by OAuth device code.
5
+ *
6
+ * ## Why this exists beside the `kimi` API-key adapter
7
+ *
8
+ * Two different things share the name Kimi. `https://api.moonshot.ai/v1` is the platform, sold per
9
+ * token with an API key, and that card already exists. `https://api.kimi.com/coding` is a *subscription*
10
+ * — a monthly plan that signs in with the account you already have, exactly as the vendor's own CLI
11
+ * does. They are separate accounts, separate billing, and separate endpoints, so they get separate
12
+ * provider ids and separate cards rather than one card with two modes.
13
+ *
14
+ * ## What was verified, and what was taken on trust
15
+ *
16
+ * Every host below was probed before it was written down:
17
+ *
18
+ * ```
19
+ * POST https://auth.kimi.com/api/oauth/token -> 405 Method Not Allowed (live; GET is not the method)
20
+ * GET https://api.kimi.com/coding/v1/models -> 401 Invalid Authentication
21
+ * ```
22
+ *
23
+ * A 405 from a GET is the useful signal: it means a real service answered with "wrong verb", not a
24
+ * parked domain. The client id is **not** verified — it is Kimi's public, shipped-in-their-CLI
25
+ * identifier, copied from their own registry, and a wrong one fails at the first sign-in with
26
+ * `invalid_client`, which is a safe and visible failure.
27
+ *
28
+ * ## The two auth modes this provider has
29
+ *
30
+ * Kimi accepts the OAuth token and the platform API key over the *same* endpoint, distinguished only
31
+ * by which header carries it. `credential` below is therefore a union in practice: an OAuth value is
32
+ * sent as `Authorization: Bearer`, an api-key value as `x-api-key`. That is not a convenience — it is
33
+ * what lets the same model ids work for both accounts.
34
+ */
35
+ export declare const KIMI_CODE: {
36
+ /** The coding subscription's API host. */
37
+ readonly server: "https://api.kimi.com";
38
+ /** The account host that issues and renews tokens. Separate from the API host by design. */
39
+ readonly authOrigin: "https://auth.kimi.com";
40
+ /** The web origin the user visits to approve a device code. */
41
+ readonly webOrigin: "https://www.kimi.com";
42
+ /**
43
+ * Kimi's public CLI client id.
44
+ *
45
+ * Taken from Kimi's own published registry rather than invented, because the token endpoint is
46
+ * bound to it and an unregistered id is refused with `invalid_client`.
47
+ */
48
+ readonly clientId: "17e5f671-d194-4dfb-9706-5516cb48c098";
49
+ readonly deviceCodePath: "/api/oauth/device_authorization";
50
+ readonly deviceTokenPath: "/api/oauth/token";
51
+ readonly chatPath: "/coding/v1/chat/completions";
52
+ readonly modelsPath: "/coding/v1/models";
53
+ readonly embeddingsPath: "/coding/v1/embeddings";
54
+ readonly grantType: "urn:ietf:params:oauth:grant-type:device_code";
55
+ readonly refreshGrantType: "refresh_token";
56
+ };
57
+ export declare const kimiCodeProviderId = "kimi-code";
58
+ export type KimiCodeAdapterOptions = {
59
+ transport?: HttpTransport;
60
+ timeoutMs?: number;
61
+ /** Called with a renewed credential so a caller can persist it. */
62
+ onTokensRefreshed?: (credential: ProviderCredential) => void | Promise<void>;
63
+ now?: () => number;
64
+ };
65
+ export declare class KimiCodeAdapter implements ProviderAdapter {
66
+ readonly id = "kimi-code";
67
+ readonly name = "Kimi Code";
68
+ readonly capabilities: ProviderCapabilities;
69
+ private readonly baseUrl;
70
+ private readonly transport;
71
+ private readonly onTokensRefreshed?;
72
+ private readonly now;
73
+ private readonly headers;
74
+ /** Renewed credentials keyed by the access token they replaced. */
75
+ private readonly renewed;
76
+ constructor(options?: KimiCodeAdapterOptions);
77
+ /**
78
+ * Asks Kimi for a device code.
79
+ *
80
+ * The verification URI comes back relative to the *web* origin, so joining it to the API host would
81
+ * produce a page that does not exist — the same trap the Console flow documents.
82
+ */
83
+ beginSignIn(): Promise<{
84
+ deviceCode: string;
85
+ /** The id this flow minted, which the poll must present. */
86
+ deviceId: string;
87
+ userCode: string;
88
+ verificationUrl: string;
89
+ expiresIn?: number;
90
+ }>;
91
+ /**
92
+ * Polls for the token.
93
+ *
94
+ * Kimi answers a pending poll with an error code in the body, so the *code* decides the outcome and
95
+ * a transport-level 4xx is not treated as a failed sign-in. `slow_down` is mapped to `pending`
96
+ * rather than a denial because it is Kimi asking for a slower poll, not refusing the grant.
97
+ */
98
+ pollSignIn(deviceCode: string, signal?: AbortSignal, deviceId?: string): Promise<{
99
+ status: 'pending';
100
+ } | {
101
+ status: 'denied';
102
+ error: string;
103
+ } | {
104
+ status: 'connected';
105
+ credential: ProviderCredential;
106
+ account: string;
107
+ }>;
108
+ listModels(context?: ProviderRequestContext): Promise<Model[]>;
109
+ chat(request: ChatRequest, context?: ProviderRequestContext): Promise<ChatResponse>;
110
+ streamChat(request: ChatRequest, context?: ProviderRequestContext): AsyncIterable<ChatChunk>;
111
+ /**
112
+ * Kimi's coding endpoint serves `/coding/v1/embeddings`.
113
+ *
114
+ * `dimensions` is measured from the vector, never assumed — the same rule the OpenAI-compatible
115
+ * adapter follows, and for the same reason: a wrong dimension count cannot be detected by a caller
116
+ * after the vector has been built.
117
+ */
118
+ embed(request: EmbeddingRequest, context?: ProviderRequestContext): Promise<EmbeddingResponse>;
119
+ /**
120
+ * Reads `/coding/v1/models`, which is free and never bills.
121
+ *
122
+ * A health check that spends money would be a real cost on every sweep, and a check that launches a
123
+ * browser was the defect fixed in the credential-lifecycle work. A free authenticated read is both.
124
+ */
125
+ healthCheck(context?: ProviderRequestContext): Promise<ProviderHealth>;
126
+ /** Kimi's token, renewed without asking the user to sign in again. */
127
+ private credential;
128
+ private url;
129
+ /**
130
+ * The credential header, which is the one place the two auth modes differ.
131
+ *
132
+ * An OAuth token goes in `Authorization: Bearer` and a platform API key in `x-api-key`, because
133
+ * Kimi's coding endpoint accepts both and distinguishes them by header. Sending an OAuth token as
134
+ * `x-api-key` produces a `401` whose body names the header it wanted, so the split is read from the
135
+ * credential rather than hardcoded per request.
136
+ */
137
+ private requestHeaders;
138
+ private toRequestBody;
139
+ private toChatResponse;
140
+ /**
141
+ * Posts a form-encoded body to the account host.
142
+ *
143
+ * `URLSearchParams` rather than a hand-built string, so a value containing `&` or `=` is encoded
144
+ * rather than splitting the body — which on a token endpoint means a client id that arrives
145
+ * truncated, with no error to point at.
146
+ */
147
+ /**
148
+ * Posts a form body and returns the parsed body **whatever the status**.
149
+ *
150
+ * Only for an endpoint whose 4xx carries a meaningful body — an OAuth token exchange, where `400
151
+ * authorization_pending` is an expected answer rather than a failure. Everywhere else the shared
152
+ * transport's classification is right and this must not be used: a 401 here would be read as data
153
+ * instead of an authentication failure.
154
+ */
155
+ private postFormAllowingRefusal;
156
+ private postForm;
157
+ /**
158
+ * The account-host headers, which differ from the API-host ones.
159
+ *
160
+ * `X-Msh-Device-Id` is a per-sign-in identifier that has to be **the same on the start and the poll**:
161
+ * Kimi ties the two halves of a device grant together by it, so a poll carrying a fresh id asks
162
+ * about a different session and comes back `authorization_pending` forever. It is minted once per
163
+ * sign-in and carried on the session, which is why `pollSignIn` takes it as a parameter.
164
+ */
165
+ private kimiHeaders;
166
+ }
167
+ /**
168
+ * Whether the credential is definitely expired.
169
+ *
170
+ * Three answers, because the third is the load-bearing one: `true` is definitely expired, `false` is
171
+ * definitely not, and `undefined` means *this adapter cannot say* — so the gateway asks the provider
172
+ * rather than ejecting a working connection.
173
+ */
174
+ export declare function kimiCodeCredentialExpired(credential: ProviderCredential | undefined, now: number): boolean | undefined;
175
+ //# sourceMappingURL=kimi-code.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kimi-code.d.ts","sourceRoot":"","sources":["../../src/adapters/kimi-code.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,576 @@
1
+ import { ProviderError } from '../errors.js';
2
+ import { parseSseJson, parseSseStream } from '../streaming.js';
3
+ import { FetchHttpTransport } from '../transport.js';
4
+ import { assertSafeProviderHeaderValue, normalizeProviderBaseUrl, resolveProviderUrl, sanitizeProviderHeaders } from '../url.js';
5
+ /**
6
+ * Kimi Code — the `api.kimi.com` coding subscription, reached by OAuth device code.
7
+ *
8
+ * ## Why this exists beside the `kimi` API-key adapter
9
+ *
10
+ * Two different things share the name Kimi. `https://api.moonshot.ai/v1` is the platform, sold per
11
+ * token with an API key, and that card already exists. `https://api.kimi.com/coding` is a *subscription*
12
+ * — a monthly plan that signs in with the account you already have, exactly as the vendor's own CLI
13
+ * does. They are separate accounts, separate billing, and separate endpoints, so they get separate
14
+ * provider ids and separate cards rather than one card with two modes.
15
+ *
16
+ * ## What was verified, and what was taken on trust
17
+ *
18
+ * Every host below was probed before it was written down:
19
+ *
20
+ * ```
21
+ * POST https://auth.kimi.com/api/oauth/token -> 405 Method Not Allowed (live; GET is not the method)
22
+ * GET https://api.kimi.com/coding/v1/models -> 401 Invalid Authentication
23
+ * ```
24
+ *
25
+ * A 405 from a GET is the useful signal: it means a real service answered with "wrong verb", not a
26
+ * parked domain. The client id is **not** verified — it is Kimi's public, shipped-in-their-CLI
27
+ * identifier, copied from their own registry, and a wrong one fails at the first sign-in with
28
+ * `invalid_client`, which is a safe and visible failure.
29
+ *
30
+ * ## The two auth modes this provider has
31
+ *
32
+ * Kimi accepts the OAuth token and the platform API key over the *same* endpoint, distinguished only
33
+ * by which header carries it. `credential` below is therefore a union in practice: an OAuth value is
34
+ * sent as `Authorization: Bearer`, an api-key value as `x-api-key`. That is not a convenience — it is
35
+ * what lets the same model ids work for both accounts.
36
+ */
37
+ export const KIMI_CODE = {
38
+ /** The coding subscription's API host. */
39
+ server: 'https://api.kimi.com',
40
+ /** The account host that issues and renews tokens. Separate from the API host by design. */
41
+ authOrigin: 'https://auth.kimi.com',
42
+ /** The web origin the user visits to approve a device code. */
43
+ webOrigin: 'https://www.kimi.com',
44
+ /**
45
+ * Kimi's public CLI client id.
46
+ *
47
+ * Taken from Kimi's own published registry rather than invented, because the token endpoint is
48
+ * bound to it and an unregistered id is refused with `invalid_client`.
49
+ */
50
+ clientId: '17e5f671-d194-4dfb-9706-5516cb48c098',
51
+ deviceCodePath: '/api/oauth/device_authorization',
52
+ deviceTokenPath: '/api/oauth/token',
53
+ chatPath: '/coding/v1/chat/completions',
54
+ modelsPath: '/coding/v1/models',
55
+ embeddingsPath: '/coding/v1/embeddings',
56
+ grantType: 'urn:ietf:params:oauth:grant-type:device_code',
57
+ refreshGrantType: 'refresh_token',
58
+ };
59
+ export const kimiCodeProviderId = 'kimi-code';
60
+ export class KimiCodeAdapter {
61
+ id = kimiCodeProviderId;
62
+ name = 'Kimi Code';
63
+ capabilities = { chat: true, streaming: true, models: true, embeddings: true };
64
+ baseUrl;
65
+ transport;
66
+ onTokensRefreshed;
67
+ now;
68
+ headers;
69
+ /** Renewed credentials keyed by the access token they replaced. */
70
+ renewed = new Map();
71
+ constructor(options = {}) {
72
+ this.baseUrl = normalizeProviderBaseUrl(KIMI_CODE.server, this.id);
73
+ this.transport = options.transport ?? new FetchHttpTransport({ timeoutMs: options.timeoutMs });
74
+ this.onTokensRefreshed = options.onTokensRefreshed;
75
+ this.now = options.now ?? (() => Date.now());
76
+ /**
77
+ * The client headers Kimi's own CLI sends.
78
+ *
79
+ * Kept, and named as what they are: the coding endpoint is served to their CLI, and these are
80
+ * what identify a request as coming from one. A request without them is not "a Kimi request with
81
+ * fewer fields" — it is a request from something Kimi does not serve.
82
+ */
83
+ this.headers = sanitizeProviderHeaders({
84
+ 'X-Msh-Version': '1',
85
+ 'User-Agent': 'kimi-cli/1.0.0 (external, sdk-cli)',
86
+ 'X-App': 'cli',
87
+ 'X-Stainless-Lang': 'js',
88
+ 'X-Stainless-Runtime': 'node',
89
+ 'X-Stainless-Runtime-Version': 'v24.14.0',
90
+ 'X-Stainless-Package-Version': '0.80.0',
91
+ 'X-Stainless-Retry-Count': '0',
92
+ 'X-Stainless-Timeout': '600',
93
+ 'Anthropic-Beta': 'claude-code-20250219,oauth-2025-04-20',
94
+ }, this.id);
95
+ }
96
+ /**
97
+ * Asks Kimi for a device code.
98
+ *
99
+ * The verification URI comes back relative to the *web* origin, so joining it to the API host would
100
+ * produce a page that does not exist — the same trap the Console flow documents.
101
+ */
102
+ async beginSignIn() {
103
+ // **Form-encoded, and that is measured rather than assumed.** Kimi's device endpoints answer a
104
+ // JSON body with `400 {"error":"invalid_request","error_description":"client_id is required"}` —
105
+ // the parameter is present and still refused, because the body was not read at all. The same
106
+ // request form-encoded returns 200 with a real `device_code`:
107
+ //
108
+ // ```
109
+ // POST /api/oauth/device_authorization content-type: application/json -> 400 client_id is required
110
+ // POST /api/oauth/device_authorization content-type: x-www-form-urlencoded -> 200 {"device_code":"...","user_code":"..."}
111
+ // ```
112
+ //
113
+ // So `postJson` was the wrong shape for both halves of this flow, and it is `postForm` below.
114
+ const deviceId = crypto.randomUUID();
115
+ const { data } = await this.postForm(KIMI_CODE.deviceCodePath, {
116
+ client_id: KIMI_CODE.clientId,
117
+ }, this.kimiHeaders(deviceId));
118
+ const deviceCode = typeof data.device_code === 'string' ? data.device_code : '';
119
+ const userCode = typeof data.user_code === 'string' ? data.user_code : '';
120
+ if (!deviceCode || !userCode) {
121
+ throw new ProviderError('PROVIDER_REQUEST_FAILED', 'Kimi did not return a device code. Try again in a moment.', { providerId: this.id });
122
+ }
123
+ // Kimi answers with an **absolute** URL (measured), so it is used as given. The relative-join
124
+ // fallback is kept for a server that answers with a path, because joining an absolute URL to the
125
+ // web origin produces `https://www.kimi.com/https://www.kimi.com/code/...`.
126
+ const given = data.verification_uri_complete ?? data.verification_uri;
127
+ const verificationUrl = given
128
+ ? (/^https?:\/\//.test(given) ? given : `${KIMI_CODE.webOrigin}${given.startsWith('/') ? '' : '/'}${given}`)
129
+ : `${KIMI_CODE.webOrigin}/code/authorize_device`;
130
+ return {
131
+ deviceCode,
132
+ deviceId,
133
+ userCode,
134
+ verificationUrl,
135
+ ...(typeof data.expires_in === 'number' ? { expiresIn: data.expires_in } : {}),
136
+ };
137
+ }
138
+ /**
139
+ * Polls for the token.
140
+ *
141
+ * Kimi answers a pending poll with an error code in the body, so the *code* decides the outcome and
142
+ * a transport-level 4xx is not treated as a failed sign-in. `slow_down` is mapped to `pending`
143
+ * rather than a denial because it is Kimi asking for a slower poll, not refusing the grant.
144
+ */
145
+ async pollSignIn(deviceCode, signal, deviceId = crypto.randomUUID()) {
146
+ // Same form encoding, for the same measured reason — **and the status is the reason this had to be
147
+ // written differently.**
148
+ //
149
+ // `postForm` runs the request through the shared transport, which turns any non-2xx into a thrown
150
+ // `ProviderError` — the correct behaviour for an inference call. But Kimi's *token* endpoint answers
151
+ // a pending poll with **HTTP 400** and `{"error":"authorization_pending"}` in the body, so the throw
152
+ // happened before the body could be read and the flow reported a failure for a sign-in that was
153
+ // simply waiting. Measured against the live host:
154
+ //
155
+ // ```
156
+ // POST /api/oauth/token grant_type=device_code -> 400 {"error":"authorization_pending"} (still waiting)
157
+ // ```
158
+ //
159
+ // So the poll goes out raw and reads the status itself. The inference paths keep using `postForm`,
160
+ // where the transport's classification is exactly right.
161
+ const { data, status } = await this.postFormAllowingRefusal(KIMI_CODE.deviceTokenPath, {
162
+ grant_type: KIMI_CODE.grantType,
163
+ device_code: deviceCode,
164
+ client_id: KIMI_CODE.clientId,
165
+ }, this.kimiHeaders(deviceId), signal);
166
+ const error = typeof data.error === 'string' ? data.error : '';
167
+ // Read from the body whatever the status. The status is asserted as well, because a body carrying
168
+ // `authorization_pending` on a 200 would be a different provider's convention and should not be
169
+ // trusted silently — but the status alone is not enough either, since this endpoint answers 400.
170
+ if (error === 'authorization_pending' || error === 'slow_down') {
171
+ if (status !== 400 && status !== 200) {
172
+ return { status: 'denied', error: `Kimi answered ${status} for a poll that should still be waiting.` };
173
+ }
174
+ return { status: 'pending' };
175
+ }
176
+ if (error) {
177
+ const description = typeof data.error_description === 'string' ? data.error_description : '';
178
+ return {
179
+ status: 'denied',
180
+ error: description || `Kimi reported ${error.replace(/[^A-Za-z0-9_.-]/g, '').slice(0, 40)}.`,
181
+ };
182
+ }
183
+ const access = typeof data.access_token === 'string' ? data.access_token : '';
184
+ if (!access)
185
+ return { status: 'denied', error: 'Kimi did not return a session. Start the sign-in again.' };
186
+ const credential = {
187
+ type: 'oauth',
188
+ value: access,
189
+ ...(typeof data.refresh_token === 'string' ? { refreshToken: data.refresh_token } : {}),
190
+ ...(typeof data.expires_in === 'number' ? { expiresAt: new Date(Date.now() + data.expires_in * 1000).toISOString() } : {}),
191
+ oauthClientId: KIMI_CODE.clientId,
192
+ };
193
+ return { status: 'connected', credential, account: 'Kimi Code subscription' };
194
+ }
195
+ async listModels(context = {}) {
196
+ const credential = await this.credential(context);
197
+ const { data } = await this.transport.request({
198
+ method: 'GET',
199
+ providerId: this.id,
200
+ url: this.url(KIMI_CODE.modelsPath),
201
+ headers: this.requestHeaders(credential),
202
+ ...(context.signal ? { signal: context.signal } : {}),
203
+ });
204
+ const rows = data?.data;
205
+ if (!Array.isArray(rows))
206
+ throw invalidResponse(this.id, 'Kimi model list is missing data.');
207
+ return rows.flatMap((model) => (model.id ? [{ id: model.id, providerId: this.id }] : []));
208
+ }
209
+ async chat(request, context = {}) {
210
+ const credential = await this.credential(context);
211
+ const { data } = await this.transport.request({
212
+ method: 'POST',
213
+ providerId: this.id,
214
+ url: this.url(KIMI_CODE.chatPath),
215
+ headers: this.requestHeaders(credential),
216
+ body: JSON.stringify(this.toRequestBody(request, false)),
217
+ ...(context.signal ? { signal: context.signal } : {}),
218
+ });
219
+ return this.toChatResponse(data, request.model);
220
+ }
221
+ async *streamChat(request, context = {}) {
222
+ const credential = await this.credential(context);
223
+ const events = this.transport.stream({
224
+ method: 'POST',
225
+ providerId: this.id,
226
+ url: this.url(KIMI_CODE.chatPath),
227
+ headers: this.requestHeaders(credential),
228
+ body: JSON.stringify(this.toRequestBody(request, true)),
229
+ ...(context.signal ? { signal: context.signal } : {}),
230
+ });
231
+ let sawPayload = false;
232
+ let sawDone = false;
233
+ for await (const event of parseSseStream(events)) {
234
+ if (event.data.trim() === '[DONE]') {
235
+ sawDone = true;
236
+ break;
237
+ }
238
+ const payload = parseSseJson(event, this.id);
239
+ if (!payload)
240
+ continue;
241
+ sawPayload = true;
242
+ if (payload.error) {
243
+ throw new ProviderError('PROVIDER_REQUEST_FAILED', payload.error.message ?? 'Kimi reported an error while streaming.', { providerId: this.id });
244
+ }
245
+ const choice = payload.choices?.[0];
246
+ const delta = choice?.delta;
247
+ yield {
248
+ id: payload.id ?? `stream-${request.model}`,
249
+ providerId: this.id,
250
+ model: payload.model ?? request.model,
251
+ delta: {
252
+ ...(delta?.role ? { role: normalizeRole(delta.role) } : {}),
253
+ ...(delta?.content ? { content: delta.content } : {}),
254
+ ...(delta?.tool_calls?.length ? { toolCalls: delta.tool_calls.map(normalizeToolCallDelta) } : {}),
255
+ },
256
+ ...(choice?.finish_reason ? { finishReason: normalizeFinishReason(choice.finish_reason) } : {}),
257
+ ...(payload.usage ? { usage: normalizeUsage(payload.usage) } : {}),
258
+ };
259
+ }
260
+ if (!sawPayload || !sawDone) {
261
+ throw new ProviderError('INVALID_RESPONSE', 'The Kimi stream ended before completion.', { providerId: this.id });
262
+ }
263
+ }
264
+ /**
265
+ * Kimi's coding endpoint serves `/coding/v1/embeddings`.
266
+ *
267
+ * `dimensions` is measured from the vector, never assumed — the same rule the OpenAI-compatible
268
+ * adapter follows, and for the same reason: a wrong dimension count cannot be detected by a caller
269
+ * after the vector has been built.
270
+ */
271
+ async embed(request, context = {}) {
272
+ const credential = await this.credential(context);
273
+ const inputs = typeof request.input === 'string' ? [request.input] : [...request.input];
274
+ if (inputs.length === 0 || inputs.some((value) => !value)) {
275
+ throw new ProviderError('INVALID_REQUEST', 'Embedding input must be a non-empty string or a non-empty array of non-empty strings.', { providerId: this.id });
276
+ }
277
+ const body = { model: request.model, input: inputs };
278
+ if (request.dimensions !== undefined)
279
+ body.dimensions = request.dimensions;
280
+ const { data } = await this.transport.request({
281
+ method: 'POST',
282
+ providerId: this.id,
283
+ url: this.url(KIMI_CODE.embeddingsPath),
284
+ headers: this.requestHeaders(credential),
285
+ body: JSON.stringify(body),
286
+ ...(context.signal ? { signal: context.signal } : {}),
287
+ });
288
+ const rows = data?.data;
289
+ if (!Array.isArray(rows))
290
+ throw invalidResponse(this.id, 'Kimi embeddings response is missing data.');
291
+ const vectors = rows.map((row, position) => {
292
+ const embedding = row?.embedding;
293
+ if (!Array.isArray(embedding) || embedding.length === 0) {
294
+ throw invalidResponse(this.id, `Kimi embedding at index ${position} is missing its vector.`);
295
+ }
296
+ if (embedding.some((value) => typeof value !== 'number' || !Number.isFinite(value))) {
297
+ throw invalidResponse(this.id, `Kimi embedding at index ${position} contains a non-numeric value.`);
298
+ }
299
+ return {
300
+ index: typeof row?.index === 'number' ? row.index : position,
301
+ embedding,
302
+ dimensions: embedding.length,
303
+ };
304
+ });
305
+ if (vectors.length !== inputs.length) {
306
+ throw invalidResponse(this.id, `Kimi returned ${vectors.length} embedding(s) for ${inputs.length} input(s).`);
307
+ }
308
+ return {
309
+ id: data.id ?? `embed-${request.model}`,
310
+ providerId: this.id,
311
+ model: data.model ?? request.model,
312
+ createdAt: new Date((typeof data.created === 'number' ? data.created : Date.now() / 1000) * 1000).toISOString(),
313
+ data: vectors,
314
+ ...(data.usage ? { usage: normalizeUsage(data.usage) } : {}),
315
+ };
316
+ }
317
+ /**
318
+ * Reads `/coding/v1/models`, which is free and never bills.
319
+ *
320
+ * A health check that spends money would be a real cost on every sweep, and a check that launches a
321
+ * browser was the defect fixed in the credential-lifecycle work. A free authenticated read is both.
322
+ */
323
+ async healthCheck(context = {}) {
324
+ const startedAt = performance.now();
325
+ try {
326
+ await this.listModels(context);
327
+ return {
328
+ status: 'healthy',
329
+ verified: 'credential',
330
+ latencyMs: Math.round(performance.now() - startedAt),
331
+ checkedAt: new Date().toISOString(),
332
+ };
333
+ }
334
+ catch (error) {
335
+ const code = error instanceof ProviderError ? error.code : 'PROVIDER_REQUEST_FAILED';
336
+ return {
337
+ status: 'unavailable',
338
+ verified: 'credential',
339
+ latencyMs: Math.round(performance.now() - startedAt),
340
+ checkedAt: new Date().toISOString(),
341
+ ...(error instanceof Error ? { message: error.message } : {}),
342
+ ...(error instanceof ProviderError && code !== 'PROVIDER_REQUEST_FAILED' ? { reason: code } : {}),
343
+ };
344
+ }
345
+ }
346
+ /** Kimi's token, renewed without asking the user to sign in again. */
347
+ async credential(context) {
348
+ const current = context.credential;
349
+ if (!kimiCodeCredentialExpired(current, this.now()))
350
+ return current;
351
+ // Narrowed once, here, because reading `.refreshToken` off the union is a compile error on the
352
+ // `api-key` and `none` arms and reading it through a cast would hide a genuinely absent refresh.
353
+ const refresh = current?.type === 'oauth' ? current.refreshToken : undefined;
354
+ if (typeof refresh !== 'string' || !refresh) {
355
+ throw new ProviderError('AUTHENTICATION_FAILED', 'The Kimi Code session has expired. Sign in again.', { providerId: this.id });
356
+ }
357
+ const replaced = current?.type === 'oauth' ? current.value : '';
358
+ const memo = this.renewed.get(replaced);
359
+ if (memo)
360
+ return memo;
361
+ // Read the body whatever the status, for the same measured reason as the poll: a dead refresh token
362
+ // comes back as a 4xx whose `error_description` is the only place Kimi says *why*, and throwing on the
363
+ // status would replace that with the transport's own generic refusal.
364
+ const { data } = await this.postFormAllowingRefusal(KIMI_CODE.deviceTokenPath, {
365
+ grant_type: KIMI_CODE.refreshGrantType,
366
+ refresh_token: refresh,
367
+ client_id: KIMI_CODE.clientId,
368
+ }, { accept: 'application/json', 'content-type': 'application/x-www-form-urlencoded' }, context.signal);
369
+ const access = typeof data.access_token === 'string' ? data.access_token : '';
370
+ if (!access) {
371
+ const description = typeof data.error_description === 'string' ? data.error_description : '';
372
+ throw new ProviderError('AUTHENTICATION_FAILED', description || 'Kimi refused to renew the session. Sign in again.', { providerId: this.id });
373
+ }
374
+ const renewed = {
375
+ type: 'oauth',
376
+ value: access,
377
+ ...(typeof data.refresh_token === 'string' ? { refreshToken: data.refresh_token } : { refreshToken: refresh }),
378
+ ...(typeof data.expires_in === 'number' ? { expiresAt: new Date(Date.now() + data.expires_in * 1000).toISOString() } : {}),
379
+ oauthClientId: KIMI_CODE.clientId,
380
+ };
381
+ this.renewed.set(replaced, renewed);
382
+ await this.onTokensRefreshed?.(renewed);
383
+ return renewed;
384
+ }
385
+ url(path) {
386
+ return resolveProviderUrl(this.baseUrl, path, this.id);
387
+ }
388
+ /**
389
+ * The credential header, which is the one place the two auth modes differ.
390
+ *
391
+ * An OAuth token goes in `Authorization: Bearer` and a platform API key in `x-api-key`, because
392
+ * Kimi's coding endpoint accepts both and distinguishes them by header. Sending an OAuth token as
393
+ * `x-api-key` produces a `401` whose body names the header it wanted, so the split is read from the
394
+ * credential rather than hardcoded per request.
395
+ */
396
+ requestHeaders(credential) {
397
+ const headers = {
398
+ accept: 'application/json',
399
+ 'content-type': 'application/json',
400
+ ...this.headers,
401
+ };
402
+ if (credential?.type === 'api-key') {
403
+ assertSafeProviderHeaderValue('x-api-key', credential.value, this.id);
404
+ headers['x-api-key'] = credential.value;
405
+ }
406
+ else if (credential?.type === 'oauth' && credential.value) {
407
+ assertSafeProviderHeaderValue('Authorization', credential.value, this.id);
408
+ headers.Authorization = `Bearer ${credential.value}`;
409
+ }
410
+ else {
411
+ throw new ProviderError('AUTHENTICATION_FAILED', 'Kimi Code needs a signed-in account or an API key.', { providerId: this.id });
412
+ }
413
+ return headers;
414
+ }
415
+ toRequestBody(request, stream) {
416
+ const body = {
417
+ model: request.model,
418
+ messages: request.messages.map(toOpenAIMessage),
419
+ stream,
420
+ };
421
+ if (request.temperature !== undefined)
422
+ body.temperature = request.temperature;
423
+ if (request.topP !== undefined)
424
+ body.top_p = request.topP;
425
+ if (request.maxOutputTokens !== undefined)
426
+ body.max_tokens = request.maxOutputTokens;
427
+ if (request.stop !== undefined)
428
+ body.stop = request.stop;
429
+ if (request.tools !== undefined)
430
+ body.tools = request.tools.map(toOpenAITool);
431
+ return body;
432
+ }
433
+ toChatResponse(response, requestedModel) {
434
+ const choice = response.choices?.[0];
435
+ if (!choice?.message)
436
+ throw invalidResponse(this.id, 'Kimi returned no message.');
437
+ const content = choice.message.content ?? '';
438
+ const toolCalls = choice.message.tool_calls?.filter((call) => call.function?.name).map((call, index) => ({
439
+ id: call.id ?? `call-${index}`,
440
+ type: 'function',
441
+ function: { name: call.function.name, arguments: call.function.arguments ?? '{}' },
442
+ }));
443
+ return {
444
+ id: response.id ?? `chat-${requestedModel}`,
445
+ providerId: this.id,
446
+ model: response.model ?? requestedModel,
447
+ createdAt: new Date((typeof response.created === 'number' ? response.created : Date.now() / 1000) * 1000).toISOString(),
448
+ message: {
449
+ role: 'assistant',
450
+ // Empty content with tool calls is a real answer, not a missing one — see `parseMessage`.
451
+ content: toolCalls?.length && !content ? null : content,
452
+ ...(toolCalls?.length ? { toolCalls } : {}),
453
+ },
454
+ finishReason: normalizeFinishReason(choice.finish_reason),
455
+ ...(response.usage ? { usage: normalizeUsage(response.usage) } : {}),
456
+ };
457
+ }
458
+ /**
459
+ * Posts a form-encoded body to the account host.
460
+ *
461
+ * `URLSearchParams` rather than a hand-built string, so a value containing `&` or `=` is encoded
462
+ * rather than splitting the body — which on a token endpoint means a client id that arrives
463
+ * truncated, with no error to point at.
464
+ */
465
+ /**
466
+ * Posts a form body and returns the parsed body **whatever the status**.
467
+ *
468
+ * Only for an endpoint whose 4xx carries a meaningful body — an OAuth token exchange, where `400
469
+ * authorization_pending` is an expected answer rather than a failure. Everywhere else the shared
470
+ * transport's classification is right and this must not be used: a 401 here would be read as data
471
+ * instead of an authentication failure.
472
+ */
473
+ async postFormAllowingRefusal(path, fields, headers, signal) {
474
+ const response = await this.transport.request({
475
+ method: 'POST',
476
+ providerId: this.id,
477
+ url: `${KIMI_CODE.authOrigin}${path}`,
478
+ headers: { accept: 'application/json', ...headers },
479
+ body: new URLSearchParams(fields).toString(),
480
+ // The flag that reaches the transport: without it the 400 is thrown before this method runs, which
481
+ // was the whole defect — the first fix lived here and could not work, because the throw is upstream.
482
+ tolerateRefusalBody: true,
483
+ ...(signal ? { signal } : {}),
484
+ });
485
+ return { data: (response.data ?? {}), status: response.status };
486
+ }
487
+ async postForm(path, fields, headers, signal) {
488
+ const response = await this.transport.request({
489
+ method: 'POST',
490
+ providerId: this.id,
491
+ url: `${KIMI_CODE.authOrigin}${path}`,
492
+ headers: { accept: 'application/json', ...headers },
493
+ body: new URLSearchParams(fields).toString(),
494
+ ...(signal ? { signal } : {}),
495
+ });
496
+ return { data: (response.data ?? {}) };
497
+ }
498
+ /**
499
+ * The account-host headers, which differ from the API-host ones.
500
+ *
501
+ * `X-Msh-Device-Id` is a per-sign-in identifier that has to be **the same on the start and the poll**:
502
+ * Kimi ties the two halves of a device grant together by it, so a poll carrying a fresh id asks
503
+ * about a different session and comes back `authorization_pending` forever. It is minted once per
504
+ * sign-in and carried on the session, which is why `pollSignIn` takes it as a parameter.
505
+ */
506
+ kimiHeaders(deviceId) {
507
+ return {
508
+ 'content-type': 'application/x-www-form-urlencoded',
509
+ 'X-Msh-Device-Id': deviceId,
510
+ 'X-App': 'cli',
511
+ 'X-Stainless-Lang': 'js',
512
+ 'X-Stainless-Runtime': 'node',
513
+ };
514
+ }
515
+ }
516
+ /**
517
+ * Whether the credential is definitely expired.
518
+ *
519
+ * Three answers, because the third is the load-bearing one: `true` is definitely expired, `false` is
520
+ * definitely not, and `undefined` means *this adapter cannot say* — so the gateway asks the provider
521
+ * rather than ejecting a working connection.
522
+ */
523
+ export function kimiCodeCredentialExpired(credential, now) {
524
+ if (!credential || credential.type !== 'oauth')
525
+ return false;
526
+ if (typeof credential.expiresAt !== 'string')
527
+ return undefined;
528
+ const at = Date.parse(credential.expiresAt);
529
+ if (!Number.isFinite(at))
530
+ return undefined;
531
+ // 30s of slack, so a token does not expire in flight between the check and the request.
532
+ return at - 30_000 <= now;
533
+ }
534
+ function normalizeRole(role) {
535
+ return role === 'assistant' || role === 'system' || role === 'tool' ? role : 'user';
536
+ }
537
+ function normalizeFinishReason(reason) {
538
+ return reason === 'length' || reason === 'tool_calls' || reason === 'content_filter' ? reason : 'stop';
539
+ }
540
+ function normalizeUsage(usage) {
541
+ return {
542
+ ...(typeof usage.prompt_tokens === 'number' ? { inputTokens: usage.prompt_tokens } : {}),
543
+ ...(typeof usage.completion_tokens === 'number' ? { outputTokens: usage.completion_tokens } : {}),
544
+ ...(typeof usage.total_tokens === 'number' ? { totalTokens: usage.total_tokens } : {}),
545
+ };
546
+ }
547
+ function normalizeToolCallDelta(call) {
548
+ return {
549
+ index: call.index ?? 0,
550
+ ...(call.id ? { id: call.id } : {}),
551
+ type: 'function',
552
+ function: { ...(call.function?.name ? { name: call.function.name } : {}), arguments: call.function?.arguments ?? '' },
553
+ };
554
+ }
555
+ function toOpenAIMessage(message) {
556
+ if (typeof message.content === 'string' || message.content === null) {
557
+ return {
558
+ role: message.role,
559
+ content: message.content,
560
+ ...(message.toolCalls?.length
561
+ ? { tool_calls: message.toolCalls.map((call) => ({ id: call.id, type: 'function', function: { name: call.function.name, arguments: call.function.arguments } })) }
562
+ : {}),
563
+ };
564
+ }
565
+ return {
566
+ role: message.role,
567
+ content: message.content.map((part) => (part.type === 'text' ? { type: 'text', text: part.text } : { type: 'image_url', image_url: { url: part.imageUrl.url } })),
568
+ };
569
+ }
570
+ function toOpenAITool(tool) {
571
+ return { type: 'function', function: { name: tool.name, ...(tool.description ? { description: tool.description } : {}), parameters: tool.parameters } };
572
+ }
573
+ function invalidResponse(providerId, message) {
574
+ return new ProviderError('INVALID_RESPONSE', message, { providerId });
575
+ }
576
+ //# sourceMappingURL=kimi-code.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kimi-code.js","sourceRoot":"","sources":["../../src/adapters/kimi-code.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -14,6 +14,7 @@ export * from './pricing.js';
14
14
  export * from './modelFilters.js';
15
15
  export * from './adapters/zen.js';
16
16
  export * from './adapters/opencode-console.js';
17
+ export * from './adapters/kimi-code.js';
17
18
  export * from './adapters/kiro.js';
18
19
  export * from './adapters/chatgpt-web.js';
19
20
  export * from './adapters/deepseek-pow.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iCAAiC,CAAC;AAChD,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iCAAiC,CAAC;AAChD,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,UAAU,CAAC"}
package/dist/index.js CHANGED
@@ -14,6 +14,7 @@ export * from './pricing.js';
14
14
  export * from './modelFilters.js';
15
15
  export * from './adapters/zen.js';
16
16
  export * from './adapters/opencode-console.js';
17
+ export * from './adapters/kimi-code.js';
17
18
  export * from './adapters/kiro.js';
18
19
  export * from './adapters/chatgpt-web.js';
19
20
  export * from './adapters/deepseek-pow.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iCAAiC,CAAC;AAChD,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iCAAiC,CAAC;AAChD,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,UAAU,CAAC"}
@@ -14,6 +14,19 @@ export type HttpRequest = {
14
14
  * answered with nothing. Providers that answer in a binary framing ask for this.
15
15
  */
16
16
  responseAs?: 'bytes';
17
+ /**
18
+ * Return a 4xx as a result instead of throwing.
19
+ *
20
+ * **For OAuth token endpoints only**, where a refusal carries meaning in its body: Kimi's poll answers
21
+ * `400 {"error":"authorization_pending"}` while the user has simply not approved yet, so throwing turns
22
+ * "still waiting" into a failed sign-in. Measured against the live host.
23
+ *
24
+ * Everything else must leave this off. The throw is the transport's most useful property — it is what
25
+ * stops a 401 being read as data — and a flag that says "read the error body anyway" is a sharp tool
26
+ * whose whole value is being hard to reach by accident. Its two callers are the Kimi device poll and the
27
+ * Kimi token renewal, and both are documented at their use site.
28
+ */
29
+ tolerateRefusalBody?: boolean;
17
30
  };
18
31
  export type HttpResponse<T> = {
19
32
  status: number;
@@ -1 +1 @@
1
- {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;AAErE,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,UAAU,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,CAAC,CAAC;CACT,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,WAAW,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAE5F;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,MAAM,CAAC,OAAO,EAAE,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;CACrD;AAED,MAAM,MAAM,yBAAyB,GAAG;IACtC,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAcF,qBAAa,kBAAmB,YAAW,aAAa;IACtD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAS;IAC7C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAS;gBAEjC,OAAO,GAAE,yBAA8B;IAc7C,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAwCzD,MAAM,CAAC,OAAO,EAAE,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC;CAuE3D;AAuID,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAkCrE"}
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;AAErE,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,UAAU,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;;;;;;OAWG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,CAAC,CAAC;CACT,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,WAAW,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAE5F;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,MAAM,CAAC,OAAO,EAAE,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;CACrD;AAED,MAAM,MAAM,yBAAyB,GAAG;IACtC,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAcF,qBAAa,kBAAmB,YAAW,aAAa;IACtD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAS;IAC7C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAS;gBAEjC,OAAO,GAAE,yBAA8B;IAc7C,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAgDzD,MAAM,CAAC,OAAO,EAAE,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC;CAuE3D;AAuID,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAkCrE"}
package/dist/transport.js CHANGED
@@ -40,6 +40,12 @@ export class FetchHttpTransport {
40
40
  * cancelled unread, so every refusal arrived as "the provider rejected the
41
41
  * request" with no reason attached. It is read here, bounded, and handed to the
42
42
  * classifier.
43
+ *
44
+ * With `tolerateRefusalBody` the read *becomes* the result and the request returns, because an
45
+ * OAuth token endpoint's refusal is data. Reading it here and then reading the body again below
46
+ * was the first attempt and it fails in a way that hides itself: the second read sees a consumed
47
+ * stream, throws, and `normalizeTransportError` reports `PROVIDER_UNAVAILABLE` — which reads as
48
+ * "Kimi is down" rather than "Kimi said no".
43
49
  */
44
50
  let body;
45
51
  try {
@@ -48,7 +54,10 @@ export class FetchHttpTransport {
48
54
  catch {
49
55
  body = undefined;
50
56
  }
51
- throw providerErrorFromResponse(response, body, request.providerId);
57
+ // Opted out only by an OAuth token exchange, where the body *is* the answer.
58
+ if (!request.tolerateRefusalBody)
59
+ throw providerErrorFromResponse(response, body, request.providerId);
60
+ return { status: response.status, headers: response.headers, data: body };
52
61
  }
53
62
  const data = request.responseAs === 'bytes'
54
63
  ? (await readResponseBytes(response, this.maxResponseBytes))
@@ -1 +1 @@
1
- {"version":3,"file":"transport.js","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../src/transport.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.70.0",
3
+ "version": "1.71.1",
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",