@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
@@ -1,27 +1,47 @@
1
1
  import process from "bare-process";
2
+ import { isBareKit } from "which-runtime";
2
3
  import { createBareKitRPCServer, createIPCClient, } from "./rpc/create-server.js";
3
4
  import { z } from "zod";
4
5
  import { destroySwarm } from "./bare/hyperswarm.js";
5
- import { closeAllRagInstances } from "./bare/rag-hyperdb/rag-manager.js";
6
+ import { closeAllRagInstances } from "./bare/rag-hyperdb/index.js";
6
7
  import { cleanupDownloads } from "./rpc/handlers/load-model/download-manager.js";
7
8
  import { unloadAllModels } from "./bare/registry/model-registry.js";
8
- import { clearAllLoggingStreams } from "./bare/registry/logging-stream-registry.js";
9
- console.log("🐻 Hello from Bare");
10
- console.log("Arguments to worker:", process.argv);
9
+ import { clearAllLoggingStreams, startLogBuffering, } from "./bare/registry/logging-stream-registry.js";
10
+ import { ADDON_NAMESPACES, createAddonLoggerCallback, clearAllAddonLoggers, getServerLogger, SDK_LOG_ID, } from "../logging/index.js";
11
+ import llmAddonLogging from "@qvac/llm-llamacpp/addonLogging.js";
12
+ import embedAddonLogging from "@qvac/embed-llamacpp/addonLogging.js";
13
+ import ttsAddonLogging from "@qvac/tts-onnx/addonLogging.js";
14
+ import whisperAddonLogging from "@qvac/transcription-whispercpp/addonLogging.js";
15
+ import nmtAddonLogging from "@qvac/translation-nmtcpp/addonLogging.js";
16
+ // Buffer SDK logs from startup so clients can receive them when they subscribe
17
+ startLogBuffering(SDK_LOG_ID);
18
+ const logger = getServerLogger();
19
+ logger.info("🐻 Hello from Bare");
20
+ logger.debug("Arguments to worker:", process.argv);
21
+ // Initialize addon logger callbacks
22
+ llmAddonLogging.setLogger(createAddonLoggerCallback(ADDON_NAMESPACES.LLAMACPP_LLM));
23
+ embedAddonLogging.setLogger(createAddonLoggerCallback(ADDON_NAMESPACES.LLAMACPP_EMBED));
24
+ ttsAddonLogging.setLogger(createAddonLoggerCallback(ADDON_NAMESPACES.TTS));
25
+ whisperAddonLogging.setLogger(createAddonLoggerCallback(ADDON_NAMESPACES.WHISPERCPP));
26
+ nmtAddonLogging.setLogger(createAddonLoggerCallback(ADDON_NAMESPACES.NMTCPP));
11
27
  const defaultHomeDir = process.env["HOME"] || process.env["USERPROFILE"] || "/tmp";
12
28
  let envConfig = { HOME_DIR: defaultHomeDir };
13
29
  let hasRPCConfig = false;
30
+ if (isBareKit && process.argv[0]) {
31
+ logger.info("Running in BareKit mode");
32
+ envConfig["HOME_DIR"] = process.argv[0];
33
+ }
14
34
  // Try to parse any argument as JSON config (fail gracefully)
15
35
  if (process.argv[2]) {
16
36
  try {
17
37
  const rpcArgs = JSON.parse(process.argv[2]);
18
38
  envConfig = { ...envConfig, ...rpcArgs };
19
39
  hasRPCConfig = true;
20
- console.log("Parsed RPC configuration from arguments");
40
+ logger.info("Parsed RPC configuration from arguments");
21
41
  }
22
42
  catch {
23
43
  // Not JSON or invalid - use defaults (direct mode)
24
- console.log("Using default configuration (direct mode)");
44
+ logger.info("Using default configuration (direct mode)");
25
45
  }
26
46
  }
27
47
  const validatedEnv = z
@@ -43,22 +63,22 @@ export function ensureRPCSetup() {
43
63
  try {
44
64
  const ipcSocketPath = validatedEnv.QVAC_IPC_SOCKET_PATH;
45
65
  if (ipcSocketPath) {
46
- console.log(`Running in desktop mode, connecting to IPC socket: ${ipcSocketPath}`);
66
+ logger.info(`Running in desktop mode, connecting to IPC socket: ${ipcSocketPath}`);
47
67
  // Connect to the IPC server (Named Pipe or Unix Socket)
48
68
  const rpc = createIPCClient(ipcSocketPath);
49
- console.log("Desktop IPC client created?", !!rpc);
69
+ logger.debug("Desktop IPC client created?", !!rpc);
50
70
  }
51
71
  else {
52
- console.log("Running in BareKit IPC mode");
72
+ logger.info("Running in BareKit IPC mode");
53
73
  // Start the standard RPC server with BareKit IPC for mobile
54
74
  createBareKitRPCServer();
55
75
  }
56
- console.log("Bare worker started and listening for RPC requests");
57
- console.log("Working directory:", process.cwd());
76
+ logger.info("Bare worker started and listening for RPC requests");
77
+ logger.debug("Working directory:", process.cwd());
58
78
  rpcInitialized = true;
59
79
  }
60
80
  catch (error) {
61
- console.error("Worker error:", error);
81
+ logger.error("Worker error:", error);
62
82
  process.exit(1);
63
83
  }
64
84
  }
@@ -67,29 +87,39 @@ if (hasRPCConfig) {
67
87
  ensureRPCSetup();
68
88
  }
69
89
  else {
70
- console.log("Running in direct mode - RPC setup will be lazy");
90
+ logger.info("Running in direct mode - RPC setup will be lazy");
91
+ }
92
+ // Centralized logger cleanup
93
+ function clearLoggers() {
94
+ clearAllLoggingStreams();
95
+ clearAllAddonLoggers();
96
+ llmAddonLogging.releaseLogger();
97
+ embedAddonLogging.releaseLogger();
98
+ ttsAddonLogging.releaseLogger();
99
+ whisperAddonLogging.releaseLogger();
100
+ nmtAddonLogging.releaseLogger();
71
101
  }
72
102
  // Centralized cleanup for graceful shutdown
73
103
  let isShuttingDown = false;
74
- const shutdownHandler = async () => {
104
+ async function shutdownHandler() {
75
105
  if (isShuttingDown)
76
106
  return;
77
107
  isShuttingDown = true;
78
- console.log("🐻 Bare worker shutdown signal received, cleaning up...");
108
+ logger.info("🐻 Bare worker shutdown signal received, cleaning up...");
79
109
  try {
80
- clearAllLoggingStreams();
110
+ clearLoggers();
81
111
  await Promise.allSettled([
82
112
  destroySwarm(),
83
113
  closeAllRagInstances(),
84
114
  cleanupDownloads(),
85
115
  unloadAllModels(),
86
116
  ]);
87
- console.log("✅ Cleanup completed successfully");
117
+ logger.info("✅ Cleanup completed successfully");
88
118
  }
89
119
  catch (error) {
90
- console.error("❌ Error during shutdown cleanup:", error);
120
+ logger.error("❌ Error during shutdown cleanup:", error);
91
121
  }
92
122
  process.exit(0);
93
- };
123
+ }
94
124
  process.once("SIGTERM", () => void shutdownHandler());
95
125
  process.once("SIGINT", () => void shutdownHandler());
@@ -1,3 +1,3 @@
1
1
  import type { QvacErrorOptions } from "@qvac/error";
2
- export declare const createErrorOptions: (code: number, adds?: string | (string | number)[], cause?: unknown) => QvacErrorOptions;
2
+ export declare function createErrorOptions(code: number, adds?: string | (string | number)[], cause?: unknown): QvacErrorOptions;
3
3
  //# sourceMappingURL=errors-base.d.ts.map
@@ -1,4 +1,4 @@
1
- export const createErrorOptions = (code, adds, cause) => {
1
+ export function createErrorOptions(code, adds, cause) {
2
2
  const options = { code };
3
3
  if (adds !== undefined) {
4
4
  options.adds = adds;
@@ -10,4 +10,4 @@ export const createErrorOptions = (code, adds, cause) => {
10
10
  : new Error(typeof cause === "string" ? cause : JSON.stringify(cause));
11
11
  }
12
12
  return options;
13
- };
13
+ }
@@ -20,6 +20,9 @@ export declare class InvalidToolsArrayError extends QvacErrorBase {
20
20
  export declare class InvalidToolSchemaError extends QvacErrorBase {
21
21
  constructor(details: string, cause?: unknown);
22
22
  }
23
+ export declare class OCRFailedError extends QvacErrorBase {
24
+ constructor(details?: string, cause?: unknown);
25
+ }
23
26
  export declare class RPCNoHandlerError extends QvacErrorBase {
24
27
  constructor(requestType: string, cause?: unknown);
25
28
  }
@@ -56,6 +59,18 @@ export declare class SDKNotFoundInNodeModulesError extends QvacErrorBase {
56
59
  export declare class WorkerFileNotFoundError extends QvacErrorBase {
57
60
  constructor(workerPath: string, cause?: unknown);
58
61
  }
62
+ export declare class ConfigFileNotFoundError extends QvacErrorBase {
63
+ constructor(searchPaths: string, cause?: unknown);
64
+ }
65
+ export declare class ConfigFileInvalidError extends QvacErrorBase {
66
+ constructor(filePath: string, reason: string, cause?: unknown);
67
+ }
68
+ export declare class ConfigFileParseFailedError extends QvacErrorBase {
69
+ constructor(filePath: string, error: string, cause?: unknown);
70
+ }
71
+ export declare class ConfigValidationFailedError extends QvacErrorBase {
72
+ constructor(errors: string, cause?: unknown);
73
+ }
59
74
  export declare class ModelUnloadFailedError extends QvacErrorBase {
60
75
  constructor(modelId?: string, cause?: unknown);
61
76
  }
@@ -71,6 +86,9 @@ export declare class TranslationFailedError extends QvacErrorBase {
71
86
  export declare class CancelFailedError extends QvacErrorBase {
72
87
  constructor(details?: string, cause?: unknown);
73
88
  }
89
+ export declare class RAGChunkFailedError extends QvacErrorBase {
90
+ constructor(details?: string, cause?: unknown);
91
+ }
74
92
  export declare class RAGSaveFailedError extends QvacErrorBase {
75
93
  constructor(details?: string, cause?: unknown);
76
94
  }
@@ -80,6 +98,12 @@ export declare class RAGSearchFailedError extends QvacErrorBase {
80
98
  export declare class RAGDeleteFailedError extends QvacErrorBase {
81
99
  constructor(details?: string, cause?: unknown);
82
100
  }
101
+ export declare class RAGCloseWorkspaceFailedError extends QvacErrorBase {
102
+ constructor(details?: string, cause?: unknown);
103
+ }
104
+ export declare class RAGListWorkspacesFailedError extends QvacErrorBase {
105
+ constructor(details?: string, cause?: unknown);
106
+ }
83
107
  export declare class DownloadAssetFailedError extends QvacErrorBase {
84
108
  constructor(details?: string, cause?: unknown);
85
109
  }
@@ -37,6 +37,11 @@ export class InvalidToolSchemaError extends QvacErrorBase {
37
37
  super(createErrorOptions(SDK_CLIENT_ERROR_CODES.INVALID_TOOL_SCHEMA, [details], cause));
38
38
  }
39
39
  }
40
+ export class OCRFailedError extends QvacErrorBase {
41
+ constructor(details, cause) {
42
+ super(createErrorOptions(SDK_CLIENT_ERROR_CODES.OCR_FAILED, details ? [details] : undefined, cause));
43
+ }
44
+ }
40
45
  // ============== RPC Communication Errors ==============
41
46
  export class RPCNoHandlerError extends QvacErrorBase {
42
47
  constructor(requestType, cause) {
@@ -100,6 +105,26 @@ export class WorkerFileNotFoundError extends QvacErrorBase {
100
105
  super(createErrorOptions(SDK_CLIENT_ERROR_CODES.WORKER_FILE_NOT_FOUND, [workerPath], cause));
101
106
  }
102
107
  }
108
+ export class ConfigFileNotFoundError extends QvacErrorBase {
109
+ constructor(searchPaths, cause) {
110
+ super(createErrorOptions(SDK_CLIENT_ERROR_CODES.CONFIG_FILE_NOT_FOUND, [searchPaths], cause));
111
+ }
112
+ }
113
+ export class ConfigFileInvalidError extends QvacErrorBase {
114
+ constructor(filePath, reason, cause) {
115
+ super(createErrorOptions(SDK_CLIENT_ERROR_CODES.CONFIG_FILE_INVALID, [filePath, reason], cause));
116
+ }
117
+ }
118
+ export class ConfigFileParseFailedError extends QvacErrorBase {
119
+ constructor(filePath, error, cause) {
120
+ super(createErrorOptions(SDK_CLIENT_ERROR_CODES.CONFIG_FILE_PARSE_FAILED, [filePath, error], cause));
121
+ }
122
+ }
123
+ export class ConfigValidationFailedError extends QvacErrorBase {
124
+ constructor(errors, cause) {
125
+ super(createErrorOptions(SDK_CLIENT_ERROR_CODES.CONFIG_VALIDATION_FAILED, [errors], cause));
126
+ }
127
+ }
103
128
  // ============== Operation Errors (Client-side wrappers for server operations) ==============
104
129
  // These are used by client API to throw errors based on server responses
105
130
  // They reference server error codes but are thrown on client side
@@ -129,6 +154,11 @@ export class CancelFailedError extends QvacErrorBase {
129
154
  super(createErrorOptions(SDK_SERVER_ERROR_CODES.CANCEL_FAILED, details ? [details] : undefined, cause));
130
155
  }
131
156
  }
157
+ export class RAGChunkFailedError extends QvacErrorBase {
158
+ constructor(details, cause) {
159
+ super(createErrorOptions(SDK_SERVER_ERROR_CODES.RAG_CHUNK_FAILED, details ? [details] : undefined, cause));
160
+ }
161
+ }
132
162
  export class RAGSaveFailedError extends QvacErrorBase {
133
163
  constructor(details, cause) {
134
164
  super(createErrorOptions(SDK_SERVER_ERROR_CODES.RAG_SAVE_FAILED, details ? [details] : undefined, cause));
@@ -144,6 +174,16 @@ export class RAGDeleteFailedError extends QvacErrorBase {
144
174
  super(createErrorOptions(SDK_SERVER_ERROR_CODES.RAG_DELETE_FAILED, details ? [details] : undefined, cause));
145
175
  }
146
176
  }
177
+ export class RAGCloseWorkspaceFailedError extends QvacErrorBase {
178
+ constructor(details, cause) {
179
+ super(createErrorOptions(SDK_SERVER_ERROR_CODES.RAG_WORKSPACE_CLOSE_FAILED, details ? [details] : undefined, cause));
180
+ }
181
+ }
182
+ export class RAGListWorkspacesFailedError extends QvacErrorBase {
183
+ constructor(details, cause) {
184
+ super(createErrorOptions(SDK_SERVER_ERROR_CODES.RAG_LIST_WORKSPACES_FAILED, details ? [details] : undefined, cause));
185
+ }
186
+ }
147
187
  export class DownloadAssetFailedError extends QvacErrorBase {
148
188
  constructor(details, cause) {
149
189
  super(createErrorOptions(SDK_SERVER_ERROR_CODES.DOWNLOAD_ASSET_FAILED, details ? [details] : undefined, cause));
@@ -68,6 +68,21 @@ export declare class CancelFailedError extends QvacErrorBase {
68
68
  export declare class TextToSpeechFailedError extends QvacErrorBase {
69
69
  constructor(details?: string, cause?: unknown);
70
70
  }
71
+ export declare class ConfigReloadNotSupportedError extends QvacErrorBase {
72
+ constructor(modelId: string, cause?: unknown);
73
+ }
74
+ export declare class ModelTypeMismatchError extends QvacErrorBase {
75
+ constructor(expectedType: string, providedType: string, cause?: unknown);
76
+ }
77
+ export declare class OCRFailedError extends QvacErrorBase {
78
+ constructor(details?: string, cause?: unknown);
79
+ }
80
+ export declare class ImageFileNotFoundError extends QvacErrorBase {
81
+ constructor(filePath: string, cause?: unknown);
82
+ }
83
+ export declare class InvalidImageInputError extends QvacErrorBase {
84
+ constructor(cause?: unknown);
85
+ }
71
86
  export declare class RAGSaveFailedError extends QvacErrorBase {
72
87
  constructor(details?: string, cause?: unknown);
73
88
  }
@@ -113,6 +128,21 @@ export declare class SeedingNotSupportedError extends QvacErrorBase {
113
128
  export declare class HyperdriveDownloadFailedError extends QvacErrorBase {
114
129
  constructor(details: string, cause?: unknown);
115
130
  }
131
+ export declare class InvalidShardUrlPatternError extends QvacErrorBase {
132
+ constructor(url: string, cause?: unknown);
133
+ }
134
+ export declare class ArchiveExtractionFailedError extends QvacErrorBase {
135
+ constructor(archivePath: string, cause?: unknown);
136
+ }
137
+ export declare class ArchiveUnsupportedTypeError extends QvacErrorBase {
138
+ constructor(archivePath: string, cause?: unknown);
139
+ }
140
+ export declare class ArchiveMissingShardsError extends QvacErrorBase {
141
+ constructor(missingFile: string, cause?: unknown);
142
+ }
143
+ export declare class PartialDownloadOfflineError extends QvacErrorBase {
144
+ constructor(url: string, downloadedBytes: number, cause?: unknown);
145
+ }
116
146
  export declare class DeleteCacheFailedError extends QvacErrorBase {
117
147
  constructor(details?: string, cause?: unknown);
118
148
  }
@@ -125,6 +155,9 @@ export declare class CacheDirNotAbsoluteError extends QvacErrorBase {
125
155
  export declare class CacheDirNotWritableError extends QvacErrorBase {
126
156
  constructor(cacheDir: string, details?: string, cause?: unknown);
127
157
  }
158
+ export declare class ConfigAlreadySetError extends QvacErrorBase {
159
+ constructor(cause?: unknown);
160
+ }
128
161
  export declare class FFmpegNotAvailableError extends QvacErrorBase {
129
162
  constructor(cause?: unknown);
130
163
  }
@@ -137,6 +170,15 @@ export declare class InvalidAudioChunkError extends QvacErrorBase {
137
170
  export declare class RAGWorkspaceModelMismatchError extends QvacErrorBase {
138
171
  constructor(workspace: string, existingModelId: string, newModelId: string, cause?: unknown);
139
172
  }
173
+ export declare class RAGWorkspaceNotFoundError extends QvacErrorBase {
174
+ constructor(workspace: string, cause?: unknown);
175
+ }
176
+ export declare class RAGWorkspaceInUseError extends QvacErrorBase {
177
+ constructor(workspace: string, cause?: unknown);
178
+ }
179
+ export declare class RAGWorkspaceNotOpenError extends QvacErrorBase {
180
+ constructor(workspace: string, cause?: unknown);
181
+ }
140
182
  export declare class DelegateNoFinalResponseError extends QvacErrorBase {
141
183
  constructor(cause?: unknown);
142
184
  }
@@ -120,6 +120,31 @@ export class TextToSpeechFailedError extends QvacErrorBase {
120
120
  super(createErrorOptions(SDK_SERVER_ERROR_CODES.TEXT_TO_SPEECH_FAILED, details ? [details] : undefined, cause));
121
121
  }
122
122
  }
123
+ export class ConfigReloadNotSupportedError extends QvacErrorBase {
124
+ constructor(modelId, cause) {
125
+ super(createErrorOptions(SDK_SERVER_ERROR_CODES.CONFIG_RELOAD_NOT_SUPPORTED, [modelId], cause));
126
+ }
127
+ }
128
+ export class ModelTypeMismatchError extends QvacErrorBase {
129
+ constructor(expectedType, providedType, cause) {
130
+ super(createErrorOptions(SDK_SERVER_ERROR_CODES.MODEL_TYPE_MISMATCH, [expectedType, providedType], cause));
131
+ }
132
+ }
133
+ export class OCRFailedError extends QvacErrorBase {
134
+ constructor(details, cause) {
135
+ super(createErrorOptions(SDK_SERVER_ERROR_CODES.OCR_FAILED, details ? [details] : undefined, cause));
136
+ }
137
+ }
138
+ export class ImageFileNotFoundError extends QvacErrorBase {
139
+ constructor(filePath, cause) {
140
+ super(createErrorOptions(SDK_SERVER_ERROR_CODES.IMAGE_FILE_NOT_FOUND, [filePath], cause));
141
+ }
142
+ }
143
+ export class InvalidImageInputError extends QvacErrorBase {
144
+ constructor(cause) {
145
+ super(createErrorOptions(SDK_SERVER_ERROR_CODES.INVALID_IMAGE_INPUT, undefined, cause));
146
+ }
147
+ }
123
148
  // ============== RAG Operation Errors ==============
124
149
  export class RAGSaveFailedError extends QvacErrorBase {
125
150
  constructor(details, cause) {
@@ -197,6 +222,31 @@ export class HyperdriveDownloadFailedError extends QvacErrorBase {
197
222
  super(createErrorOptions(SDK_SERVER_ERROR_CODES.HYPERDRIVE_DOWNLOAD_FAILED, [details], cause));
198
223
  }
199
224
  }
225
+ export class InvalidShardUrlPatternError extends QvacErrorBase {
226
+ constructor(url, cause) {
227
+ super(createErrorOptions(SDK_SERVER_ERROR_CODES.INVALID_SHARD_URL_PATTERN, [url], cause));
228
+ }
229
+ }
230
+ export class ArchiveExtractionFailedError extends QvacErrorBase {
231
+ constructor(archivePath, cause) {
232
+ super(createErrorOptions(SDK_SERVER_ERROR_CODES.ARCHIVE_EXTRACTION_FAILED, [archivePath], cause));
233
+ }
234
+ }
235
+ export class ArchiveUnsupportedTypeError extends QvacErrorBase {
236
+ constructor(archivePath, cause) {
237
+ super(createErrorOptions(SDK_SERVER_ERROR_CODES.ARCHIVE_UNSUPPORTED_TYPE, [archivePath], cause));
238
+ }
239
+ }
240
+ export class ArchiveMissingShardsError extends QvacErrorBase {
241
+ constructor(missingFile, cause) {
242
+ super(createErrorOptions(SDK_SERVER_ERROR_CODES.ARCHIVE_MISSING_SHARDS, [missingFile], cause));
243
+ }
244
+ }
245
+ export class PartialDownloadOfflineError extends QvacErrorBase {
246
+ constructor(url, downloadedBytes, cause) {
247
+ super(createErrorOptions(SDK_SERVER_ERROR_CODES.PARTIAL_DOWNLOAD_OFFLINE, [url, String(downloadedBytes)], cause));
248
+ }
249
+ }
200
250
  // ============== Cache Operation Errors ==============
201
251
  export class DeleteCacheFailedError extends QvacErrorBase {
202
252
  constructor(details, cause) {
@@ -218,6 +268,12 @@ export class CacheDirNotWritableError extends QvacErrorBase {
218
268
  super(createErrorOptions(SDK_SERVER_ERROR_CODES.CACHE_DIR_NOT_WRITABLE, details ? [cacheDir, details] : [cacheDir], cause));
219
269
  }
220
270
  }
271
+ // ============== Config Operations Errors ==============
272
+ export class ConfigAlreadySetError extends QvacErrorBase {
273
+ constructor(cause) {
274
+ super(createErrorOptions(SDK_SERVER_ERROR_CODES.CONFIG_ALREADY_SET, undefined, cause));
275
+ }
276
+ }
221
277
  // ============== System/Runtime Errors ==============
222
278
  export class FFmpegNotAvailableError extends QvacErrorBase {
223
279
  constructor(cause) {
@@ -240,6 +296,21 @@ export class RAGWorkspaceModelMismatchError extends QvacErrorBase {
240
296
  super(createErrorOptions(SDK_SERVER_ERROR_CODES.RAG_WORKSPACE_MODEL_MISMATCH, [workspace, existingModelId, newModelId], cause));
241
297
  }
242
298
  }
299
+ export class RAGWorkspaceNotFoundError extends QvacErrorBase {
300
+ constructor(workspace, cause) {
301
+ super(createErrorOptions(SDK_SERVER_ERROR_CODES.RAG_WORKSPACE_NOT_FOUND, [workspace], cause));
302
+ }
303
+ }
304
+ export class RAGWorkspaceInUseError extends QvacErrorBase {
305
+ constructor(workspace, cause) {
306
+ super(createErrorOptions(SDK_SERVER_ERROR_CODES.RAG_WORKSPACE_IN_USE, [workspace], cause));
307
+ }
308
+ }
309
+ export class RAGWorkspaceNotOpenError extends QvacErrorBase {
310
+ constructor(workspace, cause) {
311
+ super(createErrorOptions(SDK_SERVER_ERROR_CODES.RAG_WORKSPACE_NOT_OPEN, [workspace], cause));
312
+ }
313
+ }
243
314
  // ============== RPC/Delegation Errors (Server-side) ==============
244
315
  export class DelegateNoFinalResponseError extends QvacErrorBase {
245
316
  constructor(cause) {
@@ -0,0 +1,12 @@
1
+ import type { Tool } from "../schemas/tools";
2
+ import type { McpClientInput } from "../schemas/mcp-adapter";
3
+ import type { ToolHandler } from "./tool-helpers";
4
+ export type { McpClient, McpClientInput } from "../schemas/mcp-adapter";
5
+ export type ToolHandlerMap = Map<string, ToolHandler>;
6
+ export type McpToolsResult = {
7
+ tools: Tool[];
8
+ handlers: ToolHandlerMap;
9
+ };
10
+ export declare function getMcpToolsWithHandlers(clients: McpClientInput[]): Promise<McpToolsResult>;
11
+ export declare function getMcpTools(clients: McpClientInput[]): Promise<Tool[]>;
12
+ //# sourceMappingURL=mcp-adapter.d.ts.map
@@ -0,0 +1,103 @@
1
+ import { mapValues } from "./object.js";
2
+ const VALID_TYPES = [
3
+ "string",
4
+ "number",
5
+ "integer",
6
+ "boolean",
7
+ "object",
8
+ "array",
9
+ ];
10
+ function isValidType(value) {
11
+ return typeof value === "string" && VALID_TYPES.includes(value);
12
+ }
13
+ function convertMcpToolToTool(mcpTool) {
14
+ const inputSchema = mcpTool.inputSchema;
15
+ const properties = inputSchema.properties ?? {};
16
+ const required = inputSchema.required ?? [];
17
+ const convertedProperties = mapValues(properties, (prop) => {
18
+ const { type, description, enum: enumVal } = prop;
19
+ return {
20
+ type: isValidType(type) ? type : "string",
21
+ ...(description && { description }),
22
+ ...(enumVal && { enum: enumVal }),
23
+ };
24
+ });
25
+ return {
26
+ type: "function",
27
+ name: mcpTool.name,
28
+ description: mcpTool.description ?? "",
29
+ parameters: {
30
+ type: "object",
31
+ properties: convertedProperties,
32
+ required: required.length > 0 ? required : undefined,
33
+ },
34
+ };
35
+ }
36
+ function createMcpToolHandler(client, toolName) {
37
+ return async (args) => {
38
+ return client.callTool({ name: toolName, arguments: args });
39
+ };
40
+ }
41
+ export async function getMcpToolsWithHandlers(clients) {
42
+ const allTools = [];
43
+ const handlers = new Map();
44
+ for (const { client, includeResources } of clients) {
45
+ const { tools: mcpTools } = await client.listTools();
46
+ for (const mcpTool of mcpTools) {
47
+ allTools.push(convertMcpToolToTool(mcpTool));
48
+ handlers.set(mcpTool.name, createMcpToolHandler(client, mcpTool.name));
49
+ }
50
+ if (includeResources !== false && client.listResources) {
51
+ allTools.push({
52
+ type: "function",
53
+ name: "list_resources",
54
+ description: "List available resources from MCP server",
55
+ parameters: {
56
+ type: "object",
57
+ properties: {},
58
+ },
59
+ });
60
+ handlers.set("list_resources", async () => {
61
+ if (!client.listResources) {
62
+ return { resources: [] };
63
+ }
64
+ const result = await client.listResources();
65
+ return {
66
+ type: "text",
67
+ text: JSON.stringify(result.resources, null, 2),
68
+ };
69
+ });
70
+ if (client.readResource) {
71
+ allTools.push({
72
+ type: "function",
73
+ name: "read_resource",
74
+ description: "Read content of a specific resource by URI",
75
+ parameters: {
76
+ type: "object",
77
+ properties: {
78
+ uri: {
79
+ type: "string",
80
+ description: "The URI of the resource to read",
81
+ },
82
+ },
83
+ required: ["uri"],
84
+ },
85
+ });
86
+ handlers.set("read_resource", async (args) => {
87
+ if (!client.readResource) {
88
+ return { error: "readResource not available" };
89
+ }
90
+ const result = await client.readResource({
91
+ uri: args["uri"],
92
+ });
93
+ return result.contents[0];
94
+ });
95
+ }
96
+ }
97
+ }
98
+ return { tools: allTools, handlers };
99
+ }
100
+ export async function getMcpTools(clients) {
101
+ const { tools } = await getMcpToolsWithHandlers(clients);
102
+ return tools;
103
+ }
@@ -0,0 +1,2 @@
1
+ export declare function mapValues<T, U>(obj: Record<string, T>, fn: (value: T, key: string) => U): Record<string, U>;
2
+ //# sourceMappingURL=object.d.ts.map
@@ -0,0 +1,3 @@
1
+ export function mapValues(obj, fn) {
2
+ return Object.fromEntries(Object.entries(obj).map(([key, value]) => [key, fn(value, key)]));
3
+ }
@@ -1,10 +1,12 @@
1
1
  import type { z } from "zod";
2
- import { type Tool } from "../schemas/tools";
2
+ import { type Tool, type ToolCall, type ToolCallWithCall } from "../schemas/tools";
3
3
  type ZodObjectType = z.ZodObject<z.ZodRawShape>;
4
+ export type ToolHandler = (args: Record<string, unknown>) => Promise<unknown>;
4
5
  export type ToolInput<T extends ZodObjectType = ZodObjectType> = {
5
6
  name: string;
6
7
  description: string;
7
8
  parameters: T;
9
+ handler?: ToolHandler;
8
10
  };
9
11
  export declare function convertToolInput(input: ToolInput): Tool;
10
12
  export declare function convertTools(inputs: ToolInput[]): Tool[];
@@ -12,6 +14,12 @@ export declare function convertTools(inputs: ToolInput[]): Tool[];
12
14
  * Validates and converts tools from either ToolInput (with Zod schemas) or full Tool format.
13
15
  * Returns validated Tool[] array.
14
16
  */
15
- export declare function validateTools(tools: Tool[] | ToolInput[]): Tool[];
17
+ export type ToolHandlerMap = Map<string, ToolHandler>;
18
+ export type ValidateToolsResult = {
19
+ tools: Tool[];
20
+ handlers: ToolHandlerMap;
21
+ };
22
+ export declare function validateTools(tools: Tool[] | ToolInput[]): ValidateToolsResult;
23
+ export declare function attachHandlersToToolCalls(toolCalls: ToolCall[], handlers: ToolHandlerMap): ToolCallWithCall[];
16
24
  export {};
17
25
  //# sourceMappingURL=tool-helpers.d.ts.map
@@ -1,4 +1,4 @@
1
- import { toolSchema } from "../schemas/tools.js";
1
+ import { toolSchema, } from "../schemas/tools.js";
2
2
  import { InvalidToolsArrayError, InvalidToolSchemaError, } from "./errors-client.js";
3
3
  function zodTypeToJsonSchemaType(type) {
4
4
  switch (type) {
@@ -66,22 +66,17 @@ export function convertToolInput(input) {
66
66
  export function convertTools(inputs) {
67
67
  return inputs.map(convertToolInput);
68
68
  }
69
- /**
70
- * Validates and converts tools from either ToolInput (with Zod schemas) or full Tool format.
71
- * Returns validated Tool[] array.
72
- */
73
69
  export function validateTools(tools) {
74
70
  if (tools.length === 0) {
75
- return [];
71
+ return { tools: [], handlers: new Map() };
76
72
  }
77
73
  const firstTool = tools[0];
78
74
  if (!firstTool) {
79
75
  throw new InvalidToolsArrayError();
80
76
  }
81
- // Try to validate as full Tool format first
77
+ const handlers = new Map();
82
78
  const parseResult = toolSchema.safeParse(firstTool);
83
79
  if (parseResult.success) {
84
- // It's already in full Tool format - validate all tools
85
80
  const validatedTools = [];
86
81
  for (const tool of tools) {
87
82
  const result = toolSchema.safeParse(tool);
@@ -90,10 +85,28 @@ export function validateTools(tools) {
90
85
  }
91
86
  validatedTools.push(result.data);
92
87
  }
93
- return validatedTools;
88
+ return { tools: validatedTools, handlers };
94
89
  }
95
90
  else {
96
- // It's ToolInput format with Zod schemas - convert them
97
- return convertTools(tools);
91
+ const toolInputs = tools;
92
+ const convertedTools = convertTools(toolInputs);
93
+ for (const toolInput of toolInputs) {
94
+ if (toolInput.handler) {
95
+ handlers.set(toolInput.name, toolInput.handler);
96
+ }
97
+ }
98
+ return { tools: convertedTools, handlers };
98
99
  }
99
100
  }
101
+ export function attachHandlersToToolCalls(toolCalls, handlers) {
102
+ return toolCalls.map((toolCall) => {
103
+ const handler = handlers.get(toolCall.name);
104
+ if (handler) {
105
+ return {
106
+ ...toolCall,
107
+ invoke: async () => await handler(toolCall.arguments),
108
+ };
109
+ }
110
+ return toolCall;
111
+ });
112
+ }