@juspay/neurolink 5.0.0 → 5.2.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 (214) hide show
  1. package/CHANGELOG.md +20 -7
  2. package/README.md +160 -172
  3. package/dist/agent/direct-tools.d.ts +6 -6
  4. package/dist/chat/sse-handler.js +5 -4
  5. package/dist/chat/websocket-chat-handler.js +9 -9
  6. package/dist/cli/commands/config.d.ts +3 -3
  7. package/dist/cli/commands/mcp.js +9 -8
  8. package/dist/cli/commands/ollama.js +3 -3
  9. package/dist/cli/factories/command-factory.d.ts +18 -0
  10. package/dist/cli/factories/command-factory.js +183 -0
  11. package/dist/cli/index.js +105 -157
  12. package/dist/cli/utils/interactive-setup.js +2 -2
  13. package/dist/core/base-provider.d.ts +423 -0
  14. package/dist/core/base-provider.js +365 -0
  15. package/dist/core/constants.d.ts +1 -1
  16. package/dist/core/constants.js +1 -1
  17. package/dist/core/dynamic-models.d.ts +6 -6
  18. package/dist/core/evaluation.d.ts +19 -80
  19. package/dist/core/evaluation.js +185 -484
  20. package/dist/core/factory.d.ts +3 -3
  21. package/dist/core/factory.js +31 -91
  22. package/dist/core/service-registry.d.ts +47 -0
  23. package/dist/core/service-registry.js +112 -0
  24. package/dist/core/types.d.ts +49 -49
  25. package/dist/core/types.js +1 -0
  26. package/dist/factories/compatibility-factory.d.ts +20 -0
  27. package/dist/factories/compatibility-factory.js +69 -0
  28. package/dist/factories/provider-factory.d.ts +72 -0
  29. package/dist/factories/provider-factory.js +144 -0
  30. package/dist/factories/provider-generate-factory.d.ts +20 -0
  31. package/dist/factories/provider-generate-factory.js +87 -0
  32. package/dist/factories/provider-registry.d.ts +38 -0
  33. package/dist/factories/provider-registry.js +107 -0
  34. package/dist/index.d.ts +8 -5
  35. package/dist/index.js +5 -5
  36. package/dist/lib/agent/direct-tools.d.ts +6 -6
  37. package/dist/lib/chat/sse-handler.js +5 -4
  38. package/dist/lib/chat/websocket-chat-handler.js +9 -9
  39. package/dist/lib/core/base-provider.d.ts +423 -0
  40. package/dist/lib/core/base-provider.js +365 -0
  41. package/dist/lib/core/constants.d.ts +1 -1
  42. package/dist/lib/core/constants.js +1 -1
  43. package/dist/lib/core/dynamic-models.d.ts +6 -6
  44. package/dist/lib/core/evaluation.d.ts +19 -80
  45. package/dist/lib/core/evaluation.js +185 -484
  46. package/dist/lib/core/factory.d.ts +3 -3
  47. package/dist/lib/core/factory.js +30 -91
  48. package/dist/lib/core/service-registry.d.ts +47 -0
  49. package/dist/lib/core/service-registry.js +112 -0
  50. package/dist/lib/core/types.d.ts +49 -49
  51. package/dist/lib/core/types.js +1 -0
  52. package/dist/lib/factories/compatibility-factory.d.ts +20 -0
  53. package/dist/lib/factories/compatibility-factory.js +69 -0
  54. package/dist/lib/factories/provider-factory.d.ts +72 -0
  55. package/dist/lib/factories/provider-factory.js +144 -0
  56. package/dist/lib/factories/provider-generate-factory.d.ts +20 -0
  57. package/dist/lib/factories/provider-generate-factory.js +87 -0
  58. package/dist/lib/factories/provider-registry.d.ts +38 -0
  59. package/dist/lib/factories/provider-registry.js +107 -0
  60. package/dist/lib/index.d.ts +8 -5
  61. package/dist/lib/index.js +5 -5
  62. package/dist/lib/mcp/client.js +5 -5
  63. package/dist/lib/mcp/config.js +28 -3
  64. package/dist/lib/mcp/dynamic-orchestrator.js +8 -8
  65. package/dist/lib/mcp/external-client.js +2 -2
  66. package/dist/lib/mcp/factory.d.ts +1 -1
  67. package/dist/lib/mcp/factory.js +1 -1
  68. package/dist/lib/mcp/function-calling.js +1 -1
  69. package/dist/lib/mcp/initialize-tools.d.ts +1 -1
  70. package/dist/lib/mcp/initialize-tools.js +45 -1
  71. package/dist/lib/mcp/initialize.js +16 -6
  72. package/dist/lib/mcp/neurolink-mcp-client.js +10 -10
  73. package/dist/lib/mcp/orchestrator.js +4 -4
  74. package/dist/lib/mcp/servers/agent/direct-tools-server.d.ts +8 -0
  75. package/dist/lib/mcp/servers/agent/direct-tools-server.js +109 -0
  76. package/dist/lib/mcp/servers/ai-providers/ai-analysis-tools.js +10 -10
  77. package/dist/lib/mcp/servers/ai-providers/ai-core-server.js +8 -6
  78. package/dist/lib/mcp/servers/ai-providers/ai-workflow-tools.d.ts +2 -2
  79. package/dist/lib/mcp/servers/ai-providers/ai-workflow-tools.js +16 -16
  80. package/dist/lib/mcp/unified-registry.d.ts +4 -0
  81. package/dist/lib/mcp/unified-registry.js +42 -9
  82. package/dist/lib/neurolink.d.ts +161 -174
  83. package/dist/lib/neurolink.js +723 -397
  84. package/dist/lib/providers/amazon-bedrock.d.ts +32 -0
  85. package/dist/lib/providers/amazon-bedrock.js +143 -0
  86. package/dist/lib/providers/analytics-helper.js +7 -4
  87. package/dist/lib/providers/anthropic-baseprovider.d.ts +23 -0
  88. package/dist/lib/providers/anthropic-baseprovider.js +114 -0
  89. package/dist/lib/providers/anthropic.d.ts +19 -39
  90. package/dist/lib/providers/anthropic.js +84 -378
  91. package/dist/lib/providers/azure-openai.d.ts +20 -0
  92. package/dist/lib/providers/azure-openai.js +89 -0
  93. package/dist/lib/providers/function-calling-provider.d.ts +14 -12
  94. package/dist/lib/providers/function-calling-provider.js +114 -64
  95. package/dist/lib/providers/google-ai-studio.d.ts +23 -0
  96. package/dist/lib/providers/google-ai-studio.js +107 -0
  97. package/dist/lib/providers/google-vertex.d.ts +47 -0
  98. package/dist/lib/providers/google-vertex.js +205 -0
  99. package/dist/lib/providers/huggingFace.d.ts +33 -27
  100. package/dist/lib/providers/huggingFace.js +103 -400
  101. package/dist/lib/providers/index.d.ts +9 -9
  102. package/dist/lib/providers/index.js +9 -9
  103. package/dist/lib/providers/mcp-provider.d.ts +13 -8
  104. package/dist/lib/providers/mcp-provider.js +63 -18
  105. package/dist/lib/providers/mistral.d.ts +42 -0
  106. package/dist/lib/providers/mistral.js +160 -0
  107. package/dist/lib/providers/ollama.d.ts +52 -35
  108. package/dist/lib/providers/ollama.js +297 -477
  109. package/dist/lib/providers/openAI.d.ts +21 -21
  110. package/dist/lib/providers/openAI.js +81 -245
  111. package/dist/lib/sdk/tool-extension.d.ts +181 -0
  112. package/dist/lib/sdk/tool-extension.js +283 -0
  113. package/dist/lib/sdk/tool-registration.d.ts +95 -0
  114. package/dist/lib/sdk/tool-registration.js +167 -0
  115. package/dist/lib/types/generate-types.d.ts +80 -0
  116. package/dist/lib/types/generate-types.js +1 -0
  117. package/dist/lib/types/mcp-types.d.ts +116 -0
  118. package/dist/lib/types/mcp-types.js +5 -0
  119. package/dist/lib/types/stream-types.d.ts +95 -0
  120. package/dist/lib/types/stream-types.js +1 -0
  121. package/dist/lib/types/universal-provider-options.d.ts +87 -0
  122. package/dist/lib/types/universal-provider-options.js +53 -0
  123. package/dist/lib/utils/providerUtils-fixed.js +1 -1
  124. package/dist/lib/utils/streaming-utils.d.ts +14 -2
  125. package/dist/lib/utils/streaming-utils.js +0 -3
  126. package/dist/mcp/client.js +5 -5
  127. package/dist/mcp/config.js +28 -3
  128. package/dist/mcp/dynamic-orchestrator.js +8 -8
  129. package/dist/mcp/external-client.js +2 -2
  130. package/dist/mcp/factory.d.ts +1 -1
  131. package/dist/mcp/factory.js +1 -1
  132. package/dist/mcp/function-calling.js +1 -1
  133. package/dist/mcp/initialize-tools.d.ts +1 -1
  134. package/dist/mcp/initialize-tools.js +45 -1
  135. package/dist/mcp/initialize.js +16 -6
  136. package/dist/mcp/neurolink-mcp-client.js +10 -10
  137. package/dist/mcp/orchestrator.js +4 -4
  138. package/dist/mcp/servers/agent/direct-tools-server.d.ts +8 -0
  139. package/dist/mcp/servers/agent/direct-tools-server.js +109 -0
  140. package/dist/mcp/servers/ai-providers/ai-analysis-tools.js +10 -10
  141. package/dist/mcp/servers/ai-providers/ai-core-server.js +8 -6
  142. package/dist/mcp/servers/ai-providers/ai-workflow-tools.d.ts +2 -2
  143. package/dist/mcp/servers/ai-providers/ai-workflow-tools.js +16 -16
  144. package/dist/mcp/unified-registry.d.ts +4 -0
  145. package/dist/mcp/unified-registry.js +42 -9
  146. package/dist/neurolink.d.ts +161 -174
  147. package/dist/neurolink.js +723 -397
  148. package/dist/providers/amazon-bedrock.d.ts +32 -0
  149. package/dist/providers/amazon-bedrock.js +143 -0
  150. package/dist/providers/analytics-helper.js +7 -4
  151. package/dist/providers/anthropic-baseprovider.d.ts +23 -0
  152. package/dist/providers/anthropic-baseprovider.js +114 -0
  153. package/dist/providers/anthropic.d.ts +19 -39
  154. package/dist/providers/anthropic.js +83 -377
  155. package/dist/providers/azure-openai.d.ts +20 -0
  156. package/dist/providers/azure-openai.js +89 -0
  157. package/dist/providers/function-calling-provider.d.ts +14 -12
  158. package/dist/providers/function-calling-provider.js +114 -64
  159. package/dist/providers/google-ai-studio.d.ts +23 -0
  160. package/dist/providers/google-ai-studio.js +108 -0
  161. package/dist/providers/google-vertex.d.ts +47 -0
  162. package/dist/providers/google-vertex.js +205 -0
  163. package/dist/providers/huggingFace.d.ts +33 -27
  164. package/dist/providers/huggingFace.js +102 -399
  165. package/dist/providers/index.d.ts +9 -9
  166. package/dist/providers/index.js +9 -9
  167. package/dist/providers/mcp-provider.d.ts +13 -8
  168. package/dist/providers/mcp-provider.js +63 -18
  169. package/dist/providers/mistral.d.ts +42 -0
  170. package/dist/providers/mistral.js +160 -0
  171. package/dist/providers/ollama.d.ts +52 -35
  172. package/dist/providers/ollama.js +297 -476
  173. package/dist/providers/openAI.d.ts +21 -21
  174. package/dist/providers/openAI.js +81 -246
  175. package/dist/sdk/tool-extension.d.ts +181 -0
  176. package/dist/sdk/tool-extension.js +283 -0
  177. package/dist/sdk/tool-registration.d.ts +95 -0
  178. package/dist/sdk/tool-registration.js +168 -0
  179. package/dist/types/generate-types.d.ts +80 -0
  180. package/dist/types/generate-types.js +1 -0
  181. package/dist/types/mcp-types.d.ts +116 -0
  182. package/dist/types/mcp-types.js +5 -0
  183. package/dist/types/stream-types.d.ts +95 -0
  184. package/dist/types/stream-types.js +1 -0
  185. package/dist/types/universal-provider-options.d.ts +87 -0
  186. package/dist/types/universal-provider-options.js +53 -0
  187. package/dist/utils/providerUtils-fixed.js +1 -1
  188. package/dist/utils/streaming-utils.d.ts +14 -2
  189. package/dist/utils/streaming-utils.js +0 -3
  190. package/package.json +15 -10
  191. package/dist/lib/providers/agent-enhanced-provider.d.ts +0 -89
  192. package/dist/lib/providers/agent-enhanced-provider.js +0 -614
  193. package/dist/lib/providers/amazonBedrock.d.ts +0 -19
  194. package/dist/lib/providers/amazonBedrock.js +0 -334
  195. package/dist/lib/providers/azureOpenAI.d.ts +0 -39
  196. package/dist/lib/providers/azureOpenAI.js +0 -436
  197. package/dist/lib/providers/googleAIStudio.d.ts +0 -49
  198. package/dist/lib/providers/googleAIStudio.js +0 -333
  199. package/dist/lib/providers/googleVertexAI.d.ts +0 -38
  200. package/dist/lib/providers/googleVertexAI.js +0 -519
  201. package/dist/lib/providers/mistralAI.d.ts +0 -34
  202. package/dist/lib/providers/mistralAI.js +0 -294
  203. package/dist/providers/agent-enhanced-provider.d.ts +0 -89
  204. package/dist/providers/agent-enhanced-provider.js +0 -614
  205. package/dist/providers/amazonBedrock.d.ts +0 -19
  206. package/dist/providers/amazonBedrock.js +0 -334
  207. package/dist/providers/azureOpenAI.d.ts +0 -39
  208. package/dist/providers/azureOpenAI.js +0 -437
  209. package/dist/providers/googleAIStudio.d.ts +0 -49
  210. package/dist/providers/googleAIStudio.js +0 -333
  211. package/dist/providers/googleVertexAI.d.ts +0 -38
  212. package/dist/providers/googleVertexAI.js +0 -519
  213. package/dist/providers/mistralAI.d.ts +0 -34
  214. package/dist/providers/mistralAI.js +0 -294
@@ -0,0 +1,116 @@
1
+ /**
2
+ * MCP Types for In-Memory Server Support
3
+ * Enables Lighthouse and other integrations to register tools directly
4
+ */
5
+ /**
6
+ * In-memory MCP server configuration
7
+ */
8
+ export interface InMemoryMCPServerConfig {
9
+ /**
10
+ * The actual server instance with tools
11
+ */
12
+ server: {
13
+ /**
14
+ * Server title for display
15
+ */
16
+ title?: string;
17
+ /**
18
+ * Map of tool name to tool implementation
19
+ */
20
+ tools: Map<string, InMemoryToolInfo> | Record<string, InMemoryToolInfo>;
21
+ /**
22
+ * Optional server description
23
+ */
24
+ description?: string;
25
+ };
26
+ /**
27
+ * Category for grouping tools
28
+ */
29
+ category?: string;
30
+ /**
31
+ * Metadata about the server
32
+ */
33
+ metadata?: {
34
+ provider?: string;
35
+ version?: string;
36
+ author?: string;
37
+ [key: string]: any;
38
+ };
39
+ }
40
+ /**
41
+ * In-memory tool information
42
+ */
43
+ export interface InMemoryToolInfo {
44
+ /**
45
+ * Tool description
46
+ */
47
+ description: string;
48
+ /**
49
+ * Tool execution function
50
+ */
51
+ execute: (params: any) => Promise<InMemoryToolResult> | InMemoryToolResult;
52
+ /**
53
+ * Input parameter schema (Zod or JSON Schema)
54
+ */
55
+ inputSchema?: any;
56
+ /**
57
+ * Whether the tool is implemented (default: true)
58
+ */
59
+ isImplemented?: boolean;
60
+ /**
61
+ * Optional metadata
62
+ */
63
+ metadata?: Record<string, any>;
64
+ }
65
+ /**
66
+ * Result from in-memory tool execution
67
+ */
68
+ export interface InMemoryToolResult {
69
+ /**
70
+ * Whether execution was successful
71
+ */
72
+ success: boolean;
73
+ /**
74
+ * Result data if successful
75
+ */
76
+ data?: any;
77
+ /**
78
+ * Error message if failed
79
+ */
80
+ error?: string;
81
+ /**
82
+ * Optional metadata about execution
83
+ */
84
+ metadata?: {
85
+ executionTime?: number;
86
+ toolName?: string;
87
+ serverId?: string;
88
+ [key: string]: any;
89
+ };
90
+ }
91
+ /**
92
+ * Unified MCP Registry interface
93
+ */
94
+ export interface UnifiedMCPRegistry {
95
+ /**
96
+ * Register an in-memory server
97
+ */
98
+ registerInMemoryServer(serverId: string, config: InMemoryMCPServerConfig): Promise<void>;
99
+ /**
100
+ * Get all available tools
101
+ */
102
+ getAllTools(): Promise<Array<{
103
+ name: string;
104
+ serverId: string;
105
+ description: string;
106
+ isExternal: boolean;
107
+ }>>;
108
+ /**
109
+ * Execute a tool
110
+ */
111
+ executeTool(toolName: string, params: any, context: any): Promise<any>;
112
+ /**
113
+ * Check if connected to a server
114
+ */
115
+ isConnected(serverId: string): boolean;
116
+ }
@@ -0,0 +1,5 @@
1
+ /**
2
+ * MCP Types for In-Memory Server Support
3
+ * Enables Lighthouse and other integrations to register tools directly
4
+ */
5
+ export {};
@@ -0,0 +1,95 @@
1
+ import type { ZodType, ZodTypeDef } from "zod";
2
+ import type { Tool, Schema } from "ai";
3
+ import type { AIProviderName, AnalyticsData, EvaluationData } from "../core/types.js";
4
+ /**
5
+ * Interface for tool execution calls
6
+ */
7
+ export interface ToolCall {
8
+ toolName: string;
9
+ parameters: Record<string, any>;
10
+ id?: string;
11
+ }
12
+ /**
13
+ * Interface for tool execution results
14
+ */
15
+ export interface ToolResult {
16
+ toolName: string;
17
+ status: "success" | "failure";
18
+ output?: any;
19
+ error?: string;
20
+ id?: string;
21
+ executionTime?: number;
22
+ }
23
+ /**
24
+ * Stream function options interface - Primary method for streaming content
25
+ * Future-ready for multi-modal capabilities while maintaining text focus
26
+ */
27
+ export interface StreamOptions {
28
+ input: {
29
+ text: string;
30
+ };
31
+ output?: {
32
+ format?: "text" | "structured" | "json";
33
+ streaming?: {
34
+ chunkSize?: number;
35
+ bufferSize?: number;
36
+ enableProgress?: boolean;
37
+ };
38
+ };
39
+ provider?: AIProviderName | string;
40
+ model?: string;
41
+ temperature?: number;
42
+ maxTokens?: number;
43
+ systemPrompt?: string;
44
+ schema?: ZodType<unknown, ZodTypeDef, unknown> | Schema<unknown>;
45
+ tools?: Record<string, Tool>;
46
+ timeout?: number | string;
47
+ disableTools?: boolean;
48
+ maxSteps?: number;
49
+ enableEvaluation?: boolean;
50
+ enableAnalytics?: boolean;
51
+ context?: Record<string, any>;
52
+ evaluationDomain?: string;
53
+ toolUsageContext?: string;
54
+ conversationHistory?: Array<{
55
+ role: string;
56
+ content: string;
57
+ }>;
58
+ }
59
+ /**
60
+ * Stream function result interface - Primary output format for streaming
61
+ * Future-ready for multi-modal outputs while maintaining text focus
62
+ */
63
+ export interface StreamResult {
64
+ stream: AsyncIterable<{
65
+ content: string;
66
+ }>;
67
+ provider?: string;
68
+ model?: string;
69
+ usage?: {
70
+ inputTokens?: number;
71
+ outputTokens?: number;
72
+ totalTokens?: number;
73
+ };
74
+ finishReason?: string;
75
+ toolCalls?: ToolCall[];
76
+ toolResults?: ToolResult[];
77
+ metadata?: {
78
+ streamId?: string;
79
+ startTime?: number;
80
+ totalChunks?: number;
81
+ estimatedDuration?: number;
82
+ responseTime?: number;
83
+ fallback?: boolean;
84
+ };
85
+ analytics?: AnalyticsData;
86
+ evaluation?: EvaluationData;
87
+ }
88
+ /**
89
+ * Enhanced provider interface with stream method
90
+ */
91
+ export interface EnhancedStreamProvider {
92
+ stream(options: StreamOptions): Promise<StreamResult>;
93
+ getName(): string;
94
+ isAvailable(): Promise<boolean>;
95
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,87 @@
1
+ /**
2
+ * Universal Provider Options Interface (Phase 1: Factory Pattern)
3
+ * Based on TypeScript factory pattern best practices for AI provider abstraction
4
+ */
5
+ /**
6
+ * Base configuration interface for all AI providers
7
+ * Uses Parameter Object Pattern for flexible, extensible configuration
8
+ */
9
+ export interface UniversalProviderOptions {
10
+ prompt?: string;
11
+ model?: string;
12
+ temperature?: number;
13
+ maxTokens?: number;
14
+ systemPrompt?: string;
15
+ enableAnalytics?: boolean;
16
+ enableEvaluation?: boolean;
17
+ context?: Record<string, unknown>;
18
+ metadata?: Record<string, unknown>;
19
+ extensionOptions?: Record<string, unknown>;
20
+ }
21
+ /**
22
+ * Generic provider options (without providerType)
23
+ */
24
+ export type GenericProviderOptions = Omit<UniversalProviderOptions, "providerType">;
25
+ /**
26
+ * Provider-specific configuration extensions
27
+ * Discriminated union pattern for type-safe provider configs
28
+ */
29
+ export interface OpenAIProviderOptions extends UniversalProviderOptions {
30
+ providerType: "openai";
31
+ organization?: string;
32
+ seed?: number;
33
+ topP?: number;
34
+ }
35
+ export interface GoogleAIProviderOptions extends UniversalProviderOptions {
36
+ providerType: "google-ai";
37
+ topK?: number;
38
+ candidateCount?: number;
39
+ stopSequences?: string[];
40
+ }
41
+ export interface AnthropicProviderOptions extends UniversalProviderOptions {
42
+ providerType: "anthropic";
43
+ topK?: number;
44
+ stopSequences?: string[];
45
+ }
46
+ export interface BedrockProviderOptions extends UniversalProviderOptions {
47
+ providerType: "bedrock";
48
+ inferenceProfileArn?: string;
49
+ region?: string;
50
+ }
51
+ /**
52
+ * Discriminated union for type-safe provider configuration
53
+ * Enables compile-time type checking for provider-specific options
54
+ */
55
+ export type ProviderSpecificOptions = OpenAIProviderOptions | GoogleAIProviderOptions | AnthropicProviderOptions | BedrockProviderOptions;
56
+ /**
57
+ * Factory configuration interface
58
+ * Supports both universal and provider-specific parameters
59
+ */
60
+ export interface ProviderFactoryConfig {
61
+ providerName: string;
62
+ modelName?: string;
63
+ options?: UniversalProviderOptions | ProviderSpecificOptions;
64
+ enableMCP?: boolean;
65
+ }
66
+ /**
67
+ * Parameter normalization utilities
68
+ * Converts between different parameter formats for backward compatibility
69
+ */
70
+ export declare class ParameterNormalizer {
71
+ /**
72
+ * Normalize legacy parameter formats to universal format
73
+ */
74
+ static normalizeToUniversal(optionsOrPrompt: UniversalProviderOptions | string): UniversalProviderOptions;
75
+ /**
76
+ * Retrieve the provider type if it exists, otherwise return null
77
+ */
78
+ private static getProviderType;
79
+ /**
80
+ * Extract provider-specific parameters safely
81
+ */
82
+ static extractProviderOptions<T extends ProviderSpecificOptions>(options: UniversalProviderOptions | ProviderSpecificOptions, providerType: T["providerType"]): T | GenericProviderOptions;
83
+ /**
84
+ * Merge default values with user-provided options
85
+ */
86
+ static mergeWithDefaults(options: UniversalProviderOptions, defaults: Partial<UniversalProviderOptions>): UniversalProviderOptions;
87
+ }
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Universal Provider Options Interface (Phase 1: Factory Pattern)
3
+ * Based on TypeScript factory pattern best practices for AI provider abstraction
4
+ */
5
+ /**
6
+ * Parameter normalization utilities
7
+ * Converts between different parameter formats for backward compatibility
8
+ */
9
+ export class ParameterNormalizer {
10
+ /**
11
+ * Normalize legacy parameter formats to universal format
12
+ */
13
+ static normalizeToUniversal(optionsOrPrompt) {
14
+ if (typeof optionsOrPrompt === "string") {
15
+ return { prompt: optionsOrPrompt };
16
+ }
17
+ return optionsOrPrompt;
18
+ }
19
+ /**
20
+ * Retrieve the provider type if it exists, otherwise return null
21
+ */
22
+ static getProviderType(options) {
23
+ return "providerType" in options ? options.providerType : null;
24
+ }
25
+ /**
26
+ * Extract provider-specific parameters safely
27
+ */
28
+ static extractProviderOptions(options, providerType) {
29
+ const currentProviderType = ParameterNormalizer.getProviderType(options);
30
+ if (currentProviderType === providerType) {
31
+ return options;
32
+ }
33
+ // Handle case where options has providerType but doesn't match
34
+ if (currentProviderType !== null) {
35
+ const { providerType: _providerType, ...genericOptions } = options;
36
+ return genericOptions;
37
+ }
38
+ // Options don't have providerType, return as generic
39
+ return options;
40
+ }
41
+ /**
42
+ * Merge default values with user-provided options
43
+ */
44
+ static mergeWithDefaults(options, defaults) {
45
+ return {
46
+ ...defaults,
47
+ ...options,
48
+ // Merge nested objects
49
+ context: { ...defaults.context, ...options.context },
50
+ metadata: { ...defaults.metadata, ...options.metadata },
51
+ };
52
+ }
53
+ }
@@ -85,7 +85,7 @@ async function isProviderAvailable(providerName) {
85
85
  }
86
86
  try {
87
87
  const provider = await AIProviderFactory.createProvider(providerName);
88
- await provider.generateText({ prompt: "test", maxTokens: 1 });
88
+ await provider.generate({ prompt: "test", maxTokens: 1 });
89
89
  return true;
90
90
  }
91
91
  catch (error) {
@@ -2,7 +2,7 @@
2
2
  * Phase 2: Enhanced Streaming Infrastructure
3
3
  * Streaming utilities for progress tracking and metadata enhancement
4
4
  */
5
- import type { StreamingProgressData, StreamingMetadata, ProgressCallback, EnhancedStreamTextOptions } from "../core/types.js";
5
+ import type { StreamingProgressData, StreamingMetadata, ProgressCallback } from "../core/types.js";
6
6
  export interface UIProgressHandler {
7
7
  onProgress: (progress: StreamingProgressData) => void;
8
8
  onComplete: (metadata: StreamingMetadata) => void;
@@ -19,6 +19,18 @@ export interface StreamingStats {
19
19
  /**
20
20
  * Enhanced streaming utilities for progress tracking and metadata
21
21
  */
22
+ export interface StreamingConfigOptions {
23
+ enableProgressTracking?: boolean;
24
+ progressCallback?: ProgressCallback;
25
+ includeStreamingMetadata?: boolean;
26
+ streamingBufferSize?: number;
27
+ enableStreamingHeaders?: boolean;
28
+ }
29
+ /**
30
+ * Legacy interface for backward compatibility
31
+ */
32
+ export interface EnhancedStreamTextOptions extends StreamingConfigOptions {
33
+ }
22
34
  export declare class StreamingEnhancer {
23
35
  /**
24
36
  * Add progress tracking to a readable stream
@@ -42,7 +54,7 @@ export declare class StreamingEnhancer {
42
54
  /**
43
55
  * Create enhanced streaming configuration
44
56
  */
45
- static createStreamingConfig(options: EnhancedStreamTextOptions): {
57
+ static createStreamingConfig(options: StreamingConfigOptions | EnhancedStreamTextOptions): {
46
58
  progressTracking: boolean;
47
59
  callback?: ProgressCallback;
48
60
  metadata: boolean;
@@ -2,9 +2,6 @@
2
2
  * Phase 2: Enhanced Streaming Infrastructure
3
3
  * Streaming utilities for progress tracking and metadata enhancement
4
4
  */
5
- /**
6
- * Enhanced streaming utilities for progress tracking and metadata
7
- */
8
5
  export class StreamingEnhancer {
9
6
  /**
10
7
  * Add progress tracking to a readable stream
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@juspay/neurolink",
3
- "version": "5.0.0",
3
+ "version": "5.2.0",
4
4
  "description": "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 deploy AI applications with 9 major providers: OpenAI, Anthropic, Google AI, AWS Bedrock, Azure, Hugging Face, Ollama, and Mistral AI.",
5
5
  "author": {
6
6
  "name": "Juspay Technologies",
@@ -124,10 +124,13 @@
124
124
  "dependencies": {
125
125
  "@ai-sdk/amazon-bedrock": "^1.0.0",
126
126
  "@ai-sdk/anthropic": "^1.2.12",
127
+ "@ai-sdk/azure": "^1.3.24",
127
128
  "@ai-sdk/google": "^1.2.19",
128
129
  "@ai-sdk/google-vertex": "^2.2.0",
129
130
  "@ai-sdk/mistral": "^1.0.0",
130
131
  "@ai-sdk/openai": "^1.0.0",
132
+ "@ai-sdk/provider": "^1.1.3",
133
+ "@ai-sdk/provider-utils": "^2.2.8",
131
134
  "@google/generative-ai": "^0.24.1",
132
135
  "@huggingface/inference": "^2.8.0",
133
136
  "@modelcontextprotocol/sdk": "^1.13.0",
@@ -145,25 +148,26 @@
145
148
  "@opentelemetry/sdk-metrics": "^1.30.1",
146
149
  "@opentelemetry/sdk-node": "^0.54.2",
147
150
  "@opentelemetry/semantic-conventions": "^1.34.0",
148
- "@types/ws": "^8.18.1",
149
151
  "ai": "^4.0.0",
150
- "chalk": "^5.3.0",
151
- "cors": "^2.8.5",
152
152
  "dotenv": "^16.5.0",
153
- "express": "^5.1.0",
154
- "inquirer": "^9.2.15",
155
- "ora": "^7.0.1",
156
- "playwright": "^1.52.0",
153
+ "ollama-ai-provider": "^1.2.0",
157
154
  "reconnecting-eventsource": "^1.6.4",
158
155
  "undici": "^6.6.2",
159
156
  "uuid": "^11.1.0",
160
157
  "ws": "^8.18.3",
161
- "yargs": "^17.7.2",
162
158
  "zod": "^3.22.0",
163
- "zod-to-json-schema": "^3.24.5"
159
+ "zod-to-json-schema": "^3.24.5",
160
+ "chalk": "^5.3.0",
161
+ "inquirer": "^9.2.15",
162
+ "ora": "^7.0.1",
163
+ "yargs": "^17.7.2"
164
164
  },
165
165
  "devDependencies": {
166
166
  "@changesets/cli": "^2.26.2",
167
+ "@types/ws": "^8.18.1",
168
+ "@vitest/coverage-v8": "^2.1.9",
169
+ "cors": "^2.8.5",
170
+ "express": "^5.1.0",
167
171
  "@eslint/js": "^9.0.0",
168
172
  "@semantic-release/changelog": "^6.0.3",
169
173
  "@semantic-release/commit-analyzer": "^13.0.0",
@@ -183,6 +187,7 @@
183
187
  "@typescript-eslint/eslint-plugin": "^8.0.0",
184
188
  "@typescript-eslint/parser": "^8.0.0",
185
189
  "eslint": "^9.0.0",
190
+ "playwright": "^1.52.0",
186
191
  "prettier": "^3.0.0",
187
192
  "publint": "^0.3.2",
188
193
  "puppeteer": "^24.10.0",
@@ -1,89 +0,0 @@
1
- /**
2
- * Agent-Enhanced Provider for NeuroLink CLI
3
- * Integrates direct tools with AI providers for true agent functionality
4
- */
5
- import { type GenerateTextResult, type StreamTextResult, type ToolSet } from "ai";
6
- import type { AIProvider, TextGenerationOptions, EnhancedGenerateTextResult, EnhancedStreamTextOptions } from "../core/types.js";
7
- /**
8
- * Agent configuration options
9
- */
10
- interface AgentConfig {
11
- provider: "openai" | "google-ai" | "anthropic";
12
- model?: string;
13
- toolCategory?: "basic" | "filesystem" | "utility" | "all";
14
- maxSteps?: number;
15
- enableTools?: boolean;
16
- enableMCP?: boolean;
17
- mcpInitTimeoutMs?: number;
18
- toolExecutionTimeout?: number | string;
19
- mcpDiscoveryOptions?: {
20
- searchPaths?: string[];
21
- configFiles?: string[];
22
- autoDiscover?: boolean;
23
- };
24
- }
25
- /**
26
- * Agent-Enhanced Provider Class
27
- * Provides AI generation with tool calling capabilities
28
- * Now includes MCP tool integration alongside direct tools
29
- */
30
- export declare class AgentEnhancedProvider implements AIProvider {
31
- private config;
32
- private model;
33
- private resolvedModelName;
34
- private mcpSystem;
35
- private mcpInitialized;
36
- private mcpInitializing;
37
- private mcpInitFailed;
38
- constructor(config: AgentConfig);
39
- private createModel;
40
- /**
41
- * Initialize MCP registry with auto-discovery
42
- */
43
- private initializeMCP;
44
- /**
45
- * Get combined tools: direct tools + MCP tools
46
- */
47
- private getCombinedTools;
48
- generateText(optionsOrPrompt: TextGenerationOptions | string): Promise<GenerateTextResult<ToolSet, unknown> | null>;
49
- streamText(optionsOrPrompt: EnhancedStreamTextOptions | string): Promise<StreamTextResult<ToolSet, unknown> | null>;
50
- /**
51
- * Determine if we should force tool usage based on prompt patterns
52
- */
53
- private shouldForceToolUsage;
54
- getCapabilities(): string[];
55
- getProviderName(): string;
56
- getModelName(): string;
57
- /**
58
- * Test agent functionality
59
- */
60
- testAgentCapabilities(): Promise<{
61
- success: boolean;
62
- results: any[];
63
- }>;
64
- /**
65
- * Create agent-enhanced provider factory
66
- */
67
- static createAgent(config: AgentConfig): AgentEnhancedProvider;
68
- /**
69
- * Create multiple agent providers for comparison
70
- */
71
- static createMultiProviderAgents(): Record<string, AgentEnhancedProvider>;
72
- /**
73
- * Alias for generateText() - CLI-SDK consistency
74
- */
75
- generate(optionsOrPrompt: TextGenerationOptions | string, analysisSchema?: any): Promise<EnhancedGenerateTextResult | null>;
76
- /**
77
- * Short alias for generateText() - CLI-SDK consistency
78
- */
79
- gen(optionsOrPrompt: TextGenerationOptions | string, analysisSchema?: any): Promise<EnhancedGenerateTextResult | null>;
80
- }
81
- /**
82
- * Helper function to create agent provider
83
- */
84
- export declare function createAgentProvider(provider: "openai" | "google-ai" | "anthropic", options?: Partial<AgentConfig>): AgentEnhancedProvider;
85
- /**
86
- * Test all available agent providers
87
- */
88
- export declare function testAllAgentProviders(): Promise<void>;
89
- export {};