@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
90 lines (89 loc) • 3.19 kB
TypeScript
/**
* Universal Provider Options Interface (Phase 1: Factory Pattern)
* Based on TypeScript factory pattern best practices for AI provider abstraction
*/
import type { BaseContext, ContextConfig } from "./contextTypes.js";
/**
* Base configuration interface for all AI providers
* Uses Parameter Object Pattern for flexible, extensible configuration
*/
export interface UniversalProviderOptions {
prompt?: string;
model?: string;
temperature?: number;
maxTokens?: number;
systemPrompt?: string;
enableAnalytics?: boolean;
enableEvaluation?: boolean;
context?: BaseContext;
contextConfig?: Partial<ContextConfig>;
metadata?: Record<string, unknown>;
extensionOptions?: Record<string, unknown>;
}
/**
* Generic provider options (without providerType)
*/
export type GenericProviderOptions = Omit<UniversalProviderOptions, "providerType">;
/**
* Provider-specific configuration extensions
* Discriminated union pattern for type-safe provider configs
*/
export interface OpenAIProviderOptions extends UniversalProviderOptions {
providerType: "openai";
organization?: string;
seed?: number;
topP?: number;
}
export interface GoogleAIProviderOptions extends UniversalProviderOptions {
providerType: "google-ai";
topK?: number;
candidateCount?: number;
stopSequences?: string[];
}
export interface AnthropicProviderOptions extends UniversalProviderOptions {
providerType: "anthropic";
topK?: number;
stopSequences?: string[];
}
export interface BedrockProviderOptions extends UniversalProviderOptions {
providerType: "bedrock";
inferenceProfileArn?: string;
region?: string;
}
/**
* Discriminated union for type-safe provider configuration
* Enables compile-time type checking for provider-specific options
*/
export type ProviderSpecificOptions = OpenAIProviderOptions | GoogleAIProviderOptions | AnthropicProviderOptions | BedrockProviderOptions;
/**
* Factory configuration interface
* Supports both universal and provider-specific parameters
*/
export interface ProviderFactoryConfig {
providerName: string;
modelName?: string;
options?: UniversalProviderOptions | ProviderSpecificOptions;
enableMCP?: boolean;
}
/**
* Parameter normalization utilities
* Converts between different parameter formats for backward compatibility
*/
export declare class ParameterNormalizer {
/**
* Normalize legacy parameter formats to universal format
*/
static normalizeToUniversal(optionsOrPrompt: UniversalProviderOptions | string): UniversalProviderOptions;
/**
* Retrieve the provider type if it exists, otherwise return null
*/
private static getProviderType;
/**
* Extract provider-specific parameters safely
*/
static extractProviderOptions<T extends ProviderSpecificOptions>(options: UniversalProviderOptions | ProviderSpecificOptions, providerType: T["providerType"]): T | GenericProviderOptions;
/**
* Merge default values with user-provided options
*/
static mergeWithDefaults(options: UniversalProviderOptions, defaults: Partial<UniversalProviderOptions>): UniversalProviderOptions;
}