{"name":"CodeFundi API Agent","description":"AI-powered coding assistant exposed via A2A v0.3.0 with full OpenAPI proxy. Discover at /.well-known/agent-card.json.","protocolVersion":"0.3.0","version":"2.0.0","url":"https://api.codefundi.app/a2a/jsonrpc","documentationUrl":"https://api.codefundi.app/docs","provider":{"organization":"CodeFundi","url":"https://codefundi.app"},"capabilities":{"streaming":true,"pushNotifications":false,"stateTransitionHistory":true},"defaultInputModes":["application/json","text/plain"],"defaultOutputModes":["application/json","application/x-ndjson","text/event-stream"],"skills":[{"id":"v2-agent","name":"V2 - Agent","description":"[V2] Agent session credentials bridge to Dispersl.\nMint/refresh short-lived `dss_` session JWTs for the VS Code extension agent harness.\nPlatform Dispersl key stays server-side; never returned to clients.\n Invoke via A2A data part: { operationKey, pathParams, query, headers, body }. Example operationKey: \"POST /v2/agent/credentials\".","tags":["V2 - Agent","Mint or refresh a Dispersl agent session"],"examples":["Mint a new session","Refresh near-expiry or force-rotate session"],"inputModes":["application/json"],"outputModes":["application/json","application/x-ndjson","text/event-stream"]},{"id":"v1-status","name":"V1 - Status","description":"[V1] API health and status Invoke via A2A data part: { operationKey, pathParams, query, headers, body }. Example operationKey: \"GET /v1/fundi\".","tags":["V1 - Status","API Status"],"inputModes":["application/json"],"outputModes":["application/json","application/x-ndjson","text/event-stream"]},{"id":"v1-models","name":"V1 - Models","description":"[V1] AI model configuration Invoke via A2A data part: { operationKey, pathParams, query, headers, body }. Example operationKey: \"GET /v1/fundi/models\".","tags":["V1 - Models","List available AI models"],"inputModes":["application/json"],"outputModes":["application/json","application/x-ndjson","text/event-stream"]},{"id":"v1-ai-chat","name":"V1 - AI Chat","description":"[V1] AI-powered chat and code assistance Invoke via A2A data part: { operationKey, pathParams, query, headers, body }. Example operationKey: \"POST /v1/fundi/chat\".","tags":["V1 - AI Chat","AI Chat","AI Chat with Knowledge Base"],"inputModes":["application/json"],"outputModes":["application/json","application/x-ndjson","text/event-stream"]},{"id":"v1-code-generation","name":"V1 - Code Generation","description":"[V1] Code generation and optimization Invoke via A2A data part: { operationKey, pathParams, query, headers, body }. Example operationKey: \"POST /v1/fundi/explain\".","tags":["V1 - Code Generation","Explain Code","Optimize Code","Debug Code","Comment Code","Convert Code"],"inputModes":["application/json"],"outputModes":["application/json","application/x-ndjson","text/event-stream"]},{"id":"v1-history","name":"V1 - History","description":"[V1] User query history Invoke via A2A data part: { operationKey, pathParams, query, headers, body }. Example operationKey: \"POST /v1/fundi/history\".","tags":["V1 - History","Get User History (Legacy)"],"inputModes":["application/json"],"outputModes":["application/json","application/x-ndjson","text/event-stream"]},{"id":"v2-auth","name":"V2 - Auth","description":"[V2] Supabase-backed authentication for agents and API clients (no X-API-Key on kickoff) Invoke via A2A data part: { operationKey, pathParams, query, headers, body }. Example operationKey: \"POST /v2/auth/authenticate\".","tags":["V2 - Auth","Start or continue auth (OTP or password)","Verify email OTP and activate session","Resend confirmation or OTP email"],"inputModes":["application/json"],"outputModes":["application/json","application/x-ndjson","text/event-stream"]},{"id":"v2-search","name":"V2 - Search","description":"[V2] Unified search across repositories, files, and code Invoke via A2A data part: { operationKey, pathParams, query, headers, body }. Example operationKey: \"POST /v2/search\".","tags":["V2 - Search","Unified search endpoint"],"examples":["Basic search","Search with filters","Grep docs search","data: {\"operationKey\":\"POST /v2/search\",\"pathParams\":{},\"query\":{},\"headers\":{},\"body\":{\"query\":\"authentication middleware\",\"scan_mode\":\"semantic\"}}"],"inputModes":["application/json"],"outputModes":["application/json","application/x-ndjson","text/event-stream"]},{"id":"v2-repositories","name":"V2 - Repositories","description":"[V2] Knowledge base and repository operations Invoke via A2A data part: { operationKey, pathParams, query, headers, body }. Example operationKey: \"GET /v2/repos\".","tags":["V2 - Repositories","List repositories","List global public repositories (catalog)","Index new repository","Get repository indexing status","Unified repository scope (dependencies, functions, variables)","Cross-repository dependency map","Repository blueprint (README + dependency overview)","Blast radius / file impact analysis","Repository code review signals","Test coverage gap analysis","Get repository README (deprecated)"],"examples":["All scope kinds (default)","Dependencies only","Single dependency with file drill-down"],"inputModes":["application/json"],"outputModes":["application/json","application/x-ndjson","text/event-stream"]},{"id":"v2-files","name":"V2 - Files","description":"[V2] File-level documentation and code_summary access Invoke via A2A data part: { operationKey, pathParams, query, headers, body }. Example operationKey: \"GET /v2/files/{repo_id}\".","tags":["V2 - Files","List repository files","Get file documentation"],"inputModes":["application/json"],"outputModes":["application/json","application/x-ndjson","text/event-stream"]},{"id":"v2-history","name":"V2 - History","description":"[V2] User query history and conversations Invoke via A2A data part: { operationKey, pathParams, query, headers, body }. Example operationKey: \"GET /v2/history\".","tags":["V2 - History","List query history","Get history item","Get conversation thread"],"inputModes":["application/json"],"outputModes":["application/json","application/x-ndjson","text/event-stream"]},{"id":"v2-statistics","name":"V2 - Statistics","description":"[V2] Usage analytics and statistics Invoke via A2A data part: { operationKey, pathParams, query, headers, body }. Example operationKey: \"GET /v2/stats/usage\".","tags":["V2 - Statistics","Get usage statistics","Get activity statistics","Get language statistics"],"inputModes":["application/json"],"outputModes":["application/json","application/x-ndjson","text/event-stream"]},{"id":"v2-api-keys","name":"V2 - API Keys","description":"[V2] API key management Invoke via A2A data part: { operationKey, pathParams, query, headers, body }. Example operationKey: \"GET /v2/keys\".","tags":["V2 - API Keys","List API keys","Regenerate API key","Disable API key"],"inputModes":["application/json"],"outputModes":["application/json","application/x-ndjson","text/event-stream"]},{"id":"v2-models","name":"V2 - Models","description":"[V2] AI model configuration and limits Invoke via A2A data part: { operationKey, pathParams, query, headers, body }. Example operationKey: \"GET /v2/models\".","tags":["V2 - Models","List chat models","Get model limits"],"inputModes":["application/json"],"outputModes":["application/json","application/x-ndjson","text/event-stream"]}],"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-Key","description":"API key for authentication"},"AuthPasswordHeader":{"type":"apiKey","in":"header","name":"X-CodeFundi-Auth-Password","description":"Password for `auth_mode: password` on `/v2/auth/authenticate` only.\nDo not place passwords in JSON bodies. Use HTTPS in production.\n"}},"security":[{"ApiKeyAuth":[]}],"supportsAuthenticatedExtendedCard":false,"additionalInterfaces":[{"url":"https://api.codefundi.app/a2a/jsonrpc","transport":"JSONRPC"},{"url":"https://api.codefundi.app/a2a/rest","transport":"HTTP+JSON"},{"url":"https://api.codefundi.app/openapi.json","transport":"HTTP+JSON"}]}