{"_id":"@agent-seo/next","_rev":"4-63636ec2dfee9dee1b3beba6d26d4d54","name":"@agent-seo/next","dist-tags":{"latest":"1.0.3"},"versions":{"1.0.0":{"name":"@agent-seo/next","version":"1.0.0","keywords":["seo","ai","llm","nextjs","next","middleware","llms-txt","agent","bot"],"license":"MIT","_id":"@agent-seo/next@1.0.0","maintainers":[{"name":"pontidev","email":"felipontiggia@gmail.com"}],"homepage":"https://github.com/pontiggia/agent-seo#readme","bugs":{"url":"https://github.com/pontiggia/agent-seo/issues"},"dist":{"shasum":"49b0c6429a5e56eea7914e9945719b2b420535a7","tarball":"https://registry.npmjs.org/@agent-seo/next/-/next-1.0.0.tgz","fileCount":14,"integrity":"sha512-w81t+3AdsbwSlyGSf/kV5Ik/d6okaLrMyzPNkyEe/peK4y9byTGqU/FSQAAToTyrgEPnl7dMDczb3lBFXfmjgg==","signatures":[{"sig":"MEUCIQCKnT9RDASzU7mAj0LHVOZ+6IlIRnsuWSN3xqM7cD8VbAIgO/L9rzQf/v9s2QvtAwVfRCBxus9HPoRMYIRm41TcUsg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":83530},"main":"dist/index.cjs","type":"module","_from":"file:agent-seo-next-1.0.0.tgz","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=20.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./middleware":{"import":{"types":"./dist/middleware.d.ts","default":"./dist/middleware.js"},"require":{"types":"./dist/middleware.d.cts","default":"./dist/middleware.cjs"}}},"scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"pontidev","email":"felipontiggia@gmail.com"},"_resolved":"/private/var/folders/mk/mybmm3tj2c306r_kcz9bjr4h0000gn/T/f895c7162c9230beb821a5309fc3d5a4/agent-seo-next-1.0.0.tgz","_integrity":"sha512-w81t+3AdsbwSlyGSf/kV5Ik/d6okaLrMyzPNkyEe/peK4y9byTGqU/FSQAAToTyrgEPnl7dMDczb3lBFXfmjgg==","repository":{"url":"git+https://github.com/pontiggia/agent-seo.git","type":"git","directory":"packages/next"},"_npmVersion":"10.9.4","description":"Next.js plugin for AI-readable websites","directories":{},"_nodeVersion":"22.21.0","dependencies":{"@agent-seo/core":"1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.0.0","react":"^19.0.0","react-dom":"^19.0.0"},"peerDependencies":{"next":"^14.0.0 || ^15.0.0 || ^16.0.0"},"_npmOperationalInternal":{"tmp":"tmp/next_1.0.0_1771297551507_0.7991602429245634","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@agent-seo/next","version":"1.0.1","keywords":["seo","ai","llm","nextjs","next","middleware","llms-txt","agent","bot"],"license":"MIT","_id":"@agent-seo/next@1.0.1","maintainers":[{"name":"pontidev","email":"felipontiggia@gmail.com"}],"homepage":"https://github.com/pontiggia/agent-seo#readme","bugs":{"url":"https://github.com/pontiggia/agent-seo/issues"},"dist":{"shasum":"f636115b17e643d9ef12ce4397bceb9da19387b4","tarball":"https://registry.npmjs.org/@agent-seo/next/-/next-1.0.1.tgz","fileCount":15,"integrity":"sha512-UDs7oIld6TEpTvE09/nke7NzAeQQPuO+c2GpvL/2Kma3uhuCmeiNCFVp67u2qo9WhfBQGCBrZkQF/lvmqFYWxQ==","signatures":[{"sig":"MEUCIQD7EazoPtvjPj6ICh3A0ukmdHnJlVc94hx9jnGnxt/gUAIgJmi80VVqA/HhlIDuHhf9JISDLxSLHY3AUxCB4oUv6Nw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":86654},"main":"dist/index.cjs","type":"module","_from":"file:agent-seo-next-1.0.1.tgz","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=20.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./middleware":{"import":{"types":"./dist/middleware.d.ts","default":"./dist/middleware.js"},"require":{"types":"./dist/middleware.d.cts","default":"./dist/middleware.cjs"}}},"scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"pontidev","email":"felipontiggia@gmail.com"},"_resolved":"/private/var/folders/mk/mybmm3tj2c306r_kcz9bjr4h0000gn/T/c175a1189acdb7531663b6da14d535a5/agent-seo-next-1.0.1.tgz","_integrity":"sha512-UDs7oIld6TEpTvE09/nke7NzAeQQPuO+c2GpvL/2Kma3uhuCmeiNCFVp67u2qo9WhfBQGCBrZkQF/lvmqFYWxQ==","repository":{"url":"git+https://github.com/pontiggia/agent-seo.git","type":"git","directory":"packages/next"},"_npmVersion":"10.9.4","description":"Next.js plugin for AI-readable websites","directories":{},"_nodeVersion":"22.21.0","dependencies":{"@agent-seo/core":"1.0.1"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.0.0","react":"^19.0.0","react-dom":"^19.0.0"},"peerDependencies":{"next":"^14.0.0 || ^15.0.0 || ^16.0.0"},"_npmOperationalInternal":{"tmp":"tmp/next_1.0.1_1771297977660_0.673265022975962","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@agent-seo/next","version":"1.0.2","keywords":["seo","ai","llm","nextjs","next","middleware","llms-txt","agent","bot"],"license":"MIT","_id":"@agent-seo/next@1.0.2","maintainers":[{"name":"pontidev","email":"felipontiggia@gmail.com"}],"homepage":"https://github.com/pontiggia/agent-seo#readme","bugs":{"url":"https://github.com/pontiggia/agent-seo/issues"},"dist":{"shasum":"30dded137059a2407e711c00df58d418102e8ef4","tarball":"https://registry.npmjs.org/@agent-seo/next/-/next-1.0.2.tgz","fileCount":15,"integrity":"sha512-kGyGBMdEYz8gr3Hj8HVRzyupti4fMUhLhocK4DEoIWZ8LPZinhmY7EyU7EBFAVE/0MXSyW5JEw8/CXGvj6Vtqw==","signatures":[{"sig":"MEYCIQDWLAUcM88cHbFHCKKf7CwedzN/dx/5Ehj+irGEnQadPQIhAMjGR3Q+ZCw2Hplu/3s4E0GbjZg+SvxJ2klq4rMQTUwb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":88460},"main":"dist/index.cjs","type":"module","_from":"file:agent-seo-next-1.0.2.tgz","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=20.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./middleware":{"import":{"types":"./dist/middleware.d.ts","default":"./dist/middleware.js"},"require":{"types":"./dist/middleware.d.cts","default":"./dist/middleware.cjs"}}},"scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"pontidev","email":"felipontiggia@gmail.com"},"_resolved":"/private/var/folders/mk/mybmm3tj2c306r_kcz9bjr4h0000gn/T/42d31ee49e1ca170013e4c2939af2c04/agent-seo-next-1.0.2.tgz","_integrity":"sha512-kGyGBMdEYz8gr3Hj8HVRzyupti4fMUhLhocK4DEoIWZ8LPZinhmY7EyU7EBFAVE/0MXSyW5JEw8/CXGvj6Vtqw==","repository":{"url":"git+https://github.com/pontiggia/agent-seo.git","type":"git","directory":"packages/next"},"_npmVersion":"10.9.4","description":"Next.js plugin for AI-readable websites","directories":{},"_nodeVersion":"22.21.0","dependencies":{"@agent-seo/core":"1.0.1"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.0.0","react":"^19.0.0","react-dom":"^19.0.0"},"peerDependencies":{"next":"^14.0.0 || ^15.0.0 || ^16.0.0"},"_npmOperationalInternal":{"tmp":"tmp/next_1.0.2_1771341114581_0.5107148049484793","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@agent-seo/next","version":"1.0.3","description":"Next.js plugin for AI-readable websites","license":"MIT","repository":{"type":"git","url":"git+https://github.com/pontiggia/agent-seo.git","directory":"packages/next"},"homepage":"https://github.com/pontiggia/agent-seo#readme","bugs":{"url":"https://github.com/pontiggia/agent-seo/issues"},"keywords":["seo","ai","llm","nextjs","next","middleware","llms-txt","agent","bot"],"type":"module","engines":{"node":">=20.0.0"},"main":"dist/index.cjs","module":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./middleware":{"import":{"types":"./dist/middleware.d.ts","default":"./dist/middleware.js"},"require":{"types":"./dist/middleware.d.cts","default":"./dist/middleware.cjs"}}},"dependencies":{"@agent-seo/core":"1.0.2"},"peerDependencies":{"next":"^14.0.0 || ^15.0.0 || ^16.0.0"},"devDependencies":{"next":"^16.0.0","react":"^19.0.0","react-dom":"^19.0.0"},"scripts":{"build":"tsup","test":"vitest run","typecheck":"tsc --noEmit"},"_id":"@agent-seo/next@1.0.3","_integrity":"sha512-0owGcjdt+upwKU+CU39i9QJy2TqS5CZ8Sd4JeoeuY7G6xe+nPTnfzo98mu76VOCfswXtGQTR1GlzkLphK9X+6w==","_resolved":"/private/var/folders/mk/mybmm3tj2c306r_kcz9bjr4h0000gn/T/cbbd71fe2c7b53f30ad1c23770c58c4b/agent-seo-next-1.0.3.tgz","_from":"file:agent-seo-next-1.0.3.tgz","_nodeVersion":"22.21.0","_npmVersion":"10.9.4","dist":{"integrity":"sha512-0owGcjdt+upwKU+CU39i9QJy2TqS5CZ8Sd4JeoeuY7G6xe+nPTnfzo98mu76VOCfswXtGQTR1GlzkLphK9X+6w==","shasum":"ea62e6f7e2ef35cd67b3bd2bc660f0be0c446830","tarball":"https://registry.npmjs.org/@agent-seo/next/-/next-1.0.3.tgz","fileCount":15,"unpackedSize":88460,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDyY76d9YstWFggvbV9iWUYFTEZrW5Y6FdHKjdLVnSPjAiEA6pVxOT/0W+JNEnkFUSGxG0TZaNESsExozDtToZckzbs="}]},"_npmUser":{"name":"pontidev","email":"felipontiggia@gmail.com"},"directories":{},"maintainers":[{"name":"pontidev","email":"felipontiggia@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/next_1.0.3_1771361151368_0.2227712594797957"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-17T03:05:51.357Z","modified":"2026-02-17T20:45:51.669Z","1.0.0":"2026-02-17T03:05:51.662Z","1.0.1":"2026-02-17T03:12:57.838Z","1.0.2":"2026-02-17T15:11:54.756Z","1.0.3":"2026-02-17T20:45:51.518Z"},"bugs":{"url":"https://github.com/pontiggia/agent-seo/issues"},"license":"MIT","homepage":"https://github.com/pontiggia/agent-seo#readme","keywords":["seo","ai","llm","nextjs","next","middleware","llms-txt","agent","bot"],"repository":{"type":"git","url":"git+https://github.com/pontiggia/agent-seo.git","directory":"packages/next"},"description":"Next.js plugin for AI-readable websites","maintainers":[{"name":"pontidev","email":"felipontiggia@gmail.com"}],"readme":"# @agent-seo/next\n\nNext.js plugin for AI-readable websites. Zero-config `/llms.txt`, automatic HTML-to-Markdown for AI bots.\n\n## Install\n\n```bash\nnpm install @agent-seo/next\n```\n\n## Quick Start\n\n**`next.config.ts`** — wrap your config:\n\n```typescript\nimport { withAgentSeo } from '@agent-seo/next';\n\nexport default withAgentSeo({\n  siteName: 'My App',\n  siteDescription: 'A brief description for AI systems.',\n  baseUrl: 'https://myapp.com',\n  sitemap: true,\n})({\n  // your existing Next.js config\n});\n```\n\n**`middleware.ts`** — enable AI bot detection:\n\n```typescript\nimport { createAgentSeoMiddleware } from '@agent-seo/next/middleware';\n\nexport default createAgentSeoMiddleware({\n  exclude: ['/dashboard/**', '/admin/**'],\n});\n\nexport const config = {\n  matcher: ['/((?!_next/static|_next/image|favicon.ico).*)'],\n};\n```\n\nThat's it. Two files, ~10 lines total.\n\n## What It Does Automatically\n\n- **Auto-generates `/llms.txt`** by scanning your `app/` directory and extracting `metadata` (title, description)\n- **Auto-generates a transform API route** that converts HTML to Markdown on the fly\n- **Auto-generates `robots.txt`** with an AI-friendly config pointing to `/llms.txt`\n- **Detects 19 AI bots** via User-Agent and rewrites their requests to serve Markdown\n- **Handles `.md` suffix** requests (e.g., `/about.md` returns Markdown)\n- **Injects `Vary: Accept, User-Agent`** headers for correct CDN caching\n- **Sets bot-friendly headers** — `Content-Disposition: inline`, `X-Robots-Tag: all`\n\n## How It Works\n\n```\nBrowser → GET /about → HTML (normal)\nGPTBot  → GET /about → Markdown (automatic)\nAnyone  → GET /about.md → Markdown (explicit)\nAnyone  → GET /llms.txt → Site directory for AI agents\n```\n\n## Plugin Options\n\n| Option            | Type                | Description                                                                               |\n| ----------------- | ------------------- | ----------------------------------------------------------------------------------------- |\n| `siteName`        | `string`            | Your site name (used in `llms.txt`)                                                       |\n| `siteDescription` | `string`            | Brief description for AI systems                                                          |\n| `baseUrl`         | `string`            | Your site's public URL                                                                    |\n| `sitemap`         | `boolean \\| string` | Add `Sitemap:` to `robots.txt`. `true` uses `{baseUrl}/sitemap.xml`, or pass a custom URL |\n| `appDir`          | `string`            | Override auto-detected `app/` directory path                                              |\n| `exclude`         | `string[]`          | Route patterns to exclude from `llms.txt` discovery                                       |\n\n## Middleware Options\n\n```typescript\ncreateAgentSeoMiddleware({\n  exclude: [\n    '/dashboard/**',\n    '/admin/**',\n    '/api/private/**',\n  ],\n});\n```\n\nBuilt-in defaults always excluded: `/api/**`, `/_next/**`, `/robots.txt`, `/sitemap.xml`, `/favicon.ico`, `/llms.txt`.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}