video-context-mcp-server 0.42.0-beta → 0.43.0-beta
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -14
- package/dist/generated/version.d.ts +1 -1
- package/dist/generated/version.js +1 -1
- package/dist/services/glmClient.d.ts.map +1 -1
- package/dist/services/glmClient.js +33 -20
- package/dist/services/glmClient.js.map +1 -1
- package/dist/services/providerRouter.d.ts +13 -11
- package/dist/services/providerRouter.d.ts.map +1 -1
- package/dist/services/providerRouter.js +14 -12
- package/dist/services/providerRouter.js.map +1 -1
- package/dist/services/qwenClient.d.ts.map +1 -1
- package/dist/services/qwenClient.js +30 -9
- package/dist/services/qwenClient.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -253,21 +253,21 @@ All tools accept local file paths, `file://` URIs, and remote `http(s)` URLs. Re
|
|
|
253
253
|
|
|
254
254
|
### Video Providers
|
|
255
255
|
|
|
256
|
-
Set all keys to get the full fallback chain. The server will try GLM first, then
|
|
256
|
+
Set all keys to get the full fallback chain. The server will try GLM first, then Gemini, then Qwen, then Kimi, so having all keys ensures it never gets stuck without a working provider:
|
|
257
257
|
|
|
258
258
|
| Provider | Key | Link |
|
|
259
259
|
| -------------------------------------- | ------------------- | --------------------------------------------------------------------------------------------- |
|
|
260
260
|
| **GLM-4.6V** (default, free-tier) | `Z_AI_API_KEY` | [Get key](https://z.ai/manage-apikey/apikey-list) |
|
|
261
|
+
| **Gemini 3 Flash Preview** (free-tier) | `GEMINI_API_KEY` | [Get key](https://aistudio.google.com/app/apikey) |
|
|
261
262
|
| **Qwen3.5** (free credits) | `DASHSCOPE_API_KEY` | [Get key](https://modelstudio.console.alibabacloud.com/ap-southeast-1?tab=dashboard#/api-key) |
|
|
262
263
|
| **Kimi K2.5** | `MOONSHOT_API_KEY` | [Get key](https://platform.moonshot.ai) |
|
|
263
|
-
| **Gemini 3 Flash Preview** (free-tier) | `GEMINI_API_KEY` | [Get key](https://aistudio.google.com/app/apikey) |
|
|
264
264
|
|
|
265
265
|
When a provider's API key is missing or its API call fails at runtime, tools automatically fall back through the remaining providers in priority order, starting from the configured default:
|
|
266
266
|
|
|
267
|
-
- GLM default (standard): **GLM →
|
|
268
|
-
- Qwen default: **Qwen → GLM → Kimi → Gemini**
|
|
269
|
-
- Kimi default: **Kimi → GLM → Qwen → Gemini**
|
|
267
|
+
- GLM default (standard): **GLM → Gemini → Qwen → Kimi**
|
|
270
268
|
- Gemini default: **Gemini → GLM → Qwen → Kimi**
|
|
269
|
+
- Qwen default: **Qwen → GLM → Gemini → Kimi**
|
|
270
|
+
- Kimi default: **Kimi → GLM → Gemini → Qwen**
|
|
271
271
|
|
|
272
272
|
### Audio Providers
|
|
273
273
|
|
|
@@ -288,17 +288,17 @@ When an audio key is missing or an audio API call fails at runtime, tools automa
|
|
|
288
288
|
|
|
289
289
|
### Video Providers
|
|
290
290
|
|
|
291
|
-
| Feature | GLM-4.6V (default) | Qwen3.5 | Kimi K2.5 |
|
|
292
|
-
| -------------- | ------------------------------------ |
|
|
293
|
-
| Price | Free tier available (GLM-4.6V-Flash) | Free credits (1M tokens, 90 days) | $0.60 input / $3.00 output per 1M tokens |
|
|
294
|
-
| Video formats | mp4, avi, mov, wmv, webm, m4v | mp4,
|
|
295
|
-
| Context window | 128K tokens |
|
|
296
|
-
| Max file size | ~12 MB (base64) | ~10 MB (base64) | 100 MB |
|
|
297
|
-
| Best for | **Default** — free,
|
|
291
|
+
| Feature | GLM-4.6V (default) | Gemini 3 Flash Preview | Qwen3.5 | Kimi K2.5 |
|
|
292
|
+
| -------------- | ------------------------------------ | ---------------------------------------------- | --------------------------------- | ---------------------------------------------- |
|
|
293
|
+
| Price | Free tier available (GLM-4.6V-Flash) | Free tier available | Free credits (1M tokens, 90 days) | $0.60 input / $3.00 output per 1M tokens |
|
|
294
|
+
| Video formats | mp4, avi, mov, wmv, webm, m4v | mp4, mpeg, mov, avi, flv, mpg, webm, wmv, 3gpp | mp4, avi, mov, wmv, webm, m4v | mp4, mpeg, mov, avi, flv, mpg, webm, wmv, 3gpp |
|
|
295
|
+
| Context window | 128K tokens | 1M tokens | 1M tokens | 256K tokens |
|
|
296
|
+
| Max file size | ~12 MB (base64) | 2 GB | ~10 MB (base64) | 100 MB |
|
|
297
|
+
| Best for | **Default** — free, no card required | Free fallback, no card (less accurate) | Free credits (card required) | Paid — broadest format support |
|
|
298
298
|
|
|
299
|
-
**GLM-4.6V** is the default — it offers a free tier,
|
|
299
|
+
**GLM-4.6V** is the default — it offers a free tier with no credit card required. **Gemini** is the second fallback — also free with no card required, though it has proven less accurate for video analysis in practice. **Qwen3.5** offers free credits (1M tokens for 90 days) but requires a credit card to sign up. **Kimi K2.5** is a paid provider with the broadest video format support.
|
|
300
300
|
|
|
301
|
-
Set `VIDEO_MCP_DEFAULT_PROVIDER=
|
|
301
|
+
Set `VIDEO_MCP_DEFAULT_PROVIDER=gemini`, `qwen`, or `kimi` to change the default.
|
|
302
302
|
|
|
303
303
|
<details>
|
|
304
304
|
<summary><strong>Automatic S3 relay: bypass the 10 MB local file limit with Qwen and GLM</strong></summary>
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const VERSION = "0.
|
|
1
|
+
export declare const VERSION = "0.43.0-beta";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glmClient.d.ts","sourceRoot":"","sources":["../../src/services/glmClient.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"glmClient.d.ts","sourceRoot":"","sources":["../../src/services/glmClient.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,KAAK,cAAc,GACf;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GACjD;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAA;AAmBrD,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,OAAO,CAAQ;gBAEX,OAAO,EAAE,gBAAgB;IAKrC;;;;;;OAMG;IACG,kBAAkB,CACtB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,QAAQ,GAAE,MAAoB,EAC9B,QAAQ,GAAE,OAAc,GACvB,OAAO,CAAC,MAAM,CAAC;IAsBlB;;;;;;OAMG;IACG,eAAe,CACnB,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,QAAQ,GAAE,OAAc,GACvB,OAAO,CAAC,MAAM,CAAC;IAoBlB;;OAEG;IACG,aAAa,CACjB,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,EACjD,MAAM,EAAE,MAAM,EACd,QAAQ,GAAE,OAAc,GACvB,OAAO,CAAC,MAAM,CAAC;IAwBlB;;OAEG;IACG,mBAAmB,CACvB,OAAO,EAAE,cAAc,EAAE,EACzB,MAAM,EAAE,MAAM,EACd,QAAQ,GAAE,OAAc,GACvB,OAAO,CAAC;QACT,SAAS,EAAE,MAAM,CAAA;QACjB,MAAM,EAAE,MAAM,CAAA;KACf,CAAC;YA8BY,yBAAyB;IA8BvC,OAAO,CAAC,0BAA0B;YAIpB,iBAAiB;YAqCjB,qBAAqB;IAkBnC,OAAO,CAAC,sBAAsB;CAoB/B;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,SAAS,GAAG,IAAI,CAMlD"}
|
|
@@ -5,6 +5,8 @@
|
|
|
5
5
|
const GLM_BASE_URL = 'https://api.z.ai/api/paas/v4/chat/completions';
|
|
6
6
|
const GLM_MODEL = 'glm-4.6v';
|
|
7
7
|
const GLM_MODEL_FLASH = 'glm-4.6v-flash';
|
|
8
|
+
/** Client-side request timeout in ms (4 min). */
|
|
9
|
+
const GLM_REQUEST_TIMEOUT_MS = 4 * 60 * 1000;
|
|
8
10
|
export class GLMClient {
|
|
9
11
|
apiKey;
|
|
10
12
|
baseURL;
|
|
@@ -140,30 +142,41 @@ export class GLMClient {
|
|
|
140
142
|
return /thinking|reasoning|unsupported|unknown/i.test(errorMessage);
|
|
141
143
|
}
|
|
142
144
|
async requestCompletion(payload) {
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
145
|
+
let response;
|
|
146
|
+
try {
|
|
147
|
+
response = await fetch(this.baseURL, {
|
|
148
|
+
method: 'POST',
|
|
149
|
+
headers: {
|
|
150
|
+
'Content-Type': 'application/json',
|
|
151
|
+
Authorization: `Bearer ${this.apiKey}`,
|
|
152
|
+
},
|
|
153
|
+
body: JSON.stringify(payload),
|
|
154
|
+
signal: AbortSignal.timeout(GLM_REQUEST_TIMEOUT_MS),
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
catch (err) {
|
|
158
|
+
if (err instanceof DOMException && err.name === 'TimeoutError') {
|
|
159
|
+
throw new Error('GLM API request timed out after 4 minutes', {
|
|
160
|
+
cause: err,
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
throw err;
|
|
164
|
+
}
|
|
165
|
+
const text = await response.text();
|
|
166
|
+
let data;
|
|
167
|
+
try {
|
|
168
|
+
data = JSON.parse(text);
|
|
169
|
+
}
|
|
170
|
+
catch (cause) {
|
|
171
|
+
throw new Error(`GLM API returned non-JSON response (HTTP ${response.status}): ${text.slice(0, 200)}`, { cause });
|
|
172
|
+
}
|
|
152
173
|
return { response, data };
|
|
153
174
|
}
|
|
154
175
|
async requestChatCompletion(messages, useFlash) {
|
|
155
|
-
const response = await
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
'Content-Type': 'application/json',
|
|
159
|
-
Authorization: `Bearer ${this.apiKey}`,
|
|
160
|
-
},
|
|
161
|
-
body: JSON.stringify({
|
|
162
|
-
model: useFlash ? GLM_MODEL_FLASH : GLM_MODEL,
|
|
163
|
-
messages,
|
|
164
|
-
}),
|
|
176
|
+
const { response, data } = await this.requestCompletion({
|
|
177
|
+
model: useFlash ? GLM_MODEL_FLASH : GLM_MODEL,
|
|
178
|
+
messages,
|
|
165
179
|
});
|
|
166
|
-
const data = (await response.json());
|
|
167
180
|
if (!response.ok) {
|
|
168
181
|
const errorMessage = data.error?.message || response.statusText;
|
|
169
182
|
throw new Error(`GLM API request failed: ${errorMessage}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glmClient.js","sourceRoot":"","sources":["../../src/services/glmClient.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,YAAY,GAAG,+CAA+C,CAAA;AACpE,MAAM,SAAS,GAAG,UAAU,CAAA;AAC5B,MAAM,eAAe,GAAG,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"glmClient.js","sourceRoot":"","sources":["../../src/services/glmClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,12 +25,13 @@ export type ProviderResult = {
|
|
|
25
25
|
/**
|
|
26
26
|
* Resolve the provider, with optional fallback behavior.
|
|
27
27
|
* If the requested provider's key is missing, falls back in canonical priority
|
|
28
|
-
* order (glm →
|
|
29
|
-
* all remaining candidates. This means every starting provider can
|
|
30
|
-
* reach any other provider:
|
|
31
|
-
* glm →
|
|
32
|
-
* kimi → glm
|
|
33
|
-
* gemini → glm
|
|
28
|
+
* order (glm → gemini → qwen → kimi), skipping the requested provider and
|
|
29
|
+
* visiting all remaining candidates. This means every starting provider can
|
|
30
|
+
* eventually reach any other provider:
|
|
31
|
+
* glm → gemini → qwen → kimi
|
|
32
|
+
* kimi → glm → gemini → qwen
|
|
33
|
+
* gemini → glm → qwen → kimi
|
|
34
|
+
* qwen → glm → gemini → kimi
|
|
34
35
|
* Returns a ProviderResult with `fallbackFrom` set if a fallback occurred.
|
|
35
36
|
* Throws only when no provider API key is available at all.
|
|
36
37
|
*/
|
|
@@ -44,11 +45,12 @@ export declare function getDefaultProvider(): VideoProvider;
|
|
|
44
45
|
* filtered to only those whose API keys are available.
|
|
45
46
|
*
|
|
46
47
|
* Fallback order: start with the requested provider, then visit remaining
|
|
47
|
-
* providers in canonical priority order (glm →
|
|
48
|
-
* starting provider can reach all other providers:
|
|
49
|
-
* glm → glm,
|
|
50
|
-
* kimi → kimi, glm, gemini
|
|
51
|
-
* gemini → gemini, glm, kimi
|
|
48
|
+
* providers in canonical priority order (glm → gemini → qwen → kimi), so
|
|
49
|
+
* every starting provider can reach all other providers:
|
|
50
|
+
* glm → glm, gemini, qwen, kimi
|
|
51
|
+
* kimi → kimi, glm, gemini, qwen
|
|
52
|
+
* gemini → gemini, glm, qwen, kimi
|
|
53
|
+
* qwen → qwen, glm, gemini, kimi
|
|
52
54
|
*
|
|
53
55
|
* This is used for runtime error-based fallback: if the first provider's API call
|
|
54
56
|
* throws (overloaded, timeout, 5xx, etc.), the caller retries with the next entry.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providerRouter.d.ts","sourceRoot":"","sources":["../../src/services/providerRouter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAA;AAE9D;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,aAAa,EACvB,UAAU,EAAE,OAAO,EACnB,SAAS,EAAE,OAAO,EAClB,YAAY,GAAE,OAAe,EAC7B,UAAU,GAAE,OAAe,GAC1B,aAAa,CAyBf;AAED;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,aAAa,CAAA;IACvB,YAAY,CAAC,EAAE,aAAa,CAAA;CAC7B,CAAA;AAUD
|
|
1
|
+
{"version":3,"file":"providerRouter.d.ts","sourceRoot":"","sources":["../../src/services/providerRouter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAA;AAE9D;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,aAAa,EACvB,UAAU,EAAE,OAAO,EACnB,SAAS,EAAE,OAAO,EAClB,YAAY,GAAE,OAAe,EAC7B,UAAU,GAAE,OAAe,GAC1B,aAAa,CAyBf;AAED;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,aAAa,CAAA;IACvB,YAAY,CAAC,EAAE,aAAa,CAAA;CAC7B,CAAA;AAUD;;;;;;;;;;;;GAYG;AACH,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,aAAa,EACvB,UAAU,EAAE,OAAO,EACnB,SAAS,EAAE,OAAO,EAClB,YAAY,GAAE,OAAe,EAC7B,UAAU,GAAE,OAAe,GAC1B,cAAc,CAsBhB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,aAAa,CAWlD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,aAAa,EACvB,UAAU,EAAE,OAAO,EACnB,SAAS,EAAE,OAAO,EAClB,YAAY,GAAE,OAAe,EAC7B,UAAU,GAAE,OAAe,GAC1B,aAAa,EAAE,CAejB;AAQD;;;;;;;;;GASG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAerC;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAQzC"}
|
|
@@ -39,19 +39,20 @@ export function selectProvider(provider, hasKimiKey, hasGLMKey, hasGeminiKey = f
|
|
|
39
39
|
/** Canonical priority order for all video providers. */
|
|
40
40
|
const VIDEO_PROVIDER_PRIORITY = [
|
|
41
41
|
'glm',
|
|
42
|
+
'gemini',
|
|
42
43
|
'qwen',
|
|
43
44
|
'kimi',
|
|
44
|
-
'gemini',
|
|
45
45
|
];
|
|
46
46
|
/**
|
|
47
47
|
* Resolve the provider, with optional fallback behavior.
|
|
48
48
|
* If the requested provider's key is missing, falls back in canonical priority
|
|
49
|
-
* order (glm →
|
|
50
|
-
* all remaining candidates. This means every starting provider can
|
|
51
|
-
* reach any other provider:
|
|
52
|
-
* glm →
|
|
53
|
-
* kimi → glm
|
|
54
|
-
* gemini → glm
|
|
49
|
+
* order (glm → gemini → qwen → kimi), skipping the requested provider and
|
|
50
|
+
* visiting all remaining candidates. This means every starting provider can
|
|
51
|
+
* eventually reach any other provider:
|
|
52
|
+
* glm → gemini → qwen → kimi
|
|
53
|
+
* kimi → glm → gemini → qwen
|
|
54
|
+
* gemini → glm → qwen → kimi
|
|
55
|
+
* qwen → glm → gemini → kimi
|
|
55
56
|
* Returns a ProviderResult with `fallbackFrom` set if a fallback occurred.
|
|
56
57
|
* Throws only when no provider API key is available at all.
|
|
57
58
|
*/
|
|
@@ -91,11 +92,12 @@ export function getDefaultProvider() {
|
|
|
91
92
|
* filtered to only those whose API keys are available.
|
|
92
93
|
*
|
|
93
94
|
* Fallback order: start with the requested provider, then visit remaining
|
|
94
|
-
* providers in canonical priority order (glm →
|
|
95
|
-
* starting provider can reach all other providers:
|
|
96
|
-
* glm → glm,
|
|
97
|
-
* kimi → kimi, glm, gemini
|
|
98
|
-
* gemini → gemini, glm, kimi
|
|
95
|
+
* providers in canonical priority order (glm → gemini → qwen → kimi), so
|
|
96
|
+
* every starting provider can reach all other providers:
|
|
97
|
+
* glm → glm, gemini, qwen, kimi
|
|
98
|
+
* kimi → kimi, glm, gemini, qwen
|
|
99
|
+
* gemini → gemini, glm, qwen, kimi
|
|
100
|
+
* qwen → qwen, glm, gemini, kimi
|
|
99
101
|
*
|
|
100
102
|
* This is used for runtime error-based fallback: if the first provider's API call
|
|
101
103
|
* throws (overloaded, timeout, 5xx, etc.), the caller retries with the next entry.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providerRouter.js","sourceRoot":"","sources":["../../src/services/providerRouter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAI3C;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAC5B,QAAuB,EACvB,UAAmB,EACnB,SAAkB,EAClB,eAAwB,KAAK,EAC7B,aAAsB,KAAK;IAE3B,MAAM,YAAY,GAAmC;QACnD,GAAG,EAAE,SAAS;QACd,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,YAAY;QACpB,IAAI,EAAE,UAAU;KACjB,CAAA;IACD,MAAM,WAAW,GAAkC;QACjD,GAAG,EAAE,UAAU;QACf,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,SAAS;KAChB,CAAA;IACD,MAAM,MAAM,GAAkC;QAC5C,GAAG,EAAE,cAAc;QACnB,IAAI,EAAE,kBAAkB;QACxB,MAAM,EAAE,gBAAgB;QACxB,IAAI,EAAE,mBAAmB;KAC1B,CAAA;IACD,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CACb,GAAG,WAAW,CAAC,QAAQ,CAAC,0BAA0B,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CACvF,CAAA;IACH,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAYD,wDAAwD;AACxD,MAAM,uBAAuB,GAAoB;IAC/C,KAAK;IACL,
|
|
1
|
+
{"version":3,"file":"providerRouter.js","sourceRoot":"","sources":["../../src/services/providerRouter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qwenClient.d.ts","sourceRoot":"","sources":["../../src/services/qwenClient.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"qwenClient.d.ts","sourceRoot":"","sources":["../../src/services/qwenClient.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH,KAAK,eAAe,GAChB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAC/D;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAA;AAoBrD,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,OAAO,CAAQ;gBAEX,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;IAK5C;;;OAGG;IACG,eAAe,CACnB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,GAAG,GAAE,MAAyB,GAC7B,OAAO,CAAC,MAAM,CAAC;IAoBlB;;;OAGG;IACG,kBAAkB,CACtB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,QAAQ,GAAE,MAAoB,GAC7B,OAAO,CAAC,MAAM,CAAC;IAsBlB;;;OAGG;IACG,aAAa,CACjB,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,EACjD,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC;IAwBlB;;;OAGG;IACG,mBAAmB,CACvB,OAAO,EAAE,eAAe,EAAE,EAC1B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC;QACT,SAAS,EAAE,MAAM,CAAA;QACjB,MAAM,EAAE,MAAM,CAAA;KACf,CAAC;YAmCY,qBAAqB;YAmBrB,iBAAiB;IAqC/B,OAAO,CAAC,sBAAsB;CAoB/B;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,UAAU,GAAG,IAAI,CAOpD"}
|
|
@@ -7,6 +7,8 @@ const QWEN_MODEL = 'qwen3.5-plus';
|
|
|
7
7
|
const QWEN_MODEL_FLASH = 'qwen3.5-flash';
|
|
8
8
|
/** Default fps for server-side frame extraction on video URL inputs. */
|
|
9
9
|
const QWEN_DEFAULT_FPS = 2.0;
|
|
10
|
+
/** Client-side request timeout in ms (4 min). DashScope times out at ~5 min. */
|
|
11
|
+
const QWEN_REQUEST_TIMEOUT_MS = 4 * 60 * 1000;
|
|
10
12
|
export class QwenClient {
|
|
11
13
|
apiKey;
|
|
12
14
|
baseURL;
|
|
@@ -133,15 +135,34 @@ export class QwenClient {
|
|
|
133
135
|
return this.extractTextFromContent(content);
|
|
134
136
|
}
|
|
135
137
|
async requestCompletion(payload) {
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
138
|
+
let response;
|
|
139
|
+
try {
|
|
140
|
+
response = await fetch(this.baseURL, {
|
|
141
|
+
method: 'POST',
|
|
142
|
+
headers: {
|
|
143
|
+
'Content-Type': 'application/json',
|
|
144
|
+
Authorization: `Bearer ${this.apiKey}`,
|
|
145
|
+
},
|
|
146
|
+
body: JSON.stringify(payload),
|
|
147
|
+
signal: AbortSignal.timeout(QWEN_REQUEST_TIMEOUT_MS),
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
catch (err) {
|
|
151
|
+
if (err instanceof DOMException && err.name === 'TimeoutError') {
|
|
152
|
+
throw new Error('Qwen API request timed out after 4 minutes', {
|
|
153
|
+
cause: err,
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
throw err;
|
|
157
|
+
}
|
|
158
|
+
const text = await response.text();
|
|
159
|
+
let data;
|
|
160
|
+
try {
|
|
161
|
+
data = JSON.parse(text);
|
|
162
|
+
}
|
|
163
|
+
catch (cause) {
|
|
164
|
+
throw new Error(`Qwen API returned non-JSON response (HTTP ${response.status}): ${text.slice(0, 200)}`, { cause });
|
|
165
|
+
}
|
|
145
166
|
return { response, data };
|
|
146
167
|
}
|
|
147
168
|
extractTextFromContent(content) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qwenClient.js","sourceRoot":"","sources":["../../src/services/qwenClient.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,aAAa,GACjB,yEAAyE,CAAA;AAC3E,MAAM,UAAU,GAAG,cAAc,CAAA;AACjC,MAAM,gBAAgB,GAAG,eAAe,CAAA;AAExC,wEAAwE;AACxE,MAAM,gBAAgB,GAAG,GAAG,CAAA;
|
|
1
|
+
{"version":3,"file":"qwenClient.js","sourceRoot":"","sources":["../../src/services/qwenClient.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,aAAa,GACjB,yEAAyE,CAAA;AAC3E,MAAM,UAAU,GAAG,cAAc,CAAA;AACjC,MAAM,gBAAgB,GAAG,eAAe,CAAA;AAExC,wEAAwE;AACxE,MAAM,gBAAgB,GAAG,GAAG,CAAA;AAE5B,gFAAgF;AAChF,MAAM,uBAAuB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAA;AAyB7C,MAAM,OAAO,UAAU;IACb,MAAM,CAAQ;IACd,OAAO,CAAQ;IAEvB,YAAY,MAAc,EAAE,OAAgB;QAC1C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,aAAa,CAAA;IACzC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,eAAe,CACnB,GAAW,EACX,MAAc,EACd,MAAc,gBAAgB;QAE9B,MAAM,QAAQ,GAAkB;YAC9B;gBACE,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,WAAW;wBACjB,SAAS,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE;qBACxB;oBACD;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,MAAM;qBACb;iBACF;aACF;SACF,CAAA;QAED,OAAO,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAA;IAC7C,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,kBAAkB,CACtB,UAAkB,EAClB,MAAc,EACd,WAAmB,WAAW;QAE9B,MAAM,QAAQ,GAAkB;YAC9B;gBACE,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,WAAW;wBACjB,SAAS,EAAE;4BACT,GAAG,EAAE,QAAQ,QAAQ,WAAW,UAAU,EAAE;yBAC7C;qBACF;oBACD;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,MAAM;qBACb;iBACF;aACF;SACF,CAAA;QAED,OAAO,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAA;IAC7C,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,aAAa,CACjB,MAAiD,EACjD,MAAc;QAEd,MAAM,UAAU,GAAsB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC3D,IAAI,EAAE,WAAW;YACjB,SAAS,EAAE;gBACT,GAAG,EAAE,QAAQ,KAAK,CAAC,QAAQ,WAAW,KAAK,CAAC,IAAI,EAAE;aACnD;SACF,CAAC,CAAC,CAAA;QAEH,MAAM,QAAQ,GAAkB;YAC9B;gBACE,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;oBACP,GAAG,UAAU;oBACb;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,MAAM;qBACb;iBACF;aACF;SACF,CAAA;QAED,OAAO,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAA;IAC7C,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,mBAAmB,CACvB,OAA0B,EAC1B,MAAc;QAKd,MAAM,QAAQ,GAAkB;YAC9B;gBACE,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;oBACP,GAAG,OAAO;oBACV;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,MAAM;qBACb;iBACF;aACF;SACF,CAAA;QAED,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC;YAC5C,KAAK,EAAE,gBAAgB;YACvB,QAAQ;YACR,eAAe,EAAE,IAAI;YACrB,eAAe,EAAE,IAAI;SACtB,CAAC,CAAA;QAEF,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;YAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI,eAAe,CAAA;YACvD,MAAM,IAAI,KAAK,CAAC,4BAA4B,QAAQ,EAAE,CAAC,CAAA;QACzD,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;QACvC,OAAO;YACL,SAAS,EACP,OAAO,CAAC,iBAAiB,EAAE,IAAI,EAAE;gBACjC,wCAAwC;YAC1C,MAAM,EAAE,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,OAAO,CAAC;SACrD,CAAA;IACH,CAAC;IAEO,KAAK,CAAC,qBAAqB,CACjC,QAAuB,EACvB,WAAoB,IAAI;QAExB,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC;YACtD,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU;YAC/C,QAAQ;YACR,eAAe,EAAE,KAAK;SACvB,CAAC,CAAA;QAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI,QAAQ,CAAC,UAAU,CAAA;YAC/D,MAAM,IAAI,KAAK,CAAC,4BAA4B,YAAY,EAAE,CAAC,CAAA;QAC7D,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAA;QACnD,OAAO,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAA;IAC7C,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,OAAe;QAI7C,IAAI,QAAkB,CAAA;QACtB,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE;gBACnC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,aAAa,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;iBACvC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;gBAC7B,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,uBAAuB,CAAC;aACrD,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,YAAY,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;gBAC/D,MAAM,IAAI,KAAK,CAAC,4CAA4C,EAAE;oBAC5D,KAAK,EAAE,GAAG;iBACX,CAAC,CAAA;YACJ,CAAC;YACD,MAAM,GAAG,CAAA;QACX,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;QAClC,IAAI,IAAsB,CAAA;QAC1B,IAAI,CAAC;YACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAqB,CAAA;QAC7C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,6CAA6C,QAAQ,CAAC,MAAM,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EACtF,EAAE,KAAK,EAAE,CACV,CAAA;QACH,CAAC;QACD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;IAC3B,CAAC;IAEO,sBAAsB,CAC5B,OAAqE;QAErE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,OAAO,OAAO,CAAA;QAChB,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,OAAO;iBACjB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC;iBACvE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAc,CAAC;iBAClC,IAAI,CAAC,IAAI,CAAC,CAAA;YAEb,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,OAAO,IAAI,CAAA;YACb,CAAC;QACH,CAAC;QAED,OAAO,uCAAuC,CAAA;IAChD,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAA;IAC5C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,IAAI,CAAA;IACb,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,SAAS,CAAA;IACtD,OAAO,IAAI,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AACxC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "video-context-mcp-server",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.43.0-beta",
|
|
4
4
|
"description": "A Model Context Protocol server that gives GitHub Copilot the ability to understand and analyze video content",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|