Files
simple-ai-provider/src/index.ts
Jan-Marlon Leibl bb37e61eaf refactor: extract constants, parameterize validators, simplify factory
Quick-win refactors from the Refactoring Guru catalog:

- Replace Magic Number with Symbolic Constant: extract DEFAULT_TIMEOUT_MS,
  DEFAULT_MAX_RETRIES, DEFAULT_MAX_TOKENS, DEFAULT_TEMPERATURE, default
  models per provider, and validation prompt into src/constants.ts.
- Parameterize Method: collapse validateTemperature / validateTopP /
  validateMaxTokens (and the inline timeout/maxRetries checks) into a
  single validateNumberInRange helper with bounds metadata.
- Inline Class / Remove Middle Man: drop the unused ProviderRegistry
  class from utils/factory.ts. createProvider now dispatches through
  the PROVIDER_REGISTRY const directly instead of a parallel switch.

Also fixes stale VERSION constant in src/index.ts (was 1.3.1).
2026-05-21 13:35:12 +02:00

62 lines
1.5 KiB
TypeScript

/**
* Simple AI Provider - A unified interface for multiple AI providers
*
* Main entry point for the library, providing access to all providers
* and utilities in a clean, type-safe interface.
*
* @author Jan-Marlon Leibl
* @version 1.0.0
*/
// Core types
export type {
AIMessage,
AIProviderConfig,
CompletionParams,
CompletionResponse,
CompletionChunk,
ProviderInfo,
TokenUsage,
ResponseType
} from './types/index.js';
// Error types
export { AIProviderError, AIErrorType } from './types/index.js';
// Response type utilities
export {
createResponseType,
generateResponseTypePrompt,
parseAndValidateResponseType
} from './types/index.js';
// Base provider
export { BaseAIProvider } from './providers/base.js';
// Provider implementations
export { ClaudeProvider, type ClaudeConfig } from './providers/claude.js';
export { OpenAIProvider, type OpenAIConfig } from './providers/openai.js';
export { GeminiProvider, type GeminiConfig } from './providers/gemini.js';
export { OpenWebUIProvider, type OpenWebUIConfig } from './providers/openwebui.js';
// Factory utilities
export {
createProvider,
createClaudeProvider,
createOpenAIProvider,
createGeminiProvider,
createOpenWebUIProvider,
type ProviderType,
PROVIDER_REGISTRY
} from './utils/factory.js';
/**
* List of all supported providers
*/
export const SUPPORTED_PROVIDERS = ['claude', 'openai', 'gemini', 'openwebui'] as const;
/**
* Package version
*/
export const VERSION = '2.0.0';