motionmcp 2.5.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.
- package/dist/handlers/CommentHandler.d.ts.map +1 -1
- package/dist/handlers/CommentHandler.js +4 -3
- package/dist/handlers/CommentHandler.js.map +1 -1
- package/dist/handlers/CustomFieldHandler.d.ts.map +1 -1
- package/dist/handlers/CustomFieldHandler.js +44 -21
- package/dist/handlers/CustomFieldHandler.js.map +1 -1
- package/dist/handlers/ProjectHandler.d.ts.map +1 -1
- package/dist/handlers/ProjectHandler.js +2 -1
- package/dist/handlers/ProjectHandler.js.map +1 -1
- package/dist/handlers/RecurringTaskHandler.d.ts.map +1 -1
- package/dist/handlers/RecurringTaskHandler.js +16 -10
- package/dist/handlers/RecurringTaskHandler.js.map +1 -1
- package/dist/handlers/ScheduleHandler.d.ts +1 -1
- package/dist/handlers/ScheduleHandler.d.ts.map +1 -1
- package/dist/handlers/ScheduleHandler.js +4 -26
- package/dist/handlers/ScheduleHandler.js.map +1 -1
- package/dist/handlers/SearchHandler.d.ts +1 -2
- package/dist/handlers/SearchHandler.d.ts.map +1 -1
- package/dist/handlers/SearchHandler.js +24 -70
- package/dist/handlers/SearchHandler.js.map +1 -1
- package/dist/handlers/TaskHandler.d.ts +11 -5
- package/dist/handlers/TaskHandler.d.ts.map +1 -1
- package/dist/handlers/TaskHandler.js +101 -63
- package/dist/handlers/TaskHandler.js.map +1 -1
- package/dist/handlers/UserHandler.js +6 -6
- package/dist/handlers/UserHandler.js.map +1 -1
- package/dist/handlers/WorkspaceHandler.d.ts +0 -1
- package/dist/handlers/WorkspaceHandler.d.ts.map +1 -1
- package/dist/handlers/WorkspaceHandler.js +0 -9
- package/dist/handlers/WorkspaceHandler.js.map +1 -1
- package/dist/handlers/base/BaseHandler.d.ts +4 -5
- package/dist/handlers/base/BaseHandler.d.ts.map +1 -1
- package/dist/handlers/base/BaseHandler.js +0 -12
- package/dist/handlers/base/BaseHandler.js.map +1 -1
- package/dist/handlers/base/HandlerInterface.d.ts +0 -5
- package/dist/handlers/base/HandlerInterface.d.ts.map +1 -1
- package/dist/handlers/index.d.ts +1 -1
- package/dist/handlers/index.d.ts.map +1 -1
- package/dist/mcp-server.js +1 -1
- package/dist/schemas/motion.d.ts +12 -255
- package/dist/schemas/motion.d.ts.map +1 -1
- package/dist/schemas/motion.js +4 -17
- package/dist/schemas/motion.js.map +1 -1
- package/dist/services/motionApi.d.ts +38 -26
- package/dist/services/motionApi.d.ts.map +1 -1
- package/dist/services/motionApi.js +381 -227
- package/dist/services/motionApi.js.map +1 -1
- package/dist/tools/ToolDefinitions.d.ts.map +1 -1
- package/dist/tools/ToolDefinitions.js +60 -82
- package/dist/tools/ToolDefinitions.js.map +1 -1
- package/dist/types/mcp-tool-args.d.ts +46 -61
- package/dist/types/mcp-tool-args.d.ts.map +1 -1
- package/dist/types/mcp-tool-args.js +2 -4
- package/dist/types/mcp-tool-args.js.map +1 -1
- package/dist/types/mcp.d.ts +5 -1
- package/dist/types/mcp.d.ts.map +1 -1
- package/dist/types/motion.d.ts +40 -13
- package/dist/types/motion.d.ts.map +1 -1
- package/dist/utils/constants.d.ts +0 -11
- package/dist/utils/constants.d.ts.map +1 -1
- package/dist/utils/constants.js +6 -52
- package/dist/utils/constants.js.map +1 -1
- package/dist/utils/frequencyTransform.d.ts +0 -5
- package/dist/utils/frequencyTransform.d.ts.map +1 -1
- package/dist/utils/frequencyTransform.js +1 -9
- package/dist/utils/frequencyTransform.js.map +1 -1
- package/dist/utils/pagination.d.ts +61 -0
- package/dist/utils/pagination.d.ts.map +1 -0
- package/dist/utils/pagination.js +168 -0
- package/dist/utils/pagination.js.map +1 -0
- package/dist/utils/paginationNew.d.ts +0 -5
- package/dist/utils/paginationNew.d.ts.map +1 -1
- package/dist/utils/paginationNew.js +5 -9
- package/dist/utils/paginationNew.js.map +1 -1
- package/dist/utils/parameterUtils.d.ts +15 -10
- package/dist/utils/parameterUtils.d.ts.map +1 -1
- package/dist/utils/parameterUtils.js +4 -18
- package/dist/utils/parameterUtils.js.map +1 -1
- package/dist/utils/responseFormatters.d.ts +3 -2
- package/dist/utils/responseFormatters.d.ts.map +1 -1
- package/dist/utils/responseFormatters.js +51 -8
- package/dist/utils/responseFormatters.js.map +1 -1
- package/dist/utils/responseWrapper.js +1 -1
- package/dist/utils/responseWrapper.js.map +1 -1
- package/dist/utils/sanitize.d.ts.map +1 -1
- package/dist/utils/sanitize.js +2 -5
- package/dist/utils/sanitize.js.map +1 -1
- package/dist/utils/workspaceResolver.d.ts +5 -1
- package/dist/utils/workspaceResolver.d.ts.map +1 -1
- package/dist/utils/workspaceResolver.js +35 -14
- package/dist/utils/workspaceResolver.js.map +1 -1
- package/package.json +5 -2
- package/dist/mcp-server-old.d.ts +0 -29
- package/dist/mcp-server-old.d.ts.map +0 -1
- package/dist/mcp-server-old.js +0 -1304
- package/dist/mcp-server-old.js.map +0 -1
- package/dist/utils/jsonSchemaToZod.d.ts +0 -33
- package/dist/utils/jsonSchemaToZod.d.ts.map +0 -1
- package/dist/utils/jsonSchemaToZod.js +0 -110
- package/dist/utils/jsonSchemaToZod.js.map +0 -1
- package/dist/worker.d.ts +0 -17
- package/dist/worker.d.ts.map +0 -1
- package/dist/worker.js +0 -61
- package/dist/worker.js.map +0 -1
|
@@ -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;
|
|
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":";;;AAAA,oDAAiD;AAIjD,oCAA0E;AAC1E,gDAA2D;AAE3D,MAAa,cAAe,SAAQ,yBAAW;IAC7C,KAAK,CAAC,MAAM,CAAC,IAAwB;QACnC,IAAI,CAAC;YACH,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;YAEpD,QAAO,SAAS,EAAE,CAAC;gBACjB,KAAK,MAAM;oBACT,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAC/C,KAAK,QAAQ;oBACX,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAClD;oBACE,OAAO,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;YAClD,CAAC;QACH,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,MAAe;QACvD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC,CAAC;QAC9E,CAAC;QAED,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9E,MAAM,cAAc,GAAG,IAAA,yBAAiB,EAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAEhE,2CAA2C;QAC3C,IAAI,gBAAgB,CAAC,IAAI,CAAC,UAAU,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAClE,MAAM,YAAY,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC/C,IAAI,MAAM,IAAI,YAAY,IAAI,OAAO,YAAY,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACpE,YAAY,CAAC,IAAI,IAAI,+CAA+C,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACzG,CAAC;QACH,CAAC;QAED,OAAO,cAAc,CAAC;IACxB,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,MAAe,EAAE,OAAgB;QAC1D,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC,CAAC;QAChF,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC,CAAC;QACjF,CAAC;QAED
|
|
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;
|
|
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
|
|
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
|
-
|
|
48
|
-
|
|
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(
|
|
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.
|
|
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
|
-
|
|
70
|
-
|
|
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.
|
|
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.
|
|
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
|
-
|
|
84
|
-
|
|
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.
|
|
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.
|
|
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":";;;AAAA,oDAAiD;AAIjD,oCAA4G;AAE5G,MAAa,kBAAmB,SAAQ,yBAAW;IACjD,KAAK,CAAC,MAAM,CAAC,IAA4B;QACvC,IAAI,CAAC;YACH,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;YAE3B,QAAO,SAAS,EAAE,CAAC;gBACjB,KAAK,MAAM;oBACT,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACrC,KAAK,QAAQ;oBACX,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;gBACvC,KAAK,QAAQ;oBACX,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;gBACvC,KAAK,gBAAgB;oBACnB,OAAO,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;gBAC7C,KAAK,qBAAqB;oBACxB,OAAO,MAAM,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;gBAClD,KAAK,aAAa;oBAChB,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gBAC1C,KAAK,kBAAkB;oBACrB,OAAO,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;gBAC/C;oBACE,OAAO,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,IAA4B;QACnD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;
|
|
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;
|
|
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
|
-
|
|
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":";;;AAAA,oDAAiD;AAGjD,oCAKkB;
|
|
1
|
+
{"version":3,"file":"ProjectHandler.js","sourceRoot":"","sources":["../../src/handlers/ProjectHandler.ts"],"names":[],"mappings":";;;AAAA,oDAAiD;AAGjD,oCAKkB;AAmBlB,MAAa,cAAe,SAAQ,yBAAW;IAC7C,KAAK,CAAC,MAAM,CAAC,IAAwB;QACnC,IAAI,CAAC;YACH,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC;YAEtC,QAAO,SAAS,EAAE,CAAC;gBACjB,KAAK,QAAQ;oBACX,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,MAA6B,CAAC,CAAC;gBAChE,KAAK,MAAM;oBACT,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,MAA2B,CAAC,CAAC;gBAC5D,KAAK,KAAK;oBACR,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,MAA0B,CAAC,CAAC;gBAC1D;oBACE,OAAO,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,MAA2B;QACpD,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC,CAAC;QACtF,CAAC;QAED,MAAM,WAAW,GAAG,IAAA,wBAAgB,EAAC,MAA4C,CAAC,CAAC;QACnF,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC;YAC9D,WAAW,EAAE,WAAW,CAAC,WAAW;YACpC,aAAa,EAAE,WAAW,CAAC,aAAa;SACzC,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;YACrD,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,WAAW,EAAE,WAAW,CAAC,WAAW;YACpC,WAAW,EAAE,SAAS,CAAC,EAAE;SAC1B,CAAC,CAAC;QAEH,OAAO,IAAA,wBAAgB,EAAC,iCAAiC,OAAO,CAAC,IAAI,UAAU,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;IAChG,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,MAAyB;QAChD,oFAAoF;QACpF,IAAI,MAAM,CAAC,aAAa,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YACzE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC;YACrF,OAAO,IAAA,yBAAiB,EAAC,WAAW,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;QAChF,CAAC;QAED,qDAAqD;QACrD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC;YAC9D,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,aAAa,EAAE,MAAM,CAAC,aAAa;SACpC,CAAC,CAAC;QAEH,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC3F,OAAO,IAAA,yBAAiB,EAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;IAC3E,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,MAAwB;QAC9C,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC,CAAC;QACjF,CAAC;QAED,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC7E,OAAO,IAAA,4BAAoB,EAAC,cAAc,EAAE,wBAAwB,cAAc,CAAC,IAAI,GAAG,CAAC,CAAC;IAC9F,CAAC;CACF;AAjED,wCAiEC"}
|
|
@@ -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;
|
|
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
|
|
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
|
-
|
|
41
|
-
|
|
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":";;;AAAA,oDAAiD;AAIjD,oCAAgG;AAEhG,MAAa,oBAAqB,SAAQ,yBAAW;IACnD,KAAK,CAAC,MAAM,CAAC,IAA8B;QACzC,IAAI,CAAC;YACH,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;YAE3B,QAAO,SAAS,EAAE,CAAC;gBACjB,KAAK,MAAM;oBACT,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACrC,KAAK,QAAQ;oBACX,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;gBACvC,KAAK,QAAQ;oBACX,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;gBACvC;oBACE,OAAO,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,IAA8B;QACrD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;
|
|
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(
|
|
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,
|
|
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(
|
|
7
|
+
async handle(_args) {
|
|
8
8
|
try {
|
|
9
|
-
|
|
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(
|
|
17
|
-
|
|
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,
|
|
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
|
|
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;
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
69
|
-
if (
|
|
70
|
-
return
|
|
72
|
+
resolveEntityTypes(args) {
|
|
73
|
+
if (args.entityTypes && args.entityTypes.length > 0) {
|
|
74
|
+
return Array.from(new Set(args.entityTypes));
|
|
71
75
|
}
|
|
72
|
-
|
|
73
|
-
|
|
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
|
-
|
|
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
|
|
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":";;;AAAA,oDAAiD;AAGjD,
|
|
1
|
+
{"version":3,"file":"SearchHandler.js","sourceRoot":"","sources":["../../src/handlers/SearchHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -64,9 +64,9 @@ export declare class TaskHandler extends BaseHandler {
|
|
|
64
64
|
*/
|
|
65
65
|
private handleDelete;
|
|
66
66
|
/**
|
|
67
|
-
* Moves a task to a different
|
|
68
|
-
* Requires
|
|
69
|
-
* @param params - Parameters with taskId and
|
|
67
|
+
* Moves a task to a different workspace.
|
|
68
|
+
* Requires a target workspace ID. Optionally reassigns the task.
|
|
69
|
+
* @param params - Parameters with taskId, target workspace, and optional assignee
|
|
70
70
|
* @returns Success response with moved task info
|
|
71
71
|
*/
|
|
72
72
|
private handleMove;
|
|
@@ -96,11 +96,17 @@ export declare class TaskHandler extends BaseHandler {
|
|
|
96
96
|
*/
|
|
97
97
|
private resolveAssignee;
|
|
98
98
|
/**
|
|
99
|
-
*
|
|
99
|
+
* Parse and validate task duration from user input.
|
|
100
|
+
* Accepts non-negative integer minutes or special values NONE/REMINDER.
|
|
101
|
+
*/
|
|
102
|
+
private parseDurationValue;
|
|
103
|
+
/**
|
|
104
|
+
* Validate and normalize auto-scheduling configuration and provide helpful error messages
|
|
100
105
|
* @param autoScheduled - The autoScheduled configuration
|
|
101
106
|
* @param workspaceId - The workspace ID for context
|
|
107
|
+
* @returns Normalized autoScheduled object (with canonical schedule casing), or original null/undefined
|
|
102
108
|
* @throws Error if validation fails with helpful guidance
|
|
103
109
|
*/
|
|
104
|
-
private
|
|
110
|
+
private validateAndNormalizeAutoScheduling;
|
|
105
111
|
}
|
|
106
112
|
//# sourceMappingURL=TaskHandler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/TaskHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"TaskHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/TaskHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAgGzD;;;;;;;;GAQG;AACH,qBAAa,WAAY,SAAQ,WAAW;IAC1C;;;;OAIG;IACG,MAAM,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;IA6B7D;;;;;;;;;;OAUG;YACW,YAAY;IAiE1B;;;;;;;;;OASG;YACW,UAAU;IA0GxB;;;;OAIG;YACW,SAAS;IASvB;;;;;;;;;OASG;YACW,YAAY;IAqD1B;;;;OAIG;YACW,YAAY;IAS1B;;;;;OAKG;YACW,UAAU;IAexB;;;;OAIG;YACW,cAAc;IAY5B;;;;;OAKG;YACW,wBAAwB;IAetC;;;;;;;;;;OAUG;YACW,eAAe;IAqD7B;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAoB1B;;;;;;OAMG;YACW,kCAAkC;CA4FjD"}
|