video-context-mcp-server 0.44.1-beta → 0.46.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 +28 -19
- package/dist/generated/version.d.ts +1 -1
- package/dist/generated/version.js +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/services/geminiClient.d.ts +14 -0
- package/dist/services/geminiClient.d.ts.map +1 -1
- package/dist/services/geminiClient.js +22 -0
- package/dist/services/geminiClient.js.map +1 -1
- package/dist/services/glmClient.d.ts.map +1 -1
- package/dist/services/glmClient.js +7 -3
- package/dist/services/glmClient.js.map +1 -1
- package/dist/services/qwenClient.d.ts.map +1 -1
- package/dist/services/qwenClient.js +7 -3
- package/dist/services/qwenClient.js.map +1 -1
- package/dist/services/s3Relay.d.ts +17 -4
- package/dist/services/s3Relay.d.ts.map +1 -1
- package/dist/services/s3Relay.js +44 -7
- package/dist/services/s3Relay.js.map +1 -1
- package/dist/tools/analyzeVideo.d.ts.map +1 -1
- package/dist/tools/analyzeVideo.js +58 -28
- package/dist/tools/analyzeVideo.js.map +1 -1
- package/dist/tools/orchestrator.d.ts +2 -0
- package/dist/tools/orchestrator.d.ts.map +1 -1
- package/dist/tools/orchestrator.js +16 -6
- package/dist/tools/orchestrator.js.map +1 -1
- package/dist/tools/schemas.d.ts +8 -8
- package/dist/tools/searchTimestamp.d.ts.map +1 -1
- package/dist/tools/searchTimestamp.js +17 -4
- package/dist/tools/searchTimestamp.js.map +1 -1
- package/dist/tools/summarizeVideo.d.ts.map +1 -1
- package/dist/tools/summarizeVideo.js +30 -8
- package/dist/tools/summarizeVideo.js.map +1 -1
- package/dist/utils/artifactCache.d.ts +43 -0
- package/dist/utils/artifactCache.d.ts.map +1 -1
- package/dist/utils/artifactCache.js +194 -11
- package/dist/utils/artifactCache.js.map +1 -1
- package/dist/utils/videoUtils.d.ts +8 -2
- package/dist/utils/videoUtils.d.ts.map +1 -1
- package/dist/utils/videoUtils.js +22 -6
- package/dist/utils/videoUtils.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -288,19 +288,21 @@ 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) | Gemini 3 Flash Preview | Qwen3.5
|
|
292
|
-
| -------------- | ------------------------------------ | ---------------------------------------------- |
|
|
293
|
-
| Price | Free tier available (GLM-4.6V-Flash) | Free tier available | Free credits (1M tokens, 90 days)
|
|
294
|
-
| Video formats | mp4, avi, mov, wmv, webm, m4v | mp4, mpeg, mov, avi, flv, mpg, webm, wmv, 3gpp | mp4, avi, mov, wmv, webm, m4v
|
|
295
|
-
| Context window | 128K tokens | 1M tokens | 1M tokens
|
|
296
|
-
| Max file size | ~12 MB
|
|
297
|
-
| Best for | **Default** — free, no card required | Free fallback, no card (less accurate) | Free credits (card required)
|
|
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 / **unlimited w/ S3↓** | 2 GB | ~10 MB base64 / **unlimited w/ S3↓** | 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
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
301
|
Set `VIDEO_MCP_DEFAULT_PROVIDER=gemini`, `qwen`, or `kimi` to change the default.
|
|
302
302
|
|
|
303
|
-
|
|
303
|
+
> **⚠️ Recommended for local files with GLM or Qwen:** Both providers have a 10–12 MB base64 limit for local files. Without S3, large local videos will fail on GLM/Qwen and fall back to Gemini (less accurate) or Kimi (paid). **Setting up the S3 relay (one-time, free tier)** removes this limit entirely — GLM and Qwen receive a presigned URL instead of base64 data, enabling analysis of arbitrarily large local videos.
|
|
304
|
+
|
|
305
|
+
<details open>
|
|
304
306
|
<summary><strong>Automatic S3 relay: bypass the 10 MB local file limit with Qwen and GLM</strong></summary>
|
|
305
307
|
|
|
306
308
|
**GLM-4.6V** and **Qwen3.5** both accept direct video URLs, but base64-encoding a local file caps out at **10–12 MB**. Set `AWS_S3_BUCKET` to have the server automatically upload local videos (and platform downloads from YouTube, Bilibili, etc.) to S3 and pass a presigned URL to GLM/Qwen — no manual upload step needed.
|
|
@@ -339,7 +341,7 @@ AWS credentials are resolved automatically in this order:
|
|
|
339
341
|
|
|
340
342
|
That's it. Every time you analyze a local video (or a YouTube/Bilibili download) with GLM or Qwen, the server uploads it to S3, uses the presigned URL, and leaves the object in the bucket for reuse.
|
|
341
343
|
|
|
342
|
-
**
|
|
344
|
+
**Cleanup:** Relayed S3 objects are deleted automatically when the MCP server session ends and orphaned objects are swept at startup. Set `AWS_S3_RELAY_CLEANUP=false` to keep objects in the bucket for reuse across sessions.
|
|
343
345
|
|
|
344
346
|
**Cost**: AWS S3 free tier covers 5 GB storage + 20K GET requests/month for 12 months. After the free tier, storage is roughly $0.023/GB/month.
|
|
345
347
|
|
|
@@ -384,13 +386,13 @@ Set `AUDIO_MCP_DEFAULT_PROVIDER` to change the default.
|
|
|
384
386
|
|
|
385
387
|
### S3 Relay
|
|
386
388
|
|
|
387
|
-
| Variable | Description
|
|
388
|
-
| ----------------------- |
|
|
389
|
-
| `AWS_S3_BUCKET` | S3 bucket name for automatic video relay. When set, local videos (and platform downloads) are uploaded to S3 and GLM/Qwen receive a presigned URL — bypassing the 10–12 MB base64 limit.
|
|
390
|
-
| `AWS_ACCESS_KEY_ID` | AWS access key ID. Required if you are not using `~/.aws/credentials` or an IAM role.
|
|
391
|
-
| `AWS_SECRET_ACCESS_KEY` | AWS secret access key. Required alongside `AWS_ACCESS_KEY_ID`.
|
|
392
|
-
| `AWS_REGION` | AWS region for the S3 bucket (e.g. `us-east-1`). Required if not set in `~/.aws/config`.
|
|
393
|
-
| `AWS_S3_RELAY_CLEANUP` |
|
|
389
|
+
| Variable | Description | Default |
|
|
390
|
+
| ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- |
|
|
391
|
+
| `AWS_S3_BUCKET` | S3 bucket name for automatic video relay. When set, local videos (and platform downloads) are uploaded to S3 and GLM/Qwen receive a presigned URL — bypassing the 10–12 MB base64 limit. | — |
|
|
392
|
+
| `AWS_ACCESS_KEY_ID` | AWS access key ID. Required if you are not using `~/.aws/credentials` or an IAM role. | — |
|
|
393
|
+
| `AWS_SECRET_ACCESS_KEY` | AWS secret access key. Required alongside `AWS_ACCESS_KEY_ID`. | — |
|
|
394
|
+
| `AWS_REGION` | AWS region for the S3 bucket (e.g. `us-east-1`). Required if not set in `~/.aws/config`. | — |
|
|
395
|
+
| `AWS_S3_RELAY_CLEANUP` | Set to `false` to keep relayed S3 objects in the bucket for reuse across sessions. Default: relayed objects are deleted when the MCP server session ends **and** orphaned objects are swept at startup. | `true` |
|
|
394
396
|
|
|
395
397
|
### Audio
|
|
396
398
|
|
|
@@ -481,9 +483,16 @@ vmcp cache clear:all --yes # skip confirmation
|
|
|
481
483
|
|
|
482
484
|
### Qwen
|
|
483
485
|
|
|
484
|
-
| Variable
|
|
485
|
-
|
|
|
486
|
-
| `QWEN_BASE_URL`
|
|
486
|
+
| Variable | Description | Default |
|
|
487
|
+
| ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------- |
|
|
488
|
+
| `QWEN_BASE_URL` | Override the DashScope API endpoint. Use for regional routing: Singapore (default), Virginia (`https://dashscope-us.aliyuncs.com/compatible-mode/v1/chat/completions`), or Beijing (`https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions`). | `https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions` |
|
|
489
|
+
| `QWEN_REQUEST_TIMEOUT_MS` | Client-side timeout (ms) for Qwen API requests. DashScope applies a server-side limit of ~5 minutes, so values above ~285000 are unlikely to help. Increase to e.g. `270000` for extra headroom on large frame payloads. | `240000` (4 min) |
|
|
490
|
+
|
|
491
|
+
### GLM
|
|
492
|
+
|
|
493
|
+
| Variable | Description | Default |
|
|
494
|
+
| ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------- |
|
|
495
|
+
| `GLM_REQUEST_TIMEOUT_MS` | Client-side timeout (ms) for GLM API requests. Z.AI has no hard server-side streaming timeout, so raising this value (e.g. `480000` for 8 minutes) can help when analysing long videos with many frames. | `240000` (4 min) |
|
|
487
496
|
|
|
488
497
|
### yt-dlp (Platform Downloads)
|
|
489
498
|
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const VERSION = "0.
|
|
1
|
+
export declare const VERSION = "0.46.0-beta";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/index.js
CHANGED
|
@@ -12,7 +12,7 @@ import { setLoggerServer } from './utils/logger.js';
|
|
|
12
12
|
import { initLicenseValidation } from './utils/license.js';
|
|
13
13
|
import { sweepStaleTempDirs } from './utils/tempFiles.js';
|
|
14
14
|
import { sweepExpiredCacheDirs } from './utils/artifactCache.js';
|
|
15
|
-
import { registerSessionCleanup } from './services/s3Relay.js';
|
|
15
|
+
import { registerSessionCleanup, sweepStaleRelayKeys, } from './services/s3Relay.js';
|
|
16
16
|
import { triggerUpdateCheck, waitForUpdateCheck, wrapWithUpdateNotice, } from './utils/updateCheck.js';
|
|
17
17
|
import { VERSION } from './generated/version.js';
|
|
18
18
|
import { analyzeVideoSchema, summarizeVideoSchema, extractFramesSchema, searchTimestampSchema, getVideoInfoSchema, transcribeVideoSchema, } from './tools/schemas.js';
|
|
@@ -32,8 +32,10 @@ async function main() {
|
|
|
32
32
|
});
|
|
33
33
|
// Wire up the logger so tools can emit progress notifications
|
|
34
34
|
setLoggerServer(server);
|
|
35
|
-
// Register S3 relay session-end cleanup (
|
|
35
|
+
// Register S3 relay session-end cleanup (enabled by default; set AWS_S3_RELAY_CLEANUP=false to disable)
|
|
36
36
|
registerSessionCleanup();
|
|
37
|
+
// Sweep orphaned S3 relay objects from previous sessions (skipped only when AWS_S3_RELAY_CLEANUP=false)
|
|
38
|
+
sweepStaleRelayKeys().catch(() => { }); // fire-and-forget
|
|
37
39
|
// Clean up orphaned temp directories from previous runs that were killed mid-call
|
|
38
40
|
sweepStaleTempDirs().catch(() => { }); // fire-and-forget
|
|
39
41
|
// Remove expired per-video artifact directories from the persistent cache
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAA;AAEhF,uBAAuB;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAA;AAChE,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,20 @@ export declare class GeminiClient {
|
|
|
19
19
|
* @throws Error if the file fails to process or if polling exceeds the timeout
|
|
20
20
|
*/
|
|
21
21
|
waitForFileProcessing(name: string | undefined): Promise<void>;
|
|
22
|
+
/**
|
|
23
|
+
* Check whether a previously-uploaded file is still ACTIVE on Gemini's servers.
|
|
24
|
+
*
|
|
25
|
+
* Returns the `GeminiFile` object when the file exists and its state is
|
|
26
|
+
* `ACTIVE` (ready for re-use). Returns `null` when the file is not found,
|
|
27
|
+
* is in `FAILED` / `PROCESSING` state, or if the API call throws — so that
|
|
28
|
+
* the caller can safely fall back to a fresh upload without surfacing an error.
|
|
29
|
+
*
|
|
30
|
+
* Gemini files expire after 48 hours, so a cached `name` from a previous
|
|
31
|
+
* session may no longer be valid.
|
|
32
|
+
*
|
|
33
|
+
* @param name - The file name returned from a previous `uploadVideo()` call
|
|
34
|
+
*/
|
|
35
|
+
checkFileActive(name: string): Promise<GeminiFile | null>;
|
|
22
36
|
/**
|
|
23
37
|
* Analyze a video using the uploaded file object
|
|
24
38
|
* @param fileObject - The file object returned from uploadVideo()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geminiClient.d.ts","sourceRoot":"","sources":["../../src/services/geminiClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,IAAI,IAAI,UAAU,EAAE,MAAM,eAAe,CAAA;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAS5D,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAA;CACf;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAa;gBAEf,OAAO,EAAE,mBAAmB;IAMxC;;;;;OAKG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAS3E;;;;OAIG;IACG,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBpE;;;;;OAKG;IACG,YAAY,CAChB,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC;IAwBlB;;;;OAIG;IACG,cAAc,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAU7D;;;;;OAKG;IACG,eAAe,CACnB,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,CAAC;IAOlB;;;;;OAKG;IACG,eAAe,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC;IAYtE;;OAEG;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;CAyBnB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,IAAI,YAAY,GAAG,IAAI,CAMxD"}
|
|
1
|
+
{"version":3,"file":"geminiClient.d.ts","sourceRoot":"","sources":["../../src/services/geminiClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,IAAI,IAAI,UAAU,EAAE,MAAM,eAAe,CAAA;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAS5D,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAA;CACf;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAa;gBAEf,OAAO,EAAE,mBAAmB;IAMxC;;;;;OAKG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAS3E;;;;OAIG;IACG,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBpE;;;;;;;;;;;;OAYG;IACG,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAS/D;;;;;OAKG;IACG,YAAY,CAChB,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC;IAwBlB;;;;OAIG;IACG,cAAc,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAU7D;;;;;OAKG;IACG,eAAe,CACnB,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,CAAC;IAOlB;;;;;OAKG;IACG,eAAe,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC;IAYtE;;OAEG;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;CAyBnB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,IAAI,YAAY,GAAG,IAAI,CAMxD"}
|
|
@@ -48,6 +48,28 @@ export class GeminiClient {
|
|
|
48
48
|
throw new Error('Video processing failed in Gemini API.');
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
|
+
/**
|
|
52
|
+
* Check whether a previously-uploaded file is still ACTIVE on Gemini's servers.
|
|
53
|
+
*
|
|
54
|
+
* Returns the `GeminiFile` object when the file exists and its state is
|
|
55
|
+
* `ACTIVE` (ready for re-use). Returns `null` when the file is not found,
|
|
56
|
+
* is in `FAILED` / `PROCESSING` state, or if the API call throws — so that
|
|
57
|
+
* the caller can safely fall back to a fresh upload without surfacing an error.
|
|
58
|
+
*
|
|
59
|
+
* Gemini files expire after 48 hours, so a cached `name` from a previous
|
|
60
|
+
* session may no longer be valid.
|
|
61
|
+
*
|
|
62
|
+
* @param name - The file name returned from a previous `uploadVideo()` call
|
|
63
|
+
*/
|
|
64
|
+
async checkFileActive(name) {
|
|
65
|
+
try {
|
|
66
|
+
const file = await this.client.files.get({ name });
|
|
67
|
+
return file.state === 'ACTIVE' ? file : null;
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
51
73
|
/**
|
|
52
74
|
* Analyze a video using the uploaded file object
|
|
53
75
|
* @param fileObject - The file object returned from uploadVideo()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geminiClient.js","sourceRoot":"","sources":["../../src/services/geminiClient.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"geminiClient.js","sourceRoot":"","sources":["../../src/services/geminiClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;AAaH,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;YAwCjB,qBAAqB;IAkBnC,OAAO,CAAC,sBAAsB;CAoB/B;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,SAAS,GAAG,IAAI,CAMlD"}
|
|
@@ -5,8 +5,12 @@
|
|
|
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
|
|
9
|
-
|
|
8
|
+
/** Client-side request timeout in ms. Default: 4 min.
|
|
9
|
+
* Override via GLM_REQUEST_TIMEOUT_MS env var (milliseconds). */
|
|
10
|
+
const GLM_REQUEST_TIMEOUT_MS = process.env.GLM_REQUEST_TIMEOUT_MS
|
|
11
|
+
? Number(process.env.GLM_REQUEST_TIMEOUT_MS)
|
|
12
|
+
: 4 * 60 * 1000;
|
|
13
|
+
const GLM_TIMEOUT_LABEL = `${Math.round(GLM_REQUEST_TIMEOUT_MS / 60000)} minutes`;
|
|
10
14
|
export class GLMClient {
|
|
11
15
|
apiKey;
|
|
12
16
|
baseURL;
|
|
@@ -156,7 +160,7 @@ export class GLMClient {
|
|
|
156
160
|
}
|
|
157
161
|
catch (err) {
|
|
158
162
|
if (err instanceof DOMException && err.name === 'TimeoutError') {
|
|
159
|
-
throw new Error(
|
|
163
|
+
throw new Error(`GLM API request timed out after ${GLM_TIMEOUT_LABEL}`, {
|
|
160
164
|
cause: err,
|
|
161
165
|
});
|
|
162
166
|
}
|
|
@@ -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;AAExC
|
|
1
|
+
{"version":3,"file":"glmClient.js","sourceRoot":"","sources":["../../src/services/glmClient.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;AAiBH,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;IAwC/B,OAAO,CAAC,sBAAsB;CAoB/B;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,UAAU,GAAG,IAAI,CAOpD"}
|
|
@@ -7,8 +7,12 @@ 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
|
|
11
|
-
|
|
10
|
+
/** Client-side request timeout in ms. Default: 4 min (just under DashScope's ~5 min server cap).
|
|
11
|
+
* Override via QWEN_REQUEST_TIMEOUT_MS env var (milliseconds). */
|
|
12
|
+
const QWEN_REQUEST_TIMEOUT_MS = process.env.QWEN_REQUEST_TIMEOUT_MS
|
|
13
|
+
? Number(process.env.QWEN_REQUEST_TIMEOUT_MS)
|
|
14
|
+
: 4 * 60 * 1000;
|
|
15
|
+
const QWEN_TIMEOUT_LABEL = `${Math.round(QWEN_REQUEST_TIMEOUT_MS / 60000)} minutes`;
|
|
12
16
|
export class QwenClient {
|
|
13
17
|
apiKey;
|
|
14
18
|
baseURL;
|
|
@@ -149,7 +153,7 @@ export class QwenClient {
|
|
|
149
153
|
}
|
|
150
154
|
catch (err) {
|
|
151
155
|
if (err instanceof DOMException && err.name === 'TimeoutError') {
|
|
152
|
-
throw new Error(
|
|
156
|
+
throw new Error(`Qwen API request timed out after ${QWEN_TIMEOUT_LABEL}`, {
|
|
153
157
|
cause: err,
|
|
154
158
|
});
|
|
155
159
|
}
|
|
@@ -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;AAE5B
|
|
1
|
+
{"version":3,"file":"qwenClient.js","sourceRoot":"","sources":["../../src/services/qwenClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,13 +5,15 @@
|
|
|
5
5
|
* presigned GET URL is returned so GLM/Qwen can fetch the video directly —
|
|
6
6
|
* bypassing the 10–12 MB base64 encode limit.
|
|
7
7
|
*
|
|
8
|
-
* Cleanup is
|
|
9
|
-
*
|
|
10
|
-
*
|
|
8
|
+
* Cleanup is enabled by default and runs at session end (process exit), not
|
|
9
|
+
* per-call. Set AWS_S3_RELAY_CLEANUP=false to keep objects in the bucket for
|
|
10
|
+
* reuse across sessions. All keys uploaded in the current process are tracked
|
|
11
|
+
* in a module-level Set and deleted together when the process exits.
|
|
11
12
|
*/
|
|
13
|
+
export declare const PRESIGNED_URL_EXPIRY_SECONDS = 3600;
|
|
12
14
|
/** Returns true when AWS_S3_BUCKET is configured. */
|
|
13
15
|
export declare function isS3RelayConfigured(): boolean;
|
|
14
|
-
/** Returns true
|
|
16
|
+
/** Returns true unless AWS_S3_RELAY_CLEANUP=false (cleanup is enabled by default). */
|
|
15
17
|
export declare function isS3RelayCleanupEnabled(): boolean;
|
|
16
18
|
/**
|
|
17
19
|
* Uploads a local video file to S3 and returns a presigned GET URL valid for
|
|
@@ -39,6 +41,17 @@ export declare function trackRelayKey(key: string): void;
|
|
|
39
41
|
* Errors from individual deletes are silently swallowed.
|
|
40
42
|
*/
|
|
41
43
|
export declare function flushRelayKeys(): Promise<void>;
|
|
44
|
+
/**
|
|
45
|
+
* Lists and deletes all objects under the `video-mcp-relay/` prefix in the
|
|
46
|
+
* configured S3 bucket. Intended to be called once at startup to clean up
|
|
47
|
+
* orphaned relay objects from previous sessions that could not flush on exit
|
|
48
|
+
* (e.g. SIGKILL, crash, Windows `process.on('exit')` async limitation).
|
|
49
|
+
*
|
|
50
|
+
* No-op when cleanup is disabled (`AWS_S3_RELAY_CLEANUP === 'false'`) or
|
|
51
|
+
* when no S3 bucket is configured. Errors are silently ignored — this is
|
|
52
|
+
* always called as fire-and-forget.
|
|
53
|
+
*/
|
|
54
|
+
export declare function sweepStaleRelayKeys(): Promise<number>;
|
|
42
55
|
/**
|
|
43
56
|
* Registers process exit handlers to call flushRelayKeys() at session end.
|
|
44
57
|
* Idempotent — safe to call multiple times (registers only once).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"s3Relay.d.ts","sourceRoot":"","sources":["../../src/services/s3Relay.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"s3Relay.d.ts","sourceRoot":"","sources":["../../src/services/s3Relay.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAgBH,eAAO,MAAM,4BAA4B,OAAO,CAAA;AA2BhD,qDAAqD;AACrD,wBAAgB,mBAAmB,IAAI,OAAO,CAE7C;AAED,sFAAsF;AACtF,wBAAgB,uBAAuB,IAAI,OAAO,CAEjD;AAED;;;;;;GAMG;AACH,wBAAsB,UAAU,CAC9B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAuBvC;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAI/D;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAI/C;AAED;;;GAGG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAKpD;AAED;;;;;;;;;GASG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC,CA+B3D;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAkB7C"}
|
package/dist/services/s3Relay.js
CHANGED
|
@@ -5,17 +5,18 @@
|
|
|
5
5
|
* presigned GET URL is returned so GLM/Qwen can fetch the video directly —
|
|
6
6
|
* bypassing the 10–12 MB base64 encode limit.
|
|
7
7
|
*
|
|
8
|
-
* Cleanup is
|
|
9
|
-
*
|
|
10
|
-
*
|
|
8
|
+
* Cleanup is enabled by default and runs at session end (process exit), not
|
|
9
|
+
* per-call. Set AWS_S3_RELAY_CLEANUP=false to keep objects in the bucket for
|
|
10
|
+
* reuse across sessions. All keys uploaded in the current process are tracked
|
|
11
|
+
* in a module-level Set and deleted together when the process exits.
|
|
11
12
|
*/
|
|
12
13
|
import * as fs from 'fs/promises';
|
|
13
14
|
import * as path from 'path';
|
|
14
15
|
import { randomUUID } from 'crypto';
|
|
15
|
-
import { S3Client, PutObjectCommand, DeleteObjectCommand, GetObjectCommand, } from '@aws-sdk/client-s3';
|
|
16
|
+
import { S3Client, PutObjectCommand, DeleteObjectCommand, GetObjectCommand, ListObjectsV2Command, } from '@aws-sdk/client-s3';
|
|
16
17
|
import { getSignedUrl } from '@aws-sdk/s3-request-presigner';
|
|
17
18
|
// ── Constants ────────────────────────────────────────────────────────────────
|
|
18
|
-
const PRESIGNED_URL_EXPIRY_SECONDS = 3600;
|
|
19
|
+
export const PRESIGNED_URL_EXPIRY_SECONDS = 3600;
|
|
19
20
|
const S3_KEY_PREFIX = 'video-mcp-relay';
|
|
20
21
|
// ── Module-level relay key tracking ─────────────────────────────────────────
|
|
21
22
|
const _trackedKeys = new Set();
|
|
@@ -38,9 +39,9 @@ function createS3Client() {
|
|
|
38
39
|
export function isS3RelayConfigured() {
|
|
39
40
|
return getS3Bucket().length > 0;
|
|
40
41
|
}
|
|
41
|
-
/** Returns true
|
|
42
|
+
/** Returns true unless AWS_S3_RELAY_CLEANUP=false (cleanup is enabled by default). */
|
|
42
43
|
export function isS3RelayCleanupEnabled() {
|
|
43
|
-
return process.env.AWS_S3_RELAY_CLEANUP
|
|
44
|
+
return process.env.AWS_S3_RELAY_CLEANUP !== 'false';
|
|
44
45
|
}
|
|
45
46
|
/**
|
|
46
47
|
* Uploads a local video file to S3 and returns a presigned GET URL valid for
|
|
@@ -92,6 +93,42 @@ export async function flushRelayKeys() {
|
|
|
92
93
|
_trackedKeys.clear();
|
|
93
94
|
await Promise.allSettled(keys.map(deleteS3Object));
|
|
94
95
|
}
|
|
96
|
+
/**
|
|
97
|
+
* Lists and deletes all objects under the `video-mcp-relay/` prefix in the
|
|
98
|
+
* configured S3 bucket. Intended to be called once at startup to clean up
|
|
99
|
+
* orphaned relay objects from previous sessions that could not flush on exit
|
|
100
|
+
* (e.g. SIGKILL, crash, Windows `process.on('exit')` async limitation).
|
|
101
|
+
*
|
|
102
|
+
* No-op when cleanup is disabled (`AWS_S3_RELAY_CLEANUP === 'false'`) or
|
|
103
|
+
* when no S3 bucket is configured. Errors are silently ignored — this is
|
|
104
|
+
* always called as fire-and-forget.
|
|
105
|
+
*/
|
|
106
|
+
export async function sweepStaleRelayKeys() {
|
|
107
|
+
if (!isS3RelayCleanupEnabled() || !isS3RelayConfigured())
|
|
108
|
+
return 0;
|
|
109
|
+
const bucket = getS3Bucket();
|
|
110
|
+
const client = createS3Client();
|
|
111
|
+
let deleted = 0;
|
|
112
|
+
let continuationToken;
|
|
113
|
+
do {
|
|
114
|
+
const resp = await client.send(new ListObjectsV2Command({
|
|
115
|
+
Bucket: bucket,
|
|
116
|
+
Prefix: S3_KEY_PREFIX + '/',
|
|
117
|
+
ContinuationToken: continuationToken,
|
|
118
|
+
}));
|
|
119
|
+
const keys = (resp.Contents ?? [])
|
|
120
|
+
.map((o) => o.Key)
|
|
121
|
+
.filter(Boolean);
|
|
122
|
+
if (keys.length > 0) {
|
|
123
|
+
await Promise.allSettled(keys.map((k) => deleteS3Object(k)));
|
|
124
|
+
deleted += keys.length;
|
|
125
|
+
}
|
|
126
|
+
continuationToken = resp.IsTruncated
|
|
127
|
+
? resp.NextContinuationToken
|
|
128
|
+
: undefined;
|
|
129
|
+
} while (continuationToken);
|
|
130
|
+
return deleted;
|
|
131
|
+
}
|
|
95
132
|
/**
|
|
96
133
|
* Registers process exit handlers to call flushRelayKeys() at session end.
|
|
97
134
|
* Idempotent — safe to call multiple times (registers only once).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"s3Relay.js","sourceRoot":"","sources":["../../src/services/s3Relay.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"s3Relay.js","sourceRoot":"","sources":["../../src/services/s3Relay.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyzeVideo.d.ts","sourceRoot":"","sources":["../../src/tools/analyzeVideo.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"analyzeVideo.d.ts","sourceRoot":"","sources":["../../src/tools/analyzeVideo.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAA;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAEjD,KAAK,kBAAkB,GAAG,OAAO,KAAK,EAAE,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAuDxE,eAAO,MAAM,gBAAgB,GAC3B,QAAQ,kBAAkB,KACzB,OAAO,CAAC,cAAc,CA0ExB,CAAA"}
|