@mcp-z/mcp-drive 1.0.0
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/LICENSE +21 -0
- package/README.md +163 -0
- package/bin/server.js +5 -0
- package/dist/cjs/constants.d.cts +7 -0
- package/dist/cjs/constants.d.ts +7 -0
- package/dist/cjs/constants.js +18 -0
- package/dist/cjs/constants.js.map +1 -0
- package/dist/cjs/index.d.cts +8 -0
- package/dist/cjs/index.d.ts +8 -0
- package/dist/cjs/index.js +314 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/lib/create-store.d.cts +2 -0
- package/dist/cjs/lib/create-store.d.ts +2 -0
- package/dist/cjs/lib/create-store.js +166 -0
- package/dist/cjs/lib/create-store.js.map +1 -0
- package/dist/cjs/lib/query-builder.d.cts +45 -0
- package/dist/cjs/lib/query-builder.d.ts +45 -0
- package/dist/cjs/lib/query-builder.js +219 -0
- package/dist/cjs/lib/query-builder.js.map +1 -0
- package/dist/cjs/mcp/index.d.cts +3 -0
- package/dist/cjs/mcp/index.d.ts +3 -0
- package/dist/cjs/mcp/index.js +66 -0
- package/dist/cjs/mcp/index.js.map +1 -0
- package/dist/cjs/mcp/prompts/index.d.cts +2 -0
- package/dist/cjs/mcp/prompts/index.d.ts +2 -0
- package/dist/cjs/mcp/prompts/index.js +26 -0
- package/dist/cjs/mcp/prompts/index.js.map +1 -0
- package/dist/cjs/mcp/prompts/organize-files.d.cts +16 -0
- package/dist/cjs/mcp/prompts/organize-files.d.ts +16 -0
- package/dist/cjs/mcp/prompts/organize-files.js +169 -0
- package/dist/cjs/mcp/prompts/organize-files.js.map +1 -0
- package/dist/cjs/mcp/prompts/query-syntax.d.cts +19 -0
- package/dist/cjs/mcp/prompts/query-syntax.d.ts +19 -0
- package/dist/cjs/mcp/prompts/query-syntax.js +169 -0
- package/dist/cjs/mcp/prompts/query-syntax.js.map +1 -0
- package/dist/cjs/mcp/resources/file.d.cts +9 -0
- package/dist/cjs/mcp/resources/file.d.ts +9 -0
- package/dist/cjs/mcp/resources/file.js +247 -0
- package/dist/cjs/mcp/resources/file.js.map +1 -0
- package/dist/cjs/mcp/resources/index.d.cts +1 -0
- package/dist/cjs/mcp/resources/index.d.ts +1 -0
- package/dist/cjs/mcp/resources/index.js +17 -0
- package/dist/cjs/mcp/resources/index.js.map +1 -0
- package/dist/cjs/mcp/tools/file-move-to-trash.d.cts +59 -0
- package/dist/cjs/mcp/tools/file-move-to-trash.d.ts +59 -0
- package/dist/cjs/mcp/tools/file-move-to-trash.js +334 -0
- package/dist/cjs/mcp/tools/file-move-to-trash.js.map +1 -0
- package/dist/cjs/mcp/tools/file-move.d.cts +73 -0
- package/dist/cjs/mcp/tools/file-move.d.ts +73 -0
- package/dist/cjs/mcp/tools/file-move.js +613 -0
- package/dist/cjs/mcp/tools/file-move.js.map +1 -0
- package/dist/cjs/mcp/tools/files-search.d.cts +135 -0
- package/dist/cjs/mcp/tools/files-search.d.ts +135 -0
- package/dist/cjs/mcp/tools/files-search.js +558 -0
- package/dist/cjs/mcp/tools/files-search.js.map +1 -0
- package/dist/cjs/mcp/tools/folder-contents.d.cts +139 -0
- package/dist/cjs/mcp/tools/folder-contents.d.ts +139 -0
- package/dist/cjs/mcp/tools/folder-contents.js +513 -0
- package/dist/cjs/mcp/tools/folder-contents.js.map +1 -0
- package/dist/cjs/mcp/tools/folder-create.d.cts +59 -0
- package/dist/cjs/mcp/tools/folder-create.d.ts +59 -0
- package/dist/cjs/mcp/tools/folder-create.js +368 -0
- package/dist/cjs/mcp/tools/folder-create.js.map +1 -0
- package/dist/cjs/mcp/tools/folder-path.d.cts +49 -0
- package/dist/cjs/mcp/tools/folder-path.d.ts +49 -0
- package/dist/cjs/mcp/tools/folder-path.js +367 -0
- package/dist/cjs/mcp/tools/folder-path.js.map +1 -0
- package/dist/cjs/mcp/tools/folder-search.d.cts +139 -0
- package/dist/cjs/mcp/tools/folder-search.d.ts +139 -0
- package/dist/cjs/mcp/tools/folder-search.js +760 -0
- package/dist/cjs/mcp/tools/folder-search.js.map +1 -0
- package/dist/cjs/mcp/tools/index.d.cts +7 -0
- package/dist/cjs/mcp/tools/index.d.ts +7 -0
- package/dist/cjs/mcp/tools/index.js +46 -0
- package/dist/cjs/mcp/tools/index.js.map +1 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/schemas/drive-query-schema.d.cts +40 -0
- package/dist/cjs/schemas/drive-query-schema.d.ts +40 -0
- package/dist/cjs/schemas/drive-query-schema.js +90 -0
- package/dist/cjs/schemas/drive-query-schema.js.map +1 -0
- package/dist/cjs/schemas/drive-validation.d.cts +48 -0
- package/dist/cjs/schemas/drive-validation.d.ts +48 -0
- package/dist/cjs/schemas/drive-validation.js +96 -0
- package/dist/cjs/schemas/drive-validation.js.map +1 -0
- package/dist/cjs/schemas/index.d.cts +2 -0
- package/dist/cjs/schemas/index.d.ts +2 -0
- package/dist/cjs/schemas/index.js +20 -0
- package/dist/cjs/schemas/index.js.map +1 -0
- package/dist/cjs/setup/config.d.cts +44 -0
- package/dist/cjs/setup/config.d.ts +44 -0
- package/dist/cjs/setup/config.js +201 -0
- package/dist/cjs/setup/config.js.map +1 -0
- package/dist/cjs/setup/http.d.cts +8 -0
- package/dist/cjs/setup/http.d.ts +8 -0
- package/dist/cjs/setup/http.js +260 -0
- package/dist/cjs/setup/http.js.map +1 -0
- package/dist/cjs/setup/index.d.cts +5 -0
- package/dist/cjs/setup/index.d.ts +5 -0
- package/dist/cjs/setup/index.js +46 -0
- package/dist/cjs/setup/index.js.map +1 -0
- package/dist/cjs/setup/oauth-google.d.cts +64 -0
- package/dist/cjs/setup/oauth-google.d.ts +64 -0
- package/dist/cjs/setup/oauth-google.js +347 -0
- package/dist/cjs/setup/oauth-google.js.map +1 -0
- package/dist/cjs/setup/runtime.d.cts +10 -0
- package/dist/cjs/setup/runtime.d.ts +10 -0
- package/dist/cjs/setup/runtime.js +353 -0
- package/dist/cjs/setup/runtime.js.map +1 -0
- package/dist/cjs/setup/stdio.d.cts +7 -0
- package/dist/cjs/setup/stdio.d.ts +7 -0
- package/dist/cjs/setup/stdio.js +239 -0
- package/dist/cjs/setup/stdio.js.map +1 -0
- package/dist/cjs/types.d.cts +45 -0
- package/dist/cjs/types.d.ts +45 -0
- package/dist/cjs/types.js +5 -0
- package/dist/cjs/types.js.map +1 -0
- package/dist/esm/constants.d.ts +7 -0
- package/dist/esm/constants.js +7 -0
- package/dist/esm/constants.js.map +1 -0
- package/dist/esm/index.d.ts +8 -0
- package/dist/esm/index.js +34 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/lib/create-store.d.ts +2 -0
- package/dist/esm/lib/create-store.js +6 -0
- package/dist/esm/lib/create-store.js.map +1 -0
- package/dist/esm/lib/query-builder.d.ts +45 -0
- package/dist/esm/lib/query-builder.js +184 -0
- package/dist/esm/lib/query-builder.js.map +1 -0
- package/dist/esm/mcp/index.d.ts +3 -0
- package/dist/esm/mcp/index.js +6 -0
- package/dist/esm/mcp/index.js.map +1 -0
- package/dist/esm/mcp/prompts/index.d.ts +2 -0
- package/dist/esm/mcp/prompts/index.js +2 -0
- package/dist/esm/mcp/prompts/index.js.map +1 -0
- package/dist/esm/mcp/prompts/organize-files.d.ts +16 -0
- package/dist/esm/mcp/prompts/organize-files.js +21 -0
- package/dist/esm/mcp/prompts/organize-files.js.map +1 -0
- package/dist/esm/mcp/prompts/query-syntax.d.ts +19 -0
- package/dist/esm/mcp/prompts/query-syntax.js +82 -0
- package/dist/esm/mcp/prompts/query-syntax.js.map +1 -0
- package/dist/esm/mcp/resources/file.d.ts +9 -0
- package/dist/esm/mcp/resources/file.js +77 -0
- package/dist/esm/mcp/resources/file.js.map +1 -0
- package/dist/esm/mcp/resources/index.d.ts +1 -0
- package/dist/esm/mcp/resources/index.js +1 -0
- package/dist/esm/mcp/resources/index.js.map +1 -0
- package/dist/esm/mcp/tools/file-move-to-trash.d.ts +59 -0
- package/dist/esm/mcp/tools/file-move-to-trash.js +118 -0
- package/dist/esm/mcp/tools/file-move-to-trash.js.map +1 -0
- package/dist/esm/mcp/tools/file-move.d.ts +73 -0
- package/dist/esm/mcp/tools/file-move.js +274 -0
- package/dist/esm/mcp/tools/file-move.js.map +1 -0
- package/dist/esm/mcp/tools/files-search.d.ts +135 -0
- package/dist/esm/mcp/tools/files-search.js +254 -0
- package/dist/esm/mcp/tools/files-search.js.map +1 -0
- package/dist/esm/mcp/tools/folder-contents.d.ts +139 -0
- package/dist/esm/mcp/tools/folder-contents.js +214 -0
- package/dist/esm/mcp/tools/folder-contents.js.map +1 -0
- package/dist/esm/mcp/tools/folder-create.d.ts +59 -0
- package/dist/esm/mcp/tools/folder-create.js +140 -0
- package/dist/esm/mcp/tools/folder-create.js.map +1 -0
- package/dist/esm/mcp/tools/folder-path.d.ts +49 -0
- package/dist/esm/mcp/tools/folder-path.js +147 -0
- package/dist/esm/mcp/tools/folder-path.js.map +1 -0
- package/dist/esm/mcp/tools/folder-search.d.ts +139 -0
- package/dist/esm/mcp/tools/folder-search.js +343 -0
- package/dist/esm/mcp/tools/folder-search.js.map +1 -0
- package/dist/esm/mcp/tools/index.d.ts +7 -0
- package/dist/esm/mcp/tools/index.js +7 -0
- package/dist/esm/mcp/tools/index.js.map +1 -0
- package/dist/esm/package.json +1 -0
- package/dist/esm/schemas/drive-query-schema.d.ts +40 -0
- package/dist/esm/schemas/drive-query-schema.js +84 -0
- package/dist/esm/schemas/drive-query-schema.js.map +1 -0
- package/dist/esm/schemas/drive-validation.d.ts +48 -0
- package/dist/esm/schemas/drive-validation.js +73 -0
- package/dist/esm/schemas/drive-validation.js.map +1 -0
- package/dist/esm/schemas/index.d.ts +2 -0
- package/dist/esm/schemas/index.js +2 -0
- package/dist/esm/schemas/index.js.map +1 -0
- package/dist/esm/setup/config.d.ts +44 -0
- package/dist/esm/setup/config.js +151 -0
- package/dist/esm/setup/config.js.map +1 -0
- package/dist/esm/setup/http.d.ts +8 -0
- package/dist/esm/setup/http.js +54 -0
- package/dist/esm/setup/http.js.map +1 -0
- package/dist/esm/setup/index.d.ts +5 -0
- package/dist/esm/setup/index.js +5 -0
- package/dist/esm/setup/index.js.map +1 -0
- package/dist/esm/setup/oauth-google.d.ts +64 -0
- package/dist/esm/setup/oauth-google.js +168 -0
- package/dist/esm/setup/oauth-google.js.map +1 -0
- package/dist/esm/setup/runtime.d.ts +10 -0
- package/dist/esm/setup/runtime.js +84 -0
- package/dist/esm/setup/runtime.js.map +1 -0
- package/dist/esm/setup/stdio.d.ts +7 -0
- package/dist/esm/setup/stdio.js +38 -0
- package/dist/esm/setup/stdio.js.map +1 -0
- package/dist/esm/types.d.ts +45 -0
- package/dist/esm/types.js +1 -0
- package/dist/esm/types.js.map +1 -0
- package/package.json +108 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "file", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return _file.default;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
var _file = /*#__PURE__*/ _interop_require_default(require("./file.js"));
|
|
12
|
+
function _interop_require_default(obj) {
|
|
13
|
+
return obj && obj.__esModule ? obj : {
|
|
14
|
+
default: obj
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
/* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/Projects/ai/mcp-z/servers/mcp-drive/src/mcp/resources/index.ts"],"sourcesContent":["export { default as file } from './file.js';\n"],"names":["file"],"mappings":";;;;+BAAoBA;;;eAAAA,aAAI;;;2DAAQ"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type { EnrichedExtra } from '@mcp-z/oauth-google';
|
|
2
|
+
import { type CallToolResult } from '@modelcontextprotocol/sdk/types.js';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
declare const inputSchema: z.ZodObject<{
|
|
5
|
+
ids: z.ZodArray<z.ZodString>;
|
|
6
|
+
}, z.core.$strip>;
|
|
7
|
+
declare const outputSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
8
|
+
type: z.ZodLiteral<"success">;
|
|
9
|
+
operationSummary: z.ZodString;
|
|
10
|
+
totalCount: z.ZodNumber;
|
|
11
|
+
successCount: z.ZodNumber;
|
|
12
|
+
failureCount: z.ZodNumber;
|
|
13
|
+
recoverable: z.ZodBoolean;
|
|
14
|
+
recoverableDays: z.ZodNumber;
|
|
15
|
+
failures: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
16
|
+
id: z.ZodString;
|
|
17
|
+
error: z.ZodString;
|
|
18
|
+
}, z.core.$strip>>>;
|
|
19
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
20
|
+
type: z.ZodLiteral<"auth_required">;
|
|
21
|
+
provider: z.ZodString;
|
|
22
|
+
message: z.ZodString;
|
|
23
|
+
url: z.ZodOptional<z.ZodString>;
|
|
24
|
+
}, z.core.$strip>], "type">;
|
|
25
|
+
export type Input = z.infer<typeof inputSchema>;
|
|
26
|
+
export type Output = z.infer<typeof outputSchema>;
|
|
27
|
+
declare function handler({ ids }: Input, extra: EnrichedExtra): Promise<CallToolResult>;
|
|
28
|
+
export default function createTool(): {
|
|
29
|
+
name: "file-move-to-trash";
|
|
30
|
+
config: {
|
|
31
|
+
readonly title: "Move Files to Trash";
|
|
32
|
+
readonly description: "Move files to trash (recoverable for 30 days).";
|
|
33
|
+
readonly inputSchema: z.ZodObject<{
|
|
34
|
+
ids: z.ZodArray<z.ZodString>;
|
|
35
|
+
}, z.core.$strip>;
|
|
36
|
+
readonly outputSchema: z.ZodObject<{
|
|
37
|
+
result: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
38
|
+
type: z.ZodLiteral<"success">;
|
|
39
|
+
operationSummary: z.ZodString;
|
|
40
|
+
totalCount: z.ZodNumber;
|
|
41
|
+
successCount: z.ZodNumber;
|
|
42
|
+
failureCount: z.ZodNumber;
|
|
43
|
+
recoverable: z.ZodBoolean;
|
|
44
|
+
recoverableDays: z.ZodNumber;
|
|
45
|
+
failures: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
46
|
+
id: z.ZodString;
|
|
47
|
+
error: z.ZodString;
|
|
48
|
+
}, z.core.$strip>>>;
|
|
49
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
50
|
+
type: z.ZodLiteral<"auth_required">;
|
|
51
|
+
provider: z.ZodString;
|
|
52
|
+
message: z.ZodString;
|
|
53
|
+
url: z.ZodOptional<z.ZodString>;
|
|
54
|
+
}, z.core.$strip>], "type">;
|
|
55
|
+
}, z.core.$strip>;
|
|
56
|
+
};
|
|
57
|
+
handler: typeof handler;
|
|
58
|
+
};
|
|
59
|
+
export {};
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type { EnrichedExtra } from '@mcp-z/oauth-google';
|
|
2
|
+
import { type CallToolResult } from '@modelcontextprotocol/sdk/types.js';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
declare const inputSchema: z.ZodObject<{
|
|
5
|
+
ids: z.ZodArray<z.ZodString>;
|
|
6
|
+
}, z.core.$strip>;
|
|
7
|
+
declare const outputSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
8
|
+
type: z.ZodLiteral<"success">;
|
|
9
|
+
operationSummary: z.ZodString;
|
|
10
|
+
totalCount: z.ZodNumber;
|
|
11
|
+
successCount: z.ZodNumber;
|
|
12
|
+
failureCount: z.ZodNumber;
|
|
13
|
+
recoverable: z.ZodBoolean;
|
|
14
|
+
recoverableDays: z.ZodNumber;
|
|
15
|
+
failures: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
16
|
+
id: z.ZodString;
|
|
17
|
+
error: z.ZodString;
|
|
18
|
+
}, z.core.$strip>>>;
|
|
19
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
20
|
+
type: z.ZodLiteral<"auth_required">;
|
|
21
|
+
provider: z.ZodString;
|
|
22
|
+
message: z.ZodString;
|
|
23
|
+
url: z.ZodOptional<z.ZodString>;
|
|
24
|
+
}, z.core.$strip>], "type">;
|
|
25
|
+
export type Input = z.infer<typeof inputSchema>;
|
|
26
|
+
export type Output = z.infer<typeof outputSchema>;
|
|
27
|
+
declare function handler({ ids }: Input, extra: EnrichedExtra): Promise<CallToolResult>;
|
|
28
|
+
export default function createTool(): {
|
|
29
|
+
name: "file-move-to-trash";
|
|
30
|
+
config: {
|
|
31
|
+
readonly title: "Move Files to Trash";
|
|
32
|
+
readonly description: "Move files to trash (recoverable for 30 days).";
|
|
33
|
+
readonly inputSchema: z.ZodObject<{
|
|
34
|
+
ids: z.ZodArray<z.ZodString>;
|
|
35
|
+
}, z.core.$strip>;
|
|
36
|
+
readonly outputSchema: z.ZodObject<{
|
|
37
|
+
result: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
38
|
+
type: z.ZodLiteral<"success">;
|
|
39
|
+
operationSummary: z.ZodString;
|
|
40
|
+
totalCount: z.ZodNumber;
|
|
41
|
+
successCount: z.ZodNumber;
|
|
42
|
+
failureCount: z.ZodNumber;
|
|
43
|
+
recoverable: z.ZodBoolean;
|
|
44
|
+
recoverableDays: z.ZodNumber;
|
|
45
|
+
failures: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
46
|
+
id: z.ZodString;
|
|
47
|
+
error: z.ZodString;
|
|
48
|
+
}, z.core.$strip>>>;
|
|
49
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
50
|
+
type: z.ZodLiteral<"auth_required">;
|
|
51
|
+
provider: z.ZodString;
|
|
52
|
+
message: z.ZodString;
|
|
53
|
+
url: z.ZodOptional<z.ZodString>;
|
|
54
|
+
}, z.core.$strip>], "type">;
|
|
55
|
+
}, z.core.$strip>;
|
|
56
|
+
};
|
|
57
|
+
handler: typeof handler;
|
|
58
|
+
};
|
|
59
|
+
export {};
|
|
@@ -0,0 +1,334 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "default", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return createTool;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
var _oauthgoogle = require("@mcp-z/oauth-google");
|
|
12
|
+
var _types = require("@modelcontextprotocol/sdk/types.js");
|
|
13
|
+
var _googleapis = require("googleapis");
|
|
14
|
+
var _zod = require("zod");
|
|
15
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
16
|
+
try {
|
|
17
|
+
var info = gen[key](arg);
|
|
18
|
+
var value = info.value;
|
|
19
|
+
} catch (error) {
|
|
20
|
+
reject(error);
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
if (info.done) {
|
|
24
|
+
resolve(value);
|
|
25
|
+
} else {
|
|
26
|
+
Promise.resolve(value).then(_next, _throw);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
function _async_to_generator(fn) {
|
|
30
|
+
return function() {
|
|
31
|
+
var self = this, args = arguments;
|
|
32
|
+
return new Promise(function(resolve, reject) {
|
|
33
|
+
var gen = fn.apply(self, args);
|
|
34
|
+
function _next(value) {
|
|
35
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
|
36
|
+
}
|
|
37
|
+
function _throw(err) {
|
|
38
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
|
39
|
+
}
|
|
40
|
+
_next(undefined);
|
|
41
|
+
});
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
function _define_property(obj, key, value) {
|
|
45
|
+
if (key in obj) {
|
|
46
|
+
Object.defineProperty(obj, key, {
|
|
47
|
+
value: value,
|
|
48
|
+
enumerable: true,
|
|
49
|
+
configurable: true,
|
|
50
|
+
writable: true
|
|
51
|
+
});
|
|
52
|
+
} else {
|
|
53
|
+
obj[key] = value;
|
|
54
|
+
}
|
|
55
|
+
return obj;
|
|
56
|
+
}
|
|
57
|
+
function _instanceof(left, right) {
|
|
58
|
+
if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
|
|
59
|
+
return !!right[Symbol.hasInstance](left);
|
|
60
|
+
} else {
|
|
61
|
+
return left instanceof right;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
function _object_spread(target) {
|
|
65
|
+
for(var i = 1; i < arguments.length; i++){
|
|
66
|
+
var source = arguments[i] != null ? arguments[i] : {};
|
|
67
|
+
var ownKeys = Object.keys(source);
|
|
68
|
+
if (typeof Object.getOwnPropertySymbols === "function") {
|
|
69
|
+
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
|
|
70
|
+
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
|
71
|
+
}));
|
|
72
|
+
}
|
|
73
|
+
ownKeys.forEach(function(key) {
|
|
74
|
+
_define_property(target, key, source[key]);
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
return target;
|
|
78
|
+
}
|
|
79
|
+
function _ts_generator(thisArg, body) {
|
|
80
|
+
var f, y, t, _ = {
|
|
81
|
+
label: 0,
|
|
82
|
+
sent: function() {
|
|
83
|
+
if (t[0] & 1) throw t[1];
|
|
84
|
+
return t[1];
|
|
85
|
+
},
|
|
86
|
+
trys: [],
|
|
87
|
+
ops: []
|
|
88
|
+
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype), d = Object.defineProperty;
|
|
89
|
+
return d(g, "next", {
|
|
90
|
+
value: verb(0)
|
|
91
|
+
}), d(g, "throw", {
|
|
92
|
+
value: verb(1)
|
|
93
|
+
}), d(g, "return", {
|
|
94
|
+
value: verb(2)
|
|
95
|
+
}), typeof Symbol === "function" && d(g, Symbol.iterator, {
|
|
96
|
+
value: function() {
|
|
97
|
+
return this;
|
|
98
|
+
}
|
|
99
|
+
}), g;
|
|
100
|
+
function verb(n) {
|
|
101
|
+
return function(v) {
|
|
102
|
+
return step([
|
|
103
|
+
n,
|
|
104
|
+
v
|
|
105
|
+
]);
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
function step(op) {
|
|
109
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
110
|
+
while(g && (g = 0, op[0] && (_ = 0)), _)try {
|
|
111
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
112
|
+
if (y = 0, t) op = [
|
|
113
|
+
op[0] & 2,
|
|
114
|
+
t.value
|
|
115
|
+
];
|
|
116
|
+
switch(op[0]){
|
|
117
|
+
case 0:
|
|
118
|
+
case 1:
|
|
119
|
+
t = op;
|
|
120
|
+
break;
|
|
121
|
+
case 4:
|
|
122
|
+
_.label++;
|
|
123
|
+
return {
|
|
124
|
+
value: op[1],
|
|
125
|
+
done: false
|
|
126
|
+
};
|
|
127
|
+
case 5:
|
|
128
|
+
_.label++;
|
|
129
|
+
y = op[1];
|
|
130
|
+
op = [
|
|
131
|
+
0
|
|
132
|
+
];
|
|
133
|
+
continue;
|
|
134
|
+
case 7:
|
|
135
|
+
op = _.ops.pop();
|
|
136
|
+
_.trys.pop();
|
|
137
|
+
continue;
|
|
138
|
+
default:
|
|
139
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
140
|
+
_ = 0;
|
|
141
|
+
continue;
|
|
142
|
+
}
|
|
143
|
+
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
144
|
+
_.label = op[1];
|
|
145
|
+
break;
|
|
146
|
+
}
|
|
147
|
+
if (op[0] === 6 && _.label < t[1]) {
|
|
148
|
+
_.label = t[1];
|
|
149
|
+
t = op;
|
|
150
|
+
break;
|
|
151
|
+
}
|
|
152
|
+
if (t && _.label < t[2]) {
|
|
153
|
+
_.label = t[2];
|
|
154
|
+
_.ops.push(op);
|
|
155
|
+
break;
|
|
156
|
+
}
|
|
157
|
+
if (t[2]) _.ops.pop();
|
|
158
|
+
_.trys.pop();
|
|
159
|
+
continue;
|
|
160
|
+
}
|
|
161
|
+
op = body.call(thisArg, _);
|
|
162
|
+
} catch (e) {
|
|
163
|
+
op = [
|
|
164
|
+
6,
|
|
165
|
+
e
|
|
166
|
+
];
|
|
167
|
+
y = 0;
|
|
168
|
+
} finally{
|
|
169
|
+
f = t = 0;
|
|
170
|
+
}
|
|
171
|
+
if (op[0] & 5) throw op[1];
|
|
172
|
+
return {
|
|
173
|
+
value: op[0] ? op[1] : void 0,
|
|
174
|
+
done: true
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
var AuthRequiredBranchSchema = _oauthgoogle.schemas.AuthRequiredBranchSchema;
|
|
179
|
+
var MAX_BATCH_SIZE = 1000;
|
|
180
|
+
var inputSchema = _zod.z.object({
|
|
181
|
+
ids: _zod.z.array(_zod.z.string().min(1)).min(1).max(MAX_BATCH_SIZE).describe('File IDs to soft delete (move to trash)')
|
|
182
|
+
});
|
|
183
|
+
// Success branch schema
|
|
184
|
+
var successBranchSchema = _zod.z.object({
|
|
185
|
+
type: _zod.z.literal('success'),
|
|
186
|
+
operationSummary: _zod.z.string().describe('Human-readable summary of the operation'),
|
|
187
|
+
totalCount: _zod.z.number().describe('Total number of files requested to trash'),
|
|
188
|
+
successCount: _zod.z.number().describe('Number of files successfully moved to trash'),
|
|
189
|
+
failureCount: _zod.z.number().describe('Number of files that failed to move'),
|
|
190
|
+
recoverable: _zod.z.boolean().describe('Whether trashed files can be restored'),
|
|
191
|
+
recoverableDays: _zod.z.number().describe('Days until permanent deletion'),
|
|
192
|
+
failures: _zod.z.array(_zod.z.object({
|
|
193
|
+
id: _zod.z.string().describe('ID of the file that failed'),
|
|
194
|
+
error: _zod.z.string().describe('Error message explaining the failure')
|
|
195
|
+
})).optional().describe('Details of any files that failed to trash')
|
|
196
|
+
});
|
|
197
|
+
// Output schema with auth_required support
|
|
198
|
+
var outputSchema = _zod.z.discriminatedUnion('type', [
|
|
199
|
+
successBranchSchema,
|
|
200
|
+
AuthRequiredBranchSchema
|
|
201
|
+
]);
|
|
202
|
+
var config = {
|
|
203
|
+
title: 'Move Files to Trash',
|
|
204
|
+
description: 'Move files to trash (recoverable for 30 days).',
|
|
205
|
+
inputSchema: inputSchema,
|
|
206
|
+
outputSchema: _zod.z.object({
|
|
207
|
+
result: outputSchema
|
|
208
|
+
})
|
|
209
|
+
};
|
|
210
|
+
function handler(_0, _1) {
|
|
211
|
+
return _async_to_generator(function(param, extra) {
|
|
212
|
+
var ids, logger, drive, results, failures, successCount, failureCount, totalCount, operationSummary, result, error, message;
|
|
213
|
+
return _ts_generator(this, function(_state) {
|
|
214
|
+
switch(_state.label){
|
|
215
|
+
case 0:
|
|
216
|
+
ids = param.ids;
|
|
217
|
+
logger = extra.logger;
|
|
218
|
+
logger.info('drive.file.moveToTrash called', {
|
|
219
|
+
count: ids.length
|
|
220
|
+
});
|
|
221
|
+
_state.label = 1;
|
|
222
|
+
case 1:
|
|
223
|
+
_state.trys.push([
|
|
224
|
+
1,
|
|
225
|
+
3,
|
|
226
|
+
,
|
|
227
|
+
4
|
|
228
|
+
]);
|
|
229
|
+
drive = _googleapis.google.drive({
|
|
230
|
+
version: 'v3',
|
|
231
|
+
auth: extra.authContext.auth
|
|
232
|
+
});
|
|
233
|
+
return [
|
|
234
|
+
4,
|
|
235
|
+
Promise.allSettled(ids.map(function(id) {
|
|
236
|
+
return _async_to_generator(function() {
|
|
237
|
+
return _ts_generator(this, function(_state) {
|
|
238
|
+
switch(_state.label){
|
|
239
|
+
case 0:
|
|
240
|
+
return [
|
|
241
|
+
4,
|
|
242
|
+
drive.files.update({
|
|
243
|
+
fileId: id,
|
|
244
|
+
requestBody: {
|
|
245
|
+
trashed: true
|
|
246
|
+
}
|
|
247
|
+
})
|
|
248
|
+
];
|
|
249
|
+
case 1:
|
|
250
|
+
_state.sent();
|
|
251
|
+
return [
|
|
252
|
+
2,
|
|
253
|
+
id
|
|
254
|
+
];
|
|
255
|
+
}
|
|
256
|
+
});
|
|
257
|
+
})();
|
|
258
|
+
}))
|
|
259
|
+
];
|
|
260
|
+
case 2:
|
|
261
|
+
results = _state.sent();
|
|
262
|
+
// Separate successes and failures
|
|
263
|
+
failures = [];
|
|
264
|
+
results.forEach(function(result, index) {
|
|
265
|
+
var id = ids[index];
|
|
266
|
+
if (!id) return;
|
|
267
|
+
if (result.status === 'rejected') {
|
|
268
|
+
var errorMessage = _instanceof(result.reason, Error) ? result.reason.message : String(result.reason);
|
|
269
|
+
failures.push({
|
|
270
|
+
id: id,
|
|
271
|
+
error: errorMessage
|
|
272
|
+
});
|
|
273
|
+
}
|
|
274
|
+
});
|
|
275
|
+
successCount = ids.length - failures.length;
|
|
276
|
+
failureCount = failures.length;
|
|
277
|
+
totalCount = ids.length;
|
|
278
|
+
logger.info('drive.file.moveToTrash completed', {
|
|
279
|
+
totalCount: totalCount,
|
|
280
|
+
successCount: successCount,
|
|
281
|
+
failureCount: failureCount
|
|
282
|
+
});
|
|
283
|
+
operationSummary = failureCount === 0 ? "Moved ".concat(successCount, " file").concat(successCount === 1 ? '' : 's', " to trash (recoverable for 30 days)") : "Moved ".concat(successCount, " of ").concat(totalCount, " file").concat(totalCount === 1 ? '' : 's', " to trash (").concat(failureCount, " failed, recoverable for 30 days)");
|
|
284
|
+
result = _object_spread({
|
|
285
|
+
type: 'success',
|
|
286
|
+
operationSummary: operationSummary,
|
|
287
|
+
totalCount: totalCount,
|
|
288
|
+
successCount: successCount,
|
|
289
|
+
failureCount: failureCount,
|
|
290
|
+
recoverable: true,
|
|
291
|
+
recoverableDays: 30
|
|
292
|
+
}, failures.length > 0 && {
|
|
293
|
+
failures: failures
|
|
294
|
+
});
|
|
295
|
+
return [
|
|
296
|
+
2,
|
|
297
|
+
{
|
|
298
|
+
content: [
|
|
299
|
+
{
|
|
300
|
+
type: 'text',
|
|
301
|
+
text: JSON.stringify(result)
|
|
302
|
+
}
|
|
303
|
+
],
|
|
304
|
+
structuredContent: {
|
|
305
|
+
result: result
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
];
|
|
309
|
+
case 3:
|
|
310
|
+
error = _state.sent();
|
|
311
|
+
message = _instanceof(error, Error) ? error.message : String(error);
|
|
312
|
+
logger.error('drive.file.moveToTrash error', {
|
|
313
|
+
error: message
|
|
314
|
+
});
|
|
315
|
+
// Throw McpError
|
|
316
|
+
throw new _types.McpError(_types.ErrorCode.InternalError, "Error moving files to trash: ".concat(message), {
|
|
317
|
+
stack: _instanceof(error, Error) ? error.stack : undefined
|
|
318
|
+
});
|
|
319
|
+
case 4:
|
|
320
|
+
return [
|
|
321
|
+
2
|
|
322
|
+
];
|
|
323
|
+
}
|
|
324
|
+
});
|
|
325
|
+
}).apply(this, arguments);
|
|
326
|
+
}
|
|
327
|
+
function createTool() {
|
|
328
|
+
return {
|
|
329
|
+
name: 'file-move-to-trash',
|
|
330
|
+
config: config,
|
|
331
|
+
handler: handler
|
|
332
|
+
};
|
|
333
|
+
}
|
|
334
|
+
/* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/Projects/ai/mcp-z/servers/mcp-drive/src/mcp/tools/file-move-to-trash.ts"],"sourcesContent":["import type { EnrichedExtra } from '@mcp-z/oauth-google';\nimport { schemas } from '@mcp-z/oauth-google';\n\nconst { AuthRequiredBranchSchema } = schemas;\n\nimport { type CallToolResult, ErrorCode, McpError } from '@modelcontextprotocol/sdk/types.js';\nimport { google } from 'googleapis';\nimport { z } from 'zod';\n\nconst MAX_BATCH_SIZE = 1000;\n\nconst inputSchema = z.object({\n ids: z.array(z.string().min(1)).min(1).max(MAX_BATCH_SIZE).describe('File IDs to soft delete (move to trash)'),\n});\n\n// Success branch schema\nconst successBranchSchema = z.object({\n type: z.literal('success'),\n operationSummary: z.string().describe('Human-readable summary of the operation'),\n totalCount: z.number().describe('Total number of files requested to trash'),\n successCount: z.number().describe('Number of files successfully moved to trash'),\n failureCount: z.number().describe('Number of files that failed to move'),\n recoverable: z.boolean().describe('Whether trashed files can be restored'),\n recoverableDays: z.number().describe('Days until permanent deletion'),\n failures: z\n .array(\n z.object({\n id: z.string().describe('ID of the file that failed'),\n error: z.string().describe('Error message explaining the failure'),\n })\n )\n .optional()\n .describe('Details of any files that failed to trash'),\n});\n\n// Output schema with auth_required support\nconst outputSchema = z.discriminatedUnion('type', [successBranchSchema, AuthRequiredBranchSchema]);\n\nconst config = {\n title: 'Move Files to Trash',\n description: 'Move files to trash (recoverable for 30 days).',\n inputSchema: inputSchema,\n outputSchema: z.object({\n result: outputSchema,\n }),\n} as const;\n\nexport type Input = z.infer<typeof inputSchema>;\nexport type Output = z.infer<typeof outputSchema>;\n\nasync function handler({ ids }: Input, extra: EnrichedExtra): Promise<CallToolResult> {\n const logger = extra.logger;\n logger.info('drive.file.moveToTrash called', { count: ids.length });\n\n try {\n const drive = google.drive({ version: 'v3', auth: extra.authContext.auth });\n\n const results = await Promise.allSettled(\n ids.map(async (id) => {\n await drive.files.update({\n fileId: id,\n requestBody: { trashed: true },\n });\n return id;\n })\n );\n\n // Separate successes and failures\n const failures: Array<{ id: string; error: string }> = [];\n\n results.forEach((result, index) => {\n const id = ids[index];\n if (!id) return;\n\n if (result.status === 'rejected') {\n const errorMessage = result.reason instanceof Error ? result.reason.message : String(result.reason);\n failures.push({ id, error: errorMessage });\n }\n });\n\n const successCount = ids.length - failures.length;\n const failureCount = failures.length;\n const totalCount = ids.length;\n\n logger.info('drive.file.moveToTrash completed', {\n totalCount,\n successCount,\n failureCount,\n });\n\n const operationSummary = failureCount === 0 ? `Moved ${successCount} file${successCount === 1 ? '' : 's'} to trash (recoverable for 30 days)` : `Moved ${successCount} of ${totalCount} file${totalCount === 1 ? '' : 's'} to trash (${failureCount} failed, recoverable for 30 days)`;\n\n const result: Output = {\n type: 'success' as const,\n operationSummary,\n totalCount,\n successCount,\n failureCount,\n recoverable: true,\n recoverableDays: 30,\n ...(failures.length > 0 && { failures }),\n };\n\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify(result),\n },\n ],\n structuredContent: { result },\n };\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n logger.error('drive.file.moveToTrash error', { error: message });\n\n // Throw McpError\n throw new McpError(ErrorCode.InternalError, `Error moving files to trash: ${message}`, {\n stack: error instanceof Error ? error.stack : undefined,\n });\n }\n}\n\nexport default function createTool() {\n return {\n name: 'file-move-to-trash' as const,\n config,\n handler,\n };\n}\n"],"names":["createTool","AuthRequiredBranchSchema","schemas","MAX_BATCH_SIZE","inputSchema","z","object","ids","array","string","min","max","describe","successBranchSchema","type","literal","operationSummary","totalCount","number","successCount","failureCount","recoverable","boolean","recoverableDays","failures","id","error","optional","outputSchema","discriminatedUnion","config","title","description","result","handler","extra","logger","drive","results","message","info","count","length","google","version","auth","authContext","Promise","allSettled","map","files","update","fileId","requestBody","trashed","forEach","index","status","errorMessage","reason","Error","String","push","content","text","JSON","stringify","structuredContent","McpError","ErrorCode","InternalError","stack","undefined","name"],"mappings":"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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import type { EnrichedExtra } from '@mcp-z/oauth-google';
|
|
2
|
+
import { type CallToolResult } from '@modelcontextprotocol/sdk/types.js';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
declare const inputSchema: z.ZodObject<{
|
|
5
|
+
fileIds: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
|
|
6
|
+
destinationFolderId: z.ZodString;
|
|
7
|
+
returnOldParents: z.ZodOptional<z.ZodBoolean>;
|
|
8
|
+
}, z.core.$strip>;
|
|
9
|
+
declare const outputSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
10
|
+
type: z.ZodLiteral<"success">;
|
|
11
|
+
moved: z.ZodArray<z.ZodObject<{
|
|
12
|
+
fileId: z.ZodString;
|
|
13
|
+
fileName: z.ZodString;
|
|
14
|
+
oldParents: z.ZodArray<z.ZodString>;
|
|
15
|
+
newParent: z.ZodString;
|
|
16
|
+
webViewLink: z.ZodOptional<z.ZodString>;
|
|
17
|
+
}, z.core.$strip>>;
|
|
18
|
+
failed: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
19
|
+
fileId: z.ZodString;
|
|
20
|
+
error: z.ZodString;
|
|
21
|
+
code: z.ZodOptional<z.ZodString>;
|
|
22
|
+
}, z.core.$strip>>>;
|
|
23
|
+
totalRequested: z.ZodNumber;
|
|
24
|
+
totalMoved: z.ZodNumber;
|
|
25
|
+
totalFailed: z.ZodNumber;
|
|
26
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
27
|
+
type: z.ZodLiteral<"auth_required">;
|
|
28
|
+
provider: z.ZodString;
|
|
29
|
+
message: z.ZodString;
|
|
30
|
+
url: z.ZodOptional<z.ZodString>;
|
|
31
|
+
}, z.core.$strip>], "type">;
|
|
32
|
+
export type Input = z.infer<typeof inputSchema>;
|
|
33
|
+
export type Output = z.infer<typeof outputSchema>;
|
|
34
|
+
declare function handler({ fileIds, destinationFolderId, returnOldParents }: Input, extra: EnrichedExtra): Promise<CallToolResult>;
|
|
35
|
+
export default function createTool(): {
|
|
36
|
+
name: "file-move";
|
|
37
|
+
config: {
|
|
38
|
+
readonly title: "Move Files";
|
|
39
|
+
readonly description: "Move files/folders to destination folder. Returns oldParents for undo. Use \"root\" for My Drive root.";
|
|
40
|
+
readonly inputSchema: z.ZodObject<{
|
|
41
|
+
fileIds: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
|
|
42
|
+
destinationFolderId: z.ZodString;
|
|
43
|
+
returnOldParents: z.ZodOptional<z.ZodBoolean>;
|
|
44
|
+
}, z.core.$strip>;
|
|
45
|
+
readonly outputSchema: z.ZodObject<{
|
|
46
|
+
result: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
47
|
+
type: z.ZodLiteral<"success">;
|
|
48
|
+
moved: z.ZodArray<z.ZodObject<{
|
|
49
|
+
fileId: z.ZodString;
|
|
50
|
+
fileName: z.ZodString;
|
|
51
|
+
oldParents: z.ZodArray<z.ZodString>;
|
|
52
|
+
newParent: z.ZodString;
|
|
53
|
+
webViewLink: z.ZodOptional<z.ZodString>;
|
|
54
|
+
}, z.core.$strip>>;
|
|
55
|
+
failed: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
56
|
+
fileId: z.ZodString;
|
|
57
|
+
error: z.ZodString;
|
|
58
|
+
code: z.ZodOptional<z.ZodString>;
|
|
59
|
+
}, z.core.$strip>>>;
|
|
60
|
+
totalRequested: z.ZodNumber;
|
|
61
|
+
totalMoved: z.ZodNumber;
|
|
62
|
+
totalFailed: z.ZodNumber;
|
|
63
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
64
|
+
type: z.ZodLiteral<"auth_required">;
|
|
65
|
+
provider: z.ZodString;
|
|
66
|
+
message: z.ZodString;
|
|
67
|
+
url: z.ZodOptional<z.ZodString>;
|
|
68
|
+
}, z.core.$strip>], "type">;
|
|
69
|
+
}, z.core.$strip>;
|
|
70
|
+
};
|
|
71
|
+
handler: typeof handler;
|
|
72
|
+
};
|
|
73
|
+
export {};
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import type { EnrichedExtra } from '@mcp-z/oauth-google';
|
|
2
|
+
import { type CallToolResult } from '@modelcontextprotocol/sdk/types.js';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
declare const inputSchema: z.ZodObject<{
|
|
5
|
+
fileIds: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
|
|
6
|
+
destinationFolderId: z.ZodString;
|
|
7
|
+
returnOldParents: z.ZodOptional<z.ZodBoolean>;
|
|
8
|
+
}, z.core.$strip>;
|
|
9
|
+
declare const outputSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
10
|
+
type: z.ZodLiteral<"success">;
|
|
11
|
+
moved: z.ZodArray<z.ZodObject<{
|
|
12
|
+
fileId: z.ZodString;
|
|
13
|
+
fileName: z.ZodString;
|
|
14
|
+
oldParents: z.ZodArray<z.ZodString>;
|
|
15
|
+
newParent: z.ZodString;
|
|
16
|
+
webViewLink: z.ZodOptional<z.ZodString>;
|
|
17
|
+
}, z.core.$strip>>;
|
|
18
|
+
failed: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
19
|
+
fileId: z.ZodString;
|
|
20
|
+
error: z.ZodString;
|
|
21
|
+
code: z.ZodOptional<z.ZodString>;
|
|
22
|
+
}, z.core.$strip>>>;
|
|
23
|
+
totalRequested: z.ZodNumber;
|
|
24
|
+
totalMoved: z.ZodNumber;
|
|
25
|
+
totalFailed: z.ZodNumber;
|
|
26
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
27
|
+
type: z.ZodLiteral<"auth_required">;
|
|
28
|
+
provider: z.ZodString;
|
|
29
|
+
message: z.ZodString;
|
|
30
|
+
url: z.ZodOptional<z.ZodString>;
|
|
31
|
+
}, z.core.$strip>], "type">;
|
|
32
|
+
export type Input = z.infer<typeof inputSchema>;
|
|
33
|
+
export type Output = z.infer<typeof outputSchema>;
|
|
34
|
+
declare function handler({ fileIds, destinationFolderId, returnOldParents }: Input, extra: EnrichedExtra): Promise<CallToolResult>;
|
|
35
|
+
export default function createTool(): {
|
|
36
|
+
name: "file-move";
|
|
37
|
+
config: {
|
|
38
|
+
readonly title: "Move Files";
|
|
39
|
+
readonly description: "Move files/folders to destination folder. Returns oldParents for undo. Use \"root\" for My Drive root.";
|
|
40
|
+
readonly inputSchema: z.ZodObject<{
|
|
41
|
+
fileIds: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
|
|
42
|
+
destinationFolderId: z.ZodString;
|
|
43
|
+
returnOldParents: z.ZodOptional<z.ZodBoolean>;
|
|
44
|
+
}, z.core.$strip>;
|
|
45
|
+
readonly outputSchema: z.ZodObject<{
|
|
46
|
+
result: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
47
|
+
type: z.ZodLiteral<"success">;
|
|
48
|
+
moved: z.ZodArray<z.ZodObject<{
|
|
49
|
+
fileId: z.ZodString;
|
|
50
|
+
fileName: z.ZodString;
|
|
51
|
+
oldParents: z.ZodArray<z.ZodString>;
|
|
52
|
+
newParent: z.ZodString;
|
|
53
|
+
webViewLink: z.ZodOptional<z.ZodString>;
|
|
54
|
+
}, z.core.$strip>>;
|
|
55
|
+
failed: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
56
|
+
fileId: z.ZodString;
|
|
57
|
+
error: z.ZodString;
|
|
58
|
+
code: z.ZodOptional<z.ZodString>;
|
|
59
|
+
}, z.core.$strip>>>;
|
|
60
|
+
totalRequested: z.ZodNumber;
|
|
61
|
+
totalMoved: z.ZodNumber;
|
|
62
|
+
totalFailed: z.ZodNumber;
|
|
63
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
64
|
+
type: z.ZodLiteral<"auth_required">;
|
|
65
|
+
provider: z.ZodString;
|
|
66
|
+
message: z.ZodString;
|
|
67
|
+
url: z.ZodOptional<z.ZodString>;
|
|
68
|
+
}, z.core.$strip>], "type">;
|
|
69
|
+
}, z.core.$strip>;
|
|
70
|
+
};
|
|
71
|
+
handler: typeof handler;
|
|
72
|
+
};
|
|
73
|
+
export {};
|