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

132 lines (131 loc) 3.87 kB
import type { Tool } from "ai"; import type { ValidationSchema, StandardRecord } from "./typeAliases.js"; import type { AIProviderName, AnalyticsData, EvaluationData } from "../core/types.js"; /** * Generate function options interface - Primary method for content generation * Future-ready for multi-modal capabilities while maintaining text focus */ export interface GenerateOptions { input: { text: string; }; output?: { format?: "text" | "structured" | "json"; }; provider?: AIProviderName | string; model?: string; temperature?: number; maxTokens?: number; systemPrompt?: string; schema?: ValidationSchema; tools?: Record<string, Tool>; timeout?: number | string; disableTools?: boolean; enableEvaluation?: boolean; enableAnalytics?: boolean; context?: StandardRecord; evaluationDomain?: string; toolUsageContext?: string; conversationHistory?: Array<{ role: string; content: string; }>; factoryConfig?: { domainType?: string; domainConfig?: StandardRecord; enhancementType?: "domain-configuration" | "streaming-optimization" | "mcp-integration" | "legacy-migration" | "context-conversion"; preserveLegacyFields?: boolean; validateDomainData?: boolean; }; streaming?: { enabled?: boolean; chunkSize?: number; bufferSize?: number; enableProgress?: boolean; fallbackToGenerate?: boolean; }; } /** * Generate function result interface - Primary output format * Future-ready for multi-modal outputs while maintaining text focus */ export interface GenerateResult { content: string; outputs?: { text: string; }; provider?: string; model?: string; usage?: { inputTokens: number; outputTokens: number; totalTokens: number; }; responseTime?: number; toolCalls?: Array<{ toolCallId: string; toolName: string; args: StandardRecord; }>; toolResults?: unknown[]; toolsUsed?: string[]; toolExecutions?: Array<{ name: string; input: StandardRecord; output: unknown; }>; enhancedWithTools?: boolean; availableTools?: Array<{ name: string; description: string; parameters: StandardRecord; }>; analytics?: AnalyticsData; evaluation?: EvaluationData; factoryMetadata?: { enhancementApplied: boolean; enhancementType?: string; domainType?: string; processingTime?: number; configurationUsed?: StandardRecord; migrationPerformed?: boolean; legacyFieldsPreserved?: boolean; }; streamingMetadata?: { streamingUsed: boolean; fallbackToGenerate?: boolean; chunkCount?: number; streamingDuration?: number; streamId?: string; bufferOptimization?: boolean; }; } /** * Unified options for both generation and streaming * Supports factory patterns and domain configuration */ export interface UnifiedGenerationOptions extends GenerateOptions { preferStreaming?: boolean; streamingFallback?: boolean; } /** * Enhanced provider interface with generate method */ export interface EnhancedProvider { generate(options: GenerateOptions): Promise<GenerateResult>; getName(): string; isAvailable(): Promise<boolean>; } /** * Factory-enhanced provider interface * Supports domain configuration and streaming optimizations */ export interface FactoryEnhancedProvider extends EnhancedProvider { generateWithFactory(options: UnifiedGenerationOptions): Promise<GenerateResult>; getDomainSupport(): string[]; getStreamingCapabilities(): { supportsStreaming: boolean; maxChunkSize: number; bufferOptimizations: boolean; }; }