@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
@@ -8,7 +8,7 @@ import type { SageMakerConfig, SageMakerModelConfig } from "../../types/provider
8
8
  /**
9
9
  * Streaming capability information for an endpoint
10
10
  */
11
- export interface StreamingCapability {
11
+ export type StreamingCapability = {
12
12
  /** Whether streaming is supported */
13
13
  supported: boolean;
14
14
  /** Detected streaming protocol */
@@ -28,11 +28,11 @@ export interface StreamingCapability {
28
28
  version?: string;
29
29
  tags?: string[];
30
30
  };
31
- }
31
+ };
32
32
  /**
33
33
  * Model type detection result
34
34
  */
35
- export interface ModelDetectionResult {
35
+ export type ModelDetectionResult = {
36
36
  /** Primary model type */
37
37
  type: StreamingCapability["modelType"];
38
38
  /** Detection confidence (0-1) */
@@ -41,11 +41,11 @@ export interface ModelDetectionResult {
41
41
  evidence: string[];
42
42
  /** Suggested configuration */
43
43
  suggestedConfig?: Partial<SageMakerModelConfig>;
44
- }
44
+ };
45
45
  /**
46
46
  * Endpoint health and metadata information
47
47
  */
48
- export interface EndpointHealth {
48
+ export type EndpointHealth = {
49
49
  /** Health status */
50
50
  status: "healthy" | "unhealthy" | "unknown";
51
51
  /** Response time in milliseconds */
@@ -59,7 +59,7 @@ export interface EndpointHealth {
59
59
  framework?: string;
60
60
  architecture?: string;
61
61
  };
62
- }
62
+ };
63
63
  /**
64
64
  * SageMaker Model Detection and Capability Discovery Service
65
65
  */
@@ -6,18 +6,18 @@
6
6
  /**
7
7
  * Simple diagnostic result interface
8
8
  */
9
- export interface DiagnosticResult {
9
+ export type DiagnosticResult = {
10
10
  name: string;
11
11
  category: "configuration" | "connectivity" | "streaming";
12
12
  status: "pass" | "fail" | "warning";
13
13
  message: string;
14
14
  details?: string;
15
15
  recommendation?: string;
16
- }
16
+ };
17
17
  /**
18
18
  * Diagnostic report interface
19
19
  */
20
- export interface DiagnosticReport {
20
+ export type DiagnosticReport = {
21
21
  overallStatus: "healthy" | "issues" | "critical";
22
22
  results: DiagnosticResult[];
23
23
  summary: {
@@ -26,7 +26,7 @@ export interface DiagnosticReport {
26
26
  failed: number;
27
27
  warnings: number;
28
28
  };
29
- }
29
+ };
30
30
  /**
31
31
  * Run quick diagnostics for SageMaker configuration
32
32
  */
@@ -10,12 +10,12 @@ import { type StructuredOutputParser } from "./structured-parser.js";
10
10
  * Shared bracket counting state and utilities
11
11
  * Used by both validateJSONCompleteness and StructuredOutputParser
12
12
  */
13
- export interface BracketCountingState {
13
+ export type BracketCountingState = {
14
14
  braceCount: number;
15
15
  bracketCount: number;
16
16
  inString: boolean;
17
17
  escapeNext: boolean;
18
- }
18
+ };
19
19
  /**
20
20
  * Process a single character for bracket counting logic
21
21
  * Shared utility to avoid code duplication between parsers
@@ -44,7 +44,7 @@ export declare function parseToolCallArguments(args: string): {
44
44
  /**
45
45
  * Base interface for streaming response parsers
46
46
  */
47
- export interface StreamingParser {
47
+ export type StreamingParser = {
48
48
  /** Parse a chunk of streaming data */
49
49
  parse(chunk: Uint8Array): SageMakerStreamChunk[];
50
50
  /** Check if a chunk indicates completion */
@@ -55,7 +55,7 @@ export interface StreamingParser {
55
55
  getName(): string;
56
56
  /** Reset parser state for new stream */
57
57
  reset(): void;
58
- }
58
+ };
59
59
  /**
60
60
  * Abstract base parser with common functionality
61
61
  */
@@ -127,8 +127,8 @@ export class RecursiveChunker extends BaseChunker {
127
127
  for (let i = 0; i < chunks.length; i++) {
128
128
  let chunk = chunks[i] ?? "";
129
129
  // Add overlap from previous chunk
130
- if (i > 0 && chunks[i - 1]) {
131
- const prevChunk = chunks[i - 1];
130
+ const prevChunk = i > 0 ? chunks[i - 1] : undefined;
131
+ if (prevChunk) {
132
132
  const overlapText = prevChunk.slice(-Math.min(overlap, prevChunk.length));
133
133
  chunk = overlapText + chunk;
134
134
  }
@@ -24,77 +24,12 @@
24
24
  * ```
25
25
  */
26
26
  import { MDocument } from "./MDocument.js";
27
- import type { DocumentType } from "../types.js";
28
- /**
29
- * Document loader options
30
- */
31
- export interface LoaderOptions {
32
- /** Custom metadata to add to document */
33
- metadata?: Record<string, unknown>;
34
- /** Encoding for text files */
35
- encoding?: BufferEncoding;
36
- /** Document type override */
37
- type?: DocumentType;
38
- }
39
- /**
40
- * Web loader options
41
- */
42
- export interface WebLoaderOptions extends LoaderOptions {
43
- /** Request timeout in milliseconds */
44
- timeout?: number;
45
- /** Custom headers for request */
46
- headers?: Record<string, string>;
47
- /** Extract only main content (remove navigation, ads, etc.) */
48
- extractMainContent?: boolean;
49
- /** Selector for main content (CSS selector) */
50
- contentSelector?: string;
51
- /** User agent string */
52
- userAgent?: string;
53
- }
54
- /**
55
- * PDF loader options
56
- */
57
- export interface PDFLoaderOptions extends LoaderOptions {
58
- /** Page range to extract (e.g., "1-5" or "1,3,5") */
59
- pageRange?: string;
60
- /** Extract images as base64 */
61
- extractImages?: boolean;
62
- /** OCR for scanned documents */
63
- enableOCR?: boolean;
64
- /** Preserve layout formatting */
65
- preserveLayout?: boolean;
66
- }
67
- /**
68
- * CSV loader options
69
- */
70
- export interface CSVLoaderOptions extends LoaderOptions {
71
- /** Delimiter character */
72
- delimiter?: string;
73
- /** Whether first row is header */
74
- hasHeader?: boolean;
75
- /** Column names (if no header) */
76
- columns?: string[];
77
- /** Output format */
78
- outputFormat?: "text" | "json" | "markdown";
79
- }
80
- /**
81
- * Abstract document loader interface
82
- */
83
- export interface DocumentLoader {
84
- /**
85
- * Load document from source
86
- * @param source - File path, URL, or content
87
- * @param options - Loader options
88
- * @returns Promise resolving to MDocument
89
- */
90
- load(source: string, options?: LoaderOptions): Promise<MDocument>;
91
- /**
92
- * Check if loader can handle the source
93
- * @param source - File path, URL, or content
94
- * @returns True if loader can handle the source
95
- */
96
- canHandle(source: string): boolean;
97
- }
27
+ import type { LoaderOptions, WebLoaderOptions, PDFLoaderOptions, CSVLoaderOptions, DocumentLoader } from "../../types/ragTypes.js";
28
+ export type { LoaderOptions } from "../../types/ragTypes.js";
29
+ export type { WebLoaderOptions } from "../../types/ragTypes.js";
30
+ export type { PDFLoaderOptions } from "../../types/ragTypes.js";
31
+ export type { CSVLoaderOptions } from "../../types/ragTypes.js";
32
+ export type { DocumentLoader } from "../../types/ragTypes.js";
98
33
  /**
99
34
  * Text file loader
100
35
  */
@@ -23,11 +23,11 @@
23
23
  * const pdfDoc = await PDFLoader.load('/path/to/document.pdf');
24
24
  * ```
25
25
  */
26
- import { readFile } from "fs/promises";
27
26
  import { existsSync } from "fs";
28
- import { extname, basename } from "path";
29
- import { MDocument } from "./MDocument.js";
27
+ import { readFile } from "fs/promises";
28
+ import { basename, extname } from "path";
30
29
  import { logger } from "../../utils/logger.js";
30
+ import { MDocument } from "./MDocument.js";
31
31
  /**
32
32
  * Text file loader
33
33
  */
@@ -244,8 +244,8 @@ export class PDFLoader {
244
244
  }
245
245
  async loadPdfParser() {
246
246
  try {
247
- // @ts-expect-error pdf-parse is an optional dependency
248
- const pdfParse = await import("pdf-parse");
247
+ // pdf-parse is an optional dependency - use dynamic import with type assertion
248
+ const pdfParse = (await import("pdf-parse"));
249
249
  return pdfParse.default || pdfParse;
250
250
  }
251
251
  catch {
@@ -52,11 +52,17 @@ export class GraphRAG {
52
52
  for (let i = 0; i < nodeIds.length; i++) {
53
53
  const edges = [];
54
54
  const nodeA = this.nodes.get(nodeIds[i]);
55
+ if (!nodeA?.embedding) {
56
+ continue;
57
+ }
55
58
  for (let j = 0; j < nodeIds.length; j++) {
56
59
  if (i === j) {
57
60
  continue;
58
61
  }
59
62
  const nodeB = this.nodes.get(nodeIds[j]);
63
+ if (!nodeB?.embedding) {
64
+ continue;
65
+ }
60
66
  const similarity = this.cosineSimilarity(nodeA.embedding, nodeB.embedding);
61
67
  if (similarity >= this.threshold) {
62
68
  edges.push({
@@ -137,14 +143,19 @@ export class GraphRAG {
137
143
  const rankedNodes = Array.from(scores.entries())
138
144
  .sort((a, b) => b[1] - a[1])
139
145
  .slice(0, topK)
140
- .map(([id, score]) => {
146
+ .flatMap(([id, score]) => {
141
147
  const node = this.nodes.get(id);
142
- return {
143
- id,
144
- content: node.content,
145
- metadata: node.metadata,
146
- score,
147
- };
148
+ if (!node) {
149
+ return [];
150
+ }
151
+ return [
152
+ {
153
+ id,
154
+ content: node.content,
155
+ metadata: node.metadata,
156
+ score,
157
+ },
158
+ ];
148
159
  });
149
160
  logger.debug("[GraphRAG] Query completed", {
150
161
  topK,
@@ -174,6 +185,9 @@ export class GraphRAG {
174
185
  if (existingId === id) {
175
186
  continue;
176
187
  }
188
+ if (!existingNode.embedding) {
189
+ continue;
190
+ }
177
191
  const similarity = this.cosineSimilarity(embedding.vector, existingNode.embedding);
178
192
  if (similarity >= this.threshold) {
179
193
  edges.push({
@@ -259,7 +273,7 @@ export class GraphRAG {
259
273
  const queue = [nodeId];
260
274
  while (queue.length > 0) {
261
275
  const current = queue.shift();
262
- if (visited.has(current)) {
276
+ if (current === undefined || visited.has(current)) {
263
277
  continue;
264
278
  }
265
279
  visited.add(current);
@@ -327,12 +341,15 @@ export class GraphRAG {
327
341
  for (let i = 0; i < nodeIds.length; i++) {
328
342
  const edges = [];
329
343
  const nodeA = this.nodes.get(nodeIds[i]);
344
+ if (!nodeA?.embedding) {
345
+ continue;
346
+ }
330
347
  for (let j = 0; j < nodeIds.length; j++) {
331
348
  if (i === j) {
332
349
  continue;
333
350
  }
334
351
  const nodeB = this.nodes.get(nodeIds[j]);
335
- if (!nodeA.embedding || !nodeB.embedding) {
352
+ if (!nodeB?.embedding) {
336
353
  continue;
337
354
  }
338
355
  const similarity = this.cosineSimilarity(nodeA.embedding, nodeB.embedding);
@@ -5,61 +5,11 @@
5
5
  * Follows the BaseFactory pattern for consistent lifecycle management.
6
6
  */
7
7
  import { BaseFactory } from "../../core/infrastructure/index.js";
8
- import type { Chunk, ExtractionResult, ExtractParams } from "../types.js";
9
- /**
10
- * Supported metadata extractor types
11
- */
12
- export type MetadataExtractorType = "llm" | "title" | "summary" | "keywords" | "questions" | "custom" | "composite";
13
- /**
14
- * Metadata Extractor interface - all extractors implement this
15
- */
16
- export interface MetadataExtractor {
17
- /** Extractor type identifier */
18
- readonly type: MetadataExtractorType;
19
- /**
20
- * Extract metadata from chunks
21
- * @param chunks - Array of chunks to extract metadata from
22
- * @param params - Extraction parameters
23
- * @returns Array of extraction results
24
- */
25
- extract(chunks: Chunk[], params?: ExtractParams): Promise<ExtractionResult[]>;
26
- }
27
- /**
28
- * Metadata extractor configuration
29
- */
30
- export interface MetadataExtractorConfig {
31
- /** Extractor type */
32
- type: MetadataExtractorType;
33
- /** Language model provider */
34
- provider?: string;
35
- /** Model name for LLM-based extraction */
36
- modelName?: string;
37
- /** Custom prompt template */
38
- promptTemplate?: string;
39
- /** Maximum tokens for LLM response */
40
- maxTokens?: number;
41
- /** Temperature for LLM generation */
42
- temperature?: number;
43
- }
44
- /**
45
- * Metadata extractor metadata for discovery and documentation
46
- */
47
- export interface MetadataExtractorMetadata {
48
- /** Human-readable description */
49
- description: string;
50
- /** Default configuration */
51
- defaultConfig: Partial<MetadataExtractorConfig>;
52
- /** Supported configuration options */
53
- supportedOptions: string[];
54
- /** Recommended use cases */
55
- useCases: string[];
56
- /** Alternative names for this extractor */
57
- aliases: string[];
58
- /** Whether this extractor requires an AI model */
59
- requiresModel: boolean;
60
- /** Extraction types this extractor can produce */
61
- extractionTypes: string[];
62
- }
8
+ import type { MetadataExtractor, MetadataExtractorConfig, MetadataExtractorMetadata, MetadataExtractorType } from "../../types/ragTypes.js";
9
+ export type { MetadataExtractorType } from "../../types/ragTypes.js";
10
+ export type { MetadataExtractor } from "../../types/ragTypes.js";
11
+ export type { MetadataExtractorConfig } from "../../types/ragTypes.js";
12
+ export type { MetadataExtractorMetadata } from "../../types/ragTypes.js";
63
13
  /**
64
14
  * Metadata Extractor Factory
65
15
  *
@@ -113,10 +113,13 @@ export class LLMMetadataExtractor {
113
113
  const groups = new Map();
114
114
  for (const chunk of chunks) {
115
115
  const docId = chunk.metadata.documentId;
116
- if (!groups.has(docId)) {
117
- groups.set(docId, []);
116
+ const group = groups.get(docId);
117
+ if (group) {
118
+ group.push(chunk);
119
+ }
120
+ else {
121
+ groups.set(docId, [chunk]);
118
122
  }
119
- groups.get(docId).push(chunk);
120
123
  }
121
124
  return groups;
122
125
  }
@@ -25,133 +25,15 @@
25
25
  * console.log(response.answer, response.sources);
26
26
  * ```
27
27
  */
28
- import type { ChunkingStrategy } from "../types.js";
29
28
  import { MDocument } from "../document/MDocument.js";
30
- import { type VectorStore } from "../retrieval/vectorQueryTool.js";
31
- import { type BM25Index } from "../retrieval/hybridSearch.js";
32
- /**
33
- * Embedding model configuration
34
- */
35
- export interface EmbeddingModelConfig {
36
- provider: string;
37
- modelName: string;
38
- }
39
- /**
40
- * Generation model configuration
41
- */
42
- export interface GenerationModelConfig {
43
- provider: string;
44
- modelName: string;
45
- temperature?: number;
46
- maxTokens?: number;
47
- }
48
- /**
49
- * RAG pipeline configuration
50
- */
51
- export interface RAGPipelineConfig {
52
- /** Pipeline identifier */
53
- id?: string;
54
- /** Vector store instance (defaults to in-memory) */
55
- vectorStore?: VectorStore;
56
- /** BM25 index for hybrid search (defaults to in-memory) */
57
- bm25Index?: BM25Index;
58
- /** Index name for vector store */
59
- indexName?: string;
60
- /** Embedding model configuration */
61
- embeddingModel: EmbeddingModelConfig;
62
- /** Generation model configuration (for RAG responses) */
63
- generationModel?: GenerationModelConfig;
64
- /** Default chunking strategy */
65
- defaultChunkingStrategy?: ChunkingStrategy;
66
- /** Default chunk size */
67
- defaultChunkSize?: number;
68
- /** Default chunk overlap */
69
- defaultChunkOverlap?: number;
70
- /** Enable hybrid search (vector + BM25) */
71
- enableHybridSearch?: boolean;
72
- /** Enable Graph RAG */
73
- enableGraphRAG?: boolean;
74
- /** Graph RAG similarity threshold */
75
- graphThreshold?: number;
76
- /** Default number of results to retrieve */
77
- defaultTopK?: number;
78
- /** Enable reranking */
79
- enableReranking?: boolean;
80
- /** Reranking model configuration */
81
- rerankingModel?: EmbeddingModelConfig;
82
- }
83
- /**
84
- * Ingestion options
85
- */
86
- export interface IngestOptions {
87
- /** Chunking strategy override */
88
- strategy?: ChunkingStrategy;
89
- /** Chunk size override */
90
- chunkSize?: number;
91
- /** Chunk overlap override */
92
- chunkOverlap?: number;
93
- /** Custom metadata to add */
94
- metadata?: Record<string, unknown>;
95
- /** Extract metadata using LLM */
96
- extractMetadata?: boolean;
97
- }
98
- /**
99
- * Query options
100
- */
101
- export interface QueryOptions {
102
- /** Number of chunks to retrieve */
103
- topK?: number;
104
- /** Use hybrid search */
105
- hybrid?: boolean;
106
- /** Use Graph RAG */
107
- graph?: boolean;
108
- /** Enable reranking */
109
- rerank?: boolean;
110
- /** Metadata filter */
111
- filter?: Record<string, unknown>;
112
- /** Include sources in response */
113
- includeSources?: boolean;
114
- /** Generate response (vs just retrieve) */
115
- generate?: boolean;
116
- /** Custom system prompt for generation */
117
- systemPrompt?: string;
118
- /** Temperature for generation */
119
- temperature?: number;
120
- }
121
- /**
122
- * Query response
123
- */
124
- export interface RAGResponse {
125
- /** Generated answer (if generate=true) */
126
- answer?: string;
127
- /** Retrieved context chunks */
128
- context: string;
129
- /** Source documents/chunks */
130
- sources: Array<{
131
- id: string;
132
- text: string;
133
- score: number;
134
- metadata?: Record<string, unknown>;
135
- }>;
136
- /** Query metadata */
137
- metadata: {
138
- queryTime: number;
139
- retrievalMethod: string;
140
- chunksRetrieved: number;
141
- reranked: boolean;
142
- };
143
- }
144
- /**
145
- * Pipeline statistics
146
- */
147
- export interface PipelineStats {
148
- totalDocuments: number;
149
- totalChunks: number;
150
- indexName: string;
151
- embeddingDimension?: number;
152
- hybridSearchEnabled: boolean;
153
- graphRAGEnabled: boolean;
154
- }
29
+ import type { RAGPipelineConfig, IngestOptions, QueryOptions, RAGResponse, PipelineStats } from "../../types/ragTypes.js";
30
+ export type { EmbeddingModelConfig } from "../../types/ragTypes.js";
31
+ export type { GenerationModelConfig } from "../../types/ragTypes.js";
32
+ export type { RAGPipelineConfig } from "../../types/ragTypes.js";
33
+ export type { IngestOptions } from "../../types/ragTypes.js";
34
+ export type { QueryOptions } from "../../types/ragTypes.js";
35
+ export type { RAGResponse } from "../../types/ragTypes.js";
36
+ export type { PipelineStats } from "../../types/ragTypes.js";
155
37
  /**
156
38
  * RAG Pipeline Orchestrator
157
39
  *
@@ -89,7 +89,7 @@ export class RAGPipeline {
89
89
  this.hybridSearch = createHybridSearch({
90
90
  vectorStore: this.vectorStore,
91
91
  bm25Index: this.bm25Index,
92
- indexName: this.config.indexName,
92
+ indexName: this.config.indexName ?? "default",
93
93
  embeddingModel: this.config.embeddingModel,
94
94
  });
95
95
  }
@@ -103,9 +103,9 @@ export class RAGPipeline {
103
103
  */
104
104
  async ingest(sources, options) {
105
105
  await this.ensureInitialized();
106
- const strategy = options?.strategy || this.config.defaultChunkingStrategy;
107
- const chunkSize = options?.chunkSize || this.config.defaultChunkSize;
108
- const chunkOverlap = options?.chunkOverlap || this.config.defaultChunkOverlap;
106
+ const strategy = options?.strategy || this.config.defaultChunkingStrategy || "recursive";
107
+ const chunkSize = options?.chunkSize || this.config.defaultChunkSize || 1000;
108
+ const chunkOverlap = options?.chunkOverlap || this.config.defaultChunkOverlap || 200;
109
109
  let documentsProcessed = 0;
110
110
  let chunksCreated = 0;
111
111
  for (const source of sources) {
@@ -137,13 +137,13 @@ export class RAGPipeline {
137
137
  const embeddings = doc.getEmbeddings();
138
138
  // Store in vector store
139
139
  await this.vectorStore.query({
140
- indexName: this.config.indexName,
140
+ indexName: this.config.indexName ?? "default",
141
141
  queryVector: embeddings[0],
142
142
  topK: 1,
143
143
  }); // Warm up
144
144
  // Upsert into vector store
145
145
  if ("upsert" in this.vectorStore) {
146
- await this.vectorStore.upsert(this.config.indexName, chunks.map((chunk, i) => ({
146
+ await this.vectorStore.upsert(this.config.indexName ?? "default", chunks.map((chunk, i) => ({
147
147
  id: chunk.id,
148
148
  vector: embeddings[i],
149
149
  metadata: { ...chunk.metadata, text: chunk.text },
@@ -197,7 +197,7 @@ export class RAGPipeline {
197
197
  async query(query, options) {
198
198
  await this.ensureInitialized();
199
199
  const startTime = Date.now();
200
- const topK = options?.topK || this.config.defaultTopK;
200
+ const topK = options?.topK || this.config.defaultTopK || 5;
201
201
  const useHybrid = options?.hybrid ?? this.config.enableHybridSearch;
202
202
  const useGraph = options?.graph ?? this.config.enableGraphRAG;
203
203
  const useRerank = options?.rerank ?? this.config.enableReranking;
@@ -233,7 +233,7 @@ export class RAGPipeline {
233
233
  else {
234
234
  // Vector search
235
235
  results = await this.vectorStore.query({
236
- indexName: this.config.indexName,
236
+ indexName: this.config.indexName ?? "default",
237
237
  queryVector: queryEmbedding,
238
238
  topK: topK * 2,
239
239
  filter: options?.filter,
@@ -293,10 +293,10 @@ export class RAGPipeline {
293
293
  return {
294
294
  totalDocuments: this.documents.size,
295
295
  totalChunks: this.allChunks.length,
296
- indexName: this.config.indexName,
296
+ indexName: this.config.indexName ?? "default",
297
297
  embeddingDimension: this.allChunks[0]?.embedding?.length,
298
- hybridSearchEnabled: this.config.enableHybridSearch,
299
- graphRAGEnabled: this.config.enableGraphRAG,
298
+ hybridSearchEnabled: this.config.enableHybridSearch ?? false,
299
+ graphRAGEnabled: this.config.enableGraphRAG ?? false,
300
300
  };
301
301
  }
302
302
  /**
@@ -12,52 +12,13 @@
12
12
  * - Context summarization
13
13
  */
14
14
  import type { Chunk, VectorQueryResult } from "../types.js";
15
+ import type { ContextAssemblyOptions, ContextWindow } from "../../types/ragTypes.js";
15
16
  /**
16
17
  * Citation format options
17
18
  */
18
19
  export type CitationFormat = "inline" | "footnote" | "numbered" | "none";
19
- /**
20
- * Context assembly options
21
- */
22
- export interface ContextAssemblyOptions {
23
- /** Maximum characters in assembled context */
24
- maxChars?: number;
25
- /** Maximum tokens (approximate, 4 chars/token) */
26
- maxTokens?: number;
27
- /** Citation format to use */
28
- citationFormat?: CitationFormat;
29
- /** Separator between chunks */
30
- separator?: string;
31
- /** Include chunk metadata in context */
32
- includeMetadata?: boolean;
33
- /** Deduplicate overlapping content */
34
- deduplicate?: boolean;
35
- /** Similarity threshold for deduplication (0-1) */
36
- dedupeThreshold?: number;
37
- /** Order by relevance score */
38
- orderByRelevance?: boolean;
39
- /** Include section headers */
40
- includeSectionHeaders?: boolean;
41
- /** Header template (use {index}, {source}, {score} placeholders) */
42
- headerTemplate?: string;
43
- }
44
- /**
45
- * Context window representation
46
- */
47
- export interface ContextWindow {
48
- /** Assembled context text */
49
- text: string;
50
- /** Number of chunks included */
51
- chunkCount: number;
52
- /** Total character count */
53
- charCount: number;
54
- /** Estimated token count */
55
- tokenCount: number;
56
- /** Chunks that were truncated/excluded */
57
- truncatedChunks: number;
58
- /** Citation map (id -> citation text) */
59
- citations: Map<string, string>;
60
- }
20
+ export type { ContextAssemblyOptions } from "../../types/ragTypes.js";
21
+ export type { ContextWindow } from "../../types/ragTypes.js";
61
22
  /**
62
23
  * Assemble context from retrieved results
63
24
  *