@juspay/neurolink 7.43.0 → 7.45.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/CHANGELOG.md +12 -10
  2. package/dist/cli/loop/optionsSchema.d.ts +1 -1
  3. package/dist/core/factory.d.ts +3 -1
  4. package/dist/core/factory.js +5 -3
  5. package/dist/factories/providerFactory.d.ts +3 -3
  6. package/dist/factories/providerFactory.js +3 -3
  7. package/dist/factories/providerRegistry.js +6 -6
  8. package/dist/lib/core/factory.d.ts +3 -1
  9. package/dist/lib/core/factory.js +5 -3
  10. package/dist/lib/factories/providerFactory.d.ts +3 -3
  11. package/dist/lib/factories/providerFactory.js +3 -3
  12. package/dist/lib/factories/providerRegistry.js +6 -6
  13. package/dist/lib/memory/mem0Initializer.d.ts +44 -0
  14. package/dist/lib/memory/mem0Initializer.js +42 -0
  15. package/dist/lib/neurolink.d.ts +12 -0
  16. package/dist/lib/neurolink.js +161 -3
  17. package/dist/lib/providers/amazonBedrock.d.ts +2 -1
  18. package/dist/lib/providers/amazonBedrock.js +6 -4
  19. package/dist/lib/providers/amazonSagemaker.d.ts +1 -1
  20. package/dist/lib/providers/amazonSagemaker.js +2 -2
  21. package/dist/lib/providers/googleVertex.d.ts +1 -1
  22. package/dist/lib/providers/googleVertex.js +9 -10
  23. package/dist/lib/providers/sagemaker/config.d.ts +7 -5
  24. package/dist/lib/providers/sagemaker/config.js +11 -6
  25. package/dist/lib/types/conversation.d.ts +8 -0
  26. package/dist/lib/types/generateTypes.d.ts +2 -0
  27. package/dist/lib/types/streamTypes.d.ts +1 -0
  28. package/dist/memory/mem0Initializer.d.ts +44 -0
  29. package/dist/memory/mem0Initializer.js +42 -0
  30. package/dist/neurolink.d.ts +12 -0
  31. package/dist/neurolink.js +161 -3
  32. package/dist/providers/amazonBedrock.d.ts +2 -1
  33. package/dist/providers/amazonBedrock.js +6 -4
  34. package/dist/providers/amazonSagemaker.d.ts +1 -1
  35. package/dist/providers/amazonSagemaker.js +2 -2
  36. package/dist/providers/googleVertex.d.ts +1 -1
  37. package/dist/providers/googleVertex.js +9 -10
  38. package/dist/providers/sagemaker/config.d.ts +7 -5
  39. package/dist/providers/sagemaker/config.js +11 -6
  40. package/dist/types/conversation.d.ts +8 -0
  41. package/dist/types/generateTypes.d.ts +2 -0
  42. package/dist/types/streamTypes.d.ts +1 -0
  43. package/package.json +48 -45
package/CHANGELOG.md CHANGED
@@ -1,3 +1,15 @@
1
+ ## [7.45.0](https://github.com/juspay/neurolink/compare/v7.44.0...v7.45.0) (2025-09-24)
2
+
3
+ ### Features
4
+
5
+ - **(provider):** Add support to provide region while streaming or generating for few providers ([a0a5bed](https://github.com/juspay/neurolink/commit/a0a5bed2bba4118dde149713708e36d4d29e1aae))
6
+
7
+ ## [7.44.0](https://github.com/juspay/neurolink/compare/v7.43.0...v7.44.0) (2025-09-24)
8
+
9
+ ### Features
10
+
11
+ - **(sdk):** Integrate mem0 for better context ([78edf08](https://github.com/juspay/neurolink/commit/78edf08467432988c968eb06f510f0198b253665))
12
+
1
13
  ## [7.43.0](https://github.com/juspay/neurolink/compare/v7.42.0...v7.43.0) (2025-09-23)
2
14
 
3
15
  ### Features
@@ -851,21 +863,18 @@ Co-authored-by: sachin.sharma <sachin.sharma@juspay.in>
851
863
  ### 🎯 Major Feature: Dynamic Model Configuration System
852
864
 
853
865
  - **⚡ Revolutionary Model Management**: Introduced dynamic model configuration system replacing static enums
854
-
855
866
  - **Self-Updating Models**: New models automatically available without code updates
856
867
  - **Cost Optimization**: Automatic selection of cheapest models for tasks
857
868
  - **Smart Resolution**: Fuzzy matching, aliases, and capability-based search
858
869
  - **Multi-Source Loading**: Configuration from API → GitHub → local with fallback
859
870
 
860
871
  - **💰 Cost Intelligence**: Built-in cost optimization and model selection algorithms
861
-
862
872
  - **Current Leader**: Gemini 2.0 Flash at $0.000075/1K input tokens
863
873
  - **Capability Mapping**: Find models by features (functionCalling, vision, code-execution)
864
874
  - **Real-Time Pricing**: Always current model costs and performance data
865
875
  - **Budget Controls**: Maximum price filtering and cost-aware selection
866
876
 
867
877
  - **🔧 Production-Ready Infrastructure**: Complete system with validation and monitoring
868
-
869
878
  - **Model Configuration Server**: REST API with search capabilities (`scripts/model-server.js`)
870
879
  - **Zod Schema Validation**: Type-safe runtime configuration validation
871
880
  - **Comprehensive Testing**: Full test suite for all dynamic model functionality
@@ -917,19 +926,16 @@ Co-authored-by: sachin.sharma <sachin.sharma@juspay.in>
917
926
  ### Bug Fixes - MCP System Restoration
918
927
 
919
928
  - **🔧 Fixed Built-in Tool Loading**: Resolved critical circular dependency issues preventing default tools from loading
920
-
921
929
  - **Root Cause**: Circular dependency between `config.ts` and `unified-registry.ts` preventing proper initialization
922
930
  - **Solution**: Implemented dynamic imports and restructured initialization chain
923
931
  - **Result**: Built-in tools restored from 0 → 3 tools (100% recovery rate)
924
932
 
925
933
  - **⏰ Fixed Time Tool Functionality**: Time tool now properly available and returns accurate real-time data
926
-
927
934
  - Fixed tool registration and execution pathway
928
935
  - Proper timezone handling and formatting
929
936
  - Verified accuracy against system time
930
937
 
931
938
  - **🔍 Enhanced External Tool Discovery**: 58+ external MCP tools now discoverable via comprehensive auto-discovery
932
-
933
939
  - Auto-discovery across VS Code, Claude Desktop, Cursor, Windsurf
934
940
  - Proper placeholder system for lazy activation
935
941
  - Unified registry integration
@@ -984,7 +990,6 @@ Co-authored-by: sachin.sharma <sachin.sharma@juspay.in>
984
990
  ### Features
985
991
 
986
992
  - **🛠️ Enhanced CLI with Ollama Commands**: New Ollama-specific management commands
987
-
988
993
  - `neurolink ollama list-models` - List installed local models
989
994
  - `neurolink ollama pull <model>` - Download models locally
990
995
  - `neurolink ollama remove <model>` - Remove installed models
@@ -1065,14 +1070,12 @@ neurolink generate-text "test" --debug
1065
1070
  ### Patch Changes
1066
1071
 
1067
1072
  - **🔧 Production-Ready CLI Logging System**: Fixed critical logging system for clean production output
1068
-
1069
1073
  - **Issue**: CLI showed excessive debug output during normal operation, breaking demo presentations
1070
1074
  - **Root Cause**: Mixed console.log statements bypassed conditional logger system
1071
1075
  - **Solution**: Systematic replacement of all console.log with logger.debug across codebase
1072
1076
  - **Impact**: **Clean CLI output by default** with conditional debug available via `NEUROLINK_DEBUG=true`
1073
1077
 
1074
1078
  - **🔄 Enhanced Provider Fallback Logic**: Fixed incomplete provider fallback coverage
1075
-
1076
1079
  - **Issue**: Provider fallback only attempted 4 of 6 providers (missing Anthropic & Azure)
1077
1080
  - **Root Cause**: Incomplete provider array in NeuroLink class fallback logic
1078
1081
  - **Solution**: Updated to include all 6 providers: `['openai', 'vertex', 'bedrock', 'anthropic', 'azure', 'google-ai']`
@@ -1116,7 +1119,6 @@ NEUROLINK_DEBUG=true node dist/cli/cli/index.js generate-text "test" --max-token
1116
1119
  ### Patch Changes
1117
1120
 
1118
1121
  - **🔧 Critical CLI Dependency Fix**: Removed peer dependencies to ensure zero-friction CLI usage
1119
-
1120
1122
  - **Issue**: CLI commands failed when provider-specific SDK packages were peer dependencies
1121
1123
  - **Root Cause**: `npx` doesn't install peer dependencies, causing missing module errors
1122
1124
  - **Solution**: Moved ALL AI provider SDKs to regular dependencies
@@ -12,4 +12,4 @@ export interface OptionSchema {
12
12
  * This object provides metadata for validation and help text in the CLI loop.
13
13
  * It is derived from the main TextGenerationOptions interface to ensure consistency.
14
14
  */
15
- export declare const textGenerationOptionsSchema: Record<keyof Omit<TextGenerationOptions, "prompt" | "input" | "schema" | "tools" | "context" | "conversationHistory" | "conversationMessages" | "conversationMemoryConfig" | "originalPrompt" | "middleware" | "expectedOutcome" | "evaluationCriteria">, OptionSchema>;
15
+ export declare const textGenerationOptionsSchema: Record<keyof Omit<TextGenerationOptions, "prompt" | "input" | "schema" | "tools" | "context" | "conversationHistory" | "conversationMessages" | "conversationMemoryConfig" | "originalPrompt" | "middleware" | "expectedOutcome" | "evaluationCriteria" | "region">, OptionSchema>;
@@ -19,9 +19,11 @@ export declare class AIProviderFactory {
19
19
  * @param providerName - Name of the provider ('vertex', 'bedrock', 'openai')
20
20
  * @param modelName - Optional model name override
21
21
  * @param enableMCP - Optional flag to enable MCP integration (default: true)
22
+ * @param sdk - SDK instance
23
+ * @param region - Optional region override for cloud providers
22
24
  * @returns AIProvider instance
23
25
  */
24
- static createProvider(providerName: string, modelName?: string | null, enableMCP?: boolean, sdk?: UnknownRecord): Promise<AIProvider>;
26
+ static createProvider(providerName: string, modelName?: string | null, enableMCP?: boolean, sdk?: UnknownRecord, region?: string): Promise<AIProvider>;
25
27
  /**
26
28
  * Create a provider instance with specific provider enum and model
27
29
  * @param provider - Provider enum value
@@ -52,9 +52,11 @@ export class AIProviderFactory {
52
52
  * @param providerName - Name of the provider ('vertex', 'bedrock', 'openai')
53
53
  * @param modelName - Optional model name override
54
54
  * @param enableMCP - Optional flag to enable MCP integration (default: true)
55
+ * @param sdk - SDK instance
56
+ * @param region - Optional region override for cloud providers
55
57
  * @returns AIProvider instance
56
58
  */
57
- static async createProvider(providerName, modelName, enableMCP = true, sdk) {
59
+ static async createProvider(providerName, modelName, enableMCP = true, sdk, region) {
58
60
  const functionTag = "AIProviderFactory.createProvider";
59
61
  // Providers are registered via ProviderFactory.initialize() on first use
60
62
  logger.debug(`[${functionTag}] Provider creation started`, {
@@ -198,8 +200,8 @@ export class AIProviderFactory {
198
200
  resolvedModelName: resolvedModelName || "not resolved",
199
201
  finalModelName: finalModelName || "using provider default",
200
202
  });
201
- // Create provider with enhanced SDK
202
- const provider = await ProviderFactory.createProvider(normalizedName, finalModelName, sdk);
203
+ // Create provider with enhanced SDK and region support
204
+ const provider = await ProviderFactory.createProvider(normalizedName, finalModelName, sdk, region);
203
205
  // Summary logging in format expected by debugging tools
204
206
  logger.debug(`[AIProviderFactory] Provider creation completed { providerName: '${normalizedName}', modelName: '${finalModelName}' }`);
205
207
  logger.debug(`[AIProviderFactory] Resolved model: ${finalModelName}`);
@@ -4,8 +4,8 @@ import type { UnknownRecord } from "../types/common.js";
4
4
  * Provider constructor interface - supports both sync constructors and async factory functions
5
5
  */
6
6
  type ProviderConstructor = {
7
- new (modelName?: string, providerName?: string, sdk?: UnknownRecord): AIProvider;
8
- } | ((modelName?: string, providerName?: string, sdk?: UnknownRecord) => Promise<AIProvider>);
7
+ new (modelName?: string, providerName?: string, sdk?: UnknownRecord, region?: string): AIProvider;
8
+ } | ((modelName?: string, providerName?: string, sdk?: UnknownRecord, region?: string) => Promise<AIProvider>);
9
9
  /**
10
10
  * Provider registration entry
11
11
  */
@@ -30,7 +30,7 @@ export declare class ProviderFactory {
30
30
  /**
31
31
  * Create a provider instance
32
32
  */
33
- static createProvider(providerName: AIProviderName | string, modelName?: string, sdk?: UnknownRecord): Promise<AIProvider>;
33
+ static createProvider(providerName: AIProviderName | string, modelName?: string, sdk?: UnknownRecord, region?: string): Promise<AIProvider>;
34
34
  /**
35
35
  * Check if a provider is registered
36
36
  */
@@ -28,7 +28,7 @@ export class ProviderFactory {
28
28
  /**
29
29
  * Create a provider instance
30
30
  */
31
- static async createProvider(providerName, modelName, sdk) {
31
+ static async createProvider(providerName, modelName, sdk, region) {
32
32
  // Note: Providers are registered explicitly by ProviderRegistry to avoid circular dependencies
33
33
  const normalizedName = providerName.toLowerCase();
34
34
  const registration = this.providers.get(normalizedName);
@@ -54,7 +54,7 @@ export class ProviderFactory {
54
54
  }
55
55
  let result;
56
56
  try {
57
- const factoryResult = registration.constructor(model, providerName, sdk);
57
+ const factoryResult = registration.constructor(model, providerName, sdk, region);
58
58
  // Handle both sync and async results
59
59
  result =
60
60
  factoryResult instanceof Promise
@@ -66,7 +66,7 @@ export class ProviderFactory {
66
66
  registration.constructor.prototype.constructor ===
67
67
  registration.constructor) {
68
68
  try {
69
- result = new registration.constructor(model, providerName, sdk);
69
+ result = new registration.constructor(model, providerName, sdk, region);
70
70
  }
71
71
  catch (constructorError) {
72
72
  throw new Error(`Both factory function and constructor failed. Factory error: ${factoryError}. Constructor error: ${constructorError}`);
@@ -39,9 +39,9 @@ export class ProviderRegistry {
39
39
  return new AnthropicProvider(modelName, sdk);
40
40
  }, "claude-3-5-sonnet-20241022", ["claude", "anthropic"]);
41
41
  // Register Amazon Bedrock provider
42
- ProviderFactory.registerProvider(AIProviderName.BEDROCK, async (modelName, _providerName, sdk) => {
42
+ ProviderFactory.registerProvider(AIProviderName.BEDROCK, async (modelName, _providerName, sdk, region) => {
43
43
  const { AmazonBedrockProvider } = await import("../providers/amazonBedrock.js");
44
- return new AmazonBedrockProvider(modelName, sdk);
44
+ return new AmazonBedrockProvider(modelName, sdk, region);
45
45
  }, undefined, // Let provider read BEDROCK_MODEL from .env
46
46
  ["bedrock", "aws"]);
47
47
  // Register Azure OpenAI provider
@@ -54,9 +54,9 @@ export class ProviderRegistry {
54
54
  process.env.AZURE_OPENAI_DEPLOYMENT_ID ||
55
55
  "gpt-4o-mini", ["azure", "azureOpenai"]);
56
56
  // Register Google Vertex AI provider
57
- ProviderFactory.registerProvider(AIProviderName.VERTEX, async (modelName, providerName, sdk) => {
57
+ ProviderFactory.registerProvider(AIProviderName.VERTEX, async (modelName, providerName, sdk, region) => {
58
58
  const { GoogleVertexProvider } = await import("../providers/googleVertex.js");
59
- return new GoogleVertexProvider(modelName, providerName, sdk);
59
+ return new GoogleVertexProvider(modelName, providerName, sdk, region);
60
60
  }, "claude-sonnet-4@20250514", ["vertex", "googleVertex"]);
61
61
  // Register Hugging Face provider (Unified Router implementation)
62
62
  ProviderFactory.registerProvider(AIProviderName.HUGGINGFACE, async (modelName) => {
@@ -85,9 +85,9 @@ export class ProviderRegistry {
85
85
  }, process.env.OPENAI_COMPATIBLE_MODEL || undefined, // Enable auto-discovery when no model specified
86
86
  ["openai-compatible", "openrouter", "vllm", "compatible"]);
87
87
  // Register Amazon SageMaker provider
88
- ProviderFactory.registerProvider(AIProviderName.SAGEMAKER, async (modelName, _providerName, _sdk) => {
88
+ ProviderFactory.registerProvider(AIProviderName.SAGEMAKER, async (modelName, _providerName, _sdk, region) => {
89
89
  const { AmazonSageMakerProvider } = await import("../providers/amazonSagemaker.js");
90
- return new AmazonSageMakerProvider(modelName);
90
+ return new AmazonSageMakerProvider(modelName, region);
91
91
  }, process.env.SAGEMAKER_MODEL || "sagemaker-model", ["sagemaker", "aws-sagemaker"]);
92
92
  logger.debug("All providers registered successfully");
93
93
  this.registered = true;
@@ -19,9 +19,11 @@ export declare class AIProviderFactory {
19
19
  * @param providerName - Name of the provider ('vertex', 'bedrock', 'openai')
20
20
  * @param modelName - Optional model name override
21
21
  * @param enableMCP - Optional flag to enable MCP integration (default: true)
22
+ * @param sdk - SDK instance
23
+ * @param region - Optional region override for cloud providers
22
24
  * @returns AIProvider instance
23
25
  */
24
- static createProvider(providerName: string, modelName?: string | null, enableMCP?: boolean, sdk?: UnknownRecord): Promise<AIProvider>;
26
+ static createProvider(providerName: string, modelName?: string | null, enableMCP?: boolean, sdk?: UnknownRecord, region?: string): Promise<AIProvider>;
25
27
  /**
26
28
  * Create a provider instance with specific provider enum and model
27
29
  * @param provider - Provider enum value
@@ -52,9 +52,11 @@ export class AIProviderFactory {
52
52
  * @param providerName - Name of the provider ('vertex', 'bedrock', 'openai')
53
53
  * @param modelName - Optional model name override
54
54
  * @param enableMCP - Optional flag to enable MCP integration (default: true)
55
+ * @param sdk - SDK instance
56
+ * @param region - Optional region override for cloud providers
55
57
  * @returns AIProvider instance
56
58
  */
57
- static async createProvider(providerName, modelName, enableMCP = true, sdk) {
59
+ static async createProvider(providerName, modelName, enableMCP = true, sdk, region) {
58
60
  const functionTag = "AIProviderFactory.createProvider";
59
61
  // Providers are registered via ProviderFactory.initialize() on first use
60
62
  logger.debug(`[${functionTag}] Provider creation started`, {
@@ -198,8 +200,8 @@ export class AIProviderFactory {
198
200
  resolvedModelName: resolvedModelName || "not resolved",
199
201
  finalModelName: finalModelName || "using provider default",
200
202
  });
201
- // Create provider with enhanced SDK
202
- const provider = await ProviderFactory.createProvider(normalizedName, finalModelName, sdk);
203
+ // Create provider with enhanced SDK and region support
204
+ const provider = await ProviderFactory.createProvider(normalizedName, finalModelName, sdk, region);
203
205
  // Summary logging in format expected by debugging tools
204
206
  logger.debug(`[AIProviderFactory] Provider creation completed { providerName: '${normalizedName}', modelName: '${finalModelName}' }`);
205
207
  logger.debug(`[AIProviderFactory] Resolved model: ${finalModelName}`);
@@ -4,8 +4,8 @@ import type { UnknownRecord } from "../types/common.js";
4
4
  * Provider constructor interface - supports both sync constructors and async factory functions
5
5
  */
6
6
  type ProviderConstructor = {
7
- new (modelName?: string, providerName?: string, sdk?: UnknownRecord): AIProvider;
8
- } | ((modelName?: string, providerName?: string, sdk?: UnknownRecord) => Promise<AIProvider>);
7
+ new (modelName?: string, providerName?: string, sdk?: UnknownRecord, region?: string): AIProvider;
8
+ } | ((modelName?: string, providerName?: string, sdk?: UnknownRecord, region?: string) => Promise<AIProvider>);
9
9
  /**
10
10
  * Provider registration entry
11
11
  */
@@ -30,7 +30,7 @@ export declare class ProviderFactory {
30
30
  /**
31
31
  * Create a provider instance
32
32
  */
33
- static createProvider(providerName: AIProviderName | string, modelName?: string, sdk?: UnknownRecord): Promise<AIProvider>;
33
+ static createProvider(providerName: AIProviderName | string, modelName?: string, sdk?: UnknownRecord, region?: string): Promise<AIProvider>;
34
34
  /**
35
35
  * Check if a provider is registered
36
36
  */
@@ -28,7 +28,7 @@ export class ProviderFactory {
28
28
  /**
29
29
  * Create a provider instance
30
30
  */
31
- static async createProvider(providerName, modelName, sdk) {
31
+ static async createProvider(providerName, modelName, sdk, region) {
32
32
  // Note: Providers are registered explicitly by ProviderRegistry to avoid circular dependencies
33
33
  const normalizedName = providerName.toLowerCase();
34
34
  const registration = this.providers.get(normalizedName);
@@ -54,7 +54,7 @@ export class ProviderFactory {
54
54
  }
55
55
  let result;
56
56
  try {
57
- const factoryResult = registration.constructor(model, providerName, sdk);
57
+ const factoryResult = registration.constructor(model, providerName, sdk, region);
58
58
  // Handle both sync and async results
59
59
  result =
60
60
  factoryResult instanceof Promise
@@ -66,7 +66,7 @@ export class ProviderFactory {
66
66
  registration.constructor.prototype.constructor ===
67
67
  registration.constructor) {
68
68
  try {
69
- result = new registration.constructor(model, providerName, sdk);
69
+ result = new registration.constructor(model, providerName, sdk, region);
70
70
  }
71
71
  catch (constructorError) {
72
72
  throw new Error(`Both factory function and constructor failed. Factory error: ${factoryError}. Constructor error: ${constructorError}`);
@@ -39,9 +39,9 @@ export class ProviderRegistry {
39
39
  return new AnthropicProvider(modelName, sdk);
40
40
  }, "claude-3-5-sonnet-20241022", ["claude", "anthropic"]);
41
41
  // Register Amazon Bedrock provider
42
- ProviderFactory.registerProvider(AIProviderName.BEDROCK, async (modelName, _providerName, sdk) => {
42
+ ProviderFactory.registerProvider(AIProviderName.BEDROCK, async (modelName, _providerName, sdk, region) => {
43
43
  const { AmazonBedrockProvider } = await import("../providers/amazonBedrock.js");
44
- return new AmazonBedrockProvider(modelName, sdk);
44
+ return new AmazonBedrockProvider(modelName, sdk, region);
45
45
  }, undefined, // Let provider read BEDROCK_MODEL from .env
46
46
  ["bedrock", "aws"]);
47
47
  // Register Azure OpenAI provider
@@ -54,9 +54,9 @@ export class ProviderRegistry {
54
54
  process.env.AZURE_OPENAI_DEPLOYMENT_ID ||
55
55
  "gpt-4o-mini", ["azure", "azureOpenai"]);
56
56
  // Register Google Vertex AI provider
57
- ProviderFactory.registerProvider(AIProviderName.VERTEX, async (modelName, providerName, sdk) => {
57
+ ProviderFactory.registerProvider(AIProviderName.VERTEX, async (modelName, providerName, sdk, region) => {
58
58
  const { GoogleVertexProvider } = await import("../providers/googleVertex.js");
59
- return new GoogleVertexProvider(modelName, providerName, sdk);
59
+ return new GoogleVertexProvider(modelName, providerName, sdk, region);
60
60
  }, "claude-sonnet-4@20250514", ["vertex", "googleVertex"]);
61
61
  // Register Hugging Face provider (Unified Router implementation)
62
62
  ProviderFactory.registerProvider(AIProviderName.HUGGINGFACE, async (modelName) => {
@@ -85,9 +85,9 @@ export class ProviderRegistry {
85
85
  }, process.env.OPENAI_COMPATIBLE_MODEL || undefined, // Enable auto-discovery when no model specified
86
86
  ["openai-compatible", "openrouter", "vllm", "compatible"]);
87
87
  // Register Amazon SageMaker provider
88
- ProviderFactory.registerProvider(AIProviderName.SAGEMAKER, async (modelName, _providerName, _sdk) => {
88
+ ProviderFactory.registerProvider(AIProviderName.SAGEMAKER, async (modelName, _providerName, _sdk, region) => {
89
89
  const { AmazonSageMakerProvider } = await import("../providers/amazonSagemaker.js");
90
- return new AmazonSageMakerProvider(modelName);
90
+ return new AmazonSageMakerProvider(modelName, region);
91
91
  }, process.env.SAGEMAKER_MODEL || "sagemaker-model", ["sagemaker", "aws-sagemaker"]);
92
92
  logger.debug("All providers registered successfully");
93
93
  this.registered = true;
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Mem0 Memory Initializer
3
+ * Simple initialization logic for mem0ai/oss integration
4
+ */
5
+ import type { MemoryConfig } from "mem0ai/oss";
6
+ /**
7
+ * Interface for mem0 Memory instance methods based on actual mem0ai/oss API
8
+ */
9
+ export interface Mem0Memory {
10
+ search(query: string, config: {
11
+ userId?: string;
12
+ limit?: number;
13
+ }): Promise<{
14
+ results: Array<{
15
+ memory: string;
16
+ id: string;
17
+ }>;
18
+ }>;
19
+ add(messages: string, config: {
20
+ userId?: string;
21
+ metadata?: Record<string, unknown>;
22
+ }): Promise<{
23
+ results: Array<{
24
+ id: string;
25
+ memory: string;
26
+ }>;
27
+ }>;
28
+ get(memoryId: string): Promise<{
29
+ id: string;
30
+ memory: string;
31
+ } | null>;
32
+ update(memoryId: string, data: string): Promise<{
33
+ message: string;
34
+ }>;
35
+ delete(memoryId: string): Promise<{
36
+ message: string;
37
+ }>;
38
+ history(memoryId: string): Promise<unknown[]>;
39
+ reset(): Promise<void>;
40
+ }
41
+ /**
42
+ * Initialize mem0 memory instance with configuration
43
+ */
44
+ export declare function initializeMem0(mem0Config: MemoryConfig): Promise<Mem0Memory | null>;
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Mem0 Memory Initializer
3
+ * Simple initialization logic for mem0ai/oss integration
4
+ */
5
+ import { Memory } from "mem0ai/oss";
6
+ import { logger } from "../utils/logger.js";
7
+ /**
8
+ * Initialize mem0 memory instance with configuration
9
+ */
10
+ export async function initializeMem0(mem0Config) {
11
+ logger.debug("[mem0Initializer] Starting mem0 initialization");
12
+ try {
13
+ // Create Memory instance
14
+ const memory = new Memory(mem0Config);
15
+ logger.info("[mem0Initializer] Mem0 initialized successfully");
16
+ return memory;
17
+ }
18
+ catch (error) {
19
+ logger.warn("[mem0Initializer] Failed to initialize mem0, using fallback", {
20
+ error: error instanceof Error ? error.message : String(error),
21
+ });
22
+ return createFallbackMemory();
23
+ }
24
+ }
25
+ /**
26
+ * Create fallback memory implementation
27
+ */
28
+ function createFallbackMemory() {
29
+ return {
30
+ search: async () => ({ results: [] }),
31
+ add: async () => ({ results: [] }),
32
+ get: async () => null,
33
+ update: async () => ({
34
+ message: "Fallback memory does not support updates",
35
+ }),
36
+ delete: async () => ({
37
+ message: "Fallback memory does not support deletion",
38
+ }),
39
+ history: async () => [],
40
+ reset: async () => { },
41
+ };
42
+ }
@@ -70,6 +70,16 @@ export declare class NeuroLink {
70
70
  private conversationMemoryConfig?;
71
71
  private enableOrchestration;
72
72
  private hitlManager?;
73
+ private mem0Instance?;
74
+ private mem0Config?;
75
+ /**
76
+ * Simple sync config setup for mem0
77
+ */
78
+ private initializeMem0Config;
79
+ /**
80
+ * Async initialization called during generate/stream
81
+ */
82
+ private ensureMem0Ready;
73
83
  /**
74
84
  * Context storage for tool execution
75
85
  * This context will be merged with any runtime context passed by the AI model
@@ -142,6 +152,8 @@ export declare class NeuroLink {
142
152
  * Initialize HITL (Human-in-the-Loop) if enabled
143
153
  */
144
154
  private initializeHITL;
155
+ /** Format memory context for prompt inclusion */
156
+ private formatMemoryContext;
145
157
  /**
146
158
  * Set up HITL event forwarding to main emitter
147
159
  */