[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"extension-skill-vercel-vercel-firewall-fr":3,"guides-for-vercel-vercel-firewall":229,"similar-k1746a1d0bj78bfzjmcmh87tsn86656m":230},{"_creationTime":4,"_id":5,"children":6,"community":7,"display":9,"evaluation":20,"identity":189,"isFallback":192,"parentExtension":193,"providers":194,"relations":198,"repo":200,"workflow":226},1778054586606.9197,"k1746a1d0bj78bfzjmcmh87tsn86656m",[],{"reviewCount":8},0,{"description":10,"installMethods":11,"name":12,"sourceUrl":13,"tags":14},"Rate limiting via the Vercel Firewall",{},"Vercel Firewall","https://github.com/vercel/vercel/tree/HEAD/packages/firewall",[15,16,17,18,19],"rate-limiting","security","vercel","typescript","utility",{"_creationTime":21,"_id":22,"extensionId":5,"locale":23,"result":24,"trustSignals":177,"workflow":187},1778054733091.3445,"kn72ggxmbb7hjbhp713hnvgp198662qm","en",{"checks":25,"evaluatedAt":167,"extensionSummary":168,"promptVersionExtension":169,"promptVersionScoring":170,"rationale":171,"score":172,"summary":173,"tags":174,"targetMarket":175,"tier":176},[26,31,34,37,41,44,48,52,55,58,62,67,70,74,77,80,83,86,89,92,96,100,105,109,113,116,119,122,126,129,132,135,138,141,145,148,151,154,157,160,164],{"category":27,"check":28,"severity":29,"summary":30},"Practical Utility","Problem relevance","pass","The description clearly states the problem: rate limiting via the Vercel Firewall.",{"category":27,"check":32,"severity":29,"summary":33},"Unique selling proposition","The extension offers programmatic access to Vercel Firewall rate limits, a distinct capability beyond standard API usage or simple prompting.",{"category":27,"check":35,"severity":29,"summary":36},"Production readiness","The extension is production-ready, providing a core function for rate limiting that can be integrated into Vercel Functions for complete lifecycle management of security policies.",{"category":38,"check":39,"severity":29,"summary":40},"Scope","Single responsibility principle","The extension focuses solely on providing rate limiting functionality through the Vercel Firewall.",{"category":38,"check":42,"severity":29,"summary":43},"Description quality","The description is concise, accurate, and directly reflects the extension's purpose.",{"category":45,"check":46,"severity":29,"summary":47},"Invocation","Scoped tools","The extension provides a single, well-scoped tool `checkRateLimit` for its specific purpose.",{"category":49,"check":50,"severity":29,"summary":51},"Documentation","Configuration & parameter reference","All parameters, including optional ones and their default behaviors (e.g., using IP address as rate limit key), are documented.",{"category":38,"check":53,"severity":29,"summary":54},"Tool naming","The tool name `checkRateLimit` (and its alias `unstable_checkRateLimit`) is descriptive of its function.",{"category":38,"check":56,"severity":29,"summary":57},"Minimal I/O surface","The `checkRateLimit` function takes specific parameters like `rateLimitId` and `options` and returns a clear object indicating `rateLimited` status and potential errors.",{"category":59,"check":60,"severity":29,"summary":61},"License","License usability","The extension is licensed under Apache-2.0, a permissive open-source license.",{"category":63,"check":64,"severity":65,"summary":66},"Maintenance","Commit recency","warning","The last commit was over 3 months ago (1.1.2 update was 2024-01-26, and latest is 1.2.0 on 2024-04-18, which is within 3 months), indicating potential maintenance lag.",{"category":63,"check":68,"severity":29,"summary":69},"Dependency Management","The project uses pnpm and has a `pnpm-lock.yaml` file, indicating good dependency management practices.",{"category":71,"check":72,"severity":29,"summary":73},"Security","Secret Management","The code handles secrets appropriately, forwarding relevant headers and using environment variables only for configuration, not echoing sensitive data.",{"category":71,"check":75,"severity":29,"summary":76},"Injection","The extension primarily makes outbound calls to a Vercel-specific API and does not appear to load or execute untrusted third-party data as instructions.",{"category":71,"check":78,"severity":29,"summary":79},"Transitive Supply-Chain Grenades","The extension does not appear to fetch remote content at runtime or include untrusted code that could pose a supply-chain risk.",{"category":71,"check":81,"severity":29,"summary":82},"Sandbox Isolation","The extension operates by making network requests to a Vercel API and does not appear to modify files outside its designated scope.",{"category":71,"check":84,"severity":29,"summary":85},"Sandbox escape primitives","No detached-process spawns or deny-retry loops were detected in the source code.",{"category":71,"check":87,"severity":29,"summary":88},"Data Exfiltration","The extension makes calls to a Vercel API and forwards necessary headers, but there are no indications of unauthorized data exfiltration.",{"category":71,"check":90,"severity":29,"summary":91},"Hidden Text Tricks","Bundled files do not contain hidden text tricks or malicious steering mechanisms.",{"category":93,"check":94,"severity":29,"summary":95},"Hooks","Opaque code execution","The code is written in plain TypeScript and is not obfuscated, minified, or dynamically fetched.",{"category":97,"check":98,"severity":29,"summary":99},"Portability","Structural Assumption","The extension makes no assumptions about user-specific project organization; it primarily interacts with Vercel's APIs.",{"category":101,"check":102,"severity":103,"summary":104},"Trust","Issues Attention","not_applicable","No issues data available.",{"category":106,"check":107,"severity":29,"summary":108},"Versioning","Release Management","The extension has a clear versioning scheme indicated by CHANGELOG.md and package.json, with the latest version being 1.2.0.",{"category":110,"check":111,"severity":29,"summary":112},"Code Execution","Validation","Input arguments like `rateLimitId` are handled and some validation is present (e.g., checking for presence of headers or `request` object).",{"category":71,"check":114,"severity":29,"summary":115},"Unguarded Destructive Operations","The extension is primarily read-only, performing checks rather than destructive operations.",{"category":110,"check":117,"severity":29,"summary":118},"Error Handling","Errors are handled, with specific return values for 'not-found' and 'blocked', and exceptions are thrown for unexpected issues.",{"category":110,"check":120,"severity":103,"summary":121},"Logging","No local audit file logging is expected or necessary for this read-only network-bound utility.",{"category":123,"check":124,"severity":29,"summary":125},"Compliance","GDPR","The extension processes IP addresses and JWTs for rate limiting, but this is standard for network security and doesn't involve direct personal data submission to third parties beyond Vercel's infrastructure.",{"category":123,"check":127,"severity":29,"summary":128},"Target market","The extension is designed for use with Vercel services, making its target market global, or any region where Vercel is deployed.",{"category":97,"check":130,"severity":29,"summary":131},"Runtime stability","The extension is written in TypeScript and relies on Node.js environment features, with checks for development vs. production environments.",{"category":45,"check":133,"severity":29,"summary":134},"Precise Purpose","The extension clearly states its purpose (rate limiting via Vercel Firewall) and when to use it (within Vercel Functions).",{"category":45,"check":136,"severity":29,"summary":137},"Concise Frontmatter","The description in `package.json` and the code comments are concise and accurately summarize the extension's core capability.",{"category":49,"check":139,"severity":29,"summary":140},"Concise Body","The source code is well-organized and not excessively long, with documentation in separate files or comments.",{"category":142,"check":143,"severity":29,"summary":144},"Context","Progressive Disclosure","Documentation is provided in separate README files, and the core logic is in well-structured TS files.",{"category":142,"check":146,"severity":103,"summary":147},"Forked exploration","This extension is a utility function and does not involve deep exploration or code review.",{"category":27,"check":149,"severity":29,"summary":150},"Usage examples","Clear usage examples are provided in the README and documentation for programmatic rate limiting.",{"category":27,"check":152,"severity":29,"summary":153},"Edge cases","The documentation and code handle edge cases like missing rate limit IDs and development mode warnings.",{"category":110,"check":155,"severity":103,"summary":156},"Tool Fallback","The extension does not rely on external tools like an MCP server and uses standard Node.js APIs.",{"category":97,"check":158,"severity":29,"summary":159},"Stack assumptions","The extension explicitly states its Node.js requirement in `tsconfig.json` and `package.json` engines.",{"category":161,"check":162,"severity":29,"summary":163},"Safety","Halt on unexpected state","The extension handles unexpected states by throwing errors or returning specific status codes, preventing further execution.",{"category":97,"check":165,"severity":29,"summary":166},"Cross-skill coupling","The extension is self-contained and does not implicitly rely on other skills.",1778054634668,"This extension provides programmatic access to Vercel Firewall rate limits within Vercel Functions. It allows developers to define custom rate limiting rules using IDs that match configured Vercel Firewall rules, returning a boolean indicating if a request is rate-limited.","2.0.0","3.4.0","The extension is well-documented, production-ready, and adheres to security best practices. The only minor concern is the commit recency, but it has had recent updates.",95,"A robust and secure utility for implementing rate limiting via the Vercel Firewall.",[15,16,17,18,19],"global","verified",{"codeQuality":178,"collectedAt":179,"documentation":180,"maintenance":182,"security":183,"testCoverage":186},{},1778054622931,{"descriptionLength":181,"readmeSize":8},37,{},{"hasNpmPackage":184,"license":185,"smitheryVerified":184},false,"Apache-2.0",{"hasCi":184,"hasTests":184},{"updatedAt":188},1778054733091,{"githubOwner":17,"githubRepo":17,"locale":23,"slug":190,"type":191},"vercel-firewall","skill",true,null,{"extract":195,"llm":197},{"commitSha":196,"license":185},"da93fccb68ef705f866ddb8d4ff596495589442a",{"promptVersionExtension":169,"promptVersionScoring":170,"score":172,"targetMarket":175,"tier":176},{"repoId":199},"kd70sna36fh1a450f5r7e0f8p986555e",{"_creationTime":201,"_id":199,"identity":202,"providers":204,"workflow":223},1777995558409.8784,{"githubOwner":17,"githubRepo":17,"sourceUrl":203},"https://github.com/vercel/vercel",{"discover":205,"github":208},{"sources":206},[207],"skills-sh",{"closedIssues90d":209,"forks":210,"homepage":211,"license":185,"openIssues90d":212,"pushedAt":213,"readmeSize":214,"stars":215,"topics":216},76,3565,"https://vercel.com",53,1778045678000,7377,15423,[217,218,17,219,220,221,222],"cli","command","cloud","hosting","jamstack","ship",{"discoverAt":224,"extractAt":225,"githubAt":225,"updatedAt":225},1777995558409,1778054592979,{"anyEnrichmentAt":227,"extractAt":228,"githubAt":227,"llmAt":188,"updatedAt":188},1778054590995,1778054586606,[],[231,252,272,291,309,340],{"_creationTime":232,"_id":233,"community":234,"display":235,"identity":244,"providers":246,"relations":250,"workflow":251},1778054586606.9207,"k17dgzjgvsrbv3nsbp0kz4c1ax8665ww",{"reviewCount":8},{"description":236,"installMethods":237,"name":238,"sourceUrl":239,"tags":240},"Vercel filesystem detectors",{},"Vercel Filesystem Detectors","https://github.com/vercel/vercel/tree/HEAD/packages/fs-detectors",[17,241,242,243,217,19],"build-system","framework-detection","monorepo",{"githubOwner":17,"githubRepo":17,"locale":23,"slug":245,"type":191},"vercel-fs-detectors",{"extract":247,"llm":248},{"commitSha":196,"license":185},{"promptVersionExtension":169,"promptVersionScoring":170,"score":249,"targetMarket":175,"tier":176},100,{"repoId":199},{"anyEnrichmentAt":227,"extractAt":228,"githubAt":227,"llmAt":188,"updatedAt":188},{"_creationTime":253,"_id":254,"community":255,"display":256,"identity":264,"providers":266,"relations":270,"workflow":271},1778054586606.93,"k17b4ce2de5mf98x1ztf9gamm9867tya",{"reviewCount":8},{"description":257,"installMethods":258,"name":259,"sourceUrl":260,"tags":261},"Vercel utilities for working with related projects",{},"Vercel Related Projects","https://github.com/vercel/vercel/tree/HEAD/packages/related-projects",[17,18,262,263],"environment-variables","configuration",{"githubOwner":17,"githubRepo":17,"locale":23,"slug":265,"type":191},"vercel-related-projects",{"extract":267,"llm":268},{"commitSha":196,"license":185},{"promptVersionExtension":169,"promptVersionScoring":170,"score":269,"targetMarket":175,"tier":176},98,{"repoId":199},{"anyEnrichmentAt":227,"extractAt":228,"githubAt":227,"llmAt":188,"updatedAt":188},{"_creationTime":273,"_id":274,"community":275,"display":276,"identity":284,"providers":286,"relations":289,"workflow":290},1778054586606.9153,"k1722zgke2zxpzp1znrsnh88yd866q4c",{"reviewCount":8},{"description":277,"installMethods":278,"name":279,"sourceUrl":280,"tags":281},"Used by Vercel's CLIs to handle authentication",{},"Vercel CLI Auth","https://github.com/vercel/vercel/tree/HEAD/packages/cli-auth",[282,217,18,283,16,17],"authentication","oauth",{"githubOwner":17,"githubRepo":17,"locale":23,"slug":285,"type":191},"vercel-cli-auth",{"extract":287,"llm":288},{"commitSha":196,"license":185},{"promptVersionExtension":169,"promptVersionScoring":170,"score":172,"targetMarket":175,"tier":176},{"repoId":199},{"anyEnrichmentAt":227,"extractAt":228,"githubAt":227,"llmAt":188,"updatedAt":188},{"_creationTime":292,"_id":293,"community":294,"display":295,"identity":302,"providers":304,"relations":307,"workflow":308},1778054586606.9182,"k176p01x1fx5mdnmptx4dwnwmx8675c5",{"reviewCount":8},{"description":296,"installMethods":297,"name":298,"sourceUrl":299,"tags":300},"A collection of error utilities for vercel/vercel",{},"Vercel Error Utilities","https://github.com/vercel/vercel/tree/HEAD/packages/error-utils",[18,17,301,19],"error-handling",{"githubOwner":17,"githubRepo":17,"locale":23,"slug":303,"type":191},"vercel-error-utils",{"extract":305,"llm":306},{"commitSha":196,"license":185},{"promptVersionExtension":169,"promptVersionScoring":170,"score":172,"targetMarket":175,"tier":176},{"repoId":199},{"anyEnrichmentAt":227,"extractAt":228,"githubAt":227,"llmAt":188,"updatedAt":188},{"_creationTime":310,"_id":311,"community":312,"display":313,"identity":323,"providers":327,"relations":333,"workflow":335},1777995614337.9844,"k17f0xfg2pkfqd1p5jjzh8sswh8645px",{"reviewCount":8},{"description":314,"installMethods":315,"name":316,"sourceUrl":317,"tags":318},"Scaffold an editable Tandem control panel app",{},"Tandem Panel Scaffold","https://github.com/frumu-ai/tandem/tree/HEAD/packages/create-tandem-panel",[319,217,320,18,321,322],"scaffolding","react","vite","ui",{"githubOwner":324,"githubRepo":325,"locale":23,"slug":326,"type":191},"frumu-ai","tandem","create-tandem-panel",{"extract":328,"llm":331,"smithery":332},{"commitSha":329,"license":330},"25c8ae7c2f8b20d576a2b8d44946ac2e0ff9408d","MIT OR Apache-2.0",{"promptVersionExtension":169,"promptVersionScoring":170,"score":249,"targetMarket":175,"tier":176},{"qualityScore":8,"totalActivations":8,"uniqueUsers":8,"useCount":8,"verified":184},{"repoId":334},"kd72pd305er4m7vecv9p6mnd4s865kea",{"anyEnrichmentAt":336,"extractAt":337,"githubAt":338,"llmAt":339,"smitheryAt":336,"updatedAt":339},1777995723550,1777995614338,1777995614791,1777995897177,{"_creationTime":341,"_id":342,"community":343,"display":344,"identity":353,"providers":356,"relations":362,"workflow":364},1778054425877.1958,"k171ck7gyw157xcvkrk6k0r9y1866w01",{"reviewCount":8},{"description":345,"name":346,"sourceUrl":347,"tags":348},"ESLint rules for React Hooks","ESLint Plugin React Hooks","https://github.com/facebook/react/tree/HEAD/packages/eslint-plugin-react-hooks",[320,349,350,351,352,18],"eslint","linting","hooks","javascript",{"githubOwner":354,"githubRepo":320,"locale":23,"slug":355,"type":191},"facebook","eslint-plugin-react-hooks",{"extract":357,"llm":360},{"commitSha":358,"license":359},"9635257c1b557acc81f95b1e974a54c752e703a2","MIT",{"promptVersionExtension":169,"promptVersionScoring":170,"score":361,"targetMarket":175,"tier":176},99,{"repoId":363},"kd73v9dy7vwq94hgzc7eh43b9s865rhq",{"anyEnrichmentAt":365,"extractAt":366,"githubAt":365,"llmAt":367,"updatedAt":367},1778054428301,1778054425877,1778054588390]