Files
sentryagent-idp/portal/.next/server/app/sdks.html
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

86 lines
23 KiB
HTML

<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/0d1e1814871c1ae4.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-75820735529c9609.js"/><script src="/_next/static/chunks/fd9d1056-0ffa74f19011bd1c.js" async=""></script><script src="/_next/static/chunks/23-eed73080eee64cfd.js" async=""></script><script src="/_next/static/chunks/main-app-ce894e58853e9441.js" async=""></script><script src="/_next/static/chunks/231-711da40718c2508c.js" async=""></script><script src="/_next/static/chunks/app/layout-db75ca053106eec0.js" async=""></script><title>SentryAgent.ai Developer Portal</title><meta name="description" content="Identity and access management for AI agents. Register, authenticate, and secure your agents with SentryAgent AgentIdP."/><script src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js" noModule=""></script></head><body class="min-h-screen bg-slate-50 text-slate-900 antialiased"><header class="sticky top-0 z-50 border-b border-slate-200 bg-white/90 backdrop-blur"><nav class="mx-auto flex max-w-7xl items-center justify-between px-6 py-4"><a class="flex items-center gap-2" href="/"><span class="text-xl font-bold text-brand-600">SentryAgent</span><span class="rounded bg-brand-100 px-1.5 py-0.5 text-xs font-semibold text-brand-700">AgentIdP</span></a><ul class="flex items-center gap-1"><li><a class="rounded-md px-3 py-2 text-sm font-medium transition-colors text-slate-600 hover:bg-slate-100 hover:text-slate-900" href="/">Home</a></li><li><a class="rounded-md px-3 py-2 text-sm font-medium transition-colors text-slate-600 hover:bg-slate-100 hover:text-slate-900" href="/api-explorer">API Explorer</a></li><li><a class="rounded-md px-3 py-2 text-sm font-medium transition-colors text-slate-600 hover:bg-slate-100 hover:text-slate-900" href="/get-started">Get Started</a></li><li><a class="rounded-md px-3 py-2 text-sm font-medium transition-colors bg-brand-100 text-brand-700" href="/sdks">SDKs</a></li><li><a class="rounded-md px-3 py-2 text-sm font-medium transition-colors text-slate-600 hover:bg-slate-100 hover:text-slate-900" href="/pricing">Pricing</a></li></ul><a class="rounded-lg bg-brand-600 px-4 py-2 text-sm font-semibold text-white shadow-sm transition-colors hover:bg-brand-700" href="/get-started">Get Started Free</a></nav></header><main><div class="px-6 py-20"><div class="mx-auto max-w-5xl"><div class="mb-12 text-center"><h1 class="mb-4 text-4xl font-extrabold text-slate-900">Official SDKs</h1><p class="text-xl text-slate-600">Native libraries for your language of choice. Every SDK is type-safe, fully tested, and maintained by the SentryAgent team.</p></div><div class="space-y-10"><div class="rounded-2xl border border-slate-200 bg-white p-8 shadow-sm"><div class="mb-6 flex items-center justify-between"><div class="flex items-center gap-3"><h2 class="text-2xl font-bold text-slate-900">Node.js SDK</h2><span class="rounded-full bg-brand-100 px-3 py-0.5 text-sm font-semibold text-brand-700">TypeScript</span></div><a href="https://github.com/sentryagent/sdk-node" target="_blank" rel="noopener noreferrer" class="text-sm font-medium text-brand-600 hover:underline">View on GitHub →</a></div><div class="mb-6"><p class="mb-2 text-sm font-semibold uppercase tracking-wider text-slate-500">Installation</p><pre class="overflow-x-auto rounded-lg bg-slate-900 px-4 py-3 text-sm text-slate-100"><code>npm install @sentryagent/idp-sdk</code></pre></div><div><p class="mb-2 text-sm font-semibold uppercase tracking-wider text-slate-500">Quick Start</p><pre class="overflow-x-auto rounded-lg bg-slate-900 px-4 py-4 text-sm leading-relaxed text-slate-100"><code>import { AgentIdPClient } from &#x27;@sentryagent/idp-sdk&#x27;;
const client = new AgentIdPClient({
apiUrl: process.env.AGENTIDP_URL!,
clientId: process.env.AGENTIDP_CLIENT_ID!,
clientSecret: process.env.AGENTIDP_CLIENT_SECRET!,
});
// Register a new agent
const agent = await client.agents.register({
name: &#x27;my-ai-agent&#x27;,
description: &#x27;Production summarisation agent&#x27;,
});
console.log(&#x27;Agent ID:&#x27;, agent.agentId);
// Issue an access token
const { accessToken } = await client.tokens.issue(agent.agentId);
console.log(&#x27;Token:&#x27;, accessToken);</code></pre></div></div><div class="rounded-2xl border border-slate-200 bg-white p-8 shadow-sm"><div class="mb-6 flex items-center justify-between"><div class="flex items-center gap-3"><h2 class="text-2xl font-bold text-slate-900">Python SDK</h2><span class="rounded-full bg-brand-100 px-3 py-0.5 text-sm font-semibold text-brand-700">Python</span></div><a href="https://github.com/sentryagent/sdk-python" target="_blank" rel="noopener noreferrer" class="text-sm font-medium text-brand-600 hover:underline">View on GitHub →</a></div><div class="mb-6"><p class="mb-2 text-sm font-semibold uppercase tracking-wider text-slate-500">Installation</p><pre class="overflow-x-auto rounded-lg bg-slate-900 px-4 py-3 text-sm text-slate-100"><code>pip install sentryagent-idp</code></pre></div><div><p class="mb-2 text-sm font-semibold uppercase tracking-wider text-slate-500">Quick Start</p><pre class="overflow-x-auto rounded-lg bg-slate-900 px-4 py-4 text-sm leading-relaxed text-slate-100"><code>from sentryagent_idp import AgentIdPClient
client = AgentIdPClient(
api_url=os.environ[&quot;AGENTIDP_URL&quot;],
client_id=os.environ[&quot;AGENTIDP_CLIENT_ID&quot;],
client_secret=os.environ[&quot;AGENTIDP_CLIENT_SECRET&quot;],
)
# Register a new agent
agent = client.agents.register(
name=&quot;my-ai-agent&quot;,
description=&quot;Production summarisation agent&quot;,
)
print(&quot;Agent ID:&quot;, agent.agent_id)
# Issue an access token
token_response = client.tokens.issue(agent.agent_id)
print(&quot;Token:&quot;, token_response.access_token)</code></pre></div></div><div class="rounded-2xl border border-slate-200 bg-white p-8 shadow-sm"><div class="mb-6 flex items-center justify-between"><div class="flex items-center gap-3"><h2 class="text-2xl font-bold text-slate-900">Go SDK</h2><span class="rounded-full bg-brand-100 px-3 py-0.5 text-sm font-semibold text-brand-700">Go</span></div><a href="https://github.com/sentryagent/sdk-go" target="_blank" rel="noopener noreferrer" class="text-sm font-medium text-brand-600 hover:underline">View on GitHub →</a></div><div class="mb-6"><p class="mb-2 text-sm font-semibold uppercase tracking-wider text-slate-500">Installation</p><pre class="overflow-x-auto rounded-lg bg-slate-900 px-4 py-3 text-sm text-slate-100"><code>go get github.com/sentryagent/idp-sdk-go</code></pre></div><div><p class="mb-2 text-sm font-semibold uppercase tracking-wider text-slate-500">Quick Start</p><pre class="overflow-x-auto rounded-lg bg-slate-900 px-4 py-4 text-sm leading-relaxed text-slate-100"><code>import (
&quot;fmt&quot;
&quot;os&quot;
idp &quot;github.com/sentryagent/idp-sdk-go&quot;
)
client := idp.NewClient(idp.Config{
APIURL: os.Getenv(&quot;AGENTIDP_URL&quot;),
ClientID: os.Getenv(&quot;AGENTIDP_CLIENT_ID&quot;),
ClientSecret: os.Getenv(&quot;AGENTIDP_CLIENT_SECRET&quot;),
})
// Register a new agent
agent, err := client.Agents.Register(ctx, &amp;idp.RegisterAgentInput{
Name: &quot;my-ai-agent&quot;,
Description: &quot;Production summarisation agent&quot;,
})
if err != nil {
panic(err)
}
fmt.Println(&quot;Agent ID:&quot;, agent.AgentID)
// Issue an access token
token, err := client.Tokens.Issue(ctx, agent.AgentID)
fmt.Println(&quot;Token:&quot;, token.AccessToken)</code></pre></div></div><div class="rounded-2xl border border-slate-200 bg-white p-8 shadow-sm"><div class="mb-6 flex items-center justify-between"><div class="flex items-center gap-3"><h2 class="text-2xl font-bold text-slate-900">Java SDK</h2><span class="rounded-full bg-brand-100 px-3 py-0.5 text-sm font-semibold text-brand-700">Java</span></div><a href="https://github.com/sentryagent/sdk-java" target="_blank" rel="noopener noreferrer" class="text-sm font-medium text-brand-600 hover:underline">View on GitHub →</a></div><div class="mb-6"><p class="mb-2 text-sm font-semibold uppercase tracking-wider text-slate-500">Installation</p><pre class="overflow-x-auto rounded-lg bg-slate-900 px-4 py-3 text-sm text-slate-100"><code>&lt;dependency&gt;
&lt;groupId&gt;ai.sentryagent&lt;/groupId&gt;
&lt;artifactId&gt;idp-sdk&lt;/artifactId&gt;
&lt;version&gt;1.0.0&lt;/version&gt;
&lt;/dependency&gt;</code></pre></div><div><p class="mb-2 text-sm font-semibold uppercase tracking-wider text-slate-500">Quick Start</p><pre class="overflow-x-auto rounded-lg bg-slate-900 px-4 py-4 text-sm leading-relaxed text-slate-100"><code>import ai.sentryagent.idp.AgentIdPClient;
import ai.sentryagent.idp.model.Agent;
import ai.sentryagent.idp.model.TokenResponse;
AgentIdPClient client = AgentIdPClient.builder()
.apiUrl(System.getenv(&quot;AGENTIDP_URL&quot;))
.clientId(System.getenv(&quot;AGENTIDP_CLIENT_ID&quot;))
.clientSecret(System.getenv(&quot;AGENTIDP_CLIENT_SECRET&quot;))
.build();
// Register a new agent
Agent agent = client.agents().register(
RegisterAgentRequest.builder()
.name(&quot;my-ai-agent&quot;)
.description(&quot;Production summarisation agent&quot;)
.build()
);
System.out.println(&quot;Agent ID: &quot; + agent.getAgentId());
// Issue an access token
TokenResponse token = client.tokens().issue(agent.getAgentId());
System.out.println(&quot;Token: &quot; + token.getAccessToken());</code></pre></div></div></div></div></div></main><footer class="border-t border-slate-200 py-8 text-center text-sm text-slate-500"><p>© <!-- -->2026<!-- --> SentryAgent.ai — All rights reserved.</p></footer><script src="/_next/static/chunks/webpack-75820735529c9609.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/css/0d1e1814871c1ae4.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[95751,[],\"\"]\n4:I[39275,[],\"\"]\n5:I[61343,[],\"\"]\n6:I[56390,[\"231\",\"static/chunks/231-711da40718c2508c.js\",\"185\",\"static/chunks/app/layout-db75ca053106eec0.js\"],\"Nav\"]\n8:I[76130,[],\"\"]\n9:[]\n"])</script><script>self.__next_f.push([1,"0:[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/0d1e1814871c1ae4.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"$L2\",null,{\"buildId\":\"h5w-rj60Vif8vQbejZCYz\",\"assetPrefix\":\"\",\"initialCanonicalUrl\":\"/sdks\",\"initialTree\":[\"\",{\"children\":[\"sdks\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"sdks\",{\"children\":[\"__PAGE__\",{},[[\"$L3\",[\"$\",\"div\",null,{\"className\":\"px-6 py-20\",\"children\":[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-5xl\",\"children\":[[\"$\",\"div\",null,{\"className\":\"mb-12 text-center\",\"children\":[[\"$\",\"h1\",null,{\"className\":\"mb-4 text-4xl font-extrabold text-slate-900\",\"children\":\"Official SDKs\"}],[\"$\",\"p\",null,{\"className\":\"text-xl text-slate-600\",\"children\":\"Native libraries for your language of choice. Every SDK is type-safe, fully tested, and maintained by the SentryAgent team.\"}]]}],[\"$\",\"div\",null,{\"className\":\"space-y-10\",\"children\":[[\"$\",\"div\",\"Node.js SDK\",{\"className\":\"rounded-2xl border border-slate-200 bg-white p-8 shadow-sm\",\"children\":[[\"$\",\"div\",null,{\"className\":\"mb-6 flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-3\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-2xl font-bold text-slate-900\",\"children\":\"Node.js SDK\"}],[\"$\",\"span\",null,{\"className\":\"rounded-full bg-brand-100 px-3 py-0.5 text-sm font-semibold text-brand-700\",\"children\":\"TypeScript\"}]]}],[\"$\",\"a\",null,{\"href\":\"https://github.com/sentryagent/sdk-node\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"text-sm font-medium text-brand-600 hover:underline\",\"children\":\"View on GitHub →\"}]]}],[\"$\",\"div\",null,{\"className\":\"mb-6\",\"children\":[[\"$\",\"p\",null,{\"className\":\"mb-2 text-sm font-semibold uppercase tracking-wider text-slate-500\",\"children\":\"Installation\"}],[\"$\",\"pre\",null,{\"className\":\"overflow-x-auto rounded-lg bg-slate-900 px-4 py-3 text-sm text-slate-100\",\"children\":[\"$\",\"code\",null,{\"children\":\"npm install @sentryagent/idp-sdk\"}]}]]}],[\"$\",\"div\",null,{\"children\":[[\"$\",\"p\",null,{\"className\":\"mb-2 text-sm font-semibold uppercase tracking-wider text-slate-500\",\"children\":\"Quick Start\"}],[\"$\",\"pre\",null,{\"className\":\"overflow-x-auto rounded-lg bg-slate-900 px-4 py-4 text-sm leading-relaxed text-slate-100\",\"children\":[\"$\",\"code\",null,{\"children\":\"import { AgentIdPClient } from '@sentryagent/idp-sdk';\\n\\nconst client = new AgentIdPClient({\\n apiUrl: process.env.AGENTIDP_URL!,\\n clientId: process.env.AGENTIDP_CLIENT_ID!,\\n clientSecret: process.env.AGENTIDP_CLIENT_SECRET!,\\n});\\n\\n// Register a new agent\\nconst agent = await client.agents.register({\\n name: 'my-ai-agent',\\n description: 'Production summarisation agent',\\n});\\n\\nconsole.log('Agent ID:', agent.agentId);\\n\\n// Issue an access token\\nconst { accessToken } = await client.tokens.issue(agent.agentId);\\nconsole.log('Token:', accessToken);\"}]}]]}]]}],[\"$\",\"div\",\"Python SDK\",{\"className\":\"rounded-2xl border border-slate-200 bg-white p-8 shadow-sm\",\"children\":[[\"$\",\"div\",null,{\"className\":\"mb-6 flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-3\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-2xl font-bold text-slate-900\",\"children\":\"Python SDK\"}],[\"$\",\"span\",null,{\"className\":\"rounded-full bg-brand-100 px-3 py-0.5 text-sm font-semibold text-brand-700\",\"children\":\"Python\"}]]}],[\"$\",\"a\",null,{\"href\":\"https://github.com/sentryagent/sdk-python\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"text-sm font-medium text-brand-600 hover:underline\",\"children\":\"View on GitHub →\"}]]}],[\"$\",\"div\",null,{\"className\":\"mb-6\",\"children\":[[\"$\",\"p\",null,{\"className\":\"mb-2 text-sm font-semibold uppercase tracking-wider text-slate-500\",\"children\":\"Installation\"}],[\"$\",\"pre\",null,{\"className\":\"overflow-x-auto rounded-lg bg-slate-900 px-4 py-3 text-sm text-slate-100\",\"children\":[\"$\",\"code\",null,{\"children\":\"pip install sentryagent-idp\"}]}]]}],[\"$\",\"div\",null,{\"children\":[[\"$\",\"p\",null,{\"className\":\"mb-2 text-sm font-semibold uppercase tracking-wider text-slate-500\",\"children\":\"Quick Start\"}],[\"$\",\"pre\",null,{\"className\":\"overflow-x-auto rounded-lg bg-slate-900 px-4 py-4 text-sm leading-relaxed text-slate-100\",\"children\":[\"$\",\"code\",null,{\"children\":\"from sentryagent_idp import AgentIdPClient\\n\\nclient = AgentIdPClient(\\n api_url=os.environ[\\\"AGENTIDP_URL\\\"],\\n client_id=os.environ[\\\"AGENTIDP_CLIENT_ID\\\"],\\n client_secret=os.environ[\\\"AGENTIDP_CLIENT_SECRET\\\"],\\n)\\n\\n# Register a new agent\\nagent = client.agents.register(\\n name=\\\"my-ai-agent\\\",\\n description=\\\"Production summarisation agent\\\",\\n)\\n\\nprint(\\\"Agent ID:\\\", agent.agent_id)\\n\\n# Issue an access token\\ntoken_response = client.tokens.issue(agent.agent_id)\\nprint(\\\"Token:\\\", token_response.access_token)\"}]}]]}]]}],[\"$\",\"div\",\"Go SDK\",{\"className\":\"rounded-2xl border border-slate-200 bg-white p-8 shadow-sm\",\"children\":[[\"$\",\"div\",null,{\"className\":\"mb-6 flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-3\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-2xl font-bold text-slate-900\",\"children\":\"Go SDK\"}],[\"$\",\"span\",null,{\"className\":\"rounded-full bg-brand-100 px-3 py-0.5 text-sm font-semibold text-brand-700\",\"children\":\"Go\"}]]}],[\"$\",\"a\",null,{\"href\":\"https://github.com/sentryagent/sdk-go\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"text-sm font-medium text-brand-600 hover:underline\",\"children\":\"View on GitHub →\"}]]}],[\"$\",\"div\",null,{\"className\":\"mb-6\",\"children\":[[\"$\",\"p\",null,{\"className\":\"mb-2 text-sm font-semibold uppercase tracking-wider text-slate-500\",\"children\":\"Installation\"}],[\"$\",\"pre\",null,{\"className\":\"overflow-x-auto rounded-lg bg-slate-900 px-4 py-3 text-sm text-slate-100\",\"children\":[\"$\",\"code\",null,{\"children\":\"go get github.com/sentryagent/idp-sdk-go\"}]}]]}],[\"$\",\"div\",null,{\"children\":[[\"$\",\"p\",null,{\"className\":\"mb-2 text-sm font-semibold uppercase tracking-wider text-slate-500\",\"children\":\"Quick Start\"}],[\"$\",\"pre\",null,{\"className\":\"overflow-x-auto rounded-lg bg-slate-900 px-4 py-4 text-sm leading-relaxed text-slate-100\",\"children\":[\"$\",\"code\",null,{\"children\":\"import (\\n \\\"fmt\\\"\\n \\\"os\\\"\\n idp \\\"github.com/sentryagent/idp-sdk-go\\\"\\n)\\n\\nclient := idp.NewClient(idp.Config{\\n APIURL: os.Getenv(\\\"AGENTIDP_URL\\\"),\\n ClientID: os.Getenv(\\\"AGENTIDP_CLIENT_ID\\\"),\\n ClientSecret: os.Getenv(\\\"AGENTIDP_CLIENT_SECRET\\\"),\\n})\\n\\n// Register a new agent\\nagent, err := client.Agents.Register(ctx, \u0026idp.RegisterAgentInput{\\n Name: \\\"my-ai-agent\\\",\\n Description: \\\"Production summarisation agent\\\",\\n})\\nif err != nil {\\n panic(err)\\n}\\nfmt.Println(\\\"Agent ID:\\\", agent.AgentID)\\n\\n// Issue an access token\\ntoken, err := client.Tokens.Issue(ctx, agent.AgentID)\\nfmt.Println(\\\"Token:\\\", token.AccessToken)\"}]}]]}]]}],[\"$\",\"div\",\"Java SDK\",{\"className\":\"rounded-2xl border border-slate-200 bg-white p-8 shadow-sm\",\"children\":[[\"$\",\"div\",null,{\"className\":\"mb-6 flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-3\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-2xl font-bold text-slate-900\",\"children\":\"Java SDK\"}],[\"$\",\"span\",null,{\"className\":\"rounded-full bg-brand-100 px-3 py-0.5 text-sm font-semibold text-brand-700\",\"children\":\"Java\"}]]}],[\"$\",\"a\",null,{\"href\":\"https://github.com/sentryagent/sdk-java\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"text-sm font-medium text-brand-600 hover:underline\",\"children\":\"View on GitHub →\"}]]}],[\"$\",\"div\",null,{\"className\":\"mb-6\",\"children\":[[\"$\",\"p\",null,{\"className\":\"mb-2 text-sm font-semibold uppercase tracking-wider text-slate-500\",\"children\":\"Installation\"}],[\"$\",\"pre\",null,{\"className\":\"overflow-x-auto rounded-lg bg-slate-900 px-4 py-3 text-sm text-slate-100\",\"children\":[\"$\",\"code\",null,{\"children\":\"\u003cdependency\u003e\\n \u003cgroupId\u003eai.sentryagent\u003c/groupId\u003e\\n \u003cartifactId\u003eidp-sdk\u003c/artifactId\u003e\\n \u003cversion\u003e1.0.0\u003c/version\u003e\\n\u003c/dependency\u003e\"}]}]]}],[\"$\",\"div\",null,{\"children\":[[\"$\",\"p\",null,{\"className\":\"mb-2 text-sm font-semibold uppercase tracking-wider text-slate-500\",\"children\":\"Quick Start\"}],[\"$\",\"pre\",null,{\"className\":\"overflow-x-auto rounded-lg bg-slate-900 px-4 py-4 text-sm leading-relaxed text-slate-100\",\"children\":[\"$\",\"code\",null,{\"children\":\"import ai.sentryagent.idp.AgentIdPClient;\\nimport ai.sentryagent.idp.model.Agent;\\nimport ai.sentryagent.idp.model.TokenResponse;\\n\\nAgentIdPClient client = AgentIdPClient.builder()\\n .apiUrl(System.getenv(\\\"AGENTIDP_URL\\\"))\\n .clientId(System.getenv(\\\"AGENTIDP_CLIENT_ID\\\"))\\n .clientSecret(System.getenv(\\\"AGENTIDP_CLIENT_SECRET\\\"))\\n .build();\\n\\n// Register a new agent\\nAgent agent = client.agents().register(\\n RegisterAgentRequest.builder()\\n .name(\\\"my-ai-agent\\\")\\n .description(\\\"Production summarisation agent\\\")\\n .build()\\n);\\nSystem.out.println(\\\"Agent ID: \\\" + agent.getAgentId());\\n\\n// Issue an access token\\nTokenResponse token = client.tokens().issue(agent.getAgentId());\\nSystem.out.println(\\\"Token: \\\" + token.getAccessToken());\"}]}]]}]]}]]}]]}]}]],null],null]},[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"sdks\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\",\"styles\":null}],null]},[[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"className\":\"min-h-screen bg-slate-50 text-slate-900 antialiased\",\"children\":[[\"$\",\"$L6\",null,{}],[\"$\",\"main\",null,{\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",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],\"couldBeIntercepted\":false,\"initialHead\":[null,\"$L7\"],\"globalErrorComponent\":\"$8\",\"missingSlots\":\"$W9\"}]]\n"])</script><script>self.__next_f.push([1,"7:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"SentryAgent.ai Developer Portal\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"Identity and access management for AI agents. Register, authenticate, and secure your agents with SentryAgent AgentIdP.\"}]]\n3:null\n"])</script></body></html>