buster/api/CLAUDE-LIBRARY-INDEX.md

225 lines
6.0 KiB
Markdown

# Buster API Library Reference Index
> **Last Updated**: April 7, 2025
> **Version**: 1.0.0
This document serves as a centralized index of all major functionality across the Buster API libraries. Use it to quickly locate specific features and understand where they're implemented.
## Table of Contents
- [Database Library](#database-library)
- [Agents Library](#agents-library)
- [Handlers Library](#handlers-library)
- [Middleware Library](#middleware-library)
- [Sharing Library](#sharing-library)
- [LiteLLM Library](#litellm-library)
- [Query Engine Library](#query-engine-library)
- [SQL Analyzer Library](#sql-analyzer-library)
- [Streaming Library](#streaming-library)
- [Braintrust Library](#braintrust-library)
## Database Library
**Location**: `/api/libs/database`
**Core Functionality**:
- Database connection pooling - `pool.rs`
- Database models and schema - `models.rs`, `schema.rs`
- Enum definitions - `enums.rs`
- Secure credential vault - `vault.rs`
**Key Types**:
- `DbPool` - Database connection pool
- Table structs: `User`, `Organization`, `MetricFile`, `DashboardFile`, etc.
- Version history types - `version_history.rs`
**Common Operations**:
- Get database connection - `get_pg_pool().get().await?`
- Dashboard file operations - `helpers/dashboard_files.rs`
- Metric file operations - `helpers/metric_files.rs`
- Collection operations - `helpers/collections.rs`
## Agents Library
**Location**: `/api/libs/agents`
**Core Functionality**:
- Agent trait definition - `agent.rs`
- Agent implementations - `agents/buster_super_agent.rs`
- Tool execution framework - `tools/executor.rs`
- Tool categories - `tools/categories/`
**Key Types**:
- `Agent` trait - Core agent interface
- `BusterSuperAgent` - Main agent implementation
- `ToolExecutor` trait - Tool execution interface
- `ToolCallInfo` - Tool call metadata
**Common Operations**:
- Create and execute agents - `agent.rs`
- Register and execute tools - `tools/executor.rs`
- Use agents as tools - `tools/categories/agents_as_tools/`
- Create planning tools - `tools/categories/planning_tools/`
## Handlers Library
**Location**: `/api/libs/handlers`
**Core Functionality**:
- REST and WebSocket request handlers
- Business logic implementation
- Response formatting
- Permission checks
**Key Resource Types**:
- Metrics handlers - `metrics/`
- Dashboard handlers - `dashboards/`
- Chat handlers - `chats/`
- Collection handlers - `collections/`
**Common Operations**:
- Get dashboard by ID - `dashboards/get_dashboard_handler.rs`
- Get metric by ID - `metrics/get_metric_handler.rs`
- Create chat thread - `chats/post_thread.rs`
- List collections - `collections/list_collections.rs`
## Middleware Library
**Location**: `/api/libs/middleware`
**Core Functionality**:
- Authentication and authorization - `auth.rs`
- CORS configuration - `cors.rs`
- Error handling - `error.rs`
- Request and response types - `types.rs`
**Key Types**:
- `AuthenticatedUser` - User context
- `AppError` - API error types
- CORS configuration - `cors.rs`
**Common Operations**:
- Apply authentication middleware - `auth.rs`
- Extract authenticated user - `auth.rs`
- Configure CORS - `cors.rs`
- Format error responses - `error.rs`
## Sharing Library
**Location**: `/api/libs/sharing`
**Core Functionality**:
- Asset permission management
- Permission creation, listing, and removal
- User lookup for sharing
**Key Types**:
- `AssetPermissionRole` - Permission levels
- `AssetType` - Types of sharable assets
- `UpdateField` - Field updating helpers
**Common Operations**:
- Check permission access - `check_permission_access()`
- Create asset permission - `create_asset_permission.rs`
- List permissions - `list_asset_permissions.rs`
- Remove permissions - `remove_asset_permissions.rs`
## LiteLLM Library
**Location**: `/api/libs/litellm`
**Core Functionality**:
- LLM provider integration
- Message formatting
- Streaming response handling
**Key Types**:
- `LiteLLMClient` - Main client interface
- `Message` - LLM message format
- `Role` - Message roles (system, user, assistant)
**Common Operations**:
- Create LLM client - `client.rs`
- Generate completions - `client.rs`
- Handle streaming responses - `client.rs`
## Query Engine Library
**Location**: `/api/libs/query_engine`
**Core Functionality**:
- Data source connections
- Query execution
- Credential management
- Data type conversion
**Key Types**:
- Data source configurations
- Query results
- Credentials - `credentials.rs`
- Data types - `data_types.rs`
**Common Operations**:
- Execute queries - `data_source_query_routes/query_engine.rs`
- Connect to data sources - `data_source_connections/`
- Convert data types - `data_types.rs`
## SQL Analyzer Library
**Location**: `/api/libs/sql_analyzer`
**Core Functionality**:
- SQL query parsing and analysis
- Table and column extraction
- Join and CTE detection
**Key Types**:
- `QuerySummary` - Analysis output
- `TableInfo` - Table metadata
- `JoinInfo` - Join condition data
- `CteSummary` - CTE metadata
**Common Operations**:
- Analyze SQL query - `analyze_query()`
- Extract tables and columns
- Detect joins and CTEs
- Identify vague references
## Streaming Library
**Location**: `/api/libs/streaming`
**Core Functionality**:
- Streaming JSON parser - `parser.rs`
- Tool call processing - `processor.rs`
- Specialized processors - `processors/`
**Key Types**:
- `StreamingParser` - Main parser
- `Processor` trait - Tool call processor
- `ProcessorRegistry` - Processor collection
- `ProcessedOutput` - Parser output
**Common Operations**:
- Process JSON chunks - `parser.rs`
- Register processors - `processor.rs`
- Handle tool calls - `processor.rs`
## Braintrust Library
**Location**: `/api/libs/braintrust`
**Core Functionality**:
- Performance tracking for LLM operations
- Span and trace creation
- Event and metrics logging
**Key Types**:
- `BraintrustClient` - API client
- `TraceBuilder` - Trace creator
- `Span` - Execution span
**Common Operations**:
- Create client - `client.rs`
- Create traces - `trace.rs`
- Log spans - `client.rs`
- Track metrics - `client.rs`