@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 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-631-brightgreen" alt="631 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 latest version on every session start automatically.
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
- Nine tools. Each does one thing and stops there.
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 23 libraries side-by-side so you can finally pick one and move on |
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, // 1200, default 50
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 23 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.
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: "WebAssembly use cases" })
233
- gt_search({ query: "MCP protocol tool definition" })
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 Schema, JSON-LD / Structured Data, OpenTelemetry, Semantic Versioning, MCP Protocol |
247
- | AI | Agents & tool calling, RAG, prompt engineering, vector search / embeddings |
248
- | Infrastructure | Docker, Kubernetes, GitHub Actions, Terraform, monorepo patterns |
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 / ML (JS) | Vercel AI SDK, Anthropic SDK, OpenAI SDK, LangChain.js, LlamaIndex.TS, Transformers.js, Ollama, assistant-ui |
327
- | AI / ML (Python) | LangChain, LlamaIndex, CrewAI, LangGraph, HuggingFace Transformers |
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
- | HTTP utils | clsx, tailwind-merge |
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 Jina GitHub | Doc page embeddings |
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 — 23 libraries side-by-side, any criteria | No |
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
- 631 tests across 19 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.
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 20+
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
- [![Star History Chart](https://api.star-history.com/svg?repos=rm-rf-prod/GroundTruth-MCP&type=Date)](https://star-history.com/#rm-rf-prod/GroundTruth-MCP&Date)
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
 
@@ -1,5 +1,5 @@
1
1
  export declare const SERVER_NAME = "GroundTruth";
2
- export declare const SERVER_VERSION = "2.3.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 a0_0x5b0c(_0x1393c6,_0x52bd86){_0x1393c6=_0x1393c6-0x67;const _0x172582=a0_0x1725();let _0x5b0c0a=_0x172582[_0x1393c6];if(a0_0x5b0c['lGfWLl']===undefined){var _0x7d4b18=function(_0x280b9f){const _0xba326c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x59f7a3='',_0x13341a='';for(let _0x312c04=0x0,_0x120c10,_0x52780f,_0x1b4c22=0x0;_0x52780f=_0x280b9f['charAt'](_0x1b4c22++);~_0x52780f&&(_0x120c10=_0x312c04%0x4?_0x120c10*0x40+_0x52780f:_0x52780f,_0x312c04++%0x4)?_0x59f7a3+=String['fromCharCode'](0xff&_0x120c10>>(-0x2*_0x312c04&0x6)):0x0){_0x52780f=_0xba326c['indexOf'](_0x52780f);}for(let _0x4cf231=0x0,_0x378180=_0x59f7a3['length'];_0x4cf231<_0x378180;_0x4cf231++){_0x13341a+='%'+('00'+_0x59f7a3['charCodeAt'](_0x4cf231)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x13341a);};const _0xe7cfde=function(_0x4e8924,_0x4cc8bc){let _0x1e2942=[],_0x283fc6=0x0,_0x63597a,_0x44c79c='';_0x4e8924=_0x7d4b18(_0x4e8924);let _0x40fd38;for(_0x40fd38=0x0;_0x40fd38<0x100;_0x40fd38++){_0x1e2942[_0x40fd38]=_0x40fd38;}for(_0x40fd38=0x0;_0x40fd38<0x100;_0x40fd38++){_0x283fc6=(_0x283fc6+_0x1e2942[_0x40fd38]+_0x4cc8bc['charCodeAt'](_0x40fd38%_0x4cc8bc['length']))%0x100,_0x63597a=_0x1e2942[_0x40fd38],_0x1e2942[_0x40fd38]=_0x1e2942[_0x283fc6],_0x1e2942[_0x283fc6]=_0x63597a;}_0x40fd38=0x0,_0x283fc6=0x0;for(let _0x28d603=0x0;_0x28d603<_0x4e8924['length'];_0x28d603++){_0x40fd38=(_0x40fd38+0x1)%0x100,_0x283fc6=(_0x283fc6+_0x1e2942[_0x40fd38])%0x100,_0x63597a=_0x1e2942[_0x40fd38],_0x1e2942[_0x40fd38]=_0x1e2942[_0x283fc6],_0x1e2942[_0x283fc6]=_0x63597a,_0x44c79c+=String['fromCharCode'](_0x4e8924['charCodeAt'](_0x28d603)^_0x1e2942[(_0x1e2942[_0x40fd38]+_0x1e2942[_0x283fc6])%0x100]);}return _0x44c79c;};a0_0x5b0c['ODPXuA']=_0xe7cfde,a0_0x5b0c['ruegEF']={},a0_0x5b0c['lGfWLl']=!![];}const _0x20b6e5=_0x172582[0x0],_0x199dcb=_0x1393c6+_0x20b6e5,_0xf92d9a=a0_0x5b0c['ruegEF'][_0x199dcb];return!_0xf92d9a?(a0_0x5b0c['gRgtgD']===undefined&&(a0_0x5b0c['gRgtgD']=!![]),_0x5b0c0a=a0_0x5b0c['ODPXuA'](_0x5b0c0a,_0x52bd86),a0_0x5b0c['ruegEF'][_0x199dcb]=_0x5b0c0a):_0x5b0c0a=_0xf92d9a,_0x5b0c0a;}const a0_0x405c23=a0_0x5b0c;(function(_0x221505,_0x7dfb8b){const _0x1f7f69=a0_0x5b0c,_0x27b976=_0x221505();while(!![]){try{const _0x53e0da=parseInt(_0x1f7f69(0x6e,'1@&6'))/0x1*(parseInt(_0x1f7f69(0x78,'RIAA'))/0x2)+parseInt(_0x1f7f69(0x7b,'96)8'))/0x3*(-parseInt(_0x1f7f69(0x7d,'cHac'))/0x4)+parseInt(_0x1f7f69(0x77,'d!lp'))/0x5+-parseInt(_0x1f7f69(0x80,'Wt!Y'))/0x6+parseInt(_0x1f7f69(0x75,'1NNA'))/0x7+parseInt(_0x1f7f69(0x6a,'QwZF'))/0x8*(-parseInt(_0x1f7f69(0x6c,'LEIU'))/0x9)+parseInt(_0x1f7f69(0x73,'1@&6'))/0xa;if(_0x53e0da===_0x7dfb8b)break;else _0x27b976['push'](_0x27b976['shift']());}catch(_0x1cb0d5){_0x27b976['push'](_0x27b976['shift']());}}}(a0_0x1725,0x33350));export const SERVER_NAME=a0_0x405c23(0x87,'1@&6')+'h';export const SERVER_VERSION=a0_0x405c23(0x88,'e0(D');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_0x405c23(0x82,'QGI7')+a0_0x405c23(0x72,'ZUyA')):a0_0x405c23(0x76,'5v0&')+a0_0x405c23(0x68,'1@&6'));export const DEFAULT_TOKEN_LIMIT=0x1f40;export const MAX_TOKEN_LIMIT=0x4e20;export const CACHE_TTL_MS=0x1e*0x3c*0x3e8;export const FETCH_TIMEOUT_MS=0x3a98;export const JINA_BASE_URL=a0_0x405c23(0x6b,'%$*i')+a0_0x405c23(0x81,'Wt!Y');export const NPM_REGISTRY_URL=a0_0x405c23(0x8a,'QwZF')+a0_0x405c23(0x7a,'idOU')+a0_0x405c23(0x7f,'J^gc');export const PYPI_URL=a0_0x405c23(0x71,'EMUf')+a0_0x405c23(0x7e,'96)8')+'i';export const GITHUB_API_URL=a0_0x405c23(0x83,')FSB')+a0_0x405c23(0x67,'EaOx')+'om';export const GITHUB_RAW_URL=a0_0x405c23(0x69,'i4Dv')+a0_0x405c23(0x6f,'QwZF')+a0_0x405c23(0x79,'d2i@')+a0_0x405c23(0x70,'l!Nn');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];function a0_0x1725(){const _0x621b34=['f8oiW7jqWPdcVIDBhmoe','mCoecbuhWPFdQ04','zSkbWQ52wGxcK8ouW4ldNG','ueNdOHzDiqWbWR8','W7lcM1xcV8oHgSkLW7xdTCoL','jaxcG8o8W5JcT8opW5uYWRbz','uCkuDSkrWPGsjG','y8o/Dd8kWO3dMG','e1xcSrfGpdONWRjS','WR3cTve','W7f2BNldTK17BgbE','WQBdT1GX','ymkehenuW4tcS0y9usVdOJu','W4j0W4pdRsddLf/dQmoJEghdRfq','W6BdRCkjW6pcGmkaW4BdGtBdUSkrw1y','WRGIcJrCW7JdG8oAd14','vSoQfCoUW4qngCkreColWOq','W5JcLmoMW64SWRPPAmogW5ZdRCod','gu4KdL0wW7e3sCkL','rGezCefyWQ7dH8kVkW','WPbrW5lcM2ZdUvipW6Grjq','WOCpWQ59WOpcQa97xmouWQy','fmomW6z0WOtcRdpdUa','W5KlW4xdJc/dSra3W6C7','W74HtIqjsq','fmoSWQzBW4SGWPOUFSkGW4XtW4m','t8kWW74oW5j1W4m','WRFcM8keWQDZo8osW5VcPqi','qSkXgSkmWR7dOSkEa8ofWPi','W6FcOrBcOv5+gCkFWOW','pmofW6mZgW/cJmkwW5RdMatcKmkb','WO0mWQnZWOFcTsDPrSoNWO0','fCogsGmiWPddL1KIqG','W67dH8kFzCkz','W6ldTuSmW5/dVLDljqBdRhxdLG','da/cOGHNBMbQWRv6'];a0_0x1725=function(){return _0x621b34;};return a0_0x1725();}
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);});
@@ -1 +1 @@
1
- const a2_0x205d39=a2_0xa779;(function(_0x102296,_0x35bd79){const _0x8f3e10=a2_0xa779,_0x37bf28=_0x102296();while(!![]){try{const _0x458565=parseInt(_0x8f3e10(0x14d,']Hjw'))/0x1*(-parseInt(_0x8f3e10(0x14e,'X6FA'))/0x2)+-parseInt(_0x8f3e10(0x175,'fBl&'))/0x3+-parseInt(_0x8f3e10(0x178,'(85v'))/0x4*(parseInt(_0x8f3e10(0x177,'PKou'))/0x5)+parseInt(_0x8f3e10(0x149,'OYqx'))/0x6*(-parseInt(_0x8f3e10(0x17a,'^anP'))/0x7)+-parseInt(_0x8f3e10(0x134,'xny!'))/0x8*(parseInt(_0x8f3e10(0x17f,'PKou'))/0x9)+parseInt(_0x8f3e10(0x170,'OYqx'))/0xa+parseInt(_0x8f3e10(0x152,'@w81'))/0xb;if(_0x458565===_0x35bd79)break;else _0x37bf28['push'](_0x37bf28['shift']());}catch(_0x3a08bf){_0x37bf28['push'](_0x37bf28['shift']());}}}(a2_0x3ca2,0xb1d93));import{CACHE_TTL_MS,DISK_CACHE_DIR}from'../constants.js';import{createHash}from'crypto';import{readFile,writeFile,mkdir,stat}from'fs/promises';import{join}from'path';function a2_0xa779(_0x337b4d,_0x3d37c5){_0x337b4d=_0x337b4d-0x134;const _0x3ca20f=a2_0x3ca2();let _0xa779c=_0x3ca20f[_0x337b4d];if(a2_0xa779['xzfygS']===undefined){var _0x30e9da=function(_0x1c58a3){const _0x2e7474='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x53e99a='',_0x32a330='';for(let _0x55c0a0=0x0,_0x4b28de,_0x38f498,_0x63e59a=0x0;_0x38f498=_0x1c58a3['charAt'](_0x63e59a++);~_0x38f498&&(_0x4b28de=_0x55c0a0%0x4?_0x4b28de*0x40+_0x38f498:_0x38f498,_0x55c0a0++%0x4)?_0x53e99a+=String['fromCharCode'](0xff&_0x4b28de>>(-0x2*_0x55c0a0&0x6)):0x0){_0x38f498=_0x2e7474['indexOf'](_0x38f498);}for(let _0x486a6a=0x0,_0x4dbe3e=_0x53e99a['length'];_0x486a6a<_0x4dbe3e;_0x486a6a++){_0x32a330+='%'+('00'+_0x53e99a['charCodeAt'](_0x486a6a)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x32a330);};const _0x15a20f=function(_0x4b5205,_0x40d9e0){let _0x5b6a5e=[],_0x3a86d0=0x0,_0x446b2d,_0x7beb8a='';_0x4b5205=_0x30e9da(_0x4b5205);let _0x5b2191;for(_0x5b2191=0x0;_0x5b2191<0x100;_0x5b2191++){_0x5b6a5e[_0x5b2191]=_0x5b2191;}for(_0x5b2191=0x0;_0x5b2191<0x100;_0x5b2191++){_0x3a86d0=(_0x3a86d0+_0x5b6a5e[_0x5b2191]+_0x40d9e0['charCodeAt'](_0x5b2191%_0x40d9e0['length']))%0x100,_0x446b2d=_0x5b6a5e[_0x5b2191],_0x5b6a5e[_0x5b2191]=_0x5b6a5e[_0x3a86d0],_0x5b6a5e[_0x3a86d0]=_0x446b2d;}_0x5b2191=0x0,_0x3a86d0=0x0;for(let _0x5d1fe7=0x0;_0x5d1fe7<_0x4b5205['length'];_0x5d1fe7++){_0x5b2191=(_0x5b2191+0x1)%0x100,_0x3a86d0=(_0x3a86d0+_0x5b6a5e[_0x5b2191])%0x100,_0x446b2d=_0x5b6a5e[_0x5b2191],_0x5b6a5e[_0x5b2191]=_0x5b6a5e[_0x3a86d0],_0x5b6a5e[_0x3a86d0]=_0x446b2d,_0x7beb8a+=String['fromCharCode'](_0x4b5205['charCodeAt'](_0x5d1fe7)^_0x5b6a5e[(_0x5b6a5e[_0x5b2191]+_0x5b6a5e[_0x3a86d0])%0x100]);}return _0x7beb8a;};a2_0xa779['yfqiwJ']=_0x15a20f,a2_0xa779['qdLtbc']={},a2_0xa779['xzfygS']=!![];}const _0x380d76=_0x3ca20f[0x0],_0x375357=_0x337b4d+_0x380d76,_0x5a955b=a2_0xa779['qdLtbc'][_0x375357];return!_0x5a955b?(a2_0xa779['tROtNv']===undefined&&(a2_0xa779['tROtNv']=!![]),_0xa779c=a2_0xa779['yfqiwJ'](_0xa779c,_0x3d37c5),a2_0xa779['qdLtbc'][_0x375357]=_0xa779c):_0xa779c=_0x5a955b,_0xa779c;}class LRUCache{[a2_0x205d39(0x18c,'7)Jf')]=new Map();[a2_0x205d39(0x157,'!qdV')];constructor(_0x2e7474=0xc8){this['maxSize']=_0x2e7474;}[a2_0x205d39(0x15a,'fz5W')](_0x53e99a){const _0x34f32d=a2_0x205d39,_0x32a330=this[_0x34f32d(0x164,'pU3U')][_0x34f32d(0x160,'DHXj')](_0x53e99a);if(!_0x32a330)return undefined;if(Date[_0x34f32d(0x16f,'CnoA')]()>_0x32a330[_0x34f32d(0x13d,'#3IA')])return this[_0x34f32d(0x16b,'oq]r')][_0x34f32d(0x188,'n*[4')](_0x53e99a),undefined;return this[_0x34f32d(0x137,'1V&U')][_0x34f32d(0x145,'hDrL')](_0x53e99a),this[_0x34f32d(0x181,'EvG!')][_0x34f32d(0x146,'oq]r')](_0x53e99a,_0x32a330),_0x32a330[_0x34f32d(0x13a,'1V&U')];}[a2_0x205d39(0x139,'X6FA')](_0x55c0a0,_0x4b28de,_0x38f498=CACHE_TTL_MS){const _0x400b62=a2_0x205d39;if(this[_0x400b62(0x187,'Z&R8')][_0x400b62(0x14b,'VR74')]>=this[_0x400b62(0x154,'[mC4')]){const _0x63e59a=this[_0x400b62(0x179,'f(4v')]['keys']()[_0x400b62(0x161,'FYBC')]()[_0x400b62(0x144,'n*[4')];if(_0x63e59a!==undefined)this['store'][_0x400b62(0x151,'DHXj')](_0x63e59a);}this[_0x400b62(0x142,'n*[4')][_0x400b62(0x16e,'omf0')](_0x55c0a0,{'data':_0x4b28de,'expiresAt':Date[_0x400b62(0x150,'oq]r')]()+_0x38f498});}[a2_0x205d39(0x14c,'EvG!')](_0x486a6a){const _0x38e4d4=a2_0x205d39;return this[_0x38e4d4(0x143,'CSo2')](_0x486a6a)!==undefined;}[a2_0x205d39(0x155,'#3IA')](){const _0xd0db98=a2_0x205d39;this[_0xd0db98(0x15e,']FbS')][_0xd0db98(0x14f,'Bh9O')]();}[a2_0x205d39(0x138,'Bh9O')](){const _0x12f38b=a2_0x205d39;return this[_0x12f38b(0x181,'EvG!')][_0x12f38b(0x158,'q0G*')];}}export class DiskCache{[a2_0x205d39(0x18b,'Jf[N')];[a2_0x205d39(0x169,'1*Ui')+'d']=![];constructor(_0x4dbe3e=DISK_CACHE_DIR){const _0x3a758e=a2_0x205d39;this[_0x3a758e(0x136,'X6FA')]=_0x4dbe3e;}async[a2_0x205d39(0x162,'n*[4')](){const _0x2ed719=a2_0x205d39;if(this[_0x2ed719(0x13b,'&22U')+'d'])return!![];try{return await mkdir(this[_0x2ed719(0x136,'X6FA')],{'recursive':!![]}),this[_0x2ed719(0x180,'VR74')+'d']=!![],!![];}catch{return![];}}[a2_0x205d39(0x167,'xny!')](_0x4b5205){const _0x16059e=a2_0x205d39,_0x40d9e0=createHash(_0x16059e(0x173,'kzXG'))[_0x16059e(0x171,'hDrL')](_0x4b5205)[_0x16059e(0x183,'7)Jf')](_0x16059e(0x140,'B!RA'));return join(this[_0x16059e(0x174,'xny!')],_0x40d9e0+_0x16059e(0x17c,'[UZ4'));}async[a2_0x205d39(0x165,'VR74')](_0x5b6a5e){const _0x16ff8d=a2_0x205d39;if(!await this[_0x16ff8d(0x189,'DHXj')]())return undefined;const _0x3a86d0=this[_0x16ff8d(0x15d,'EvG!')](_0x5b6a5e);try{const _0x446b2d=await readFile(_0x3a86d0,_0x16ff8d(0x16d,'xny!')),_0x7beb8a=JSON[_0x16ff8d(0x13f,'CSo2')](_0x446b2d);if(Date[_0x16ff8d(0x13c,'fz5W')]()>_0x7beb8a[_0x16ff8d(0x159,'EvG!')])return import(_0x16ff8d(0x135,'Jf[N')+'s')[_0x16ff8d(0x16c,'n*[4')](({unlink:_0x5b2191})=>_0x5b2191(_0x3a86d0)[_0x16ff8d(0x156,'#3IA')](()=>void 0x0)),undefined;return _0x7beb8a[_0x16ff8d(0x163,'PKou')];}catch{return undefined;}}async[a2_0x205d39(0x153,'B!RA')](_0x5d1fe7,_0x155ddd,_0x3c6182=CACHE_TTL_MS){const _0x436bda=a2_0x205d39;if(!await this[_0x436bda(0x17d,'@w81')]())return;const _0xb7032a=this[_0x436bda(0x176,'VR74')](_0x5d1fe7),_0x40fb39={'data':_0x155ddd,'expiresAt':Date[_0x436bda(0x172,'9U6g')]()+_0x3c6182};try{await writeFile(_0xb7032a,JSON[_0x436bda(0x18a,'0Gex')](_0x40fb39),_0x436bda(0x147,'oq]r'));}catch{}}async[a2_0x205d39(0x184,'[mC4')](_0x19fe54){const _0x1740a1=a2_0x205d39;if(!await this[_0x1740a1(0x17e,'VR74')]())return![];const _0x547a94=this['keyToPath'](_0x19fe54);try{const _0x3eabaa=await stat(_0x547a94);if(!_0x3eabaa[_0x1740a1(0x148,'xny!')]())return![];const _0x22aa16=await readFile(_0x547a94,_0x1740a1(0x168,'[UZ4')),_0x57b6ca=JSON[_0x1740a1(0x17b,'[UZ4')](_0x22aa16);return Date[_0x1740a1(0x185,'$klK')]()<=_0x57b6ca[_0x1740a1(0x182,'C)p6')];}catch{return![];}}}export const docCache=new LRUCache(0xc8);function a2_0x3ca2(){const _0x215a24=['WQJdI3jCzq','WQ/cKmk5e2BcKZxcJCo9W5yydG','gxJdNCkdwJDJWR0','WONcQxr1FMlcINj4fG','Aq5V','o3NcV8klxa','W5BcLLuB','FGjP','lgZcPmky','W5FcP8oNamoyrgr2W6Hz','tZ7dUa','WPpdK1xdHmoWFmkhs8os','ggNdQGNdJSk8i0q','WQK1CwDQ','hmoaaW','W7FcN8o2WPnkCXytEmo8WOlcMgy','W4jXbbldUG','WR4XDW','W4DKbXxdUG','W7NdPqLiW6uD','WPVcNIC','WP3cJZvfbW','qt3dNCkSrIG','W4lcLmkRtYX1xmoqp08yWQ8','nXebDCoXWOxdQSkcf03dR341','ihddOCk1','EYjP','W6rum8kDuCo3W4ij','o1aRgSoVBNy9W4PSrq','W4BcK0OFWRy','WOBcLcq','W6nXW6bHWPXr','gSkcWQr+WRqzjIBdSmoZW5LKD8oC','b8oadW','lCoHACkvW615WRe','WPxdH0ddJmoW','WPxdILhdJSoQ','WQVdI8k9W7mvmem','WPZdMSoPga','DJTQWRWUWQvygSom','rJtdUW','W5VdQsfwvN3cLfe','WO9hWPBcLLDbW6lcNCoFWOBdRa','EczJWOeZWPbkl8oq','WP3cJs3dLuy','W7pcGMddUCkjyNuFW4FcRNaDW67cHa','W6bXW7G','mxjrW60','W5rRgbxdRCkYWQ8VpW','zubnlq','WR8XDmkEdG','nhZdRW','W7VcTwpdP8o5W4pcT8oo','qYVdOSkrrr12WOmb','tdhcRmk0W6q','WQNdMZ/cTmozoY1pW43cJq','WQRcKSk7eMBcMLtcNSo1W5yhmxm','WPVcJZWAwG','W4vTdG4','xtRdVCoOeG','W63dHCo8','DGJcJG','W4xcLmkIqIX+o8oknhiRWQpcTG','W6JdSafmW6uD','W4VcNXa','jXFcSKdcILa','tcFdQq','hxhcGSkyeKRdJCosi1veW6FcSW','ohZdOSkejSkfWRLoW5S','ngvVimkPW6lcJa','ALvxWR8PWOXwW6/dQH5VnLy','W5mIW6ldM8kc','WRLHWRRcKmoHlXTp','sstcUmoQWRK','fY/cUCo2WRi','tmoBW6eYW79evNBdSG','nNFdQmkLo8kWWPXtW4e','mXanFmo1WOdcMCkadNZdM2i','oNFdSSkKimk0WRrtW4NdPG','ydD1WQC5','j1JdRsldOSkNW60elG','WR/dLNPlCZ4','kmoHyG','zmoDEa','DCoer8kQW61xWOi','WRNdT0RdK8oS','W5vGbWxdQ8kY','W6j6W79XWPPrW7jnlW','WOXnWP0KpSk2W4C2fq','WOVcSYK'];a2_0x3ca2=function(){return _0x215a24;};return a2_0x3ca2();}export const resolveCache=new LRUCache(0x1f4);export const diskDocCache=new DiskCache();
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) */