@juspay/neurolink 6.1.0 → 6.2.1

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 (303) hide show
  1. package/CHANGELOG.md +16 -6
  2. package/dist/agent/direct-tools.js +6 -5
  3. package/dist/cli/commands/config.d.ts +13 -13
  4. package/dist/cli/index.js +3 -9
  5. package/dist/config/configManager.js +11 -10
  6. package/dist/core/analytics.d.ts +11 -1
  7. package/dist/core/analytics.js +2 -2
  8. package/dist/core/base-provider.js +4 -18
  9. package/dist/core/dynamic-models.d.ts +8 -8
  10. package/dist/core/factory.js +3 -11
  11. package/dist/index.d.ts +2 -4
  12. package/dist/index.js +2 -11
  13. package/dist/lib/agent/direct-tools.js +6 -5
  14. package/dist/lib/config/configManager.js +11 -10
  15. package/dist/lib/core/analytics.d.ts +11 -1
  16. package/dist/lib/core/analytics.js +2 -2
  17. package/dist/lib/core/base-provider.js +4 -18
  18. package/dist/lib/core/dynamic-models.d.ts +8 -8
  19. package/dist/lib/core/factory.js +3 -11
  20. package/dist/lib/index.d.ts +2 -4
  21. package/dist/lib/index.js +2 -11
  22. package/dist/lib/mcp/factory.d.ts +1 -1
  23. package/dist/lib/mcp/index.d.ts +9 -21
  24. package/dist/lib/mcp/index.js +16 -57
  25. package/dist/lib/mcp/registry.js +1 -1
  26. package/dist/lib/mcp/servers/ai-providers/ai-analysis-tools.js +2 -1
  27. package/dist/lib/mcp/tool-registry.js +1 -1
  28. package/dist/lib/neurolink.d.ts +1 -9
  29. package/dist/lib/neurolink.js +22 -71
  30. package/dist/lib/providers/amazon-bedrock.js +5 -16
  31. package/dist/lib/providers/anthropic-baseprovider.js +3 -21
  32. package/dist/lib/providers/anthropic.js +4 -7
  33. package/dist/lib/providers/azure-openai.js +6 -3
  34. package/dist/lib/providers/google-vertex.js +5 -9
  35. package/dist/lib/providers/huggingFace.js +5 -10
  36. package/dist/lib/providers/mistral.js +5 -8
  37. package/dist/lib/providers/openAI.js +4 -7
  38. package/dist/lib/telemetry/index.js +2 -1
  39. package/dist/lib/utils/logger.d.ts +62 -2
  40. package/dist/lib/utils/logger.js +174 -9
  41. package/dist/lib/utils/providerConfig.d.ts +117 -0
  42. package/dist/lib/utils/providerConfig.js +353 -0
  43. package/dist/lib/utils/providerUtils.d.ts +2 -1
  44. package/dist/lib/utils/providerUtils.js +53 -36
  45. package/dist/lib/utils/timeout.d.ts +72 -1
  46. package/dist/lib/utils/timeout.js +203 -2
  47. package/dist/mcp/factory.d.ts +1 -1
  48. package/dist/mcp/index.d.ts +9 -21
  49. package/dist/mcp/index.js +16 -57
  50. package/dist/mcp/registry.js +1 -1
  51. package/dist/mcp/servers/ai-providers/ai-analysis-tools.js +2 -1
  52. package/dist/mcp/tool-registry.js +1 -1
  53. package/dist/neurolink.d.ts +1 -9
  54. package/dist/neurolink.js +22 -71
  55. package/dist/providers/amazon-bedrock.js +5 -16
  56. package/dist/providers/anthropic-baseprovider.js +3 -21
  57. package/dist/providers/anthropic.js +4 -7
  58. package/dist/providers/azure-openai.js +6 -3
  59. package/dist/providers/google-vertex.js +5 -9
  60. package/dist/providers/huggingFace.js +5 -10
  61. package/dist/providers/mistral.js +5 -8
  62. package/dist/providers/openAI.js +4 -7
  63. package/dist/telemetry/index.js +2 -1
  64. package/dist/utils/logger.d.ts +62 -2
  65. package/dist/utils/logger.js +174 -9
  66. package/dist/utils/providerConfig.d.ts +117 -0
  67. package/dist/utils/providerConfig.js +353 -0
  68. package/dist/utils/providerUtils.d.ts +2 -1
  69. package/dist/utils/providerUtils.js +53 -36
  70. package/dist/utils/timeout.d.ts +72 -1
  71. package/dist/utils/timeout.js +203 -2
  72. package/package.json +1 -1
  73. package/dist/chat/client-utils.d.ts +0 -95
  74. package/dist/chat/client-utils.js +0 -315
  75. package/dist/chat/index.d.ts +0 -24
  76. package/dist/chat/index.js +0 -33
  77. package/dist/chat/session-storage.d.ts +0 -77
  78. package/dist/chat/session-storage.js +0 -233
  79. package/dist/chat/session.d.ts +0 -96
  80. package/dist/chat/session.js +0 -257
  81. package/dist/chat/sse-handler.d.ts +0 -49
  82. package/dist/chat/sse-handler.js +0 -259
  83. package/dist/chat/types.d.ts +0 -74
  84. package/dist/chat/types.js +0 -5
  85. package/dist/chat/websocket-chat-handler.d.ts +0 -37
  86. package/dist/chat/websocket-chat-handler.js +0 -262
  87. package/dist/cli/commands/mcp.d.ts +0 -20
  88. package/dist/cli/commands/mcp.js +0 -1272
  89. package/dist/core/defaults.d.ts +0 -19
  90. package/dist/core/defaults.js +0 -29
  91. package/dist/core/evaluation-config.d.ts +0 -29
  92. package/dist/core/evaluation-config.js +0 -144
  93. package/dist/factories/compatibility-factory.d.ts +0 -35
  94. package/dist/factories/compatibility-factory.js +0 -71
  95. package/dist/factories/provider-generate-factory.d.ts +0 -20
  96. package/dist/factories/provider-generate-factory.js +0 -93
  97. package/dist/lib/chat/client-utils.d.ts +0 -95
  98. package/dist/lib/chat/client-utils.js +0 -315
  99. package/dist/lib/chat/index.d.ts +0 -24
  100. package/dist/lib/chat/index.js +0 -33
  101. package/dist/lib/chat/session-storage.d.ts +0 -77
  102. package/dist/lib/chat/session-storage.js +0 -233
  103. package/dist/lib/chat/session.d.ts +0 -96
  104. package/dist/lib/chat/session.js +0 -257
  105. package/dist/lib/chat/sse-handler.d.ts +0 -49
  106. package/dist/lib/chat/sse-handler.js +0 -259
  107. package/dist/lib/chat/types.d.ts +0 -74
  108. package/dist/lib/chat/types.js +0 -5
  109. package/dist/lib/chat/websocket-chat-handler.d.ts +0 -37
  110. package/dist/lib/chat/websocket-chat-handler.js +0 -262
  111. package/dist/lib/core/defaults.d.ts +0 -19
  112. package/dist/lib/core/defaults.js +0 -29
  113. package/dist/lib/core/evaluation-config.d.ts +0 -29
  114. package/dist/lib/core/evaluation-config.js +0 -144
  115. package/dist/lib/factories/compatibility-factory.d.ts +0 -35
  116. package/dist/lib/factories/compatibility-factory.js +0 -71
  117. package/dist/lib/factories/provider-generate-factory.d.ts +0 -20
  118. package/dist/lib/factories/provider-generate-factory.js +0 -93
  119. package/dist/lib/mcp/adapters/plugin-bridge.d.ts +0 -40
  120. package/dist/lib/mcp/adapters/plugin-bridge.js +0 -89
  121. package/dist/lib/mcp/auto-discovery.d.ts +0 -62
  122. package/dist/lib/mcp/auto-discovery.js +0 -149
  123. package/dist/lib/mcp/client.d.ts +0 -68
  124. package/dist/lib/mcp/client.js +0 -248
  125. package/dist/lib/mcp/config.d.ts +0 -31
  126. package/dist/lib/mcp/config.js +0 -99
  127. package/dist/lib/mcp/context-manager.d.ts +0 -171
  128. package/dist/lib/mcp/context-manager.js +0 -362
  129. package/dist/lib/mcp/contracts/mcp-contract.d.ts +0 -169
  130. package/dist/lib/mcp/contracts/mcp-contract.js +0 -58
  131. package/dist/lib/mcp/core/plugin-manager.d.ts +0 -46
  132. package/dist/lib/mcp/core/plugin-manager.js +0 -110
  133. package/dist/lib/mcp/demo/plugin-demo.d.ts +0 -20
  134. package/dist/lib/mcp/demo/plugin-demo.js +0 -118
  135. package/dist/lib/mcp/dynamic-chain-executor.d.ts +0 -225
  136. package/dist/lib/mcp/dynamic-chain-executor.js +0 -489
  137. package/dist/lib/mcp/dynamic-orchestrator.d.ts +0 -115
  138. package/dist/lib/mcp/dynamic-orchestrator.js +0 -351
  139. package/dist/lib/mcp/ecosystem.d.ts +0 -75
  140. package/dist/lib/mcp/ecosystem.js +0 -161
  141. package/dist/lib/mcp/error-manager.d.ts +0 -254
  142. package/dist/lib/mcp/error-manager.js +0 -501
  143. package/dist/lib/mcp/error-recovery.d.ts +0 -159
  144. package/dist/lib/mcp/error-recovery.js +0 -405
  145. package/dist/lib/mcp/external-client.d.ts +0 -88
  146. package/dist/lib/mcp/external-client.js +0 -331
  147. package/dist/lib/mcp/external-manager.d.ts +0 -112
  148. package/dist/lib/mcp/external-manager.js +0 -308
  149. package/dist/lib/mcp/function-calling.d.ts +0 -65
  150. package/dist/lib/mcp/function-calling.js +0 -642
  151. package/dist/lib/mcp/health-monitor.d.ts +0 -257
  152. package/dist/lib/mcp/health-monitor.js +0 -630
  153. package/dist/lib/mcp/initialize-tools.d.ts +0 -29
  154. package/dist/lib/mcp/initialize-tools.js +0 -261
  155. package/dist/lib/mcp/initialize.d.ts +0 -18
  156. package/dist/lib/mcp/initialize.js +0 -62
  157. package/dist/lib/mcp/logging.d.ts +0 -38
  158. package/dist/lib/mcp/logging.js +0 -100
  159. package/dist/lib/mcp/manager.d.ts +0 -68
  160. package/dist/lib/mcp/manager.js +0 -176
  161. package/dist/lib/mcp/neurolink-mcp-client.d.ts +0 -97
  162. package/dist/lib/mcp/neurolink-mcp-client.js +0 -462
  163. package/dist/lib/mcp/orchestrator.d.ts +0 -302
  164. package/dist/lib/mcp/orchestrator.js +0 -703
  165. package/dist/lib/mcp/plugin-manager.d.ts +0 -98
  166. package/dist/lib/mcp/plugin-manager.js +0 -296
  167. package/dist/lib/mcp/plugins/core/filesystem-mcp.d.ts +0 -36
  168. package/dist/lib/mcp/plugins/core/filesystem-mcp.js +0 -142
  169. package/dist/lib/mcp/plugins/filesystem-mcp.d.ts +0 -37
  170. package/dist/lib/mcp/plugins/filesystem-mcp.js +0 -54
  171. package/dist/lib/mcp/security-manager.d.ts +0 -87
  172. package/dist/lib/mcp/security-manager.js +0 -344
  173. package/dist/lib/mcp/semaphore-manager.d.ts +0 -137
  174. package/dist/lib/mcp/semaphore-manager.js +0 -329
  175. package/dist/lib/mcp/session-manager.d.ts +0 -187
  176. package/dist/lib/mcp/session-manager.js +0 -400
  177. package/dist/lib/mcp/session-persistence.d.ts +0 -93
  178. package/dist/lib/mcp/session-persistence.js +0 -301
  179. package/dist/lib/mcp/tool-integration.d.ts +0 -58
  180. package/dist/lib/mcp/tool-integration.js +0 -203
  181. package/dist/lib/mcp/transport-manager.d.ts +0 -154
  182. package/dist/lib/mcp/transport-manager.js +0 -334
  183. package/dist/lib/mcp/unified-mcp.d.ts +0 -133
  184. package/dist/lib/mcp/unified-mcp.js +0 -251
  185. package/dist/lib/mcp/unified-registry.d.ts +0 -165
  186. package/dist/lib/mcp/unified-registry.js +0 -538
  187. package/dist/lib/providers/analytics-helper.d.ts +0 -38
  188. package/dist/lib/providers/analytics-helper.js +0 -216
  189. package/dist/lib/providers/function-calling-provider.d.ts +0 -142
  190. package/dist/lib/providers/function-calling-provider.js +0 -630
  191. package/dist/lib/providers/mcp-provider.d.ts +0 -75
  192. package/dist/lib/providers/mcp-provider.js +0 -283
  193. package/dist/lib/providers/timeout-wrapper.d.ts +0 -40
  194. package/dist/lib/providers/timeout-wrapper.js +0 -100
  195. package/dist/lib/sdk/tool-extension.d.ts +0 -181
  196. package/dist/lib/sdk/tool-extension.js +0 -284
  197. package/dist/lib/services/streaming/streaming-manager.d.ts +0 -29
  198. package/dist/lib/services/streaming/streaming-manager.js +0 -245
  199. package/dist/lib/services/types.d.ts +0 -156
  200. package/dist/lib/services/types.js +0 -2
  201. package/dist/lib/services/websocket/websocket-server.d.ts +0 -34
  202. package/dist/lib/services/websocket/websocket-server.js +0 -305
  203. package/dist/lib/utils/provider-validation.d.ts +0 -36
  204. package/dist/lib/utils/provider-validation.js +0 -625
  205. package/dist/lib/utils/providerUtils-fixed.d.ts +0 -8
  206. package/dist/lib/utils/providerUtils-fixed.js +0 -94
  207. package/dist/lib/utils/streaming-utils.d.ts +0 -79
  208. package/dist/lib/utils/streaming-utils.js +0 -198
  209. package/dist/lib/utils/timeout-manager.d.ts +0 -75
  210. package/dist/lib/utils/timeout-manager.js +0 -244
  211. package/dist/mcp/adapters/plugin-bridge.d.ts +0 -40
  212. package/dist/mcp/adapters/plugin-bridge.js +0 -89
  213. package/dist/mcp/auto-discovery.d.ts +0 -62
  214. package/dist/mcp/auto-discovery.js +0 -149
  215. package/dist/mcp/client.d.ts +0 -68
  216. package/dist/mcp/client.js +0 -248
  217. package/dist/mcp/config.d.ts +0 -31
  218. package/dist/mcp/config.js +0 -99
  219. package/dist/mcp/context-manager.d.ts +0 -171
  220. package/dist/mcp/context-manager.js +0 -362
  221. package/dist/mcp/contracts/mcp-contract.d.ts +0 -169
  222. package/dist/mcp/contracts/mcp-contract.js +0 -58
  223. package/dist/mcp/core/plugin-manager.d.ts +0 -46
  224. package/dist/mcp/core/plugin-manager.js +0 -110
  225. package/dist/mcp/demo/plugin-demo.d.ts +0 -20
  226. package/dist/mcp/demo/plugin-demo.js +0 -118
  227. package/dist/mcp/dynamic-chain-executor.d.ts +0 -225
  228. package/dist/mcp/dynamic-chain-executor.js +0 -489
  229. package/dist/mcp/dynamic-orchestrator.d.ts +0 -115
  230. package/dist/mcp/dynamic-orchestrator.js +0 -351
  231. package/dist/mcp/ecosystem.d.ts +0 -75
  232. package/dist/mcp/ecosystem.js +0 -162
  233. package/dist/mcp/error-manager.d.ts +0 -254
  234. package/dist/mcp/error-manager.js +0 -501
  235. package/dist/mcp/error-recovery.d.ts +0 -159
  236. package/dist/mcp/error-recovery.js +0 -405
  237. package/dist/mcp/external-client.d.ts +0 -88
  238. package/dist/mcp/external-client.js +0 -331
  239. package/dist/mcp/external-manager.d.ts +0 -112
  240. package/dist/mcp/external-manager.js +0 -308
  241. package/dist/mcp/function-calling.d.ts +0 -65
  242. package/dist/mcp/function-calling.js +0 -642
  243. package/dist/mcp/health-monitor.d.ts +0 -257
  244. package/dist/mcp/health-monitor.js +0 -630
  245. package/dist/mcp/initialize-tools.d.ts +0 -29
  246. package/dist/mcp/initialize-tools.js +0 -262
  247. package/dist/mcp/initialize.d.ts +0 -18
  248. package/dist/mcp/initialize.js +0 -62
  249. package/dist/mcp/logging.d.ts +0 -38
  250. package/dist/mcp/logging.js +0 -100
  251. package/dist/mcp/manager.d.ts +0 -68
  252. package/dist/mcp/manager.js +0 -176
  253. package/dist/mcp/neurolink-mcp-client.d.ts +0 -97
  254. package/dist/mcp/neurolink-mcp-client.js +0 -462
  255. package/dist/mcp/orchestrator.d.ts +0 -302
  256. package/dist/mcp/orchestrator.js +0 -703
  257. package/dist/mcp/plugin-manager.d.ts +0 -98
  258. package/dist/mcp/plugin-manager.js +0 -297
  259. package/dist/mcp/plugins/core/filesystem-mcp.d.ts +0 -36
  260. package/dist/mcp/plugins/core/filesystem-mcp.js +0 -142
  261. package/dist/mcp/plugins/core/neurolink-mcp.json +0 -17
  262. package/dist/mcp/plugins/filesystem-mcp.d.ts +0 -37
  263. package/dist/mcp/plugins/filesystem-mcp.js +0 -54
  264. package/dist/mcp/security-manager.d.ts +0 -87
  265. package/dist/mcp/security-manager.js +0 -344
  266. package/dist/mcp/semaphore-manager.d.ts +0 -137
  267. package/dist/mcp/semaphore-manager.js +0 -329
  268. package/dist/mcp/session-manager.d.ts +0 -187
  269. package/dist/mcp/session-manager.js +0 -400
  270. package/dist/mcp/session-persistence.d.ts +0 -93
  271. package/dist/mcp/session-persistence.js +0 -302
  272. package/dist/mcp/tool-integration.d.ts +0 -58
  273. package/dist/mcp/tool-integration.js +0 -203
  274. package/dist/mcp/transport-manager.d.ts +0 -154
  275. package/dist/mcp/transport-manager.js +0 -335
  276. package/dist/mcp/unified-mcp.d.ts +0 -133
  277. package/dist/mcp/unified-mcp.js +0 -251
  278. package/dist/mcp/unified-registry.d.ts +0 -165
  279. package/dist/mcp/unified-registry.js +0 -539
  280. package/dist/providers/analytics-helper.d.ts +0 -38
  281. package/dist/providers/analytics-helper.js +0 -216
  282. package/dist/providers/function-calling-provider.d.ts +0 -142
  283. package/dist/providers/function-calling-provider.js +0 -630
  284. package/dist/providers/mcp-provider.d.ts +0 -75
  285. package/dist/providers/mcp-provider.js +0 -283
  286. package/dist/providers/timeout-wrapper.d.ts +0 -40
  287. package/dist/providers/timeout-wrapper.js +0 -100
  288. package/dist/sdk/tool-extension.d.ts +0 -181
  289. package/dist/sdk/tool-extension.js +0 -284
  290. package/dist/services/streaming/streaming-manager.d.ts +0 -29
  291. package/dist/services/streaming/streaming-manager.js +0 -245
  292. package/dist/services/types.d.ts +0 -156
  293. package/dist/services/types.js +0 -2
  294. package/dist/services/websocket/websocket-server.d.ts +0 -34
  295. package/dist/services/websocket/websocket-server.js +0 -306
  296. package/dist/utils/provider-validation.d.ts +0 -36
  297. package/dist/utils/provider-validation.js +0 -625
  298. package/dist/utils/providerUtils-fixed.d.ts +0 -8
  299. package/dist/utils/providerUtils-fixed.js +0 -94
  300. package/dist/utils/streaming-utils.d.ts +0 -79
  301. package/dist/utils/streaming-utils.js +0 -198
  302. package/dist/utils/timeout-manager.d.ts +0 -75
  303. package/dist/utils/timeout-manager.js +0 -244
@@ -1,74 +0,0 @@
1
- /**
2
- * Phase 3: SSE Chat Utilities
3
- * Type definitions for chat infrastructure
4
- */
5
- import type { JsonValue } from "../types/common.js";
6
- export interface ChatMessage {
7
- id: string;
8
- role: "user" | "assistant" | "system";
9
- content: string;
10
- timestamp: number;
11
- metadata?: {
12
- provider?: string;
13
- model?: string;
14
- tokens?: number;
15
- duration?: number;
16
- };
17
- }
18
- export interface ChatRequest {
19
- sessionId: string;
20
- message: string;
21
- role?: "user";
22
- options?: {
23
- temperature?: number;
24
- maxTokens?: number;
25
- systemPrompt?: string;
26
- streamResponse?: boolean;
27
- };
28
- }
29
- export interface SSEOptions {
30
- maxConnections?: number;
31
- heartbeatInterval?: number;
32
- connectionTimeout?: number;
33
- enableCors?: boolean;
34
- corsOrigins?: string[];
35
- }
36
- export interface SessionOptions {
37
- maxHistory?: number;
38
- persistenceAdapter?: "memory" | "redis" | "file";
39
- contextWindowSize?: number;
40
- autoSave?: boolean;
41
- ttl?: number;
42
- }
43
- export interface SSEEvent {
44
- type: "data" | "error" | "progress" | "complete" | "heartbeat";
45
- data: JsonValue;
46
- id?: string;
47
- retry?: number;
48
- }
49
- export interface ChatSessionState {
50
- id: string;
51
- messages: ChatMessage[];
52
- createdAt: number;
53
- lastActivity: number;
54
- metadata?: Record<string, JsonValue>;
55
- }
56
- export interface StreamingChatResponse {
57
- sessionId: string;
58
- messageId: string;
59
- stream: ReadableStream;
60
- response: Response;
61
- }
62
- export interface SessionStorage {
63
- get(sessionId: string): Promise<ChatSessionState | null>;
64
- set(sessionId: string, state: ChatSessionState): Promise<void>;
65
- delete(sessionId: string): Promise<void>;
66
- list(): Promise<string[]>;
67
- cleanup(maxAge: number): Promise<number>;
68
- }
69
- export interface ContextManager {
70
- addMessage(sessionId: string, message: ChatMessage): Promise<void>;
71
- getHistory(sessionId: string, limit?: number): Promise<ChatMessage[]>;
72
- trimContext(sessionId: string, maxTokens: number): Promise<number>;
73
- estimateTokens(messages: ChatMessage[]): number;
74
- }
@@ -1,5 +0,0 @@
1
- /**
2
- * Phase 3: SSE Chat Utilities
3
- * Type definitions for chat infrastructure
4
- */
5
- export {};
@@ -1,37 +0,0 @@
1
- import { SSEChatHandler } from "./sse-handler.js";
2
- import type { AIProvider } from "../core/types.js";
3
- import type { WebSocketOptions, GroupChatRequest, StreamingChatRequest } from "../services/types.js";
4
- import type { SSEOptions, ChatRequest } from "./types.js";
5
- import type { UnknownRecord } from "../types/common.js";
6
- export interface WebSocketChatOptions {
7
- sseOptions?: UnknownRecord;
8
- wsOptions?: WebSocketOptions;
9
- enableTypingIndicators?: boolean;
10
- enablePresenceTracking?: boolean;
11
- enableMessageSync?: boolean;
12
- }
13
- export declare class WebSocketChatHandler extends SSEChatHandler {
14
- private wsServer;
15
- private streamingManager;
16
- protected options: WebSocketChatOptions & Required<SSEOptions>;
17
- private typingIndicators;
18
- private presenceTracking;
19
- constructor(provider: AIProvider, options?: WebSocketChatOptions);
20
- private setupWebSocketHandlers;
21
- handleWebSocketChatRequest(connectionId: string, request: ChatRequest): Promise<void>;
22
- handleGroupChat(roomId: string, request: GroupChatRequest): Promise<void>;
23
- handleStreamingChat(connectionId: string, request: StreamingChatRequest): Promise<void>;
24
- enableTypingIndicators(roomId: string): Promise<void>;
25
- enablePresenceTracking(roomId: string): Promise<void>;
26
- enableMessageSynchronization(roomId: string): Promise<void>;
27
- private sendToConnection;
28
- private sendError;
29
- private showTypingIndicator;
30
- private clearTypingIndicator;
31
- private updatePresence;
32
- private handleWebSocketChatMessage;
33
- getConnectionCount(): number;
34
- getRoomCount(): number;
35
- getStreamingMetrics(): import("../services/types.js").StreamingMetrics;
36
- close(): void;
37
- }
@@ -1,262 +0,0 @@
1
- import { SSEChatHandler } from "./sse-handler.js";
2
- import { NeuroLinkWebSocketServer } from "../services/websocket/websocket-server.js";
3
- import { StreamingManager } from "../services/streaming/streaming-manager.js";
4
- import { randomUUID } from "crypto";
5
- export class WebSocketChatHandler extends SSEChatHandler {
6
- wsServer;
7
- streamingManager;
8
- options;
9
- typingIndicators = new Map();
10
- presenceTracking = new Map();
11
- constructor(provider, options = {}) {
12
- super(provider, options.sseOptions);
13
- this.options = {
14
- enableTypingIndicators: true,
15
- enablePresenceTracking: true,
16
- enableMessageSync: true,
17
- maxConnections: 100,
18
- heartbeatInterval: 30000,
19
- connectionTimeout: 300000,
20
- enableCors: true,
21
- corsOrigins: ["*"],
22
- ...options,
23
- };
24
- this.wsServer = new NeuroLinkWebSocketServer(options.wsOptions);
25
- this.streamingManager = new StreamingManager();
26
- this.setupWebSocketHandlers();
27
- }
28
- setupWebSocketHandlers() {
29
- this.wsServer.on("connection", ({ connectionId }) => {
30
- console.log(`[WebSocket Chat] New connection: ${connectionId}`);
31
- if (this.options.enablePresenceTracking) {
32
- this.updatePresence(connectionId, "online");
33
- }
34
- });
35
- this.wsServer.on("disconnection", ({ connectionId }) => {
36
- console.log(`[WebSocket Chat] Disconnection: ${connectionId}`);
37
- if (this.options.enablePresenceTracking) {
38
- this.updatePresence(connectionId, "offline");
39
- }
40
- this.clearTypingIndicator(connectionId);
41
- });
42
- this.wsServer.on("chat-message", ({ connectionId, message }) => {
43
- this.handleWebSocketChatMessage(connectionId, message);
44
- });
45
- }
46
- // Enhanced Chat Capabilities
47
- async handleWebSocketChatRequest(connectionId, request) {
48
- try {
49
- if (this.options.enableTypingIndicators) {
50
- this.showTypingIndicator(connectionId, "assistant");
51
- }
52
- // Create streaming session for this chat
53
- const streamingSession = await this.streamingManager.createStreamingSession({
54
- provider: this.provider.constructor.name,
55
- model: "default", // Should get from provider
56
- streamingMode: "real-time",
57
- compressionEnabled: true,
58
- maxChunkSize: 1024,
59
- bufferSize: 4096,
60
- latencyTarget: 200,
61
- });
62
- // Generate AI response
63
- const result = await this.provider.generate({
64
- prompt: request.message,
65
- temperature: request.options?.temperature,
66
- maxTokens: request.options?.maxTokens,
67
- });
68
- if (!result || !result.content) {
69
- throw new Error("Invalid AI response");
70
- }
71
- // Send response via WebSocket
72
- const responseMessage = {
73
- id: randomUUID(),
74
- type: "ai-response",
75
- connectionId,
76
- timestamp: Date.now(),
77
- data: {
78
- text: result.content,
79
- sessionId: request.sessionId,
80
- metadata: {
81
- provider: this.provider.constructor.name,
82
- tokens: result.usage?.totalTokens,
83
- latency: Date.now() - Date.now(), // Should track actual timing
84
- },
85
- },
86
- };
87
- this.sendToConnection(connectionId, responseMessage);
88
- if (this.options.enableTypingIndicators) {
89
- this.clearTypingIndicator(connectionId);
90
- }
91
- await this.streamingManager.terminateStreamingSession(streamingSession.id);
92
- }
93
- catch (error) {
94
- console.error("[WebSocket Chat] Error handling chat request:", error);
95
- this.sendError(connectionId, "Failed to process chat request");
96
- }
97
- }
98
- async handleGroupChat(roomId, request) {
99
- try {
100
- // Process AI request
101
- const result = await this.provider.generate({
102
- prompt: request.prompt,
103
- temperature: request.options?.temperature,
104
- maxTokens: request.options?.maxTokens,
105
- });
106
- if (!result || !result.content) {
107
- throw new Error("Invalid AI response");
108
- }
109
- // Broadcast to room
110
- const broadcastMessage = {
111
- id: randomUUID(),
112
- type: "ai-response",
113
- connectionId: "system",
114
- timestamp: Date.now(),
115
- data: {
116
- text: result.content,
117
- sessionId: request.sessionId,
118
- userId: request.userId,
119
- isGroupMessage: true,
120
- metadata: {
121
- provider: this.provider.constructor.name,
122
- tokens: result.usage?.totalTokens,
123
- },
124
- },
125
- };
126
- this.wsServer.broadcastToRoom(roomId, broadcastMessage);
127
- }
128
- catch (error) {
129
- console.error("[WebSocket Chat] Error handling group chat:", error);
130
- }
131
- }
132
- async handleStreamingChat(connectionId, request) {
133
- try {
134
- const streamingOptions = request.streamingOptions || {};
135
- // Create streaming channel
136
- const channelId = randomUUID();
137
- const channel = this.wsServer.createStreamingChannel(connectionId, channelId);
138
- // Generate response
139
- const result = await this.provider.generate({
140
- prompt: request.prompt,
141
- ...request.options,
142
- });
143
- if (!result || !result.content) {
144
- throw new Error("Invalid AI response");
145
- }
146
- // Send complete response
147
- const responseMessage = {
148
- id: randomUUID(),
149
- type: "ai-response",
150
- connectionId,
151
- timestamp: Date.now(),
152
- data: {
153
- text: result.content,
154
- isStreamingComplete: true,
155
- channelId,
156
- },
157
- };
158
- this.sendToConnection(connectionId, responseMessage);
159
- }
160
- catch (error) {
161
- console.error("[WebSocket Chat] Error handling streaming chat:", error);
162
- this.sendError(connectionId, "Failed to process streaming chat");
163
- }
164
- }
165
- // Real-time Features
166
- async enableTypingIndicators(roomId) {
167
- this.options.enableTypingIndicators = true;
168
- console.log(`[WebSocket Chat] Enabled typing indicators for room ${roomId}`);
169
- }
170
- async enablePresenceTracking(roomId) {
171
- this.options.enablePresenceTracking = true;
172
- console.log(`[WebSocket Chat] Enabled presence tracking for room ${roomId}`);
173
- }
174
- async enableMessageSynchronization(roomId) {
175
- this.options.enableMessageSync = true;
176
- console.log(`[WebSocket Chat] Enabled message sync for room ${roomId}`);
177
- }
178
- // Helper methods
179
- sendToConnection(connectionId, message) {
180
- // Use the WebSocket server's public send method
181
- this.wsServer.sendMessage(connectionId, message);
182
- }
183
- sendError(connectionId, errorMessage) {
184
- const errorMsg = {
185
- id: randomUUID(),
186
- type: "error",
187
- connectionId,
188
- timestamp: Date.now(),
189
- data: { error: errorMessage },
190
- };
191
- this.sendToConnection(connectionId, errorMsg);
192
- }
193
- showTypingIndicator(connectionId, sender) {
194
- if (!this.options.enableTypingIndicators) {
195
- return;
196
- }
197
- const message = {
198
- id: randomUUID(),
199
- type: "system",
200
- connectionId,
201
- timestamp: Date.now(),
202
- data: {
203
- event: "typing_start",
204
- sender,
205
- },
206
- };
207
- this.sendToConnection(connectionId, message);
208
- }
209
- clearTypingIndicator(connectionId) {
210
- const timeout = this.typingIndicators.get(connectionId);
211
- if (timeout) {
212
- clearTimeout(timeout);
213
- this.typingIndicators.delete(connectionId);
214
- }
215
- }
216
- updatePresence(connectionId, status) {
217
- if (!this.options.enablePresenceTracking) {
218
- return;
219
- }
220
- this.presenceTracking.set(connectionId, {
221
- lastSeen: Date.now(),
222
- status,
223
- });
224
- }
225
- handleWebSocketChatMessage(connectionId, message) {
226
- const data = message.data;
227
- if (!data || typeof data !== "object") {
228
- return;
229
- }
230
- switch (data.event) {
231
- case "chat_request":
232
- this.handleWebSocketChatRequest(connectionId, data.request);
233
- break;
234
- case "join_room":
235
- this.wsServer.joinRoom(connectionId, data.roomId);
236
- break;
237
- case "leave_room":
238
- this.wsServer.leaveRoom(connectionId, data.roomId);
239
- break;
240
- case "typing_start":
241
- this.showTypingIndicator(connectionId, data.sender || "user");
242
- break;
243
- case "typing_stop":
244
- this.clearTypingIndicator(connectionId);
245
- break;
246
- }
247
- }
248
- // Public API
249
- getConnectionCount() {
250
- return this.wsServer.getConnectionCount();
251
- }
252
- getRoomCount() {
253
- return this.wsServer.getRoomCount();
254
- }
255
- getStreamingMetrics() {
256
- return this.streamingManager.getStreamingMetrics();
257
- }
258
- close() {
259
- this.wsServer.close();
260
- this.streamingManager.destroy();
261
- }
262
- }
@@ -1,20 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * MCP Server Management Commands
4
- * Real MCP server connectivity and management
5
- */
6
- import type { Argv } from "yargs";
7
- import type { JsonValue } from "../../lib/types/common.js";
8
- interface MCPServerConfig {
9
- name: string;
10
- command: string;
11
- args?: string[];
12
- env?: Record<string, string>;
13
- cwd?: string;
14
- transport: "stdio" | "sse";
15
- url?: string;
16
- }
17
- export declare function executeMCPTool(serverConfig: MCPServerConfig, toolName: string, toolParams: JsonValue): Promise<JsonValue>;
18
- export declare function mcpExecuteTool(serverName: string, toolName: string, toolParams: JsonValue): Promise<JsonValue>;
19
- export declare function addMCPCommands(yargs: Argv): Argv;
20
- export {};