@taazkareem/clickup-mcp-server 0.14.4 → 0.14.5

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 +205 -116
  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 +1 -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
 
@@ -102,9 +104,9 @@ A license grants full, unrestricted access to all features across your agents⎯
102
104
 
103
105
  <br>
104
106
 
105
- | [**Monthly**](https://buy.polar.sh/polar_cl_3xQojQLgzQXKCLzsxc49YfL6z8hzSBBqh9ivy1qZdwW?utm_source=github&utm_medium=readme) $9/mo | [**Annual**](https://buy.polar.sh/polar_cl_3a8a3055T4CHIoVlSQPsNshOJLUwsM8AHAiIR3y9wTZ?utm_source=github&utm_medium=readme) $59/yr | [**Lifetime**](https://buy.polar.sh/polar_cl_4ha3uVyJTu4iPZJS1QbBYNTI1MKTvaXXCkZTb45vPPF?utm_source=github&utm_medium=readme) <!--LIFETIME_HEADER-->$119<!--/LIFETIME_HEADER--> |
107
+ | [**Monthly**](https://buy.polar.sh/polar_cl_3xQojQLgzQXKCLzsxc49YfL6z8hzSBBqh9ivy1qZdwW?utm_source=github&utm_medium=readme) $9/mo | [**Annual**](https://buy.polar.sh/polar_cl_3a8a3055T4CHIoVlSQPsNshOJLUwsM8AHAiIR3y9wTZ?utm_source=github&utm_medium=readme) $59/yr | [**Lifetime**](https://buy.polar.sh/polar_cl_4ha3uVyJTu4iPZJS1QbBYNTI1MKTvaXXCkZTb45vPPF?utm_source=github&utm_medium=readme) <!--LIFETIME_HEADER-->$89 w/ code<!--/LIFETIME_HEADER--> |
106
108
  | :--------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
107
- | • Pay-as-you-go flexibility<br>• 3 device activations<br>• Cancel anytime | • **Save 45%** ($4.92/mo)<br>• 3 device activations<br>• Priority support all year | • **Best Value** — One payment<br>• 3 device activations<br>• <!--LIFETIME_DETAIL-->Unlocked Forever<!--/LIFETIME_DETAIL--> |
109
+ | • Pay-as-you-go flexibility<br>• 3 device activations<br>• Cancel anytime | • **Save 45%** ($4.92/mo)<br>• 3 device activations<br>• Priority support all year | • **Best Value** — One payment<br>• 3 device activations<br>• <!--LIFETIME_DETAIL-->**25% OFF** code: `AUG25`<!--/LIFETIME_DETAIL--> |
108
110
 
109
111
  <br>
110
112
 
@@ -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_0x2a09ff=a0_0x18eb;function a0_0x1a71(){const _0x519320=['odDUtePkuNi','yxjHBwu','BNnLx3q','CMvKAxi','y29Kzq','yMfJAYa','DgvY','rIbKzxq','Aw9Ux2m','Aw5MBW','zxHJAge','CxvLCNK','CMvJzwK','lcbYzxq','yxrL','igzVCIa','v2HPBeG','mJKYntiWzuTvuevk','BsbdBgK','zcb0BYa','mtiXndrOCMXwAeq','zw50swq','ywnJzxm','AwrFz3i','CYbMB3i','C2LNBMe','Dg9tDhi','otC2oejuEwLvzG','AwD1CMe','Evblq0u','t0f1DgG','y3rFDxi','C3qGkfa','zxjYB3i','ueTdrq','DxbdBgK','BMDLigy','DgHVCMK','CM94Eum','Ahr0Chm','ifrVA2u','yxv0Ag8','Ac9YzwC','x3n0yxq','C190B2S','yxrLiha','BMDLihq','twLZC2K','DxrOx3m','zwn0x3u','DxbbCha','BNqGsuq','BvHJwKu','z2v0','qK1sr1a','l2fWAq','nZe2oda5mhbTqKriwG','mtrmue1Muha','BMfSx3m','vxjS','DgLVBG','l29HDxq','y2XPzw4','ihrLyw0','yxrPB24','z1DXue4','BNrPywW','CML6yxq','DguGBwK','yxnLihq','AwvUDca','C3bvBee','B3qGywW','B3n0','zw5Nzq','q29VA2K','sw52ywW','y2XPy2S','mZvOBwjOufa','C3rHDgu','CMv0','CMLZigK','Dc1Ty3a','AwnHDgK','Bwv0Ag8','z2vUzxi','DMvK','y29UzMK','zxn0icG','BgvUz3q','CMvJDca','y29Kzv8','Ec1MB3i','zsbVCIa','AwqGy2W','AcbZDge','odC1mZCWrvDXtLLe','AwqGq2W','AwXLza','mZi2mZjXz0rHB0K','BMzIt3y','zc1WCM8','AwvUDf8','AgvHzgu','EMf0Aw8','zwnVzgu','wfvLCKG','Axn0CMe','Df9Pza','Aw5N','ignHBgW','ANnVBG','vxbZDhi','tunqiem','rMfPBgu','CMvXDwu','B2TPzq','C2vHCMm','ientuKy','B3H5iem','D2fYBG','Ag9YAxO','B3jPz2K','CYbYzxe','CMv0x3a','ywLSDxi','uMvQzwm','CM94EsK','D2fYzgu','BgjHy2S','B3v0ig8','yxbWzw4','s3bysfG','zgrPBMC','C21HDgm','DxbbCgK','AMrmtvG','BwnWu2u','Dg9Rzw4','C3vJy2u','zMfPBgu','C3rHDhu','B24GzMe','zwfTihq','ie9bDxq','C3nPB24','Ce9Zvxq','Bg93zwq','ExbL','BwnWx2e','AcbVCIa','BMfSx3i','DgvHBxm','ywLUlG','DxjUAw4','zgf0yq','BwrHD2i','ywXOB3m','BMDLvg8','Dhzfq3a','zwn0zwq','zYbYyxC','BwvZC2e','zdOGC2u','ihrVA2u','DwLYzwq','Dgf0zq','AfbHCMe','Aw52ywW','zxn0','yxrLuhi','zwn0','yw50','C2vUza','ienSAwu','C2vSzwm','EunSAwu','zw5Nzv8','AgfUz2u','mtbOu2rIvwG','AwrFy2W','igvTyMu','Dg5fuvO','CMvZCg8','yxrH','ifjLzgK','yxrLu2K','y2TvCa','AwqGC3q','B2rL','zMv0y2G','rw1Izwq','ounKvxjTBW','ignVBMy','oIbZDge','mty0nda0ntb3CfbKy3e','DgLVBIa','ihn0yxq','Bwv0ywq','Axn0zxi','ueTdrsa','AwnRvxa','sLPoBMq','BwLZC2K','Aw9UoIa','A2vUv2K','D2L0Aca','BIbJB2q','y3jLzgu','EgLPzui','yM9KEq','y29VA2K','Ac9JywW','CIbdu1i','CNKGywC','D29YA3m','x2f1DgG','BNrjza','lY9SB2m','y2XLyxi','DgvK','suqGB3i','B3jPEMe','DgHdBgK','BMCGy28','q29Kzq','ihjLCxu','Cg9ZDa','u2vJCMu','mtiWnJrLwxf2AMi','DKPZB2i','AwvUDa','uhjVEhK','Ew1OvLa','BgLLBNq','zwX0wMO','DxbZDhi','DMvYAwy','x19iB3m','BNrtzwm','BfL0seK','yLPLy1e','uM91Dgu','zwfTiha','AwvYigK','C2vJDxi','u2vYDMu'];a0_0x1a71=function(){return _0x519320;};return a0_0x1a71();}(function(_0x4a258a,_0x27855e){const _0x5dc3c5=a0_0x18eb,_0x52b3a5=_0x4a258a();while(!![]){try{const _0x2a3d07=parseInt(_0x5dc3c5(0x1b5))/0x1*(-parseInt(_0x5dc3c5(0x200))/0x2)+parseInt(_0x5dc3c5(0x1c7))/0x3*(parseInt(_0x5dc3c5(0x22a))/0x4)+parseInt(_0x5dc3c5(0x27a))/0x5*(parseInt(_0x5dc3c5(0x227))/0x6)+parseInt(_0x5dc3c5(0x215))/0x7*(-parseInt(_0x5dc3c5(0x1d8))/0x8)+-parseInt(_0x5dc3c5(0x287))/0x9*(-parseInt(_0x5dc3c5(0x1ff))/0xa)+-parseInt(_0x5dc3c5(0x1db))/0xb*(-parseInt(_0x5dc3c5(0x1e2))/0xc)+-parseInt(_0x5dc3c5(0x28a))/0xd;if(_0x2a3d07===_0x27855e)break;else _0x52b3a5['push'](_0x52b3a5['shift']());}catch(_0x30ddb9){_0x52b3a5['push'](_0x52b3a5['shift']());}}}(a0_0x1a71,0x9564a));import a0_0x22db5b from'express';import a0_0x24001f from'../config.js';import{Logger}from'../logger.js';import{OAuthService}from'../services/oauth.js';import{clearTokenCache}from'../middleware/auth.js';import a0_0x49f869 from'axios';const router=a0_0x22db5b['Route'+'r'](),logger=new Logger(a0_0x2a09ff(0x1e5)+a0_0x2a09ff(0x1c2)+'s');import{createAuthRateLimitMiddleware}from'../middleware/security.js';const createAuthRateLimit=createAuthRateLimitMiddleware(),OAUTH_TOKEN_EXPIRY_HINT_SECONDS=0x1e*0x18*0x3c*0x3c,serverUrl=a0_0x24001f[a0_0x2a09ff(0x250)+'rverU'+'rl']||'http:'+a0_0x2a09ff(0x2a1)+a0_0x2a09ff(0x264)+'t:'+(a0_0x24001f['port']||0xc9f);function a0_0x18eb(_0x1fabce,_0x694897){_0x1fabce=_0x1fabce-0x1b0;const _0x1a711a=a0_0x1a71();let _0x18ebb4=_0x1a711a[_0x1fabce];if(a0_0x18eb['EuQwKc']===undefined){var _0x3d5a86=function(_0x14cd71){const _0x5aac78='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xe3a66e='',_0x2c1dd3='';for(let _0x49cbaa=0x0,_0x18233a,_0x1b447e,_0x4fb0d7=0x0;_0x1b447e=_0x14cd71['charAt'](_0x4fb0d7++);~_0x1b447e&&(_0x18233a=_0x49cbaa%0x4?_0x18233a*0x40+_0x1b447e:_0x1b447e,_0x49cbaa++%0x4)?_0xe3a66e+=String['fromCharCode'](0xff&_0x18233a>>(-0x2*_0x49cbaa&0x6)):0x0){_0x1b447e=_0x5aac78['indexOf'](_0x1b447e);}for(let _0x3bf304=0x0,_0xe01421=_0xe3a66e['length'];_0x3bf304<_0xe01421;_0x3bf304++){_0x2c1dd3+='%'+('00'+_0xe3a66e['charCodeAt'](_0x3bf304)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2c1dd3);};a0_0x18eb['otEQVc']=_0x3d5a86,a0_0x18eb['TvnLvu']={},a0_0x18eb['EuQwKc']=!![];}const _0x17c6e6=_0x1a711a[0x0],_0x54b216=_0x1fabce+_0x17c6e6,_0x117586=a0_0x18eb['TvnLvu'][_0x54b216];return!_0x117586?(_0x18ebb4=a0_0x18eb['otEQVc'](_0x18ebb4),a0_0x18eb['TvnLvu'][_0x54b216]=_0x18ebb4):_0x18ebb4=_0x117586,_0x18ebb4;}router['post'](a0_0x2a09ff(0x204)+a0_0x2a09ff(0x1f1)+a0_0x2a09ff(0x28e),createAuthRateLimit,(_0xfa0782,_0x8ceda6)=>{const _0x407df4=a0_0x2a09ff,_0xd80104={'EQMGC':'OAuth'+_0x407df4(0x275)+'nt\x20Re'+'gistr'+_0x407df4(0x207)+'\x20requ'+_0x407df4(0x270),'QukmL':_0x407df4(0x26f)+'id_cl'+_0x407df4(0x22d)+_0x407df4(0x28d)+'ata','bZecQ':'redir'+_0x407df4(0x1f8)+_0x407df4(0x218)+_0x407df4(0x242)+_0x407df4(0x26c),'mdawb':_0x407df4(0x1cb)},{client_name:_0x4c2cb6,redirect_uris:_0x1708aa}=_0xfa0782[_0x407df4(0x299)];logger[_0x407df4(0x1d0)](_0xd80104['EQMGC'],{'client_name':_0x4c2cb6,'redirect_uris':_0x1708aa});if(!_0x1708aa||!Array['isArr'+'ay'](_0x1708aa)||_0x1708aa[_0x407df4(0x220)+'h']===0x0){_0x8ceda6[_0x407df4(0x254)+'s'](0x190)['json']({'error':_0xd80104['QukmL'],'error_description':_0xd80104[_0x407df4(0x1c1)]});return;}try{const {clientId:_0x5bac4a,clientSecret:_0x4ab46f}=OAuthService[_0x407df4(0x21c)+_0x407df4(0x281)+'gnedC'+_0x407df4(0x1ba)+'Id'](_0x1708aa);_0x8ceda6[_0x407df4(0x254)+'s'](0xc9)['json']({'client_id':_0x5bac4a,'client_secret':_0x4ab46f,'client_name':_0x4c2cb6||_0x407df4(0x238)+'lient','redirect_uris':_0x1708aa,'grant_types':[_0x407df4(0x1f0)+_0x407df4(0x20a)+_0x407df4(0x1cf)+'ode'],'response_types':[_0xd80104[_0x407df4(0x263)]],'token_endpoint_auth_method':_0x407df4(0x205)+'t_sec'+_0x407df4(0x243)+_0x407df4(0x210)});}catch(_0x40f88f){logger[_0x407df4(0x23f)]('Clien'+'t\x20Reg'+_0x407df4(0x232)+_0x407df4(0x28b)+_0x407df4(0x245)+_0x407df4(0x2a3),{'error':_0x40f88f[_0x407df4(0x269)+'ge'],'redirect_uris':_0x1708aa}),_0x8ceda6['statu'+'s'](0x190)[_0x407df4(0x236)]({'error':'inval'+'id_cl'+_0x407df4(0x22d)+_0x407df4(0x28d)+_0x407df4(0x27f),'error_description':_0x40f88f[_0x407df4(0x269)+'ge']});}}),router[a0_0x2a09ff(0x1fc)](a0_0x2a09ff(0x204)+'h/aut'+a0_0x2a09ff(0x240)+'e',createAuthRateLimit,(_0x1bba3e,_0x188eb5)=>{const _0x2fc032=a0_0x2a09ff,_0x2e2096={'lYtHI':'OAuth'+'\x20Auth'+_0x2fc032(0x2a5)+_0x2fc032(0x28b)+_0x2fc032(0x23a)+_0x2fc032(0x1e7)+_0x2fc032(0x246),'nfbOv':'Inval'+_0x2fc032(0x228)+_0x2fc032(0x20d)+_0x2fc032(0x2a4)+_0x2fc032(0x280)+_0x2fc032(0x221)+'URI\x20n'+_0x2fc032(0x20f)+_0x2fc032(0x25a),'tvECp':_0x2fc032(0x1c6)+'r\x20Mis'+_0x2fc032(0x21e)+'gurat'+_0x2fc032(0x293)+'Missi'+'ng\x20Cl'+_0x2fc032(0x290)+_0x2fc032(0x275)+'nt\x20ID','XUerH':_0x2fc032(0x1ca)+_0x2fc032(0x1f8)+'ri','xmqCI':_0x2fc032(0x27e)+_0x2fc032(0x1c9)+_0x2fc032(0x25b),'KpXHX':function(_0x33de4a,_0x2db0e9){return _0x33de4a===_0x2db0e9;},'nAQzX':_0x2fc032(0x223)+_0x2fc032(0x247)+_0x2fc032(0x22c)+'to','WhilH':'lax','BMRGP':function(_0x4cc9be,_0x556f98){return _0x4cc9be*_0x556f98;}},{response_type:_0x2b5fa7,client_id:_0x13893c,redirect_uri:_0x28bb76,state:_0xa9f4f6,code_challenge:_0x1c5cc6,code_challenge_method:_0x248a32}=_0x1bba3e['query'];logger[_0x2fc032(0x1d0)](_0x2e2096[_0x2fc032(0x1c0)],{'response_type':_0x2b5fa7,'client_id':_0x13893c,'redirect_uri':_0x28bb76,'state':_0xa9f4f6});if(_0x13893c&&!OAuthService[_0x2fc032(0x1bd)+_0x2fc032(0x277)+_0x2fc032(0x2a0)](_0x13893c,_0x28bb76)){_0x188eb5[_0x2fc032(0x254)+'s'](0x191)['send'](_0x2e2096[_0x2fc032(0x22b)]);return;}const _0x2ea3a5=a0_0x24001f[_0x2fc032(0x214)+_0x2fc032(0x1ea)+_0x2fc032(0x1dc)];if(!_0x2ea3a5){logger[_0x2fc032(0x1e8)]('Missi'+'ng\x20Cl'+_0x2fc032(0x290)+_0x2fc032(0x275)+_0x2fc032(0x1fa)+'\x20in\x20s'+'erver'+_0x2fc032(0x288)+_0x2fc032(0x1e3)+_0x2fc032(0x203)),_0x188eb5[_0x2fc032(0x254)+'s'](0x1f4)[_0x2fc032(0x274)](_0x2e2096[_0x2fc032(0x266)]);return;}const _0x4e3e2c=OAuthService[_0x2fc032(0x21c)+_0x2fc032(0x271)+'oxySt'+_0x2fc032(0x1d5)](_0x28bb76,_0xa9f4f6,_0x1c5cc6,_0x248a32),_0xd76b6e=new URL(a0_0x24001f[_0x2fc032(0x214)+_0x2fc032(0x1f9)+_0x2fc032(0x202)]+_0x2fc032(0x1fe));_0xd76b6e['searc'+_0x2fc032(0x26e)+'ms'][_0x2fc032(0x24a)+'d']('clien'+_0x2fc032(0x233),_0x2ea3a5),_0xd76b6e['searc'+_0x2fc032(0x26e)+'ms'][_0x2fc032(0x24a)+'d'](_0x2e2096[_0x2fc032(0x231)],serverUrl+(_0x2fc032(0x204)+_0x2fc032(0x29b)+_0x2fc032(0x248))),_0xd76b6e[_0x2fc032(0x23c)+_0x2fc032(0x26e)+'ms'][_0x2fc032(0x24a)+'d'](_0x2e2096['xmqCI'],'code'),_0xd76b6e[_0x2fc032(0x23c)+_0x2fc032(0x26e)+'ms'][_0x2fc032(0x24a)+'d'](_0x2fc032(0x216),_0x4e3e2c);const _0x458b80=_0x1bba3e[_0x2fc032(0x1c5)+'e']||_0x2e2096[_0x2fc032(0x24b)](_0x1bba3e[_0x2fc032(0x22e)+'rs'][_0x2e2096['nAQzX']],_0x2fc032(0x1ee)),_0x4c9e01=_0x458b80?_0x2fc032(0x1be)+_0x2fc032(0x219)+_0x2fc032(0x29f)+_0x2fc032(0x1f2)+'e':_0x2fc032(0x25c)+_0x2fc032(0x1f7)+_0x2fc032(0x26d);_0x188eb5[_0x2fc032(0x29a)+'e'](_0x4c9e01,_0x4e3e2c,{'httpOnly':!![],'secure':_0x458b80,'sameSite':_0x2e2096[_0x2fc032(0x1d7)],'maxAge':_0x2e2096[_0x2fc032(0x1fd)](0xf,0x3c)*0x3e8,'path':'/'}),_0x188eb5[_0x2fc032(0x1ca)+'ect'](_0xd76b6e['toStr'+_0x2fc032(0x234)]());}),router[a0_0x2a09ff(0x1fc)](a0_0x2a09ff(0x204)+a0_0x2a09ff(0x29b)+a0_0x2a09ff(0x248),createAuthRateLimit,(_0x221172,_0x2b007d)=>{const _0x901cb3=a0_0x2a09ff,_0x3cad3e={'vJsob':_0x901cb3(0x223)+_0x901cb3(0x247)+_0x901cb3(0x22c)+'to','gWqPN':_0x901cb3(0x25c)+_0x901cb3(0x1f7)+_0x901cb3(0x26d),'jdLMX':function(_0xef0179,_0x30b5da){return _0xef0179!==_0x30b5da;},'ymhVP':function(_0x450b60,_0x5acde7){return _0x450b60===_0x5acde7;},'bYReQ':'Authe'+'ntica'+'tion\x20'+_0x901cb3(0x253)+_0x901cb3(0x26a)+_0x901cb3(0x258)+'\x20time'+_0x901cb3(0x249)+_0x901cb3(0x29c)+_0x901cb3(0x1ce)+_0x901cb3(0x267)+'.\x20Ple'+_0x901cb3(0x20c)+_0x901cb3(0x29d)+_0x901cb3(0x260),'tnEQZ':_0x901cb3(0x1cb),'eltZj':_0x901cb3(0x216),'pOsUt':'Faile'+_0x901cb3(0x1da)+'parse'+_0x901cb3(0x257)+_0x901cb3(0x226)+'te'},{code:_0x3054e9,state:_0x26e0e1}=_0x221172[_0x901cb3(0x1d2)];if(!_0x3054e9||!_0x26e0e1){_0x2b007d[_0x901cb3(0x254)+'s'](0x190)[_0x901cb3(0x274)](_0x901cb3(0x1f6)+_0x901cb3(0x1b0)+'de\x20or'+_0x901cb3(0x28c)+'e\x20fro'+_0x901cb3(0x1d9)+_0x901cb3(0x282));return;}logger[_0x901cb3(0x1d0)](_0x901cb3(0x1e5)+_0x901cb3(0x235)+_0x901cb3(0x1cc)+_0x901cb3(0x1d3)+_0x901cb3(0x21d),{'query':_0x221172[_0x901cb3(0x1d2)]});const _0x5b4fb3=_0x221172[_0x901cb3(0x1c5)+'e']||_0x221172[_0x901cb3(0x22e)+'rs'][_0x3cad3e[_0x901cb3(0x1b6)]]==='https',_0x2d3a02=_0x5b4fb3?_0x901cb3(0x1be)+_0x901cb3(0x219)+'_auth'+_0x901cb3(0x1f2)+'e':_0x3cad3e[_0x901cb3(0x208)],_0x3578d6=_0x221172[_0x901cb3(0x29a)+'es']?.[_0x2d3a02];if(!_0x3578d6||_0x3cad3e[_0x901cb3(0x24f)](_0x3578d6,_0x26e0e1)){logger['warn'](_0x901cb3(0x1e5)+_0x901cb3(0x23d)+'\x20dete'+'ction'+_0x901cb3(0x289)+_0x901cb3(0x20b)+_0x901cb3(0x24d)+_0x901cb3(0x25d)+_0x901cb3(0x292)+_0x901cb3(0x1b0)+_0x901cb3(0x23b),{'hasCookie':!!_0x3578d6,'cookieName':_0x2d3a02,'stateMatch':_0x3cad3e[_0x901cb3(0x1b9)](_0x3578d6,_0x26e0e1)}),_0x2b007d['statu'+'s'](0x193)[_0x901cb3(0x274)](_0x3cad3e['bYReQ']);return;}_0x2b007d[_0x901cb3(0x2a2)+_0x901cb3(0x212)+'e'](_0x2d3a02,{'path':'/'});try{const _0x471ec3=OAuthService['decod'+'eProx'+'yStat'+'e'](_0x26e0e1),_0x245177=new URL(_0x471ec3[_0x901cb3(0x241)+_0x901cb3(0x25e)+'edire'+_0x901cb3(0x1e6)+'i']),_0x4a5656=OAuthService[_0x901cb3(0x21c)+_0x901cb3(0x281)+'gnedP'+_0x901cb3(0x1ed)+_0x901cb3(0x284)](_0x3054e9,_0x471ec3[_0x901cb3(0x222)+'chall'+_0x901cb3(0x211)],_0x471ec3[_0x901cb3(0x222)+'chall'+_0x901cb3(0x278)+_0x901cb3(0x21b)+'d']);_0x245177['searc'+_0x901cb3(0x26e)+'ms'][_0x901cb3(0x24a)+'d'](_0x3cad3e[_0x901cb3(0x27d)],_0x4a5656),_0x245177['searc'+'hPara'+'ms'][_0x901cb3(0x24a)+'d'](_0x3cad3e[_0x901cb3(0x1bb)],_0x471ec3[_0x901cb3(0x241)+_0x901cb3(0x201)+_0x901cb3(0x26d)]),_0x2b007d[_0x901cb3(0x1ca)+_0x901cb3(0x272)](_0x245177[_0x901cb3(0x1e1)+_0x901cb3(0x234)]());}catch(_0x5a9100){logger[_0x901cb3(0x1e8)](_0x3cad3e[_0x901cb3(0x259)],_0x5a9100),_0x2b007d[_0x901cb3(0x254)+'s'](0x190)[_0x901cb3(0x274)](_0x901cb3(0x213)+_0x901cb3(0x283)+_0x901cb3(0x1f4)+_0x901cb3(0x1c8)+_0x901cb3(0x1cd));}}),router[a0_0x2a09ff(0x1b3)](a0_0x2a09ff(0x204)+'h/tok'+'en',createAuthRateLimit,async(_0x5e8493,_0x1c3890)=>{const _0x2e652e=a0_0x2a09ff,_0x377c9f={'spUlA':_0x2e652e(0x1e5)+_0x2e652e(0x1ef)+'n\x20Exc'+_0x2e652e(0x279)+_0x2e652e(0x1b2)+_0x2e652e(0x21f)+'Proxy'+')','mXcZE':_0x2e652e(0x213)+_0x2e652e(0x228)+_0x2e652e(0x20d)+_0x2e652e(0x1b4)+'t','pEoyF':_0x2e652e(0x213)+'id\x20Pr'+_0x2e652e(0x23e)+_0x2e652e(0x284),'JZNnd':'inval'+'id_gr'+_0x2e652e(0x273),'xiieB':'PKCE\x20'+'verif'+'icati'+_0x2e652e(0x255)+_0x2e652e(0x229),'xUlHl':function(_0x224b2e,_0x4ec2de){return _0x224b2e(_0x4ec2de);},'vEFiP':_0x2e652e(0x239)+'d\x20to\x20'+_0x2e652e(0x1d1)+_0x2e652e(0x1f5)+'oken\x20'+_0x2e652e(0x295)+_0x2e652e(0x1bc)+_0x2e652e(0x1c3)+'rovid'+'er'},{grant_type:_0x18435c,code:_0x2836fa,redirect_uri:_0xbde145,client_id:_0x16e3b0,client_secret:_0x3c37c1,code_verifier:_0x518ad4}=_0x5e8493[_0x2e652e(0x299)];logger[_0x2e652e(0x1d0)](_0x377c9f[_0x2e652e(0x20e)],{'grant_type':_0x18435c,'client_id':_0x16e3b0});if(_0x16e3b0&&_0x3c37c1){if(!OAuthService[_0x2e652e(0x1bd)+_0x2e652e(0x277)+_0x2e652e(0x1bf)+_0x2e652e(0x217)](_0x16e3b0,_0x3c37c1)){logger[_0x2e652e(0x23f)](_0x377c9f[_0x2e652e(0x1fb)],{'client_id':_0x16e3b0}),_0x1c3890['statu'+'s'](0x191)['json']({'error':_0x2e652e(0x26f)+_0x2e652e(0x27b)+_0x2e652e(0x1b7),'error_description':_0x2e652e(0x213)+_0x2e652e(0x225)+_0x2e652e(0x20d)+_0x2e652e(0x297)+_0x2e652e(0x209)+'s'});return;}}const _0x1312d7=OAuthService[_0x2e652e(0x1bd)+'yAndD'+_0x2e652e(0x230)+_0x2e652e(0x1b8)+_0x2e652e(0x1b1)](_0x2836fa);if(!_0x1312d7){logger[_0x2e652e(0x23f)](_0x377c9f['pEoyF'],{'code':_0x2836fa}),_0x1c3890[_0x2e652e(0x254)+'s'](0x190)[_0x2e652e(0x236)]({'error':_0x2e652e(0x26f)+_0x2e652e(0x1de)+_0x2e652e(0x273),'error_description':_0x2e652e(0x213)+'id\x20au'+_0x2e652e(0x1ec)+_0x2e652e(0x22f)+_0x2e652e(0x296)+_0x2e652e(0x224)+_0x2e652e(0x1e0)+'ture'});return;}if(!_0x518ad4){_0x1c3890['statu'+'s'](0x190)['json']({'error':_0x2e652e(0x26f)+_0x2e652e(0x1de)+_0x2e652e(0x273),'error_description':_0x2e652e(0x222)+'verif'+_0x2e652e(0x1c4)+_0x2e652e(0x242)+_0x2e652e(0x26c)+_0x2e652e(0x1d6)+_0x2e652e(0x1e9)});return;}if(!OAuthService['verif'+_0x2e652e(0x1e4)](_0x518ad4,_0x1312d7['hc'],_0x1312d7['hm'])){logger[_0x2e652e(0x23f)](_0x2e652e(0x28f)+_0x2e652e(0x1bd)+_0x2e652e(0x21a)+_0x2e652e(0x255)+_0x2e652e(0x229),{'clickUpCode':_0x1312d7['c'],'verifier':_0x518ad4}),_0x1c3890['statu'+'s'](0x190)[_0x2e652e(0x236)]({'error':_0x377c9f[_0x2e652e(0x291)],'error_description':_0x377c9f[_0x2e652e(0x298)]});return;}const _0x47d869=await OAuthService[_0x2e652e(0x1d1)+_0x2e652e(0x265)+_0x2e652e(0x294)+_0x2e652e(0x2a6)+'ckUp'](_0x1312d7['c']);if(_0x47d869[_0x2e652e(0x252)+'ss']){const _0xecaafa=_0x47d869[_0x2e652e(0x262)][_0x2e652e(0x1dd)+_0x2e652e(0x1f3)+'en'];_0x377c9f['xUlHl'](clearTokenCache,_0xecaafa);try{const _0x38fa9d=await a0_0x49f869[_0x2e652e(0x1fc)](a0_0x24001f[_0x2e652e(0x214)+_0x2e652e(0x24e)+_0x2e652e(0x202)]+'/team',{'headers':{'Authorization':_0xecaafa},'timeout':0x2710}),_0x4bbf8c=_0x38fa9d['data']?.[_0x2e652e(0x25f)]||[];if(_0x4bbf8c[_0x2e652e(0x220)+'h']>0x0){const _0x485e24=_0x4bbf8c['map'](_0x43f084=>String(_0x43f084['id'])),_0x301e0f=_0x485e24['join'](','),_0x571370=_0x301e0f+':'+_0xecaafa;logger['info'](_0x2e652e(0x286)+'ding\x20'+_0x2e652e(0x29e)+'pace\x20'+_0x2e652e(0x276)+'tion\x20'+'into\x20'+_0x2e652e(0x251),{'count':_0x485e24[_0x2e652e(0x220)+'h'],'confirmedIds':_0x301e0f}),_0x1c3890[_0x2e652e(0x236)]({..._0x47d869[_0x2e652e(0x262)],'access_token':_0x571370,'expires_in':OAUTH_TOKEN_EXPIRY_HINT_SECONDS,'first_team_id':_0x485e24[0x0],'all_team_ids':_0x485e24});return;}}catch(_0x135946){logger[_0x2e652e(0x23f)](_0x2e652e(0x239)+_0x2e652e(0x1da)+_0x2e652e(0x285)+_0x2e652e(0x206)+_0x2e652e(0x1df)+_0x2e652e(0x27c)+_0x2e652e(0x24c)+_0x2e652e(0x1d4)+_0x2e652e(0x261)+_0x2e652e(0x268)+_0x2e652e(0x26b)+'n',{'error':_0x135946[_0x2e652e(0x269)+'ge']});}_0x1c3890[_0x2e652e(0x236)](_0x47d869['data']);}else logger['error'](_0x2e652e(0x237)+_0x2e652e(0x256)+'oken\x20'+_0x2e652e(0x1d1)+_0x2e652e(0x1eb)+_0x2e652e(0x244)+'e',{'error':_0x47d869[_0x2e652e(0x1e8)]}),_0x1c3890[_0x2e652e(0x254)+'s'](0x1f4)['json']({'error':_0x377c9f['vEFiP'],'details':_0x47d869[_0x2e652e(0x1e8)]});});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_0x837d(){const _0x5477b8=['Fdj8mq','uf9qrvi','twLZC2K','CMv0','Aw9UywW','yxjPywi','zw50swq','mtbTyG','tevex0m','BgvUz3q','C3nLug8','CgKVDJi','zxjdyxm','Dg9vCha','BwfW','yKjVD1y','As5JBgK','zcbLBNy','uf9tqu4','mte2nJe5Be1YD1fJ','su5gtW','y2T1Cc4','t1ju','rvjst1i','wKLore0','Ag9ZDa','Dxbuzwe','Dhj1zq','mZiZmq','y29Tl2e','zvntrq','u09oqq','C2XPy2u','s2v5','mJeWnde5meL4BhLuwG','y3jLDa','BMCGCMu','zMfSC2u','ue9sva','zw50u2u','nJuWmdy5mwfRAwrnwG','tgLJzw4','DMvS','sv9lrvK','t0Xt','rvzfta','t09muW','DgvNB3i','C3bSAxq','BgvZoIa','mJrfAfjTBeq','u0vduKu','Ahr0Chm','vuTztNu','ndyXmJeXmvnRrMHTCa','ru5trv8','ChbVCNq','ueLFs0u','Dxbny3a','s0vz','vvbFqva','Bg9Nvg8','rv9tu0u','mJi5nte1zg9Xvhnw','Bg9Ntgu','q0Xjq0S','zg9JDw0','CgvYC28','ru5ux1m','vvbFveu','BuLK','nMvtqu9ouW','DhjPBq','DxbbCgK','vvbqt1i','BgvKq2e','BgvKvg8','zMLSDgu','rv9tveq','zwruB28','uNDkCha','suvt','v3DcD1u','se9tva','vfjbq0u','u3rKzxi','vvbFtum','v0fstG','y2XPy2S','ogrWBeT4tq','zw5HyMW','r1vYA28','mtu4z0DLvhLb','nZa1odu1v0zOBvP3','zwrdyxq','ls1LBNy','zwDVCMK','u1nfx1a','CxvPCMu','qu1Fsuq','qwjNz2e','AxjVBM0','revcvuC','uKLfuW','B2XZ','u2fUzgi','qvrfr08','oI8Vyxa','u2TyEeu','re9dvu0','Cc5JBgK','vevht1i','nJuWne5dDvn6zG','te9hx0W','rurFve8','AM9PBG','ru5bqKW','zw50u3u','yxjNDG','ywrKAxq','tevex1q','AwvZ','zvn0zgK','mta4C1DVthrx','C2vlzxK','zgLZywi','reLtqui'];a0_0x837d=function(){return _0x5477b8;};return a0_0x837d();}const a0_0x4bf0c7=a0_0x285b;(function(_0x10b09f,_0x30bdab){const _0x4e2fa7=a0_0x285b,_0x10cb3d=_0x10b09f();while(!![]){try{const _0x979443=-parseInt(_0x4e2fa7(0x184))/0x1+-parseInt(_0x4e2fa7(0x14e))/0x2*(-parseInt(_0x4e2fa7(0x162))/0x3)+-parseInt(_0x4e2fa7(0x1a3))/0x4*(-parseInt(_0x4e2fa7(0x14f))/0x5)+-parseInt(_0x4e2fa7(0x139))/0x6*(-parseInt(_0x4e2fa7(0x1a7))/0x7)+parseInt(_0x4e2fa7(0x14b))/0x8*(-parseInt(_0x4e2fa7(0x199))/0x9)+-parseInt(_0x4e2fa7(0x193))/0xa+parseInt(_0x4e2fa7(0x1b0))/0xb*(-parseInt(_0x4e2fa7(0x16d))/0xc);if(_0x979443===_0x30bdab)break;else _0x10cb3d['push'](_0x10cb3d['shift']());}catch(_0x1c4644){_0x10cb3d['push'](_0x10cb3d['shift']());}}}(a0_0x837d,0x6b6f1));function a0_0x285b(_0x5f51b2,_0x3a56a8){_0x5f51b2=_0x5f51b2-0x136;const _0x837d6b=a0_0x837d();let _0x285b78=_0x837d6b[_0x5f51b2];if(a0_0x285b['BvkLKc']===undefined){var _0x33c6d5=function(_0x30f1be){const _0x2bca6f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x25ce9d='',_0x26fde5='';for(let _0x374892=0x0,_0x42216b,_0x384c6f,_0x25c998=0x0;_0x384c6f=_0x30f1be['charAt'](_0x25c998++);~_0x384c6f&&(_0x42216b=_0x374892%0x4?_0x42216b*0x40+_0x384c6f:_0x384c6f,_0x374892++%0x4)?_0x25ce9d+=String['fromCharCode'](0xff&_0x42216b>>(-0x2*_0x374892&0x6)):0x0){_0x384c6f=_0x2bca6f['indexOf'](_0x384c6f);}for(let _0x1ec4a2=0x0,_0x43fae8=_0x25ce9d['length'];_0x1ec4a2<_0x43fae8;_0x1ec4a2++){_0x26fde5+='%'+('00'+_0x25ce9d['charCodeAt'](_0x1ec4a2)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x26fde5);};a0_0x285b['PlIltb']=_0x33c6d5,a0_0x285b['tQoNgN']={},a0_0x285b['BvkLKc']=!![];}const _0x315444=_0x837d6b[0x0],_0x3b5518=_0x5f51b2+_0x315444,_0xe4803f=a0_0x285b['tQoNgN'][_0x3b5518];return!_0xe4803f?(_0x285b78=a0_0x285b['PlIltb'](_0x285b78),a0_0x285b['tQoNgN'][_0x3b5518]=_0x285b78):_0x285b78=_0xe4803f,_0x285b78;}import a0_0x2241d0 from'dotenv';a0_0x2241d0['confi'+'g']();const args=process[a0_0x4bf0c7(0x168)][a0_0x4bf0c7(0x191)](0x2),envArgs={};for(let i=0x0;i<args[a0_0x4bf0c7(0x17a)+'h'];i++){if(args[i]===a0_0x4bf0c7(0x151)&&i+0x1<args[a0_0x4bf0c7(0x17a)+'h']){const [key,value]=args[i+0x1][a0_0x4bf0c7(0x1a1)]('=');if(key===a0_0x4bf0c7(0x1b2)+a0_0x4bf0c7(0x1ad)+a0_0x4bf0c7(0x19c))envArgs['click'+'upApi'+a0_0x4bf0c7(0x192)]=value;if(key===a0_0x4bf0c7(0x1b2)+a0_0x4bf0c7(0x137)+a0_0x4bf0c7(0x155))envArgs[a0_0x4bf0c7(0x14a)+'upTea'+a0_0x4bf0c7(0x138)]=value;if(key==='CLICK'+a0_0x4bf0c7(0x148)+a0_0x4bf0c7(0x172)+a0_0x4bf0c7(0x190))envArgs[a0_0x4bf0c7(0x1b4)+'na']=value;if(key===a0_0x4bf0c7(0x15f)+a0_0x4bf0c7(0x136)+a0_0x4bf0c7(0x13c)+'T')envArgs[a0_0x4bf0c7(0x1b3)+'entSu'+a0_0x4bf0c7(0x1a9)]=value;if(key===a0_0x4bf0c7(0x163)+a0_0x4bf0c7(0x19e))envArgs[a0_0x4bf0c7(0x1b1)+a0_0x4bf0c7(0x19b)]=value;if(key===a0_0x4bf0c7(0x170)+a0_0x4bf0c7(0x16a)+a0_0x4bf0c7(0x19f))envArgs[a0_0x4bf0c7(0x16f)+a0_0x4bf0c7(0x13e)+a0_0x4bf0c7(0x15a)]=value;if(key==='ENABL'+a0_0x4bf0c7(0x164)+a0_0x4bf0c7(0x19d))envArgs[a0_0x4bf0c7(0x14c)+a0_0x4bf0c7(0x141)+'ls']=value;if(key==='DISAB'+a0_0x4bf0c7(0x179)+a0_0x4bf0c7(0x15c)+a0_0x4bf0c7(0x159))envArgs[a0_0x4bf0c7(0x16f)+a0_0x4bf0c7(0x13d)+a0_0x4bf0c7(0x1a0)+a0_0x4bf0c7(0x16b)]=value;if(key===a0_0x4bf0c7(0x166)+'ED_CA'+a0_0x4bf0c7(0x161)+a0_0x4bf0c7(0x143))envArgs[a0_0x4bf0c7(0x14c)+a0_0x4bf0c7(0x150)+'egori'+'es']=value;if(key===a0_0x4bf0c7(0x166)+a0_0x4bf0c7(0x1af))envArgs[a0_0x4bf0c7(0x14c)+'eSSE']=value;if(key===a0_0x4bf0c7(0x153)+a0_0x4bf0c7(0x187))envArgs[a0_0x4bf0c7(0x17b)+'rt']=value;if(key===a0_0x4bf0c7(0x166)+a0_0x4bf0c7(0x140)+'IO')envArgs[a0_0x4bf0c7(0x14c)+a0_0x4bf0c7(0x16c)+'o']=value;key===a0_0x4bf0c7(0x1b2)+'UP_MC'+'P_LIC'+a0_0x4bf0c7(0x1a8)+a0_0x4bf0c7(0x1ac)&&(envArgs[a0_0x4bf0c7(0x14a)+'upMcp'+a0_0x4bf0c7(0x19a)+a0_0x4bf0c7(0x16e)]=value,process.env.CLICKUP_MCP_LICENSE_KEY=value);key===a0_0x4bf0c7(0x1b2)+a0_0x4bf0c7(0x148)+a0_0x4bf0c7(0x183)+'DBOX_'+a0_0x4bf0c7(0x1a4)+'T'&&(envArgs['click'+a0_0x4bf0c7(0x1ab)+a0_0x4bf0c7(0x15b)+'oxSec'+a0_0x4bf0c7(0x174)]=value,process.env.CLICKUP_MCP_SANDBOX_SECRET=value);key===a0_0x4bf0c7(0x1b2)+'UP_AD'+'DITIO'+'NAL_A'+a0_0x4bf0c7(0x1aa)+'YS'&&(envArgs[a0_0x4bf0c7(0x169)+a0_0x4bf0c7(0x175)+'ApiKe'+'ys']=value,process.env.CLICKUP_ADDITIONAL_API_KEYS=value);if(key===a0_0x4bf0c7(0x197))envArgs['port']=value;if(key===a0_0x4bf0c7(0x145))envArgs[a0_0x4bf0c7(0x18a)]=value;i++;}}export var LogLevel;(function(_0x668c5c){const _0x34490f=a0_0x4bf0c7,_0x28a5f6={'fbBNq':'0|4|3'+_0x34490f(0x171),'yvymv':'TRACE','ZINDM':'ERROR','WwBwU':_0x34490f(0x158)},_0x120574=_0x28a5f6['fbBNq'][_0x34490f(0x1a1)]('|');let _0x1635a9=0x0;while(!![]){switch(_0x120574[_0x1635a9++]){case'0':_0x668c5c[_0x668c5c[_0x28a5f6['yvymv']]=0x0]=_0x28a5f6['yvymv'];continue;case'1':_0x668c5c[_0x668c5c[_0x28a5f6[_0x34490f(0x189)]]=0x4]=_0x34490f(0x188);continue;case'2':_0x668c5c[_0x668c5c[_0x34490f(0x149)]=0x3]=_0x34490f(0x149);continue;case'3':_0x668c5c[_0x668c5c['INFO']=0x2]=_0x34490f(0x185);continue;case'4':_0x668c5c[_0x668c5c[_0x34490f(0x158)]=0x1]=_0x28a5f6[_0x34490f(0x144)];continue;}break;}}(LogLevel||(LogLevel={})));const parseLogLevel=_0x4a14a5=>{const _0x278c21=a0_0x4bf0c7,_0x1edabb={'wBLMr':_0x278c21(0x146),'bBowV':_0x278c21(0x158)};if(!_0x4a14a5)return LogLevel[_0x278c21(0x188)];switch(_0x4a14a5[_0x278c21(0x17e)+_0x278c21(0x17d)+'e']()){case _0x1edabb['wBLMr']:return LogLevel[_0x278c21(0x146)];case _0x1edabb[_0x278c21(0x180)]:return LogLevel['DEBUG'];case _0x278c21(0x185):return LogLevel[_0x278c21(0x185)];case _0x278c21(0x149):return LogLevel[_0x278c21(0x149)];case'ERROR':return LogLevel[_0x278c21(0x188)];default:return LogLevel[_0x278c21(0x188)];}},parseBoolean=(_0x37d2f0,_0x1cfee3)=>{const _0x3f27eb=a0_0x4bf0c7,_0x1213dd={'RwJpp':function(_0x4a1087,_0x304c3d){return _0x4a1087===_0x304c3d;},'UKYNu':function(_0x306ea3,_0x52bb86){return _0x306ea3===_0x52bb86;},'GUrko':_0x3f27eb(0x18c)};if(_0x1213dd[_0x3f27eb(0x142)](_0x37d2f0,undefined))return _0x1cfee3;return _0x1213dd[_0x3f27eb(0x1a6)](_0x37d2f0['toLow'+'erCas'+'e'](),_0x1213dd[_0x3f27eb(0x14d)]);},parseInteger=(_0x23c440,_0x4e1fb2)=>{const _0x170c80=a0_0x4bf0c7,_0x211077={'Abgga':function(_0x417d6e,_0x541969){return _0x417d6e(_0x541969);}};if(_0x23c440===undefined)return _0x4e1fb2;const _0x4d6d5e=parseInt(_0x23c440,0xa);return _0x211077[_0x170c80(0x156)](isNaN,_0x4d6d5e)?_0x4e1fb2:_0x4d6d5e;},parseCommaSeparated=(_0x2181da,_0x547697)=>{const _0x1f15c3=a0_0x4bf0c7;if(!_0x2181da)return _0x547697;return _0x2181da[_0x1f15c3(0x1a1)](',')[_0x1f15c3(0x17f)](_0x25c892=>_0x25c892[_0x1f15c3(0x13a)]())[_0x1f15c3(0x13f)+'r'](_0xd493bf=>_0xd493bf!=='');},configuration={'clickupApiKey':envArgs['click'+a0_0x4bf0c7(0x13b)+a0_0x4bf0c7(0x192)]||process.env.CLICKUP_API_KEY||'','clickupTeamId':envArgs['click'+'upTea'+'mId']||process.env.CLICKUP_TEAM_ID||'','documentSupport':envArgs[a0_0x4bf0c7(0x1b3)+a0_0x4bf0c7(0x167)+a0_0x4bf0c7(0x1a9)]||process.env.DOCUMENT_SUPPORT||process.env.DOCUMENT_MODULE||process.env.DOCUMENT_MODEL||a0_0x4bf0c7(0x196),'logLevel':parseLogLevel(envArgs[a0_0x4bf0c7(0x1b1)+a0_0x4bf0c7(0x19b)]||process.env.LOG_LEVEL),'logToStderr':parseBoolean(envArgs[a0_0x4bf0c7(0x1ae)+a0_0x4bf0c7(0x147)+'r']||process.env.LOG_TO_STDERR||process.env.RENDER,![]),'disabledTools':(envArgs['disab'+a0_0x4bf0c7(0x13e)+a0_0x4bf0c7(0x15a)]||process.env.DISABLED_TOOLS||process.env.DISABLED_COMMANDS)?.[a0_0x4bf0c7(0x1a1)](',')[a0_0x4bf0c7(0x17f)](_0x543fb7=>_0x543fb7['trim']())[a0_0x4bf0c7(0x13f)+'r'](_0x53ff9d=>_0x53ff9d!=='')||[],'enabledTools':(envArgs[a0_0x4bf0c7(0x14c)+a0_0x4bf0c7(0x141)+'ls']||process.env.ENABLED_TOOLS)?.[a0_0x4bf0c7(0x1a1)](',')[a0_0x4bf0c7(0x17f)](_0x2bea52=>_0x2bea52[a0_0x4bf0c7(0x13a)]())[a0_0x4bf0c7(0x13f)+'r'](_0x191692=>_0x191692!=='')||[],'disabledCategories':parseCommaSeparated(envArgs['disab'+'ledCa'+'tegor'+a0_0x4bf0c7(0x16b)]||process.env.DISABLED_CATEGORIES,[]),'enabledCategories':parseCommaSeparated(envArgs[a0_0x4bf0c7(0x14c)+a0_0x4bf0c7(0x150)+a0_0x4bf0c7(0x152)+'es']||process.env.ENABLED_CATEGORIES,[]),'enableSSE':parseBoolean(envArgs[a0_0x4bf0c7(0x14c)+a0_0x4bf0c7(0x18f)]||process.env.ENABLE_SSE||process.env.ENABLE_HTTP,![]),'ssePort':parseInteger(envArgs['ssePo'+'rt']||process.env.SSE_PORT,0xbb8),'enableStdio':parseBoolean(envArgs[a0_0x4bf0c7(0x14c)+'eStdi'+'o']||process.env.ENABLE_STDIO,!![]),'port':envArgs['port']||process.env.PORT||a0_0x4bf0c7(0x18d),'persona':envArgs[a0_0x4bf0c7(0x1b4)+'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_0x4bf0c7(0x178),'host':envArgs[a0_0x4bf0c7(0x18a)]||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||a0_0x4bf0c7(0x1a5)+a0_0x4bf0c7(0x15d)+a0_0x4bf0c7(0x160)+a0_0x4bf0c7(0x186)+'com','clickupApiUrl':process.env.CLICKUP_API_URL||'https'+a0_0x4bf0c7(0x15d)+a0_0x4bf0c7(0x181)+'ckup.'+a0_0x4bf0c7(0x18e)+a0_0x4bf0c7(0x17c),'proxySecret':process.env.CLICKUP_PROXY_SECRET||'','additionalApiKeys':parseCommaSeparated(process.env.CLICKUP_ADDITIONAL_API_KEYS,[])};export const validateConfiguration=()=>{const _0x37c6e1=a0_0x4bf0c7,_0x2762eb={'SkXxE':function(_0x2583bb,_0x2693d3){return _0x2583bb>_0x2693d3;}},_0x3e5cf8=[_0x37c6e1(0x14a)+_0x37c6e1(0x13b)+'Key',_0x37c6e1(0x14a)+_0x37c6e1(0x18b)+_0x37c6e1(0x138)],_0x891c90=_0x3e5cf8[_0x37c6e1(0x13f)+'r'](_0x1debf8=>!configuration[_0x1debf8]);if(_0x2762eb[_0x37c6e1(0x15e)](_0x891c90[_0x37c6e1(0x17a)+'h'],0x0)){const _0x2d9092=!!(configuration['click'+'upCli'+_0x37c6e1(0x177)]&&configuration['click'+'upCli'+_0x37c6e1(0x198)+_0x37c6e1(0x194)]),_0x277de1=!!process.env.CLICKUP_MCP_LICENSE_KEY;if(configuration[_0x37c6e1(0x14c)+_0x37c6e1(0x18f)]||_0x2d9092||_0x277de1){}else throw new Error(_0x37c6e1(0x173)+_0x37c6e1(0x195)+_0x37c6e1(0x154)+_0x37c6e1(0x182)+_0x37c6e1(0x157)+'ent\x20v'+_0x37c6e1(0x176)+_0x37c6e1(0x1a2)+_0x891c90[_0x37c6e1(0x165)](',\x20'));}};export default configuration;