API Reference
Convex queries, mutations, and actions
Complete reference for all Convex functions.
Repositories API
repos.getByFullName
Type: Query
Args:
{ fullName: string } // "facebook/react"Returns:
{
_id: Id<"repositories">,
fullName: string,
owner: string,
name: string,
stars: number,
language: string,
description: string,
summary?: string,
architecture?: string,
mermaidDiagram?: string,
status: "queued" | "processing" | "completed" | "failed",
lastAnalyzedAt?: number
} | nullUsage:
const repo = useQuery(api.repos.getByFullName, {
fullName: "facebook/react"
});repos.startAnalysis
Type: Mutation
Auth: Required
Args:
{ fullName: string }Returns: Id<"repositories">
Usage:
const start = useMutation(api.repos.startAnalysis);
await start.mutateAsync({ fullName: "facebook/react" });repos.listIndexed
Type: Query
Args: None
Returns:
Array<{
fullName: string,
stars: number,
language: string,
lastAnalyzedAt: number
}>Usage:
const indexed = useQuery(api.repos.listIndexed);Architecture Entities API
architectureEntities.getByRepo
Type: Query
Args:
{ repoId: Id<"repositories"> }Returns:
Array<{
_id: Id<"architectureEntities">,
name: string,
description: string,
importance: number,
layer: "entry-point" | "core" | "feature" | "utility" | "integration",
path: string,
githubUrl: string
}>architectureEntities.getBySlug
Type: Query
Args:
{
repoId: Id<"repositories">,
slug: string
}Returns: Single entity or null
Issues API
issues.getByRepo
Type: Query
Args:
{
repoId: Id<"repositories">,
difficulty?: 1 | 2 | 3 | 4 | 5 // Optional filter
}Returns:
Array<{
_id: Id<"issues">,
number: number,
title: string,
difficulty: 1 | 2 | 3 | 4 | 5,
difficultyRationale: string,
skills: string[],
filesTouch: string[]
}>issues.getByNumber
Type: Query
Args:
{
repoId: Id<"repositories">,
number: number
}Returns: Single issue or null
Pull Requests API
pullRequests.getByRepo
Type: Query
Args:
{ repoId: Id<"repositories"> }Returns:
Array<{
_id: Id<"pullRequests">,
number: number,
title: string,
summary: string,
impact: "Low" | "Medium" | "High",
filesChanged: number
}>pullRequests.getByNumber
Type: Query
Args:
{
repoId: Id<"repositories">,
number: number
}Returns: Single PR or null
Chat API
chat.getConversation
Type: Query
Args:
{ conversationId: Id<"conversations"> }Returns:
{
_id: Id<"conversations">,
repoId: Id<"repositories">,
title: string,
messages: Array<{
role: "user" | "assistant",
content: string,
toolCalls?: Array<{ name: string, args: any }>
}>
}chat.sendMessage
Type: Mutation
Auth: Required
Args:
{
conversationId: Id<"conversations">,
message: string
}Returns: Id<"messages">
Usage:
const send = useMutation(api.chat.sendMessage);
await send.mutateAsync({
conversationId,
message: "How does auth work?"
});chat.createConversation
Type: Mutation
Auth: Required
Args:
{
repoId: Id<"repositories">,
initialMessage?: string
}Returns: Id<"conversations">
GitHub API (Actions)
github.getOwnerInfo
Type: Action
Args:
{ owner: string }Returns:
{
login: string,
name?: string,
avatarUrl: string,
type: "User" | "Organization"
}github.searchRepositories
Type: Action
Args:
{
query: string,
limit?: number // Default 10
}Returns:
Array<{
fullName: string,
description: string,
stars: number,
language: string
}>Agent Tools (Internal)
These tools are used by the AI agent, not directly callable by clients.
searchCodeContext
Parameters:
{
query: string,
limit?: number // Default 5
}Returns: Top-K file chunks with paths and scores
getArchitecture
Parameters: None
Returns: List of architecture entities
listFiles
Parameters:
{
pattern?: string, // Glob pattern
directory?: string
}Returns: Matching file paths
explainFile
Parameters:
{ path: string }Returns: File content + AI explanation
findIssues
Parameters:
{ difficulty?: 1 | 2 | 3 | 4 | 5 }Returns: Filtered issues
getIssueByNumber
Parameters:
{ number: number }Returns: Issue details
findPullRequests
Parameters: None
Returns: List of PRs
getPullRequestByNumber
Parameters:
{ number: number }Returns: PR details
Auth API
auth.getCurrentUser
Type: Query
Returns:
{
_id: Id<"users">,
name: string,
email: string,
image?: string
} | nullUsage:
const user = useQuery(api.auth.getCurrentUser);Error Codes
UNAUTHORIZED
User not authenticated. Call authClient.signIn.social({ provider: "github" }).
NOT_FOUND
Resource doesn't exist (repo, issue, PR, etc.).
RATE_LIMIT
GitHub API rate limit exceeded. Wait or use GitHub App.
VALIDATION_ERROR
Invalid input args. Check arg types.
ANALYSIS_FAILED
Workflow failed. Check Convex logs for details.
Next Steps
- Review Environment Variables
- Read Backend Architecture