@chykalophia/clickup-mcp-server 3.2.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 (211) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +467 -0
  3. package/bin/clickup-mcp-server-ai.js +9 -0
  4. package/bin/clickup-mcp-server-basic.js +9 -0
  5. package/bin/clickup-mcp-server-efficiency.js +9 -0
  6. package/bin/clickup-mcp-server-enhanced.js +9 -0
  7. package/build/app.d.ts +1 -0
  8. package/build/app.js +2 -0
  9. package/build/app.js.map +1 -0
  10. package/build/clickup-client/attachments-enhanced.d.ts +128 -0
  11. package/build/clickup-client/attachments-enhanced.js +212 -0
  12. package/build/clickup-client/attachments-enhanced.js.map +1 -0
  13. package/build/clickup-client/auth.d.ts +254 -0
  14. package/build/clickup-client/auth.js +105 -0
  15. package/build/clickup-client/auth.js.map +1 -0
  16. package/build/clickup-client/chat-enhanced.d.ts +141 -0
  17. package/build/clickup-client/chat-enhanced.js +196 -0
  18. package/build/clickup-client/chat-enhanced.js.map +1 -0
  19. package/build/clickup-client/checklists.d.ts +87 -0
  20. package/build/clickup-client/checklists.js +63 -0
  21. package/build/clickup-client/checklists.js.map +1 -0
  22. package/build/clickup-client/comments-enhanced.d.ts +176 -0
  23. package/build/clickup-client/comments-enhanced.js +230 -0
  24. package/build/clickup-client/comments-enhanced.js.map +1 -0
  25. package/build/clickup-client/comments.d.ts +173 -0
  26. package/build/clickup-client/comments.js +312 -0
  27. package/build/clickup-client/comments.js.map +1 -0
  28. package/build/clickup-client/custom-fields-enhanced.d.ts +286 -0
  29. package/build/clickup-client/custom-fields-enhanced.js +416 -0
  30. package/build/clickup-client/custom-fields-enhanced.js.map +1 -0
  31. package/build/clickup-client/dependencies-enhanced.d.ts +144 -0
  32. package/build/clickup-client/dependencies-enhanced.js +142 -0
  33. package/build/clickup-client/dependencies-enhanced.js.map +1 -0
  34. package/build/clickup-client/docs-enhanced.d.ts +176 -0
  35. package/build/clickup-client/docs-enhanced.js +374 -0
  36. package/build/clickup-client/docs-enhanced.js.map +1 -0
  37. package/build/clickup-client/docs.d.ts +84 -0
  38. package/build/clickup-client/docs.js +156 -0
  39. package/build/clickup-client/docs.js.map +1 -0
  40. package/build/clickup-client/folders.d.ts +62 -0
  41. package/build/clickup-client/folders.js +53 -0
  42. package/build/clickup-client/folders.js.map +1 -0
  43. package/build/clickup-client/goals-enhanced.d.ts +163 -0
  44. package/build/clickup-client/goals-enhanced.js +309 -0
  45. package/build/clickup-client/goals-enhanced.js.map +1 -0
  46. package/build/clickup-client/index.d.ts +16 -0
  47. package/build/clickup-client/index.js +61 -0
  48. package/build/clickup-client/index.js.map +1 -0
  49. package/build/clickup-client/lists.d.ts +105 -0
  50. package/build/clickup-client/lists.js +108 -0
  51. package/build/clickup-client/lists.js.map +1 -0
  52. package/build/clickup-client/secure-client.d.ts +88 -0
  53. package/build/clickup-client/secure-client.js +275 -0
  54. package/build/clickup-client/secure-client.js.map +1 -0
  55. package/build/clickup-client/spaces.d.ts +58 -0
  56. package/build/clickup-client/spaces.js +28 -0
  57. package/build/clickup-client/spaces.js.map +1 -0
  58. package/build/clickup-client/tasks.d.ts +161 -0
  59. package/build/clickup-client/tasks.js +99 -0
  60. package/build/clickup-client/tasks.js.map +1 -0
  61. package/build/clickup-client/time-tracking-enhanced.d.ts +153 -0
  62. package/build/clickup-client/time-tracking-enhanced.js +292 -0
  63. package/build/clickup-client/time-tracking-enhanced.js.map +1 -0
  64. package/build/clickup-client/views-enhanced.d.ts +149 -0
  65. package/build/clickup-client/views-enhanced.js +210 -0
  66. package/build/clickup-client/views-enhanced.js.map +1 -0
  67. package/build/clickup-client/webhooks-enhanced.d.ts +119 -0
  68. package/build/clickup-client/webhooks-enhanced.js +169 -0
  69. package/build/clickup-client/webhooks-enhanced.js.map +1 -0
  70. package/build/controllers/lists.controller.d.ts +1 -0
  71. package/build/controllers/lists.controller.js +2 -0
  72. package/build/controllers/lists.controller.js.map +1 -0
  73. package/build/index-efficiency-simple.d.ts +2 -0
  74. package/build/index-efficiency-simple.js +379 -0
  75. package/build/index-efficiency-simple.js.map +1 -0
  76. package/build/index-enhanced-efficiency.d.ts +2 -0
  77. package/build/index-enhanced-efficiency.js +275 -0
  78. package/build/index-enhanced-efficiency.js.map +1 -0
  79. package/build/index-enhanced.d.ts +2 -0
  80. package/build/index-enhanced.js +74 -0
  81. package/build/index-enhanced.js.map +1 -0
  82. package/build/index.d.ts +2 -0
  83. package/build/index.js +77 -0
  84. package/build/index.js.map +1 -0
  85. package/build/resources/checklist-resources.d.ts +2 -0
  86. package/build/resources/checklist-resources.js +102 -0
  87. package/build/resources/checklist-resources.js.map +1 -0
  88. package/build/resources/comment-resources.d.ts +2 -0
  89. package/build/resources/comment-resources.js +152 -0
  90. package/build/resources/comment-resources.js.map +1 -0
  91. package/build/resources/doc-resources.d.ts +2 -0
  92. package/build/resources/doc-resources.js +77 -0
  93. package/build/resources/doc-resources.js.map +1 -0
  94. package/build/resources/folder-resources.d.ts +2 -0
  95. package/build/resources/folder-resources.js +160 -0
  96. package/build/resources/folder-resources.js.map +1 -0
  97. package/build/resources/list-resources.d.ts +2 -0
  98. package/build/resources/list-resources.js +104 -0
  99. package/build/resources/list-resources.js.map +1 -0
  100. package/build/resources/space-resources.d.ts +2 -0
  101. package/build/resources/space-resources.js +104 -0
  102. package/build/resources/space-resources.js.map +1 -0
  103. package/build/resources/task-resources.d.ts +2 -0
  104. package/build/resources/task-resources.js +57 -0
  105. package/build/resources/task-resources.js.map +1 -0
  106. package/build/routes/lists.routes.d.ts +1 -0
  107. package/build/routes/lists.routes.js +2 -0
  108. package/build/routes/lists.routes.js.map +1 -0
  109. package/build/schemas/attachments-schemas.d.ts +201 -0
  110. package/build/schemas/attachments-schemas.js +250 -0
  111. package/build/schemas/attachments-schemas.js.map +1 -0
  112. package/build/schemas/chat-schemas.d.ts +478 -0
  113. package/build/schemas/chat-schemas.js +173 -0
  114. package/build/schemas/chat-schemas.js.map +1 -0
  115. package/build/schemas/custom-field-schemas.d.ts +1617 -0
  116. package/build/schemas/custom-field-schemas.js +384 -0
  117. package/build/schemas/custom-field-schemas.js.map +1 -0
  118. package/build/schemas/dependencies-schemas.d.ts +274 -0
  119. package/build/schemas/dependencies-schemas.js +176 -0
  120. package/build/schemas/dependencies-schemas.js.map +1 -0
  121. package/build/schemas/document-schemas.d.ts +433 -0
  122. package/build/schemas/document-schemas.js +168 -0
  123. package/build/schemas/document-schemas.js.map +1 -0
  124. package/build/schemas/goals-schemas.d.ts +961 -0
  125. package/build/schemas/goals-schemas.js +293 -0
  126. package/build/schemas/goals-schemas.js.map +1 -0
  127. package/build/schemas/time-tracking-schemas.d.ts +741 -0
  128. package/build/schemas/time-tracking-schemas.js +234 -0
  129. package/build/schemas/time-tracking-schemas.js.map +1 -0
  130. package/build/schemas/views-schemas.d.ts +1168 -0
  131. package/build/schemas/views-schemas.js +221 -0
  132. package/build/schemas/views-schemas.js.map +1 -0
  133. package/build/schemas/webhook-schemas.d.ts +1127 -0
  134. package/build/schemas/webhook-schemas.js +137 -0
  135. package/build/schemas/webhook-schemas.js.map +1 -0
  136. package/build/services/lists.service.d.ts +1 -0
  137. package/build/services/lists.service.js +2 -0
  138. package/build/services/lists.service.js.map +1 -0
  139. package/build/tools/attachments-tools-setup.d.ts +2 -0
  140. package/build/tools/attachments-tools-setup.js +387 -0
  141. package/build/tools/attachments-tools-setup.js.map +1 -0
  142. package/build/tools/chat-tools-enhanced.d.ts +5 -0
  143. package/build/tools/chat-tools-enhanced.js +396 -0
  144. package/build/tools/chat-tools-enhanced.js.map +1 -0
  145. package/build/tools/chat-tools.d.ts +2 -0
  146. package/build/tools/chat-tools.js +614 -0
  147. package/build/tools/chat-tools.js.map +1 -0
  148. package/build/tools/checklist-tools.d.ts +2 -0
  149. package/build/tools/checklist-tools.js +139 -0
  150. package/build/tools/checklist-tools.js.map +1 -0
  151. package/build/tools/comment-tools.d.ts +2 -0
  152. package/build/tools/comment-tools.js +295 -0
  153. package/build/tools/comment-tools.js.map +1 -0
  154. package/build/tools/custom-field-tools.d.ts +2 -0
  155. package/build/tools/custom-field-tools.js +578 -0
  156. package/build/tools/custom-field-tools.js.map +1 -0
  157. package/build/tools/dependencies-tools-setup.d.ts +2 -0
  158. package/build/tools/dependencies-tools-setup.js +319 -0
  159. package/build/tools/dependencies-tools-setup.js.map +1 -0
  160. package/build/tools/doc-tools-enhanced.d.ts +2 -0
  161. package/build/tools/doc-tools-enhanced.js +417 -0
  162. package/build/tools/doc-tools-enhanced.js.map +1 -0
  163. package/build/tools/doc-tools.d.ts +2 -0
  164. package/build/tools/doc-tools.js +109 -0
  165. package/build/tools/doc-tools.js.map +1 -0
  166. package/build/tools/goals-tools.d.ts +2 -0
  167. package/build/tools/goals-tools.js +422 -0
  168. package/build/tools/goals-tools.js.map +1 -0
  169. package/build/tools/helper-tools.d.ts +2 -0
  170. package/build/tools/helper-tools.js +363 -0
  171. package/build/tools/helper-tools.js.map +1 -0
  172. package/build/tools/space-tools.d.ts +2 -0
  173. package/build/tools/space-tools.js +45 -0
  174. package/build/tools/space-tools.js.map +1 -0
  175. package/build/tools/task-tools.d.ts +2 -0
  176. package/build/tools/task-tools.js +415 -0
  177. package/build/tools/task-tools.js.map +1 -0
  178. package/build/tools/time-tracking-tools.d.ts +2 -0
  179. package/build/tools/time-tracking-tools.js +329 -0
  180. package/build/tools/time-tracking-tools.js.map +1 -0
  181. package/build/tools/views-tools-setup.d.ts +2 -0
  182. package/build/tools/views-tools-setup.js +358 -0
  183. package/build/tools/views-tools-setup.js.map +1 -0
  184. package/build/tools/webhook-tools-setup.d.ts +2 -0
  185. package/build/tools/webhook-tools-setup.js +304 -0
  186. package/build/tools/webhook-tools-setup.js.map +1 -0
  187. package/build/tools/webhook-tools.d.ts +4 -0
  188. package/build/tools/webhook-tools.js +345 -0
  189. package/build/tools/webhook-tools.js.map +1 -0
  190. package/build/utils/clickup-comment-formatter.d.ts +124 -0
  191. package/build/utils/clickup-comment-formatter.js +504 -0
  192. package/build/utils/clickup-comment-formatter.js.map +1 -0
  193. package/build/utils/context-aware-suggestions.d.ts +45 -0
  194. package/build/utils/context-aware-suggestions.js +360 -0
  195. package/build/utils/context-aware-suggestions.js.map +1 -0
  196. package/build/utils/error-handling.d.ts +140 -0
  197. package/build/utils/error-handling.js +392 -0
  198. package/build/utils/error-handling.js.map +1 -0
  199. package/build/utils/markdown-styling.d.ts +40 -0
  200. package/build/utils/markdown-styling.js +344 -0
  201. package/build/utils/markdown-styling.js.map +1 -0
  202. package/build/utils/markdown.d.ts +54 -0
  203. package/build/utils/markdown.js +243 -0
  204. package/build/utils/markdown.js.map +1 -0
  205. package/build/utils/security.d.ts +79 -0
  206. package/build/utils/security.js +303 -0
  207. package/build/utils/security.js.map +1 -0
  208. package/build/utils/tool-efficiency.d.ts +59 -0
  209. package/build/utils/tool-efficiency.js +247 -0
  210. package/build/utils/tool-efficiency.js.map +1 -0
  211. package/package.json +130 -0
@@ -0,0 +1,392 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Comprehensive error handling utilities for the ClickUp MCP Server
4
+ */
5
+ // Error types
6
+ /* eslint-disable @typescript-eslint/no-unused-vars */
7
+ export var ErrorType;
8
+ (function (ErrorType) {
9
+ ErrorType["VALIDATION"] = "VALIDATION";
10
+ ErrorType["AUTHENTICATION"] = "AUTHENTICATION";
11
+ ErrorType["AUTHORIZATION"] = "AUTHORIZATION";
12
+ ErrorType["NOT_FOUND"] = "NOT_FOUND";
13
+ ErrorType["RATE_LIMIT"] = "RATE_LIMIT";
14
+ ErrorType["API_ERROR"] = "API_ERROR";
15
+ ErrorType["NETWORK_ERROR"] = "NETWORK_ERROR";
16
+ ErrorType["TIMEOUT"] = "TIMEOUT";
17
+ ErrorType["INTERNAL_ERROR"] = "INTERNAL_ERROR";
18
+ ErrorType["WEBHOOK_ERROR"] = "WEBHOOK_ERROR";
19
+ ErrorType["FILE_ERROR"] = "FILE_ERROR";
20
+ })(ErrorType || (ErrorType = {}));
21
+ // Error severity levels
22
+ export var ErrorSeverity;
23
+ (function (ErrorSeverity) {
24
+ ErrorSeverity["LOW"] = "LOW";
25
+ ErrorSeverity["MEDIUM"] = "MEDIUM";
26
+ ErrorSeverity["HIGH"] = "HIGH";
27
+ ErrorSeverity["CRITICAL"] = "CRITICAL";
28
+ })(ErrorSeverity || (ErrorSeverity = {}));
29
+ /**
30
+ * Create a structured error
31
+ */
32
+ export const createStructuredError = (type, message, options = {}) => {
33
+ return {
34
+ type,
35
+ severity: options.severity || ErrorSeverity.MEDIUM,
36
+ message,
37
+ code: options.code,
38
+ details: options.details,
39
+ timestamp: new Date().toISOString(),
40
+ requestId: options.requestId,
41
+ userId: options.userId,
42
+ workspaceId: options.workspaceId,
43
+ stack: options.originalError?.stack,
44
+ retryable: options.retryable || false,
45
+ retryAfter: options.retryAfter
46
+ };
47
+ };
48
+ /**
49
+ * Convert structured error to MCP response
50
+ */
51
+ export const errorToMcpResponse = (error) => {
52
+ const userMessage = getUserFriendlyMessage(error);
53
+ return {
54
+ content: [{
55
+ type: 'text',
56
+ text: userMessage
57
+ }],
58
+ isError: true,
59
+ _meta: {
60
+ errorType: error.type,
61
+ severity: error.severity,
62
+ retryable: error.retryable,
63
+ retryAfter: error.retryAfter
64
+ }
65
+ };
66
+ };
67
+ /**
68
+ * Get user-friendly error message
69
+ */
70
+ export const getUserFriendlyMessage = (error) => {
71
+ const baseMessage = `Error: ${error.message}`;
72
+ let additionalInfo = '';
73
+ if (error.retryable && error.retryAfter) {
74
+ additionalInfo += `\n\nThis operation can be retried after ${error.retryAfter} seconds.`;
75
+ }
76
+ else if (error.retryable) {
77
+ additionalInfo += '\n\nThis operation can be retried.';
78
+ }
79
+ if (error.type === ErrorType.RATE_LIMIT) {
80
+ additionalInfo += '\n\nPlease reduce the frequency of requests.';
81
+ }
82
+ if (error.type === ErrorType.AUTHENTICATION) {
83
+ additionalInfo += '\n\nPlease check your ClickUp API token.';
84
+ }
85
+ if (error.type === ErrorType.VALIDATION && error.details?.errors) {
86
+ const validationErrors = Array.isArray(error.details.errors)
87
+ ? error.details.errors.join(', ')
88
+ : error.details.errors;
89
+ additionalInfo += `\n\nValidation errors: ${validationErrors}`;
90
+ }
91
+ return baseMessage + additionalInfo;
92
+ };
93
+ /**
94
+ * Handle ClickUp API errors
95
+ */
96
+ export const handleClickUpApiError = (error, context) => {
97
+ if (error.response) {
98
+ const status = error.response.status;
99
+ const data = error.response.data;
100
+ // Map HTTP status codes to error types
101
+ let errorType;
102
+ let severity;
103
+ let retryable = false;
104
+ let retryAfter;
105
+ switch (status) {
106
+ case 400:
107
+ errorType = ErrorType.VALIDATION;
108
+ severity = ErrorSeverity.LOW;
109
+ break;
110
+ case 401:
111
+ errorType = ErrorType.AUTHENTICATION;
112
+ severity = ErrorSeverity.HIGH;
113
+ break;
114
+ case 403:
115
+ errorType = ErrorType.AUTHORIZATION;
116
+ severity = ErrorSeverity.HIGH;
117
+ break;
118
+ case 404:
119
+ errorType = ErrorType.NOT_FOUND;
120
+ severity = ErrorSeverity.LOW;
121
+ break;
122
+ case 429:
123
+ errorType = ErrorType.RATE_LIMIT;
124
+ severity = ErrorSeverity.MEDIUM;
125
+ retryable = true;
126
+ retryAfter = parseInt(error.response.headers['retry-after'], 10) || 60;
127
+ break;
128
+ case 500:
129
+ case 502:
130
+ case 503:
131
+ case 504:
132
+ errorType = ErrorType.API_ERROR;
133
+ severity = ErrorSeverity.HIGH;
134
+ retryable = true;
135
+ retryAfter = 30;
136
+ break;
137
+ default:
138
+ errorType = ErrorType.API_ERROR;
139
+ severity = ErrorSeverity.MEDIUM;
140
+ retryable = status >= 500;
141
+ }
142
+ return createStructuredError(errorType, data?.err || data?.error || error.message || `HTTP ${status} error`, {
143
+ severity,
144
+ code: status.toString(),
145
+ details: {
146
+ status,
147
+ data,
148
+ operation: context?.operation
149
+ },
150
+ requestId: context?.requestId,
151
+ userId: context?.userId,
152
+ workspaceId: context?.workspaceId,
153
+ originalError: error,
154
+ retryable,
155
+ retryAfter
156
+ });
157
+ }
158
+ if (error.code === 'ECONNABORTED' || error.code === 'ETIMEDOUT') {
159
+ return createStructuredError(ErrorType.TIMEOUT, 'Request timed out', {
160
+ severity: ErrorSeverity.MEDIUM,
161
+ code: error.code,
162
+ details: { operation: context?.operation },
163
+ requestId: context?.requestId,
164
+ userId: context?.userId,
165
+ workspaceId: context?.workspaceId,
166
+ originalError: error,
167
+ retryable: true,
168
+ retryAfter: 10
169
+ });
170
+ }
171
+ if (error.code === 'ENOTFOUND' || error.code === 'ECONNREFUSED') {
172
+ return createStructuredError(ErrorType.NETWORK_ERROR, 'Network connection failed', {
173
+ severity: ErrorSeverity.HIGH,
174
+ code: error.code,
175
+ details: { operation: context?.operation },
176
+ requestId: context?.requestId,
177
+ userId: context?.userId,
178
+ workspaceId: context?.workspaceId,
179
+ originalError: error,
180
+ retryable: true,
181
+ retryAfter: 30
182
+ });
183
+ }
184
+ return createStructuredError(ErrorType.INTERNAL_ERROR, error.message || 'Unknown error occurred', {
185
+ severity: ErrorSeverity.HIGH,
186
+ details: { operation: context?.operation },
187
+ requestId: context?.requestId,
188
+ userId: context?.userId,
189
+ workspaceId: context?.workspaceId,
190
+ originalError: error,
191
+ retryable: false
192
+ });
193
+ };
194
+ /**
195
+ * Handle validation errors
196
+ */
197
+ export const handleValidationError = (error, context) => {
198
+ const errors = error.errors.map(err => `${err.path.join('.')}: ${err.message}`);
199
+ return createStructuredError(ErrorType.VALIDATION, 'Input validation failed', {
200
+ severity: ErrorSeverity.LOW,
201
+ details: {
202
+ errors,
203
+ operation: context?.operation
204
+ },
205
+ requestId: context?.requestId,
206
+ retryable: false
207
+ });
208
+ };
209
+ /**
210
+ * Handle webhook errors
211
+ */
212
+ export const handleWebhookError = (error, context) => {
213
+ return createStructuredError(ErrorType.WEBHOOK_ERROR, error.message || 'Webhook processing failed', {
214
+ severity: ErrorSeverity.MEDIUM,
215
+ details: {
216
+ webhookId: context?.webhookId,
217
+ eventType: context?.eventType
218
+ },
219
+ requestId: context?.requestId,
220
+ originalError: error,
221
+ retryable: true,
222
+ retryAfter: 60
223
+ });
224
+ };
225
+ /**
226
+ * Handle file operation errors
227
+ */
228
+ export const handleFileError = (error, context) => {
229
+ let message = error.message || 'File operation failed';
230
+ let severity = ErrorSeverity.MEDIUM;
231
+ if (error.code === 'ENOENT') {
232
+ message = 'File not found';
233
+ severity = ErrorSeverity.LOW;
234
+ }
235
+ else if (error.code === 'EACCES') {
236
+ message = 'Permission denied';
237
+ severity = ErrorSeverity.HIGH;
238
+ }
239
+ else if (error.code === 'ENOSPC') {
240
+ message = 'No space left on device';
241
+ severity = ErrorSeverity.HIGH;
242
+ }
243
+ return createStructuredError(ErrorType.FILE_ERROR, message, {
244
+ severity,
245
+ code: error.code,
246
+ details: {
247
+ filename: context?.filename,
248
+ operation: context?.operation
249
+ },
250
+ requestId: context?.requestId,
251
+ originalError: error,
252
+ retryable: error.code !== 'EACCES'
253
+ });
254
+ };
255
+ /**
256
+ * Retry mechanism with exponential backoff
257
+ */
258
+ export class RetryManager {
259
+ constructor(maxRetries = 3, baseDelay = 1000, maxDelay = 30000) {
260
+ this.maxRetries = maxRetries;
261
+ this.baseDelay = baseDelay;
262
+ this.maxDelay = maxDelay;
263
+ }
264
+ async executeWithRetry(operation, context) {
265
+ let lastError;
266
+ for (let attempt = 0; attempt <= this.maxRetries; attempt++) {
267
+ try {
268
+ return await operation();
269
+ }
270
+ catch (error) {
271
+ const structuredError = error instanceof Error
272
+ ? handleClickUpApiError(error, { operation: context?.operationName, requestId: context?.requestId })
273
+ : error;
274
+ lastError = structuredError;
275
+ // Don't retry if not retryable or on last attempt
276
+ if (!structuredError.retryable || attempt === this.maxRetries) {
277
+ break;
278
+ }
279
+ // Calculate delay with exponential backoff
280
+ const delay = Math.min(this.baseDelay * Math.pow(2, attempt), structuredError.retryAfter ? structuredError.retryAfter * 1000 : this.maxDelay);
281
+ console.warn(`Attempt ${attempt + 1} failed, retrying in ${delay}ms:`, structuredError.message);
282
+ await new Promise(resolve => setTimeout(resolve, delay));
283
+ }
284
+ }
285
+ throw lastError;
286
+ }
287
+ }
288
+ /**
289
+ * Global error logger
290
+ */
291
+ export const logError = (error) => {
292
+ const logLevel = error.severity === ErrorSeverity.CRITICAL ? 'error' :
293
+ error.severity === ErrorSeverity.HIGH ? 'error' :
294
+ error.severity === ErrorSeverity.MEDIUM ? 'warn' : 'info';
295
+ const logData = {
296
+ timestamp: error.timestamp,
297
+ type: error.type,
298
+ severity: error.severity,
299
+ message: error.message,
300
+ code: error.code,
301
+ details: error.details,
302
+ requestId: error.requestId,
303
+ userId: error.userId,
304
+ workspaceId: error.workspaceId,
305
+ retryable: error.retryable
306
+ };
307
+ console[logLevel](`[${error.type}] ${error.message}`, logData);
308
+ // In production, send to monitoring service
309
+ if (error.severity === ErrorSeverity.CRITICAL) {
310
+ // Send alert to monitoring system
311
+ console.error('CRITICAL ERROR - IMMEDIATE ATTENTION REQUIRED', logData);
312
+ }
313
+ };
314
+ /**
315
+ * Wrap MCP tool execution with error handling
316
+ */
317
+ export const wrapMcpTool = (toolName, schema, handler) => {
318
+ return async (args) => {
319
+ const requestId = generateRequestId();
320
+ try {
321
+ // Validate input
322
+ const validatedArgs = schema.parse(args);
323
+ // Execute handler with proper type casting
324
+ const result = await handler(validatedArgs);
325
+ // Return success response
326
+ return {
327
+ content: [{
328
+ type: 'text',
329
+ text: typeof result === 'string' ? result : JSON.stringify(result, null, 2)
330
+ }]
331
+ };
332
+ }
333
+ catch (error) {
334
+ let structuredError;
335
+ if (error instanceof z.ZodError) {
336
+ structuredError = handleValidationError(error, { operation: toolName, requestId });
337
+ }
338
+ else if (error instanceof Error) {
339
+ structuredError = handleClickUpApiError(error, { operation: toolName, requestId });
340
+ }
341
+ else {
342
+ structuredError = error;
343
+ }
344
+ // Log error
345
+ logError(structuredError);
346
+ // Return error response
347
+ return errorToMcpResponse(structuredError);
348
+ }
349
+ };
350
+ };
351
+ /**
352
+ * Generate unique request ID
353
+ */
354
+ export const generateRequestId = () => {
355
+ return `req_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
356
+ };
357
+ /**
358
+ * Health check utilities
359
+ */
360
+ export const performHealthCheck = async () => {
361
+ const checks = {};
362
+ // Check environment variables
363
+ const startTime = Date.now();
364
+ try {
365
+ const envValidation = require('../utils/security').validateEnvironment();
366
+ checks.environment = {
367
+ status: envValidation.isValid ? 'pass' : 'fail',
368
+ message: envValidation.isValid ? 'All required environment variables present' : envValidation.errors.join(', '),
369
+ duration: Date.now() - startTime
370
+ };
371
+ }
372
+ catch (error) {
373
+ checks.environment = {
374
+ status: 'fail',
375
+ message: 'Failed to validate environment',
376
+ duration: Date.now() - startTime
377
+ };
378
+ }
379
+ // Check memory usage
380
+ const memoryUsage = process.memoryUsage();
381
+ const memoryThreshold = 500 * 1024 * 1024; // 500MB
382
+ checks.memory = {
383
+ status: memoryUsage.heapUsed < memoryThreshold ? 'pass' : 'fail',
384
+ message: `Heap used: ${Math.round(memoryUsage.heapUsed / 1024 / 1024)}MB`,
385
+ duration: 0
386
+ };
387
+ // Determine overall status
388
+ const failedChecks = Object.values(checks).filter(check => check.status === 'fail').length;
389
+ const status = failedChecks === 0 ? 'healthy' : failedChecks <= 1 ? 'degraded' : 'unhealthy';
390
+ return { status, checks };
391
+ };
392
+ //# sourceMappingURL=error-handling.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-handling.js","sourceRoot":"","sources":["../../src/utils/error-handling.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Simple Markdown Styling Processor
3
+ * Provides enhanced display formatting for markdown content with visual styling
4
+ */
5
+ export interface MarkdownStyleOptions {
6
+ useColors?: boolean;
7
+ useEmojis?: boolean;
8
+ indentSize?: number;
9
+ maxWidth?: number;
10
+ }
11
+ /**
12
+ * Main function to apply simple markdown styling
13
+ * @param markdown The markdown content to style
14
+ * @param options Styling options
15
+ * @returns Styled markdown content with visual enhancements
16
+ */
17
+ export declare function applyMarkdownStyling(markdown: string, options?: MarkdownStyleOptions): string;
18
+ /**
19
+ * Create a styled preview of markdown content
20
+ * @param markdown The markdown content
21
+ * @param title Optional title for the preview
22
+ * @param options Styling options
23
+ * @returns Formatted preview with title and borders
24
+ */
25
+ export declare function createMarkdownPreview(markdown: string, title?: string, options?: MarkdownStyleOptions): string;
26
+ /**
27
+ * Extract and style markdown sections
28
+ * @param markdown The markdown content
29
+ * @param sectionType The type of section to extract ('headers', 'code', 'lists', etc.)
30
+ * @param options Styling options
31
+ * @returns Styled sections
32
+ */
33
+ export declare function extractStyledSections(markdown: string, sectionType: 'headers' | 'code' | 'lists' | 'quotes' | 'links', options?: MarkdownStyleOptions): string[];
34
+ /**
35
+ * Create a markdown summary with key information highlighted
36
+ * @param markdown The markdown content
37
+ * @param options Styling options
38
+ * @returns Styled summary
39
+ */
40
+ export declare function createMarkdownSummary(markdown: string, options?: MarkdownStyleOptions): string;