@qvac/sdk 0.8.0 → 1.0.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 (588) hide show
  1. package/LICENSE +24 -1
  2. package/README.md +191 -373
  3. package/dist/client/api/cancel.d.ts +4 -13
  4. package/dist/client/api/cancel.js +6 -16
  5. package/dist/client/api/completion-stream.d.ts +30 -24
  6. package/dist/client/api/completion-stream.js +70 -121
  7. package/dist/client/api/delete-cache.js +2 -3
  8. package/dist/client/api/download-asset.d.ts +5 -6
  9. package/dist/client/api/download-asset.js +20 -16
  10. package/dist/client/api/embed.d.ts +4 -21
  11. package/dist/client/api/embed.js +14 -4
  12. package/dist/client/api/index.d.ts +1 -5
  13. package/dist/client/api/index.js +1 -5
  14. package/dist/client/api/load-model.d.ts +21 -49
  15. package/dist/client/api/load-model.js +134 -40
  16. package/dist/client/api/logging-stream.d.ts +4 -7
  17. package/dist/client/api/logging-stream.js +5 -9
  18. package/dist/client/api/ping.d.ts +1 -1
  19. package/dist/client/api/ping.js +2 -3
  20. package/dist/client/api/provide.d.ts +1 -1
  21. package/dist/client/api/provide.js +3 -4
  22. package/dist/client/api/rag.d.ts +21 -216
  23. package/dist/client/api/rag.js +36 -396
  24. package/dist/client/api/stop-provider.d.ts +1 -1
  25. package/dist/client/api/stop-provider.js +3 -4
  26. package/dist/client/api/text-to-speech.d.ts +2 -2
  27. package/dist/client/api/text-to-speech.js +3 -3
  28. package/dist/client/api/transcribe.d.ts +5 -9
  29. package/dist/client/api/transcribe.js +9 -11
  30. package/dist/client/api/translate.d.ts +3 -3
  31. package/dist/client/api/translate.js +15 -15
  32. package/dist/client/api/unload-model.d.ts +1 -5
  33. package/dist/client/api/unload-model.js +4 -17
  34. package/dist/client/index.d.ts +1 -1
  35. package/dist/client/index.js +1 -1
  36. package/dist/client/logging-stream-registry.d.ts +1 -1
  37. package/dist/client/logging-stream-registry.js +13 -14
  38. package/dist/client/rpc/bare-client.d.ts +139 -3
  39. package/dist/client/rpc/bare-client.js +16 -117
  40. package/dist/client/rpc/bare-rpc-client.d.ts +4 -0
  41. package/dist/client/rpc/bare-rpc-client.js +87 -0
  42. package/dist/client/rpc/expo-rpc-client.d.ts +1 -2
  43. package/dist/client/rpc/expo-rpc-client.js +14 -57
  44. package/dist/client/rpc/node-rpc-client.d.ts +8 -3
  45. package/dist/client/rpc/node-rpc-client.js +62 -218
  46. package/dist/client/rpc/rpc-client.d.ts +2 -3
  47. package/dist/client/rpc/rpc-client.js +49 -184
  48. package/dist/constants/audio.d.ts +2 -1
  49. package/dist/constants/audio.js +17 -1
  50. package/dist/constants/index.d.ts +0 -1
  51. package/dist/constants/index.js +0 -1
  52. package/dist/examples/delegated-inference/consumer.js +2 -3
  53. package/dist/examples/download-with-cancel.js +4 -3
  54. package/dist/examples/embed-hyperdrive.js +4 -39
  55. package/dist/examples/kv-cache-cleanup.js +2 -1
  56. package/dist/examples/kv-cache-custom-key.js +2 -16
  57. package/dist/examples/kv-cache-example.js +2 -1
  58. package/dist/examples/llamacpp-file-logging.d.ts +2 -0
  59. package/dist/examples/{logging-file-transport.js → llamacpp-file-logging.js} +8 -3
  60. package/dist/examples/llamacpp-filesystem.js +2 -2
  61. package/dist/examples/llamacpp-http.js +1 -0
  62. package/dist/examples/llamacpp-hyperdrive.js +2 -1
  63. package/dist/examples/llamacpp-multimodal.js +4 -3
  64. package/dist/examples/llamacpp-native-tools.js +30 -72
  65. package/dist/examples/multi-model-demo.js +3 -2
  66. package/dist/examples/parallel-download.js +14 -46
  67. package/dist/examples/rag/rag-chromadb.js +1 -0
  68. package/dist/examples/rag/rag-hyperdb-workspaces.d.ts +2 -0
  69. package/dist/examples/rag/rag-hyperdb-workspaces.js +107 -0
  70. package/dist/examples/rag/rag-hyperdb.d.ts +2 -0
  71. package/dist/examples/rag/{rag-hyperdb/ingest.js → rag-hyperdb.js} +5 -10
  72. package/dist/examples/rag/rag-lancedb.js +1 -0
  73. package/dist/examples/rag/rag-sqlite.js +1 -0
  74. package/dist/examples/text-to-speech.d.ts +3 -0
  75. package/dist/examples/{tts/utils.js → text-to-speech.js} +63 -18
  76. package/dist/examples/translation/translation-indic.js +1 -4
  77. package/dist/examples/translation/translation-llm-context.js +1 -0
  78. package/dist/examples/translation/translation-llm.js +2 -2
  79. package/dist/examples/translation/translation-opus.js +3 -6
  80. package/dist/examples/translation/translation-stream.js +3 -3
  81. package/dist/examples/whispercpp-filesystem.js +43 -0
  82. package/dist/examples/{transcription/whispercpp-microphone-record.js → whispercpp-microphone-record.js} +9 -8
  83. package/dist/expo/plugins/index.d.ts +0 -3
  84. package/dist/expo/plugins/index.js +0 -3
  85. package/dist/expo/plugins/withMobileBundle.d.ts +2 -5
  86. package/dist/expo/plugins/withMobileBundle.js +40 -121
  87. package/dist/expo/plugins/withQvacSDK.d.ts +0 -4
  88. package/dist/expo/plugins/withQvacSDK.js +1 -26
  89. package/dist/index.d.ts +4 -9
  90. package/dist/index.js +5 -11
  91. package/dist/logging/base-logger.js +16 -26
  92. package/dist/logging/index.d.ts +1 -7
  93. package/dist/logging/index.js +1 -7
  94. package/dist/logging/logger.d.ts +2 -0
  95. package/dist/logging/logger.js +6 -11
  96. package/dist/logging/stream-logger.d.ts +1 -1
  97. package/dist/logging/stream-logger.js +3 -6
  98. package/dist/logging/transport.js +2 -2
  99. package/dist/logging/types.d.ts +0 -2
  100. package/dist/logging/utils.d.ts +0 -2
  101. package/dist/logging/utils.js +0 -62
  102. package/dist/models/{registry → hyperdrive}/index.js +1 -1
  103. package/dist/models/hyperdrive/models.d.ts +619 -0
  104. package/dist/models/hyperdrive/models.js +693 -0
  105. package/dist/schemas/cancel.d.ts +0 -6
  106. package/dist/schemas/cancel.js +0 -5
  107. package/dist/schemas/common.d.ts +164 -2973
  108. package/dist/schemas/common.js +1 -23
  109. package/dist/schemas/completion-stream.d.ts +60 -31
  110. package/dist/schemas/completion-stream.js +44 -20
  111. package/dist/schemas/delegate.d.ts +0 -1
  112. package/dist/schemas/delegate.js +0 -1
  113. package/dist/schemas/download-asset.d.ts +3 -125
  114. package/dist/schemas/download-asset.js +5 -22
  115. package/dist/schemas/embed.d.ts +3 -3
  116. package/dist/schemas/embed.js +2 -9
  117. package/dist/schemas/index.d.ts +1 -19
  118. package/dist/schemas/index.js +1 -19
  119. package/dist/schemas/llamacpp-config.d.ts +12 -243
  120. package/dist/schemas/llamacpp-config.js +14 -50
  121. package/dist/schemas/load-model.d.ts +893 -14358
  122. package/dist/schemas/load-model.js +72 -325
  123. package/dist/schemas/logging-stream.d.ts +4 -11
  124. package/dist/schemas/logging-stream.js +3 -4
  125. package/dist/schemas/rag.d.ts +52 -183
  126. package/dist/schemas/rag.js +23 -152
  127. package/dist/schemas/text-to-speech.d.ts +1 -692
  128. package/dist/schemas/text-to-speech.js +3 -35
  129. package/dist/schemas/transcription.d.ts +0 -3
  130. package/dist/schemas/transcription.js +0 -1
  131. package/dist/schemas/translate.d.ts +23 -68
  132. package/dist/schemas/translate.js +11 -37
  133. package/dist/schemas/translation-config.d.ts +7 -810
  134. package/dist/schemas/translation-config.js +7 -113
  135. package/dist/schemas/unload-model.d.ts +0 -2
  136. package/dist/schemas/unload-model.js +0 -2
  137. package/dist/schemas/whispercpp-config.d.ts +25 -0
  138. package/dist/schemas/whispercpp-config.js +18 -0
  139. package/dist/server/bare/{ops → addons}/cancel.js +1 -2
  140. package/dist/server/bare/addons/index.d.ts +4 -0
  141. package/dist/server/bare/addons/index.js +3 -0
  142. package/dist/server/bare/addons/llamacpp/create-model.d.ts +5 -0
  143. package/dist/server/bare/addons/llamacpp/create-model.js +67 -0
  144. package/dist/server/bare/{plugins/llamacpp-completion/ops → addons/llamacpp/handlers}/completion-stream.d.ts +1 -2
  145. package/dist/server/bare/{plugins/llamacpp-completion/ops → addons/llamacpp/handlers}/completion-stream.js +87 -54
  146. package/dist/server/bare/addons/llamacpp/handlers/embed.d.ts +4 -0
  147. package/dist/server/bare/{ops → addons/llamacpp/handlers}/embed.js +7 -22
  148. package/dist/server/bare/addons/llamacpp/index.d.ts +4 -0
  149. package/dist/server/bare/addons/llamacpp/index.js +3 -0
  150. package/dist/server/bare/{ops → addons/llamacpp}/kv-cache-utils.d.ts +1 -4
  151. package/dist/server/bare/{ops → addons/llamacpp}/kv-cache-utils.js +19 -54
  152. package/dist/server/bare/addons/load-model.d.ts +3 -0
  153. package/dist/server/bare/addons/load-model.js +62 -0
  154. package/dist/server/bare/addons/translation/create-model.d.ts +4 -0
  155. package/dist/server/bare/addons/translation/create-model.js +45 -0
  156. package/dist/server/bare/addons/translation/handlers/translate.d.ts +3 -0
  157. package/dist/server/bare/{ops → addons/translation/handlers}/translate.js +14 -47
  158. package/dist/server/bare/addons/translation/index.d.ts +3 -0
  159. package/dist/server/bare/addons/translation/index.js +2 -0
  160. package/dist/server/bare/addons/tts/create-model.d.ts +6 -0
  161. package/dist/server/bare/addons/tts/create-model.js +40 -0
  162. package/dist/server/bare/{plugins/onnx-tts/ops → addons/tts/handlers}/text-to-speech.js +3 -25
  163. package/dist/server/bare/addons/tts/index.d.ts +3 -0
  164. package/dist/server/bare/addons/tts/index.js +2 -0
  165. package/dist/server/bare/addons/unload-model.js +20 -0
  166. package/dist/server/bare/addons/whispercpp/create-model.d.ts +6 -0
  167. package/dist/server/bare/addons/whispercpp/create-model.js +55 -0
  168. package/dist/server/bare/addons/whispercpp/handlers/transcribe-stream.d.ts +3 -0
  169. package/dist/server/bare/addons/whispercpp/handlers/transcribe-stream.js +48 -0
  170. package/dist/server/bare/addons/whispercpp/index.d.ts +3 -0
  171. package/dist/server/bare/addons/whispercpp/index.js +2 -0
  172. package/dist/server/bare/delegate-rpc-client.d.ts +0 -6
  173. package/dist/server/bare/delegate-rpc-client.js +46 -157
  174. package/dist/server/bare/hyperswarm.d.ts +0 -3
  175. package/dist/server/bare/hyperswarm.js +6 -29
  176. package/dist/server/bare/rag-hyperdb/handlers/delete-embeddings.d.ts +1 -1
  177. package/dist/server/bare/rag-hyperdb/handlers/delete-embeddings.js +10 -9
  178. package/dist/server/bare/rag-hyperdb/handlers/save-embeddings.d.ts +4 -7
  179. package/dist/server/bare/rag-hyperdb/handlers/save-embeddings.js +14 -13
  180. package/dist/server/bare/rag-hyperdb/handlers/search.js +10 -10
  181. package/dist/server/bare/rag-hyperdb/index.d.ts +1 -8
  182. package/dist/server/bare/rag-hyperdb/index.js +1 -8
  183. package/dist/server/bare/rag-hyperdb/rag-manager.d.ts +5 -0
  184. package/dist/server/bare/rag-hyperdb/rag-manager.js +65 -0
  185. package/dist/server/bare/registry/logging-stream-registry.d.ts +7 -24
  186. package/dist/server/bare/registry/logging-stream-registry.js +20 -99
  187. package/dist/server/bare/registry/model-registry.d.ts +26 -14
  188. package/dist/server/bare/registry/model-registry.js +12 -32
  189. package/dist/server/error-handlers.d.ts +2 -3
  190. package/dist/server/error-handlers.js +10 -15
  191. package/dist/server/http-server.d.ts +2 -0
  192. package/dist/server/http-server.js +189 -0
  193. package/dist/server/rpc/create-server.js +3 -5
  194. package/dist/server/rpc/handle-request.d.ts +9 -0
  195. package/dist/server/rpc/handle-request.js +242 -92
  196. package/dist/server/rpc/handlers/cancelHandler.js +3 -14
  197. package/dist/server/rpc/handlers/completion-stream-delegated.d.ts +1 -3
  198. package/dist/server/rpc/handlers/completion-stream-delegated.js +6 -18
  199. package/dist/server/rpc/handlers/completion-stream.js +41 -2
  200. package/dist/server/rpc/handlers/delete-cache.js +2 -4
  201. package/dist/server/rpc/handlers/download-asset.js +6 -59
  202. package/dist/server/rpc/handlers/embed.js +19 -2
  203. package/dist/server/rpc/handlers/index.d.ts +0 -13
  204. package/dist/server/rpc/handlers/index.js +0 -13
  205. package/dist/server/rpc/handlers/load-model/download-manager.d.ts +11 -12
  206. package/dist/server/rpc/handlers/load-model/download-manager.js +28 -43
  207. package/dist/server/rpc/handlers/load-model/http.d.ts +1 -2
  208. package/dist/server/rpc/handlers/load-model/http.js +55 -424
  209. package/dist/server/rpc/handlers/load-model/hyperdrive.d.ts +1 -2
  210. package/dist/server/rpc/handlers/load-model/hyperdrive.js +171 -364
  211. package/dist/server/rpc/handlers/load-model/index.d.ts +2 -2
  212. package/dist/server/rpc/handlers/load-model/index.js +2 -2
  213. package/dist/server/rpc/handlers/load-model/resolve.d.ts +1 -3
  214. package/dist/server/rpc/handlers/load-model/resolve.js +29 -110
  215. package/dist/server/rpc/handlers/load-model-delegated.d.ts +2 -6
  216. package/dist/server/rpc/handlers/load-model-delegated.js +21 -59
  217. package/dist/server/rpc/handlers/{load-model/handler.d.ts → load-model.d.ts} +2 -2
  218. package/dist/server/rpc/handlers/load-model.js +57 -0
  219. package/dist/server/rpc/handlers/logging-stream.js +4 -4
  220. package/dist/server/rpc/handlers/provideHandler/connection.js +10 -12
  221. package/dist/server/rpc/handlers/provideHandler/handler.js +17 -20
  222. package/dist/server/rpc/handlers/provideHandler/proxy.js +6 -8
  223. package/dist/server/rpc/handlers/rag.d.ts +2 -2
  224. package/dist/server/rpc/handlers/rag.js +43 -130
  225. package/dist/server/rpc/handlers/stopProvideHandler.js +2 -6
  226. package/dist/server/rpc/handlers/text-to-speech.js +5 -2
  227. package/dist/server/rpc/handlers/transcribe-stream.js +24 -2
  228. package/dist/server/rpc/handlers/translate.js +49 -2
  229. package/dist/server/rpc/handlers/unload-model.js +3 -12
  230. package/dist/server/rpc/index.d.ts +1 -1
  231. package/dist/server/utils/audio/decoder.d.ts +1 -2
  232. package/dist/server/utils/audio/decoder.js +12 -49
  233. package/dist/server/utils/cache.d.ts +8 -19
  234. package/dist/server/utils/cache.js +15 -100
  235. package/dist/server/utils/hash.d.ts +5 -0
  236. package/dist/server/utils/hash.js +11 -0
  237. package/dist/server/utils/index.d.ts +2 -7
  238. package/dist/server/utils/index.js +2 -7
  239. package/dist/server/utils/tool-parser.js +14 -28
  240. package/dist/server/worker.d.ts +5 -4
  241. package/dist/server/worker.js +89 -22
  242. package/package.json +41 -141
  243. package/NOTICE +0 -358
  244. package/bare-imports.json +0 -44
  245. package/dist/client/api/get-model-info.d.ts +0 -36
  246. package/dist/client/api/get-model-info.js +0 -14
  247. package/dist/client/api/invoke-plugin.d.ts +0 -15
  248. package/dist/client/api/invoke-plugin.js +0 -38
  249. package/dist/client/api/ocr.d.ts +0 -31
  250. package/dist/client/api/ocr.js +0 -88
  251. package/dist/client/api/registry.d.ts +0 -14
  252. package/dist/client/api/registry.js +0 -37
  253. package/dist/client/config-loader/config-utils.d.ts +0 -5
  254. package/dist/client/config-loader/config-utils.js +0 -20
  255. package/dist/client/config-loader/resolve-config.bare.d.ts +0 -9
  256. package/dist/client/config-loader/resolve-config.bare.js +0 -87
  257. package/dist/client/config-loader/resolve-config.expo.d.ts +0 -11
  258. package/dist/client/config-loader/resolve-config.expo.js +0 -62
  259. package/dist/client/config-loader/resolve-config.node.d.ts +0 -10
  260. package/dist/client/config-loader/resolve-config.node.js +0 -145
  261. package/dist/client/init-hooks.d.ts +0 -21
  262. package/dist/client/init-hooks.js +0 -66
  263. package/dist/client/rpc/expo-device-info.d.ts +0 -6
  264. package/dist/client/rpc/expo-device-info.js +0 -32
  265. package/dist/client/rpc/profiling/index.d.ts +0 -2
  266. package/dist/client/rpc/profiling/index.js +0 -1
  267. package/dist/client/rpc/profiling/profiler.d.ts +0 -27
  268. package/dist/client/rpc/profiling/profiler.js +0 -139
  269. package/dist/constants/registry.d.ts +0 -2
  270. package/dist/constants/registry.js +0 -1
  271. package/dist/examples/cache-management.d.ts +0 -2
  272. package/dist/examples/cache-management.js +0 -97
  273. package/dist/examples/config/blind-relay/blind-relay.config.d.ts +0 -5
  274. package/dist/examples/config/blind-relay/blind-relay.config.js +0 -7
  275. package/dist/examples/config/default/default.config.d.ts +0 -8
  276. package/dist/examples/config/default/default.config.js +0 -6
  277. package/dist/examples/config/plugins/plugins.config.d.ts +0 -5
  278. package/dist/examples/config/plugins/plugins.config.js +0 -4
  279. package/dist/examples/config-reload.d.ts +0 -2
  280. package/dist/examples/config-reload.js +0 -49
  281. package/dist/examples/default-config-usage.d.ts +0 -17
  282. package/dist/examples/default-config-usage.js +0 -47
  283. package/dist/examples/delegated-inference/consumer-profiled.d.ts +0 -2
  284. package/dist/examples/delegated-inference/consumer-profiled.js +0 -67
  285. package/dist/examples/download-with-blind-relays.d.ts +0 -2
  286. package/dist/examples/download-with-blind-relays.js +0 -49
  287. package/dist/examples/llamacpp-sharded.d.ts +0 -2
  288. package/dist/examples/llamacpp-sharded.js +0 -53
  289. package/dist/examples/logging-file-transport.d.ts +0 -2
  290. package/dist/examples/logging-streaming.d.ts +0 -2
  291. package/dist/examples/logging-streaming.js +0 -75
  292. package/dist/examples/mcp-websearch.d.ts +0 -13
  293. package/dist/examples/mcp-websearch.js +0 -176
  294. package/dist/examples/ocr-fasttext.d.ts +0 -2
  295. package/dist/examples/ocr-fasttext.js +0 -52
  296. package/dist/examples/plugins.d.ts +0 -14
  297. package/dist/examples/plugins.js +0 -129
  298. package/dist/examples/profiling/basic.d.ts +0 -2
  299. package/dist/examples/profiling/basic.js +0 -71
  300. package/dist/examples/profiling/per-call.d.ts +0 -2
  301. package/dist/examples/profiling/per-call.js +0 -30
  302. package/dist/examples/quickstart.d.ts +0 -2
  303. package/dist/examples/quickstart.js +0 -28
  304. package/dist/examples/rag/rag-hyperdb/cancellation.d.ts +0 -2
  305. package/dist/examples/rag/rag-hyperdb/cancellation.js +0 -75
  306. package/dist/examples/rag/rag-hyperdb/ingest.d.ts +0 -2
  307. package/dist/examples/rag/rag-hyperdb/pipeline.d.ts +0 -2
  308. package/dist/examples/rag/rag-hyperdb/pipeline.js +0 -74
  309. package/dist/examples/rag/rag-hyperdb/workspaces.d.ts +0 -2
  310. package/dist/examples/rag/rag-hyperdb/workspaces.js +0 -178
  311. package/dist/examples/registry-query.d.ts +0 -2
  312. package/dist/examples/registry-query.js +0 -87
  313. package/dist/examples/transcription/parakeet-ctc-filesystem.d.ts +0 -2
  314. package/dist/examples/transcription/parakeet-ctc-filesystem.js +0 -40
  315. package/dist/examples/transcription/parakeet-microphone-record.d.ts +0 -2
  316. package/dist/examples/transcription/parakeet-microphone-record.js +0 -95
  317. package/dist/examples/transcription/parakeet-sortformer.d.ts +0 -2
  318. package/dist/examples/transcription/parakeet-sortformer.js +0 -115
  319. package/dist/examples/transcription/parakeet-tdt-filesystem.d.ts +0 -2
  320. package/dist/examples/transcription/parakeet-tdt-filesystem.js +0 -44
  321. package/dist/examples/transcription/whispercpp-filesystem.js +0 -69
  322. package/dist/examples/transcription/whispercpp-prompt.d.ts +0 -2
  323. package/dist/examples/transcription/whispercpp-prompt.js +0 -67
  324. package/dist/examples/translation/translation-bergamot-batch.d.ts +0 -2
  325. package/dist/examples/translation/translation-bergamot-batch.js +0 -49
  326. package/dist/examples/translation/translation-bergamot-pivot.d.ts +0 -2
  327. package/dist/examples/translation/translation-bergamot-pivot.js +0 -73
  328. package/dist/examples/translation/translation-bergamot.d.ts +0 -2
  329. package/dist/examples/translation/translation-bergamot.js +0 -39
  330. package/dist/examples/translation/translation-llm-afriquegemma.d.ts +0 -2
  331. package/dist/examples/translation/translation-llm-afriquegemma.js +0 -39
  332. package/dist/examples/tts/chatterbox.d.ts +0 -2
  333. package/dist/examples/tts/chatterbox.js +0 -59
  334. package/dist/examples/tts/supertonic.d.ts +0 -2
  335. package/dist/examples/tts/supertonic.js +0 -51
  336. package/dist/examples/tts/utils.d.ts +0 -17
  337. package/dist/expo/plugins/resolve-sdk-package-dir.d.ts +0 -15
  338. package/dist/expo/plugins/resolve-sdk-package-dir.js +0 -31
  339. package/dist/expo/plugins/withAndroidArchitecture.d.ts +0 -8
  340. package/dist/expo/plugins/withAndroidArchitecture.js +0 -52
  341. package/dist/expo/plugins/withAndroidNdkVersion.d.ts +0 -8
  342. package/dist/expo/plugins/withAndroidNdkVersion.js +0 -31
  343. package/dist/expo/plugins/withDeviceInfo.d.ts +0 -10
  344. package/dist/expo/plugins/withDeviceInfo.js +0 -48
  345. package/dist/logging/addon.d.ts +0 -6
  346. package/dist/logging/addon.js +0 -75
  347. package/dist/logging/client-logger.d.ts +0 -3
  348. package/dist/logging/client-logger.js +0 -24
  349. package/dist/logging/namespaces.d.ts +0 -6
  350. package/dist/logging/namespaces.js +0 -6
  351. package/dist/logging/registry.d.ts +0 -31
  352. package/dist/logging/registry.js +0 -62
  353. package/dist/logging/server-logger.d.ts +0 -3
  354. package/dist/logging/server-logger.js +0 -16
  355. package/dist/models/registry/models.d.ts +0 -10417
  356. package/dist/models/registry/models.js +0 -10757
  357. package/dist/models/update-models/codegen.d.ts +0 -3
  358. package/dist/models/update-models/codegen.js +0 -135
  359. package/dist/models/update-models/history.d.ts +0 -24
  360. package/dist/models/update-models/history.js +0 -107
  361. package/dist/models/update-models/index.d.ts +0 -2
  362. package/dist/models/update-models/index.js +0 -125
  363. package/dist/models/update-models/naming.d.ts +0 -4
  364. package/dist/models/update-models/naming.js +0 -370
  365. package/dist/models/update-models/processing.d.ts +0 -8
  366. package/dist/models/update-models/processing.js +0 -67
  367. package/dist/models/update-models/registry.d.ts +0 -4
  368. package/dist/models/update-models/registry.js +0 -67
  369. package/dist/models/update-models/shards.d.ts +0 -4
  370. package/dist/models/update-models/shards.js +0 -57
  371. package/dist/models/update-models/types.d.ts +0 -60
  372. package/dist/models/update-models/types.js +0 -1
  373. package/dist/models/update-models/utils.d.ts +0 -3
  374. package/dist/models/update-models/utils.js +0 -21
  375. package/dist/pear/pre.d.ts +0 -18
  376. package/dist/pear/pre.js +0 -433
  377. package/dist/profiling/aggregator.d.ts +0 -15
  378. package/dist/profiling/aggregator.js +0 -100
  379. package/dist/profiling/clock.d.ts +0 -12
  380. package/dist/profiling/clock.js +0 -51
  381. package/dist/profiling/controller.d.ts +0 -33
  382. package/dist/profiling/controller.js +0 -123
  383. package/dist/profiling/envelope.d.ts +0 -10
  384. package/dist/profiling/envelope.js +0 -36
  385. package/dist/profiling/events.d.ts +0 -20
  386. package/dist/profiling/events.js +0 -37
  387. package/dist/profiling/exporters.d.ts +0 -10
  388. package/dist/profiling/exporters.js +0 -236
  389. package/dist/profiling/index.d.ts +0 -36
  390. package/dist/profiling/index.js +0 -31
  391. package/dist/profiling/ring-buffer.d.ts +0 -19
  392. package/dist/profiling/ring-buffer.js +0 -83
  393. package/dist/profiling/types.d.ts +0 -47
  394. package/dist/profiling/types.js +0 -1
  395. package/dist/schemas/archive.d.ts +0 -9
  396. package/dist/schemas/archive.js +0 -17
  397. package/dist/schemas/engine-addon-map.d.ts +0 -5
  398. package/dist/schemas/engine-addon-map.js +0 -52
  399. package/dist/schemas/get-model-info.d.ts +0 -120
  400. package/dist/schemas/get-model-info.js +0 -58
  401. package/dist/schemas/json-schema.d.ts +0 -16
  402. package/dist/schemas/json-schema.js +0 -2
  403. package/dist/schemas/mcp-adapter.d.ts +0 -47
  404. package/dist/schemas/mcp-adapter.js +0 -1
  405. package/dist/schemas/model-src-utils.d.ts +0 -148
  406. package/dist/schemas/model-src-utils.js +0 -35
  407. package/dist/schemas/model-types.d.ts +0 -183
  408. package/dist/schemas/model-types.js +0 -168
  409. package/dist/schemas/ocr.d.ts +0 -125
  410. package/dist/schemas/ocr.js +0 -57
  411. package/dist/schemas/path-validation.d.ts +0 -10
  412. package/dist/schemas/path-validation.js +0 -22
  413. package/dist/schemas/plugin.d.ts +0 -226
  414. package/dist/schemas/plugin.js +0 -158
  415. package/dist/schemas/profiling.d.ts +0 -105
  416. package/dist/schemas/profiling.js +0 -66
  417. package/dist/schemas/registry.d.ts +0 -356
  418. package/dist/schemas/registry.js +0 -93
  419. package/dist/schemas/reload-config.d.ts +0 -476
  420. package/dist/schemas/reload-config.js +0 -44
  421. package/dist/schemas/runtime-context.d.ts +0 -19
  422. package/dist/schemas/runtime-context.js +0 -7
  423. package/dist/schemas/sdk-config.d.ts +0 -2973
  424. package/dist/schemas/sdk-config.js +0 -136
  425. package/dist/schemas/sdk-errors-client.d.ts +0 -31
  426. package/dist/schemas/sdk-errors-client.js +0 -143
  427. package/dist/schemas/sdk-errors-registry.d.ts +0 -6
  428. package/dist/schemas/sdk-errors-registry.js +0 -8
  429. package/dist/schemas/sdk-errors-server.d.ts +0 -89
  430. package/dist/schemas/sdk-errors-server.js +0 -451
  431. package/dist/schemas/shard.d.ts +0 -21
  432. package/dist/schemas/shard.js +0 -17
  433. package/dist/schemas/tools.d.ts +0 -65
  434. package/dist/schemas/tools.js +0 -43
  435. package/dist/schemas/transcription-config.d.ts +0 -383
  436. package/dist/schemas/transcription-config.js +0 -95
  437. package/dist/scripts/run-security-tests-bare.d.ts +0 -2
  438. package/dist/scripts/run-security-tests-bare.js +0 -78
  439. package/dist/scripts/run-security-tests.d.ts +0 -2
  440. package/dist/scripts/run-security-tests.js +0 -22
  441. package/dist/scripts/run-unit-tests.d.ts +0 -2
  442. package/dist/scripts/run-unit-tests.js +0 -17
  443. package/dist/server/bare/ops/embed.d.ts +0 -12
  444. package/dist/server/bare/ops/load-model.d.ts +0 -9
  445. package/dist/server/bare/ops/load-model.js +0 -85
  446. package/dist/server/bare/ops/transcribe.d.ts +0 -3
  447. package/dist/server/bare/ops/transcribe.js +0 -75
  448. package/dist/server/bare/ops/translate.d.ts +0 -5
  449. package/dist/server/bare/ops/unload-model.js +0 -41
  450. package/dist/server/bare/plugins/index.d.ts +0 -8
  451. package/dist/server/bare/plugins/index.js +0 -7
  452. package/dist/server/bare/plugins/llamacpp-completion/ops/cache-logger.d.ts +0 -6
  453. package/dist/server/bare/plugins/llamacpp-completion/ops/cache-logger.js +0 -34
  454. package/dist/server/bare/plugins/llamacpp-completion/plugin.d.ts +0 -220
  455. package/dist/server/bare/plugins/llamacpp-completion/plugin.js +0 -155
  456. package/dist/server/bare/plugins/llamacpp-embedding/plugin.d.ts +0 -54
  457. package/dist/server/bare/plugins/llamacpp-embedding/plugin.js +0 -87
  458. package/dist/server/bare/plugins/nmtcpp-translation/plugin.d.ts +0 -367
  459. package/dist/server/bare/plugins/nmtcpp-translation/plugin.js +0 -204
  460. package/dist/server/bare/plugins/onnx-ocr/ops/ocr-stream.d.ts +0 -10
  461. package/dist/server/bare/plugins/onnx-ocr/ops/ocr-stream.js +0 -110
  462. package/dist/server/bare/plugins/onnx-ocr/plugin.d.ts +0 -86
  463. package/dist/server/bare/plugins/onnx-ocr/plugin.js +0 -117
  464. package/dist/server/bare/plugins/onnx-tts/plugin.d.ts +0 -373
  465. package/dist/server/bare/plugins/onnx-tts/plugin.js +0 -182
  466. package/dist/server/bare/plugins/onnx-tts/wav-helper.d.ts +0 -14
  467. package/dist/server/bare/plugins/onnx-tts/wav-helper.js +0 -107
  468. package/dist/server/bare/plugins/parakeet-transcription/plugin.d.ts +0 -317
  469. package/dist/server/bare/plugins/parakeet-transcription/plugin.js +0 -154
  470. package/dist/server/bare/plugins/whispercpp-transcription/plugin.d.ts +0 -237
  471. package/dist/server/bare/plugins/whispercpp-transcription/plugin.js +0 -86
  472. package/dist/server/bare/rag-hyperdb/handlers/chunk.d.ts +0 -3
  473. package/dist/server/bare/rag-hyperdb/handlers/chunk.js +0 -7
  474. package/dist/server/bare/rag-hyperdb/handlers/close-workspace.d.ts +0 -3
  475. package/dist/server/bare/rag-hyperdb/handlers/close-workspace.js +0 -9
  476. package/dist/server/bare/rag-hyperdb/handlers/delete-workspace.d.ts +0 -3
  477. package/dist/server/bare/rag-hyperdb/handlers/delete-workspace.js +0 -14
  478. package/dist/server/bare/rag-hyperdb/handlers/ingest.d.ts +0 -9
  479. package/dist/server/bare/rag-hyperdb/handlers/ingest.js +0 -18
  480. package/dist/server/bare/rag-hyperdb/handlers/list-workspaces.d.ts +0 -3
  481. package/dist/server/bare/rag-hyperdb/handlers/list-workspaces.js +0 -4
  482. package/dist/server/bare/rag-hyperdb/handlers/reindex.d.ts +0 -9
  483. package/dist/server/bare/rag-hyperdb/handlers/reindex.js +0 -16
  484. package/dist/server/bare/rag-hyperdb/rag-operation-manager.d.ts +0 -7
  485. package/dist/server/bare/rag-hyperdb/rag-operation-manager.js +0 -39
  486. package/dist/server/bare/rag-hyperdb/rag-workspace-manager.d.ts +0 -15
  487. package/dist/server/bare/rag-hyperdb/rag-workspace-manager.js +0 -136
  488. package/dist/server/bare/registry/config-registry.d.ts +0 -14
  489. package/dist/server/bare/registry/config-registry.js +0 -82
  490. package/dist/server/bare/registry/model-config-registry.d.ts +0 -4
  491. package/dist/server/bare/registry/model-config-registry.js +0 -15
  492. package/dist/server/bare/registry/model-config-utils.d.ts +0 -15
  493. package/dist/server/bare/registry/model-config-utils.js +0 -112
  494. package/dist/server/bare/registry/registry-client.d.ts +0 -5
  495. package/dist/server/bare/registry/registry-client.js +0 -37
  496. package/dist/server/bare/registry/runtime-context-registry.d.ts +0 -7
  497. package/dist/server/bare/registry/runtime-context-registry.js +0 -26
  498. package/dist/server/bare/utils/audio-input.d.ts +0 -10
  499. package/dist/server/bare/utils/audio-input.js +0 -33
  500. package/dist/server/bare/utils/loader-adapter.d.ts +0 -7
  501. package/dist/server/bare/utils/loader-adapter.js +0 -9
  502. package/dist/server/env.d.ts +0 -22
  503. package/dist/server/env.js +0 -57
  504. package/dist/server/plugins/index.d.ts +0 -2
  505. package/dist/server/plugins/index.js +0 -1
  506. package/dist/server/plugins/registry.d.ts +0 -9
  507. package/dist/server/plugins/registry.js +0 -79
  508. package/dist/server/rpc/delegate-transport.d.ts +0 -19
  509. package/dist/server/rpc/delegate-transport.js +0 -215
  510. package/dist/server/rpc/handler-registry.d.ts +0 -3
  511. package/dist/server/rpc/handler-registry.js +0 -90
  512. package/dist/server/rpc/handler-utils.d.ts +0 -23
  513. package/dist/server/rpc/handler-utils.js +0 -128
  514. package/dist/server/rpc/handlers/get-model-info.d.ts +0 -3
  515. package/dist/server/rpc/handlers/get-model-info.js +0 -164
  516. package/dist/server/rpc/handlers/load-model/download-stats.d.ts +0 -6
  517. package/dist/server/rpc/handlers/load-model/download-stats.js +0 -87
  518. package/dist/server/rpc/handlers/load-model/handler.js +0 -187
  519. package/dist/server/rpc/handlers/load-model/registry.d.ts +0 -11
  520. package/dist/server/rpc/handlers/load-model/registry.js +0 -564
  521. package/dist/server/rpc/handlers/load-model/types.d.ts +0 -29
  522. package/dist/server/rpc/handlers/load-model/types.js +0 -1
  523. package/dist/server/rpc/handlers/ocr-stream.d.ts +0 -3
  524. package/dist/server/rpc/handlers/ocr-stream.js +0 -4
  525. package/dist/server/rpc/handlers/ping.d.ts +0 -3
  526. package/dist/server/rpc/handlers/ping.js +0 -3
  527. package/dist/server/rpc/handlers/plugin-dispatch.d.ts +0 -15
  528. package/dist/server/rpc/handlers/plugin-dispatch.js +0 -59
  529. package/dist/server/rpc/handlers/plugin-invoke.d.ts +0 -4
  530. package/dist/server/rpc/handlers/plugin-invoke.js +0 -92
  531. package/dist/server/rpc/handlers/registry.d.ts +0 -5
  532. package/dist/server/rpc/handlers/registry.js +0 -157
  533. package/dist/server/rpc/handlers/unload-model-delegated.d.ts +0 -3
  534. package/dist/server/rpc/handlers/unload-model-delegated.js +0 -32
  535. package/dist/server/rpc/profiling/context.d.ts +0 -18
  536. package/dist/server/rpc/profiling/context.js +0 -38
  537. package/dist/server/rpc/profiling/delegation-profiler.d.ts +0 -32
  538. package/dist/server/rpc/profiling/delegation-profiler.js +0 -154
  539. package/dist/server/rpc/profiling/index.d.ts +0 -5
  540. package/dist/server/rpc/profiling/index.js +0 -4
  541. package/dist/server/rpc/profiling/operation-metrics.d.ts +0 -25
  542. package/dist/server/rpc/profiling/operation-metrics.js +0 -199
  543. package/dist/server/rpc/profiling/operation-wrappers.d.ts +0 -18
  544. package/dist/server/rpc/profiling/operation-wrappers.js +0 -124
  545. package/dist/server/rpc/profiling/profiler.d.ts +0 -13
  546. package/dist/server/rpc/profiling/profiler.js +0 -97
  547. package/dist/server/utils/archive.d.ts +0 -4
  548. package/dist/server/utils/archive.js +0 -179
  549. package/dist/server/utils/checksum.d.ts +0 -4
  550. package/dist/server/utils/checksum.js +0 -31
  551. package/dist/server/utils/config-transform.d.ts +0 -3
  552. package/dist/server/utils/config-transform.js +0 -23
  553. package/dist/server/utils/formatting.d.ts +0 -19
  554. package/dist/server/utils/formatting.js +0 -61
  555. package/dist/server/utils/gguf-tensor-extractor.d.ts +0 -15
  556. package/dist/server/utils/gguf-tensor-extractor.js +0 -314
  557. package/dist/server/utils/path-security.d.ts +0 -12
  558. package/dist/server/utils/path-security.js +0 -25
  559. package/dist/server/utils/shard-utils.d.ts +0 -48
  560. package/dist/server/utils/shard-utils.js +0 -125
  561. package/dist/server/utils/tool-integration.d.ts +0 -13
  562. package/dist/server/utils/tool-integration.js +0 -43
  563. package/dist/server/worker-core.d.ts +0 -6
  564. package/dist/server/worker-core.js +0 -88
  565. package/dist/utils/errors-base.d.ts +0 -3
  566. package/dist/utils/errors-base.js +0 -13
  567. package/dist/utils/errors-client.d.ts +0 -137
  568. package/dist/utils/errors-client.js +0 -240
  569. package/dist/utils/errors-server.d.ts +0 -236
  570. package/dist/utils/errors-server.js +0 -412
  571. package/dist/utils/global-singleton.d.ts +0 -2
  572. package/dist/utils/global-singleton.js +0 -10
  573. package/dist/utils/mcp-adapter.d.ts +0 -12
  574. package/dist/utils/mcp-adapter.js +0 -103
  575. package/dist/utils/object.d.ts +0 -2
  576. package/dist/utils/object.js +0 -3
  577. package/dist/utils/path-sanitize.d.ts +0 -17
  578. package/dist/utils/path-sanitize.js +0 -54
  579. package/dist/utils/tool-helpers.d.ts +0 -25
  580. package/dist/utils/tool-helpers.js +0 -112
  581. package/expo/plugins/patches/android-link.mjs +0 -63
  582. package/expo/plugins/patches/ios-link.mjs +0 -63
  583. /package/dist/examples/{transcription/whispercpp-filesystem.d.ts → whispercpp-filesystem.d.ts} +0 -0
  584. /package/dist/examples/{transcription/whispercpp-microphone-record.d.ts → whispercpp-microphone-record.d.ts} +0 -0
  585. /package/dist/models/{registry → hyperdrive}/index.d.ts +0 -0
  586. /package/dist/server/bare/{ops → addons}/cancel.d.ts +0 -0
  587. /package/dist/server/bare/{plugins/onnx-tts/ops → addons/tts/handlers}/text-to-speech.d.ts +0 -0
  588. /package/dist/server/bare/{ops → addons}/unload-model.d.ts +0 -0
@@ -1,181 +1,70 @@
1
1
  import { getSwarm } from "./hyperswarm.js";
2
2
  import RPC from "bare-rpc";
3
3
  import { withTimeout } from "../../utils/withTimeout.js";
4
- import { DelegateConnectionFailedError } from "../../utils/errors-server.js";
5
- import { getServerLogger } from "../../logging/index.js";
6
- import { nowMs } from "../../profiling/index.js";
7
- import { cacheDelegationConnectionTime, clearPeerConnectionTracking, } from "../rpc/profiling/delegation-profiler.js";
8
- const logger = getServerLogger();
9
4
  // Map of active RPC instances by public key
10
5
  const activeRPCs = new Map();
11
- // Map to store underlying connections for cleanup
12
- const activeConnections = new Map();
13
- // Track whether the global connection handler has been registered
14
- let connectionHandlerRegistered = false;
15
- /**
16
- * Register the swarm "connection" handler once (not per getRPC call).
17
- * This fixes the event listener leak where each getRPC() call added
18
- * a new listener, causing duplicate RPC instances on the same stream.
19
- */
20
- function ensureConnectionHandler() {
21
- if (connectionHandlerRegistered)
22
- return;
23
- connectionHandlerRegistered = true;
6
+ // Establish RPC connection to a peer if not already connected
7
+ async function ensureRPCConnection(topic, publicKey, timeout) {
8
+ // Check if we already have an RPC instance for this peer
9
+ let rpc = activeRPCs.get(publicKey);
24
10
  const swarm = getSwarm();
11
+ if (!rpc) {
12
+ // Need to establish connection first
13
+ try {
14
+ console.log(`🔗 Establishing RPC connection to topic: ${topic}, peer: ${publicKey}, timeout: ${timeout}ms`);
15
+ const connectionPromise = (async () => {
16
+ const topicBuffer = Buffer.from(topic, "hex");
17
+ // const discovery =
18
+ swarm.join(topicBuffer, {
19
+ server: false,
20
+ client: true,
21
+ });
22
+ await swarm.flush();
23
+ console.log(`✅ Connected to topic: ${topic}`);
24
+ console.log(`📊 Active RPC connections: ${activeRPCs.size}`);
25
+ // Check again if we now have an RPC instance for the target peer
26
+ rpc = activeRPCs.get(publicKey);
27
+ if (!rpc) {
28
+ console.error(`❌ No RPC instance found for peer ${publicKey}`);
29
+ console.log(`📊 Available RPC connections:`, Array.from(activeRPCs.keys()));
30
+ throw new Error(`Could not establish RPC connection to peer ${publicKey} on topic ${topic}`);
31
+ }
32
+ else {
33
+ console.log(`✅ RPC instance found for peer ${publicKey}`);
34
+ }
35
+ })();
36
+ await withTimeout(connectionPromise, timeout);
37
+ }
38
+ catch (error) {
39
+ console.error("Failed to establish RPC connection:", error);
40
+ throw new Error(`RPC connection failed: ${error instanceof Error ? error.message : String(error)}`);
41
+ }
42
+ }
43
+ return rpc;
44
+ }
45
+ // Create an RPC instance for a specific HyperSwarm peer
46
+ export async function getRPC(topic, publicKey, options = {}) {
47
+ const swarm = getSwarm();
48
+ // Set up connection tracking
25
49
  swarm.on("connection", (conn) => {
26
50
  const peerPubkey = conn.remotePublicKey?.toString("hex");
27
51
  if (!peerPubkey)
28
52
  return;
29
- logger.info(`🍺 New peer connection established: ${peerPubkey}`);
53
+ console.log(`🍺 New peer connection established: ${peerPubkey}`);
30
54
  // Create RPC instance for this connection (as client)
31
55
  const rpc = new RPC(conn, () => {
32
56
  // No-op handler since we're only sending requests, not receiving them
33
57
  });
34
- // Store RPC instance and connection by peer ID for lookup
58
+ // Store RPC instance by peer ID for lookup
35
59
  activeRPCs.set(peerPubkey, rpc);
36
- activeConnections.set(peerPubkey, conn);
37
60
  conn.on("close", () => {
38
- logger.debug(`Connection closed for peer: ${peerPubkey}`);
61
+ console.log(`Connection closed for peer: ${peerPubkey}`);
39
62
  activeRPCs.delete(peerPubkey);
40
- activeConnections.delete(peerPubkey);
41
- clearPeerConnectionTracking(peerPubkey);
42
63
  });
43
64
  conn.on("error", (err) => {
44
- logger.error(`Connection error for peer ${peerPubkey}:`, err);
65
+ console.error(`Connection error for peer ${peerPubkey}:`, err);
45
66
  activeRPCs.delete(peerPubkey);
46
- activeConnections.delete(peerPubkey);
47
- clearPeerConnectionTracking(peerPubkey);
48
67
  });
49
68
  });
50
- }
51
- async function closeConnection(publicKey) {
52
- const existingConnection = activeConnections.get(publicKey);
53
- if (existingConnection) {
54
- logger.info(`🔌 Closing existing connection for peer: ${publicKey}`);
55
- // Wait for the close event before returning so Hyperswarm's internal
56
- // _allConnections is cleaned up before we attempt to rejoin/flush.
57
- await new Promise((resolve) => {
58
- const timeout = setTimeout(resolve, 5000);
59
- existingConnection.on("close", () => {
60
- clearTimeout(timeout);
61
- resolve();
62
- });
63
- existingConnection.destroy();
64
- });
65
- activeConnections.delete(publicKey);
66
- activeRPCs.delete(publicKey);
67
- clearPeerConnectionTracking(publicKey);
68
- }
69
- }
70
- // Establish RPC connection to a peer if not already connected
71
- async function ensureRPCConnection(topic, publicKey, timeout) {
72
- // Check if we already have an RPC instance for this peer
73
- const existingRpc = activeRPCs.get(publicKey);
74
- if (existingRpc) {
75
- return existingRpc;
76
- }
77
- const swarm = getSwarm();
78
- const connectionStart = nowMs();
79
- // Track the listener so we can clean it up on timeout
80
- let onConnection = () => { };
81
- try {
82
- logger.info(`🔗 Establishing RPC connection to topic: ${topic}, peer: ${publicKey}, timeout: ${timeout}ms`);
83
- const connectionPromise = new Promise((resolve, reject) => {
84
- const topicBuffer = Buffer.from(topic, "hex");
85
- swarm.join(topicBuffer, {
86
- server: false,
87
- client: true,
88
- });
89
- // Wait for the specific peer's connection event instead of just
90
- // checking after flush. This handles the case where flush resolves
91
- // (discovery done) but the P2P connection is still being established
92
- // via holepunching or relays.
93
- onConnection = (conn) => {
94
- const peerPubkey = conn.remotePublicKey?.toString("hex");
95
- if (peerPubkey === publicKey) {
96
- swarm.removeListener("connection", onConnection);
97
- // The global handler (ensureConnectionHandler) will create the RPC
98
- // and store it in activeRPCs. Give it a tick to run first.
99
- const rpc = activeRPCs.get(publicKey);
100
- if (rpc) {
101
- resolve(rpc);
102
- }
103
- else {
104
- // Global handler runs synchronously before us in the same event,
105
- // so this shouldn't happen, but handle it just in case
106
- setTimeout(() => {
107
- const delayedRpc = activeRPCs.get(publicKey);
108
- if (delayedRpc) {
109
- resolve(delayedRpc);
110
- }
111
- else {
112
- reject(new DelegateConnectionFailedError(`Connection established but RPC not created for peer ${publicKey}`));
113
- }
114
- }, 100);
115
- }
116
- }
117
- };
118
- swarm.on("connection", onConnection);
119
- // Also flush to trigger discovery. After flush, check if the connection
120
- // was already established (the global handler may have caught it).
121
- void swarm.flush().then(() => {
122
- logger.info(`✅ Flush completed for topic: ${topic}`);
123
- logger.debug(`📊 Active RPC connections: ${activeRPCs.size}`);
124
- const rpc = activeRPCs.get(publicKey);
125
- if (rpc) {
126
- swarm.removeListener("connection", onConnection);
127
- resolve(rpc);
128
- }
129
- // If not connected after flush, the onConnection listener keeps
130
- // waiting until the timeout from withTimeout kicks in.
131
- // Hyperswarm may still establish the connection via retries/relays.
132
- logger.debug(`⏳ Peer not connected after flush, waiting for connection event...`);
133
- });
134
- });
135
- const rpc = await withTimeout(connectionPromise, timeout);
136
- const connectionDuration = nowMs() - connectionStart;
137
- cacheDelegationConnectionTime(publicKey, connectionDuration);
138
- return rpc;
139
- }
140
- catch (error) {
141
- // Clean up the per-request connection listener
142
- swarm.removeListener("connection", onConnection);
143
- // Remove stale connection so next attempt creates a fresh one
144
- // instead of reusing a dead RPC
145
- logger.info(`🗑️ Removing stale connection for peer: ${publicKey} after failed RPC attempt`);
146
- activeRPCs.delete(publicKey);
147
- const conn = activeConnections.get(publicKey);
148
- if (conn) {
149
- conn.destroy();
150
- activeConnections.delete(publicKey);
151
- }
152
- logger.error("Failed to establish RPC connection:", error);
153
- throw new DelegateConnectionFailedError(`RPC connection failed: ${error instanceof Error ? error.message : String(error)}`, error);
154
- }
155
- }
156
- // Create an RPC instance for a specific HyperSwarm peer
157
- export async function getRPC(topic, publicKey, options = {}) {
158
- // Ensure the global connection handler is registered (once)
159
- ensureConnectionHandler();
160
- // Close existing connection if forceNewConnection is true
161
- // Await the close to avoid racing with the subsequent join/flush
162
- if (options.forceNewConnection) {
163
- await closeConnection(publicKey);
164
- }
165
69
  return await ensureRPCConnection(topic, publicKey, options.timeout);
166
70
  }
167
- /**
168
- * Remove a stale RPC connection for a peer.
169
- * Called when a delegation request fails (e.g., timeout) so the next
170
- * attempt creates a fresh connection instead of reusing a dead RPC.
171
- */
172
- export function cleanupStaleConnection(publicKey) {
173
- logger.info(`🗑️ Removing stale connection for peer: ${publicKey} after failed delegation`);
174
- activeRPCs.delete(publicKey);
175
- const conn = activeConnections.get(publicKey);
176
- if (conn) {
177
- conn.destroy();
178
- activeConnections.delete(publicKey);
179
- }
180
- clearPeerConnectionTracking(publicKey);
181
- }
@@ -3,8 +3,5 @@ import { type FirewallConfig } from "../../schemas/provide";
3
3
  export declare function getSwarm({ firewallConfig, }?: {
4
4
  firewallConfig?: FirewallConfig | undefined;
5
5
  }): Hyperswarm;
6
- export declare function registerProviderTopic(topic: string): void;
7
- export declare function unregisterProviderTopic(topic: string): void;
8
- export declare function hasActiveProviders(): boolean;
9
6
  export declare function destroySwarm(): Promise<void>;
10
7
  //# sourceMappingURL=hyperswarm.d.ts.map
@@ -2,16 +2,13 @@ import process from "bare-process";
2
2
  import Hyperswarm from "hyperswarm";
3
3
  import crypto from "bare-crypto";
4
4
  import { envSchema } from "../../schemas/provide.js";
5
- import { getSDKConfig } from "./registry/config-registry.js";
6
- import { getServerLogger } from "../../logging/index.js";
7
- const logger = getServerLogger();
8
5
  function getHyperswarmSeedBuffer() {
9
6
  const parsedEnv = envSchema.safeParse(process.env);
10
7
  if (parsedEnv.success) {
11
8
  return Buffer.from(parsedEnv.data.QVAC_HYPERSWARM_SEED, "hex");
12
9
  }
13
10
  else {
14
- logger.info(`🎲 No seed provided, generating random seed (provider will have random identity)`);
11
+ console.log(`🎲 No seed provided, generating random seed (provider will have random identity)`);
15
12
  return crypto.randomBytes(32);
16
13
  }
17
14
  }
@@ -26,20 +23,20 @@ function createFirewallFunction(config) {
26
23
  if (mode === "allow") {
27
24
  const allowed = publicKeySet.has(remoteKeyHex);
28
25
  if (!allowed) {
29
- logger.debug(`🚫 Firewall: Denied connection from ${remoteKeyHex.substring(0, 16)}... (not in allowlist)`);
26
+ console.log(`🚫 Firewall: Denied connection from ${remoteKeyHex.substring(0, 16)}... (not in allowlist)`);
30
27
  }
31
28
  else {
32
- logger.debug(`✅ Firewall: Allowed connection from ${remoteKeyHex.substring(0, 16)}... (in allowlist)`);
29
+ console.log(`✅ Firewall: Allowed connection from ${remoteKeyHex.substring(0, 16)}... (in allowlist)`);
33
30
  }
34
31
  return !allowed;
35
32
  }
36
33
  else {
37
34
  const denied = publicKeySet.has(remoteKeyHex);
38
35
  if (denied) {
39
- logger.debug(`🚫 Firewall: Denied connection from ${remoteKeyHex.substring(0, 16)}... (in denylist)`);
36
+ console.log(`🚫 Firewall: Denied connection from ${remoteKeyHex.substring(0, 16)}... (in denylist)`);
40
37
  }
41
38
  else {
42
- logger.debug(`✅ Firewall: Allowed connection from ${remoteKeyHex.substring(0, 16)}... (not in denylist)`);
39
+ console.log(`✅ Firewall: Allowed connection from ${remoteKeyHex.substring(0, 16)}... (not in denylist)`);
43
40
  }
44
41
  return denied;
45
42
  }
@@ -48,19 +45,9 @@ function createFirewallFunction(config) {
48
45
  function createSwarm(firewallConfig) {
49
46
  const seed = getHyperswarmSeedBuffer();
50
47
  const firewall = createFirewallFunction(firewallConfig);
51
- const getRelays = () => {
52
- const config = getSDKConfig();
53
- const relayPublicKeys = config.swarmRelays;
54
- if (!relayPublicKeys || relayPublicKeys.length === 0) {
55
- return null;
56
- }
57
- return relayPublicKeys.map((key) => Buffer.from(key, "hex"));
58
- };
59
- const swarmOptions = { seed, firewall, relayThrough: getRelays };
60
- return new Hyperswarm(swarmOptions);
48
+ return new Hyperswarm({ seed, firewall });
61
49
  }
62
50
  let swarm;
63
- const activeProviderTopics = new Set();
64
51
  export function getSwarm({ firewallConfig, } = {}) {
65
52
  if (swarm) {
66
53
  return swarm;
@@ -68,18 +55,8 @@ export function getSwarm({ firewallConfig, } = {}) {
68
55
  swarm = createSwarm(firewallConfig);
69
56
  return swarm;
70
57
  }
71
- export function registerProviderTopic(topic) {
72
- activeProviderTopics.add(topic);
73
- }
74
- export function unregisterProviderTopic(topic) {
75
- activeProviderTopics.delete(topic);
76
- }
77
- export function hasActiveProviders() {
78
- return activeProviderTopics.size > 0;
79
- }
80
58
  export async function destroySwarm() {
81
59
  if (swarm) {
82
- activeProviderTopics.clear();
83
60
  return swarm.destroy();
84
61
  }
85
62
  }
@@ -1,3 +1,3 @@
1
1
  import { type RagDeleteEmbeddingsParams } from "../../../../schemas/index";
2
- export declare function deleteEmbeddings(params: RagDeleteEmbeddingsParams): Promise<void>;
2
+ export declare function deleteEmbeddings(params: RagDeleteEmbeddingsParams): Promise<boolean>;
3
3
  //# sourceMappingURL=delete-embeddings.d.ts.map
@@ -1,11 +1,12 @@
1
- import { getRagDbAdapter, hasRagWorkspaceStorage, } from "../rag-workspace-manager.js";
2
- import { ragDeleteEmbeddingsParamsSchema, } from "../../../../schemas/index.js";
3
- import { RAGDeleteFailedError } from "../../../../utils/errors-server.js";
1
+ import { getRagInstance } from "../rag-manager.js";
2
+ import { embed } from "../../addons/llamacpp/index.js";
3
+ import { ragDeleteEmbeddingsOperationSchema, } from "../../../../schemas/index.js";
4
4
  export async function deleteEmbeddings(params) {
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);
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;
11
12
  }
@@ -1,9 +1,6 @@
1
1
  import { type RagSaveEmbeddingsParams } from "../../../../schemas/index";
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 {};
2
+ export declare function saveEmbeddings(params: RagSaveEmbeddingsParams): Promise<{
3
+ processed: import("@qvac/rag").SaveEmbeddingsResult[];
4
+ droppedIndices: number[];
5
+ }>;
9
6
  //# sourceMappingURL=save-embeddings.d.ts.map
@@ -1,15 +1,16 @@
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 [];
7
- }
8
- const dbAdapter = await getRagDbAdapter(workspace);
9
- const saveOpts = {
10
- progressInterval,
11
- onProgress: options?.onProgress,
12
- signal: options?.signal,
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 });
13
8
  };
14
- return await dbAdapter.saveEmbeddings(documents, saveOpts);
9
+ const rag = await getRagInstance(modelId, embeddingFunction, workspace);
10
+ const saveOpts = { chunk };
11
+ if (chunkOpts) {
12
+ saveOpts.chunkOpts = chunkOpts;
13
+ }
14
+ const result = await rag.saveEmbeddings(documents, saveOpts);
15
+ return result;
15
16
  }
@@ -1,15 +1,15 @@
1
- import { getRagInstance, hasRagWorkspaceStorage, } from "../rag-workspace-manager.js";
2
- import { embed } from "../../ops/embed.js";
3
- import { ragSearchParamsSchema } from "../../../../schemas/index.js";
1
+ import { getRagInstance } from "../rag-manager.js";
2
+ import { embed } from "../../addons/llamacpp/index.js";
3
+ import { ragSearchOperationSchema } from "../../../../schemas/index.js";
4
4
  export async function search(params) {
5
- const { modelId, query, topK, n, workspace } = ragSearchParamsSchema.parse(params);
6
- if (!hasRagWorkspaceStorage(workspace)) {
7
- return [];
8
- }
9
- async function embeddingFunction(text) {
5
+ const { modelId, query, topK, n, workspace } = ragSearchOperationSchema.parse(params);
6
+ const embeddingFunction = async (text) => {
10
7
  return await embed({ modelId, text });
11
- }
8
+ };
12
9
  const rag = await getRagInstance(modelId, embeddingFunction, workspace);
13
- const results = await rag.search(query, { topK, n });
10
+ const results = await rag.search(query, {
11
+ topK,
12
+ n,
13
+ });
14
14
  return results;
15
15
  }
@@ -1,12 +1,5 @@
1
- export { chunk } from "./handlers/chunk";
2
- export { ingest } from "./handlers/ingest";
3
1
  export { saveEmbeddings } from "./handlers/save-embeddings";
4
2
  export { search } from "./handlers/search";
5
3
  export { deleteEmbeddings } from "./handlers/delete-embeddings";
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";
4
+ export { closeRagInstance, closeAllRagInstances, } from "./rag-manager";
12
5
  //# sourceMappingURL=index.d.ts.map
@@ -1,11 +1,4 @@
1
- export { chunk } from "./handlers/chunk.js";
2
- export { ingest } from "./handlers/ingest.js";
3
1
  export { saveEmbeddings } from "./handlers/save-embeddings.js";
4
2
  export { search } from "./handlers/search.js";
5
3
  export { deleteEmbeddings } from "./handlers/delete-embeddings.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";
4
+ export { closeRagInstance, closeAllRagInstances, } from "./rag-manager.js";
@@ -0,0 +1,5 @@
1
+ import { RAG, type EmbeddingFunction } from "@qvac/rag";
2
+ export declare const getRagInstance: (modelId: string, embeddingFunction: EmbeddingFunction, workspace?: string) => Promise<RAG>;
3
+ export declare const closeRagInstance: (workspace?: string) => Promise<void>;
4
+ export declare const closeAllRagInstances: () => Promise<void>;
5
+ //# sourceMappingURL=rag-manager.d.ts.map
@@ -0,0 +1,65 @@
1
+ import { RAG, HyperDBAdapter } from "@qvac/rag";
2
+ import Corestore from "corestore";
3
+ import path from "bare-path";
4
+ import { getEnv } from "../../worker.js";
5
+ const ragInstances = new Map();
6
+ const defaultWorkspace = "default";
7
+ const getStorePath = (workspace) => {
8
+ const homeDir = getEnv().HOME_DIR;
9
+ return path.join(homeDir, ".qvac", "rag-hyperdb", workspace);
10
+ };
11
+ export const getRagInstance = async (modelId, embeddingFunction, workspace) => {
12
+ const key = workspace ?? defaultWorkspace;
13
+ const existingEntry = ragInstances.get(key);
14
+ if (existingEntry) {
15
+ // Validate model consistency
16
+ if (existingEntry.modelId !== modelId) {
17
+ throw new Error(`Workspace "${key}" is configured for model "${existingEntry.modelId}", ` +
18
+ `but you're trying to use model "${modelId}". ` +
19
+ `Use a different workspace or the same model.`);
20
+ }
21
+ return existingEntry.rag;
22
+ }
23
+ // Create new instance for this workspace
24
+ const storePath = getStorePath(key);
25
+ const corestore = new Corestore(storePath);
26
+ // Create HyperDB adapter
27
+ const hyperdbAdapter = new HyperDBAdapter({
28
+ store: corestore,
29
+ });
30
+ const rag = new RAG({
31
+ dbAdapter: hyperdbAdapter,
32
+ embeddingFunction,
33
+ });
34
+ await rag.ready();
35
+ ragInstances.set(key, {
36
+ rag,
37
+ corestore,
38
+ modelId,
39
+ });
40
+ return rag;
41
+ };
42
+ export const closeRagInstance = async (workspace) => {
43
+ const key = workspace ?? defaultWorkspace;
44
+ const entry = ragInstances.get(key);
45
+ if (entry) {
46
+ await entry.rag.close();
47
+ ragInstances.delete(key);
48
+ }
49
+ };
50
+ let isCleaningUp = false;
51
+ export const closeAllRagInstances = async () => {
52
+ if (isCleaningUp)
53
+ return;
54
+ isCleaningUp = true;
55
+ try {
56
+ const closures = Array.from(ragInstances.entries()).map(async ([key, entry]) => {
57
+ await entry.rag.close();
58
+ ragInstances.delete(key);
59
+ });
60
+ await Promise.all(closures);
61
+ }
62
+ catch (error) {
63
+ console.error("❌ Error during RAG cleanup:", error);
64
+ }
65
+ };
@@ -1,30 +1,13 @@
1
- /**
2
- * Logging Stream Registry
3
- *
4
- * Manages RPC subscriptions for streaming logs from server to connected clients.
5
- *
6
- * Purpose:
7
- * - Registers client subscriptions to model/SDK log streams
8
- * - Routes log messages to subscribed clients via RPC
9
- * - Buffers logs during model loading (before client subscribes)
10
- * - Manages stream lifecycle (subscribe/unsubscribe)
11
- *
12
- */
13
1
  import type { LogLevel } from "@qvac/logging";
14
- export declare function startLogBuffering(id: string): void;
15
- export declare function stopLogBufferingWithTimeout(id: string): void;
16
- export declare function registerLoggingStream(id: string, streamHandler: (level: LogLevel, namespace: string, message: string) => void): void;
17
- export declare function unregisterLoggingStream(id: string, streamHandler: (level: LogLevel, namespace: string, message: string) => void): void;
18
- export declare function unregisterAllLoggingStreams(id: string): void;
19
- export declare function sendLogToStreams(id: string, level: LogLevel, namespace: string, message: string): void;
20
- export declare function hasLoggingStreams(id: string): boolean | undefined;
2
+ export declare function registerLoggingStream(modelId: string, streamHandler: (level: LogLevel, namespace: string, message: string) => void): void;
3
+ export declare function unregisterLoggingStream(modelId: string, streamHandler: (level: LogLevel, namespace: string, message: string) => void): void;
4
+ export declare function unregisterAllLoggingStreams(modelId: string): void;
5
+ export declare function sendLogToStreams(modelId: string, level: LogLevel, namespace: string, message: string): void;
6
+ export declare function hasLoggingStreams(modelId: string): boolean | undefined;
21
7
  export declare function getLoggingStreamStats(): {
22
- totalIds: number;
23
- ids: string[];
8
+ totalModels: number;
9
+ modelIds: string[];
24
10
  totalStreams: number;
25
- bufferedIds: number;
26
- idsWithBuffering: number;
27
- activeTimeouts: number;
28
11
  };
29
12
  export declare function clearAllLoggingStreams(): void;
30
13
  //# sourceMappingURL=logging-stream-registry.d.ts.map