@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.
Files changed (202) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +163 -0
  3. package/bin/server.js +5 -0
  4. package/dist/cjs/constants.d.cts +7 -0
  5. package/dist/cjs/constants.d.ts +7 -0
  6. package/dist/cjs/constants.js +18 -0
  7. package/dist/cjs/constants.js.map +1 -0
  8. package/dist/cjs/index.d.cts +8 -0
  9. package/dist/cjs/index.d.ts +8 -0
  10. package/dist/cjs/index.js +314 -0
  11. package/dist/cjs/index.js.map +1 -0
  12. package/dist/cjs/lib/create-store.d.cts +2 -0
  13. package/dist/cjs/lib/create-store.d.ts +2 -0
  14. package/dist/cjs/lib/create-store.js +166 -0
  15. package/dist/cjs/lib/create-store.js.map +1 -0
  16. package/dist/cjs/lib/query-builder.d.cts +45 -0
  17. package/dist/cjs/lib/query-builder.d.ts +45 -0
  18. package/dist/cjs/lib/query-builder.js +219 -0
  19. package/dist/cjs/lib/query-builder.js.map +1 -0
  20. package/dist/cjs/mcp/index.d.cts +3 -0
  21. package/dist/cjs/mcp/index.d.ts +3 -0
  22. package/dist/cjs/mcp/index.js +66 -0
  23. package/dist/cjs/mcp/index.js.map +1 -0
  24. package/dist/cjs/mcp/prompts/index.d.cts +2 -0
  25. package/dist/cjs/mcp/prompts/index.d.ts +2 -0
  26. package/dist/cjs/mcp/prompts/index.js +26 -0
  27. package/dist/cjs/mcp/prompts/index.js.map +1 -0
  28. package/dist/cjs/mcp/prompts/organize-files.d.cts +16 -0
  29. package/dist/cjs/mcp/prompts/organize-files.d.ts +16 -0
  30. package/dist/cjs/mcp/prompts/organize-files.js +169 -0
  31. package/dist/cjs/mcp/prompts/organize-files.js.map +1 -0
  32. package/dist/cjs/mcp/prompts/query-syntax.d.cts +19 -0
  33. package/dist/cjs/mcp/prompts/query-syntax.d.ts +19 -0
  34. package/dist/cjs/mcp/prompts/query-syntax.js +169 -0
  35. package/dist/cjs/mcp/prompts/query-syntax.js.map +1 -0
  36. package/dist/cjs/mcp/resources/file.d.cts +9 -0
  37. package/dist/cjs/mcp/resources/file.d.ts +9 -0
  38. package/dist/cjs/mcp/resources/file.js +247 -0
  39. package/dist/cjs/mcp/resources/file.js.map +1 -0
  40. package/dist/cjs/mcp/resources/index.d.cts +1 -0
  41. package/dist/cjs/mcp/resources/index.d.ts +1 -0
  42. package/dist/cjs/mcp/resources/index.js +17 -0
  43. package/dist/cjs/mcp/resources/index.js.map +1 -0
  44. package/dist/cjs/mcp/tools/file-move-to-trash.d.cts +59 -0
  45. package/dist/cjs/mcp/tools/file-move-to-trash.d.ts +59 -0
  46. package/dist/cjs/mcp/tools/file-move-to-trash.js +334 -0
  47. package/dist/cjs/mcp/tools/file-move-to-trash.js.map +1 -0
  48. package/dist/cjs/mcp/tools/file-move.d.cts +73 -0
  49. package/dist/cjs/mcp/tools/file-move.d.ts +73 -0
  50. package/dist/cjs/mcp/tools/file-move.js +613 -0
  51. package/dist/cjs/mcp/tools/file-move.js.map +1 -0
  52. package/dist/cjs/mcp/tools/files-search.d.cts +135 -0
  53. package/dist/cjs/mcp/tools/files-search.d.ts +135 -0
  54. package/dist/cjs/mcp/tools/files-search.js +558 -0
  55. package/dist/cjs/mcp/tools/files-search.js.map +1 -0
  56. package/dist/cjs/mcp/tools/folder-contents.d.cts +139 -0
  57. package/dist/cjs/mcp/tools/folder-contents.d.ts +139 -0
  58. package/dist/cjs/mcp/tools/folder-contents.js +513 -0
  59. package/dist/cjs/mcp/tools/folder-contents.js.map +1 -0
  60. package/dist/cjs/mcp/tools/folder-create.d.cts +59 -0
  61. package/dist/cjs/mcp/tools/folder-create.d.ts +59 -0
  62. package/dist/cjs/mcp/tools/folder-create.js +368 -0
  63. package/dist/cjs/mcp/tools/folder-create.js.map +1 -0
  64. package/dist/cjs/mcp/tools/folder-path.d.cts +49 -0
  65. package/dist/cjs/mcp/tools/folder-path.d.ts +49 -0
  66. package/dist/cjs/mcp/tools/folder-path.js +367 -0
  67. package/dist/cjs/mcp/tools/folder-path.js.map +1 -0
  68. package/dist/cjs/mcp/tools/folder-search.d.cts +139 -0
  69. package/dist/cjs/mcp/tools/folder-search.d.ts +139 -0
  70. package/dist/cjs/mcp/tools/folder-search.js +760 -0
  71. package/dist/cjs/mcp/tools/folder-search.js.map +1 -0
  72. package/dist/cjs/mcp/tools/index.d.cts +7 -0
  73. package/dist/cjs/mcp/tools/index.d.ts +7 -0
  74. package/dist/cjs/mcp/tools/index.js +46 -0
  75. package/dist/cjs/mcp/tools/index.js.map +1 -0
  76. package/dist/cjs/package.json +1 -0
  77. package/dist/cjs/schemas/drive-query-schema.d.cts +40 -0
  78. package/dist/cjs/schemas/drive-query-schema.d.ts +40 -0
  79. package/dist/cjs/schemas/drive-query-schema.js +90 -0
  80. package/dist/cjs/schemas/drive-query-schema.js.map +1 -0
  81. package/dist/cjs/schemas/drive-validation.d.cts +48 -0
  82. package/dist/cjs/schemas/drive-validation.d.ts +48 -0
  83. package/dist/cjs/schemas/drive-validation.js +96 -0
  84. package/dist/cjs/schemas/drive-validation.js.map +1 -0
  85. package/dist/cjs/schemas/index.d.cts +2 -0
  86. package/dist/cjs/schemas/index.d.ts +2 -0
  87. package/dist/cjs/schemas/index.js +20 -0
  88. package/dist/cjs/schemas/index.js.map +1 -0
  89. package/dist/cjs/setup/config.d.cts +44 -0
  90. package/dist/cjs/setup/config.d.ts +44 -0
  91. package/dist/cjs/setup/config.js +201 -0
  92. package/dist/cjs/setup/config.js.map +1 -0
  93. package/dist/cjs/setup/http.d.cts +8 -0
  94. package/dist/cjs/setup/http.d.ts +8 -0
  95. package/dist/cjs/setup/http.js +260 -0
  96. package/dist/cjs/setup/http.js.map +1 -0
  97. package/dist/cjs/setup/index.d.cts +5 -0
  98. package/dist/cjs/setup/index.d.ts +5 -0
  99. package/dist/cjs/setup/index.js +46 -0
  100. package/dist/cjs/setup/index.js.map +1 -0
  101. package/dist/cjs/setup/oauth-google.d.cts +64 -0
  102. package/dist/cjs/setup/oauth-google.d.ts +64 -0
  103. package/dist/cjs/setup/oauth-google.js +347 -0
  104. package/dist/cjs/setup/oauth-google.js.map +1 -0
  105. package/dist/cjs/setup/runtime.d.cts +10 -0
  106. package/dist/cjs/setup/runtime.d.ts +10 -0
  107. package/dist/cjs/setup/runtime.js +353 -0
  108. package/dist/cjs/setup/runtime.js.map +1 -0
  109. package/dist/cjs/setup/stdio.d.cts +7 -0
  110. package/dist/cjs/setup/stdio.d.ts +7 -0
  111. package/dist/cjs/setup/stdio.js +239 -0
  112. package/dist/cjs/setup/stdio.js.map +1 -0
  113. package/dist/cjs/types.d.cts +45 -0
  114. package/dist/cjs/types.d.ts +45 -0
  115. package/dist/cjs/types.js +5 -0
  116. package/dist/cjs/types.js.map +1 -0
  117. package/dist/esm/constants.d.ts +7 -0
  118. package/dist/esm/constants.js +7 -0
  119. package/dist/esm/constants.js.map +1 -0
  120. package/dist/esm/index.d.ts +8 -0
  121. package/dist/esm/index.js +34 -0
  122. package/dist/esm/index.js.map +1 -0
  123. package/dist/esm/lib/create-store.d.ts +2 -0
  124. package/dist/esm/lib/create-store.js +6 -0
  125. package/dist/esm/lib/create-store.js.map +1 -0
  126. package/dist/esm/lib/query-builder.d.ts +45 -0
  127. package/dist/esm/lib/query-builder.js +184 -0
  128. package/dist/esm/lib/query-builder.js.map +1 -0
  129. package/dist/esm/mcp/index.d.ts +3 -0
  130. package/dist/esm/mcp/index.js +6 -0
  131. package/dist/esm/mcp/index.js.map +1 -0
  132. package/dist/esm/mcp/prompts/index.d.ts +2 -0
  133. package/dist/esm/mcp/prompts/index.js +2 -0
  134. package/dist/esm/mcp/prompts/index.js.map +1 -0
  135. package/dist/esm/mcp/prompts/organize-files.d.ts +16 -0
  136. package/dist/esm/mcp/prompts/organize-files.js +21 -0
  137. package/dist/esm/mcp/prompts/organize-files.js.map +1 -0
  138. package/dist/esm/mcp/prompts/query-syntax.d.ts +19 -0
  139. package/dist/esm/mcp/prompts/query-syntax.js +82 -0
  140. package/dist/esm/mcp/prompts/query-syntax.js.map +1 -0
  141. package/dist/esm/mcp/resources/file.d.ts +9 -0
  142. package/dist/esm/mcp/resources/file.js +77 -0
  143. package/dist/esm/mcp/resources/file.js.map +1 -0
  144. package/dist/esm/mcp/resources/index.d.ts +1 -0
  145. package/dist/esm/mcp/resources/index.js +1 -0
  146. package/dist/esm/mcp/resources/index.js.map +1 -0
  147. package/dist/esm/mcp/tools/file-move-to-trash.d.ts +59 -0
  148. package/dist/esm/mcp/tools/file-move-to-trash.js +118 -0
  149. package/dist/esm/mcp/tools/file-move-to-trash.js.map +1 -0
  150. package/dist/esm/mcp/tools/file-move.d.ts +73 -0
  151. package/dist/esm/mcp/tools/file-move.js +274 -0
  152. package/dist/esm/mcp/tools/file-move.js.map +1 -0
  153. package/dist/esm/mcp/tools/files-search.d.ts +135 -0
  154. package/dist/esm/mcp/tools/files-search.js +254 -0
  155. package/dist/esm/mcp/tools/files-search.js.map +1 -0
  156. package/dist/esm/mcp/tools/folder-contents.d.ts +139 -0
  157. package/dist/esm/mcp/tools/folder-contents.js +214 -0
  158. package/dist/esm/mcp/tools/folder-contents.js.map +1 -0
  159. package/dist/esm/mcp/tools/folder-create.d.ts +59 -0
  160. package/dist/esm/mcp/tools/folder-create.js +140 -0
  161. package/dist/esm/mcp/tools/folder-create.js.map +1 -0
  162. package/dist/esm/mcp/tools/folder-path.d.ts +49 -0
  163. package/dist/esm/mcp/tools/folder-path.js +147 -0
  164. package/dist/esm/mcp/tools/folder-path.js.map +1 -0
  165. package/dist/esm/mcp/tools/folder-search.d.ts +139 -0
  166. package/dist/esm/mcp/tools/folder-search.js +343 -0
  167. package/dist/esm/mcp/tools/folder-search.js.map +1 -0
  168. package/dist/esm/mcp/tools/index.d.ts +7 -0
  169. package/dist/esm/mcp/tools/index.js +7 -0
  170. package/dist/esm/mcp/tools/index.js.map +1 -0
  171. package/dist/esm/package.json +1 -0
  172. package/dist/esm/schemas/drive-query-schema.d.ts +40 -0
  173. package/dist/esm/schemas/drive-query-schema.js +84 -0
  174. package/dist/esm/schemas/drive-query-schema.js.map +1 -0
  175. package/dist/esm/schemas/drive-validation.d.ts +48 -0
  176. package/dist/esm/schemas/drive-validation.js +73 -0
  177. package/dist/esm/schemas/drive-validation.js.map +1 -0
  178. package/dist/esm/schemas/index.d.ts +2 -0
  179. package/dist/esm/schemas/index.js +2 -0
  180. package/dist/esm/schemas/index.js.map +1 -0
  181. package/dist/esm/setup/config.d.ts +44 -0
  182. package/dist/esm/setup/config.js +151 -0
  183. package/dist/esm/setup/config.js.map +1 -0
  184. package/dist/esm/setup/http.d.ts +8 -0
  185. package/dist/esm/setup/http.js +54 -0
  186. package/dist/esm/setup/http.js.map +1 -0
  187. package/dist/esm/setup/index.d.ts +5 -0
  188. package/dist/esm/setup/index.js +5 -0
  189. package/dist/esm/setup/index.js.map +1 -0
  190. package/dist/esm/setup/oauth-google.d.ts +64 -0
  191. package/dist/esm/setup/oauth-google.js +168 -0
  192. package/dist/esm/setup/oauth-google.js.map +1 -0
  193. package/dist/esm/setup/runtime.d.ts +10 -0
  194. package/dist/esm/setup/runtime.js +84 -0
  195. package/dist/esm/setup/runtime.js.map +1 -0
  196. package/dist/esm/setup/stdio.d.ts +7 -0
  197. package/dist/esm/setup/stdio.js +38 -0
  198. package/dist/esm/setup/stdio.js.map +1 -0
  199. package/dist/esm/types.d.ts +45 -0
  200. package/dist/esm/types.js +1 -0
  201. package/dist/esm/types.js.map +1 -0
  202. 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 {};