@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
TypeScript
/**
* 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 {};