@groundtruth-mcp/gt-mcp 2.3.2 → 2.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +89 -29
- package/dist/constants.d.ts +1 -1
- package/dist/constants.js +1 -1
- package/dist/index.js +1 -1
- package/dist/services/cache.js +1 -1
- package/dist/services/fetcher.d.ts +12 -1
- package/dist/services/fetcher.js +1 -1
- package/dist/sources/registry.js +1 -1
- package/dist/tools/audit.d.ts +9 -2
- package/dist/tools/audit.js +1 -1
- package/dist/tools/auto-scan.js +1 -1
- package/dist/tools/best-practices.js +1 -1
- package/dist/tools/changelog.js +1 -1
- package/dist/tools/compare.js +1 -1
- package/dist/tools/compat.js +1 -1
- package/dist/tools/docs.js +1 -1
- package/dist/tools/examples.d.ts +2 -0
- package/dist/tools/examples.js +1 -0
- package/dist/tools/resolve.js +1 -1
- package/dist/tools/search.js +1 -1
- package/dist/types.d.ts +5 -2
- package/dist/utils/extract.js +1 -1
- package/dist/utils/guard.js +1 -1
- package/dist/utils/lockfile.d.ts +7 -0
- package/dist/utils/lockfile.js +1 -0
- package/dist/utils/sanitize.js +1 -1
- package/dist/utils/version-check.d.ts +6 -0
- package/dist/utils/version-check.js +1 -0
- package/dist/utils/watermark.d.ts +1 -1
- package/dist/utils/watermark.js +1 -1
- package/package.json +5 -1
package/README.md
CHANGED
|
@@ -15,8 +15,14 @@
|
|
|
15
15
|
<a href="./LICENSE"><img src="https://img.shields.io/badge/license-ELv2-orange" alt="Elastic License 2.0" /></a>
|
|
16
16
|
<img src="https://img.shields.io/badge/libraries-363%2B-teal" alt="363+ libraries" />
|
|
17
17
|
<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-
|
|
18
|
+
<img src="https://img.shields.io/badge/tests-676-brightgreen" alt="676 tests" />
|
|
19
19
|
<img src="https://img.shields.io/badge/node-%3E%3D24-green" alt="Node 24+" />
|
|
20
|
+
<img src="https://img.shields.io/badge/status-active%20development-blue" alt="Active Development" />
|
|
21
|
+
</p>
|
|
22
|
+
|
|
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.
|
|
20
26
|
</p>
|
|
21
27
|
|
|
22
28
|
---
|
|
@@ -64,7 +70,17 @@ Add to your MCP config (`claude_desktop_config.json`, `.cursor/mcp.json`, or `.v
|
|
|
64
70
|
}
|
|
65
71
|
```
|
|
66
72
|
|
|
67
|
-
No build step. No config file. Node.js 24+. npx pulls the
|
|
73
|
+
No build step. No config file. Node.js 24+. Using `@latest` means npx pulls the newest version on every session start automatically — you always get the latest libraries, audit patterns, and fixes without doing anything.
|
|
74
|
+
|
|
75
|
+
### Automatic updates
|
|
76
|
+
|
|
77
|
+
GroundTruth checks npm for new versions on every startup. If a newer version exists, you get a notification:
|
|
78
|
+
|
|
79
|
+
- **stderr log** — visible in your MCP client's server output
|
|
80
|
+
- **MCP logging message** — surfaces in clients that support MCP log notifications
|
|
81
|
+
- **Tool response footer** — appended to every tool response until you restart with the latest version
|
|
82
|
+
|
|
83
|
+
Since the install uses `npx -y @groundtruth-mcp/gt-mcp@latest`, restarting your MCP client (or starting a new session) is enough to get the update. No manual `npm update` needed.
|
|
68
84
|
|
|
69
85
|
### Optional: GitHub token
|
|
70
86
|
|
|
@@ -92,7 +108,7 @@ A token with no extra scopes (public repo read) is enough. Takes the limit from
|
|
|
92
108
|
|
|
93
109
|
## Tools
|
|
94
110
|
|
|
95
|
-
|
|
111
|
+
Ten tools. Each does one thing and stops there.
|
|
96
112
|
|
|
97
113
|
| Tool | What it does |
|
|
98
114
|
|---|---|
|
|
@@ -104,7 +120,7 @@ Nine tools. Each does one thing and stops there.
|
|
|
104
120
|
| `gt_audit` | Scan your source files — finds real issues at exact `file:line` with live fixes attached |
|
|
105
121
|
| `gt_changelog` | Fetch release notes before you run `npm update` and regret it |
|
|
106
122
|
| `gt_compat` | Check browser and runtime compatibility — before Safari breaks your launch |
|
|
107
|
-
| `gt_compare` | Compare 2
|
|
123
|
+
| `gt_compare` | Compare 2-3 libraries side-by-side so you can finally pick one and move on |
|
|
108
124
|
|
|
109
125
|
---
|
|
110
126
|
|
|
@@ -148,7 +164,7 @@ gt_audit({ categories: ["typescript", "react"] }) // type safety + React ru
|
|
|
148
164
|
gt_audit({
|
|
149
165
|
projectPath: "./src", // defaults to cwd
|
|
150
166
|
categories: ["security"], // or "all" (default)
|
|
151
|
-
maxFiles: 100, // 1
|
|
167
|
+
maxFiles: 100, // 1-200, default 50
|
|
152
168
|
tokens: 6000, // max tokens per docs fetch, default 4000
|
|
153
169
|
})
|
|
154
170
|
```
|
|
@@ -207,7 +223,7 @@ gt_compat({ feature: "CSS :has() selector", environments: ["safari", "firefox"]
|
|
|
207
223
|
|
|
208
224
|
## `gt_compare` — pick one already
|
|
209
225
|
|
|
210
|
-
Side-by-side comparison of 2
|
|
226
|
+
Side-by-side comparison of 2-3 libraries. Fetches live docs for each and filters to content relevant to your criteria. Useful for the "prisma vs drizzle" debate you've been having with yourself for three weeks while using neither.
|
|
211
227
|
|
|
212
228
|
```
|
|
213
229
|
gt_compare({ libraries: ["prisma", "drizzle-orm"] })
|
|
@@ -220,7 +236,7 @@ gt_compare({ libraries: ["react", "solid-js"], criteria: "performance rendering"
|
|
|
220
236
|
|
|
221
237
|
## `gt_search` — anything that isn't a specific library
|
|
222
238
|
|
|
223
|
-
For questions not tied to a particular package. Pulls from OWASP, MDN, web.dev, W3C, official language docs, AI provider 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.
|
|
239
|
+
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.
|
|
224
240
|
|
|
225
241
|
```
|
|
226
242
|
gt_search({ query: "WCAG 2.2 focus indicators" })
|
|
@@ -229,26 +245,36 @@ gt_search({ query: "Core Web Vitals LCP optimization" })
|
|
|
229
245
|
gt_search({ query: "gRPC vs REST tradeoffs" })
|
|
230
246
|
gt_search({ query: "OpenTelemetry Node.js setup" })
|
|
231
247
|
gt_search({ query: "RAG retrieval patterns" })
|
|
232
|
-
gt_search({ query: "
|
|
233
|
-
gt_search({ query: "
|
|
248
|
+
gt_search({ query: "Google Gemini API function calling" })
|
|
249
|
+
gt_search({ query: "Claude tool use best practices" })
|
|
250
|
+
gt_search({ query: "OpenAI structured output" })
|
|
251
|
+
gt_search({ query: "Firebase Firestore security rules" })
|
|
234
252
|
```
|
|
235
253
|
|
|
236
254
|
### Covered topic areas
|
|
237
255
|
|
|
238
256
|
| Area | Topics |
|
|
239
257
|
|---|---|
|
|
240
|
-
| Security | OWASP Top 10, SQL injection, XSS / CSP, CSRF, HSTS, authentication, CORS, JWT, OAuth 2.1, OIDC, WebAuthn / passkeys |
|
|
258
|
+
| Security | OWASP Top 10, SQL injection, XSS / CSP, CSRF, HSTS, authentication, CORS, JWT, OAuth 2.1, OIDC, WebAuthn / passkeys, SSRF, file upload security, clickjacking, path traversal, API security, supply chain / SBOM |
|
|
241
259
|
| Accessibility | WCAG 2.2, WAI-ARIA, keyboard navigation |
|
|
242
260
|
| Performance | Core Web Vitals, image optimization, web fonts, Speculation Rules API |
|
|
243
|
-
| Web APIs | Fetch, Web Workers, Service Workers, WebSocket, WebRTC, IndexedDB, Web Crypto, Intersection Observer, ResizeObserver, Web Animations API, WebAssembly |
|
|
244
|
-
| CSS | Grid, Flexbox, Container Queries, Custom Properties, View Transitions, Cascade Layers |
|
|
245
|
-
| HTTP & protocols | Headers, caching, HTTP/2, HTTP/3, REST, OpenAPI, GraphQL, gRPC / Protocol Buffers, Server-Sent Events |
|
|
246
|
-
| Standards | JSON
|
|
247
|
-
|
|
|
248
|
-
|
|
|
261
|
+
| Web APIs | Fetch, Web Workers, Service Workers, WebSocket, WebRTC, IndexedDB, Web Crypto, Intersection Observer, ResizeObserver, Web Animations API, WebAssembly, AbortController, File System Access API |
|
|
262
|
+
| CSS | Grid, Flexbox, Container Queries, Custom Properties, View Transitions, Cascade Layers, Nesting, :has(), Subgrid, Scroll-driven Animations, oklch / color-mix, @scope |
|
|
263
|
+
| HTTP & protocols | Headers, caching, HTTP/2, HTTP/3, REST, OpenAPI, GraphQL, gRPC / Protocol Buffers, Server-Sent Events, JSON Schema |
|
|
264
|
+
| Standards | JSON-LD / Structured Data, OpenTelemetry, Semantic Versioning, MCP Protocol, Intl API, i18n / Localization |
|
|
265
|
+
| Google APIs | Gemini API, Maps API, Analytics 4, Ads API, Search Console, Sheets API, Drive API, Calendar API, OAuth / Identity, Tag Manager, reCAPTCHA, Lighthouse / PageSpeed, YouTube API, Gmail API, Workspace / Apps Script, Custom Search, Chrome Extensions, SEO guidelines, Fonts API |
|
|
266
|
+
| Google Cloud | Cloud Run, Cloud Functions, Cloud Storage, BigQuery, Pub/Sub, Vertex AI, Vision API, Speech APIs, Translation, Natural Language, GKE, IAM |
|
|
267
|
+
| Firebase | Firestore, Authentication, Cloud Functions, Hosting |
|
|
268
|
+
| Anthropic / Claude | Claude API, tool use, prompt caching, vision, extended thinking, computer use, streaming, message batches, PDF support, citations, models, rate limits, Claude Code, Agent SDK |
|
|
269
|
+
| OpenAI | Chat API, Responses API, function calling, structured output, embeddings, fine-tuning, vision, image generation, Whisper / STT, TTS, Realtime API, Batch API, moderation, Agents SDK, rate limits, production best practices |
|
|
270
|
+
| AI providers | Mistral AI, Cohere, Groq, Replicate, Together AI, Hugging Face |
|
|
271
|
+
| AI frameworks | LangChain, LangGraph, LlamaIndex, CrewAI, AutoGen |
|
|
272
|
+
| AI concepts | Agents & tool calling, RAG, prompt engineering, vector search / embeddings, fine-tuning, AI safety, evaluation, multimodal AI, code generation, voice AI |
|
|
273
|
+
| Vector databases | Pinecone, Chroma, Weaviate |
|
|
274
|
+
| Infrastructure | Docker, Kubernetes, GitHub Actions, Terraform, Cloudflare Workers, monorepo patterns |
|
|
249
275
|
| Databases | PostgreSQL, Redis, MongoDB |
|
|
250
276
|
| Languages | Rust, Go, Python, Node.js, TypeScript |
|
|
251
|
-
| Frameworks | NestJS, Elysia, Payload CMS, Kysely, Pinia, React Native / Expo + full ecosystem |
|
|
277
|
+
| Frameworks | NestJS, Elysia, Angular, Flutter, Payload CMS, Kysely, Pinia, React Native / Expo + full ecosystem, Material Design |
|
|
252
278
|
|
|
253
279
|
---
|
|
254
280
|
|
|
@@ -276,6 +302,8 @@ use gt to check WCAG focus indicators
|
|
|
276
302
|
use gt for OpenTelemetry setup
|
|
277
303
|
find all issues and fix with gt
|
|
278
304
|
use gt for gRPC
|
|
305
|
+
use gt for Google Gemini API
|
|
306
|
+
use gt for Claude tool use
|
|
279
307
|
```
|
|
280
308
|
|
|
281
309
|
### Direct tool calls
|
|
@@ -286,6 +314,8 @@ gt_get_docs({ libraryId: "nestjs/nest", topic: "guards" })
|
|
|
286
314
|
gt_best_practices({ libraryId: "vercel/next.js", topic: "caching" })
|
|
287
315
|
gt_auto_scan({ projectPath: "." })
|
|
288
316
|
gt_search({ query: "OpenTelemetry Node.js distributed tracing" })
|
|
317
|
+
gt_search({ query: "Google Gemini API function calling" })
|
|
318
|
+
gt_search({ query: "Claude prompt caching" })
|
|
289
319
|
gt_audit({ projectPath: ".", categories: ["security", "accessibility"] })
|
|
290
320
|
gt_changelog({ libraryId: "vercel/next.js", version: "15" })
|
|
291
321
|
gt_compat({ feature: "CSS container queries", environments: ["safari"] })
|
|
@@ -322,9 +352,14 @@ Every major ecosystem. If a library publishes an `llms.txt`, it's probably in he
|
|
|
322
352
|
| Backend (Go) | Gin, Fiber, GORM, chi |
|
|
323
353
|
| Backend (Rust) | Axum, Actix Web, sqlx, Tokio |
|
|
324
354
|
| Database / ORM | Prisma, Drizzle, Kysely, TypeORM, Mongoose, Knex, Supabase, Neon, Turso, Electric SQL |
|
|
325
|
-
| Vector databases | Pinecone, Qdrant |
|
|
326
|
-
| AI /
|
|
327
|
-
| AI
|
|
355
|
+
| Vector databases | Pinecone, Chroma, Weaviate, Qdrant |
|
|
356
|
+
| AI / LLM providers | Anthropic Claude API, OpenAI API, Google Gemini API, Mistral AI, Cohere, Groq, Replicate, Together AI, Fireworks AI |
|
|
357
|
+
| AI SDKs (JS/TS) | Vercel AI SDK, Anthropic SDK, OpenAI SDK, Google Generative AI, LangChain.js, Transformers.js, Ollama, assistant-ui |
|
|
358
|
+
| AI SDKs (Python) | Anthropic Python SDK, OpenAI Python SDK, Google Gemini Python SDK, LangChain, LlamaIndex, CrewAI, LangGraph, AutoGen, HuggingFace Transformers |
|
|
359
|
+
| AI agents | Claude Code, Claude Agent SDK, OpenAI Agents SDK |
|
|
360
|
+
| AI audio / voice | ElevenLabs, Deepgram, AssemblyAI |
|
|
361
|
+
| AI image / video | Stability AI, fal.ai |
|
|
362
|
+
| Google | Firebase, Google Cloud, Google Maps API, Google APIs Client, Vertex AI, Angular, Flutter, Material Design |
|
|
328
363
|
| Testing | Vitest, Playwright, Jest, Testing Library, Cypress, MSW |
|
|
329
364
|
| Auth | Clerk, NextAuth, Better Auth, Lucia, Passport.js |
|
|
330
365
|
| Validation | Zod, Yup, Valibot, Effect |
|
|
@@ -336,12 +371,14 @@ Every major ecosystem. If a library publishes an `llms.txt`, it's probably in he
|
|
|
336
371
|
| Mobile | Expo, React Native, React Navigation, NativeWind, Reanimated, MMKV, FlashList, Skia, Moti |
|
|
337
372
|
| Build tools | Vite, Turbopack, SWC, Rollup, Webpack, Biome, ESLint, Prettier, Turborepo, Nx |
|
|
338
373
|
| Runtime | Node.js, Bun, Deno |
|
|
339
|
-
| Cloud | Vercel, Cloudflare Workers, AWS SDK, Firebase |
|
|
374
|
+
| Cloud | Vercel, Cloudflare Workers, AWS SDK, Firebase, Google Cloud |
|
|
375
|
+
| Monitoring | Sentry, PostHog, OpenTelemetry, Pino |
|
|
376
|
+
| Automation | n8n, Trigger.dev |
|
|
340
377
|
| HTTP clients | Axios, ky |
|
|
341
378
|
| Real-time | Socket.IO, PartyKit |
|
|
342
|
-
| Observability | OpenTelemetry, Sentry, Pino |
|
|
343
379
|
| GraphQL clients | Apollo Client, urql |
|
|
344
|
-
|
|
|
380
|
+
| ML / Deep learning | PyTorch, TensorFlow, HuggingFace Transformers |
|
|
381
|
+
| Serverless | Upstash Redis |
|
|
345
382
|
|
|
346
383
|
---
|
|
347
384
|
|
|
@@ -353,14 +390,17 @@ Context7 is solid. Here's why I reach for this instead.
|
|
|
353
390
|
|---|---|---|
|
|
354
391
|
| Hosting | Self-hosted | Cloud |
|
|
355
392
|
| Rate limits | None | Yes |
|
|
356
|
-
| Source priority | llms.txt
|
|
393
|
+
| Source priority | llms.txt -> Jina -> GitHub | Doc page embeddings |
|
|
357
394
|
| Code audit | Yes — 100+ patterns, 18 categories, file:line, live fixes | No |
|
|
358
|
-
| Freeform search | Yes — OWASP, MDN, AI docs, web standards | Library docs only |
|
|
395
|
+
| Freeform search | Yes — OWASP, MDN, AI docs, Google APIs, web standards | Library docs only |
|
|
359
396
|
| Changelog lookup | Yes — GitHub Releases, CHANGELOG.md, docs site | No |
|
|
360
397
|
| Browser compatibility | Yes — MDN + caniuse.com | No |
|
|
361
|
-
| Library comparison | Yes — 2
|
|
398
|
+
| Library comparison | Yes — 2-3 libraries side-by-side, any criteria | No |
|
|
362
399
|
| Libraries | 363+ curated + npm/PyPI fallback | ~130 |
|
|
400
|
+
| AI coverage | Claude, OpenAI, Gemini, Mistral, Cohere, Groq, LangChain, LlamaIndex, CrewAI, 20+ more | Limited |
|
|
401
|
+
| Google APIs | Full coverage — Maps, Analytics, Ads, Cloud, Firebase, Vertex AI, 30+ services | Partial |
|
|
363
402
|
| Python / Rust / Go | Yes | Limited |
|
|
403
|
+
| Update notifications | Yes — notifies when new version available | No |
|
|
364
404
|
| API key required | No | No |
|
|
365
405
|
|
|
366
406
|
The two tools approach the same problem from different angles. Context7 embeds doc pages and retrieves them by semantic similarity. GroundTruth fetches from the source at query time and prioritizes `llms.txt` files — content the maintainers specifically wrote for LLM consumption. Neither is universally better, but when you hit a rate limit at 11pm debugging a production issue, "self-hosted with no quota" stops being a nice-to-have.
|
|
@@ -369,7 +409,7 @@ The two tools approach the same problem from different angles. Context7 embeds d
|
|
|
369
409
|
|
|
370
410
|
## Tests
|
|
371
411
|
|
|
372
|
-
|
|
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.
|
|
373
413
|
|
|
374
414
|
```bash
|
|
375
415
|
npm test # run all tests
|
|
@@ -384,6 +424,7 @@ npm run typecheck # TypeScript strict check (no emit)
|
|
|
384
424
|
| `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) |
|
|
385
425
|
| `src/utils/extract.test.ts` | Topic relevance ranking, truncation, document order preservation |
|
|
386
426
|
| `src/utils/sanitize.test.ts` | Prompt injection stripping, `<script>`/`<style>` removal, navigation link cleanup |
|
|
427
|
+
| `src/utils/version-check.test.ts` | Version comparison, update notification formatting, pending update state |
|
|
387
428
|
|
|
388
429
|
Tests run in CI on every push and pull request to `main`. See `.github/workflows/ci.yml`.
|
|
389
430
|
|
|
@@ -391,13 +432,26 @@ Tests run in CI on every push and pull request to `main`. See `.github/workflows
|
|
|
391
432
|
|
|
392
433
|
## Requirements
|
|
393
434
|
|
|
394
|
-
- Node.js
|
|
435
|
+
- Node.js 24+
|
|
395
436
|
- Claude Code, Cursor, VS Code (MCP extension), or Claude Desktop
|
|
396
437
|
|
|
397
438
|
That's it. No Docker. No config files. No environment variables unless you want the GitHub token.
|
|
398
439
|
|
|
399
440
|
---
|
|
400
441
|
|
|
442
|
+
## Active development
|
|
443
|
+
|
|
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.
|
|
445
|
+
|
|
446
|
+
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
|
+
|
|
448
|
+
To stay updated:
|
|
449
|
+
- **Star and watch** the [GitHub repo](https://github.com/rm-rf-prod/GroundTruth-MCP) for release notifications
|
|
450
|
+
- **Use `@latest`** in your MCP config (the default install command) — npx fetches the newest version automatically
|
|
451
|
+
- **Check tool responses** — GroundTruth appends an update notice when a newer version is available
|
|
452
|
+
|
|
453
|
+
---
|
|
454
|
+
|
|
401
455
|
## Contributing
|
|
402
456
|
|
|
403
457
|
The library registry lives in `src/sources/registry.ts`. Adding a library is a PR with `id`, `name`, `docsUrl`, and `llmsTxtUrl` if the project publishes one. If you've been frustrated by a library not being covered, that's the fix — it takes about five minutes.
|
|
@@ -408,7 +462,13 @@ Issues and requests: [github.com/rm-rf-prod/GroundTruth-MCP/issues](https://gith
|
|
|
408
462
|
|
|
409
463
|
## Star history
|
|
410
464
|
|
|
411
|
-
|
|
465
|
+
<a href="https://star-history.com/#rm-rf-prod/GroundTruth-MCP&Date">
|
|
466
|
+
<picture>
|
|
467
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=rm-rf-prod/GroundTruth-MCP&type=Date&theme=dark" />
|
|
468
|
+
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=rm-rf-prod/GroundTruth-MCP&type=Date" />
|
|
469
|
+
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=rm-rf-prod/GroundTruth-MCP&type=Date" />
|
|
470
|
+
</picture>
|
|
471
|
+
</a>
|
|
412
472
|
|
|
413
473
|
---
|
|
414
474
|
|
package/dist/constants.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export declare const SERVER_NAME = "GroundTruth";
|
|
2
|
-
export declare const SERVER_VERSION = "2.
|
|
2
|
+
export declare const SERVER_VERSION = "2.5.0";
|
|
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
|
-
function
|
|
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];
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
function a1_0x4ad4(_0x44f045,_0x293d8a){_0x44f045=_0x44f045-0x73;const _0x1014ed=a1_0x1014();let _0x4ad435=_0x1014ed[_0x44f045];if(a1_0x4ad4['bvZQBN']===undefined){var _0x4851f2=function(_0x3671aa){const _0x55f58b='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x477dd9='',_0x52b4cf='';for(let _0x91825e=0x0,_0x2fbd21,_0xe5dfe3,_0x599ac5=0x0;_0xe5dfe3=_0x3671aa['charAt'](_0x599ac5++);~_0xe5dfe3&&(_0x2fbd21=_0x91825e%0x4?_0x2fbd21*0x40+_0xe5dfe3:_0xe5dfe3,_0x91825e++%0x4)?_0x477dd9+=String['fromCharCode'](0xff&_0x2fbd21>>(-0x2*_0x91825e&0x6)):0x0){_0xe5dfe3=_0x55f58b['indexOf'](_0xe5dfe3);}for(let _0x151799=0x0,_0x193137=_0x477dd9['length'];_0x151799<_0x193137;_0x151799++){_0x52b4cf+='%'+('00'+_0x477dd9['charCodeAt'](_0x151799)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x52b4cf);};const _0x22e2c4=function(_0x3236b6,_0x583a7f){let _0x436715=[],_0x4425cf=0x0,_0x33557d,_0x42ac9d='';_0x3236b6=_0x4851f2(_0x3236b6);let _0x4acfac;for(_0x4acfac=0x0;_0x4acfac<0x100;_0x4acfac++){_0x436715[_0x4acfac]=_0x4acfac;}for(_0x4acfac=0x0;_0x4acfac<0x100;_0x4acfac++){_0x4425cf=(_0x4425cf+_0x436715[_0x4acfac]+_0x583a7f['charCodeAt'](_0x4acfac%_0x583a7f['length']))%0x100,_0x33557d=_0x436715[_0x4acfac],_0x436715[_0x4acfac]=_0x436715[_0x4425cf],_0x436715[_0x4425cf]=_0x33557d;}_0x4acfac=0x0,_0x4425cf=0x0;for(let _0x3241f8=0x0;_0x3241f8<_0x3236b6['length'];_0x3241f8++){_0x4acfac=(_0x4acfac+0x1)%0x100,_0x4425cf=(_0x4425cf+_0x436715[_0x4acfac])%0x100,_0x33557d=_0x436715[_0x4acfac],_0x436715[_0x4acfac]=_0x436715[_0x4425cf],_0x436715[_0x4425cf]=_0x33557d,_0x42ac9d+=String['fromCharCode'](_0x3236b6['charCodeAt'](_0x3241f8)^_0x436715[(_0x436715[_0x4acfac]+_0x436715[_0x4425cf])%0x100]);}return _0x42ac9d;};a1_0x4ad4['IXnANh']=_0x22e2c4,a1_0x4ad4['QWyXHc']={},a1_0x4ad4['bvZQBN']=!![];}const _0x2504b3=_0x1014ed[0x0],_0x30f0b5=_0x44f045+_0x2504b3,_0x481951=a1_0x4ad4['QWyXHc'][_0x30f0b5];return!_0x481951?(a1_0x4ad4['bOctCW']===undefined&&(a1_0x4ad4['bOctCW']=!![]),_0x4ad435=a1_0x4ad4['IXnANh'](_0x4ad435,_0x293d8a),a1_0x4ad4['QWyXHc'][_0x30f0b5]=_0x4ad435):_0x4ad435=_0x481951,_0x4ad435;}const a1_0x2fbfb6=a1_0x4ad4;(function(_0x42db67,_0x58a781){const _0x16f6c0=a1_0x4ad4,_0x30388f=_0x42db67();while(!![]){try{const _0x4c550e=parseInt(_0x16f6c0(0x14d,'w$gE'))/0x1*(parseInt(_0x16f6c0(0xd6,'@cO('))/0x2)+parseInt(_0x16f6c0(0xb0,'c15o'))/0x3*(-parseInt(_0x16f6c0(0x73,'@uk*'))/0x4)+parseInt(_0x16f6c0(0xc5,'H6mQ'))/0x5*(-parseInt(_0x16f6c0(0x128,'3PgE'))/0x6)+parseInt(_0x16f6c0(0x12d,'5IJo'))/0x7*(parseInt(_0x16f6c0(0x132,'5IJo'))/0x8)+parseInt(_0x16f6c0(0xce,'mhqV'))/0x9+parseInt(_0x16f6c0(0xc8,'y9*o'))/0xa+parseInt(_0x16f6c0(0x119,'%88k'))/0xb*(-parseInt(_0x16f6c0(0xd5,'EUiw'))/0xc);if(_0x4c550e===_0x58a781)break;else _0x30388f['push'](_0x30388f['shift']());}catch(_0x145441){_0x30388f['push'](_0x30388f['shift']());}}}(a1_0x1014,0x397f5));function a1_0x1014(){const _0x4a216b=['W5bCrMzRW7hcJmoUbmkI','smosBSopFComWQdcVZzI','W6JcVveOdmkb','WOFdSCk7W7WgW6CiW6TDva','WRVcRLCEa8ktW784lea','tbFdSt7dOdvDWQ1+WQ4','WQJdVXn1vSovWQWeadfOWQRcRa','W6tdOmkIfCkrhmoHvX3cRG','WPC6WQ4tW5pcLMZdIan3','W587A3xdHISinfhdKW','WOiuzq4uW7tdVSouWOddLq','W5L1cdtcTCkSB8kSW709','WPBdSCkNWQOnW6GrW6DbfG','WP4Vr2pcSSkQoCosWQrG','k8oLWRjaW6nGW67cMa0J','WPn5B8k+','WOBcL8oeWQhdTmo4W7GFF8of','W7BcV8oiWQJcIgyKsmoUhq','WPVcI1RIGlG5W7tcHCkSWO5y','zCoKWRjyW69VW67cGaT1','WO5Ljq7cP0v8W5e5WOa','W7VdSEkcNqxcI2K1xrJdRW','W7jDuIT6WR3cI8o/eCkX','W4rPW5abWQ1srmkxWQWw','q2fJWOJcLLZdPSk6W7JcSW','sLBdOslcSYGtW714WQC','xSo0yGZdHCoX','WPWTWROvW5pcJxVdIePw','vSoBWP7cTYr4W5yEyq','WP/cJr5fBCk3WOFdTCoqxa','W6/dKmo7mKNdH8oADSkgWPO','gmkpdCoxfXbS','WOP1odtcRSkUiSosWQDW','rSkXWOe6hmo0W4pdNbhcKq','wSolW7hdPM9IW5SBl2O','aCokW6RdLW','WOngDWKdWRNdS8oBWPFdLq','W7ZdNSkVWQz2bghcVa','W7FcOeeZa8kuW6i','mSknWQKUESovW4HIoSo9','W5NcN8kVWPmXodnaW43dSW','WRy7r8oYWOecWPOUeCkw','W5/cMCkPW5G','W6G8WPtdPhP+Dg7cQfK','WP9HkWRcU1a','WQ3cUNtcOx5kWRZdLCkSEq','kCkgWQiVjmkuW4jImCo8','sIr4WPNdNGJdUSkGW7JdTG','WQNcQSoRrCkhjtPnc8oJ','rM12WOFdNG/dVCkNW6/dSa','yKC0qd4ul8kXW6bZWOhdMmko','z8ksWQ4VBCkzW4HYE8oN','WRtcNmkgW4j0gupcNwm+','z8kaW6C8BCowWOPkbSoD','a8kpW6ldTCoUWP9/A1ldKG','W7tcPtSll8kSaCo5WP/cQq','W4ldG8ohW6JdPSoIW7G7uSkc','W5WXWRmuW4jw','W7VdG8oOBaJdRCoAi8krW5W','h8kgx8owfHb6WPrbWPy','WRVcVceBDSoPf8o1W5JIHju','W47dG+kcV8kHW5pdPmk9m13cIG','WOX7irxdPs4uW74ZW5O','W6pcO8k5gCkrwCkGxbldPG','hmkvWQG7yCoxW7CPDSoP','tCoqhCkctdP6WOOUW6FdVG','nCoWWRHbW7XZ','Av9HWQGIAmk8WQFcHgW','WOBcHmoFW57dTmoJWRW/t8of','WRz+r8oYW40CWOWUamkg','WO/cO8kOkSoxxSogWRPdWPu','W5SSWQiyW58rWQj1W5v1','WPldMb5dESoPW4tcHSokaG','wSkyWP3cRxfUW4zFAxK','yfdcJg9zWR/cTSoZW6eO','WOFcP8kJyCobw8opWOzr','W7JdImkMz8kHW6feogBcPG','WO7dJCoZWOi9p0LsWOJdKa','W74ZWPddQYfGksNdJq8','W43dNmoIBGJdU8oAlSkgW4m','WQNcOSoTqSoczJLmsUkcMG','cCk0lSkeaSohWR3cGIv2','W77cU1eUea','WOOZka7cQvz/W481W4K','WO5Nlf3dQWyWWP98W5e','WPVdHM7cTSkVWOJcLvyiDW','Ca3dQh16WPPhWOhdG8k6','W4BIGPFdOSkFb8oRfCoVxb0','eSoWDGxdKSkMW41iWOJcIq','W5SMWQLDW4byWRj/WOCT','i8keWRqOESoDW4HU','qmo8CbtcJmo/WQnlWOxcJG','rMe3WO3cLWtdT8kHWR3dTq','WQxcJqldIMJdQ8k/yr9k','WRlcOSkUrCoFytvqsSov','eSo0BGtcGmk+WOnDW4hcMq','hCky4OwPW6rUF8oQdwP4','oK3dPSouWPSCDqFcMSoo','W67cPZSCESkSamk4WPVdTa','W4lcMCk5WPm/ohCbWOVdOa','WQ3dUmonWOlcJ3eUbSkrtW','W4G9WQiuW7BcG0q','y1Wfqs3dSmkP','W4/dJe4Al8opWPNdQSk5zGq','W7RcUZyjCCoOf8o7W5JdOW','W7XDtIT+WRpdN8o+b8kM','W6RdPSkWW6epc1hcTJJcVa','WRFcRmoPfUkcVYuAwH7dRq','W40GW50pWRXCbSoeWRan','WQxcIXJdRcVdT8kXFXfm','WRVcSZCCymoKrmk7WPhdSq','nCkaWRmUBmkuW4zInmoM','bXK8qJWTWQRcNConW6a','sSohW6lcTmo1WOi+AuRcMq','WQ7cSmoRfSomCxXzbCo8','A0pdMgTzWRFcSmoYW6yK','W4tdS8oLCSoBwCk8WRPsWQu','W7Stww5PWRNcKCo/vmkX','nmkaWQTRtmoBW4L+o8oX','W6/cLKaUd8kwW7OLEokbVa','qH13aeKTWRVdNmobW6e','WPrxEuyfWRVcSSotWP3dNG','b8k7lmkipSooWQFdH3S3','WQVcOSkgWQKjdWlcTZxcQG','W51/WPGC','v8odzmoDgX9QWOmiWPy','W4BdT8kNWR8aW6GmW79Bhq','nSkIW79HW4HjW6FdGejW','Aq3dQtT0WOzoW4ddI8k8','W70rpSohWOWaW54SdmkC','iuymv1VcQG','WPrDDbvrWQFdU8orWPhcNq','bxTiuatdUCkBWRSacW','W4FcJCopWQhdT8oKWR03umkm','tCkyWPJcQ21UWPuwFhG','W4OPWQqlW41FWRa6W6qz','W6ZdLSkZEq','AGFdTYT+W5rcWOhdICk2','W7ldSCkRaSkmhokcMr45WQ4','W7n/4OoHWQOhA2aXW4Cj','WRxdPSkHWQKAW68rW7Coda','emoDW6hcMxtcMmkpW6uXcW','fLr8W6Ssg+kdU8kNWQrS','4OcWWOpcHSk3W6JcN318bSku','wupdUJtdVw8','emkrdCoyhqO/WOmeW5a','WRzyDaCcWRhcSSoaWOFdLq','W4WWWRmuW5HiW6G6W7uQ','WQlcU8ouW5FcN3n6smoEqa','WOxdT8kRWR8nW7vfW6HbcG','WO8NWQqoW5GrWRrOW4yS','zKJdLxKqWR/cVmk+WP5p','iL0hwatdQCkBWRSwfG','W7VcGmoMu8oiBNXDgmoH','W6tcPgdcVhvCWQVdK8o5Eq','w8oDWOJcP3TIW5CA','W64mWP46','WRFcQ8ozW5FcHgWJwCoctq','WOrGzCk+WOrUx8k7zvC','W7ZcHCkHy8kLW6zemMJdPW','W6GaWPi3W7nEWPe8W44O','WOHkWPGAWRXxq8oBWQiq','qCorWRdcVCoU','WRdcT8ooWPldINyNw8odda','W4FcJ8klW6JdPSoLWQ0Zsmoj','WRH/fmoZWPaiWP87bSoC','uvpdTNVdPY5DWRLPWQW','W6VcO8k6aSkAvSoOxr/cMW','jSo2WR5dW6iGW6ldJevj','Bh83WRtcNSoWcSkigCoO','W5m2WPldOJ5SBI/dLLS','lKjYW6WivCkiWQFcGYK','WO07WR0cWPBdMwpcHGy5','W7r9w8o0W4anWPiJq8kr','W7ZcONFcTxX1W7dcICo9WRS','W7JcPK4Xa8kuW758nae','W63dKSo7Fqe','vSo8DedIGRtdV8k+r8kaWOu','zCkQWObVW41aW6FdGejZ','W4JcHmklW6ldVCo3WRyXxSkw','hmodt8owcWCYWPCFW5C','W7JcVuOIb8ogW704ia0','W6CJbmoVWRuVWQKfdq','WRT4WQBdMX4LycNdIb4','W6HZW5xdQt1HBgFdHWm','WQRdRgzFnSk6vmk5WPNdTCo2Ad8','W7m2WOBcQJrSEZtdLLu','WQBcTmkcW7Sjgqi','W4GuqHmCWRNdS8ohWP3dIG','W7JcVxibCmo/eCkYW5JdSW','W6ldUSoKESobeSkTwr/cLa','WRVdRZpdUCkaWP/cNgveAG','vf/cISkrWO8CcJdcJCoB','WQNcOSoTqSoczJLmsSoO','qXjMW7Seg8kiW7pdGcK','WRVcRa0MtmogWRWHkGe','W5SQW6eoW49qWQO6W5mN','WQNcICkqWOfGh1tcLG','W7NcQ2BcT3T1W6FcNSoJWRe','W57cMCk5WPm3odnvWOxdRa','W7xdOa1HjmkjW6LXpqK','FbBcQSkgWP0Au0dcI8ov','W4xcJmofW6/dSmo1WQW','W5SGWQ8jWOXyWRC6W4eQ','jW0KhxqnACkrW5Di','WRFcR8kUrSozAJzAcCo6','imoXWQmbW7X1WQ/cJXzQ','WRBcS8oVrmoojsHxd8o9','pen2W7O','WQNcUsL8mmk2W4RdRCkEtW','v8ozWPxcO2X4WPLFBMu','WQlcR8kxW7PahHtcSstdTW','EaBdV31/WPTaW5lcHCkk','WQVcMCkqW6ObeLhcTJ/dUq','W7JcSSopW5VdILmUsmozaG','W4P2W78oW6/cULxcOGW','WPhcQSotWOlcHgCdtSoegq','WRddMmkMgCkxtSoStblcLG','v8odsSohjWb6WOyFW5u','WRVcPuOJemkhW6K4prS','WRfSw8o0WOSFW5jVfmkx','W6tcTmkwW6Cofr/cPxdcRW','W6pdOCo0o8otq8odWQHtWRq','DXVcUYP+W5rqW4NdISkQ','WR7cN8kkWOb7gL/cH34+','W4NcPMdcOwi8W6hcGSkIWRC','wSozWPJcRcLKW5SAisS','smowgmoEntfkWRe0','wvVdTNVdPZmCWRrIWQy','sXFdSJxdT2eoWRvJWRG','WQb+tmoY','mSksWQi5','W4tdQ8kX4OAjWPrqW6JcLKtcPq','W79/WOBdRZfWEY7dLGi','hmkJvmkjnevkWPpcG34','W5lcKSk+W5iQp3XpW43dOW','Auj2W64esCkkW6NcGwW','WPBdSCkTWReyW7i','WRtcSCkUu8okzJqrymk7','WPBdT8oWEmoCf8oZWQDdW6a','g8kkqCoAdaO/WOecW4q','fmkcWQyLkmoaW4jIjCk0','W57cMH9kDSoOWO/cRmkixa','lYj3W7VcImorfSkEnmobWOm','WRdcVhFdS3nyWRZdGSkQBG','D8ogWQpcOmo/WPi+r3hcTa','W782WPVdRxWpmwNcGHW','WRhcRmoJWOtcJ2iLx8ozrq','W6VdGmo8DWVdOmotz8kgW40','W5FdOmo1Amkyf8oVWQXfWRu','CXDSf2vgnSouW5et','pCoWvmoimfK1WPBcGNm','W5SSWQiyW58rWQj1W5vV','W48AWOnUWRGkWQ8SW4GS','W7BcVmozWOFcJ20ZwCoFdG','WO/dOCkTWQHeWQyCW7TExW','W53cT1ZcT384W6xcMSo9WRe','W5XLWRepW4nBWQf5W5nV','Dej5qwKQWRBdNmoqW7a','g8kFiGpdImk6WO5pW4hcSa','h8oEWPtcTILSW4awA2O','W43cSgBcPJ8NW6dcLCo7WR0','cCkrqSoEcaC','W7JdKmkIzmkBW6ehmg7cPG','WPFdLSkEW6ZdMmouWO0ayG','WOLGfshdVmk7lSkgWQ18','WOZcRmo8xConAtnigCk0','jmoyWPvSr8kMW5pdGrxcGaDQW5e','WR7cOmoL','W7y6W5xdQt1OEsBdLHi','W5lcSmoYW61CW48aW6nTkCos','WRNdGCkZE8kHW7Wang7dPq','WQlcVCoeWOm','WRBdMLZcH3ZcRmoNrc5WW7T7Aa','tCoxWPBdPgzTW5mwBgi','WPhdKCocs8kux8o5WQHcWQu','ifXp','4OslWOxcSx/cM8oZesvVW5K','oCkIxSoei0u','n8oVW7DFW6LMWRZcJWO5','WOVdSu/cKhqNW4lcTa','xSoQymoqASkFWQlcGGzKC8kc','WP12jWlcPva+W485W4a','WRJcN8kgWPa','W7FcOeqPfSogW7O/iuG','pNaSWR/cNG','W4H7W70DW4/cLvhcPXu','b0y1qwuXWQVcImkpWQq','CK4gvKhdVCkhW7iteq','WOv7nIxcMNyqmsddG0eP','ButdTNVdTduIWR5JWQi','W71uc29RWQJcNSkL','WPNdKd3cSmkLW57cKx8fDW','hf/cGmkGWQG4bKdcVmoP','W6JcOsabBCoR','thC3WPVcJbpdUmk3W77dPW','W6FdL8oQpH7dOCowBCkAWPq','jL0ZW6ChxCkgW6tcI2G'];a1_0x1014=function(){return _0x4a216b;};return a1_0x1014();}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{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';const server=new McpServer({'name':SERVER_NAME,'version':SERVER_VERSION},{'instructions':a1_0x2fbfb6(0x95,'nEev')+a1_0x2fbfb6(0x172,'JRHY')+a1_0x2fbfb6(0x15d,'7mJn')+a1_0x2fbfb6(0xef,'3TD^')+a1_0x2fbfb6(0x7d,'#uhC')+'ctices\x20Fet'+a1_0x2fbfb6(0x125,'bI*z')+a1_0x2fbfb6(0x174,'rnnu')+a1_0x2fbfb6(0x117,'xsHu')+a1_0x2fbfb6(0x99,'@uk*')+a1_0x2fbfb6(0x110,'@uk*')+a1_0x2fbfb6(0x166,'fEJ1')+a1_0x2fbfb6(0x102,'3TD^')+a1_0x2fbfb6(0x8e,'asSa')+a1_0x2fbfb6(0xb5,'a0ti')+a1_0x2fbfb6(0x199,'fEJ1')+a1_0x2fbfb6(0x10b,'Of0T')+a1_0x2fbfb6(0xe2,'#uhC')+a1_0x2fbfb6(0xbf,'btCB')+a1_0x2fbfb6(0x14f,'uj(L')+'atabases,\x20'+a1_0x2fbfb6(0x114,'mjck')+a1_0x2fbfb6(0x193,'3TD^')+'more.\x0a\x0aToo'+'ls:\x0a1.\x20gt_'+a1_0x2fbfb6(0x13c,'d%ob')+a1_0x2fbfb6(0x171,'0G@I')+a1_0x2fbfb6(0x170,'QUZR')+'brary\x20name'+a1_0x2fbfb6(0xf7,'H6mQ')+a1_0x2fbfb6(0x91,'QUZR')+a1_0x2fbfb6(0x7c,'d%ob')+a1_0x2fbfb6(0x77,'JRHY')+a1_0x2fbfb6(0x148,'#uhC')+a1_0x2fbfb6(0x175,'NOIM')+a1_0x2fbfb6(0x17b,'nEev')+a1_0x2fbfb6(0x131,'pwQ&')+a1_0x2fbfb6(0xa8,'SHXw')+'iltered\x20by'+a1_0x2fbfb6(0xf2,'fA4F')+a1_0x2fbfb6(0xf8,'nEev')+a1_0x2fbfb6(0x137,'xsHu')+a1_0x2fbfb6(0x188,'JvG*')+'est\x20best\x20p'+a1_0x2fbfb6(0x7e,'xsHu')+a1_0x2fbfb6(0x15a,'pwQ&')+a1_0x2fbfb6(0x7b,'0G@I')+a1_0x2fbfb6(0xc4,'0KcH')+a1_0x2fbfb6(0x176,'[mFO')+a1_0x2fbfb6(0x8a,'xsHu')+a1_0x2fbfb6(0xbb,'nEev')+a1_0x2fbfb6(0x13d,'QUZR')+'tch\x20best\x20p'+a1_0x2fbfb6(0x185,'g^W^')+a1_0x2fbfb6(0xab,'xsHu')+a1_0x2fbfb6(0x97,'3PgE')+a1_0x2fbfb6(0x124,'H6mQ')+a1_0x2fbfb6(0xd4,'fEJ1')+a1_0x2fbfb6(0x157,'btCB')+a1_0x2fbfb6(0xb6,'5IJo')+a1_0x2fbfb6(0x187,'Z(6A')+a1_0x2fbfb6(0x9d,'^gH5')+a1_0x2fbfb6(0x144,'mhqV')+a1_0x2fbfb6(0xe8,'@cO(')+a1_0x2fbfb6(0x198,'Uxz(')+a1_0x2fbfb6(0x181,'mjck')+'ode\x20for\x20re'+a1_0x2fbfb6(0x18b,'H6mQ')+a1_0x2fbfb6(0x155,'uj(L')+a1_0x2fbfb6(0x130,'gZNE')+a1_0x2fbfb6(0xe6,'NOIM')+a1_0x2fbfb6(0x12f,'asSa')+a1_0x2fbfb6(0x154,'mhqV')+a1_0x2fbfb6(0x152,'xsHu')+a1_0x2fbfb6(0x15c,'Psaq')+a1_0x2fbfb6(0x135,'JRHY')+a1_0x2fbfb6(0x15f,'btCB')+a1_0x2fbfb6(0x18a,'nEev')+a1_0x2fbfb6(0xb3,'JRHY')+a1_0x2fbfb6(0x15e,'DpMz')+a1_0x2fbfb6(0x180,'xsHu')+a1_0x2fbfb6(0xc2,'EUiw')+a1_0x2fbfb6(0xca,'JRHY')+a1_0x2fbfb6(0xad,'3PgE')+a1_0x2fbfb6(0x11c,'7mJn')+a1_0x2fbfb6(0x12a,'NOIM')+'ature.\x0a9.\x20'+a1_0x2fbfb6(0xbd,'EUiw')+a1_0x2fbfb6(0x13e,'eALz')+a1_0x2fbfb6(0xfc,'xsHu')+a1_0x2fbfb6(0x16a,'Of0T')+a1_0x2fbfb6(0x17e,'pwQ&')+a1_0x2fbfb6(0xc7,'xsHu')+a1_0x2fbfb6(0x7f,'NOIM')+a1_0x2fbfb6(0xd2,'0KcH')+a1_0x2fbfb6(0x112,'JRHY')+a1_0x2fbfb6(0x159,'xsHu')+a1_0x2fbfb6(0x96,'0G@I')+a1_0x2fbfb6(0x147,'gZNE')+a1_0x2fbfb6(0x138,'@cO(')+(a1_0x2fbfb6(0xa5,'5IJo')+a1_0x2fbfb6(0x107,'fA4F')+a1_0x2fbfb6(0x109,'gZNE')+a1_0x2fbfb6(0x158,'[mFO')+a1_0x2fbfb6(0x123,'uj(L')+a1_0x2fbfb6(0xeb,'DpMz')+a1_0x2fbfb6(0x18e,'0G@I')+a1_0x2fbfb6(0x13b,'bI*z')+a1_0x2fbfb6(0xc0,'Uxz(')+'topic]\x22\x20→\x20'+a1_0x2fbfb6(0xb4,'nEev')+a1_0x2fbfb6(0x14b,'nEev')+a1_0x2fbfb6(0x127,'7mJn')+a1_0x2fbfb6(0x168,'@uk*')+a1_0x2fbfb6(0x88,'c^w1')+a1_0x2fbfb6(0xee,'0G@I')+'\x20from\x20offi'+a1_0x2fbfb6(0x118,'hA*c')+a1_0x2fbfb6(0xf9,'asSa')+a1_0x2fbfb6(0xa1,'wS9V')+a1_0x2fbfb6(0xe0,'Psaq'))});registerResolveTool(server),registerDocsTool(server),registerBestPracticesTool(server),registerAutoScanTool(server),registerSearchTool(server),registerAuditTool(server),registerChangelogTool(server),registerCompatTool(server),registerCompareTool(server),server[a1_0x2fbfb6(0x129,'fEJ1')](a1_0x2fbfb6(0x104,'asSa')+'roject',a1_0x2fbfb6(0xae,'7mJn')+a1_0x2fbfb6(0x17f,'w$gE')+a1_0x2fbfb6(0x16d,'gZNE')+a1_0x2fbfb6(0x14a,'SHXw')+a1_0x2fbfb6(0x140,'c^w1')+a1_0x2fbfb6(0x8b,'fEJ1')+a1_0x2fbfb6(0x143,'hA*c')+a1_0x2fbfb6(0xcf,'gZNE')+a1_0x2fbfb6(0x106,'3PgE'),()=>({'messages':[{'role':a1_0x2fbfb6(0x163,'JvG*'),'content':{'type':a1_0x2fbfb6(0xa3,'@uk*'),'text':a1_0x2fbfb6(0x179,'Of0T')+a1_0x2fbfb6(0x12b,'H6mQ')+a1_0x2fbfb6(0x81,'c^w1')+'is\x20project'+a1_0x2fbfb6(0x194,'@uk*')+a1_0x2fbfb6(0x162,'oX[U')+a1_0x2fbfb6(0xdc,'btCB')+a1_0x2fbfb6(0x167,'QUZR')+a1_0x2fbfb6(0x153,'JvG*')+'bility,\x20se'+a1_0x2fbfb6(0x17a,'c^w1')+a1_0x2fbfb6(0x105,'a0ti')+'js,\x20TypeSc'+a1_0x2fbfb6(0x142,'Uxz(')+a1_0x2fbfb6(0x93,'nEev')+a1_0x2fbfb6(0x85,'DpMz')+a1_0x2fbfb6(0x7a,'uj(L')+a1_0x2fbfb6(0x11b,'^gH5')+a1_0x2fbfb6(0xfa,'fEJ1')+a1_0x2fbfb6(0x19b,'3PgE')+a1_0x2fbfb6(0x19c,'DpMz')+a1_0x2fbfb6(0xa2,'wS9V')+'\x20me\x20what\x20t'+'o\x20change\x20a'+a1_0x2fbfb6(0xb8,'yzy&')+'e:line\x20loc'+a1_0x2fbfb6(0x177,'wS9V')}}]})),server[a1_0x2fbfb6(0x113,'bI*z')](a1_0x2fbfb6(0x121,'a0ti')+a1_0x2fbfb6(0xc9,'xsHu'),a1_0x2fbfb6(0x83,'EUiw')+a1_0x2fbfb6(0x184,'nEev')+a1_0x2fbfb6(0x16c,'H6mQ')+a1_0x2fbfb6(0x19a,'H6mQ')+a1_0x2fbfb6(0xaf,'asSa')+a1_0x2fbfb6(0x192,'NOIM')+a1_0x2fbfb6(0x10d,'DpMz'),{'library':z[a1_0x2fbfb6(0x120,'c^w1')]()[a1_0x2fbfb6(0x141,'7mJn')](a1_0x2fbfb6(0x86,'#uhC')+a1_0x2fbfb6(0xb7,'%88k')+a1_0x2fbfb6(0xf4,'fA4F')+a1_0x2fbfb6(0x11d,'[mFO')+',\x20\x27prisma\x27')},({library:_0x55f58b})=>({'messages':[{'role':a1_0x2fbfb6(0xa4,'7mJn'),'content':{'type':'text','text':a1_0x2fbfb6(0xa7,'yzy&')+a1_0x2fbfb6(0xf5,'fEJ1')+a1_0x2fbfb6(0xff,'hA*c')+a1_0x2fbfb6(0xd7,'bI*z')+'ease\x20notes'+a1_0x2fbfb6(0xda,'c15o')+_0x55f58b+(a1_0x2fbfb6(0x79,'Of0T')+a1_0x2fbfb6(0x186,'0KcH')+a1_0x2fbfb6(0x115,'7mJn')+a1_0x2fbfb6(0xd9,'DpMz')+a1_0x2fbfb6(0xf0,']M9[')+a1_0x2fbfb6(0x8f,'gZNE')+a1_0x2fbfb6(0x11f,'H6mQ')+a1_0x2fbfb6(0x15b,'5IJo')+a1_0x2fbfb6(0xe1,'d%ob')+a1_0x2fbfb6(0x101,'Uxz('))}}]})),server[a1_0x2fbfb6(0xaa,'eALz')](a1_0x2fbfb6(0x12c,'@uk*')+a1_0x2fbfb6(0x103,'gZNE'),'Get\x20curren'+a1_0x2fbfb6(0xec,'wS9V')+a1_0x2fbfb6(0x17c,'eALz')+a1_0x2fbfb6(0x13f,'Uxz(')+a1_0x2fbfb6(0x100,'wS9V')+a1_0x2fbfb6(0xe4,'hA*c'),()=>({'messages':[{'role':a1_0x2fbfb6(0x16f,'0KcH'),'content':{'type':a1_0x2fbfb6(0xcd,'nEev'),'text':a1_0x2fbfb6(0x9b,'5IJo')+a1_0x2fbfb6(0x92,'oX[U')+'detect\x20all'+a1_0x2fbfb6(0xcc,'0KcH')+a1_0x2fbfb6(0x84,'SHXw')+a1_0x2fbfb6(0xbe,'c^w1')+'and\x20fetch\x20'+a1_0x2fbfb6(0xb1,'mjck')+a1_0x2fbfb6(0x17d,'c^w1')+a1_0x2fbfb6(0xb9,'c^w1')+a1_0x2fbfb6(0x9f,'gZNE')+a1_0x2fbfb6(0x191,'JRHY')+a1_0x2fbfb6(0xfd,'Psaq')+a1_0x2fbfb6(0x9c,'QUZR')+a1_0x2fbfb6(0x18c,'@uk*')}}]})),server[a1_0x2fbfb6(0xd3,'yzy&')](a1_0x2fbfb6(0x196,'DpMz')+a1_0x2fbfb6(0x78,'oX[U'),a1_0x2fbfb6(0x136,'a0ti')+a1_0x2fbfb6(0x116,'hA*c')+a1_0x2fbfb6(0x98,'DpMz')+a1_0x2fbfb6(0x11a,'7mJn')+a1_0x2fbfb6(0x18d,'wS9V')+a1_0x2fbfb6(0xe5,'a0ti')+a1_0x2fbfb6(0x150,'Psaq'),{'libraries':z[a1_0x2fbfb6(0xe9,'DpMz')]()[a1_0x2fbfb6(0x182,'gZNE')](a1_0x2fbfb6(0xe7,'Psaq')+a1_0x2fbfb6(0x156,'7mJn')+a1_0x2fbfb6(0xea,'eALz')+a1_0x2fbfb6(0x80,'DpMz')+'sma,\x20drizz'+a1_0x2fbfb6(0xfe,'JvG*')+'\x20\x27zod,\x20val'+a1_0x2fbfb6(0xbc,'eALz'))},({libraries:_0x477dd9})=>({'messages':[{'role':a1_0x2fbfb6(0x8d,'NOIM'),'content':{'type':a1_0x2fbfb6(0x10a,'rnnu'),'text':a1_0x2fbfb6(0xdf,'wS9V')+a1_0x2fbfb6(0xc6,'fA4F')+a1_0x2fbfb6(0x8c,'xsHu')+a1_0x2fbfb6(0x13a,'bI*z')+a1_0x2fbfb6(0x126,'0G@I')+a1_0x2fbfb6(0x169,'w$gE')+_0x477dd9+(a1_0x2fbfb6(0x151,'oX[U')+a1_0x2fbfb6(0x178,'3PgE')+a1_0x2fbfb6(0x122,'3PgE')+'tradeoffs,'+a1_0x2fbfb6(0xdd,'w$gE')+'\x20use\x20cases'+a1_0x2fbfb6(0xac,'5IJo')+a1_0x2fbfb6(0x90,'oX[U'))}}]})),server[a1_0x2fbfb6(0xc3,'3PgE')](a1_0x2fbfb6(0x9e,'EUiw')+a1_0x2fbfb6(0x111,'SHXw'),a1_0x2fbfb6(0xb2,'[mFO')+a1_0x2fbfb6(0x108,'y9*o')+a1_0x2fbfb6(0x149,'uj(L')+a1_0x2fbfb6(0xc1,'gZNE')+a1_0x2fbfb6(0x10f,'SHXw')+a1_0x2fbfb6(0x10e,'7mJn')+a1_0x2fbfb6(0x89,'%88k')+a1_0x2fbfb6(0x190,'c15o'),{'topic':z[a1_0x2fbfb6(0xe3,'uj(L')]()[a1_0x2fbfb6(0x82,'^gH5')](a1_0x2fbfb6(0x173,'eALz')+a1_0x2fbfb6(0x11e,'uj(L')+a1_0x2fbfb6(0x74,'JRHY')+a1_0x2fbfb6(0x18f,'fEJ1')+a1_0x2fbfb6(0x16b,'w$gE')+a1_0x2fbfb6(0x161,'@cO(')+a1_0x2fbfb6(0xd0,'5IJo')+a1_0x2fbfb6(0xd1,'w$gE'))},({topic:_0x52b4cf})=>({'messages':[{'role':a1_0x2fbfb6(0xd8,'^gH5'),'content':{'type':a1_0x2fbfb6(0x183,'Z(6A'),'text':a1_0x2fbfb6(0xba,'Z(6A')+a1_0x2fbfb6(0x160,'Of0T')+a1_0x2fbfb6(0xf1,'Of0T')+'st\x20OWASP\x20g'+'uidance\x20an'+a1_0x2fbfb6(0xa6,'JRHY')+'\x20best\x20prac'+a1_0x2fbfb6(0x12e,'c^w1')+'\x20'+_0x52b4cf+(a1_0x2fbfb6(0x164,'3PgE')+a1_0x2fbfb6(0xf3,'eALz')+a1_0x2fbfb6(0x165,'eALz')+a1_0x2fbfb6(0x75,'JRHY')+a1_0x2fbfb6(0x133,'0KcH')+a1_0x2fbfb6(0xfb,'bI*z')+a1_0x2fbfb6(0x146,'Uxz(')+a1_0x2fbfb6(0x16e,'c^w1')+'Es\x20or\x20spec'+a1_0x2fbfb6(0xa9,'NOIM')+'s.')}}]}));async function main(){const _0x54f24f=a1_0x2fbfb6,_0x91825e=new StdioServerTransport();await server[_0x54f24f(0x87,'H6mQ')](_0x91825e),console[_0x54f24f(0x139,'DpMz')](SERVER_NAME+'\x20v'+SERVER_VERSION+(_0x54f24f(0x9a,'oX[U')+_0x54f24f(0x145,'xsHu'))+getInstallId()+']');}main()[a1_0x2fbfb6(0x197,'a0ti')](_0x2fbd21=>{const _0xbafe84=a1_0x2fbfb6;console[_0xbafe84(0x189,'[mFO')](_0xbafe84(0x195,'EUiw')+'r:',_0x2fbd21),process[_0xbafe84(0xf6,'g^W^')](0x1);});
|
|
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);});
|
package/dist/services/cache.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
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,9 +1,20 @@
|
|
|
1
1
|
import type { FetchResult } from "../types.js";
|
|
2
|
+
export declare function hashContent(content: string): string;
|
|
2
3
|
export declare function fetchWithTimeout(url: string, ms?: number, extraHeaders?: Record<string, string>): Promise<Response>;
|
|
3
4
|
/** Fetch via Jina Reader — converts any URL to clean markdown */
|
|
4
5
|
export declare function fetchViaJina(url: string): Promise<string | null>;
|
|
6
|
+
/**
|
|
7
|
+
* Detect if content is a TOC/index page (list of links) rather than actual documentation.
|
|
8
|
+
* These are common in llms.txt files that serve as directories rather than content.
|
|
9
|
+
*/
|
|
10
|
+
export declare function isIndexContent(content: string): boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Extract URLs from an index/TOC page and score them against a topic query.
|
|
13
|
+
* Returns the best-matching URLs sorted by relevance.
|
|
14
|
+
*/
|
|
15
|
+
export declare function rankIndexLinks(content: string, topic: string): string[];
|
|
5
16
|
/** Try llms.txt, then llms-full.txt, then Jina, then direct HTML */
|
|
6
|
-
export declare function fetchDocs(docsUrl: string, llmsTxtUrl?: string, llmsFullTxtUrl?: string): Promise<FetchResult>;
|
|
17
|
+
export declare function fetchDocs(docsUrl: string, llmsTxtUrl?: string, llmsFullTxtUrl?: string, _topic?: string): Promise<FetchResult>;
|
|
7
18
|
/** Fetch GitHub README or a specific file from a repo */
|
|
8
19
|
export declare function fetchGitHubContent(githubUrl: string, path?: string): Promise<FetchResult | null>;
|
|
9
20
|
/** Fetch latest GitHub release notes (tag name + body) */
|