motionmcp 2.4.0 → 2.6.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 (113) hide show
  1. package/README.md +5 -7
  2. package/dist/constants.d.ts +2 -0
  3. package/dist/constants.d.ts.map +1 -0
  4. package/dist/constants.js +21 -0
  5. package/dist/constants.js.map +1 -0
  6. package/dist/handlers/CommentHandler.d.ts.map +1 -1
  7. package/dist/handlers/CommentHandler.js +4 -3
  8. package/dist/handlers/CommentHandler.js.map +1 -1
  9. package/dist/handlers/CustomFieldHandler.d.ts.map +1 -1
  10. package/dist/handlers/CustomFieldHandler.js +44 -21
  11. package/dist/handlers/CustomFieldHandler.js.map +1 -1
  12. package/dist/handlers/ProjectHandler.d.ts.map +1 -1
  13. package/dist/handlers/ProjectHandler.js +2 -1
  14. package/dist/handlers/ProjectHandler.js.map +1 -1
  15. package/dist/handlers/RecurringTaskHandler.d.ts.map +1 -1
  16. package/dist/handlers/RecurringTaskHandler.js +16 -10
  17. package/dist/handlers/RecurringTaskHandler.js.map +1 -1
  18. package/dist/handlers/ScheduleHandler.d.ts +1 -1
  19. package/dist/handlers/ScheduleHandler.d.ts.map +1 -1
  20. package/dist/handlers/ScheduleHandler.js +4 -26
  21. package/dist/handlers/ScheduleHandler.js.map +1 -1
  22. package/dist/handlers/SearchHandler.d.ts +1 -2
  23. package/dist/handlers/SearchHandler.d.ts.map +1 -1
  24. package/dist/handlers/SearchHandler.js +24 -70
  25. package/dist/handlers/SearchHandler.js.map +1 -1
  26. package/dist/handlers/TaskHandler.d.ts +11 -5
  27. package/dist/handlers/TaskHandler.d.ts.map +1 -1
  28. package/dist/handlers/TaskHandler.js +101 -63
  29. package/dist/handlers/TaskHandler.js.map +1 -1
  30. package/dist/handlers/UserHandler.js +6 -6
  31. package/dist/handlers/UserHandler.js.map +1 -1
  32. package/dist/handlers/WorkspaceHandler.d.ts +0 -1
  33. package/dist/handlers/WorkspaceHandler.d.ts.map +1 -1
  34. package/dist/handlers/WorkspaceHandler.js +0 -9
  35. package/dist/handlers/WorkspaceHandler.js.map +1 -1
  36. package/dist/handlers/base/BaseHandler.d.ts +4 -5
  37. package/dist/handlers/base/BaseHandler.d.ts.map +1 -1
  38. package/dist/handlers/base/BaseHandler.js +0 -12
  39. package/dist/handlers/base/BaseHandler.js.map +1 -1
  40. package/dist/handlers/base/HandlerInterface.d.ts +0 -5
  41. package/dist/handlers/base/HandlerInterface.d.ts.map +1 -1
  42. package/dist/handlers/index.d.ts +1 -1
  43. package/dist/handlers/index.d.ts.map +1 -1
  44. package/dist/mcp-server.d.ts.map +1 -1
  45. package/dist/mcp-server.js +4 -2
  46. package/dist/mcp-server.js.map +1 -1
  47. package/dist/schemas/motion.d.ts +12 -255
  48. package/dist/schemas/motion.d.ts.map +1 -1
  49. package/dist/schemas/motion.js +4 -17
  50. package/dist/schemas/motion.js.map +1 -1
  51. package/dist/services/motionApi.d.ts +38 -26
  52. package/dist/services/motionApi.d.ts.map +1 -1
  53. package/dist/services/motionApi.js +381 -227
  54. package/dist/services/motionApi.js.map +1 -1
  55. package/dist/tools/ToolConfigurator.js +4 -4
  56. package/dist/tools/ToolConfigurator.js.map +1 -1
  57. package/dist/tools/ToolDefinitions.d.ts.map +1 -1
  58. package/dist/tools/ToolDefinitions.js +60 -82
  59. package/dist/tools/ToolDefinitions.js.map +1 -1
  60. package/dist/types/mcp-tool-args.d.ts +46 -61
  61. package/dist/types/mcp-tool-args.d.ts.map +1 -1
  62. package/dist/types/mcp-tool-args.js +2 -4
  63. package/dist/types/mcp-tool-args.js.map +1 -1
  64. package/dist/types/mcp.d.ts +5 -1
  65. package/dist/types/mcp.d.ts.map +1 -1
  66. package/dist/types/motion.d.ts +40 -13
  67. package/dist/types/motion.d.ts.map +1 -1
  68. package/dist/utils/constants.d.ts +0 -11
  69. package/dist/utils/constants.d.ts.map +1 -1
  70. package/dist/utils/constants.js +6 -52
  71. package/dist/utils/constants.js.map +1 -1
  72. package/dist/utils/frequencyTransform.d.ts +0 -5
  73. package/dist/utils/frequencyTransform.d.ts.map +1 -1
  74. package/dist/utils/frequencyTransform.js +1 -9
  75. package/dist/utils/frequencyTransform.js.map +1 -1
  76. package/dist/utils/pagination.d.ts +61 -0
  77. package/dist/utils/pagination.d.ts.map +1 -0
  78. package/dist/utils/pagination.js +168 -0
  79. package/dist/utils/pagination.js.map +1 -0
  80. package/dist/utils/paginationNew.d.ts +0 -5
  81. package/dist/utils/paginationNew.d.ts.map +1 -1
  82. package/dist/utils/paginationNew.js +5 -9
  83. package/dist/utils/paginationNew.js.map +1 -1
  84. package/dist/utils/parameterUtils.d.ts +15 -10
  85. package/dist/utils/parameterUtils.d.ts.map +1 -1
  86. package/dist/utils/parameterUtils.js +4 -18
  87. package/dist/utils/parameterUtils.js.map +1 -1
  88. package/dist/utils/responseFormatters.d.ts +3 -2
  89. package/dist/utils/responseFormatters.d.ts.map +1 -1
  90. package/dist/utils/responseFormatters.js +51 -8
  91. package/dist/utils/responseFormatters.js.map +1 -1
  92. package/dist/utils/responseWrapper.js +1 -1
  93. package/dist/utils/responseWrapper.js.map +1 -1
  94. package/dist/utils/sanitize.d.ts.map +1 -1
  95. package/dist/utils/sanitize.js +2 -5
  96. package/dist/utils/sanitize.js.map +1 -1
  97. package/dist/utils/workspaceResolver.d.ts +5 -1
  98. package/dist/utils/workspaceResolver.d.ts.map +1 -1
  99. package/dist/utils/workspaceResolver.js +35 -14
  100. package/dist/utils/workspaceResolver.js.map +1 -1
  101. package/package.json +6 -3
  102. package/dist/mcp-server-old.d.ts +0 -29
  103. package/dist/mcp-server-old.d.ts.map +0 -1
  104. package/dist/mcp-server-old.js +0 -1304
  105. package/dist/mcp-server-old.js.map +0 -1
  106. package/dist/utils/jsonSchemaToZod.d.ts +0 -33
  107. package/dist/utils/jsonSchemaToZod.d.ts.map +0 -1
  108. package/dist/utils/jsonSchemaToZod.js +0 -110
  109. package/dist/utils/jsonSchemaToZod.js.map +0 -1
  110. package/dist/worker.d.ts +0 -17
  111. package/dist/worker.d.ts.map +0 -1
  112. package/dist/worker.js +0 -61
  113. package/dist/worker.js.map +0 -1
package/README.md CHANGED
@@ -28,8 +28,7 @@ Add to your `claude_desktop_config.json`:
28
28
  "command": "npx",
29
29
  "args": ["motionmcp"],
30
30
  "env": {
31
- "MOTION_API_KEY": "your_api_key",
32
- "MOTION_MCP_TOOLS": "essential"
31
+ "MOTION_API_KEY": "your_api_key"
33
32
  }
34
33
  }
35
34
  }
@@ -107,13 +106,13 @@ MOTION_API_KEY=your-key
107
106
 
108
107
  ## Tool Configuration
109
108
 
110
- MCP clients have tool limits (~100 tools across all servers), so the server lets you control how many tools are exposed via the `MOTION_MCP_TOOLS` environment variable:
109
+ All 10 tools are enabled by default. If you run multiple MCP servers and want to reduce tool selection noise, you can limit which tools are exposed via the `MOTION_MCP_TOOLS` environment variable:
111
110
 
112
111
  | Level | Tools | Description |
113
112
  |---|---|---|
114
113
  | **minimal** | 3 | Tasks, projects, workspaces only |
115
- | **essential** (default) | 7 | Adds users, search, comments, schedules |
116
- | **complete** | 10 | Full API access including custom fields, recurring tasks, statuses |
114
+ | **essential** | 7 | Adds users, search, comments, schedules |
115
+ | **complete** (default) | 10 | Full API access including custom fields, recurring tasks, statuses |
117
116
  | **custom** | varies | Pick exactly the tools you need |
118
117
 
119
118
  Custom example:
@@ -261,8 +260,7 @@ List available statuses for a workspace.
261
260
  "args": ["run", "mcp:dev"],
262
261
  "cwd": "/absolute/path/to/your/MotionMCP",
263
262
  "env": {
264
- "MOTION_API_KEY": "your_api_key",
265
- "MOTION_MCP_TOOLS": "essential"
263
+ "MOTION_API_KEY": "your_api_key"
266
264
  }
267
265
  }
268
266
  }
@@ -0,0 +1,2 @@
1
+ export declare const SERVER_INSTRUCTIONS = "Motion MCP Server \u2014 AI-powered task and project management.\n\nUse this server to interact with Motion (usemotion.com), an auto-scheduling calendar and task manager.\n\nCapabilities:\n- Tasks: create, list, search, update, delete, move, and unassign tasks\n- Projects: create, list, and get project details\n- Workspaces: list and manage workspace context\n- Users: list team members and get current user info\n- Search: full-text search across tasks and projects, smart context retrieval\n- Comments: read and create comments on tasks and projects\n- Schedules: view available scheduling slots and calendars\n- Statuses: list workflow statuses for workspaces\n- Custom Fields: manage custom metadata on tasks and projects\n- Recurring Tasks: create and manage recurring task templates\n\nKeywords: motion, task management, project management, calendar, scheduling, auto-schedule, productivity, to-do, assignee, deadline, priority, workspace, team";
2
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,67BAgB+H,CAAC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SERVER_INSTRUCTIONS = void 0;
4
+ exports.SERVER_INSTRUCTIONS = `Motion MCP Server — AI-powered task and project management.
5
+
6
+ Use this server to interact with Motion (usemotion.com), an auto-scheduling calendar and task manager.
7
+
8
+ Capabilities:
9
+ - Tasks: create, list, search, update, delete, move, and unassign tasks
10
+ - Projects: create, list, and get project details
11
+ - Workspaces: list and manage workspace context
12
+ - Users: list team members and get current user info
13
+ - Search: full-text search across tasks and projects, smart context retrieval
14
+ - Comments: read and create comments on tasks and projects
15
+ - Schedules: view available scheduling slots and calendars
16
+ - Statuses: list workflow statuses for workspaces
17
+ - Custom Fields: manage custom metadata on tasks and projects
18
+ - Recurring Tasks: create and manage recurring task templates
19
+
20
+ Keywords: motion, task management, project management, calendar, scheduling, auto-schedule, productivity, to-do, assignee, deadline, priority, workspace, team`;
21
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,mBAAmB,GAAG;;;;;;;;;;;;;;;;+JAgB4H,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"CommentHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/CommentHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAK5D,qBAAa,cAAe,SAAQ,WAAW;IACvC,MAAM,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,eAAe,CAAC;YAiBlD,UAAU;YAmBV,YAAY;CA2B3B"}
1
+ {"version":3,"file":"CommentHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/CommentHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAK5D,qBAAa,cAAe,SAAQ,WAAW;IACvC,MAAM,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,eAAe,CAAC;YAiBlD,UAAU;YAmBV,YAAY;CA6B3B"}
@@ -43,15 +43,16 @@ class CommentHandler extends BaseHandler_1.BaseHandler {
43
43
  if (!content) {
44
44
  return this.handleError(new Error('content is required for create operation'));
45
45
  }
46
+ // Reject oversized content before sanitization so the check is never dead code
47
+ if (content.length > utils_1.LIMITS.COMMENT_MAX_LENGTH) {
48
+ return this.handleError(new Error(`Comment content exceeds maximum length of ${utils_1.LIMITS.COMMENT_MAX_LENGTH} characters`));
49
+ }
46
50
  // Sanitize and validate comment content
47
51
  const sanitizationResult = (0, sanitize_1.sanitizeCommentContent)(content);
48
52
  if (!sanitizationResult.isValid) {
49
53
  return this.handleError(new Error(sanitizationResult.error || 'Invalid comment content'));
50
54
  }
51
55
  const sanitizedContent = sanitizationResult.sanitized;
52
- if (sanitizedContent.length > utils_1.LIMITS.COMMENT_MAX_LENGTH) {
53
- return this.handleError(new Error(`Comment content exceeds maximum length of ${utils_1.LIMITS.COMMENT_MAX_LENGTH} characters`));
54
- }
55
56
  const commentData = {
56
57
  taskId,
57
58
  content: sanitizedContent
@@ -1 +1 @@
1
- {"version":3,"file":"CommentHandler.js","sourceRoot":"","sources":["../../src/handlers/CommentHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CommentHandler.js","sourceRoot":"","sources":["../../src/handlers/CommentHandler.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"CustomFieldHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/CustomFieldHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAIhE,qBAAa,kBAAmB,SAAQ,WAAW;IAC3C,MAAM,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,eAAe,CAAC;YA2BtD,UAAU;YAQV,YAAY;YAuBZ,YAAY;YASZ,kBAAkB;YASlB,uBAAuB;YASvB,eAAe;YASf,oBAAoB;CAQnC"}
1
+ {"version":3,"file":"CustomFieldHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/CustomFieldHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAIhE,qBAAa,kBAAmB,SAAQ,WAAW;IAC3C,MAAM,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,eAAe,CAAC;YA2BtD,UAAU;YAYV,YAAY;YAiCZ,YAAY;YAcZ,kBAAkB;YAYlB,uBAAuB;YASvB,eAAe;YAYf,oBAAoB;CAQnC"}
@@ -31,63 +31,86 @@ class CustomFieldHandler extends BaseHandler_1.BaseHandler {
31
31
  }
32
32
  }
33
33
  async handleList(args) {
34
- if (!args.workspaceId) {
35
- return this.handleError(new Error('Workspace ID is required for list operation'));
34
+ if (!args.workspaceId && !args.workspaceName) {
35
+ return this.handleError(new Error('Workspace ID or workspace name is required for list operation'));
36
36
  }
37
- const fields = await this.motionService.getCustomFields(args.workspaceId);
37
+ const workspace = await this.workspaceResolver.resolveWorkspace({
38
+ workspaceId: args.workspaceId,
39
+ workspaceName: args.workspaceName
40
+ });
41
+ const fields = await this.motionService.getCustomFields(workspace.id);
38
42
  return (0, utils_1.formatCustomFieldList)(fields);
39
43
  }
40
44
  async handleCreate(args) {
41
- if (!args.workspaceId || !args.name || !args.field) {
42
- return this.handleError(new Error('Workspace ID, name, and field are required for create operation'));
45
+ if ((!args.workspaceId && !args.workspaceName) || !args.name || !args.field) {
46
+ return this.handleError(new Error('Workspace ID/name, name, and field are required for create operation'));
43
47
  }
44
48
  if (args.name.length > utils_1.LIMITS.CUSTOM_FIELD_NAME_MAX_LENGTH) {
45
49
  return this.handleError(new Error(`Field name exceeds ${utils_1.LIMITS.CUSTOM_FIELD_NAME_MAX_LENGTH} characters`));
46
50
  }
47
- if (['select', 'multiSelect'].includes(args.field) !== Boolean(args.options)) {
48
- return this.handleError(new Error('Options parameter only allowed for select/multiSelect field types'));
51
+ const isSelectType = ['select', 'multiSelect'].includes(args.field);
52
+ if (!isSelectType && args.options) {
53
+ return this.handleError(new Error('Options parameter is only allowed for select/multiSelect field types'));
49
54
  }
55
+ if (isSelectType && !args.options) {
56
+ return this.handleError(new Error('Options parameter is required for select/multiSelect field types'));
57
+ }
58
+ const workspace = await this.workspaceResolver.resolveWorkspace({
59
+ workspaceId: args.workspaceId,
60
+ workspaceName: args.workspaceName
61
+ });
50
62
  const fieldData = {
51
63
  name: args.name,
52
64
  field: args.field,
65
+ ...(args.required !== undefined && { required: args.required }),
53
66
  ...(args.options && { metadata: { options: args.options } })
54
67
  };
55
- const newField = await this.motionService.createCustomField(args.workspaceId, fieldData);
68
+ const newField = await this.motionService.createCustomField(workspace.id, fieldData);
56
69
  return (0, utils_1.formatCustomFieldDetail)(newField);
57
70
  }
58
71
  async handleDelete(args) {
59
- if (!args.workspaceId || !args.fieldId) {
60
- return this.handleError(new Error('Workspace ID and field ID are required for delete operation'));
72
+ if ((!args.workspaceId && !args.workspaceName) || !args.fieldId) {
73
+ return this.handleError(new Error('Workspace ID/name and field ID are required for delete operation'));
61
74
  }
62
- await this.motionService.deleteCustomField(args.workspaceId, args.fieldId);
75
+ const workspace = await this.workspaceResolver.resolveWorkspace({
76
+ workspaceId: args.workspaceId,
77
+ workspaceName: args.workspaceName
78
+ });
79
+ await this.motionService.deleteCustomField(workspace.id, args.fieldId);
63
80
  return (0, utils_1.formatCustomFieldSuccess)('deleted');
64
81
  }
65
82
  async handleAddToProject(args) {
66
83
  if (!args.projectId || !args.fieldId) {
67
84
  return this.handleError(new Error('Project ID and field ID are required for add_to_project operation'));
68
85
  }
69
- await this.motionService.addCustomFieldToProject(args.projectId, args.fieldId, args.value);
70
- return (0, utils_1.formatCustomFieldSuccess)('added', 'project', args.projectId);
86
+ if (args.value !== undefined && args.value !== null && !args.field) {
87
+ return this.handleError(new Error('Field type (field) is required when providing a value. Use "text", "number", "multiSelect", etc.'));
88
+ }
89
+ const result = await this.motionService.addCustomFieldToProject(args.projectId, args.fieldId, args.value, args.field);
90
+ return (0, utils_1.formatCustomFieldSuccess)('added', 'project', args.projectId, result);
71
91
  }
72
92
  async handleRemoveFromProject(args) {
73
- if (!args.projectId || !args.fieldId) {
74
- return this.handleError(new Error('Project ID and field ID are required for remove_from_project operation'));
93
+ if (!args.projectId || !args.valueId) {
94
+ return this.handleError(new Error('Project ID and valueId (custom field value ID) are required for remove_from_project operation'));
75
95
  }
76
- await this.motionService.removeCustomFieldFromProject(args.projectId, args.fieldId);
96
+ await this.motionService.removeCustomFieldFromProject(args.projectId, args.valueId);
77
97
  return (0, utils_1.formatCustomFieldSuccess)('removed', 'project', args.projectId);
78
98
  }
79
99
  async handleAddToTask(args) {
80
100
  if (!args.taskId || !args.fieldId) {
81
101
  return this.handleError(new Error('Task ID and field ID are required for add_to_task operation'));
82
102
  }
83
- await this.motionService.addCustomFieldToTask(args.taskId, args.fieldId, args.value);
84
- return (0, utils_1.formatCustomFieldSuccess)('added', 'task', args.taskId);
103
+ if (args.value !== undefined && args.value !== null && !args.field) {
104
+ return this.handleError(new Error('Field type (field) is required when providing a value. Use "text", "number", "multiSelect", etc.'));
105
+ }
106
+ const result = await this.motionService.addCustomFieldToTask(args.taskId, args.fieldId, args.value, args.field);
107
+ return (0, utils_1.formatCustomFieldSuccess)('added', 'task', args.taskId, result);
85
108
  }
86
109
  async handleRemoveFromTask(args) {
87
- if (!args.taskId || !args.fieldId) {
88
- return this.handleError(new Error('Task ID and field ID are required for remove_from_task operation'));
110
+ if (!args.taskId || !args.valueId) {
111
+ return this.handleError(new Error('Task ID and valueId (custom field value ID) are required for remove_from_task operation'));
89
112
  }
90
- await this.motionService.removeCustomFieldFromTask(args.taskId, args.fieldId);
113
+ await this.motionService.removeCustomFieldFromTask(args.taskId, args.valueId);
91
114
  return (0, utils_1.formatCustomFieldSuccess)('removed', 'task', args.taskId);
92
115
  }
93
116
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CustomFieldHandler.js","sourceRoot":"","sources":["../../src/handlers/CustomFieldHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CustomFieldHandler.js","sourceRoot":"","sources":["../../src/handlers/CustomFieldHandler.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/ProjectHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AA2B5D,qBAAa,cAAe,SAAQ,WAAW;IACvC,MAAM,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,eAAe,CAAC;YAmBlD,YAAY;YAmBZ,UAAU;YAiBV,SAAS;CAQxB"}
1
+ {"version":3,"file":"ProjectHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/ProjectHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAyB5D,qBAAa,cAAe,SAAQ,WAAW;IACvC,MAAM,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,eAAe,CAAC;YAmBlD,YAAY;YAoBZ,UAAU;YAiBV,SAAS;CAQxB"}
@@ -32,7 +32,8 @@ class ProjectHandler extends BaseHandler_1.BaseHandler {
32
32
  workspaceName: projectData.workspaceName
33
33
  });
34
34
  const project = await this.motionService.createProject({
35
- ...projectData,
35
+ name: projectData.name,
36
+ description: projectData.description,
36
37
  workspaceId: workspace.id
37
38
  });
38
39
  return (0, utils_1.formatMcpSuccess)(`Successfully created project "${project.name}" (ID: ${project.id})`);
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectHandler.js","sourceRoot":"","sources":["../../src/handlers/ProjectHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProjectHandler.js","sourceRoot":"","sources":["../../src/handlers/ProjectHandler.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"RecurringTaskHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/RecurringTaskHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAIlE,qBAAa,oBAAqB,SAAQ,WAAW;IAC7C,MAAM,CAAC,IAAI,EAAE,wBAAwB,GAAG,OAAO,CAAC,eAAe,CAAC;YAmBxD,UAAU;YAQV,YAAY;YAiCZ,YAAY;CAQ3B"}
1
+ {"version":3,"file":"RecurringTaskHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/RecurringTaskHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAIlE,qBAAa,oBAAqB,SAAQ,WAAW;IAC7C,MAAM,CAAC,IAAI,EAAE,wBAAwB,GAAG,OAAO,CAAC,eAAe,CAAC;YAmBxD,UAAU;YAYV,YAAY;YAkCZ,YAAY;CAQ3B"}
@@ -23,22 +23,28 @@ class RecurringTaskHandler extends BaseHandler_1.BaseHandler {
23
23
  }
24
24
  }
25
25
  async handleList(args) {
26
- if (!args.workspaceId) {
27
- return this.handleError(new Error('Workspace ID is required for list operation'));
26
+ if (!args.workspaceId && !args.workspaceName) {
27
+ return this.handleError(new Error('Workspace ID or workspace name is required for list operation'));
28
28
  }
29
- const { items: recurringTasks, truncation } = await this.motionService.getRecurringTasks(args.workspaceId);
29
+ const workspace = await this.workspaceResolver.resolveWorkspace({
30
+ workspaceId: args.workspaceId,
31
+ workspaceName: args.workspaceName
32
+ });
33
+ const { items: recurringTasks, truncation } = await this.motionService.getRecurringTasks(workspace.id);
30
34
  return (0, utils_1.formatRecurringTaskList)(recurringTasks, truncation);
31
35
  }
32
36
  async handleCreate(args) {
33
- if (!args.name || !args.workspaceId || !args.assigneeId || !args.frequency) {
34
- return this.handleError(new Error('Name, workspace ID, assignee ID, and frequency are required for create operation'));
37
+ if (!args.name || (!args.workspaceId && !args.workspaceName) || !args.assigneeId || !args.frequency) {
38
+ return this.handleError(new Error('Name, workspace ID/workspace name, assignee ID, and frequency are required for create operation'));
35
39
  }
36
40
  // Validate frequency
37
- if (!args.frequency.type || !['daily', 'weekly', 'monthly', 'yearly'].includes(args.frequency.type)) {
38
- return this.handleError(new Error('Frequency type must be one of: daily, weekly, monthly, yearly'));
41
+ if (!args.frequency.type || !['daily', 'weekly', 'biweekly', 'monthly', 'quarterly', 'yearly', 'custom'].includes(args.frequency.type)) {
42
+ return this.handleError(new Error('Frequency type must be one of: daily, weekly, biweekly, monthly, quarterly, yearly, custom'));
39
43
  }
40
- // Additional validations would go here...
41
- const workspace = await this.workspaceResolver.resolveWorkspace({ workspaceId: args.workspaceId });
44
+ const workspace = await this.workspaceResolver.resolveWorkspace({
45
+ workspaceId: args.workspaceId,
46
+ workspaceName: args.workspaceName
47
+ });
42
48
  const taskData = {
43
49
  name: args.name,
44
50
  workspaceId: workspace.id,
@@ -47,7 +53,7 @@ class RecurringTaskHandler extends BaseHandler_1.BaseHandler {
47
53
  ...(args.description && { description: args.description }),
48
54
  ...(args.projectId && { projectId: args.projectId }),
49
55
  ...(args.deadlineType && { deadlineType: args.deadlineType }),
50
- ...(args.duration && { duration: args.duration }),
56
+ ...(args.duration !== undefined && args.duration !== null && { duration: args.duration }),
51
57
  ...(args.startingOn && { startingOn: args.startingOn }),
52
58
  ...(args.idealTime && { idealTime: args.idealTime }),
53
59
  ...(args.schedule && { schedule: args.schedule }),
@@ -1 +1 @@
1
- {"version":3,"file":"RecurringTaskHandler.js","sourceRoot":"","sources":["../../src/handlers/RecurringTaskHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RecurringTaskHandler.js","sourceRoot":"","sources":["../../src/handlers/RecurringTaskHandler.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { BaseHandler } from './base/BaseHandler';
2
2
  import { McpToolResponse } from '../types/mcp';
3
3
  import { MotionSchedulesArgs } from '../types/mcp-tool-args';
4
4
  export declare class ScheduleHandler extends BaseHandler {
5
- handle(args: MotionSchedulesArgs): Promise<McpToolResponse>;
5
+ handle(_args: MotionSchedulesArgs): Promise<McpToolResponse>;
6
6
  private handleList;
7
7
  }
8
8
  //# sourceMappingURL=ScheduleHandler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ScheduleHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/ScheduleHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAG7D,qBAAa,eAAgB,SAAQ,WAAW;IACxC,MAAM,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,eAAe,CAAC;YASnD,UAAU;CA4BzB"}
1
+ {"version":3,"file":"ScheduleHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/ScheduleHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAG7D,qBAAa,eAAgB,SAAQ,WAAW;IACxC,MAAM,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,eAAe,CAAC;YAQpD,UAAU;CAIzB"}
@@ -4,38 +4,16 @@ exports.ScheduleHandler = void 0;
4
4
  const BaseHandler_1 = require("./base/BaseHandler");
5
5
  const utils_1 = require("../utils");
6
6
  class ScheduleHandler extends BaseHandler_1.BaseHandler {
7
- async handle(args) {
7
+ async handle(_args) {
8
8
  try {
9
- const { userId, startDate, endDate } = args;
10
- return await this.handleList(userId, startDate, endDate);
9
+ return await this.handleList();
11
10
  }
12
11
  catch (error) {
13
12
  return this.handleError(error);
14
13
  }
15
14
  }
16
- async handleList(userId, startDate, endDate) {
17
- // Validate date formats if provided
18
- const isValidDate = (dateStr) => {
19
- if (!dateStr)
20
- return true; // Optional fields are valid when not provided
21
- const date = new Date(dateStr);
22
- return !isNaN(date.getTime());
23
- };
24
- if (!isValidDate(startDate)) {
25
- return this.handleError(new Error('startDate must be a valid date string (e.g., "2024-01-15" or "2024-01-15T10:30:00Z")'));
26
- }
27
- if (!isValidDate(endDate)) {
28
- return this.handleError(new Error('endDate must be a valid date string (e.g., "2024-01-15" or "2024-01-15T10:30:00Z")'));
29
- }
30
- // Validate date range logic if both dates are provided
31
- if (startDate && endDate) {
32
- const start = new Date(startDate);
33
- const end = new Date(endDate);
34
- if (start > end) {
35
- return this.handleError(new Error('startDate must be before or equal to endDate'));
36
- }
37
- }
38
- const schedules = await this.motionService.getSchedules(userId, startDate, endDate);
15
+ async handleList() {
16
+ const schedules = await this.motionService.getSchedules();
39
17
  return (0, utils_1.formatScheduleList)(schedules);
40
18
  }
41
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ScheduleHandler.js","sourceRoot":"","sources":["../../src/handlers/ScheduleHandler.ts"],"names":[],"mappings":";;;AAAA,oDAAiD;AAGjD,oCAA8C;AAE9C,MAAa,eAAgB,SAAQ,yBAAW;IAC9C,KAAK,CAAC,MAAM,CAAC,IAAyB;QACpC,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;YAC5C,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAC3D,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,MAAe,EAAE,SAAkB,EAAE,OAAgB;QAC5E,oCAAoC;QACpC,MAAM,WAAW,GAAG,CAAC,OAA2B,EAAW,EAAE;YAC3D,IAAI,CAAC,OAAO;gBAAE,OAAO,IAAI,CAAC,CAAC,8CAA8C;YACzE,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;YAC/B,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAChC,CAAC,CAAC;QAEF,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,sFAAsF,CAAC,CAAC,CAAC;QAC7H,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,oFAAoF,CAAC,CAAC,CAAC;QAC3H,CAAC;QAED,uDAAuD;QACvD,IAAI,SAAS,IAAI,OAAO,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;YAClC,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;YAC9B,IAAI,KAAK,GAAG,GAAG,EAAE,CAAC;gBAChB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC,CAAC;YACrF,CAAC;QACH,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QACpF,OAAO,IAAA,0BAAkB,EAAC,SAAS,CAAC,CAAC;IACvC,CAAC;CACF;AAtCD,0CAsCC"}
1
+ {"version":3,"file":"ScheduleHandler.js","sourceRoot":"","sources":["../../src/handlers/ScheduleHandler.ts"],"names":[],"mappings":";;;AAAA,oDAAiD;AAGjD,oCAA8C;AAE9C,MAAa,eAAgB,SAAQ,yBAAW;IAC9C,KAAK,CAAC,MAAM,CAAC,KAA0B;QACrC,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACjC,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,UAAU;QACtB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;QAC1D,OAAO,IAAA,0BAAkB,EAAC,SAAS,CAAC,CAAC;IACvC,CAAC;CACF;AAbD,0CAaC"}
@@ -4,7 +4,6 @@ import { MotionSearchArgs } from '../types/mcp-tool-args';
4
4
  export declare class SearchHandler extends BaseHandler {
5
5
  handle(args: MotionSearchArgs): Promise<McpToolResponse>;
6
6
  private handleContentSearch;
7
- private handleContextSearch;
8
- private handleSmartSearch;
7
+ private resolveEntityTypes;
9
8
  }
10
9
  //# sourceMappingURL=SearchHandler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SearchHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/SearchHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAkB,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAqB1D,qBAAa,aAAc,SAAQ,WAAW;IACtC,MAAM,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;YAmBhD,mBAAmB;YAmDnB,mBAAmB;YAyBnB,iBAAiB;CA8ChC"}
1
+ {"version":3,"file":"SearchHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/SearchHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAkB,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAY1D,qBAAa,aAAc,SAAQ,WAAW;IACtC,MAAM,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;YAehD,mBAAmB;IA2DjC,OAAO,CAAC,kBAAkB;CAgB3B"}
@@ -10,10 +10,6 @@ class SearchHandler extends BaseHandler_1.BaseHandler {
10
10
  switch (operation) {
11
11
  case 'content':
12
12
  return await this.handleContentSearch(args);
13
- case 'context':
14
- return await this.handleContextSearch(args);
15
- case 'smart':
16
- return await this.handleSmartSearch(args);
17
13
  default:
18
14
  return this.handleUnknownOperation(operation);
19
15
  }
@@ -26,29 +22,35 @@ class SearchHandler extends BaseHandler_1.BaseHandler {
26
22
  if (!args.query) {
27
23
  return this.handleError(new Error("Query is required for content search"));
28
24
  }
29
- const entityTypes = args.searchScope === 'tasks' ? ['tasks'] :
30
- args.searchScope === 'projects' ? ['projects'] :
31
- ['tasks', 'projects'];
25
+ const entityTypes = this.resolveEntityTypes(args);
32
26
  // Use configurable limit to prevent resource exhaustion
33
27
  const limit = args.limit || utils_1.LIMITS.MAX_SEARCH_RESULTS;
34
28
  const workspace = await this.workspaceResolver.resolveWorkspace({
35
29
  workspaceId: args.workspaceId,
36
30
  workspaceName: args.workspaceName
37
31
  });
38
- let results = [];
32
+ const results = [];
39
33
  let mergedTruncation;
40
34
  if (entityTypes.includes('tasks')) {
41
35
  const { items: tasks, truncation } = await this.motionService.searchTasks(args.query, workspace.id, limit);
42
- results.push(...tasks);
36
+ results.push(...tasks.map(task => ({
37
+ id: task.id,
38
+ name: task.name,
39
+ entityType: 'task'
40
+ })));
43
41
  if (truncation?.wasTruncated && !mergedTruncation) {
44
- mergedTruncation = truncation;
42
+ mergedTruncation = { ...truncation };
45
43
  }
46
44
  }
47
45
  if (entityTypes.includes('projects')) {
48
46
  const { items: projects, truncation } = await this.motionService.searchProjects(args.query, workspace.id, limit);
49
- results.push(...projects);
47
+ results.push(...projects.map(project => ({
48
+ id: project.id,
49
+ name: project.name,
50
+ entityType: 'project'
51
+ })));
50
52
  if (truncation?.wasTruncated && !mergedTruncation) {
51
- mergedTruncation = truncation;
53
+ mergedTruncation = { ...truncation };
52
54
  }
53
55
  }
54
56
  const slicedResults = results.slice(0, limit);
@@ -57,6 +59,8 @@ class SearchHandler extends BaseHandler_1.BaseHandler {
57
59
  mergedTruncation = { wasTruncated: true, returnedCount: slicedResults.length, reason: 'max_items', limit };
58
60
  }
59
61
  else if (mergedTruncation) {
62
+ // A source was truncated but combined results fit within the limit —
63
+ // update returnedCount to reflect the actual number of results returned
60
64
  mergedTruncation.returnedCount = slicedResults.length;
61
65
  }
62
66
  return (0, utils_1.formatSearchResults)(slicedResults, args.query, {
@@ -65,67 +69,17 @@ class SearchHandler extends BaseHandler_1.BaseHandler {
65
69
  truncation: mergedTruncation
66
70
  });
67
71
  }
68
- async handleContextSearch(args) {
69
- if (!args.entityType || !args.entityId) {
70
- return this.handleError(new Error("EntityType and entityId are required for context operation"));
72
+ resolveEntityTypes(args) {
73
+ if (args.entityTypes && args.entityTypes.length > 0) {
74
+ return Array.from(new Set(args.entityTypes));
71
75
  }
72
- const { entityType, entityId, includeRelated = false } = args;
73
- let contextText = `Context for ${entityType} ${entityId}:\n\n`;
74
- // For now, return a simple context message as Motion API doesn't have specific context endpoints
75
- if (entityType === 'project') {
76
- contextText += `Project ID: ${entityId}\n`;
77
- if (includeRelated) {
78
- contextText += `Related tasks would be listed here (when available)\n`;
79
- }
80
- }
81
- else if (entityType === 'task') {
82
- contextText += `Task ID: ${entityId}\n`;
83
- if (includeRelated) {
84
- contextText += `Related project and subtasks would be listed here (when available)\n`;
85
- }
76
+ if (args.searchScope === 'tasks') {
77
+ return ['tasks'];
86
78
  }
87
- return (0, utils_1.formatMcpSuccess)(contextText);
88
- }
89
- async handleSmartSearch(args) {
90
- if (!args.query) {
91
- return this.handleError(new Error("Query is required for smart search"));
92
- }
93
- const { query, entityType, entityId, includeRelated = false } = args;
94
- let contextText = `Smart search results for "${query}":\n\n`;
95
- // Perform content search
96
- const searchResults = await this.handleContentSearch({
97
- query,
98
- entityTypes: args.searchScope === 'tasks' ? ['tasks'] :
99
- args.searchScope === 'projects' ? ['projects'] :
100
- ['tasks', 'projects'],
101
- workspaceId: args.workspaceId,
102
- workspaceName: args.workspaceName
103
- });
104
- contextText += "Content Results:\n";
105
- // Extract text from search results
106
- if ('content' in searchResults && searchResults.content && Array.isArray(searchResults.content)) {
107
- const textContent = searchResults.content.find(item => item.type === 'text');
108
- if (textContent && 'text' in textContent) {
109
- contextText += textContent.text + "\n\n";
110
- }
111
- }
112
- // Add contextual information if entity is specified
113
- if (entityType && entityId) {
114
- contextText += `Context for ${entityType} ${entityId}:\n`;
115
- if (entityType === 'project') {
116
- contextText += `Project ID: ${entityId}\n`;
117
- if (includeRelated) {
118
- contextText += `Related tasks would be listed here (when available)\n`;
119
- }
120
- }
121
- else if (entityType === 'task') {
122
- contextText += `Task ID: ${entityId}\n`;
123
- if (includeRelated) {
124
- contextText += `Related project and subtasks would be listed here (when available)\n`;
125
- }
126
- }
79
+ if (args.searchScope === 'projects') {
80
+ return ['projects'];
127
81
  }
128
- return (0, utils_1.formatMcpSuccess)(contextText);
82
+ return ['tasks', 'projects'];
129
83
  }
130
84
  }
131
85
  exports.SearchHandler = SearchHandler;
@@ -1 +1 @@
1
- {"version":3,"file":"SearchHandler.js","sourceRoot":"","sources":["../../src/handlers/SearchHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SearchHandler.js","sourceRoot":"","sources":["../../src/handlers/SearchHandler.ts"],"names":[],"mappings":"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"}