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

344 lines (343 loc) 8.69 kB
/** * Provider-specific type definitions for NeuroLink */ import type { UnknownRecord, JsonValue } from "./common.js"; /** * Generic AI SDK model interface */ export interface AISDKModel { [key: string]: unknown; } /** * Provider error information */ export interface ProviderError extends Error { code?: string | number; statusCode?: number; provider?: string; originalError?: unknown; } /** * Token usage information */ export interface TokenUsage { input: number; output: number; total: number; } /** * Analytics data structure */ export interface AnalyticsData { provider: string; model?: string; tokenUsage: TokenUsage; requestDuration: number; timestamp: string; cost?: number; context?: JsonValue; } /** * AWS Credential Configuration for Bedrock provider */ export interface AWSCredentialConfig { region?: string; profile?: string; roleArn?: string; roleSessionName?: string; timeout?: number; /** @deprecated Prefer maxAttempts to match AWS SDK v3 config */ maxRetries?: number; /** Number of attempts as per AWS SDK v3 ("retry-mode") */ maxAttempts?: number; enableDebugLogging?: boolean; /** Optional service endpoint override (e.g., VPC/Gov endpoints) */ endpoint?: string; } /** * AWS Credential Validation Result */ export interface CredentialValidationResult { isValid: boolean; credentialSource: string; region: string; hasExpiration: boolean; expirationTime?: Date; error?: string; debugInfo: { accessKeyId: string; hasSessionToken: boolean; providerConfig: Readonly<Required<AWSCredentialConfig>>; }; } /** * Service Connectivity Test Result */ export interface ServiceConnectivityResult { bedrockAccessible: boolean; availableModels: number; responseTimeMs: number; error?: string; sampleModels: string[]; } /** * Model Capabilities - Maximally Reusable */ export type ModelCapability = "text" | "vision" | "function-calling" | "embedding" | "audio" | "video" | "code" | "reasoning" | "multimodal"; /** * Model Use Cases - High Reusability */ export type ModelUseCase = "chat" | "completion" | "analysis" | "coding" | "creative" | "reasoning" | "translation" | "summarization" | "classification"; /** * Model Filter Configuration - High Reusability */ export interface ModelFilter { provider?: string; capability?: ModelCapability; useCase?: ModelUseCase; requireVision?: boolean; requireFunctionCalling?: boolean; maxTokens?: number; costLimit?: number; } /** * Model Resolution Context - High Reusability */ export interface ModelResolutionContext { requireCapabilities?: ModelCapability[]; preferredProviders?: string[]; useCase?: ModelUseCase; budgetConstraints?: { maxCostPerRequest?: number; maxTokens?: number; }; performance?: { maxLatency?: number; minQuality?: number; }; } /** * Model Statistics Object - High Reusability */ export interface ModelStats { name: string; provider: string; capabilities: ModelCapability[]; useCases: ModelUseCase[]; performance: { avgLatency?: number; avgTokensPerSecond?: number; reliability?: number; }; pricing?: ModelPricing; metadata: { [key: string]: JsonValue; } & { version?: string; lastUpdated?: Date; }; } /** * Model Pricing Information - High Reusability */ export interface ModelPricing { inputTokens?: { price: number; currency: string; per: number; }; outputTokens?: { price: number; currency: string; per: number; }; requestPrice?: { price: number; currency: string; }; tier?: "free" | "basic" | "premium" | "enterprise"; average?: number; min?: number; max?: number; free?: boolean; } /** * Response quality evaluation scores - Comprehensive evaluation interface */ export interface EvaluationData { relevance: number; accuracy: number; completeness: number; overall: number; domainAlignment?: number; terminologyAccuracy?: number; toolEffectiveness?: number; isOffTopic: boolean; alertSeverity: "low" | "medium" | "high" | "none"; reasoning: string; suggestedImprovements?: string; evaluationModel: string; evaluationTime: number; evaluationDomain?: string; evaluationProvider?: string; evaluationAttempt?: number; evaluationConfig?: { mode: string; fallbackUsed: boolean; costEstimate: number; }; domainConfig?: { domainName: string; domainDescription: string; keyTerms: string[]; failurePatterns: string[]; successPatterns: string[]; evaluationCriteria?: Record<string, unknown>; }; domainEvaluation?: { domainRelevance: number; terminologyAccuracy: number; domainExpertise: number; domainSpecificInsights: string[]; }; } /** * Enhanced evaluation context for comprehensive response assessment */ export interface EvaluationContext { userQuery: string; aiResponse: string; context?: Record<string, unknown>; primaryDomain?: string; assistantRole?: string; conversationHistory?: Array<{ role: "user" | "assistant"; content: string; timestamp?: string; }>; toolUsage?: Array<{ toolName: string; input: unknown; output: unknown; executionTime: number; }>; expectedOutcome?: string; evaluationCriteria?: string[]; } /** * Evaluation result interface that extends EvaluationData with additional context */ export interface EvaluationResult extends EvaluationData { contextUtilization?: { conversationUsed: boolean; toolsUsed: boolean; domainKnowledgeUsed: boolean; }; evaluationContext?: { domain: string; toolsEvaluated: string[]; conversationTurns: number; }; } /** * Provider capabilities */ export interface ProviderCapabilities { supportsStreaming: boolean; supportsTools: boolean; supportsImages: boolean; supportsAudio: boolean; maxTokens?: number; supportedModels: string[]; } /** * Provider configuration */ export interface ProviderConfig { apiKey?: string; baseURL?: string; timeout?: number; retries?: number; model?: string; [key: string]: unknown; } /** * Amazon Bedrock specific types */ export declare namespace BedrockTypes { interface Client { send(command: unknown): Promise<unknown>; config: { region?: string; credentials?: unknown; }; } interface InvokeModelCommand { input: { modelId: string; body: string; contentType?: string; }; } } /** * Mistral specific types */ export declare namespace MistralTypes { interface Client { chat?: { complete?: (options: unknown) => Promise<unknown>; stream?: (options: unknown) => AsyncIterable<unknown>; }; } } /** * OpenTelemetry specific types (for telemetry service) */ export declare namespace TelemetryTypes { interface Meter { createCounter(name: string, options?: unknown): Counter; createHistogram(name: string, options?: unknown): Histogram; } interface Tracer { startSpan(name: string, options?: unknown): Span; } interface Counter { add(value: number, attributes?: UnknownRecord): void; } interface Histogram { record(value: number, attributes?: UnknownRecord): void; } interface Span { end(): void; setStatus(status: unknown): void; recordException(exception: unknown): void; } } /** * Provider factory function type */ export type ProviderFactory = (modelName?: string, providerName?: string, sdk?: unknown) => Promise<unknown>; /** * Provider constructor type */ export interface ProviderConstructor { new (modelName?: string, providerName?: string, sdk?: unknown): unknown; } /** * Provider registration entry */ export interface ProviderRegistration { name: string; constructor: ProviderConstructor | ProviderFactory; capabilities?: ProviderCapabilities; defaultConfig?: ProviderConfig; } /** * Type guard for provider error */ export declare function isProviderError(error: unknown): error is ProviderError; /** * Type guard for token usage */ export declare function isTokenUsage(value: unknown): value is TokenUsage;