Files
sentryagent-idp/portal/.next/server/app/api-explorer.rsc
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

8 lines
3.8 KiB
Plaintext

2:I[49947,["734","static/chunks/app/api-explorer/page-7cae2529092c7dfa.js"],"SwaggerExplorer"]
3:I[39275,[],""]
4:I[61343,[],""]
5:I[56390,["231","static/chunks/231-711da40718c2508c.js","185","static/chunks/app/layout-db75ca053106eec0.js"],"Nav"]
0:["h5w-rj60Vif8vQbejZCYz",[[["",{"children":["api-explorer",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",{"children":["api-explorer",{"children":["__PAGE__",{},[["$L1",["$","div",null,{"className":"px-4 py-8","children":["$","div",null,{"className":"mx-auto max-w-7xl","children":[["$","div",null,{"className":"mb-8","children":[["$","h1",null,{"className":"text-3xl font-extrabold text-slate-900","children":"API Explorer"}],["$","p",null,{"className":"mt-2 text-slate-600","children":"Explore, authenticate, and test every AgentIdP endpoint directly from your browser. Use the Authorize button to set your Bearer token."}],["$","p",null,{"className":"mt-1 text-sm text-slate-400","children":["Spec loaded from:"," ",["$","code",null,{"className":"rounded bg-slate-100 px-1.5 py-0.5 text-xs","children":["http://localhost:3000","/openapi.json"]}]]}]]}],["$","$L2",null,{"apiUrl":"http://localhost:3000"}]]}]}]],null],null]},["$","$L3",null,{"parallelRouterKey":"children","segmentPath":["children","api-explorer","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined","styles":[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/a4c02a9871b5dc42.css","precedence":"next","crossOrigin":"$undefined"}]]}],null]},[["$","html",null,{"lang":"en","children":["$","body",null,{"className":"min-h-screen bg-slate-50 text-slate-900 antialiased","children":[["$","$L5",null,{}],["$","main",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":"404"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[],"styles":null}]}],["$","footer",null,{"className":"border-t border-slate-200 py-8 text-center text-sm text-slate-500","children":["$","p",null,{"children":["© ",2026," SentryAgent.ai — All rights reserved."]}]}]]}]}],null],null],[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/0d1e1814871c1ae4.css","precedence":"next","crossOrigin":"$undefined"}]],[null,"$L6"]]]]]
6:[["$","meta","0",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","1",{"charSet":"utf-8"}],["$","title","2",{"children":"API Explorer — SentryAgent AgentIdP"}],["$","meta","3",{"name":"description","content":"Interactively explore and test the SentryAgent AgentIdP REST API."}]]
1:null