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

175 lines (174 loc) 5.22 kB
/** * Context Types for NeuroLink - Factory Pattern Implementation * Provides type-safe context integration for AI generation */ import type { JsonObject } from "./common.js"; /** * Base context interface for all AI operations */ export interface BaseContext { userId?: string; sessionId?: string; requestId?: string; userRole?: string; userPreferences?: JsonObject; userMetadata?: JsonObject; applicationContext?: { name: string; version?: string; environment?: "development" | "staging" | "production"; }; organizationId?: string; departmentId?: string; projectId?: string; [key: string]: unknown; } /** * Context integration mode types */ type ContextIntegrationMode = "prompt_prefix" | "prompt_suffix" | "system_prompt" | "metadata_only" | "structured_prompt" | "none"; /** * Context configuration for AI generation */ export interface ContextConfig { mode: ContextIntegrationMode; includeInPrompt?: boolean; includeInAnalytics?: boolean; includeInEvaluation?: boolean; template?: string; maxLength?: number; } /** * Context processing result */ interface ProcessedContext { originalContext: BaseContext; processedContext: string | null; config: ContextConfig; metadata: { truncated: boolean; processingTime: number; template: string; mode: ContextIntegrationMode; }; } /** * Configuration for framework fields exclusion * Can be customized per application or environment */ export interface FrameworkFieldsConfig { defaultFields: string[]; additionalFields?: string[]; overrideFields?: string[]; includeFields?: string[]; } /** * Factory for context processing */ export declare class ContextFactory { /** * Default framework fields configuration */ static readonly DEFAULT_FRAMEWORK_FIELDS: FrameworkFieldsConfig; /** * Current framework fields configuration */ private static frameworkFieldsConfig; /** * Flag to track if framework fields have been initialized */ private static isFrameworkFieldsInitialized; /** * Configure framework fields for exclusion from custom data */ static configureFrameworkFields(config: Partial<FrameworkFieldsConfig>): void; /** * Get current framework fields configuration * Ensures lazy initialization if not already loaded */ static getFrameworkFieldsConfig(): FrameworkFieldsConfig; /** * Reset framework fields configuration to default */ static resetFrameworkFieldsConfig(): void; /** * Load framework fields configuration from environment variables * Supports NEUROLINK_CONTEXT_EXCLUDE_FIELDS and NEUROLINK_CONTEXT_INCLUDE_FIELDS */ static loadFrameworkFieldsFromEnv(): void; /** * Add additional fields to exclude */ static addFrameworkFieldsToExclude(fields: string[]): void; /** * Add fields to include (override exclusion) */ static addFrameworkFieldsToInclude(fields: string[]): void; /** * Default context configuration */ static readonly DEFAULT_CONFIG: ContextConfig; /** * Validate and normalize context data */ static validateContext(context: unknown): BaseContext | null; /** * Process context for AI generation based on configuration */ static processContext(context: BaseContext, config?: Partial<ContextConfig>): ProcessedContext; /** * Format context for prompt integration */ private static formatContextForPrompt; /** * Format context as prompt prefix */ private static formatAsPrefix; /** * Format context as prompt suffix */ private static formatAsSuffix; /** * Format context for system prompt */ private static formatForSystemPrompt; /** * Format context in structured format */ private static formatStructured; /** * Extract analytics data from context */ static extractAnalyticsContext(context: BaseContext): JsonObject; /** * Extract evaluation context */ static extractEvaluationContext(context: BaseContext): JsonObject; } /** * Context conversion utilities for domain-specific data * Replaces hardcoded business context with generic domain context */ import type { ExecutionContext } from "../mcp/contracts/mcpContract.js"; interface ContextConversionOptions { preserveLegacyFields?: boolean; validateDomainData?: boolean; includeMetadata?: boolean; } export declare class ContextConverter { /** * Convert legacy business context to generic domain context * Based on business context patterns */ static convertBusinessContext(legacyContext: Record<string, unknown>, domainType: string, options?: ContextConversionOptions): ExecutionContext; /** * Create execution context for required domain */ static createDomainContext(domainType: string, domainData: Record<string, unknown>, sessionInfo?: { sessionId?: string; userId?: string; }): ExecutionContext; private static inferProvider; private static extractCustomData; } export {};