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>
This commit is contained in:
@@ -0,0 +1 @@
|
||||
(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()}]);
|
||||
Reference in New Issue
Block a user