@qvac/sdk 0.4.1 → 0.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 (334) hide show
  1. package/README.md +365 -200
  2. package/bare-imports.json +35 -0
  3. package/dist/client/api/cancel.d.ts +12 -3
  4. package/dist/client/api/cancel.js +12 -3
  5. package/dist/client/api/completion-stream.d.ts +15 -5
  6. package/dist/client/api/completion-stream.js +50 -14
  7. package/dist/client/api/embed.d.ts +17 -3
  8. package/dist/client/api/embed.js +0 -8
  9. package/dist/client/api/get-model-info.d.ts +2 -2
  10. package/dist/client/api/get-model-info.js +2 -2
  11. package/dist/client/api/index.d.ts +2 -2
  12. package/dist/client/api/index.js +2 -2
  13. package/dist/client/api/load-model.d.ts +37 -11
  14. package/dist/client/api/load-model.js +34 -117
  15. package/dist/client/api/logging-stream.d.ts +6 -3
  16. package/dist/client/api/logging-stream.js +6 -3
  17. package/dist/client/api/ocr.d.ts +31 -0
  18. package/dist/client/api/ocr.js +88 -0
  19. package/dist/client/api/rag.d.ts +215 -20
  20. package/dist/client/api/rag.js +382 -23
  21. package/dist/client/api/translate.js +10 -11
  22. package/dist/client/api/unload-model.js +6 -3
  23. package/dist/client/config-loader/config-utils.d.ts +5 -0
  24. package/dist/client/config-loader/config-utils.js +20 -0
  25. package/dist/client/config-loader/resolve-config.bare.d.ts +9 -0
  26. package/dist/client/config-loader/resolve-config.bare.js +87 -0
  27. package/dist/client/config-loader/resolve-config.expo.d.ts +11 -0
  28. package/dist/client/config-loader/resolve-config.expo.js +62 -0
  29. package/dist/client/config-loader/resolve-config.node.d.ts +9 -0
  30. package/dist/client/config-loader/resolve-config.node.js +118 -0
  31. package/dist/client/init-hooks.d.ts +18 -3
  32. package/dist/client/init-hooks.js +57 -29
  33. package/dist/client/logging-stream-registry.d.ts +1 -1
  34. package/dist/client/logging-stream-registry.js +14 -13
  35. package/dist/client/rpc/bare-client.d.ts +3 -184
  36. package/dist/client/rpc/bare-client.js +67 -8
  37. package/dist/client/rpc/expo-rpc-client.d.ts +2 -2
  38. package/dist/client/rpc/expo-rpc-client.js +70 -12
  39. package/dist/client/rpc/node-rpc-client.d.ts +1 -1
  40. package/dist/client/rpc/node-rpc-client.js +14 -7
  41. package/dist/client/rpc/rpc-client.d.ts +1 -1
  42. package/dist/client/rpc/rpc-client.js +13 -58
  43. package/dist/examples/config/blind-relay/blind-relay.config.d.ts +5 -0
  44. package/dist/examples/config/blind-relay/blind-relay.config.js +7 -0
  45. package/dist/examples/config/default/default.config.d.ts +8 -0
  46. package/dist/examples/config/default/default.config.js +6 -0
  47. package/dist/examples/config-reload.d.ts +2 -0
  48. package/dist/examples/config-reload.js +49 -0
  49. package/dist/examples/default-config-usage.d.ts +17 -0
  50. package/dist/examples/default-config-usage.js +47 -0
  51. package/dist/examples/delegated-inference/consumer.js +1 -0
  52. package/dist/examples/download-with-blind-relays.js +22 -21
  53. package/dist/examples/embed-hyperdrive.js +39 -3
  54. package/dist/examples/kv-cache-cleanup.js +1 -1
  55. package/dist/examples/kv-cache-custom-key.js +16 -1
  56. package/dist/examples/kv-cache-example.js +1 -1
  57. package/dist/examples/llamacpp-hyperdrive.js +1 -1
  58. package/dist/examples/llamacpp-sharded.js +13 -4
  59. package/dist/examples/logging-file-transport.d.ts +2 -0
  60. package/dist/examples/{llamacpp-file-logging.js → logging-file-transport.js} +3 -7
  61. package/dist/examples/logging-streaming.d.ts +2 -0
  62. package/dist/examples/logging-streaming.js +75 -0
  63. package/dist/examples/mcp-websearch.d.ts +13 -0
  64. package/dist/examples/mcp-websearch.js +176 -0
  65. package/dist/examples/ocr-fasttext.d.ts +2 -0
  66. package/dist/examples/ocr-fasttext.js +52 -0
  67. package/dist/examples/quickstart.d.ts +2 -0
  68. package/dist/examples/quickstart.js +28 -0
  69. package/dist/examples/rag/rag-hyperdb/cancellation.d.ts +2 -0
  70. package/dist/examples/rag/rag-hyperdb/cancellation.js +75 -0
  71. package/dist/examples/rag/rag-hyperdb/ingest.d.ts +2 -0
  72. package/dist/examples/rag/{rag-hyperdb.js → rag-hyperdb/ingest.js} +10 -4
  73. package/dist/examples/rag/rag-hyperdb/pipeline.d.ts +2 -0
  74. package/dist/examples/rag/rag-hyperdb/pipeline.js +74 -0
  75. package/dist/examples/rag/rag-hyperdb/workspaces.d.ts +2 -0
  76. package/dist/examples/rag/rag-hyperdb/workspaces.js +178 -0
  77. package/dist/examples/translation/translation-bergamot-batch.d.ts +2 -0
  78. package/dist/examples/translation/translation-bergamot-batch.js +49 -0
  79. package/dist/examples/translation/translation-bergamot.d.ts +2 -0
  80. package/dist/examples/translation/translation-bergamot.js +39 -0
  81. package/dist/examples/translation/translation-indic.js +1 -0
  82. package/dist/examples/translation/translation-opus.js +1 -0
  83. package/dist/examples/translation/translation-stream.js +1 -0
  84. package/dist/expo/plugins/withMobileBundle.js +29 -10
  85. package/dist/index.d.ts +5 -4
  86. package/dist/index.js +4 -2
  87. package/dist/logging/addon.d.ts +6 -0
  88. package/dist/logging/addon.js +75 -0
  89. package/dist/logging/base-logger.js +26 -16
  90. package/dist/logging/client-logger.d.ts +3 -0
  91. package/dist/logging/client-logger.js +24 -0
  92. package/dist/logging/index.d.ts +7 -1
  93. package/dist/logging/index.js +7 -1
  94. package/dist/logging/logger.d.ts +0 -2
  95. package/dist/logging/logger.js +11 -6
  96. package/dist/logging/namespaces.d.ts +12 -0
  97. package/dist/logging/namespaces.js +12 -0
  98. package/dist/logging/registry.d.ts +31 -0
  99. package/dist/logging/registry.js +48 -0
  100. package/dist/logging/server-logger.d.ts +3 -0
  101. package/dist/logging/server-logger.js +16 -0
  102. package/dist/logging/stream-logger.d.ts +1 -1
  103. package/dist/logging/stream-logger.js +6 -3
  104. package/dist/logging/transport.js +2 -2
  105. package/dist/logging/types.d.ts +2 -0
  106. package/dist/logging/utils.d.ts +2 -0
  107. package/dist/logging/utils.js +62 -0
  108. package/dist/models/hyperdrive/models.d.ts +1886 -230
  109. package/dist/models/hyperdrive/models.js +2191 -443
  110. package/dist/schemas/archive.d.ts +9 -0
  111. package/dist/schemas/archive.js +17 -0
  112. package/dist/schemas/cancel.d.ts +6 -0
  113. package/dist/schemas/cancel.js +5 -0
  114. package/dist/schemas/common.d.ts +660 -92
  115. package/dist/schemas/common.js +6 -4
  116. package/dist/schemas/delegate.d.ts +1 -0
  117. package/dist/schemas/delegate.js +1 -0
  118. package/dist/schemas/download-asset.d.ts +21 -9
  119. package/dist/schemas/embed.d.ts +3 -3
  120. package/dist/schemas/embed.js +9 -2
  121. package/dist/schemas/get-model-info.d.ts +12 -10
  122. package/dist/schemas/get-model-info.js +9 -1
  123. package/dist/schemas/index.d.ts +9 -1
  124. package/dist/schemas/index.js +12 -1
  125. package/dist/schemas/json-schema.d.ts +16 -0
  126. package/dist/schemas/json-schema.js +2 -0
  127. package/dist/schemas/llamacpp-config.d.ts +117 -12
  128. package/dist/schemas/llamacpp-config.js +46 -12
  129. package/dist/schemas/load-model.d.ts +3669 -481
  130. package/dist/schemas/load-model.js +95 -34
  131. package/dist/schemas/logging-stream.d.ts +11 -4
  132. package/dist/schemas/logging-stream.js +4 -3
  133. package/dist/schemas/mcp-adapter.d.ts +47 -0
  134. package/dist/schemas/mcp-adapter.js +1 -0
  135. package/dist/schemas/model-src-utils.d.ts +38 -14
  136. package/dist/schemas/model-src-utils.js +4 -3
  137. package/dist/schemas/model-types.d.ts +154 -0
  138. package/dist/schemas/model-types.js +140 -0
  139. package/dist/schemas/ocr.d.ts +88 -0
  140. package/dist/schemas/ocr.js +52 -0
  141. package/dist/schemas/rag.d.ts +183 -52
  142. package/dist/schemas/rag.js +148 -23
  143. package/dist/schemas/reload-config.d.ts +356 -0
  144. package/dist/schemas/reload-config.js +44 -0
  145. package/dist/schemas/runtime-context.d.ts +19 -0
  146. package/dist/schemas/runtime-context.js +7 -0
  147. package/dist/schemas/sdk-config.d.ts +717 -0
  148. package/dist/schemas/sdk-config.js +131 -0
  149. package/dist/schemas/sdk-errors-client.d.ts +5 -0
  150. package/dist/schemas/sdk-errors-client.js +25 -0
  151. package/dist/schemas/sdk-errors-server.d.ts +17 -0
  152. package/dist/schemas/sdk-errors-server.js +85 -0
  153. package/dist/schemas/shard.d.ts +21 -0
  154. package/dist/schemas/shard.js +17 -0
  155. package/dist/schemas/tools.d.ts +3 -0
  156. package/dist/schemas/translate.d.ts +68 -23
  157. package/dist/schemas/translate.js +37 -11
  158. package/dist/schemas/translation-config.d.ts +337 -13
  159. package/dist/schemas/translation-config.js +65 -9
  160. package/dist/schemas/whispercpp-config.d.ts +9 -1
  161. package/dist/schemas/whispercpp-config.js +2 -1
  162. package/dist/scripts/run-unit-tests.d.ts +2 -0
  163. package/dist/scripts/run-unit-tests.js +17 -0
  164. package/dist/server/bare/addons/llamacpp-completion/cache-logger.d.ts +6 -0
  165. package/dist/server/bare/addons/llamacpp-completion/cache-logger.js +34 -0
  166. package/dist/server/bare/addons/{llamacpp → llamacpp-completion}/create-model.d.ts +1 -5
  167. package/dist/server/bare/addons/{llamacpp → llamacpp-completion}/create-model.js +6 -20
  168. package/dist/server/bare/addons/{llamacpp → llamacpp-completion}/handlers/completion-stream.js +26 -7
  169. package/dist/server/bare/addons/llamacpp-completion/index.d.ts +4 -0
  170. package/dist/server/bare/addons/llamacpp-completion/index.js +3 -0
  171. package/dist/server/bare/addons/{llamacpp → llamacpp-completion}/kv-cache-utils.d.ts +4 -1
  172. package/dist/server/bare/addons/{llamacpp → llamacpp-completion}/kv-cache-utils.js +49 -14
  173. package/dist/server/bare/addons/llamacpp-embedding/create-model.d.ts +8 -0
  174. package/dist/server/bare/addons/llamacpp-embedding/create-model.js +38 -0
  175. package/dist/server/bare/addons/llamacpp-embedding/handlers/embed.d.ts +12 -0
  176. package/dist/server/bare/addons/{llamacpp → llamacpp-embedding}/handlers/embed.js +18 -4
  177. package/dist/server/bare/addons/llamacpp-embedding/index.d.ts +3 -0
  178. package/dist/server/bare/addons/llamacpp-embedding/index.js +2 -0
  179. package/dist/server/bare/addons/load-model.js +38 -28
  180. package/dist/server/bare/addons/{translation → nmtcpp-translation}/create-model.js +23 -8
  181. package/dist/server/bare/addons/{translation → nmtcpp-translation}/handlers/translate.js +35 -11
  182. package/dist/server/bare/addons/onnx-ocr/create-model.d.ts +10 -0
  183. package/dist/server/bare/addons/onnx-ocr/create-model.js +39 -0
  184. package/dist/server/bare/addons/onnx-ocr/handlers/ocr-stream.d.ts +10 -0
  185. package/dist/server/bare/addons/onnx-ocr/handlers/ocr-stream.js +109 -0
  186. package/dist/server/bare/addons/onnx-ocr/index.d.ts +3 -0
  187. package/dist/server/bare/addons/onnx-ocr/index.js +2 -0
  188. package/dist/server/bare/addons/unload-model.js +6 -3
  189. package/dist/server/bare/addons/{whispercpp → whispercpp-transcription}/create-model.js +2 -1
  190. package/dist/server/bare/addons/whispercpp-transcription/handlers/transcribe-stream.js +82 -0
  191. package/dist/server/bare/delegate-rpc-client.js +31 -11
  192. package/dist/server/bare/hyperswarm.js +7 -5
  193. package/dist/server/bare/rag-hyperdb/handlers/chunk.d.ts +3 -0
  194. package/dist/server/bare/rag-hyperdb/handlers/chunk.js +7 -0
  195. package/dist/server/bare/rag-hyperdb/handlers/close-workspace.d.ts +3 -0
  196. package/dist/server/bare/rag-hyperdb/handlers/close-workspace.js +9 -0
  197. package/dist/server/bare/rag-hyperdb/handlers/delete-embeddings.d.ts +1 -1
  198. package/dist/server/bare/rag-hyperdb/handlers/delete-embeddings.js +9 -10
  199. package/dist/server/bare/rag-hyperdb/handlers/delete-workspace.d.ts +3 -0
  200. package/dist/server/bare/rag-hyperdb/handlers/delete-workspace.js +14 -0
  201. package/dist/server/bare/rag-hyperdb/handlers/ingest.d.ts +9 -0
  202. package/dist/server/bare/rag-hyperdb/handlers/ingest.js +18 -0
  203. package/dist/server/bare/rag-hyperdb/handlers/list-workspaces.d.ts +3 -0
  204. package/dist/server/bare/rag-hyperdb/handlers/list-workspaces.js +4 -0
  205. package/dist/server/bare/rag-hyperdb/handlers/reindex.d.ts +9 -0
  206. package/dist/server/bare/rag-hyperdb/handlers/reindex.js +16 -0
  207. package/dist/server/bare/rag-hyperdb/handlers/save-embeddings.d.ts +7 -4
  208. package/dist/server/bare/rag-hyperdb/handlers/save-embeddings.js +13 -14
  209. package/dist/server/bare/rag-hyperdb/handlers/search.js +10 -10
  210. package/dist/server/bare/rag-hyperdb/index.d.ts +8 -1
  211. package/dist/server/bare/rag-hyperdb/index.js +8 -1
  212. package/dist/server/bare/rag-hyperdb/rag-operation-manager.d.ts +7 -0
  213. package/dist/server/bare/rag-hyperdb/rag-operation-manager.js +39 -0
  214. package/dist/server/bare/rag-hyperdb/rag-workspace-manager.d.ts +15 -0
  215. package/dist/server/bare/rag-hyperdb/rag-workspace-manager.js +135 -0
  216. package/dist/server/bare/registry/config-registry.d.ts +13 -4
  217. package/dist/server/bare/registry/config-registry.js +53 -10
  218. package/dist/server/bare/registry/logging-stream-registry.d.ts +24 -7
  219. package/dist/server/bare/registry/logging-stream-registry.js +99 -20
  220. package/dist/server/bare/registry/model-config-registry.d.ts +4 -0
  221. package/dist/server/bare/registry/model-config-registry.js +15 -0
  222. package/dist/server/bare/registry/model-config-utils.d.ts +15 -0
  223. package/dist/server/bare/registry/model-config-utils.js +121 -0
  224. package/dist/server/bare/registry/model-registry.d.ts +6 -26
  225. package/dist/server/bare/registry/model-registry.js +9 -6
  226. package/dist/server/bare/registry/runtime-context-registry.d.ts +7 -0
  227. package/dist/server/bare/registry/runtime-context-registry.js +26 -0
  228. package/dist/server/bare/utils/loader-adapter.d.ts +7 -0
  229. package/dist/server/bare/utils/loader-adapter.js +9 -0
  230. package/dist/server/error-handlers.js +4 -2
  231. package/dist/server/rpc/create-server.js +5 -3
  232. package/dist/server/rpc/handle-request.js +115 -19
  233. package/dist/server/rpc/handlers/cancelHandler.js +13 -2
  234. package/dist/server/rpc/handlers/completion-stream-delegated.js +4 -2
  235. package/dist/server/rpc/handlers/completion-stream.js +1 -1
  236. package/dist/server/rpc/handlers/delete-cache.js +4 -2
  237. package/dist/server/rpc/handlers/download-asset.js +3 -1
  238. package/dist/server/rpc/handlers/embed.js +4 -2
  239. package/dist/server/rpc/handlers/get-model-info.d.ts +1 -1
  240. package/dist/server/rpc/handlers/get-model-info.js +22 -10
  241. package/dist/server/rpc/handlers/index.d.ts +4 -2
  242. package/dist/server/rpc/handlers/index.js +2 -2
  243. package/dist/server/rpc/handlers/load-model/download-manager.d.ts +11 -11
  244. package/dist/server/rpc/handlers/load-model/download-manager.js +40 -28
  245. package/dist/server/rpc/handlers/{load-model.d.ts → load-model/handler.d.ts} +2 -2
  246. package/dist/server/rpc/handlers/load-model/handler.js +179 -0
  247. package/dist/server/rpc/handlers/load-model/http.js +361 -50
  248. package/dist/server/rpc/handlers/load-model/hyperdrive.js +26 -22
  249. package/dist/server/rpc/handlers/load-model/index.d.ts +2 -2
  250. package/dist/server/rpc/handlers/load-model/index.js +2 -2
  251. package/dist/server/rpc/handlers/load-model/resolve.js +39 -8
  252. package/dist/server/rpc/handlers/load-model-delegated.d.ts +2 -2
  253. package/dist/server/rpc/handlers/load-model-delegated.js +15 -10
  254. package/dist/server/rpc/handlers/logging-stream.js +4 -4
  255. package/dist/server/rpc/handlers/ocr-stream.d.ts +3 -0
  256. package/dist/server/rpc/handlers/ocr-stream.js +39 -0
  257. package/dist/server/rpc/handlers/provideHandler/connection.js +12 -10
  258. package/dist/server/rpc/handlers/provideHandler/handler.js +18 -16
  259. package/dist/server/rpc/handlers/provideHandler/proxy.js +8 -6
  260. package/dist/server/rpc/handlers/rag.d.ts +2 -2
  261. package/dist/server/rpc/handlers/rag.js +107 -41
  262. package/dist/server/rpc/handlers/stopProvideHandler.js +3 -1
  263. package/dist/server/rpc/handlers/text-to-speech.js +1 -1
  264. package/dist/server/rpc/handlers/transcribe-stream.js +4 -2
  265. package/dist/server/rpc/handlers/translate.js +9 -16
  266. package/dist/server/rpc/handlers/unload-model.js +4 -2
  267. package/dist/server/utils/archive.d.ts +3 -0
  268. package/dist/server/utils/archive.js +171 -0
  269. package/dist/server/utils/audio/decoder.d.ts +2 -1
  270. package/dist/server/utils/audio/decoder.js +48 -11
  271. package/dist/server/utils/cache.d.ts +5 -5
  272. package/dist/server/utils/cache.js +13 -11
  273. package/dist/server/utils/config-transform.d.ts +3 -0
  274. package/dist/server/utils/config-transform.js +23 -0
  275. package/dist/server/utils/formatting.d.ts +13 -0
  276. package/dist/server/utils/formatting.js +26 -0
  277. package/dist/server/utils/gguf-tensor-extractor.d.ts +15 -0
  278. package/dist/server/utils/gguf-tensor-extractor.js +314 -0
  279. package/dist/server/utils/index.d.ts +4 -1
  280. package/dist/server/utils/index.js +4 -1
  281. package/dist/server/utils/shard-utils.d.ts +42 -16
  282. package/dist/server/utils/shard-utils.js +95 -7
  283. package/dist/server/worker.js +49 -19
  284. package/dist/utils/errors-base.d.ts +1 -1
  285. package/dist/utils/errors-base.js +2 -2
  286. package/dist/utils/errors-client.d.ts +24 -0
  287. package/dist/utils/errors-client.js +40 -0
  288. package/dist/utils/errors-server.d.ts +42 -0
  289. package/dist/utils/errors-server.js +71 -0
  290. package/dist/utils/mcp-adapter.d.ts +12 -0
  291. package/dist/utils/mcp-adapter.js +103 -0
  292. package/dist/utils/object.d.ts +2 -0
  293. package/dist/utils/object.js +3 -0
  294. package/dist/utils/tool-helpers.d.ts +10 -2
  295. package/dist/utils/tool-helpers.js +24 -11
  296. package/package.json +74 -36
  297. package/dist/client/api/set-config.d.ts +0 -7
  298. package/dist/client/api/set-config.js +0 -20
  299. package/dist/client/config-manager.d.ts +0 -4
  300. package/dist/client/config-manager.js +0 -8
  301. package/dist/client/rpc/bare-rpc-client.d.ts +0 -4
  302. package/dist/client/rpc/bare-rpc-client.js +0 -91
  303. package/dist/examples/llamacpp-file-logging.d.ts +0 -2
  304. package/dist/examples/rag/rag-hyperdb-workspaces.d.ts +0 -2
  305. package/dist/examples/rag/rag-hyperdb-workspaces.js +0 -106
  306. package/dist/examples/rag/rag-hyperdb.d.ts +0 -2
  307. package/dist/schemas/set-config.d.ts +0 -21
  308. package/dist/schemas/set-config.js +0 -14
  309. package/dist/server/bare/addons/llamacpp/handlers/embed.d.ts +0 -4
  310. package/dist/server/bare/addons/llamacpp/index.d.ts +0 -4
  311. package/dist/server/bare/addons/llamacpp/index.js +0 -3
  312. package/dist/server/bare/addons/whispercpp/handlers/transcribe-stream.js +0 -63
  313. package/dist/server/bare/rag-hyperdb/rag-manager.d.ts +0 -5
  314. package/dist/server/bare/rag-hyperdb/rag-manager.js +0 -64
  315. package/dist/server/rpc/handlers/load-model.js +0 -59
  316. package/dist/server/rpc/handlers/set-config.d.ts +0 -3
  317. package/dist/server/rpc/handlers/set-config.js +0 -18
  318. package/dist/server/utils/hash.d.ts +0 -5
  319. package/dist/server/utils/hash.js +0 -11
  320. /package/dist/server/bare/addons/{llamacpp → llamacpp-completion}/handlers/completion-stream.d.ts +0 -0
  321. /package/dist/server/bare/addons/{translation → nmtcpp-translation}/create-model.d.ts +0 -0
  322. /package/dist/server/bare/addons/{translation → nmtcpp-translation}/handlers/translate.d.ts +0 -0
  323. /package/dist/server/bare/addons/{translation → nmtcpp-translation}/index.d.ts +0 -0
  324. /package/dist/server/bare/addons/{translation → nmtcpp-translation}/index.js +0 -0
  325. /package/dist/server/bare/addons/{tts → onnx-tts}/create-model.d.ts +0 -0
  326. /package/dist/server/bare/addons/{tts → onnx-tts}/create-model.js +0 -0
  327. /package/dist/server/bare/addons/{tts → onnx-tts}/handlers/text-to-speech.d.ts +0 -0
  328. /package/dist/server/bare/addons/{tts → onnx-tts}/handlers/text-to-speech.js +0 -0
  329. /package/dist/server/bare/addons/{tts → onnx-tts}/index.d.ts +0 -0
  330. /package/dist/server/bare/addons/{tts → onnx-tts}/index.js +0 -0
  331. /package/dist/server/bare/addons/{whispercpp → whispercpp-transcription}/create-model.d.ts +0 -0
  332. /package/dist/server/bare/addons/{whispercpp → whispercpp-transcription}/handlers/transcribe-stream.d.ts +0 -0
  333. /package/dist/server/bare/addons/{whispercpp → whispercpp-transcription}/index.d.ts +0 -0
  334. /package/dist/server/bare/addons/{whispercpp → whispercpp-transcription}/index.js +0 -0
@@ -0,0 +1,109 @@
1
+ import { getModel } from "../../../registry/model-registry.js";
2
+ import fs from "bare-fs";
3
+ import path from "bare-path";
4
+ import { getCacheDir } from "../../../../utils/index.js";
5
+ import { ImageFileNotFoundError, InvalidImageInputError, } from "../../../../../utils/errors-server.js";
6
+ function polygonToBbox(polygon) {
7
+ const xs = polygon.map((p) => p[0]);
8
+ const ys = polygon.map((p) => p[1]);
9
+ return [Math.min(...xs), Math.min(...ys), Math.max(...xs), Math.max(...ys)];
10
+ }
11
+ function normalizeBlock(block) {
12
+ if (block &&
13
+ typeof block === "object" &&
14
+ !Array.isArray(block) &&
15
+ "text" in block) {
16
+ const obj = block;
17
+ return {
18
+ text: obj.text || "",
19
+ ...(obj.bbox && { bbox: obj.bbox }),
20
+ ...(obj.confidence !== undefined && { confidence: obj.confidence }),
21
+ };
22
+ }
23
+ // Addon format: [polygon, text, confidence] where polygon is [[x1,y1], [x2,y2], [x3,y3], [x4,y4]]
24
+ if (Array.isArray(block) && block.length >= 2) {
25
+ const blockArr = block;
26
+ const [polygonOrBbox, text, confidence] = blockArr;
27
+ const textStr = typeof text === "string" ? text : "";
28
+ if (Array.isArray(polygonOrBbox) &&
29
+ polygonOrBbox.length === 4 &&
30
+ Array.isArray(polygonOrBbox[0]) &&
31
+ polygonOrBbox[0].length === 2) {
32
+ return {
33
+ text: textStr,
34
+ bbox: polygonToBbox(polygonOrBbox),
35
+ ...(confidence !== undefined && { confidence: Number(confidence) }),
36
+ };
37
+ }
38
+ if (Array.isArray(polygonOrBbox) &&
39
+ polygonOrBbox.length === 4 &&
40
+ typeof polygonOrBbox[0] === "number") {
41
+ return {
42
+ text: textStr,
43
+ bbox: polygonOrBbox,
44
+ ...(confidence !== undefined && { confidence: Number(confidence) }),
45
+ };
46
+ }
47
+ }
48
+ return null;
49
+ }
50
+ export async function* ocr(params) {
51
+ const model = getModel(params.modelId);
52
+ let imagePath;
53
+ let cleanupPath = null;
54
+ switch (params.image.type) {
55
+ case "base64": {
56
+ const tempDir = getCacheDir("tmp");
57
+ const tempPath = path.join(tempDir, `ocr-${Date.now()}.png`);
58
+ fs.writeFileSync(tempPath, Buffer.from(params.image.value, "base64"));
59
+ imagePath = tempPath;
60
+ cleanupPath = tempPath;
61
+ break;
62
+ }
63
+ case "filePath": {
64
+ imagePath = params.image.value;
65
+ try {
66
+ fs.accessSync(imagePath);
67
+ }
68
+ catch (error) {
69
+ throw new ImageFileNotFoundError(imagePath, error);
70
+ }
71
+ break;
72
+ }
73
+ default:
74
+ throw new InvalidImageInputError();
75
+ }
76
+ try {
77
+ const response = (await model.run({
78
+ path: imagePath,
79
+ ...(params.options && { options: params.options }),
80
+ }));
81
+ const rawData = [];
82
+ await response
83
+ .onUpdate((data) => {
84
+ rawData.push(data);
85
+ return [];
86
+ })
87
+ .await();
88
+ const blocks = rawData
89
+ .flat(1)
90
+ .map(normalizeBlock)
91
+ .filter((b) => b !== null);
92
+ if (blocks.length > 0) {
93
+ yield { blocks };
94
+ }
95
+ if (response.stats) {
96
+ yield { blocks: [], stats: response.stats };
97
+ }
98
+ }
99
+ finally {
100
+ if (cleanupPath) {
101
+ try {
102
+ fs.unlinkSync(cleanupPath);
103
+ }
104
+ catch {
105
+ // Ignore cleanup errors
106
+ }
107
+ }
108
+ }
109
+ }
@@ -0,0 +1,3 @@
1
+ export { createOCRModel } from "./create-model";
2
+ export { ocr } from "./handlers/ocr-stream";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,2 @@
1
+ export { createOCRModel } from "./create-model.js";
2
+ export { ocr } from "./handlers/ocr-stream.js";
@@ -2,9 +2,11 @@ import { promises as fsPromises } from "bare-fs";
2
2
  import path from "bare-path";
3
3
  import { unregisterModel } from "../registry/model-registry.js";
4
4
  import { unregisterAllLoggingStreams } from "../registry/logging-stream-registry.js";
5
+ import { unregisterAddonLogger, getServerLogger } from "../../../logging/index.js";
5
6
  import { unloadModelParamsSchema } from "../../../schemas/index.js";
6
7
  import { ModelNotLoadedError } from "../../../utils/errors-server.js";
7
8
  import { detectShardedModel } from "../../utils/index.js";
9
+ const logger = getServerLogger();
8
10
  export async function unloadModel(params) {
9
11
  const { modelId, clearStorage } = unloadModelParamsSchema.parse(params);
10
12
  const entry = unregisterModel(modelId);
@@ -25,14 +27,15 @@ export async function unloadModel(params) {
25
27
  // Delete entire shard directory
26
28
  const shardDir = path.dirname(modelPath);
27
29
  await fsPromises.rm(shardDir, { recursive: true, force: true });
28
- console.log(`Sharded model storage cleared: ${shardDir}`);
30
+ logger.info(`Sharded model storage cleared: ${shardDir}`);
29
31
  }
30
32
  else {
31
33
  // Delete single file
32
34
  await fsPromises.rm(modelPath, { recursive: true, force: true });
33
- console.log(`Model storage cleared: ${modelPath}`);
35
+ logger.info(`Model storage cleared: ${modelPath}`);
34
36
  }
35
37
  }
38
+ unregisterAddonLogger(modelId);
36
39
  unregisterAllLoggingStreams(modelId);
37
- console.log(`Model ${modelId} unloaded`);
40
+ logger.info(`Model ${modelId} unloaded`);
38
41
  }
@@ -1,4 +1,4 @@
1
- import TranscriptionWhispercpp from "@qvac/transcription-whispercpp";
1
+ import TranscriptionWhispercpp, {} from "@qvac/transcription-whispercpp";
2
2
  import {} from "../../registry/model-registry.js";
3
3
  import {} from "../../../../schemas/index.js";
4
4
  import { createStreamLogger } from "../../../../logging/index.js";
@@ -26,6 +26,7 @@ export function createWhisperModel(modelId, modelPath, whisperConfig, vadModelPa
26
26
  },
27
27
  };
28
28
  const { contextParams, miscConfig, ...whisperParams } = whisperConfig;
29
+ // Cast to upstream type - our stricter Zod schema is compatible at runtime
29
30
  const config = {
30
31
  whisperConfig: whisperParams,
31
32
  ...(contextParams && { contextParams }),
@@ -0,0 +1,82 @@
1
+ import { getModel, getModelConfig, } from "../../../registry/model-registry.js";
2
+ import { Readable } from "bare-stream";
3
+ import fs from "bare-fs";
4
+ import { needsDecoding, decodeAudioToStream } from "../../../../utils/index.js";
5
+ import {} from "../../../../../schemas/index.js";
6
+ import { AudioFileNotFoundError, InvalidAudioChunkError, } from "../../../../../utils/errors-server.js";
7
+ import { getServerLogger } from "../../../../../logging/index.js";
8
+ const logger = getServerLogger();
9
+ export async function* transcribe(params) {
10
+ const model = getModel(params.modelId);
11
+ const modelConfig = getModelConfig(params.modelId);
12
+ let originalConfig = null;
13
+ const audioFormat = modelConfig.audio_format || "s16le";
14
+ if (params.prompt && typeof model.reload === "function") {
15
+ originalConfig = modelConfig;
16
+ const updatedConfig = {
17
+ ...originalConfig,
18
+ initial_prompt: params.prompt,
19
+ };
20
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
21
+ const { contextParams: _, miscConfig, ...whisperParams } = updatedConfig;
22
+ await model.reload({
23
+ whisperConfig: whisperParams,
24
+ ...(miscConfig && { miscConfig }),
25
+ });
26
+ }
27
+ try {
28
+ let audioStream;
29
+ const audioChunk = params.audioChunk;
30
+ switch (audioChunk.type) {
31
+ case "base64": {
32
+ const audioBuffer = Buffer.from(audioChunk.value, "base64");
33
+ audioStream = Readable.from([audioBuffer]);
34
+ break;
35
+ }
36
+ case "filePath": {
37
+ const filePath = audioChunk.value;
38
+ try {
39
+ fs.accessSync(filePath);
40
+ }
41
+ catch (error) {
42
+ throw new AudioFileNotFoundError(filePath, error);
43
+ }
44
+ if (needsDecoding(filePath)) {
45
+ audioStream = await decodeAudioToStream(filePath, audioFormat);
46
+ }
47
+ else {
48
+ audioStream = fs.createReadStream(filePath);
49
+ }
50
+ break;
51
+ }
52
+ default:
53
+ throw new InvalidAudioChunkError();
54
+ }
55
+ // Run transcription with streaming enabled
56
+ const response = await model.run(audioStream);
57
+ for await (const output of response.iterate()) {
58
+ logger.debug("Streaming Transcription Update:", output);
59
+ // Filter out blank audio chunks and process the text
60
+ const text = output
61
+ .filter((chunk) => !chunk.text.includes("[BLANK_AUDIO]"))
62
+ .map((chunk) => chunk.text)
63
+ .join("");
64
+ if (text.trim()) {
65
+ yield text;
66
+ }
67
+ }
68
+ }
69
+ finally {
70
+ if (originalConfig && typeof model.reload === "function") {
71
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
72
+ const { contextParams: _, miscConfig, ...whisperParams } = originalConfig;
73
+ await model.reload({
74
+ whisperConfig: {
75
+ ...whisperParams,
76
+ initial_prompt: "",
77
+ },
78
+ ...(miscConfig && { miscConfig }),
79
+ });
80
+ }
81
+ }
82
+ }
@@ -2,8 +2,21 @@ import { getSwarm } from "./hyperswarm.js";
2
2
  import RPC from "bare-rpc";
3
3
  import { withTimeout } from "../../utils/withTimeout.js";
4
4
  import { DelegateConnectionFailedError } from "../../utils/errors-server.js";
5
+ import { getServerLogger } from "../../logging/index.js";
6
+ const logger = getServerLogger();
5
7
  // Map of active RPC instances by public key
6
8
  const activeRPCs = new Map();
9
+ // Map to store underlying connections for cleanup
10
+ const activeConnections = new Map();
11
+ function closeConnection(publicKey) {
12
+ const existingConnection = activeConnections.get(publicKey);
13
+ if (existingConnection) {
14
+ logger.info(`🔌 Closing existing connection for peer: ${publicKey}`);
15
+ existingConnection.destroy();
16
+ activeConnections.delete(publicKey);
17
+ activeRPCs.delete(publicKey);
18
+ }
19
+ }
7
20
  // Establish RPC connection to a peer if not already connected
8
21
  async function ensureRPCConnection(topic, publicKey, timeout) {
9
22
  // Check if we already have an RPC instance for this peer
@@ -12,7 +25,7 @@ async function ensureRPCConnection(topic, publicKey, timeout) {
12
25
  if (!rpc) {
13
26
  // Need to establish connection first
14
27
  try {
15
- console.log(`🔗 Establishing RPC connection to topic: ${topic}, peer: ${publicKey}, timeout: ${timeout}ms`);
28
+ logger.info(`🔗 Establishing RPC connection to topic: ${topic}, peer: ${publicKey}, timeout: ${timeout}ms`);
16
29
  const connectionPromise = (async () => {
17
30
  const topicBuffer = Buffer.from(topic, "hex");
18
31
  // const discovery =
@@ -21,23 +34,23 @@ async function ensureRPCConnection(topic, publicKey, timeout) {
21
34
  client: true,
22
35
  });
23
36
  await swarm.flush();
24
- console.log(`✅ Connected to topic: ${topic}`);
25
- console.log(`📊 Active RPC connections: ${activeRPCs.size}`);
37
+ logger.info(`✅ Connected to topic: ${topic}`);
38
+ logger.debug(`📊 Active RPC connections: ${activeRPCs.size}`);
26
39
  // Check again if we now have an RPC instance for the target peer
27
40
  rpc = activeRPCs.get(publicKey);
28
41
  if (!rpc) {
29
- console.error(`❌ No RPC instance found for peer ${publicKey}`);
30
- console.log(`📊 Available RPC connections:`, Array.from(activeRPCs.keys()));
42
+ logger.error(`❌ No RPC instance found for peer ${publicKey}`);
43
+ logger.debug(`📊 Available RPC connections:`, Array.from(activeRPCs.keys()));
31
44
  throw new DelegateConnectionFailedError(`Could not establish RPC connection to peer ${publicKey} on topic ${topic}`);
32
45
  }
33
46
  else {
34
- console.log(`✅ RPC instance found for peer ${publicKey}`);
47
+ logger.debug(`✅ RPC instance found for peer ${publicKey}`);
35
48
  }
36
49
  })();
37
50
  await withTimeout(connectionPromise, timeout);
38
51
  }
39
52
  catch (error) {
40
- console.error("Failed to establish RPC connection:", error);
53
+ logger.error("Failed to establish RPC connection:", error);
41
54
  throw new DelegateConnectionFailedError(`RPC connection failed: ${error instanceof Error ? error.message : String(error)}`, error);
42
55
  }
43
56
  }
@@ -46,25 +59,32 @@ async function ensureRPCConnection(topic, publicKey, timeout) {
46
59
  // Create an RPC instance for a specific HyperSwarm peer
47
60
  export async function getRPC(topic, publicKey, options = {}) {
48
61
  const swarm = getSwarm();
62
+ // Close existing connection if forceNewConnection is true
63
+ if (options.forceNewConnection) {
64
+ closeConnection(publicKey);
65
+ }
49
66
  // Set up connection tracking
50
67
  swarm.on("connection", (conn) => {
51
68
  const peerPubkey = conn.remotePublicKey?.toString("hex");
52
69
  if (!peerPubkey)
53
70
  return;
54
- console.log(`🍺 New peer connection established: ${peerPubkey}`);
71
+ logger.debug(`🍺 New peer connection established: ${peerPubkey}`);
55
72
  // Create RPC instance for this connection (as client)
56
73
  const rpc = new RPC(conn, () => {
57
74
  // No-op handler since we're only sending requests, not receiving them
58
75
  });
59
- // Store RPC instance by peer ID for lookup
76
+ // Store RPC instance and connection by peer ID for lookup
60
77
  activeRPCs.set(peerPubkey, rpc);
78
+ activeConnections.set(peerPubkey, conn);
61
79
  conn.on("close", () => {
62
- console.log(`Connection closed for peer: ${peerPubkey}`);
80
+ logger.debug(`Connection closed for peer: ${peerPubkey}`);
63
81
  activeRPCs.delete(peerPubkey);
82
+ activeConnections.delete(peerPubkey);
64
83
  });
65
84
  conn.on("error", (err) => {
66
- console.error(`Connection error for peer ${peerPubkey}:`, err);
85
+ logger.error(`Connection error for peer ${peerPubkey}:`, err);
67
86
  activeRPCs.delete(peerPubkey);
87
+ activeConnections.delete(peerPubkey);
68
88
  });
69
89
  });
70
90
  return await ensureRPCConnection(topic, publicKey, options.timeout);
@@ -3,13 +3,15 @@ import Hyperswarm from "hyperswarm";
3
3
  import crypto from "bare-crypto";
4
4
  import { envSchema } from "../../schemas/provide.js";
5
5
  import { getSDKConfig } from "./registry/config-registry.js";
6
+ import { getServerLogger } from "../../logging/index.js";
7
+ const logger = getServerLogger();
6
8
  function getHyperswarmSeedBuffer() {
7
9
  const parsedEnv = envSchema.safeParse(process.env);
8
10
  if (parsedEnv.success) {
9
11
  return Buffer.from(parsedEnv.data.QVAC_HYPERSWARM_SEED, "hex");
10
12
  }
11
13
  else {
12
- console.log(`🎲 No seed provided, generating random seed (provider will have random identity)`);
14
+ logger.info(`🎲 No seed provided, generating random seed (provider will have random identity)`);
13
15
  return crypto.randomBytes(32);
14
16
  }
15
17
  }
@@ -24,20 +26,20 @@ function createFirewallFunction(config) {
24
26
  if (mode === "allow") {
25
27
  const allowed = publicKeySet.has(remoteKeyHex);
26
28
  if (!allowed) {
27
- console.log(`🚫 Firewall: Denied connection from ${remoteKeyHex.substring(0, 16)}... (not in allowlist)`);
29
+ logger.debug(`🚫 Firewall: Denied connection from ${remoteKeyHex.substring(0, 16)}... (not in allowlist)`);
28
30
  }
29
31
  else {
30
- console.log(`✅ Firewall: Allowed connection from ${remoteKeyHex.substring(0, 16)}... (in allowlist)`);
32
+ logger.debug(`✅ Firewall: Allowed connection from ${remoteKeyHex.substring(0, 16)}... (in allowlist)`);
31
33
  }
32
34
  return !allowed;
33
35
  }
34
36
  else {
35
37
  const denied = publicKeySet.has(remoteKeyHex);
36
38
  if (denied) {
37
- console.log(`🚫 Firewall: Denied connection from ${remoteKeyHex.substring(0, 16)}... (in denylist)`);
39
+ logger.debug(`🚫 Firewall: Denied connection from ${remoteKeyHex.substring(0, 16)}... (in denylist)`);
38
40
  }
39
41
  else {
40
- console.log(`✅ Firewall: Allowed connection from ${remoteKeyHex.substring(0, 16)}... (not in denylist)`);
42
+ logger.debug(`✅ Firewall: Allowed connection from ${remoteKeyHex.substring(0, 16)}... (not in denylist)`);
41
43
  }
42
44
  return denied;
43
45
  }
@@ -0,0 +1,3 @@
1
+ import { type RagChunkParams } from "../../../../schemas/index";
2
+ export declare function chunk(params: RagChunkParams): Promise<import("@qvac/rag").Doc[]>;
3
+ //# sourceMappingURL=chunk.d.ts.map
@@ -0,0 +1,7 @@
1
+ import { LLMChunkAdapter } from "@qvac/rag";
2
+ import { ragChunkParamsSchema } from "../../../../schemas/index.js";
3
+ export async function chunk(params) {
4
+ const { documents, chunkOpts } = ragChunkParamsSchema.parse(params);
5
+ const chunker = new LLMChunkAdapter(chunkOpts);
6
+ return await chunker.chunkText(documents, chunkOpts);
7
+ }
@@ -0,0 +1,3 @@
1
+ import { type RagCloseWorkspaceParams } from "../../../../schemas/index";
2
+ export declare function closeWorkspace(params: RagCloseWorkspaceParams): Promise<void>;
3
+ //# sourceMappingURL=close-workspace.d.ts.map
@@ -0,0 +1,9 @@
1
+ import { closeRagInstance, deleteWorkspace, DEFAULT_WORKSPACE, } from "../rag-workspace-manager.js";
2
+ import { ragCloseWorkspaceParamsSchema, } from "../../../../schemas/index.js";
3
+ export async function closeWorkspace(params) {
4
+ const { workspace, deleteOnClose } = ragCloseWorkspaceParamsSchema.parse(params);
5
+ await closeRagInstance(workspace);
6
+ if (deleteOnClose) {
7
+ await deleteWorkspace(workspace ?? DEFAULT_WORKSPACE);
8
+ }
9
+ }
@@ -1,3 +1,3 @@
1
1
  import { type RagDeleteEmbeddingsParams } from "../../../../schemas/index";
2
- export declare function deleteEmbeddings(params: RagDeleteEmbeddingsParams): Promise<boolean>;
2
+ export declare function deleteEmbeddings(params: RagDeleteEmbeddingsParams): Promise<void>;
3
3
  //# sourceMappingURL=delete-embeddings.d.ts.map
@@ -1,12 +1,11 @@
1
- import { getRagInstance } from "../rag-manager.js";
2
- import { embed } from "../../addons/llamacpp/index.js";
3
- import { ragDeleteEmbeddingsOperationSchema, } from "../../../../schemas/index.js";
1
+ import { getRagDbAdapter, hasRagWorkspaceStorage, } from "../rag-workspace-manager.js";
2
+ import { ragDeleteEmbeddingsParamsSchema, } from "../../../../schemas/index.js";
3
+ import { RAGDeleteFailedError } from "../../../../utils/errors-server.js";
4
4
  export async function deleteEmbeddings(params) {
5
- const { modelId, ids, workspace } = ragDeleteEmbeddingsOperationSchema.parse(params);
6
- const embeddingFunction = async (text) => {
7
- return await embed({ modelId, text });
8
- };
9
- const rag = await getRagInstance(modelId, embeddingFunction, workspace);
10
- const success = await rag.deleteEmbeddings(ids);
11
- return success;
5
+ const { ids, workspace } = ragDeleteEmbeddingsParamsSchema.parse(params);
6
+ if (!hasRagWorkspaceStorage(workspace)) {
7
+ throw new RAGDeleteFailedError("workspace is not initialized");
8
+ }
9
+ const dbAdapter = await getRagDbAdapter(workspace);
10
+ await dbAdapter.deleteEmbeddings(ids);
12
11
  }
@@ -0,0 +1,3 @@
1
+ import { type RagDeleteWorkspaceParams } from "../../../../schemas/index";
2
+ export declare function deleteWorkspace(params: RagDeleteWorkspaceParams): Promise<void>;
3
+ //# sourceMappingURL=delete-workspace.d.ts.map
@@ -0,0 +1,14 @@
1
+ import { isWorkspaceLoaded, deleteWorkspace as deleteWorkspaceFromManager, } from "../rag-workspace-manager.js";
2
+ import { ragDeleteWorkspaceParamsSchema, } from "../../../../schemas/index.js";
3
+ import { RAGWorkspaceNotFoundError, RAGWorkspaceInUseError, } from "../../../../utils/errors-server.js";
4
+ export async function deleteWorkspace(params) {
5
+ const { workspace } = ragDeleteWorkspaceParamsSchema.parse(params);
6
+ // Check if workspace is currently in use
7
+ if (isWorkspaceLoaded(workspace)) {
8
+ throw new RAGWorkspaceInUseError(workspace);
9
+ }
10
+ const deleted = await deleteWorkspaceFromManager(workspace);
11
+ if (!deleted) {
12
+ throw new RAGWorkspaceNotFoundError(workspace);
13
+ }
14
+ }
@@ -0,0 +1,9 @@
1
+ import { type RagIngestParams } from "../../../../schemas/index";
2
+ import type { IngestStage } from "@qvac/rag";
3
+ interface IngestHandlerOptions {
4
+ onProgress?: (stage: IngestStage, current: number, total: number) => void;
5
+ signal?: AbortSignal;
6
+ }
7
+ export declare function ingest(params: RagIngestParams, options?: IngestHandlerOptions): Promise<import("@qvac/rag").IngestResult>;
8
+ export {};
9
+ //# sourceMappingURL=ingest.d.ts.map
@@ -0,0 +1,18 @@
1
+ import { getRagInstance } from "../rag-workspace-manager.js";
2
+ import { embed } from "../../addons/llamacpp-embedding/index.js";
3
+ import { ragIngestParamsSchema } from "../../../../schemas/index.js";
4
+ export async function ingest(params, options) {
5
+ const { modelId, documents, chunk, chunkOpts, workspace, progressInterval } = ragIngestParamsSchema.parse(params);
6
+ async function embeddingFunction(text) {
7
+ return await embed({ modelId, text });
8
+ }
9
+ const rag = await getRagInstance(modelId, embeddingFunction, workspace);
10
+ const ingestOpts = {
11
+ chunk,
12
+ chunkOpts,
13
+ progressInterval,
14
+ onProgress: options?.onProgress,
15
+ signal: options?.signal,
16
+ };
17
+ return await rag.ingest(documents, modelId, ingestOpts);
18
+ }
@@ -0,0 +1,3 @@
1
+ import { type RagWorkspaceInfo } from "../rag-workspace-manager";
2
+ export declare function listWorkspaces(): RagWorkspaceInfo[];
3
+ //# sourceMappingURL=list-workspaces.d.ts.map
@@ -0,0 +1,4 @@
1
+ import { listWorkspaces as listWorkspacesFromManager, } from "../rag-workspace-manager.js";
2
+ export function listWorkspaces() {
3
+ return listWorkspacesFromManager();
4
+ }
@@ -0,0 +1,9 @@
1
+ import { type RagReindexParams } from "../../../../schemas/index";
2
+ import type { ReindexResult, ReindexStage } from "@qvac/rag";
3
+ interface ReindexHandlerOptions {
4
+ onProgress?: (stage: ReindexStage, current: number, total: number) => void;
5
+ signal?: AbortSignal;
6
+ }
7
+ export declare function reindex(params: RagReindexParams, options?: ReindexHandlerOptions): Promise<ReindexResult>;
8
+ export {};
9
+ //# sourceMappingURL=reindex.d.ts.map
@@ -0,0 +1,16 @@
1
+ import { getRagDbAdapter, hasRagWorkspaceStorage, } from "../rag-workspace-manager.js";
2
+ import { ragReindexParamsSchema } from "../../../../schemas/index.js";
3
+ import { RAGHyperDBFailedError } from "../../../../utils/errors-server.js";
4
+ export async function reindex(params, options) {
5
+ const { workspace } = ragReindexParamsSchema.parse(params);
6
+ if (!hasRagWorkspaceStorage(workspace)) {
7
+ throw new RAGHyperDBFailedError("workspace is not initialized");
8
+ }
9
+ const dbAdapter = await getRagDbAdapter(workspace);
10
+ const reindexOpts = {
11
+ onProgress: options?.onProgress,
12
+ signal: options?.signal,
13
+ };
14
+ const result = await dbAdapter.reindex(reindexOpts);
15
+ return result;
16
+ }
@@ -1,6 +1,9 @@
1
1
  import { type RagSaveEmbeddingsParams } from "../../../../schemas/index";
2
- export declare function saveEmbeddings(params: RagSaveEmbeddingsParams): Promise<{
3
- processed: import("@qvac/rag").SaveEmbeddingsResult[];
4
- droppedIndices: number[];
5
- }>;
2
+ import type { SaveStage } from "@qvac/rag";
3
+ interface SaveEmbeddingsHandlerOptions {
4
+ onProgress?: (stage: SaveStage, current: number, total: number) => void;
5
+ signal?: AbortSignal;
6
+ }
7
+ export declare function saveEmbeddings(params: RagSaveEmbeddingsParams, options?: SaveEmbeddingsHandlerOptions): Promise<import("@qvac/rag").SaveEmbeddingsResult[]>;
8
+ export {};
6
9
  //# sourceMappingURL=save-embeddings.d.ts.map
@@ -1,16 +1,15 @@
1
- import { getRagInstance } from "../rag-manager.js";
2
- import { embed } from "../../addons/llamacpp/index.js";
3
- import { ragSaveEmbeddingsOperationSchema, } from "../../../../schemas/index.js";
4
- export async function saveEmbeddings(params) {
5
- const { modelId, documents, chunk, chunkOpts, workspace } = ragSaveEmbeddingsOperationSchema.parse(params);
6
- const embeddingFunction = async (text) => {
7
- return await embed({ modelId, text });
8
- };
9
- const rag = await getRagInstance(modelId, embeddingFunction, workspace);
10
- const saveOpts = { chunk };
11
- if (chunkOpts) {
12
- saveOpts.chunkOpts = chunkOpts;
1
+ import { getRagDbAdapter } from "../rag-workspace-manager.js";
2
+ import { ragSaveEmbeddingsParamsSchema, } from "../../../../schemas/index.js";
3
+ export async function saveEmbeddings(params, options) {
4
+ const { documents, progressInterval, workspace } = ragSaveEmbeddingsParamsSchema.parse(params);
5
+ if (documents.length === 0) {
6
+ return [];
13
7
  }
14
- const result = await rag.saveEmbeddings(documents, saveOpts);
15
- return result;
8
+ const dbAdapter = await getRagDbAdapter(workspace);
9
+ const saveOpts = {
10
+ progressInterval,
11
+ onProgress: options?.onProgress,
12
+ signal: options?.signal,
13
+ };
14
+ return await dbAdapter.saveEmbeddings(documents, saveOpts);
16
15
  }
@@ -1,15 +1,15 @@
1
- import { getRagInstance } from "../rag-manager.js";
2
- import { embed } from "../../addons/llamacpp/index.js";
3
- import { ragSearchOperationSchema } from "../../../../schemas/index.js";
1
+ import { getRagInstance, hasRagWorkspaceStorage, } from "../rag-workspace-manager.js";
2
+ import { embed } from "../../addons/llamacpp-embedding/index.js";
3
+ import { ragSearchParamsSchema } from "../../../../schemas/index.js";
4
4
  export async function search(params) {
5
- const { modelId, query, topK, n, workspace } = ragSearchOperationSchema.parse(params);
6
- const embeddingFunction = async (text) => {
5
+ const { modelId, query, topK, n, workspace } = ragSearchParamsSchema.parse(params);
6
+ if (!hasRagWorkspaceStorage(workspace)) {
7
+ return [];
8
+ }
9
+ async function embeddingFunction(text) {
7
10
  return await embed({ modelId, text });
8
- };
11
+ }
9
12
  const rag = await getRagInstance(modelId, embeddingFunction, workspace);
10
- const results = await rag.search(query, {
11
- topK,
12
- n,
13
- });
13
+ const results = await rag.search(query, { topK, n });
14
14
  return results;
15
15
  }
@@ -1,5 +1,12 @@
1
+ export { chunk } from "./handlers/chunk";
2
+ export { ingest } from "./handlers/ingest";
1
3
  export { saveEmbeddings } from "./handlers/save-embeddings";
2
4
  export { search } from "./handlers/search";
3
5
  export { deleteEmbeddings } from "./handlers/delete-embeddings";
4
- export { closeRagInstance, closeAllRagInstances, } from "./rag-manager";
6
+ export { reindex } from "./handlers/reindex";
7
+ export { listWorkspaces } from "./handlers/list-workspaces";
8
+ export { closeWorkspace } from "./handlers/close-workspace";
9
+ export { deleteWorkspace } from "./handlers/delete-workspace";
10
+ export { closeAllRagInstances, DEFAULT_WORKSPACE, type RagWorkspaceInfo, } from "./rag-workspace-manager";
11
+ export { registerRagOperation, unregisterRagOperation, cancelRagOperation, } from "./rag-operation-manager";
5
12
  //# sourceMappingURL=index.d.ts.map
@@ -1,4 +1,11 @@
1
+ export { chunk } from "./handlers/chunk.js";
2
+ export { ingest } from "./handlers/ingest.js";
1
3
  export { saveEmbeddings } from "./handlers/save-embeddings.js";
2
4
  export { search } from "./handlers/search.js";
3
5
  export { deleteEmbeddings } from "./handlers/delete-embeddings.js";
4
- export { closeRagInstance, closeAllRagInstances, } from "./rag-manager.js";
6
+ export { reindex } from "./handlers/reindex.js";
7
+ export { listWorkspaces } from "./handlers/list-workspaces.js";
8
+ export { closeWorkspace } from "./handlers/close-workspace.js";
9
+ export { deleteWorkspace } from "./handlers/delete-workspace.js";
10
+ export { closeAllRagInstances, DEFAULT_WORKSPACE, } from "./rag-workspace-manager.js";
11
+ export { registerRagOperation, unregisterRagOperation, cancelRagOperation, } from "./rag-operation-manager.js";