{"_id":"@bernierllc/admin-agent-nextjs","_rev":"3-d0dbed16ce421f3ad191717ec82d5351","name":"@bernierllc/admin-agent-nextjs","dist-tags":{"latest":"0.1.1"},"versions":{"0.0.1":{"name":"@bernierllc/admin-agent-nextjs","version":"0.0.1","keywords":["oidc","trusted-publishing","setup"],"_id":"@bernierllc/admin-agent-nextjs@0.0.1","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"5a2a645f02354ae406d930cfac56e084d63fe77b","tarball":"https://registry.npmjs.org/@bernierllc/admin-agent-nextjs/-/admin-agent-nextjs-0.0.1.tgz","fileCount":2,"integrity":"sha512-9VLTM5ZINOqPGws4r14M6RlaYvhOHkEc0ArSQopX7mQuA5AAhinHgQ1XSrKSBxnI9UBpioI4VSfLTR8F39kC8g==","signatures":[{"sig":"MEUCIA6Du/7EchGB9q1DDH/7Hto2RdmJ/K7aikUim6aJbl+eAiEA+iXhd33fxXWRJ680F5MJwjmJoUq9kjyrVzcgJwkwpis=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2083},"_npmUser":{"name":"mkbernier","email":"mkbernier@gmail.com"},"_npmVersion":"11.12.1","description":"OIDC trusted publishing setup package for @bernierllc/admin-agent-nextjs","directories":{},"_nodeVersion":"25.9.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/admin-agent-nextjs_0.0.1_1781978771479_0.41986329141345746","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@bernierllc/admin-agent-nextjs","version":"0.1.0","keywords":["admin-agent","nextjs","app-router","streaming","sse","adapter","bernierllc"],"author":{"name":"Bernier LLC"},"license":"Bernier LLC","_id":"@bernierllc/admin-agent-nextjs@0.1.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"dc253553fd1ddc4fdc45e2026ae2691f4ef5bbbc","tarball":"https://registry.npmjs.org/@bernierllc/admin-agent-nextjs/-/admin-agent-nextjs-0.1.0.tgz","fileCount":14,"integrity":"sha512-ZpP0o9MCHMP28Hv28T8za0KH5nFIokD1IZ3gEE8fvVLyv3D36w/TGzXn9wSW8K5FaHFsArgMQrp127fDbz690Q==","signatures":[{"sig":"MEUCIQC9FEKHwbJY+3ymT92MhKmU+cSj5eUkqT6MRNruuUFz2gIgMBgMyHXhDbbYX4p5Dg74EAKUmIgGeZyWMp9yZplPo+Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25309},"main":"dist/index.js","_from":"file:bernierllc-admin-agent-nextjs-0.1.0.tgz","types":"dist/index.d.ts","browser":false,"engines":{"node":">=18.0.0"},"scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:98a066a3-7ee1-4feb-8234-ce2e74226311"}},"_resolved":"/home/runner/work/tools/tools/packages/service/admin-agent-nextjs/bernierllc-admin-agent-nextjs-0.1.0.tgz","_integrity":"sha512-ZpP0o9MCHMP28Hv28T8za0KH5nFIokD1IZ3gEE8fvVLyv3D36w/TGzXn9wSW8K5FaHFsArgMQrp127fDbz690Q==","bernierllc":{"runtime":"node","category":"service","integration":{"logger":"integrated","neverhub":"not-applicable","neveradmin":"not-applicable"}},"repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git"},"_npmVersion":"11.17.0","description":"Next.js App Router adapter for admin-agent-service: streaming SSE POST handler with auth, validation, and error mapping","directories":{},"_nodeVersion":"24.16.0","dependencies":{"@bernierllc/logger":"^1.7.0","@bernierllc/admin-agent-service":"0.1.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","next":"^15.0.0","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0"},"peerDependencies":{"next":">=14.0.0 <16"},"_npmOperationalInternal":{"tmp":"tmp/admin-agent-nextjs_0.1.0_1781979947032_0.01768002050487083","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@bernierllc/admin-agent-nextjs","version":"0.1.1","description":"Next.js App Router adapter for admin-agent-service: streaming SSE POST handler with auth, validation, and error mapping","main":"dist/index.js","types":"dist/index.d.ts","browser":false,"keywords":["admin-agent","nextjs","app-router","streaming","sse","adapter","bernierllc"],"author":{"name":"Bernier LLC"},"license":"Bernier LLC","dependencies":{"@bernierllc/logger":"^1.7.1","@bernierllc/admin-agent-service":"0.1.1"},"peerDependencies":{"next":">=14.0.0 <16"},"devDependencies":{"@types/jest":"^29.5.5","@types/node":"^20.6.0","jest":"^29.6.4","next":"^15.0.0","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2"},"repository":{"type":"git","url":"git+https://github.com/bernier-llc/tools.git"},"engines":{"node":">=18.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"bernierllc":{"runtime":"node","category":"service","integration":{"neverhub":"not-applicable","neveradmin":"not-applicable","logger":"integrated"}},"scripts":{"build":"tsc","dev":"tsc --watch","test":"jest","test:watch":"jest --watch","test:run":"jest","test:coverage":"jest --coverage","lint":"eslint src/**/*.ts","clean":"rimraf dist","prebuild":"npm run clean"},"_id":"@bernierllc/admin-agent-nextjs@0.1.1","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"homepage":"https://github.com/bernier-llc/tools#readme","_integrity":"sha512-4z8BOmmGoPaBUgCr0KI0xZRktE+L/LZkTuNdUHpzz/WBejBDcq5IykhlC9oj4VaQpMoB/SNicNmJ4zpD6V36Wg==","_resolved":"/home/runner/work/tools/tools/packages/service/admin-agent-nextjs/bernierllc-admin-agent-nextjs-0.1.1.tgz","_from":"file:bernierllc-admin-agent-nextjs-0.1.1.tgz","_nodeVersion":"24.18.0","_npmVersion":"12.0.1","dist":{"integrity":"sha512-4z8BOmmGoPaBUgCr0KI0xZRktE+L/LZkTuNdUHpzz/WBejBDcq5IykhlC9oj4VaQpMoB/SNicNmJ4zpD6V36Wg==","shasum":"9bdfd4b45ed6bd7996a26f6344ceb12e4a488899","tarball":"https://registry.npmjs.org/@bernierllc/admin-agent-nextjs/-/admin-agent-nextjs-0.1.1.tgz","fileCount":14,"unpackedSize":25309,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD7IsXnEBJnavRenCZk+rK30ivJwkV9Uu5aarttQ8vyzQIgSKC4yTP/E19VprDm7DYxtWcXWVRerFl84kQZpoC1mo8="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:98a066a3-7ee1-4feb-8234-ce2e74226311"}},"directories":{},"maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/admin-agent-nextjs_0.1.1_1784015744993_0.6306065485013235"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-20T18:06:11.265Z","modified":"2026-07-14T07:55:45.251Z","0.0.1":"2026-06-20T18:06:11.667Z","0.1.0":"2026-06-20T18:25:47.168Z","0.1.1":"2026-07-14T07:55:45.145Z"},"bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"author":{"name":"Bernier LLC"},"license":"Bernier LLC","homepage":"https://github.com/bernier-llc/tools#readme","keywords":["admin-agent","nextjs","app-router","streaming","sse","adapter","bernierllc"],"repository":{"type":"git","url":"git+https://github.com/bernier-llc/tools.git"},"description":"Next.js App Router adapter for admin-agent-service: streaming SSE POST handler with auth, validation, and error mapping","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"readme":"# @bernierllc/admin-agent-nextjs\n\nThin Next.js App Router adapter that wraps an `AdminAgent` into a streaming SSE POST route handler with auth, validation, and error mapping.\n\n## Installation\n\n```bash\nnpm install @bernierllc/admin-agent-nextjs @bernierllc/admin-agent-service\n```\n\nPeer dependency: `next >= 14.0.0 < 16`.\n\n## Usage\n\n```typescript\n// app/api/chat/admin/route.ts\nimport { createAdminAgentRouteHandler } from '@bernierllc/admin-agent-nextjs';\nimport { adminAgent } from '@/lib/admin-agent';\nimport { getServerSession } from 'next-auth';\nimport { AdminAgentRouteUnauthorizedError } from '@bernierllc/admin-agent-nextjs';\n\nexport const POST = createAdminAgentRouteHandler({\n  agent: adminAgent,\n\n  auth: async (request) => {\n    const session = await getServerSession();\n    if (!session?.user) {\n      throw new AdminAgentRouteUnauthorizedError('Not authenticated');\n    }\n    return { userId: session.user.id, orgId: session.user.orgId };\n  },\n});\n```\n\n## API\n\n### `createAdminAgentRouteHandler(config)`\n\nReturns an `async (request: Request) => Promise<Response>` function suitable for `export const POST` in a Next.js App Router route file.\n\n**Config options:**\n\n| Field | Type | Description |\n|---|---|---|\n| `agent` | `AdminAgent` | Agent instance from `@bernierllc/admin-agent-service` |\n| `auth` | `(request: Request) => Promise<AuthContext>` | Extract auth context; throw `AdminAgentRouteUnauthorizedError` for 401 |\n| `validateBody?` | `(body: unknown) => { message: string }` | Custom body validator; default validates `{ message: string }` |\n| `transformEvent?` | `(event: AdminAgentEvent) => AdminAgentEvent \\| null` | Filter or transform events; return `null` to suppress |\n\n### Errors\n\n- `AdminAgentRouteError` — base error class\n- `AdminAgentRouteUnauthorizedError` — throw from `auth()` to produce a 401\n- `AdminAgentRouteBodyError` — throw from `validateBody()` to produce a 400\n\n### Error-to-HTTP Mapping\n\n| Condition | HTTP Status |\n|---|---|\n| Body parse failure | 400 |\n| `validateBody` throws | 400 |\n| `auth` throws `AdminAgentRouteUnauthorizedError` | 401 |\n| `auth` throws any other error | 500 |\n| Agent initialization failure | 500 |\n| `rate-limited` event received | 200 (stream closes with event) |\n| `feature-disabled` event received | 200 (stream closes with event) |\n\n### Response Format\n\nStreaming `text/plain; charset=utf-8` with `Transfer-Encoding: chunked`. Events are newline-delimited JSON:\n\n```\n{\"type\":\"text-delta\",\"delta\":\"Hello\"}\n{\"type\":\"done\"}\n```\n\n## Node.js Only\n\nThis package requires a Node.js server runtime. It is not browser-safe.\n\n## License\n\nCopyright (c) 2025 Bernier LLC. All rights reserved.\n","readmeFilename":"README.md"}