motionmcp 1.0.2 → 2.1.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 (159) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +241 -450
  3. package/dist/handlers/CommentHandler.d.ts +9 -0
  4. package/dist/handlers/CommentHandler.d.ts.map +1 -0
  5. package/dist/handlers/CommentHandler.js +66 -0
  6. package/dist/handlers/CommentHandler.js.map +1 -0
  7. package/dist/handlers/CustomFieldHandler.d.ts +14 -0
  8. package/dist/handlers/CustomFieldHandler.d.ts.map +1 -0
  9. package/dist/handlers/CustomFieldHandler.js +95 -0
  10. package/dist/handlers/CustomFieldHandler.js.map +1 -0
  11. package/dist/handlers/HandlerFactory.d.ts +15 -0
  12. package/dist/handlers/HandlerFactory.d.ts.map +1 -0
  13. package/dist/handlers/HandlerFactory.js +58 -0
  14. package/dist/handlers/HandlerFactory.js.map +1 -0
  15. package/dist/handlers/ProjectHandler.d.ts +10 -0
  16. package/dist/handlers/ProjectHandler.d.ts.map +1 -0
  17. package/dist/handlers/ProjectHandler.js +63 -0
  18. package/dist/handlers/ProjectHandler.js.map +1 -0
  19. package/dist/handlers/RecurringTaskHandler.d.ts +10 -0
  20. package/dist/handlers/RecurringTaskHandler.d.ts.map +1 -0
  21. package/dist/handlers/RecurringTaskHandler.js +68 -0
  22. package/dist/handlers/RecurringTaskHandler.js.map +1 -0
  23. package/dist/handlers/ScheduleHandler.d.ts +8 -0
  24. package/dist/handlers/ScheduleHandler.d.ts.map +1 -0
  25. package/dist/handlers/ScheduleHandler.js +43 -0
  26. package/dist/handlers/ScheduleHandler.js.map +1 -0
  27. package/dist/handlers/SearchHandler.d.ts +10 -0
  28. package/dist/handlers/SearchHandler.d.ts.map +1 -0
  29. package/dist/handlers/SearchHandler.js +116 -0
  30. package/dist/handlers/SearchHandler.js.map +1 -0
  31. package/dist/handlers/StatusHandler.d.ts +8 -0
  32. package/dist/handlers/StatusHandler.d.ts.map +1 -0
  33. package/dist/handlers/StatusHandler.js +22 -0
  34. package/dist/handlers/StatusHandler.js.map +1 -0
  35. package/dist/handlers/TaskHandler.d.ts +22 -0
  36. package/dist/handlers/TaskHandler.d.ts.map +1 -0
  37. package/dist/handlers/TaskHandler.js +324 -0
  38. package/dist/handlers/TaskHandler.js.map +1 -0
  39. package/dist/handlers/UserHandler.d.ts +9 -0
  40. package/dist/handlers/UserHandler.d.ts.map +1 -0
  41. package/dist/handlers/UserHandler.js +36 -0
  42. package/dist/handlers/UserHandler.js.map +1 -0
  43. package/dist/handlers/WorkspaceHandler.d.ts +10 -0
  44. package/dist/handlers/WorkspaceHandler.d.ts.map +1 -0
  45. package/dist/handlers/WorkspaceHandler.js +49 -0
  46. package/dist/handlers/WorkspaceHandler.js.map +1 -0
  47. package/dist/handlers/base/BaseHandler.d.ts +16 -0
  48. package/dist/handlers/base/BaseHandler.d.ts.map +1 -0
  49. package/dist/handlers/base/BaseHandler.js +31 -0
  50. package/dist/handlers/base/BaseHandler.js.map +1 -0
  51. package/dist/handlers/base/HandlerInterface.d.ts +18 -0
  52. package/dist/handlers/base/HandlerInterface.d.ts.map +1 -0
  53. package/dist/handlers/base/HandlerInterface.js +3 -0
  54. package/dist/handlers/base/HandlerInterface.js.map +1 -0
  55. package/dist/handlers/index.d.ts +14 -0
  56. package/dist/handlers/index.d.ts.map +1 -0
  57. package/dist/handlers/index.js +31 -0
  58. package/dist/handlers/index.js.map +1 -0
  59. package/dist/mcp-server.d.ts +15 -0
  60. package/dist/mcp-server.d.ts.map +1 -0
  61. package/dist/mcp-server.js +145 -0
  62. package/dist/mcp-server.js.map +1 -0
  63. package/dist/schemas/motion.d.ts +4971 -0
  64. package/dist/schemas/motion.d.ts.map +1 -0
  65. package/dist/schemas/motion.js +328 -0
  66. package/dist/schemas/motion.js.map +1 -0
  67. package/dist/services/motionApi.d.ts +199 -0
  68. package/dist/services/motionApi.d.ts.map +1 -0
  69. package/dist/services/motionApi.js +1950 -0
  70. package/dist/services/motionApi.js.map +1 -0
  71. package/dist/tools/ToolConfigurator.d.ts +19 -0
  72. package/dist/tools/ToolConfigurator.d.ts.map +1 -0
  73. package/dist/tools/ToolConfigurator.js +89 -0
  74. package/dist/tools/ToolConfigurator.js.map +1 -0
  75. package/dist/tools/ToolDefinitions.d.ts +25 -0
  76. package/dist/tools/ToolDefinitions.d.ts.map +1 -0
  77. package/dist/tools/ToolDefinitions.js +508 -0
  78. package/dist/tools/ToolDefinitions.js.map +1 -0
  79. package/dist/tools/ToolRegistry.d.ts +16 -0
  80. package/dist/tools/ToolRegistry.d.ts.map +1 -0
  81. package/dist/tools/ToolRegistry.js +89 -0
  82. package/dist/tools/ToolRegistry.js.map +1 -0
  83. package/dist/tools/index.d.ts +4 -0
  84. package/dist/tools/index.d.ts.map +1 -0
  85. package/dist/tools/index.js +21 -0
  86. package/dist/tools/index.js.map +1 -0
  87. package/dist/types/mcp-tool-args.d.ts +123 -0
  88. package/dist/types/mcp-tool-args.d.ts.map +1 -0
  89. package/dist/types/mcp-tool-args.js +7 -0
  90. package/dist/types/mcp-tool-args.js.map +1 -0
  91. package/dist/types/mcp.d.ts +32 -0
  92. package/dist/types/mcp.d.ts.map +1 -0
  93. package/dist/types/mcp.js +3 -0
  94. package/dist/types/mcp.js.map +1 -0
  95. package/dist/types/motion.d.ts +304 -0
  96. package/dist/types/motion.d.ts.map +1 -0
  97. package/dist/types/motion.js +3 -0
  98. package/dist/types/motion.js.map +1 -0
  99. package/dist/utils/cache.d.ts +25 -0
  100. package/dist/utils/cache.d.ts.map +1 -0
  101. package/dist/utils/cache.js +135 -0
  102. package/dist/utils/cache.js.map +1 -0
  103. package/dist/utils/constants.d.ts +88 -0
  104. package/dist/utils/constants.d.ts.map +1 -0
  105. package/dist/utils/constants.js +188 -0
  106. package/dist/utils/constants.js.map +1 -0
  107. package/dist/utils/errorHandling.d.ts +50 -0
  108. package/dist/utils/errorHandling.d.ts.map +1 -0
  109. package/dist/utils/errorHandling.js +86 -0
  110. package/dist/utils/errorHandling.js.map +1 -0
  111. package/dist/utils/index.d.ts +13 -0
  112. package/dist/utils/index.d.ts.map +1 -0
  113. package/dist/utils/index.js +38 -0
  114. package/dist/utils/index.js.map +1 -0
  115. package/dist/utils/logger.d.ts +13 -0
  116. package/dist/utils/logger.d.ts.map +1 -0
  117. package/dist/utils/logger.js +47 -0
  118. package/dist/utils/logger.js.map +1 -0
  119. package/dist/utils/pagination.d.ts +61 -0
  120. package/dist/utils/pagination.d.ts.map +1 -0
  121. package/dist/utils/pagination.js +168 -0
  122. package/dist/utils/pagination.js.map +1 -0
  123. package/dist/utils/paginationNew.d.ts +44 -0
  124. package/dist/utils/paginationNew.d.ts.map +1 -0
  125. package/dist/utils/paginationNew.js +149 -0
  126. package/dist/utils/paginationNew.js.map +1 -0
  127. package/dist/utils/parameterUtils.d.ts +79 -0
  128. package/dist/utils/parameterUtils.d.ts.map +1 -0
  129. package/dist/utils/parameterUtils.js +189 -0
  130. package/dist/utils/parameterUtils.js.map +1 -0
  131. package/dist/utils/responseFormatters.d.ts +95 -0
  132. package/dist/utils/responseFormatters.d.ts.map +1 -0
  133. package/dist/utils/responseFormatters.js +342 -0
  134. package/dist/utils/responseFormatters.js.map +1 -0
  135. package/dist/utils/responseWrapper.d.ts +38 -0
  136. package/dist/utils/responseWrapper.d.ts.map +1 -0
  137. package/dist/utils/responseWrapper.js +201 -0
  138. package/dist/utils/responseWrapper.js.map +1 -0
  139. package/dist/utils/sanitize.d.ts +51 -0
  140. package/dist/utils/sanitize.d.ts.map +1 -0
  141. package/dist/utils/sanitize.js +138 -0
  142. package/dist/utils/sanitize.js.map +1 -0
  143. package/dist/utils/validator.d.ts +37 -0
  144. package/dist/utils/validator.d.ts.map +1 -0
  145. package/dist/utils/validator.js +74 -0
  146. package/dist/utils/validator.js.map +1 -0
  147. package/dist/utils/workspaceResolver.d.ts +40 -0
  148. package/dist/utils/workspaceResolver.d.ts.map +1 -0
  149. package/dist/utils/workspaceResolver.js +207 -0
  150. package/dist/utils/workspaceResolver.js.map +1 -0
  151. package/package.json +41 -17
  152. package/.claude/settings.local.json +0 -15
  153. package/.env.example +0 -3
  154. package/sample.png +0 -0
  155. package/src/index.js +0 -179
  156. package/src/mcp-server.js +0 -1137
  157. package/src/routes/motion.js +0 -152
  158. package/src/services/motionApi.js +0 -1177
  159. package/src/worker.js +0 -248
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.statusesToolDefinition = exports.schedulesToolDefinition = exports.recurringTasksToolDefinition = exports.customFieldsToolDefinition = exports.commentsToolDefinition = exports.usersToolDefinition = exports.searchToolDefinition = exports.workspacesToolDefinition = exports.tasksToolDefinition = exports.projectsToolDefinition = exports.TOOL_NAMES = exports.allToolDefinitions = exports.ToolConfigurator = exports.ToolRegistry = void 0;
4
+ var ToolRegistry_1 = require("./ToolRegistry");
5
+ Object.defineProperty(exports, "ToolRegistry", { enumerable: true, get: function () { return ToolRegistry_1.ToolRegistry; } });
6
+ var ToolConfigurator_1 = require("./ToolConfigurator");
7
+ Object.defineProperty(exports, "ToolConfigurator", { enumerable: true, get: function () { return ToolConfigurator_1.ToolConfigurator; } });
8
+ var ToolDefinitions_1 = require("./ToolDefinitions");
9
+ Object.defineProperty(exports, "allToolDefinitions", { enumerable: true, get: function () { return ToolDefinitions_1.allToolDefinitions; } });
10
+ Object.defineProperty(exports, "TOOL_NAMES", { enumerable: true, get: function () { return ToolDefinitions_1.TOOL_NAMES; } });
11
+ Object.defineProperty(exports, "projectsToolDefinition", { enumerable: true, get: function () { return ToolDefinitions_1.projectsToolDefinition; } });
12
+ Object.defineProperty(exports, "tasksToolDefinition", { enumerable: true, get: function () { return ToolDefinitions_1.tasksToolDefinition; } });
13
+ Object.defineProperty(exports, "workspacesToolDefinition", { enumerable: true, get: function () { return ToolDefinitions_1.workspacesToolDefinition; } });
14
+ Object.defineProperty(exports, "searchToolDefinition", { enumerable: true, get: function () { return ToolDefinitions_1.searchToolDefinition; } });
15
+ Object.defineProperty(exports, "usersToolDefinition", { enumerable: true, get: function () { return ToolDefinitions_1.usersToolDefinition; } });
16
+ Object.defineProperty(exports, "commentsToolDefinition", { enumerable: true, get: function () { return ToolDefinitions_1.commentsToolDefinition; } });
17
+ Object.defineProperty(exports, "customFieldsToolDefinition", { enumerable: true, get: function () { return ToolDefinitions_1.customFieldsToolDefinition; } });
18
+ Object.defineProperty(exports, "recurringTasksToolDefinition", { enumerable: true, get: function () { return ToolDefinitions_1.recurringTasksToolDefinition; } });
19
+ Object.defineProperty(exports, "schedulesToolDefinition", { enumerable: true, get: function () { return ToolDefinitions_1.schedulesToolDefinition; } });
20
+ Object.defineProperty(exports, "statusesToolDefinition", { enumerable: true, get: function () { return ToolDefinitions_1.statusesToolDefinition; } });
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":";;;AAAA,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AACrB,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA;AACzB,qDAa2B;AAZzB,qHAAA,kBAAkB,OAAA;AAClB,6GAAA,UAAU,OAAA;AACV,yHAAA,sBAAsB,OAAA;AACtB,sHAAA,mBAAmB,OAAA;AACnB,2HAAA,wBAAwB,OAAA;AACxB,uHAAA,oBAAoB,OAAA;AACpB,sHAAA,mBAAmB,OAAA;AACnB,yHAAA,sBAAsB,OAAA;AACtB,6HAAA,0BAA0B,OAAA;AAC1B,+HAAA,4BAA4B,OAAA;AAC5B,0HAAA,uBAAuB,OAAA;AACvB,yHAAA,sBAAsB,OAAA"}
@@ -0,0 +1,123 @@
1
+ /**
2
+ * Type definitions for consolidated MCP tool arguments
3
+ * All individual tool types removed - only consolidated tools remain
4
+ */
5
+ export interface SearchContentArgs {
6
+ query: string;
7
+ workspaceId?: string;
8
+ workspaceName?: string;
9
+ entityTypes?: Array<'projects' | 'tasks'>;
10
+ }
11
+ export interface GetContextArgs {
12
+ entityType: 'project' | 'task';
13
+ entityId: string;
14
+ includeRelated?: boolean;
15
+ }
16
+ export type ProjectOperation = 'create' | 'list' | 'get';
17
+ export type TaskOperation = 'create' | 'list' | 'get' | 'update' | 'delete' | 'move' | 'unassign' | 'list_all_uncompleted';
18
+ export interface MotionProjectsArgs {
19
+ operation: ProjectOperation;
20
+ projectId?: string;
21
+ workspaceId?: string;
22
+ workspaceName?: string;
23
+ name?: string;
24
+ description?: string;
25
+ color?: string;
26
+ status?: string;
27
+ }
28
+ export interface MotionTasksArgs {
29
+ operation: TaskOperation;
30
+ taskId?: string;
31
+ workspaceId?: string;
32
+ workspaceName?: string;
33
+ projectId?: string;
34
+ projectName?: string;
35
+ assigneeId?: string;
36
+ assignee?: string;
37
+ limit?: number;
38
+ name?: string;
39
+ description?: string;
40
+ status?: string;
41
+ priority?: 'ASAP' | 'HIGH' | 'MEDIUM' | 'LOW';
42
+ dueDate?: string;
43
+ duration?: string | number;
44
+ labels?: string[];
45
+ autoScheduled?: object | null;
46
+ targetProjectId?: string;
47
+ targetWorkspaceId?: string;
48
+ }
49
+ export interface MotionUsersArgs {
50
+ operation: 'list' | 'current';
51
+ workspaceId?: string;
52
+ workspaceName?: string;
53
+ }
54
+ export interface MotionCommentsArgs {
55
+ operation: 'list' | 'create';
56
+ taskId?: string;
57
+ projectId?: string;
58
+ content?: string;
59
+ cursor?: string;
60
+ }
61
+ export interface MotionCustomFieldsArgs {
62
+ operation: 'list' | 'create' | 'delete' | 'add_to_project' | 'remove_from_project' | 'add_to_task' | 'remove_from_task';
63
+ fieldId?: string;
64
+ workspaceId: string;
65
+ name?: string;
66
+ field?: 'text' | 'url' | 'date' | 'person' | 'multiPerson' | 'phone' | 'select' | 'multiSelect' | 'number' | 'email' | 'checkbox' | 'relatedTo';
67
+ options?: string[];
68
+ projectId?: string;
69
+ taskId?: string;
70
+ value?: string | number | boolean | string[] | null;
71
+ }
72
+ export interface MotionRecurringTasksArgs {
73
+ operation: 'list' | 'create' | 'delete';
74
+ recurringTaskId?: string;
75
+ workspaceId?: string;
76
+ name?: string;
77
+ projectId?: string;
78
+ assigneeId?: string;
79
+ frequency?: {
80
+ type: 'daily' | 'weekly' | 'monthly' | 'yearly';
81
+ interval?: number;
82
+ daysOfWeek?: number[];
83
+ dayOfMonth?: number;
84
+ endDate?: string;
85
+ };
86
+ description?: string;
87
+ deadlineType?: 'HARD' | 'SOFT';
88
+ duration?: number | 'REMINDER';
89
+ startingOn?: string;
90
+ idealTime?: string;
91
+ schedule?: string;
92
+ priority?: 'ASAP' | 'HIGH' | 'MEDIUM' | 'LOW';
93
+ }
94
+ export interface MotionSchedulesArgs {
95
+ userId?: string;
96
+ startDate?: string;
97
+ endDate?: string;
98
+ }
99
+ export interface MotionStatusesArgs {
100
+ workspaceId?: string;
101
+ }
102
+ export type WorkspaceOperation = 'list' | 'get' | 'set_default';
103
+ export interface MotionWorkspacesArgs {
104
+ operation: WorkspaceOperation;
105
+ workspaceId?: string;
106
+ }
107
+ export type SearchOperation = 'content' | 'context' | 'smart';
108
+ export interface MotionSearchArgs {
109
+ operation: SearchOperation;
110
+ query?: string;
111
+ searchScope?: 'tasks' | 'projects' | 'both';
112
+ limit?: number;
113
+ includeProjects?: boolean;
114
+ includeTasks?: boolean;
115
+ includeUsers?: boolean;
116
+ entityType?: 'project' | 'task';
117
+ entityId?: string;
118
+ includeRelated?: boolean;
119
+ workspaceId?: string;
120
+ workspaceName?: string;
121
+ }
122
+ export type AllToolArgs = SearchContentArgs | GetContextArgs | MotionProjectsArgs | MotionTasksArgs | MotionUsersArgs | MotionCommentsArgs | MotionCustomFieldsArgs | MotionRecurringTasksArgs | MotionSchedulesArgs | MotionStatusesArgs | MotionWorkspacesArgs | MotionSearchArgs;
123
+ //# sourceMappingURL=mcp-tool-args.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-tool-args.d.ts","sourceRoot":"","sources":["../../src/types/mcp-tool-args.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,KAAK,CAAC,UAAU,GAAG,OAAO,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,SAAS,GAAG,MAAM,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAGD,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAC;AACzD,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,GAAG,sBAAsB,CAAC;AAE3H,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,gBAAgB,CAAC;IAE5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,aAAa,CAAC;IAEzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE9B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,gBAAgB,GAAG,qBAAqB,GAAG,aAAa,GAAG,kBAAkB,CAAC;IACxH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,aAAa,GAAG,OAAO,GAAG,QAAQ,GAAG,aAAa,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,GAAG,WAAW,CAAC;IAChJ,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC;CACrD;AAED,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACxC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE;QACV,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;QAChD,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;CAC/C;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAGD,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,KAAK,GAAG,aAAa,CAAC;AAChE,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,kBAAkB,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AAC9D,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,eAAe,CAAC;IAE3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,MAAM,CAAC;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,UAAU,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAGD,MAAM,MAAM,WAAW,GACnB,iBAAiB,GACjB,cAAc,GACd,kBAAkB,GAClB,eAAe,GACf,eAAe,GACf,kBAAkB,GAClB,sBAAsB,GACtB,wBAAwB,GACxB,mBAAmB,GACnB,kBAAkB,GAClB,oBAAoB,GACpB,gBAAgB,CAAC"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ /**
3
+ * Type definitions for consolidated MCP tool arguments
4
+ * All individual tool types removed - only consolidated tools remain
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ //# sourceMappingURL=mcp-tool-args.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-tool-args.js","sourceRoot":"","sources":["../../src/types/mcp-tool-args.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
@@ -0,0 +1,32 @@
1
+ import { CallToolResult } from "@modelcontextprotocol/sdk/types.js";
2
+ export type McpToolResponse = CallToolResult;
3
+ export interface McpToolDefinition {
4
+ name: string;
5
+ description: string;
6
+ inputSchema: {
7
+ type: 'object';
8
+ properties: Record<string, unknown>;
9
+ required?: string[];
10
+ additionalProperties?: boolean;
11
+ };
12
+ }
13
+ export interface McpLogEntry {
14
+ level: 'debug' | 'info' | 'warn' | 'error';
15
+ msg: string;
16
+ time: string;
17
+ [key: string]: unknown;
18
+ }
19
+ export interface McpRequest {
20
+ method: string;
21
+ params?: Record<string, unknown>;
22
+ }
23
+ export interface McpToolHandler {
24
+ (args: unknown): Promise<McpToolResponse>;
25
+ }
26
+ export interface McpToolRegistry {
27
+ [toolName: string]: {
28
+ definition: McpToolDefinition;
29
+ handler: McpToolHandler;
30
+ };
31
+ }
32
+ //# sourceMappingURL=mcp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/types/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEpE,MAAM,MAAM,eAAe,GAAG,cAAc,CAAC;AAE7C,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACpC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,oBAAoB,CAAC,EAAE,OAAO,CAAC;KAChC,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC3C,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,cAAc;IAC7B,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,eAAe;IAC9B,CAAC,QAAQ,EAAE,MAAM,GAAG;QAClB,UAAU,EAAE,iBAAiB,CAAC;QAC9B,OAAO,EAAE,cAAc,CAAC;KACzB,CAAC;CACH"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=mcp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/types/mcp.ts"],"names":[],"mappings":""}
@@ -0,0 +1,304 @@
1
+ export interface MotionWorkspace {
2
+ id: string;
3
+ name: string;
4
+ teamId: string | null;
5
+ type: string;
6
+ labels: Array<string | {
7
+ name: string;
8
+ }>;
9
+ statuses?: Array<{
10
+ name: string;
11
+ isDefaultStatus: boolean;
12
+ isResolvedStatus: boolean;
13
+ }>;
14
+ }
15
+ /**
16
+ * A minimal reference to a Motion Project, typically used in nested objects
17
+ */
18
+ export interface ProjectReference {
19
+ id: string;
20
+ name: string;
21
+ workspaceId?: string;
22
+ }
23
+ /**
24
+ * A minimal reference to a Motion Workspace, typically used in nested objects
25
+ */
26
+ export interface WorkspaceReference {
27
+ id: string;
28
+ name: string;
29
+ teamId: string | null;
30
+ type?: string;
31
+ }
32
+ /**
33
+ * A minimal reference to a Motion User/Assignee, typically used in nested objects
34
+ */
35
+ export interface AssigneeReference {
36
+ id: string;
37
+ name: string;
38
+ email?: string;
39
+ }
40
+ /**
41
+ * A time chunk reference in Motion, representing a scheduled time block
42
+ */
43
+ export interface ChunkReference {
44
+ id: string;
45
+ duration: number;
46
+ /** ISO 8601 date-time string for the start of the chunk */
47
+ scheduledStart: string;
48
+ /** ISO 8601 date-time string for the end of the chunk */
49
+ scheduledEnd: string;
50
+ completedTime?: string;
51
+ isFixed: boolean;
52
+ [key: string]: unknown;
53
+ }
54
+ /**
55
+ * Pagination metadata for Motion API responses
56
+ */
57
+ export interface MotionPaginationMeta {
58
+ nextCursor?: string;
59
+ pageSize: number;
60
+ }
61
+ /**
62
+ * Generic paginated response structure for Motion API
63
+ */
64
+ export interface MotionPaginatedResponse<T> {
65
+ data: T[];
66
+ meta: MotionPaginationMeta;
67
+ }
68
+ export interface MotionProject {
69
+ id: string;
70
+ name: string;
71
+ description: string;
72
+ workspaceId: string;
73
+ color?: string;
74
+ status?: string | {
75
+ name: string;
76
+ isDefaultStatus: boolean;
77
+ isResolvedStatus: boolean;
78
+ };
79
+ createdTime?: string;
80
+ updatedTime?: string;
81
+ customFieldValues?: Record<string, MotionCustomFieldValue>;
82
+ }
83
+ /**
84
+ * A custom field value in Motion, with type and value information
85
+ */
86
+ export interface MotionCustomFieldValue {
87
+ type: string;
88
+ value: any;
89
+ }
90
+ export interface MotionTask {
91
+ id: string;
92
+ name: string;
93
+ description?: string;
94
+ workspaceId: string;
95
+ projectId?: string;
96
+ status?: string | {
97
+ name: string;
98
+ isDefaultStatus: boolean;
99
+ isResolvedStatus: boolean;
100
+ };
101
+ priority?: 'ASAP' | 'HIGH' | 'MEDIUM' | 'LOW';
102
+ dueDate?: string;
103
+ duration?: number | 'NONE' | 'REMINDER';
104
+ assigneeId?: string;
105
+ labels?: Array<string | {
106
+ name: string;
107
+ }>;
108
+ autoScheduled?: Record<string, unknown> | null;
109
+ completed?: boolean;
110
+ completedTime?: string;
111
+ createdTime?: string;
112
+ updatedTime?: string;
113
+ startOn?: string;
114
+ scheduledStart?: string;
115
+ scheduledEnd?: string;
116
+ deadlineType?: 'HARD' | 'SOFT' | 'NONE';
117
+ parentRecurringTaskId?: string;
118
+ creator?: {
119
+ id: string;
120
+ name: string;
121
+ email: string;
122
+ };
123
+ project?: {
124
+ id: string;
125
+ name: string;
126
+ description?: string;
127
+ workspaceId: string;
128
+ status?: {
129
+ name: string;
130
+ isDefaultStatus: boolean;
131
+ isResolvedStatus: boolean;
132
+ };
133
+ };
134
+ workspace: {
135
+ id: string;
136
+ name: string;
137
+ teamId: string | null;
138
+ type: string;
139
+ };
140
+ assignees?: Array<{
141
+ id: string;
142
+ name: string;
143
+ email: string;
144
+ }>;
145
+ schedulingIssue?: boolean;
146
+ lastInteractedTime?: string;
147
+ customFieldValues?: Record<string, MotionCustomFieldValue>;
148
+ chunks?: Array<{
149
+ id: string;
150
+ duration: number;
151
+ scheduledStart: string;
152
+ scheduledEnd: string;
153
+ completedTime?: string;
154
+ isFixed: boolean;
155
+ }>;
156
+ }
157
+ export interface MotionComment {
158
+ id: string;
159
+ taskId: string;
160
+ content: string;
161
+ createdAt: string;
162
+ creator: AssigneeReference;
163
+ }
164
+ export interface CreateCommentData {
165
+ taskId: string;
166
+ content: string;
167
+ }
168
+ export interface MotionUser {
169
+ id: string;
170
+ name: string;
171
+ email?: string;
172
+ }
173
+ export interface MotionCustomField {
174
+ id: string;
175
+ field: 'text' | 'url' | 'date' | 'person' | 'multiPerson' | 'phone' | 'select' | 'multiSelect' | 'number' | 'email' | 'checkbox' | 'relatedTo';
176
+ }
177
+ export interface CreateCustomFieldData {
178
+ name: string;
179
+ field: 'text' | 'url' | 'date' | 'person' | 'multiPerson' | 'phone' | 'select' | 'multiSelect' | 'number' | 'email' | 'checkbox' | 'relatedTo';
180
+ metadata?: Record<string, unknown>;
181
+ }
182
+ export interface MotionRecurringTask {
183
+ id: string;
184
+ name: string;
185
+ creator: {
186
+ id: string;
187
+ name: string;
188
+ email: string;
189
+ };
190
+ assignee?: {
191
+ id: string;
192
+ name: string;
193
+ email: string;
194
+ };
195
+ project: {
196
+ id: string;
197
+ name: string;
198
+ description: string;
199
+ workspaceId: string;
200
+ status: {
201
+ name: string;
202
+ isDefaultStatus: boolean;
203
+ isResolvedStatus: boolean;
204
+ };
205
+ customFieldValues?: Record<string, MotionCustomFieldValue>;
206
+ };
207
+ workspace: {
208
+ id: string;
209
+ name: string;
210
+ teamId: string | null;
211
+ type: string;
212
+ labels: Array<string | {
213
+ name: string;
214
+ }>;
215
+ statuses?: Array<{
216
+ name: string;
217
+ isDefaultStatus: boolean;
218
+ isResolvedStatus: boolean;
219
+ }>;
220
+ };
221
+ status: {
222
+ name: string;
223
+ isDefaultStatus: boolean;
224
+ isResolvedStatus: boolean;
225
+ };
226
+ priority: 'ASAP' | 'HIGH' | 'MEDIUM' | 'LOW';
227
+ labels: Array<string | {
228
+ name: string;
229
+ }>;
230
+ }
231
+ export interface CreateRecurringTaskData {
232
+ name: string;
233
+ workspaceId: string;
234
+ projectId?: string;
235
+ assigneeId: string;
236
+ frequency: {
237
+ type: 'daily' | 'weekly' | 'monthly' | 'yearly';
238
+ interval?: number;
239
+ daysOfWeek?: number[];
240
+ dayOfMonth?: number;
241
+ endDate?: string;
242
+ };
243
+ description?: string;
244
+ deadlineType?: 'HARD' | 'SOFT';
245
+ duration?: number | 'NONE' | 'REMINDER';
246
+ startingOn?: string;
247
+ idealTime?: string;
248
+ schedule?: string;
249
+ priority?: 'ASAP' | 'HIGH' | 'MEDIUM' | 'LOW';
250
+ }
251
+ export interface MotionStatus {
252
+ name: string;
253
+ isDefaultStatus: boolean;
254
+ isResolvedStatus: boolean;
255
+ }
256
+ export interface MotionTimeSlot {
257
+ start: string;
258
+ end: string;
259
+ }
260
+ export interface MotionScheduleDetails {
261
+ monday?: MotionTimeSlot[];
262
+ tuesday?: MotionTimeSlot[];
263
+ wednesday?: MotionTimeSlot[];
264
+ thursday?: MotionTimeSlot[];
265
+ friday?: MotionTimeSlot[];
266
+ saturday?: MotionTimeSlot[];
267
+ sunday?: MotionTimeSlot[];
268
+ }
269
+ export interface MotionSchedule {
270
+ name: string;
271
+ isDefaultTimezone: boolean;
272
+ timezone: string;
273
+ schedule: MotionScheduleDetails;
274
+ }
275
+ export interface ApiResponse<T> {
276
+ data?: T;
277
+ error?: string;
278
+ status?: number;
279
+ }
280
+ export interface ListResponse<T> {
281
+ items?: T[];
282
+ projects?: T[];
283
+ tasks?: T[];
284
+ workspaces?: T[];
285
+ users?: T[];
286
+ comments?: T[];
287
+ customFields?: T[];
288
+ recurringTasks?: T[];
289
+ schedules?: T[];
290
+ }
291
+ export interface MotionApiErrorResponse {
292
+ message: string;
293
+ code?: string;
294
+ details?: Record<string, unknown>;
295
+ statusCode?: number;
296
+ }
297
+ export interface MotionApiError extends Error {
298
+ response?: {
299
+ status: number;
300
+ statusText: string;
301
+ data?: MotionApiErrorResponse;
302
+ };
303
+ }
304
+ //# sourceMappingURL=motion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"motion.d.ts","sourceRoot":"","sources":["../../src/types/motion.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,CAAC,CAAC;IACvC,QAAQ,CAAC,EAAE,KAAK,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,eAAe,EAAE,OAAO,CAAC;QACzB,gBAAgB,EAAE,OAAO,CAAC;KAC3B,CAAC,CAAC;CACJ;AAID;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,cAAc,EAAE,MAAM,CAAC;IACvB,yDAAyD;IACzD,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB,CAAC,CAAC;IACxC,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,IAAI,EAAE,oBAAoB,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,GAAG;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,eAAe,EAAE,OAAO,CAAC;QACzB,gBAAgB,EAAE,OAAO,CAAC;KAC3B,CAAC;IACF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;CAC5D;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,GAAG,CAAC;CACZ;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,GAAG;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,eAAe,EAAE,OAAO,CAAC;QACzB,gBAAgB,EAAE,OAAO,CAAC;KAC3B,CAAC;IACF,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,CAAC,CAAC;IACxC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC/C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACxC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAG/B,OAAO,CAAC,EAAE;QACR,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IAEF,OAAO,CAAC,EAAE;QACR,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,CAAC,EAAE;YACP,IAAI,EAAE,MAAM,CAAC;YACb,eAAe,EAAE,OAAO,CAAC;YACzB,gBAAgB,EAAE,OAAO,CAAC;SAC3B,CAAC;KACH,CAAC;IAEF,SAAS,EAAE;QACT,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IAEF,SAAS,CAAC,EAAE,KAAK,CAAC;QAChB,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;IAEH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IAC3D,MAAM,CAAC,EAAE,KAAK,CAAC;QACb,EAAE,EAAE,MAAM,CAAC;QACX,QAAQ,EAAE,MAAM,CAAC;QACjB,cAAc,EAAE,MAAM,CAAC;QACvB,YAAY,EAAE,MAAM,CAAC;QACrB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,iBAAiB,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,aAAa,GAClD,OAAO,GAAG,QAAQ,GAAG,aAAa,GAAG,QAAQ,GAC7C,OAAO,GAAG,UAAU,GAAG,WAAW,CAAC;CAC3C;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,aAAa,GACnD,OAAO,GAAG,QAAQ,GAAG,aAAa,GAAG,QAAQ,GAC7C,OAAO,GAAG,UAAU,GAAG,WAAW,CAAC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE;QACP,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,OAAO,EAAE;QACP,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE;YACN,IAAI,EAAE,MAAM,CAAC;YACb,eAAe,EAAE,OAAO,CAAC;YACzB,gBAAgB,EAAE,OAAO,CAAC;SAC3B,CAAC;QACF,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;KAC5D,CAAC;IACF,SAAS,EAAE;QACT,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG;YAAC,IAAI,EAAE,MAAM,CAAA;SAAC,CAAC,CAAC;QACvC,QAAQ,CAAC,EAAE,KAAK,CAAC;YACf,IAAI,EAAE,MAAM,CAAC;YACb,eAAe,EAAE,OAAO,CAAC;YACzB,gBAAgB,EAAE,OAAO,CAAC;SAC3B,CAAC,CAAC;KACJ,CAAC;IACF,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,eAAe,EAAE,OAAO,CAAC;QACzB,gBAAgB,EAAE,OAAO,CAAC;KAC3B,CAAC;IACF,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IAC7C,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE;QACT,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;QAChD,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;CAC/C;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC;IAC1B,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;IAC7B,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC;IAC5B,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC;IAC5B,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB,EAAE,OAAO,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,qBAAqB,CAAC;CACjC;AAED,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;IACZ,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;IACf,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;IACZ,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;IACZ,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;IACf,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC;IACnB,cAAc,CAAC,EAAE,CAAC,EAAE,CAAC;IACrB,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAe,SAAQ,KAAK;IAC3C,QAAQ,CAAC,EAAE;QACT,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,CAAC,EAAE,sBAAsB,CAAC;KAC/B,CAAC;CACH"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=motion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"motion.js","sourceRoot":"","sources":["../../src/types/motion.ts"],"names":[],"mappings":""}
@@ -0,0 +1,25 @@
1
+ export declare class SimpleCache<T = any> {
2
+ private cache;
3
+ private ttlMs;
4
+ private maxSize;
5
+ private cleanupInterval;
6
+ constructor(ttlSeconds?: number, maxSize?: number, options?: {
7
+ autoCleanup?: boolean;
8
+ });
9
+ /**
10
+ * Destroy the cache and clean up resources
11
+ */
12
+ destroy(): void;
13
+ set(key: string, value: T): void;
14
+ get(key: string): T | null;
15
+ invalidate(pattern?: string | null): void;
16
+ withCache(key: string, fn: () => Promise<T>): Promise<T>;
17
+ getStats(): {
18
+ size: number;
19
+ maxSize: number;
20
+ ttlSeconds: number;
21
+ };
22
+ cleanup(): void;
23
+ }
24
+ export default SimpleCache;
25
+ //# sourceMappingURL=cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/utils/cache.ts"],"names":[],"mappings":"AAQA,qBAAa,WAAW,CAAC,CAAC,GAAG,GAAG;IAC9B,OAAO,CAAC,KAAK,CAA4B;IACzC,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,eAAe,CAA+B;gBAE1C,UAAU,GAAE,MAAY,EAAE,OAAO,GAAE,MAAa,EAAE,OAAO,GAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAO;IAiBrG;;OAEG;IACH,OAAO,IAAI,IAAI;IAQf,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAoBhC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI;IAkB1B,UAAU,CAAC,OAAO,GAAE,MAAM,GAAG,IAAW,GAAG,IAAI;IA0BzC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAsB9D,QAAQ,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;IASjE,OAAO,IAAI,IAAI;CAkBhB;AAED,eAAe,WAAW,CAAC"}