@taazkareem/clickup-mcp-server 0.12.15 → 0.13.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 (82) hide show
  1. package/README.md +76 -78
  2. package/build/auth/routes.js +1 -1
  3. package/build/config.js +1 -1
  4. package/build/index.js +1 -1
  5. package/build/license.js +1 -1
  6. package/build/logger.js +1 -1
  7. package/build/middleware/auth.js +1 -1
  8. package/build/middleware/security.js +1 -1
  9. package/build/prompts.js +1 -1
  10. package/build/server.js +1 -1
  11. package/build/services/clickup/base.js +1 -1
  12. package/build/services/clickup/bulk.js +1 -1
  13. package/build/services/clickup/chat.js +1 -1
  14. package/build/services/clickup/custom-field.js +1 -0
  15. package/build/services/clickup/document.js +1 -1
  16. package/build/services/clickup/errors.js +1 -1
  17. package/build/services/clickup/folder.js +1 -1
  18. package/build/services/clickup/goal.js +1 -0
  19. package/build/services/clickup/index.js +1 -1
  20. package/build/services/clickup/list.js +1 -1
  21. package/build/services/clickup/rate-limiter.js +1 -1
  22. package/build/services/clickup/tag.js +1 -1
  23. package/build/services/clickup/task/index.js +1 -1
  24. package/build/services/clickup/task/task-attachments.js +1 -1
  25. package/build/services/clickup/task/task-checklists.js +1 -1
  26. package/build/services/clickup/task/task-comments.js +1 -1
  27. package/build/services/clickup/task/task-core.js +1 -1
  28. package/build/services/clickup/task/task-relationships.js +1 -1
  29. package/build/services/clickup/task/task-search.js +1 -1
  30. package/build/services/clickup/task/task-service.js +1 -1
  31. package/build/services/clickup/task/task-tags.js +1 -1
  32. package/build/services/clickup/task-templates.js +1 -0
  33. package/build/services/clickup/time.js +1 -1
  34. package/build/services/clickup/types.js +1 -1
  35. package/build/services/clickup/view.js +1 -0
  36. package/build/services/clickup/workspace.js +1 -1
  37. package/build/services/oauth.js +1 -1
  38. package/build/services/shared.js +1 -1
  39. package/build/sse_server.js +1 -1
  40. package/build/tools/chat/handlers.js +1 -1
  41. package/build/tools/chat/index.js +1 -1
  42. package/build/tools/chat/utils.js +1 -1
  43. package/build/tools/custom-field.js +1 -0
  44. package/build/tools/documents.js +1 -1
  45. package/build/tools/feedback.js +1 -1
  46. package/build/tools/folder.js +1 -1
  47. package/build/tools/goal.js +1 -0
  48. package/build/tools/index.js +1 -1
  49. package/build/tools/list.js +1 -1
  50. package/build/tools/member.js +1 -1
  51. package/build/tools/registry.js +1 -1
  52. package/build/tools/space.js +1 -0
  53. package/build/tools/tag.js +1 -1
  54. package/build/tools/task/attachments.js +1 -1
  55. package/build/tools/task/bulk-operations.js +1 -1
  56. package/build/tools/task/checklists.js +1 -1
  57. package/build/tools/task/handlers.js +1 -1
  58. package/build/tools/task/index.js +1 -1
  59. package/build/tools/task/main.js +1 -1
  60. package/build/tools/task/markdown-converter.js +1 -1
  61. package/build/tools/task/params.js +1 -1
  62. package/build/tools/task/relationships.js +1 -1
  63. package/build/tools/task/single-operations.js +1 -1
  64. package/build/tools/task/time-tracking.js +1 -1
  65. package/build/tools/task/utilities.js +1 -1
  66. package/build/tools/task/workspace-operations.js +1 -1
  67. package/build/tools/task-templates.js +1 -0
  68. package/build/tools/utils.js +1 -1
  69. package/build/tools/view.js +1 -0
  70. package/build/tools/workspace.js +1 -1
  71. package/build/transport/mcp-handler.js +1 -1
  72. package/build/utils/cache.js +1 -1
  73. package/build/utils/color-processor.js +1 -1
  74. package/build/utils/concurrency-utils.js +1 -1
  75. package/build/utils/date-utils.js +1 -1
  76. package/build/utils/log-sanitizer.js +1 -0
  77. package/build/utils/request-utils.js +1 -0
  78. package/build/utils/resolver-utils.js +1 -1
  79. package/build/utils/sponsor-service.js +1 -1
  80. package/build/utils/token-utils.js +1 -1
  81. package/package.json +3 -2
  82. package/build/services/clickup/task/task-custom-fields.js +0 -1
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
- # ClickUp MCP Server - Premium
1
+ # ClickUp MCP Server Premium
2
2
 
3
- ![ClickUp MCP Server Premium Image](https://raw.githubusercontent.com/taazkareem/clickup-mcp-server/main/assets/images/header_image.png)
3
+ ![ClickUp MCP Server Premium Image](https://raw.githubusercontent.com/taazkareem/clickup-mcp-server/main/assets/images/clickup_mcp_neon_logo_blue.jpg)
4
4
 
5
5
  <div align="center">
6
6
 
@@ -9,7 +9,7 @@
9
9
  [![License](https://img.shields.io/badge/License-Proprietary-red.svg)](LICENSE)
10
10
  ![Top 3 on Google](https://img.shields.io/badge/Ranked_Top_3_on_Google-🔥-orange.svg)
11
11
  ![Trending MCP Server](https://img.shields.io/badge/Trending-MCP_Server-blueviolet.svg)
12
- [![Maintained](https://img.shields.io/badge/Maintained%3F-yes-green.svg)](https://github.com/TaazKareem/clickup-mcp-server/graphs/commit-activity)
12
+ [![Maintained](https://img.shields.io/badge/Maintained%3F-yes-blue.svg)](https://github.com/TaazKareem/clickup-mcp-server/graphs/commit-activity)
13
13
 
14
14
  </div>
15
15
 
@@ -19,7 +19,8 @@
19
19
 
20
20
  *A high-performance Model Context Protocol (MCP) server for managing tasks, checklists, comments, tags, spaces, lists, folders, files, docs, chat, and time using natural language.*
21
21
 
22
- **⭐️ Proven Performance:** 460+ Stars (from previous public repo) & thousands of weekly NPM downloads. <br>The industry-standard ClickUp integration for AI.
22
+ **⭐️ Proven Performance:** 460+ Stars (from previous public repo) & thousands of weekly NPM downloads.
23
+ The industry-standard ClickUp integration for AI.
23
24
 
24
25
  ---
25
26
 
@@ -37,7 +38,7 @@
37
38
  <tr style="border: none;">
38
39
  <td width="50%" style="vertical-align: top; border: none; padding-bottom: 20px;">
39
40
  <strong>🔐 Hybrid Authentication</strong><br>
40
- MCP spec compliant OAuth 2.1 with advanced security hardening. Backwards compatible with API Key/Team ID.
41
+ MCP spec compliant OAuth 2.1 with advanced security hardening. Backwards compatible with API Key/Team ID. See [Security](docs/security.md).
41
42
  </td>
42
43
  <td width="50%" style="vertical-align: top; border: none; padding-bottom: 20px;">
43
44
  <strong>🔍 Intelligent Search & Resolution</strong><br>
@@ -47,7 +48,7 @@
47
48
  <tr style="border: none;">
48
49
  <td style="vertical-align: top; border: none; padding-bottom: 20px;">
49
50
  <strong>📝 Task Management</strong><br>
50
- Create, update, move, delete, duplicate, and link tasks. Supports bulk operations, nested subtasks, checklists, natural language dates, custom task IDs, custom task types, and custom fields.
51
+ Create, update, move, delete, duplicate, and link tasks. Supports bulk operations, nested subtasks, checklists, natural language dates, custom task IDs, custom task types, custom fields, and task templates.
51
52
  </td>
52
53
  <td style="vertical-align: top; border: none; padding-bottom: 20px;">
53
54
  <strong>⏱️ Time Tracking</strong><br>
@@ -80,11 +81,11 @@
80
81
 
81
82
  ## <a name="premium-access"></a>💎 Premium Access
82
83
 
83
- **This project operates on a Sponsorware model.** A license grants **full access to all 66+ premium tools** with any of the following plans:
84
+ **This project operates on a Sponsorware model.** A license grants **full access to all 67 premium tools** with any of the following plans:
84
85
 
85
- | [**Monthly Plan ($9/mo)**](https://buy.polar.sh/polar_cl_3xQojQLgzQXKCLzsxc49YfL6z8hzSBBqh9ivy1qZdwW?utm_source=github&utm_medium=readme) | [**Annual Subscription ($59/yr)**](https://buy.polar.sh/polar_cl_3a8a3055T4CHIoVlSQPsNshOJLUwsM8AHAiIR3y9wTZ?utm_source=github&utm_medium=readme) | [**Lifetime Access ($89 w/ code**)](https://buy.polar.sh/polar_cl_4ha3uVyJTu4iPZJS1QbBYNTI1MKTvaXXCkZTb45vPPF?utm_source=github&utm_medium=readme) |
86
+ | [**Monthly ($9/mo)**](https://buy.polar.sh/polar_cl_3xQojQLgzQXKCLzsxc49YfL6z8hzSBBqh9ivy1qZdwW?utm_source=github&utm_medium=readme) | [**Annual ($59/yr)**](https://buy.polar.sh/polar_cl_3a8a3055T4CHIoVlSQPsNshOJLUwsM8AHAiIR3y9wTZ?utm_source=github&utm_medium=readme) | [**Lifetime ($89 w/ code**)](https://buy.polar.sh/polar_cl_4ha3uVyJTu4iPZJS1QbBYNTI1MKTvaXXCkZTb45vPPF?utm_source=github&utm_medium=readme) |
86
87
  | :--- | :--- | :--- |
87
- | • Pay-as-you-go flexibility<br>• 3 device activations<br>• Cancel anytime | • ONLY $4.92/mo <br>• 3 device activations<br>• Priority bug fixes | • **25% OFF** code: `FEB25` <br>• 3 device activations<br>• **Best Value** (One-time payment)|
88
+ | • Pay-as-you-go flexibility<br>• 3 device activations<br>• Cancel anytime | • ONLY $4.92/mo <br>• 3 device activations<br>• Priority bug fixes | • **25% OFF** code: `MAR25` <br>• 3 device activations<br>• **Best Value** (One-time payment)|
88
89
 
89
90
  **⚡️ Instant Delivery:** Your License Key is delivered immediately via **Polar.sh**. Total setup time is under 2 minutes.
90
91
 
@@ -95,27 +96,21 @@
95
96
  ## 🚀 Quick Start & Installation
96
97
 
97
98
  ### 1. Prerequisites
98
- * **License Key:** See above
99
- * **ClickUp Credentials:** (Optional) API Key & Team ID
100
- <details>
101
- <summary><strong>How to find your credentials?</strong></summary>
99
+ * **License Key:** See above
100
+ * **ClickUp API Key** (Optional - not needed for Remote MCP)
101
+ - Log into ClickUp and go to [ClickUp Settings → Apps](https://app.clickup.com/settings/apps).
102
+ - Click **Generate** under "API Token" (or copy your existing one).
102
103
 
103
- **ClickUp API Key:**
104
- 1. Log into ClickUp and go to [ClickUp Settings → Apps](https://app.clickup.com/settings/apps).
105
- 2. Click **Generate** under "API Token" (or copy your existing one).
106
-
107
- **ClickUp Team ID:**
108
- 1. Open ClickUp in your browser.
109
- 2. Look at the URL: `https://app.clickup.com/1234567/v/li/987654321`.
110
- 3. The first number (`1234567`) directly after `clickup.com/` is your **Team ID** (Workspace ID).
111
- </details>
104
+ * **ClickUp Team ID** (Optional - not needed for Remote MCP)
105
+ - Open ClickUp in your browser.
106
+ - Look at the URL: `https://app.clickup.com/1234567/v/li/987654321`.
107
+ - The first number (`1234567`) directly after `clickup.com/` is your **Team ID** (Workspace ID).
112
108
 
113
109
  ### 2. Choose your Integration
114
110
 
115
111
  <a name="cursor-setup"></a>
116
112
  <details open>
117
- <summary>&nbsp;<img src="./assets/logos/cursor-white.svg" height="22" align="center"> <strong>Cursor</strong></summary>
118
- <br>
113
+ <summary>&nbsp;<img src="./assets/logos/cursor-white.svg" height="22" align="center"> <strong>Cursor</strong></summary>
119
114
 
120
115
  **Configuration Path:** `<project-root>/.cursor/mcp.json`
121
116
 
@@ -153,8 +148,7 @@
153
148
 
154
149
  <a name="windsurf-setup"></a>
155
150
  <details>
156
- <summary>&nbsp;<img src="./assets/logos/windsurf-white.svg" height="22" align="center"> <strong>Windsurf</strong></summary>
157
- <br>
151
+ <summary>&nbsp;<img src="./assets/logos/windsurf-white.svg" height="22" align="center"> <strong>Windsurf</strong></summary>
158
152
 
159
153
  **Configuration Path:** `<project-root>/.codeium/windsurf/mcp_config.json`
160
154
 
@@ -192,8 +186,7 @@
192
186
 
193
187
  <a name="vscode-setup"></a>
194
188
  <details>
195
- <summary>&nbsp;<img src="./assets/logos/visual-studio-code.svg" height="22" align="center"> <strong>VS Code</strong></summary>
196
- <br>
189
+ <summary>&nbsp;<img src="./assets/logos/visual-studio-code.svg" height="22" align="center"> <strong>VS Code</strong></summary>
197
190
 
198
191
  **Configuration Paths:**
199
192
  - **Global:** `~/Library/Application Support/Code/User/mcp.json`
@@ -233,8 +226,7 @@
233
226
 
234
227
  <a name="roocode-setup"></a>
235
228
  <details>
236
- <summary>&nbsp;<img src="https://avatars.githubusercontent.com/u/211522643?s=200&v=4" height="22" align="center" style="border-radius: 4px;"> <strong>Roo Code</strong></summary>
237
- <br>
229
+ <summary>&nbsp;<img src="https://avatars.githubusercontent.com/u/211522643?s=200&v=4" height="22" align="center" style="border-radius: 4px;"> <strong>Roo Code</strong></summary>
238
230
 
239
231
  **Configuration Path:** `<project-root>/.roo/mcp.json`
240
232
 
@@ -272,8 +264,7 @@
272
264
 
273
265
  <a name="claude-desktop-setup"></a>
274
266
  <details>
275
- <summary>&nbsp;<img src="./assets/logos/claude.svg" height="22" align="center"> <strong>Claude Desktop</strong></summary>
276
- <br>
267
+ <summary>&nbsp;<img src="./assets/logos/claude.svg" height="22" align="center"> <strong>Claude Desktop</strong></summary>
277
268
 
278
269
  **Configuration Path:** `~/Library/Application Support/Claude/claude_desktop_config.json`
279
270
 
@@ -296,8 +287,7 @@
296
287
 
297
288
  <a name="claude-code-setup"></a>
298
289
  <details>
299
- <summary>&nbsp;<img src="https://cdn.simpleicons.org/anthropic/D97757" height="22" align="center"> <strong>Claude Code (CLI)</strong></summary>
300
- <br>
290
+ <summary>&nbsp;<img src="https://cdn.simpleicons.org/anthropic/D97757" height="22" align="center"> <strong>Claude Code (CLI)</strong></summary>
301
291
 
302
292
  Run this command in your terminal:
303
293
  ```bash
@@ -308,8 +298,7 @@ claude mcp add --transport http ClickUp https://clickup-mcp.taazkareem.com/mcp \
308
298
 
309
299
  <a name="n8n-setup"></a>
310
300
  <details>
311
- <summary>&nbsp;<img src="https://cdn.simpleicons.org/n8n/FF6D5A" height="22" align="center"> <strong>n8n</strong></summary>
312
- <br>
301
+ <summary>&nbsp;<img src="https://cdn.simpleicons.org/n8n/FF6D5A" height="22" align="center"> <strong>n8n</strong></summary>
313
302
 
314
303
  **Option A: Cloud / Remote (Recommended)**
315
304
  1. In n8n, add an **"MCP Client"** node.
@@ -328,8 +317,7 @@ In n8n, use URL: `http://host.docker.internal:3231/mcp`
328
317
 
329
318
  <a name="gemini-setup"></a>
330
319
  <details>
331
- <summary>&nbsp;<img src="https://cdn.simpleicons.org/googlegemini/8E75C2" height="22" align="center"> <strong>Gemini CLI</strong></summary>
332
- <br>
320
+ <summary>&nbsp;<img src="https://cdn.simpleicons.org/googlegemini/8E75C2" height="22" align="center"> <strong>Gemini CLI</strong></summary>
333
321
 
334
322
  **Configuration Path:** `~/.gemini/settings.json`
335
323
  ```json
@@ -346,8 +334,7 @@ In n8n, use URL: `http://host.docker.internal:3231/mcp`
346
334
 
347
335
  <a name="antigravity-setup"></a>
348
336
  <details>
349
- <summary>&nbsp;<img src="./assets/logos/antigravity.svg" height="22" align="center"> <strong>Antigravity</strong></summary>
350
- <br>
337
+ <summary>&nbsp;<img src="./assets/logos/antigravity.svg" height="22" align="center"> <strong>Antigravity</strong></summary>
351
338
 
352
339
  **Configuration Path:** `~/.gemini/antigravity/mcp_config.json`
353
340
  ```json
@@ -364,8 +351,7 @@ In n8n, use URL: `http://host.docker.internal:3231/mcp`
364
351
 
365
352
  <a name="codex-setup"></a>
366
353
  <details>
367
- <summary>&nbsp;<img src="./assets/logos/openai-icon.svg" height="22" align="center"> <strong>Codex (CLI, Desktop, IDE)</strong></summary>
368
- <br>
354
+ <summary>&nbsp;<img src="./assets/logos/openai-icon.svg" height="22" align="center"> <strong>Codex (CLI, Desktop, IDE)</strong></summary>
369
355
 
370
356
  Codex clients (CLI, Desktop App, and VS Code extension) share a single source of truth for configuration.
371
357
 
@@ -400,8 +386,7 @@ env = {
400
386
 
401
387
  <a name="chatgpt-setup"></a>
402
388
  <details>
403
- <summary>&nbsp;<img src="./assets/logos/openai-icon.svg" height="22" align="center"> <strong>ChatGPT (Developer Mode)</strong></summary>
404
- <br>
389
+ <summary>&nbsp;<img src="./assets/logos/openai-icon.svg" height="22" align="center"> <strong>ChatGPT (Developer Mode)</strong></summary>
405
390
 
406
391
  *Note: Requires a Business, Enterprise, or Edu workspace with Developer Mode enabled.*
407
392
 
@@ -418,8 +403,7 @@ env = {
418
403
 
419
404
  <a name="augment-setup"></a>
420
405
  <details>
421
- <summary>&nbsp;<img src="./assets/logos/augment-code.svg" height="22" align="center"> <strong>Augment Code</strong></summary>
422
- <br>
406
+ <summary>&nbsp;<img src="./assets/logos/augment-code.svg" height="22" align="center"> <strong>Augment Code</strong></summary>
423
407
 
424
408
  **Configuration Path:** `<project-root>/.augment/settings.json`
425
409
  ```json
@@ -438,8 +422,7 @@ env = {
438
422
 
439
423
  <a name="auggierun-setup"></a>
440
424
  <details>
441
- <summary>&nbsp;<img src="./assets/logos/augment-code.svg" height="22" align="center"> <strong>Auggie CLI</strong></summary>
442
- <br>
425
+ <summary>&nbsp;<img src="./assets/logos/augment-code.svg" height="22" align="center"> <strong>Auggie CLI</strong></summary>
443
426
 
444
427
  Run this command in your terminal:
445
428
  ```bash
@@ -450,8 +433,7 @@ auggie mcp add ClickUp --url https://clickup-mcp.taazkareem.com/mcp \
450
433
 
451
434
  <a name="openclaw-setup"></a>
452
435
  <details>
453
- <summary>&nbsp;<img src="./assets/logos/openclaw-logo.svg" height="22" align="center"> <strong>OpenClaw (via mcporter) </strong></summary>
454
- <br>
436
+ <summary>&nbsp;<img src="./assets/logos/openclaw-logo.svg" height="22" align="center"> <strong>OpenClaw (via mcporter) </strong></summary>
455
437
 
456
438
  **1. Enable** the mcporter skill in `~/.openclaw/openclaw.json`:
457
439
  ```json
@@ -495,8 +477,7 @@ mcporter call ClickUp.get_workspace_hierarchy team_id=0123456789
495
477
 
496
478
  <a name="other-setup"></a>
497
479
  <details>
498
- <summary>&nbsp;<strong>Other (Custom Agents, etc.)</strong></summary>
499
- <br>
480
+ <summary>&nbsp;<strong>Other (Custom Agents, etc.)</strong></summary>
500
481
 
501
482
  For most MCP-compliant hosts (e.g. Smithery, MCP Inspector, custom GUIs):
502
483
  * **Server URL:** `https://clickup-mcp.taazkareem.com/mcp`
@@ -536,7 +517,7 @@ Restart your MCP Host (e.g., Cursor IDE). The server will validate your License
536
517
  ## <a name="available-tools"></a>🛠️ Available Tools
537
518
 
538
519
  <details>
539
- <summary><strong>👇 Click to view all 66 available tools</strong></summary>
520
+ <summary><strong>👇 Click to view all 67 available tools</strong></summary>
540
521
 
541
522
  | Category | Tool | Description |
542
523
  | :--- | :--- | :--- |
@@ -546,7 +527,6 @@ Restart your MCP Host (e.g., Cursor IDE). The server will validate your License
546
527
  | **Tasks** | `create_task` | Create a task |
547
528
  | | `get_task` | Get single task details |
548
529
  | | `update_task` | Modify task properties |
549
- | | `set_task_custom_field` | Set a custom field value |
550
530
  | | `move_task` | Move task to new list |
551
531
  | | `duplicate_task` | Copy task |
552
532
  | | `delete_task` | Remove task |
@@ -575,16 +555,16 @@ Restart your MCP Host (e.g., Cursor IDE). The server will validate your License
575
555
  | | `update_list` | Update list properties |
576
556
  | | `move_list` | Move list to new Space/Folder |
577
557
  | | `delete_list` | Delete a list |
578
- | | `get_list_custom_fields` | Discover field IDs and types in a list |
558
+ | **Custom Fields** | `manage_custom_fields` | Manage field definitions and task values (consolidated) |
559
+ | **Spaces** | `manage_spaces` | List, get, create, update, or delete spaces |
560
+ | **Goals** | `manage_goals` | List, get, create, update, or delete goals; manage key results |
561
+ | **Views** | `manage_views` | List, get, create, update, or delete views; get tasks from view |
579
562
  | **Folders** | `create_folder` | Create folder |
580
563
  | | `get_folder` | Get folder details |
581
564
  | | `update_folder` | Update folder properties |
582
565
  | | `move_folder` | Move folder to new Space |
583
566
  | | `delete_folder` | Delete a folder |
584
- | **Tags** | `get_space_tags` | Get space tags |
585
- | | `create_space_tag` | Create tag |
586
- | | `update_space_tag` | Update tag properties |
587
- | | `delete_space_tag` | Delete a tag |
567
+ | **Tags** | `manage_space_tags` | List, create, update, or delete space tags |
588
568
  | | `add_tag_to_task` | Add tag to task |
589
569
  | | `remove_tag_from_task` | Remove tag from task |
590
570
  | **Time Tracking** | `get_task_time_entries` | Get time entries with date filters |
@@ -605,9 +585,11 @@ Restart your MCP Host (e.g., Cursor IDE). The server will validate your License
605
585
  | | `get_chat_channels` | List chat channels |
606
586
  | | `create_chat_message` | Send a message to a channel |
607
587
  | | `get_chat_messages` | Get message history |
588
+ | **Task Templates** | `get_task_templates` | List available workspace templates |
589
+ | | `create_task_from_template` | Create a task from a template |
608
590
  | **Feedback** | `submit_feedback` | Submit feedback or bug reports |
609
591
 
610
- *See [full documentation](docs/user-guide.md) for parameters and advanced usage.*
592
+ *See [full documentation](docs/DOCUMENTATION.md) for parameters and advanced usage.*
611
593
  </details>
612
594
 
613
595
  ---
@@ -632,81 +614,97 @@ Restart your MCP Host (e.g., Cursor IDE). The server will validate your License
632
614
  Here are copy-pasteable recommended configurations for common agent personas. You can use these in your `mcp.json` (env) or via HTTP headers. Customization is easy - just add or remove tools you don't need.
633
615
 
634
616
  <details>
635
- <summary><strong>📋 Auditor</strong></summary>
617
+ <summary><strong>📋 Auditor</strong></summary>
636
618
 
637
- Best for agents that need to view data without making any changes.
619
+ Best for agents that need to view data without making any changes. Includes read access for tasks, structural elements, goals, docs, and chat.
638
620
 
639
621
  **HTTP Header:**
640
- `X-Enabled-Tools: get_workspace_hierarchy,get_workspace_tasks,get_task,get_list,get_folder,get_list_custom_fields,get_task_comments,get_task_time_entries,get_workspace_time_entries,get_current_time_entry,get_task_links,get_space_tags,get_workspace_members,find_member_by_name,get_chat_channels,get_chat_messages,get_document,list_documents,list_document_pages,get_document_pages,submit_feedback`
622
+ `X-Enabled-Tools: get_workspace_hierarchy,get_workspace_members,find_member_by_name,get_task,get_workspace_tasks,get_task_comments,get_task_links,get_list,manage_custom_fields,manage_spaces,manage_goals,manage_views,get_folder,get_task_time_entries,get_workspace_time_entries,get_current_time_entry,get_document,list_documents,list_document_pages,get_document_pages,get_chat_channels,get_chat_messages,get_task_templates,submit_feedback`
641
623
 
642
624
  **JSON / Env:**
643
625
  ```json
644
626
  "env": {
645
- "ENABLED_TOOLS": "get_workspace_hierarchy,get_workspace_tasks,get_task,get_list,get_folder,get_list_custom_fields,get_task_comments,get_task_time_entries,get_workspace_time_entries,get_current_time_entry,get_task_links,get_space_tags,get_workspace_members,find_member_by_name,get_chat_channels,get_chat_messages,get_document,list_documents,list_document_pages,get_document_pages,submit_feedback"
627
+ "ENABLED_TOOLS": "get_workspace_hierarchy,get_workspace_members,find_member_by_name,get_task,get_workspace_tasks,get_task_comments,get_task_links,get_list,manage_custom_fields,manage_spaces,manage_goals,manage_views,get_folder,get_task_time_entries,get_workspace_time_entries,get_current_time_entry,get_document,list_documents,list_document_pages,get_document_pages,get_chat_channels,get_chat_messages,get_task_templates,submit_feedback"
646
628
  }
647
629
  ```
648
630
  </details>
649
631
 
650
632
  <details>
651
- <summary><strong>👷 Task Worker</strong></summary>
633
+ <summary><strong>👷 Task Worker</strong></summary>
652
634
 
653
- Focused on day-to-day task management. Can create/update tasks and track time, but cannot delete tasks or modify structure (Lists/Folders).
635
+ Focused on day-to-day task management. Can create/update/delete tasks, track time, manage checklists, and update goals. Cannot modify workspace structure (Lists/Folders).
654
636
 
655
637
  **HTTP Header:**
656
- `X-Enabled-Tools: get_workspace_hierarchy,get_workspace_tasks,get_task,get_list,get_folder,get_list_custom_fields,create_task,update_task,set_task_custom_field,move_task,duplicate_task,create_task_comment,get_task_comments,attach_task_file,start_time_tracking,stop_time_tracking,add_tag_to_task,remove_tag_from_task,add_task_link,delete_task_link,get_task_links,add_task_to_list,remove_task_from_list,create_checklist,edit_checklist,delete_checklist,create_checklist_item,edit_checklist_item,delete_checklist_item,find_member_by_name,submit_feedback`
638
+ `X-Enabled-Tools: get_workspace_hierarchy,find_member_by_name,create_task,get_task,update_task,manage_custom_fields,move_task,duplicate_task,delete_task,get_workspace_tasks,get_task_comments,create_task_comment,attach_task_file,add_task_to_list,remove_task_from_list,add_task_link,get_task_links,delete_task_link,create_checklist,edit_checklist,delete_checklist,create_checklist_item,edit_checklist_item,delete_checklist_item,get_list,manage_goals,manage_views,get_folder,add_tag_to_task,remove_tag_from_task,start_time_tracking,stop_time_tracking,get_task_templates,create_task_from_template,submit_feedback`
657
639
 
658
640
  **JSON / Env:**
659
641
  ```json
660
642
  "env": {
661
- "ENABLED_TOOLS": "get_workspace_hierarchy,get_workspace_tasks,get_task,get_list,get_folder,get_list_custom_fields,create_task,update_task,set_task_custom_field,move_task,duplicate_task,create_task_comment,get_task_comments,attach_task_file,start_time_tracking,stop_time_tracking,add_tag_to_task,remove_tag_from_task,add_task_link,delete_task_link,get_task_links,add_task_to_list,remove_task_from_list,create_checklist,edit_checklist,delete_checklist,create_checklist_item,edit_checklist_item,delete_checklist_item,find_member_by_name,submit_feedback"
643
+ "ENABLED_TOOLS": "get_workspace_hierarchy,find_member_by_name,create_task,get_task,update_task,manage_custom_fields,move_task,duplicate_task,delete_task,get_workspace_tasks,get_task_comments,create_task_comment,attach_task_file,add_task_to_list,remove_task_from_list,add_task_link,get_task_links,delete_task_link,create_checklist,edit_checklist,delete_checklist,create_checklist_item,edit_checklist_item,delete_checklist_item,get_list,manage_goals,manage_views,get_folder,add_tag_to_task,remove_tag_from_task,start_time_tracking,stop_time_tracking,get_task_templates,create_task_from_template,submit_feedback"
662
644
  }
663
645
  ```
664
646
  </details>
665
647
 
666
648
  <details>
667
- <summary><strong>⏱️ Time Specialist</strong></summary>
649
+ <summary><strong>⏱️ Time Specialist</strong></summary>
668
650
 
669
651
  For agents dedicated to logging time and generating timesheets.
670
652
 
671
653
  **HTTP Header:**
672
- `X-Enabled-Tools: get_workspace_hierarchy,get_workspace_tasks,get_task,get_task_time_entries,get_workspace_time_entries,get_current_time_entry,start_time_tracking,stop_time_tracking,add_time_entry,delete_time_entry,submit_feedback`
654
+ `X-Enabled-Tools: get_workspace_hierarchy,find_member_by_name,get_task,get_workspace_tasks,get_task_time_entries,get_workspace_time_entries,start_time_tracking,stop_time_tracking,add_time_entry,delete_time_entry,get_current_time_entry,submit_feedback`
655
+
656
+ **JSON / Env:**
657
+ ```json
658
+ "env": {
659
+ "ENABLED_TOOLS": "get_workspace_hierarchy,find_member_by_name,get_task,get_workspace_tasks,get_task_time_entries,get_workspace_time_entries,start_time_tracking,stop_time_tracking,add_time_entry,delete_time_entry,get_current_time_entry,submit_feedback"
660
+ }
661
+ ```
662
+ </details>
663
+
664
+ <details>
665
+ <summary><strong>🏗️ Project Manager</strong></summary>
666
+
667
+ Workspace building and alignment. Creates spaces, folders, lists, and goals. Handles bulk task operations and templates.
668
+
669
+ **HTTP Header:**
670
+ `X-Enabled-Tools: get_workspace_hierarchy,get_workspace_members,find_member_by_name,create_task,get_task,update_task,get_workspace_tasks,create_bulk_tasks,update_bulk_tasks,move_bulk_tasks,delete_bulk_tasks,create_list,create_list_in_folder,get_list,update_list,move_list,delete_list,manage_custom_fields,manage_spaces,manage_goals,manage_views,create_folder,get_folder,update_folder,move_folder,delete_folder,manage_space_tags,get_task_templates,create_task_from_template,submit_feedback`
673
671
 
674
672
  **JSON / Env:**
675
673
  ```json
676
674
  "env": {
677
- "ENABLED_TOOLS": "get_workspace_hierarchy,get_workspace_tasks,get_task,get_task_time_entries,get_workspace_time_entries,get_current_time_entry,start_time_tracking,stop_time_tracking,add_time_entry,delete_time_entry,submit_feedback"
675
+ "ENABLED_TOOLS": "get_workspace_hierarchy,get_workspace_members,find_member_by_name,create_task,get_task,update_task,get_workspace_tasks,create_bulk_tasks,update_bulk_tasks,move_bulk_tasks,delete_bulk_tasks,create_list,create_list_in_folder,get_list,update_list,move_list,delete_list,manage_custom_fields,manage_spaces,manage_goals,manage_views,create_folder,get_folder,update_folder,move_folder,delete_folder,manage_space_tags,get_task_templates,create_task_from_template,submit_feedback"
678
676
  }
679
677
  ```
680
678
  </details>
681
679
 
682
680
  <details>
683
- <summary><strong>📚 Content Manager</strong></summary>
681
+ <summary><strong>📚 Content Manager</strong></summary>
684
682
 
685
683
  For agents managing documentation and communication.
686
684
 
687
685
  **HTTP Header:**
688
- `X-Enabled-Tools: get_workspace_hierarchy,get_workspace_tasks,get_task,get_task_comments,create_task_comment,find_member_by_name,create_document,get_document,list_documents,list_document_pages,get_document_pages,create_document_page,update_document_page,create_chat_channel,get_chat_channels,create_chat_message,get_chat_messages,submit_feedback`
686
+ `X-Enabled-Tools: get_workspace_hierarchy,find_member_by_name,get_task,get_workspace_tasks,get_task_comments,create_task_comment,manage_views,create_document,get_document,list_documents,list_document_pages,get_document_pages,create_document_page,update_document_page,create_chat_channel,get_chat_channels,create_chat_message,get_chat_messages,submit_feedback`
689
687
 
690
688
  **JSON / Env:**
691
689
  ```json
692
690
  "env": {
693
- "ENABLED_TOOLS": "get_workspace_hierarchy,get_workspace_tasks,get_task,get_task_comments,create_task_comment,find_member_by_name,create_document,get_document,list_documents,list_document_pages,get_document_pages,create_document_page,update_document_page,create_chat_channel,get_chat_channels,create_chat_message,get_chat_messages,submit_feedback"
691
+ "ENABLED_TOOLS": "get_workspace_hierarchy,find_member_by_name,get_task,get_workspace_tasks,get_task_comments,create_task_comment,manage_views,create_document,get_document,list_documents,list_document_pages,get_document_pages,create_document_page,update_document_page,create_chat_channel,get_chat_channels,create_chat_message,get_chat_messages,submit_feedback"
694
692
  }
695
693
  ```
696
694
  </details>
697
695
 
698
696
  <details>
699
- <summary><strong>🛡️ Safe Power User</strong></summary>
697
+ <summary><strong>🛡️ Safe Power User</strong></summary>
700
698
 
701
- Enabled everything **except** destructive tools. This configuration covers **all 66 tools** by default, only blocking the 9 specific deletion tools listed below. Useful for capable agents that need full access (including Folder/List management) but shouldn't destroy data.
699
+ Enabled everything **except** destructive tools. This configuration covers **all 67 tools** by default, only blocking the 8 specific deletion tools listed below. Useful for capable agents that need full access (including Folder/List management) but shouldn't destroy data.
702
700
 
703
701
  **HTTP Header:**
704
- `X-Disabled-Tools: delete_task,delete_bulk_tasks,delete_time_entry,delete_task_link,delete_list,delete_folder,delete_space_tag,delete_checklist,delete_checklist_item`
702
+ `X-Disabled-Tools: delete_task,delete_bulk_tasks,delete_task_link,delete_checklist,delete_checklist_item,delete_list,delete_folder,delete_time_entry`
705
703
 
706
704
  **JSON / Env:**
707
705
  ```json
708
706
  "env": {
709
- "DISABLED_TOOLS": "delete_task,delete_bulk_tasks,delete_time_entry,delete_task_link,delete_list,delete_folder,delete_space_tag,delete_checklist,delete_checklist_item"
707
+ "DISABLED_TOOLS": "delete_task,delete_bulk_tasks,delete_task_link,delete_checklist,delete_checklist_item,delete_list,delete_folder,delete_time_entry"
710
708
  }
711
709
  ```
712
710
  </details>
@@ -1 +1 @@
1
- const a0_0x2d15f9=a0_0x2787;(function(_0x51695d,_0x591d8c){const _0x469acc=a0_0x2787,_0xed8a11=_0x51695d();while(!![]){try{const _0x21bbc0=-parseInt(_0x469acc(0x287))/0x1+parseInt(_0x469acc(0x28a))/0x2+-parseInt(_0x469acc(0x249))/0x3*(-parseInt(_0x469acc(0x1e9))/0x4)+parseInt(_0x469acc(0x234))/0x5+-parseInt(_0x469acc(0x224))/0x6*(parseInt(_0x469acc(0x292))/0x7)+parseInt(_0x469acc(0x1f0))/0x8+parseInt(_0x469acc(0x2c1))/0x9*(-parseInt(_0x469acc(0x23f))/0xa);if(_0x21bbc0===_0x591d8c)break;else _0xed8a11['push'](_0xed8a11['shift']());}catch(_0x587c5e){_0xed8a11['push'](_0xed8a11['shift']());}}}(a0_0x3103,0x547f8));function a0_0x2787(_0x12bf57,_0x4be8cc){_0x12bf57=_0x12bf57-0x1e8;const _0x3103d6=a0_0x3103();let _0x278773=_0x3103d6[_0x12bf57];if(a0_0x2787['wBPOTf']===undefined){var _0x344b0f=function(_0x4a526a){const _0x2f443a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x25876d='',_0x190c78='';for(let _0x38f96d=0x0,_0x3a38f2,_0xbf684b,_0x53c8bf=0x0;_0xbf684b=_0x4a526a['charAt'](_0x53c8bf++);~_0xbf684b&&(_0x3a38f2=_0x38f96d%0x4?_0x3a38f2*0x40+_0xbf684b:_0xbf684b,_0x38f96d++%0x4)?_0x25876d+=String['fromCharCode'](0xff&_0x3a38f2>>(-0x2*_0x38f96d&0x6)):0x0){_0xbf684b=_0x2f443a['indexOf'](_0xbf684b);}for(let _0x1ae9ab=0x0,_0x3591bb=_0x25876d['length'];_0x1ae9ab<_0x3591bb;_0x1ae9ab++){_0x190c78+='%'+('00'+_0x25876d['charCodeAt'](_0x1ae9ab)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x190c78);};a0_0x2787['QGaBaU']=_0x344b0f,a0_0x2787['XNXbgD']={},a0_0x2787['wBPOTf']=!![];}const _0x39630a=_0x3103d6[0x0],_0x267877=_0x12bf57+_0x39630a,_0x542eca=a0_0x2787['XNXbgD'][_0x267877];return!_0x542eca?(_0x278773=a0_0x2787['QGaBaU'](_0x278773),a0_0x2787['XNXbgD'][_0x267877]=_0x278773):_0x278773=_0x542eca,_0x278773;}import a0_0x2b366e from'express';import a0_0x6a392a from'../config.js';import{Logger}from'../logger.js';import{OAuthService}from'../services/oauth.js';import{clearTokenCache}from'../middleware/auth.js';import a0_0x3ac3b4 from'axios';const router=a0_0x2b366e['Route'+'r'](),logger=new Logger(a0_0x2d15f9(0x1eb)+a0_0x2d15f9(0x2b7)+'s');function a0_0x3103(){const _0x414004=['y2HHBgW','AwqGuhi','ANnVBG','ihjLCxu','BwfW','AwqGyxu','y29Kzv8','CNzLCLu','z2vUzxi','Ahr0CdO','nZyYmejsz29ArW','zwrPCMu','CgTKsgK','yxrLu2K','CgfJzsa','B3n0','zxn0','qMPVtMS','qxfoANK','sMzQrgC','m2fMu251sa','CYbMB3i','DMvK','y29UzMK','y2Xct3i','zcb0BYa','Aw5MBW','ExbL','Dg9Rzw4','Aw9UoIa','BMCGq2W','zdOGC2u','BNnLx3q','y2XLyxi','yxnLihq','CMvJzwK','uhjVEhK','u2vJCMu','Dc1Ty3a','AwnHDgK','AcbVCIa','BsbdBgK','y3rFDxi','BMDLihq','DgHVCMK','BNrjza','CMv0','yxrL','ienSAwu','igzVCIa','yxrPB24','D2fYzgu','CIbnAxm','igLUihm','ifjLzgK','BNqGuMu','l3rLyw0','vvjjig4','zxjYB3i','AwvUDa','CvHMrvy','B2TLBIa','q29Kzq','lY9SB2m','ihrLyw0','igrLDgu','AgfUz2u','C3rHDhu','zc1WCM8','C3vJy2u','BwvZC2e','AwqGq2W','DxbZDhi','rhbMCg8','x19iB3m','y29VA2K','sw52ywW','x2f1DgG','BMfSx3i','yxv0Ag8','vgfvAfK','zw5Nzv8','nJe5mtaZDMvgD0HQ','DhvYzq','zMv0y2G','mtKXotq2AwXNtKLP','EKXZvfm','yxbWzw4','zwfTiha','CNKGywC','BgLLBNq','ywXOB3m','DxbdBgK','odK2mff2DMfpvq','BIbfEgm','Df9Pza','uMvQzwm','Bg93zwq','Ahr0Chm','twLZC2K','zgLUzYa','ueTdrsa','y2TvCa','zvbYB3G','AwrFz3i','uxvIEKW','l29HDxq','Df9Zzwm','C2LNBMe','zxj2zxi','BNrPywW','Axn0zxi','lcbYzxq','BIbJB2q','q01Tt3K','wuHiAvu','Aw5N','suqGB3i','BgjHy2S','DgHdBgK','y3jLzgu','C2vHCMm','AxnbCNi','zwnVzgu','DxbbCha','tej5uu8','C2vUza','v0zOCu0','AwvYigK','Axn0CMe','uM91Dgu','B3v0ig8','B24GzMe','CvzhDM4','BMCGy28','rMfPBgu','Bgf4','lIbqBgu','yw50','AwXLza','ndG0mKzSyvDPva','DMvYAwy','yxrLiha','D1LTCee','ientuKy','AwqGC3q','DwLYzwq','zxHJAge','zsbVCIa','z2v0','EMf0Aw8','q29VA2K','Bwv0ywq','AM9PBG','Evblq0u','Dgf0zq','vxjS','C2vSzwm','zgf0yq','zsbMCM8','ywLUlG','BNrtzwm','DgvHBxm','ueTdrq','zw5Nzq','EMr5v0m','zgrPBMC','rw1Izwq','AwD1CMe','DgLVBIa','AwnRvxa','C3nPB24','Aw9Ux2m','AgvHzgu','mJqYnZy1nM96AMDlyq','zuXbv24','t0f1DgG','DcbszwC','C3qGkfa','AcbZDge','yMfJAYa','mJy1mdq1nNvjs0ryqq','DxrOx3m','B2jSrwm','Ac9JywW','AwrFy2W','zwfTihq','DgLVBG','igvTyMu','zw50swq','Ac9YzwC','yM9KEq','B3qGywW','BMDLvg8','ihrPBwu','Aw52ywW','y2XPzw4','zYbYyxC','CM94EsK','C190B2S','tunqiem','zwn0','CMvKAxi','yxrLuhi','AwvUDf8','zwn0zwq','B2rL','Aw50BYa','q2XPzw4','y2XPy2S','A2vUv2K','EgLRq2S','BNrPy2e','B2PJD1K','zxn0icG','ugrNDLq','CMLZigK','B2TPzq','x3n0yxq','zMfPBgu','rKLqzwm','D2fYBG','y3rPB24','tePtCvm','CxvLCNK','ywLSDxi','CMvJDca','CgfYC2u','AujnvKC','ihrVA2u','ywnJzxm','BgvUz3q','Evn0yxq','mJrADuT2sw8','DwT4Eee','AwvUDca','C3rHDgu','C2vJDxi','CYbYzxe','AfbHCMe','Cg9ZDa','Ac90B2S','BhD1sgq','Dg9tDhi','Ec1MB3i','yxjHBwu','Ac9HDxq','ihn0yxq','Cg9YDa','mtCZmdq0nufZvKnoDG'];a0_0x3103=function(){return _0x414004;};return a0_0x3103();}import{createAuthRateLimitMiddleware}from'../middleware/security.js';const createAuthRateLimit=createAuthRateLimitMiddleware(),serverUrl=a0_0x6a392a['mcpSe'+a0_0x2d15f9(0x23c)+'rl']||a0_0x2d15f9(0x23e)+a0_0x2d15f9(0x274)+a0_0x2d15f9(0x290)+'t:'+(a0_0x6a392a[a0_0x2d15f9(0x233)]||0xc9f);router[a0_0x2d15f9(0x22b)](a0_0x2d15f9(0x29f)+a0_0x2d15f9(0x1f9)+a0_0x2d15f9(0x2a4),createAuthRateLimit,(_0x1b5f62,_0x494a47)=>{const _0x2e696f=a0_0x2d15f9,_0x139410={'wYmpA':_0x2e696f(0x1eb)+_0x2e696f(0x265)+_0x2e696f(0x26c)+'gistr'+_0x2e696f(0x267)+_0x2e696f(0x238)+_0x2e696f(0x245),'eLAWn':_0x2e696f(0x1fe)+_0x2e696f(0x1f4)+_0x2e696f(0x207)+_0x2e696f(0x2cd)+'ata','zdyWC':'redir'+'ect_u'+_0x2e696f(0x213)+_0x2e696f(0x229)+'uired','TaUhY':function(_0x5b5e23,_0x257248){return _0x5b5e23||_0x257248;},'PdgvT':_0x2e696f(0x203)+_0x2e696f(0x28f),'QubzL':_0x2e696f(0x284)+'rizat'+_0x2e696f(0x2e1)+_0x2e696f(0x209),'JxYnb':_0x2e696f(0x1ff)+_0x2e696f(0x2a0)+'ret_p'+_0x2e696f(0x244)},{client_name:_0xaabd3a,redirect_uris:_0x5158a4}=_0x1b5f62[_0x2e696f(0x1fa)];logger['info'](_0x139410[_0x2e696f(0x2c4)],{'client_name':_0xaabd3a,'redirect_uris':_0x5158a4});if(!_0x5158a4||!Array[_0x2e696f(0x2af)+'ay'](_0x5158a4)||_0x5158a4[_0x2e696f(0x222)+'h']===0x0){_0x494a47[_0x2e696f(0x278)+'s'](0x190)[_0x2e696f(0x237)]({'error':_0x139410['eLAWn'],'error_description':_0x139410[_0x2e696f(0x2da)]});return;}try{const {clientId:_0x3843eb,clientSecret:_0x32615d}=OAuthService[_0x2e696f(0x23d)+_0x2e696f(0x242)+'gnedC'+_0x2e696f(0x28f)+'Id'](_0x5158a4);_0x494a47[_0x2e696f(0x278)+'s'](0xc9)[_0x2e696f(0x237)]({'client_id':_0x3843eb,'client_secret':_0x32615d,'client_name':_0x139410[_0x2e696f(0x285)](_0xaabd3a,_0x139410[_0x2e696f(0x212)]),'redirect_uris':_0x5158a4,'grant_types':[_0x139410[_0x2e696f(0x29e)]],'response_types':['code'],'token_endpoint_auth_method':_0x139410['JxYnb']});}catch(_0x53b9ba){logger[_0x2e696f(0x218)](_0x2e696f(0x20b)+_0x2e696f(0x1ec)+_0x2e696f(0x2b6)+_0x2e696f(0x2de)+_0x2e696f(0x295)+'ted',{'error':_0x53b9ba[_0x2e696f(0x27b)+'ge'],'redirect_uris':_0x5158a4}),_0x494a47[_0x2e696f(0x278)+'s'](0x190)['json']({'error':_0x139410[_0x2e696f(0x1ea)],'error_description':_0x53b9ba[_0x2e696f(0x27b)+'ge']});}}),router['get'](a0_0x2d15f9(0x29f)+a0_0x2d15f9(0x231)+'horiz'+'e',createAuthRateLimit,(_0x314d14,_0x21976d)=>{const _0x4e946a=a0_0x2d15f9,_0x51b507={'foEXB':_0x4e946a(0x1eb)+'\x20Auth'+'oriza'+_0x4e946a(0x2de)+'reque'+_0x4e946a(0x1ed)+_0x4e946a(0x201),'ojcwY':_0x4e946a(0x281)+_0x4e946a(0x27c)+_0x4e946a(0x226)+_0x4e946a(0x2aa)+_0x4e946a(0x26b)+_0x4e946a(0x21d)+_0x4e946a(0x26e)+_0x4e946a(0x1fb)+_0x4e946a(0x296),'iBMVG':_0x4e946a(0x298)+_0x4e946a(0x253)+_0x4e946a(0x2df)+_0x4e946a(0x265)+'nt\x20ID'+_0x4e946a(0x26a)+_0x4e946a(0x2a2)+'\x20conf'+_0x4e946a(0x2dd)+_0x4e946a(0x1f6),'clBOr':'respo'+_0x4e946a(0x255)+_0x4e946a(0x250),'oblEc':_0x4e946a(0x227),'lwuHd':function(_0x35df82,_0x184632){return _0x35df82===_0x184632;},'CMmOy':_0x4e946a(0x297),'Dpfpo':_0x4e946a(0x27f)+_0x4e946a(0x25b)+_0x4e946a(0x282)+_0x4e946a(0x215)+'e','AqNjy':_0x4e946a(0x2bd)},{response_type:_0x3e71cb,client_id:_0x3626d2,redirect_uri:_0x74000c,state:_0x42ec34,code_challenge:_0xb8795a,code_challenge_method:_0x5ea216}=_0x314d14['query'];logger['info'](_0x51b507['foEXB'],{'response_type':_0x3e71cb,'client_id':_0x3626d2,'redirect_uri':_0x74000c,'state':_0x42ec34});if(_0x3626d2&&!OAuthService[_0x4e946a(0x2c2)+'yClie'+_0x4e946a(0x262)](_0x3626d2,_0x74000c)){_0x21976d[_0x4e946a(0x278)+'s'](0x191)['send'](_0x51b507[_0x4e946a(0x210)]);return;}const _0x37711f=a0_0x6a392a['click'+_0x4e946a(0x291)+_0x4e946a(0x1f8)];if(!_0x37711f){logger[_0x4e946a(0x26f)](_0x51b507[_0x4e946a(0x21f)]),_0x21976d[_0x4e946a(0x278)+'s'](0x1f4)['send']('Serve'+_0x4e946a(0x269)+_0x4e946a(0x24c)+'gurat'+_0x4e946a(0x252)+_0x4e946a(0x298)+_0x4e946a(0x253)+_0x4e946a(0x2df)+'\x20Clie'+'nt\x20ID');return;}const _0x3949a6=OAuthService[_0x4e946a(0x23d)+_0x4e946a(0x206)+'oxySt'+_0x4e946a(0x264)](_0x74000c,_0x42ec34,_0xb8795a,_0x5ea216),_0x40d64e=new URL(a0_0x6a392a[_0x4e946a(0x20c)+_0x4e946a(0x2b1)+_0x4e946a(0x2d1)]+'/api');_0x40d64e[_0x4e946a(0x2ae)+'hPara'+'ms'][_0x4e946a(0x28c)+'d'](_0x4e946a(0x1ff)+_0x4e946a(0x294),_0x37711f),_0x40d64e[_0x4e946a(0x2ae)+_0x4e946a(0x22a)+'ms'][_0x4e946a(0x28c)+'d'](_0x4e946a(0x205)+'ect_u'+'ri',serverUrl+(_0x4e946a(0x29f)+_0x4e946a(0x1f3)+_0x4e946a(0x2ab))),_0x40d64e[_0x4e946a(0x2ae)+_0x4e946a(0x22a)+'ms'][_0x4e946a(0x28c)+'d'](_0x51b507[_0x4e946a(0x24d)],'code'),_0x40d64e[_0x4e946a(0x2ae)+_0x4e946a(0x22a)+'ms']['appen'+'d'](_0x51b507[_0x4e946a(0x1f2)],_0x3949a6);const _0x5c8a95=_0x314d14[_0x4e946a(0x228)+'e']||_0x51b507[_0x4e946a(0x22d)](_0x314d14['heade'+'rs']['x-for'+_0x4e946a(0x268)+_0x4e946a(0x279)+'to'],_0x51b507[_0x4e946a(0x2a7)]),_0x39f166=_0x5c8a95?_0x51b507[_0x4e946a(0x27e)]:'mcp_a'+'uth_s'+_0x4e946a(0x2d0);_0x21976d[_0x4e946a(0x280)+'e'](_0x39f166,_0x3949a6,{'httpOnly':!![],'secure':_0x5c8a95,'sameSite':_0x51b507[_0x4e946a(0x247)],'maxAge':0xf*0x3c*0x3e8,'path':'/'}),_0x21976d[_0x4e946a(0x205)+_0x4e946a(0x204)](_0x40d64e['toStr'+_0x4e946a(0x2a9)]());}),router['get']('/oaut'+'h/cal'+a0_0x2d15f9(0x2ab),createAuthRateLimit,(_0x2d5e60,_0x599081)=>{const _0x5025e9=a0_0x2d15f9,_0x28f437={'RhCHQ':function(_0x17d46f,_0x5ae42b){return _0x17d46f||_0x5ae42b;},'JfjDg':'Missi'+_0x5025e9(0x2bb)+'de\x20or'+_0x5025e9(0x232)+_0x5025e9(0x2d4)+_0x5025e9(0x25e)+_0x5025e9(0x29b),'YHHiU':_0x5025e9(0x1eb)+'\x20call'+_0x5025e9(0x1ef)+_0x5025e9(0x258)+_0x5025e9(0x24b),'xikCk':function(_0x4e1f88,_0x204493){return _0x4e1f88===_0x204493;},'FIPec':_0x5025e9(0x27f)+'t-mcp'+_0x5025e9(0x282)+_0x5025e9(0x215)+'e','xFclV':function(_0x1db1fb,_0x18e911){return _0x1db1fb===_0x18e911;},'pkdHi':'code','LJSqS':'Inval'+_0x5025e9(0x2c6)+_0x5025e9(0x2c3)+_0x5025e9(0x230)+'ter'},{code:_0x221ee8,state:_0x57fd6d}=_0x2d5e60[_0x5025e9(0x21b)];if(_0x28f437['RhCHQ'](!_0x221ee8,!_0x57fd6d)){_0x599081[_0x5025e9(0x278)+'s'](0x190)[_0x5025e9(0x2b3)](_0x28f437[_0x5025e9(0x248)]);return;}logger[_0x5025e9(0x24f)](_0x28f437[_0x5025e9(0x2a8)],{'query':_0x2d5e60[_0x5025e9(0x21b)]});const _0x28cc66=_0x2d5e60[_0x5025e9(0x228)+'e']||_0x28f437[_0x5025e9(0x20e)](_0x2d5e60[_0x5025e9(0x1e8)+'rs'][_0x5025e9(0x22f)+'warde'+_0x5025e9(0x279)+'to'],_0x5025e9(0x297)),_0x21dc73=_0x28cc66?_0x28f437[_0x5025e9(0x217)]:'mcp_a'+_0x5025e9(0x1f1)+_0x5025e9(0x2d0),_0x1f4873=_0x2d5e60[_0x5025e9(0x280)+'es']?.[_0x21dc73];if(!_0x1f4873||_0x1f4873!==_0x57fd6d){logger[_0x5025e9(0x218)]('OAuth'+_0x5025e9(0x2c5)+_0x5025e9(0x276)+_0x5025e9(0x219)+':\x20sta'+'te\x20mi'+'smatc'+_0x5025e9(0x25d)+'missi'+_0x5025e9(0x2bb)+_0x5025e9(0x214),{'hasCookie':!!_0x1f4873,'cookieName':_0x21dc73,'stateMatch':_0x28f437['xFclV'](_0x1f4873,_0x57fd6d)}),_0x599081[_0x5025e9(0x278)+'s'](0x193)[_0x5025e9(0x2b3)]('Authe'+_0x5025e9(0x20f)+_0x5025e9(0x2de)+_0x5025e9(0x216)+_0x5025e9(0x254)+_0x5025e9(0x2e0)+_0x5025e9(0x1fd)+_0x5025e9(0x2b8)+'r\x20CSR'+'F\x20det'+_0x5025e9(0x208)+_0x5025e9(0x2be)+_0x5025e9(0x257)+_0x5025e9(0x28e)+_0x5025e9(0x2d5));return;}_0x599081[_0x5025e9(0x256)+_0x5025e9(0x2cc)+'e'](_0x21dc73,{'path':'/'});try{const _0x4c1f14=OAuthService['decod'+_0x5025e9(0x29c)+_0x5025e9(0x223)+'e'](_0x57fd6d),_0x39676f=new URL(_0x4c1f14['origi'+_0x5025e9(0x283)+_0x5025e9(0x240)+_0x5025e9(0x25f)+'i']),_0x137af9=OAuthService[_0x5025e9(0x23d)+_0x5025e9(0x242)+'gnedP'+'roxyC'+_0x5025e9(0x209)](_0x221ee8,_0x4c1f14['code_'+_0x5025e9(0x235)+_0x5025e9(0x2d9)],_0x4c1f14[_0x5025e9(0x23b)+_0x5025e9(0x235)+_0x5025e9(0x286)+'metho'+'d']);_0x39676f[_0x5025e9(0x2ae)+_0x5025e9(0x22a)+'ms']['appen'+'d'](_0x28f437[_0x5025e9(0x241)],_0x137af9),_0x39676f[_0x5025e9(0x2ae)+'hPara'+'ms'][_0x5025e9(0x28c)+'d'](_0x5025e9(0x227),_0x4c1f14['origi'+'nal_s'+_0x5025e9(0x2d0)]),_0x599081[_0x5025e9(0x205)+_0x5025e9(0x204)](_0x39676f[_0x5025e9(0x22e)+'ing']());}catch(_0x1e55a4){logger[_0x5025e9(0x26f)](_0x5025e9(0x2bc)+'d\x20to\x20'+_0x5025e9(0x21e)+'\x20OAut'+_0x5025e9(0x1ee)+'te',_0x1e55a4),_0x599081[_0x5025e9(0x278)+'s'](0x190)[_0x5025e9(0x2b3)](_0x28f437[_0x5025e9(0x21a)]);}}),router[a0_0x2d15f9(0x22b)](a0_0x2d15f9(0x29f)+a0_0x2d15f9(0x22c)+'en',createAuthRateLimit,async(_0x69e44f,_0x2ca8c3)=>{const _0xb4a181=a0_0x2d15f9,_0x15908f={'LByQO':function(_0x5cabd1,_0x3200cc){return _0x5cabd1&&_0x3200cc;},'ukxxA':_0xb4a181(0x281)+_0xb4a181(0x27c)+'ient\x20'+_0xb4a181(0x25a)+'t','qXfEV':_0xb4a181(0x1fe)+'id_cl'+_0xb4a181(0x270),'BjoNk':_0xb4a181(0x281)+'id\x20cl'+_0xb4a181(0x226)+_0xb4a181(0x2ad)+_0xb4a181(0x2a3)+'s','WFhqM':_0xb4a181(0x281)+_0xb4a181(0x236)+'oxy\x20C'+'ode','RhDzm':_0xb4a181(0x281)+_0xb4a181(0x23a)+_0xb4a181(0x261)+_0xb4a181(0x2cb)+_0xb4a181(0x2a6)+_0xb4a181(0x2c9)+_0xb4a181(0x2a1)+_0xb4a181(0x288),'zLsTS':function(_0xe84c1f,_0x3fcd39){return _0xe84c1f>_0x3fcd39;},'qVGvn':_0xb4a181(0x2bc)+_0xb4a181(0x24e)+_0xb4a181(0x289)+_0xb4a181(0x275)+_0xb4a181(0x24a)+_0xb4a181(0x1f7)+_0xb4a181(0x2db)+_0xb4a181(0x2a5)+'urnin'+_0xb4a181(0x200)+_0xb4a181(0x220)+'n','tORUl':_0xb4a181(0x2bc)+_0xb4a181(0x24e)+_0xb4a181(0x2c8)+_0xb4a181(0x260)+_0xb4a181(0x272)+'with\x20'+_0xb4a181(0x27d)+_0xb4a181(0x28d)+'rovid'+'er'},{grant_type:_0x2be763,code:_0x367353,redirect_uri:_0x43ffdf,client_id:_0x311764,client_secret:_0x118603,code_verifier:_0x4ac3ab}=_0x69e44f[_0xb4a181(0x1fa)];logger[_0xb4a181(0x24f)](_0xb4a181(0x1eb)+'\x20Toke'+_0xb4a181(0x293)+_0xb4a181(0x277)+_0xb4a181(0x238)+_0xb4a181(0x211)+_0xb4a181(0x259)+')',{'grant_type':_0x2be763,'client_id':_0x311764});if(_0x15908f[_0xb4a181(0x2b2)](_0x311764,_0x118603)){if(!OAuthService[_0xb4a181(0x2c2)+'yClie'+_0xb4a181(0x2d6)+_0xb4a181(0x263)](_0x311764,_0x118603)){logger[_0xb4a181(0x218)](_0x15908f[_0xb4a181(0x225)],{'client_id':_0x311764}),_0x2ca8c3[_0xb4a181(0x278)+'s'](0x191)[_0xb4a181(0x237)]({'error':_0x15908f[_0xb4a181(0x271)],'error_description':_0x15908f[_0xb4a181(0x246)]});return;}}const _0x165747=OAuthService[_0xb4a181(0x2c2)+'yAndD'+_0xb4a181(0x2b0)+_0xb4a181(0x259)+_0xb4a181(0x273)](_0x367353);if(!_0x165747){logger[_0xb4a181(0x218)](_0x15908f[_0xb4a181(0x2b4)],{'code':_0x367353}),_0x2ca8c3[_0xb4a181(0x278)+'s'](0x190)[_0xb4a181(0x237)]({'error':_0xb4a181(0x1fe)+_0xb4a181(0x29d)+_0xb4a181(0x2bf),'error_description':_0x15908f['RhDzm']});return;}if(!_0x4ac3ab){_0x2ca8c3['statu'+'s'](0x190)[_0xb4a181(0x237)]({'error':'inval'+_0xb4a181(0x29d)+_0xb4a181(0x2bf),'error_description':_0xb4a181(0x23b)+'verif'+_0xb4a181(0x2b5)+'s\x20req'+_0xb4a181(0x2c7)+_0xb4a181(0x266)+_0xb4a181(0x2d8)});return;}if(!OAuthService[_0xb4a181(0x2c2)+_0xb4a181(0x2cf)](_0x4ac3ab,_0x165747['hc'],_0x165747['hm'])){logger[_0xb4a181(0x218)](_0xb4a181(0x29a)+_0xb4a181(0x2c2)+_0xb4a181(0x25c)+_0xb4a181(0x2b9)+_0xb4a181(0x2c0),{'clickUpCode':_0x165747['c'],'verifier':_0x4ac3ab}),_0x2ca8c3[_0xb4a181(0x278)+'s'](0x190)[_0xb4a181(0x237)]({'error':_0xb4a181(0x1fe)+_0xb4a181(0x29d)+_0xb4a181(0x2bf),'error_description':'PKCE\x20'+_0xb4a181(0x2c2)+_0xb4a181(0x25c)+'on\x20fa'+_0xb4a181(0x2c0)});return;}const _0x4187c4=await OAuthService[_0xb4a181(0x2c8)+_0xb4a181(0x1fc)+_0xb4a181(0x20d)+_0xb4a181(0x2ac)+_0xb4a181(0x29b)](_0x165747['c']);if(_0x4187c4[_0xb4a181(0x27a)+'ss']){const _0x1dc16e=_0x4187c4[_0xb4a181(0x2d3)][_0xb4a181(0x221)+_0xb4a181(0x202)+'en'];clearTokenCache(_0x1dc16e);try{const _0x2998b1=await a0_0x3ac3b4[_0xb4a181(0x2ca)](a0_0x6a392a[_0xb4a181(0x20c)+'upApi'+'Url']+_0xb4a181(0x26d),{'headers':{'Authorization':_0x1dc16e},'timeout':0x2710}),_0x3aa27d=_0x2998b1[_0xb4a181(0x2d3)]?.[_0xb4a181(0x2d7)]||[];if(_0x15908f[_0xb4a181(0x28b)](_0x3aa27d['lengt'+'h'],0x0)){const _0x3965ce=_0x3aa27d[_0xb4a181(0x239)](_0xba905b=>String(_0xba905b['id'])),_0x312159=_0x3965ce[_0xb4a181(0x2ce)](','),_0x47a45f=_0x312159+':'+_0x1dc16e;logger[_0xb4a181(0x24f)](_0xb4a181(0x2dc)+_0xb4a181(0x299)+'works'+_0xb4a181(0x243)+_0xb4a181(0x2d2)+'tion\x20'+_0xb4a181(0x20a)+_0xb4a181(0x251),{'count':_0x3965ce[_0xb4a181(0x222)+'h'],'confirmedIds':_0x312159}),_0x2ca8c3[_0xb4a181(0x237)]({..._0x4187c4[_0xb4a181(0x2d3)],'access_token':_0x47a45f,'first_team_id':_0x3965ce[0x0],'all_team_ids':_0x3965ce});return;}}catch(_0x9a205e){logger[_0xb4a181(0x218)](_0x15908f[_0xb4a181(0x2ba)],{'error':_0x9a205e[_0xb4a181(0x27b)+'ge']});}_0x2ca8c3['json'](_0x4187c4[_0xb4a181(0x2d3)]);}else logger[_0xb4a181(0x26f)]('Upstr'+_0xb4a181(0x1f5)+_0xb4a181(0x272)+_0xb4a181(0x2c8)+'nge\x20f'+_0xb4a181(0x21c)+'e',{'error':_0x4187c4[_0xb4a181(0x26f)]}),_0x2ca8c3[_0xb4a181(0x278)+'s'](0x1f4)[_0xb4a181(0x237)]({'error':_0x15908f['tORUl'],'details':_0x4187c4[_0xb4a181(0x26f)]});});export default router;
1
+ const a0_0x114b86=a0_0x5bad;(function(_0x49ab82,_0x1b8a6c){const _0x47e9e1=a0_0x5bad,_0x155851=_0x49ab82();while(!![]){try{const _0xd29e17=parseInt(_0x47e9e1(0x24b))/0x1+-parseInt(_0x47e9e1(0x231))/0x2*(parseInt(_0x47e9e1(0x1d3))/0x3)+-parseInt(_0x47e9e1(0x1a2))/0x4*(parseInt(_0x47e9e1(0x179))/0x5)+parseInt(_0x47e9e1(0x1cc))/0x6*(parseInt(_0x47e9e1(0x235))/0x7)+-parseInt(_0x47e9e1(0x193))/0x8*(-parseInt(_0x47e9e1(0x1f4))/0x9)+-parseInt(_0x47e9e1(0x182))/0xa*(-parseInt(_0x47e9e1(0x224))/0xb)+parseInt(_0x47e9e1(0x163))/0xc*(-parseInt(_0x47e9e1(0x18f))/0xd);if(_0xd29e17===_0x1b8a6c)break;else _0x155851['push'](_0x155851['shift']());}catch(_0x4fb6c3){_0x155851['push'](_0x155851['shift']());}}}(a0_0x1b92,0xc142f));import a0_0x166aae from'express';import a0_0x4885d9 from'../config.js';import{Logger}from'../logger.js';import{OAuthService}from'../services/oauth.js';import{clearTokenCache}from'../middleware/auth.js';function a0_0x5bad(_0x3fad8d,_0x1ecf73){_0x3fad8d=_0x3fad8d-0x157;const _0x1b92a7=a0_0x1b92();let _0x5badfe=_0x1b92a7[_0x3fad8d];if(a0_0x5bad['jSpzke']===undefined){var _0x4e5178=function(_0x42dfb2){const _0x362978='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x101173='',_0x357fce='';for(let _0x235698=0x0,_0x744c06,_0x4fc86a,_0x4192b3=0x0;_0x4fc86a=_0x42dfb2['charAt'](_0x4192b3++);~_0x4fc86a&&(_0x744c06=_0x235698%0x4?_0x744c06*0x40+_0x4fc86a:_0x4fc86a,_0x235698++%0x4)?_0x101173+=String['fromCharCode'](0xff&_0x744c06>>(-0x2*_0x235698&0x6)):0x0){_0x4fc86a=_0x362978['indexOf'](_0x4fc86a);}for(let _0x1e99b2=0x0,_0x667182=_0x101173['length'];_0x1e99b2<_0x667182;_0x1e99b2++){_0x357fce+='%'+('00'+_0x101173['charCodeAt'](_0x1e99b2)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x357fce);};a0_0x5bad['rqAdUI']=_0x4e5178,a0_0x5bad['wRcvhS']={},a0_0x5bad['jSpzke']=!![];}const _0xa3eeee=_0x1b92a7[0x0],_0x546ff5=_0x3fad8d+_0xa3eeee,_0x2a6ca5=a0_0x5bad['wRcvhS'][_0x546ff5];return!_0x2a6ca5?(_0x5badfe=a0_0x5bad['rqAdUI'](_0x5badfe),a0_0x5bad['wRcvhS'][_0x546ff5]=_0x5badfe):_0x5badfe=_0x2a6ca5,_0x5badfe;}import a0_0x4c80a2 from'axios';const router=a0_0x166aae['Route'+'r'](),logger=new Logger(a0_0x114b86(0x1de)+a0_0x114b86(0x203)+'s');import{createAuthRateLimitMiddleware}from'../middleware/security.js';const createAuthRateLimit=createAuthRateLimitMiddleware(),serverUrl=a0_0x4885d9['mcpSe'+'rverU'+'rl']||a0_0x114b86(0x208)+'//loc'+'alhos'+'t:'+(a0_0x4885d9[a0_0x114b86(0x157)]||0xc9f);router[a0_0x114b86(0x1d1)](a0_0x114b86(0x24a)+a0_0x114b86(0x1fa)+a0_0x114b86(0x1a9),createAuthRateLimit,(_0x335725,_0x1db42c)=>{const _0x3a59c4=a0_0x114b86,_0x39bfcb={'mPSyH':function(_0x1121ef,_0x340600){return _0x1121ef===_0x340600;},'gBYEV':_0x3a59c4(0x1e6)+_0x3a59c4(0x1c6),'hjqzq':'clien'+'t_sec'+_0x3a59c4(0x183)+_0x3a59c4(0x1d0)},{client_name:_0x404733,redirect_uris:_0x3fb22a}=_0x335725[_0x3a59c4(0x1ff)];logger['info'](_0x3a59c4(0x1de)+_0x3a59c4(0x226)+_0x3a59c4(0x249)+'gistr'+_0x3a59c4(0x1d4)+'\x20requ'+_0x3a59c4(0x20a),{'client_name':_0x404733,'redirect_uris':_0x3fb22a});if(!_0x3fb22a||!Array[_0x3a59c4(0x22d)+'ay'](_0x3fb22a)||_0x39bfcb[_0x3a59c4(0x199)](_0x3fb22a[_0x3a59c4(0x1f3)+'h'],0x0)){_0x1db42c['statu'+'s'](0x190)[_0x3a59c4(0x1cf)]({'error':_0x3a59c4(0x1b2)+_0x3a59c4(0x237)+_0x3a59c4(0x16b)+_0x3a59c4(0x1a6)+_0x3a59c4(0x19b),'error_description':_0x3a59c4(0x201)+_0x3a59c4(0x16a)+'ris\x20i'+_0x3a59c4(0x247)+_0x3a59c4(0x15a)});return;}try{const {clientId:_0x42a7a3,clientSecret:_0xfbdfac}=OAuthService[_0x3a59c4(0x159)+_0x3a59c4(0x219)+'gnedC'+_0x3a59c4(0x1c6)+'Id'](_0x3fb22a);_0x1db42c[_0x3a59c4(0x187)+'s'](0xc9)[_0x3a59c4(0x1cf)]({'client_id':_0x42a7a3,'client_secret':_0xfbdfac,'client_name':_0x404733||_0x39bfcb[_0x3a59c4(0x1c3)],'redirect_uris':_0x3fb22a,'grant_types':[_0x3a59c4(0x217)+_0x3a59c4(0x1b0)+_0x3a59c4(0x1bb)+'ode'],'response_types':['code'],'token_endpoint_auth_method':_0x39bfcb[_0x3a59c4(0x16d)]});}catch(_0x383222){logger[_0x3a59c4(0x1f7)](_0x3a59c4(0x1e0)+_0x3a59c4(0x241)+_0x3a59c4(0x236)+_0x3a59c4(0x1fb)+_0x3a59c4(0x15e)+_0x3a59c4(0x21f),{'error':_0x383222['messa'+'ge'],'redirect_uris':_0x3fb22a}),_0x1db42c['statu'+'s'](0x190)[_0x3a59c4(0x1cf)]({'error':_0x3a59c4(0x1b2)+'id_cl'+_0x3a59c4(0x16b)+'metad'+_0x3a59c4(0x19b),'error_description':_0x383222[_0x3a59c4(0x1c5)+'ge']});}}),router[a0_0x114b86(0x214)](a0_0x114b86(0x24a)+a0_0x114b86(0x21d)+'horiz'+'e',createAuthRateLimit,(_0x538908,_0x2b941a)=>{const _0x11a7d5=a0_0x114b86,_0x13c412={'whAQq':_0x11a7d5(0x1ec)+'ng\x20Cl'+_0x11a7d5(0x169)+'\x20Clie'+'nt\x20ID'+_0x11a7d5(0x1a7)+_0x11a7d5(0x221)+_0x11a7d5(0x1be)+'igura'+'tion','QZZGS':'Serve'+_0x11a7d5(0x1d9)+_0x11a7d5(0x20c)+_0x11a7d5(0x195)+'ion:\x20'+_0x11a7d5(0x1ec)+_0x11a7d5(0x15c)+_0x11a7d5(0x169)+_0x11a7d5(0x226)+_0x11a7d5(0x1c0),'wOEFv':_0x11a7d5(0x233),'fptyR':_0x11a7d5(0x213),'tCHbH':function(_0x31a534,_0x233472){return _0x31a534===_0x233472;},'BxcXT':'x-for'+_0x11a7d5(0x23d)+_0x11a7d5(0x1ed)+'to','KZjVM':_0x11a7d5(0x200)+_0x11a7d5(0x220)+'tate','QYCNo':function(_0x4444fb,_0x4e4198){return _0x4444fb*_0x4e4198;}},{response_type:_0x3dea6f,client_id:_0x277459,redirect_uri:_0x1d0190,state:_0x2f25ae,code_challenge:_0x2fdac5,code_challenge_method:_0x19cef4}=_0x538908['query'];logger[_0x11a7d5(0x1da)](_0x11a7d5(0x1de)+'\x20Auth'+'oriza'+_0x11a7d5(0x1fb)+_0x11a7d5(0x1a8)+_0x11a7d5(0x1d6)+_0x11a7d5(0x23c),{'response_type':_0x3dea6f,'client_id':_0x277459,'redirect_uri':_0x1d0190,'state':_0x2f25ae});if(_0x277459&&!OAuthService[_0x11a7d5(0x228)+_0x11a7d5(0x1f1)+'ntId'](_0x277459,_0x1d0190)){_0x2b941a[_0x11a7d5(0x187)+'s'](0x191)[_0x11a7d5(0x1ad)](_0x11a7d5(0x17d)+_0x11a7d5(0x218)+_0x11a7d5(0x1ba)+_0x11a7d5(0x15f)+'\x20Redi'+'rect\x20'+'URI\x20n'+_0x11a7d5(0x1a5)+_0x11a7d5(0x168));return;}const _0x220703=a0_0x4885d9[_0x11a7d5(0x222)+'upCli'+_0x11a7d5(0x1cb)];if(!_0x220703){logger[_0x11a7d5(0x1a0)](_0x13c412['whAQq']),_0x2b941a[_0x11a7d5(0x187)+'s'](0x1f4)[_0x11a7d5(0x1ad)](_0x13c412[_0x11a7d5(0x225)]);return;}const _0x586877=OAuthService[_0x11a7d5(0x159)+_0x11a7d5(0x16c)+_0x11a7d5(0x206)+'ate'](_0x1d0190,_0x2f25ae,_0x2fdac5,_0x19cef4),_0x11f9b5=new URL(a0_0x4885d9[_0x11a7d5(0x222)+_0x11a7d5(0x239)+_0x11a7d5(0x246)]+_0x11a7d5(0x1ab));_0x11f9b5[_0x11a7d5(0x1bd)+_0x11a7d5(0x1b3)+'ms'][_0x11a7d5(0x190)+'d'](_0x11a7d5(0x1ae)+_0x11a7d5(0x18e),_0x220703),_0x11f9b5[_0x11a7d5(0x1bd)+'hPara'+'ms'][_0x11a7d5(0x190)+'d'](_0x11a7d5(0x201)+'ect_u'+'ri',serverUrl+(_0x11a7d5(0x24a)+_0x11a7d5(0x1aa)+_0x11a7d5(0x1b4))),_0x11f9b5[_0x11a7d5(0x1bd)+_0x11a7d5(0x1b3)+'ms'][_0x11a7d5(0x190)+'d'](_0x11a7d5(0x1e3)+'nse_t'+_0x11a7d5(0x22e),_0x13c412[_0x11a7d5(0x1e1)]),_0x11f9b5[_0x11a7d5(0x1bd)+_0x11a7d5(0x1b3)+'ms'][_0x11a7d5(0x190)+'d'](_0x13c412['fptyR'],_0x586877);const _0x51c793=_0x538908[_0x11a7d5(0x1bc)+'e']||_0x13c412[_0x11a7d5(0x1d7)](_0x538908[_0x11a7d5(0x18a)+'rs'][_0x13c412[_0x11a7d5(0x1ac)]],'https'),_0x4dab98=_0x51c793?'__Hos'+_0x11a7d5(0x1bf)+_0x11a7d5(0x1b1)+'_stat'+'e':_0x13c412[_0x11a7d5(0x20b)];_0x2b941a[_0x11a7d5(0x1d2)+'e'](_0x4dab98,_0x586877,{'httpOnly':!![],'secure':_0x51c793,'sameSite':_0x11a7d5(0x177),'maxAge':_0x13c412[_0x11a7d5(0x178)](0xf*0x3c,0x3e8),'path':'/'}),_0x2b941a[_0x11a7d5(0x201)+_0x11a7d5(0x1c9)](_0x11f9b5[_0x11a7d5(0x227)+_0x11a7d5(0x1af)]());}),router[a0_0x114b86(0x214)](a0_0x114b86(0x24a)+a0_0x114b86(0x1aa)+a0_0x114b86(0x1b4),createAuthRateLimit,(_0x271b30,_0x2b5f35)=>{const _0x359366=a0_0x114b86,_0x474f02={'jDRYP':_0x359366(0x1ec)+'ng\x20co'+_0x359366(0x210)+_0x359366(0x1e7)+_0x359366(0x18c)+_0x359366(0x192)+_0x359366(0x1ee),'YKiGO':'x-for'+_0x359366(0x23d)+_0x359366(0x1ed)+'to','jrHbE':'https','XScoE':_0x359366(0x172)+_0x359366(0x1bf)+_0x359366(0x1b1)+_0x359366(0x18b)+'e','Trvuu':_0x359366(0x200)+_0x359366(0x220)+_0x359366(0x243),'nfJVv':function(_0x131fda,_0x55545a){return _0x131fda!==_0x55545a;},'kBRwy':function(_0x21d67e,_0x569f4d){return _0x21d67e===_0x569f4d;},'UlXNn':_0x359366(0x213),'qajnG':_0x359366(0x17d)+_0x359366(0x22f)+_0x359366(0x19f)+_0x359366(0x1f0)+_0x359366(0x19a)},{code:_0x7d0987,state:_0x462c20}=_0x271b30[_0x359366(0x22b)];if(!_0x7d0987||!_0x462c20){_0x2b5f35[_0x359366(0x187)+'s'](0x190)[_0x359366(0x1ad)](_0x474f02[_0x359366(0x1f8)]);return;}logger[_0x359366(0x1da)](_0x359366(0x1de)+_0x359366(0x196)+_0x359366(0x171)+'recei'+_0x359366(0x1b7),{'query':_0x271b30[_0x359366(0x22b)]});const _0x5bb913=_0x271b30[_0x359366(0x1bc)+'e']||_0x271b30['heade'+'rs'][_0x474f02[_0x359366(0x18d)]]===_0x474f02[_0x359366(0x230)],_0x2ebc14=_0x5bb913?_0x474f02['XScoE']:_0x474f02[_0x359366(0x1c4)],_0x330c82=_0x271b30[_0x359366(0x1d2)+'es']?.[_0x2ebc14];if(!_0x330c82||_0x474f02[_0x359366(0x1e4)](_0x330c82,_0x462c20)){logger[_0x359366(0x1f7)](_0x359366(0x1de)+_0x359366(0x1dc)+'\x20dete'+'ction'+_0x359366(0x180)+_0x359366(0x197)+_0x359366(0x1f2)+_0x359366(0x1df)+_0x359366(0x19c)+_0x359366(0x1cd)+_0x359366(0x1fd),{'hasCookie':!!_0x330c82,'cookieName':_0x2ebc14,'stateMatch':_0x474f02['kBRwy'](_0x330c82,_0x462c20)}),_0x2b5f35['statu'+'s'](0x193)[_0x359366(0x1ad)](_0x359366(0x1db)+'ntica'+_0x359366(0x1fb)+'faile'+_0x359366(0x1ce)+_0x359366(0x1f5)+'\x20time'+'out\x20o'+'r\x20CSR'+'F\x20det'+_0x359366(0x21b)+'.\x20Ple'+_0x359366(0x240)+_0x359366(0x20e)+_0x359366(0x1ef));return;}_0x2b5f35[_0x359366(0x1ea)+_0x359366(0x24c)+'e'](_0x2ebc14,{'path':'/'});try{const _0x137063=OAuthService[_0x359366(0x1d8)+_0x359366(0x23a)+_0x359366(0x209)+'e'](_0x462c20),_0xb4dea1=new URL(_0x137063[_0x359366(0x22c)+'nal_r'+_0x359366(0x158)+_0x359366(0x17c)+'i']),_0xa91bab=OAuthService['gener'+'ateSi'+_0x359366(0x204)+_0x359366(0x17a)+_0x359366(0x1eb)](_0x7d0987,_0x137063[_0x359366(0x19e)+_0x359366(0x20f)+'enge'],_0x137063['code_'+_0x359366(0x20f)+_0x359366(0x20d)+_0x359366(0x1a3)+'d']);_0xb4dea1[_0x359366(0x1bd)+_0x359366(0x1b3)+'ms']['appen'+'d'](_0x359366(0x233),_0xa91bab),_0xb4dea1['searc'+_0x359366(0x1b3)+'ms'][_0x359366(0x190)+'d'](_0x474f02[_0x359366(0x166)],_0x137063[_0x359366(0x22c)+_0x359366(0x1c7)+_0x359366(0x243)]),_0x2b5f35[_0x359366(0x201)+_0x359366(0x1c9)](_0xb4dea1[_0x359366(0x227)+_0x359366(0x1af)]());}catch(_0x1683b0){logger[_0x359366(0x1a0)]('Faile'+_0x359366(0x23b)+'parse'+_0x359366(0x191)+_0x359366(0x244)+'te',_0x1683b0),_0x2b5f35[_0x359366(0x187)+'s'](0x190)[_0x359366(0x1ad)](_0x474f02[_0x359366(0x21c)]);}}),router[a0_0x114b86(0x1d1)](a0_0x114b86(0x24a)+'h/tok'+'en',createAuthRateLimit,async(_0xfa4aca,_0x42165d)=>{const _0x45b3ea=a0_0x114b86,_0x2f9130={'ZcOjB':_0x45b3ea(0x1de)+_0x45b3ea(0x1b8)+_0x45b3ea(0x21e)+_0x45b3ea(0x22a)+_0x45b3ea(0x212)+_0x45b3ea(0x173)+_0x45b3ea(0x216)+')','gdlAQ':_0x45b3ea(0x17d)+'id\x20Cl'+_0x45b3ea(0x1ba)+_0x45b3ea(0x1fe)+'t','aYsaP':_0x45b3ea(0x17d)+_0x45b3ea(0x194)+_0x45b3ea(0x1ba)+_0x45b3ea(0x242)+_0x45b3ea(0x164)+'s','VFDyW':_0x45b3ea(0x17d)+_0x45b3ea(0x229)+_0x45b3ea(0x234)+_0x45b3ea(0x1eb),'yGyik':'Inval'+_0x45b3ea(0x1c2)+_0x45b3ea(0x1ca)+'zatio'+_0x45b3ea(0x1e5)+_0x45b3ea(0x207)+_0x45b3ea(0x215)+'ture','EvbZd':'inval'+_0x45b3ea(0x186)+_0x45b3ea(0x1e8),'cbOWP':'code_'+_0x45b3ea(0x228)+_0x45b3ea(0x185)+_0x45b3ea(0x247)+_0x45b3ea(0x15a)+_0x45b3ea(0x1fc)+_0x45b3ea(0x232),'bodjy':'PKCE\x20'+_0x45b3ea(0x228)+'icati'+_0x45b3ea(0x174)+'iled','lZGMi':'Embed'+_0x45b3ea(0x165)+'works'+_0x45b3ea(0x161)+'selec'+_0x45b3ea(0x1fb)+_0x45b3ea(0x211)+_0x45b3ea(0x1e2),'soBiQ':_0x45b3ea(0x245)+_0x45b3ea(0x23b)+_0x45b3ea(0x17b)+_0x45b3ea(0x17f)+_0x45b3ea(0x15d)+_0x45b3ea(0x160)+_0x45b3ea(0x167)+_0x45b3ea(0x16e)+_0x45b3ea(0x1c8)+'er'},{grant_type:_0xb42a2c,code:_0x5d3019,redirect_uri:_0x14efb4,client_id:_0x3e01f0,client_secret:_0xb4053,code_verifier:_0xacd36b}=_0xfa4aca[_0x45b3ea(0x1ff)];logger['info'](_0x2f9130[_0x45b3ea(0x23e)],{'grant_type':_0xb42a2c,'client_id':_0x3e01f0});if(_0x3e01f0&&_0xb4053){if(!OAuthService[_0x45b3ea(0x228)+_0x45b3ea(0x1f1)+'ntSec'+_0x45b3ea(0x1d5)](_0x3e01f0,_0xb4053)){logger[_0x45b3ea(0x1f7)](_0x2f9130['gdlAQ'],{'client_id':_0x3e01f0}),_0x42165d['statu'+'s'](0x191)[_0x45b3ea(0x1cf)]({'error':'inval'+_0x45b3ea(0x237)+_0x45b3ea(0x1f9),'error_description':_0x2f9130[_0x45b3ea(0x19d)]});return;}}const _0xf4160d=OAuthService[_0x45b3ea(0x228)+_0x45b3ea(0x181)+_0x45b3ea(0x248)+_0x45b3ea(0x216)+_0x45b3ea(0x1a1)](_0x5d3019);if(!_0xf4160d){logger['warn'](_0x2f9130[_0x45b3ea(0x189)],{'code':_0x5d3019}),_0x42165d['statu'+'s'](0x190)[_0x45b3ea(0x1cf)]({'error':_0x45b3ea(0x1b2)+'id_gr'+_0x45b3ea(0x1e8),'error_description':_0x2f9130[_0x45b3ea(0x198)]});return;}if(!_0xacd36b){_0x42165d[_0x45b3ea(0x187)+'s'](0x190)[_0x45b3ea(0x1cf)]({'error':_0x2f9130['EvbZd'],'error_description':_0x2f9130[_0x45b3ea(0x238)]});return;}if(!OAuthService[_0x45b3ea(0x228)+_0x45b3ea(0x1dd)](_0xacd36b,_0xf4160d['hc'],_0xf4160d['hm'])){logger[_0x45b3ea(0x1f7)](_0x2f9130[_0x45b3ea(0x1c1)],{'clickUpCode':_0xf4160d['c'],'verifier':_0xacd36b}),_0x42165d['statu'+'s'](0x190)['json']({'error':'inval'+_0x45b3ea(0x186)+_0x45b3ea(0x1e8),'error_description':_0x2f9130[_0x45b3ea(0x1c1)]});return;}const _0x206f1b=await OAuthService[_0x45b3ea(0x17b)+'ngeTo'+_0x45b3ea(0x170)+'thCli'+'ckUp'](_0xf4160d['c']);if(_0x206f1b[_0x45b3ea(0x17e)+'ss']){const _0x56fcb2=_0x206f1b[_0x45b3ea(0x1b6)][_0x45b3ea(0x162)+_0x45b3ea(0x1f6)+'en'];clearTokenCache(_0x56fcb2);try{const _0x3df7e0=await a0_0x4c80a2[_0x45b3ea(0x214)](a0_0x4885d9['click'+_0x45b3ea(0x1b5)+_0x45b3ea(0x246)]+_0x45b3ea(0x23f),{'headers':{'Authorization':_0x56fcb2},'timeout':0x2710}),_0x4bf496=_0x3df7e0[_0x45b3ea(0x1b6)]?.[_0x45b3ea(0x188)]||[];if(_0x4bf496[_0x45b3ea(0x1f3)+'h']>0x0){const _0x5ec7a9=_0x4bf496['map'](_0x4a1091=>String(_0x4a1091['id'])),_0xa1ba1d=_0x5ec7a9['join'](','),_0x10a5bb=_0xa1ba1d+':'+_0x56fcb2;logger[_0x45b3ea(0x1da)](_0x2f9130[_0x45b3ea(0x176)],{'count':_0x5ec7a9[_0x45b3ea(0x1f3)+'h'],'confirmedIds':_0xa1ba1d}),_0x42165d[_0x45b3ea(0x1cf)]({..._0x206f1b[_0x45b3ea(0x1b6)],'access_token':_0x10a5bb,'first_team_id':_0x5ec7a9[0x0],'all_team_ids':_0x5ec7a9});return;}}catch(_0x592a02){logger[_0x45b3ea(0x1f7)]('Faile'+_0x45b3ea(0x23b)+_0x45b3ea(0x205)+_0x45b3ea(0x175)+_0x45b3ea(0x15b)+'\x20embe'+_0x45b3ea(0x21a)+',\x20ret'+_0x45b3ea(0x223)+_0x45b3ea(0x202)+'\x20toke'+'n',{'error':_0x592a02[_0x45b3ea(0x1c5)+'ge']});}_0x42165d['json'](_0x206f1b[_0x45b3ea(0x1b6)]);}else logger['error'](_0x45b3ea(0x1a4)+_0x45b3ea(0x1b9)+_0x45b3ea(0x15d)+'excha'+_0x45b3ea(0x184)+_0x45b3ea(0x16f)+'e',{'error':_0x206f1b[_0x45b3ea(0x1a0)]}),_0x42165d[_0x45b3ea(0x187)+'s'](0x1f4)[_0x45b3ea(0x1cf)]({'error':_0x2f9130[_0x45b3ea(0x1e9)],'details':_0x206f1b[_0x45b3ea(0x1a0)]});});export default router;function a0_0x1b92(){const _0x3cb1a8=['mtqXody4mdLmuwn3CMq','yxbWzw4','ie9bDxq','BsbdBgK','odq1mZy4Bu51whDZ','AwqGy2W','z3vYyxq','ignHBgW','DguGBwK','EuD5AwS','BvbtEuG','DgvY','yxrH','BwLZC2K','yvLZyva','y29Kzv8','yxrLiha','zxjYB3i','q29Kzq','nfPLr1rAuW','Bwv0Ag8','vxbZDhi','B3qGywW','Bwv0ywq','igLUihm','CMvXDwu','Axn0zxi','Ac9JywW','l2fWAq','qNHJwfq','C2vUza','y2XPzw4','Aw5N','CML6yxq','x2f1DgG','Aw52ywW','AfbHCMe','BgjHy2S','DxbbCgK','zgf0yq','DMvK','ifrVA2u','zwfTihq','AwvUDca','Aw9Ux2m','C2vJDxi','C2vHCMm','ignVBMy','Dc1Ty3a','BNqGsuq','yM9KANK','AwqGyxu','z0jzrvy','vhj2Dxu','BwvZC2e','BgLLBNq','BMfSx3m','CM92Awq','zwn0','DgHVCMK','zw50swq','ndC1mdHuyKzTrKK','BMCGy28','zdOGC2u','ANnVBG','B3n0','Cg9ZDa','y29VA2K','mti2mtyYnNvdr2rxzG','yxrPB24','CMv0','C3qGkfa','DeniyKG','zgvJB2q','CIbnAxm','Aw5MBW','qxv0Agu','ientuKy','Evblq0u','t0f1DgG','AcbVCIa','q2XPzw4','D09frNy','Dg9Rzw4','CMvZCg8','BMzkvNy','BIbJB2q','tunqiem','ihn0yxq','yw50','C29cAve','y2XLyxi','B2rL','twLZC2K','zc1WCM8','y2TvCa','ywLUlG','yxjHBwu','EunSAwu','C21HDgm','BgvUz3q','mZzUtNjoDuG','C3nPB24','C190B2S','D2fYBG','AKrswva','AwvUDa','Ac9YzwC','DgLVBIa','igzVCIa','B2TPzq','u2vJCMu','yM9KEq','BwnWx2e','CMvKAxi','zYbYyxC','uM91Dgu','z25Lzfa','zMv0y2G','B3H5u3q','zsbVCIa','Ahr0CdO','Evn0yxq','zxn0','s1PQvK0','y29UzMK','zw5Nzv8','CNKGywC','y2HHBgW','zguGB3i','Aw50BYa','ihjLCxu','C3rHDgu','z2v0','C2LNBMe','uhjVEhK','yxv0Ag8','AwqGq2W','yxrLu2K','zgrPBMC','zwn0zwq','CwfQBKC','Ac9HDxq','BIbfEgm','DgvK','DxrOx3m','zxj2zxi','y2XPy2S','DxjUAw4','mJa5v3zJt0nw','uvPAr1m','ienSAwu','Dg9tDhi','DMvYAwy','AwqGuhi','AgfUz2u','CxvLCNK','B3jPz2K','AxnbCNi','ExbL','AwqGC3q','ANjiyKu','mK12z2fJDa','ueTdrq','y29Kzq','B3H5iem','otu5zhvLvhrY','Axn0CMe','AwrFy2W','y2jpv1a','DxbbCha','zvbYB3G','zcb0BYa','CM94EsK','D2fYzgu','wMnpAKi','l3rLyw0','yxnLihq','DcbszwC','y3jLzgu','Dgf0zq','AcbZDge','rMfPBgu','vxjS','CYbYzxe','zwnVzgu','BNqGuMu','l29HDxq','mti2ota1nhLZCfDAwa','q29VA2K','Cg9YDa','zwrPCMu','z2vUzxi','DwLYzwq','CYbMB3i','BMCGq2W','B2TLBIa','uMvQzwm','suqGB3i','D2L0Aca','CgfJzsa','ywnJzxm','mtjWsLH5s1C','BNrPywW','zgLUzYa','vwXytM4','DxbZDhi','Bg93zwq','AwnRvxa','zwn0x3u','AwvUDf8','yxrLuhi','AgPXENe','zwfTiha','ywLSDxi','A2vUv2K','yMfJAYa','x19iB3m','zxn0icG','B24GzMe','ihrLyw0','BfPhtwK','Bgf4','uvLdtM8','ntK3ota1nu9PDefhvW','CM94Eum','zxHJAge','y3rFDxi','sw52ywW','C3vJy2u','BMDLihq','oIbZDge','EufUzeq','mZGWmZKWrgHQqLrv','CMv0x3a','BMDLigy','AwvYigK','AwrFz3i','C3rHDhu','DgvHBxm','vKzeEvC','AgvHzgu','x3n0yxq','zsbMCM8','wuTPr08','Df9Pza'];a0_0x1b92=function(){return _0x3cb1a8;};return a0_0x1b92();}
package/build/config.js CHANGED
@@ -1 +1 @@
1
- const a0_0x28ed21=a0_0x44af;(function(_0x4840b0,_0x1ead48){const _0x30802b=a0_0x44af,_0x14b0a1=_0x4840b0();while(!![]){try{const _0x5308ce=-parseInt(_0x30802b(0x171))/0x1*(parseInt(_0x30802b(0x170))/0x2)+parseInt(_0x30802b(0x134))/0x3+parseInt(_0x30802b(0x11b))/0x4*(-parseInt(_0x30802b(0x162))/0x5)+-parseInt(_0x30802b(0x16e))/0x6+parseInt(_0x30802b(0x141))/0x7+-parseInt(_0x30802b(0x12a))/0x8*(-parseInt(_0x30802b(0x168))/0x9)+parseInt(_0x30802b(0x13a))/0xa;if(_0x5308ce===_0x1ead48)break;else _0x14b0a1['push'](_0x14b0a1['shift']());}catch(_0x4982f5){_0x14b0a1['push'](_0x14b0a1['shift']());}}}(a0_0x2ea4,0xb0ce5));const args=process[a0_0x28ed21(0x159)][a0_0x28ed21(0x124)](0x2),envArgs={};function a0_0x44af(_0x1a815c,_0x3d46ae){_0x1a815c=_0x1a815c-0x119;const _0x2ea48a=a0_0x2ea4();let _0x44af0e=_0x2ea48a[_0x1a815c];if(a0_0x44af['PwLXEK']===undefined){var _0x4961f4=function(_0x447f46){const _0x1bb65b='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x37f0c4='',_0x6996a2='';for(let _0xb2ec6e=0x0,_0x444874,_0x11d72c,_0x384f6e=0x0;_0x11d72c=_0x447f46['charAt'](_0x384f6e++);~_0x11d72c&&(_0x444874=_0xb2ec6e%0x4?_0x444874*0x40+_0x11d72c:_0x11d72c,_0xb2ec6e++%0x4)?_0x37f0c4+=String['fromCharCode'](0xff&_0x444874>>(-0x2*_0xb2ec6e&0x6)):0x0){_0x11d72c=_0x1bb65b['indexOf'](_0x11d72c);}for(let _0x56a67f=0x0,_0xa14888=_0x37f0c4['length'];_0x56a67f<_0xa14888;_0x56a67f++){_0x6996a2+='%'+('00'+_0x37f0c4['charCodeAt'](_0x56a67f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x6996a2);};a0_0x44af['ZtweDd']=_0x4961f4,a0_0x44af['rtumzJ']={},a0_0x44af['PwLXEK']=!![];}const _0x373994=_0x2ea48a[0x0],_0xf04d35=_0x1a815c+_0x373994,_0x3eef23=a0_0x44af['rtumzJ'][_0xf04d35];return!_0x3eef23?(_0x44af0e=a0_0x44af['ZtweDd'](_0x44af0e),a0_0x44af['rtumzJ'][_0xf04d35]=_0x44af0e):_0x44af0e=_0x3eef23,_0x44af0e;}for(let i=0x0;i<args[a0_0x28ed21(0x13b)+'h'];i++){if(args[i]==='--env'&&i+0x1<args[a0_0x28ed21(0x13b)+'h']){const [key,value]=args[i+0x1][a0_0x28ed21(0x14d)]('=');if(key==='CLICK'+a0_0x28ed21(0x140)+a0_0x28ed21(0x12c))envArgs['click'+'upApi'+a0_0x28ed21(0x131)]=value;if(key===a0_0x28ed21(0x11f)+'UP_TE'+a0_0x28ed21(0x133))envArgs[a0_0x28ed21(0x161)+a0_0x28ed21(0x16a)+a0_0x28ed21(0x11c)]=value;if(key===a0_0x28ed21(0x12e)+a0_0x28ed21(0x136)+a0_0x28ed21(0x150)+'T')envArgs[a0_0x28ed21(0x153)+a0_0x28ed21(0x11e)+a0_0x28ed21(0x15a)]=value;if(key==='LOG_L'+a0_0x28ed21(0x155))envArgs[a0_0x28ed21(0x16d)+a0_0x28ed21(0x12d)]=value;if(key===a0_0x28ed21(0x14b)+a0_0x28ed21(0x15e)+a0_0x28ed21(0x135))envArgs['disab'+a0_0x28ed21(0x14f)+a0_0x28ed21(0x152)]=value;if(key===a0_0x28ed21(0x16f)+a0_0x28ed21(0x120)+a0_0x28ed21(0x126))envArgs['enabl'+a0_0x28ed21(0x13d)+'ls']=value;if(key===a0_0x28ed21(0x16f)+a0_0x28ed21(0x121))envArgs[a0_0x28ed21(0x14e)+a0_0x28ed21(0x119)]=value;if(key===a0_0x28ed21(0x15f)+a0_0x28ed21(0x146))envArgs[a0_0x28ed21(0x15c)+'rt']=value;if(key===a0_0x28ed21(0x16f)+a0_0x28ed21(0x154)+'IO')envArgs[a0_0x28ed21(0x14e)+a0_0x28ed21(0x16c)+'o']=value;if(key===a0_0x28ed21(0x132))envArgs[a0_0x28ed21(0x160)]=value;if(key===a0_0x28ed21(0x166))envArgs['host']=value;i++;}}export var LogLevel;(function(_0x17a5eb){const _0x24fb4c=a0_0x28ed21,_0x56f010={'jNuox':_0x24fb4c(0x148)},_0xd807a8=(_0x24fb4c(0x12b)+_0x24fb4c(0x123))[_0x24fb4c(0x14d)]('|');let _0x2f0988=0x0;while(!![]){switch(_0xd807a8[_0x2f0988++]){case'0':_0x17a5eb[_0x17a5eb['ERROR']=0x4]=_0x24fb4c(0x15d);continue;case'1':_0x17a5eb[_0x17a5eb[_0x24fb4c(0x144)]=0x2]='INFO';continue;case'2':_0x17a5eb[_0x17a5eb[_0x56f010[_0x24fb4c(0x16b)]]=0x1]=_0x56f010[_0x24fb4c(0x16b)];continue;case'3':_0x17a5eb[_0x17a5eb[_0x24fb4c(0x14a)]=0x0]=_0x24fb4c(0x14a);continue;case'4':_0x17a5eb[_0x17a5eb['WARN']=0x3]=_0x24fb4c(0x127);continue;}break;}}(LogLevel||(LogLevel={})));const parseLogLevel=_0x13de86=>{const _0x8cd394=a0_0x28ed21,_0x232649={'hFfYE':_0x8cd394(0x14a),'sumFE':_0x8cd394(0x148),'YmQyx':_0x8cd394(0x144)};if(!_0x13de86)return LogLevel[_0x8cd394(0x15d)];switch(_0x13de86['toUpp'+'erCas'+'e']()){case _0x232649['hFfYE']:return LogLevel[_0x8cd394(0x14a)];case _0x232649[_0x8cd394(0x137)]:return LogLevel[_0x8cd394(0x148)];case _0x232649[_0x8cd394(0x125)]:return LogLevel[_0x8cd394(0x144)];case'WARN':return LogLevel[_0x8cd394(0x127)];case _0x8cd394(0x15d):return LogLevel['ERROR'];default:return LogLevel['ERROR'];}},parseBoolean=(_0x57b362,_0x2243fc)=>{const _0x151057=a0_0x28ed21,_0x2e2cc0={'FaVhP':function(_0x5f6792,_0x1d28cb){return _0x5f6792===_0x1d28cb;},'idTLL':function(_0x525314,_0x10c2f1){return _0x525314===_0x10c2f1;},'HGxZJ':_0x151057(0x12f)};if(_0x2e2cc0[_0x151057(0x165)](_0x57b362,undefined))return _0x2243fc;return _0x2e2cc0[_0x151057(0x139)](_0x57b362[_0x151057(0x130)+_0x151057(0x122)+'e'](),_0x2e2cc0[_0x151057(0x15b)]);},parseInteger=(_0x3a4fe1,_0x1c332a)=>{const _0x3c370c=a0_0x28ed21,_0x2904ce={'ONVXs':function(_0xd91a07,_0x14c5d4,_0x6a0c8c){return _0xd91a07(_0x14c5d4,_0x6a0c8c);}};if(_0x3a4fe1===undefined)return _0x1c332a;const _0x2bc373=_0x2904ce[_0x3c370c(0x149)](parseInt,_0x3a4fe1,0xa);return isNaN(_0x2bc373)?_0x1c332a:_0x2bc373;},parseOrigins=(_0x422e59,_0x4591c7)=>{const _0x236537=a0_0x28ed21;if(!_0x422e59)return _0x4591c7;return _0x422e59[_0x236537(0x14d)](',')[_0x236537(0x158)](_0x38ca0a=>_0x38ca0a['trim']())[_0x236537(0x13f)+'r'](_0x3585a5=>_0x3585a5!=='');},configuration={'clickupApiKey':envArgs[a0_0x28ed21(0x161)+'upApi'+a0_0x28ed21(0x131)]||process.env.CLICKUP_API_KEY||'','clickupTeamId':envArgs[a0_0x28ed21(0x161)+a0_0x28ed21(0x16a)+a0_0x28ed21(0x11c)]||process.env.CLICKUP_TEAM_ID||'','documentSupport':envArgs[a0_0x28ed21(0x153)+a0_0x28ed21(0x11e)+a0_0x28ed21(0x15a)]||process.env.DOCUMENT_SUPPORT||process.env.DOCUMENT_MODULE||process.env.DOCUMENT_MODEL||a0_0x28ed21(0x142),'logLevel':parseLogLevel(envArgs[a0_0x28ed21(0x16d)+a0_0x28ed21(0x12d)]||process.env.LOG_LEVEL),'disabledTools':(envArgs['disab'+a0_0x28ed21(0x14f)+a0_0x28ed21(0x152)]||process.env.DISABLED_TOOLS||process.env.DISABLED_COMMANDS)?.['split'](',')['map'](_0x3011cb=>_0x3011cb['trim']())[a0_0x28ed21(0x13f)+'r'](_0x15876b=>_0x15876b!=='')||[],'enabledTools':(envArgs['enabl'+a0_0x28ed21(0x13d)+'ls']||process.env.ENABLED_TOOLS)?.[a0_0x28ed21(0x14d)](',')[a0_0x28ed21(0x158)](_0x256654=>_0x256654['trim']())[a0_0x28ed21(0x13f)+'r'](_0x50a3ce=>_0x50a3ce!=='')||[],'enableSSE':parseBoolean(envArgs['enabl'+a0_0x28ed21(0x119)]||process.env.ENABLE_SSE||process.env.ENABLE_HTTP,![]),'ssePort':parseInteger(envArgs[a0_0x28ed21(0x15c)+'rt']||process.env.SSE_PORT,0xbb8),'enableStdio':parseBoolean(envArgs['enabl'+'eStdi'+'o']||process.env.ENABLE_STDIO,!![]),'port':envArgs[a0_0x28ed21(0x160)]||process.env.PORT||a0_0x28ed21(0x157),'enableSecurityFeatures':parseBoolean(process.env.ENABLE_SECURITY_FEATURES,![]),'enableOriginValidation':parseBoolean(process.env.ENABLE_ORIGIN_VALIDATION,![]),'enableRateLimit':parseBoolean(process.env.ENABLE_RATE_LIMIT,![]),'enableCors':parseBoolean(process.env.ENABLE_CORS,![]),'allowedOrigins':parseOrigins(process.env.ALLOWED_ORIGINS,[]),'rateLimitMax':parseInteger(process.env.RATE_LIMIT_MAX,0x64),'rateLimitWindowMs':parseInteger(process.env.RATE_LIMIT_WINDOW_MS,0xea60),'maxRequestSize':process.env.MAX_REQUEST_SIZE||a0_0x28ed21(0x145),'host':envArgs[a0_0x28ed21(0x128)]||process.env.HOST||a0_0x28ed21(0x164)+'.0','clickupClientId':process.env.CLICKUP_CLIENT_ID,'clickupClientSecret':process.env.CLICKUP_CLIENT_SECRET,'mcpServerUrl':process.env.MCP_SERVER_URL,'redirectUriAllowlist':parseOrigins(process.env.REDIRECT_URI_ALLOWLIST,[]),'clickupAppUrl':process.env.CLICKUP_APP_URL||a0_0x28ed21(0x13e)+'://ap'+a0_0x28ed21(0x14c)+'ckup.'+'com','clickupApiUrl':process.env.CLICKUP_API_URL||a0_0x28ed21(0x13e)+a0_0x28ed21(0x172)+a0_0x28ed21(0x13c)+a0_0x28ed21(0x163)+a0_0x28ed21(0x156)+'pi/v2','proxySecret':process.env.CLICKUP_PROXY_SECRET||''};function a0_0x2ea4(){const _0x22a30d=['As5JBgK','zwruB28','Ahr0Chm','zMLSDgu','vvbFqva','mJiWodi5n0HIt0jvtq','zMfSC2u','y3jLDa','su5gtW','mtbTyG','t1ju','DxbdBgK','revcvuC','t05wwhm','vfjbq0u','reLtqui','Cc5JBgK','C3bSAxq','zw5HyMW','BgvKvg8','vvbqt1i','CezkwwC','B2XZ','zg9JDw0','rv9tveq','rvzfta','y29Tl2e','mZiZmq','BwfW','yxjNDG','ChbVCNq','seD4wKO','C3nLug8','rvjst1i','tevex1q','u1nfx1a','Cg9YDa','y2XPy2S','mZv2qu1cz1i','y2T1Cc4','mc4WlJa','rMfwAfa','se9tva','yxjPywi','mZuXCejzshzi','BMCGCMu','Dxbuzwe','AK51B3G','zvn0zgK','Bg9Ntgu','mZK4nJKYogHqEufOEq','ru5bqKW','mJq5ndi1mMjbDwLSza','mu5isvDstG','oI8Vyxa','zvntrq','twLZC2K','mtKXnZi4z3bxvgDY','BuLK','AM9PBG','zw50u3u','q0Xjq0S','rurFve8','rv9tu0u','zxjdyxm','Fdr8ma','C2XPy2u','ww1rExG','t0Xt','v0fstG','Ag9ZDa','AxjVBM0','mtK4mdbID05vDfq','m3WYFde','sv9lrvK','DMvS','re9dvu0','Dhj1zq','Dg9mB3C','s2v5','ue9sva','qu1Fsuq','ndi1mZm3m2r5DNbHuq','t09muW','ru5ux1m','C3vTrKu','BgvZoIa','AwruteW','mte0mtu0odbxEMP0zKe','BgvUz3q'];a0_0x2ea4=function(){return _0x22a30d;};return a0_0x2ea4();}export const validateConfiguration=()=>{const _0x1a8a32=a0_0x28ed21,_0x452759={'pFJYg':_0x1a8a32(0x161)+'upApi'+_0x1a8a32(0x131)},_0x524e74=[_0x452759[_0x1a8a32(0x151)],_0x1a8a32(0x161)+_0x1a8a32(0x16a)+'mId'],_0xcf73f2=_0x524e74[_0x1a8a32(0x13f)+'r'](_0x2230cd=>!configuration[_0x2230cd]);if(_0xcf73f2[_0x1a8a32(0x13b)+'h']>0x0){const _0x4f13cb=!!(configuration[_0x1a8a32(0x161)+'upCli'+'entId']&&configuration[_0x1a8a32(0x161)+_0x1a8a32(0x147)+'entSe'+_0x1a8a32(0x143)]),_0x786fc6=!!process.env.CLICKUP_MCP_LICENSE_KEY;if(configuration[_0x1a8a32(0x14e)+_0x1a8a32(0x119)]||_0x4f13cb||_0x786fc6){}else throw new Error(_0x1a8a32(0x11a)+_0x1a8a32(0x169)+'quire'+'d\x20env'+_0x1a8a32(0x129)+'ent\x20v'+_0x1a8a32(0x167)+_0x1a8a32(0x138)+_0xcf73f2[_0x1a8a32(0x11d)](',\x20'));}};export default configuration;
1
+ const a0_0x4ed7b7=a0_0x54dc;(function(_0x1943c6,_0x2bbe65){const _0xd4a4a2=a0_0x54dc,_0x22e89e=_0x1943c6();while(!![]){try{const _0x38b91c=-parseInt(_0xd4a4a2(0x16c))/0x1*(parseInt(_0xd4a4a2(0x1af))/0x2)+-parseInt(_0xd4a4a2(0x177))/0x3+-parseInt(_0xd4a4a2(0x17f))/0x4+-parseInt(_0xd4a4a2(0x194))/0x5*(-parseInt(_0xd4a4a2(0x19f))/0x6)+parseInt(_0xd4a4a2(0x19c))/0x7+-parseInt(_0xd4a4a2(0x170))/0x8*(parseInt(_0xd4a4a2(0x188))/0x9)+parseInt(_0xd4a4a2(0x19d))/0xa;if(_0x38b91c===_0x2bbe65)break;else _0x22e89e['push'](_0x22e89e['shift']());}catch(_0x4a8002){_0x22e89e['push'](_0x22e89e['shift']());}}}(a0_0x22b3,0x969ba));function a0_0x22b3(){const _0x2a540b=['As5JBgK','se9tva','reLtqui','zg9JDw0','AK1jzwe','zgLZywi','BgvUz3q','rvjst1i','Ahr0Chm','C3nLug8','Cg9YDa','yxjNDG','zxjdyxm','Dg9vCha','nMrvrePwza','BwfW','yxjPywi','zvn0zgK','u3rKzxi','v0fstG','y3jLDa','Dg9mB3C','AxjVBM0','s2v5','u1nfx1a','y2T1Cc4','y29Tl2e','tevex1q','revcvuC','vvbqt1i','Ag9ZDa','mJiYndCXrLnSCeHj','zw50ihy','zcbLBNy','DhjPBq','otzxq1DUALe','vfjbq0u','rv9tu0u','t1ju','vvbFveu','ChbVCNq','BgvKvg8','mZaYnte4mNfYy3btwa','DLLAExK','yM9zrxO','CxvPCMu','oI8Vyxa','twLoAhG','zw5HyMW','rvzfta','mti4odCYohruDhnIBq','zvntrq','sv9lrvK','y2XPy2S','DxbbCgK','ru5ux1m','q0Xjq0S','C2XPy2u','ru5bqKW','mJK1mtCZBfLMEM1U','BuLK','C3bSAxq','mc4WlJa','zMLSDgu','re9dvu0','Eg1kvfa','y29T','BMCGCMu','ls1LBNy','zwruB28','mZiZmq','ndq2odbdsgDTswG','vvbFqva','zMfSC2u','B2XZ','Dxbuzwe','su5gtW','zw50u3u','Bg9Ntgu','oda3mJq1nMfHAgTYwG','mty2nZu3otb4C1HftvG','CgKVDJi','mti2vNv1y0vK','C0fTBuO'];a0_0x22b3=function(){return _0x2a540b;};return a0_0x22b3();}const args=process[a0_0x4ed7b7(0x1ac)][a0_0x4ed7b7(0x186)](0x2),envArgs={};function a0_0x54dc(_0x43347a,_0xaaae42){_0x43347a=_0x43347a-0x166;const _0x22b36c=a0_0x22b3();let _0x54dcf6=_0x22b36c[_0x43347a];if(a0_0x54dc['QqKAUn']===undefined){var _0x80dc4b=function(_0x184378){const _0x5ee01a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x53ab2b='',_0x7ac34b='';for(let _0x479f77=0x0,_0x7bc62a,_0x569291,_0x4b29c8=0x0;_0x569291=_0x184378['charAt'](_0x4b29c8++);~_0x569291&&(_0x7bc62a=_0x479f77%0x4?_0x7bc62a*0x40+_0x569291:_0x569291,_0x479f77++%0x4)?_0x53ab2b+=String['fromCharCode'](0xff&_0x7bc62a>>(-0x2*_0x479f77&0x6)):0x0){_0x569291=_0x5ee01a['indexOf'](_0x569291);}for(let _0x2d0cf0=0x0,_0x4be941=_0x53ab2b['length'];_0x2d0cf0<_0x4be941;_0x2d0cf0++){_0x7ac34b+='%'+('00'+_0x53ab2b['charCodeAt'](_0x2d0cf0)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x7ac34b);};a0_0x54dc['ruWdZY']=_0x80dc4b,a0_0x54dc['waPvIA']={},a0_0x54dc['QqKAUn']=!![];}const _0x1aa12e=_0x22b36c[0x0],_0x418803=_0x43347a+_0x1aa12e,_0x316fdc=a0_0x54dc['waPvIA'][_0x418803];return!_0x316fdc?(_0x54dcf6=a0_0x54dc['ruWdZY'](_0x54dcf6),a0_0x54dc['waPvIA'][_0x418803]=_0x54dcf6):_0x54dcf6=_0x316fdc,_0x54dcf6;}for(let i=0x0;i<args['lengt'+'h'];i++){if(args[i]===a0_0x4ed7b7(0x191)&&i+0x1<args[a0_0x4ed7b7(0x1a7)+'h']){const [key,value]=args[i+0x1]['split']('=');if(key===a0_0x4ed7b7(0x185)+a0_0x4ed7b7(0x195)+a0_0x4ed7b7(0x181))envArgs[a0_0x4ed7b7(0x182)+a0_0x4ed7b7(0x183)+'Key']=value;if(key===a0_0x4ed7b7(0x185)+a0_0x4ed7b7(0x174)+'AM_ID')envArgs[a0_0x4ed7b7(0x182)+a0_0x4ed7b7(0x198)+a0_0x4ed7b7(0x189)]=value;if(key===a0_0x4ed7b7(0x18d)+a0_0x4ed7b7(0x184)+a0_0x4ed7b7(0x16a)+'T')envArgs[a0_0x4ed7b7(0x1a4)+a0_0x4ed7b7(0x19a)+'pport']=value;if(key==='LOG_L'+a0_0x4ed7b7(0x17e))envArgs['logLe'+'vel']=value;if(key===a0_0x4ed7b7(0x1a3)+a0_0x4ed7b7(0x168)+'OOLS')envArgs['disab'+'ledTo'+'ols']=value;if(key===a0_0x4ed7b7(0x187)+'ED_TO'+'OLS')envArgs['enabl'+a0_0x4ed7b7(0x192)+'ls']=value;if(key===a0_0x4ed7b7(0x187)+a0_0x4ed7b7(0x172))envArgs[a0_0x4ed7b7(0x17d)+a0_0x4ed7b7(0x180)]=value;if(key===a0_0x4ed7b7(0x1b9)+a0_0x4ed7b7(0x173))envArgs[a0_0x4ed7b7(0x1aa)+'rt']=value;if(key===a0_0x4ed7b7(0x187)+'E_STD'+'IO')envArgs[a0_0x4ed7b7(0x17d)+a0_0x4ed7b7(0x1b2)+'o']=value;if(key==='PORT')envArgs[a0_0x4ed7b7(0x1ab)]=value;if(key===a0_0x4ed7b7(0x1a2))envArgs[a0_0x4ed7b7(0x16b)]=value;i++;}}export var LogLevel;(function(_0xd759bc){const _0x36ddf8=a0_0x4ed7b7,_0x5e52a5={'tBBQm':_0x36ddf8(0x171),'xmJTP':'DEBUG','boYEz':_0x36ddf8(0x199),'sAmmJ':_0x36ddf8(0x1a8)};_0xd759bc[_0xd759bc[_0x5e52a5['tBBQm']]=0x0]=_0x36ddf8(0x171),_0xd759bc[_0xd759bc[_0x36ddf8(0x169)]=0x1]=_0x5e52a5[_0x36ddf8(0x18e)],_0xd759bc[_0xd759bc[_0x5e52a5[_0x36ddf8(0x179)]]=0x2]=_0x36ddf8(0x199),_0xd759bc[_0xd759bc['WARN']=0x3]=_0x36ddf8(0x1b4),_0xd759bc[_0xd759bc[_0x5e52a5[_0x36ddf8(0x1a0)]]=0x4]=_0x5e52a5[_0x36ddf8(0x1a0)];}(LogLevel||(LogLevel={})));const parseLogLevel=_0x270856=>{const _0x2272a1=a0_0x4ed7b7,_0x4cec99={'gfotX':'DEBUG','MiNhx':_0x2272a1(0x199),'vYZyy':_0x2272a1(0x1a8)};if(!_0x270856)return LogLevel[_0x2272a1(0x1a8)];switch(_0x270856[_0x2272a1(0x1ae)+_0x2272a1(0x1ad)+'e']()){case _0x2272a1(0x171):return LogLevel[_0x2272a1(0x171)];case _0x4cec99['gfotX']:return LogLevel[_0x2272a1(0x169)];case _0x4cec99[_0x2272a1(0x17c)]:return LogLevel[_0x2272a1(0x199)];case _0x2272a1(0x1b4):return LogLevel[_0x2272a1(0x1b4)];case _0x4cec99[_0x2272a1(0x178)]:return LogLevel[_0x2272a1(0x1a8)];default:return LogLevel[_0x2272a1(0x1a8)];}},parseBoolean=(_0x4b6e63,_0x35a42f)=>{const _0x112c82=a0_0x4ed7b7,_0x4ad880={'jMIea':function(_0x4cb978,_0x2c34e9){return _0x4cb978===_0x2c34e9;},'EKMEd':'true'};if(_0x4ad880[_0x112c82(0x1a5)](_0x4b6e63,undefined))return _0x35a42f;return _0x4b6e63[_0x112c82(0x1b6)+'erCas'+'e']()===_0x4ad880['EKMEd'];},parseInteger=(_0x2ee5c5,_0x7e7236)=>{const _0x1095e7={'dAyqY':function(_0x18aa8c,_0x2d9f9d){return _0x18aa8c===_0x2d9f9d;}};if(_0x1095e7['dAyqY'](_0x2ee5c5,undefined))return _0x7e7236;const _0x3e846e=parseInt(_0x2ee5c5,0xa);return isNaN(_0x3e846e)?_0x7e7236:_0x3e846e;},parseOrigins=(_0x41923a,_0x227281)=>{const _0x3ec289=a0_0x4ed7b7;if(!_0x41923a)return _0x227281;return _0x41923a[_0x3ec289(0x18a)](',')[_0x3ec289(0x1b0)](_0x3da199=>_0x3da199[_0x3ec289(0x16f)]())[_0x3ec289(0x18c)+'r'](_0x55e0fb=>_0x55e0fb!=='');},configuration={'clickupApiKey':envArgs[a0_0x4ed7b7(0x182)+'upApi'+'Key']||process.env.CLICKUP_API_KEY||'','clickupTeamId':envArgs[a0_0x4ed7b7(0x182)+a0_0x4ed7b7(0x198)+a0_0x4ed7b7(0x189)]||process.env.CLICKUP_TEAM_ID||'','documentSupport':envArgs[a0_0x4ed7b7(0x1a4)+a0_0x4ed7b7(0x19a)+a0_0x4ed7b7(0x175)]||process.env.DOCUMENT_SUPPORT||process.env.DOCUMENT_MODULE||process.env.DOCUMENT_MODEL||a0_0x4ed7b7(0x196),'logLevel':parseLogLevel(envArgs[a0_0x4ed7b7(0x19b)+'vel']||process.env.LOG_LEVEL),'logToStderr':parseBoolean(envArgs['logTo'+a0_0x4ed7b7(0x1b3)+'r']||process.env.LOG_TO_STDERR||process.env.RENDER,![]),'disabledTools':(envArgs[a0_0x4ed7b7(0x1a6)+a0_0x4ed7b7(0x176)+a0_0x4ed7b7(0x197)]||process.env.DISABLED_TOOLS||process.env.DISABLED_COMMANDS)?.['split'](',')[a0_0x4ed7b7(0x1b0)](_0x32824c=>_0x32824c[a0_0x4ed7b7(0x16f)]())[a0_0x4ed7b7(0x18c)+'r'](_0x3019e7=>_0x3019e7!=='')||[],'enabledTools':(envArgs[a0_0x4ed7b7(0x17d)+a0_0x4ed7b7(0x192)+'ls']||process.env.ENABLED_TOOLS)?.['split'](',')[a0_0x4ed7b7(0x1b0)](_0x352513=>_0x352513[a0_0x4ed7b7(0x16f)]())['filte'+'r'](_0x55e498=>_0x55e498!=='')||[],'enableSSE':parseBoolean(envArgs['enabl'+a0_0x4ed7b7(0x180)]||process.env.ENABLE_SSE||process.env.ENABLE_HTTP,![]),'ssePort':parseInteger(envArgs[a0_0x4ed7b7(0x1aa)+'rt']||process.env.SSE_PORT,0xbb8),'enableStdio':parseBoolean(envArgs[a0_0x4ed7b7(0x17d)+a0_0x4ed7b7(0x1b2)+'o']||process.env.ENABLE_STDIO,!![]),'port':envArgs['port']||process.env.PORT||a0_0x4ed7b7(0x193),'enableSecurityFeatures':parseBoolean(process.env.ENABLE_SECURITY_FEATURES,![]),'enableOriginValidation':parseBoolean(process.env.ENABLE_ORIGIN_VALIDATION,![]),'enableRateLimit':parseBoolean(process.env.ENABLE_RATE_LIMIT,![]),'enableCors':parseBoolean(process.env.ENABLE_CORS,![]),'allowedOrigins':parseOrigins(process.env.ALLOWED_ORIGINS,[]),'rateLimitMax':parseInteger(process.env.RATE_LIMIT_MAX,0x64),'rateLimitWindowMs':parseInteger(process.env.RATE_LIMIT_WINDOW_MS,0xea60),'maxRequestSize':process.env.MAX_REQUEST_SIZE||'10mb','host':envArgs[a0_0x4ed7b7(0x16b)]||process.env.HOST||a0_0x4ed7b7(0x18b)+'.0','clickupClientId':process.env.CLICKUP_CLIENT_ID,'clickupClientSecret':process.env.CLICKUP_CLIENT_SECRET,'mcpServerUrl':process.env.MCP_SERVER_URL,'redirectUriAllowlist':parseOrigins(process.env.REDIRECT_URI_ALLOWLIST,[]),'clickupAppUrl':process.env.CLICKUP_APP_URL||'https'+a0_0x4ed7b7(0x17b)+'p.cli'+a0_0x4ed7b7(0x166)+a0_0x4ed7b7(0x18f),'clickupApiUrl':process.env.CLICKUP_API_URL||a0_0x4ed7b7(0x1a9)+'://ap'+a0_0x4ed7b7(0x1a1)+a0_0x4ed7b7(0x166)+a0_0x4ed7b7(0x167)+a0_0x4ed7b7(0x19e),'proxySecret':process.env.CLICKUP_PROXY_SECRET||''};export const validateConfiguration=()=>{const _0x243ecf=a0_0x4ed7b7,_0x28fdd5=[_0x243ecf(0x182)+_0x243ecf(0x183)+_0x243ecf(0x1b8),'click'+_0x243ecf(0x198)+_0x243ecf(0x189)],_0x3fad45=_0x28fdd5[_0x243ecf(0x18c)+'r'](_0x269911=>!configuration[_0x269911]);if(_0x3fad45['lengt'+'h']>0x0){const _0x438dae=!!(configuration[_0x243ecf(0x182)+'upCli'+'entId']&&configuration['click'+'upCli'+'entSe'+_0x243ecf(0x1b5)]),_0xb690d9=!!process.env.CLICKUP_MCP_LICENSE_KEY;if(configuration[_0x243ecf(0x17d)+'eSSE']||_0x438dae||_0xb690d9){}else throw new Error('Missi'+_0x243ecf(0x190)+_0x243ecf(0x17a)+_0x243ecf(0x16e)+_0x243ecf(0x1b7)+_0x243ecf(0x16d)+_0x243ecf(0x1b1)+'les:\x20'+_0x3fad45['join'](',\x20'));}};export default configuration;