@groundtruth-mcp/gt-mcp 2.5.0 → 2.5.1

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.
package/README.md CHANGED
@@ -1,43 +1,45 @@
1
- <p align="center">
2
- <img src="./banner.webp" alt="GroundTruth — self-hosted MCP server for live documentation and code audits" width="100%" />
3
- </p>
4
-
5
- <h1 align="center">GroundTruth</h1>
6
-
7
- <p align="center">
8
- Your AI assistant just confidently wrote deprecated code again.<br/>
9
- This fixes that.
10
- </p>
1
+ <div align="center">
2
+ <table><tr><td>
3
+ <pre>
4
+ ██████╗ ████████╗ ███╗ ███╗ ██████╗ ██████╗
5
+ ██╔════╝ ╚══██╔══╝ ████╗ ████║ ██╔════╝ ██╔══██╗
6
+ ██║ ███╗ ██║ ██╔████╔██║ ██║ ██████╔╝
7
+ ██║ ██║ ██║ ██║╚██╔╝██║ ██║ ██╔═══╝
8
+ ╚██████╔╝ ██║ ██║ ╚═╝ ██║ ╚██████╗ ██║
9
+ </pre>
10
+ </td></tr></table>
11
+ </div>
12
+
13
+ <h3 align="center">Your AI assistant just mass-produced deprecated code again.<br/>You merged it because the formatting was clean.<br/><br/>GroundTruth fixes that.</h3>
11
14
 
12
15
  <p align="center">
13
16
  <a href="https://www.npmjs.com/package/@groundtruth-mcp/gt-mcp"><img src="https://img.shields.io/npm/v/@groundtruth-mcp/gt-mcp?color=00d4aa&label=npm" alt="npm version" /></a>
14
17
  <a href="https://github.com/rm-rf-prod/GroundTruth-MCP/actions/workflows/ci.yml"><img src="https://github.com/rm-rf-prod/GroundTruth-MCP/actions/workflows/ci.yml/badge.svg" alt="CI" /></a>
15
18
  <a href="./LICENSE"><img src="https://img.shields.io/badge/license-ELv2-orange" alt="Elastic License 2.0" /></a>
16
- <img src="https://img.shields.io/badge/libraries-363%2B-teal" alt="363+ libraries" />
19
+ <img src="https://img.shields.io/badge/libraries-363%2B-teal" alt="Unlimited libraries" />
17
20
  <img src="https://img.shields.io/badge/audit_patterns-100%2B-red" alt="100+ audit patterns" />
18
- <img src="https://img.shields.io/badge/tests-676-brightgreen" alt="676 tests" />
21
+ <img src="https://img.shields.io/badge/tests-704-brightgreen" alt="704 tests" />
19
22
  <img src="https://img.shields.io/badge/node-%3E%3D24-green" alt="Node 24+" />
20
23
  <img src="https://img.shields.io/badge/status-active%20development-blue" alt="Active Development" />
21
24
  </p>
22
25
 
23
- <p align="center">
24
- <b>Actively maintained. New libraries, audit patterns, and features ship regularly.</b><br/>
25
- GroundTruth checks for updates on startup and notifies you when a new version is available.
26
- </p>
26
+ <h4 align="center">Self-hosted MCP server. 363+ curated libraries. 100+ audit patterns. No rate limits. No API keys.<br/>Ships updates continuously — your MCP client picks them up on restart.</h4>
27
27
 
28
28
  ---
29
29
 
30
- ## The problem with AI coding assistants
30
+ ## The problem (it's you, but also the model)
31
+
32
+ Your AI assistant just mass-produced seven files of deprecated code and you merged all of it because the formatting was nice and the variable names were clean. We've all been there. Some of us are still there. Some of us are in production there.
31
33
 
32
- They hallucinate APIs. Not because the models are bad because documentation moves faster than training data does. A library ships a major version, deprecates half its API, and the model keeps generating the old patterns for the next six months. You catch it in review if you're lucky. In production if you're not.
34
+ Here's what happened: React shipped v19 and killed `forwardRef`. Next.js made `cookies()` async. Tailwind moved to v4 and nuked `@tailwind` directives. Your model didn't get the memo. It's still writing patterns from the before times with absolute confidence and zero hesitation.
33
35
 
34
- There's also the security problem nobody talks about enough. AI assistants produce insecure patterns without knowing they're doing it: SQL built with template literals, `innerHTML` fed user input, `any` scattered through TypeScript like confetti, `cookies()` called without `await` in Next.js 16. The model isn't malicious it just learned from code that predates the rule change, and now it's your problem.
36
+ And the security stuff that's the part that should keep you up at night but doesn't because you don't know about it yet. The model will hand you SQL injection dressed up as a query builder, pass user input to `innerHTML` like it's a feature, and use `any` in TypeScript with the same energy as someone who puts ketchup on steak. It learned from real code. Real code that real people got real fired over.
35
37
 
36
- Context7 helps with the first problem. But it has rate limits, lives in the cloud, and covers around 130 libraries. Hit the quota mid-session and you get nothing. I did that enough times that I built the thing I actually wanted.
38
+ Context7 is one solution. Cloud-hosted. Rate-limited. Covers about 130 libraries. Works great until you burn through the quota at 11pm debugging a production outage and it serves you a 429 while your Slack is lighting up.
37
39
 
38
- **GroundTruth runs on your machine.** It fetches docs directly from the source at query time — `llms.txt` files first (purpose-built for LLMs by the maintainers themselves), then Jina Reader for JS-rendered pages, then GitHub. No quota. No cold start. No cache from six months ago. 363+ libraries across the Python AI/ML stack, Go, Rust, and web standards including OWASP, MDN, and WebAssembly.
40
+ **GroundTruth runs on your machine.** No quota to hit. No cloud to go down. Fetches docs from the source `llms.txt`, Jina Reader, GitHub right when you ask. 363+ curated libraries, plus npm, PyPI, crates.io, and pkg.go.dev as fallback. Any public package. Any ecosystem.
39
41
 
40
- The audit tool scans your actual source files at `file:line` level and fetches current fix guidance from the real spec. Not a linting rule someone wrote in 2019. The actual spec.
42
+ The audit tool reads your actual files, finds issues at exact `file:line` locations, and fetches the current fix from the real spec. Not a Medium article. Not a 2019 ESLint plugin. The OWASP cheat sheet that was updated last month.
41
43
 
42
44
  ---
43
45
 
@@ -84,7 +86,7 @@ Since the install uses `npx -y @groundtruth-mcp/gt-mcp@latest`, restarting your
84
86
 
85
87
  ### Optional: GitHub token
86
88
 
87
- GroundTruth fetches README files, release notes, and migration guides from GitHub. Unauthenticated requests are rate-limited to 60/hr. If you build anything with more than a couple dependencies, you'll hit that by lunch.
89
+ GroundTruth fetches README files, release notes, migration guides, and code examples from GitHub. Unauthenticated requests are rate-limited to 60/hr. If you build anything with more than a couple dependencies, you'll hit that by lunch.
88
90
 
89
91
  ```bash
90
92
  # Claude Code
@@ -112,15 +114,16 @@ Ten tools. Each does one thing and stops there.
112
114
 
113
115
  | Tool | What it does |
114
116
  |---|---|
115
- | `gt_resolve_library` | Find a library by name — gets the registry entry and docs URL |
117
+ | `gt_resolve_library` | Find a library by name — gets the registry entry and docs URL. Falls back to npm, PyPI, crates.io, and pkg.go.dev |
116
118
  | `gt_get_docs` | Fetch live docs for a specific topic (not whatever was cached six months ago) |
117
119
  | `gt_best_practices` | Get patterns, anti-patterns, and config guidance for any library |
118
- | `gt_auto_scan` | Read `package.json` / `requirements.txt`, fetch best practices for everything in it |
120
+ | `gt_auto_scan` | Read `package.json` / `requirements.txt`, detect lockfile versions, fetch best practices for everything in it |
119
121
  | `gt_search` | Search OWASP, MDN, web.dev, W3C, official language docs, and AI provider docs |
120
122
  | `gt_audit` | Scan your source files — finds real issues at exact `file:line` with live fixes attached |
121
123
  | `gt_changelog` | Fetch release notes before you run `npm update` and regret it |
122
124
  | `gt_compat` | Check browser and runtime compatibility — before Safari breaks your launch |
123
125
  | `gt_compare` | Compare 2-3 libraries side-by-side so you can finally pick one and move on |
126
+ | `gt_examples` | Search GitHub for real-world code examples of any library or usage pattern |
124
127
 
125
128
  ---
126
129
 
@@ -234,6 +237,21 @@ gt_compare({ libraries: ["react", "solid-js"], criteria: "performance rendering"
234
237
 
235
238
  ---
236
239
 
240
+ ## `gt_examples` — see how other people actually use it
241
+
242
+ Searches GitHub for real-world usage examples of any library or pattern. Returns code snippets from popular open-source projects with file paths and repository attribution. Useful when the docs tell you what an API does but not how anyone actually uses it in production.
243
+
244
+ ```
245
+ gt_examples({ library: "drizzle-orm" })
246
+ gt_examples({ library: "tanstack/query", pattern: "useMutation" })
247
+ gt_examples({ library: "fastapi", pattern: "middleware", language: "python" })
248
+ gt_examples({ library: "hono", pattern: "auth guard", maxResults: 10 })
249
+ ```
250
+
251
+ Requires `GT_GITHUB_TOKEN` for higher rate limits. Without a token, GitHub Code Search allows 10 requests per minute.
252
+
253
+ ---
254
+
237
255
  ## `gt_search` — anything that isn't a specific library
238
256
 
239
257
  For questions not tied to a particular package. Pulls from OWASP, MDN, web.dev, W3C, official language docs, AI provider docs, Google developer docs, and everything else in the topic map below. Good for when you know what you need but not which library page it lives on.
@@ -320,6 +338,7 @@ gt_audit({ projectPath: ".", categories: ["security", "accessibility"] })
320
338
  gt_changelog({ libraryId: "vercel/next.js", version: "15" })
321
339
  gt_compat({ feature: "CSS container queries", environments: ["safari"] })
322
340
  gt_compare({ libraries: ["prisma", "drizzle-orm"], criteria: "TypeScript support" })
341
+ gt_examples({ library: "hono", pattern: "middleware" })
323
342
  ```
324
343
 
325
344
  ---
@@ -335,13 +354,13 @@ For every library docs request, GroundTruth tries sources in this order and stop
335
354
  1. **`llms.txt` / `llms-full.txt`** — context files published by the project maintainer specifically for LLM consumption. More reliable than scraping the docs site.
336
355
  2. **Jina Reader** (`r.jina.ai`) — converts the official docs page to clean markdown. Handles JS-rendered sites that would return nothing via a plain fetch.
337
356
  3. **GitHub README / releases** — latest release notes and README from the project repository.
338
- 4. **npm / PyPI metadata** — fallback for packages outside the curated registry.
357
+ 4. **npm / PyPI / crates.io / pkg.go.dev** — fallback for packages outside the curated registry, with automatic `llms.txt` probing on discovered homepages.
339
358
 
340
359
  ---
341
360
 
342
- ## Library coverage — 363+ libraries
361
+ ## Library coverage — unlimited
343
362
 
344
- Every major ecosystem. If a library publishes an `llms.txt`, it's probably in here.
363
+ 363+ curated entries in the registry, plus automatic fallback to npm, PyPI, crates.io, and pkg.go.dev. Any public package in any major ecosystem is resolvable — the registry gives you curated quality, the fallbacks give you universal reach.
345
364
 
346
365
  | Ecosystem | Libraries |
347
366
  |---|---|
@@ -396,7 +415,9 @@ Context7 is solid. Here's why I reach for this instead.
396
415
  | Changelog lookup | Yes — GitHub Releases, CHANGELOG.md, docs site | No |
397
416
  | Browser compatibility | Yes — MDN + caniuse.com | No |
398
417
  | Library comparison | Yes — 2-3 libraries side-by-side, any criteria | No |
399
- | Libraries | 363+ curated + npm/PyPI fallback | ~130 |
418
+ | Code examples | Yes GitHub Code Search for real-world usage | No |
419
+ | Lockfile detection | Yes — reads exact versions from lockfiles | No |
420
+ | Libraries | Unlimited — 363+ curated + npm/PyPI/crates.io/Go fallback | ~130 |
400
421
  | AI coverage | Claude, OpenAI, Gemini, Mistral, Cohere, Groq, LangChain, LlamaIndex, CrewAI, 20+ more | Limited |
401
422
  | Google APIs | Full coverage — Maps, Analytics, Ads, Cloud, Firebase, Vertex AI, 30+ services | Partial |
402
423
  | Python / Rust / Go | Yes | Limited |
@@ -409,7 +430,7 @@ The two tools approach the same problem from different angles. Context7 embeds d
409
430
 
410
431
  ## Tests
411
432
 
412
- 676 tests across 22 files. Every audit pattern has a test. Every manifest parser has a test. If a pattern ships without a test, the CI pipeline says no before any human has to.
433
+ 704 tests across 22 files. Every audit pattern has a test. Every manifest parser has a test. If a pattern ships without a test, the CI pipeline says no before any human has to.
413
434
 
414
435
  ```bash
415
436
  npm test # run all tests
@@ -424,12 +445,26 @@ npm run typecheck # TypeScript strict check (no emit)
424
445
  | `src/tools/auto-scan.test.ts` | All 8 manifest parsers using temp directories (package.json, requirements.txt, pyproject.toml, Cargo.toml, go.mod, pom.xml, composer.json, build.gradle) |
425
446
  | `src/utils/extract.test.ts` | Topic relevance ranking, truncation, document order preservation |
426
447
  | `src/utils/sanitize.test.ts` | Prompt injection stripping, `<script>`/`<style>` removal, navigation link cleanup |
448
+ | `src/utils/lockfile.test.ts` | Lockfile version detection for package-lock, pnpm-lock, yarn.lock, Cargo.lock |
449
+ | `src/tools/examples.test.ts` | GitHub Code Search, caching, rate limit handling, error states |
427
450
  | `src/utils/version-check.test.ts` | Version comparison, update notification formatting, pending update state |
428
451
 
429
452
  Tests run in CI on every push and pull request to `main`. See `.github/workflows/ci.yml`.
430
453
 
431
454
  ---
432
455
 
456
+ ## Environment variables
457
+
458
+ All optional. GroundTruth works out of the box with zero configuration.
459
+
460
+ | Variable | Purpose | Default |
461
+ |---|---|---|
462
+ | `GT_GITHUB_TOKEN` | GitHub API auth — raises rate limit from 60 to 5000 req/hr | none |
463
+ | `GT_CACHE_DIR` | Disk cache location for persistent cross-session caching | `~/.gt-mcp-cache` |
464
+ | `GT_CONCURRENCY` | Parallel fetch limit in `gt_auto_scan` | `6` |
465
+
466
+ ---
467
+
433
468
  ## Requirements
434
469
 
435
470
  - Node.js 24+
@@ -441,7 +476,7 @@ That's it. No Docker. No config files. No environment variables unless you want
441
476
 
442
477
  ## Active development
443
478
 
444
- GroundTruth is under active development. New libraries, audit patterns, search topics, and features are added regularly. The registry currently covers 363+ libraries across every major ecosystem, with a focus on AI/LLM providers, Google APIs, and modern web development.
479
+ GroundTruth is under active development. New curated registry entries, audit patterns, search topics, and features are added regularly. The registry covers 363+ libraries with deep curated metadata, and automatic fallback to npm, PyPI, crates.io, and pkg.go.dev means any public package is resolvable out of the box.
445
480
 
446
481
  Recent additions include comprehensive coverage for Google Gemini API, Anthropic Claude API (tool use, prompt caching, vision, extended thinking, computer use, streaming, batches), OpenAI API (chat, responses, function calling, structured output, embeddings, fine-tuning, realtime, agents), and 20+ additional AI providers and frameworks.
447
482
 
@@ -460,6 +495,14 @@ Issues and requests: [github.com/rm-rf-prod/GroundTruth-MCP/issues](https://gith
460
495
 
461
496
  ---
462
497
 
498
+ ## Full documentation
499
+
500
+ Want the full technical breakdown? Architecture, every tool's input schema, every audit pattern, the fetch pipeline, caching internals, the obfuscation build, and how the registry works?
501
+
502
+ **[Read the full docs](./docs/DOCUMENTATION.md)** — everything in one place, for the people who actually read documentation before using a tool.
503
+
504
+ ---
505
+
463
506
  ## Star history
464
507
 
465
508
  <a href="https://star-history.com/#rm-rf-prod/GroundTruth-MCP&Date">
@@ -1,5 +1,5 @@
1
1
  export declare const SERVER_NAME = "GroundTruth";
2
- export declare const SERVER_VERSION = "2.5.0";
2
+ export declare const SERVER_VERSION = "2.5.1";
3
3
  export declare const REGISTRY_BADGE_SIZE = 363;
4
4
  export declare const CHARS_PER_TOKEN = 3.8;
5
5
  export declare const DISK_CACHE_DIR: string;
package/dist/constants.js CHANGED
@@ -1 +1 @@
1
- const a0_0x1665b0=a0_0x4c3a;(function(_0x1114aa,_0x30d7c3){const _0x41c812=a0_0x4c3a,_0x3b6ec7=_0x1114aa();while(!![]){try{const _0x329918=parseInt(_0x41c812(0x12b,'lSya'))/0x1+parseInt(_0x41c812(0x120,'x[FM'))/0x2*(parseInt(_0x41c812(0x135,'z*8l'))/0x3)+-parseInt(_0x41c812(0x11c,'froy'))/0x4*(parseInt(_0x41c812(0x136,'hd^m'))/0x5)+-parseInt(_0x41c812(0x132,'zlx6'))/0x6*(parseInt(_0x41c812(0x12c,'1D7Z'))/0x7)+parseInt(_0x41c812(0x127,'!NDQ'))/0x8+parseInt(_0x41c812(0x122,'BJ)m'))/0x9+-parseInt(_0x41c812(0x13f,'oFPV'))/0xa*(-parseInt(_0x41c812(0x138,'jRe]'))/0xb);if(_0x329918===_0x30d7c3)break;else _0x3b6ec7['push'](_0x3b6ec7['shift']());}catch(_0x347055){_0x3b6ec7['push'](_0x3b6ec7['shift']());}}}(a0_0x3a92,0xaffd1));export const SERVER_NAME=a0_0x1665b0(0x12f,'hJc3')+'h';export const SERVER_VERSION=a0_0x1665b0(0x11b,'MYPI');function a0_0x4c3a(_0x16a77e,_0x37b105){_0x16a77e=_0x16a77e-0x11b;const _0x3a9275=a0_0x3a92();let _0x4c3ae0=_0x3a9275[_0x16a77e];if(a0_0x4c3a['QpZCLp']===undefined){var _0x3f393d=function(_0x596a71){const _0x41ca5e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x366a6c='',_0x36df7e='';for(let _0xe948c0=0x0,_0x103800,_0x3c989d,_0x4f95d5=0x0;_0x3c989d=_0x596a71['charAt'](_0x4f95d5++);~_0x3c989d&&(_0x103800=_0xe948c0%0x4?_0x103800*0x40+_0x3c989d:_0x3c989d,_0xe948c0++%0x4)?_0x366a6c+=String['fromCharCode'](0xff&_0x103800>>(-0x2*_0xe948c0&0x6)):0x0){_0x3c989d=_0x41ca5e['indexOf'](_0x3c989d);}for(let _0xee7111=0x0,_0x595694=_0x366a6c['length'];_0xee7111<_0x595694;_0xee7111++){_0x36df7e+='%'+('00'+_0x366a6c['charCodeAt'](_0xee7111)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x36df7e);};const _0x4753f3=function(_0x335975,_0x3bf19d){let _0xf83380=[],_0x4b577a=0x0,_0x11740c,_0x16ca16='';_0x335975=_0x3f393d(_0x335975);let _0xbd8c6d;for(_0xbd8c6d=0x0;_0xbd8c6d<0x100;_0xbd8c6d++){_0xf83380[_0xbd8c6d]=_0xbd8c6d;}for(_0xbd8c6d=0x0;_0xbd8c6d<0x100;_0xbd8c6d++){_0x4b577a=(_0x4b577a+_0xf83380[_0xbd8c6d]+_0x3bf19d['charCodeAt'](_0xbd8c6d%_0x3bf19d['length']))%0x100,_0x11740c=_0xf83380[_0xbd8c6d],_0xf83380[_0xbd8c6d]=_0xf83380[_0x4b577a],_0xf83380[_0x4b577a]=_0x11740c;}_0xbd8c6d=0x0,_0x4b577a=0x0;for(let _0x4bacde=0x0;_0x4bacde<_0x335975['length'];_0x4bacde++){_0xbd8c6d=(_0xbd8c6d+0x1)%0x100,_0x4b577a=(_0x4b577a+_0xf83380[_0xbd8c6d])%0x100,_0x11740c=_0xf83380[_0xbd8c6d],_0xf83380[_0xbd8c6d]=_0xf83380[_0x4b577a],_0xf83380[_0x4b577a]=_0x11740c,_0x16ca16+=String['fromCharCode'](_0x335975['charCodeAt'](_0x4bacde)^_0xf83380[(_0xf83380[_0xbd8c6d]+_0xf83380[_0x4b577a])%0x100]);}return _0x16ca16;};a0_0x4c3a['WrNZYn']=_0x4753f3,a0_0x4c3a['baqglk']={},a0_0x4c3a['QpZCLp']=!![];}const _0x4d1bc7=_0x3a9275[0x0],_0x1f8e37=_0x16a77e+_0x4d1bc7,_0x54f771=a0_0x4c3a['baqglk'][_0x1f8e37];return!_0x54f771?(a0_0x4c3a['qHbKwS']===undefined&&(a0_0x4c3a['qHbKwS']=!![]),_0x4c3ae0=a0_0x4c3a['WrNZYn'](_0x4c3ae0,_0x37b105),a0_0x4c3a['baqglk'][_0x1f8e37]=_0x4c3ae0):_0x4c3ae0=_0x54f771,_0x4c3ae0;}export const REGISTRY_BADGE_SIZE=0x16b;export const CHARS_PER_TOKEN=3.8;export const DISK_CACHE_DIR=process.env.GT_CACHE_DIR??(process.env.HOME?process.env.HOME+(a0_0x1665b0(0x125,'skSD')+'ache'):a0_0x1665b0(0x13c,'cY2P')+a0_0x1665b0(0x130,'%YW8'));export const DEFAULT_TOKEN_LIMIT=0x1f40;export const MAX_TOKEN_LIMIT=0x4e20;export const CACHE_TTL_MS=0x1e*0x3c*0x3e8;function a0_0x3a92(){const _0x5952f6=['W5pcKCoyWRldOHD1s8kSmWbD','EM7dO8kxW5HCfsbB','WRZdPK/cTSkpEG','W7JdH3HKnYKEW7u','WQFcHejfpNzsWO1WzW','vSkcyuysW4rG','E2abyYFcNCk0WO88WRzEWQa','DmoTW50Bj8kAECoGj8oA','aSkRaSkEtIyfW60pW5G','W65eW4JcT8k2emkdiNxdPt1R','qSk5ue0WlrpdISklkSkLWOK1','W48tCXWOW4tdSZpdHwm9','zxG1WRddVSk7WPfyACkv','W7xdRSooW6jk','W6tcRfNdOCojAsfRWRqQW6y','bemJWRhdG0fGia7cOt4','CCk3WO8gWOW1W5RdQSohrmkrW4RdGG','W4X7saTNmxBcPmoTWPK','W64YWR3dJ8oJqmk0','v8o1ftHfWPKeW73dV8oZW4jmW5C','WR8ZhGXTnSkopSkatH7dG2O','o04TW54Lf1OtWRrqWP1aeG','ksVcSmkXW6nkcqb2WO0','W4pdOcG1W7VcGCoCW5ZdLSk9','W6xdMMBdPmoOzCoewhtcSW','C8k0WOugWOy0W57dMSonA8k1W4xdQq','zciMWQNdUCoPW4SvnCkx','WQJcTSkmoSooWQBcSCkQWQa','W5PqdCoDrIFdTCoBCd0','WOtdNbNdQYnPWPdcL1DbpsS','WR/cNcRcRCoqgmkibvpcJa','qbanW4RdJCk8W7ldP8kPrq','E8oxW68','WRyRW5XOx0iymCk8WOy','W7rRW4hcVe8jmSoI','W6pdJcNcPCoTA8oY','W4WDFXiSW6FdKZBdNumF','W5ePqeRdVGldK8osW6Wv','D8kYW7LLW49PWONdIW'];a0_0x3a92=function(){return _0x5952f6;};return a0_0x3a92();}export const FETCH_TIMEOUT_MS=0x3a98;export const JINA_BASE_URL=a0_0x1665b0(0x139,'jRe]')+a0_0x1665b0(0x131,'GU2o');export const NPM_REGISTRY_URL='https://re'+a0_0x1665b0(0x133,'t9ca')+a0_0x1665b0(0x137,'froy');export const PYPI_URL=a0_0x1665b0(0x126,'1D7Z')+a0_0x1665b0(0x11f,'SqE*')+'i';export const GITHUB_API_URL=a0_0x1665b0(0x12a,'#)KB')+a0_0x1665b0(0x128,'E8jU')+'om';export const GITHUB_RAW_URL=a0_0x1665b0(0x141,'E8jU')+a0_0x1665b0(0x13d,'9C%g')+a0_0x1665b0(0x124,'hd^m')+a0_0x1665b0(0x12e,'Citj');export const INJECTION_PATTERNS=[/ignore\s+(all\s+)?(previous|prior|above)\s+instructions?/gi,/you\s+(are|must|should|will|have\s+to)\s+now/gi,/\bSYSTEM\s*:/g,/\bASSISTANT\s*:/g,/\b(JAILBREAK|DAN|DO ANYTHING NOW)\b/gi,/<\s*(?:system|instructions?)\s*>/gi,/forget\s+(everything|all)\s+(you|your)/gi,/new\s+instructions?.*?:/gi,/override\s+(your\s+)?(previous\s+)?instructions?/gi,/<!--[\s\S]{0,500}-->/g,/[\u202A-\u202E\u2066-\u2069]/g,/\bact\s+as\b.{0,50}(?:you are|you're|an?\s+ai|a\s+model)/gi,/\bpretend\s+(?:you\s+are|to\s+be)\b/gi,/\bfrom\s+now\s+on\b.{0,30}(?:you|ignore|forget)/gi];
1
+ const a0_0x51cb44=a0_0x1405;(function(_0x2e16e9,_0x406b9d){const _0x54e7cf=a0_0x1405,_0x4542dd=_0x2e16e9();while(!![]){try{const _0x3573a3=-parseInt(_0x54e7cf(0x9e,'6zj*'))/0x1*(-parseInt(_0x54e7cf(0xa7,'2a9$'))/0x2)+-parseInt(_0x54e7cf(0xa9,'g9RI'))/0x3*(parseInt(_0x54e7cf(0xa4,'M5VA'))/0x4)+parseInt(_0x54e7cf(0x94,'PxUQ'))/0x5+parseInt(_0x54e7cf(0xa5,'M5VA'))/0x6*(parseInt(_0x54e7cf(0x95,'O]4['))/0x7)+-parseInt(_0x54e7cf(0xb1,'wy2P'))/0x8*(-parseInt(_0x54e7cf(0x93,'s(Tv'))/0x9)+parseInt(_0x54e7cf(0xa3,'Hd1D'))/0xa*(-parseInt(_0x54e7cf(0xa6,'rdRO'))/0xb)+parseInt(_0x54e7cf(0x90,'Ct2X'))/0xc*(-parseInt(_0x54e7cf(0xa1,'A!IY'))/0xd);if(_0x3573a3===_0x406b9d)break;else _0x4542dd['push'](_0x4542dd['shift']());}catch(_0x40153a){_0x4542dd['push'](_0x4542dd['shift']());}}}(a0_0x5b90,0x441a5));export const SERVER_NAME=a0_0x51cb44(0x9f,'tSNV')+'h';function a0_0x5b90(){const _0x3e5a90=['WOKapSoJW7aoaCkB','WRTsvW/cLdHGwSkLW44','WRZdLSkboCowW4OhWPNdPYa','kCk7WPy5stFdSxq','a2/cIvRdSM4lWO0+W5bgvW','sKLQW6xcLSk9W7jwemk3','W4RdSGFcUCobuhBcQ3iyvdCV','W6iteeJdLZb5e8ksW5uLBmkS','W5LlW6rUW5X9W5xcUrTQ','W4xdTd83mmkrW58','WOvKkmkOWRqnmhxcKJu','WR4oW69P','W4hcPSoovmovW43dJmkIW7TvWP3cV8oO','W4RdKfdcUSkiaCk7W4VcHmkmwq','W6HBWRy/yt9Ay8o5W74j','sCkkWQuuWORdMmocbvFdQCkMbq','t8kgWQCuWOldKSkKdh/dH8k1p8ow','wCoNBSkeA8oXC8od','W6OqfuJdK2SNfSkoW743','hCk6kmkjBCo9mmoPW7tcPW','jmoHWOPaFSkQWRm','r8oToCohvCo/dNmJ','W48Ap8oiW4mmjSkGWO7dVq','bSknqwldOqLCWONdMCobgG','WRdcISkfp8omW5yxWPxcVw0','cHldOWpcHqOo','h8k0WQjdWOFcGmo+','hCkPWRHsW5RdM8k4fmoZCG','lCkYgmoqw8kEWQ/cPctdJmkiWP4','W5pdJSozD8kKW5q2W5FcKSknWQ3dQSkg','aa3cHCoMFSkjWOmj','W67cNCotyCkaWOyYWPJdVLRdU8oy','m8oZrSksqCkgWRZcV0RdRW','vmkpsvtcSa','i8k9WPfsBSkNWPxdTG','WPZdPmknf8kEW4/dMSokW65n','W5TBnq','W53dLJRcQhdcSxBdTa','E8oUwmkwhmorW7xcPrFdRW','W6voWPK6fmoWWQvFW6CA','wmkkAJVcLmoFWOHWWQy','W6lcQCoAys3cMSkwW4n2sM0Ebq'];a0_0x5b90=function(){return _0x3e5a90;};return a0_0x5b90();}export const SERVER_VERSION=a0_0x51cb44(0xb6,'!dO3');export const REGISTRY_BADGE_SIZE=0x16b;export const CHARS_PER_TOKEN=3.8;export const DISK_CACHE_DIR=process.env.GT_CACHE_DIR??(process.env.HOME?process.env.HOME+(a0_0x51cb44(0x92,'mR#g')+a0_0x51cb44(0xa0,'Hd1D')):a0_0x51cb44(0xb5,'wy2P')+a0_0x51cb44(0xb3,'H#qo'));export const DEFAULT_TOKEN_LIMIT=0x1f40;export const MAX_TOKEN_LIMIT=0x4e20;function a0_0x1405(_0x2b74f6,_0x3cc51b){_0x2b74f6=_0x2b74f6-0x8f;const _0x5b9032=a0_0x5b90();let _0x14059a=_0x5b9032[_0x2b74f6];if(a0_0x1405['MGBqTS']===undefined){var _0x10503e=function(_0x4b9e67){const _0x12f846='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x50bc76='',_0x1ec587='';for(let _0x4387d1=0x0,_0x5b795e,_0x44f8cf,_0x2d1606=0x0;_0x44f8cf=_0x4b9e67['charAt'](_0x2d1606++);~_0x44f8cf&&(_0x5b795e=_0x4387d1%0x4?_0x5b795e*0x40+_0x44f8cf:_0x44f8cf,_0x4387d1++%0x4)?_0x50bc76+=String['fromCharCode'](0xff&_0x5b795e>>(-0x2*_0x4387d1&0x6)):0x0){_0x44f8cf=_0x12f846['indexOf'](_0x44f8cf);}for(let _0x4f244e=0x0,_0x19ba50=_0x50bc76['length'];_0x4f244e<_0x19ba50;_0x4f244e++){_0x1ec587+='%'+('00'+_0x50bc76['charCodeAt'](_0x4f244e)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1ec587);};const _0x2a4296=function(_0x448702,_0x2dcd97){let _0x100a37=[],_0x41673c=0x0,_0x592ae6,_0x564105='';_0x448702=_0x10503e(_0x448702);let _0x16b34c;for(_0x16b34c=0x0;_0x16b34c<0x100;_0x16b34c++){_0x100a37[_0x16b34c]=_0x16b34c;}for(_0x16b34c=0x0;_0x16b34c<0x100;_0x16b34c++){_0x41673c=(_0x41673c+_0x100a37[_0x16b34c]+_0x2dcd97['charCodeAt'](_0x16b34c%_0x2dcd97['length']))%0x100,_0x592ae6=_0x100a37[_0x16b34c],_0x100a37[_0x16b34c]=_0x100a37[_0x41673c],_0x100a37[_0x41673c]=_0x592ae6;}_0x16b34c=0x0,_0x41673c=0x0;for(let _0x48663d=0x0;_0x48663d<_0x448702['length'];_0x48663d++){_0x16b34c=(_0x16b34c+0x1)%0x100,_0x41673c=(_0x41673c+_0x100a37[_0x16b34c])%0x100,_0x592ae6=_0x100a37[_0x16b34c],_0x100a37[_0x16b34c]=_0x100a37[_0x41673c],_0x100a37[_0x41673c]=_0x592ae6,_0x564105+=String['fromCharCode'](_0x448702['charCodeAt'](_0x48663d)^_0x100a37[(_0x100a37[_0x16b34c]+_0x100a37[_0x41673c])%0x100]);}return _0x564105;};a0_0x1405['eNDfVl']=_0x2a4296,a0_0x1405['yTPEjJ']={},a0_0x1405['MGBqTS']=!![];}const _0x410983=_0x5b9032[0x0],_0x4778da=_0x2b74f6+_0x410983,_0x3256fb=a0_0x1405['yTPEjJ'][_0x4778da];return!_0x3256fb?(a0_0x1405['ZTbHpA']===undefined&&(a0_0x1405['ZTbHpA']=!![]),_0x14059a=a0_0x1405['eNDfVl'](_0x14059a,_0x3cc51b),a0_0x1405['yTPEjJ'][_0x4778da]=_0x14059a):_0x14059a=_0x3256fb,_0x14059a;}export const CACHE_TTL_MS=0x1e*0x3c*0x3e8;export const FETCH_TIMEOUT_MS=0x3a98;export const JINA_BASE_URL=a0_0x51cb44(0x9a,'h$3U')+a0_0x51cb44(0xaf,'N]mf');export const NPM_REGISTRY_URL=a0_0x51cb44(0xb0,'N]mf')+a0_0x51cb44(0x91,'wy2P')+'js.org';export const PYPI_URL=a0_0x51cb44(0xb8,'A!IY')+a0_0x51cb44(0xa8,'rdRO')+'i';export const GITHUB_API_URL=a0_0x51cb44(0x9d,'HyNG')+a0_0x51cb44(0xad,'V[#Q')+'om';export const GITHUB_RAW_URL=a0_0x51cb44(0x96,'2a9$')+a0_0x51cb44(0xab,'O]4[')+a0_0x51cb44(0x97,'V[#Q')+a0_0x51cb44(0x8f,'O]4[');export const INJECTION_PATTERNS=[/ignore\s+(all\s+)?(previous|prior|above)\s+instructions?/gi,/you\s+(are|must|should|will|have\s+to)\s+now/gi,/\bSYSTEM\s*:/g,/\bASSISTANT\s*:/g,/\b(JAILBREAK|DAN|DO ANYTHING NOW)\b/gi,/<\s*(?:system|instructions?)\s*>/gi,/forget\s+(everything|all)\s+(you|your)/gi,/new\s+instructions?.*?:/gi,/override\s+(your\s+)?(previous\s+)?instructions?/gi,/<!--[\s\S]{0,500}-->/g,/[\u202A-\u202E\u2066-\u2069]/g,/\bact\s+as\b.{0,50}(?:you are|you're|an?\s+ai|a\s+model)/gi,/\bpretend\s+(?:you\s+are|to\s+be)\b/gi,/\bfrom\s+now\s+on\b.{0,30}(?:you|ignore|forget)/gi];
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- const a1_0x30fa36=a1_0xb70f;(function(_0xe4da40,_0x2076f4){const _0x3f18be=a1_0xb70f,_0x4df69c=_0xe4da40();while(!![]){try{const _0x15ee4c=parseInt(_0x3f18be(0x168,'Cn#I'))/0x1*(-parseInt(_0x3f18be(0x19f,'ZWQd'))/0x2)+-parseInt(_0x3f18be(0x1c0,'rd52'))/0x3*(-parseInt(_0x3f18be(0x17f,'h7H)'))/0x4)+parseInt(_0x3f18be(0x1b5,'B%3g'))/0x5*(parseInt(_0x3f18be(0x98,'gh&#'))/0x6)+-parseInt(_0x3f18be(0xcd,'8tM)'))/0x7+-parseInt(_0x3f18be(0xce,'YfEV'))/0x8*(parseInt(_0x3f18be(0x19b,'SWst'))/0x9)+-parseInt(_0x3f18be(0x187,'6OSy'))/0xa+parseInt(_0x3f18be(0x18e,'8tM)'))/0xb;if(_0x15ee4c===_0x2076f4)break;else _0x4df69c['push'](_0x4df69c['shift']());}catch(_0xf5a8dc){_0x4df69c['push'](_0x4df69c['shift']());}}}(a1_0x4a1e,0x4524d));import{McpServer}from'@modelcontextprotocol/sdk/server/mcp.js';import{StdioServerTransport}from'@modelcontextprotocol/sdk/server/stdio.js';import{SERVER_NAME,SERVER_VERSION}from'./constants.js';import{getInstallId}from'./utils/watermark.js';import{checkForUpdate,formatUpdateNotice,setPendingUpdate}from'./utils/version-check.js';import{z}from'zod';import{registerResolveTool}from'./tools/resolve.js';import{registerDocsTool}from'./tools/docs.js';import{registerBestPracticesTool}from'./tools/best-practices.js';import{registerAutoScanTool}from'./tools/auto-scan.js';import{registerSearchTool}from'./tools/search.js';function a1_0xb70f(_0x42b2d5,_0x3ba1c3){_0x42b2d5=_0x42b2d5-0x89;const _0x4a1ee5=a1_0x4a1e();let _0xb70f6c=_0x4a1ee5[_0x42b2d5];if(a1_0xb70f['GNkfsl']===undefined){var _0x125624=function(_0x268d8f){const _0x1df27b='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x504f26='',_0x4ff965='';for(let _0x14b1c5=0x0,_0x5c27a5,_0x4e0c15,_0x50e531=0x0;_0x4e0c15=_0x268d8f['charAt'](_0x50e531++);~_0x4e0c15&&(_0x5c27a5=_0x14b1c5%0x4?_0x5c27a5*0x40+_0x4e0c15:_0x4e0c15,_0x14b1c5++%0x4)?_0x504f26+=String['fromCharCode'](0xff&_0x5c27a5>>(-0x2*_0x14b1c5&0x6)):0x0){_0x4e0c15=_0x1df27b['indexOf'](_0x4e0c15);}for(let _0x136be9=0x0,_0x2dee72=_0x504f26['length'];_0x136be9<_0x2dee72;_0x136be9++){_0x4ff965+='%'+('00'+_0x504f26['charCodeAt'](_0x136be9)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4ff965);};const _0x1baec6=function(_0x37791f,_0x477fcb){let _0x261cbe=[],_0x205dc0=0x0,_0x63cfeb,_0x547a3b='';_0x37791f=_0x125624(_0x37791f);let _0x4ed2ac;for(_0x4ed2ac=0x0;_0x4ed2ac<0x100;_0x4ed2ac++){_0x261cbe[_0x4ed2ac]=_0x4ed2ac;}for(_0x4ed2ac=0x0;_0x4ed2ac<0x100;_0x4ed2ac++){_0x205dc0=(_0x205dc0+_0x261cbe[_0x4ed2ac]+_0x477fcb['charCodeAt'](_0x4ed2ac%_0x477fcb['length']))%0x100,_0x63cfeb=_0x261cbe[_0x4ed2ac],_0x261cbe[_0x4ed2ac]=_0x261cbe[_0x205dc0],_0x261cbe[_0x205dc0]=_0x63cfeb;}_0x4ed2ac=0x0,_0x205dc0=0x0;for(let _0x382d38=0x0;_0x382d38<_0x37791f['length'];_0x382d38++){_0x4ed2ac=(_0x4ed2ac+0x1)%0x100,_0x205dc0=(_0x205dc0+_0x261cbe[_0x4ed2ac])%0x100,_0x63cfeb=_0x261cbe[_0x4ed2ac],_0x261cbe[_0x4ed2ac]=_0x261cbe[_0x205dc0],_0x261cbe[_0x205dc0]=_0x63cfeb,_0x547a3b+=String['fromCharCode'](_0x37791f['charCodeAt'](_0x382d38)^_0x261cbe[(_0x261cbe[_0x4ed2ac]+_0x261cbe[_0x205dc0])%0x100]);}return _0x547a3b;};a1_0xb70f['BVMQHL']=_0x1baec6,a1_0xb70f['qMVktj']={},a1_0xb70f['GNkfsl']=!![];}const _0x5d984d=_0x4a1ee5[0x0],_0x2ea36f=_0x42b2d5+_0x5d984d,_0x37639e=a1_0xb70f['qMVktj'][_0x2ea36f];return!_0x37639e?(a1_0xb70f['oCINcZ']===undefined&&(a1_0xb70f['oCINcZ']=!![]),_0xb70f6c=a1_0xb70f['BVMQHL'](_0xb70f6c,_0x3ba1c3),a1_0xb70f['qMVktj'][_0x2ea36f]=_0xb70f6c):_0xb70f6c=_0x37639e,_0xb70f6c;}import{registerAuditTool}from'./tools/audit.js';import{registerChangelogTool}from'./tools/changelog.js';import{registerCompatTool}from'./tools/compat.js';import{registerCompareTool}from'./tools/compare.js';import{registerExamplesTool}from'./tools/examples.js';function a1_0x4a1e(){const _0x5b99be=['WOxcLSkwumkwW6biWPRdQbK','W47cO8ohgZjMb0zlW6uL','gbX5Amk4FmoFnCoWWRq','Bq/cKmkVWQpcSZhdKgRdSa','cmozFdldMmktlHddQCkiuW','tSkiogVcGmkShW','m8khW4JdS38BpSong8ku','WRlcL8kqvSkoW6bCWPddTLW','WPVdSSkFtsW+uGqrW6S','mCkkpKNdHh3dOmoTmmoR','WPRdO8oAWRfIW4r4FmkvW7y','WORcOCk8WOKubND1W4OT','ymkCW7/cVJpdQMlcUmoJkSks','o8oksmoWW4OWdmkSEsG','W5T+W6RcMSk/WRpdVCoNWQ0j','fMZdVmoxWPldG0WLWOW','W55hW7FcN8klp8oYWRZdL0C','W4SOWQ94mrrzWPmbpW','B8oLW4lcOCoiaSoWj8kuzG','WR3cKMpdPX7dIWvVgf8','W7VcNgpdI13dGqfYcXq','wmkkpINdICkmhqVdH8oL','vtxcVmokW5dcSvO0WR/cTW','pmocluJdTWtdKCk4W51s','lCo8lu/cUHVdNSkPW5pIGAy','BrVcIrFdNhhdJLNcRxW','W5bTWRH+','uJNcU8ktWP3dV193WRRcTW','W7xdQu5gimod','rMlcMSkN','f8kNW77dScfuArn0W5W','kbXOAmk9BCoZiSk/WQK','mGRcHmoBoCk+pwxcTSkZ','lCkGWRZcU8oxaSk2DCksBG','WQWPF8o+wCkgWOZcImoCWR4','lmohdCo4','FKhdQCkMW7HwmCo3fa','W6/dPs3cSxtdM8kRWODocG','tmkzlxFcImkMhv7dKmkJ','BZixeSkZWQ/cTZpdGLO','WPtcJmkgxmkhWQLcWPZdRKa','WOlcKSkugCofWQrCWPZdOem','hmoOW4dcTq','nSk2W7tcPSkkhCoKo8kjDq','kZLjqSkFWO/dVSk+WQaf','F1FdNG7cQSkfxCkRpLm','jY9KyCorWQ3dVIdcGtu','wmkhmYxcMCkJdaFdLSk5','WPS3DCo4f+kdTSo4WRZdGmkK','A8kUW5lcTSopWPHrWRVcM8ot','pJbHwSojW4/dKsq','CCokWQBdUYldNehcSSoDca','W6uxmSo/WO9mDHDlba','dmoqdZK7iJhdOdue','WQG0FCoMvSopWQVcN8ozWQS','WQGPWPDojmkoW6v2rSkz','eMVcI8kXWO09WRGZW73cJW','dCo/W4RcRIW','WRdcHCopWRPsrYD1W50N','W47cKhBdIH7dI0rokhS','W6SmFmo3WO9sDH9deG','W4fZWQC9WRVcTqbwW7Sy','W7fhWRlcL8kFFmo7W6ldJq4','W6NcQIxdShJdLCoTWOHedW','eYBcGmkooSkJfI7cPCoY','FmoEhKtdGMlcTCopmmk/','WPZcI8oRW7X6WRjwWPlcUdC','Dg1frSo4W78','wmkAlYxcH8kTdbBdGmoR','uCoj4OgEjCkVWRaDfSovWQq','or3cU8ktWQ4E','WPdcKCoDtSkyW6KKW5FdR0O','W6ywkmkuW5aBDHXwoq','fmkmeSotD8kuj8oEW4hdRq','yCkRW4pdTCot','WOj+lSkTmSk+sqldHCoh','W6GayCoQW4XfjbPbeG','l8kDWRhcGrrEjmkaWPO0','fXWHAmkoymoCjmkdWQC','W7Gwnq','ELtcImkJWQNdTN3dLwFdOq','W6fPpSkRumkwWOFcNComWR4','yCkLW5RdPSoAWOuuW7lcKSoz','r3tcH8kH','iwTAvCkfW4RIGOtdQSoseG','smklW7/dLmkVWQ1SWOJdRqy','Cw1Oxmo0W6/dPs/cMsK','W5TJW55xCCkBW6e6fCke','gSoOW5VcPdaGpfRdSwC','WQZdVh7dOYlcHSoMWQjReCkvW40','WQ1Gg8oEWR3cGSoTW5XnuCkQrSoz','ymkpWOZdN0i6ySkvf8oh','W53dNUkeI8k1ACk/jCoxWPiZ','a8oyWOlcNmkvWQKPW5ZdPWy','W4D7n8o7rCklWQVcL8oiW60','gCk4W7hdRcexAq','bCo9W5tcPc1EfMNdUgC','rIFcGmk2WOWOW6OQW6RcNq','nmoNWOlcNmkdWRSGWPdcPrC','WOBcSmoPWPGErq0TWPbK','eSofsIW2lsVdRJ8z','W43dQqBcKgS','WPSYC8owfCoc4OwkW5RdJSk+','hSokW4hdJmkSWR8/W5ZdQGu','WONcP8o5W4OubsD1WP4Y','g8kmsMGWkt3dVtaz','aSojWQRdVhddKKdcOSkzhq','fCkjgKmZEmkMW7BcNX4','WP7dRHSZWR7dSmo7zCoRW58','ACoXW5e+WP/cMCo9W5jwaG','ndRcJ8olpSkJ','W7qkW5O1WPyHWQyXmgW','A2fvqSo8W7/dRHpdIxa','WRxcImoTm8kBimoZWQmHWRW','eCkjcKm1DCk6WRtcNXW','WQldUa0ZWRddQSkeySoMW5C','W4ddVeHoiSkeW5NcV8kWWQq','BuRdLGVdO8kft8oUmu8','WOTKW4vkCCkoW6j2vSkc','Fu/cKX3dNwFdG13cUYm','W53dSSoZWRD/W5aOCCkoW7e','dCoSW4VcPh46C1ZdSxG','DSk+W5ldPmovW5L7W5xcQCoF','W7tdTeXBySkeW7lcOSkMWQ4','W5JdQrVcKMLG','W5zZkmk4jmoWsWJdMCkE','WPRdPmojWQDKWP0OySkDW7C','WRdcL0/dUSojW73cQmoQFSks','dWrRjmk1BSoFE8oAW6y','rSoCW4NdNSoGWQK4WP3dQWC','BaBcJb3dJxVdJLNcRxW','cCkKW7BdOc0yDa9OWOm','W4C6kCk4jmkKabFdMCof','W47dTmonWRb1W5i+DSkpWRG','WPdcJSoWW7ztW6LAW4/dG1G','iCoEnKtdHs7cS8odoSoO','WPtdN8ksqCofWQzbWOFcUMi','hmkSW5e2WPNdPSoRW5Psda','kCoriuRcSGJdI8knWPig','vokfTv5fnupcT8k/W4Wo','vmkeeuW1ECk7WQ7cNXm','lh1Eb8kvWPNdO8k/W6ue','e8oyW4NdJG','rgDAqmo8W7/dSM7cNYC','xokcTKOmmse1W6GOdW','sSoUW5dcPd0/phpdOgq','WO7cPCk8WPKpd257WP4F','sZpcR8kt4OoOWRf9mSkOWRe','W7L0qSkbW63dG8k+W6fCyW','cCoUW4ZcQd0XBW/cUcS','bmosWOhdJ8kPWR4PW5lcJ1i','hCk2W4rNW5/cISk8W61lnGZcJK0','dr1IjCkQBq','cmkYW6ZdRsGcEcr9W4y','CaJdQmorWPNdOK93WQZcOa','qmoUW5eHWP/dLSoKW4Dqfq','W7nvW6dcH8ozm8oOWRtdNay','BSkxW7tcNarfCCkjWObU','WOKPDCoQxmklWRBcNCkjWQK','W514WQuQDW9eWO8aDG','W5/dVCkuxMfCsKzyW7O','WOldPmo6WOmddNq0W5G2','sqRcLftdMNFcNe3cP2a','aSooW5/dN8kYWRmUWPK','BLFdLrddTSor','WQBdVbXyk8ogWPZcJmksWOi','BXNcGr3dLwpcJfpcPYi','WRxdJCoTpSkDDmk/WQm5WRu','g8o5W4RcQdaZ','4OECW5hdTSkCof80WPBcHNq','jXVcRCktWRO0DSoKmmkk','wmkCpMRcTSkXgXldNCoR','nmoBWQBdU2NdIbJdU8ooda','W4nOmSo9oCkXqaldMmki','WOZcN8o1WRvkWQqzW4FcHZC','uqVcJXFdIIlIG7OFWOrR','lGZcIbhdMMNdGH/cPYa','mmolcd0/pJZcQs4f','zfPOD8oCWOldTCkRW6qs','W4mKxmkjW6ZdHCk2W7bqDq','WO/cT1tdMgTXbK9qoW','pSoagSoZWOm9gCk4kY8','xqZcGrRcMxBcHLBcSs4','t8oQW5e4WP7dISo7W4Ctfq','CmkZWPNcNmkpW5LrWRJcISoV','zmkNW6CGpCkawNGpDa','W6uDW5T2WODUW6a+iwC','k8okoLNdTX/dKmkTWPOr','omoFW6NdUxddLf7cVSoAhq','W4D/W6ZdJ8kRWRxdU8k+W7ip','e2NdVSoJWPddUxyqWPC','i8onWQRdVwVdMfhcQmkzdW','W457kCkXmSo+','vmkHg1yIDmo1WRBdNG4','W6FdSeXdk8oxWPZcQ8kWWQq','tCoUW5e1WOldMSo9','WP7cKmo9WRvSWRKFW5pcGtS','WP3cM8ovvSkkWQrlW5xdV0e','zgbsqSkZWOFcNq3cHcy','WOiO4OgyW653WRXebCozW4u','WPNcLSkgfCkdWQLCWOBdRHC','W5e6o8kVomk6satdN8ke','W5PUW67dJSkWWRpdOCoNWR4c','lgXjrmkzWPNcSokdNSkGgq','WOaOWRNdU8k1WQ/dQmk2WP4','W5/dR8kEwMTxrcacWQi','v8oazcxcR8kTcLpdLSkQ','WQlcNSoSm8klDSoZ4OwqBCk3','oCkm4OoDWQLxW5vDWQ3dNbS','W4FcTSo5WOWEgwj6W50H','cSocW47dJSkHWQG1','rmkgWQJcJW7dTZnMm1q','W6uuW6hcM8kAkCoOW73dMb4','jSk3W7dcSmomaCo2DCkCpa','WO97uSoUrmkwW7JcQSoBWQS','CSkrjqRdOL3cK8klm8o6','iSoTW43dUCoFW5TrWQNcN8oC','W74kmSoTWOjuofTwdG','rd3cVmoqWPq','kcBdHCozomo3oIxcOSoM','WOVcH8k5W7P8W6SjW5FcIsC','kdlcGmocmSkWAtNcOSkZ','W7tdPtVcPhBdN8oUW4ftfa','WPlcRCo4WOSvcgi0W58Q','tCkkiIxcHCkRdHBcK8kP','WO3dUSksxMTxd1KrW6O','W6DrW6BcNCkrFmoUW7ZdIuC','WQldGCk5nCkxmmk2W6iOWQG','W514W6ddJSo1W7ZdTSkYWQ9l','WOrLWQuQzGHqWPvelG','k8kDW7tcNGzdjCofWQPo','EWpcJHhdI2pcJfBcRMC','WPxcRCo5WPLBgg5WW5TP','sZxcVSowW5ZdT0K4WRhdSG','Bq/cH8k+WQ7dSdJdIIJIGPy','uColeCoKDmkfDmojW7BdVa','amksdeDTpmk0WRtdM1O','lYBdHCoEl8k4iYJcRSoN','mZefbmkVWRtcPWxcGHNdUNNdUW','W7/cVeRdSmkhWQ/cRmk2ymoH','pCoDdSo5W5eLcmkXoIS','s8oVWQNcS3qMCbDRW4y1','iSkBjuZdJNZcRCoko8o8','W5/dTmoEWRTI','nSo4WOhdL8oxWOqwWQ7cVW','CI/cRCktWPVdPwq2WQNcPG','mxHjxSoCWOpdVSoQW7qF','W7xcR0G','n8oDsmoZW4iRaCoXu3S','W6uuW6dcM8kymmk3W6pdGXu','kXNcR8kAW7fnxmozoCof','WOqey8oOvSkmW7JcJSogW6O','pCkmD0VcGwlcQCojj8o+','W4T5lSkUESkJtGBdHq','EWFcKmoQ4OotWRmoW5PPW6W','w2NcHmkHWP4VWR4OW63cNW','WPBdPqWZWRhdU8kVCSoRWPy','mSkXWRhcM8oYlSocbCoDEW','yCkNW7tcSSokhCo0DCkiBa','WPRcT8ors2fxd1LcW6u','CSk4W5JdU8olWOm','d8ozWOZdL8kLWQnSWPJdRau','A1FdKWNdV8kfsSkHpLu','wSoTsaXHE8kHWOxdNG8','W5tdOCojWRa8WP0WECkBW7W','fSohdvyGCSkXWRVdJr4','sSkwWPldJGZdQZvAkbC','hCkYW4u1WOpdQ8o5W5bJ','DSoxW43dPG','WO/dQCkEqgDxhGPxW6m','W5z/m8kP','uCkAWPFdT8ovWPnrWQZcM8ot','WPxdN8kzxmkwWRqoWPJdS14','WPdcK8k5W7POWQ0tW5hcGZm','BaxdMrldOSoadSkNlLu','CMZdL8kAB8oUEqBcPmoAaHNcOq','dmoSW4ZcPh4WC0VdOwy','qmkOW6PHlmkacxLCyq','e8oyW4NcNmkNWQ5UW5ZIHjDd','fmkmeSotDmkemmodW6RcVq','W61qWRlcI8kjomo7W6ddIuK','nSoHWQZdUNhdMLpcVG','WQZdVxddPIlcGSk9WOXEl8k+W5tdMa','a8ohW4NdNCkZWR9SWPldQHC','W5T2W55lnmoxW68VgmkE','qtNcUSowWPldSL4KW7ddSG','W7qeWPjMWOCVW7q0mtG','WOJdVHxcNhe0cejbpa','WOxcNmkDfCkqWRadWOhdTrq','AcHuwmo8W6pdScVdIZe','W6KNs8kA','W53dQbhcJq','CSkyofJcGq','gCkijghdICkJfGRcK8k5','WOVcM8oHW6e','WRH6W73cS8kde8or','rSoFW4NdN8kOWRqLWO3dSay','eCokkuJcUWldMmk1WODs','E1BdJLddTSoxt8kTku8','tCoFkeGvxSktWRa','BSkfW77dIazdCCkSWQ04','umkciHSkhgNcQrK5','WO7dRSkuwhSosGHQW7G','tCoVWQFcThffkXzOW6yEsmol','pCofWQ7dOxBcM1xcTCoasq','W6DfvCo3WPv9iXKcaa','WRddPhtdKmoQW4JdOmk0j8k/','pr3cJmkLWRdcSZddNcJdPW','mSkXW6pcVColca','nmopWRZdU2VdJ03dU8krjG','tSoWWPaJWPtcMCoGW4nEba','EXZcHqy','WPBdVSkccMnAdGPxW6K','W7pcRvFdSmod','sCoWWOjRW43dLCoNW4bbaa','ECoGjKxcTadcN8k/WOeD','W7b0sSkhW6ZdGSoXWPKcka','vhZcRSowWOJdSLmYWRJdSG','vmkgefTHAmk6WQRdLHK','jSkwmGRdJw/cTmoojSoR'];a1_0x4a1e=function(){return _0x5b99be;};return a1_0x4a1e();}const server=new McpServer({'name':SERVER_NAME,'version':SERVER_VERSION},{'instructions':a1_0x30fa36(0x96,'zW9l')+a1_0x30fa36(0x144,'rd52')+a1_0x30fa36(0x122,'mGRU')+a1_0x30fa36(0x13e,'5HE(')+a1_0x30fa36(0x14a,'zW9l')+a1_0x30fa36(0x1bd,'gH63')+a1_0x30fa36(0x13a,'wJKg')+a1_0x30fa36(0x1ae,'h7H)')+'ries,\x20fram'+a1_0x30fa36(0x120,'rd52')+a1_0x30fa36(0x17d,'ZWQd')+a1_0x30fa36(0xcf,']Sas')+a1_0x30fa36(0x1a9,'rd52')+a1_0x30fa36(0xae,'DkQS')+a1_0x30fa36(0x9c,'o%*l')+a1_0x30fa36(0x1a6,'R2Sf')+a1_0x30fa36(0x164,'5Vu)')+a1_0x30fa36(0x1a1,'f^7I')+a1_0x30fa36(0xab,'MV0d')+a1_0x30fa36(0xdf,'ZWQd')+'atabases,\x20'+a1_0x30fa36(0x173,'u24P')+a1_0x30fa36(0x160,'ZWQd')+a1_0x30fa36(0x11e,'gh&#')+a1_0x30fa36(0xbc,'Kfn^')+a1_0x30fa36(0x10d,'p&fE')+a1_0x30fa36(0xc8,'0aJp')+a1_0x30fa36(0xe9,'lPp0')+a1_0x30fa36(0x1aa,'h7H)')+a1_0x30fa36(0x1a0,'r^04')+'and\x20docs\x20U'+a1_0x30fa36(0xd6,'CsL%')+a1_0x30fa36(0x13c,'o%*l')+a1_0x30fa36(0xc5,'zW9l')+a1_0x30fa36(0x123,'AGMQ')+a1_0x30fa36(0x194,'o%*l')+a1_0x30fa36(0x188,'oh@8')+a1_0x30fa36(0xe6,'ZWQd')+'iltered\x20by'+a1_0x30fa36(0x141,'B%3g')+a1_0x30fa36(0xbd,'g5xO')+a1_0x30fa36(0x15e,'Qj%O')+a1_0x30fa36(0x135,'ZWQd')+a1_0x30fa36(0x1b6,'zDJ6')+a1_0x30fa36(0x155,'B%3g')+a1_0x30fa36(0x170,'gH63')+a1_0x30fa36(0x12c,'Cn#I')+a1_0x30fa36(0x11f,'WSN7')+'—\x20Detect\x20a'+a1_0x30fa36(0x10f,'h7H)')+'\x20dependenc'+a1_0x30fa36(0x1ac,'B%3g')+a1_0x30fa36(0x12d,'Bbmr')+a1_0x30fa36(0x133,'rd52')+a1_0x30fa36(0x16c,'5Vu)')+a1_0x30fa36(0xb1,'@jVU')+a1_0x30fa36(0xb9,'WSN7')+a1_0x30fa36(0x192,'l6M#')+a1_0x30fa36(0xf5,'CsL%')+a1_0x30fa36(0xa1,'lPp0')+a1_0x30fa36(0x8a,'LOWf')+a1_0x30fa36(0xf7,'p&fE')+a1_0x30fa36(0x1b2,'ZWQd')+a1_0x30fa36(0x17b,'ZWQd')+a1_0x30fa36(0x172,'Qj%O')+'\x20project\x20c'+a1_0x30fa36(0x1c2,'5HE(')+a1_0x30fa36(0xc1,'r^04')+a1_0x30fa36(0x114,'B%3g')+a1_0x30fa36(0x115,'DkQS')+a1_0x30fa36(0x185,'mGRU')+a1_0x30fa36(0x1b0,'YfEV')+a1_0x30fa36(0x1c7,'IDgf')+a1_0x30fa36(0x107,'LOWf')+a1_0x30fa36(0xa0,'0aJp')+a1_0x30fa36(0x18f,'CsL%')+a1_0x30fa36(0xd1,'CsL%')+a1_0x30fa36(0x129,'5Vu)')+a1_0x30fa36(0x1bc,'B%3g')+a1_0x30fa36(0x8c,'cbe#')+a1_0x30fa36(0x1af,'cbe#')+a1_0x30fa36(0x9f,'nlD#')+a1_0x30fa36(0x1bf,'DkQS')+a1_0x30fa36(0xf6,'AGMQ')+a1_0x30fa36(0x119,'h@Oa')+a1_0x30fa36(0x14b,'gH63')+a1_0x30fa36(0xd7,'DkQS')+a1_0x30fa36(0xec,'fnGv')+a1_0x30fa36(0x104,'f^7I')+a1_0x30fa36(0x13b,'vqak')+a1_0x30fa36(0x15c,'DkQS')+a1_0x30fa36(0x10a,'CsL%')+a1_0x30fa36(0xfd,'h7H)')+a1_0x30fa36(0xa4,'zW9l')+a1_0x30fa36(0x16d,'SWst')+a1_0x30fa36(0x139,'o%*l')+a1_0x30fa36(0x136,'h@Oa')+a1_0x30fa36(0x1a5,'Kfn^')+a1_0x30fa36(0xa8,'Kfn^')+a1_0x30fa36(0x110,'SWst')+(a1_0x30fa36(0xee,'Cn#I')+a1_0x30fa36(0xf4,'zDJ6')+a1_0x30fa36(0x18a,'CsL%')+a1_0x30fa36(0x17e,'2id1')+a1_0x30fa36(0xbb,'o%*l')+a1_0x30fa36(0xfc,'o%*l')+a1_0x30fa36(0xe4,'wJKg')+a1_0x30fa36(0x11d,'r^04')+a1_0x30fa36(0xca,'wJKg')+a1_0x30fa36(0xff,'ZWQd')+a1_0x30fa36(0x127,'YfEV')+'\x0a\x22find\x20and'+a1_0x30fa36(0xcb,'MV0d')+a1_0x30fa36(0x143,'rcuX')+a1_0x30fa36(0x94,'6OSy')+a1_0x30fa36(0xfe,'cbe#')+a1_0x30fa36(0x9b,'wJKg')+a1_0x30fa36(0x105,'oh@8')+a1_0x30fa36(0xda,'zW9l')+a1_0x30fa36(0x1c4,'SWst')+a1_0x30fa36(0x1a2,'B%3g')+a1_0x30fa36(0xfa,'mGRU')+a1_0x30fa36(0x1a7,'Qj%O')+a1_0x30fa36(0xdb,'CsL%')+a1_0x30fa36(0xf3,'R2Sf')+a1_0x30fa36(0xd0,'mGRU')+a1_0x30fa36(0xd4,'oh@8')+a1_0x30fa36(0x100,'ZWQd')+a1_0x30fa36(0x1b1,'LOWf')+a1_0x30fa36(0x15d,'LOWf')+'official\x20s'+a1_0x30fa36(0x13f,'0aJp')+a1_0x30fa36(0x152,'8tM)')+a1_0x30fa36(0xb0,'Kfn^')+'a.')});registerResolveTool(server),registerDocsTool(server),registerBestPracticesTool(server),registerAutoScanTool(server),registerSearchTool(server),registerAuditTool(server),registerChangelogTool(server),registerCompatTool(server),registerCompareTool(server),registerExamplesTool(server),server[a1_0x30fa36(0x178,'Cn#I')]('audit-my-p'+a1_0x30fa36(0xe2,'6OSy'),a1_0x30fa36(0x12a,'AGMQ')+a1_0x30fa36(0x181,'B%3g')+a1_0x30fa36(0x186,'lPp0')+a1_0x30fa36(0x8f,'LOWf')+a1_0x30fa36(0x154,'WSN7')+a1_0x30fa36(0x19e,'lPp0')+a1_0x30fa36(0x1c1,'5Vu)')+a1_0x30fa36(0xb3,'8tM)')+a1_0x30fa36(0x137,'h7H)'),()=>({'messages':[{'role':a1_0x30fa36(0x102,'CsL%'),'content':{'type':a1_0x30fa36(0x8e,'BS[^'),'text':a1_0x30fa36(0x189,'Bbmr')+a1_0x30fa36(0x18b,'g5xO')+a1_0x30fa36(0x14d,'Kfn^')+a1_0x30fa36(0x130,'rd52')+'\x20for\x20all\x20c'+a1_0x30fa36(0x101,'0aJp')+a1_0x30fa36(0x1ba,']Sas')+a1_0x30fa36(0x166,'gH63')+a1_0x30fa36(0x177,'B%3g')+'bility,\x20se'+a1_0x30fa36(0xb6,'mGRU')+a1_0x30fa36(0x89,'WSN7')+a1_0x30fa36(0xc2,'zDJ6')+a1_0x30fa36(0xef,'h@Oa')+'.js,\x20Pytho'+a1_0x30fa36(0x142,'WSN7')+a1_0x30fa36(0x12b,'h7H)')+a1_0x30fa36(0x113,'BS[^')+a1_0x30fa36(0x111,'r^04')+a1_0x30fa36(0xf8,'vqak')+a1_0x30fa36(0x12e,'l6M#')+a1_0x30fa36(0xfb,'gH63')+a1_0x30fa36(0x159,'BS[^')+a1_0x30fa36(0x195,'wJKg')+a1_0x30fa36(0x99,'8tM)')+a1_0x30fa36(0xc4,'Qj%O')+'ation.'}}]})),server[a1_0x30fa36(0xf0,'0n6t')](a1_0x30fa36(0x9a,'WSN7')+a1_0x30fa36(0x16b,'R2Sf'),a1_0x30fa36(0x1bb,'o%*l')+a1_0x30fa36(0xb8,'WSN7')+a1_0x30fa36(0x138,'mGRU')+a1_0x30fa36(0xd8,'f^7I')+a1_0x30fa36(0x176,'nlD#')+a1_0x30fa36(0x149,'nlD#')+a1_0x30fa36(0x146,'CsL%'),{'library':z[a1_0x30fa36(0x11c,'oh@8')]()['describe'](a1_0x30fa36(0x125,'f^7I')+a1_0x30fa36(0x124,'AGMQ')+a1_0x30fa36(0xdd,'f^7I')+a1_0x30fa36(0x128,'0n6t')+a1_0x30fa36(0xd2,'zW9l'))},({library:_0x1df27b})=>({'messages':[{'role':a1_0x30fa36(0x197,'0n6t'),'content':{'type':a1_0x30fa36(0x91,'u24P'),'text':a1_0x30fa36(0xb4,'6OSy')+a1_0x30fa36(0x151,'6OSy')+a1_0x30fa36(0x156,'SWst')+a1_0x30fa36(0xcc,'oh@8')+a1_0x30fa36(0xed,'oh@8')+a1_0x30fa36(0x198,'gH63')+_0x1df27b+(a1_0x30fa36(0x1c6,'nlD#')+a1_0x30fa36(0x15f,'g5xO')+a1_0x30fa36(0x17c,'fnGv')+a1_0x30fa36(0x1a4,'rd52')+a1_0x30fa36(0x112,'zW9l')+'hanges,\x20an'+a1_0x30fa36(0x184,'o%*l')+'ration\x20ste'+a1_0x30fa36(0xb2,'SWst')+a1_0x30fa36(0x134,'vqak'))}}]})),server[a1_0x30fa36(0x118,'lPp0')](a1_0x30fa36(0xc0,'Kfn^')+a1_0x30fa36(0x171,'vqak'),a1_0x30fa36(0x116,'AGMQ')+a1_0x30fa36(0xd5,'u24P')+a1_0x30fa36(0x8d,'AGMQ')+a1_0x30fa36(0x1be,'fnGv')+a1_0x30fa36(0x16a,'0aJp')+a1_0x30fa36(0x161,'6OSy'),()=>({'messages':[{'role':a1_0x30fa36(0x196,'YfEV'),'content':{'type':a1_0x30fa36(0x9e,'oh@8'),'text':a1_0x30fa36(0x169,'LOWf')+a1_0x30fa36(0x16f,'zW9l')+a1_0x30fa36(0xe5,'rcuX')+a1_0x30fa36(0xbf,'vqak')+a1_0x30fa36(0xe0,'hAGc')+a1_0x30fa36(0x13d,'vqak')+a1_0x30fa36(0x174,'hAGc')+a1_0x30fa36(0x1b3,'gH63')+a1_0x30fa36(0xf2,'fnGv')+a1_0x30fa36(0x1b4,'o%*l')+a1_0x30fa36(0x8b,'cbe#')+a1_0x30fa36(0x19d,'cbe#')+a1_0x30fa36(0xa3,'WSN7')+a1_0x30fa36(0x14f,'6OSy')+a1_0x30fa36(0x18c,'SWst')}}]})),server['prompt'](a1_0x30fa36(0xc6,'Cn#I')+'braries',a1_0x30fa36(0x103,'wJKg')+a1_0x30fa36(0x1c5,'BS[^')+a1_0x30fa36(0xac,'u24P')+a1_0x30fa36(0x190,'MV0d')+a1_0x30fa36(0xa5,'Cn#I')+a1_0x30fa36(0x147,'2id1')+'one\x20to\x20use',{'libraries':z[a1_0x30fa36(0x1a8,'nlD#')]()['describe'](a1_0x30fa36(0xaa,'zW9l')+a1_0x30fa36(0x1b7,'Qj%O')+a1_0x30fa36(0x121,'vqak')+'\x20e.g.\x20\x27pri'+a1_0x30fa36(0x9d,'o%*l')+a1_0x30fa36(0x95,'nlD#')+a1_0x30fa36(0x14c,'Cn#I')+a1_0x30fa36(0x158,'5HE('))},({libraries:_0x504f26})=>({'messages':[{'role':a1_0x30fa36(0x1ab,'AGMQ'),'content':{'type':a1_0x30fa36(0x182,'vqak'),'text':a1_0x30fa36(0x93,'zDJ6')+a1_0x30fa36(0xea,'MV0d')+a1_0x30fa36(0x92,'p&fE')+a1_0x30fa36(0x108,'YfEV')+a1_0x30fa36(0xeb,'AGMQ')+a1_0x30fa36(0xba,'gh&#')+_0x504f26+(a1_0x30fa36(0xc9,'CsL%')+a1_0x30fa36(0x179,'CsL%')+a1_0x30fa36(0x191,'LOWf')+a1_0x30fa36(0xf9,'fnGv')+'\x20and\x20which'+'\x20use\x20cases'+a1_0x30fa36(0x193,'0n6t')+a1_0x30fa36(0x1c8,'IDgf'))}}]})),server[a1_0x30fa36(0x10c,'zDJ6')](a1_0x30fa36(0x131,'5HE(')+'heck',a1_0x30fa36(0xaf,'IDgf')+a1_0x30fa36(0x183,'Cn#I')+a1_0x30fa36(0x17a,'lPp0')+a1_0x30fa36(0xa7,'rd52')+a1_0x30fa36(0xdc,'DkQS')+a1_0x30fa36(0x15b,'AGMQ')+a1_0x30fa36(0x150,'mGRU')+a1_0x30fa36(0x12f,'cbe#'),{'topic':z[a1_0x30fa36(0x90,'h@Oa')]()[a1_0x30fa36(0x117,'CsL%')](a1_0x30fa36(0xde,'rd52')+a1_0x30fa36(0x163,'R2Sf')+a1_0x30fa36(0xa2,'wJKg')+'ction\x27,\x20\x27J'+a1_0x30fa36(0x10e,'LOWf')+a1_0x30fa36(0x109,'oh@8')+a1_0x30fa36(0x126,'0aJp')+a1_0x30fa36(0xc3,'Kfn^'))},({topic:_0x4ff965})=>({'messages':[{'role':a1_0x30fa36(0xc7,'u24P'),'content':{'type':a1_0x30fa36(0x19a,'mGRU'),'text':a1_0x30fa36(0xe7,'hAGc')+a1_0x30fa36(0xe3,'l6M#')+a1_0x30fa36(0x11b,'rcuX')+a1_0x30fa36(0x175,'nlD#')+a1_0x30fa36(0x153,'DkQS')+a1_0x30fa36(0x148,'SWst')+a1_0x30fa36(0xf2,'fnGv')+a1_0x30fa36(0xf1,'vqak')+'\x20'+_0x4ff965+(a1_0x30fa36(0xb5,'gH63')+a1_0x30fa36(0xa9,'f^7I')+a1_0x30fa36(0x19c,'CsL%')+a1_0x30fa36(0x157,'rcuX')+a1_0x30fa36(0x16e,'gh&#')+a1_0x30fa36(0x11a,'AGMQ')+a1_0x30fa36(0x199,'WSN7')+a1_0x30fa36(0x15a,'r^04')+a1_0x30fa36(0xe1,'h7H)')+a1_0x30fa36(0x145,'DkQS')+'s.')}}]}));async function main(){const _0x1c3a78=a1_0x30fa36,_0x14b1c5=new StdioServerTransport();await server[_0x1c3a78(0xd3,'p&fE')](_0x14b1c5),console[_0x1c3a78(0xd9,'0n6t')](SERVER_NAME+'\x20v'+SERVER_VERSION+('\x20running\x20v'+_0x1c3a78(0x106,'DkQS'))+getInstallId()+']'),checkForUpdate()[_0x1c3a78(0x97,'5Vu)')](_0x5c27a5=>{const _0x41b9de=_0x1c3a78;if(_0x5c27a5){setPendingUpdate(_0x5c27a5);const _0x4e0c15=formatUpdateNotice(_0x5c27a5);console[_0x41b9de(0xad,'oh@8')](_0x4e0c15),server[_0x41b9de(0xb7,'wJKg')]['sendLoggin'+_0x41b9de(0x18d,'rd52')]({'level':_0x41b9de(0x1b9,'WSN7'),'data':_0x4e0c15})[_0x41b9de(0x14e,'LOWf')](()=>{});}})[_0x1c3a78(0xbe,'Cn#I')](()=>{});}main()[a1_0x30fa36(0x1ad,'R2Sf')](_0x50e531=>{const _0x4fd1fb=a1_0x30fa36;console[_0x4fd1fb(0x167,'fnGv')](_0x4fd1fb(0xe8,'h@Oa')+'r:',_0x50e531),process[_0x4fd1fb(0x180,']Sas')](0x1);});
2
+ const a1_0x42d9bd=a1_0xbd2c;(function(_0x3334ec,_0x39ffdb){const _0x1a9efd=a1_0xbd2c,_0x129a51=_0x3334ec();while(!![]){try{const _0x571b53=-parseInt(_0x1a9efd(0x12f,'GitB'))/0x1*(-parseInt(_0x1a9efd(0x1d6,'ihdT'))/0x2)+-parseInt(_0x1a9efd(0x17f,'4!*N'))/0x3+-parseInt(_0x1a9efd(0x1c8,'PTsH'))/0x4*(-parseInt(_0x1a9efd(0x1b6,'hYbD'))/0x5)+-parseInt(_0x1a9efd(0x13c,'BIae'))/0x6*(parseInt(_0x1a9efd(0x155,'YKSx'))/0x7)+-parseInt(_0x1a9efd(0x238,'8R8Y'))/0x8+-parseInt(_0x1a9efd(0x131,'HjYu'))/0x9*(parseInt(_0x1a9efd(0x197,'hR&c'))/0xa)+parseInt(_0x1a9efd(0x1e8,'iJxz'))/0xb;if(_0x571b53===_0x39ffdb)break;else _0x129a51['push'](_0x129a51['shift']());}catch(_0x4d006a){_0x129a51['push'](_0x129a51['shift']());}}}(a1_0xa900,0xf2a23));import{McpServer}from'@modelcontextprotocol/sdk/server/mcp.js';import{StdioServerTransport}from'@modelcontextprotocol/sdk/server/stdio.js';function a1_0xbd2c(_0x5b340f,_0x15589b){_0x5b340f=_0x5b340f-0x12b;const _0xa90085=a1_0xa900();let _0xbd2c52=_0xa90085[_0x5b340f];if(a1_0xbd2c['gjMpry']===undefined){var _0xd5c529=function(_0x8d602d){const _0xf34389='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x59dfc8='',_0x2b8085='';for(let _0x4884c9=0x0,_0x1ba5fc,_0x141c27,_0x388c94=0x0;_0x141c27=_0x8d602d['charAt'](_0x388c94++);~_0x141c27&&(_0x1ba5fc=_0x4884c9%0x4?_0x1ba5fc*0x40+_0x141c27:_0x141c27,_0x4884c9++%0x4)?_0x59dfc8+=String['fromCharCode'](0xff&_0x1ba5fc>>(-0x2*_0x4884c9&0x6)):0x0){_0x141c27=_0xf34389['indexOf'](_0x141c27);}for(let _0x5eb69d=0x0,_0x33d034=_0x59dfc8['length'];_0x5eb69d<_0x33d034;_0x5eb69d++){_0x2b8085+='%'+('00'+_0x59dfc8['charCodeAt'](_0x5eb69d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2b8085);};const _0x492806=function(_0x1eb6aa,_0x31b1fb){let _0x1f6346=[],_0x193dd0=0x0,_0x64b712,_0x36a9c6='';_0x1eb6aa=_0xd5c529(_0x1eb6aa);let _0x19d7be;for(_0x19d7be=0x0;_0x19d7be<0x100;_0x19d7be++){_0x1f6346[_0x19d7be]=_0x19d7be;}for(_0x19d7be=0x0;_0x19d7be<0x100;_0x19d7be++){_0x193dd0=(_0x193dd0+_0x1f6346[_0x19d7be]+_0x31b1fb['charCodeAt'](_0x19d7be%_0x31b1fb['length']))%0x100,_0x64b712=_0x1f6346[_0x19d7be],_0x1f6346[_0x19d7be]=_0x1f6346[_0x193dd0],_0x1f6346[_0x193dd0]=_0x64b712;}_0x19d7be=0x0,_0x193dd0=0x0;for(let _0x2155cd=0x0;_0x2155cd<_0x1eb6aa['length'];_0x2155cd++){_0x19d7be=(_0x19d7be+0x1)%0x100,_0x193dd0=(_0x193dd0+_0x1f6346[_0x19d7be])%0x100,_0x64b712=_0x1f6346[_0x19d7be],_0x1f6346[_0x19d7be]=_0x1f6346[_0x193dd0],_0x1f6346[_0x193dd0]=_0x64b712,_0x36a9c6+=String['fromCharCode'](_0x1eb6aa['charCodeAt'](_0x2155cd)^_0x1f6346[(_0x1f6346[_0x19d7be]+_0x1f6346[_0x193dd0])%0x100]);}return _0x36a9c6;};a1_0xbd2c['ozlOwF']=_0x492806,a1_0xbd2c['YCGXYJ']={},a1_0xbd2c['gjMpry']=!![];}const _0x93ac4d=_0xa90085[0x0],_0x5adb57=_0x5b340f+_0x93ac4d,_0x5c23c9=a1_0xbd2c['YCGXYJ'][_0x5adb57];return!_0x5c23c9?(a1_0xbd2c['KJREdF']===undefined&&(a1_0xbd2c['KJREdF']=!![]),_0xbd2c52=a1_0xbd2c['ozlOwF'](_0xbd2c52,_0x15589b),a1_0xbd2c['YCGXYJ'][_0x5adb57]=_0xbd2c52):_0xbd2c52=_0x5c23c9,_0xbd2c52;}import{SERVER_NAME,SERVER_VERSION}from'./constants.js';import{getInstallId}from'./utils/watermark.js';import{checkForUpdate,formatUpdateNotice,setPendingUpdate}from'./utils/version-check.js';function a1_0xa900(){const _0x4d6199=['WQu3n3NdU8okBCkloCkh','W5TpWRJdO8oRheWKxCk8','WQ91wCksW7tcG8outmo2kW','W7HzWPZdVCoLiSo5eCoSra','krz0WORdHEkcQemPWOdcMW','W5njWPhcVmo1jmoItCk3fa','WR1/dCkcW7/dGSoobmoNyW','WOVdQctdHYiTgq','WRn6WOFcSqFcHSoZ','W6XEyv7cHafFr2XE','WO7dSMBdHteWcSosWP/dKa','WRxcNSknbIn7irJcHx4','W6GAWRBcUmo0m8kQnCk+vq','W7f9WOFcVG','WO/dHHBdRv8fWRBdTmo+W7i','W5tcSCkiW7aKBYNdQ1BdHG','W7BdRmkfW4pdH8o/W7RcUq','pSoBW5ntW7nNW67dPNCR','WOVdSNZcV3jXqmoqWOJdUW','WOVcGfVdPUkcNSkNb8kjWOeU','fYpcVGRcPSkhb8kyW53cISoKWRFcLa','W5XZwfDKcSonW7HEBq','W6nfWPGweCkdWQT/WPNdPq','WPlcKmogrSk6yHBdKCkMW7C','tgpdLCoRFgVcO8oEyCo/','xConWPaqjSoUW6VdR8kuBq','bYmGwhu6WPNcImopnW','WRj4nmkuWRS0WQ4','FmktuY/dLSokW4hdK8k3WQy','EtX0WO3cHSouqWpcImkb','W79xWPxdSCkNi8o4dmk2tG','zCkSihddUsRdTftcJSog','x8olWPCyB8oG','sCkzW6hdPGNcSvesW7mBW4Xcnq','D1PyWPFcHSoqfGVcJmov','w8keW50CW7j1W5JdONS+','omk1ibNcN8oAW4hdGCoZWQu','WQLZhmksWRVdGSoChSoJlG','W4bkWR7cT8o1f0a0fCo6','WP3cIKFdPSo+W6H0WOZcIs4','pGHWWP3cJmosbe/cImov','W5OoWR3dSSo2heeYgCo6','relcIJBdKb05','WPu2WQhdPmkpiYVdTrddGW','z05NW7G','W408mdtcT8k6CCkni8kh','W6mOlCo7W6dcTtFdMaT7','hIJcNfZcLmowWOjBBYu','4OA3dSonjSoGdc/cSmoLWOq','hJbLxwqWWOtcJSkaaG','WR5pyuJdJG1seZHv','o0HjWPbPW6amW6j2','WRpdHXdcUeqFWRhdUmk7W7u','lSk2W7ldNh02iSkfW4JdRW','WPFdSYNdMdmR','W6Lnh8k9WRWXWQJcK+kgUgi','reddK3ldJX8+WRFdR8kA','C05NWQOAiSoKW7WJlq','yb1HW6uqkmkWW7aJFG','wxeww305WOZcK8ojiW','W6BdU8kxW4tdKmo5W77cULhdMa','W7hdMCknmsq+pG3cRMS','W4hcMSolu8k3yHJcN8kVWR4','W4HaWR/cT8oGduW2fSkZ','WP9RW6Hw','WRNcJ1xdUu4pWQFdVSkTW68','oCkSW6tdHJ8Sj8kiW5NcUW','W5XUt0W+ECoRWPTJFG','W71mhSoUW7DLW7NdLKK3','WQ7dIuy6waJdGSk1oG4','WPddSIpdH2WTfCozWOJdJq','btxdTLFdU8kDh8kPW5NcSq','WP9MW7ucW6pdNLW8WPBcOG','WRq6gSkjW7BcJmoDcCkIiG','WQL7n8oXW7tdSdtdIqTS','W74FiqpdL1ieDcLQEIP7','W69BcmoRWR43','WPxcVqi3xGJcMmkFFvi','WQv4WOFdSchcMmoOWRBdM3q','W7KEhCoPW7SJW6xdGqOz','WQe2W7DFW4aPW7rsW59T','WQa5lMJdTSkyBCozp8kF','W4TVW75gWQ/dNKyGW4xcPa','W6jDWPhcSCoOimkQeCkJfa','WPDIWQzkl8kcoCozW4eM','WPtdSJpdKdb9qokePCoCW4m','D8kQfMxdTx7dV2tcNSow','uCkBWO8CW6y','v3pdUf3dU8kru8k2W5RcRW','WQeoWRFcVd3dGHbmcmkY','WR/dTa5llZ0eW4RdRSkm','W5/dS081i8kHWPBcSmo5CG','fmkBWOGDW7P6W5/dPJiP','fIqXqu8NWO7cGmooEq','WOW6WRVcOCouwqZdLrdcGq','p8oWCXRcLCoxW5BdM8kNWRO','DvlcKe4VrCkBWPVcLCkP','pIySf8oBW6NdJmk/WPXn','W4/cJLVcMCoRW7iWWOpcLga','qN3dTLJcTSoPWPzq','dSoAWQBcUv/dPq','WRhdS0PhoNmbWP3dICoj','k8kIBXxcK8obW5ddOSkYWRC','WRddTSoRsuXZv3ddGay','W4rEWRRdPCoNx10/gmkP','W7fWWPRcPa','WO47WQZdPmkopcBdTaZcIW','WOHVW6rbW6C','W7zMWOVcSJ/cNmoGWRBcGIW','W7NcQmkoW6HNBY/dUfRdLG','WRuIzCo7W6xcTsNdMeHR','thFdVXJdVSoFw8o/W57cUa','fJ8HdNyXWPNcGSoiEq','W75FWPFcUmoPm8kQf8kPwa','WRFdT8kLx1TZr3RdHfu','W5rLWQznl8oCE8oMWOKH','W6GpW50','jK5uWPC','W4eZWQZcSmkzoYBdRrBcMa','W5/cTh/cGNSUkmoJWQ3dTmop','hSkGW4vzW59+W45GEWa','W5OoWQVdPCoTfuW0cCo6','W5BcQ8oCW6bIoYFdRv7dJa','v8kDWPqCW7O0WP3cOtuv','W6a9W6jhW4yYW7ryW4r0','WQBcJfyWwa/dJmoEyuW','W7RcS8owWOlcM8k0WRJcOqVdVG','W7FcQG4jpdSnWOFcKmkE','W6SjW4rtoCkpWRWSW5dcPa','fmocWQdcTupdPWn1W4K6','fX7cK2pcI0SfWRddUCk5W4vO','W4lcUmkQcwGYCG3cUw0','WRmOyG','WQ3dLHddQLrwW6lcR8kfW7i','WQhcHK8LwGNcICksyuK','W5v5WOFcSsxcLCkPWRFcIgu','uMpcUSoptg3dV8kqyCoQ','r8kkWPCrECk6WQpdTSkbza','asxdU8o6kelcUSoqyCoW','iqJdTgFcM0XFc8kLW5W','WR8dW7tcUcBdJH9As+kdKG','WOZIGOydvGJcO8kfWQtdPNi','WO9NW75fWQhcTrb3W4xcSq','WPfLW6ejh8kcFmk/W4y3','rSozWPag','gColWQFcS0pdQWuW','WRm+nSo7W7VdOZ/dOKD3','eJNdLvdcLCkv','y8kEAt7cSSojW6W','W6FcHSocbCk1nIBdJmkMWRy','gheQxdaGWOxcK8ofpa','WOZdSezMe8oUWOxcT8o1Da','WQW0W6at4OkXESksuCozyq','kb/cOd/cM1PFhmk0WPS','WQD1WQCuW4S/WQXaW4DX','W4/cNKRcPmkQW7qGWOVcJIq','W4FdPdddKdeMqmoBWPxdHG','W6lcJ00NgXRcGmotlum','W5tcUCkiW6bRDwBdQeVdGa','WPmoW6RdQG','W4NdUmkpW71LDYpcU0VdLW','tsBcV8oTEK7dSCkClSoR','WPeBW6lcOmk6dMedlmkkna','W7ZdJXZdUL8nWRddPmk7W7u','WO8yW7ZcUmoaWQldJSotWQ9w','W63cLKdcQX1BW7hcVSk4W6NdVL80oq','W4TVwfCKlSonWRfMDa','W7tcMSknDwfqnXtcRIa','W6XXWOFdSclcN8kPWQBcNMm','WO1HW6jhWQ/dILG+WPFcTW','WRv7imo1W7tdVxRdM0jY','WQG2wCkcW7JcHSoFtmoNoW','atBdOCoNkedcT8opjmoQ','WRj5W6NcPCkpj27cOqZcMG','W5BcSqZdKG4nbmoD','g8kQg1yCWO8DWQNdTIO','BqRcU2ddIW','WPm0WRVcVCoAphtcOq/cJW','WQS/jhddU8kdB8krp8oi','W5ThWQ/dRSkUx0G0hSk/','WOFdH8kremoNC0/cJmkiWR50W5esWOa','CghdQrJdUmofymk8W5dcVa','EKRdHthdJf7IGz7dO8omWO0','x8ko4OwgW7bwW7y4mmotiG','WQi+W7rhWOGQWQzvW452','W740WQLajmkvoCo+W4O2','b8kDW4bcmSo9WRxdGCkRxCoAkCka','jJ7dMr/cNmopWQ1BBJG','W4lcH8oismkInG','WQ0yW5KwnSkcW7KwWRJcPa','WQldJCobB3mTyc7cK2aTWQNcSG','W6GpW4nepSkyWQb/W5tdIW','W68Eg8oZWR9LW7NdM0u1','fmknWPGdW7f9W5xdPhW8','W7NdOuy1amk6WQRcPSo7EG','D1fNW6ShkmkWW7C/Eq','W51YuuW+ECoNW51EAq','WPz/WQnapSkinCk/W5C3','Er8/WP7dI8kCrb/cM8kC','W7LkWPpcR8oMi8oVsmkVxa','WQ1/jSknW77cGmoidCoWoG','WRL4DCknWRCOW73cRmkuWOy','WPRdVuz0nSk4WO8','qq7dMdFdNHjNWRtdPCkA','W4L8WOdcOJFcGSoWW6lcJ28','WRlcM004sW8','W4yjW6RdU8obWQlcH8owWRjA','jmkBWRavW5u8mSkrxmkW','eSoXWQFcS1ddReCHW4rJ','W6i4W69wW4yXW7rVW5LT','nIONaSkfWQ3dHSoMW4Wo','W6jHWR3cSZNcNCo5WQpcIwu','WPq3mxBdVSkeBW','WQxdO10olZaiW4tcGSoC','n1XdWPeVW6bdWQnVWR0','WR5pCexcHWDzqgXB','iX/dTgxcJGHnf8kVWOC','WPv6W69aoCkcBmo6W5D+','u8ktW4fzW48FW6rdzqm','W55VsfCVlSonWOiFoW','kH9YWOZcL8ovfXBdHmkw','WRfPvCobW4pcM8okcCoria','asldVmoMkftcVSoviSoX','WPK2WOegW5BdJmo+WPtcQcm','WPTKW69ijmkioCoZW40W','WPqsW6xdVCokWRG','WRBcGeeWsfVcISoqFXO','WOL3WR1rW6BdM013W6/dPW','WQzszaW','WPRcMKRcTa','WO4GWRVcP8kFicBIGPvFWOa','e8onWRhdSf7dReC0WOS1','CL9dWPmTW7bbWOKRW7y','WQTJDKlcNqvBvG','qcJdOfhdSCouh8kZW5FcVG','WRLKm8kuWRmIWQNcUSkiWOm','W5rnWRBcQCkDW7NcOCouWRrUW5Ok','l8k1EaS','WR/dLXZdU0GFW6ldQ8kXW7q','W6pIHRGThWLiWP4Rg8kL','WO7cH0VdPSoUW6G3WPNdGbu','WOLwv8obW5tcG8owamkInW','WQKdW6pcQw/dIrvkhSkR','fCoPj1ahWP1tWQNcVIy','4OcVW6KWxrZcJXdcQCo2iG','u8k0W4XmW4KAWQbeEq8','W79oW5tcKSoqbSoznCoSuW','W5O2WQHDfCkcFmo+W5yX','WQ0Ym8oXWRFdSYJdKKy+','WOb/WQXmoCorF8oWW5zY','WRGRimk0W7hdUI/dK08Y','W5r0WQPApSorACoTW4uX','WQGqW7hcOZ3dGbThcmkJ','pbTIWPZdHCosdbVcJmkg','WOBdR27dJJ52ASkvWONdLW','W7uqt8opWRFcHCoom8oJnG','WQfyBaOen8kslWxcTa','WO9RW6nbW73dLKO8','fCopWRRcT1tdSuT1W4OT','W4/cHL3dPSojW5qhW4RcHIu','W5dcTx7cG3fSuSo1WRxdISoFWRVcJq','W47dUokdQmkPqMKJW75zW4O','eIiXdNiXWP7cLCkakq','zKhdHZ/dNLm5WQBdUSkj','W64dW5HymSkpWQ0','WQddTmoXtuP7wNFcJaK','W7pdOmkyW4NdM8oXWRJcUepcGa','D09WW6ug','s8k7g1inWOKhW73cScW','bSkJW4Xo','W6hcQSktW7XQFXldQuRdKq','kb7cPYJdI0rxhCkYWPm','CmkXd2xcOh7dLwtcMCoa','WOPJW6boW6RdJaGWWOpdTG','WRn+pmkfWRDXWRVcOCkfWOu','W4dcSCkiW7OKEspdQeVcIW','W6tdPfTLdtec','WRXFfmoKW7SXW6xdG0mH','x8odWPCgA8k8W7RdM8orjq','WRj4mmkhWRK4WRpcR8oDWOm','W618WPhdSddcMCo7WRhcJY4','WOn1WRRcSmkBpwldOa3cIG','tIFdT8kIBKZcPmkCm8o8','btRdOfNdPSoEsSkRWPtdVq','WQnEELldGKrzhsSt','W5C74OcPbr9UWQ7dJvrP','W4BcQSoesSk/mHJdI8oJ4Ood','qgddVLFdRq','WRhdTfCoid8bWOhcL8kv','uuVdKIy','W71mWRFcQZVdSH9rcSkR','W6e6zCoJW7ldT3RdVhTx','W5pcSCkyW6HQEcpcU17dIW','WR0hW6xcQIddNXDibCkL','WQ1nz1JcJqfpfgaD','WQHRomkwWR40WQ7dQmksWOy','WQmoWQ/dT8oBW6ZcNCoxWQjC','WOv1WQxcRCkjjYBdRbBcIq','WQblErSv','WOSLWPirWO/cMokcHCkuWPKP','rfJdIZVdKX8OWQ/dR8oe','bSkyW4nbp8o/WRxcTCk4BmoNcmkfoW','WP9rW7fxW6VdLLXXWP7dTG','W44eW5nvpmomWQS6WPddOq','W79FdSo+WRm','W5/dPLf8cCkP','WOpcJq/cPCoLW6mXW4RcHtG','W6hdOmksW4xcJ8k2','WOH/gmktW7tcISkAi8ovaG','WPe2WQnakmkdEmoTW403','s1RdIYBdLHeKW6pdQ8kg','wSkoW50qW7XYW5/dPNCS','w8kBW50sWRr/W5JdO2a+','BCoxWP03W6acASkrxmk1','W5ZdOeX4f8k6','mdGHfCo0WQ/cN8oUWPuJ','b8oiWOa/sCkHW60','W53cK8obtmkXkXJdK8oJWQq','WP3cPXyMv8o5W4BdTSoYEdtdPmkddq','WP98sxOPAmkMW5vwFG','W69Bfmo5WPCQW63dLemS'];a1_0xa900=function(){return _0x4d6199;};return a1_0xa900();}import{z}from'zod';import{registerResolveTool}from'./tools/resolve.js';import{registerDocsTool}from'./tools/docs.js';import{registerBestPracticesTool}from'./tools/best-practices.js';import{registerAutoScanTool}from'./tools/auto-scan.js';import{registerSearchTool}from'./tools/search.js';import{registerAuditTool}from'./tools/audit.js';import{registerChangelogTool}from'./tools/changelog.js';import{registerCompatTool}from'./tools/compat.js';import{registerCompareTool}from'./tools/compare.js';import{registerExamplesTool}from'./tools/examples.js';const server=new McpServer({'name':SERVER_NAME,'version':SERVER_VERSION},{'instructions':a1_0x42d9bd(0x242,'hMPb')+a1_0x42d9bd(0x251,'^B)F')+a1_0x42d9bd(0x18f,'HjYu')+a1_0x42d9bd(0x26a,'hYbD')+a1_0x42d9bd(0x140,'ywhG')+a1_0x42d9bd(0x188,'4U7P')+a1_0x42d9bd(0x149,'^B)F')+a1_0x42d9bd(0x243,'uFA)')+a1_0x42d9bd(0x159,'sNmO')+a1_0x42d9bd(0x20a,'f8T@')+a1_0x42d9bd(0x24d,'AMLM')+a1_0x42d9bd(0x1bc,'xUmL')+a1_0x42d9bd(0x1f3,'pU8*')+a1_0x42d9bd(0x1b7,'@uuc')+a1_0x42d9bd(0x169,'Dkzp')+'\x20(WCAG),\x20p'+a1_0x42d9bd(0x230,'aZOM')+a1_0x42d9bd(0x203,'oISg')+a1_0x42d9bd(0x1e1,'AMLM')+a1_0x42d9bd(0x195,'Fm4E')+'atabases,\x20'+a1_0x42d9bd(0x21f,'Y3Nl')+'ture,\x20and\x20'+a1_0x42d9bd(0x192,'AMLM')+a1_0x42d9bd(0x146,'8R8Y')+a1_0x42d9bd(0x1c6,'ahKw')+a1_0x42d9bd(0x25f,'4kW!')+a1_0x42d9bd(0x172,'iJxz')+a1_0x42d9bd(0x234,'u@@0')+a1_0x42d9bd(0x1f1,'pU8*')+a1_0x42d9bd(0x224,'CGb4')+a1_0x42d9bd(0x225,'sNmO')+a1_0x42d9bd(0x24c,'BIae')+a1_0x42d9bd(0x145,'58eH')+a1_0x42d9bd(0x1ea,'hYbD')+a1_0x42d9bd(0x15f,'AMLM')+a1_0x42d9bd(0x226,'aZOM')+a1_0x42d9bd(0x23d,'sIjt')+a1_0x42d9bd(0x1b5,'YKSx')+a1_0x42d9bd(0x21c,'f8T@')+a1_0x42d9bd(0x13f,'@uuc')+a1_0x42d9bd(0x1c0,'aZOM')+a1_0x42d9bd(0x151,'slFg')+a1_0x42d9bd(0x23a,'bMw(')+a1_0x42d9bd(0x20b,'4!*N')+a1_0x42d9bd(0x12b,'58eH')+'ry.\x0a4.\x20gt_'+a1_0x42d9bd(0x191,'bMw(')+a1_0x42d9bd(0x228,'Pa8(')+a1_0x42d9bd(0x18d,'aZOM')+a1_0x42d9bd(0x1f5,'58eH')+a1_0x42d9bd(0x1a3,')$2#')+a1_0x42d9bd(0x137,'ywhG')+a1_0x42d9bd(0x135,'ihdT')+a1_0x42d9bd(0x18e,'GrO7')+a1_0x42d9bd(0x22b,'4U7P')+a1_0x42d9bd(0x239,'hMPb')+a1_0x42d9bd(0x1a6,'sIjt')+a1_0x42d9bd(0x1cf,'CGb4')+a1_0x42d9bd(0x178,'rHrx')+a1_0x42d9bd(0x1e7,'ihdT')+a1_0x42d9bd(0x1a0,'BIae')+a1_0x42d9bd(0x249,'rHrx')+a1_0x42d9bd(0x233,'sNmO')+a1_0x42d9bd(0x147,'CGb4')+a1_0x42d9bd(0x13d,'4!*N')+a1_0x42d9bd(0x24e,'xUmL')+a1_0x42d9bd(0x20d,'4U7P')+a1_0x42d9bd(0x1b0,'[9F5')+'e\x20fixes\x20fr'+a1_0x42d9bd(0x157,'58eH')+a1_0x42d9bd(0x179,'mj#e')+a1_0x42d9bd(0x132,'^B)F')+a1_0x42d9bd(0x1cc,'[9F5')+a1_0x42d9bd(0x17e,'ahKw')+a1_0x42d9bd(0x1f7,'io0P')+a1_0x42d9bd(0x1c3,'4U7P')+a1_0x42d9bd(0x1dd,'7zdE')+a1_0x42d9bd(0x1c2,'7zdE')+a1_0x42d9bd(0x252,'iJxz')+a1_0x42d9bd(0x20e,'C7II')+a1_0x42d9bd(0x17a,'8R8Y')+a1_0x42d9bd(0x163,'hR&c')+a1_0x42d9bd(0x1f8,'^B)F')+a1_0x42d9bd(0x257,'ahKw')+a1_0x42d9bd(0x237,'CGb4')+a1_0x42d9bd(0x20f,'^B)F')+a1_0x42d9bd(0x207,'BIae')+a1_0x42d9bd(0x1c1,'HjYu')+'\x202–3\x20libra'+a1_0x42d9bd(0x176,'Dkzp')+a1_0x42d9bd(0x217,'7zdE')+a1_0x42d9bd(0x256,'aZOM')+a1_0x42d9bd(0x138,'slFg')+a1_0x42d9bd(0x1ff,'hYbD')+a1_0x42d9bd(0x266,'CGb4')+a1_0x42d9bd(0x184,'[9F5')+a1_0x42d9bd(0x14c,'xUmL')+a1_0x42d9bd(0x214,'4U7P')+a1_0x42d9bd(0x1e5,'AMLM')+(a1_0x42d9bd(0x1da,'^B)F')+a1_0x42d9bd(0x194,'fXq4')+a1_0x42d9bd(0x16b,'rHrx')+a1_0x42d9bd(0x153,'Ozbq')+a1_0x42d9bd(0x232,'8R8Y')+a1_0x42d9bd(0x183,'rHrx')+a1_0x42d9bd(0x24a,'GitB')+a1_0x42d9bd(0x164,'hYbD')+a1_0x42d9bd(0x1fc,'sNmO')+a1_0x42d9bd(0x223,'u@@0')+a1_0x42d9bd(0x1a1,'hMPb')+a1_0x42d9bd(0x1ed,'4U7P')+a1_0x42d9bd(0x1be,'xUmL')+a1_0x42d9bd(0x189,'8R8Y')+a1_0x42d9bd(0x262,'7zdE')+a1_0x42d9bd(0x19a,'PTsH')+a1_0x42d9bd(0x1b2,']J*M')+a1_0x42d9bd(0x205,'[9F5')+'pic]\x22\x20→\x20gt'+a1_0x42d9bd(0x139,'ywhG')+a1_0x42d9bd(0x1b9,'mT16')+a1_0x42d9bd(0x12e,'Fm4E')+a1_0x42d9bd(0x162,'ahKw')+a1_0x42d9bd(0x25b,'Y3Nl')+'\x20[library]'+a1_0x42d9bd(0x1eb,'YKSx')+a1_0x42d9bd(0x1ac,'C7II')+a1_0x42d9bd(0x1e3,'Pa8(')+a1_0x42d9bd(0x15d,'ihdT')+a1_0x42d9bd(0x22c,'ahKw')+a1_0x42d9bd(0x130,'iJxz')+a1_0x42d9bd(0x21a,'AMLM')+a1_0x42d9bd(0x1d4,'hMPb')+a1_0x42d9bd(0x23e,']J*M')+'a.')});registerResolveTool(server),registerDocsTool(server),registerBestPracticesTool(server),registerAutoScanTool(server),registerSearchTool(server),registerAuditTool(server),registerChangelogTool(server),registerCompatTool(server),registerCompareTool(server),registerExamplesTool(server),server[a1_0x42d9bd(0x201,'mj#e')](a1_0x42d9bd(0x199,'GrO7')+a1_0x42d9bd(0x215,'XU]I'),'Scan\x20this\x20'+a1_0x42d9bd(0x240,'Pa8(')+a1_0x42d9bd(0x16e,'io0P')+a1_0x42d9bd(0x209,'GrO7')+'tch\x20live\x20b'+a1_0x42d9bd(0x1cd,'uFA)')+a1_0x42d9bd(0x158,'PTsH')+'rom\x20offici'+a1_0x42d9bd(0x15e,'hYbD'),()=>({'messages':[{'role':a1_0x42d9bd(0x160,'io0P'),'content':{'type':a1_0x42d9bd(0x174,'7zdE'),'text':a1_0x42d9bd(0x1bb,'BIae')+a1_0x42d9bd(0x196,'CGb4')+a1_0x42d9bd(0x136,'sNmO')+a1_0x42d9bd(0x13e,'8R8Y')+a1_0x42d9bd(0x1d1,'mj#e')+a1_0x42d9bd(0x168,'mT16')+a1_0x42d9bd(0x24f,')$2#')+a1_0x42d9bd(0x259,'aZOM')+a1_0x42d9bd(0x175,'mT16')+a1_0x42d9bd(0x1f9,'4U7P')+a1_0x42d9bd(0x177,'^B)F')+a1_0x42d9bd(0x1db,'@uuc')+a1_0x42d9bd(0x211,'sNmO')+a1_0x42d9bd(0x244,'Ozbq')+a1_0x42d9bd(0x161,'NDxr')+a1_0x42d9bd(0x14a,'pU8*')+'ch\x20issue\x20t'+a1_0x42d9bd(0x22e,'ahKw')+a1_0x42d9bd(0x1aa,'AMLM')+'e\x20best-pra'+a1_0x42d9bd(0x246,'Y3Nl')+a1_0x42d9bd(0x1f4,'rHrx')+a1_0x42d9bd(0x182,'BIae')+a1_0x42d9bd(0x17d,'sNmO')+a1_0x42d9bd(0x1de,'ahKw')+a1_0x42d9bd(0x21e,')$2#')+a1_0x42d9bd(0x1c7,'hR&c')}}]})),server[a1_0x42d9bd(0x12d,'HjYu')](a1_0x42d9bd(0x1fb,'ywhG')+a1_0x42d9bd(0x1a8,'pU8*'),a1_0x42d9bd(0x263,'pU8*')+a1_0x42d9bd(0x16d,'io0P')+a1_0x42d9bd(0x173,'ihdT')+a1_0x42d9bd(0x26b,'58eH')+'\x20before\x20up'+a1_0x42d9bd(0x15c,'slFg')+a1_0x42d9bd(0x13b,'8R8Y'),{'library':z['string']()[a1_0x42d9bd(0x1c5,'YKSx')](a1_0x42d9bd(0x200,'BIae')+'\x20check,\x20e.'+a1_0x42d9bd(0x1ce,'[9F5')+a1_0x42d9bd(0x1b3,'GrO7')+',\x20\x27prisma\x27')},({library:_0xf34389})=>({'messages':[{'role':a1_0x42d9bd(0x241,'C7II'),'content':{'type':a1_0x42d9bd(0x1a9,'f8T@'),'text':a1_0x42d9bd(0x1e9,')$2#')+a1_0x42d9bd(0x187,'ywhG')+a1_0x42d9bd(0x13a,'sNmO')+a1_0x42d9bd(0x1a5,'ywhG')+a1_0x42d9bd(0x231,'slFg')+a1_0x42d9bd(0x1e4,'uFA)')+_0xf34389+(a1_0x42d9bd(0x16f,'bMw(')+'e\x20what\x20cha'+a1_0x42d9bd(0x14d,'GitB')+'light\x20any\x20'+a1_0x42d9bd(0x24b,'Y3Nl')+a1_0x42d9bd(0x236,'YKSx')+a1_0x42d9bd(0x25d,'AMLM')+a1_0x42d9bd(0x1d2,'hMPb')+a1_0x42d9bd(0x1ae,'hMPb')+a1_0x42d9bd(0x154,'GitB'))}}]})),server[a1_0x42d9bd(0x16a,'8R8Y')](a1_0x42d9bd(0x1ec,'[9F5')+a1_0x42d9bd(0x167,'f8T@'),'Get\x20curren'+a1_0x42d9bd(0x1bd,'GitB')+a1_0x42d9bd(0x222,'mT16')+a1_0x42d9bd(0x1d0,'8R8Y')+a1_0x42d9bd(0x166,'4!*N')+'is\x20project',()=>({'messages':[{'role':a1_0x42d9bd(0x1d3,'XU]I'),'content':{'type':a1_0x42d9bd(0x221,'PTsH'),'text':a1_0x42d9bd(0x1ef,'hR&c')+a1_0x42d9bd(0x204,'YKSx')+a1_0x42d9bd(0x1b1,'mj#e')+a1_0x42d9bd(0x229,'C7II')+a1_0x42d9bd(0x1d8,'XU]I')+a1_0x42d9bd(0x1ad,'ihdT')+a1_0x42d9bd(0x1a4,'bMw(')+a1_0x42d9bd(0x17c,'7zdE')+a1_0x42d9bd(0x1cb,'HjYu')+a1_0x42d9bd(0x22d,'4U7P')+'each\x20one.\x20'+a1_0x42d9bd(0x1e6,'NDxr')+a1_0x42d9bd(0x16c,'hYbD')+a1_0x42d9bd(0x20c,'uFA)')+a1_0x42d9bd(0x1bf,'uFA)')}}]})),server['prompt'](a1_0x42d9bd(0x1ba,'mj#e')+a1_0x42d9bd(0x14f,'Y3Nl'),a1_0x42d9bd(0x185,'NDxr')+a1_0x42d9bd(0x1ca,'bMw(')+a1_0x42d9bd(0x1d7,'mT16')+a1_0x42d9bd(0x1a7,'4U7P')+a1_0x42d9bd(0x1dc,'BIae')+a1_0x42d9bd(0x15a,'ihdT')+a1_0x42d9bd(0x19e,'AMLM'),{'libraries':z[a1_0x42d9bd(0x265,'HjYu')]()[a1_0x42d9bd(0x144,']J*M')](a1_0x42d9bd(0x23b,'hYbD')+a1_0x42d9bd(0x18c,')$2#')+a1_0x42d9bd(0x254,'GrO7')+a1_0x42d9bd(0x1fa,'slFg')+a1_0x42d9bd(0x152,'ywhG')+a1_0x42d9bd(0x1d5,'xUmL')+a1_0x42d9bd(0x17b,')$2#')+a1_0x42d9bd(0x206,'Fm4E'))},({libraries:_0x59dfc8})=>({'messages':[{'role':a1_0x42d9bd(0x219,'CGb4'),'content':{'type':a1_0x42d9bd(0x255,'hYbD'),'text':a1_0x42d9bd(0x1f6,'HjYu')+a1_0x42d9bd(0x213,'4kW!')+a1_0x42d9bd(0x19c,'ihdT')+a1_0x42d9bd(0x269,'4U7P')+'s\x20side-by-'+a1_0x42d9bd(0x267,']J*M')+_0x59dfc8+(a1_0x42d9bd(0x227,'Pa8(')+a1_0x42d9bd(0x1fd,'Y3Nl')+a1_0x42d9bd(0x1b4,'pU8*')+a1_0x42d9bd(0x170,']J*M')+a1_0x42d9bd(0x212,'xUmL')+a1_0x42d9bd(0x1e0,'xUmL')+a1_0x42d9bd(0x14b,'iJxz')+a1_0x42d9bd(0x247,'hMPb'))}}]})),server[a1_0x42d9bd(0x1f0,'iJxz')](a1_0x42d9bd(0x210,'slFg')+'heck',a1_0x42d9bd(0x268,'sNmO')+'SP\x20and\x20sec'+a1_0x42d9bd(0x18a,'Ozbq')+'\x20for\x20guida'+a1_0x42d9bd(0x21b,'YKSx')+a1_0x42d9bd(0x19b,'sIjt')+a1_0x42d9bd(0x1a2,'ahKw')+a1_0x42d9bd(0x143,'hMPb'),{'topic':z[a1_0x42d9bd(0x198,'YKSx')]()[a1_0x42d9bd(0x235,'7zdE')](a1_0x42d9bd(0x142,'mT16')+a1_0x42d9bd(0x250,'4!*N')+'\x20\x27SQL\x20inje'+a1_0x42d9bd(0x1af,'58eH')+a1_0x42d9bd(0x181,'mj#e')+a1_0x42d9bd(0x25a,'4!*N')+a1_0x42d9bd(0x150,'PTsH')+a1_0x42d9bd(0x1b8,'ahKw'))},({topic:_0x2b8085})=>({'messages':[{'role':a1_0x42d9bd(0x1c4,'GitB'),'content':{'type':a1_0x42d9bd(0x19d,'BIae'),'text':a1_0x42d9bd(0x1c9,'iJxz')+a1_0x42d9bd(0x15b,'CGb4')+a1_0x42d9bd(0x171,'@uuc')+a1_0x42d9bd(0x22a,'ywhG')+a1_0x42d9bd(0x258,'hMPb')+a1_0x42d9bd(0x193,'PTsH')+a1_0x42d9bd(0x22f,'4U7P')+a1_0x42d9bd(0x216,'mj#e')+'\x20'+_0x2b8085+(a1_0x42d9bd(0x156,'slFg')+a1_0x42d9bd(0x14e,'bMw(')+a1_0x42d9bd(0x202,'XU]I')+a1_0x42d9bd(0x1df,'sNmO')+a1_0x42d9bd(0x245,'7zdE')+a1_0x42d9bd(0x260,'hYbD')+a1_0x42d9bd(0x186,'7zdE')+a1_0x42d9bd(0x12c,'oISg')+a1_0x42d9bd(0x25c,'XU]I')+'\x20reference'+'s.')}}]}));async function main(){const _0x4b4ab7=a1_0x42d9bd,_0x4884c9=new StdioServerTransport();await server[_0x4b4ab7(0x23c,'pU8*')](_0x4884c9),console[_0x4b4ab7(0x18b,'58eH')](SERVER_NAME+'\x20v'+SERVER_VERSION+(_0x4b4ab7(0x190,'58eH')+_0x4b4ab7(0x165,'bMw('))+getInstallId()+']'),checkForUpdate()[_0x4b4ab7(0x141,'BIae')](_0x1ba5fc=>{const _0x57b3c2=_0x4b4ab7;if(_0x1ba5fc){setPendingUpdate(_0x1ba5fc);const _0x141c27=formatUpdateNotice(_0x1ba5fc);console[_0x57b3c2(0x23f,'io0P')](_0x141c27),server[_0x57b3c2(0x180,'rHrx')][_0x57b3c2(0x133,'rHrx')+_0x57b3c2(0x21d,'4!*N')]({'level':_0x57b3c2(0x208,'NDxr'),'data':_0x141c27})[_0x57b3c2(0x19f,'7zdE')](()=>{});}})[_0x4b4ab7(0x264,'rHrx')](()=>{});}main()[a1_0x42d9bd(0x25e,'u@@0')](_0x388c94=>{const _0x20026c=a1_0x42d9bd;console[_0x20026c(0x253,')$2#')](_0x20026c(0x134,'NDxr')+'r:',_0x388c94),process[_0x20026c(0x218,'u@@0')](0x1);});
@@ -1 +1 @@
1
- const a2_0x45a886=a2_0x8c1d;(function(_0x193d18,_0x283889){const _0x227ea7=a2_0x8c1d,_0x4276f1=_0x193d18();while(!![]){try{const _0x21f0d5=-parseInt(_0x227ea7(0x1f6,'5hfX'))/0x1*(parseInt(_0x227ea7(0x239,'T&Wa'))/0x2)+parseInt(_0x227ea7(0x20e,'McR^'))/0x3*(-parseInt(_0x227ea7(0x1f1,'v)G$'))/0x4)+parseInt(_0x227ea7(0x1ec,'Jb]f'))/0x5*(parseInt(_0x227ea7(0x1f3,'GwH!'))/0x6)+-parseInt(_0x227ea7(0x211,'eC@F'))/0x7+-parseInt(_0x227ea7(0x20b,'[CTb'))/0x8*(parseInt(_0x227ea7(0x1fe,'7!JN'))/0x9)+-parseInt(_0x227ea7(0x230,'GwH!'))/0xa+parseInt(_0x227ea7(0x22b,'9FGi'))/0xb*(parseInt(_0x227ea7(0x1f0,'Aflh'))/0xc);if(_0x21f0d5===_0x283889)break;else _0x4276f1['push'](_0x4276f1['shift']());}catch(_0x4d7fdb){_0x4276f1['push'](_0x4276f1['shift']());}}}(a2_0x2983,0x7491d));function a2_0x8c1d(_0xf17510,_0x2407a4){_0xf17510=_0xf17510-0x1e7;const _0x2983df=a2_0x2983();let _0x8c1d02=_0x2983df[_0xf17510];if(a2_0x8c1d['yCZofu']===undefined){var _0x255ff5=function(_0x5d313f){const _0x655e75='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1c442d='',_0x300172='';for(let _0x5ba295=0x0,_0x75832f,_0x26f6c9,_0x4bb34a=0x0;_0x26f6c9=_0x5d313f['charAt'](_0x4bb34a++);~_0x26f6c9&&(_0x75832f=_0x5ba295%0x4?_0x75832f*0x40+_0x26f6c9:_0x26f6c9,_0x5ba295++%0x4)?_0x1c442d+=String['fromCharCode'](0xff&_0x75832f>>(-0x2*_0x5ba295&0x6)):0x0){_0x26f6c9=_0x655e75['indexOf'](_0x26f6c9);}for(let _0x4f35fb=0x0,_0x37013a=_0x1c442d['length'];_0x4f35fb<_0x37013a;_0x4f35fb++){_0x300172+='%'+('00'+_0x1c442d['charCodeAt'](_0x4f35fb)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x300172);};const _0x588bff=function(_0x4896af,_0x28540a){let _0x510753=[],_0x3f2fec=0x0,_0x107bb3,_0x405855='';_0x4896af=_0x255ff5(_0x4896af);let _0x27f07c;for(_0x27f07c=0x0;_0x27f07c<0x100;_0x27f07c++){_0x510753[_0x27f07c]=_0x27f07c;}for(_0x27f07c=0x0;_0x27f07c<0x100;_0x27f07c++){_0x3f2fec=(_0x3f2fec+_0x510753[_0x27f07c]+_0x28540a['charCodeAt'](_0x27f07c%_0x28540a['length']))%0x100,_0x107bb3=_0x510753[_0x27f07c],_0x510753[_0x27f07c]=_0x510753[_0x3f2fec],_0x510753[_0x3f2fec]=_0x107bb3;}_0x27f07c=0x0,_0x3f2fec=0x0;for(let _0x3958d0=0x0;_0x3958d0<_0x4896af['length'];_0x3958d0++){_0x27f07c=(_0x27f07c+0x1)%0x100,_0x3f2fec=(_0x3f2fec+_0x510753[_0x27f07c])%0x100,_0x107bb3=_0x510753[_0x27f07c],_0x510753[_0x27f07c]=_0x510753[_0x3f2fec],_0x510753[_0x3f2fec]=_0x107bb3,_0x405855+=String['fromCharCode'](_0x4896af['charCodeAt'](_0x3958d0)^_0x510753[(_0x510753[_0x27f07c]+_0x510753[_0x3f2fec])%0x100]);}return _0x405855;};a2_0x8c1d['CECmcq']=_0x588bff,a2_0x8c1d['MDXAvO']={},a2_0x8c1d['yCZofu']=!![];}const _0xf9c0f3=_0x2983df[0x0],_0x40fd27=_0xf17510+_0xf9c0f3,_0x4391eb=a2_0x8c1d['MDXAvO'][_0x40fd27];return!_0x4391eb?(a2_0x8c1d['UCRvym']===undefined&&(a2_0x8c1d['UCRvym']=!![]),_0x8c1d02=a2_0x8c1d['CECmcq'](_0x8c1d02,_0x2407a4),a2_0x8c1d['MDXAvO'][_0x40fd27]=_0x8c1d02):_0x8c1d02=_0x4391eb,_0x8c1d02;}import{CACHE_TTL_MS,DISK_CACHE_DIR}from'../constants.js';import{createHash}from'crypto';import{readFile,writeFile,mkdir,unlink}from'fs/promises';import{join}from'path';class LRUCache{[a2_0x45a886(0x1f2,'m&@M')]=new Map();[a2_0x45a886(0x21d,'J68S')];constructor(_0x655e75=0xc8){this['maxSize']=_0x655e75;}[a2_0x45a886(0x201,'l1Zz')](_0x1c442d){const _0x1d0342=a2_0x45a886,_0x300172=this['store'][_0x1d0342(0x1ee,'McR^')](_0x1c442d);if(!_0x300172)return undefined;if(Date[_0x1d0342(0x233,'GFAf')]()>_0x300172[_0x1d0342(0x1f5,'x6Qi')])return this[_0x1d0342(0x21c,'J68S')][_0x1d0342(0x240,'eC@F')](_0x1c442d),undefined;return this[_0x1d0342(0x1e7,'S#7t')][_0x1d0342(0x204,'5ydo')](_0x1c442d),this[_0x1d0342(0x23f,'Xv5H')][_0x1d0342(0x1ef,'l1Zz')](_0x1c442d,_0x300172),_0x300172[_0x1d0342(0x217,'t^Js')];}[a2_0x45a886(0x1fd,'2o9*')](_0x5ba295,_0x75832f,_0x26f6c9=CACHE_TTL_MS){const _0x19d00a=a2_0x45a886;if(this[_0x19d00a(0x1f9,'Lrnp')][_0x19d00a(0x208,'fGqL')]>=this[_0x19d00a(0x22d,'Vhcp')]){const _0x4bb34a=this[_0x19d00a(0x20c,'*)[K')][_0x19d00a(0x1ed,'[CTb')]()[_0x19d00a(0x1fc,'14d)')]()[_0x19d00a(0x1f4,'s(8Q')];if(_0x4bb34a!==undefined)this[_0x19d00a(0x23b,'9A]u')][_0x19d00a(0x1ea,'E!AO')](_0x4bb34a);}this['store'][_0x19d00a(0x1fb,'lRNI')](_0x5ba295,{'data':_0x75832f,'expiresAt':Date[_0x19d00a(0x212,'14d)')]()+_0x26f6c9});}[a2_0x45a886(0x236,'2o9*')](_0x4f35fb){const _0x50a2f9=a2_0x45a886;return this[_0x50a2f9(0x237,'*z*L')](_0x4f35fb)!==undefined;}[a2_0x45a886(0x20a,'9FGi')](){const _0x5e60a3=a2_0x45a886;this[_0x5e60a3(0x226,'4!^)')][_0x5e60a3(0x214,'JGWW')]();}[a2_0x45a886(0x200,'Jb]f')](){const _0x5b11a1=a2_0x45a886;return this[_0x5b11a1(0x20d,'&L63')][_0x5b11a1(0x22f,'5ydo')];}}export class DiskCache{[a2_0x45a886(0x22a,'*)[K')];[a2_0x45a886(0x223,'7!JN')+'d']=![];constructor(_0x37013a=DISK_CACHE_DIR){const _0x58a092=a2_0x45a886;this[_0x58a092(0x231,'m&@M')]=_0x37013a;}async[a2_0x45a886(0x22c,'vgBj')](){const _0x63e3e9=a2_0x45a886;if(this[_0x63e3e9(0x210,'*)[K')+'d'])return!![];try{return await mkdir(this[_0x63e3e9(0x1eb,'7!JN')],{'recursive':!![]}),this[_0x63e3e9(0x206,'9A]u')+'d']=!![],!![];}catch{return![];}}[a2_0x45a886(0x220,'9FGi')](_0x4896af){const _0x4a1e16=a2_0x45a886,_0x28540a=createHash(_0x4a1e16(0x1f8,'Lrnp'))['update'](_0x4896af)[_0x4a1e16(0x221,'M7vC')]('hex');return join(this[_0x4a1e16(0x227,'&L63')],_0x28540a+_0x4a1e16(0x21e,'Q^F5'));}async[a2_0x45a886(0x23d,'t^Js')](_0x510753){const _0x1ce60c=a2_0x45a886;if(!await this[_0x1ce60c(0x202,'J68S')]())return undefined;const _0x3f2fec=this[_0x1ce60c(0x234,'M7vC')](_0x510753);try{const _0x107bb3=await readFile(_0x3f2fec,_0x1ce60c(0x1f7,'Jb]f')),_0x405855=JSON[_0x1ce60c(0x1fa,'Lrnp')](_0x107bb3);if(Date[_0x1ce60c(0x209,'*)[K')]()>_0x405855[_0x1ce60c(0x228,'L691')])return unlink(_0x3f2fec)[_0x1ce60c(0x23c,'9FGi')](()=>void 0x0),undefined;return _0x405855[_0x1ce60c(0x219,'b0qh')];}catch{return undefined;}}async[a2_0x45a886(0x203,'E!AO')](_0x27f07c,_0x3958d0,_0x1a9871=CACHE_TTL_MS){const _0x16b07d=a2_0x45a886;if(!await this[_0x16b07d(0x1e9,'vm2f')]())return;const _0x13487a=this[_0x16b07d(0x21a,'vm2f')](_0x27f07c),_0x12a8f0={'data':_0x3958d0,'expiresAt':Date[_0x16b07d(0x1e8,'T&Wa')]()+_0x1a9871};try{await writeFile(_0x13487a,JSON[_0x16b07d(0x20f,'M7vC')](_0x12a8f0),_0x16b07d(0x22e,'2o9*'));}catch{}}async[a2_0x45a886(0x238,'pUmk')](_0x582447){const _0x58b9f5=a2_0x45a886;if(!await this[_0x58b9f5(0x205,'fGqL')]())return![];const _0x256d26=this[_0x58b9f5(0x232,'5ydo')](_0x582447);try{const _0x386474=await readFile(_0x256d26,_0x58b9f5(0x21b,'t^Js')),_0x5e8f70=JSON[_0x58b9f5(0x229,'T&Wa')](_0x386474);return Date[_0x58b9f5(0x235,'pUmk')]()<=_0x5e8f70[_0x58b9f5(0x23a,'o!Xx')];}catch{return![];}}}export const docCache=new LRUCache(0xc8);export const resolveCache=new LRUCache(0x1f4);function a2_0x2983(){const _0x317689=['mSoNpq','W7ddRrhcJCoMW6tdVXm','l8kDWRzlWQbsWOXtWPW','oSoReuhdJW','i1b4WOxdIa','W6BdHGG','W5xcMvddP8khWQaZW7a','WPFdMexdM8ki','W4bOWPVcUglcUq','sSoWeSoJW4S','WQJcSam','WPhcMbbKWO/cPSoccSkP','WRJdQMLRiHK','D8oWWQ0','uSo0W4qPW7HvW5qH','W5ZcVmkKWOW','W7ZcVCo7','WQdcRmop','WOzimdFcK8kMWOxcSXC','kLn0kZtdSSka','sCo1vHhcSW','WOWyW7jaWRRdRg4ZW7FdPmkXWPm','WPVcGCo9WOLe','W5GnW5ntWPVdGCoIWQDb','WRydnXTfrmoZBCkUW6ddGW','fSk1W5HkWQO','retdNCkMW5yz','rfJdK8oMWOy','r03dJSoNWOy','WOxdVcO','WPKZg3S','CxlcQW','kSopWQSYW5P6DW','nI7dQ3NdJ2yLeSoostpdIq','emkOW4qc','WRtcRmop','vCkGC18lWPfzWPiK','WQ/dQNe','WPBdPbBcLmkMwq','ESoEWPiYW5Cqd8kUWQS','imoXf0FdG8o3W4ZdNmo6WO0','W7tdQKxdNmkVW6pdNWnJWQ09','BmozWPSI','WO3dMSkS','i11PWOFdKG','WOddQ8oUW4y6o8krW4FcN8kJffjv','WPddGCk0WQWJ','WRygbSkKW68','WQ/dOCk7a8oxCmkfW5ZcGCkIs8ot','WPKZeSk4WQtdRx7cUCo9','WORdM8kYWQOVWQVdOCk+pZ0','WPa1W4FdRsddQ8kNWO7cIG/dJSks','WPK5fa','W5PJW5zKW5CPW7dcLayrW5BdMSk5','W6jSW7eLWRm','cCo/W5RcHX3cTCkm','WP5WygVdNCovemoKWOfzdmoZWRm','W6xdGGJcRW','FmodkYNdLvFdTeRdTW','WO00WPS9','WP/cKXPfWPlcK8oNf8kZ','W7tdLXRdO8oo','q8k6B1GC','xCkVEhKqWO54','hZDYnSkZ','WOpcQmkAWQ99rCoh','k1r1WRldJ0WjCmoD','WO4Ub8k0WRNdVG','W7fkwCoMWRZcLZpcTCkqoxvd','ESo3WRy0W6fEASo0g8kQ','W4ldHaz3WOxcLSoxjG','c1D+sSoMWPCTWPJdUSkrWPr3','AmovvxBdPW','WQeBgW','EmkpWR4LW5JdSWDaWQK','WRBcVGBcMmo7','WOFdNmkP','CWy6W5tcLYSfCSoKCaaY','W7ZcHdhdPftdImoVWOXz','zrNcH8oGeCo/WOK','D2pcUwBdGa','WOhdQadcLa','WOWDW7LkWRRdPqGKW4ddHmklWRZdQG','xSoOsW','WPNdPapcPCk9BgrXcW','W4CTja','WOeIgCkfWQxdMNBcQ8oS','nmoPoq','ANBcRa','v8omW5O'];a2_0x2983=function(){return _0x317689;};return a2_0x2983();}export const diskDocCache=new DiskCache();
1
+ const a2_0x179035=a2_0x37f9;(function(_0xf2da24,_0x42fa67){const _0x121a9a=a2_0x37f9,_0x1035c0=_0xf2da24();while(!![]){try{const _0x399275=parseInt(_0x121a9a(0xbd,'&dxp'))/0x1+parseInt(_0x121a9a(0x9f,'e16G'))/0x2+-parseInt(_0x121a9a(0xc0,'nme9'))/0x3*(-parseInt(_0x121a9a(0x91,'8pW2'))/0x4)+parseInt(_0x121a9a(0xaf,'ijDT'))/0x5*(parseInt(_0x121a9a(0x94,'6M8c'))/0x6)+-parseInt(_0x121a9a(0xa5,'BTDw'))/0x7*(parseInt(_0x121a9a(0xe1,'As(A'))/0x8)+parseInt(_0x121a9a(0xd5,'Xbzw'))/0x9*(parseInt(_0x121a9a(0xa1,'4ECn'))/0xa)+-parseInt(_0x121a9a(0x95,'21O$'))/0xb*(parseInt(_0x121a9a(0xd3,'OUsC'))/0xc);if(_0x399275===_0x42fa67)break;else _0x1035c0['push'](_0x1035c0['shift']());}catch(_0x14c401){_0x1035c0['push'](_0x1035c0['shift']());}}}(a2_0x70ce,0x8dbe7));import{CACHE_TTL_MS,DISK_CACHE_DIR}from'../constants.js';import{createHash}from'crypto';import{readFile,writeFile,mkdir,unlink}from'fs/promises';function a2_0x37f9(_0x90a956,_0x26b4b5){_0x90a956=_0x90a956-0x8b;const _0x70ce89=a2_0x70ce();let _0x37f9c4=_0x70ce89[_0x90a956];if(a2_0x37f9['fiOSId']===undefined){var _0x4c3a7d=function(_0x2b8d18){const _0x111ebd='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4c964a='',_0x13eecc='';for(let _0x58e12e=0x0,_0x4b891a,_0x3c7d1c,_0x49a401=0x0;_0x3c7d1c=_0x2b8d18['charAt'](_0x49a401++);~_0x3c7d1c&&(_0x4b891a=_0x58e12e%0x4?_0x4b891a*0x40+_0x3c7d1c:_0x3c7d1c,_0x58e12e++%0x4)?_0x4c964a+=String['fromCharCode'](0xff&_0x4b891a>>(-0x2*_0x58e12e&0x6)):0x0){_0x3c7d1c=_0x111ebd['indexOf'](_0x3c7d1c);}for(let _0x754506=0x0,_0x4376dd=_0x4c964a['length'];_0x754506<_0x4376dd;_0x754506++){_0x13eecc+='%'+('00'+_0x4c964a['charCodeAt'](_0x754506)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x13eecc);};const _0x39d170=function(_0x30dfa8,_0x27e1e8){let _0x1744ac=[],_0x5097e6=0x0,_0x387214,_0x159b9d='';_0x30dfa8=_0x4c3a7d(_0x30dfa8);let _0x16d009;for(_0x16d009=0x0;_0x16d009<0x100;_0x16d009++){_0x1744ac[_0x16d009]=_0x16d009;}for(_0x16d009=0x0;_0x16d009<0x100;_0x16d009++){_0x5097e6=(_0x5097e6+_0x1744ac[_0x16d009]+_0x27e1e8['charCodeAt'](_0x16d009%_0x27e1e8['length']))%0x100,_0x387214=_0x1744ac[_0x16d009],_0x1744ac[_0x16d009]=_0x1744ac[_0x5097e6],_0x1744ac[_0x5097e6]=_0x387214;}_0x16d009=0x0,_0x5097e6=0x0;for(let _0x35ba31=0x0;_0x35ba31<_0x30dfa8['length'];_0x35ba31++){_0x16d009=(_0x16d009+0x1)%0x100,_0x5097e6=(_0x5097e6+_0x1744ac[_0x16d009])%0x100,_0x387214=_0x1744ac[_0x16d009],_0x1744ac[_0x16d009]=_0x1744ac[_0x5097e6],_0x1744ac[_0x5097e6]=_0x387214,_0x159b9d+=String['fromCharCode'](_0x30dfa8['charCodeAt'](_0x35ba31)^_0x1744ac[(_0x1744ac[_0x16d009]+_0x1744ac[_0x5097e6])%0x100]);}return _0x159b9d;};a2_0x37f9['BRTpgj']=_0x39d170,a2_0x37f9['uZhKtG']={},a2_0x37f9['fiOSId']=!![];}const _0x41c1ba=_0x70ce89[0x0],_0x2da779=_0x90a956+_0x41c1ba,_0x24b5c8=a2_0x37f9['uZhKtG'][_0x2da779];return!_0x24b5c8?(a2_0x37f9['pPzzvT']===undefined&&(a2_0x37f9['pPzzvT']=!![]),_0x37f9c4=a2_0x37f9['BRTpgj'](_0x37f9c4,_0x26b4b5),a2_0x37f9['uZhKtG'][_0x2da779]=_0x37f9c4):_0x37f9c4=_0x24b5c8,_0x37f9c4;}import{join}from'path';class LRUCache{[a2_0x179035(0x8f,'$Ufo')]=new Map();[a2_0x179035(0xd1,'21O$')];constructor(_0x111ebd=0xc8){const _0x43c10c=a2_0x179035;this[_0x43c10c(0xbf,'RJfg')]=_0x111ebd;}[a2_0x179035(0xca,'7Qaf')](_0x4c964a){const _0x4b9bce=a2_0x179035,_0x13eecc=this[_0x4b9bce(0xda,'^s$M')][_0x4b9bce(0xad,'UZSa')](_0x4c964a);if(!_0x13eecc)return undefined;if(Date['now']()>_0x13eecc[_0x4b9bce(0x90,'^s$M')])return this[_0x4b9bce(0x8f,'$Ufo')][_0x4b9bce(0xa3,'0Vw$')](_0x4c964a),undefined;return this[_0x4b9bce(0xda,'^s$M')][_0x4b9bce(0xc2,'p[48')](_0x4c964a),this[_0x4b9bce(0xae,'lxY4')][_0x4b9bce(0xb2,'Xbzw')](_0x4c964a,_0x13eecc),_0x13eecc['data'];}[a2_0x179035(0xd4,'ijDT')](_0x58e12e,_0x4b891a,_0x3c7d1c=CACHE_TTL_MS){const _0x1f9684=a2_0x179035;if(this[_0x1f9684(0xc8,'AtHr')][_0x1f9684(0xb4,'fFFD')]>=this['maxSize']){const _0x49a401=this[_0x1f9684(0xbb,'VW%k')][_0x1f9684(0xbe,'@QM@')]()[_0x1f9684(0xa9,'sGJ2')]()[_0x1f9684(0x99,'BTDw')];if(_0x49a401!==undefined)this[_0x1f9684(0xcc,'6M8c')]['delete'](_0x49a401);}this[_0x1f9684(0xd9,'fFFD')][_0x1f9684(0xb1,'$Ufo')](_0x58e12e,{'data':_0x4b891a,'expiresAt':Date[_0x1f9684(0xb6,'Lh^C')]()+_0x3c7d1c});}[a2_0x179035(0xac,'e16G')](_0x754506){const _0x70acd5=a2_0x179035;return this[_0x70acd5(0xb8,'^s$M')](_0x754506)!==undefined;}[a2_0x179035(0xd6,'@QM@')](){const _0x1c13c7=a2_0x179035;this[_0x1c13c7(0xc7,'anyq')][_0x1c13c7(0xce,'b(74')]();}[a2_0x179035(0x92,'7Qaf')](){const _0xa51f20=a2_0x179035;return this[_0xa51f20(0xa0,'^1BN')][_0xa51f20(0xdd,'XJg&')];}}export class DiskCache{[a2_0x179035(0xc5,'lxY4')];[a2_0x179035(0x9d,'eQCC')+'d']=![];constructor(_0x4376dd=DISK_CACHE_DIR){const _0x1bcd43=a2_0x179035;this[_0x1bcd43(0x8e,'@hpn')]=_0x4376dd;}async[a2_0x179035(0xd0,'^1BN')](){const _0x24182d=a2_0x179035;if(this[_0x24182d(0xd8,'nme9')+'d'])return!![];try{return await mkdir(this['dir'],{'recursive':!![]}),this['initialize'+'d']=!![],!![];}catch{return![];}}[a2_0x179035(0xa7,'kK5R')](_0x30dfa8){const _0x224563=a2_0x179035,_0x27e1e8=createHash(_0x224563(0xb3,'[m2!'))[_0x224563(0xdb,'WU$C')](_0x30dfa8)[_0x224563(0x8c,'@hpn')](_0x224563(0x9b,'BTDw'));return join(this[_0x224563(0x93,'$Ufo')],_0x27e1e8+_0x224563(0x96,'7Qaf'));}async[a2_0x179035(0xe0,'ppq7')](_0x1744ac){const _0x284fd2=a2_0x179035;if(!await this[_0x284fd2(0x98,'E7fr')]())return undefined;const _0x5097e6=this[_0x284fd2(0xb5,'ijDT')](_0x1744ac);try{const _0x387214=await readFile(_0x5097e6,_0x284fd2(0x97,'AtHr')),_0x159b9d=JSON[_0x284fd2(0xa4,'4ECn')](_0x387214);if(Date[_0x284fd2(0x9e,'21O$')]()>_0x159b9d[_0x284fd2(0xc4,'E7fr')])return unlink(_0x5097e6)[_0x284fd2(0xba,'5ufu')](()=>void 0x0),undefined;return _0x159b9d[_0x284fd2(0xdc,'As(A')];}catch{return undefined;}}async[a2_0x179035(0xab,'&dxp')](_0x16d009,_0x35ba31,_0x1860d0=CACHE_TTL_MS){const _0x373235=a2_0x179035;if(!await this[_0x373235(0xdf,'@QM@')]())return;const _0x69abc3=this[_0x373235(0xaa,'8pW2')](_0x16d009),_0x5a4349={'data':_0x35ba31,'expiresAt':Date[_0x373235(0xd7,'[m2!')]()+_0x1860d0};try{await writeFile(_0x69abc3,JSON[_0x373235(0x8b,'anyq')](_0x5a4349),'utf-8');}catch{}}async[a2_0x179035(0xb7,'8pW2')](_0x33788d){const _0x102f77=a2_0x179035;if(!await this[_0x102f77(0xd2,'Qpu1')]())return![];const _0x168669=this[_0x102f77(0xa8,'[m2!')](_0x33788d);try{const _0x5b6acf=await readFile(_0x168669,_0x102f77(0xcf,'[g7m')),_0x33535f=JSON[_0x102f77(0xc3,'[g7m')](_0x5b6acf);return Date[_0x102f77(0xa6,'nme9')]()<=_0x33535f[_0x102f77(0xde,'XJg&')];}catch{return![];}}}function a2_0x70ce(){const _0x144f15=['W5fmemoWW64','fuuDW4BcGYaqW6RdN24','efjc','WRpdVxKyhSobW55Vx8oS','W6VdR3xcPmoK','W6pcMSkanSkyWQXzW7C1WPVcS8ow','shuVemoJ','WQBdTmk7W5Ks','WRddGmocCCoCW7LTW5yL','sfKRtsm1lq','W7fXWOFcQGr3ubCW','wrtcU8kEqGNdOM8Bs1VcKCkcuW','WO3cLSoM','imo0zCkXdmkedW','dmo+W6SPWOG','WRlcISoL','W63cPcjDjCoWW6bID8oz','p2RcSeBdKW','tapcICoMlq','W6NdNeTCumkS','EN/cOaW','WQ/cMSoOtG','WRNcI8oIqI3dPtXkW7e','cSo8W709WOJdGwhcISkI','W47cVSoE','lcZdRfuAamk/fSomW7W','WOj/WQhcSmkGWQ7cP8kyWP8','WQZdVwerWPddPW','WQ1kWQhcLHD4zW','WQZdVxq','iJv7iNi','wG/cLSo9oSovr3OY','W6RdVCoxW6RdRmkCW7XPWOfTwSkEWPW','bf5mma','nsHM','WQ/cQYpdRSogWRfJww/dHa','faK8zXOed8oI','wv1foJy','W5DmgCkVWRm','b8kqW6vxW7pcQMZdL8kx','xmoiWO4QWQe','W51Dj01Bp2xcNYfMBSoeWQm','qSomWPO','W63dLmo9BSk6W6zFsG','qCk0WQFcKCotWOGnkIZcNq','s1CK','W4aTu0DhW6pcR8k0W5f8WRiS','WQBdMSoEDSol','WQhdH8kWFJZdVCoexCoJgapcU8oe','W4uRuuaIWPdcISk5W5z8','WQ5RW41lDLe','W6BcLCoXowK','hCkEW5bUWPyQWRqcWOmT','W6RcPtW','jutcJmktW5RdS8kgEua','WRFcGmoRq8kfW715ACoX','l8knWQZdMa','WRxcRmkyWORcU8o8WQL6WRe','WRxcPCkA','WP54eq','WRDRW60','W4dcOrVcKMm','W43dGCkHySk4vs3dHHu4','ErldHSoZWOxcLCoxt1GbySoJWPa','iIrG','ASoera','WQ/cJCoZjCoFWPS','p3FcPve','WPxcLSoRa8kerHNdTXG','CXX2','WRBcQmks','wblcKG','eGHQjG0Aamo2WPtdJq','vcRcGCo/W4m','vankWOZcLq','g8kFW5jSW7nnWPWNWOSyW7T5','W7FdTSoEWOlcN27dV8ktWQ/cMdFcSa','bmo3W7C7','hmk4dKhcS8oFpG','WRFcKWPcoSoqW4m','yHHvo2eKWOu','tciQWP7cKs8','WQpdOCkVWODp','b8kgW6zlW7pcQLVdV8kr','W5FcVay','rqefBgfNW5n9CIfsmWXK','WOj/WRZcQ8kR'];a2_0x70ce=function(){return _0x144f15;};return a2_0x70ce();}export const docCache=new LRUCache(0xc8);export const resolveCache=new LRUCache(0x1f4);export const diskDocCache=new DiskCache();