@taazkareem/clickup-mcp-server 0.14.4 → 0.14.6

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 (94) hide show
  1. package/README.md +203 -114
  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/personas.js +1 -1
  10. package/build/prompts.js +1 -1
  11. package/build/server.js +1 -1
  12. package/build/services/clickup/audit-logs.js +1 -1
  13. package/build/services/clickup/base.js +1 -1
  14. package/build/services/clickup/bulk.js +1 -1
  15. package/build/services/clickup/chat.js +1 -1
  16. package/build/services/clickup/custom-field.js +1 -1
  17. package/build/services/clickup/document.js +1 -1
  18. package/build/services/clickup/errors.js +1 -1
  19. package/build/services/clickup/folder.js +1 -1
  20. package/build/services/clickup/goal.js +1 -1
  21. package/build/services/clickup/guest.js +1 -1
  22. package/build/services/clickup/index.js +1 -1
  23. package/build/services/clickup/list.js +1 -1
  24. package/build/services/clickup/rate-limiter.js +1 -1
  25. package/build/services/clickup/sprint.js +1 -1
  26. package/build/services/clickup/tag.js +1 -1
  27. package/build/services/clickup/task/index.js +1 -1
  28. package/build/services/clickup/task/task-attachments.js +1 -1
  29. package/build/services/clickup/task/task-checklists.js +1 -1
  30. package/build/services/clickup/task/task-comments.js +1 -1
  31. package/build/services/clickup/task/task-core.js +1 -1
  32. package/build/services/clickup/task/task-relationships.js +1 -1
  33. package/build/services/clickup/task/task-search.js +1 -1
  34. package/build/services/clickup/task/task-service.js +1 -1
  35. package/build/services/clickup/task/task-tags.js +1 -1
  36. package/build/services/clickup/task-templates.js +1 -1
  37. package/build/services/clickup/time.js +1 -1
  38. package/build/services/clickup/types.js +1 -1
  39. package/build/services/clickup/user-group.js +1 -1
  40. package/build/services/clickup/view.js +1 -1
  41. package/build/services/clickup/webhook.js +1 -1
  42. package/build/services/clickup/workspace.js +1 -1
  43. package/build/services/oauth.js +1 -1
  44. package/build/services/shared.js +1 -1
  45. package/build/sse_server.js +1 -1
  46. package/build/tools/attachment.js +1 -1
  47. package/build/tools/audit-logs.js +1 -1
  48. package/build/tools/categories.js +1 -1
  49. package/build/tools/chat/handlers.js +1 -1
  50. package/build/tools/chat/index.js +1 -1
  51. package/build/tools/chat/utils.js +1 -1
  52. package/build/tools/custom-field.js +1 -1
  53. package/build/tools/documents.js +1 -1
  54. package/build/tools/feedback.js +1 -1
  55. package/build/tools/folder.js +1 -1
  56. package/build/tools/goal.js +1 -1
  57. package/build/tools/guest.js +1 -1
  58. package/build/tools/index.js +1 -1
  59. package/build/tools/list.js +1 -1
  60. package/build/tools/registry.js +1 -1
  61. package/build/tools/space.js +1 -1
  62. package/build/tools/sprint.js +1 -1
  63. package/build/tools/tag.js +1 -1
  64. package/build/tools/task/bulk-operations.js +1 -1
  65. package/build/tools/task/checklists.js +1 -1
  66. package/build/tools/task/handlers.js +1 -1
  67. package/build/tools/task/index.js +1 -1
  68. package/build/tools/task/main.js +1 -1
  69. package/build/tools/task/markdown-converter.js +1 -1
  70. package/build/tools/task/params.js +1 -1
  71. package/build/tools/task/relationships.js +1 -1
  72. package/build/tools/task/single-operations.js +1 -1
  73. package/build/tools/task/utilities.js +1 -1
  74. package/build/tools/task/workspace-operations.js +1 -1
  75. package/build/tools/task-templates.js +1 -1
  76. package/build/tools/time_entries.js +1 -1
  77. package/build/tools/user-group.js +1 -1
  78. package/build/tools/utils.js +1 -1
  79. package/build/tools/view.js +1 -1
  80. package/build/tools/webhook.js +1 -1
  81. package/build/tools/workspace.js +1 -1
  82. package/build/transport/mcp-handler.js +1 -1
  83. package/build/utils/cache.js +1 -1
  84. package/build/utils/color-processor.js +1 -1
  85. package/build/utils/concurrency-utils.js +1 -1
  86. package/build/utils/context-utils.js +1 -1
  87. package/build/utils/date-utils.js +1 -1
  88. package/build/utils/log-sanitizer.js +1 -1
  89. package/build/utils/member-utils.js +1 -1
  90. package/build/utils/request-utils.js +1 -1
  91. package/build/utils/resolver-utils.js +1 -1
  92. package/build/utils/sponsor-service.js +1 -1
  93. package/build/utils/token-utils.js +1 -1
  94. package/package.json +3 -1
package/README.md CHANGED
@@ -26,9 +26,11 @@ The industry-standard ClickUp integration for AI.
26
26
 
27
27
  ## 📚 Table of Contents
28
28
 
29
- | Links         | Quick Start & Installation |
30
- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
31
- | •&nbsp;[Features](#features)<br>•&nbsp;[Premium&nbsp;Access](#premium-access)<br>•&nbsp;[Available&nbsp;Tools](#available-tools)<br>•&nbsp;[Adv.&nbsp;Config](#advanced-configuration)<br>•&nbsp;[FAQ](#faq)<br>•&nbsp;[Disclaimer](#disclaimer) | <table border="0" style="border: none; border-collapse: collapse; width: 575px;"> <tr style="border: none;"> <td width="140" style="border: none; vertical-align: middle; white-space: nowrap;">[<img src="./assets/logos/openclaw-logo.svg" height="16" style="vertical-align: middle;"> OpenClaw](#openclaw-setup)</td> <td width="155" style="border: none; vertical-align: middle; white-space: nowrap;">[<img src="./assets/logos/cursor-white.svg" height="16" style="vertical-align: middle;"> Cursor](#cursor-setup)</td> <td width="140" style="border: none; vertical-align: middle; white-space: nowrap;">[<img src="./assets/logos/visual-studio-code.svg" height="16" style="vertical-align: middle;"> VS&nbsp;Code](#vscode-setup)</td> <td width="140" style="border: none; vertical-align: middle; white-space: nowrap;">[<img src="https://avatars.githubusercontent.com/u/211522643?s=200&v=4" height="16" style="vertical-align: middle; border-radius: 4px;"> Roo&nbsp;Code](#roocode-setup)</td> </tr> <tr style="border: none;"> <td style="border: none; vertical-align: middle; white-space: nowrap;">[<img src="./assets/logos/claude.svg" height="16" style="vertical-align: middle;"> Claude](#claude-desktop-setup)</td> <td st yle="border: none; vertical-align: middle; white-space: nowrap;">[<img src="https://cdn.simpleicons.org/anthropic/D97757" height="16" style="vertical-align: middle;"> Claude&nbsp;Code](#claude-code-setup)</td> <td style="border: none; vertical-align: middle; white-space: nowrap;">[<img src="https://cdn.simpleicons.org/n8n/FF6D5A" height="16" style="vertical-align: middle;"> n8n](#n8n-setup)</td> <td style="border: none; vertical-align: middle; white-space: nowrap;">[<img src="https://cdn.simpleicons.org/googlegemini/8E75C2" height="16" style="vertical-align: middle;"> Gemini&nbsp;CLI](#gemini-setup)</td> </tr> <tr style="border: none;"> <td style="border: none; vertical-align: middle; white-space: nowrap;">[<img src="./assets/logos/antigravity.svg" height="16" style="vertical-align: middle;"> Antigravity](#antigravity-setup)</td> <td style="border: none; vertical-align: middle; white-space: nowrap;">[<img src="./assets/logos/openai-icon.svg" height="16" style="vertical-align: middle;"> Codex](#codex-setup)</td> <td style="border: none; vertical-align: middle; white-space: nowrap;">[<img src="./assets/logos/openai-icon.svg" height="16" style="vertical-align: middle;"> ChatGPT](#chatgpt-setup)</td> <td style="border: none; vertical-align: middle; white-space: nowrap;">[<img src="./assets/logos/augment-code.svg" height="16" style="vertical-align: middle;"> Augment](#augment-setup)</td> </tr> <tr style="border: none;"> <td style="border: none; vertical-align: middle; white-space: nowrap;">[<img src="./assets/logos/augment-code.svg" height="16" style="vertical-align: middle;"> Auggie](#auggierun-setup)</td> <td style="border: none; vertical-align: middle; white-space: nowrap;">[<img src="./assets/logos/windsurf-white.svg" height="16" style="vertical-align: middle;"> Windsurf](#windsurf-setup)</td> <td style="border: none; vertical-align: middle; white-space: nowrap;">[Other](#other-setup)</td> <td style="border: none; vertical-align: middle; white-space: nowrap;">[➕ Add Agent](mailto:info@taazkareem.com?subject=Redirect%20URI%20Whitelist%20Request)</td> </tr> </table> |
29
+ | Links | Quick Start & Installation |
30
+ | :--- | :--- |
31
+ | •&nbsp;[Features](#features)<br>•&nbsp;[Premium&nbsp;Access](#premium-access)<br>•&nbsp;[Available&nbsp;Tools](#available-tools)<br>•&nbsp;[Adv.&nbsp;Config](#advanced-configuration)<br>•&nbsp;[FAQ](#faq)<br>•&nbsp;[Disclaimer](#disclaimer) | <table border="0" style="border: none; border-collapse: collapse; width: 575px;"> <tr style="border: none;"> <td width="140" style="border: none; vertical-align: middle; white-space: nowrap;">[<img src="./assets/logos/antigravity.svg" height="16" style="vertical-align: middle;"> Antigravity](#antigravity-setup)</td> <td width="155" style="border: none; vertical-align: middle; white-space: nowrap;">[<img src="./assets/logos/antigravity.svg" height="16" style="vertical-align: middle;"> Agy&nbsp;CLI](#antigravity-cli-setup)</td> <td width="140" style="border: none; vertical-align: middle; white-space: nowrap;">[<img src="./assets/images/hermes-logo.png" height="16" style="vertical-align: middle;"> Hermes](#hermes-setup)</td> <td width="140" style="border: none; vertical-align: middle; white-space: nowrap;">[<img src="./assets/logos/openclaw-logo.svg" height="16" style="vertical-align: middle;"> OpenClaw](#openclaw-setup)</td> </tr> <tr style="border: none;"> <td style="border: none; vertical-align: middle; white-space: nowrap;">[<img src="./assets/logos/cursor-white.svg" height="16" style="vertical-align: middle;"> Cursor](#cursor-setup)</td> <td style="border: none; vertical-align: middle; white-space: nowrap;">[<img src="./assets/logos/visual-studio-code.svg" height="16" style="vertical-align: middle;"> VS&nbsp;Code](#vscode-setup)</td> <td style="border: none; vertical-align: middle; white-space: nowrap;">[<img src="./assets/logos/claude.svg" height="16" style="vertical-align: middle;"> Claude](#claude-desktop-setup)</td> <td style="border: none; vertical-align: middle; white-space: nowrap;">[<img src="https://cdn.simpleicons.org/anthropic/D97757" height="16" style="vertical-align: middle;"> ClaudeCode](#claude-code-setup)</td> </tr> <tr style="border: none;"> <td style="border: none; vertical-align: middle; white-space: nowrap;">[<img src="https://cdn.simpleicons.org/n8n/FF6D5A" height="16" style="vertical-align: middle;"> n8n](#n8n-setup)</td> <td style="border: none; vertical-align: middle; white-space: nowrap;">[<img src="./assets/logos/openai-icon.svg" height="16" style="vertical-align: middle;"> Codex](#codex-setup)</td> <td style="border: none; vertical-align: middle; white-space: nowrap;">[<img src="./assets/logos/openai-icon.svg" height="16" style="vertical-align: middle;"> ChatGPT](#chatgpt-setup)</td> <td style="border: none; vertical-align: middle; white-space: nowrap;">[<img src="./assets/logos/augment-code.svg" height="16" style="vertical-align: middle;"> Augment](#augment-setup)</td> </tr> <tr style="border: none;"> <td style="border: none; vertical-align: middle; white-space: nowrap;">[<img src="./assets/logos/augment-code.svg" height="16" style="vertical-align: middle;"> Auggie](#auggierun-setup)</td> <td style="border: none; vertical-align: middle; white-space: nowrap;">[<img src="./assets/logos/windsurf-white.svg" height="16" style="vertical-align: middle;"> Windsurf](#windsurf-setup)</td> <td style="border: none; vertical-align: middle; white-space: nowrap;">[<img src="https://avatars.githubusercontent.com/u/211522643?s=200&v=4" height="16" style="vertical-align: middle; border-radius: 4px;"> Roo&nbsp;Code](#roocode-setup)</td> <td style="border: none; vertical-align: middle; white-space: nowrap;">[➕ Add Agent](mailto:info@taazkareem.com?subject=Redirect%20URI%20Whitelist%20Request)</td> </tr> </table> |
32
+
33
+
32
34
 
33
35
  ---
34
36
 
@@ -136,57 +138,211 @@ A license grants full, unrestricted access to all features across your agents⎯
136
138
 
137
139
  ### 2. Choose your MCP Host & Transport
138
140
 
139
- <a name="openclaw-setup"></a>
141
+ <a name="antigravity-setup"></a>
140
142
 
141
143
  <details>
142
- <summary>&nbsp;<img src="./assets/logos/openclaw-logo.svg" height="22" align="center"> <strong>OpenClaw (via mcporter) </strong> <sub>&nbsp;FEATURED</sub></summary>
144
+ <summary>&nbsp;<img src="./assets/logos/antigravity.svg" height="22" align="center"> <strong>Antigravity (IDE &amp; 2.0)</strong></summary>
143
145
 
144
- **1. Enable** mcporter in `~/.openclaw/openclaw.json`:
146
+ Download from [antigravity.google](https://antigravity.google). Covers **Antigravity IDE** (VS Code-based agentic editor) and **Antigravity 2.0** (standalone desktop agent orchestration app). Both share the same configuration file.
147
+
148
+ **Configuration Path:** `~/.gemini/config/mcp_config.json`
149
+
150
+ > **Tip:** Open the Agent Panel → **...** → **Manage MCP Servers** → **View raw config** to open this file directly. Or type `/mcp` in the prompt panel.
151
+
152
+ **Option A: Remote / Streamable HTTP (Recommended)**
145
153
 
146
154
  ```json
147
- { "skills": { "allowBundled": ["mcporter"] } }
155
+ {
156
+ "mcpServers": {
157
+ "ClickUp": {
158
+ "serverUrl": "https://clickup-mcp.taazkareem.com/mcp",
159
+ "headers": { "X-License-Key": "your-license-key" }
160
+ }
161
+ }
162
+ }
148
163
  ```
149
164
 
150
- **2. Configure & Auth**
151
- Connect the server and authorize via browser (tokens are cached):
165
+ **Option B: Local / STDIO**
166
+
167
+ ```json
168
+ {
169
+ "mcpServers": {
170
+ "ClickUp": {
171
+ "command": "npx",
172
+ "args": ["-y", "@taazkareem/clickup-mcp-server@latest"],
173
+ "env": {
174
+ "CLICKUP_API_KEY": "your-api-key",
175
+ "CLICKUP_TEAM_ID": "your-team-id",
176
+ "CLICKUP_MCP_LICENSE_KEY": "your-license-key"
177
+ }
178
+ }
179
+ }
180
+ }
181
+ ```
182
+
183
+ </details>
184
+
185
+ <a name="antigravity-cli-setup"></a>
186
+
187
+ <details>
188
+ <summary>&nbsp;<img src="./assets/logos/antigravity.svg" height="22" align="center"> <strong>Antigravity CLI (agy)</strong></summary>
189
+
190
+ A lightweight terminal-based interface (TUI) for Antigravity agents. Install with:
152
191
 
153
192
  ```bash
154
- # Add ClickUp as a remote server
155
- mcporter config add ClickUp https://clickup-mcp.taazkareem.com/mcp --auth oauth --header "X-License-Key=your-license-key"
193
+ curl -fsSL https://antigravity.google/cli/install.sh | bash
194
+ ```
156
195
 
157
- # Authenticate session
158
- mcporter auth ClickUp
196
+ **Configuration Path:** `~/.gemini/antigravity-cli/mcp_config.json`
197
+
198
+ > **Tip:** Run `agy` and type `/mcp` in the interactive session to manage servers from within the TUI.
199
+
200
+ **Option A: Remote / Streamable HTTP (Recommended)**
201
+
202
+ ```json
203
+ {
204
+ "mcpServers": {
205
+ "ClickUp": {
206
+ "serverUrl": "https://clickup-mcp.taazkareem.com/mcp",
207
+ "headers": { "X-License-Key": "your-license-key" }
208
+ }
209
+ }
210
+ }
211
+ ```
212
+
213
+ **Option B: Local / STDIO**
214
+
215
+ ```json
216
+ {
217
+ "mcpServers": {
218
+ "ClickUp": {
219
+ "command": "npx",
220
+ "args": ["-y", "@taazkareem/clickup-mcp-server@latest"],
221
+ "env": {
222
+ "CLICKUP_API_KEY": "your-api-key",
223
+ "CLICKUP_TEAM_ID": "your-team-id",
224
+ "CLICKUP_MCP_LICENSE_KEY": "your-license-key"
225
+ }
226
+ }
227
+ }
228
+ }
229
+ ```
230
+
231
+ </details>
232
+
233
+ <a name="hermes-setup"></a>
234
+
235
+ <details>
236
+ <summary>&nbsp;<img src="./assets/images/hermes-logo.png" height="22" align="center"> <strong>Hermes Agent</strong></summary>
237
+
238
+ **Single Agent Configuration Path:** `~/.hermes/config.yaml`
239
+
240
+ **Option A: Remote / Streamable HTTP**
241
+
242
+ ```bash
243
+ hermes mcp add clickup \
244
+ --url https://clickup-mcp.taazkareem.com/mcp \
245
+ --auth oauth && \
246
+ hermes config set mcp_servers.clickup.headers.X-License-Key "your-license-key"
159
247
  ```
160
248
 
161
- **Optional: Multiple Personas**
162
- The most robust and flexible way to manage personas is to define multiple named configurations in your **agent-specific** `mcporter.json` file. This isolates credentials and policies per-agent.
249
+ **Option B: Local / STDIO**
163
250
 
164
251
  ```bash
165
- # Define an Auditor persona (Read-only) in your workspace config
166
- mcporter --config <agent-workspace>/config/mcporter.json config add ClickUp-Auditor https://clickup-mcp.taazkareem.com/mcp \
167
- --header "X-Persona=auditor" \
168
- --header "X-License-Key=your-license-key" \
169
- --header "X-ClickUp-Key=your-api-key" \
170
- --header "X-ClickUp-Team-Id=your-team-id"
252
+ hermes mcp add clickup \
253
+ --command npx \
254
+ --args -y @taazkareem/clickup-mcp-server@latest \
255
+ --env CLICKUP_API_KEY="your-api-key" \
256
+ CLICKUP_TEAM_ID="your-team-id" \
257
+ CLICKUP_MCP_LICENSE_KEY="your-license-key"
258
+ ```
171
259
 
172
- # Define a Task Worker persona (Daily CRUD) in the same or different workspace
173
- mcporter --config <agent-workspace-2>/config/mcporter.json config add ClickUp-Worker https://clickup-mcp.taazkareem.com/mcp \
174
- --header "X-Persona=task_worker" \
175
- --header "X-License-Key=your-license-key" \
176
- --header "X-ClickUp-Key=your-api-key" \
177
- --header "X-ClickUp-Team-Id=your-team-id"
260
+ - Run it: `hermes`
178
261
 
179
- # Now the OpenClaw sub-agent can see the optimized schema and call its focused tools like:
180
- mcporter list ClickUp-Auditor --schema
181
- mcporter call ClickUp-Auditor.get_workspace
262
+ ---
263
+
264
+ #### Multi-Agent Setup (Profiles + Personas)
265
+
266
+ Run a **team of specialized agents** on the same workspace (or separate). Each Hermes **profile** is an isolated agent with its own config and `SOUL.md` instructions. Configure each profile to match a **persona** (`X-Persona`) as needed. This will scope which ClickUp tools is in its context. **Guide with examples:**
182
267
 
183
- mcporter list ClickUp-Worker --schema
184
- mcporter call ClickUp-Worker.create_task listId="123456789" name="New Task"
268
+ **1. Create the profiles**
269
+
270
+ ```bash
271
+ hermes profile create project_manager
272
+ hermes profile create task_worker
273
+ hermes profile create auditor
185
274
  ```
186
275
 
187
- > **Isolation**: You can add X-Enabled-Tools or X-Disabled-Tools to mix and match tools and personas, or perhaps enable just a single tool. You can assign different ClickUp API Keys, Team IDs, or even different License Keys to each config/persona. Since the agent only reads the tool definitions and not the sensitive headers directly, this is the most secure way to handle multi-agent ClickUp configurations.
276
+ > Optional: Use `--clone` to copy the existing config.yaml/.env/SOUL.md, or re-run the commands from above.
188
277
 
189
- To see all available personas and what they do, see the [Advanced Configuration](#advanced-configuration) section below.
278
+ **2. Set each profile's persona.** The profile has the MCP config now, so just add the matching persona:
279
+
280
+ ```bash
281
+ project_manager config set mcp_servers.clickup.headers.X-Persona "project_manager"
282
+ task_worker config set mcp_servers.clickup.headers.X-Persona "task_worker"
283
+ auditor config set mcp_servers.clickup.headers.X-Persona "auditor"
284
+ ```
285
+ > See [→ Advanced Configuration ](#advanced-configuration) for more customized filtering options.
286
+
287
+ **3. Give each agent its instructions** in `~/.hermes/profiles/<name>/SOUL.md` (`auditor` shown):
288
+
289
+ ```markdown
290
+ # ClickUp Auditor
291
+
292
+ You are a read-only project auditor. Observe and report — never change anything.
293
+ - Summarize task status, overdue items, and blockers concisely.
294
+ - Surface risks and recommend actions, but never execute them.
295
+ - If asked to create or modify a task, decline and explain you are read-only.
296
+ ```
297
+
298
+ **Run any agent query by its profile (call by User or Agent):**
299
+
300
+ ```bash
301
+ project_manager chat -q "Break the Q3 launch into a list with subtasks and owners"
302
+ auditor chat -q "Audit the Sprint board and report what's at risk"
303
+ ```
304
+ -OR-
305
+
306
+ **Run a TUI or Gateway called by User:**
307
+
308
+ ```bash
309
+ project_manager gateway start
310
+ auditor chat
311
+ ```
312
+
313
+ ---
314
+
315
+ **Other (Custom Agents, etc.)**
316
+ For most other MCP-compliant hosts:
317
+
318
+ - **Server URL:** `https://clickup-mcp.taazkareem.com/mcp`
319
+ - **Auth Header:** `X-License-Key: your-license-key`
320
+
321
+ </details>
322
+
323
+
324
+ <a name="openclaw-setup"></a>
325
+
326
+ <details>
327
+ <summary>&nbsp;<img src="./assets/logos/openclaw-logo.svg" height="22" align="center"> <strong>OpenClaw (via mcporter) </strong></summary>
328
+
329
+ **1. Enable** mcporter in `~/.openclaw/openclaw.json`:
330
+
331
+ ```json
332
+ { "skills": { "allowBundled": ["mcporter"] } }
333
+ ```
334
+
335
+ **2. Configure & Auth**
336
+
337
+ ```bash
338
+ # Add ClickUp as a remote server
339
+ mcporter config add ClickUp https://clickup-mcp.taazkareem.com/mcp --auth oauth --header "X-License-Key=your-license-key"
340
+
341
+ # Authenticate session
342
+ mcporter auth ClickUp
343
+ ```
344
+
345
+ > **Pro Tip:** Use [Personas](#advanced-configuration) to define multiple isolated configurations (e.g., Auditor vs. Worker) in your agent's `mcporter.json`.
190
346
 
191
347
  </details>
192
348
 
@@ -385,46 +541,6 @@ In n8n, use URL: `http://host.docker.internal:3231/mcp`
385
541
 
386
542
  </details>
387
543
 
388
- <a name="gemini-setup"></a>
389
-
390
- <details>
391
- <summary>&nbsp;<img src="https://cdn.simpleicons.org/googlegemini/8E75C2" height="22" align="center"> <strong>Gemini CLI</strong></summary>
392
-
393
- **Configuration Path:** `~/.gemini/settings.json`
394
-
395
- ```json
396
- {
397
- "mcpServers": {
398
- "ClickUp": {
399
- "httpUrl": "https://clickup-mcp.taazkareem.com/mcp",
400
- "headers": { "X-License-Key": "your-license-key" }
401
- }
402
- }
403
- }
404
- ```
405
-
406
- </details>
407
-
408
- <a name="antigravity-setup"></a>
409
-
410
- <details>
411
- <summary>&nbsp;<img src="./assets/logos/antigravity.svg" height="22" align="center"> <strong>Antigravity</strong></summary>
412
-
413
- **Configuration Path:** `~/.gemini/antigravity/mcp_config.json`
414
-
415
- ```json
416
- {
417
- "mcpServers": {
418
- "ClickUp": {
419
- "serverUrl": "https://clickup-mcp.taazkareem.com/mcp",
420
- "headers": { "X-License-Key": "your-license-key" }
421
- }
422
- }
423
- }
424
- ```
425
-
426
- </details>
427
-
428
544
  <a name="codex-setup"></a>
429
545
 
430
546
  <details>
@@ -561,44 +677,6 @@ auggie mcp add ClickUp --url https://clickup-mcp.taazkareem.com/mcp \
561
677
 
562
678
  </details>
563
679
 
564
- <a name="other-setup"></a>
565
-
566
- <details>
567
- <summary>&nbsp;<strong>Other (Custom Agents, etc.)</strong></summary>
568
-
569
- For most MCP-compliant hosts (e.g. Smithery, MCP Inspector, custom GUIs):
570
-
571
- - **Server URL:** `https://clickup-mcp.taazkareem.com/mcp`
572
- - **Auth Header:** `X-License-Key: your-license-key` (Required for HTTP/SSE connections)
573
-
574
- ---
575
-
576
- **Advanced: OpenAI Agents SDK**
577
- For developers building custom agents.
578
-
579
- **Python SDK:**
580
-
581
- ```python
582
- from agents import Agent, Runner
583
- from agents.mcp import MCPServerStreamableHttp
584
-
585
- async with MCPServerStreamableHttp(
586
- name="clickup",
587
- params={
588
- "url": "https://clickup-mcp.taazkareem.com/mcp",
589
- "headers": {"X-License-Key": "your-license-key"},
590
- },
591
- ) as server:
592
- agent = Agent(
593
- name="Assistant",
594
- instructions="Use the ClickUp MCP tools when helpful.",
595
- mcp_servers=[server],
596
- )
597
- result = await Runner.run(agent, "List my workspaces.")
598
- ```
599
-
600
- </details>
601
-
602
680
  ### 3. Restart
603
681
 
604
682
  Restart your MCP Host (e.g., Cursor IDE). The server will validate your License Key and start automatically.
@@ -782,6 +860,16 @@ _See [full documentation](docs/DOCUMENTATION.md) for parameters and advanced usa
782
860
  "ENABLED_CATEGORIES": "task,time_tracking,workspace"
783
861
  ```
784
862
 
863
+ -or- **Hermes (YAML):**
864
+
865
+ ```yaml
866
+ mcp_servers:
867
+ clickup:
868
+ env:
869
+ ENABLED_TOOLS: "tool_1,tool_2,tool_3"
870
+ ENABLED_CATEGORIES: "task,time_tracking,workspace"
871
+ ```
872
+
785
873
  -or- **Remote (Header):**
786
874
 
787
875
  ```json
@@ -899,10 +987,11 @@ Premium users get priority support. Please [open an issue](https://github.com/Ta
899
987
  ---
900
988
 
901
989
  ## <a name="disclaimer"></a>⚖️ Disclaimer
990
+ Originally developed as open source and refined during a consultancy with ClickUp, this project is now independently maintained.</sub>
902
991
 
903
- Originally developed as open source and refined during a consultancy with ClickUp, this project is now independently maintained.
992
+ This software makes use of third-party APIs and may reference trademarks or brands owned by third parties. The use of such APIs or references does not imply any affiliation with or endorsement by the respective companies. All trademarks and brand names are the property of their respective owners. This project is an independent work and is not officially associated with or sponsored by any third-party company mentioned.</sub>
904
993
 
905
- This software makes use of third-party APIs and may reference trademarks or brands owned by third parties. The use of such APIs or references does not imply any affiliation with or endorsement by the respective companies. All trademarks and brand names are the property of their respective owners. This project is an independent work and is not officially associated with or sponsored by any third-party company mentioned.
994
+ By using this software, you agree to our [Terms of Service](TERMS_OF_SERVICE.md) and acknowledge our [Privacy Policy](PRIVACY.md).
906
995
 
907
996
  <div align="center">
908
997
  <sub>Created by <a href="https://github.com/taazkareem">taazkareem</a></sub>
@@ -1 +1 @@
1
- const a0_0x48e01f=a0_0x2ed5;(function(_0x1a189e,_0x62640d){const _0x4197a8=a0_0x2ed5,_0x53e5aa=_0x1a189e();while(!![]){try{const _0x5ce2db=-parseInt(_0x4197a8(0xf8))/0x1+-parseInt(_0x4197a8(0x113))/0x2*(-parseInt(_0x4197a8(0xbf))/0x3)+-parseInt(_0x4197a8(0xd5))/0x4*(parseInt(_0x4197a8(0x98))/0x5)+parseInt(_0x4197a8(0xfe))/0x6+-parseInt(_0x4197a8(0xbb))/0x7*(parseInt(_0x4197a8(0x130))/0x8)+-parseInt(_0x4197a8(0xea))/0x9+parseInt(_0x4197a8(0x10f))/0xa*(parseInt(_0x4197a8(0xb7))/0xb);if(_0x5ce2db===_0x62640d)break;else _0x53e5aa['push'](_0x53e5aa['shift']());}catch(_0x389004){_0x53e5aa['push'](_0x53e5aa['shift']());}}}(a0_0x1fdc,0x8d208));import a0_0x161301 from'express';import a0_0x437a6c from'../config.js';import{Logger}from'../logger.js';function a0_0x2ed5(_0x488637,_0x5e4269){_0x488637=_0x488637-0x8a;const _0x1fdcca=a0_0x1fdc();let _0x2ed549=_0x1fdcca[_0x488637];if(a0_0x2ed5['GbYJfA']===undefined){var _0x2a5557=function(_0x28e1e4){const _0xf35abd='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3f3df6='',_0x1dad41='';for(let _0x2190dc=0x0,_0x5b731b,_0x3b12a9,_0x5859d5=0x0;_0x3b12a9=_0x28e1e4['charAt'](_0x5859d5++);~_0x3b12a9&&(_0x5b731b=_0x2190dc%0x4?_0x5b731b*0x40+_0x3b12a9:_0x3b12a9,_0x2190dc++%0x4)?_0x3f3df6+=String['fromCharCode'](0xff&_0x5b731b>>(-0x2*_0x2190dc&0x6)):0x0){_0x3b12a9=_0xf35abd['indexOf'](_0x3b12a9);}for(let _0x35b501=0x0,_0x5873bc=_0x3f3df6['length'];_0x35b501<_0x5873bc;_0x35b501++){_0x1dad41+='%'+('00'+_0x3f3df6['charCodeAt'](_0x35b501)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1dad41);};a0_0x2ed5['zTTRbq']=_0x2a5557,a0_0x2ed5['szLkKp']={},a0_0x2ed5['GbYJfA']=!![];}const _0xd80e48=_0x1fdcca[0x0],_0x31fbfa=_0x488637+_0xd80e48,_0xf658f1=a0_0x2ed5['szLkKp'][_0x31fbfa];return!_0xf658f1?(_0x2ed549=a0_0x2ed5['zTTRbq'](_0x2ed549),a0_0x2ed5['szLkKp'][_0x31fbfa]=_0x2ed549):_0x2ed549=_0xf658f1,_0x2ed549;}import{OAuthService}from'../services/oauth.js';import{clearTokenCache}from'../middleware/auth.js';import a0_0x4a4df4 from'axios';const router=a0_0x161301[a0_0x48e01f(0xda)+'r'](),logger=new Logger(a0_0x48e01f(0x90)+'Route'+'s');import{createAuthRateLimitMiddleware}from'../middleware/security.js';const createAuthRateLimit=createAuthRateLimitMiddleware(),OAUTH_TOKEN_EXPIRY_HINT_SECONDS=0x1e*0x18*0x3c*0x3c,serverUrl=a0_0x437a6c[a0_0x48e01f(0x166)+a0_0x48e01f(0xc8)+'rl']||a0_0x48e01f(0xa4)+a0_0x48e01f(0xd8)+'alhos'+'t:'+(a0_0x437a6c[a0_0x48e01f(0xf7)]||0xc9f);function a0_0x1fdc(){const _0x212d99=['Bwv0Ag8','z0zgtLm','AwrFz3i','nde2nMLmtMfpuW','zxj2zxi','BgvUz3q','BMDLihq','Aw52ywW','D2L0Aca','zgf0yq','Ec1MB3i','EufUzeq','AwqGq2W','twLZC2K','DgvK','CM94EsK','B3H5u3q','zw50swq','zwn0x3u','y3rFDxi','EvzysNO','DhvYzq','BMfSx3m','yM9KEq','ueTdrq','vxjS','BwnWx2e','Axn0CMe','ywLSDxi','A2vUv2K','ignHBgW','rgrYrfq','ogDIr0DqBa','ihjLCxu','C21HDgm','ywnJzxm','D2fYBG','tunqiem','C2vHCMm','zguGB3i','BwvZC2e','l3rLyw0','lIbqBgu','ww9ZAfy','DguGBwK','D29YA3m','vvjjig4','BNrPy2e','AgfUz2u','y2XPzw4','AfbHCMe','DxjUAw4','y2XPy2S','CMvJzwK','DxbdBgK','Dc1Ty3a','q2XPzw4','Dfnitg8','zYbYyxC','CML6yxq','CxvLCNK','CMvZCg8','C3vJy2u','ihn0yxq','B2TLBIa','CYbMB3i','zwnVzgu','AcbVCIa','CgfYC2u','DgvHBxm','ihrVA2u','ifjLzgK','AxnbCNi','yw50','Bgf4','zcb0BYa','BNqGuMu','DcbszwC','AwvUDca','AcbZDge','zdOGC2u','AwnHDgK','Axn0zxi','x3n0yxq','B3jPEMe','AK1Vshy','BwnWu2u','Ag9YAxO','rMLiBue','sw52ywW','igrLDgu','C2vUza','Aw5N','BMDLvg8','zw5Nzv8','zxjYB3i','ie9bDxq','z2vUzxi','ief1DgG','C3nPB24','EunSAwu','yxrLu2K','AwrFy2W','rw1Izwq','DwLYzwq','BNqGsuq','zwfTihq','l2fWAq','B3qGywW','CNKGywC','zgLUzYa','z25Lzem','C3rHDgu','AwvYigK','AwD1CMe','BIbJB2q','t0f1DgG','zsbMCM8','q0XlqMq','CM92Awq','ignVBMy','y29VA2K','B2rL','CM94Eum','mJC5ndG1BhLWterA','y29Kzv8','x19iB3m','AwqGyxu','vwXfrMe','DgLVBIa','B3v0ig8','Cg9ZDa','zxHJAge','y2XLyxi','EMf0Aw8','rMfPBgu','Ahr0CdO','C3qGkfa','C3rHDhu','yxjHBwu','yxnLihq','yxrLuhi','Ahr0Chm','AwnRvxa','zxn0icG','BgjHy2S','CMv0','B24GzMe','rIbKzxq','DxbZDhi','yxrH','AwqGuhi','Dg9Rzw4','Bwv0ywq','BMfSx3i','mJC2mvPlALfHAW','EwriAwS','ifrVA2u','zvbYB3G','mJm4mdq5qxjcEhzR','DNbXv0i','z2v0','BMDLigy','mti5m0DsBKfICG','l29HDxq','Df9Zzwm','CMnOEfm','BMCGy28','BKnutw0','y3jLzgu','B2TPzq','zwn0','CNzLCLu','C2vJDxi','CMvKAxi','Aw9Ux2m','CIbnAxm','suqGB3i','Evblq0u','AM9PBG','lcbYzxq','yxbWzw4','BNrjza','ueTdrsa','Bg93zwq','nJHcruTsufi','Ac9JywW','y3H2ENa','lY9SB2m','y2HHBgW','uM91Dgu','u2vYDMu','ihrPBwu','zwrPCMu','uhjVEhK','AwqGy2W','Aw9UoIa','CMvJDca','BMCGq2W','x2f1DgG','BgLLBNq','CgfJzsa','DMvYAwy','ANnVBG','qxv0Agu','BwLZC2K','mZeYmZq1CxjvufDk','zwfTiha','AgvHzgu','r1zpC2y','y29Kzq','AwXLza','zxn0','CuP6q1q','ienSAwu','zMfPBgu','yKjcz1i','CYbYzxe','BKjssxG','Cg9YDa','nZCXmdGYtuvMCw5O','BIbfEgm','igvTyMu','BNnLx3q','B3jPz2K','Ac90B2S','ndG4mZC2nKjUwvDWDa','oIbZDge','yxrL','DgvY','BsbdBgK','zwLXy3C','D2LwAvu','AwqGC3q','Aw5MBW','Dgf0zq','vxbZDhi','y2TvCa','zhb4BM0','B3H5iem','DxbbCha','DgHVCMK','Df9Pza','mJyXntbuDfbXvLK'];a0_0x1fdc=function(){return _0x212d99;};return a0_0x1fdc();}router['post']('/oaut'+'h/reg'+a0_0x48e01f(0x162),createAuthRateLimit,(_0x20751b,_0x2192f3)=>{const _0x3e367d=a0_0x48e01f,_0x407664={'mMWNt':'OAuth'+_0x3e367d(0xf2)+_0x3e367d(0x15c)+'gistr'+'ation'+_0x3e367d(0x131)+_0x3e367d(0xf0),'DdrDT':_0x3e367d(0x117)+_0x3e367d(0x176)+'ient_'+_0x3e367d(0xb5)+_0x3e367d(0xb2),'gFFNS':_0x3e367d(0xee),'OqhYi':'clien'+_0x3e367d(0xc1)+'ret_p'+'ost'},{client_name:_0x55d873,redirect_uris:_0x194be8}=_0x20751b[_0x3e367d(0x127)];logger[_0x3e367d(0x106)](_0x407664['mMWNt'],{'client_name':_0x55d873,'redirect_uris':_0x194be8});if(!_0x194be8||!Array[_0x3e367d(0x158)+'ay'](_0x194be8)||_0x194be8['lengt'+'h']===0x0){_0x2192f3[_0x3e367d(0xa6)+'s'](0x190)[_0x3e367d(0xe7)]({'error':_0x407664[_0x3e367d(0x12f)],'error_description':_0x3e367d(0xca)+_0x3e367d(0x122)+'ris\x20i'+_0x3e367d(0xf5)+_0x3e367d(0x178)});return;}try{const {clientId:_0x138785,clientSecret:_0x394b9f}=OAuthService[_0x3e367d(0x171)+_0x3e367d(0x175)+_0x3e367d(0x8b)+_0x3e367d(0xe4)+'Id'](_0x194be8);_0x2192f3[_0x3e367d(0xa6)+'s'](0xc9)[_0x3e367d(0xe7)]({'client_id':_0x138785,'client_secret':_0x394b9f,'client_name':_0x55d873||_0x3e367d(0x135)+_0x3e367d(0xe4),'redirect_uris':_0x194be8,'grant_types':['autho'+_0x3e367d(0x14b)+_0x3e367d(0xcb)+_0x3e367d(0x96)],'response_types':[_0x407664[_0x3e367d(0x111)]],'token_endpoint_auth_method':_0x407664['OqhYi']});}catch(_0x360524){logger[_0x3e367d(0x134)](_0x3e367d(0x148)+_0x3e367d(0x15d)+_0x3e367d(0x12b)+_0x3e367d(0x9d)+'Rejec'+_0x3e367d(0x11e),{'error':_0x360524[_0x3e367d(0x138)+'ge'],'redirect_uris':_0x194be8}),_0x2192f3[_0x3e367d(0xa6)+'s'](0x190)['json']({'error':_0x407664['DdrDT'],'error_description':_0x360524[_0x3e367d(0x138)+'ge']});}}),router[a0_0x48e01f(0xbd)](a0_0x48e01f(0xc0)+'h/aut'+a0_0x48e01f(0x167)+'e',createAuthRateLimit,(_0x4bf0c8,_0x46581e)=>{const _0x1105d6=a0_0x48e01f,_0x280d4d={'jMoHv':_0x1105d6(0x11d)+_0x1105d6(0xe2)+_0x1105d6(0xab)+_0x1105d6(0xf2)+_0x1105d6(0x179)+'\x20in\x20s'+_0x1105d6(0x114)+_0x1105d6(0x94)+_0x1105d6(0x8e)+'tion','nBRIx':_0x1105d6(0xdb)+_0x1105d6(0xcc)+'confi'+'gurat'+_0x1105d6(0xe0)+'Missi'+_0x1105d6(0xe2)+_0x1105d6(0xab)+'\x20Clie'+_0x1105d6(0x179),'kxZIW':_0x1105d6(0x141)+_0x1105d6(0x10e),'UlEFa':_0x1105d6(0xee),'YoshV':_0x1105d6(0x8c),'ydHik':_0x1105d6(0x11a)+'warde'+'d-pro'+'to','rchxS':'https','ZAPOu':_0x1105d6(0x12a)+'uth_s'+_0x1105d6(0x107),'wiViU':_0x1105d6(0x15a),'HQtXa':function(_0x351dbd,_0x251650){return _0x351dbd*_0x251650;}},{response_type:_0x22eec1,client_id:_0x13d388,redirect_uri:_0x29e4b5,state:_0x14d09c,code_challenge:_0x1fd92a,code_challenge_method:_0x4a7ef0}=_0x4bf0c8['query'];logger[_0x1105d6(0x106)](_0x1105d6(0x90)+_0x1105d6(0x172)+_0x1105d6(0x164)+'tion\x20'+'reque'+_0x1105d6(0xa5)+_0x1105d6(0x11f),{'response_type':_0x22eec1,'client_id':_0x13d388,'redirect_uri':_0x29e4b5,'state':_0x14d09c});if(_0x13d388&&!OAuthService[_0x1105d6(0xe6)+_0x1105d6(0x174)+_0x1105d6(0xd2)](_0x13d388,_0x29e4b5)){_0x46581e[_0x1105d6(0xa6)+'s'](0x191)['send'](_0x1105d6(0x169)+_0x1105d6(0x11c)+_0x1105d6(0x15e)+_0x1105d6(0xcd)+_0x1105d6(0x157)+_0x1105d6(0xe1)+_0x1105d6(0x13e)+_0x1105d6(0x17c)+_0x1105d6(0xd4));return;}const _0x335b61=a0_0x437a6c[_0x1105d6(0x144)+_0x1105d6(0x146)+_0x1105d6(0x121)];if(!_0x335b61){logger[_0x1105d6(0x16f)](_0x280d4d[_0x1105d6(0x165)]),_0x46581e[_0x1105d6(0xa6)+'s'](0x1f4)[_0x1105d6(0x16b)](_0x280d4d[_0x1105d6(0xf6)]);return;}const _0x4bec54=OAuthService[_0x1105d6(0x171)+_0x1105d6(0xa9)+_0x1105d6(0x120)+_0x1105d6(0x100)](_0x29e4b5,_0x14d09c,_0x1fd92a,_0x4a7ef0),_0x3d3527=new URL(a0_0x437a6c[_0x1105d6(0x144)+_0x1105d6(0x10c)+_0x1105d6(0x129)]+_0x1105d6(0x17b));_0x3d3527[_0x1105d6(0x136)+_0x1105d6(0x142)+'ms'][_0x1105d6(0xd1)+'d'](_0x280d4d['kxZIW'],_0x335b61),_0x3d3527[_0x1105d6(0x136)+'hPara'+'ms']['appen'+'d'](_0x1105d6(0xca)+'ect_u'+'ri',serverUrl+(_0x1105d6(0xc0)+_0x1105d6(0xd6)+'lback')),_0x3d3527[_0x1105d6(0x136)+_0x1105d6(0x142)+'ms']['appen'+'d'](_0x1105d6(0x14d)+_0x1105d6(0xfb)+'ype',_0x280d4d[_0x1105d6(0x9c)]),_0x3d3527[_0x1105d6(0x136)+'hPara'+'ms']['appen'+'d'](_0x280d4d[_0x1105d6(0x13b)],_0x4bec54);const _0x41e37c=_0x4bf0c8[_0x1105d6(0xc9)+'e']||_0x4bf0c8['heade'+'rs'][_0x280d4d[_0x1105d6(0xb8)]]===_0x280d4d[_0x1105d6(0xc2)],_0x251860=_0x41e37c?'__Hos'+_0x1105d6(0x147)+_0x1105d6(0xe3)+_0x1105d6(0x163)+'e':_0x280d4d['ZAPOu'];_0x46581e['cooki'+'e'](_0x251860,_0x4bec54,{'httpOnly':!![],'secure':_0x41e37c,'sameSite':_0x280d4d[_0x1105d6(0x104)],'maxAge':_0x280d4d['HQtXa'](0xf*0x3c,0x3e8),'path':'/'}),_0x46581e['redir'+_0x1105d6(0xc7)](_0x3d3527['toStr'+_0x1105d6(0x16c)]());}),router['get'](a0_0x48e01f(0xc0)+'h/cal'+a0_0x48e01f(0xad),createAuthRateLimit,(_0xc21a05,_0x367585)=>{const _0x242dab=a0_0x48e01f,_0x1af49f={'bBBgR':function(_0xfb515,_0x1a4426){return _0xfb515||_0x1a4426;},'zBzaY':_0x242dab(0x11d)+_0x242dab(0xc3)+_0x242dab(0x137)+_0x242dab(0x14f)+_0x242dab(0x91)+_0x242dab(0x102)+_0x242dab(0x109),'CLKBd':_0x242dab(0x90)+_0x242dab(0x12e)+'back\x20'+_0x242dab(0x145)+'ved','cxvzp':function(_0x56b2e1,_0x27bd62){return _0x56b2e1===_0x27bd62;},'dpxnm':_0x242dab(0x9a)+_0x242dab(0x147)+_0x242dab(0xe3)+'_stat'+'e','yVXJz':_0x242dab(0x12a)+'uth_s'+_0x242dab(0x107),'HHkVz':function(_0xebd748,_0x515ea8){return _0xebd748!==_0x515ea8;},'CnlJf':'OAuth'+'\x20CSRF'+_0x242dab(0x16a)+'ction'+_0x242dab(0xff)+_0x242dab(0x13c)+_0x242dab(0x132)+_0x242dab(0x153)+_0x242dab(0xe9)+_0x242dab(0xc3)+_0x242dab(0xc6)},{code:_0x21aaa1,state:_0x1c3e73}=_0xc21a05[_0x242dab(0x14c)];if(_0x1af49f[_0x242dab(0xf4)](!_0x21aaa1,!_0x1c3e73)){_0x367585[_0x242dab(0xa6)+'s'](0x190)['send'](_0x1af49f['zBzaY']);return;}logger['info'](_0x1af49f[_0x242dab(0x92)],{'query':_0xc21a05[_0x242dab(0x14c)]});const _0x22f652=_0xc21a05[_0x242dab(0xc9)+'e']||_0x1af49f[_0x242dab(0xd7)](_0xc21a05[_0x242dab(0xec)+'rs'][_0x242dab(0x11a)+'warde'+'d-pro'+'to'],_0x242dab(0xaa)),_0x266547=_0x22f652?_0x1af49f[_0x242dab(0x10a)]:_0x1af49f[_0x242dab(0x124)],_0x30bab6=_0xc21a05[_0x242dab(0x95)+'es']?.[_0x266547];if(!_0x30bab6||_0x1af49f['HHkVz'](_0x30bab6,_0x1c3e73)){logger[_0x242dab(0x134)](_0x1af49f['CnlJf'],{'hasCookie':!!_0x30bab6,'cookieName':_0x266547,'stateMatch':_0x30bab6===_0x1c3e73}),_0x367585['statu'+'s'](0x193)[_0x242dab(0x16b)](_0x242dab(0xe8)+_0x242dab(0x13f)+_0x242dab(0x9d)+_0x242dab(0xf3)+_0x242dab(0x160)+_0x242dab(0x173)+_0x242dab(0xdc)+_0x242dab(0x9e)+'r\x20CSR'+_0x242dab(0xb0)+'ected'+_0x242dab(0x13a)+_0x242dab(0xa8)+_0x242dab(0x17d)+'ain.');return;}_0x367585[_0x242dab(0xa1)+'Cooki'+'e'](_0x266547,{'path':'/'});try{const _0x1332e5=OAuthService['decod'+_0x242dab(0xba)+'yStat'+'e'](_0x1c3e73),_0x3f183a=new URL(_0x1332e5[_0x242dab(0xfc)+_0x242dab(0xb6)+_0x242dab(0xdd)+_0x242dab(0x123)+'i']),_0x3c8397=OAuthService['gener'+_0x242dab(0x175)+'gnedP'+_0x242dab(0x97)+_0x242dab(0x96)](_0x21aaa1,_0x1332e5[_0x242dab(0x99)+_0x242dab(0xd9)+'enge'],_0x1332e5[_0x242dab(0x99)+_0x242dab(0xd9)+_0x242dab(0x16e)+_0x242dab(0x110)+'d']);_0x3f183a['searc'+_0x242dab(0x142)+'ms'][_0x242dab(0xd1)+'d'](_0x242dab(0xee),_0x3c8397),_0x3f183a['searc'+_0x242dab(0x142)+'ms'][_0x242dab(0xd1)+'d'](_0x242dab(0x8c),_0x1332e5[_0x242dab(0xfc)+_0x242dab(0x126)+'tate']),_0x367585[_0x242dab(0xca)+_0x242dab(0xc7)](_0x3f183a['toStr'+'ing']());}catch(_0x4c0d5b){logger[_0x242dab(0x16f)](_0x242dab(0xa3)+_0x242dab(0x15b)+_0x242dab(0x154)+_0x242dab(0x170)+_0x242dab(0x15f)+'te',_0x4c0d5b),_0x367585[_0x242dab(0xa6)+'s'](0x190)[_0x242dab(0x16b)](_0x242dab(0x169)+_0x242dab(0x105)+'ate\x20p'+_0x242dab(0xa7)+_0x242dab(0x101));}}),router[a0_0x48e01f(0x9f)](a0_0x48e01f(0xc0)+a0_0x48e01f(0xfd)+'en',createAuthRateLimit,async(_0x5ed357,_0x2ae147)=>{const _0x3a4f21=a0_0x48e01f,_0x116a37={'vpqWB':function(_0x10a7fa,_0x36233e){return _0x10a7fa&&_0x36233e;},'FiHmA':_0x3a4f21(0x169)+_0x3a4f21(0x11c)+_0x3a4f21(0x15e)+'Secre'+'t','eiqcw':_0x3a4f21(0x169)+_0x3a4f21(0xb3)+_0x3a4f21(0x10b)+_0x3a4f21(0x96),'nCTMm':_0x3a4f21(0x117)+_0x3a4f21(0x112)+'ant','qJzCT':_0x3a4f21(0x99)+_0x3a4f21(0xe6)+_0x3a4f21(0x8d)+_0x3a4f21(0xf5)+_0x3a4f21(0x178)+'\x20for\x20'+_0x3a4f21(0x128),'tSHLo':function(_0x232b01,_0x23703b){return _0x232b01>_0x23703b;},'dPquq':_0x3a4f21(0x177)+_0x3a4f21(0x8a)+_0x3a4f21(0x13d)+_0x3a4f21(0xe5)+'selec'+'tion\x20'+'into\x20'+_0x3a4f21(0xb4),'GVOsf':_0x3a4f21(0xa3)+_0x3a4f21(0x15b)+'fetch'+'\x20team'+_0x3a4f21(0x151)+_0x3a4f21(0xfa)+'dding'+_0x3a4f21(0xd0)+_0x3a4f21(0x143)+_0x3a4f21(0x14a)+_0x3a4f21(0x156)+'n'},{grant_type:_0x167112,code:_0x43fe3a,redirect_uri:_0x30f111,client_id:_0x5edaf3,client_secret:_0x39df1c,code_verifier:_0x559ae0}=_0x5ed357[_0x3a4f21(0x127)];logger[_0x3a4f21(0x106)]('OAuth'+_0x3a4f21(0xb9)+_0x3a4f21(0xf9)+_0x3a4f21(0x140)+_0x3a4f21(0x131)+_0x3a4f21(0xac)+_0x3a4f21(0xde)+')',{'grant_type':_0x167112,'client_id':_0x5edaf3});if(_0x116a37[_0x3a4f21(0xbc)](_0x5edaf3,_0x39df1c)){if(!OAuthService[_0x3a4f21(0xe6)+_0x3a4f21(0x174)+'ntSec'+_0x3a4f21(0xae)](_0x5edaf3,_0x39df1c)){logger[_0x3a4f21(0x134)](_0x116a37[_0x3a4f21(0x168)],{'client_id':_0x5edaf3}),_0x2ae147[_0x3a4f21(0xa6)+'s'](0x191)[_0x3a4f21(0xe7)]({'error':_0x3a4f21(0x117)+_0x3a4f21(0x176)+'ient','error_description':'Inval'+_0x3a4f21(0xdf)+_0x3a4f21(0x15e)+_0x3a4f21(0xc5)+'ntial'+'s'});return;}}const _0x11f16f=OAuthService[_0x3a4f21(0xe6)+_0x3a4f21(0x11b)+_0x3a4f21(0x152)+_0x3a4f21(0xde)+'Code'](_0x43fe3a);if(!_0x11f16f){logger['warn'](_0x116a37[_0x3a4f21(0x103)],{'code':_0x43fe3a}),_0x2ae147[_0x3a4f21(0xa6)+'s'](0x190)['json']({'error':_0x116a37[_0x3a4f21(0xc4)],'error_description':_0x3a4f21(0x169)+_0x3a4f21(0x9b)+_0x3a4f21(0x10d)+_0x3a4f21(0xa2)+_0x3a4f21(0x8f)+'e\x20or\x20'+'signa'+_0x3a4f21(0x125)});return;}if(!_0x559ae0){_0x2ae147[_0x3a4f21(0xa6)+'s'](0x190)[_0x3a4f21(0xe7)]({'error':_0x3a4f21(0x117)+_0x3a4f21(0x112)+'ant','error_description':_0x116a37[_0x3a4f21(0xf1)]});return;}if(!OAuthService[_0x3a4f21(0xe6)+_0x3a4f21(0xce)](_0x559ae0,_0x11f16f['hc'],_0x11f16f['hm'])){logger[_0x3a4f21(0x134)](_0x3a4f21(0xd3)+_0x3a4f21(0xe6)+_0x3a4f21(0x161)+'on\x20fa'+_0x3a4f21(0xef),{'clickUpCode':_0x11f16f['c'],'verifier':_0x559ae0}),_0x2ae147[_0x3a4f21(0xa6)+'s'](0x190)[_0x3a4f21(0xe7)]({'error':'inval'+'id_gr'+_0x3a4f21(0x159),'error_description':_0x3a4f21(0xd3)+_0x3a4f21(0xe6)+_0x3a4f21(0x161)+_0x3a4f21(0xaf)+_0x3a4f21(0xef)});return;}const _0xca4ecf=await OAuthService[_0x3a4f21(0xa0)+_0x3a4f21(0x16d)+_0x3a4f21(0x12d)+'thCli'+_0x3a4f21(0x109)](_0x11f16f['c']);if(_0xca4ecf[_0x3a4f21(0x14e)+'ss']){const _0x58a4f0=_0xca4ecf[_0x3a4f21(0x119)][_0x3a4f21(0x133)+'s_tok'+'en'];clearTokenCache(_0x58a4f0);try{const _0x2c7060=await a0_0x4a4df4['get'](a0_0x437a6c[_0x3a4f21(0x144)+'upApi'+'Url']+_0x3a4f21(0x139),{'headers':{'Authorization':_0x58a4f0},'timeout':0x2710}),_0x593beb=_0x2c7060['data']?.[_0x3a4f21(0x155)]||[];if(_0x116a37[_0x3a4f21(0x149)](_0x593beb[_0x3a4f21(0x115)+'h'],0x0)){const _0x410a58=_0x593beb['map'](_0x49291c=>String(_0x49291c['id'])),_0x569bef=_0x410a58[_0x3a4f21(0xcf)](','),_0x36f225=_0x569bef+':'+_0x58a4f0;logger['info'](_0x116a37['dPquq'],{'count':_0x410a58['lengt'+'h'],'confirmedIds':_0x569bef}),_0x2ae147['json']({..._0xca4ecf[_0x3a4f21(0x119)],'access_token':_0x36f225,'expires_in':OAUTH_TOKEN_EXPIRY_HINT_SECONDS,'first_team_id':_0x410a58[0x0],'all_team_ids':_0x410a58});return;}}catch(_0x5d1ac0){logger[_0x3a4f21(0x134)](_0x116a37[_0x3a4f21(0xed)],{'error':_0x5d1ac0[_0x3a4f21(0x138)+'ge']});}_0x2ae147[_0x3a4f21(0xe7)](_0xca4ecf[_0x3a4f21(0x119)]);}else logger[_0x3a4f21(0x16f)](_0x3a4f21(0x108)+_0x3a4f21(0x17a)+_0x3a4f21(0x150)+_0x3a4f21(0xa0)+_0x3a4f21(0xbe)+_0x3a4f21(0x12c)+'e',{'error':_0xca4ecf[_0x3a4f21(0x16f)]}),_0x2ae147[_0x3a4f21(0xa6)+'s'](0x1f4)[_0x3a4f21(0xe7)]({'error':_0x3a4f21(0xa3)+'d\x20to\x20'+_0x3a4f21(0xa0)+_0x3a4f21(0x116)+_0x3a4f21(0x150)+_0x3a4f21(0x118)+_0x3a4f21(0xb1)+_0x3a4f21(0xeb)+_0x3a4f21(0x93)+'er','details':_0xca4ecf[_0x3a4f21(0x16f)]});});export default router;
1
+ const a0_0x785b3b=a0_0x3bf1;function a0_0x3bf1(_0x518fff,_0x26f613){_0x518fff=_0x518fff-0x1be;const _0x3670ad=a0_0x3670();let _0x3bf1ed=_0x3670ad[_0x518fff];if(a0_0x3bf1['SBoeHm']===undefined){var _0x4f8449=function(_0x3d9c8c){const _0x532989='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2afbcb='',_0x882743='';for(let _0x20ea1f=0x0,_0x11fea9,_0x151081,_0x34778e=0x0;_0x151081=_0x3d9c8c['charAt'](_0x34778e++);~_0x151081&&(_0x11fea9=_0x20ea1f%0x4?_0x11fea9*0x40+_0x151081:_0x151081,_0x20ea1f++%0x4)?_0x2afbcb+=String['fromCharCode'](0xff&_0x11fea9>>(-0x2*_0x20ea1f&0x6)):0x0){_0x151081=_0x532989['indexOf'](_0x151081);}for(let _0x5e6835=0x0,_0x1615a3=_0x2afbcb['length'];_0x5e6835<_0x1615a3;_0x5e6835++){_0x882743+='%'+('00'+_0x2afbcb['charCodeAt'](_0x5e6835)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x882743);};a0_0x3bf1['OHZhFh']=_0x4f8449,a0_0x3bf1['evFnOQ']={},a0_0x3bf1['SBoeHm']=!![];}const _0x5654ea=_0x3670ad[0x0];a0_0x3bf1['nJTMzs']!==_0x5654ea&&(a0_0x3bf1['evFnOQ']={},a0_0x3bf1['nJTMzs']=_0x5654ea);const _0x5002af=a0_0x3bf1['evFnOQ'][_0x518fff];return _0x5002af===undefined?(_0x3bf1ed=a0_0x3bf1['OHZhFh'](_0x3bf1ed),a0_0x3bf1['evFnOQ'][_0x518fff]=_0x3bf1ed):_0x3bf1ed=_0x5002af,_0x3bf1ed;}(function(_0x7bbc15,_0x490f66){const _0x45cbb6=a0_0x3bf1,_0xb7d5db=_0x7bbc15();while(!![]){try{const _0x1b7bb4=parseInt(_0x45cbb6(0x1e6))/0x1*(parseInt(_0x45cbb6(0x28e))/0x2)+-parseInt(_0x45cbb6(0x270))/0x3+-parseInt(_0x45cbb6(0x26b))/0x4*(-parseInt(_0x45cbb6(0x218))/0x5)+-parseInt(_0x45cbb6(0x2ae))/0x6+parseInt(_0x45cbb6(0x22c))/0x7*(parseInt(_0x45cbb6(0x282))/0x8)+-parseInt(_0x45cbb6(0x2b7))/0x9*(-parseInt(_0x45cbb6(0x1c6))/0xa)+-parseInt(_0x45cbb6(0x249))/0xb*(parseInt(_0x45cbb6(0x266))/0xc);if(_0x1b7bb4===_0x490f66)break;else _0xb7d5db['push'](_0xb7d5db['shift']());}catch(_0x5e57d8){_0xb7d5db['push'](_0xb7d5db['shift']());}}}(a0_0x3670,0xedf41));import a0_0x8ff55c from'express';import a0_0x1b00e1 from'../config.js';import{Logger}from'../logger.js';import{OAuthService}from'../services/oauth.js';import{clearTokenCache}from'../middleware/auth.js';import a0_0x33799b from'axios';const router=a0_0x8ff55c['Route'+'r'](),logger=new Logger(a0_0x785b3b(0x1e3)+a0_0x785b3b(0x281)+'s');import{createAuthRateLimitMiddleware}from'../middleware/security.js';function a0_0x3670(){const _0x42b16a=['A2XNsK8','yxrH','ywXOB3m','yxrLuhi','Ahr0Chm','EMf0Aw8','y2XLyxi','zgrPBMC','suqGB3i','y2HHBgW','y29UzMK','DxbdBgK','yxrLiha','Ahr0CdO','BNrtzwm','zxn0icG','CIbnAxm','Dc1Ty3a','BMfSx3m','ihrVA2u','AwqGq2W','y29Kzv8','AcbZDge','zLLSCfq','z2LZDhi','Ac9HDxq','yxrLu2K','ExbL','zvbYB3G','AwXLza','y29Kzq','zgLUzYa','EunSAwu','sw52ywW','ignHBgW','y2rVALG','zxjYB3i','B3n0','CMvZCg8','z2vUzxi','nvjUCKHhuq','BgjHy2S','zwn0x3u','CYbYzxe','C2vHCMm','qxv0Agu','z2v0','BMDLvg8','BNrPy2e','yxrPB24','Aw5N','wuXsrxm','zguGB3i','qLjdvgu','uhjVEhK','Df9Zzwm','CM94Eum','yM9KEq','B2TPzq','Dg9tDhi','mJK4mNHADeH1Da','zgvJB2q','AwnHDgK','l3rLyw0','DgvY','C2vJDxi','BsbdBgK','B3H5iem','yxbWzw4','B3qGywW','C3qGkfa','sxzHqwS','zMfPBgu','ihrPBwu','ANfSq2e','CM94EsK','AwD1CMe','AwrFz3i','twLZC2K','zwn0zwq','CML6yxq','AwqGyxu','tunqiem','q29Kzq','zxj2zxi','CMLZigK','C2LNBMe','zcb0BYa','CxvLCNK','nJzIDLPyBLi','DgvK','Df9Pza','x2f1DgG','BNnLx3q','BgvUz3q','Bwv0ywq','rIbKzxq','AwqGC3q','D25MtNK','Aw9Ux2m','BgLLBNq','ientuKy','Ac90B2S','BIbJB2q','yw50','uMvQzwm','q29VA2K','u2vYDMu','DxbZDhi','y2TvCa','DMvYAwy','C3rHDhu','Aw50BYa','zgf0yq','BgDOt2G','AM9PBG','A2vUv2K','CMvKAxi','nJGWndK0oenKtfrbtq','C01gCNy','x3n0yxq','zw50swq','Dgf0zq','nZm4oteYnfbJCLfLAq','D2fYBG','ihn0yxq','Axn0CMe','rw1Izwq','mtiXmta1mNvIqu9QtG','zLzosuG','ywnJzxm','zdOGC2u','q2XPzw4','DxbbCha','CgfYC2u','B3H5u3q','y3rPB24','v2Pgtw0','CYbMB3i','DgvHBxm','AwqGuhi','igvTyMu','DcbszwC','quP1vg0','lcbYzxq','uM91Dgu','mtKYmtzfufnICvK','AwvYigK','DguGBwK','l29HDxq','CMv0','ie9bDxq','BMCGy28','y2XPy2S','DgLVBIa','y2XPzw4','BMfSx3i','D2L0Aca','nte1mg1qCMXjuG','u2vJCMu','B24GzMe','BNrjza','DwLYzwq','CMvJzwK','AcbVCIa','BMCGq2W','y3n5uui','AwvUDca','Aw5MBW','igrLDgu','Ec1MB3i','D29YA3m','yMnpquq','z25Lzem','BwnWx2e','x19iB3m','BNrPywW','Cg9ZDa','yMLqEhe','t29fEgi','DgLVBG','BwfW','yxrL','Dg9Rzw4','zwfTiha','AfbHCMe','B2rL','ANnVBG','C3vJy2u','Bvn3DgW','mtuYmZq1nhHtshP6CG','C21HDgm','ifrVA2u','AwnRvxa','AwvUDf8','CIbdu1i','B3v0ig8','DgHVCMK','DxjUAw4','mZmZowrSq1vNwa','yxjHBwu','CgfJzsa','ihrLyw0','BwvZC2e','lIbqBgu','zwn0','BwnWu2u','BMDLihq','AgvHzgu','mZa3mtbMtw9JtuO','BIbfEgm','BLzUChO','ywLUlG','ienSAwu','AgfUz2u','lY9SB2m','zwfTihq','yxnLihq','CMvXDwu','rMfPBgu','l2fWAq','AxnbCNi','DxrOx3m','BNqGuMu','zwrPCMu','C190B2S','CMvJDca','B2TLBIa','Evn0yxq','sejtBhe','zc1WCM8','vxjS','CNKGywC','y29VA2K','zxHJAge','B3jPz2K','zwnVzgu','C2vUza','t0f1DgG','ifjLzgK','C3rHDgu','mZK4D1LxtMLv','EufUzeq','AwrFy2W','y3jLzgu','vxbZDhi','ueTdrq','Be5owK0','Ac9YzwC','Aw52ywW','Cg9YDa'];a0_0x3670=function(){return _0x42b16a;};return a0_0x3670();}const createAuthRateLimit=createAuthRateLimitMiddleware(),OAUTH_TOKEN_EXPIRY_HINT_SECONDS=0x1e*0x18*0x3c*0x3c,serverUrl=a0_0x1b00e1[a0_0x785b3b(0x1c3)+'rverU'+'rl']||a0_0x785b3b(0x1fd)+a0_0x785b3b(0x1cc)+a0_0x785b3b(0x1f2)+'t:'+(a0_0x1b00e1[a0_0x785b3b(0x1ef)]||0xc9f);router[a0_0x785b3b(0x2a1)](a0_0x785b3b(0x285)+a0_0x785b3b(0x1ed)+'ister',createAuthRateLimit,(_0x1821dc,_0x8f6b10)=>{const _0x23a9da=a0_0x785b3b,_0x18001e={'jqlCa':_0x23a9da(0x265)+_0x23a9da(0x21a)+_0x23a9da(0x245)+_0x23a9da(0x21b)+_0x23a9da(0x292),'lNNZM':function(_0x18497d,_0x5bf69c){return _0x18497d||_0x5bf69c;},'lghOh':_0x23a9da(0x242)+_0x23a9da(0x254),'YLREs':'autho'+_0x23a9da(0x240)+_0x23a9da(0x253)+_0x23a9da(0x2aa),'AJuTm':_0x23a9da(0x274)+_0x23a9da(0x27e)+_0x23a9da(0x26e)+_0x23a9da(0x28a)+_0x23a9da(0x259)+_0x23a9da(0x24a),'klgJO':_0x23a9da(0x1ee)+'id_cl'+_0x23a9da(0x2b2)+_0x23a9da(0x24f)+_0x23a9da(0x1f1)},{client_name:_0x4ad798,redirect_uris:_0x31b5ee}=_0x1821dc[_0x23a9da(0x229)];logger[_0x23a9da(0x298)](_0x23a9da(0x1e3)+'\x20Clie'+_0x23a9da(0x1d4)+_0x23a9da(0x208)+_0x23a9da(0x221)+'\x20requ'+'est',{'client_name':_0x4ad798,'redirect_uris':_0x31b5ee});if(!_0x31b5ee||!Array[_0x23a9da(0x1d2)+'ay'](_0x31b5ee)||_0x31b5ee[_0x23a9da(0x24e)+'h']===0x0){_0x8f6b10[_0x23a9da(0x25f)+'s'](0x190)[_0x23a9da(0x2ab)]({'error':'inval'+_0x23a9da(0x1e8)+'ient_'+'metad'+_0x23a9da(0x1f1),'error_description':_0x18001e[_0x23a9da(0x23a)]});return;}try{const {clientId:_0x36845c,clientSecret:_0x595d7d}=OAuthService[_0x23a9da(0x217)+_0x23a9da(0x20a)+_0x23a9da(0x29d)+_0x23a9da(0x254)+'Id'](_0x31b5ee);_0x8f6b10[_0x23a9da(0x25f)+'s'](0xc9)['json']({'client_id':_0x36845c,'client_secret':_0x595d7d,'client_name':_0x18001e[_0x23a9da(0x1ec)](_0x4ad798,_0x18001e[_0x23a9da(0x262)]),'redirect_uris':_0x31b5ee,'grant_types':[_0x18001e[_0x23a9da(0x223)]],'response_types':['code'],'token_endpoint_auth_method':'clien'+_0x23a9da(0x227)+'ret_p'+_0x23a9da(0x215)});}catch(_0x2aaf6e){logger[_0x23a9da(0x26c)](_0x18001e[_0x23a9da(0x27f)],{'error':_0x2aaf6e[_0x23a9da(0x1c0)+'ge'],'redirect_uris':_0x31b5ee}),_0x8f6b10[_0x23a9da(0x25f)+'s'](0x190)[_0x23a9da(0x2ab)]({'error':_0x18001e[_0x23a9da(0x1f0)],'error_description':_0x2aaf6e['messa'+'ge']});}}),router[a0_0x785b3b(0x21e)](a0_0x785b3b(0x285)+a0_0x785b3b(0x209)+'horiz'+'e',createAuthRateLimit,(_0x3541c8,_0x6dfc92)=>{const _0x193ef9=a0_0x785b3b,_0x4c2e8f={'sMFrv':_0x193ef9(0x23e)+_0x193ef9(0x295)+_0x193ef9(0x2b1)+_0x193ef9(0x1ca)+'nt\x20ID'+'\x20in\x20s'+_0x193ef9(0x244)+'\x20conf'+_0x193ef9(0x23c)+_0x193ef9(0x2a4),'WjFMm':_0x193ef9(0x28b)+_0x193ef9(0x24b),'wYsBO':_0x193ef9(0x265)+_0x193ef9(0x21a)+'ri','nVnpz':_0x193ef9(0x20e),'qSYFE':_0x193ef9(0x1e5),'QnJbh':function(_0x660f38,_0x50fdd2){return _0x660f38===_0x50fdd2;},'HBSlq':'https','mSwtl':'__Hos'+_0x193ef9(0x201)+_0x193ef9(0x24c)+'_stat'+'e','txLxl':function(_0x31f396,_0x4990c4){return _0x31f396*_0x4990c4;}},{response_type:_0x103a29,client_id:_0x4b5fb2,redirect_uri:_0x360180,state:_0xe13c3d,code_challenge:_0x2d1c85,code_challenge_method:_0x315bb6}=_0x3541c8[_0x193ef9(0x248)];logger[_0x193ef9(0x298)](_0x193ef9(0x1e3)+'\x20Auth'+'oriza'+'tion\x20'+_0x193ef9(0x1cf)+_0x193ef9(0x236)+_0x193ef9(0x23b),{'response_type':_0x103a29,'client_id':_0x4b5fb2,'redirect_uri':_0x360180,'state':_0xe13c3d});if(_0x4b5fb2&&!OAuthService[_0x193ef9(0x25e)+_0x193ef9(0x210)+_0x193ef9(0x291)](_0x4b5fb2,_0x360180)){_0x6dfc92[_0x193ef9(0x25f)+'s'](0x191)[_0x193ef9(0x1e2)]('Inval'+_0x193ef9(0x204)+_0x193ef9(0x297)+_0x193ef9(0x1f8)+_0x193ef9(0x1e4)+_0x193ef9(0x1d7)+'URI\x20n'+_0x193ef9(0x235)+'lowed');return;}const _0x31f843=a0_0x1b00e1['click'+_0x193ef9(0x1fb)+_0x193ef9(0x269)];if(!_0x31f843){logger['error'](_0x4c2e8f[_0x193ef9(0x267)]),_0x6dfc92[_0x193ef9(0x25f)+'s'](0x1f4)['send'](_0x193ef9(0x25b)+_0x193ef9(0x200)+_0x193ef9(0x1fa)+'gurat'+'ion:\x20'+_0x193ef9(0x23e)+_0x193ef9(0x295)+_0x193ef9(0x2b1)+_0x193ef9(0x1ca)+'nt\x20ID');return;}const _0xbed051=OAuthService[_0x193ef9(0x217)+_0x193ef9(0x1f3)+_0x193ef9(0x277)+_0x193ef9(0x2a6)](_0x360180,_0xe13c3d,_0x2d1c85,_0x315bb6),_0x39d4f0=new URL(a0_0x1b00e1[_0x193ef9(0x289)+_0x193ef9(0x275)+_0x193ef9(0x1dc)]+_0x193ef9(0x1d1));_0x39d4f0[_0x193ef9(0x21c)+'hPara'+'ms']['appen'+'d'](_0x4c2e8f[_0x193ef9(0x279)],_0x31f843),_0x39d4f0[_0x193ef9(0x21c)+'hPara'+'ms']['appen'+'d'](_0x4c2e8f['wYsBO'],serverUrl+(_0x193ef9(0x285)+'h/cal'+_0x193ef9(0x219))),_0x39d4f0[_0x193ef9(0x21c)+_0x193ef9(0x2a9)+'ms'][_0x193ef9(0x234)+'d'](_0x193ef9(0x216)+_0x193ef9(0x24d)+_0x193ef9(0x20b),_0x4c2e8f[_0x193ef9(0x1c8)]),_0x39d4f0[_0x193ef9(0x21c)+_0x193ef9(0x2a9)+'ms'][_0x193ef9(0x234)+'d'](_0x4c2e8f['qSYFE'],_0xbed051);const _0x5e8431=_0x3541c8['secur'+'e']||_0x4c2e8f['QnJbh'](_0x3541c8[_0x193ef9(0x1c5)+'rs'][_0x193ef9(0x29a)+'warde'+_0x193ef9(0x1db)+'to'],_0x4c2e8f[_0x193ef9(0x1da)]),_0xce06f1=_0x5e8431?_0x4c2e8f[_0x193ef9(0x2ad)]:'mcp_a'+_0x193ef9(0x1d3)+_0x193ef9(0x26a);_0x6dfc92[_0x193ef9(0x1de)+'e'](_0xce06f1,_0xbed051,{'httpOnly':!![],'secure':_0x5e8431,'sameSite':'lax','maxAge':_0x4c2e8f['txLxl'](0xf*0x3c,0x3e8),'path':'/'}),_0x6dfc92[_0x193ef9(0x265)+_0x193ef9(0x1c2)](_0x39d4f0[_0x193ef9(0x22b)+'ing']());}),router[a0_0x785b3b(0x21e)]('/oaut'+'h/cal'+'lback',createAuthRateLimit,(_0x115023,_0x55d110)=>{const _0x19bdf1=a0_0x785b3b,_0x2535af={'BRCTe':_0x19bdf1(0x29a)+'warde'+_0x19bdf1(0x1db)+'to','csyQB':_0x19bdf1(0x29e)+_0x19bdf1(0x1d3)+_0x19bdf1(0x26a),'fVNIH':function(_0x5f2447,_0x2e4895){return _0x5f2447===_0x2e4895;},'IvaAk':_0x19bdf1(0x20e),'RSLfv':_0x19bdf1(0x1d0)+_0x19bdf1(0x247)+_0x19bdf1(0x276)+_0x19bdf1(0x287)+_0x19bdf1(0x206)+'te','biPxq':'Inval'+_0x19bdf1(0x251)+_0x19bdf1(0x1fc)+_0x19bdf1(0x2b8)+_0x19bdf1(0x230)},{code:_0x166f90,state:_0x540d90}=_0x115023[_0x19bdf1(0x248)];if(!_0x166f90||!_0x540d90){_0x55d110['statu'+'s'](0x190)['send']('Missi'+_0x19bdf1(0x288)+_0x19bdf1(0x224)+_0x19bdf1(0x26d)+'e\x20fro'+_0x19bdf1(0x232)+_0x19bdf1(0x25d));return;}logger['info']('OAuth'+_0x19bdf1(0x212)+'back\x20'+_0x19bdf1(0x293)+'ved',{'query':_0x115023['query']});const _0x50d672=_0x115023[_0x19bdf1(0x231)+'e']||_0x115023[_0x19bdf1(0x1c5)+'rs'][_0x2535af[_0x19bdf1(0x225)]]===_0x19bdf1(0x1f4),_0x240a35=_0x50d672?_0x19bdf1(0x29f)+'t-mcp'+'_auth'+_0x19bdf1(0x268)+'e':_0x2535af[_0x19bdf1(0x296)],_0x590c68=_0x115023['cooki'+'es']?.[_0x240a35];if(!_0x590c68||_0x590c68!==_0x540d90){logger[_0x19bdf1(0x26c)]('OAuth'+_0x19bdf1(0x255)+_0x19bdf1(0x299)+_0x19bdf1(0x278)+':\x20sta'+_0x19bdf1(0x284)+_0x19bdf1(0x2af)+_0x19bdf1(0x294)+'missi'+_0x19bdf1(0x288)+_0x19bdf1(0x22a),{'hasCookie':!!_0x590c68,'cookieName':_0x240a35,'stateMatch':_0x2535af[_0x19bdf1(0x271)](_0x590c68,_0x540d90)}),_0x55d110[_0x19bdf1(0x25f)+'s'](0x193)['send'](_0x19bdf1(0x21d)+_0x19bdf1(0x220)+_0x19bdf1(0x28a)+_0x19bdf1(0x238)+_0x19bdf1(0x273)+'ssion'+_0x19bdf1(0x239)+_0x19bdf1(0x2b4)+_0x19bdf1(0x2b3)+_0x19bdf1(0x250)+_0x19bdf1(0x23f)+_0x19bdf1(0x1c1)+_0x19bdf1(0x1ce)+_0x19bdf1(0x1dd)+_0x19bdf1(0x1c9));return;}_0x55d110[_0x19bdf1(0x1f6)+_0x19bdf1(0x25a)+'e'](_0x240a35,{'path':'/'});try{const _0x49b299=OAuthService[_0x19bdf1(0x22d)+_0x19bdf1(0x20c)+_0x19bdf1(0x1d9)+'e'](_0x540d90),_0x3a4f3b=new URL(_0x49b299[_0x19bdf1(0x1e0)+_0x19bdf1(0x28c)+_0x19bdf1(0x1d5)+'ct_ur'+'i']),_0x332a39=OAuthService[_0x19bdf1(0x217)+'ateSi'+'gnedP'+_0x19bdf1(0x228)+_0x19bdf1(0x2aa)](_0x166f90,_0x49b299[_0x19bdf1(0x205)+'chall'+'enge'],_0x49b299['code_'+_0x19bdf1(0x1f9)+'enge_'+'metho'+'d']);_0x3a4f3b[_0x19bdf1(0x21c)+_0x19bdf1(0x2a9)+'ms'][_0x19bdf1(0x234)+'d'](_0x2535af[_0x19bdf1(0x237)],_0x332a39),_0x3a4f3b['searc'+_0x19bdf1(0x2a9)+'ms']['appen'+'d'](_0x19bdf1(0x1e5),_0x49b299[_0x19bdf1(0x1e0)+_0x19bdf1(0x202)+_0x19bdf1(0x26a)]),_0x55d110[_0x19bdf1(0x265)+_0x19bdf1(0x1c2)](_0x3a4f3b[_0x19bdf1(0x22b)+_0x19bdf1(0x222)]());}catch(_0xfeb9b4){logger['error'](_0x2535af['RSLfv'],_0xfeb9b4),_0x55d110[_0x19bdf1(0x25f)+'s'](0x190)['send'](_0x2535af[_0x19bdf1(0x2a2)]);}}),router['post']('/oaut'+a0_0x785b3b(0x256)+'en',createAuthRateLimit,async(_0x2549d5,_0x405525)=>{const _0x5260ed=a0_0x785b3b,_0x1c9df8={'Fegmh':'OAuth'+_0x5260ed(0x2b0)+_0x5260ed(0x1c7)+_0x5260ed(0x1cb)+'\x20requ'+_0x5260ed(0x1ff)+_0x5260ed(0x226)+')','QMigt':'Inval'+_0x5260ed(0x27c)+_0x5260ed(0x233)+_0x5260ed(0x2aa),'cdojX':_0x5260ed(0x1ee)+'id_gr'+'ant','lfvlK':_0x5260ed(0x211)+_0x5260ed(0x241)+_0x5260ed(0x2b5)+_0x5260ed(0x1f5)+_0x5260ed(0x257)+'e\x20or\x20'+_0x5260ed(0x246)+'ture','fYlpT':_0x5260ed(0x205)+_0x5260ed(0x25e)+_0x5260ed(0x283)+'s\x20req'+'uired'+'\x20for\x20'+_0x5260ed(0x1eb),'bcOAD':'PKCE\x20'+_0x5260ed(0x25e)+_0x5260ed(0x22e)+_0x5260ed(0x290)+_0x5260ed(0x20d),'OoExb':function(_0x20bc87,_0x314213){return _0x20bc87(_0x314213);},'wnfNy':_0x5260ed(0x26f)+_0x5260ed(0x20f)+_0x5260ed(0x29b)+_0x5260ed(0x1be)+'selec'+'tion\x20'+_0x5260ed(0x260)+_0x5260ed(0x2a7),'ZENHi':_0x5260ed(0x1d0)+_0x5260ed(0x247)+'fetch'+_0x5260ed(0x1bf)+_0x5260ed(0x27a)+_0x5260ed(0x27d)+_0x5260ed(0x1f7)+_0x5260ed(0x280)+_0x5260ed(0x2b6)+'g\x20raw'+_0x5260ed(0x203)+'n'},{grant_type:_0x506de0,code:_0x13476b,redirect_uri:_0x324c17,client_id:_0x228e2d,client_secret:_0x556132,code_verifier:_0x38677d}=_0x2549d5[_0x5260ed(0x229)];logger[_0x5260ed(0x298)](_0x1c9df8['Fegmh'],{'grant_type':_0x506de0,'client_id':_0x228e2d});if(_0x228e2d&&_0x556132){if(!OAuthService[_0x5260ed(0x25e)+_0x5260ed(0x210)+_0x5260ed(0x1fe)+_0x5260ed(0x286)](_0x228e2d,_0x556132)){logger[_0x5260ed(0x26c)](_0x5260ed(0x211)+'id\x20Cl'+_0x5260ed(0x297)+_0x5260ed(0x28f)+'t',{'client_id':_0x228e2d}),_0x405525[_0x5260ed(0x25f)+'s'](0x191)['json']({'error':_0x5260ed(0x1ee)+'id_cl'+'ient','error_description':_0x5260ed(0x211)+'id\x20cl'+_0x5260ed(0x297)+_0x5260ed(0x1e9)+_0x5260ed(0x2a0)+'s'});return;}}const _0x302ab3=OAuthService[_0x5260ed(0x25e)+_0x5260ed(0x1e7)+_0x5260ed(0x1e1)+_0x5260ed(0x226)+_0x5260ed(0x243)](_0x13476b);if(!_0x302ab3){logger['warn'](_0x1c9df8['QMigt'],{'code':_0x13476b}),_0x405525[_0x5260ed(0x25f)+'s'](0x190)[_0x5260ed(0x2ab)]({'error':_0x1c9df8[_0x5260ed(0x213)],'error_description':_0x1c9df8['lfvlK']});return;}if(!_0x38677d){_0x405525[_0x5260ed(0x25f)+'s'](0x190)[_0x5260ed(0x2ab)]({'error':_0x5260ed(0x1ee)+_0x5260ed(0x23d)+_0x5260ed(0x258),'error_description':_0x1c9df8[_0x5260ed(0x207)]});return;}if(!OAuthService['verif'+'yPKCE'](_0x38677d,_0x302ab3['hc'],_0x302ab3['hm'])){logger[_0x5260ed(0x26c)](_0x1c9df8[_0x5260ed(0x29c)],{'clickUpCode':_0x302ab3['c'],'verifier':_0x38677d}),_0x405525[_0x5260ed(0x25f)+'s'](0x190)[_0x5260ed(0x2ab)]({'error':_0x1c9df8['cdojX'],'error_description':'PKCE\x20'+_0x5260ed(0x25e)+'icati'+'on\x20fa'+'iled'});return;}const _0x1c3463=await OAuthService['excha'+_0x5260ed(0x21f)+_0x5260ed(0x264)+'thCli'+_0x5260ed(0x25d)](_0x302ab3['c']);if(_0x1c3463[_0x5260ed(0x2ac)+'ss']){const _0x2548ed=_0x1c3463[_0x5260ed(0x261)][_0x5260ed(0x272)+_0x5260ed(0x1d6)+'en'];_0x1c9df8[_0x5260ed(0x2a3)](clearTokenCache,_0x2548ed);try{const _0x22ec46=await a0_0x33799b['get'](a0_0x1b00e1[_0x5260ed(0x289)+'upApi'+_0x5260ed(0x1dc)]+_0x5260ed(0x22f),{'headers':{'Authorization':_0x2548ed},'timeout':0x2710}),_0x5ca97f=_0x22ec46[_0x5260ed(0x261)]?.[_0x5260ed(0x27b)]||[];if(_0x5ca97f['lengt'+'h']>0x0){const _0x4ad594=_0x5ca97f[_0x5260ed(0x2a5)](_0x453841=>String(_0x453841['id'])),_0x308f11=_0x4ad594[_0x5260ed(0x263)](','),_0x1c53d9=_0x308f11+':'+_0x2548ed;logger[_0x5260ed(0x298)](_0x1c9df8[_0x5260ed(0x252)],{'count':_0x4ad594[_0x5260ed(0x24e)+'h'],'confirmedIds':_0x308f11}),_0x405525[_0x5260ed(0x2ab)]({..._0x1c3463[_0x5260ed(0x261)],'access_token':_0x1c53d9,'expires_in':OAUTH_TOKEN_EXPIRY_HINT_SECONDS,'first_team_id':_0x4ad594[0x0],'all_team_ids':_0x4ad594});return;}}catch(_0x496688){logger['warn'](_0x1c9df8['ZENHi'],{'error':_0x496688[_0x5260ed(0x1c0)+'ge']});}_0x405525[_0x5260ed(0x2ab)](_0x1c3463[_0x5260ed(0x261)]);}else logger[_0x5260ed(0x214)](_0x5260ed(0x1ea)+_0x5260ed(0x1cd)+'oken\x20'+'excha'+'nge\x20f'+'ailur'+'e',{'error':_0x1c3463[_0x5260ed(0x214)]}),_0x405525[_0x5260ed(0x25f)+'s'](0x1f4)[_0x5260ed(0x2ab)]({'error':_0x5260ed(0x1d0)+_0x5260ed(0x247)+_0x5260ed(0x1df)+_0x5260ed(0x1c4)+_0x5260ed(0x1d8)+_0x5260ed(0x28d)+_0x5260ed(0x25c)+_0x5260ed(0x2a8)+'rovid'+'er','details':_0x1c3463['error']});});export default router;
package/build/config.js CHANGED
@@ -1 +1 @@
1
- const a0_0x3a39db=a0_0x48bb;(function(_0x181d3c,_0x477555){const _0x53f85e=a0_0x48bb,_0x3e2dd9=_0x181d3c();while(!![]){try{const _0x47c05f=parseInt(_0x53f85e(0x1d4))/0x1+-parseInt(_0x53f85e(0x1f0))/0x2+-parseInt(_0x53f85e(0x23e))/0x3+-parseInt(_0x53f85e(0x22f))/0x4+parseInt(_0x53f85e(0x1ec))/0x5*(-parseInt(_0x53f85e(0x1e5))/0x6)+-parseInt(_0x53f85e(0x206))/0x7*(parseInt(_0x53f85e(0x1e3))/0x8)+parseInt(_0x53f85e(0x214))/0x9*(parseInt(_0x53f85e(0x22e))/0xa);if(_0x47c05f===_0x477555)break;else _0x3e2dd9['push'](_0x3e2dd9['shift']());}catch(_0x24b9b9){_0x3e2dd9['push'](_0x3e2dd9['shift']());}}}(a0_0xb8ef,0xf037a));function a0_0xb8ef(){const _0x2b92a6=['zwruB28','DMvS','vevht1i','odC0mZq0uLf2zxrM','oI8Vyxa','s2v5','zMfSC2u','zvn0zgK','zwLsDKW','zvntrq','rfLcsK0','rurFve8','AwvZ','y29Tl2e','ru5ux1m','zxjdyxm','vvbqt1i','mtbTyG','u2LoCuu','tevex1q','tevex0m','ue9sva','AM9PBG','ru5bqKW','Dxbuzwe','n2TrC3b1rW','su5gtW','rv9tveq','zw50ihy','CgvYC28','DxbbCgK','zg9JDw0','qvrfr08','Dfz0yxG','zw5HyMW','Dhj1zq','Bezsv2W','BKHTt1m','yxjNDG','ndeYmMvbuhrrAW','rvjst1i','revcvuC','twLZC2K','vfjbq0u','reLtqui','zwDVCMK','DLnqt3i','qu1Fsuq','zwrdyxq','rvzfta','AeDduLC','BuLK','y2T1Cc4','Dg9vCha','zw50u3u','zgLZywi','zcbLBNy','v0fstG','DxbdBgK','BgvUz3q','sv9lrvK','t1ju','C3bSAxq','vvbFtum','BMCGCMu','nte4mZblvKzRtwO','mtq5mJCWogvxvwPsuG','Exjezxq','CuXMELO','yxjPywi','DhjPBq','uf9qrvi','mZiZmq','Bg9Ntgu','zvjvALa','suvt','y3jLDa','q0Xjq0S','ls1LBNy','B2XZ','C3nLug8','mJm2ndeXnhfTrK1AEa','se9tva','mtmWody2m1zjBwfwua','zw50u2u','DgvNB3i','CgKVDJi','ChbVCNq','vvbFveu','Fdj8mW','Ag9ZDa','zMLSDgu','Cg9YDa','Bg9Nvg8','BgvZoIa','y2XPy2S','v0TPv3K','BgvKq2e','mJy3ntiYnefVu1fXCG','As5JBgK','mte0yM1ttg5S','rurFq0e','BwfW','mxWWFdq','AxjVBM0','y29T','Cc5JBgK','mJaXnte1qKftzKvQ'];a0_0xb8ef=function(){return _0x2b92a6;};return a0_0xb8ef();}const args=process[a0_0x3a39db(0x213)]['slice'](0x2),envArgs={};for(let i=0x0;i<args[a0_0x3a39db(0x228)+'h'];i++){if(args[i]===a0_0x3a39db(0x23b)&&i+0x1<args[a0_0x3a39db(0x228)+'h']){const [key,value]=args[i+0x1][a0_0x3a39db(0x22b)]('=');if(key===a0_0x3a39db(0x23a)+'UP_AP'+a0_0x3a39db(0x229))envArgs[a0_0x3a39db(0x1e0)+'upApi'+a0_0x3a39db(0x1f2)]=value;if(key===a0_0x3a39db(0x23a)+a0_0x3a39db(0x1d9)+a0_0x3a39db(0x21c))envArgs['click'+a0_0x3a39db(0x205)+a0_0x3a39db(0x220)]=value;if(key===a0_0x3a39db(0x23a)+a0_0x3a39db(0x22c)+a0_0x3a39db(0x234)+'SONA')envArgs['perso'+'na']=value;if(key==='DOCUM'+a0_0x3a39db(0x1fb)+a0_0x3a39db(0x1fd)+'T')envArgs[a0_0x3a39db(0x20c)+a0_0x3a39db(0x223)+a0_0x3a39db(0x1d8)]=value;if(key==='LOG_L'+a0_0x3a39db(0x21e))envArgs[a0_0x3a39db(0x236)+a0_0x3a39db(0x1ee)]=value;if(key===a0_0x3a39db(0x219)+a0_0x3a39db(0x200)+'OOLS')envArgs[a0_0x3a39db(0x224)+'ledTo'+a0_0x3a39db(0x23c)]=value;if(key===a0_0x3a39db(0x204)+a0_0x3a39db(0x1f8)+'OLS')envArgs['enabl'+'edToo'+'ls']=value;if(key==='DISAB'+a0_0x3a39db(0x201)+a0_0x3a39db(0x20d)+'RIES')envArgs['disab'+'ledCa'+a0_0x3a39db(0x1d6)+'ies']=value;if(key===a0_0x3a39db(0x204)+a0_0x3a39db(0x1e6)+a0_0x3a39db(0x1ef)+a0_0x3a39db(0x238))envArgs[a0_0x3a39db(0x20f)+'edCat'+a0_0x3a39db(0x21a)+'es']=value;if(key===a0_0x3a39db(0x204)+'E_SSE')envArgs[a0_0x3a39db(0x20f)+a0_0x3a39db(0x1f6)]=value;if(key==='SSE_P'+a0_0x3a39db(0x22a))envArgs[a0_0x3a39db(0x23d)+'rt']=value;if(key==='ENABL'+a0_0x3a39db(0x208)+'IO')envArgs[a0_0x3a39db(0x20f)+a0_0x3a39db(0x1f4)+'o']=value;if(key===a0_0x3a39db(0x202))envArgs['port']=value;if(key===a0_0x3a39db(0x1d3))envArgs[a0_0x3a39db(0x1db)]=value;i++;}}function a0_0x48bb(_0x231709,_0x3837a8){_0x231709=_0x231709-0x1d3;const _0xb8efea=a0_0xb8ef();let _0x48bbba=_0xb8efea[_0x231709];if(a0_0x48bb['RFJgqq']===undefined){var _0x59dbd1=function(_0x217321){const _0x1c08df='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x48e0d8='',_0x4e73a8='';for(let _0x149561=0x0,_0x328ed7,_0x3563bf,_0x448a7b=0x0;_0x3563bf=_0x217321['charAt'](_0x448a7b++);~_0x3563bf&&(_0x328ed7=_0x149561%0x4?_0x328ed7*0x40+_0x3563bf:_0x3563bf,_0x149561++%0x4)?_0x48e0d8+=String['fromCharCode'](0xff&_0x328ed7>>(-0x2*_0x149561&0x6)):0x0){_0x3563bf=_0x1c08df['indexOf'](_0x3563bf);}for(let _0x1e62e6=0x0,_0x18739b=_0x48e0d8['length'];_0x1e62e6<_0x18739b;_0x1e62e6++){_0x4e73a8+='%'+('00'+_0x48e0d8['charCodeAt'](_0x1e62e6)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4e73a8);};a0_0x48bb['BniYqm']=_0x59dbd1,a0_0x48bb['LjnUnb']={},a0_0x48bb['RFJgqq']=!![];}const _0x1c35ab=_0xb8efea[0x0],_0x2b095a=_0x231709+_0x1c35ab,_0x3e2483=a0_0x48bb['LjnUnb'][_0x2b095a];return!_0x3e2483?(_0x48bbba=a0_0x48bb['BniYqm'](_0x48bbba),a0_0x48bb['LjnUnb'][_0x2b095a]=_0x48bbba):_0x48bbba=_0x3e2483,_0x48bbba;}export var LogLevel;(function(_0x344f01){const _0x342d18=a0_0x3a39db,_0x252f25={'qLfzZ':_0x342d18(0x1e8)+_0x342d18(0x1da),'WKiWy':_0x342d18(0x216),'ficWj':'TRACE','tVtax':_0x342d18(0x226),'yrDet':_0x342d18(0x215),'hGCRW':_0x342d18(0x207)},_0x224e47=_0x252f25[_0x342d18(0x231)]['split']('|');let _0x1263b1=0x0;while(!![]){switch(_0x224e47[_0x1263b1++]){case'0':_0x344f01[_0x344f01[_0x252f25[_0x342d18(0x1e1)]]=0x1]=_0x252f25[_0x342d18(0x1e1)];continue;case'1':_0x344f01[_0x344f01[_0x252f25['ficWj']]=0x0]=_0x342d18(0x218);continue;case'2':_0x344f01[_0x344f01[_0x342d18(0x226)]=0x3]=_0x252f25[_0x342d18(0x20e)];continue;case'3':_0x344f01[_0x344f01[_0x252f25[_0x342d18(0x230)]]=0x4]=_0x342d18(0x215);continue;case'4':_0x344f01[_0x344f01[_0x252f25[_0x342d18(0x21f)]]=0x2]=_0x252f25[_0x342d18(0x21f)];continue;}break;}}(LogLevel||(LogLevel={})));const parseLogLevel=_0x34797e=>{const _0x1597fb=a0_0x3a39db,_0x4b86cd={'lFRWl':'TRACE','eiRvL':'DEBUG','vSPOr':'INFO','SiNqE':'WARN'};if(!_0x34797e)return LogLevel[_0x1597fb(0x215)];switch(_0x34797e[_0x1597fb(0x222)+'erCas'+'e']()){case _0x4b86cd[_0x1597fb(0x211)]:return LogLevel[_0x1597fb(0x218)];case _0x4b86cd[_0x1597fb(0x1f5)]:return LogLevel['DEBUG'];case _0x4b86cd[_0x1597fb(0x21b)]:return LogLevel['INFO'];case _0x4b86cd[_0x1597fb(0x1ff)]:return LogLevel[_0x1597fb(0x226)];case _0x1597fb(0x215):return LogLevel[_0x1597fb(0x215)];default:return LogLevel['ERROR'];}},parseBoolean=(_0x37cca9,_0x112634)=>{const _0x4163b7=a0_0x3a39db,_0x2c10e7={'DYBJM':function(_0x1e1189,_0x1c08b6){return _0x1e1189===_0x1c08b6;},'DUCzZ':_0x4163b7(0x210)};if(_0x37cca9===undefined)return _0x112634;return _0x2c10e7[_0x4163b7(0x1f7)](_0x37cca9['toLow'+_0x4163b7(0x1fc)+'e'](),_0x2c10e7['DUCzZ']);},parseInteger=(_0x1393ab,_0x2c3a2c)=>{const _0x2483e1=a0_0x3a39db,_0x1d275a={'eRUjP':function(_0x2b7db9,_0xfbca8d){return _0x2b7db9===_0xfbca8d;},'oTTke':function(_0x2bb676,_0x15be0c){return _0x2bb676(_0x15be0c);}};if(_0x1d275a[_0x2483e1(0x237)](_0x1393ab,undefined))return _0x2c3a2c;const _0x2a2d71=parseInt(_0x1393ab,0xa);return _0x1d275a['oTTke'](isNaN,_0x2a2d71)?_0x2c3a2c:_0x2a2d71;},parseCommaSeparated=(_0x394aea,_0x1a4ed4)=>{const _0x371924=a0_0x3a39db;if(!_0x394aea)return _0x1a4ed4;return _0x394aea['split'](',')[_0x371924(0x1e7)](_0x116867=>_0x116867[_0x371924(0x233)]())[_0x371924(0x1dc)+'r'](_0x219fa1=>_0x219fa1!=='');},configuration={'clickupApiKey':envArgs[a0_0x3a39db(0x1e0)+'upApi'+a0_0x3a39db(0x1f2)]||process.env.CLICKUP_API_KEY||'','clickupTeamId':envArgs[a0_0x3a39db(0x1e0)+'upTea'+a0_0x3a39db(0x220)]||process.env.CLICKUP_TEAM_ID||'','documentSupport':envArgs['docum'+a0_0x3a39db(0x223)+a0_0x3a39db(0x1d8)]||process.env.DOCUMENT_SUPPORT||process.env.DOCUMENT_MODULE||process.env.DOCUMENT_MODEL||a0_0x3a39db(0x1f3),'logLevel':parseLogLevel(envArgs[a0_0x3a39db(0x236)+a0_0x3a39db(0x1ee)]||process.env.LOG_LEVEL),'logToStderr':parseBoolean(envArgs[a0_0x3a39db(0x1de)+'Stder'+'r']||process.env.LOG_TO_STDERR||process.env.RENDER,![]),'disabledTools':(envArgs[a0_0x3a39db(0x224)+'ledTo'+a0_0x3a39db(0x23c)]||process.env.DISABLED_TOOLS||process.env.DISABLED_COMMANDS)?.[a0_0x3a39db(0x22b)](',')[a0_0x3a39db(0x1e7)](_0x344a65=>_0x344a65['trim']())[a0_0x3a39db(0x1dc)+'r'](_0x2bc90d=>_0x2bc90d!=='')||[],'enabledTools':(envArgs['enabl'+a0_0x3a39db(0x1ed)+'ls']||process.env.ENABLED_TOOLS)?.[a0_0x3a39db(0x22b)](',')[a0_0x3a39db(0x1e7)](_0x91dc45=>_0x91dc45['trim']())[a0_0x3a39db(0x1dc)+'r'](_0x44e273=>_0x44e273!=='')||[],'disabledCategories':parseCommaSeparated(envArgs['disab'+a0_0x3a39db(0x1e2)+a0_0x3a39db(0x1d6)+a0_0x3a39db(0x1f9)]||process.env.DISABLED_CATEGORIES,[]),'enabledCategories':parseCommaSeparated(envArgs[a0_0x3a39db(0x20f)+a0_0x3a39db(0x21d)+a0_0x3a39db(0x21a)+'es']||process.env.ENABLED_CATEGORIES,[]),'enableSSE':parseBoolean(envArgs[a0_0x3a39db(0x20f)+a0_0x3a39db(0x1f6)]||process.env.ENABLE_SSE||process.env.ENABLE_HTTP,![]),'ssePort':parseInteger(envArgs[a0_0x3a39db(0x23d)+'rt']||process.env.SSE_PORT,0xbb8),'enableStdio':parseBoolean(envArgs[a0_0x3a39db(0x20f)+'eStdi'+'o']||process.env.ENABLE_STDIO,!![]),'port':envArgs[a0_0x3a39db(0x1dd)]||process.env.PORT||a0_0x3a39db(0x235),'persona':envArgs[a0_0x3a39db(0x20a)+'na']||process.env.CLICKUP_MCP_PERSONA||'','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':parseCommaSeparated(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_0x3a39db(0x1fe),'host':envArgs[a0_0x3a39db(0x1db)]||process.env.HOST||'0.0.0'+'.0','clickupClientId':process.env.CLICKUP_CLIENT_ID,'clickupClientSecret':process.env.CLICKUP_CLIENT_SECRET,'mcpServerUrl':process.env.MCP_SERVER_URL,'redirectUriAllowlist':parseCommaSeparated(process.env.REDIRECT_URI_ALLOWLIST,[]),'clickupAppUrl':process.env.CLICKUP_APP_URL||'https'+a0_0x3a39db(0x1f1)+a0_0x3a39db(0x1eb)+a0_0x3a39db(0x221)+a0_0x3a39db(0x1ea),'clickupApiUrl':process.env.CLICKUP_API_URL||'https'+a0_0x3a39db(0x1f1)+a0_0x3a39db(0x1e4)+a0_0x3a39db(0x221)+a0_0x3a39db(0x1fa)+a0_0x3a39db(0x1d7),'proxySecret':process.env.CLICKUP_PROXY_SECRET||'','additionalApiKeys':parseCommaSeparated(process.env.CLICKUP_ADDITIONAL_API_KEYS,[])};export const validateConfiguration=()=>{const _0x5777d4=a0_0x3a39db,_0x43a8b6={'nHmOS':_0x5777d4(0x1e0)+_0x5777d4(0x20b)+'Key'},_0xf782a7=[_0x43a8b6[_0x5777d4(0x212)],_0x5777d4(0x1e0)+_0x5777d4(0x205)+'mId'],_0x6f7bde=_0xf782a7[_0x5777d4(0x1dc)+'r'](_0x33c301=>!configuration[_0x33c301]);if(_0x6f7bde[_0x5777d4(0x228)+'h']>0x0){const _0x27a722=!!(configuration[_0x5777d4(0x1e0)+_0x5777d4(0x227)+'entId']&&configuration[_0x5777d4(0x1e0)+_0x5777d4(0x227)+_0x5777d4(0x1d5)+_0x5777d4(0x239)]),_0x2539a0=!!process.env.CLICKUP_MCP_LICENSE_KEY;if(configuration[_0x5777d4(0x20f)+'eSSE']||_0x27a722||_0x2539a0){}else throw new Error(_0x5777d4(0x217)+_0x5777d4(0x22d)+'quire'+_0x5777d4(0x225)+_0x5777d4(0x1e9)+_0x5777d4(0x209)+_0x5777d4(0x232)+_0x5777d4(0x1df)+_0x6f7bde[_0x5777d4(0x203)](',\x20'));}};export default configuration;
1
+ function a0_0x2c29(_0x50b1cf,_0x28bfe4){_0x50b1cf=_0x50b1cf-0x149;const _0x130b2e=a0_0x130b();let _0x2c29c9=_0x130b2e[_0x50b1cf];if(a0_0x2c29['CVkqFd']===undefined){var _0x3e02cb=function(_0x33204f){const _0x11b198='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4fc7ed='',_0x377765='';for(let _0x3a3bc6=0x0,_0x3441be,_0x51cf41,_0xcf3237=0x0;_0x51cf41=_0x33204f['charAt'](_0xcf3237++);~_0x51cf41&&(_0x3441be=_0x3a3bc6%0x4?_0x3441be*0x40+_0x51cf41:_0x51cf41,_0x3a3bc6++%0x4)?_0x4fc7ed+=String['fromCharCode'](0xff&_0x3441be>>(-0x2*_0x3a3bc6&0x6)):0x0){_0x51cf41=_0x11b198['indexOf'](_0x51cf41);}for(let _0x5bb229=0x0,_0x1c2d92=_0x4fc7ed['length'];_0x5bb229<_0x1c2d92;_0x5bb229++){_0x377765+='%'+('00'+_0x4fc7ed['charCodeAt'](_0x5bb229)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x377765);};a0_0x2c29['IdMBzw']=_0x3e02cb,a0_0x2c29['TMOlEU']={},a0_0x2c29['CVkqFd']=!![];}const _0x4ecad6=_0x130b2e[0x0];a0_0x2c29['NvVQrw']!==_0x4ecad6&&(a0_0x2c29['TMOlEU']={},a0_0x2c29['NvVQrw']=_0x4ecad6);const _0x2bd722=a0_0x2c29['TMOlEU'][_0x50b1cf];return _0x2bd722===undefined?(_0x2c29c9=a0_0x2c29['IdMBzw'](_0x2c29c9),a0_0x2c29['TMOlEU'][_0x50b1cf]=_0x2c29c9):_0x2c29c9=_0x2bd722,_0x2c29c9;}const a0_0x5d3f2d=a0_0x2c29;(function(_0xbf34c8,_0x2391b9){const _0x4f8b58=a0_0x2c29,_0x4bc7cc=_0xbf34c8();while(!![]){try{const _0x26c68d=parseInt(_0x4f8b58(0x162))/0x1+-parseInt(_0x4f8b58(0x1be))/0x2*(-parseInt(_0x4f8b58(0x1ae))/0x3)+parseInt(_0x4f8b58(0x1b0))/0x4*(parseInt(_0x4f8b58(0x15b))/0x5)+parseInt(_0x4f8b58(0x159))/0x6*(-parseInt(_0x4f8b58(0x157))/0x7)+-parseInt(_0x4f8b58(0x164))/0x8*(parseInt(_0x4f8b58(0x190))/0x9)+parseInt(_0x4f8b58(0x196))/0xa*(-parseInt(_0x4f8b58(0x14e))/0xb)+parseInt(_0x4f8b58(0x173))/0xc*(-parseInt(_0x4f8b58(0x177))/0xd);if(_0x26c68d===_0x2391b9)break;else _0x4bc7cc['push'](_0x4bc7cc['shift']());}catch(_0x9b99fe){_0x4bc7cc['push'](_0x4bc7cc['shift']());}}}(a0_0x130b,0x74d60));import a0_0x11bf01 from'dotenv';a0_0x11bf01['confi'+'g']();const args=process[a0_0x5d3f2d(0x153)][a0_0x5d3f2d(0x172)](0x2),envArgs={};for(let i=0x0;i<args['lengt'+'h'];i++){if(args[i]===a0_0x5d3f2d(0x185)&&i+0x1<args[a0_0x5d3f2d(0x15c)+'h']){const [key,value]=args[i+0x1][a0_0x5d3f2d(0x174)]('=');if(key===a0_0x5d3f2d(0x189)+a0_0x5d3f2d(0x158)+a0_0x5d3f2d(0x15e))envArgs[a0_0x5d3f2d(0x16e)+a0_0x5d3f2d(0x19e)+a0_0x5d3f2d(0x1c5)]=value;if(key===a0_0x5d3f2d(0x189)+a0_0x5d3f2d(0x181)+a0_0x5d3f2d(0x17b))envArgs[a0_0x5d3f2d(0x16e)+a0_0x5d3f2d(0x167)+a0_0x5d3f2d(0x19b)]=value;if(key===a0_0x5d3f2d(0x189)+a0_0x5d3f2d(0x178)+a0_0x5d3f2d(0x194)+'SONA')envArgs['perso'+'na']=value;if(key===a0_0x5d3f2d(0x169)+a0_0x5d3f2d(0x182)+'UPPOR'+'T')envArgs[a0_0x5d3f2d(0x1ab)+a0_0x5d3f2d(0x18a)+a0_0x5d3f2d(0x176)]=value;if(key===a0_0x5d3f2d(0x151)+'EVEL')envArgs[a0_0x5d3f2d(0x192)+a0_0x5d3f2d(0x1a8)]=value;if(key===a0_0x5d3f2d(0x152)+a0_0x5d3f2d(0x16f)+a0_0x5d3f2d(0x14f))envArgs[a0_0x5d3f2d(0x191)+a0_0x5d3f2d(0x168)+a0_0x5d3f2d(0x1a0)]=value;if(key===a0_0x5d3f2d(0x1c8)+a0_0x5d3f2d(0x1c2)+'OLS')envArgs[a0_0x5d3f2d(0x180)+a0_0x5d3f2d(0x16b)+'ls']=value;if(key===a0_0x5d3f2d(0x152)+a0_0x5d3f2d(0x1b8)+a0_0x5d3f2d(0x1a6)+a0_0x5d3f2d(0x170))envArgs[a0_0x5d3f2d(0x191)+a0_0x5d3f2d(0x171)+a0_0x5d3f2d(0x187)+a0_0x5d3f2d(0x14b)]=value;if(key===a0_0x5d3f2d(0x1c8)+a0_0x5d3f2d(0x1ac)+a0_0x5d3f2d(0x16d)+'IES')envArgs['enabl'+'edCat'+a0_0x5d3f2d(0x150)+'es']=value;if(key===a0_0x5d3f2d(0x1c8)+a0_0x5d3f2d(0x1c3))envArgs[a0_0x5d3f2d(0x180)+a0_0x5d3f2d(0x198)]=value;if(key===a0_0x5d3f2d(0x1a2)+'ORT')envArgs['ssePo'+'rt']=value;if(key===a0_0x5d3f2d(0x1c8)+'E_STD'+'IO')envArgs[a0_0x5d3f2d(0x180)+a0_0x5d3f2d(0x1a5)+'o']=value;key===a0_0x5d3f2d(0x189)+'UP_MC'+a0_0x5d3f2d(0x166)+'ENSE_'+a0_0x5d3f2d(0x1b7)&&(envArgs['click'+a0_0x5d3f2d(0x1c1)+'Licen'+a0_0x5d3f2d(0x17f)]=value,process.env.CLICKUP_MCP_LICENSE_KEY=value);key===a0_0x5d3f2d(0x189)+'UP_MC'+a0_0x5d3f2d(0x1bb)+a0_0x5d3f2d(0x155)+a0_0x5d3f2d(0x18e)+'T'&&(envArgs[a0_0x5d3f2d(0x16e)+a0_0x5d3f2d(0x1c1)+a0_0x5d3f2d(0x149)+'oxSec'+a0_0x5d3f2d(0x18d)]=value,process.env.CLICKUP_MCP_SANDBOX_SECRET=value);key==='CLICK'+a0_0x5d3f2d(0x165)+a0_0x5d3f2d(0x14d)+a0_0x5d3f2d(0x1bd)+a0_0x5d3f2d(0x1b5)+'YS'&&(envArgs['addit'+a0_0x5d3f2d(0x14c)+a0_0x5d3f2d(0x15d)+'ys']=value,process.env.CLICKUP_ADDITIONAL_API_KEYS=value);if(key==='PORT')envArgs['port']=value;if(key===a0_0x5d3f2d(0x163))envArgs[a0_0x5d3f2d(0x161)]=value;i++;}}export var LogLevel;(function(_0x46f610){const _0x53841b=a0_0x5d3f2d,_0x26fe74={'MNcEB':_0x53841b(0x183),'dyuBN':_0x53841b(0x1b6),'fSvvl':_0x53841b(0x17e),'MsbWU':'ERROR'};_0x46f610[_0x46f610[_0x26fe74['MNcEB']]=0x0]=_0x26fe74[_0x53841b(0x160)],_0x46f610[_0x46f610['DEBUG']=0x1]=_0x53841b(0x19c),_0x46f610[_0x46f610[_0x26fe74[_0x53841b(0x1bf)]]=0x2]=_0x53841b(0x1b6),_0x46f610[_0x46f610[_0x26fe74[_0x53841b(0x17a)]]=0x3]=_0x26fe74[_0x53841b(0x17a)],_0x46f610[_0x46f610[_0x26fe74[_0x53841b(0x18c)]]=0x4]=_0x26fe74[_0x53841b(0x18c)];}(LogLevel||(LogLevel={})));function a0_0x130b(){const _0x46d25e=['ChbVCNq','ntyYowDHt2rVva','vvbFtum','Dg9vCha','zLn2DMW','qu1Fsuq','Dg9mB3C','y29Tl2e','v0fstG','C2vlzxK','zw5HyMW','vvbFveu','ru5ux1m','vfjbq0u','C3nLug8','ls1LBNy','DhLoBfe','DgvNB3i','y2T1Cc4','q0Xjq0S','zw50u3u','zMLSDgu','txnIv1u','CMv0','u0vduKu','As5JBgK','ndK0mti2mvjpwNLvzG','zgLZywi','Bg9Ntgu','u3rKzxi','uf9qrvi','zw50ihy','ntKXmgPrEhHjzG','zxjdyxm','zvntrq','BgvZoIa','twLZC2K','BuLK','revcvuC','zw50u2u','DxbbCgK','AxjVBM0','B2XZ','v1rhDNa','u1nfx1a','zwrdyxq','uMXKELi','zvn0zgK','qvrfr08','CgvYC28','DMvS','Cg9YDa','zMfSC2u','zg9JDw0','rurFq0e','y3jLDa','ovHuu1f2AG','CxvPCMu','mtGXnZa4vLrMtxDz','zcbLBNy','AfjwuLe','mc4WlJa','Ahr0Chm','ueLFs0u','su5gtW','s0vz','tevex0m','sMzyCgu','CKDkqw8','uf9tqu4','DxbdBgK','tKfmx0e','ntu2ntaYEuHezgfO','zhL1qK4','Bg9Nvg8','Dxbny3a','rurFve8','rv9tu0u','rvjst1i','s2v5','CgKVDJi','qvLWrxm','ru5bqKW','u2fUzgi','tLLOEhK','AwvZ','Aw9UywW','reLusu8','otC2oe91AgnxEa','t09muW','zwDVCMK','te9hx0W','reLtqui','yxjNDG','DhjPBq','rejpwf8','BwfW','nJuXmdDfue9HEe4','vvbFqva','mtm4zLHhBevM','mZiZmq','nZbbwfLur2e','BgvUz3q','qxbPs2u','sv9lrvK','Dhj1zq','tu5Jrui','Ag9ZDa','nZu5nZy1C3zdrKfL','se9tva','oeXvAuTkAq','vvbFquq','uf9msum','Dxbuzwe','BgvKvg8','re9dvu0','Cc5JBgK','zwruB28','yxjPywi','vevht1i','y2XPy2S','tevex1q','uKLfuW','BgvKq2e','C2XPy2u','mti4nJrOzwn1sgC','C3bSAxq','zfjoqNG'];a0_0x130b=function(){return _0x46d25e;};return a0_0x130b();}const parseLogLevel=_0x429835=>{const _0xb0c081=a0_0x5d3f2d,_0x55aec5={'tyNlQ':_0xb0c081(0x183),'mcvNo':_0xb0c081(0x19c),'NYhxy':_0xb0c081(0x17e),'JfXpe':_0xb0c081(0x1c4)};if(!_0x429835)return LogLevel[_0xb0c081(0x1c4)];switch(_0x429835[_0xb0c081(0x179)+'erCas'+'e']()){case _0x55aec5[_0xb0c081(0x186)]:return LogLevel[_0xb0c081(0x183)];case _0x55aec5['mcvNo']:return LogLevel['DEBUG'];case'INFO':return LogLevel['INFO'];case _0x55aec5[_0xb0c081(0x14a)]:return LogLevel[_0xb0c081(0x17e)];case _0x55aec5[_0xb0c081(0x1b9)]:return LogLevel[_0xb0c081(0x1c4)];default:return LogLevel[_0xb0c081(0x1c4)];}},parseBoolean=(_0x2e7b8c,_0x324eb2)=>{const _0x22e568=a0_0x5d3f2d,_0x2b49d1={'rGJAo':function(_0x44ef22,_0x12d196){return _0x44ef22===_0x12d196;},'dRNBx':function(_0x5ae39c,_0x522d52){return _0x5ae39c===_0x522d52;},'hRVRQ':_0x22e568(0x15f)};if(_0x2b49d1[_0x22e568(0x1ba)](_0x2e7b8c,undefined))return _0x324eb2;return _0x2b49d1[_0x22e568(0x175)](_0x2e7b8c[_0x22e568(0x17c)+_0x22e568(0x197)+'e'](),_0x2b49d1[_0x22e568(0x1b2)]);},parseInteger=(_0x3ec852,_0x2990cb)=>{const _0x44417a=a0_0x5d3f2d,_0x7de3e8={'WTGvp':function(_0x1020d4,_0x5325d1){return _0x1020d4===_0x5325d1;},'RldzR':function(_0x2e13d1,_0x541609,_0xd69742){return _0x2e13d1(_0x541609,_0xd69742);}};if(_0x7de3e8[_0x44417a(0x1a1)](_0x3ec852,undefined))return _0x2990cb;const _0x441d81=_0x7de3e8[_0x44417a(0x1a4)](parseInt,_0x3ec852,0xa);return isNaN(_0x441d81)?_0x2990cb:_0x441d81;},parseCommaSeparated=(_0x23d5e6,_0x4690dc)=>{const _0xaaef0b=a0_0x5d3f2d;if(!_0x23d5e6)return _0x4690dc;return _0x23d5e6[_0xaaef0b(0x174)](',')[_0xaaef0b(0x156)](_0x175f7e=>_0x175f7e['trim']())[_0xaaef0b(0x18b)+'r'](_0x21741d=>_0x21741d!=='');},configuration={'clickupApiKey':envArgs[a0_0x5d3f2d(0x16e)+a0_0x5d3f2d(0x19e)+a0_0x5d3f2d(0x1c5)]||process.env.CLICKUP_API_KEY||'','clickupTeamId':envArgs[a0_0x5d3f2d(0x16e)+a0_0x5d3f2d(0x167)+'mId']||process.env.CLICKUP_TEAM_ID||'','documentSupport':envArgs[a0_0x5d3f2d(0x1ab)+a0_0x5d3f2d(0x18a)+'pport']||process.env.DOCUMENT_SUPPORT||process.env.DOCUMENT_MODULE||process.env.DOCUMENT_MODEL||a0_0x5d3f2d(0x1aa),'logLevel':parseLogLevel(envArgs[a0_0x5d3f2d(0x192)+'vel']||process.env.LOG_LEVEL),'logToStderr':parseBoolean(envArgs[a0_0x5d3f2d(0x1c0)+a0_0x5d3f2d(0x193)+'r']||process.env.LOG_TO_STDERR||process.env.RENDER,![]),'disabledTools':(envArgs['disab'+'ledTo'+a0_0x5d3f2d(0x1a0)]||process.env.DISABLED_TOOLS||process.env.DISABLED_COMMANDS)?.[a0_0x5d3f2d(0x174)](',')[a0_0x5d3f2d(0x156)](_0x1e948d=>_0x1e948d[a0_0x5d3f2d(0x154)]())[a0_0x5d3f2d(0x18b)+'r'](_0x2203ba=>_0x2203ba!=='')||[],'enabledTools':(envArgs[a0_0x5d3f2d(0x180)+a0_0x5d3f2d(0x16b)+'ls']||process.env.ENABLED_TOOLS)?.['split'](',')[a0_0x5d3f2d(0x156)](_0x536502=>_0x536502[a0_0x5d3f2d(0x154)]())[a0_0x5d3f2d(0x18b)+'r'](_0x4142a2=>_0x4142a2!=='')||[],'disabledCategories':parseCommaSeparated(envArgs[a0_0x5d3f2d(0x191)+a0_0x5d3f2d(0x171)+a0_0x5d3f2d(0x187)+'ies']||process.env.DISABLED_CATEGORIES,[]),'enabledCategories':parseCommaSeparated(envArgs[a0_0x5d3f2d(0x180)+a0_0x5d3f2d(0x1a3)+a0_0x5d3f2d(0x150)+'es']||process.env.ENABLED_CATEGORIES,[]),'enableSSE':parseBoolean(envArgs['enabl'+a0_0x5d3f2d(0x198)]||process.env.ENABLE_SSE||process.env.ENABLE_HTTP,![]),'ssePort':parseInteger(envArgs[a0_0x5d3f2d(0x184)+'rt']||process.env.SSE_PORT,0xbb8),'enableStdio':parseBoolean(envArgs[a0_0x5d3f2d(0x180)+a0_0x5d3f2d(0x1a5)+'o']||process.env.ENABLE_STDIO,!![]),'port':envArgs[a0_0x5d3f2d(0x1a9)]||process.env.PORT||a0_0x5d3f2d(0x15a),'persona':envArgs[a0_0x5d3f2d(0x1a7)+'na']||process.env.CLICKUP_MCP_PERSONA||'','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':parseCommaSeparated(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_0x5d3f2d(0x161)]||process.env.HOST||a0_0x5d3f2d(0x1b3)+'.0','clickupClientId':process.env.CLICKUP_CLIENT_ID,'clickupClientSecret':process.env.CLICKUP_CLIENT_SECRET,'mcpServerUrl':process.env.MCP_SERVER_URL,'redirectUriAllowlist':parseCommaSeparated(process.env.REDIRECT_URI_ALLOWLIST,[]),'clickupAppUrl':process.env.CLICKUP_APP_URL||a0_0x5d3f2d(0x1b4)+'://ap'+a0_0x5d3f2d(0x16a)+a0_0x5d3f2d(0x188)+'com','clickupApiUrl':process.env.CLICKUP_API_URL||a0_0x5d3f2d(0x1b4)+'://ap'+a0_0x5d3f2d(0x18f)+'ckup.'+a0_0x5d3f2d(0x17d)+a0_0x5d3f2d(0x1c6),'proxySecret':process.env.CLICKUP_PROXY_SECRET||'','additionalApiKeys':parseCommaSeparated(process.env.CLICKUP_ADDITIONAL_API_KEYS,[])};export const validateConfiguration=()=>{const _0x3bf2f0=a0_0x5d3f2d,_0x4d8bf9={'BrNwn':_0x3bf2f0(0x16e)+'upApi'+_0x3bf2f0(0x1c5),'AYpEs':_0x3bf2f0(0x16e)+_0x3bf2f0(0x167)+_0x3bf2f0(0x19b)},_0x4e3786=[_0x4d8bf9['BrNwn'],_0x4d8bf9[_0x3bf2f0(0x1c7)]],_0x5c82a8=_0x4e3786[_0x3bf2f0(0x18b)+'r'](_0x11666e=>!configuration[_0x11666e]);if(_0x5c82a8['lengt'+'h']>0x0){const _0x50f2e5=!!(configuration[_0x3bf2f0(0x16e)+_0x3bf2f0(0x1bc)+'entId']&&configuration['click'+_0x3bf2f0(0x1bc)+_0x3bf2f0(0x19d)+_0x3bf2f0(0x1ad)]),_0xc363e8=!!process.env.CLICKUP_MCP_LICENSE_KEY;if(configuration[_0x3bf2f0(0x180)+_0x3bf2f0(0x198)]||_0x50f2e5||_0xc363e8){}else throw new Error(_0x3bf2f0(0x19a)+'ng\x20re'+_0x3bf2f0(0x1af)+_0x3bf2f0(0x1b1)+_0x3bf2f0(0x19f)+_0x3bf2f0(0x195)+_0x3bf2f0(0x16c)+_0x3bf2f0(0x199)+_0x5c82a8['join'](',\x20'));}};export default configuration;