All files / src index.ts

100% Statements 41/41
100% Branches 0/0
100% Functions 0/0
100% Lines 41/41

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177                                1x     1x     1x       1x       1x       1x       1x       1x       1x       1x       1x       1x       1x       1x       1x       1x       1x       1x       1x       1x       1x       1x       1x       1x       1x       1x       1x       1x       1x       1x       1x       1x       1x       1x       1x       1x       1x       1x       1x       1x       1x    
/**
 * AgentKits — Multi-provider AI toolkit for agents
 *
 * @example
 * ```ts
 * import { createEmbedding, createChat } from 'agentkits';
 *
 * const emb = createEmbedding({ provider: 'gemini' });
 * const vector = await emb.embed('hello');
 *
 * const chat = createChat({ provider: 'deepseek' });
 * const reply = await chat.complete('Explain AI agents');
 * ```
 */
 
// Errors
export { AgentKitsError, ProviderError, RateLimitError, AuthenticationError, ModelNotFoundError, TimeoutError, ValidationError } from './errors/index.js';
 
// Core
export { createEmbedding, listProviders as listEmbeddingProviders } from './embedding/index.js';
export type { EmbeddingProvider, EmbeddingConfig, EmbeddingClient } from './embedding/index.js';
 
export { createChat, listProviders as listLLMProviders } from './llm/index.js';
export type { LLMProvider, ChatConfig, ChatClient, ChatMessage, ChatResponse, StreamChunk, MessageContent } from './llm/index.js';
 
// Failover
export { createChatWithFailover, createEmbeddingWithFailover } from './failover/index.js';
export type { FailoverChatConfig, FailoverEmbeddingConfig } from './failover/index.js';
 
// Cost
export { getPricing, estimateCost, comparePricing } from './cost/index.js';
export type { TokenPricing, CostEstimate } from './cost/index.js';
 
// Benchmark
export { benchmark, benchmarkEmbedding } from './benchmark/index.js';
export type { BenchmarkConfig, EmbeddingBenchmarkConfig, BenchmarkResult } from './benchmark/index.js';
 
// Test
export { testProviders } from './test/index.js';
export type { TestResult, TestOptions } from './test/index.js';
 
// Proxy
export { startProxy } from './proxy/index.js';
export type { ProxyConfig } from './proxy/index.js';
 
// Rerank
export { createReranker, listRerankProviders } from './rerank/index.js';
export type { RerankProvider, RerankConfig, RerankClient, RerankResult } from './rerank/index.js';
 
// Tool Calling
export { createToolChat, defineTool } from './tools/index.js';
export type { ToolDefinition, ToolCall, ToolResult, ToolChatConfig, ToolChatResponse, ToolChatClient } from './tools/index.js';
 
// Rate Limiter
export { createRateLimiter, withRateLimit, createProviderLimiter, PROVIDER_LIMITS } from './ratelimit/index.js';
export type { RateLimiterConfig, RateLimiter, RateLimiterState } from './ratelimit/index.js';
 
// TTS
export { createTTS, listTTSProviders } from './tts/index.js';
export type { TTSProvider, TTSConfig, TTSClient } from './tts/index.js';
 
// Image Generation
export { createImageGen, listImageProviders } from './image/index.js';
export type { ImageProvider, ImageGenConfig, ImageGenClient, GeneratedImage } from './image/index.js';
 
// STT
export { createSTT, listSTTProviders } from './stt/index.js';
export type { STTProvider, STTConfig, STTClient, TranscriptionResult } from './stt/index.js';
 
// Smart Router
export { createRouter, listStrategies } from './router/index.js';
export type { RoutingStrategy, RouterConfig, RouterClient } from './router/index.js';
 
// Structured Output
export { createStructured } from './structured/index.js';
export type { JSONSchema, StructuredConfig, StructuredClient, ValidationResult } from './structured/index.js';
 
// RAG Pipeline
export { createRAG } from './rag/index.js';
export type { RAGConfig, RAGDocument, RAGResult, RAGClient } from './rag/index.js';
 
// Agent Loop
export { createAgent } from './agent/index.js';
export type { AgentConfig, AgentStep, AgentResult, AgentClient } from './agent/index.js';
 
// Vision (Multimodal)
export { createVision, listVisionProviders } from './vision/index.js';
export type { VisionProvider, VisionConfig, VisionClient } from './vision/index.js';
 
// Token Counter
export { createTokenCounter, countTokens, getTokenizerForModel } from './token-counter/index.js';
export type { TokenizerModel, TokenCounterConfig, TokenCounter as TokenCounterClient } from './token-counter/index.js';
 
// Rate Limiter (Provider-level)
export { createProviderRateLimiter, createMultiProviderRateLimiter } from './rate-limiter/index.js';
export type { RateLimiterConfig as ProviderRateLimiterConfig, ProviderRateLimiter, MultiProviderRateLimiterConfig } from './rate-limiter/index.js';
 
// Response Cache
export { createResponseCache } from './response-cache/index.js';
export type { ResponseCacheConfig, CacheKey, ResponseCache } from './response-cache/index.js';
 
// Model Router
export { createModelRouter } from './model-router/index.js';
export type { RoutingPreference, ModelProfile, RoutingRule, ModelRouterConfig, ModelRouter } from './model-router/index.js';
 
// Function Calling
export { createFunctionCaller, convertTools } from './function-calling/index.js';
export type { FunctionDef, FunctionCall, FunctionResult, FunctionCallingFormat, FunctionCaller, FunctionCallerConfig } from './function-calling/index.js';
 
// Conversation Manager
export { createConversation } from './conversation/index.js';
export type { ConversationMessage, ConversationConfig, Conversation } from './conversation/index.js';
 
// Prompt Template Engine
export { createTemplate, render, registerHelper } from './prompt-template/index.js';
export type { Template, TemplateHelpers, TemplateEngineConfig } from './prompt-template/index.js';
 
// Evaluation
export { evaluate, batchEvaluate, formatEvalResults } from './evaluation/index.js';
export type { EvalTarget, EvalCase, EvalMetrics, EvalResult, EvalSummary, EvalConfig } from './evaluation/index.js';
 
// Streaming Utilities
export { parseSSE, collectStream, countStreamTokens, extractContent, createAbortableStream, composeTransformers } from './streaming/index.js';
export type { StreamEvent, StreamOptions, StreamTransformer } from './streaming/index.js';
 
// Retry with Exponential Backoff
export { withRetry, createRetryable, isRetryableError, calculateDelay, getRetryAfterMs } from './modules/retry.js';
export type { RetryConfig, RetryResult } from './modules/retry.js';
 
// Structured Logger
export { createLogger } from './modules/logger.js';
export type { LogLevel, LogEntry, LoggerConfig, Logger } from './modules/logger.js';
 
// Web Search
export { createWebSearch, listSearchProviders } from './web-search/index.js';
export type { SearchProvider, SearchConfig, SearchClient, SearchResult, SearchResponse } from './web-search/index.js';
 
// Code Interpreter
export { createCodeInterpreter } from './code-interpreter/index.js';
export type { CodeInterpreterConfig, CodeInterpreterClient, ExecutionResult } from './code-interpreter/index.js';
 
// PDF Parser
export { parsePDF, parsePDFChunked } from './modules/pdf-parser.js';
export type { PDFPage, PDFParseResult, PDFParserConfig } from './modules/pdf-parser.js';
 
// Document Chunker
export { createChunker, chunkText } from './modules/chunker.js';
export type { ChunkStrategy, ChunkerConfig, Chunk, Chunker } from './modules/chunker.js';
 
// Reranker (Cross-Encoder)
export { createCrossEncoder, localRerank } from './modules/reranker.js';
export type { RerankerProvider, RerankerConfig, RerankedDocument, RerankerClient } from './modules/reranker.js';
 
// Agent Memory
export { createMemory } from './modules/agent-memory.js';
export type { MemoryMessage, MemoryConfig, MemoryClient, MemoryState } from './modules/agent-memory.js';
 
// Guardrails
export { createGuardrails } from './modules/guardrails.js';
export type { GuardrailsConfig, GuardrailsClient, GuardrailRule, Violation, ValidationResult as GuardrailValidationResult, ViolationSeverity } from './modules/guardrails.js';
 
// Tracing / Observability
export { createTracer } from './modules/tracing.js';
export type { TracerConfig, Tracer, Span, SpanKind, SpanAttributes, TraceExport, ExportTarget } from './modules/tracing.js';
 
// MCP Client
export { createMCPClient } from './modules/mcp-client.js';
export type { MCPClientConfig, MCPClient, MCPTool, MCPToolResult, MCPResource } from './modules/mcp-client.js';
 
// Workflow Engine
export { createWorkflow, parseWorkflowJSON } from './modules/workflow.js';
export type { WorkflowDefinition, WorkflowStep, WorkflowContext, WorkflowResult, WorkflowEngine, StepType, RetryPolicy } from './modules/workflow.js';
 
// A2A (Agent-to-Agent) Protocol
export { createA2AClient, createA2AServer } from './modules/a2a.js';
export type { AgentCard, AgentSkill, A2AClient, A2AClientConfig, A2AServerConfig, A2AHandler, Task, TaskState, TaskSendParams, TaskStreamEvent, Message, Part, Artifact } from './modules/a2a.js';