video-context-mcp-server 0.29.1-beta → 0.29.2-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/dist/generated/version.d.ts +1 -1
- package/dist/generated/version.js +1 -1
- package/dist/services/geminiClient.d.ts +1 -0
- package/dist/services/geminiClient.d.ts.map +1 -1
- package/dist/services/geminiClient.js +8 -0
- package/dist/services/geminiClient.js.map +1 -1
- package/dist/utils/updateCheck.d.ts +3 -3
- package/dist/utils/updateCheck.js +3 -3
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const VERSION = "0.29.
|
|
1
|
+
export declare const VERSION = "0.29.2-beta";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
|
@@ -15,6 +15,7 @@ export declare class GeminiClient {
|
|
|
15
15
|
/**
|
|
16
16
|
* Wait for a file to finish processing
|
|
17
17
|
* @param name - The file name returned from uploadVideo()
|
|
18
|
+
* @throws Error if the file fails to process or if polling exceeds the timeout
|
|
18
19
|
*/
|
|
19
20
|
waitForFileProcessing(name: string | undefined): Promise<void>;
|
|
20
21
|
/**
|
|
@@ -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;AASpE,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
|
|
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;AASpE,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,MAAM,CAAC;IAO9D;;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"}
|
|
@@ -27,14 +27,22 @@ export class GeminiClient {
|
|
|
27
27
|
/**
|
|
28
28
|
* Wait for a file to finish processing
|
|
29
29
|
* @param name - The file name returned from uploadVideo()
|
|
30
|
+
* @throws Error if the file fails to process or if polling exceeds the timeout
|
|
30
31
|
*/
|
|
31
32
|
async waitForFileProcessing(name) {
|
|
32
33
|
if (!name)
|
|
33
34
|
throw new Error('File upload did not return a name.');
|
|
35
|
+
const MAX_POLL_ATTEMPTS = 300; // 300 × 2 s = 10 minutes
|
|
34
36
|
let file = await this.client.files.get({ name });
|
|
37
|
+
let attempts = 0;
|
|
35
38
|
while (file.state === 'PROCESSING') {
|
|
39
|
+
if (attempts >= MAX_POLL_ATTEMPTS) {
|
|
40
|
+
throw new Error(`Gemini file processing timed out after ${MAX_POLL_ATTEMPTS * 2} seconds. ` +
|
|
41
|
+
'The file may still be processing. Please try again later.');
|
|
42
|
+
}
|
|
36
43
|
await new Promise((resolve) => setTimeout(resolve, 2000));
|
|
37
44
|
file = await this.client.files.get({ name });
|
|
45
|
+
attempts++;
|
|
38
46
|
}
|
|
39
47
|
if (file.state === 'FAILED') {
|
|
40
48
|
throw new Error('Video processing failed in Gemini API.');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geminiClient.js","sourceRoot":"","sources":["../../src/services/geminiClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAA2B,MAAM,eAAe,CAAA;AAEpE;;;GAGG;AAEH,MAAM,YAAY,GAAG,wBAAwB,CAAA;AAM7C,MAAM,OAAO,YAAY;IACf,MAAM,CAAa;IAE3B,YAAY,OAA4B;QACtC,IAAI,CAAC,MAAM,GAAG,IAAI,WAAW,CAAC;YAC5B,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAA;IACJ,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,WAAW,CAAC,QAAgB,EAAE,QAAiB;QACnD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;YAChD,IAAI,EAAE,QAAQ;YACd,GAAG,CAAC,QAAQ,IAAI,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC;SAC1C,CAAC,CAAA;QAEF,OAAO,UAAU,CAAA;IACnB,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"geminiClient.js","sourceRoot":"","sources":["../../src/services/geminiClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* On the first tool call, spawns `npm outdated -g video-context-mcp-server --json`
|
|
5
5
|
* as a fire-and-forget background process. If an update is available, stores a
|
|
6
|
-
* one-line notice that is
|
|
6
|
+
* one-line notice that is appended to the next tool call response (single-shot).
|
|
7
7
|
*
|
|
8
8
|
* When running via npx, the package is not globally installed, so
|
|
9
9
|
* `npm outdated -g` returns `{}` — no special npx detection is needed.
|
|
@@ -35,8 +35,8 @@ export declare function waitForUpdateCheck(timeoutMs?: number): Promise<void>;
|
|
|
35
35
|
*/
|
|
36
36
|
export declare function getUpdateNotice(): string | null;
|
|
37
37
|
/**
|
|
38
|
-
* If an update notice is stored,
|
|
39
|
-
*
|
|
38
|
+
* If an update notice is stored, append it to the tool result's content
|
|
39
|
+
* and clear the stored notice (single-shot — appears only once per session).
|
|
40
40
|
* Returns the result unchanged when no notice is available.
|
|
41
41
|
*
|
|
42
42
|
* The notice is appended to the **last** text content item so that the LLM
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* On the first tool call, spawns `npm outdated -g video-context-mcp-server --json`
|
|
5
5
|
* as a fire-and-forget background process. If an update is available, stores a
|
|
6
|
-
* one-line notice that is
|
|
6
|
+
* one-line notice that is appended to the next tool call response (single-shot).
|
|
7
7
|
*
|
|
8
8
|
* When running via npx, the package is not globally installed, so
|
|
9
9
|
* `npm outdated -g` returns `{}` — no special npx detection is needed.
|
|
@@ -83,8 +83,8 @@ export function getUpdateNotice() {
|
|
|
83
83
|
return _updateNotice;
|
|
84
84
|
}
|
|
85
85
|
/**
|
|
86
|
-
* If an update notice is stored,
|
|
87
|
-
*
|
|
86
|
+
* If an update notice is stored, append it to the tool result's content
|
|
87
|
+
* and clear the stored notice (single-shot — appears only once per session).
|
|
88
88
|
* Returns the result unchanged when no notice is available.
|
|
89
89
|
*
|
|
90
90
|
* The notice is appended to the **last** text content item so that the LLM
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "video-context-mcp-server",
|
|
3
|
-
"version": "0.29.
|
|
3
|
+
"version": "0.29.2-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",
|