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

239 lines (238 loc) 5.78 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 { inputTokens: number; outputTokens: number; totalTokens: number; } /** * Analytics data structure */ export interface AnalyticsData { provider: string; model: string; requestDuration: number; tokenUsage: { inputTokens: number; outputTokens: number; totalTokens: number; }; timestamp: number; context?: JsonValue; [key: string]: JsonValue | undefined; } /** * 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; } /** * Evaluation data structure */ export interface EvaluationData { relevance?: number; accuracy?: number; completeness?: number; coherence?: number; overall?: number; feedback?: string; [key: string]: JsonValue | undefined; } /** * 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;