{"_id":"@aizonaai/adk-server","_rev":"2-3103d69a195a76df6b7a12e6e21f3a89","name":"@aizonaai/adk-server","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@aizonaai/adk-server","version":"0.1.0","keywords":["ai","agents","api","server","proxy","aizona","adk"],"license":"MIT","_id":"@aizonaai/adk-server@0.1.0","maintainers":[{"name":"aizonaai","email":"info@aizona.ai"}],"homepage":"https://github.com/ai-zona/adk#readme","bugs":{"url":"https://github.com/ai-zona/adk/issues"},"dist":{"shasum":"3beff84dd4f4d4243fc11f41b66b8fb14d17aa26","tarball":"https://registry.npmjs.org/@aizonaai/adk-server/-/adk-server-0.1.0.tgz","fileCount":8,"integrity":"sha512-fM7Yu70hRpeAiOqW/tlE12vb/VtO7mQPmx0QhQZfQdxlIUli+9KIgl1m56Oa3YvWg8D5nA10/RXWp41469lXMw==","signatures":[{"sig":"MEYCIQCsqgUebZNLXtkFtak5AUg0Gi+9Df7/HO5VAbIMuzTwyAIhAJDYTwpkrfbu7tm0AxpCTZpoePiQexi8msf0jBGk60HT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aizonaai%2fadk-server@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":181511},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"e91341ef43d615c4466ce1bae349da034a12f5f8","scripts":{"test":"vitest run","build":"tsup","start":"node dist/index.js","build:tsc":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest","dev:standalone":"tsx watch src/start.ts","prepublishOnly":"pnpm build"},"_npmUser":{"name":"aizonaai","email":"info@aizona.ai"},"repository":{"url":"git+https://github.com/ai-zona/adk.git","type":"git","directory":"packages/adk-server"},"_npmVersion":"10.8.2","description":"AIZona ADK REST API Server — API key proxy, rate limiting, usage tracking, SSE/WS streaming","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.24.1","hono":"^4.7.4","@aizonaai/adk":"workspace:*","@hono/node-server":"^1.13.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.0.18","typescript":"^5.7.3","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/adk-server_0.1.0_1779767963631_0.5243269363175005","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@aizonaai/adk-server","version":"0.1.1","description":"AIZona ADK REST API Server — API key proxy, rate limiting, usage tracking, SSE/WS streaming","type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"build":"tsup","build:tsc":"tsc","typecheck":"tsc --noEmit","test":"vitest run","test:watch":"vitest","start":"node dist/index.js","dev:standalone":"tsx watch src/start.ts","prepublishOnly":"pnpm build"},"dependencies":{"@aizonaai/adk":"workspace:*","@hono/node-server":"^1.13.0","hono":"^4.7.4","zod":"^3.24.1"},"devDependencies":{"@types/node":"^20.0.0","tsup":"^8.5.1","typescript":"^5.7.3","vitest":"^4.0.18"},"keywords":["ai","agents","api","server","proxy","aizona","adk"],"license":"MIT","engines":{"node":">=18"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/ai-zona/adk.git","directory":"packages/adk-server"},"homepage":"https://github.com/ai-zona/adk#readme","bugs":{"url":"https://github.com/ai-zona/adk/issues"},"_id":"@aizonaai/adk-server@0.1.1","gitHead":"93993be263726837a07900cc265344fa6bdee690","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-+K/JkiP8gLQ7wgNDwd10GCUIOoYkNcHcqDw4y7TPwCk9fbaQxF8fIDf+vgNbKUUu+AYC4d9+gX4/6r9opUnwhA==","shasum":"40b0c42946d063380d321ccbe4841aa796d0d830","tarball":"https://registry.npmjs.org/@aizonaai/adk-server/-/adk-server-0.1.1.tgz","fileCount":15,"unpackedSize":326796,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aizonaai%2fadk-server@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD+y7uc3fnNnjgiPqDI+0aAyqQQsEet8zuMs7dJwdfHuAIgCIE2nJp82kJQP1uDjgXaOnD9Af9WtLktpecNpUXgqNM="}]},"_npmUser":{"name":"aizonaai","email":"info@aizona.ai"},"directories":{},"maintainers":[{"name":"aizonaai","email":"info@aizona.ai"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/adk-server_0.1.1_1779819098079_0.0432427486766207"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-26T03:59:23.540Z","modified":"2026-05-26T18:11:38.570Z","0.1.0":"2026-05-26T03:59:23.773Z","0.1.1":"2026-05-26T18:11:38.221Z"},"bugs":{"url":"https://github.com/ai-zona/adk/issues"},"license":"MIT","homepage":"https://github.com/ai-zona/adk#readme","keywords":["ai","agents","api","server","proxy","aizona","adk"],"repository":{"type":"git","url":"git+https://github.com/ai-zona/adk.git","directory":"packages/adk-server"},"description":"AIZona ADK REST API Server — API key proxy, rate limiting, usage tracking, SSE/WS streaming","maintainers":[{"name":"aizonaai","email":"info@aizona.ai"}],"readme":"# @aizonaai/adk-server\n\nREST API server for the AIZona Agent Development Kit. Built on [Hono](https://hono.dev/) with API key auth, rate limiting, usage tracking, and an OpenAI-compatible chat proxy.\n\n## Installation\n\n```bash\npnpm add @aizonaai/adk-server\n```\n\n## Quick Start\n\n```typescript\nimport { createServer, startStandaloneServer } from \"@aizonaai/adk-server\";\nimport { createProvider } from \"@aizonaai/adk\";\n\nconst provider = createProvider({ providerId: \"anthropic\", apiKey: \"sk-...\" });\n\nconst app = createServer({\n  defaultProvider: provider,\n  rateLimitRpm: 60,\n  corsOrigins: [\"http://localhost:3000\"],\n});\n\nstartStandaloneServer({ port: 3456 });\n```\n\n## Server Configuration\n\n```typescript\ninterface ServerConfig {\n  proxyRouter?: ProxyRouter;                              // API key → provider resolution\n  defaultProvider?: ADKLLMProvider;                        // Default LLM provider\n  validateApiKey?: (keyHash: string) => Promise<ApiKeyRecord | null>;\n  rateLimitRpm?: number;                                  // Rate limit (requests/min)\n  corsOrigins?: string[];                                 // CORS allowed origins\n  onUsage?: (record: UsageRecord) => Promise<void>;       // Usage tracking callback\n  basePath?: string;                                      // URL prefix (default: \"\")\n  storage?: StorageBackend;                               // Storage backend (default: in-memory)\n}\n```\n\n## API Endpoints\n\nAll endpoints under `/v1/` require API key authentication via `Authorization: Bearer <key>` header.\n\n### Chat Completions (OpenAI-compatible)\n\n```\nPOST /v1/chat/completions\n```\n\nAccepts OpenAI-format requests and proxies to configured providers.\n\n```json\n{\n  \"model\": \"claude-sonnet-4-5-20250929\",\n  \"messages\": [{ \"role\": \"user\", \"content\": \"Hello\" }],\n  \"temperature\": 0.7,\n  \"max_tokens\": 1024,\n  \"stream\": false\n}\n```\n\n### Agents\n\n```\nGET    /v1/agents          — List all agents\nPOST   /v1/agents          — Register new agent\nGET    /v1/agents/:id      — Get agent by ID\nPUT    /v1/agents/:id      — Update agent\nDELETE /v1/agents/:id      — Delete agent\n```\n\n### Runs\n\n```\nPOST   /v1/runs            — Start agent run\nGET    /v1/runs/:id        — Get run result\n```\n\nRequest body for starting a run:\n\n```json\n{\n  \"agentId\": \"agent-123\",\n  \"input\": \"What is 2 + 2?\",\n  \"maxTurns\": 10,\n  \"sessionId\": \"session-456\"\n}\n```\n\n### Sessions\n\n```\nPOST   /v1/sessions            — Create session\nGET    /v1/sessions/:id        — Get session with messages\nPOST   /v1/sessions/:id/resume — Resume session\nPOST   /v1/sessions/:id/fork   — Fork session\n```\n\n### API Keys\n\n```\nPOST   /v1/keys            — Create API key (live or test)\nGET    /v1/keys             — List keys (masked)\nDELETE /v1/keys/:id         — Revoke key\n```\n\n### Tools\n\n```\nGET    /v1/tools            — List available tools\n```\n\n### Health\n\n```\nGET    /health              — Health check (no auth required)\nGET    /openapi.json        — OpenAPI specification\n```\n\n## Middleware\n\n- **API Key Auth** — Validates `Authorization: Bearer <key>`, checks active status and expiration\n- **Rate Limiter** — Per-key rate limiting (requests per minute, sliding window)\n- **Usage Tracker** — Records tokens, cost, latency, model, and endpoint per request\n- **CORS** — Configurable allowed origins\n\n## Storage Backends\n\n```typescript\nimport { createMemoryStorage, createPrismaStorage } from \"@aizonaai/adk-server\";\n\n// In-memory (development)\nconst app = createServer({ storage: createMemoryStorage() });\n\n// PostgreSQL via Prisma (production)\nconst app = createServer({ storage: createPrismaStorage(prismaClient) });\n```\n\n## Standalone Server\n\n```typescript\nimport { startStandaloneServer } from \"@aizonaai/adk-server\";\n\nstartStandaloneServer({ port: 3456 });\n// => ADK Server listening on http://localhost:3456\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}