@hilbras/omnihilbras 1.12.0 → 1.12.2
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/dist/adapters/cline.js
CHANGED
|
@@ -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.12.
|
|
38
|
+
const omnihilbrasVersion = '1.12.2';
|
|
39
39
|
/** Cline only accepts WorkOS JWTs with an explicit prefix. */
|
|
40
40
|
export function toClineAccessToken(token) {
|
|
41
41
|
const trimmed = token.trim();
|
|
@@ -24,16 +24,32 @@ export type QwenProbeResult = {
|
|
|
24
24
|
* ship a card that cannot answer, and refusing to try would be refusing on the strength of a
|
|
25
25
|
* measurement nobody made. So it asks, and it says what came back.
|
|
26
26
|
*/
|
|
27
|
-
export declare function probeQwenWeb(cookieHeader: string, transport: HttpTransport, signal?: AbortSignal
|
|
28
|
-
|
|
27
|
+
export declare function probeQwenWeb(cookieHeader: string, transport: HttpTransport, signal?: AbortSignal, options?: {
|
|
28
|
+
timeoutMs?: number;
|
|
29
|
+
}): Promise<QwenProbeResult>;
|
|
29
30
|
/**
|
|
30
|
-
* The
|
|
31
|
+
* The provider's own refusal, read out of a **200** response.
|
|
31
32
|
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
*
|
|
33
|
+
* Qwen signals every refusal in the body and never in the status code, on both origins. A check
|
|
34
|
+
* that trusted the status would report a guest cookie as a working credential.
|
|
35
|
+
*/
|
|
36
|
+
/**
|
|
37
|
+
* A **snapshot** of the guest catalog, for the card. The live list is what `probeQwenWeb`
|
|
38
|
+
* returns, and that is the authority.
|
|
39
|
+
*
|
|
40
|
+
* I first wrote ten plausible ids — `qwen3.7-flash`, `qwen3.7-coder-plus` and so on — and the
|
|
41
|
+
* probe caught it. Then I replaced them with a hard "it answers three" and **that was an
|
|
42
|
+
* overclaim too**: a user running the probe minutes later saw **seven**, including
|
|
43
|
+
* `qwen3.7-max`, `qwen3.6-plus`, `qwen3.5-plus` and `qwen3.5-omni-plus`, while repeated requests
|
|
44
|
+
* from here returned three every time. Cookies were ruled out — none, `cna`, `isg` and a pasted
|
|
45
|
+
* pair all returned the same three.
|
|
46
|
+
*
|
|
47
|
+
* So the endpoint's guest catalog **varies**, and a constant is wrong by construction: it will
|
|
48
|
+
* disagree with the provider on some day, and a card that lists models the endpoint no longer
|
|
49
|
+
* serves is worse than one that says the list moves. This is a dated snapshot for the catalog
|
|
50
|
+
* only, and the dialog always shows the live list.
|
|
37
51
|
*/
|
|
38
52
|
export declare const QWEN_WEB_MODELS: Model[];
|
|
53
|
+
/** When the snapshot above was read, so a reader can tell a stale list from a wrong one. */
|
|
54
|
+
export declare const QWEN_WEB_MODELS_OBSERVED_AT = "2026-09-29";
|
|
39
55
|
//# sourceMappingURL=qwen-web.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qwen-web.d.ts","sourceRoot":"","sources":["../../src/adapters/qwen-web.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AA+CrD,eAAO,MAAM,iBAAiB,aAAa,CAAC;AAM5C,iFAAiF;AACjF,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA8BzE;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,yDAAyD;IACzD,aAAa,EAAE,OAAO,CAAC;IACvB,oGAAoG;IACpG,UAAU,EAAE,OAAO,CAAC;IACpB,8EAA8E;IAC9E,MAAM,EAAE,MAAM,CAAC;IACf,oGAAoG;IACpG,UAAU,EAAE,MAAM,CAAC;IACnB,wFAAwF;IACxF,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC;AA4BF;;;;;;;;GAQG;AACH,wBAAsB,YAAY,
|
|
1
|
+
{"version":3,"file":"qwen-web.d.ts","sourceRoot":"","sources":["../../src/adapters/qwen-web.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AA+CrD,eAAO,MAAM,iBAAiB,aAAa,CAAC;AAM5C,iFAAiF;AACjF,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA8BzE;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,yDAAyD;IACzD,aAAa,EAAE,OAAO,CAAC;IACvB,oGAAoG;IACpG,UAAU,EAAE,OAAO,CAAC;IACpB,8EAA8E;IAC9E,MAAM,EAAE,MAAM,CAAC;IACf,oGAAoG;IACpG,UAAU,EAAE,MAAM,CAAC;IACnB,wFAAwF;IACxF,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC;AA4BF;;;;;;;;GAQG;AACH,wBAAsB,YAAY,CAChC,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,aAAa,EACxB,MAAM,CAAC,EAAE,WAAW,EACpB,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GACnC,OAAO,CAAC,eAAe,CAAC,CAyF1B;AAED;;;;;GAKG;AAEH;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,EAIlC,CAAC;AAEF,4FAA4F;AAC5F,eAAO,MAAM,2BAA2B,eAAe,CAAC"}
|
|
@@ -114,7 +114,7 @@ function readModels(payload) {
|
|
|
114
114
|
* ship a card that cannot answer, and refusing to try would be refusing on the strength of a
|
|
115
115
|
* measurement nobody made. So it asks, and it says what came back.
|
|
116
116
|
*/
|
|
117
|
-
export async function probeQwenWeb(cookieHeader, transport, signal) {
|
|
117
|
+
export async function probeQwenWeb(cookieHeader, transport, signal, options = {}) {
|
|
118
118
|
const cookies = parseQwenCookieHeader(cookieHeader);
|
|
119
119
|
const cookie = Object.entries(cookies).map(([name, value]) => `${name}=${value}`).join('; ');
|
|
120
120
|
const headers = (extra = {}) => ({
|
|
@@ -123,9 +123,32 @@ export async function probeQwenWeb(cookieHeader, transport, signal) {
|
|
|
123
123
|
'user-agent': BROWSER_USER_AGENT,
|
|
124
124
|
...extra,
|
|
125
125
|
});
|
|
126
|
+
/**
|
|
127
|
+
* A budget for the whole probe, because the alternative is a spinner that never resolves.
|
|
128
|
+
*
|
|
129
|
+
* Not the network — the three requests together take about a second. It is that a caller
|
|
130
|
+
* waiting on a promise it cannot see into will sit there indefinitely if anything stalls, and
|
|
131
|
+
* "Ask Qwen" with no outcome is indistinguishable from a broken button. On expiry the answers
|
|
132
|
+
* gathered so far are returned rather than discarded: a slow auth origin with a fast refusal on
|
|
133
|
+
* the turn is still a useful answer, and throwing it away would be its own kind of dishonesty.
|
|
134
|
+
*/
|
|
135
|
+
const timeoutMs = options.timeoutMs ?? 20_000;
|
|
136
|
+
const controller = new AbortController();
|
|
137
|
+
const onAbort = () => controller.abort();
|
|
138
|
+
if (signal)
|
|
139
|
+
signal.addEventListener('abort', onAbort, { once: true });
|
|
140
|
+
const timer = setTimeout(() => controller.abort(), timeoutMs);
|
|
141
|
+
timer.unref?.();
|
|
126
142
|
const ask = async (url, init) => {
|
|
127
143
|
try {
|
|
128
|
-
const response = await transport.request({
|
|
144
|
+
const response = await transport.request({
|
|
145
|
+
method: init.method,
|
|
146
|
+
url,
|
|
147
|
+
headers: init.headers,
|
|
148
|
+
providerId: qwenWebProviderId,
|
|
149
|
+
...(init.body ? { body: init.body } : {}),
|
|
150
|
+
signal: controller.signal,
|
|
151
|
+
});
|
|
129
152
|
return { status: response.status, data: response.data, error: undefined };
|
|
130
153
|
}
|
|
131
154
|
catch (error) {
|
|
@@ -134,48 +157,75 @@ export async function probeQwenWeb(cookieHeader, transport, signal) {
|
|
|
134
157
|
return { status: 0, data: undefined, error: error instanceof Error ? error.message : String(error) };
|
|
135
158
|
}
|
|
136
159
|
};
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
?? `
|
|
164
|
-
|
|
160
|
+
try {
|
|
161
|
+
/**
|
|
162
|
+
* All three at once, and the turn last only because it needs a model id.
|
|
163
|
+
*
|
|
164
|
+
* Sequential requests cost three round trips to a host on another continent. The models
|
|
165
|
+
* catalog is the only dependency between them, and it does not need the turn's answer — so
|
|
166
|
+
* the turn is fired as soon as the catalog lands and the two never wait on each other.
|
|
167
|
+
*/
|
|
168
|
+
const authPromise = ask(`${QWEN_AUTH_ORIGIN}${AUTH_PATH}`, { method: 'GET', headers: headers() });
|
|
169
|
+
const catalogPromise = ask(`${QWEN_ORIGIN}/api/v2/models/`, { method: 'GET', headers: headers() });
|
|
170
|
+
const [auth, catalog] = await Promise.all([authPromise, catalogPromise]);
|
|
171
|
+
const models = readModels(catalog.data);
|
|
172
|
+
const turn = await ask(`${QWEN_ORIGIN}${TURN_PATH}`, {
|
|
173
|
+
method: 'POST',
|
|
174
|
+
headers: headers({ 'content-type': 'application/json' }),
|
|
175
|
+
body: JSON.stringify({ model: models[0] ?? 'qwen3.7-plus', messages: [{ role: 'user', content: 'hi' }], stream: false }),
|
|
176
|
+
});
|
|
177
|
+
// 1. The auth origin. A guest is refused here first, so this separates "no credential" from
|
|
178
|
+
// "the credential is not the problem".
|
|
179
|
+
//
|
|
180
|
+
// Read from the **body**, not the status. `auth.qwen.ai` answers a guest with **HTTP 200**
|
|
181
|
+
// and `{"success":false,"data":{"code":"Unauthorized"}}` — the status code is a lie and the
|
|
182
|
+
// transport, correctly, does not throw. Trusting the status is what made a guest cookie
|
|
183
|
+
// report as `authenticated: true`.
|
|
184
|
+
const authRefused = readRefusal(auth.data) ?? (auth.error ? auth.error : undefined);
|
|
185
|
+
const authenticated = auth.error === undefined && !authRefused;
|
|
186
|
+
const authDetail = authRefused ?? `HTTP ${auth.status}`;
|
|
187
|
+
// 2. The turn — the question that actually matters, and the one the refusal answers.
|
|
188
|
+
const ret = Array.isArray(turn.data?.ret) ? (turn.data.ret) : [];
|
|
189
|
+
const turnRefusal = readRefusal(turn.data);
|
|
190
|
+
const turnServed = turn.error === undefined && ret.length === 0 && !turnRefusal;
|
|
191
|
+
const detail = turn.error
|
|
192
|
+
?? (ret.length > 0 ? `Qwen refused the turn: ${ret.join(', ')}` : undefined)
|
|
193
|
+
?? turnRefusal
|
|
194
|
+
?? `Qwen answered HTTP ${turn.status}.`;
|
|
195
|
+
return { authenticated, turnServed, detail, authDetail, models };
|
|
196
|
+
}
|
|
197
|
+
finally {
|
|
198
|
+
clearTimeout(timer);
|
|
199
|
+
signal?.removeEventListener('abort', onAbort);
|
|
200
|
+
}
|
|
165
201
|
}
|
|
166
|
-
/** The catalog Qwen serves, for the card. Read from the guest-visible endpoint, so it is real. */
|
|
167
202
|
/**
|
|
168
|
-
* The
|
|
203
|
+
* The provider's own refusal, read out of a **200** response.
|
|
204
|
+
*
|
|
205
|
+
* Qwen signals every refusal in the body and never in the status code, on both origins. A check
|
|
206
|
+
* that trusted the status would report a guest cookie as a working credential.
|
|
207
|
+
*/
|
|
208
|
+
/**
|
|
209
|
+
* A **snapshot** of the guest catalog, for the card. The live list is what `probeQwenWeb`
|
|
210
|
+
* returns, and that is the authority.
|
|
211
|
+
*
|
|
212
|
+
* I first wrote ten plausible ids — `qwen3.7-flash`, `qwen3.7-coder-plus` and so on — and the
|
|
213
|
+
* probe caught it. Then I replaced them with a hard "it answers three" and **that was an
|
|
214
|
+
* overclaim too**: a user running the probe minutes later saw **seven**, including
|
|
215
|
+
* `qwen3.7-max`, `qwen3.6-plus`, `qwen3.5-plus` and `qwen3.5-omni-plus`, while repeated requests
|
|
216
|
+
* from here returned three every time. Cookies were ruled out — none, `cna`, `isg` and a pasted
|
|
217
|
+
* pair all returned the same three.
|
|
169
218
|
*
|
|
170
|
-
*
|
|
171
|
-
*
|
|
172
|
-
*
|
|
173
|
-
*
|
|
174
|
-
* page to say why. Qwen publishes no context length on this endpoint, so none is claimed.
|
|
219
|
+
* So the endpoint's guest catalog **varies**, and a constant is wrong by construction: it will
|
|
220
|
+
* disagree with the provider on some day, and a card that lists models the endpoint no longer
|
|
221
|
+
* serves is worse than one that says the list moves. This is a dated snapshot for the catalog
|
|
222
|
+
* only, and the dialog always shows the live list.
|
|
175
223
|
*/
|
|
176
224
|
export const QWEN_WEB_MODELS = [
|
|
177
225
|
{ id: 'qwen3.7-plus', providerId: qwenWebProviderId },
|
|
178
226
|
{ id: 'qwen3.8-max', providerId: qwenWebProviderId },
|
|
179
227
|
{ id: 'qwen3.8-omni-flash', providerId: qwenWebProviderId },
|
|
180
228
|
];
|
|
229
|
+
/** When the snapshot above was read, so a reader can tell a stale list from a wrong one. */
|
|
230
|
+
export const QWEN_WEB_MODELS_OBSERVED_AT = '2026-09-29';
|
|
181
231
|
//# sourceMappingURL=qwen-web.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qwen-web.js","sourceRoot":"","sources":["../../src/adapters/qwen-web.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"qwen-web.js","sourceRoot":"","sources":["../../src/adapters/qwen-web.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.12.
|
|
3
|
+
"version": "1.12.2",
|
|
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",
|