UNPKG

@juspay/neurolink

Version:

Universal AI Development Platform with working MCP integration, multi-provider support, and professional CLI. Built-in tools operational, 58+ external MCP servers discoverable. Connect to filesystem, GitHub, database operations, and more. Build, test, and

74 lines (73 loc) 2.71 kB
import type { AIProvider, AIProviderName } from "../core/types.js"; import type { UnknownRecord } from "../types/common.js"; /** * Provider constructor interface - supports both sync constructors and async factory functions */ type ProviderConstructor = { new (modelName?: string, providerName?: string, sdk?: UnknownRecord): AIProvider; } | ((modelName?: string, providerName?: string, sdk?: UnknownRecord) => Promise<AIProvider>); /** * Provider registration entry */ interface ProviderRegistration { constructor: ProviderConstructor; defaultModel?: string; aliases?: string[]; } /** * True Factory Pattern implementation for AI Providers * Uses registration-based approach to eliminate switch statements * and enable dynamic provider registration */ export declare class ProviderFactory { private static readonly providers; private static initialized; /** * Register a provider with the factory */ static registerProvider(name: AIProviderName | string, constructor: ProviderConstructor, defaultModel?: string, // Optional - provider can read from env aliases?: string[]): void; /** * Create a provider instance */ static createProvider(providerName: AIProviderName | string, modelName?: string, sdk?: UnknownRecord): Promise<AIProvider>; /** * Check if a provider is registered */ static hasProvider(providerName: string): boolean; /** * Get list of available providers */ static getAvailableProviders(): string[]; /** * Get provider registration info */ static getProviderInfo(providerName: string): ProviderRegistration | undefined; /** * Normalize provider names using aliases (PHASE 1: Factory Pattern) */ static normalizeProviderName(providerName: string): string | null; /** * Clear all registrations (mainly for testing) */ static clearRegistrations(): void; /** * Ensure providers are initialized */ private static ensureInitialized; /** * Initialize default providers * NOTE: Providers are now registered by ProviderRegistry to avoid circular dependencies */ private static initializeDefaultProviders; /** * Create the best available provider for the given name * Used by NeuroLink SDK for streaming and generation */ static createBestProvider(providerName: AIProviderName | string, modelName?: string, enableMCP?: boolean, sdk?: UnknownRecord): Promise<AIProvider>; } /** * Helper function to create providers with backward compatibility */ export declare function createAIProvider(providerName: AIProviderName | string, modelName?: string): Promise<AIProvider>; export {};