Files
sentryagent-idp/portal/.next/static/chunks/app/layout-db75ca053106eec0.js
SentryAgent.ai Developer d1e6af25aa feat(phase-4): WS2 + WS3 — Developer Portal (Next.js 14) and CLI tool (sentryagent)
WS2: Developer Portal (portal/)
- Standalone Next.js 14 + Tailwind CSS app — independent deployment
- Home page: hero, feature grid, CTA to /get-started
- /pricing: free tier limits table (10 agents, 1k calls/day) + paid tier CTA
- /sdks: all 4 SDKs (Node.js, Python, Go, Java) with install + code examples
- /api-explorer: Swagger UI from NEXT_PUBLIC_API_URL/openapi.json, persistAuthorization
- /get-started: 4-step wizard (setup → register agent → credentials → SDK snippet)
- Shared Nav component with active-link highlighting
- Build: 8/8 static pages, zero TypeScript errors

WS3: CLI Tool (cli/ — npm package: sentryagent)
- configure, register-agent, list-agents, issue-token, rotate-credentials, tail-audit-log
- Auto OAuth2 token fetch + 30s-buffer cache via client_credentials flow
- chalk-formatted table output, confirmation prompts, bounded audit log dedup
- bash + zsh shell completion scripts
- README with installation, all commands, and completion setup
- Build: tsc clean, node dist/index.js --help verified

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-02 04:29:50 +00:00

1 line
1.7 KiB
JavaScript

(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[185],{41105:function(e,t,r){Promise.resolve().then(r.t.bind(r,58877,23)),Promise.resolve().then(r.bind(r,56390))},56390:function(e,t,r){"use strict";r.d(t,{Nav:function(){return d}});var s=r(57437);r(2265);var n=r(231),a=r.n(n),l=r(71169);let i=[{href:"/",label:"Home"},{href:"/api-explorer",label:"API Explorer"},{href:"/get-started",label:"Get Started"},{href:"/sdks",label:"SDKs"},{href:"/pricing",label:"Pricing"}];function d(){let e=(0,l.usePathname)();return(0,s.jsx)("header",{className:"sticky top-0 z-50 border-b border-slate-200 bg-white/90 backdrop-blur",children:(0,s.jsxs)("nav",{className:"mx-auto flex max-w-7xl items-center justify-between px-6 py-4",children:[(0,s.jsxs)(a(),{href:"/",className:"flex items-center gap-2",children:[(0,s.jsx)("span",{className:"text-xl font-bold text-brand-600",children:"SentryAgent"}),(0,s.jsx)("span",{className:"rounded bg-brand-100 px-1.5 py-0.5 text-xs font-semibold text-brand-700",children:"AgentIdP"})]}),(0,s.jsx)("ul",{className:"flex items-center gap-1",children:i.map(t=>{let{href:r,label:n}=t,l="/"===r?"/"===e:e.startsWith(r);return(0,s.jsx)("li",{children:(0,s.jsx)(a(),{href:r,className:["rounded-md px-3 py-2 text-sm font-medium transition-colors",l?"bg-brand-100 text-brand-700":"text-slate-600 hover:bg-slate-100 hover:text-slate-900"].join(" "),children:n})},r)})}),(0,s.jsx)(a(),{href:"/get-started",className:"rounded-lg bg-brand-600 px-4 py-2 text-sm font-semibold text-white shadow-sm transition-colors hover:bg-brand-700",children:"Get Started Free"})]})})}},58877:function(){}},function(e){e.O(0,[404,231,971,23,744],function(){return e(e.s=41105)}),_N_E=e.O()}]);