@juspay/neurolink 9.5.2 → 9.6.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 (356) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +29 -25
  3. package/dist/agent/directTools.d.ts +5 -5
  4. package/dist/cli/commands/config.d.ts +9 -9
  5. package/dist/cli/commands/serve.d.ts +37 -0
  6. package/dist/cli/commands/serve.js +302 -229
  7. package/dist/cli/commands/setup-anthropic.d.ts +2 -2
  8. package/dist/cli/commands/setup-azure.d.ts +2 -2
  9. package/dist/cli/commands/setup-bedrock.d.ts +2 -2
  10. package/dist/cli/commands/setup-gcp.d.ts +2 -2
  11. package/dist/cli/commands/setup-google-ai.d.ts +2 -2
  12. package/dist/cli/commands/setup-huggingface.d.ts +2 -2
  13. package/dist/cli/commands/setup-mistral.d.ts +2 -2
  14. package/dist/cli/commands/setup-openai.d.ts +2 -2
  15. package/dist/cli/commands/setup.d.ts +2 -2
  16. package/dist/cli/factories/commandFactory.js +16 -2
  17. package/dist/cli/loop/optionsSchema.d.ts +2 -2
  18. package/dist/cli/loop/session.d.ts +4 -0
  19. package/dist/cli/loop/session.js +49 -4
  20. package/dist/cli/utils/interactiveSetup.d.ts +4 -4
  21. package/dist/config/conversationMemory.d.ts +2 -0
  22. package/dist/config/conversationMemory.js +5 -5
  23. package/dist/constants/contextWindows.d.ts +46 -0
  24. package/dist/constants/contextWindows.js +156 -0
  25. package/dist/context/budgetChecker.d.ts +18 -0
  26. package/dist/context/budgetChecker.js +71 -0
  27. package/dist/context/contextCompactor.d.ts +22 -0
  28. package/dist/context/contextCompactor.js +106 -0
  29. package/dist/context/effectiveHistory.d.ts +52 -0
  30. package/dist/context/effectiveHistory.js +105 -0
  31. package/dist/context/errorDetection.d.ts +14 -0
  32. package/dist/context/errorDetection.js +124 -0
  33. package/dist/context/fileSummarizationService.d.ts +54 -0
  34. package/dist/context/fileSummarizationService.js +255 -0
  35. package/dist/context/fileSummarizer.d.ts +56 -0
  36. package/dist/context/fileSummarizer.js +145 -0
  37. package/dist/context/fileTokenBudget.d.ts +53 -0
  38. package/dist/context/fileTokenBudget.js +127 -0
  39. package/dist/context/prompts/summarizationPrompt.d.ts +17 -0
  40. package/dist/context/prompts/summarizationPrompt.js +110 -0
  41. package/dist/context/stages/fileReadDeduplicator.d.ts +10 -0
  42. package/dist/context/stages/fileReadDeduplicator.js +66 -0
  43. package/dist/context/stages/slidingWindowTruncator.d.ts +11 -0
  44. package/dist/context/stages/slidingWindowTruncator.js +42 -0
  45. package/dist/context/stages/structuredSummarizer.d.ts +10 -0
  46. package/dist/context/stages/structuredSummarizer.js +49 -0
  47. package/dist/context/stages/toolOutputPruner.d.ts +10 -0
  48. package/dist/context/stages/toolOutputPruner.js +52 -0
  49. package/dist/context/summarizationEngine.d.ts +45 -0
  50. package/dist/context/summarizationEngine.js +110 -0
  51. package/dist/context/toolOutputLimits.d.ts +17 -0
  52. package/dist/context/toolOutputLimits.js +84 -0
  53. package/dist/context/toolPairRepair.d.ts +16 -0
  54. package/dist/context/toolPairRepair.js +66 -0
  55. package/dist/core/conversationMemoryManager.d.ts +5 -15
  56. package/dist/core/conversationMemoryManager.js +15 -75
  57. package/dist/core/modules/MessageBuilder.d.ts +1 -1
  58. package/dist/core/modules/MessageBuilder.js +2 -0
  59. package/dist/core/modules/TelemetryHandler.d.ts +2 -3
  60. package/dist/core/modules/TelemetryHandler.js +3 -3
  61. package/dist/core/modules/ToolsManager.d.ts +2 -2
  62. package/dist/core/redisConversationMemoryManager.d.ts +8 -14
  63. package/dist/core/redisConversationMemoryManager.js +69 -78
  64. package/dist/factories/providerFactory.d.ts +2 -2
  65. package/dist/files/fileReferenceRegistry.d.ts +276 -0
  66. package/dist/files/fileReferenceRegistry.js +1543 -0
  67. package/dist/files/fileTools.d.ts +423 -0
  68. package/dist/files/fileTools.js +449 -0
  69. package/dist/files/index.d.ts +14 -0
  70. package/dist/files/index.js +13 -0
  71. package/dist/files/streamingReader.d.ts +93 -0
  72. package/dist/files/streamingReader.js +321 -0
  73. package/dist/files/types.d.ts +23 -0
  74. package/dist/files/types.js +23 -0
  75. package/dist/image-gen/imageGenTools.d.ts +2 -2
  76. package/dist/image-gen/types.d.ts +12 -12
  77. package/dist/lib/agent/directTools.d.ts +7 -7
  78. package/dist/lib/config/conversationMemory.d.ts +2 -0
  79. package/dist/lib/config/conversationMemory.js +5 -5
  80. package/dist/lib/constants/contextWindows.d.ts +46 -0
  81. package/dist/lib/constants/contextWindows.js +157 -0
  82. package/dist/lib/context/budgetChecker.d.ts +18 -0
  83. package/dist/lib/context/budgetChecker.js +72 -0
  84. package/dist/lib/context/contextCompactor.d.ts +22 -0
  85. package/dist/lib/context/contextCompactor.js +107 -0
  86. package/dist/lib/context/effectiveHistory.d.ts +52 -0
  87. package/dist/lib/context/effectiveHistory.js +106 -0
  88. package/dist/lib/context/errorDetection.d.ts +14 -0
  89. package/dist/lib/context/errorDetection.js +125 -0
  90. package/dist/lib/context/fileSummarizationService.d.ts +54 -0
  91. package/dist/lib/context/fileSummarizationService.js +256 -0
  92. package/dist/lib/context/fileSummarizer.d.ts +56 -0
  93. package/dist/lib/context/fileSummarizer.js +146 -0
  94. package/dist/lib/context/fileTokenBudget.d.ts +53 -0
  95. package/dist/lib/context/fileTokenBudget.js +128 -0
  96. package/dist/lib/context/prompts/summarizationPrompt.d.ts +17 -0
  97. package/dist/lib/context/prompts/summarizationPrompt.js +111 -0
  98. package/dist/lib/context/stages/fileReadDeduplicator.d.ts +10 -0
  99. package/dist/lib/context/stages/fileReadDeduplicator.js +67 -0
  100. package/dist/lib/context/stages/slidingWindowTruncator.d.ts +11 -0
  101. package/dist/lib/context/stages/slidingWindowTruncator.js +43 -0
  102. package/dist/lib/context/stages/structuredSummarizer.d.ts +10 -0
  103. package/dist/lib/context/stages/structuredSummarizer.js +50 -0
  104. package/dist/lib/context/stages/toolOutputPruner.d.ts +10 -0
  105. package/dist/lib/context/stages/toolOutputPruner.js +53 -0
  106. package/dist/lib/context/summarizationEngine.d.ts +45 -0
  107. package/dist/lib/context/summarizationEngine.js +111 -0
  108. package/dist/lib/context/toolOutputLimits.d.ts +17 -0
  109. package/dist/lib/context/toolOutputLimits.js +85 -0
  110. package/dist/lib/context/toolPairRepair.d.ts +16 -0
  111. package/dist/lib/context/toolPairRepair.js +67 -0
  112. package/dist/lib/core/conversationMemoryManager.d.ts +5 -15
  113. package/dist/lib/core/conversationMemoryManager.js +15 -75
  114. package/dist/lib/core/modules/MessageBuilder.d.ts +1 -1
  115. package/dist/lib/core/modules/MessageBuilder.js +2 -0
  116. package/dist/lib/core/modules/TelemetryHandler.d.ts +2 -3
  117. package/dist/lib/core/modules/TelemetryHandler.js +3 -3
  118. package/dist/lib/core/modules/ToolsManager.d.ts +2 -2
  119. package/dist/lib/core/redisConversationMemoryManager.d.ts +8 -14
  120. package/dist/lib/core/redisConversationMemoryManager.js +69 -78
  121. package/dist/lib/factories/providerFactory.d.ts +2 -2
  122. package/dist/lib/files/fileReferenceRegistry.d.ts +276 -0
  123. package/dist/lib/files/fileReferenceRegistry.js +1544 -0
  124. package/dist/lib/files/fileTools.d.ts +423 -0
  125. package/dist/lib/files/fileTools.js +450 -0
  126. package/dist/lib/files/index.d.ts +14 -0
  127. package/dist/lib/files/index.js +14 -0
  128. package/dist/lib/files/streamingReader.d.ts +93 -0
  129. package/dist/lib/files/streamingReader.js +322 -0
  130. package/dist/lib/files/types.d.ts +23 -0
  131. package/dist/lib/files/types.js +24 -0
  132. package/dist/lib/image-gen/imageGenTools.d.ts +2 -2
  133. package/dist/lib/image-gen/types.d.ts +12 -12
  134. package/dist/lib/memory/mem0Initializer.d.ts +2 -2
  135. package/dist/lib/neurolink.d.ts +61 -2
  136. package/dist/lib/neurolink.js +619 -307
  137. package/dist/lib/processors/archive/ArchiveProcessor.d.ts +327 -0
  138. package/dist/lib/processors/archive/ArchiveProcessor.js +1309 -0
  139. package/dist/lib/processors/archive/index.d.ts +33 -0
  140. package/dist/lib/processors/archive/index.js +43 -0
  141. package/dist/lib/processors/base/types.d.ts +70 -64
  142. package/dist/lib/processors/base/types.js +6 -0
  143. package/dist/lib/processors/cli/fileProcessorCli.d.ts +8 -8
  144. package/dist/lib/processors/cli/fileProcessorCli.js +5 -5
  145. package/dist/lib/processors/config/mimeTypes.js +25 -0
  146. package/dist/lib/processors/config/sizeLimits.d.ts +52 -40
  147. package/dist/lib/processors/config/sizeLimits.js +56 -44
  148. package/dist/lib/processors/document/ExcelProcessor.d.ts +14 -0
  149. package/dist/lib/processors/document/ExcelProcessor.js +72 -1
  150. package/dist/lib/processors/document/PptxProcessor.d.ts +63 -0
  151. package/dist/lib/processors/document/PptxProcessor.js +158 -0
  152. package/dist/lib/processors/document/index.d.ts +1 -0
  153. package/dist/lib/processors/document/index.js +6 -0
  154. package/dist/lib/processors/errors/FileErrorCode.d.ts +2 -2
  155. package/dist/lib/processors/errors/errorHelpers.d.ts +2 -2
  156. package/dist/lib/processors/errors/errorSerializer.d.ts +4 -4
  157. package/dist/lib/processors/index.d.ts +8 -2
  158. package/dist/lib/processors/index.js +5 -2
  159. package/dist/lib/processors/integration/FileProcessorIntegration.d.ts +8 -8
  160. package/dist/lib/processors/integration/FileProcessorIntegration.js +7 -7
  161. package/dist/lib/processors/media/AudioProcessor.d.ts +328 -0
  162. package/dist/lib/processors/media/AudioProcessor.js +708 -0
  163. package/dist/lib/processors/media/VideoProcessor.d.ts +350 -0
  164. package/dist/lib/processors/media/VideoProcessor.js +992 -0
  165. package/dist/lib/processors/media/index.d.ts +27 -0
  166. package/dist/lib/processors/media/index.js +37 -0
  167. package/dist/lib/processors/registry/ProcessorRegistry.d.ts +19 -5
  168. package/dist/lib/processors/registry/ProcessorRegistry.js +103 -8
  169. package/dist/lib/processors/registry/index.d.ts +1 -1
  170. package/dist/lib/processors/registry/index.js +1 -1
  171. package/dist/lib/processors/registry/types.d.ts +2 -2
  172. package/dist/lib/providers/googleAiStudio.d.ts +34 -0
  173. package/dist/lib/providers/googleAiStudio.js +267 -397
  174. package/dist/lib/providers/googleVertex.d.ts +55 -1
  175. package/dist/lib/providers/googleVertex.js +452 -719
  176. package/dist/lib/providers/sagemaker/detection.d.ts +6 -6
  177. package/dist/lib/providers/sagemaker/diagnostics.d.ts +4 -4
  178. package/dist/lib/providers/sagemaker/parsers.d.ts +4 -4
  179. package/dist/lib/rag/chunkers/RecursiveChunker.js +2 -2
  180. package/dist/lib/rag/document/loaders.d.ts +6 -71
  181. package/dist/lib/rag/document/loaders.js +5 -5
  182. package/dist/lib/rag/graphRag/graphRAG.js +26 -9
  183. package/dist/lib/rag/metadata/MetadataExtractorFactory.d.ts +5 -55
  184. package/dist/lib/rag/metadata/metadataExtractor.js +6 -3
  185. package/dist/lib/rag/pipeline/RAGPipeline.d.ts +8 -126
  186. package/dist/lib/rag/pipeline/RAGPipeline.js +11 -11
  187. package/dist/lib/rag/pipeline/contextAssembly.d.ts +3 -42
  188. package/dist/lib/rag/pipeline/contextAssembly.js +6 -3
  189. package/dist/lib/rag/reranker/RerankerFactory.d.ts +5 -60
  190. package/dist/lib/rag/resilience/CircuitBreaker.d.ts +3 -33
  191. package/dist/lib/rag/resilience/RetryHandler.d.ts +2 -21
  192. package/dist/lib/rag/retrieval/hybridSearch.d.ts +3 -41
  193. package/dist/lib/rag/retrieval/vectorQueryTool.d.ts +2 -13
  194. package/dist/lib/rag/retrieval/vectorQueryTool.js +4 -3
  195. package/dist/lib/rag/types.d.ts +3 -3
  196. package/dist/lib/sdk/toolRegistration.d.ts +2 -2
  197. package/dist/lib/server/middleware/cache.d.ts +2 -2
  198. package/dist/lib/server/middleware/rateLimit.d.ts +2 -2
  199. package/dist/lib/server/routes/mcpRoutes.js +277 -249
  200. package/dist/lib/server/routes/memoryRoutes.js +287 -281
  201. package/dist/lib/server/utils/validation.d.ts +10 -10
  202. package/dist/lib/session/globalSessionState.d.ts +2 -2
  203. package/dist/lib/telemetry/telemetryService.d.ts +2 -2
  204. package/dist/lib/types/common.d.ts +39 -0
  205. package/dist/lib/types/contextTypes.d.ts +255 -0
  206. package/dist/lib/types/contextTypes.js +0 -2
  207. package/dist/lib/types/conversation.d.ts +62 -0
  208. package/dist/lib/types/conversationMemoryInterface.d.ts +27 -0
  209. package/dist/lib/types/conversationMemoryInterface.js +7 -0
  210. package/dist/lib/types/fileReferenceTypes.d.ts +222 -0
  211. package/dist/lib/types/fileReferenceTypes.js +9 -0
  212. package/dist/lib/types/fileTypes.d.ts +26 -3
  213. package/dist/lib/types/generateTypes.d.ts +22 -1
  214. package/dist/lib/types/index.d.ts +4 -5
  215. package/dist/lib/types/index.js +8 -10
  216. package/dist/lib/types/modelTypes.d.ts +2 -2
  217. package/dist/lib/types/processorTypes.d.ts +597 -0
  218. package/dist/lib/types/processorTypes.js +91 -0
  219. package/dist/lib/types/ragTypes.d.ts +481 -0
  220. package/dist/lib/types/ragTypes.js +8 -0
  221. package/dist/lib/types/sdkTypes.d.ts +17 -18
  222. package/dist/lib/types/streamTypes.d.ts +11 -1
  223. package/dist/lib/utils/async/retry.d.ts +2 -2
  224. package/dist/lib/utils/async/withTimeout.js +3 -1
  225. package/dist/lib/utils/conversationMemory.d.ts +12 -6
  226. package/dist/lib/utils/conversationMemory.js +76 -36
  227. package/dist/lib/utils/fileDetector.d.ts +62 -0
  228. package/dist/lib/utils/fileDetector.js +1014 -14
  229. package/dist/lib/utils/json/safeParse.d.ts +2 -2
  230. package/dist/lib/utils/messageBuilder.js +806 -153
  231. package/dist/lib/utils/modelChoices.d.ts +2 -2
  232. package/dist/lib/utils/multimodalOptionsBuilder.d.ts +2 -1
  233. package/dist/lib/utils/multimodalOptionsBuilder.js +1 -0
  234. package/dist/lib/utils/rateLimiter.d.ts +2 -2
  235. package/dist/lib/utils/sanitizers/filename.d.ts +4 -4
  236. package/dist/lib/utils/sanitizers/svg.d.ts +2 -2
  237. package/dist/lib/utils/thinkingConfig.d.ts +6 -6
  238. package/dist/lib/utils/tokenEstimation.d.ts +68 -0
  239. package/dist/lib/utils/tokenEstimation.js +113 -0
  240. package/dist/lib/utils/tokenUtils.d.ts +4 -4
  241. package/dist/lib/utils/ttsProcessor.d.ts +2 -2
  242. package/dist/lib/workflow/config.d.ts +150 -150
  243. package/dist/memory/mem0Initializer.d.ts +2 -2
  244. package/dist/neurolink.d.ts +61 -2
  245. package/dist/neurolink.js +619 -307
  246. package/dist/processors/archive/ArchiveProcessor.d.ts +327 -0
  247. package/dist/processors/archive/ArchiveProcessor.js +1308 -0
  248. package/dist/processors/archive/index.d.ts +33 -0
  249. package/dist/processors/archive/index.js +42 -0
  250. package/dist/processors/base/types.d.ts +70 -64
  251. package/dist/processors/base/types.js +6 -0
  252. package/dist/processors/cli/fileProcessorCli.d.ts +8 -8
  253. package/dist/processors/cli/fileProcessorCli.js +5 -5
  254. package/dist/processors/config/mimeTypes.js +25 -0
  255. package/dist/processors/config/sizeLimits.d.ts +52 -40
  256. package/dist/processors/config/sizeLimits.js +56 -44
  257. package/dist/processors/document/ExcelProcessor.d.ts +14 -0
  258. package/dist/processors/document/ExcelProcessor.js +72 -1
  259. package/dist/processors/document/PptxProcessor.d.ts +63 -0
  260. package/dist/processors/document/PptxProcessor.js +157 -0
  261. package/dist/processors/document/index.d.ts +1 -0
  262. package/dist/processors/document/index.js +6 -0
  263. package/dist/processors/errors/FileErrorCode.d.ts +2 -2
  264. package/dist/processors/errors/errorHelpers.d.ts +2 -2
  265. package/dist/processors/errors/errorSerializer.d.ts +4 -4
  266. package/dist/processors/index.d.ts +8 -2
  267. package/dist/processors/index.js +5 -2
  268. package/dist/processors/integration/FileProcessorIntegration.d.ts +8 -8
  269. package/dist/processors/integration/FileProcessorIntegration.js +7 -7
  270. package/dist/processors/media/AudioProcessor.d.ts +328 -0
  271. package/dist/processors/media/AudioProcessor.js +707 -0
  272. package/dist/processors/media/VideoProcessor.d.ts +350 -0
  273. package/dist/processors/media/VideoProcessor.js +991 -0
  274. package/dist/processors/media/ffprobe-static.d.ts +4 -0
  275. package/dist/processors/media/index.d.ts +27 -0
  276. package/dist/processors/media/index.js +36 -0
  277. package/dist/processors/registry/ProcessorRegistry.d.ts +19 -5
  278. package/dist/processors/registry/ProcessorRegistry.js +103 -8
  279. package/dist/processors/registry/index.d.ts +1 -1
  280. package/dist/processors/registry/index.js +1 -1
  281. package/dist/processors/registry/types.d.ts +2 -2
  282. package/dist/providers/googleAiStudio.d.ts +34 -0
  283. package/dist/providers/googleAiStudio.js +267 -397
  284. package/dist/providers/googleVertex.d.ts +55 -1
  285. package/dist/providers/googleVertex.js +452 -719
  286. package/dist/providers/sagemaker/detection.d.ts +6 -6
  287. package/dist/providers/sagemaker/diagnostics.d.ts +4 -4
  288. package/dist/providers/sagemaker/parsers.d.ts +4 -4
  289. package/dist/rag/chunkers/RecursiveChunker.js +2 -2
  290. package/dist/rag/document/loaders.d.ts +6 -71
  291. package/dist/rag/document/loaders.js +5 -5
  292. package/dist/rag/graphRag/graphRAG.js +26 -9
  293. package/dist/rag/metadata/MetadataExtractorFactory.d.ts +5 -55
  294. package/dist/rag/metadata/metadataExtractor.js +6 -3
  295. package/dist/rag/pipeline/RAGPipeline.d.ts +8 -126
  296. package/dist/rag/pipeline/RAGPipeline.js +11 -11
  297. package/dist/rag/pipeline/contextAssembly.d.ts +3 -42
  298. package/dist/rag/pipeline/contextAssembly.js +6 -3
  299. package/dist/rag/reranker/RerankerFactory.d.ts +5 -60
  300. package/dist/rag/resilience/CircuitBreaker.d.ts +3 -33
  301. package/dist/rag/resilience/RetryHandler.d.ts +2 -21
  302. package/dist/rag/retrieval/hybridSearch.d.ts +3 -41
  303. package/dist/rag/retrieval/vectorQueryTool.d.ts +2 -13
  304. package/dist/rag/retrieval/vectorQueryTool.js +4 -3
  305. package/dist/rag/types.d.ts +3 -3
  306. package/dist/sdk/toolRegistration.d.ts +2 -2
  307. package/dist/server/middleware/cache.d.ts +2 -2
  308. package/dist/server/middleware/rateLimit.d.ts +2 -2
  309. package/dist/server/routes/mcpRoutes.js +277 -249
  310. package/dist/server/routes/memoryRoutes.js +287 -281
  311. package/dist/server/utils/validation.d.ts +4 -4
  312. package/dist/session/globalSessionState.d.ts +2 -2
  313. package/dist/telemetry/telemetryService.d.ts +2 -2
  314. package/dist/types/common.d.ts +39 -0
  315. package/dist/types/contextTypes.d.ts +255 -0
  316. package/dist/types/contextTypes.js +0 -2
  317. package/dist/types/conversation.d.ts +62 -0
  318. package/dist/types/conversationMemoryInterface.d.ts +27 -0
  319. package/dist/types/conversationMemoryInterface.js +6 -0
  320. package/dist/types/fileReferenceTypes.d.ts +222 -0
  321. package/dist/types/fileReferenceTypes.js +8 -0
  322. package/dist/types/fileTypes.d.ts +26 -3
  323. package/dist/types/generateTypes.d.ts +22 -1
  324. package/dist/types/index.d.ts +4 -5
  325. package/dist/types/index.js +8 -10
  326. package/dist/types/processorTypes.d.ts +597 -0
  327. package/dist/types/processorTypes.js +90 -0
  328. package/dist/types/ragTypes.d.ts +481 -0
  329. package/dist/types/ragTypes.js +7 -0
  330. package/dist/types/sdkTypes.d.ts +17 -18
  331. package/dist/types/streamTypes.d.ts +11 -1
  332. package/dist/utils/async/retry.d.ts +2 -2
  333. package/dist/utils/async/withTimeout.js +3 -1
  334. package/dist/utils/conversationMemory.d.ts +12 -6
  335. package/dist/utils/conversationMemory.js +76 -36
  336. package/dist/utils/fileDetector.d.ts +62 -0
  337. package/dist/utils/fileDetector.js +1014 -14
  338. package/dist/utils/json/safeParse.d.ts +2 -2
  339. package/dist/utils/messageBuilder.js +806 -153
  340. package/dist/utils/modelChoices.d.ts +2 -2
  341. package/dist/utils/multimodalOptionsBuilder.d.ts +2 -1
  342. package/dist/utils/multimodalOptionsBuilder.js +1 -0
  343. package/dist/utils/rateLimiter.d.ts +2 -2
  344. package/dist/utils/sanitizers/filename.d.ts +4 -4
  345. package/dist/utils/sanitizers/svg.d.ts +2 -2
  346. package/dist/utils/thinkingConfig.d.ts +6 -6
  347. package/dist/utils/tokenEstimation.d.ts +68 -0
  348. package/dist/utils/tokenEstimation.js +112 -0
  349. package/dist/utils/tokenUtils.d.ts +4 -4
  350. package/dist/utils/ttsProcessor.d.ts +2 -2
  351. package/dist/workflow/config.d.ts +104 -104
  352. package/package.json +18 -6
  353. package/dist/lib/utils/conversationMemoryUtils.d.ts +0 -25
  354. package/dist/lib/utils/conversationMemoryUtils.js +0 -138
  355. package/dist/utils/conversationMemoryUtils.d.ts +0 -25
  356. package/dist/utils/conversationMemoryUtils.js +0 -137
@@ -3,6 +3,286 @@
3
3
  * Endpoints for conversation memory management
4
4
  */
5
5
  import { createErrorResponse, IdParamSchema, SessionIdParamSchema, validateParams, } from "../utils/validation.js";
6
+ /**
7
+ * Handler: Get messages for a session
8
+ */
9
+ async function handleGetSessionMessages(ctx) {
10
+ // Validate path params
11
+ const paramValidation = validateParams(IdParamSchema, ctx.params, ctx.requestId);
12
+ if (!paramValidation.success) {
13
+ return paramValidation.error;
14
+ }
15
+ const { id: sessionId } = paramValidation.data;
16
+ // Parse query params for pagination
17
+ const limitParam = ctx.query.limit ? parseInt(ctx.query.limit, 10) : 50;
18
+ const offsetParam = ctx.query.offset ? parseInt(ctx.query.offset, 10) : 0;
19
+ // Validate pagination params
20
+ const limit = isNaN(limitParam) || limitParam < 1 ? 50 : Math.min(limitParam, 100);
21
+ const offset = isNaN(offsetParam) || offsetParam < 0 ? 0 : offsetParam;
22
+ const memory = ctx.neurolink.conversationMemory;
23
+ if (!memory) {
24
+ return createErrorResponse("MEMORY_UNAVAILABLE", "Conversation memory not available", undefined, ctx.requestId);
25
+ }
26
+ try {
27
+ let messages = [];
28
+ // Handle Redis memory manager (has getUserSessionHistory)
29
+ if ("getUserSessionHistory" in memory) {
30
+ // For Redis, we need a userId - check query params or use a default
31
+ const userId = ctx.query.userId || "default";
32
+ const sessionMessages = await memory.getUserSessionHistory(userId, sessionId);
33
+ if (sessionMessages === null) {
34
+ return createErrorResponse("SESSION_NOT_FOUND", `Session '${sessionId}' not found`, undefined, ctx.requestId);
35
+ }
36
+ messages = sessionMessages;
37
+ }
38
+ // Handle in-memory manager (has getSession)
39
+ else if ("getSession" in memory) {
40
+ const session = memory.getSession(sessionId);
41
+ if (!session) {
42
+ return createErrorResponse("SESSION_NOT_FOUND", `Session '${sessionId}' not found`, undefined, ctx.requestId);
43
+ }
44
+ messages = session.messages;
45
+ }
46
+ // Fallback: try buildContextMessages if available
47
+ else if ("buildContextMessages" in memory) {
48
+ messages = await memory.buildContextMessages(sessionId);
49
+ // If no messages, session might not exist
50
+ if (messages.length === 0) {
51
+ return createErrorResponse("SESSION_NOT_FOUND", `Session '${sessionId}' not found or has no messages`, undefined, ctx.requestId);
52
+ }
53
+ }
54
+ const total = messages.length;
55
+ const paginatedMessages = messages.slice(offset, offset + limit);
56
+ return {
57
+ sessionId,
58
+ messages: paginatedMessages,
59
+ total,
60
+ limit,
61
+ offset,
62
+ metadata: {
63
+ timestamp: new Date().toISOString(),
64
+ requestId: ctx.requestId,
65
+ },
66
+ };
67
+ }
68
+ catch (error) {
69
+ return createErrorResponse("MEMORY_ERROR", error instanceof Error ? error.message : "Failed to get session messages", undefined, ctx.requestId);
70
+ }
71
+ }
72
+ /**
73
+ * Handler: Get session by ID
74
+ */
75
+ async function handleGetSession(ctx) {
76
+ // Validate path params
77
+ const paramValidation = validateParams(IdParamSchema, ctx.params, ctx.requestId);
78
+ if (!paramValidation.success) {
79
+ return paramValidation.error;
80
+ }
81
+ const { id: sessionId } = paramValidation.data;
82
+ const memory = ctx.neurolink.conversationMemory;
83
+ if (!memory) {
84
+ return createErrorResponse("MEMORY_UNAVAILABLE", "Conversation memory not available", undefined, ctx.requestId);
85
+ }
86
+ try {
87
+ // Handle Redis memory manager (has getUserSessionObject or getUserSessionMetadata)
88
+ if ("getUserSessionObject" in memory) {
89
+ // For Redis, we need a userId - check query params or use a default
90
+ const userId = ctx.query.userId || "default";
91
+ const sessionObject = await memory.getUserSessionObject(userId, sessionId);
92
+ if (sessionObject === null) {
93
+ return createErrorResponse("SESSION_NOT_FOUND", `Session '${sessionId}' not found`, undefined, ctx.requestId);
94
+ }
95
+ return {
96
+ session: sessionObject,
97
+ metadata: {
98
+ timestamp: new Date().toISOString(),
99
+ requestId: ctx.requestId,
100
+ },
101
+ };
102
+ }
103
+ // Handle in-memory manager (has getSession)
104
+ else if ("getSession" in memory) {
105
+ const session = memory.getSession(sessionId);
106
+ if (!session) {
107
+ return createErrorResponse("SESSION_NOT_FOUND", `Session '${sessionId}' not found`, undefined, ctx.requestId);
108
+ }
109
+ return {
110
+ session,
111
+ metadata: {
112
+ timestamp: new Date().toISOString(),
113
+ requestId: ctx.requestId,
114
+ },
115
+ };
116
+ }
117
+ return createErrorResponse("MEMORY_ERROR", "Session retrieval not supported for this memory type", undefined, ctx.requestId);
118
+ }
119
+ catch (error) {
120
+ return createErrorResponse("MEMORY_ERROR", error instanceof Error ? error.message : "Failed to get session", undefined, ctx.requestId);
121
+ }
122
+ }
123
+ /**
124
+ * Handler: List all conversation sessions
125
+ */
126
+ async function handleListSessions(ctx) {
127
+ // Parse query params
128
+ const userId = ctx.query.userId;
129
+ const limitParam = ctx.query.limit ? parseInt(ctx.query.limit, 10) : 50;
130
+ const offsetParam = ctx.query.offset ? parseInt(ctx.query.offset, 10) : 0;
131
+ // Validate pagination params
132
+ const limit = isNaN(limitParam) || limitParam < 1 ? 50 : Math.min(limitParam, 100);
133
+ const offset = isNaN(offsetParam) || offsetParam < 0 ? 0 : offsetParam;
134
+ const memory = ctx.neurolink.conversationMemory;
135
+ if (!memory) {
136
+ return createErrorResponse("MEMORY_UNAVAILABLE", "Conversation memory not available", undefined, ctx.requestId);
137
+ }
138
+ try {
139
+ let sessions = [];
140
+ // Handle Redis memory manager (has getUserAllSessionsHistory or getUserSessions)
141
+ if ("getUserAllSessionsHistory" in memory && userId) {
142
+ sessions = await memory.getUserAllSessionsHistory(userId);
143
+ }
144
+ else if ("getUserSessions" in memory && userId) {
145
+ // Get session IDs and then fetch metadata for each
146
+ const sessionIds = await memory.getUserSessions(userId);
147
+ // If we can get metadata, do so
148
+ if ("getUserSessionMetadata" in memory) {
149
+ const metadataPromises = sessionIds.map((id) => memory.getUserSessionMetadata(userId, id));
150
+ const metadataResults = await Promise.all(metadataPromises);
151
+ sessions = metadataResults.filter((m) => m !== null);
152
+ }
153
+ else {
154
+ // Just return session IDs as basic objects
155
+ sessions = sessionIds.map((id) => ({ id }));
156
+ }
157
+ }
158
+ // Handle in-memory manager - iterate over internal sessions Map
159
+ else if ("getStats" in memory) {
160
+ // For in-memory, we can use getSession to check if sessions exist
161
+ // but we need to know the session IDs first. The in-memory manager
162
+ // doesn't expose a listSessions method, so we return stats info instead.
163
+ const stats = await memory.getStats?.();
164
+ return {
165
+ sessions: [],
166
+ total: stats?.totalSessions || 0,
167
+ limit,
168
+ offset,
169
+ message: "Session listing not fully supported for in-memory storage. Use /stats endpoint for session counts.",
170
+ metadata: {
171
+ timestamp: new Date().toISOString(),
172
+ requestId: ctx.requestId,
173
+ },
174
+ };
175
+ }
176
+ const total = sessions.length;
177
+ const paginatedSessions = sessions.slice(offset, offset + limit);
178
+ return {
179
+ sessions: paginatedSessions,
180
+ total,
181
+ limit,
182
+ offset,
183
+ metadata: {
184
+ timestamp: new Date().toISOString(),
185
+ requestId: ctx.requestId,
186
+ },
187
+ };
188
+ }
189
+ catch (error) {
190
+ return createErrorResponse("MEMORY_ERROR", error instanceof Error ? error.message : "Failed to list sessions", undefined, ctx.requestId);
191
+ }
192
+ }
193
+ /**
194
+ * Handler: Get memory statistics
195
+ */
196
+ async function handleGetStats(ctx) {
197
+ const memory = ctx.neurolink.conversationMemory;
198
+ if (!memory) {
199
+ return createErrorResponse("MEMORY_UNAVAILABLE", "Conversation memory not available", undefined, ctx.requestId);
200
+ }
201
+ try {
202
+ // Get memory statistics if available
203
+ const stats = await memory.getStats?.();
204
+ return {
205
+ available: true,
206
+ type: memory.constructor.name,
207
+ stats: stats || {
208
+ message: "Statistics not available for this memory type",
209
+ },
210
+ timestamp: new Date().toISOString(),
211
+ };
212
+ }
213
+ catch (error) {
214
+ return createErrorResponse("MEMORY_ERROR", error instanceof Error ? error.message : "Failed to get statistics", undefined, ctx.requestId);
215
+ }
216
+ }
217
+ /**
218
+ * Handler: Clear a conversation session
219
+ */
220
+ async function handleClearSession(ctx) {
221
+ // Validate params
222
+ const paramValidation = validateParams(SessionIdParamSchema, ctx.params, ctx.requestId);
223
+ if (!paramValidation.success) {
224
+ return paramValidation.error;
225
+ }
226
+ const { sessionId } = paramValidation.data;
227
+ const memory = ctx.neurolink.conversationMemory;
228
+ if (!memory) {
229
+ return createErrorResponse("MEMORY_UNAVAILABLE", "Conversation memory not available", undefined, ctx.requestId);
230
+ }
231
+ try {
232
+ // Use clearSession for ConversationMemoryManager
233
+ const cleared = await memory.clearSession?.(sessionId);
234
+ if (cleared === false) {
235
+ return createErrorResponse("SESSION_NOT_FOUND", `Session '${sessionId}' not found`, undefined, ctx.requestId);
236
+ }
237
+ return {
238
+ success: true,
239
+ sessionId,
240
+ message: "Session cleared successfully",
241
+ metadata: {
242
+ timestamp: new Date().toISOString(),
243
+ requestId: ctx.requestId,
244
+ },
245
+ };
246
+ }
247
+ catch (error) {
248
+ return createErrorResponse("MEMORY_ERROR", error instanceof Error ? error.message : "Failed to clear session", undefined, ctx.requestId);
249
+ }
250
+ }
251
+ /**
252
+ * Handler: Clear all conversation sessions
253
+ */
254
+ async function handleClearAllSessions(ctx) {
255
+ const memory = ctx.neurolink.conversationMemory;
256
+ if (!memory) {
257
+ return createErrorResponse("MEMORY_UNAVAILABLE", "Conversation memory not available", undefined, ctx.requestId);
258
+ }
259
+ try {
260
+ // Use clearAllSessions for ConversationMemoryManager
261
+ await memory.clearAllSessions?.();
262
+ return {
263
+ success: true,
264
+ message: "All sessions cleared successfully",
265
+ metadata: {
266
+ timestamp: new Date().toISOString(),
267
+ requestId: ctx.requestId,
268
+ },
269
+ };
270
+ }
271
+ catch (error) {
272
+ return createErrorResponse("MEMORY_ERROR", error instanceof Error ? error.message : "Failed to clear sessions", undefined, ctx.requestId);
273
+ }
274
+ }
275
+ /**
276
+ * Handler: Check memory system health
277
+ */
278
+ async function handleMemoryHealth(ctx) {
279
+ const memory = ctx.neurolink.conversationMemory;
280
+ return {
281
+ available: !!memory,
282
+ type: memory?.constructor.name || "none",
283
+ timestamp: new Date().toISOString(),
284
+ };
285
+ }
6
286
  /**
7
287
  * Create memory management routes
8
288
  * Note: These routes provide a simplified interface to conversation memory.
@@ -17,77 +297,7 @@ export function createMemoryRoutes(basePath = "/api") {
17
297
  {
18
298
  method: "GET",
19
299
  path: `${basePath}/memory/sessions/:id/messages`,
20
- handler: async (ctx) => {
21
- // Validate path params
22
- const paramValidation = validateParams(IdParamSchema, ctx.params, ctx.requestId);
23
- if (!paramValidation.success) {
24
- return paramValidation.error;
25
- }
26
- const { id: sessionId } = paramValidation.data;
27
- // Parse query params for pagination
28
- const limitParam = ctx.query.limit
29
- ? parseInt(ctx.query.limit, 10)
30
- : 50;
31
- const offsetParam = ctx.query.offset
32
- ? parseInt(ctx.query.offset, 10)
33
- : 0;
34
- // Validate pagination params
35
- const limit = isNaN(limitParam) || limitParam < 1
36
- ? 50
37
- : Math.min(limitParam, 100);
38
- const offset = isNaN(offsetParam) || offsetParam < 0 ? 0 : offsetParam;
39
- const memory = ctx.neurolink.conversationMemory;
40
- if (!memory) {
41
- return createErrorResponse("MEMORY_UNAVAILABLE", "Conversation memory not available", undefined, ctx.requestId);
42
- }
43
- try {
44
- let messages = [];
45
- // Handle Redis memory manager (has getUserSessionHistory)
46
- if ("getUserSessionHistory" in memory) {
47
- // For Redis, we need a userId - check query params or use a default
48
- const userId = ctx.query.userId || "default";
49
- const sessionMessages = await memory.getUserSessionHistory(userId, sessionId);
50
- if (sessionMessages === null) {
51
- return createErrorResponse("SESSION_NOT_FOUND", `Session '${sessionId}' not found`, undefined, ctx.requestId);
52
- }
53
- messages = sessionMessages;
54
- }
55
- // Handle in-memory manager (has getSession)
56
- else if ("getSession" in memory) {
57
- const session = memory.getSession(sessionId);
58
- if (!session) {
59
- return createErrorResponse("SESSION_NOT_FOUND", `Session '${sessionId}' not found`, undefined, ctx.requestId);
60
- }
61
- messages = session.messages;
62
- }
63
- // Fallback: try buildContextMessages if available
64
- else if ("buildContextMessages" in memory) {
65
- messages = await memory.buildContextMessages(sessionId);
66
- // If no messages, session might not exist
67
- if (messages.length === 0) {
68
- return createErrorResponse("SESSION_NOT_FOUND", `Session '${sessionId}' not found or has no messages`, undefined, ctx.requestId);
69
- }
70
- }
71
- const total = messages.length;
72
- const paginatedMessages = messages.slice(offset, offset + limit);
73
- return {
74
- sessionId,
75
- messages: paginatedMessages,
76
- total,
77
- limit,
78
- offset,
79
- metadata: {
80
- timestamp: new Date().toISOString(),
81
- requestId: ctx.requestId,
82
- },
83
- };
84
- }
85
- catch (error) {
86
- return createErrorResponse("MEMORY_ERROR", error instanceof Error
87
- ? error.message
88
- : "Failed to get session messages", undefined, ctx.requestId);
89
- }
90
- },
300
+ handler: handleGetSessionMessages,
91
301
  description: "Get messages for a session",
92
302
  tags: ["memory"],
93
303
  },
@@ -95,54 +305,7 @@ export function createMemoryRoutes(basePath = "/api") {
95
305
  {
96
306
  method: "GET",
97
307
  path: `${basePath}/memory/sessions/:id`,
98
- handler: async (ctx) => {
99
- // Validate path params
100
- const paramValidation = validateParams(IdParamSchema, ctx.params, ctx.requestId);
101
- if (!paramValidation.success) {
102
- return paramValidation.error;
103
- }
104
- const { id: sessionId } = paramValidation.data;
105
- const memory = ctx.neurolink.conversationMemory;
106
- if (!memory) {
107
- return createErrorResponse("MEMORY_UNAVAILABLE", "Conversation memory not available", undefined, ctx.requestId);
108
- }
109
- try {
110
- // Handle Redis memory manager (has getUserSessionObject or getUserSessionMetadata)
111
- if ("getUserSessionObject" in memory) {
112
- // For Redis, we need a userId - check query params or use a default
113
- const userId = ctx.query.userId || "default";
114
- const sessionObject = await memory.getUserSessionObject(userId, sessionId);
115
- if (sessionObject === null) {
116
- return createErrorResponse("SESSION_NOT_FOUND", `Session '${sessionId}' not found`, undefined, ctx.requestId);
117
- }
118
- return {
119
- session: sessionObject,
120
- metadata: {
121
- timestamp: new Date().toISOString(),
122
- requestId: ctx.requestId,
123
- },
124
- };
125
- }
126
- // Handle in-memory manager (has getSession)
127
- else if ("getSession" in memory) {
128
- const session = memory.getSession(sessionId);
129
- if (!session) {
130
- return createErrorResponse("SESSION_NOT_FOUND", `Session '${sessionId}' not found`, undefined, ctx.requestId);
131
- }
132
- return {
133
- session,
134
- metadata: {
135
- timestamp: new Date().toISOString(),
136
- requestId: ctx.requestId,
137
- },
138
- };
139
- }
140
- return createErrorResponse("MEMORY_ERROR", "Session retrieval not supported for this memory type", undefined, ctx.requestId);
141
- }
142
- catch (error) {
143
- return createErrorResponse("MEMORY_ERROR", error instanceof Error ? error.message : "Failed to get session", undefined, ctx.requestId);
144
- }
145
- },
308
+ handler: handleGetSession,
146
309
  description: "Get session by ID",
147
310
  tags: ["memory"],
148
311
  },
@@ -150,192 +313,35 @@ export function createMemoryRoutes(basePath = "/api") {
150
313
  {
151
314
  method: "GET",
152
315
  path: `${basePath}/memory/sessions`,
153
- handler: async (ctx) => {
154
- // Parse query params
155
- const userId = ctx.query.userId;
156
- const limitParam = ctx.query.limit
157
- ? parseInt(ctx.query.limit, 10)
158
- : 50;
159
- const offsetParam = ctx.query.offset
160
- ? parseInt(ctx.query.offset, 10)
161
- : 0;
162
- // Validate pagination params
163
- const limit = isNaN(limitParam) || limitParam < 1
164
- ? 50
165
- : Math.min(limitParam, 100);
166
- const offset = isNaN(offsetParam) || offsetParam < 0 ? 0 : offsetParam;
167
- const memory = ctx.neurolink.conversationMemory;
168
- if (!memory) {
169
- return createErrorResponse("MEMORY_UNAVAILABLE", "Conversation memory not available", undefined, ctx.requestId);
170
- }
171
- try {
172
- let sessions = [];
173
- // Handle Redis memory manager (has getUserAllSessionsHistory or getUserSessions)
174
- if ("getUserAllSessionsHistory" in memory && userId) {
175
- sessions = await memory.getUserAllSessionsHistory(userId);
176
- }
177
- else if ("getUserSessions" in memory && userId) {
178
- // Get session IDs and then fetch metadata for each
179
- const sessionIds = await memory.getUserSessions(userId);
180
- // If we can get metadata, do so
181
- if ("getUserSessionMetadata" in memory) {
182
- const metadataPromises = sessionIds.map((id) => memory.getUserSessionMetadata(userId, id));
183
- const metadataResults = await Promise.all(metadataPromises);
184
- sessions = metadataResults.filter((m) => m !== null);
185
- }
186
- else {
187
- // Just return session IDs as basic objects
188
- sessions = sessionIds.map((id) => ({ id }));
189
- }
190
- }
191
- // Handle in-memory manager - iterate over internal sessions Map
192
- else if ("getStats" in memory) {
193
- // For in-memory, we can use getSession to check if sessions exist
194
- // but we need to know the session IDs first. The in-memory manager
195
- // doesn't expose a listSessions method, so we return stats info instead.
196
- const stats = await memory.getStats?.();
197
- return {
198
- sessions: [],
199
- total: stats?.totalSessions || 0,
200
- limit,
201
- offset,
202
- message: "Session listing not fully supported for in-memory storage. Use /stats endpoint for session counts.",
203
- metadata: {
204
- timestamp: new Date().toISOString(),
205
- requestId: ctx.requestId,
206
- },
207
- };
208
- }
209
- const total = sessions.length;
210
- const paginatedSessions = sessions.slice(offset, offset + limit);
211
- return {
212
- sessions: paginatedSessions,
213
- total,
214
- limit,
215
- offset,
216
- metadata: {
217
- timestamp: new Date().toISOString(),
218
- requestId: ctx.requestId,
219
- },
220
- };
221
- }
222
- catch (error) {
223
- return createErrorResponse("MEMORY_ERROR", error instanceof Error
224
- ? error.message
225
- : "Failed to list sessions", undefined, ctx.requestId);
226
- }
227
- },
316
+ handler: handleListSessions,
228
317
  description: "List all conversation sessions",
229
318
  tags: ["memory"],
230
319
  },
231
320
  {
232
321
  method: "GET",
233
322
  path: `${basePath}/memory/stats`,
234
- handler: async (ctx) => {
235
- const memory = ctx.neurolink.conversationMemory;
236
- if (!memory) {
237
- return createErrorResponse("MEMORY_UNAVAILABLE", "Conversation memory not available", undefined, ctx.requestId);
238
- }
239
- try {
240
- // Get memory statistics if available
241
- const stats = await memory.getStats?.();
242
- return {
243
- available: true,
244
- type: memory.constructor.name,
245
- stats: stats || {
246
- message: "Statistics not available for this memory type",
247
- },
248
- timestamp: new Date().toISOString(),
249
- };
250
- }
251
- catch (error) {
252
- return createErrorResponse("MEMORY_ERROR", error instanceof Error
253
- ? error.message
254
- : "Failed to get statistics", undefined, ctx.requestId);
255
- }
256
- },
323
+ handler: handleGetStats,
257
324
  description: "Get memory statistics",
258
325
  tags: ["memory"],
259
326
  },
260
327
  {
261
328
  method: "DELETE",
262
329
  path: `${basePath}/memory/sessions/:sessionId`,
263
- handler: async (ctx) => {
264
- // Validate params
265
- const paramValidation = validateParams(SessionIdParamSchema, ctx.params, ctx.requestId);
266
- if (!paramValidation.success) {
267
- return paramValidation.error;
268
- }
269
- const { sessionId } = paramValidation.data;
270
- const memory = ctx.neurolink.conversationMemory;
271
- if (!memory) {
272
- return createErrorResponse("MEMORY_UNAVAILABLE", "Conversation memory not available", undefined, ctx.requestId);
273
- }
274
- try {
275
- // Use clearSession for ConversationMemoryManager
276
- const cleared = await memory.clearSession?.(sessionId);
277
- if (cleared === false) {
278
- return createErrorResponse("SESSION_NOT_FOUND", `Session '${sessionId}' not found`, undefined, ctx.requestId);
279
- }
280
- return {
281
- success: true,
282
- sessionId,
283
- message: "Session cleared successfully",
284
- metadata: {
285
- timestamp: new Date().toISOString(),
286
- requestId: ctx.requestId,
287
- },
288
- };
289
- }
290
- catch (error) {
291
- return createErrorResponse("MEMORY_ERROR", error instanceof Error
292
- ? error.message
293
- : "Failed to clear session", undefined, ctx.requestId);
294
- }
295
- },
330
+ handler: handleClearSession,
296
331
  description: "Clear a conversation session",
297
332
  tags: ["memory"],
298
333
  },
299
334
  {
300
335
  method: "DELETE",
301
336
  path: `${basePath}/memory/sessions`,
302
- handler: async (ctx) => {
303
- const memory = ctx.neurolink.conversationMemory;
304
- if (!memory) {
305
- return createErrorResponse("MEMORY_UNAVAILABLE", "Conversation memory not available", undefined, ctx.requestId);
306
- }
307
- try {
308
- // Use clearAllSessions for ConversationMemoryManager
309
- await memory.clearAllSessions?.();
310
- return {
311
- success: true,
312
- message: "All sessions cleared successfully",
313
- metadata: {
314
- timestamp: new Date().toISOString(),
315
- requestId: ctx.requestId,
316
- },
317
- };
318
- }
319
- catch (error) {
320
- return createErrorResponse("MEMORY_ERROR", error instanceof Error
321
- ? error.message
322
- : "Failed to clear sessions", undefined, ctx.requestId);
323
- }
324
- },
337
+ handler: handleClearAllSessions,
325
338
  description: "Clear all conversation sessions",
326
339
  tags: ["memory"],
327
340
  },
328
341
  {
329
342
  method: "GET",
330
343
  path: `${basePath}/memory/health`,
331
- handler: async (ctx) => {
332
- const memory = ctx.neurolink.conversationMemory;
333
- return {
334
- available: !!memory,
335
- type: memory?.constructor.name || "none",
336
- timestamp: new Date().toISOString(),
337
- };
338
- },
344
+ handler: handleMemoryHealth,
339
345
  description: "Check memory system health",
340
346
  tags: ["memory", "health"],
341
347
  },