rag-lite-ts 2.1.1 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (309) hide show
  1. package/dist/{core → cjs/core}/model-validator.js +1 -1
  2. package/dist/{core → cjs/core}/vector-index.js +4 -2
  3. package/dist/esm/api-errors.d.ts +90 -0
  4. package/dist/esm/api-errors.js +320 -0
  5. package/dist/esm/cli/indexer.d.ts +11 -0
  6. package/dist/esm/cli/indexer.js +471 -0
  7. package/dist/esm/cli/search.d.ts +7 -0
  8. package/dist/esm/cli/search.js +332 -0
  9. package/dist/esm/cli.d.ts +3 -0
  10. package/dist/esm/cli.js +529 -0
  11. package/dist/esm/config.d.ts +51 -0
  12. package/dist/esm/config.js +79 -0
  13. package/dist/esm/core/abstract-embedder.d.ts +125 -0
  14. package/dist/esm/core/abstract-embedder.js +264 -0
  15. package/dist/esm/core/actionable-error-messages.d.ts +60 -0
  16. package/dist/esm/core/actionable-error-messages.js +397 -0
  17. package/dist/esm/core/adapters.d.ts +93 -0
  18. package/dist/esm/core/adapters.js +139 -0
  19. package/dist/esm/core/batch-processing-optimizer.d.ts +155 -0
  20. package/dist/esm/core/batch-processing-optimizer.js +536 -0
  21. package/dist/esm/core/binary-index-format.d.ts +78 -0
  22. package/dist/esm/core/binary-index-format.js +291 -0
  23. package/dist/esm/core/chunker.d.ts +119 -0
  24. package/dist/esm/core/chunker.js +73 -0
  25. package/dist/esm/core/cli-database-utils.d.ts +53 -0
  26. package/dist/esm/core/cli-database-utils.js +239 -0
  27. package/dist/esm/core/config.d.ts +102 -0
  28. package/dist/esm/core/config.js +247 -0
  29. package/dist/esm/core/content-errors.d.ts +111 -0
  30. package/dist/esm/core/content-errors.js +362 -0
  31. package/dist/esm/core/content-manager.d.ts +335 -0
  32. package/dist/esm/core/content-manager.js +1476 -0
  33. package/dist/esm/core/content-performance-optimizer.d.ts +150 -0
  34. package/dist/esm/core/content-performance-optimizer.js +516 -0
  35. package/dist/esm/core/content-resolver.d.ts +104 -0
  36. package/dist/esm/core/content-resolver.js +285 -0
  37. package/dist/esm/core/cross-modal-search.d.ts +164 -0
  38. package/dist/esm/core/cross-modal-search.js +342 -0
  39. package/dist/esm/core/database-connection-manager.d.ts +109 -0
  40. package/dist/esm/core/database-connection-manager.js +310 -0
  41. package/dist/esm/core/db.d.ts +213 -0
  42. package/dist/esm/core/db.js +895 -0
  43. package/dist/esm/core/embedder-factory.d.ts +154 -0
  44. package/dist/esm/core/embedder-factory.js +311 -0
  45. package/dist/esm/core/error-handler.d.ts +112 -0
  46. package/dist/esm/core/error-handler.js +239 -0
  47. package/dist/esm/core/index.d.ts +59 -0
  48. package/dist/esm/core/index.js +69 -0
  49. package/dist/esm/core/ingestion.d.ts +202 -0
  50. package/dist/esm/core/ingestion.js +901 -0
  51. package/dist/esm/core/interfaces.d.ts +408 -0
  52. package/dist/esm/core/interfaces.js +106 -0
  53. package/dist/esm/core/lazy-dependency-loader.d.ts +147 -0
  54. package/dist/esm/core/lazy-dependency-loader.js +435 -0
  55. package/dist/esm/core/mode-detection-service.d.ts +150 -0
  56. package/dist/esm/core/mode-detection-service.js +565 -0
  57. package/dist/esm/core/mode-model-validator.d.ts +92 -0
  58. package/dist/esm/core/mode-model-validator.js +203 -0
  59. package/dist/esm/core/model-registry.d.ts +116 -0
  60. package/dist/esm/core/model-registry.js +411 -0
  61. package/dist/esm/core/model-validator.d.ts +217 -0
  62. package/dist/esm/core/model-validator.js +782 -0
  63. package/dist/esm/core/path-manager.d.ts +47 -0
  64. package/dist/esm/core/path-manager.js +71 -0
  65. package/dist/esm/core/raglite-paths.d.ts +121 -0
  66. package/dist/esm/core/raglite-paths.js +145 -0
  67. package/dist/esm/core/reranking-config.d.ts +42 -0
  68. package/dist/esm/core/reranking-config.js +147 -0
  69. package/dist/esm/core/reranking-factory.d.ts +92 -0
  70. package/dist/esm/core/reranking-factory.js +410 -0
  71. package/dist/esm/core/reranking-strategies.d.ts +310 -0
  72. package/dist/esm/core/reranking-strategies.js +650 -0
  73. package/dist/esm/core/resource-cleanup.d.ts +163 -0
  74. package/dist/esm/core/resource-cleanup.js +371 -0
  75. package/dist/esm/core/resource-manager.d.ts +212 -0
  76. package/dist/esm/core/resource-manager.js +564 -0
  77. package/dist/esm/core/search-pipeline.d.ts +111 -0
  78. package/dist/esm/core/search-pipeline.js +287 -0
  79. package/dist/esm/core/search.d.ts +141 -0
  80. package/dist/esm/core/search.js +320 -0
  81. package/dist/esm/core/streaming-operations.d.ts +145 -0
  82. package/dist/esm/core/streaming-operations.js +409 -0
  83. package/dist/esm/core/types.d.ts +66 -0
  84. package/dist/esm/core/types.js +6 -0
  85. package/dist/esm/core/universal-embedder.d.ts +177 -0
  86. package/dist/esm/core/universal-embedder.js +139 -0
  87. package/dist/esm/core/validation-messages.d.ts +99 -0
  88. package/dist/esm/core/validation-messages.js +334 -0
  89. package/dist/esm/core/vector-index.d.ts +72 -0
  90. package/dist/esm/core/vector-index.js +333 -0
  91. package/dist/esm/dom-polyfills.d.ts +6 -0
  92. package/dist/esm/dom-polyfills.js +37 -0
  93. package/dist/esm/factories/index.d.ts +27 -0
  94. package/dist/esm/factories/index.js +29 -0
  95. package/dist/esm/factories/ingestion-factory.d.ts +200 -0
  96. package/dist/esm/factories/ingestion-factory.js +477 -0
  97. package/dist/esm/factories/search-factory.d.ts +154 -0
  98. package/dist/esm/factories/search-factory.js +344 -0
  99. package/dist/esm/file-processor.d.ts +147 -0
  100. package/dist/esm/file-processor.js +963 -0
  101. package/dist/esm/index-manager.d.ts +116 -0
  102. package/dist/esm/index-manager.js +598 -0
  103. package/dist/esm/index.d.ts +75 -0
  104. package/dist/esm/index.js +110 -0
  105. package/dist/esm/indexer.d.ts +7 -0
  106. package/dist/esm/indexer.js +54 -0
  107. package/dist/esm/ingestion.d.ts +63 -0
  108. package/dist/esm/ingestion.js +124 -0
  109. package/dist/esm/mcp-server.d.ts +46 -0
  110. package/dist/esm/mcp-server.js +1820 -0
  111. package/dist/esm/multimodal/clip-embedder.d.ts +327 -0
  112. package/dist/esm/multimodal/clip-embedder.js +996 -0
  113. package/dist/esm/multimodal/index.d.ts +6 -0
  114. package/dist/esm/multimodal/index.js +6 -0
  115. package/dist/esm/preprocess.d.ts +19 -0
  116. package/dist/esm/preprocess.js +203 -0
  117. package/dist/esm/preprocessors/index.d.ts +17 -0
  118. package/dist/esm/preprocessors/index.js +38 -0
  119. package/dist/esm/preprocessors/mdx.d.ts +25 -0
  120. package/dist/esm/preprocessors/mdx.js +101 -0
  121. package/dist/esm/preprocessors/mermaid.d.ts +68 -0
  122. package/dist/esm/preprocessors/mermaid.js +329 -0
  123. package/dist/esm/preprocessors/registry.d.ts +56 -0
  124. package/dist/esm/preprocessors/registry.js +179 -0
  125. package/dist/esm/run-error-recovery-tests.d.ts +7 -0
  126. package/dist/esm/run-error-recovery-tests.js +101 -0
  127. package/dist/esm/search-standalone.d.ts +7 -0
  128. package/dist/esm/search-standalone.js +117 -0
  129. package/dist/esm/search.d.ts +99 -0
  130. package/dist/esm/search.js +177 -0
  131. package/dist/esm/test-utils.d.ts +18 -0
  132. package/dist/esm/test-utils.js +27 -0
  133. package/dist/esm/text/chunker.d.ts +33 -0
  134. package/dist/esm/text/chunker.js +279 -0
  135. package/dist/esm/text/embedder.d.ts +111 -0
  136. package/dist/esm/text/embedder.js +386 -0
  137. package/dist/esm/text/index.d.ts +8 -0
  138. package/dist/esm/text/index.js +9 -0
  139. package/dist/esm/text/preprocessors/index.d.ts +17 -0
  140. package/dist/esm/text/preprocessors/index.js +38 -0
  141. package/dist/esm/text/preprocessors/mdx.d.ts +25 -0
  142. package/dist/esm/text/preprocessors/mdx.js +101 -0
  143. package/dist/esm/text/preprocessors/mermaid.d.ts +68 -0
  144. package/dist/esm/text/preprocessors/mermaid.js +330 -0
  145. package/dist/esm/text/preprocessors/registry.d.ts +56 -0
  146. package/dist/esm/text/preprocessors/registry.js +180 -0
  147. package/dist/esm/text/reranker.d.ts +49 -0
  148. package/dist/esm/text/reranker.js +274 -0
  149. package/dist/esm/text/sentence-transformer-embedder.d.ts +96 -0
  150. package/dist/esm/text/sentence-transformer-embedder.js +340 -0
  151. package/dist/esm/text/tokenizer.d.ts +22 -0
  152. package/dist/esm/text/tokenizer.js +64 -0
  153. package/dist/esm/types.d.ts +83 -0
  154. package/dist/esm/types.js +3 -0
  155. package/dist/esm/utils/vector-math.d.ts +31 -0
  156. package/dist/esm/utils/vector-math.js +70 -0
  157. package/package.json +30 -12
  158. /package/dist/{api-errors.d.ts → cjs/api-errors.d.ts} +0 -0
  159. /package/dist/{api-errors.js → cjs/api-errors.js} +0 -0
  160. /package/dist/{cli → cjs/cli}/indexer.d.ts +0 -0
  161. /package/dist/{cli → cjs/cli}/indexer.js +0 -0
  162. /package/dist/{cli → cjs/cli}/search.d.ts +0 -0
  163. /package/dist/{cli → cjs/cli}/search.js +0 -0
  164. /package/dist/{cli.d.ts → cjs/cli.d.ts} +0 -0
  165. /package/dist/{cli.js → cjs/cli.js} +0 -0
  166. /package/dist/{config.d.ts → cjs/config.d.ts} +0 -0
  167. /package/dist/{config.js → cjs/config.js} +0 -0
  168. /package/dist/{core → cjs/core}/abstract-embedder.d.ts +0 -0
  169. /package/dist/{core → cjs/core}/abstract-embedder.js +0 -0
  170. /package/dist/{core → cjs/core}/actionable-error-messages.d.ts +0 -0
  171. /package/dist/{core → cjs/core}/actionable-error-messages.js +0 -0
  172. /package/dist/{core → cjs/core}/adapters.d.ts +0 -0
  173. /package/dist/{core → cjs/core}/adapters.js +0 -0
  174. /package/dist/{core → cjs/core}/batch-processing-optimizer.d.ts +0 -0
  175. /package/dist/{core → cjs/core}/batch-processing-optimizer.js +0 -0
  176. /package/dist/{core → cjs/core}/binary-index-format.d.ts +0 -0
  177. /package/dist/{core → cjs/core}/binary-index-format.js +0 -0
  178. /package/dist/{core → cjs/core}/chunker.d.ts +0 -0
  179. /package/dist/{core → cjs/core}/chunker.js +0 -0
  180. /package/dist/{core → cjs/core}/cli-database-utils.d.ts +0 -0
  181. /package/dist/{core → cjs/core}/cli-database-utils.js +0 -0
  182. /package/dist/{core → cjs/core}/config.d.ts +0 -0
  183. /package/dist/{core → cjs/core}/config.js +0 -0
  184. /package/dist/{core → cjs/core}/content-errors.d.ts +0 -0
  185. /package/dist/{core → cjs/core}/content-errors.js +0 -0
  186. /package/dist/{core → cjs/core}/content-manager.d.ts +0 -0
  187. /package/dist/{core → cjs/core}/content-manager.js +0 -0
  188. /package/dist/{core → cjs/core}/content-performance-optimizer.d.ts +0 -0
  189. /package/dist/{core → cjs/core}/content-performance-optimizer.js +0 -0
  190. /package/dist/{core → cjs/core}/content-resolver.d.ts +0 -0
  191. /package/dist/{core → cjs/core}/content-resolver.js +0 -0
  192. /package/dist/{core → cjs/core}/cross-modal-search.d.ts +0 -0
  193. /package/dist/{core → cjs/core}/cross-modal-search.js +0 -0
  194. /package/dist/{core → cjs/core}/database-connection-manager.d.ts +0 -0
  195. /package/dist/{core → cjs/core}/database-connection-manager.js +0 -0
  196. /package/dist/{core → cjs/core}/db.d.ts +0 -0
  197. /package/dist/{core → cjs/core}/db.js +0 -0
  198. /package/dist/{core → cjs/core}/embedder-factory.d.ts +0 -0
  199. /package/dist/{core → cjs/core}/embedder-factory.js +0 -0
  200. /package/dist/{core → cjs/core}/error-handler.d.ts +0 -0
  201. /package/dist/{core → cjs/core}/error-handler.js +0 -0
  202. /package/dist/{core → cjs/core}/index.d.ts +0 -0
  203. /package/dist/{core → cjs/core}/index.js +0 -0
  204. /package/dist/{core → cjs/core}/ingestion.d.ts +0 -0
  205. /package/dist/{core → cjs/core}/ingestion.js +0 -0
  206. /package/dist/{core → cjs/core}/interfaces.d.ts +0 -0
  207. /package/dist/{core → cjs/core}/interfaces.js +0 -0
  208. /package/dist/{core → cjs/core}/lazy-dependency-loader.d.ts +0 -0
  209. /package/dist/{core → cjs/core}/lazy-dependency-loader.js +0 -0
  210. /package/dist/{core → cjs/core}/mode-detection-service.d.ts +0 -0
  211. /package/dist/{core → cjs/core}/mode-detection-service.js +0 -0
  212. /package/dist/{core → cjs/core}/mode-model-validator.d.ts +0 -0
  213. /package/dist/{core → cjs/core}/mode-model-validator.js +0 -0
  214. /package/dist/{core → cjs/core}/model-registry.d.ts +0 -0
  215. /package/dist/{core → cjs/core}/model-registry.js +0 -0
  216. /package/dist/{core → cjs/core}/model-validator.d.ts +0 -0
  217. /package/dist/{core → cjs/core}/path-manager.d.ts +0 -0
  218. /package/dist/{core → cjs/core}/path-manager.js +0 -0
  219. /package/dist/{core → cjs/core}/raglite-paths.d.ts +0 -0
  220. /package/dist/{core → cjs/core}/raglite-paths.js +0 -0
  221. /package/dist/{core → cjs/core}/reranking-config.d.ts +0 -0
  222. /package/dist/{core → cjs/core}/reranking-config.js +0 -0
  223. /package/dist/{core → cjs/core}/reranking-factory.d.ts +0 -0
  224. /package/dist/{core → cjs/core}/reranking-factory.js +0 -0
  225. /package/dist/{core → cjs/core}/reranking-strategies.d.ts +0 -0
  226. /package/dist/{core → cjs/core}/reranking-strategies.js +0 -0
  227. /package/dist/{core → cjs/core}/resource-cleanup.d.ts +0 -0
  228. /package/dist/{core → cjs/core}/resource-cleanup.js +0 -0
  229. /package/dist/{core → cjs/core}/resource-manager.d.ts +0 -0
  230. /package/dist/{core → cjs/core}/resource-manager.js +0 -0
  231. /package/dist/{core → cjs/core}/search-pipeline.d.ts +0 -0
  232. /package/dist/{core → cjs/core}/search-pipeline.js +0 -0
  233. /package/dist/{core → cjs/core}/search.d.ts +0 -0
  234. /package/dist/{core → cjs/core}/search.js +0 -0
  235. /package/dist/{core → cjs/core}/streaming-operations.d.ts +0 -0
  236. /package/dist/{core → cjs/core}/streaming-operations.js +0 -0
  237. /package/dist/{core → cjs/core}/types.d.ts +0 -0
  238. /package/dist/{core → cjs/core}/types.js +0 -0
  239. /package/dist/{core → cjs/core}/universal-embedder.d.ts +0 -0
  240. /package/dist/{core → cjs/core}/universal-embedder.js +0 -0
  241. /package/dist/{core → cjs/core}/validation-messages.d.ts +0 -0
  242. /package/dist/{core → cjs/core}/validation-messages.js +0 -0
  243. /package/dist/{core → cjs/core}/vector-index.d.ts +0 -0
  244. /package/dist/{dom-polyfills.d.ts → cjs/dom-polyfills.d.ts} +0 -0
  245. /package/dist/{dom-polyfills.js → cjs/dom-polyfills.js} +0 -0
  246. /package/dist/{factories → cjs/factories}/index.d.ts +0 -0
  247. /package/dist/{factories → cjs/factories}/index.js +0 -0
  248. /package/dist/{factories → cjs/factories}/ingestion-factory.d.ts +0 -0
  249. /package/dist/{factories → cjs/factories}/ingestion-factory.js +0 -0
  250. /package/dist/{factories → cjs/factories}/search-factory.d.ts +0 -0
  251. /package/dist/{factories → cjs/factories}/search-factory.js +0 -0
  252. /package/dist/{file-processor.d.ts → cjs/file-processor.d.ts} +0 -0
  253. /package/dist/{file-processor.js → cjs/file-processor.js} +0 -0
  254. /package/dist/{index-manager.d.ts → cjs/index-manager.d.ts} +0 -0
  255. /package/dist/{index-manager.js → cjs/index-manager.js} +0 -0
  256. /package/dist/{index.d.ts → cjs/index.d.ts} +0 -0
  257. /package/dist/{index.js → cjs/index.js} +0 -0
  258. /package/dist/{indexer.d.ts → cjs/indexer.d.ts} +0 -0
  259. /package/dist/{indexer.js → cjs/indexer.js} +0 -0
  260. /package/dist/{ingestion.d.ts → cjs/ingestion.d.ts} +0 -0
  261. /package/dist/{ingestion.js → cjs/ingestion.js} +0 -0
  262. /package/dist/{mcp-server.d.ts → cjs/mcp-server.d.ts} +0 -0
  263. /package/dist/{mcp-server.js → cjs/mcp-server.js} +0 -0
  264. /package/dist/{multimodal → cjs/multimodal}/clip-embedder.d.ts +0 -0
  265. /package/dist/{multimodal → cjs/multimodal}/clip-embedder.js +0 -0
  266. /package/dist/{multimodal → cjs/multimodal}/index.d.ts +0 -0
  267. /package/dist/{multimodal → cjs/multimodal}/index.js +0 -0
  268. /package/dist/{preprocess.d.ts → cjs/preprocess.d.ts} +0 -0
  269. /package/dist/{preprocess.js → cjs/preprocess.js} +0 -0
  270. /package/dist/{preprocessors → cjs/preprocessors}/index.d.ts +0 -0
  271. /package/dist/{preprocessors → cjs/preprocessors}/index.js +0 -0
  272. /package/dist/{preprocessors → cjs/preprocessors}/mdx.d.ts +0 -0
  273. /package/dist/{preprocessors → cjs/preprocessors}/mdx.js +0 -0
  274. /package/dist/{preprocessors → cjs/preprocessors}/mermaid.d.ts +0 -0
  275. /package/dist/{preprocessors → cjs/preprocessors}/mermaid.js +0 -0
  276. /package/dist/{preprocessors → cjs/preprocessors}/registry.d.ts +0 -0
  277. /package/dist/{preprocessors → cjs/preprocessors}/registry.js +0 -0
  278. /package/dist/{run-error-recovery-tests.d.ts → cjs/run-error-recovery-tests.d.ts} +0 -0
  279. /package/dist/{run-error-recovery-tests.js → cjs/run-error-recovery-tests.js} +0 -0
  280. /package/dist/{search-standalone.d.ts → cjs/search-standalone.d.ts} +0 -0
  281. /package/dist/{search-standalone.js → cjs/search-standalone.js} +0 -0
  282. /package/dist/{search.d.ts → cjs/search.d.ts} +0 -0
  283. /package/dist/{search.js → cjs/search.js} +0 -0
  284. /package/dist/{test-utils.d.ts → cjs/test-utils.d.ts} +0 -0
  285. /package/dist/{test-utils.js → cjs/test-utils.js} +0 -0
  286. /package/dist/{text → cjs/text}/chunker.d.ts +0 -0
  287. /package/dist/{text → cjs/text}/chunker.js +0 -0
  288. /package/dist/{text → cjs/text}/embedder.d.ts +0 -0
  289. /package/dist/{text → cjs/text}/embedder.js +0 -0
  290. /package/dist/{text → cjs/text}/index.d.ts +0 -0
  291. /package/dist/{text → cjs/text}/index.js +0 -0
  292. /package/dist/{text → cjs/text}/preprocessors/index.d.ts +0 -0
  293. /package/dist/{text → cjs/text}/preprocessors/index.js +0 -0
  294. /package/dist/{text → cjs/text}/preprocessors/mdx.d.ts +0 -0
  295. /package/dist/{text → cjs/text}/preprocessors/mdx.js +0 -0
  296. /package/dist/{text → cjs/text}/preprocessors/mermaid.d.ts +0 -0
  297. /package/dist/{text → cjs/text}/preprocessors/mermaid.js +0 -0
  298. /package/dist/{text → cjs/text}/preprocessors/registry.d.ts +0 -0
  299. /package/dist/{text → cjs/text}/preprocessors/registry.js +0 -0
  300. /package/dist/{text → cjs/text}/reranker.d.ts +0 -0
  301. /package/dist/{text → cjs/text}/reranker.js +0 -0
  302. /package/dist/{text → cjs/text}/sentence-transformer-embedder.d.ts +0 -0
  303. /package/dist/{text → cjs/text}/sentence-transformer-embedder.js +0 -0
  304. /package/dist/{text → cjs/text}/tokenizer.d.ts +0 -0
  305. /package/dist/{text → cjs/text}/tokenizer.js +0 -0
  306. /package/dist/{types.d.ts → cjs/types.d.ts} +0 -0
  307. /package/dist/{types.js → cjs/types.js} +0 -0
  308. /package/dist/{utils → cjs/utils}/vector-math.d.ts +0 -0
  309. /package/dist/{utils → cjs/utils}/vector-math.js +0 -0
@@ -0,0 +1,335 @@
1
+ /**
2
+ * Content Manager - Handles content ingestion routing for unified content system
3
+ * Routes filesystem content to reference storage and memory content to content directory
4
+ * Implements deduplication and content ID generation
5
+ */
6
+ import { DatabaseConnection } from './db.js';
7
+ /**
8
+ * Memory content metadata for ingestion
9
+ */
10
+ export interface MemoryContentMetadata {
11
+ displayName: string;
12
+ contentType?: string;
13
+ originalPath?: string;
14
+ }
15
+ /**
16
+ * Content ingestion result
17
+ */
18
+ export interface ContentIngestionResult {
19
+ contentId: string;
20
+ wasDeduped: boolean;
21
+ storageType: 'filesystem' | 'content_dir';
22
+ contentPath: string;
23
+ }
24
+ /**
25
+ * Configuration for ContentManager (input interface)
26
+ */
27
+ export interface ContentManagerConfig {
28
+ contentDir: string;
29
+ maxFileSize: number | string;
30
+ maxContentDirSize: number | string;
31
+ enableDeduplication: boolean;
32
+ enableStorageTracking: boolean;
33
+ storageWarningThreshold: number;
34
+ storageErrorThreshold: number;
35
+ }
36
+ /**
37
+ * ContentManager class for handling content ingestion routing
38
+ * Implements the unified content system's ingestion logic
39
+ */
40
+ export declare class ContentManager {
41
+ private db;
42
+ private config;
43
+ private streamingOps;
44
+ private performanceOptimizer;
45
+ constructor(db: DatabaseConnection, config?: Partial<ContentManagerConfig>);
46
+ /**
47
+ * Ingests content from filesystem by creating references without copying files
48
+ * @param filePath - Path to the file to ingest
49
+ * @returns Promise that resolves to content ingestion result
50
+ */
51
+ ingestFromFilesystem(filePath: string): Promise<ContentIngestionResult>;
52
+ /**
53
+ * Ingests content from memory by storing it in content directory with hash-based filenames
54
+ * @param content - Buffer containing the content
55
+ * @param metadata - Memory content metadata
56
+ * @returns Promise that resolves to content ingestion result
57
+ */
58
+ ingestFromMemory(content: Buffer, metadata: MemoryContentMetadata): Promise<ContentIngestionResult>;
59
+ /**
60
+ * Generates a stable content ID using SHA-256 hash of content
61
+ * @param content - Buffer containing the content
62
+ * @returns Content ID string
63
+ */
64
+ generateContentId(content: Buffer): string;
65
+ /**
66
+ * Generates a unique content ID from an existing hash
67
+ * @param hash - Content hash
68
+ * @returns Content ID string
69
+ */
70
+ generateContentIdFromHash(hash: string): string;
71
+ /**
72
+ * Gets performance statistics for monitoring and optimization
73
+ * @returns Performance statistics
74
+ */
75
+ getPerformanceStats(): {
76
+ hashCache: {
77
+ size: number;
78
+ maxSize: number;
79
+ hitRate: number;
80
+ };
81
+ operations: {
82
+ totalOperations: number;
83
+ averageDuration: number;
84
+ totalBytesProcessed: number;
85
+ averageSpeed: number;
86
+ cacheHitRate: number;
87
+ errorRate: number;
88
+ };
89
+ };
90
+ /**
91
+ * Clears performance caches and resets metrics
92
+ */
93
+ clearPerformanceCaches(): void;
94
+ /**
95
+ * Checks if content with given ID already exists (deduplication check)
96
+ * @param contentId - Content ID to check
97
+ * @returns Promise that resolves to true if content exists, false otherwise
98
+ */
99
+ deduplicateContent(contentId: string): Promise<boolean>;
100
+ /**
101
+ * Enforces storage limits before accepting new content
102
+ * @param contentSize - Size of content to add in bytes
103
+ * @returns Promise that resolves if content can be added, throws error otherwise
104
+ */
105
+ enforceStorageLimits(contentSize: number): Promise<void>;
106
+ /**
107
+ * Gets storage limit status and recommendations
108
+ * @returns Promise that resolves to storage limit status
109
+ */
110
+ getStorageLimitStatus(): Promise<{
111
+ currentUsagePercent: number;
112
+ isNearWarningThreshold: boolean;
113
+ isNearErrorThreshold: boolean;
114
+ canAcceptContent: boolean;
115
+ recommendations: string[];
116
+ limits: {
117
+ warningThreshold: number;
118
+ errorThreshold: number;
119
+ maxSizeMB: number;
120
+ currentSizeMB: number;
121
+ remainingSizeMB: number;
122
+ };
123
+ }>;
124
+ /**
125
+ * Parses size string or number to bytes
126
+ * @param size - Size as number (bytes) or string like "50MB", "2GB"
127
+ * @returns Size in bytes
128
+ */
129
+ private parseSizeToBytes;
130
+ /**
131
+ * Generates SHA-256 hash of content
132
+ * @param content - Buffer containing the content
133
+ * @returns SHA-256 hash string
134
+ */
135
+ private generateContentHash;
136
+ /**
137
+ * Detects content type from file path and optionally content using enhanced magic number detection
138
+ * @param filePath - Path to the file
139
+ * @param content - File content buffer (optional)
140
+ * @returns MIME type string
141
+ */
142
+ private detectContentType;
143
+ /**
144
+ * Detects content type from buffer and optional filename for memory-based ingestion
145
+ * @param content - Content buffer
146
+ * @param filename - Optional filename for extension-based detection
147
+ * @returns MIME type string
148
+ */
149
+ private detectContentTypeFromBuffer;
150
+ /**
151
+ * Enhanced magic number detection for comprehensive content type identification
152
+ * @param content - Content buffer to analyze
153
+ * @returns MIME type string based on magic numbers, or 'application/octet-stream' if unknown
154
+ */
155
+ private detectContentTypeByMagicNumbers;
156
+ /**
157
+ * Extension-based content type detection with comprehensive mapping
158
+ * @param extension - File extension (with or without dot)
159
+ * @returns MIME type string based on extension, or 'application/octet-stream' if unknown
160
+ */
161
+ private detectContentTypeByExtension;
162
+ /**
163
+ * Validates if a content type is supported for processing
164
+ * @param contentType - MIME type to validate
165
+ * @returns Object with validation result and error message if unsupported
166
+ */
167
+ private validateContentType;
168
+ /**
169
+ * Gets file extension from content type with enhanced mapping
170
+ * @param contentType - MIME type
171
+ * @returns File extension with dot, or null if unknown
172
+ */
173
+ private getExtensionFromContentType;
174
+ /**
175
+ * Enhanced text content detection with better UTF-8 and encoding support
176
+ * @param content - Content buffer
177
+ * @returns True if content appears to be text
178
+ */
179
+ private isTextContent;
180
+ /**
181
+ * Checks if a byte at given position is part of a valid UTF-8 sequence
182
+ * @param buffer - Buffer to check
183
+ * @param index - Index of the byte to check
184
+ * @returns True if the byte is part of valid UTF-8
185
+ */
186
+ private isValidUTF8Byte;
187
+ /**
188
+ * Ensures content directory exists
189
+ * @returns Promise that resolves when directory is created
190
+ */
191
+ private ensureContentDirectory;
192
+ /**
193
+ * Gets comprehensive storage statistics for monitoring and reporting
194
+ * @returns Promise that resolves to detailed storage statistics
195
+ */
196
+ getStorageStats(): Promise<{
197
+ contentDirectory: {
198
+ totalFiles: number;
199
+ totalSize: number;
200
+ totalSizeMB: number;
201
+ averageFileSize: number;
202
+ };
203
+ filesystemReferences: {
204
+ totalRefs: number;
205
+ totalSize: number;
206
+ totalSizeMB: number;
207
+ };
208
+ overall: {
209
+ totalContentItems: number;
210
+ totalStorageUsed: number;
211
+ totalStorageUsedMB: number;
212
+ storageEfficiency: number;
213
+ };
214
+ limits: {
215
+ maxContentDirSize: number;
216
+ maxContentDirSizeMB: number;
217
+ currentUsagePercent: number;
218
+ remainingSpace: number;
219
+ remainingSpaceMB: number;
220
+ };
221
+ lastUpdated: Date;
222
+ lastCleanup: Date | null;
223
+ }>;
224
+ /**
225
+ * Gets current storage statistics for the content directory (legacy method)
226
+ * @returns Promise that resolves to storage statistics
227
+ * @deprecated Use getStorageStats() for more comprehensive statistics
228
+ */
229
+ getContentDirectoryStats(): Promise<{
230
+ totalFiles: number;
231
+ totalSize: number;
232
+ filesystemRefs: number;
233
+ lastCleanup: Date | null;
234
+ }>;
235
+ /**
236
+ * Generates a simple, human-readable storage usage report
237
+ * @returns Promise that resolves to formatted storage report
238
+ */
239
+ generateStorageReport(): Promise<string>;
240
+ /**
241
+ * Gets storage statistics in a format suitable for monitoring systems
242
+ * @returns Promise that resolves to monitoring-friendly statistics
243
+ */
244
+ getStorageMetrics(): Promise<{
245
+ contentDirFiles: number;
246
+ contentDirSizeBytes: number;
247
+ contentDirSizeMB: number;
248
+ filesystemRefs: number;
249
+ filesystemSizeBytes: number;
250
+ filesystemSizeMB: number;
251
+ totalContentItems: number;
252
+ totalStorageBytes: number;
253
+ totalStorageMB: number;
254
+ usagePercent: number;
255
+ remainingBytes: number;
256
+ remainingMB: number;
257
+ lastCleanupTimestamp: number | null;
258
+ lastUpdatedTimestamp: number;
259
+ }>;
260
+ /**
261
+ * Updates storage statistics by scanning the content directory
262
+ * @returns Promise that resolves when stats are updated
263
+ */
264
+ updateStorageStats(): Promise<void>;
265
+ /**
266
+ * Checks if adding new content would exceed storage limits (legacy method)
267
+ * @param contentSize - Size of content to add
268
+ * @returns Promise that resolves to true if within limits, false otherwise
269
+ * @deprecated Use enforceStorageLimits() for better error handling and guidance
270
+ */
271
+ checkStorageLimits(contentSize: number): Promise<boolean>;
272
+ /**
273
+ * Removes orphaned files that exist in content directory but have no metadata references
274
+ * @returns Promise that resolves to cleanup results
275
+ */
276
+ removeOrphanedFiles(): Promise<{
277
+ removedFiles: string[];
278
+ errors: string[];
279
+ freedSpace: number;
280
+ }>;
281
+ /**
282
+ * Removes duplicate content files based on content hash, keeping the first occurrence
283
+ * @returns Promise that resolves to deduplication results
284
+ */
285
+ removeDuplicateContent(): Promise<{
286
+ removedFiles: string[];
287
+ errors: string[];
288
+ freedSpace: number;
289
+ }>;
290
+ /**
291
+ * Cleans up orphaned files in the content directory
292
+ * Removes files that exist in the directory but have no corresponding metadata
293
+ * @returns Promise that resolves to cleanup results
294
+ */
295
+ cleanupOrphanedFiles(): Promise<{
296
+ removedFiles: string[];
297
+ errors: string[];
298
+ freedSpace: number;
299
+ }>;
300
+ /**
301
+ * Removes duplicate content files based on content hash
302
+ * Keeps the first occurrence and removes duplicates
303
+ * @returns Promise that resolves to deduplication results
304
+ */
305
+ deduplicateContentFiles(): Promise<{
306
+ removedFiles: string[];
307
+ errors: string[];
308
+ freedSpace: number;
309
+ }>;
310
+ /**
311
+ * Ensures content directory has proper permissions
312
+ * @returns Promise that resolves when permissions are set
313
+ */
314
+ ensureContentDirectoryPermissions(): Promise<void>;
315
+ /**
316
+ * Validates content directory structure and repairs if needed
317
+ * @returns Promise that resolves to validation results
318
+ */
319
+ validateAndRepairContentDirectory(): Promise<{
320
+ isValid: boolean;
321
+ issues: string[];
322
+ repaired: string[];
323
+ }>;
324
+ /**
325
+ * Gets actual directory statistics by scanning the filesystem
326
+ * @returns Promise that resolves to actual directory stats
327
+ */
328
+ private getActualDirectoryStats;
329
+ /**
330
+ * Cleanup resources to prevent memory leaks and hanging processes
331
+ * Should be called when ContentManager is no longer needed
332
+ */
333
+ cleanup(): void;
334
+ }
335
+ //# sourceMappingURL=content-manager.d.ts.map