@juspay/neurolink
Version:
The pipe layer of an AI nervous system: one interface connecting provider neurons to your application, across three inference types — generate, stream and decide. `decide` returns typed, calibrated judgements from a non-generative model (~400ms, ~$0.00002
62 lines (61 loc) • 3.11 kB
TypeScript
import type { NeuroLink } from "../neurolink.js";
import type { AIProvider, SupportedModelName, NeurolinkCredentials, ProviderPairResult } from "../types/index.js";
import { AIProviderName } from "../constants/enums.js";
/**
* Factory for creating AI provider instances with centralized configuration
*/
export declare class AIProviderFactory {
/**
* Normalize provider name using ProviderFactory
*/
private static normalizeProviderName;
/**
* Initialize dynamic model provider with timeout protection
* Prevents hanging on non-responsive endpoints
*/
private static initializeDynamicProviderWithTimeout;
/**
* A provider whose descriptor declares `inferenceKinds` of exactly `["decide"]`
* names its own model (its registered default reads its own variable), so a
* chat provider's model variable has no claim on it. Exactly `["decide"]`: a
* provider that also serves text keeps its chat-model fallbacks.
*/
private static isDecisionOnly;
private static resolveModelFromEnvironment;
private static resolveDynamicModelName;
private static createResolvedProvider;
/**
* Create a provider instance for the specified provider type
* @param providerName - Name of the provider ('vertex', 'bedrock', 'openai')
* @param modelName - Optional model name override
* @param enableMCP - Optional flag to enable MCP integration (default: true)
* @param sdk - SDK instance
* @param region - Optional region override for cloud providers
* @returns AIProvider instance
*/
static createProvider(providerName: string, modelName?: string | null, enableMCP?: boolean, sdk?: NeuroLink, region?: string, credentials?: NeurolinkCredentials): Promise<AIProvider>;
/**
* Create a provider instance with specific provider enum and model
* @param provider - Provider enum value
* @param model - Specific model enum value
* @returns AIProvider instance
*/
static createProviderWithModel(provider: AIProviderName, model: SupportedModelName): Promise<AIProvider>;
/**
* Create the best available provider automatically
* @param requestedProvider - Optional preferred provider
* @param modelName - Optional model name override
* @param enableMCP - Optional flag to enable MCP integration (default: true)
* @returns AIProvider instance
*/
static createBestProvider(requestedProvider?: string, modelName?: string | null, enableMCP?: boolean, sdk?: NeuroLink): Promise<AIProvider>;
/**
* Create primary and fallback provider instances
* @param primaryProvider - Primary provider name
* @param fallbackProvider - Fallback provider name
* @param modelName - Optional model name override
* @param enableMCP - Optional flag to enable MCP integration (default: true)
* @returns Object with primary and fallback providers
*/
static createProviderWithFallback(primaryProvider: string, fallbackProvider: string, modelName?: string | null, enableMCP?: boolean): Promise<ProviderPairResult<AIProvider>>;
}