Files
hack/tools/scripts/llm-key-hunter/results/_cache/content/capx-ai_claude-agent-sdk-examples.json

1 line
2.9 KiB
JSON

{"repo": "capx-ai/claude-agent-sdk-examples", "files": {"lib/config.ts": {"f4412d50b52b4d722fa8c24630552560d039041a": {"t": 1785596012.209435, "n": 2678, "h": "0e7b2fff301ba8f4", "c": "import type { AuthConfig } from \"./types.js\";\n\nexport function validateEnv(required: string[]): void {\n const missing = required.filter((key) => !process.env[key]);\n if (missing.length === 0) return;\n\n console.error(\"Missing required environment variables:\");\n missing.forEach((key) => {\n console.error(` ${key}`);\n const hint = {\n E2B_API_KEY: \"https://e2b.dev\",\n DAYTONA_API_KEY: \"https://daytona.io\",\n CLAUDE_CODE_OAUTH_TOKEN: \"run: claude setup-token\",\n VERCEL_AI_GATEWAY_KEY: \"https://vercel.com/dashboard\",\n }[key];\n if (hint) console.error(` (${hint})`);\n });\n console.error(\"\\nCopy .env.example to .env and add your keys\");\n process.exit(1);\n}\n\n// Auto-detects auth method from env vars (OAuth takes priority)\nexport function detectAuth(): AuthConfig {\n if (process.env.CLAUDE_CODE_OAUTH_TOKEN) {\n return {\n mode: \"oauth\",\n envVars: {\n CLAUDE_CODE_OAUTH_TOKEN: process.env.CLAUDE_CODE_OAUTH_TOKEN,\n },\n };\n }\n\n if (process.env.VERCEL_AI_GATEWAY_KEY) {\n return {\n mode: \"gateway\",\n envVars: {\n ANTHROPIC_BASE_URL: \"https://ai-gateway.vercel.sh\",\n ANTHROPIC_AUTH_TOKEN: process.env.VERCEL_AI_GATEWAY_KEY,\n ANTHROPIC_API_KEY: \"\",\n ANTHROPIC_DEFAULT_SONNET_MODEL: \"kwaipilot/kat-coder-pro-v1\",\n ANTHROPIC_DEFAULT_OPUS_MODEL: \"zai/glm-4.7\",\n ANTHROPIC_DEFAULT_HAIKU_MODEL: \"minimax/minimax-m2.1\",\n },\n };\n }\n\n console.error(\"No authentication found. Set either:\");\n console.error(\" CLAUDE_CODE_OAUTH_TOKEN (run: claude setup-token)\");\n console.error(\" VERCEL_AI_GATEWAY_KEY (from: vercel.com/dashboard)\");\n process.exit(1);\n}\n\nexport function parsePrompt(): string {\n const prompt = process.argv.slice(2).find((arg) => !arg.startsWith(\"--\"));\n if (!prompt) {\n const script = process.argv[1].split(\"/\").pop();\n console.error(`Usage: npx tsx ${script} \"your prompt\"`);\n process.exit(1);\n }\n return prompt;\n}\n\nexport function parseArgs(): { prompt: string; resume?: string; sandbox?: string } {\n const args = process.argv.slice(2);\n const prompt = args.find((arg) => !arg.startsWith(\"--\"));\n\n let resume: string | undefined;\n let sandbox: string | undefined;\n\n for (let i = 0; i < args.length; i++) {\n if (args[i] === \"--resume\" && args[i + 1]) {\n resume = args[i + 1];\n }\n if (args[i] === \"--sandbox\" && args[i + 1]) {\n sandbox = args[i + 1];\n }\n }\n\n if (!prompt) {\n const script = process.argv[1].split(\"/\").pop();\n console.error(`Usage: npx tsx ${script} \"your prompt\" [--resume SESSION_ID] [--sandbox SANDBOX_ID]`);\n process.exit(1);\n }\n\n return { prompt, resume, sandbox };\n}\n"}}}}